function FindProxyForURL(url, host) { // Internal network check if (isInNet(myIpAddress(), "10.0.0.0", "255.0.0.0")) { if (isResolvable("fctc-pdc.fcschools.net")) { return "DIRECT"; } } // Internal FQDNs that bypass proxy if (dnsDomainIs(host, ".fcschools.net")) { return "DIRECT"; } // Recommended exceptions (Google-related services) var recExceptions = [ // Most Google services ".googleapis.com", ".gstatic.com", ".googleusercontent.com", "clients1.google.com", "clients2.google.com", "clients3.google.com", "clients4.google.com", "clients5.google.com", "clients6.google.com", "accounts.google.com", "tools.google.com", "pack.google.com", // Google Classroom "classroom.google.com", "edu.google.com", // Chromebooks "gweb-gettingstartedguide.appspot.com", "omahaproxy.appspot.com", // Google Drive "drive.google.com", "googledrive.com", // Google Docs "docs.google.com", "googledocs.com" ]; // Zoom-related domains var zoomDomains = [ "zoom.com", "zoom.us", ".zoom.us" // Adding a wildcard for subdomains, adjust as needed ]; // Main list of domains to bypass proxy (go DIRECT) var directDomains = [ ".1e100.net", ".1rx.io", ".2mdn.net", ".33across.com", ".35.52.135", ".360cities.net", ".360gigapixels.com", ".3lift.com", ".8notes.com", ".a-mo.net", ".abcya.com", ".act-rapidreview-ondemand.kaptest.com", ".acuityplatform.com", ".ada.support", ".adaptv.advertising.com", ".adform.net", ".adkernel.com", ".adlightning.com", ".admanmedia.com", ".admedo.com", ".admeen.org", ".admetricspro.com", ".adnxs.com", ".adobe.com", ".adobedtm.com", ".adroll.com", ".adroll.mgr.consensu.org", ".ads.152media.com", ".ads.linkedin.com", ".ads-twitter.com", ".adsafeprotected.com", ".adsrvr.org", ".adsymptotic.com", ".adtelli.com", ".adtelligent.com", ".advangelists.com", ".advertising.com", ".agkn.com", ".airpr.com", ".akamai.com", ".akamaihd.net", ".akamaized.net", ".akstat.io", ".algolia.net", ".alphonso.tv", ".alexametrics.com", ".amazon-adsystem.com", ".amazonaws.com", ".amplitude.com", ".ampproject.org", ".analytics.edgekey.net", ".analytics.yahoo.com", ".apexlearning.com", ".apexvs.com", ".api.drift.com", ".api.godaddy.com", ".api.segment.io", ".api.shoelacelearning.com", ".appboycdn.com", ".appcues.com", ".appspot.com", ".archive.org", ".aristotle.com", ".aristotleinsight.com", ".artsonia.com", ".aspnetcdn.com", ".audionautix.com", ".avct.cloud", ".azurewebsites.net", ".b.ebscohost.com", ".bam.nr-data.net", ".bandlab.com", ".bat.bing.com", ".berkeley.edu", ".bfmio.com", ".bigbluebutton.org", ".bidswitch.net", ".bing.com", ".blob.core.windows.net", ".blooket.com", ".bluekai.com", ".bls.gov", ".boomlearning.com", ".bootstrapcdn.com", ".box.com", ".brainpop.com", ".brand-display.com", ".brightstorm.com", ".bttrack.com", ".bugsnag.com", ".cachefly.net", ".cainc.com", ".calendly.com", ".calmcactus.com", ".cameratag.com", ".canva.com", ".canvaslms.com", ".carbonads.com", ".casalemedia.com", ".cdn.education.com", ".cdn.famobi.com", ".cdn.optimizely.com", ".cdn.segment.com", ".cdn.turner.com", ".cdn-apple.com", ".cfnc.org", ".chat.api.drift.com", ".chartbeat.com", ".chartbeat.net", ".cheqzone.com", ".chimpstatic.com", ".chromeexperiments.com", ".ci360.sas.com", ".ck12.org", ".classcraft.com", ".classdojo.com", ".clean.gg", ".clever.com", ".clickagy.com", ".clickdimensions.com", ".clicktale.net", ".clients7.google.com", ".cloud.techsmith.com", ".cloud.unity3d.com", ".cloudflare.com", ".cloudflareinsights.com", ".cloudfront.net", ".cloudinary.com", ".code.org", ".codepen.io", ".cognimates.me", ".collegeboard.org", ".colorado.edu", ".commonapp.org", ".commonlit.org", ".commonsensemedia.org", ".company-target.com", ".composer.nprstations.org", ".contextweb.com", ".cookielaw.org", ".cookiepro.com", ".cookie-script.com", ".coolkindergarten.com", ".cpr.org", ".cprnetwork.org", ".crazyegg.com", ".creativecdn.com", ".creative-serving.com", ".criteo.com", ".criteo.net", ".crwdcntrl.net", ".ctfassets.net", ".culinaryschools.org", ".curriculumassociates.com", ".customer.io", ".d15nky150t51n6.cloudfront.net", ".d41.co", ".datadoghq-browser-agent.com", ".datatables.net", ".deepintent.com", ".deltamath.com", ".demandbase.com", ".demdex.net", ".didax.com", ".digitalgov.gov", ".disqus.com", ".districtm.ca", ".districtm.io", ".dlx.addthis.com", ".documentaryheaven.com", ".dol.gov", ".donorbox.org", ".dotomi.com", ".doubleclick.net", ".doubleverify.com", ".doxy.me", ".dp.la", ".drift.com", ".driftt.com", ".dx.steelhousemedia.com", ".eb.com", ".ebsco.com", ".ebscohost.com", ".edgenuity.com", ".edpuzzle.com", ".education.com", ".educationgalaxy.com", ".educator.com", ".edulastic.com", ".elluciancloud.com", ".emerse.com", ".emxdgt.com", ".engagio.com", ".ensighten.com", ".eqads.com", ".events.ubembed.com", ".everesttech.net", ".exelator.com", ".expo9.exponential.com", ".explorelearning.com", ".extend.tv", ".eyeota.net", ".ezodn.com", ".ezoic.net", ".facebook.com", ".facebook.net", ".famobi.com", ".feathr.co", ".feedburner.com", ".feedserver-enterprise.googleusercontent.com", ".filestackapi.com", ".firebase.com", ".fireflyengagement.com", ".flipgrid.com", ".flocabulary.com", ".fls.doubleclick.net", ".flvs.net", ".flvsgl.com", ".fontawesome.com", ".fonts.net", ".force.com", ".foresee.com", ".fox.com", ".freddiethefrog.com", ".fridaybraingames.com", ".fuelthebrain.com", ".fullstory.com", ".fun4thebrain.com", ".funbrain.com", ".g.doubleclick.net", ".g2crowd.com", ".gamesxl.com", ".geogebra.org", ".getclicky.com", ".getdrip.com", ".getepic.com", ".getmdl.io", ".getsitecontrol.com", ".gg.google.com", ".ggpht.com", ".github.io", ".githubusercontent.com", ".global.siteimproveanalytics.io", ".gmail.com", ".gmodules.com", ".go-mpulse.net", ".goformative.com", ".gonoodle.com", ".google-analytics.com", ".google.com", ".googleadservices.com", ".googlesyndication.com", ".googletagmanager.com", ".googlevideo.com", ".gravatar.com", ".grinchhourofcode.com", ".groups.google.com", ".guidedreaders.com", ".gumgum.com", ".hb.ad.cpe.dotomi.com", ".headerlift.com", ".heapanalytics.com", ".heatmap.it", ".hellobar.com", ".hellomedian.com", ".helpscout.net", ".hotjar.com", ".hotjar.io", ".hs-analytics.net", ".hs-banner.com", ".hs-scripts.com", ".hsadspixel.net", ".hscollectedforms.net", ".hsforms.com", ".hsforms.net", ".hsleadflows.net", ".html5games.com", ".hubapi.com", ".hubspot.com", ".hybrid.ai", ".hyros.com", ".icivics.org", ".icons8.com", ".id5-sync.com", ".identitymgmt.net", ".images.ctfassets.net", ".imgix.net", ".imgur.com", ".impactradius-event.com", ".improvedigital.com", ".imsglobal.org", ".increasingly.co", ".indexww.com", ".indicative.com", ".infinityads.com", ".instructure.com", ".intentiq.com", ".intercom.io", ".intercomassets.com", ".intercomcdn.com", ".intergi.com", ".intergient.com", ".ip-api.com", ".ipfind.co", ".ipredictive.com", ".i-ready.com", ".ixl.com", ".jigidi.com", ".jigsawplanet.com", ".jigzone.com", ".jostens.com", ".jquery.com", ".js.ubembed.com", ".jsdelivr.net", ".juniorlibraryguild.com", ".jwplatform.com", ".jwplayer.com", ".jwpltx.com", ".jwpsrv.com", ".kahoot.com", ".kahoot.it", ".kaltura.com", ".kamiapp.com", ".kamihq.com", ".kampyle.com", ".kastatic.org", ".khanacademy.org", ".kidsafeseal.com", ".kidsa-z.com", ".kinstacdn.com", ".kochava.com", ".krxd.net", ".kyanacedmy.org", ".la1-c2-ia4.salesforceliveagent.com", ".la3-c2-phx.salesforceliveagent.com", ".lalilo.com", ".laptoplookout.com", ".learninga-z.com", ".learninggamesforkids.com", ".learnosity.com", ".legendsoflearning.com", ".liadm.com", ".licdn.com", ".lijit.com", ".litix.io", ".live.net", ".livechatinc.com", ".livehelpnow.net", ".lr-ingest.io", ".lytics.io", ".mail.google.com", ".mailchimp.com", ".mandalamaker.online", ".marketo.com", ".marketo.net", ".match.adsrvr.org", ".matchthememory.com", ".mathplayground.com", ".mathtag.com", ".mcxplatform.de", ".media.net", ".meteor.com", ".mfadsrvr.com", ".mgr.consensu.org", ".mheducation.com", ".mhlearnsmart.com", ".microsoft.com", ".mixpanel.com", ".mktoresp.com", ".ml-api.io", ".ml-attr.com", ".moatads.com", ".mobymax.com", ".momagic.com", ".monsido.com", ".mookie1.com", ".msn.com", ".munchkin.marketo.net", ".musicfirst.com", ".musicfirstclassroom.com", ".musick8.com", ".musick8kids.com", ".musicplayonline.com", ".musicteachersgames.com", ".musictheory.net", ".mxpnl.com", ".my.vgcc.edu", ".myamericanfarm.org", ".myfonts.net", ".mypearson.com", ".nashcc.edu", ".nationalgeographic.com", ".ncedcloud.org", ".ncsu.edu", ".nctm.org", ".ncwiseowl.org", ".neal.fun", ".nearpod.com", ".netmng.com", ".newconnect.mheducation.com", ".newrelic.com", ".newsela.com", ".ngd.yahoo.com", ".ngeo.com", ".nr-data.net", ".nrich.ai", ".nyc3.cdn.digitaloceanspaces.com", ".olark.com", ".omappapi.com", ".onenote.office.net", ".onesignal.com", ".onetag-sys.com", ".onlinemathlearning.com", ".openlightbox.com", ".openx.net", ".opmnstr.com", ".optimizely.com", ".oup.com", ".outbrain.com", ".owneriq.net", ".p.adsymptotic.com", ".p.jwpcdn.com", ".padlet.com", ".padlet.net", ".padlet.pics", ".padletcdn.com", ".pages.ubembed.com", ".pangle-ads.com", ".pardot.com", ".parsely.com", ".partners.tremorhub.com", ".pathwright.com", ".pathwrightcdn.com", ".paypal.com", ".paypalobjects.com", ".pbs.org", ".pbslearningmedia.org", ".pcrl.co", ".pearson.com", ".pearsonassessments.com", ".pearsoned.com", ".peepandthebigwideworld.com", ".pendo.io", ".perfectaudience.com", ".picreel.com", ".pingdom.net", ".pinkcatgames.com", ".pinterest.com", ".pinimg.com", ".pippio.com", ".plasma.games", ".play.vidyard.com", ".playwire.com", ".pndsn.com", ".poetryfoundation.org", ".polyfill.io", ".postaffiliatepro.com", ".powr.io", ".powerschool.com", ".primis.tech", ".prismic.io", ".prod.bidr.io", ".prodigy.com", ".prodigygame.com", ".profitwell.com", ".pro-market.net", ".psonsvc.net", ".publicbroadcasting.net", ".pubmatic.com", ".pusher.com", ".pushnami.com", ".puzzlebaron.com", ".px.ads.linkedin.com", ".px.steelhousemedia.com", ".qrserver.com", ".quantcast.mgr.consensu.org", ".quantcount.com", ".quantserve.com", ".quia.com", ".quizizz.com", ".quizlet.com", ".ravenjs.com", ".rawgit.com", ".raz-kids.com", ".razorpay.com", ".rd.linksynergy.com", ".readworks.org", ".reddit.com", ".redditstatic.com", ".report-uri.com", ".resonate.com", ".reson8.com", ".responsivevoice.org", ".review.statsmedic.com", ".reviewgamezone.com", ".rfihub.com", ".rhombusads.com", ".rlcdn.com", ".rogueone.com", ".roomrecess.com", ".rtk.io", ".rubiconproject.com", ".ruzuku.com", ".ryanandcraig.com", ".s.moatpixel.com", ".s3.amazonaws.com", ".s3.ap-south-1.amazonaws.com", ".s3-us-west-2.amazonaws.com", ".safeframe.googlesyndication.com", ".safesha.re", ".safeshare.tv", ".safeshare.video", ".safeyoutube.net", ".salesloft.com", ".samplicio.us", ".santasnorthpole.com", ".sc-static.net", ".scarabresearch.com", ".sc.omtrdc.net", ".scatec.io", ".schemaapp.com", ".schoolnet.com", ".scorecardresearch.com", ".screencast.com", ".search.spotxchange.com", ".secure.force.com", ".secureserver.net", ".seesaw.me", ".segment.com", ".segment.io", ".sentry-cdn.com", ".sentry.io", ".servenobid.com", ".serverbid.com", ".services.pbs.org", ".services.visualstudio.com", ".serving-sys.com", ".sharethis.com", ".sharethis.mgr.consensu.org", ".sharethrough.com", ".sheppardsoftware.com", ".shib.ncsu.edu", ".shmoop.com", ".shoelacegaming.com", ".shoelacelearning.com", ".sightreadingfactory.com", ".simpli.fi", ".siteimproveanalytics.com", ".sitescout.com", ".skoolbo.com", ".smadex.com", ".smartmusic.com", ".smartyants.com", ".snap.licdn.com", ".snapchat.com", ".socdm.com", ".sonobi.com", ".soundtrap.com", ".spark.adobe.com", ".speedcurve.com", ".spellingcity.com", ".splashlearn.com", ".splashmath.com", ".split.io", ".sportradarserving.com", ".spotify.com", ".spotxcdn.com", ".spotxchange.com", ".spreadsheets.google.com", ".squarespace-cdn.com", ".squarespace.com", ".srv.stackadapt.com", ".ssl.cf1.rackcdn.com", ".ssl.google-analytics.com", ".ssl.gstatic.com", ".ssp.yahoo.com", ".static.criteo.net", ".staticflickr.com", ".statcounter.com", ".statsmedic.com", ".statuspage.io", ".steelhousemedia.com", ".stickyadstv.com", ".storymagic.co", ".storynory.com", ".stripe.com", ".stripe.network", ".strivescan.com", ".stumbleupon.com", ".studiesweekly.com", ".stun.twilio.com", ".switchzoo.com", ".taboola.com", ".tapad.com", ".tate.org.uk", ".targeting.unrulymedia.com", ".tawk.to", ".teachyourmonstertoread.com", ".techsmith.com", ".technoratimedia.com", ".techtarget.com", ".textbookequity.org", ".texthelp.com", ".tfaforms.net", ".thesingingclassroom.com", ".thinkcuriously.com", ".thisiswaldo.com", ".tidaltv.com", ".todaysclass.com", ".toytheater.com", ".tracking.markethero.io", ".trackjs.com", ".trendemon.com", ".tribalfusion.com", ".trkn.us", ".trustarc.com", ".ttrockstars.com", ".tubemogul.com", ".turn.com", ".twitter.com", ".tynt.com", ".typekit.com", ".typekit.net", ".typing.com", ".uca.cloud.unity3d.com", ".unbounce.com", ".undertone.com", ".unpkg.com", ".unrulymedia.com", ".us-east-1.amazonaws.com", ".us-east-4.districtm.io", ".us2.list-manage.com", ".vgcc.edu", ".video.google.com", ".video.playwire.com", ".vidyard.com", ".vimeo.com", ".vimeocdn.com", ".vindicosuite.com", ".virtualpiano.net", ".vo.msecnd.net", ".vocabularya-z.com", ".vortex.data.microsoft.com", ".w.org", ".w3schools.com", ".w55c.net", ".walkme.com", ".webtrendslive.com", ".whiteboard.fi", ".whitehatjr.com", ".wikimedia.org", ".wildaboutmath.com", ".wisepops.com", ".wistia.com", ".wistia.net", ".wp.com", ".wsimg.com", ".wzrkt.com", ".xtramath.org", ".xx.fbcdn.net", ".yahoo.com", ".yearbookavenue.jostens.com", ".yieldmo.com", ".yimg.com", ".yotpo.com", ".youtube-nocookie.com", ".youtube.com", ".yt3.ggpht.com", ".ytimg.com", ".zdassets.com", ".zemanta.com", ".zendesk.com", ".zippyfrog.co", ".zoo.sandiegozoo.org", ".zopim.com", ".zscalerone.net", "628-zpe-510.mktoresp.com", "abcya.com", "ajax.googleapis.com", "battlequestions.com", "blob-s-docs.googlegroups.com", "calendar.google.com", "chart.apis.google.com", "chatenabled.mail.google.com", "christinarasmussen.com", "classroom.gooogle.com", "creatingmusic.com", "deltamath.com", "explorelearning.com", "freddiethefrog.com", "gmodules.comaccounts.google.com", "pinkcatgames.com", "purposegames.com", "scatec.io", "sites.google.com", "t.co", "upload.docs.google.com", "upload.video.google.com" ]; // Combine all domain arrays dynamically (add new arrays here) var allDomainArrays = [recExceptions, zoomDomains, directDomains]; var allDomains = [].concat.apply([], allDomainArrays); // Flatten into a single array var pattern = new RegExp("(" + allDomains.map(function(d) { return d.replace(/\./g, "\\."); }).join("|") + ")$", "i"); // Test if host matches any direct domain or exception if (pattern.test(host)) { return "DIRECT"; } // Default: Send all other traffic to proxy with failover return "PROXY franklin-sec.zs.ncren.net:9443; PROXY franklin-pri.zs.ncren.net:9443"; }