/*! elementor-pro - v3.26.0 - 17-12-2024 */ (()=>{"use strict";class Screenshot extends elementorModules.ViewModule{getDefaultSettings(){return{empty_content_headline:"Empty Content.",crop:{width:1200,height:1500},excluded_external_css_urls:["https://kit-pro.fontawesome.com"],external_images_urls:["https://i.ytimg.com"],timeout:15e3,render_timeout:5e3,timerLabel:null,timer_label:`${ElementorScreenshotConfig.post_id} - timer`,image_placeholder:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=",isDebug:elementorCommonConfig.isElementorDebug,isDebugSvg:!1,...ElementorScreenshotConfig}}getDefaultElements(){const e=jQuery(ElementorScreenshotConfig.selector),t=e.find(".elementor-section-wrap > .elementor-section, .elementor > .elementor-section");return{$elementor:e,$sections:t,$firstSection:t.first(),$notElementorElements:elementorCommon.elements.$body.find("> *:not(style, link)").not(e),$head:jQuery("head")}}onInit(){return super.onInit(),this.log("Screenshot init","time"),this.timeoutTimer=setTimeout(this.screenshotFailed.bind(this),this.getSettings("timeout")),this.captureScreenshot()}captureScreenshot(){return this.elements.$elementor.length||(elementorCommon.helpers.consoleWarn("Screenshots: The content of this page is empty, the module will create a fake conent just for this screenshot."),this.createFakeContent()),this.removeUnnecessaryElements(),this.handleIFrames(),this.removeFirstSectionMargin(),this.handleLinks(),this.loadExternalCss(),this.loadExternalImages(),Promise.resolve().then(this.createImage.bind(this)).then(this.createImageElement.bind(this)).then(this.cropCanvas.bind(this)).then(this.save.bind(this)).then(this.screenshotSucceed.bind(this)).catch(this.screenshotFailed.bind(this))}createFakeContent(){this.elements.$elementor=jQuery("
").css({height:this.getSettings("crop.height"),width:this.getSettings("crop.width"),display:"flex",alignItems:"center",justifyContent:"center"}),this.elements.$elementor.append(jQuery("

").css({fontSize:"85px"}).html(this.getSettings("empty_content_headline"))),document.body.prepend(this.elements.$elementor)}loadExternalCss(){const e=[this.getSettings("home_url"),...this.getSettings("excluded_external_css_urls")].map((e=>`[href^="${e}"]`)).join(", ");jQuery("link").not(e).each(((e,t)=>{const s=jQuery(t),n=s.clone();n.attr("href",this.getScreenshotProxyUrl(s.attr("href"))),this.elements.$head.append(n),s.remove()}))}loadExternalImages(){const e=this.getSettings("external_images_urls").map((e=>`img[src^="${e}"]`)).join(", ");jQuery(e).each(((e,t)=>{const s=jQuery(t);s.attr("src",this.getScreenshotProxyUrl(s.attr("src")))}))}handleIFrames(){this.elements.$elementor.find("iframe").each(((e,t)=>{const s=jQuery(t),n=jQuery("
",{css:{background:"gray",width:s.width(),height:s.height()}});s.before(n),s.remove()}))}removeUnnecessaryElements(){let e=0;this.elements.$sections.filter(((t,s)=>{let n=!1;return e>=this.getSettings("crop.height")&&(n=!0),e+=jQuery(s).outerHeight(),n})).each(((e,t)=>{t.remove()})),this.elements.$notElementorElements.remove()}handleLinks(){elementorCommon.elements.$body.find("a").attr("href","/")}removeFirstSectionMargin(){this.elements.$firstSection.css({marginTop:0})}createImage(){const e=new Promise((e=>{window.addEventListener("load",(()=>{e()}))})),t=new Promise((e=>{setTimeout((()=>{e()}),this.getSettings("render_timeout"))}));return Promise.race([e,t]).then((()=>{if(this.log("Start creating screenshot."),this.getSettings("isDebugSvg"))return domtoimage.toSvg(document.body,{imagePlaceholder:this.getSettings("image_placeholder")}).then((e=>this.download(e))),Promise.reject("Debug SVG.");return/^((?!chrome|android).)*safari/i.test(window.userAgent)?(this.log('Creating screenshot with "html2canvas"'),html2canvas(document.body).then((e=>e.toDataURL("image/png")))):(this.log('Creating screenshot with "dom-to-image"'),domtoimage.toPng(document.body,{imagePlaceholder:this.getSettings("image_placeholder")}))}))}download(e){const t=jQuery("",{href:e,download:"debugSvg.svg",html:"Download SVG"});elementorCommon.elements.$body.append(t),t.trigger("click")}createImageElement(e){const t=new Image;return t.src=e,new Promise((e=>{t.onload=()=>e(t)}))}cropCanvas(e){const t=this.getSettings("crop.width"),s=this.getSettings("crop.height"),n=document.createElement("canvas"),i=n.getContext("2d"),o=t/e.width;return n.width=t,n.height=s>e.height?e.height:s,i.drawImage(e,0,0,e.width,e.height,0,0,e.width*o,e.height*o),Promise.resolve(n)}save(e){return new Promise(((t,s)=>{elementorCommon.ajax.addRequest("screenshot_save",{data:{post_id:this.getSettings("post_id"),screenshot:e.toDataURL("image/png")},success:e=>{this.log(`Screenshot created: ${encodeURI(e)}`),t(e)},error:()=>{this.log("Failed to create screenshot."),s()}})}))}markAsFailed(){return new Promise(((e,t)=>{elementorCommon.ajax.addRequest("screenshot_failed",{data:{post_id:this.getSettings("post_id")},success:()=>{this.log("Marked as failed."),e()},error:()=>{this.log("Failed to mark this screenshot as failed."),t()}})}))}getScreenshotProxyUrl(e){return`${this.getSettings("home_url")}?screenshot_proxy&nonce=${this.getSettings("nonce")}&href=${e}`}screenshotSucceed(e){this.screenshotDone(!0,e)}screenshotFailed(e){this.log(e,null),this.markAsFailed().then((()=>this.screenshotDone(!1)))}screenshotDone(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;clearTimeout(this.timeoutTimer),this.timeoutTimer=null,window.parent.postMessage({name:"capture-screenshot-done",success:e,id:this.getSettings("post_id"),imageUrl:t},"*"),this.log(`Screenshot ${e?"Succeed":"Failed"}.`,"timeEnd")}log(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"timeLog";this.getSettings("isDebug")&&(console.log("string"==typeof e?`${this.getSettings("post_id")} - ${e}`:e),t&&console[t](this.getSettings("timer_label")))}}jQuery((()=>{new Screenshot}))})(); The Tach - Page 9 of 14 -

Beyond Code: The AI Dungeon: An Immersive Adventure

Beyond Code

Beyond Code: The AI Dungeon is a shining illustration of how artificial intelligence games are transforming the gaming industry. Players go on a dynamic and constantly changing journey in this game. Where every decision they make forges a new narrative route. AI-driven narrative and interacting AI narrative components that respond to each player’s choices are … Read more

The Top 5 programming language choices for Hackers in 2025

Ethical hacking

For those aspiring cybersecurity experts and ethical hackers in preparation for 2025, it’s essential to learn the programming language that will dominate hacking. Competence in dialects that can effectively detect, evaluate, and attack weaknesses is crucial in the constantly changing field of cyber. Any language has a distinct purpose in hacking, whether it be creating … Read more

Notorious Hacker Group TeamTNT Launches New Cloud Attacks for Crypto Mining

Notorious Hacker Group TeamTNT

The Notorious Hacker Group TeamTNT, is officially one of the worst threats to the world of cybersecurity as of late, primarily due to their use of cloud environments for their exploits. Recently, TeamTNT has expanded its activity with a massive campaign where it uses methods based on cloud-native systems for cryptocurrency mining and malware distribution. … Read more

Apple AI $1 Million Reward to Secure Its Cloud

Apple bug bounty

Apple AI has introduced an exciting $1 million reward to encourage security researchers to find vulnerabilities in its Apple AI. This ambitious program invites ethical hackers to hack Apple cloud and report weaknesses, helping Apple reinforce AI cloud security. Apple’s bug bounty program provides incentives to strengthen defenses and protect customer data as cybersecurity threats … Read more

Retrospective Study of AI’s Effect on Video Games: F.E.A.R.

The video game F.E.A.R.

The video game F.E.A.R. released by Monolith Productions revolutionized the first-person shooter genre by experimenting with computational intelligence (AI) game elements to previously unheard-of levels. This 2005 release set a new standard for AI-driven horror games by fusing captivating horror perspectives with incredible F.E.A.R. enemy AI. Players had to contend with a lifelike and reactive … Read more

Swisscom Combines Netflix & Disney+ in New Blue Binge Package

Blue Binge

Swisscom, which was among one of the leading broadband providers in Switzerland, has introduced the Blue Binge package, a state-of-the-art steaming bundle. By integrating Netflix and Disney+ into a single membership, the latest Swisscom bundle aims to simplify and enhance the use of streaming services for Swiss customers. By offering the Blue Binge subscription, Swisscom … Read more

The Rise of Autonomous Vehicles: Challenging the Transport Industry about the Digital Economy

Autonomous Vehicles

The rise of Autonomous Vehicles is already changing transport systems. These are Autonomous Vehicles that operate through technological platforms and artificial intelligence to operate independently. In the future, self-driving cars can turn around the concept of transportation. That is not all – enhancing road safety, environmental conservation and so much more. Now let’s consider the change that AVs … Read more

WhatsApp Unveils the Custom Sticker Creation Feature for Users

WhatsApp custom stickers

One of the most widely used instant messaging services WhatsApp has unveiled an entertaining and encouraging new feature known as the ability to build your WhatsApp custom stickers. It is shared today to remove the dependency on third-party applications for the sharing stickers feature. For now, the option is available in the WhatsApp beta for … Read more

Destiny 2 Festival of the Lost 2024 | Release Date and Other Details

Destiny 2 Festival of the Lost 2024

Destiny 2 Festival of the Lost 2024 is back, bringing a festive Halloween spirit to the game universe. Since this year’s event has started later than usual. Bungie has prepared a series of activities, masks, and rewards for the Guardians. From new armor ornaments to changes in Spectral Pages, players will find unique twists that … Read more