{"version":3,"sources":["components/constants.tsx","common/common.tsx","components/main/review/content/constants.tsx","images/main/sites-logo sync /^/.*/.png$","components/main/offer/offer.tsx","components/main/score/star.tsx","components/main/score/score.tsx","images/banners/footer-bnr_1920x100.png","images/banners/footer-bnr_1920x30.png","images/banners/footer-bnr_368x70.png","components/main/review/gotosite/countdown/countdown.tsx","components/main/review/gotosite/gotosite.tsx","images/no-image.png","images/rating sync /^/.*_star/.png$","images/rating/empty_star.png","images/rating/full_star.png","images/rating/half_star.png","images/main/sites-logo/allcamsex.png","images/main/sites-logo/cams.png","images/main/sites-logo/flirt4free.png","images/main/sites-logo/hdcamchats.png","images/main/sites-logo/imlive.png","images/main/sites-logo/livecamguru.png","images/main/sites-logo/myfreecams.png","images/main/sites-logo/sexier.png","images/main/sites-logo/stripchat.png","images/main/sites-logo/xlovecam.png","components/header/header.tsx","components/legal/legal.tsx","components/banners/BottomBanner.tsx","components/footer/footer.tsx","components/main/home/datatable/datatable.tsx","components/main/home/home.tsx","components/footer/privacy/privacy.tsx","components/footer/coockiepolicy/coockiepolicy.tsx","components/footer/terms/terms.tsx","components/main/review/header/header.tsx","components/main/review/review.tsx","components/header/aboutus/aboutus.tsx","components/header/aboutwebcams/aboutwebcams.tsx","components/footer/contactus/contactus.tsx","components/main/main.tsx","App.tsx","serviceWorker.ts","index.tsx"],"names":["Sitename","Year","Date","getFullYear","DocumentTitle","Alt","MetaDescription","ContactEmail","NoImage","require","RedirectQueryKey","RedirectQuery","QueryReview","QueryAbout","MsInSeconds","PromocodeKey","PromocodeQuery","BottomBannerSrc","SetMetaDescription","content","document","querySelector","setAttribute","SetDocumentTitle","title","addMe","BuildExternalURL","url","promoCodeSuffix","localStorage","getItem","_url","URL","search","indexOf","slice","GetUrlWithPromocode","encodeURI","SectionNavId","GetDocumentTitle","site","GetMetaDescription","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","DesktopOffer","lazy","MobileOffer","Offer","props","query","fallback","isMobile","rank","text","link","Star","star","useMemo","type","error","src","alt","Score","useState","Array","stars","setStars","useEffect","i","ceiledScore","Math","floor","score","fullStars","halfStars","emptyStars","key","uuidv4","getStars","className","toFixed","CountDown","coundownRef","useRef","marginRef","currentCountRef","counts","setCounts","timer","window","setInterval","current","first","children","clientHeight","style","marginTop","seconds","clearInterval","countsArr","ceil","length","ref","GoToSite","logo","toLowerCase","timerRef","sectionRef","classList","remove","setTimeout","encodedLink","sitelink","location","href","onClick","add","HeaderDesktop","HeaderMobile","Header","Legal","BottomBanner","minimized","setMinimized","target","media","srcSet","MobileImg","MinimizedImg","LargImg","Footer","to","DesktopDataTable","MobileDataTable","DataTable","Home","Privacy","scroll","top","behavior","rel","CookiePolicy","Terms","ReviewHeader","offertext","DesktopReview","MobileReview","Review","setRank","topSites","setTopSites","useParams","bnrSitelink","siteData","setSiteData","_data","dataTable","filter","data","toLocaleLowerCase","scrollIntoView","sorted","sort","d1","d2","_topSites","addEventListener","sectionPosition","getBoundingClientRect","scrollY","innerHeight","body","offsetHeight","URLSearchParams","useLocation","externalId","Number","get","goToExternal","setGoToExternal","AboutUs","setSiteLink","AboutWebcams","ContactUs","Main","nodeRef","pathname","promo","forEach","v","k","decodeURIComponent","setItem","history","pushState","handleTrackingТemplate","TransitionGroup","CSSTransition","classNames","timeout","exact","path","onLeave","App","Boolean","hostname","match","ReactDOM","render","StrictMode","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","console","message"],"mappings":"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","file":"static/js/main.89acb019.chunk.js","sourcesContent":["export const Sitename = 'LiveCamOffers.com'\r\nexport const Year = (new Date()).getFullYear()\r\nexport const DocumentTitle = `Best Live Cam Sites of ${Year} | LiveCamOffers.com`\r\nexport const Alt = DocumentTitle\r\nexport const MetaDescription = 'The Most Reliable Source Serves you with only the Best Webcam Sites Available Online. We tailored the best offers just for you.'\r\nexport const ContactEmail = 'info@livecamoffers.com'\r\nexport const NoImage = require('../images/no-image.png')\r\nexport const RedirectQueryKey = 'go'\r\nexport const RedirectQuery = `?${RedirectQueryKey}=1`\r\nexport const QueryReview = 'review'\r\nexport const QueryAbout = 'about-us'\r\nexport const MsInSeconds = 1000\r\nexport const PromocodeKey = 'promocodeKey'\r\nexport const PromocodeQuery = 'promocode'\r\nexport const BottomBannerSrc = `/review/ImLive?${RedirectQueryKey}=2`\r\n\r\nexport type FeatureType = {\r\n bold: boolean,\r\n exists: boolean,\r\n text: string\r\n}\r\nexport type SiteProps = {\r\n site: string,\r\n sitelink: string\r\n}\r\n","import { DocumentTitle, MetaDescription, Sitename, PromocodeKey, PromocodeQuery } from \"../components/constants\"\r\n\r\nexport function SetMetaDescription(content?: string): void {\r\n if (!content) {\r\n content = MetaDescription\r\n }\r\n document.querySelector('meta[name=\"description\"]')?.setAttribute('content', content)\r\n}\r\nexport function SetDocumentTitle(title?: string, addMe: boolean = false): void {\r\n if (!title) {\r\n title = DocumentTitle\r\n }\r\n\r\n if (addMe) {\r\n title = `${title} | ${Sitename}`\r\n }\r\n document.title = title\r\n}\r\nexport function SetDefaultMetaDescription(): void {\r\n SetMetaDescription(MetaDescription)\r\n}\r\nexport function SetDefaultDocumentTitle(): void {\r\n SetDocumentTitle(DocumentTitle)\r\n}\r\n\r\nexport function BuildExternalURL(url: string): string {\r\n if (!url) {\r\n return ''\r\n }\r\n\r\n const promoCodeSuffix = localStorage.getItem(PromocodeKey)\r\n if (promoCodeSuffix !== null) {\r\n url = GetUrlWithPromocode(url, promoCodeSuffix);\r\n }\r\n\r\n return encodeURI(url)\r\n}\r\n\r\nexport function GetUrlWithPromocode(url: string, promoCodeSuffix: string): string {\r\n if (!url) {\r\n return ''\r\n }\r\n\r\n if (!promoCodeSuffix) {\r\n return url;\r\n }\r\n\r\n const _url = new URL(url);\r\n if (!_url.search) {\r\n url += '?'\r\n }\r\n if (_url.search.indexOf(PromocodeQuery) < 0) {\r\n url += `${PromocodeQuery}=${promoCodeSuffix.slice(1)}`\r\n } else {\r\n url += promoCodeSuffix\r\n }\r\n return url\r\n}\r\n\r\n\r\nexport function setCookie(name: string, value: string , days: number) {\r\n let expires = \"\";\r\n if (days) {\r\n const date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + encodeURIComponent(value) + expires + \"; path=/\";\r\n}\r\n\r\nexport function getCookie(name: string) {\r\n const nameEQ = name + \"=\";\r\n const ca = document.cookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) === 0) return decodeURIComponent(c.substring(nameEQ.length, c.length));\r\n }\r\n return null;\r\n}","import { Sitename } from \"../../../constants\"\r\n\r\nexport type ContentProps = {\r\n title: string,\r\n text: string[],\r\n list: string[]\r\n}\r\nexport const SectionNavId = 'section'\r\nexport function GetDocumentTitle(site: string): string {\r\n return `${site} Review | ${Sitename}`\r\n}\r\nexport function GetMetaDescription(site: string): string {\r\n return `Read about ${site} and get all the information you need in order to get the most valuable and enjoying live cam experience.`\r\n}","var map = {\n\t\"./allcamsex.png\": 54,\n\t\"./cams.png\": 55,\n\t\"./flirt4free.png\": 56,\n\t\"./hdcamchats.png\": 57,\n\t\"./imlive.png\": 58,\n\t\"./livecamguru.png\": 59,\n\t\"./myfreecams.png\": 60,\n\t\"./sexier.png\": 61,\n\t\"./stripchat.png\": 62,\n\t\"./xlovecam.png\": 63\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 20;","import React, { lazy, Suspense } from 'react'\r\nimport { isMobile } from 'react-device-detect'\r\nconst DesktopOffer = lazy(() => import('./desktop/offer'))\r\nconst MobileOffer = lazy(() => import('./mobile/offer'))\r\ntype Props = {\r\n rank: number,\r\n text: string,\r\n link: string,\r\n site: string,\r\n query?: string\r\n}\r\n\r\nfunction Offer(props: Props) {\r\n const query = props.query || ''\r\n return <>\r\n }>\r\n {!isMobile && }\r\n {isMobile && }\r\n \r\n \r\n}\r\n\r\nexport default Offer","import React, { useMemo } from 'react'\r\nimport { Alt } from '../../constants'\r\ntype Props = {\r\n type: string\r\n}\r\n\r\nexport default function Star(props: Props) {\r\n const star = useMemo(() => {\r\n try {\r\n return require(`../../../images/rating/${props.type}_star.png`)\r\n } catch (error) {\r\n return ''\r\n }\r\n }, [props])\r\n\r\n if (star) {\r\n return {Alt}\r\n }\r\n return <>\r\n}","import React, { useEffect, useState } from 'react'\r\nimport './score.css'\r\nimport Star from './star';\r\nimport { v4 as uuidv4 } from 'uuid';\r\ntype Props = {\r\n score: number\r\n}\r\nconst maxScore = 10\r\nconst starsAmount = 5\r\nconst star = {\r\n full: 'full',\r\n half: 'half',\r\n empty: 'empty'\r\n}\r\nfunction Score(props: Props) {\r\n const [stars, setStars] = useState(new Array(starsAmount))\r\n useEffect(() => {\r\n setStars(getStars())\r\n\r\n function getStars(): JSX.Element[] {\r\n const ceiledScore = Math.floor(props.score)\r\n const fullStars = Math.floor(ceiledScore / 2)\r\n const halfStars = (ceiledScore % 2 === 0 ? 0 : 1)\r\n const emptyStars = starsAmount - halfStars - fullStars\r\n let stars = new Array(starsAmount)\r\n let i: number\r\n for (i = 0; i < fullStars; i++) {\r\n stars[i] = \r\n }\r\n for (i = 0; i < halfStars; i++) {\r\n stars[i + fullStars] = \r\n }\r\n for (i = 0; i < emptyStars; i++) {\r\n stars[i + fullStars + halfStars] = \r\n }\r\n return stars\r\n }\r\n }, [props.score])\r\n\r\n return
\r\n
{props.score.toFixed(1)}/{maxScore}
\r\n
\r\n {stars}\r\n
\r\n
\r\n}\r\nexport default Score","module.exports = __webpack_public_path__ + \"static/media/footer-bnr_1920x100.6ea9462e.png\";","module.exports = __webpack_public_path__ + \"static/media/footer-bnr_1920x30.7af84e26.png\";","module.exports = __webpack_public_path__ + \"static/media/footer-bnr_368x70.1ed391ae.png\";","import React, { useRef, useEffect, useState } from 'react'\r\nimport './countdown.css'\r\nimport { v4 as uuidv4 } from 'uuid';\r\nimport { MsInSeconds } from '../../../../constants'\r\n\r\ntype Props = {\r\n seconds: number\r\n}\r\n\r\nfunction CountDown(props: Props) {\r\n const coundownRef = useRef(null)\r\n const marginRef = useRef(0)\r\n const currentCountRef = useRef(0)\r\n const [counts, setCounts] = useState(new Array())\r\n\r\n useEffect(() => {\r\n const timer = window.setInterval(() => {\r\n if (coundownRef.current) {\r\n const first = coundownRef.current.children[0] as HTMLDivElement;\r\n if (first) {\r\n marginRef.current += first.clientHeight\r\n first.style.marginTop = (-1 * marginRef.current) + 'px'\r\n currentCountRef.current++;\r\n }\r\n }\r\n\r\n if (currentCountRef.current === props.seconds) {\r\n clearInterval(timer)\r\n }\r\n }, MsInSeconds)\r\n\r\n let countsArr = new Array(Math.ceil(props.seconds) + 1)\r\n for (let i = 0; i < countsArr.length; i++) {\r\n countsArr[i] =
{countsArr.length - i - 1}
\r\n }\r\n setCounts(countsArr)\r\n }, [props.seconds])\r\n\r\n return
\r\n {counts}\r\n
\r\n}\r\nexport default CountDown","import React, { useRef, useEffect, useMemo } from 'react'\r\nimport './gotosite.css'\r\nimport { NoImage, MsInSeconds } from '../../../constants'\r\nimport CountDown from './countdown/countdown'\r\nimport { BuildExternalURL } from '../../../../common/common'\r\n\r\ntype Props = {\r\n site: string,\r\n sitelink: string\r\n}\r\nconst countDown = 1.5//s\r\nconst hideClass = 'd-none-important'\r\n\r\nfunction GoToSite(props: Props) {\r\n const logo = useMemo(() => {\r\n try {\r\n return require(`../../../../images/main/sites-logo/${props.site.toLowerCase()}.png`)\r\n } catch (error) {\r\n return NoImage\r\n }\r\n }, [props])\r\n\r\n const timerRef = useRef(-1)\r\n const sectionRef = useRef(null)\r\n\r\n useEffect(() => {\r\n if (sectionRef.current) {\r\n sectionRef.current.classList.remove(hideClass);\r\n\r\n timerRef.current = window.setTimeout(() => {\r\n const encodedLink = BuildExternalURL(props.sitelink)\r\n window.location.href = encodedLink;\r\n }, countDown * MsInSeconds)\r\n }\r\n }, [props.sitelink])\r\n\r\n\r\n function handleClick(): void {\r\n if (timerRef.current) {\r\n clearInterval(timerRef.current)\r\n }\r\n if (sectionRef.current) {\r\n sectionRef.current.classList.add(hideClass);\r\n }\r\n }\r\n return
\r\n
\r\n
handleClick()}>\r\n ×\r\n
\r\n

YOU'll BE REDIRECTED TO

\r\n {props.site}\r\n

in

\r\n \r\n Take Me There!\r\n
\r\n
\r\n}\r\nexport default GoToSite","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAMAAABG8BK2AAAAqFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAs30iGAAAAN3RSTlMAQ9uC+TK1GIXs5vGMiNYjIBzvBXIpCeDQfXg7NS0Tso8M48tg6auTa1ycWMaiUD/0wLuXEElo2wnDLwAAAyFJREFUWMPtl9eSqkAQhkdgJIMSJCMZzLqGfv83O+C6WnVIY3m5+91S9THd/zTVoD9+J2rl+PrnGuNkl+rnGikBkZsjFM9NbzKCZ4Z9mslZBJGOEXZ2tkUNYxcVXnRrFianQWKwKwrGYayTy6JuZpwFlJtxZ4keQd5tGT7q62TsJpDTczROPFnnIPU1KHT4ui5EgD43RM1ddHYn2G8cCihnRiKar5mT2fnATV3WsEDjSDy6t02qC2oTFFCiBV3nLrMknjUUAWpzUCCqz1TnLkgkfZZBOXRdQAvoJndZAJ4jmAsarEmXhgIH1bASDyI3XpcDVI+GRncPJwIvjXroEQ1SOR4EefapBs0locn9Uw1i5Y7cdV1/U4Nm7dwvh9XGW7ynaefu08vttjCCdzTt3P0dAzVaNNOJNe3cw/MR7lhOSKxp5a57KTzYBsSaVu7xSoEHlkesaeX+0gBFrmnlrvvPok4msaadeyzlcEcwLm9qdJbVn7njc84AHIVoht7UHErJf+Qus3rgLm27uKnoTc214IXI/MmdRexhv/dCsu/NE3YzZQAs2XzkTrfm3SXQzA2FgZr6PD3zvojAPoxocETBN3mJO+fddCjmyx/ULCZrHn7Iz3573sP9OgFmiYc0l33dlhf8Dr9yv6PPqi3AiIY10sbyQtt5z3l/HNaCRjPt0XBNW2QF/kPcHX5yr+fCc75EGNS4zZtEaHEsPP07dze8lAzAoOZoxNcvBjpglk1dzXmqYDeisXMpayzdnmtzmQRQ3InED2m8k5Y2ze31hAvTUUBZYS4f0OAlAwMwp6q6TSoblE0gCcSatkcQqAhvFLAzU+bvGr9LM2VgjITGGxvSFaZrTz0MZKdpw9NBltZ1YVnoucVqycM4gmSumj6bkqZ1/mTEmQIkHrnpT5r50dZgUQfmFEjgabxKwb5d97h7MTYsMo9sZjYkRu+WTotAgiDhzILEjXs8Kq0ACdp6b1Bg9e5jbDVV8iMzwpFXstBIQOPMvt+qIIuK6QhF6frf+/x5gnq4qAEeIVDZuNnnRbAk9DFqaX8Zn2t037mp6I9fyT/Hid0ZfJ73DAAAAABJRU5ErkJggg==\"","var map = {\n\t\"./empty_star.png\": 51,\n\t\"./full_star.png\": 52,\n\t\"./half_star.png\": 53\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 50;","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAMAAADH72RtAAAAM1BMVEUAAAAPzmAPy2AOzWAPzmAPz2AQy2AQz2AOzmAOzmAOzGAPz2AOymAPzmAPz2AOz2APzmBCxxf0AAAAEHRSTlMA3yBgv89AEIBvUK8w77+geFvWfgAAAHRJREFUGNNdjFsOxDAIA3Eh77T1/U+7ESJSuv5gxGAhEaXKNyC+Qvn+lQCxs3RVqmS26VsbIP2JLaanS6JVnWWZkns1JrmAS3Z82WqLg+etMzsne5Qbi7OwhRm3lJpUBG+YxxRMhI4UhqRlySDvMLDsVGDNH8OPA2nCLkq0AAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAQBAMAAAACH4lsAAAALVBMVEUAAAAPzWAPzmAOz2AOzWAOzWAQzWAQz2APzmANzGAPz2AOz2AQzWAPz2APzmD5gnwJAAAADnRSTlMAgO+fkGAgEN9Qv7Awz/alDaEAAABmSURBVAjXYwACNnUGKGB+CGPlPSqAsuzeCUAYbO/eqYHoibZ6796909o4ASgFAQ4MLBDGE6C0HIgB1sMIYkBMBLGegxg8INYbEIsTxHoKZAA1v5AAa2XgehTAEPEa7BJxIBHMwAAAfjw21tgKirsAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAQCAMAAADH72RtAAAANlBMVEUAAAAPzmAOzmAPz2APzWAOzWAQy2APzmAOzmAOzGAOymAPzmAPz2AQz2APz2AOz2AOzWAPzmCtiOHhAAAAEXRSTlMA34C/IGBAz3BQMO+vEM+fkPmKvEMAAABySURBVBjTVctZEsMwCANQluAtSVvd/7I1tmba6IMZHkKYQMgzCn1CwFn6Vcz/S4cBVmBjbe1SZEwcwMtDKkC5SzdHlUMp613PkXPLAj32gUKY6ZSBLjuNcqNRPikaIvqmeEqddinlBLxIyQNF554Jzc4X87AFvFTudp8AAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAAAgCAMAAADZhUELAAAC8VBMVEX+//8BPE0CPk7///////8LRFQBPE0BPE0USloEPk8GQFD+//8CPU4MRVX///8HQVIFQFAQR1ckV2b+/v////8BPU7///9mipT///8CPk7+/v8BPU5ReoX///////8fU2IYTl1DbnsBPU7///+1xss5Z3VAbHlHcn79/v7U3uIoWmi7y9AzYnClu8GHo6z+//8gVGNeg45wkZv////////+///w9PUqXGotXmzz9vgZTl6swMaOqbD8/v9FfJwMFBqDoKlhhZBNd4P///8PSl6SrLN/naZ4l6D+/v8BPE3w9PZss+NxvO+TrbTg6OrN2d3K1tqdtLtIhqXc5OfG09fp7vDZ4uRCbnvD0dYzdJj///9XfokvUGU/cpHR3N8QR1js8PKMqLB2lp8XSFxChqv////9/v/y9vfp7u+pvcNHhqmetbtWnMVrjpcmY3xLdYEmZoJ5yf3+//9vuen////R6PjB4Od6yPpfo844W3QDJDZxu+5Vk7pUqOD6/f9wu+64yM0gO0pQbHjZ4uRagItstOUzb4vV3+KNqLD///////9ug41vhI7///9tt+fX6/ACPU6zxcrY5Ojc5Oc/dpXf5+lliJN3xvr///9uv/T///////8BPE3///8Hf50AAAAAcZIIgqAAbo4FfZsCDRABW38AY4YLHyV7y/x2xPYkrdIIhaN/0v8FeZcDd5UAaooTMz4BBQdO4v/q9fdosNsEe5oAZ4rj8PQFjK8FJS4yt9lPo7kAdJYnVWkgP1BJ2v1yve96tscLoMUbncFanLkbPEfN+v5c5/7J4+oyx+RhqsBDma8Oj68qj6oJiKk9kKgkhaIhd5cvbH8sYXcASG8JUmYcSVkBLz8RKDGG2//u+PrP6u+q095LudeYydaFvc1AqsRrrsKFr74ImLwGkLMyhaAhU2W///9j8f+n7PXW7PFRy+0Ql7hUkbYllrQQgqAtbpEJaYEtWmnv//+73+dvw9qmzNUJc5MKbo8TaYpHY28t6ecAAAAAnHRSTlP++ej65NX89srk3vTx0eza4c6/+fbt1bLw69Dvst/ax8e29Oi5uLa0zMK9urq3s8TCs7Kv19LMxLvNzLe0GP34w7+/vr60srKj8+/v6MbFwb61/uLWyMLAvb23s/79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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHcAAAAsCAMAAABorteMAAAAdVBMVEUAAAAwMDA5OTk5OTk4ODguLi45OTk5OTk5OTk4ODg4ODg4ODg5OTk4ODg5OTk4ODg5OTk4ODg4ODg2NjY4ODg5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk5OTk4ODg5OTk5OTk5OTk4ODg5OTk4ODg5OTmIElqhAAAAJnRSTlMACecQnwT1He/QW6m/RtgYsSg8FLgi4IeXknk1yXBSTcRkgS+Oam/fhfUAAASDSURBVFjDvZZpj6MwDIYdQgiE+ypXuUrL//+JC3baol0y0n5gHmlGmBI7tt8YwACXsktlDr8Il2Nr3z0v8rx70aiUwS8gpPKt9YjbjByuhrfe+g+u38Gl8N5aT3H6Kzvd+asJx74sMJtvhzg3byNyv3eKi5rM+m+Qez1nZSzTbG68zz0JV8Be79ZaiSrZ5/aiMLJTLHAFrHd0VD/766fcd1arvegQq3fY4d82xrU34kU6P4MNv5qlgFJt5ABiqZIgee8rfWzGdpsQS59sC5r9BhuDOg+HrpnF8JyBWHRYvzwtBt+j9/f1iw/t9v+2iEXf9TIBECbakLgs+6xwMzEXXccqr35ZSd3qRMpJe4vBgFDBeqSCetda2n4O/MTF10j2BCs0EUuyygfgts/Aq7koFDp9ULq1May0Hb1xLfqB76kVLd4mRgxLOOMWlq6s27YkAciKpyyDAcALoSxQRB0tKIwnpfS15lqlcAdWhyXaXRbP5kYJW6sTPG0yWpZFePr6MVQNlrW8q+6+AI9SyIJ8T5e8brYBhg84Ab6Z1H4dlOR2tV5ciFAnGikuWIaGzzFdj3xyAJZzX4VBCeGdgypgg1y4vTEsVbOhLjT7tc0HKrgS+8YT6oHCp9FIpI9rGGhCv7HlXHOYfRB9A/BuxGQcwJRBol0UWEboSYjiu5f1yTCuTZsMtL40PE0ZSCm2P4B4T2Ghir3ARKErRlh7yQdA7xENMTJuEr5xH9wnqUowMZLuUqOoHHQkyIqxqwvg0ax0DTA3G+Bb55egAegkIRh4YtyAg4EHZvYu2ICpceHuDdU+SxzhGRl5tP8yQu7ro9t0cMqkm2NSlU7muMsAJLrkWjO33YjJkHTOALppJbzzIUgHbgYDKbb/Xa0cnT3oNCVAzO6hYCGG2jchKz1V7meBUwv7oH5Ws3yXGa2Bil8BIipUEAmAhF6QMRYUuWemuK6x/SF2MoaDWNcUUDzqOFZaINCotRFXJJ6TATy4eqAaGJ09rtTJOyu2kpSkb+a7YQ06eY8KouEBqvIkrh7O6sd81468TCu5yaKjktzDUZboDo1vgbzYVOf1wX7sr833R+vVoTNHSmL6CXoNHrbpMC4FFRrPuX/inFPcxHR+JX1fVUs6FJtgbvgsyspmByX5QLycXcDikbw6BlA2uHgW8C8BDXXjvKpWxLW2TDwVYfI0C4FIULJwGJm+nLYFNy+yDLKiSYC0wpTw97P6Fma7YccTvX4QgQc8O07JlpqjiULDfEa8Dgyod2AvBIqLW7lpdzHGYGTIOw6D1yFskMEpeUK/T6fjTDAA2UyWFRX76e8a27bn3N6oci3MejOeb2fVbqRieRSetS0K6tEkWNH/8DEp1C50kYZhFgv4D0S+rQm7koGRvFiJ+98fzyz0XXeAqxhdHdipQ3aIqmqLXoEXwdr1jTP1acw5j8vBjnT9nwwuIrbXA1GRFBjzew6ugvurmUcMl8Fe0XnQW53ClYjwLGWvyjhcDA/ryXI/Id1oagbJ4Dfg4/ywbT+x7apVHYffhCFwNX8Ae7rJmDvNo4gAAAAASUVORK5CYII=\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJwAAAARCAMAAAAfSDV5AAAAe1BMVEUAAAAmlCYmlCUmlCUmkyYmlCUmlCUnlCYmlCUnlCUmlCUmlSQmlSYnlCUnlCYmlCUnkyYnlCYmlCUmlCQllCQmlCUmlCYnlCUllCUkkyIjkSIgkx0mlCUllCQmlCUmlCUmlCUmlCUnkyYmlCYnlCUmlSUnlCUmlCYmkyXle38IAAAAKHRSTlMA8d/B5bB4uZvTiygWgfXq+9j3TUTJqZMzHw4KZTlZX1NwLUnOaz6jaLm4pwAABCNJREFUSMfNltmymzAMhr3vYPY9EAgEv/8TVi60TW86bW/af+bMwSy/PktCBE0JSDh0yX5dTj36VD8nH5oe6DfllsS0l0yyOPTnagghLL9xhpkyWMuf43cnY+S75PGbzlZIgr+J0Pkv6GiIks8LQ4UoXaFPvSWcK9JbOvk94+HA8FiWAlmawRF9/TmczEJU6+JC4AvujT71kBGfX5Kq/D3jRwNP4b1RSp06BjnGv4UjAo4nGv2yUFsraxWTuQlal5ZD4j7DcmqeR06osAgdjWZQdWo6uFKZmsBib2ADJZj5crwr7D0+BvfiucfYE3pY5DhVYqJay2lECdU7PwaE3CHJdYsAQxkyb4pQNB3cjkMqJA715jRmDRivGuOtb6A8c/kqo17bWOWYaZKmOG/HacdwgFNMGoteDcMFBjH9GF4AV0di0NhXVeXcrH3BdO5TrM04eMwIiU/XpyLg4HNh+4XA0zlhBSatA7hANu5DnqApD5hagNs71LCwV6g/0zQfLP8oKz/GNwuByYZkGe14WtTKGM5CPiHDMgILVYcg+hc4yw19yD055UYIQXFoHIKS+brhJC28l43MQ6BVZ2BHrRAJl1xccKjaQ5GXNeRsQjSFnotF8QotFKBjz31IoY4FpsBHE1nmWSoTIVQOp1CTZgSCG5oFbn+CG621w9AJpYw4ZsXgOkozLOfuYXQo6uejStKA50cLiGZd4cakHL/COXTikAF6oQZUFxFuVGnB3Mkyai84dosY9GCBQkP2QomKZKG4hwXAQVvgS80W4erH97EiRDe8T+2xZ0SnF1wuYp/ygCfoto4AXL8w6JGiKHAuRR/h2IaqJkTFmPQrHJqhNqfPmLne1uy92ajNuvEFcOUdFAcsjYJamuQFmSs0LFpj2qeLPVes/fUKKTAXzxMs13kSpPgKF/QaB1UT/DwCnA5sRkOVKE4phU2T5Cuchc4n8UVNxu9wDhKcAu7jhhvQN40vD7u44ULwwjln11PNiKcpt871pWpW153RUcdepTmOo2QGn6UfB8fxDXdnzi8xc9AZT7sYM3VguPjgW0QBroMoJrYTQKH8HsJLHYtpxnsI9z/gnj7U83UMcQoCG60Jqxe06sxTkGZe9MNCfh7C1Rvyt1OQzyJcdAeLEuDiEHngUCxWQNG/WgDFhJTW0saIMqdlnMRcax5bxa77/eXo4J7d/YCrqD5f37J4Apf3LI+DbktkHhdk548BDKQmt+DM0run1CxelLtuewSBj1jWVtNY1o3qunRVs4PfZbihWYjJRZY5gf+g6T4BEzMUIiasX4QQd1nv7l4sulWtRoGSaYPFtiRxYdYKgYZn/PAbY+BPlNGyTFrVirJcxdMhcf2G6J/J2sWLR7Ja6DlhVFSybL/+bGe0Qv+l3hyqDsX5P+X63qF/qy9qeWrpGO1VegAAAABJRU5ErkJggg==\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIMAAAAfCAMAAADz545sAAAAclBMVEUAAACZAACZAACRAACZAACZAACZAACZAACaAACZAACZAACZAACbAACZAACZAACZAACZAACZAACZAACaAACYAACYAACZAACZAACaAACZAACZAACXAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAADEc2aXAAAAJXRSTlMAG94Ctcol8RXA53EH+kyi1aedMhAr9pZXQjwM4a6OemBoN4eBMRQhuAAAAzBJREFUSMfFldmSozAMRYXBG1vYwg4hi/7/F0cWIQnTXTXV/cCcF/CCdS1dbNjwLkU0wB4VFQ8Fh9EHGvXJgw/8q9VY2zMcxKLRYQ288HJ0BAaOoU0wQccMG2WGjjyGYziHaNsCifq2SRDUGpNpgIN4YFNBJXnfwChBCq7n1MBB+Lbw6XFFImQLGtJDZjyQqvXZhCESEb3FJ/bikfjPJztiIhNGLOG/kCIhFPQabQX/hypDIo0zlJ5LjzG/X8p4T+If1mRGomlwZDt6MvulCHORoX6S/rQYCSImGPbbqaHgNww5itNGCT/D42KE6XZGJN5uNMoDYpo78B/TeyiyJQxtMwVEHlHqShyVv/H6+mSnJnVNw+s8zmnhFuvhLxokAvhWQycwFMSIuMCMdtiuGgxLY1ELh0ZJnkb51QUmkFJgE9NGeZ2kfj5aH3Z02uVBfadhkHhRniOqRVwFWKxxel2ncMFTSSPGuwUYwQ1ltY9/67qu7/olxN7NdevcUd7osSRWfaMBr99p8EZdbW9hBYYk8aTMTW8wMsphLnj5ouGaaV3rMAzHJEkphQuHwhMQlZbd/u7K0BH432kQ2ttuuLBix7aUnQDv1DXji68a0jppopWMNNzxyr14cmE8Lfud6STK0BWjXGONtdlpeLYU5YGXpnkF5gP7yM5NwTSl88PndetS8yTHDw2506D2GozFTE1IRNvd+eEXIxJOGgfnEBHKB2YsbMYc3pQY3uBN5JzIxPYfGuIJdbdengF/498RhX2y+BdMZEDYBB+rtBn5NCPKEEUQFCyNr7xaWkbaEkpBg0zmJM/rFlucWANmbz/4Be9fuWLo89q1BGKDhhYrGBn5z1h5mG5bP2VilFvphkiKDYpwbjLBZHlJDhX80S17cHrlSb2yMCObJM63YjDeRvxufdTnI+WVp8xHUr0Nn0V5jOEhtWbZG9YI5vOqWLexICF9OJyqeP0NakTE1X5xO8AxLCmUlsK2r/+HmHxnreCgdLSJDkI+Wl4d1KoXUDnZ4hhqZO7+y04SCT2NbJBDQEf9gDe9Rkae4SCQyNp9eVjEpOAo2iKPPNjT36cmjeEo/gA0ek68fvl4kQAAAABJRU5ErkJggg==\"","import React, { Suspense, lazy } from 'react'\r\nimport { isMobile } from 'react-device-detect';\r\nconst HeaderDesktop = lazy(() => import('./desktop/header'))\r\nconst HeaderMobile = lazy(() => import('./mobile/header'))\r\nfunction Header() {\r\n return <>\r\n }>\r\n {!isMobile && }\r\n {isMobile && }\r\n \r\n \r\n}\r\nexport default Header","import React from 'react'\r\nimport './legal.css'\r\n\r\nfunction Legal() {\r\n return
\r\n No nudity is allowed in the site.\r\n
This site complies with 18 U.S.C. § 2257, and its regulations.\r\n
The owners and operators of this website are not the primary producer (as that term is defined in 28 C.F.R. § 75.1(c)(2)) of any of the visual content contained in this website.\r\n
\r\n}\r\nexport default Legal","import React, { useState } from 'react'\r\nimport LargImg from '../../images/banners/footer-bnr_1920x100.png'\r\nimport MinimizedImg from '../../images/banners/footer-bnr_1920x30.png'\r\nimport MobileImg from '../../images/banners/footer-bnr_368x70.png'\r\nimport './bottomBanner.css'\r\nimport { BottomBannerSrc } from '../constants'\r\n\r\nconst BottomBanner = () => {\r\n\r\n const [minimized, setMinimized] = useState(false);\r\n \r\n return (\r\n
\r\n
setMinimized(!minimized)} className={`minimizeBnr`}>-
\r\n \r\n \r\n \r\n \"imlive\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default BottomBanner;","import React from 'react'\r\nimport { Link } from 'react-router-dom'\r\nimport Legal from '../legal/legal'\r\nimport './footer.css'\r\nimport BottomBanner from '../banners/BottomBanner'\r\n\r\nfunction Footer() {\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n )\r\n}\r\nexport default Footer","import React, { lazy, Suspense } from 'react'\r\nimport { isMobile } from 'react-device-detect'\r\n\r\nconst DesktopDataTable = lazy(() => import('./desktop/datatable'))\r\nconst MobileDataTable = lazy(() => import('./mobile/datatable'))\r\n\r\nfunction DataTable() {\r\n return <>\r\n
}>\r\n {!isMobile && }\r\n {isMobile && }\r\n
\r\n \r\n}\r\nexport default DataTable","import React from 'react'\r\nimport DataTable from './datatable/datatable'\r\n\r\nfunction Home() {\r\n return
\r\n \r\n
\r\n
\r\n

The Webcam World

\r\n

Cam girls are at the forefront of modern online interactions, offering viewers intimate and interactive experiences. These platforms connect performers and audiences, providing a safe environment for interactions. Viewers can choose private or public engagements, with payments made through tokens. Camming websites host numerous models of all different ages and with all the different types of kinks and preferances. As these sites aim to facilitate fun and safe interactions, ensuring the users' and models' welfare, as well as verifying their age, is always a priority. In public chats, tips are the currency, with models receiving a share while the platform collects its cut. Camming has evolved, making it a vital part of our daily digital lives, especially in this post COVID-19 pandemic world.\r\n



\r\n
\r\n
\r\n
\r\n}\r\nexport default Home","import React, { useEffect } from 'react'\r\nimport { ContactEmail } from '../../constants';\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common';\r\n\r\nconst title = 'Our User\\'s Privacy is Our Concern'\r\nfunction Privacy() {\r\n useEffect(() => {\r\n SetDocumentTitle(title, true)\r\n SetMetaDescription('Privacy Policy at LiveCamOffers.com. Within this page you can find out about our Privacy Policy, what information we collect and how this information is used.')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n\r\n return
\r\n

{title}

\r\n
Privacy Policy at LiveCamOffers.com, your privacy is considered extremely important to us. Within this page you can find out about our Privacy Policy, what information we collect and how this information is used. We also strongly recommend that you take the time to carefully read the Terms and Conditions as is forms a part of the legal documentation of the Site.\r\n

The Collected Information

\r\n
This site collects the HTTP referrer information and IP address of all visitors to the site. Cookies may also be used and stored. At no point is it required and at no point will this site ask for its visitors to submit their email address. In the future, it may be possible for visitors to the site to be asked to volunteer their email information. If any information is submitted within the future, these addresses will not be sold, rented or given to any external third parties and will be solely used by LiveCamOffers.com.\r\n

The Use of Collected Information

\r\n
Any information collected is used as part of our Internet Analytics Software and for the functioning and correct display of the site. This information will help to enhance the users experience and enjoyment of the site. Any such information will not be sold, rented or given to any third party companies.\r\n
Collected information is used by the site to market itself, improve the products it supplies and services offered. If issued a court warrant, the Site will disclose any of the above information to the relevant government or law enforcement entities.\r\n
In no way is this site intended for use by minors. All visitors must be at least 18 or older and in compliance with all local, state or country laws and regulations.\r\n

Contact

\r\n
If you have any questions regarding our Privacy Policy please feel free to email us at {ContactEmail}\r\n
\r\n}\r\nexport default Privacy","import React, { useEffect } from 'react'\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common'\r\n\r\nconst title = 'COOKIE POLICY'\r\n\r\nfunction CookiePolicy() {\r\n useEffect(() => {\r\n SetDocumentTitle(title, true)\r\n SetMetaDescription('Read our Cookie policy on LiveCamOffers.com')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n\r\n return
\r\n

{title}

\r\n
Revised on: June 15th, 2020\r\n

Introduction

\r\n
When you visit or access our Services (such as websites or applications operated by us, or when you interact or engage with our content), we use (and authorize third parties to use) web beacons, cookies, pixel tags, scripts, tags, API and other tracking technologies (“Tracking Technologies”). The Tracking Technologies allow us to automatically collect information about you and your online behavior, as well as your device (for example your computer or mobile device), in order to enhance your navigation on our Services, improve our Services performance and customize your experience on our Services. We also use this information to collect statistics about the usage of our Services, performance analytics, deliver content which is tailored to your interests and administer services to our Users, advertisers, publishers, customers and partners.\r\n
We also allow third parties to collect information about you through Tracking Technologies\r\n

What are cookies?

\r\n
Cookies are small text files (composed only of letters and numbers) that a web server places on your computer or mobile device when you visit a webpage. When used, the cookie can help make our Services more user-friendly, for example by remembering your language preferences and settings. You can find more information about cookies at www.allaboutcookies.org.\r\n
Cookies are widely used in order to make websites work in an efficient way. The use of cookies allows you to navigate between pages efficiently. Cookies remember your preferences, and make the interaction between you and the Services smoother and more efficient. Cookies are also used to help ensure that the advertisement you see online are relevant to you and your interests.\r\n
\r\n
\r\n
\r\n

Storing Tracking Technologies

\r\n
We store Tracking Technologies when you visit or access our Services (for example when you are visit our websites) – these are called \"First Party Tracking Technologies\". In addition, Tracking Technologies are stored by other third parties (for example our analytics service providers, business partners and advertisers) who run content on our Services- these are called \"Third Party Tracking Technologies\". Both types of Tracking Technologies may be stored either for the duration of your visit on our Services or for repeat visits.\r\n
\r\n

What types of Tracking Technologies do we use?

\r\n

There are five main types of Tracking Technologies:

\r\n

•\tStrictly necessary Tracking Technologies-

\r\n
These Tracking Technologies are essential to enable you to login, navigate around and use the features of our Services, or to provide a service requested by you (such as you username). We do not need to obtain your consent in order to use these Tracking Technologies. These Tracking Technologies can be sued for security and integrity reasons- for example to detect violation of our policies and for support or security features.\r\n

•\tFunctionally Tracking Technologies-

\r\n
These Tracking Technologies allow our Services to remember choices you make (such as your language) and provide enhanced and personalized features. For example, these Tracking Technologies are used for authentication (to remember when you are logged-in) and support other features of our Services.\r\n

•\tPerformance Tracking Technologies-

\r\n
These Tracking Technologies collect information about your online activity (for example the duration of your visit on our Services) including behavioral data and content engagement metrics. These Tracking Technologies are used for analytics, research and to perform statistics (based on aggregated information).\r\n

•\tMarketing or Advertising Tracking Technologies-

\r\n
These Tracking Technologies are used to deliver tailored offers and advertisements to you, based on your derived interests, as well as to perform email marketing campaign. They can also be sued to limit the number of times you see an advertisement as well as help measure the effectiveness of the advertising campaign . They are usually placed by our advertisers (for example advertising networks) and provide them insights about the people who see and interact with their ads, visit their websites or use their app.\r\n

•\tSocial media Tracking Technologies-

\r\n
Our website includes social media features, such as Facebook \"Like\" or \"Share\" BUTTONS. These features are either hosted by a third party or hosted directly on our Services. Your interaction with these features are governed by the privacy statement of the company providing these features.\r\n


\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
TrackingTechnologies TypePurpose
\r\n Analytics Cookies\r\n \r\n First party Tracking Technology\r\n \r\n Performance Tracking Technologies These Tracking Technologies are used to collect information regarding how you interact with the content on our Services, attribution purposes (for example, the referral URL), etc. We use the information to compile reports, calculate the revenues due to us and, help us improve the Services and to offer personalized products and content.\r\n
\r\n Google Analytic\r\n \r\n First party Tracking Technology\r\n \r\n Performance Tracking Technologies This cookie is used to collect information about how visitors use our Services. We use the information to compile reports and to help us improve the Services. The cookies collect the number of visitors to the Services, where visitors have come to the Services from and the pages they visited, and other data. Google Privacy Policy\r\n
\r\n Other cookies\r\n \r\n First and Third party Tracking Technology\r\n \r\n Strictly necessary Tracking Technologies - these unlisted cookies might be in use on internal sections of the Services, in order to customize and simplify the user experience on the site by remembering choices you made and your log in credentials.\r\n
\r\n
\r\n\r\n
\r\n

How to manage your cookie settings

\r\n
Please note that we do not recognize or respond to automated browser signals regarding Tracking Technologies, including \"Do Not Track\" requests. However, there are various ways in which you can manage and control your cookie settings. Please remember that, by deleting or blocking cookies, some of the features of the Services may not work properly or effectively.\r\n
•\tTurning off cookies via your web browser\r\n
•\tMost web browsers will provide you with some general information about cookies, enable you to see what cookies are stored on your device, allow you to delete them all or on an individual basis, and enable you to block or allow cookies for all websites or individually selected websites. You can also normally turn off third party cookies separately. Please note that the settings offered by a browser or device often only apply to that particular browser or device.\r\n
•\tInformation about cookies is usually found in the \"Help\" section of the web browser.\r\n

Below are some commonly used web browsers:\r\n
•\tChrome\r\n
•\tChrome for mobile\r\n
•\tInternet Explorer and Microsoft Edge\r\n
•\tMozilla Firefox\r\n
•\tSafari\r\n
\r\n

•\tTurning off third party cookie

\r\n
You can turn off certain third party at targeting/advertising cookies by visiting the following link: networkadvertising.org/choices\r\n
\r\n}\r\nexport default CookiePolicy","import React, { useEffect } from 'react'\r\nimport { ContactEmail } from '../../constants'\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common'\r\n\r\nconst title = 'Terms & Conditions'\r\nfunction Terms() {\r\n useEffect(() => {\r\n SetDocumentTitle(title, true)\r\n SetMetaDescription('Read our Terms and Conditions on LiveCamOffers.com')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n \r\n return
\r\n

{title}

\r\n

General Age Requirement

\r\n
You must be at least 18 years old and a consenting adult in order to enter and use the content provided by the 3rd party websites. The site is not intended or designed for minors.\r\n
\r\n

Third Party Content

\r\n
Visitors to the Site acknowledge that the content is created and provided by 3rd party websites. The Site does not create any sexually explicit content and acts simply as an informative site that describes content that is available on the Internet.\r\n
\r\n

Ranking

\r\n
Site ranking includes various selection criteria and is determined by the sole discretion of the Site.\r\n
\r\n

Contact

\r\n
If you should have any questions or queries regarding the Site's Terms and Conditions, please email us at {ContactEmail}\r\n
\r\n

Privacy

\r\n
Please refer to the Privacy Policy page for further details about what information collected from users and how it is used by the Site.\r\n
\r\n}\r\nexport default Terms","import React, { useMemo } from 'react'\r\nimport './header.css'\r\nimport Offer from '../../offer/offer'\r\nimport Score from '../../score/score'\r\nimport { NoImage } from '../../../constants'\r\nimport { isMobile } from 'react-device-detect';\r\n\r\ntype Props = {\r\n site: string,\r\n rank: number,\r\n sitelink: string,\r\n offertext: string,\r\n score: number\r\n}\r\nfunction ReviewHeader(props: Props) {\r\n const logo = useMemo(() => {\r\n try {\r\n return require(`../../../../images/main/sites-logo/${props.site.toLowerCase()}.png`)\r\n } catch (error) {\r\n return NoImage\r\n }\r\n }, [props])\r\n\r\n return
\r\n
\r\n {props.site}\r\n

{props.site} Review

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n}\r\nexport default ReviewHeader","import React, { useRef, useEffect, lazy, Suspense, useState } from 'react'\r\nimport { useParams, Redirect, useLocation } from 'react-router-dom';\r\nimport ReviewHeader from './header/header';\r\nimport dataTable from '../home/datatable.json'\r\nimport { isMobile } from 'react-device-detect';\r\nimport { RedirectQueryKey, SiteProps } from '../../constants';\r\nimport { GetDocumentTitle, GetMetaDescription } from './content/constants';\r\nimport { SetMetaDescription, SetDocumentTitle } from '../../../common/common';\r\n\r\nconst DesktopReview = lazy(() => import('./desktop/review'))\r\nconst MobileReview = lazy(() => import('./mobile/review'))\r\nconst GoToSite = lazy(() => import('./gotosite/gotosite'))\r\n\r\nconst fixedClass = 'fixed'\r\nconst atTheBottomClass = 'at-the-bottom'\r\nconst nearTheBottomOffset = 90\r\nconst topSitesAmount = 3\r\n\r\ntype SiteDataProps = {\r\n site: string;\r\n sitelink: string;\r\n bnrSitelink: string;\r\n offertext: string;\r\n score: number;\r\n}\r\n\r\nfunction Review() {\r\n const sectionRef = useRef(null)\r\n const [rank, setRank] = useState(-1)\r\n const [topSites, setTopSites] = useState(new Array())\r\n const { site } = useParams();\r\n const [siteData, setSiteData] = useState({ site: '', sitelink: '', offertext: '', score: -1, bnrSitelink: '' })\r\n useEffect(() => {\r\n const _data = dataTable.filter(data => data.site.toLocaleLowerCase() === site.toLocaleLowerCase())[0] as SiteDataProps\r\n setSiteData(_data)\r\n }, [site])\r\n\r\n useEffect(() => {\r\n sectionRef.current?.scrollIntoView({ behavior: 'smooth' })\r\n\r\n const sorted = dataTable.sort((d1, d2) => { return d1.score > d2.score ? -1 : 1 }) as SiteDataProps[]\r\n setRank(sorted.indexOf(siteData) + 1)\r\n setMeta()\r\n\r\n function setMeta() {\r\n if (siteData && siteData.site) {\r\n SetDocumentTitle(GetDocumentTitle(siteData.site))\r\n SetMetaDescription(GetMetaDescription(siteData.site))\r\n }\r\n }\r\n }, [siteData])\r\n\r\n useEffect(() => {\r\n const _topSites = dataTable.sort((d1, d2) => { return d1.score > d2.score ? -1 : 1 }).slice(0, topSitesAmount)\r\n setTopSites(_topSites)\r\n\r\n window.addEventListener('scroll', handleScroll)\r\n function handleScroll(): void {\r\n if (sectionRef.current) {\r\n const sectionPosition = sectionRef.current.getBoundingClientRect().top + window.scrollY\r\n if (window.scrollY > sectionPosition) {\r\n sectionRef.current.classList.add(fixedClass)\r\n } else {\r\n sectionRef.current.classList.remove(fixedClass)\r\n }\r\n\r\n if (isMobile) {\r\n if ((window.innerHeight + window.scrollY + nearTheBottomOffset) >= document.body.offsetHeight) {\r\n sectionRef.current.classList.add(atTheBottomClass)\r\n } else {\r\n sectionRef.current.classList.remove(atTheBottomClass)\r\n }\r\n }\r\n }\r\n }\r\n }, [])\r\n\r\n const query = useQuery()\r\n const externalId = Number(query.get(RedirectQueryKey));\r\n const [goToExternal, setGoToExternal] = useState(false)\r\n useEffect(() => {\r\n if (query) {\r\n setGoToExternal(externalId > 0)\r\n }\r\n }, [query])\r\n\r\n if (!siteData) {\r\n return \r\n }\r\n\r\n function useQuery() {\r\n return new URLSearchParams(useLocation().search);\r\n }\r\n\r\n return
\r\n \r\n
}>\r\n {!isMobile && }\r\n {isMobile && }\r\n
\r\n\r\n {\r\n goToExternal && Loading...}>\r\n \r\n \r\n }\r\n
\r\n}\r\n\r\nexport default Review","import React, { useEffect, Suspense, useState } from 'react'\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common'\r\nimport { RedirectQueryKey } from '../../constants'\r\nimport { useLocation, useParams } from 'react-router-dom'\r\nimport GoToSite from '../../main/review/gotosite/gotosite'\r\nimport dataTable from '../../main/home/datatable.json'\r\n\r\nconst title = 'Who Are We and What We Do?'\r\n\r\nfunction AboutUs() {\r\n const { site } = useParams()\r\n const [sitelink, setSiteLink] = useState('')\r\n const [goToExternal, setGoToExternal] = useState(false)\r\n\r\n useEffect(() => {\r\n SetDocumentTitle(title, true)\r\n SetMetaDescription('Our goal is simple: to offer a comprehensive, impartial, and detailed assessment of the leading live cam websites.')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (site) {\r\n const data = dataTable.filter(data => data.site.toLocaleLowerCase() === site.toLocaleLowerCase())[0]\r\n if (data) {\r\n setSiteLink(data.sitelink)\r\n }\r\n }\r\n }, [site])\r\n\r\n const query = useQuery()\r\n useEffect(() => {\r\n if (query) {\r\n setGoToExternal(Number(query.get(RedirectQueryKey)) > 0)\r\n }\r\n }, [query])\r\n\r\n function useQuery() {\r\n return new URLSearchParams(useLocation().search)\r\n }\r\n\r\n return
\r\n

{title}

\r\n

Our goal is simple: to offer a comprehensive, impartial, and detailed assessment of the leading live cam websites. Our reviewers are seasoned video cam enthusiasts with a deep understanding of the evolution of camming platforms, as well as expertise in user-friendly web design and interfaces.\r\n

What's the Review Process Like?\r\n

Our thorough process encompasses crucial details, including pricing, model availability, and quality, along with often-overlooked factors that new webcam users might not consider, such as site layout, camera quality, and unique features. Our team members have extensively explored each reviewed site at various times of the day, engaging with its features as free or unregistered users, paying members, and premium subscribers.\r\n

Why Should You Trust Us?\r\n

We've done the leg work! Our reviews are unsolicited and are unpaid by external sites.\r\n

How Do We Make Money?\r\n

We make our money through referral links.\r\n

How Do We Decide Which Sites to Review?\r\n

Our team members access the websites, engage in conversations and interactions with the models, and thoroughly evaluate the platform's diverse features. Additionally, we consider factors such as popularity, model selection, average per-minute pricing, feedback from users, the site's longevity, its security measures, and many other aspects during our assessment.\r\n {\r\n goToExternal && Loading...}>\r\n \r\n \r\n }\r\n
\r\n}\r\nexport default AboutUs","import React, { useEffect } from 'react'\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common'\r\n\r\nfunction AboutWebcams() {\r\n useEffect(() => {\r\n SetDocumentTitle('Read About Webcams', true)\r\n SetMetaDescription('Webcam technology, now available in various forms and sizes, captures real-time video and images, transmitting them over the Internet.')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n\r\n return
\r\n

What Is a Webcam?

\r\n
Webcam technology, now available in various forms and sizes, captures real-time video and images, transmitting them over the Internet. Webcams can be standalone devices connected to a computer via wires or built into computers and cellphones. They facilitate video chat sessions for communication near and far.\r\n
Webcam software allows users to record and live-stream videos on various online platforms. Due to high bandwidth requirements, videos are typically compressed for streaming and uploading.\r\n
Modern webcams serve numerous purposes, including healthcare, video monitoring, e-commerce, video calls, security, content creation, input control, astrophotography, and more. They have become integral to our daily lives, connecting people globally and enhancing safety and communication.\r\n

Webcamming History

\r\n
While not necessarily the first, Jenny Ringley, a 1996 American college student and conceptual artist, stands out as one of the earliest and most successful pioneers in this field. She created \"JenniCam,\" a live webcam in her dorm room, capturing moments ranging from everyday activities like brushing teeth and doing laundry to the more intimate stripteases, all broadcasted on the Internet automatically.\r\n
In 1998, a commercial site named AmandaCam followed suit, aiming to replicate JenniCam's concept with multiple cameras capturing mundane and alluring moments around the performer's house. However, Amanda realized the potential for even greater popularity by enabling live chat between performers and viewers. This innovation marked the beginning of webcamming's evolution into a multibillion-dollar industry, with an average of at least 12,500 cam models online and over 240,000 viewers at any given time today.\r\n
\r\n

A New Way for Personal Connection and Interaction

\r\n
Modern day webcamming is extremely interactive and playful and there is even a choice between interacting with performers privately, through a private chat, or publicly on a chat to which other viewers can join in. With the use of keyboards, audio, and two-way cameras performers and viewers can have an almost personal interaction with each other, getting to put a face behind someone’s keystrokes. Commonly in public chat rooms viewers can see the performer’s and other viewers’ comments as scrolling text alongside the live video stream. The performers frequently read and respond to the scrolling viewer comments. In a private session, viewers can choose to remain hidden behind their keyboard or reveal themselves by turning on their own camera.\r\n

Different Types of Chat

\r\n

Private Chats

\r\n
A private chat is a way for a viewer to communicate and interact with the model privately. To start a Private Chat, viewers will need to be registered to the specific website’s service, have credit in their account and press a “Start Private” button. Private chats are billed by the minute, but the both the performer and viewer have the power to stop the session at any time. A private chat will stop automatically when the user runs out of tokens.\r\n

Cam2Cam Show

\r\n
Cam2Cam Shows allow viewers to interact with the model face-to-face. This means that during this session, user can choose to turn on their own webcam and be seen by the model on the other end. To start a Cam2Cam, viewers will need to be registered to the specific website’s service, have credit in their account and press a Cam2Cam Show button. Cam2Cam Shows are billed by the minute, but the both the performer and viewer have the power to stop the session at any time, and it stops automatically when the user runs out of tokens.\r\n
\r\n

Spy Chats

\r\n
Spy Chat allow users to spy on other viewers private chats, without being an active participant. Spies cannot chat directly with the model and the paying user is not aware of their presence. They can only be passive viewers during that session.\r\n
\r\n}\r\nexport default AboutWebcams","import React, { useEffect } from 'react'\r\nimport { ContactEmail } from '../../constants'\r\nimport { SetDocumentTitle, SetMetaDescription } from '../../../common/common'\r\n\r\nconst title = 'Contact Us'\r\n\r\nfunction ContactUs() {\r\n useEffect(() => {\r\n SetDocumentTitle(title, true)\r\n SetMetaDescription('For any questions, remarks or you just want to share your thoughts')\r\n window.scroll(\r\n {\r\n top: 0,\r\n behavior: 'smooth'\r\n }\r\n )\r\n }, [])\r\n\r\n return
\r\n

{title}

\r\n

For any questions, remarks or you just want to share your thoughts\r\n

Feel free to contact us by emailing to {ContactEmail}\r\n
\r\n}\r\nexport default ContactUs","import React, { useRef, useEffect } from 'react'\r\nimport { Switch, Route, useLocation } from 'react-router-dom'\r\nimport Home from './home/home'\r\nimport Privacy from '../footer/privacy/privacy'\r\nimport CookiePolicy from '../footer/coockiepolicy/coockiepolicy'\r\nimport Terms from '../footer/terms/terms'\r\nimport { TransitionGroup, CSSTransition } from 'react-transition-group'\r\nimport Review from './review/review'\r\nimport AboutUs from '../header/aboutus/aboutus'\r\nimport AboutWebcams from '../header/aboutwebcams/aboutwebcams'\r\nimport { isMobile } from 'react-device-detect'\r\nimport ContactUs from '../footer/contactus/contactus'\r\nimport { SetMetaDescription, SetDocumentTitle } from '../../common/common'\r\nimport { PromocodeKey } from '../constants'\r\n\r\nfunction Main() {\r\n const nodeRef = useRef(null)//prevents Warning: findDOMNode is deprecated in StrictMode\r\n const location = useLocation()\r\n\r\n function onLeave(): void {\r\n SetDocumentTitle()\r\n SetMetaDescription();\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if (window.location.pathname !== '/') {\r\n return\r\n }\r\n\r\n const query = new URLSearchParams(window.location.search)\r\n handleTrackingТemplate();\r\n ///when user arrive via google links with params\r\n function handleTrackingТemplate(): void {\r\n let promo = ''\r\n query.forEach((v, k) => {\r\n promo += `_${decodeURIComponent(v)}`;\r\n });\r\n\r\n localStorage.setItem(PromocodeKey, promo)\r\n window.history.pushState({}, document.title, '/')\r\n }\r\n }, [])\r\n\r\n return <>\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n}\r\nexport default Main","import React from 'react'\r\nimport {\r\n BrowserRouter as Router\r\n} from \"react-router-dom\"\r\n\r\nimport Header from './components/header/header'\r\nimport Footer from './components/footer/footer'\r\nimport { isMobile } from 'react-device-detect'\r\nimport Main from './components/main/main'\r\n//import StartupPopup from './components/popups/StartupPopup'\r\n\r\nfunction App() {\r\n return (\r\n
\r\n \r\n
\r\n
\r\n
\r\n {/* */}\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}