Help
RSS
API
Feed
Maltego
Contact
Domain > www.92tilinfinity.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-10-04
173.222.249.18
(
ClassC
)
2024-10-04
173.222.249.58
(
ClassC
)
2026-01-13
23.41.4.72
(
ClassC
)
Port 80
HTTP/1.1 403 ForbiddenServer: AkamaiGHostMime-Version: 1.0Content-Type: text/htmlContent-Length: 375Expires: Tue, 13 Jan 2026 13:38:09 GMTDate: Tue, 13 Jan 2026 13:38:09 GMTConnection: close HTML>HEAD>TITLE>Access Denied/TITLE>/HEAD>BODY>H1>Access Denied/H1> You dont have permission to access http://www.92tilinfinity.com/ on this server.P>Reference #18.56532217.1768311488.1f1d1393P>https://errors.edgesuite.net/18.56532217.1768311488.1f1d1393/P>/BODY>/HTML>
Port 443
HTTP/1.1 200 OKServer: nginxContent-Type: text/html; charsetUTF-8X-Drupal-Dynamic-Cache: HITContent-Language: enX-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINLast-Modified: Fri, 02 Jan 2026 12:50:19 GMTETag: 1767358219X-Generator: Drupal 10 (https://www.drupal.org)X-Drupal-Cache: HITX-Request-ID: v-dd094428-f083-11f0-874c-af06717f0bc0X-AH-Environment: 06liveX-Cache-Hits: 1X-Age: 530Cache-Control: public, max-age600Expires: Tue, 13 Jan 2026 13:48:09 GMTDate: Tue, 13 Jan 2026 13:38:09 GMTTransfer-Encoding: chunkedConnection: keep-aliveConnection: Transfer-Encoding !DOCTYPE html>html langen dirltr prefixcontent: http://purl.org/rss/1.0/modules/content/ dc: http://purl.org/dc/terms/ foaf: http://xmlns.com/foaf/0.1/ og: http://ogp.me/ns# rdfs: http://www.w3.org/2000/01/rdf-schema# schema: http://schema.org/ sioc: http://rdfs.org/sioc/ns# sioct: http://rdfs.org/sioc/types# skos: http://www.w3.org/2004/02/skos/core# xsd: http://www.w3.org/2001/XMLSchema# > head> meta charsetutf-8 />meta namedescription contentHappy Birthday, Malcolm! />meta namekeywords contentMac Miller, birthday, cards, 30th, 30, 92tilinfinity, 92tillinfinity, swimming, circles, anniversary />link relcanonical hrefhttps://www.92tilinfinity.com/ />meta namerobots contentindex, follow />link relshortlink hrefhttps://www.92tilinfinity.com/ />meta propertyog:site_name contentMac Miller />meta propertyog:type contentwebsite />meta propertyog:url contenthttps://www.92tilinfinity.com/ />meta propertyog:title content#HBDMac />meta propertyog:description contentHappy Birthday, Malcolm! />meta propertyog:image contenthttps://www.92tilinfinity.com/sites/g/files/g2000013686/files/2022-01/FBOG.jpg />meta nametwitter:card contentsummary_large_image />meta nametwitter:description contentHappy Birthday, Malcolm! />meta nametwitter:title content#HBDMac />meta nametwitter:url contenthttps://www.92tilinfinity.com/home />meta nametwitter:image contenthttps://www.92tilinfinity.com/sites/g/files/g2000013686/files/2022-01/FBOG.jpg />meta nameGenerator contentDrupal 10 (https://www.drupal.org) />meta nameMobileOptimized contentwidth />meta nameHandheldFriendly contenttrue />meta nameviewport contentwidthdevice-width, initial-scale1.0 />link relstylesheet hrefhttps://use.typekit.net/lae6hxw.css />link relstylesheet hrefhttps://libraries.wmgartistservices.com/owlcarousel/owl.carousel.css asyncasync defer/defer/ // />link relstylesheet hrefhttps://libraries.wmgartistservices.com/owlcarousel/owl.theme.default.min.css // />meta namerobots contentnoimageai,noai />link relicon href/sites/g/files/g2000013686/files/fav.jpg typeimage/jpeg />script typetext/javascript srchttps://cdn.cookielaw.org/scripttemplates/otSDKStub.js charsetUTF-8 data-domain-scriptfa461fb3-53c6-4158-92b3-0eefa2430996 data-document-languagetrue>/script>script typetext/javascript>function OptanonWrapper() { var cookiePolicyLink https://www.wminewmedia.com/cookies-policy/; var allLinks document.querySelectorAll(a); for(i 0; i allLinks.length; i++) { let href allLinksi.href; if (href.indexOf(cookiePolicyLink) > -1 && href.indexOf(?ot) 0) { href href + ?otfa461fb3-53c6-4158-92b3-0eefa2430996&url + window.location.hostname; allLinksi.setAttribute(href, href); allLinksi.setAttribute(target, _blank); } } var eOT new Event(OneTrustGroupsUpdated); document.dispatchEvent(eOT); var regCheckPerformance /,C0002,/; var regCheckFunctional /,C0003,/; var regCheckTargeting /,C0004,/; var regCheckSocial /,C0008,/;}/script>link relstylesheet typetext/css hrefhttps://www.wminewmedia.com/cookies-policy/onetrust/ot.css />script typetext/javascript>digitalData{settings:{reportSuites:wmg},content:{artist:Mac Miller,label:Warner Records},page:{pageInfo:{pageName:Mac Miller:MM30 Birthday UGC Photos:Landing,server:Mac Miller:Site,devTeam:WMAS,platform:Drupal 10},category:{primaryCategory:Mac Miller:Landing Page,pageType:Landing Page:UGC Photos}}}/script>script src//assets.adobedtm.com/launch-EN302b8a31b75a4dda8ff8df1d0cdb4762.min.js async>/script>script srchttps://libraries.wmgartistservices.com/jslibrary/jquery.min.js>/script>script srchttps://libraries.wmgartistservices.com/externalJS/jquery-cookie-1-4-1-jquery-cookie-min.js typetext/javascript>/script>script srchttps://libraries.wmgartistservices.com/songkick/widget_min.js?gfg>/script>script srchttps://libraries.wmgartistservices.com/custom-js/mailing-list/cdc.js>/script>script srchttps://libraries.wmgartistservices.com/custom-js/mailing-list/dtm.js>/script>script srchttps://libraries.wmgartistservices.com/custom-js/YTDTM/YTFns.js>/script>script srchttps://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.js typetext/javascript>/script>script srchttps://libraries.wmgartistservices.com/owlcarousel/owl.carousel.min.js>/script> title>#HBDMac/title> link relstylesheet mediaall href/sites/g/files/g2000013686/files/css/css_3LzlSXbgbgLjjWR4940ir3_3b6hKU0_rCdgwyakgkQM.css?delta0&languageen&themebartik&includeeJxdzFEKhDAMRdENVbukIXVCCSaN9AWGuvoRP0T9PVxuoR6y5kUJGHMhcCoPMgaoMl7c_HuVVb2QToih0mpavHNu3o1Udk4YCLZ8rn9WP76FmOwU4i0fMN3hD4u3N-g />link relstylesheet mediaall href/sites/g/files/g2000013686/files/css/css_BNWyzXpJ1CFQ3DD9pNBPRV3qw-_GCJjIMPidDiBgvHY.css?delta1&languageen&themebartik&includeeJxdzFEKhDAMRdENVbukIXVCCSaN9AWGuvoRP0T9PVxuoR6y5kUJGHMhcCoPMgaoMl7c_HuVVb2QToih0mpavHNu3o1Udk4YCLZ8rn9WP76FmOwU4i0fMN3hD4u3N-g />link relstylesheet mediaprint href/sites/g/files/g2000013686/files/css/css_AgGYBv3OdsxTdgnoZ3OB1zCPtOmbvxPEr2HKAsYaTVM.css?delta2&languageen&themebartik&includeeJxdzFEKhDAMRdENVbukIXVCCSaN9AWGuvoRP0T9PVxuoR6y5kUJGHMhcCoPMgaoMl7c_HuVVb2QToih0mpavHNu3o1Udk4YCLZ8rn9WP76FmOwU4i0fMN3hD4u3N-g />link relstylesheet mediaall href/sites/g/files/g2000013686/files/css/css_rHPFkgmmTSf8Sbashi8bKMTfzVhTz_8MEwOd-i1Uf6Y.css?delta3&languageen&themebartik&includeeJxdzFEKhDAMRdENVbukIXVCCSaN9AWGuvoRP0T9PVxuoR6y5kUJGHMhcCoPMgaoMl7c_HuVVb2QToih0mpavHNu3o1Udk4YCLZ8rn9WP76FmOwU4i0fMN3hD4u3N-g /> /head> body classpage-node-71 page-node-type-page layout-no-sidebars path-frontpage> a href#main-content classvisually-hidden focusable skip-link> Skip to main content /a> div classdialog-off-canvas-main-canvas data-off-canvas-main-canvas> div idpage-wrapper> div idpage> header idheader classheader rolebanner> div classsection layout-container clearfix> div classclearfix region region-header> div idblock-lightboxmm classblock block-block-content block-block-contentb690f865-e609-4f52-9966-e68d6a6b7b3e> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>div classlb-wrapper>div classlb-overlay>/div> div classlb-inner> img classdesktop src/sites/g/files/g2000013686/files/2022-01/mm30_splash_v2.jpeg /> img classmobile src/sites/g/files/g2000013686/files/2022-01/mm30_splash_v2.jpeg /> !--div classlb-close>X/div>--> /div>/div>style>div#block-lightboxmm { position: relative;}.lb-inner { max-width: 100%; margin: 0 auto; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%;}.lb-inner img{cursor: pointer;}.lb-inner img:hover{ opacity:0.9;}.lb-inner img.mobile { display: none;}.lb-wrapper { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; z-index: 999;}.lb-close { font-size: 1.3vw; color: #fff; position: absolute; top: 0; right: 0; padding: 1vw; cursor: pointer;}.lb-close:hover { opacity: 0.6;}.lb-overlay { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; background: rgba(0,0,0, 0.6);}@media only screen and (max-width:1024px) and (orientation: portrait), only screen and (max-width:1023px) and (orientation: landscape) { .lb-inner { max-width: max-content; width: 270vw; } .lb-close { font-size: 2.4vw; } .lb-inner img.mobile { display: block; height: 100%; } .lb-inner img.desktop { display: none; }}@media only screen and (max-width:1024px) and (orientation: landscape) { .lb-inner { width: 100%; max-width: none; } .lb-inner img.mobile { display: none; } .lb-inner img.desktop { display: block; }}/style>script> const mainPageName1 digitalData.page.pageInfo.pageName; const mainPagePrimaryCategory1 digitalData.page.category.primaryCategory; const mainPageType1 digitalData.page.category.pageType; var lbCloseResetDTMNew function () { s_dtm.clearVars(); digitalData.page.pageInfo.pageName mainPageName1; digitalData.page.category.primaryCategory mainPagePrimaryCategory1; digitalData.page.category.pageType mainPageType1; _satellite.track(page view); console.info(lightbox closed); }; digitalData.page.pageInfo.pageName Mac Miller:MM30 Birthday UGC Photos:Landing:Lightbox:Thank You; digitalData.page.category.primaryCategory Mac Miller:Lightbox; digitalData.page.category.pageType Lightbox:Thank You; digitalData.page.pageInfo.devTeam WMAS; jQuery(div#block-lightboxmm .lb-close, div#block-lightboxmm).click(function(){ jQuery(div#block-lightboxmm).hide(); lbCloseResetDTMNew(); });/script>/div> /div> /div>div idblock-sitecss classblock block-block-content block-block-content0ccaf333-0752-4acd-a95d-5c10337e91fd> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>style> @import url(https://fonts.googleapis.com/css2?familyNunito:wght@700&displayswap); #toolbar-administration { display: none; } body #page { overflow: hidden; } #page, #main-wrapper, .region-primary-menu .menu-item a.is-active, .region-primary-menu .menu-item--active-trail a { background: transparent; } .outer-wrapper { position: relative; height: 100vh; } .site-footer { padding: 0; } body { margin: 0 auto !important; padding: 0 !important; overflow: hidden; background: #f6f6f6; overflow: hidden; -webkit-font-smoothing: antialiased; font-smoothing: antialiased; text-rendering: optimizeLegibility; } * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; } .view-content { font-size: 0; } article.flockler-grid-item { display: inline-block; width: 25vw; vertical-align: middle; pointer-events: none; } img { width: 100%; height: auto; } article.flockler-grid-item>div { padding: 2.5%; } .new-row { width: calc(13 * 36vw); text-align: left; } .outer-wrapper {} body .view-content-inner .flockler-grid-items .flockler-grid-item { width: 29.5vw; padding: 20px; margin: 64px; } body .flockler-grid-items a.flockler-btn-load-more { font-family: Nunito, sans-serif !important; font-weight: 700; text-align: center; display: inline-block !important; } body article.flockler-grid-item { pointer-events: auto; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(1n) { font-family: hoohooregular; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(2n) { font-family: hoohooregular; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(3n) { font-family: hoohooregular; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(1n) div.flockler-grid-item__footer { color: #000; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(2n) div.flockler-grid-item__footer { color: #000; } body .view-content-inner .flockler-grid-items .flockler-grid-item:nth-child(3n) div.flockler-grid-item__footer { color: #000; } .flockler-grid-items p, .flockler-grid-items a { font-weight: initial !important; } .flockler-grid-items * { letter-spacing: 1px; opacity: 1; font-family: Nunito, sans-serif; font-weight: 700; } span.flockler-grid-item__profile__name { font-size: 1.5vw; letter-spacing: 1px; } .flockler-grid-item__profile__details { text-transform: uppercase; } a.flockler-grid-item__footer__published-at:hover, a.flockler-grid-item__footer__published-at:focus, a.flockler-grid-item__footer__published-at:focus-within, .flockler-grid-item__footer__published-at:hover, .flockler-grid-item__footer__published-at:focus, .flockler-grid-item__footer__published-at:focus-within { opacity: 1; } .flockler-grid-item__footer__details { letter-spacing: 2px; } svg.flockler-grid-item__footer__details__stat__icon { opacity: 1; } a.flockler-grid-item__footer__published-at, .flockler-grid-item__footer__published-at { color: #000; } .videoinner-wrap { position: relative; } #desktop-mp4-video { position: absolute; left: 0; top: 0; width: 100%; height: auto; width: 100%; object-fit: cover; pointer-events: none; overflow: hidden; height: 100vh; object-fit: cover; } #flockler-embed-17e4b9f0a550b76d6f86d1bacc3c91b8 { position: absolute; z-index: 4; top: 0; bottom: 0; left: 0; overflow: hidden; width: 100%; } .flockler-grid-items { width: calc(13 * 36vw); position: absolute; z-index: 4; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); -webkit-transform: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); -webkit-touch-callout: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; -webkit-text-size-adjust: none; -moz-text-size-adjust: none; -ms-text-size-adjust: none; -o-text-size-adjust: none; text-size-adjust: none; left: 3%; text-align: left; } .site-footer .layout-container { padding: 0; } .site-footer .block { border: none; } @media only screen and (max-width:1023px), only screen and (max-width: 1024px) and (orientation: portrait) { body .view-content-inner .flockler-grid-items .flockler-grid-item { width: 76.5vw; padding: 20px; margin: 0; } .flockler-grid-items{ width: 100vw;} body .flockler-grid-items a.flockler-btn-load-more { margin-bottom: 100px !important; } }/style>/div> /div> /div>div idblock-iscrollzoomjs classblock block-block-content block-block-contentcfa602e7-c70b-419f-891c-447e93205412> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>script>/*! iScroll v5.1.1 ~ (c) 2008-2014 Matteo Spinelli ~ https://cubiq.org/license */(function (window, document, Math) {var rAF window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame || function (callback) { window.setTimeout(callback, 1000 / 60); };var utils (function () { var me {}; var _elementStyle document.createElement(div).style; var _vendor (function () { var vendors t, webkitT, MozT, msT, OT, transform, i 0, l vendors.length; for ( ; i l; i++ ) { transform vendorsi + ransform; if ( transform in _elementStyle ) return vendorsi.substr(0, vendorsi.length-1); } return false; })(); function _prefixStyle (style) { if ( _vendor false ) return false; if ( _vendor ) return style; return _vendor + style.charAt(0).toUpperCase() + style.substr(1); } me.getTime Date.now || function getTime () { return new Date().getTime(); }; me.extend function (target, obj) { for ( var i in obj ) { targeti obji; } }; me.addEvent function (el, type, fn, capture) { el.addEventListener(type, fn, !!capture); }; me.removeEvent function (el, type, fn, capture) { el.removeEventListener(type, fn, !!capture); }; me.momentum function (current, start, time, lowerMargin, wrapperSize, deceleration) { var distance current - start, speed Math.abs(distance) / time, destination, duration; deceleration deceleration undefined ? 0.0006 : deceleration; destination current + ( speed * speed ) / ( 2 * deceleration ) * ( distance 0 ? -1 : 1 ); duration speed / deceleration; if ( destination lowerMargin ) { destination wrapperSize ? lowerMargin - ( wrapperSize / 2.5 * ( speed / 8 ) ) : lowerMargin; distance Math.abs(destination - current); duration distance / speed; } else if ( destination > 0 ) { destination wrapperSize ? wrapperSize / 2.5 * ( speed / 8 ) : 0; distance Math.abs(current) + destination; duration distance / speed; } return { destination: Math.round(destination), duration: duration }; }; var _transform _prefixStyle(transform); me.extend(me, { hasTransform: _transform ! false, hasPerspective: _prefixStyle(perspective) in _elementStyle, hasTouch: ontouchstart in window, hasPointer: navigator.msPointerEnabled, hasTransition: _prefixStyle(transition) in _elementStyle }); // This should find all Android browsers lower than build 535.19 (both stock browser and webview) me.isBadAndroid /Android /.test(window.navigator.appVersion) && !(/Chrome\/\d/.test(window.navigator.appVersion)); me.extend(me.style {}, { transform: _transform, transitionTimingFunction: _prefixStyle(transitionTimingFunction), transitionDuration: _prefixStyle(transitionDuration), transitionDelay: _prefixStyle(transitionDelay), transformOrigin: _prefixStyle(transformOrigin) }); me.hasClass function (e, c) { var re new RegExp((^|\\s) + c + (\\s|$)); return re.test(e.className); }; me.addClass function (e, c) { if ( me.hasClass(e, c) ) { return; } var newclass e.className.split( ); newclass.push(c); e.className newclass.join( ); }; me.removeClass function (e, c) { if ( !me.hasClass(e, c) ) { return; } var re new RegExp((^|\\s) + c + (\\s|$), g); e.className e.className.replace(re, ); }; me.offset function (el) { var left -el.offsetLeft, top -el.offsetTop; // jshint -W084 while (el el.offsetParent) { left - el.offsetLeft; top - el.offsetTop; } // jshint +W084 return { left: left, top: top }; }; me.preventDefaultException function (el, exceptions) { for ( var i in exceptions ) { if ( exceptionsi.test(eli) ) { return true; } } return false; }; me.extend(me.eventType {}, { touchstart: 1, touchmove: 1, touchend: 1, mousedown: 2, mousemove: 2, mouseup: 2, MSPointerDown: 3, MSPointerMove: 3, MSPointerUp: 3 }); me.extend(me.ease {}, { quadratic: { style: cubic-bezier(0.25, 0.46, 0.45, 0.94), fn: function (k) { return k * ( 2 - k ); } }, circular: { style: cubic-bezier(0.1, 0.57, 0.1, 1), // Not properly circular but this looks better, it should be (0.075, 0.82, 0.165, 1) fn: function (k) { return Math.sqrt( 1 - ( --k * k ) ); } }, back: { style: cubic-bezier(0.175, 0.885, 0.32, 1.275), fn: function (k) { var b 4; return ( k k - 1 ) * k * ( ( b + 1 ) * k + b ) + 1; } }, bounce: { style: , fn: function (k) { if ( ( k / 1 ) ( 1 / 2.75 ) ) { return 7.5625 * k * k; } else if ( k ( 2 / 2.75 ) ) { return 7.5625 * ( k - ( 1.5 / 2.75 ) ) * k + 0.75; } else if ( k ( 2.5 / 2.75 ) ) { return 7.5625 * ( k - ( 2.25 / 2.75 ) ) * k + 0.9375; } else { return 7.5625 * ( k - ( 2.625 / 2.75 ) ) * k + 0.984375; } } }, elastic: { style: , fn: function (k) { var f 0.22, e 0.4; if ( k 0 ) { return 0; } if ( k 1 ) { return 1; } return ( e * Math.pow( 2, - 10 * k ) * Math.sin( ( k - f / 4 ) * ( 2 * Math.PI ) / f ) + 1 ); } } }); me.tap function (e, eventName) { var ev document.createEvent(Event); ev.initEvent(eventName, true, true); ev.pageX e.pageX; ev.pageY e.pageY; e.target.dispatchEvent(ev); }; me.click function (e) { var target e.target, ev; if ( !(/(SELECT|INPUT|TEXTAREA)/i).test(target.tagName) ) { ev document.createEvent(MouseEvents); ev.initMouseEvent(click, true, true, e.view, 1, target.screenX, target.screenY, target.clientX, target.clientY, e.ctrlKey, e.altKey, e.shiftKey, e.metaKey, 0, null); ev._constructed true; target.dispatchEvent(ev); } }; return me;})();function IScroll (el, options) { this.wrapper typeof el string ? document.querySelector(el) : el; this.scroller this.wrapper.children0; this.scrollerStyle this.scroller.style; // cache style for better performance this.options { zoomMin: 1, zoomMax: 4, startZoom: 1, resizeScrollbars: true, mouseWheelSpeed: 20, snapThreshold: 0.334,// INSERT POINT: OPTIONS startX: 0, startY: 0, scrollY: true, directionLockThreshold: 5, momentum: true, bounce: true, bounceTime: 600, bounceEasing: , preventDefault: true, preventDefaultException: { tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT)$/ }, HWCompositing: true, useTransition: true, useTransform: true }; for ( var i in options ) { this.optionsi optionsi; } // Normalize options this.translateZ this.options.HWCompositing && utils.hasPerspective ? translateZ(0) : ; this.options.useTransition utils.hasTransition && this.options.useTransition; this.options.useTransform utils.hasTransform && this.options.useTransform; this.options.eventPassthrough this.options.eventPassthrough true ? vertical : this.options.eventPassthrough; this.options.preventDefault !this.options.eventPassthrough && this.options.preventDefault; // If you want eventPassthrough I have to lock one of the axes this.options.scrollY this.options.eventPassthrough vertical ? false : this.options.scrollY; this.options.scrollX this.options.eventPassthrough horizontal ? false : this.options.scrollX; // With eventPassthrough we also need lockDirection mechanism this.options.freeScroll this.options.freeScroll && !this.options.eventPassthrough; this.options.directionLockThreshold this.options.eventPassthrough ? 0 : this.options.directionLockThreshold; this.options.bounceEasing typeof this.options.bounceEasing string ? utils.easethis.options.bounceEasing || utils.ease.circular : this.options.bounceEasing; this.options.resizePolling this.options.resizePolling undefined ? 60 : this.options.resizePolling; if ( this.options.tap true ) { this.options.tap tap; } if ( this.options.shrinkScrollbars scale ) { this.options.useTransition false; } this.options.invertWheelDirection this.options.invertWheelDirection ? -1 : 1;// INSERT POINT: NORMALIZATION // Some defaults this.x 0; this.y 0; this.directionX 0; this.directionY 0; this._events {}; this.scale Math.min(Math.max(this.options.startZoom, this.options.zoomMin), this.options.zoomMax);// INSERT POINT: DEFAULTS this._init(); this.refresh(); this.scrollTo(this.options.startX, this.options.startY); this.enable();}IScroll.prototype { version: 5.1.1, _init: function () { this._initEvents(); if ( this.options.zoom ) { this._initZoom(); } if ( this.options.scrollbars || this.options.indicators ) { this._initIndicators(); } if ( this.options.mouseWheel ) { this._initWheel(); } if ( this.options.snap ) { this._initSnap(); } if ( this.options.keyBindings ) { this._initKeys(); }// INSERT POINT: _init }, destroy: function () { this._initEvents(true); this._execEvent(destroy); }, _transitionEnd: function (e) { if ( e.target ! this.scroller || !this.isInTransition ) { return; } this._transitionTime(); if ( !this.resetPosition(this.options.bounceTime) ) { this.isInTransition false; this._execEvent(scrollEnd); } }, _start: function (e) { // React to left mouse button only if ( utils.eventTypee.type ! 1 ) { if ( e.button ! 0 ) { return; } } if ( !this.enabled || (this.initiated && utils.eventTypee.type ! this.initiated) ) { return; } if ( this.options.preventDefault && !utils.isBadAndroid && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { e.preventDefault(); } var point e.touches ? e.touches0 : e, pos; this.initiated utils.eventTypee.type; this.moved false; this.distX 0; this.distY 0; this.directionX 0; this.directionY 0; this.directionLocked 0; this._transitionTime(); this.startTime utils.getTime(); if ( this.options.useTransition && this.isInTransition ) { this.isInTransition false; pos this.getComputedPosition(); this._translate(Math.round(pos.x), Math.round(pos.y)); this._execEvent(scrollEnd); } else if ( !this.options.useTransition && this.isAnimating ) { this.isAnimating false; this._execEvent(scrollEnd); } this.startX this.x; this.startY this.y; this.absStartX this.x; this.absStartY this.y; this.pointX point.pageX; this.pointY point.pageY; this._execEvent(beforeScrollStart); }, _move: function (e) { if ( !this.enabled || utils.eventTypee.type ! this.initiated ) { return; } if ( this.options.preventDefault ) { // increases performance on Android? TODO: check! e.preventDefault(); } var point e.touches ? e.touches0 : e, deltaX point.pageX - this.pointX, deltaY point.pageY - this.pointY, timestamp utils.getTime(), newX, newY, absDistX, absDistY; this.pointX point.pageX; this.pointY point.pageY; this.distX + deltaX; this.distY + deltaY; absDistX Math.abs(this.distX); absDistY Math.abs(this.distY); // We need to move at least 10 pixels for the scrolling to initiate if ( timestamp - this.endTime > 300 && (absDistX 10 && absDistY 10) ) { return; } // If you are scrolling in one direction lock the other if ( !this.directionLocked && !this.options.freeScroll ) { if ( absDistX > absDistY + this.options.directionLockThreshold ) { this.directionLocked h; // lock horizontally } else if ( absDistY > absDistX + this.options.directionLockThreshold ) { this.directionLocked v; // lock vertically } else { this.directionLocked n; // no lock } } if ( this.directionLocked h ) { if ( this.options.eventPassthrough vertical ) { e.preventDefault(); } else if ( this.options.eventPassthrough horizontal ) { this.initiated false; return; } deltaY 0; } else if ( this.directionLocked v ) { if ( this.options.eventPassthrough horizontal ) { e.preventDefault(); } else if ( this.options.eventPassthrough vertical ) { this.initiated false; return; } deltaX 0; } deltaX this.hasHorizontalScroll ? deltaX : 0; deltaY this.hasVerticalScroll ? deltaY : 0; newX this.x + deltaX; newY this.y + deltaY; // Slow down if outside of the boundaries if ( newX > 0 || newX this.maxScrollX ) { newX this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; } if ( newY > 0 || newY this.maxScrollY ) { newY this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; } this.directionX deltaX > 0 ? -1 : deltaX 0 ? 1 : 0; this.directionY deltaY > 0 ? -1 : deltaY 0 ? 1 : 0; if ( !this.moved ) { this._execEvent(scrollStart); } this.moved true; this._translate(newX, newY);/* REPLACE START: _move */ if ( timestamp - this.startTime > 300 ) { this.startTime timestamp; this.startX this.x; this.startY this.y; }/* REPLACE END: _move */ }, _end: function (e) { if ( !this.enabled || utils.eventTypee.type ! this.initiated ) { return; } if ( this.options.preventDefault && !utils.preventDefaultException(e.target, this.options.preventDefaultException) ) { e.preventDefault(); } var point e.changedTouches ? e.changedTouches0 : e, momentumX, momentumY, duration utils.getTime() - this.startTime, newX Math.round(this.x), newY Math.round(this.y), distanceX Math.abs(newX - this.startX), distanceY Math.abs(newY - this.startY), time 0, easing ; this.isInTransition 0; this.initiated 0; this.endTime utils.getTime(); // reset if we are outside of the boundaries if ( this.resetPosition(this.options.bounceTime) ) { return; } this.scrollTo(newX, newY); // ensures that the last position is rounded // we scrolled less than 10 pixels if ( !this.moved ) { if ( this.options.tap ) { utils.tap(e, this.options.tap); } if ( this.options.click ) { utils.click(e); } this._execEvent(scrollCancel); return; } if ( this._events.flick && duration 200 && distanceX 100 && distanceY 100 ) { this._execEvent(flick); return; } // start momentum animation if needed if ( this.options.momentum && duration 300 ) { momentumX this.hasHorizontalScroll ? utils.momentum(this.x, this.startX, duration, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { destination: newX, duration: 0 }; momentumY this.hasVerticalScroll ? utils.momentum(this.y, this.startY, duration, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { destination: newY, duration: 0 }; newX momentumX.destination; newY momentumY.destination; time Math.max(momentumX.duration, momentumY.duration); this.isInTransition 1; } if ( this.options.snap ) { var snap this._nearestSnap(newX, newY); this.currentPage snap; time this.options.snapSpeed || Math.max( Math.max( Math.min(Math.abs(newX - snap.x), 1000), Math.min(Math.abs(newY - snap.y), 1000) ), 300); newX snap.x; newY snap.y; this.directionX 0; this.directionY 0; easing this.options.bounceEasing; }// INSERT POINT: _end if ( newX ! this.x || newY ! this.y ) { // change easing function when scroller goes out of the boundaries if ( newX > 0 || newX this.maxScrollX || newY > 0 || newY this.maxScrollY ) { easing utils.ease.quadratic; } this.scrollTo(newX, newY, time, easing); return; } this._execEvent(scrollEnd); }, _resize: function () { var that this; clearTimeout(this.resizeTimeout); this.resizeTimeout setTimeout(function () { that.refresh(); }, this.options.resizePolling); }, resetPosition: function (time) { var x this.x, y this.y; time time || 0; if ( !this.hasHorizontalScroll || this.x > 0 ) { x 0; } else if ( this.x this.maxScrollX ) { x this.maxScrollX; } if ( !this.hasVerticalScroll || this.y > 0 ) { y 0; } else if ( this.y this.maxScrollY ) { y this.maxScrollY; } if ( x this.x && y this.y ) { return false; } this.scrollTo(x, y, time, this.options.bounceEasing); return true; }, disable: function () { this.enabled false; }, enable: function () { this.enabled true; }, refresh: function () { var rf this.wrapper.offsetHeight; // Force reflow this.wrapperWidth this.wrapper.clientWidth; this.wrapperHeight this.wrapper.clientHeight;/* REPLACE START: refresh */ this.scrollerWidth Math.round(this.scroller.offsetWidth * this.scale); this.scrollerHeight Math.round(this.scroller.offsetHeight * this.scale); this.maxScrollX this.wrapperWidth - this.scrollerWidth; this.maxScrollY this.wrapperHeight - this.scrollerHeight;/* REPLACE END: refresh */ this.hasHorizontalScroll this.options.scrollX && this.maxScrollX 0; this.hasVerticalScroll this.options.scrollY && this.maxScrollY 0; if ( !this.hasHorizontalScroll ) { this.maxScrollX 0; this.scrollerWidth this.wrapperWidth; } if ( !this.hasVerticalScroll ) { this.maxScrollY 0; this.scrollerHeight this.wrapperHeight; } this.endTime 0; this.directionX 0; this.directionY 0; this.wrapperOffset utils.offset(this.wrapper); this._execEvent(refresh); this.resetPosition();// INSERT POINT: _refresh }, on: function (type, fn) { if ( !this._eventstype ) { this._eventstype ; } this._eventstype.push(fn); }, off: function (type, fn) { if ( !this._eventstype ) { return; } var index this._eventstype.indexOf(fn); if ( index > -1 ) { this._eventstype.splice(index, 1); } }, _execEvent: function (type) { if ( !this._eventstype ) { return; } var i 0, l this._eventstype.length; if ( !l ) { return; } for ( ; i l; i++ ) { this._eventstypei.apply(this, .slice.call(arguments, 1)); } }, scrollBy: function (x, y, time, easing) { x this.x + x; y this.y + y; time time || 0; this.scrollTo(x, y, time, easing); }, scrollTo: function (x, y, time, easing) { easing easing || utils.ease.circular; this.isInTransition this.options.useTransition && time > 0; if ( !time || (this.options.useTransition && easing.style) ) { this._transitionTimingFunction(easing.style); this._transitionTime(time); this._translate(x, y); } else { this._animate(x, y, time, easing.fn); } }, scrollToElement: function (el, time, offsetX, offsetY, easing) { el el.nodeType ? el : this.scroller.querySelector(el); if ( !el ) { return; } var pos utils.offset(el); pos.left - this.wrapperOffset.left; pos.top - this.wrapperOffset.top; // if offsetX/Y are true we center the element to the screen if ( offsetX true ) { offsetX Math.round(el.offsetWidth / 2 - this.wrapper.offsetWidth / 2); } if ( offsetY true ) { offsetY Math.round(el.offsetHeight / 2 - this.wrapper.offsetHeight / 2); } pos.left - offsetX || 0; pos.top - offsetY || 0; pos.left pos.left > 0 ? 0 : pos.left this.maxScrollX ? this.maxScrollX : pos.left; pos.top pos.top > 0 ? 0 : pos.top this.maxScrollY ? this.maxScrollY : pos.top; time time undefined || time null || time auto ? Math.max(Math.abs(this.x-pos.left), Math.abs(this.y-pos.top)) : time; this.scrollTo(pos.left, pos.top, time, easing); }, _transitionTime: function (time) { time time || 0; this.scrollerStyleutils.style.transitionDuration time + ms; if ( !time && utils.isBadAndroid ) { this.scrollerStyleutils.style.transitionDuration 0.001s; } if ( this.indicators ) { for ( var i this.indicators.length; i--; ) { this.indicatorsi.transitionTime(time); } }// INSERT POINT: _transitionTime }, _transitionTimingFunction: function (easing) { this.scrollerStyleutils.style.transitionTimingFunction easing; if ( this.indicators ) { for ( var i this.indicators.length; i--; ) { this.indicatorsi.transitionTimingFunction(easing); } }// INSERT POINT: _transitionTimingFunction }, _translate: function (x, y) { if ( this.options.useTransform ) {/* REPLACE START: _translate */ this.scrollerStyleutils.style.transform translate( + x + px, + y + px) scale( + this.scale + ) + this.translateZ;/* REPLACE END: _translate */ } else { x Math.round(x); y Math.round(y); this.scrollerStyle.left x + px; this.scrollerStyle.top y + px; } this.x x; this.y y; if ( this.indicators ) { for ( var i this.indicators.length; i--; ) { this.indicatorsi.updatePosition(); } }// INSERT POINT: _translate }, _initEvents: function (remove) { var eventType remove ? utils.removeEvent : utils.addEvent, target this.options.bindToWrapper ? this.wrapper : window; eventType(window, orientationchange, this); eventType(window, resize, this); if ( this.options.click ) { eventType(this.wrapper, click, this, true); } if ( !this.options.disableMouse ) { eventType(this.wrapper, mousedown, this); eventType(target, mousemove, this); eventType(target, mousecancel, this); eventType(target, mouseup, this); } if ( utils.hasPointer && !this.options.disablePointer ) { eventType(this.wrapper, MSPointerDown, this); eventType(target, MSPointerMove, this); eventType(target, MSPointerCancel, this); eventType(target, MSPointerUp, this); } if ( utils.hasTouch && !this.options.disableTouch ) { eventType(this.wrapper, touchstart, this); eventType(target, touchmove, this); eventType(target, touchcancel, this); eventType(target, touchend, this); } eventType(this.scroller, transitionend, this); eventType(this.scroller, webkitTransitionEnd, this); eventType(this.scroller, oTransitionEnd, this); eventType(this.scroller, MSTransitionEnd, this); }, getComputedPosition: function () { var matrix window.getComputedStyle(this.scroller, null), x, y; if ( this.options.useTransform ) { matrix matrixutils.style.transform.split())0.split(, ); x +(matrix12 || matrix4); y +(matrix13 || matrix5); } else { x +matrix.left.replace(/^-\d./g, ); y +matrix.top.replace(/^-\d./g, ); } return { x: x, y: y }; }, _initIndicators: function () { var interactive this.options.interactiveScrollbars, customStyle typeof this.options.scrollbars ! string, indicators , indicator; var that this; this.indicators ; if ( this.options.scrollbars ) { // Vertical scrollbar if ( this.options.scrollY ) { indicator { el: createDefaultScrollbar(v, interactive, this.options.scrollbars), interactive: interactive, defaultScrollbars: true, customStyle: customStyle, resize: this.options.resizeScrollbars, shrink: this.options.shrinkScrollbars, fade: this.options.fadeScrollbars, listenX: false }; this.wrapper.appendChild(indicator.el); indicators.push(indicator); } // Horizontal scrollbar if ( this.options.scrollX ) { indicator { el: createDefaultScrollbar(h, interactive, this.options.scrollbars), interactive: interactive, defaultScrollbars: true, customStyle: customStyle, resize: this.options.resizeScrollbars, shrink: this.options.shrinkScrollbars, fade: this.options.fadeScrollbars, listenY: false }; this.wrapper.appendChild(indicator.el); indicators.push(indicator); } } if ( this.options.indicators ) { // TODO: check concat compatibility indicators indicators.concat(this.options.indicators); } for ( var i indicators.length; i--; ) { this.indicators.push( new Indicator(this, indicatorsi) ); } // TODO: check if we can use array.map (wide compatibility and performance issues) function _indicatorsMap (fn) { for ( var i that.indicators.length; i--; ) { fn.call(that.indicatorsi); } } if ( this.options.fadeScrollbars ) { this.on(scrollEnd, function () { _indicatorsMap(function () { this.fade(); }); }); this.on(scrollCancel, function () { _indicatorsMap(function () { this.fade(); }); }); this.on(scrollStart, function () { _indicatorsMap(function () { this.fade(1); }); }); this.on(beforeScrollStart, function () { _indicatorsMap(function () { this.fade(1, true); }); }); } this.on(refresh, function () { _indicatorsMap(function () { this.refresh(); }); }); this.on(destroy, function () { _indicatorsMap(function () { this.destroy(); }); delete this.indicators; }); }, _initZoom: function () { this.scrollerStyleutils.style.transformOrigin 0 0; }, _zoomStart: function (e) { var c1 Math.abs( e.touches0.pageX - e.touches1.pageX ), c2 Math.abs( e.touches0.pageY - e.touches1.pageY ); this.touchesDistanceStart Math.sqrt(c1 * c1 + c2 * c2); this.startScale this.scale; this.originX Math.abs(e.touches0.pageX + e.touches1.pageX) / 2 + this.wrapperOffset.left - this.x; this.originY Math.abs(e.touches0.pageY + e.touches1.pageY) / 2 + this.wrapperOffset.top - this.y; this._execEvent(zoomStart); }, _zoom: function (e) { if ( !this.enabled || utils.eventTypee.type ! this.initiated ) { return; } if ( this.options.preventDefault ) { e.preventDefault(); } var c1 Math.abs( e.touches0.pageX - e.touches1.pageX ), c2 Math.abs( e.touches0.pageY - e.touches1.pageY ), distance Math.sqrt( c1 * c1 + c2 * c2 ), scale 1 / this.touchesDistanceStart * distance * this.startScale, lastScale, x, y; this.scaled true; if ( scale this.options.zoomMin ) { scale 0.5 * this.options.zoomMin * Math.pow(2.0, scale / this.options.zoomMin); } else if ( scale > this.options.zoomMax ) { scale 2.0 * this.options.zoomMax * Math.pow(0.5, this.options.zoomMax / scale); } lastScale scale / this.startScale; x this.originX - this.originX * lastScale + this.startX; y this.originY - this.originY * lastScale + this.startY; this.scale scale; this.scrollTo(x, y, 0); }, _zoomEnd: function (e) { if ( !this.enabled || utils.eventTypee.type ! this.initiated ) { return; } if ( this.options.preventDefault ) { e.preventDefault(); } var newX, newY, lastScale; this.isInTransition 0; this.initiated 0; if ( this.scale > this.options.zoomMax ) { this.scale this.options.zoomMax; } else if ( this.scale this.options.zoomMin ) { this.scale this.options.zoomMin; } // Update boundaries this.refresh(); lastScale this.scale / this.startScale; newX this.originX - this.originX * lastScale + this.startX; newY this.originY - this.originY * lastScale + this.startY; if ( newX > 0 ) { newX 0; } else if ( newX this.maxScrollX ) { newX this.maxScrollX; } if ( newY > 0 ) { newY 0; } else if ( newY this.maxScrollY ) { newY this.maxScrollY; } if ( this.x ! newX || this.y ! newY ) { this.scrollTo(newX, newY, this.options.bounceTime); } this.scaled false; this._execEvent(zoomEnd); }, zoom: function (scale, x, y, time) { if ( scale this.options.zoomMin ) { scale this.options.zoomMin; } else if ( scale > this.options.zoomMax ) { scale this.options.zoomMax; } if ( scale this.scale ) { return; } var relScale scale / this.scale; x x undefined ? this.wrapperWidth / 2 : x; y y undefined ? this.wrapperHeight / 2 : y; time time undefined ? 300 : time; x x + this.wrapperOffset.left - this.x; y y + this.wrapperOffset.top - this.y; x x - x * relScale + this.x; y y - y * relScale + this.y; this.scale scale; this.refresh(); // update boundaries if ( x > 0 ) { x 0; } else if ( x this.maxScrollX ) { x this.maxScrollX; } if ( y > 0 ) { y 0; } else if ( y this.maxScrollY ) { y this.maxScrollY; } this.scrollTo(x, y, time); }, _wheelZoom: function (e) { var wheelDeltaY, deltaScale, that this; // Execute the zoomEnd event after 400ms the wheel stopped scrolling clearTimeout(this.wheelTimeout); this.wheelTimeout setTimeout(function () { that._execEvent(zoomEnd); }, 400); if ( deltaX in e ) { wheelDeltaY -e.deltaY / Math.abs(e.deltaY); } else if (wheelDeltaX in e) { wheelDeltaY e.wheelDeltaY / Math.abs(e.wheelDeltaY); } else if(wheelDelta in e) { wheelDeltaY e.wheelDelta / Math.abs(e.wheelDelta); } else if (detail in e) { wheelDeltaY -e.detail / Math.abs(e.detail); } else { return; } deltaScale this.scale + wheelDeltaY / 5; this.zoom(deltaScale, e.pageX, e.pageY, 0); }, _initWheel: function () { utils.addEvent(this.wrapper, wheel, this); utils.addEvent(this.wrapper, mousewheel, this); utils.addEvent(this.wrapper, DOMMouseScroll, this); this.on(destroy, function () { utils.removeEvent(this.wrapper, wheel, this); utils.removeEvent(this.wrapper, mousewheel, this); utils.removeEvent(this.wrapper, DOMMouseScroll, this); }); }, _wheel: function (e) { if ( !this.enabled ) { return; } e.preventDefault(); e.stopPropagation(); var wheelDeltaX, wheelDeltaY, newX, newY, that this; if ( this.wheelTimeout undefined ) { that._execEvent(scrollStart); } // Execute the scrollEnd event after 400ms the wheel stopped scrolling clearTimeout(this.wheelTimeout); this.wheelTimeout setTimeout(function () { that._execEvent(scrollEnd); that.wheelTimeout undefined; }, 400); if ( deltaX in e ) { wheelDeltaX -e.deltaX; wheelDeltaY -e.deltaY; } else if ( wheelDeltaX in e ) { wheelDeltaX e.wheelDeltaX / 120 * this.options.mouseWheelSpeed; wheelDeltaY e.wheelDeltaY / 120 * this.options.mouseWheelSpeed; } else if ( wheelDelta in e ) { wheelDeltaX wheelDeltaY e.wheelDelta / 120 * this.options.mouseWheelSpeed; } else if ( detail in e ) { wheelDeltaX wheelDeltaY -e.detail / 3 * this.options.mouseWheelSpeed; } else { return; } wheelDeltaX * this.options.invertWheelDirection; wheelDeltaY * this.options.invertWheelDirection; if ( !this.hasVerticalScroll ) { wheelDeltaX wheelDeltaY; wheelDeltaY 0; } if ( this.options.snap ) { newX this.currentPage.pageX; newY this.currentPage.pageY; if ( wheelDeltaX > 0 ) { newX--; } else if ( wheelDeltaX 0 ) { newX++; } if ( wheelDeltaY > 0 ) { newY--; } else if ( wheelDeltaY 0 ) { newY++; } this.goToPage(newX, newY); return; } newX this.x + Math.round(this.hasHorizontalScroll ? wheelDeltaX : 0); newY this.y + Math.round(this.hasVerticalScroll ? wheelDeltaY : 0); if ( newX > 0 ) { newX 0; } else if ( newX this.maxScrollX ) { newX this.maxScrollX; } if ( newY > 0 ) { newY 0; } else if ( newY this.maxScrollY ) { newY this.maxScrollY; } this.scrollTo(newX, newY, 0);// INSERT POINT: _wheel }, _initSnap: function () { this.currentPage {}; if ( typeof this.options.snap string ) { this.options.snap this.scroller.querySelectorAll(this.options.snap); } this.on(refresh, function () { var i 0, l, m 0, n, cx, cy, x 0, y, stepX this.options.snapStepX || this.wrapperWidth, stepY this.options.snapStepY || this.wrapperHeight, el; this.pages ; if ( !this.wrapperWidth || !this.wrapperHeight || !this.scrollerWidth || !this.scrollerHeight ) { return; } if ( this.options.snap true ) { cx Math.round( stepX / 2 ); cy Math.round( stepY / 2 ); while ( x > -this.scrollerWidth ) { this.pagesi ; l 0; y 0; while ( y > -this.scrollerHeight ) { this.pagesil { x: Math.max(x, this.maxScrollX), y: Math.max(y, this.maxScrollY), width: stepX, height: stepY, cx: x - cx, cy: y - cy }; y - stepY; l++; } x - stepX; i++; } } else { el this.options.snap; l el.length; n -1; for ( ; i l; i++ ) { if ( i 0 || eli.offsetLeft eli-1.offsetLeft ) { m 0; n++; } if ( !this.pagesm ) { this.pagesm ; } x Math.max(-eli.offsetLeft, this.maxScrollX); y Math.max(-eli.offsetTop, this.maxScrollY); cx x - Math.round(eli.offsetWidth / 2); cy y - Math.round(eli.offsetHeight / 2); this.pagesmn { x: x, y: y, width: eli.offsetWidth, height: eli.offsetHeight, cx: cx, cy: cy }; if ( x > this.maxScrollX ) { m++; } } } this.goToPage(this.currentPage.pageX || 0, this.currentPage.pageY || 0, 0); // Update snap threshold if needed if ( this.options.snapThreshold % 1 0 ) { this.snapThresholdX this.options.snapThreshold; this.snapThresholdY this.options.snapThreshold; } else { this.snapThresholdX Math.round(this.pagesthis.currentPage.pageXthis.currentPage.pageY.width * this.options.snapThreshold); this.snapThresholdY Math.round(this.pagesthis.currentPage.pageXthis.currentPage.pageY.height * this.options.snapThreshold); } }); this.on(flick, function () { var time this.options.snapSpeed || Math.max( Math.max( Math.min(Math.abs(this.x - this.startX), 1000), Math.min(Math.abs(this.y - this.startY), 1000) ), 300); this.goToPage( this.currentPage.pageX + this.directionX, this.currentPage.pageY + this.directionY, time ); }); }, _nearestSnap: function (x, y) { if ( !this.pages.length ) { return { x: 0, y: 0, pageX: 0, pageY: 0 }; } var i 0, l this.pages.length, m 0; // Check if we exceeded the snap threshold if ( Math.abs(x - this.absStartX) this.snapThresholdX && Math.abs(y - this.absStartY) this.snapThresholdY ) { return this.currentPage; } if ( x > 0 ) { x 0; } else if ( x this.maxScrollX ) { x this.maxScrollX; } if ( y > 0 ) { y 0; } else if ( y this.maxScrollY ) { y this.maxScrollY; } for ( ; i l; i++ ) { if ( x > this.pagesi0.cx ) { x this.pagesi0.x; break; } } l this.pagesi.length; for ( ; m l; m++ ) { if ( y > this.pages0m.cy ) { y this.pages0m.y; break; } } if ( i this.currentPage.pageX ) { i + this.directionX; if ( i 0 ) { i 0; } else if ( i > this.pages.length ) { i this.pages.length - 1; } x this.pagesi0.x; } if ( m this.currentPage.pageY ) { m + this.directionY; if ( m 0 ) { m 0; } else if ( m > this.pages0.length ) { m this.pages0.length - 1; } y this.pages0m.y; } return { x: x, y: y, pageX: i, pageY: m }; }, goToPage: function (x, y, time, easing) { easing easing || this.options.bounceEasing; if ( x > this.pages.length ) { x this.pages.length - 1; } else if ( x 0 ) { x 0; } if ( y > this.pagesx.length ) { y this.pagesx.length - 1; } else if ( y 0 ) { y 0; } var posX this.pagesxy.x, posY this.pagesxy.y; time time undefined ? this.options.snapSpeed || Math.max( Math.max( Math.min(Math.abs(posX - this.x), 1000), Math.min(Math.abs(posY - this.y), 1000) ), 300) : time; this.currentPage { x: posX, y: posY, pageX: x, pageY: y }; this.scrollTo(posX, posY, time, easing); }, next: function (time, easing) { var x this.currentPage.pageX, y this.currentPage.pageY; x++; if ( x > this.pages.length && this.hasVerticalScroll ) { x 0; y++; } this.goToPage(x, y, time, easing); }, prev: function (time, easing) { var x this.currentPage.pageX, y this.currentPage.pageY; x--; if ( x 0 && this.hasVerticalScroll ) { x 0; y--; } this.goToPage(x, y, time, easing); }, _initKeys: function (e) { // default key bindings var keys { pageUp: 33, pageDown: 34, end: 35, home: 36, left: 37, up: 38, right: 39, down: 40 }; var i; // if you give me characters I give you keycode if ( typeof this.options.keyBindings object ) { for ( i in this.options.keyBindings ) { if ( typeof this.options.keyBindingsi string ) { this.options.keyBindingsi this.options.keyBindingsi.toUpperCase().charCodeAt(0); } } } else { this.options.keyBindings {}; } for ( i in keys ) { this.options.keyBindingsi this.options.keyBindingsi || keysi; } utils.addEvent(window, keydown, this); this.on(destroy, function () { utils.removeEvent(window, keydown, this); }); }, _key: function (e) { if ( !this.enabled ) { return; } var snap this.options.snap, // we are using this alot, better to cache it newX snap ? this.currentPage.pageX : this.x, newY snap ? this.currentPage.pageY : this.y, now utils.getTime(), prevTime this.keyTime || 0, acceleration 0.250, pos; if ( this.options.useTransition && this.isInTransition ) { pos this.getComputedPosition(); this._translate(Math.round(pos.x), Math.round(pos.y)); this.isInTransition false; } this.keyAcceleration now - prevTime 200 ? Math.min(this.keyAcceleration + acceleration, 50) : 0; switch ( e.keyCode ) { case this.options.keyBindings.pageUp: if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { newX + snap ? 1 : this.wrapperWidth; } else { newY + snap ? 1 : this.wrapperHeight; } break; case this.options.keyBindings.pageDown: if ( this.hasHorizontalScroll && !this.hasVerticalScroll ) { newX - snap ? 1 : this.wrapperWidth; } else { newY - snap ? 1 : this.wrapperHeight; } break; case this.options.keyBindings.end: newX snap ? this.pages.length-1 : this.maxScrollX; newY snap ? this.pages0.length-1 : this.maxScrollY; break; case this.options.keyBindings.home: newX 0; newY 0; break; case this.options.keyBindings.left: newX + snap ? -1 : 5 + this.keyAcceleration>>0; break; case this.options.keyBindings.up: newY + snap ? 1 : 5 + this.keyAcceleration>>0; break; case this.options.keyBindings.right: newX - snap ? -1 : 5 + this.keyAcceleration>>0; break; case this.options.keyBindings.down: newY - snap ? 1 : 5 + this.keyAcceleration>>0; break; default: return; } if ( snap ) { this.goToPage(newX, newY); return; } if ( newX > 0 ) { newX 0; this.keyAcceleration 0; } else if ( newX this.maxScrollX ) { newX this.maxScrollX; this.keyAcceleration 0; } if ( newY > 0 ) { newY 0; this.keyAcceleration 0; } else if ( newY this.maxScrollY ) { newY this.maxScrollY; this.keyAcceleration 0; } this.scrollTo(newX, newY, 0); this.keyTime now; }, _animate: function (destX, destY, duration, easingFn) { var that this, startX this.x, startY this.y, startTime utils.getTime(), destTime startTime + duration; function step () { var now utils.getTime(), newX, newY, easing; if ( now > destTime ) { that.isAnimating false; that._translate(destX, destY); if ( !that.resetPosition(that.options.bounceTime) ) { that._execEvent(scrollEnd); } return; } now ( now - startTime ) / duration; easing easingFn(now); newX ( destX - startX ) * easing + startX; newY ( destY - startY ) * easing + startY; that._translate(newX, newY); if ( that.isAnimating ) { rAF(step); } } this.isAnimating true; step(); }, handleEvent: function (e) { switch ( e.type ) { case touchstart: case MSPointerDown: case mousedown: this._start(e); if ( this.options.zoom && e.touches && e.touches.length > 1 ) { this._zoomStart(e); } break; case touchmove: case MSPointerMove: case mousemove: if ( this.options.zoom && e.touches && e.touches1 ) { this._zoom(e); return; } this._move(e); break; case touchend: case MSPointerUp: case mouseup: case touchcancel: case MSPointerCancel: case mousecancel: if ( this.scaled ) { this._zoomEnd(e); return; } this._end(e); break; case orientationchange: case resize: this._resize(); break; case transitionend: case webkitTransitionEnd: case oTransitionEnd: case MSTransitionEnd: this._transitionEnd(e); break; case wheel: case DOMMouseScroll: case mousewheel: if ( this.options.wheelAction zoom ) { this._wheelZoom(e); return; } this._wheel(e); break; case keydown: this._key(e); break; } }};function createDefaultScrollbar (direction, interactive, type) { var scrollbar document.createElement(div), indicator document.createElement(div); if ( type true ) { scrollbar.style.cssText position:absolute;z-index:9999; indicator.style.cssText -webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;background:rgba(0,0,0,0.5);border:1px solid rgba(255,255,255,0.9);border-radius:3px; } indicator.className iScrollIndicator; if ( direction h ) { if ( type true ) { scrollbar.style.cssText + ;height:7px;left:2px;right:2px;bottom:0; indicator.style.height 100%; } scrollbar.className iScrollHorizontalScrollbar; } else { if ( type true ) { scrollbar.style.cssText + ;width:7px;bottom:2px;top:2px;right:1px; indicator.style.width 100%; } scrollbar.className iScrollVerticalScrollbar; } scrollbar.style.cssText + ;overflow:hidden; if ( !interactive ) { scrollbar.style.pointerEvents none; } scrollbar.appendChild(indicator); return scrollbar;}function Indicator (scroller, options) { this.wrapper typeof options.el string ? document.querySelector(options.el) : options.el; this.wrapperStyle this.wrapper.style; this.indicator this.wrapper.children0; this.indicatorStyle this.indicator.style; this.scroller scroller; this.options { listenX: true, listenY: true, interactive: false, resize: true, defaultScrollbars: false, shrink: false, fade: false, speedRatioX: 0, speedRatioY: 0 }; for ( var i in options ) { this.optionsi optionsi; } this.sizeRatioX 1; this.sizeRatioY 1; this.maxPosX 0; this.maxPosY 0; if ( this.options.interactive ) { if ( !this.options.disableTouch ) { utils.addEvent(this.indicator, touchstart, this); utils.addEvent(window, touchend, this); } if ( !this.options.disablePointer ) { utils.addEvent(this.indicator, MSPointerDown, this); utils.addEvent(window, MSPointerUp, this); } if ( !this.options.disableMouse ) { utils.addEvent(this.indicator, mousedown, this); utils.addEvent(window, mouseup, this); } } if ( this.options.fade ) { this.wrapperStyleutils.style.transform this.scroller.translateZ; this.wrapperStyleutils.style.transitionDuration utils.isBadAndroid ? 0.001s : 0ms; this.wrapperStyle.opacity 0; }}Indicator.prototype { handleEvent: function (e) { switch ( e.type ) { case touchstart: case MSPointerDown: case mousedown: this._start(e); break; case touchmove: case MSPointerMove: case mousemove: this._move(e); break; case touchend: case MSPointerUp: case mouseup: case touchcancel: case MSPointerCancel: case mousecancel: this._end(e); break; } }, destroy: function () { if ( this.options.interactive ) { utils.removeEvent(this.indicator, touchstart, this); utils.removeEvent(this.indicator, MSPointerDown, this); utils.removeEvent(this.indicator, mousedown, this); utils.removeEvent(window, touchmove, this); utils.removeEvent(window, MSPointerMove, this); utils.removeEvent(window, mousemove, this); utils.removeEvent(window, touchend, this); utils.removeEvent(window, MSPointerUp, this); utils.removeEvent(window, mouseup, this); } if ( this.options.defaultScrollbars ) { this.wrapper.parentNode.removeChild(this.wrapper); } }, _start: function (e) { var point e.touches ? e.touches0 : e; e.preventDefault(); e.stopPropagation(); this.transitionTime(); this.initiated true; this.moved false; this.lastPointX point.pageX; this.lastPointY point.pageY; this.startTime utils.getTime(); if ( !this.options.disableTouch ) { utils.addEvent(window, touchmove, this); } if ( !this.options.disablePointer ) { utils.addEvent(window, MSPointerMove, this); } if ( !this.options.disableMouse ) { utils.addEvent(window, mousemove, this); } this.scroller._execEvent(beforeScrollStart); }, _move: function (e) { var point e.touches ? e.touches0 : e, deltaX, deltaY, newX, newY, timestamp utils.getTime(); if ( !this.moved ) { this.scroller._execEvent(scrollStart); } this.moved true; deltaX point.pageX - this.lastPointX; this.lastPointX point.pageX; deltaY point.pageY - this.lastPointY; this.lastPointY point.pageY; newX this.x + deltaX; newY this.y + deltaY; this._pos(newX, newY);// INSERT POINT: indicator._move e.preventDefault(); e.stopPropagation(); }, _end: function (e) { if ( !this.initiated ) { return; } this.initiated false; e.preventDefault(); e.stopPropagation(); utils.removeEvent(window, touchmove, this); utils.removeEvent(window, MSPointerMove, this); utils.removeEvent(window, mousemove, this); if ( this.scroller.options.snap ) { var snap this.scroller._nearestSnap(this.scroller.x, this.scroller.y); var time this.options.snapSpeed || Math.max( Math.max( Math.min(Math.abs(this.scroller.x - snap.x), 1000), Math.min(Math.abs(this.scroller.y - snap.y), 1000) ), 300); if ( this.scroller.x ! snap.x || this.scroller.y ! snap.y ) { this.scroller.directionX 0; this.scroller.directionY 0; this.scroller.currentPage snap; this.scroller.scrollTo(snap.x, snap.y, time, this.scroller.options.bounceEasing); } } if ( this.moved ) { this.scroller._execEvent(scrollEnd); } }, transitionTime: function (time) { time time || 0; this.indicatorStyleutils.style.transitionDuration time + ms; if ( !time && utils.isBadAndroid ) { this.indicatorStyleutils.style.transitionDuration 0.001s; } }, transitionTimingFunction: function (easing) { this.indicatorStyleutils.style.transitionTimingFunction easing; }, refresh: function () { this.transitionTime(); if ( this.options.listenX && !this.options.listenY ) { this.indicatorStyle.display this.scroller.hasHorizontalScroll ? block : none; } else if ( this.options.listenY && !this.options.listenX ) { this.indicatorStyle.display this.scroller.hasVerticalScroll ? block : none; } else { this.indicatorStyle.display this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? block : none; } if ( this.scroller.hasHorizontalScroll && this.scroller.hasVerticalScroll ) { utils.addClass(this.wrapper, iScrollBothScrollbars); utils.removeClass(this.wrapper, iScrollLoneScrollbar); if ( this.options.defaultScrollbars && this.options.customStyle ) { if ( this.options.listenX ) { this.wrapper.style.right 8px; } else { this.wrapper.style.bottom 8px; } } } else { utils.removeClass(this.wrapper, iScrollBothScrollbars); utils.addClass(this.wrapper, iScrollLoneScrollbar); if ( this.options.defaultScrollbars && this.options.customStyle ) { if ( this.options.listenX ) { this.wrapper.style.right 2px; } else { this.wrapper.style.bottom 2px; } } } var r this.wrapper.offsetHeight; // force refresh if ( this.options.listenX ) { this.wrapperWidth this.wrapper.clientWidth; if ( this.options.resize ) { this.indicatorWidth Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); this.indicatorStyle.width this.indicatorWidth + px; } else { this.indicatorWidth this.indicator.clientWidth; } this.maxPosX this.wrapperWidth - this.indicatorWidth; if ( this.options.shrink clip ) { this.minBoundaryX -this.indicatorWidth + 8; this.maxBoundaryX this.wrapperWidth - 8; } else { this.minBoundaryX 0; this.maxBoundaryX this.maxPosX; } this.sizeRatioX this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); } if ( this.options.listenY ) { this.wrapperHeight this.wrapper.clientHeight; if ( this.options.resize ) { this.indicatorHeight Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); this.indicatorStyle.height this.indicatorHeight + px; } else { this.indicatorHeight this.indicator.clientHeight; } this.maxPosY this.wrapperHeight - this.indicatorHeight; if ( this.options.shrink clip ) { this.minBoundaryY -this.indicatorHeight + 8; this.maxBoundaryY this.wrapperHeight - 8; } else { this.minBoundaryY 0; this.maxBoundaryY this.maxPosY; } this.maxPosY this.wrapperHeight - this.indicatorHeight; this.sizeRatioY this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); } this.updatePosition(); }, updatePosition: function () { var x this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, y this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; if ( !this.options.ignoreBoundaries ) { if ( x this.minBoundaryX ) { if ( this.options.shrink scale ) { this.width Math.max(this.indicatorWidth + x, 8); this.indicatorStyle.width this.width + px; } x this.minBoundaryX; } else if ( x > this.maxBoundaryX ) { if ( this.options.shrink scale ) { this.width Math.max(this.indicatorWidth - (x - this.maxPosX), 8); this.indicatorStyle.width this.width + px; x this.maxPosX + this.indicatorWidth - this.width; } else { x this.maxBoundaryX; } } else if ( this.options.shrink scale && this.width ! this.indicatorWidth ) { this.width this.indicatorWidth; this.indicatorStyle.width this.width + px; } if ( y this.minBoundaryY ) { if ( this.options.shrink scale ) { this.height Math.max(this.indicatorHeight + y * 3, 8); this.indicatorStyle.height this.height + px; } y this.minBoundaryY; } else if ( y > this.maxBoundaryY ) { if ( this.options.shrink scale ) { this.height Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); this.indicatorStyle.height this.height + px; y this.maxPosY + this.indicatorHeight - this.height; } else { y this.maxBoundaryY; } } else if ( this.options.shrink scale && this.height ! this.indicatorHeight ) { this.height this.indicatorHeight; this.indicatorStyle.height this.height + px; } } this.x x; this.y y; if ( this.scroller.options.useTransform ) { this.indicatorStyleutils.style.transform translate( + x + px, + y + px) + this.scroller.translateZ; } else { this.indicatorStyle.left x + px; this.indicatorStyle.top y + px; } }, _pos: function (x, y) { if ( x 0 ) { x 0; } else if ( x > this.maxPosX ) { x this.maxPosX; } if ( y 0 ) { y 0; } else if ( y > this.maxPosY ) { y this.maxPosY; } x this.options.listenX ? Math.round(x / this.sizeRatioX) : this.scroller.x; y this.options.listenY ? Math.round(y / this.sizeRatioY) : this.scroller.y; this.scroller.scrollTo(x, y); }, fade: function (val, hold) { if ( hold && !this.visible ) { return; } clearTimeout(this.fadeTimeout); this.fadeTimeout null; var time val ? 250 : 500, delay val ? 0 : 300; val val ? 1 : 0; this.wrapperStyleutils.style.transitionDuration time + ms; this.fadeTimeout setTimeout((function (val) { this.wrapperStyle.opacity val; this.visible +val; }).bind(this, val), delay); }};IScroll.utils utils;if ( typeof module ! undefined && module.exports ) { module.exports IScroll;} else { window.IScroll IScroll;}})(window, document, Math);/script>/div> /div> /div>div idblock-userlogincss classblock block-block-content block-block-contentec809cdb-c7a8-4030-9d08-a7e1c986de59> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>style>.form-item-name { text-align: center;}input#edit-name { margin-top: 1vw;}.tabs ul.primary { background: transparent; margin: 0 auto; width: 17%;}div#block-bartik-local-tasks { margin-top: 5vw;}.form-item label{ margin:0 auto;}form#user-login-form { width: 50%; margin: 0 auto; text-align:center;}input#edit-submit { background: transparent; display: block; margin: 0 auto; border-radius: 0;}form.user-pass > p { text-align: center;}div#block-bartik-local-tasks { margin-top: 0;}div#main-wrapper { min-height: 100vh; position: relative;}main#content { position: unset;}.region.region-content { position: absolute; width: 100%; top: 50%; left: 50%; transform: translate(-50%, -50%);}ul.tabs.primary a:hover { opacity: 0.5;}@media only screen and (max-width:1023px){.tabs ul.primary li a{ line-height:1;padding: 5px 10px;}.tabs ul.primary,form#user-login-form{ width: 75%;} .tabs ul.primary li { display: inline-block; margin: 0; }}/style>/div> /div> /div> /div> /div> /header> div classhighlighted> aside classlayout-container section clearfix rolecomplementary> div classregion region-highlighted> div data-drupal-messages-fallback classhidden>/div> /div> /aside> /div> div idmain-wrapper classlayout-main-wrapper layout-container clearfix> div idmain classlayout-main clearfix> main idcontent classcolumn main-content rolemain> section classsection> a idmain-content tabindex-1>/a> div classregion region-content> div idblock-bartik-content classblock block-system block-system-main-block> div classcontent> article data-history-node-id71 about/home typeofschema:WebPage classnode node--type-page node--view-mode-full clearfix> header> span propertyschema:name contentHome classrdf-meta hidden>/span> /header> div classnode__content clearfix> /div>/article> /div> /div>div idblock-flocklerhtml classblock block-block-content block-block-contentff1495f7-5fdd-407c-8a41-d2b1653740e0> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>div classouter-wrapper> div classview-content> div classview-content-inner> div idflockler-embed-17e4b9f0a550b76d6f86d1bacc3c91b8>/div> script> var countFlocklerItems 32; if($(window).width() > 1024){ countFlocklerItems 100; } var _flocklerOverride _flocklerOverride || {}; _flocklerOverride17e4b9f0a550b76d6f86d1bacc3c91b8 { count: countFlocklerItems, loadMoreText: Load More }; /script> script srchttps://plugins.flockler.com/embed/17e4b7365b90e2182557adcc389e3047/17e4b9f0a550b76d6f86d1bacc3c91b8 async>/script> /div> /div>/div>script typetext/javascript> var myScroll; function loaded() { myScroll new IScroll(#flockler-embed-17e4b9f0a550b76d6f86d1bacc3c91b8 .flockler-embed-content, { scrollX: true, scrollY: true, freeScroll: true, tap: true, mouseWheel: true }); jQuery(article.flockler-grid-item).each(function(){ var thisItem jQuery(this); if(thisItem.hasClass(flockler-grid-item--twitter)){ var profileHandle thisItem.find(.flockler-grid-item__profile__username).text(); thisItem.attr(custom-link-name, Flockler:TW Post: + profileHandle); } if(thisItem.hasClass(flockler-grid-item--instagram)){ var profileHandle thisItem.find(.flockler-grid-item__profile__name).text(); thisItem.attr(custom-link-name, Flockler:IG Post: + profileHandle); } }); var refreshInterval; jQuery(.flockler-btn-load-more).click(function(){ var refreshCount 0; var refreshInterval setInterval(function(){ refreshCount refreshCount + 1; if(refreshCount > 5){ clearInterval(refreshInterval); } myScroll.refresh(); },5000); setTimeout(function () { myScroll.refresh(); }, 5000); }); } /*window.onload function() { var flocklerCheckInterval setInterval(() > { if($(#flockler-embed-17e4b9f0a550b76d6f86d1bacc3c91b8 .flockler-posts .flockler-grid-item).length > 0){ clearInterval(flocklerCheckInterval); loaded(); } }, 300); };*/ jQuery(window).bind(load, function(){ var flocklerCheckInterval setInterval(() > { if($(#flockler-embed-17e4b9f0a550b76d6f86d1bacc3c91b8 .flockler-posts .flockler-grid-item).length > 0){ clearInterval(flocklerCheckInterval); loaded(); } }, 300); }); /script>/div> /div> /div> /div> /section> /main> /div> /div> footer classsite-footer> div classlayout-container> div classsite-footer__top clearfix> div classregion region-footer-first> div idblock-footer-2 classblock block-block-content block-block-contentece3ee2a-8756-4b0d-9a29-31c175ed16da> div classcontent> div classclearfix text-formatted field field--name-body field--type-text-with-summary field--label-hidden field__item>div idfooter-block classfooter-wrapper> !--div classsocial-icons> div classicon> a data-trackfacebook-ftr target_blank href classfacebook>span classicon-facebook>/span>/a> /div> div classicon> a data-tracktwitter-ftr target_blank href classtwitter>span classicon-twitter>/span>/a> /div> div classicon> a data-trackinstagram-ftr target_blank href classinstagram>span classicon-instagram>/span>/a> /div> div classicon> a data-trackyoutube-ftr target_blank href classyoutube>span classicon-youtube>/span>/a> /div> div classicon> a data-trackspotify-ftr target_blank href classspotify>span classicon-spotify>/span>/a> /div> div classicon> a target_blank data-trackapple-music-ftr href classappleinc>span classicon-appleinc>/span>/a> /div> div classicon> a target_blank data-tracksoundcloud-ftr href classsoundcloud>span classicon-soundcloud>/span>/a> /div> /div>--> div classcopyright> div classftr-hash> span classhashtag>#HBDMac /span> span> a hrefhttps://www.instagram.com/explore/tags/hbdmac/ target_blank data-trackinstagram-ftr>Instagram/a> | a hrefhttps://twitter.com/hashtag/hbdmac?srchashtag_click target_blank data-tracktwitter-ftr>Twitter/a> /span> /div> div classcopyright-text> span classcp-icon>©/span> span classyear>2026/span> span classother-info>WARNER RECORDS. MAC MILLER. ALL RIGHTS RESERVED/span> /div> div classcopyright-links> p> a target_blank hrefhttps://www.warnerrecords.com/terms-of-use classterms-of-use>span classterms>Terms of use/span>/a> span classseparator>//span> a target_blank hrefhttps://www.warnerrecords.com/privacy-policy classprivacy-policy>span classprivacy>Privacy Policy/span>/a> span classseparator>//span> !-- a target_blank hrefhttps://www.warnerrecords.com/privacy-policy#adchoices classprivacy-policy>span classprivacy>Ad Choices/span>/a> span classseparator>//span> --> a target_blank hrefhttps://www.wminewmedia.com/cookies-policy/ classprivacy-policy>span classprivacy>Cookies Policy/span>/a> span classseparator mob-br>//span> a classot-sdk-show-settings stylecursor:pointer>Cookies Settings/a> /p> /div> /div>/div>style> .site-footer__bottom .region { padding: 1.5vw 0 0.2vw; margin: 0 auto; } .copyright-text, .copyright-links { display: inline-block; } .copyright { padding: 1vw 0 0.6vw; background: #f6f6f6; } .site-footer__top .region { width: 100%; padding: 0; } .site-footer .block { margin: 0 auto; padding: 0; } .social-icons .icon a { font-size: 1.7vw; } #footer-block .icon { margin-right: 4vw; font-size: 0; padding: 0; display: inline-block; } .site-footer{ position: fixed; bottom: 0; width: 100%; margin: 0 auto; z-index: 99; background: transparent; border: 0; box-shadow: none; text-align: center; font-family: Nunito, sans-serif; font-weight: 700; } .site-footer .content, .site-footer .content a, .site-footer .content a.is-active { color: #000; } .icon { width: 1em; height: 1em; stroke-width: 0; stroke: currentColor; fill: currentColor; }.copyright-links span, .copyright span, .copyright-links span, .copyright a { color: #000; text-transform: uppercase; font-size: 0.7vw; font-family: Nunito, sans-serif; font-weight: 700;}.ftr-hash span { text-transform: none;}.site-footer .content a:hover, .site-footer .content a:focus { color: #000;}.copyright a:hover { text-decoration: underline;}.site-footer__top p { margin-top: 0;} .social-icons { font-size: 0; margin-bottom: 2vw; }@media only screen and (max-width:1023px){#footer-block .icon { margin-right: 11vw;}.social-icons .icon a { font-size: 6vw;}.social-icons { margin-bottom: 5vw;}footer.site-footer { padding: 0;}.copyright span, .copyright a { font-size: 10px;}.copyright { padding: 0; color: #000;}.social-icons { padding-top: 3vw;}}.site-footer .content a { white-space: nowrap;}@media only screen and (min-width: 1024px) and (max-width: 1266px) { .social-icons { margin-top: 1vw; } .social-icons .icon a { font-size: 3vw; } #footer-block .icon { margin-right: 6vw; } #footer-block .icon:last-child { margin-right: 0; } .copyright span, .copyright a { /*font-size: 2vw;*/ }}/style>/div> /div> /div> /div> /div> /div> /footer> /div>/div> /div> script src/sites/g/files/g2000013686/files/custom_js_1.js?cache66de8e934f00f>/script>script src/sites/g/files/g2000013686/files/custom_js_2.js?cache66de8e934f00f>/script>script src/sites/g/files/g2000013686/files/custom_js_3.js?cache66de8e934f00f>/script>script src/sites/g/files/g2000013686/files/custom_js_4.js?cache66de8e934f00f>/script>script src/sites/g/files/g2000013686/files/custom_js_5.js?cache66de8e934f00f>/script>script typetext/javascript>jQuery(document).ready(function () {jQuery().attr(,);});/script>script srchttps://libraries.wmgartistservices.com/toubannerupdate/lighttheme.js data-termslabelWR>/script> /body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]