1<!DOCTYPE html> 2<html lang="en"> 3 <head> 4 <link rel="canonical" href="https://www.medioq.com/US/Chicago/352305404623804/salin-news"> 5 <meta name="robots" content="max-image-preview:standard"> 6 7 <title>salin news, Chicago, IL (2026)</title> 8 <meta name="Description" content="Contact information, map and directions, contact form, opening hours, services, ratings, photos, videos and announcements from salin news, Digital creator, Chicago, IL."> 9 10 <meta charset="utf-8"> 11 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 12 <meta name="referrer" content="strict-origin-when-cross-origin"> 13 <meta http-equiv="x-ua-compatible" content="ie=edge"> 14 15 16<meta name="msvalidate.01" content="D49109743A3942DA9C7A030378CF0421" /> 17 18<meta name="guestpostlinks-verification" content="guestpostlinks-verification-code-12785"> 19 20 <meta property="og:title" content="salin news, Chicago, IL (2026)"> 21 <meta property="og:url" content="https://www.medioq.com/US/Chicago/352305404623804/salin-news"> 22 <meta property="og:type" content="website"> 23 <meta property="og:description" content="Contact information, map and directions, contact form, opening hours, services, ratings, photos, videos and announcements from salin news, Digital creator, Chicago, IL."> 24 <meta property="og:image" content="https://graph.facebook.com/352305404623804/picture?type=large"> 25 26 <link rel="shortcut icon" href="/img/medioq/favicon.ico" type="image/x-icon"> 27 28 <!-- Prefetch DNS for external assets --> 29 <link rel="dns-prefetch" href="//graph.facebook.com"> 30 <link rel="preconnect" href="//graph.facebook.com"> 31 <link rel="dns-prefetch" href="https://www.google-analytics.com"> 32 <link rel="preconnect" href="https://pagead2.googlesyndication.com" crossorigin> 33 <link rel="preconnect" href="https://googleads.g.doubleclick.net" crossorigin>
vendor: 150 bytes, lines 33-35
33 34 35 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49"></script>
35<link rel="preload" href="/assets/vendor/icon-line/css/simple-line-icons.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 36 <noscript><link rel="stylesheet" href="/assets/vendor/icon-line/css/simple-line-icons.css"></noscript>
vendor: 142 bytes, lines 36-38
36 37 38 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49"></script>
38<link rel="preload" href="/assets/vendor/icon-hs/style.css" as="style" onload="this.onload=null;this.rel='stylesheet'"> 39 <noscript><link rel="stylesheet" href="/assets/vendor/icon-hs/style.css"></noscript> 40 41 42 <link rel="preload" href="/assets/vendor/icon-hs/fonts/hs-icons.ttf?xa77py" as="font" type="font/ttf" crossorigin> 43 44 45 46 47
47<script data-cfasync="false"> 48 var userCountryCode='US'; 49 </script>
49 50
50<script data-cfasync="false" defer src="/js/adsense-unfilled-collapse.js?v=20260830-3"></script>
vendor: 1 bytes, line 50
50
51<script data-cfasync="false"> 52(function () { 53 var consentGate = { 54 enabled: false, 55 requestPauseEnabled: false, 56 diagnosticsEnabled: false, 57 regulated: false, 58 ready: false, 59 startedAt: Date.now(), 60 queue: [], 61 surfaceQueued: {}, 62 surfaceReleased: {}, 63 requestPauseArmed: false, 64 requestPauseReleased: false, 65 requestPauseTimedOut: false, 66 requestPauseOutcomeRecorded: false, 67 telemetryEnabled: true, 68 telemetryToken: 'YWR0MXwxNzkwOTI0MjU4fDQ0fHB2XzI2MGQwZWI1MWI3NzRhNTNhNjUzYjlhYzExOTk4OWM1fDEwMA.y6mILoxwrRjMAvOxwaCTHpjXMyg2N7wN4yM1JcaX56A', 69 telemetryPageviewId: 'pv_260d0eb51b774a53a653b9ac119989c5', 70 telemetryRate: 100, 71 pageType: 'item' 72 }; 73 consentGate.requestPauseActive = consentGate.requestPauseEnabled && consentGate.regulated; 74 consentGate.active = (consentGate.enabled || consentGate.requestPauseEnabled) && consentGate.regulated; 75 consentGate.diagnosticsActive = consentGate.active || (consentGate.diagnosticsEnabled && consentGate.regulated); 76 var consentGatePublicState = { 77 enabled: consentGate.enabled, 78 requestPauseEnabled: consentGate.requestPauseEnabled, 79 requestPauseActive: consentGate.requestPauseActive, 80 requestPauseArmed: false, 81 requestPauseReleased: false, 82 requestPauseTimedOut: false, 83 diagnosticsEnabled: consentGate.diagnosticsEnabled, 84 regulated: consentGate.regulated, 85 active: consentGate.active, 86 diagnosticsActive: consentGate.diagnosticsActive, 87 ready: false, 88 queuedSurfaces: 0, 89 releasedSurfaces: 0, 90 abandonedSurfaces: 0, 91 autoRequestObserved: false, 92 autoDomObserved: false, 93 autoFilledObserved: false, 94 autoUnfilledObserved: false 95 }; 96 window.fglConsentReadyGateState = consentGatePublicState; 97 98 // This partial is emitted before every AdSense loader on Unify01. Arming 99 // synchronously here prevents both account-configured Auto Ads and manual 100 // slots from issuing requests before Funding Choices is ready. 101 if (consentGate.requestPauseActive) { 102 window.adsbygoogle = window.adsbygoogle || []; 103 window.adsbygoogle.pauseAdRequests = 1; 104 consentGate.requestPauseArmed = true; 105 consentGatePublicState.requestPauseArmed = true; 106 } 107 108 function consentGateSampled() { 109 var hash = 2166136261; 110 if (!consentGate.telemetryEnabled || !consentGate.telemetryToken || 111 !consentGate.telemetryPageviewId || consentGate.telemetryRate < 1) return false; 112 for (var i = 0; i < consentGate.telemetryPageviewId.length; i++) {
113 hash ^= consentGate.telemetryPageviewId.charCodeAt(i); 114 hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24); 115 } 116 return ((hash >>> 0) % 1000) < consentGate.telemetryRate; 117 } 118 consentGate.sampled = consentGateSampled(); 119 120 function consentGateBrowserFamily() { 121 var ua = String(navigator && navigator.userAgent || '').toLowerCase(); 122 if (ua.indexOf('edg/') !== -1 || ua.indexOf('edge/') !== -1) return 'edge'; 123 if (ua.indexOf('opr/') !== -1 || ua.indexOf('opera') !== -1) return 'opera'; 124 if (ua.indexOf('firefox/') !== -1 || ua.indexOf('fxios/') !== -1) return 'firefox'; 125 if (ua.indexOf('chrome/') !== -1 || ua.indexOf('crios/') !== -1) return 'chrome'; 126 if (ua.indexOf('safari/') !== -1) return 'safari'; 127 return 'other'; 128 } 129 130 function consentGateTrafficSource() { 131 var referrer = String(document.referrer || ''), parser, host, current; 132 if (!referrer) return 'direct'; 133 try { 134 parser = document.createElement('a'); parser.href = referrer; 135 host = String(parser.hostname || '').toLowerCase(); 136 current = String(window.location.hostname || '').toLowerCase(); 137 } catch (e) { return 'unknown'; } 138 if (!host) return 'unknown'; 139 if (host === current || host.slice(-(current.length + 1)) === '.' + current) return 'internal'; 140 if (/(^|\.)google\./.test(host)) return 'google'; 141 if (/(^|\.)(bing\.com|yahoo\.[a-z.]+)$/.test(host) || host.indexOf('search.yahoo.') !== -1) return 'bing_yahoo'; 142 if (/(^|\.)(duckduckgo\.com|ecosia\.org|yandex\.[a-z.]+|baidu\.com)$/.test(host)) return 'other_search'; 143 if (/(^|\.)(facebook\.com|instagram\.com|twitter\.com|t\.co|linkedin\.com|pinterest\.[a-z.]+)$/.test(host)) return 'social'; 144 return 'other_referral'; 145 } 146 147 function recordConsentGateEvent(eventType, surface, elapsedMs, diagnostic, placement) { 148 var body, event, xhr; 149 if (!consentGate.sampled) return; 150 diagnostic = diagnostic || {}; 151 event = { 152 event_type: eventType, 153 placement: placement || '', 154 elapsed_ms: Math.max(0, elapsedMs || 0), 155 layout: 'unify01', 156 page_type: consentGate.pageType, 157 browser_family: consentGateBrowserFamily(), 158 loader_source: diagnostic.loader_source || 'adsbygoogle', 159 visibility_state: document.visibilityState || 'unknown', 160 failure_class: 'none', 161 client_profile: 'unknown', 162 resource_entry_state: diagnostic.resource_entry_state || 'unknown', 163 traffic_source_family: consentGateTrafficSource(), 164 delivery_surface: surface, 165 tcf_probe_stage: diagnostic.tcf_probe_stage || 'none', 166 tcf_observation_phase: diagnostic.tcf_observation_phase || 'none', 167 tcf_api_state: diagnostic.tcf_api_state || 'not_probed', 168 tcf_cmp_family: diagnostic.tcf_cmp_family || 'unknown', 169 tcf_cmp_status: diagnostic.tcf_cmp_status || 'unknown', 170 tcf_event_status: diagnostic.tcf_event_status || 'unknown', 171 tcf_string_state: diagnostic.tcf_string_state || 'unknown', 172 gdpr_applies_state: diagnostic.gdpr_applies_state || 'unknown' 173 }; 174 body = JSON.stringify({ 175 token: consentGate.telemetryToken, 176 pageview_id: consentGate.telemetryPageviewId, 177 sample_rate_permille: consentGate.telemetryRate, 178 events: [event] 179 }); 180 try { 181 if (navigator.sendBeacon && window.Blob && navigator.sendBeacon('/adt', new Blob([body], {type: 'application/json'}))) return; 182 } catch (e) {} 183 try { 184 if (window.fetch) { 185 window.fetch('/adt', {method: 'POST', body: body, credentials: 'same-origin', keepalive: true, 186 headers: {'Content-Type': 'application/json'}}).catch(function () {}); 187 return; 188 } 189 if (window.XMLHttpRequest) { 190 xhr = new XMLHttpRequest(); 191 xhr.open('POST', '/adt', true); 192 xhr.setRequestHeader('Content-Type', 'application/json'); 193 xhr.send(body); 194 } 195 } catch (e) {} 196 } 197 198 function recordRequestPauseOutcome(outcome, elapsedMs, diagnostic) { 199 var placement; 200 if (!consentGate.requestPauseArmed || consentGate.requestPauseOutcomeRecorded) return; 201 consentGate.requestPauseOutcomeRecorded = true; 202 placement = 'request_pause_v3_' + outcome + 203 (consentGate.requestPauseTimedOut ? '_after_timeout' : '_before_timeout'); 204 recordConsentGateEvent( 205 outcome === 'released' ? 'adsense_request_pause_released' : 'adsense_request_pause_abandoned', 206 'unknown', 207 elapsedMs, 208 diagnostic, 209 placement 210 ); 211 } 212 213 if (consentGate.requestPauseArmed) { 214 recordConsentGateEvent('adsense_request_pause_armed', 'unknown', 0, null, 'request_pause_v3_armed'); 215 } 216 217 var autoConsentTrace = { 218 consentReadyAt: null, 219 consentReadyDiagnostic: null, 220 tcfSnapshots: [], 221 listenerId: null, 222 applicationPushAt: null,
223 requestRecorded: false, 224 requestBeforeRecorded: false, 225 boundaryOutcomeRecorded: false, 226 boundaryTimer: null, 227 domRecorded: false, 228 filledRecorded: false, 229 unfilledRecorded: false, 230 statusOutcomeRecorded: false, 231 statusWindowClosed: false, 232 statusWindowTimer: null, 233 resourceObserverStarted: false, 234 domObserverStarted: false, 235 domObserver: null, 236 tcfListenerStarted: false, 237 prePushRecorded: {} 238 }; 239 240 function autoTraceNow() { 241 try { 242 if (window.performance && typeof window.performance.now === 'function') return window.performance.now(); 243 } catch (e) {} 244 return Date.now() - consentGate.startedAt; 245 } 246 247 function autoTraceBoundedSnapshot(data) { 248 var cmpId = data && parseInt(data.cmpId, 10), tcString; 249 if (data && typeof data.tcString === 'string') tcString = data.tcString.length ? 'present' : 'absent'; 250 else tcString = 'unknown'; 251 return { 252 observedAt: autoTraceNow(), 253 cmpFamily: cmpId === 300 ? 'google' : (cmpId > 0 ? 'other' : 'unknown'), 254 cmpStatus: String(data && data.cmpStatus || 'unknown').toLowerCase(), 255 eventStatus: String(data && data.eventStatus || 'unknown').toLowerCase(), 256 stringState: tcString, 257 gdprState: data && data.gdprApplies === true ? 'yes' : 258 (data && data.gdprApplies === false ? 'no' : 'unknown') 259 }; 260 } 261 262 function autoTraceSnapshotAt(observedAt) { 263 var snapshots = autoConsentTrace.tcfSnapshots, i; 264 for (i = snapshots.length - 1; i >= 0; i--) { 265 if (snapshots[i].observedAt <= observedAt) { 266 return snapshots[i]; 267 } 268 } 269 return null; 270 } 271 272 function autoTraceDiagnosticAt(observedAt, resourceState) { 273 var snapshot = autoTraceSnapshotAt(observedAt); 274 if (snapshot) { 275 return { 276 resource_entry_state: resourceState || 'present', 277 tcf_observation_phase: 'first', 278 tcf_api_state: 'responded', 279 tcf_cmp_family: snapshot.cmpFamily, 280 tcf_cmp_status: snapshot.cmpStatus, 281 tcf_event_status: snapshot.eventStatus, 282 tcf_string_state: snapshot.stringState, 283 gdpr_applies_state: snapshot.gdprState 284 }; 285 } 286 return { 287 resource_entry_state: resourceState || 'present', 288 tcf_observation_phase: 'first', 289 tcf_api_state: typeof window.__tcfapi === 'function' ? 'not_probed' : 'absent', 290 tcf_string_state: 'unknown', 291 gdpr_applies_state: 'unknown' 292 }; 293 } 294 295 function autoTraceRecord(kind, observedAt, placement) { 296 var afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt; 297 var eventType = kind === 'request' 298 ? 'adsense_auto_request_before_consent' 299 : (afterConsent ? 'adsense_auto_dom_after_consent' : 'adsense_auto_dom_before_consent'); 300 recordConsentGateEvent( 301 eventType, 302 'auto_ads', 303 observedAt, 304 autoTraceDiagnosticAt(observedAt), 305 placement || (kind === 'request' ? 'auto_request' : 'auto_dom') 306 ); 307 return afterConsent; 308 } 309 310 function autoTraceIsGoogleAdRequest(resourceName) { 311 var parser, host, path; 312 try { 313 parser = document.createElement('a'); 314 parser.href = String(resourceName || ''); 315 host = String(parser.hostname || '').toLowerCase(); 316 path = String(parser.pathname || '').toLowerCase(); 317 } catch (e) { return false; } 318 return (host === 'pagead2.googlesyndication.com' || host === 'googleads.g.doubleclick.net') && 319 path.indexOf('/pagead/ads') === 0; 320 } 321 322 function autoTraceQueryValue(resourceName, parameterName) { 323 var parser, query, parts, i, pair, key, value; 324 try { 325 parser = document.createElement('a'); 326 parser.href = String(resourceName || ''); 327 query = String(parser.search || '').replace(/^\?/, ''); 328 if (!query) return null; 329 parts = query.split('&'); 330 for (i = 0; i < parts.length; i++) { 331 pair = parts[i].split('='); 332 key = decodeURIComponent(String(pair.shift() || '').replace(/\+/g, ' ')); 333 if (key !== parameterName) continue; 334 value = decodeURIComponent(String(pair.join('=') || '').replace(/\+/g, ' ')); 335 return value; 336 } 337 } catch (e) {} 338 return null; 339 } 340 341 function autoTraceRequestClassification(resourceName) { 342 var gdpr = autoTraceQueryValue(resourceName, 'gdpr'); 343 var tcString = autoTraceQueryValue(resourceName, 'gdpr_consent'); 344 var signal = tcString ? 'tc_present' : 345 (gdpr === '1' ? 'gdpr_without_tc' : (gdpr === '0' ? 'gdpr_not_applicable' : 'no_url_signal')); 346 var mode = autoTraceQueryValue(resourceName, 'ltd') === '1' ? 'limited' : 347 (autoTraceQueryValue(resourceName, 'npa') === '1' ? 'non_personalized' : 348 (autoTraceQueryValue(resourceName, 'rdp') === '1' ? 'restricted' : 'no_url_marker')); 349 return 'req_' + signal + '_' + mode; 350 } 351 352 function autoTraceResourceEntry(entry) { 353 var observedAt; 354 if (autoConsentTrace.requestRecorded || autoConsentTrace.boundaryOutcomeRecorded || 355 !autoTraceIsGoogleAdRequest(entry && entry.name)) return; 356 observedAt = typeof entry.startTime === 'number' ? entry.startTime : autoTraceNow(); 357 if (autoConsentTrace.applicationPushAt !== null && observedAt >= autoConsentTrace.applicationPushAt) return; 358 if (autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt) return; 359 autoConsentTrace.requestRecorded = true; 360 autoTraceRecord('request', observedAt, autoTraceRequestClassification(entry.name)); 361 autoConsentTrace.requestBeforeRecorded = true; 362 autoConsentTrace.boundaryOutcomeRecorded = true; 363 if (autoConsentTrace.boundaryTimer !== null) window.clearTimeout(autoConsentTrace.boundaryTimer); 364 autoConsentTrace.boundaryTimer = null; 365 consentGatePublicState.autoRequestObserved = true; 366 } 367 368 function autoTraceDrainResourceEntries() { 369 var resources, i; 370 try { 371 if (!window.performance || !window.performance.getEntriesByType) return; 372 resources = window.performance.getEntriesByType('resource'); 373 for (i = 0; i < resources.length && !autoConsentTrace.requestRecorded; i++) { 374 autoTraceResourceEntry(resources[i]); 375 } 376 } catch (e) {} 377 } 378 379 function autoTraceStartResourceObserver() { 380 var observer; 381 if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.resourceObserverStarted) return; 382 autoConsentTrace.resourceObserverStarted = true; 383 try { 384 autoTraceDrainResourceEntries(); 385 if (window.PerformanceObserver) { 386 observer = new PerformanceObserver(function (list) { 387 var entries = list.getEntries(), j; 388 for (j = 0; j < entries.length; j++) autoTraceResourceEntry(entries[j]); 389 }); 390 try { observer.observe({type: 'resource', buffered: true}); } 391 catch (bufferedError) { observer.observe({entryTypes: ['resource']}); } 392 } 393 } catch (e) {} 394 } 395 396 function autoTraceIsInjectedAdNode(node) { 397 if (!node || node.nodeType !== 1) return false;
398 try { 399 if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return false; 400 if (node.matches && node.matches('.adsbygoogle, iframe[id^="google_ads_iframe_"]')) return true; 401 return String(node.id || '').toLowerCase().indexOf('google_vignette') === 0; 402 } catch (e) { return false; } 403 } 404 405 function autoTraceRecordAdStatus(status, observedAt) { 406 var afterConsent, eventType, placement; 407 if (autoConsentTrace.statusWindowClosed || (status !== 'filled' && status !== 'unfilled')) return; 408 afterConsent = autoConsentTrace.consentReadyAt !== null && observedAt >= autoConsentTrace.consentReadyAt; 409 if (!autoConsentTrace.statusOutcomeRecorded) { 410 autoConsentTrace.statusOutcomeRecorded = true; 411 recordConsentGateEvent( 412 'adsense_auto_status_observed_' + (afterConsent ? 'after' : 'before') + '_consent', 413 'auto_ads', 414 observedAt, 415 autoTraceDiagnosticAt(observedAt), 416 status === 'filled' ? 'auto_status_filled' : 'auto_status_unfilled' 417 ); 418 } 419 if (status === 'filled') { 420 if (autoConsentTrace.filledRecorded) return; 421 autoConsentTrace.filledRecorded = true; 422 consentGatePublicState.autoFilledObserved = true; 423 placement = 'auto_window_filled'; 424 } else if (status === 'unfilled') { 425 if (autoConsentTrace.unfilledRecorded) return; 426 autoConsentTrace.unfilledRecorded = true; 427 consentGatePublicState.autoUnfilledObserved = true; 428 placement = 'auto_window_unfilled'; 429 } 430 eventType = 'adsense_auto_' + status + '_' + (afterConsent ? 'after' : 'before') + '_consent'; 431 recordConsentGateEvent(eventType, 'auto_ads', observedAt, 432 autoTraceDiagnosticAt(observedAt), placement); 433 } 434 435 function autoTraceInspectAdStatusNode(node) { 436 var candidates, i, status; 437 if (!node || node.nodeType !== 1) return; 438 try { 439 if (node.closest && node.closest('[data-fgl-adsense-manual="1"]')) return; 440 if (node.matches && node.matches('.adsbygoogle[data-ad-status]')) { 441 status = String(node.getAttribute('data-ad-status') || '').toLowerCase(); 442 autoTraceRecordAdStatus(status, autoTraceNow()); 443 } 444 if (!node.querySelectorAll) return; 445 candidates = node.querySelectorAll('.adsbygoogle[data-ad-status]'); 446 for (i = 0; i < candidates.length; i++) { 447 if (candidates[i].closest && candidates[i].closest('[data-fgl-adsense-manual="1"]')) continue; 448 status = String(candidates[i].getAttribute('data-ad-status') || '').toLowerCase(); 449 autoTraceRecordAdStatus(status, autoTraceNow()); 450 } 451 } catch (e) {} 452 } 453 454 function autoTraceInspectDomNode(node) { 455 var candidates, i; 456 if (autoConsentTrace.domRecorded || autoConsentTrace.applicationPushAt !== null || !node || node.nodeType !== 1) return; 457 if (autoTraceIsInjectedAdNode(node)) { 458 autoConsentTrace.domRecorded = true; 459 autoTraceRecord('dom', autoTraceNow()); 460 consentGatePublicState.autoDomObserved = true; 461 return; 462 } 463 if (!node.querySelectorAll) return; 464 candidates = node.querySelectorAll('.adsbygoogle, iframe[id^="google_ads_iframe_"], [id^="google_vignette"]'); 465 for (i = 0; i < candidates.length && !autoConsentTrace.domRecorded; i++) { 466 if (autoTraceIsInjectedAdNode(candidates[i])) { 467 autoConsentTrace.domRecorded = true; 468 autoTraceRecord('dom', autoTraceNow()); 469 consentGatePublicState.autoDomObserved = true; 470 } 471 } 472 } 473 474 function autoTraceStartDomObserver() { 475 var observer, root = document.documentElement || document.body; 476 if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.domObserverStarted || !root) return; 477 autoConsentTrace.domObserverStarted = true; 478 autoTraceInspectDomNode(root); 479 autoTraceInspectAdStatusNode(root); 480 if (!window.MutationObserver) return; 481 observer = new MutationObserver(function (records) { 482 var i, j; 483 for (i = 0; i < records.length; i++) { 484 if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target); 485 for (j = 0; j < records[i].addedNodes.length; j++) { 486 autoTraceInspectDomNode(records[i].addedNodes[j]); 487 autoTraceInspectAdStatusNode(records[i].addedNodes[j]); 488 } 489 } 490 }); 491 observer.observe(root, {childList: true, subtree: true, attributes: true, attributeFilter: ['data-ad-status']}); 492 autoConsentTrace.domObserver = observer; 493 } 494 495 function autoTraceDrainDomRecords() { 496 var records, i, j; 497 if (!autoConsentTrace.domObserver || !autoConsentTrace.domObserver.takeRecords) return; 498 try { 499 records = autoConsentTrace.domObserver.takeRecords(); 500 for (i = 0; i < records.length; i++) { 501 if (records[i].type === 'attributes') autoTraceInspectAdStatusNode(records[i].target); 502 for (j = 0; j < records[i].addedNodes.length; j++) { 503 autoTraceInspectDomNode(records[i].addedNodes[j]); 504 autoTraceInspectAdStatusNode(records[i].addedNodes[j]); 505 } 506 } 507 } catch (e) {} 508 } 509 510 function autoTraceStartTcfListener() { 511 var api = window.__tcfapi; 512 if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.tcfListenerStarted || 513 typeof api !== 'function') return; 514 try { 515 api('addEventListener', 2, function (data, success) { 516 if (!success || !data) return; 517 autoConsentTrace.listenerId = data.listenerId || autoConsentTrace.listenerId; 518 autoConsentTrace.tcfSnapshots.push(autoTraceBoundedSnapshot(data)); 519 if (autoConsentTrace.tcfSnapshots.length > 8) autoConsentTrace.tcfSnapshots.shift(); 520 }); 521 autoConsentTrace.tcfListenerStarted = true; 522 } catch (e) {} 523 } 524 525 function autoTraceFinalizeBoundary(fallbackBoundaryAt) { 526 var boundaryAt, boundaryDiagnostic; 527 if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.boundaryOutcomeRecorded) return; 528 boundaryAt = autoConsentTrace.consentReadyAt !== null 529 ? autoConsentTrace.consentReadyAt 530 : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : null); 531 if (boundaryAt === null) return; 532 autoTraceDrainResourceEntries(); 533 if (autoConsentTrace.requestBeforeRecorded || autoConsentTrace.boundaryOutcomeRecorded) return; 534 autoConsentTrace.boundaryOutcomeRecorded = true; 535 autoConsentTrace.boundaryTimer = null; 536 boundaryDiagnostic = autoConsentTrace.consentReadyAt !== null 537 ? autoConsentTrace.consentReadyDiagnostic 538 : autoTraceDiagnosticAt(boundaryAt, 'missing'); 539 recordConsentGateEvent( 540 'adsense_auto_no_request_before_consent', 541 'auto_ads', 542 boundaryAt, 543 boundaryDiagnostic || autoTraceDiagnosticAt(boundaryAt, 'missing'), 544 'auto_request' 545 ); 546 } 547 548 function autoTraceFinalizeStatusWindow(fallbackBoundaryAt) { 549 var boundaryAt, boundaryDiagnostic; 550 if (!consentGate.diagnosticsActive || !consentGate.sampled || autoConsentTrace.statusWindowClosed) return; 551 autoConsentTrace.statusWindowClosed = true; 552 if (autoConsentTrace.statusWindowTimer !== null) window.clearTimeout(autoConsentTrace.statusWindowTimer); 553 autoConsentTrace.statusWindowTimer = null; 554 if (autoConsentTrace.statusOutcomeRecorded) return; 555 autoConsentTrace.statusOutcomeRecorded = true; 556 boundaryAt = autoConsentTrace.consentReadyAt !== null 557 ? autoTraceNow() 558 : (typeof fallbackBoundaryAt === 'number' ? fallbackBoundaryAt : autoTraceNow()); 559 boundaryDiagnostic = autoTraceDiagnosticAt(boundaryAt, 'missing'); 560 recordConsentGateEvent( 561 'adsense_auto_no_status_observed', 562 'auto_ads', 563 boundaryAt, 564 boundaryDiagnostic, 565 'auto_status_none' 566 ); 567 } 568 569 function autoTraceMarkApplicationPush() { 570 if (autoConsentTrace.applicationPushAt !== null) return; 571 autoTraceDrainResourceEntries(); 572 autoTraceDrainDomRecords(); 573 autoConsentTrace.applicationPushAt = autoTraceNow(); 574 } 575 576 function autoTraceManualSlot(elem) { 577 var slot = elem && elem.getAttribute ? String(elem.getAttribute('data-ad-slot') || '') : ''; 578 return /^\d{1,20}$/.test(slot) ? 'slot_' + slot : ''; 579 } 580 581 function autoTraceRecordPrePush(surface, placement) { 582 var observedAt, snapshot; 583 if (!consentGate.diagnosticsActive || !consentGate.sampled || 584 autoConsentTrace.prePushRecorded[surface]) return; 585 autoConsentTrace.prePushRecorded[surface] = true; 586 observedAt = autoTraceNow(); 587 snapshot = autoTraceSnapshotAt(observedAt); 588 recordConsentGateEvent( 589 'adsense_tcf_probe', 590 surface, 591 snapshot ? Math.max(0, observedAt - snapshot.observedAt) : 0, 592 autoTraceDiagnosticAt(observedAt, 'missing'), 593 placement || '' 594 ); 595 } 596 597 autoTraceStartResourceObserver(); 598 autoTraceStartDomObserver(); 599 if (!autoConsentTrace.domObserverStarted && document.readyState === 'loading') { 600 document.addEventListener('DOMContentLoaded', autoTraceStartDomObserver); 601 } 602 603 function queueConsentGatePush(surface, action) { 604 if (!consentGate.active || consentGate.ready) return false;
605 consentGate.queue.push({surface: surface, action: action}); 606 if (!consentGate.surfaceQueued[surface]) { 607 consentGate.surfaceQueued[surface] = true; 608 consentGatePublicState.queuedSurfaces++; 609 recordConsentGateEvent('adsense_consent_push_queued', surface, Date.now() - consentGate.startedAt); 610 } 611 return true; 612 } 613 614 function releaseConsentGatePushes() { 615 var queued, item, i, elapsed; 616 if (!consentGate.diagnosticsActive || consentGate.ready) return; 617 autoTraceDrainDomRecords(); 618 if (autoConsentTrace.consentReadyAt === null) autoConsentTrace.consentReadyAt = autoTraceNow(); 619 autoConsentTrace.consentReadyDiagnostic = autoTraceDiagnosticAt(autoConsentTrace.consentReadyAt, 'missing'); 620 autoConsentTrace.boundaryTimer = window.setTimeout(autoTraceFinalizeBoundary, 10000); 621 autoConsentTrace.statusWindowTimer = window.setTimeout(autoTraceFinalizeStatusWindow, 10000); 622 consentGate.ready = true; 623 consentGatePublicState.ready = true; 624 elapsed = Date.now() - consentGate.startedAt; 625 if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) { 626 recordRequestPauseOutcome('released', elapsed, autoConsentTrace.consentReadyDiagnostic); 627 window.adsbygoogle = window.adsbygoogle || []; 628 window.adsbygoogle.pauseAdRequests = 0; 629 consentGate.requestPauseReleased = true; 630 consentGatePublicState.requestPauseReleased = true; 631 } 632 queued = consentGate.queue.slice(0); 633 consentGate.queue = []; 634 for (i = 0; i < queued.length; i++) { 635 item = queued[i]; 636 if (!consentGate.surfaceReleased[item.surface]) { 637 consentGate.surfaceReleased[item.surface] = true; 638 consentGatePublicState.releasedSurfaces++; 639 recordConsentGateEvent('adsense_consent_push_released', item.surface, elapsed); 640 } 641 try { item.action(); } catch (e) {} 642 } 643 } 644 645 if (consentGate.diagnosticsActive) { 646 window.googlefc = window.googlefc || {}; 647 window.googlefc.callbackQueue = window.googlefc.callbackQueue || []; 648 window.googlefc.callbackQueue.push({'CONSENT_API_READY': autoTraceStartTcfListener}); 649 window.googlefc.callbackQueue.push({'CONSENT_DATA_READY': releaseConsentGatePushes}); 650 autoTraceStartTcfListener(); 651 if (consentGate.requestPauseArmed) { 652 window.setTimeout(function () { 653 if (consentGate.requestPauseReleased || consentGate.requestPauseTimedOut) return; 654 consentGate.requestPauseTimedOut = true; 655 consentGatePublicState.requestPauseTimedOut = true; 656 recordConsentGateEvent( 657 'adsense_request_pause_timeout', 658 'unknown', 659 Date.now() - consentGate.startedAt, 660 autoTraceDiagnosticAt(autoTraceNow(), 'missing'), 661 'request_pause_v3_timeout_checkpoint' 662 ); 663 }, 10000); 664 } 665 window.addEventListener('pagehide', function (event) { 666 var seen = {}, i, surface; 667 if (event && event.persisted) return; 668 if (consentGate.requestPauseArmed && !consentGate.requestPauseReleased) { 669 recordRequestPauseOutcome( 670 'abandoned', 671 Date.now() - consentGate.startedAt, 672 autoTraceDiagnosticAt(autoTraceNow(), 'missing') 673 ); 674 } 675 autoTraceFinalizeBoundary(autoTraceNow()); 676 autoTraceFinalizeStatusWindow(autoTraceNow()); 677 if (!consentGate.active || consentGate.ready || !consentGate.queue.length) return; 678 for (i = 0; i < consentGate.queue.length; i++) { 679 surface = consentGate.queue[i].surface; 680 if (!seen[surface]) { 681 seen[surface] = true; 682 consentGatePublicState.abandonedSurfaces++; 683 recordConsentGateEvent('adsense_consent_push_abandoned', surface, Date.now() - consentGate.startedAt); 684 } 685 } 686 }); 687 } 688 689 function getBrowserTimeZone() { 690 try { 691 return String(Intl.DateTimeFormat().resolvedOptions().timeZone || ''); 692 } catch (e) { 693 return ''; 694 } 695 } 696 697 function clientMatchesSuspiciousAdsenseProfile() { 698 var scr = window.screen || {}; 699 if (scr.width === 1280 && scr.height === 1200) { 700 var browserTimeZone = getBrowserTimeZone(); 701 return browserTimeZone.indexOf('Asia/') === 0; 702 } 703 704 return false;
705 } 706 707 function sendTarpitGaEvent(name) { 708 try { 709 if (window.fglGtagConfigured && typeof window.gtag === 'function') { 710 window.gtag('event', name, { 711 'event_category': 'scraper_tarpit', 712 'event_label': '1280x1200_asia_timezone', 713 'non_interaction': true 714 }); 715 return; 716 } 717 718 window.fglPendingTarpitGaEvents = window.fglPendingTarpitGaEvents || []; 719 window.fglPendingTarpitGaEvents.push({ 720 name: name, 721 params: { 722 'event_category': 'scraper_tarpit', 723 'event_label': '1280x1200_asia_timezone', 724 'non_interaction': true 725 } 726 }); 727 } catch (e) { 728 } 729 } 730 731 window.fglFlushTarpitGaEvents = function () { 732 if (typeof window.gtag !== 'function') { 733 return; 734 } 735 736 var events = window.fglPendingTarpitGaEvents || []; 737 window.fglPendingTarpitGaEvents = []; 738 for (var i = 0; i < events.length; i++) { 739 window.gtag('event', events[i].name, events[i].params); 740 } 741 }; 742 743 function runClientTarpit(durationMs) { 744 var endAt = Date.now() + durationMs; 745 var sink = 0; 746 while (Date.now() < endAt) { 747 sink += Math.sqrt((Date.now() % 997) + Math.random()); 748 } 749 window.fglTarpitSink = sink; 750 } 751 752 function runSuspiciousClientTarpit() { 753 var waitStartedAt = Date.now(); 754 755 sendTarpitGaEvent('fgl_tarpit_start_20260610_a'); 756 757 function runAfterGaStartFlush() { 758 if (!window.fglGtagConfigured && Date.now() - waitStartedAt < 3000) { 759 window.setTimeout(runAfterGaStartFlush, 50); 760 return; 761 } 762 763 if (window.fglFlushTarpitGaEvents) { 764 window.fglFlushTarpitGaEvents(); 765 } 766 767 window.setTimeout(function () { 768 runClientTarpit(25000); 769 sendTarpitGaEvent('fgl_tarpit_end_25s_20260610_a'); 770 if (window.fglFlushTarpitGaEvents) { 771 window.fglFlushTarpitGaEvents(); 772 } 773 774 window.setTimeout(function () { 775 runClientTarpit(30000); 776 sendTarpitGaEvent('fgl_tarpit_end_55s_20260610_a'); 777 if (window.fglFlushTarpitGaEvents) { 778 window.fglFlushTarpitGaEvents(); 779 } 780 }, 0); 781 }, 3000); 782 } 783 784 window.setTimeout(runAfterGaStartFlush, 0); 785 } 786 787 if (clientMatchesSuspiciousAdsenseProfile()) { 788 runSuspiciousClientTarpit(); 789 } 790 791 window.fglShouldBlockAdsenseClient = function () { 792 return clientMatchesSuspiciousAdsenseProfile(); 793 }; 794 795 window.fglCanLoadAdsenseClient = function () { 796 return !window.fglShouldBlockAdsenseClient(); 797 }; 798 799 function pushAdsenseElementNow(elem) { 800 if (!window.fglCanLoadAdsenseClient() || !elem) { 801 return false; 802 } 803 804 if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed')) { 805 return false; 806 } 807 808 autoTraceRecordPrePush('manual_placement', autoTraceManualSlot(elem)); 809 autoTraceMarkApplicationPush(); 810 elem.setAttribute('data-fgl-adsbygoogle-pushed', '1'); 811 try { 812 (window.adsbygoogle = window.adsbygoogle || []).push({}); 813 } catch (e) { 814 if (String(e && e.message || '').indexOf('already have ads') !== -1) { 815 return false; 816 } 817 elem.removeAttribute('data-fgl-adsbygoogle-pushed'); 818 throw e; 819 } 820 return true; 821 } 822 823 window.fglPushAdsenseElement = function (elem) { 824 if (!window.fglCanLoadAdsenseClient() || !elem) return false; 825 if (elem.getAttribute('data-adsbygoogle-status') || elem.getAttribute('data-fgl-adsbygoogle-pushed') || 826 elem.getAttribute('data-fgl-adsbygoogle-consent-queued')) return false;
827 elem.setAttribute('data-fgl-adsense-manual', '1'); 828 if (queueConsentGatePush('manual_placement', function () { 829 elem.removeAttribute('data-fgl-adsbygoogle-consent-queued'); 830 if (document.documentElement.contains(elem)) pushAdsenseElementNow(elem); 831 })) { 832 elem.setAttribute('data-fgl-adsbygoogle-consent-queued', '1'); 833 return true; 834 } 835 return pushAdsenseElementNow(elem); 836 }; 837 838 function pushAdsenseOptionsNow(opts) { 839 if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed) { 840 return false; 841 } 842 843 if (document.querySelector('.adsbygoogle')) { 844 return false; 845 } 846 847 autoTraceRecordPrePush('auto_ads'); 848 autoTraceMarkApplicationPush(); 849 window.fglAdsenseOptionsPushed = true; 850 try { 851 (window.adsbygoogle = window.adsbygoogle || []).push(opts); 852 } catch (e) { 853 if (String(e && e.message || '').indexOf('already have ads') !== -1) { 854 return false; 855 } 856 window.fglAdsenseOptionsPushed = false; 857 throw e; 858 } 859 return true; 860 } 861 862 window.fglPushAdsenseOptions = function (opts) { 863 if (!window.fglCanLoadAdsenseClient() || window.fglAdsenseOptionsPushed || window.fglAdsenseOptionsConsentQueued) return false; 864 if (document.querySelector('.adsbygoogle')) return false; 865 if (queueConsentGatePush('auto_ads', function () { 866 window.fglAdsenseOptionsConsentQueued = false; 867 pushAdsenseOptionsNow(opts); 868 })) { 869 window.fglAdsenseOptionsConsentQueued = true; 870 return true; 871 } 872 return pushAdsenseOptionsNow(opts); 873 }; 874 875 window.fglLoadAdsenseScript = function (src, anon, callback) { 876 if (!window.fglCanLoadAdsenseClient()) { 877 return false; 878 } 879 880 var scriptKey = src.indexOf('/adsbygoogle.js') !== -1 ? 'adsbygoogle' : src; 881 window.fglLoadedAdScripts = window.fglLoadedAdScripts || {}; 882 if (window.fglLoadedAdScripts[scriptKey]) { 883 return false; 884 } 885 window.fglLoadedAdScripts[scriptKey] = true; 886 887 var script = document.createElement('script'); 888 script.type = 'text/javascript'; 889 script.async = true; 890 if (src.indexOf('/adsbygoogle.js') === -1) { 891 script.setAttribute('data-cfasync', 'false'); 892 } else { 893 script.setAttribute('fetchpriority', 'high'); 894 } 895 script.src = src; 896 if (anon) { 897 script.crossOrigin = 'anonymous'; 898 } 899 if (callback) { 900 script.onload = callback; 901 } 902 document.head.appendChild(script); 903 return true; 904 }; 905 906}()); 907</script>
907 908 909 910 911
911<script data-cfasync="false"> 912 913 var _errsLogged=0; 914 function _logErr(err) { 915 if (_errsLogged>=5) { 916 return; 917 } 918 _errsLogged++; 919 var client = new XMLHttpRequest(); 920 client.open('POST', '/err'); 921 client.setRequestHeader('Content-Type', 'text/plain;charset=UTF-8'); 922 client.send(err); 923 } 924 925 function loadScript(jsFile, anon, callback) { 926 const script = document.createElement('script'); 927 script.type = 'text/javascript'; 928 script.async = true; 929 script.onerror = function() { 930 console.log("Error loading " + this.src); 931 if ((this.src.search("addthis") === -1) && (this.src.search("cse.google") === -1) && !navigator.userAgent.includes("Googlebot") && !navigator.userAgent.includes("bingbot")) { 932 _logErr(['loadScript error ' + jsFile, 933 'Loc: ' + window.location.href, 934 'Country: ' + userCountryCode, 935 'UA: ' + navigator.userAgent, 936 this.src].join('\n')); 937 } 938 }; 939 script.src = jsFile; 940 if (anon) { 941 script.crossOrigin = 'anonymous'; 942 } 943 if (callback) { 944 script.onload=callback; 945 } 946 947 document.head.appendChild(script); 948 } 949 </script>
949 950 951
951<script data-cfasync="false"> 952 window.dataLayer = window.dataLayer || []; 953 function gtag(){ dataLayer.push(arguments); } 954 955 gtag('consent','default',{ 956 ad_storage:'denied', 957 analytics_storage:'denied', 958 ad_user_data:'denied', 959 ad_personalization:'denied' 960 },{ 961 region:[ 962 'AT','BE','BG','HR','CY','CZ','DK','EE','FI','FR','DE','GR','HU','IE','IT', 963 'LV','LT','LU','MT','NL','PL','PT','RO','SK','SI','ES','SE','IS','LI','NO', 964 'GB','CH' 965 ] 966 }); 967 968 gtag('consent','default',{ 969 ad_storage:'granted', 970 analytics_storage:'granted', 971 ad_user_data:'granted', 972 ad_personalization:'granted' 973 }); 974 </script>
974 975 976
976<script data-cfasync="false"> 977 window.fglLoadAdsenseScript("https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-4665502378458953", true); 978 </script>
978 979 980 981 982 <link rel="stylesheet" type="text/css" href="/css/font-awesome.4.7.0.min.css" /> 983<link rel="stylesheet" type="text/css" href="/assets/css.css" /> 984<link rel="stylesheet" href="/css/directory-shared.css?v=13">
985<script data-cfasync="false" src="/js/jquery.3.7.1.min.js"></script>
vendor: 1 bytes, line 985
985
986<script data-cfasync="false" src="/assets/js.js?v=2"></script>
986 987 988 989
989<script data-cfasync="false">var FbInited = false;</script>
989 990 991
991<script data-cfasync="false"> 992 993 </script>
993 994
994<script data-cfasync="false"> 995(function () { 996 try { 997 var nav = window.navigator || {}; 998 var scr = window.screen || {}; 999 var lang = String(nav.language || ''); 1000 var langs = nav.languages || []; 1001 var firstLang = langs && langs.length ? String(langs[0] || '') : lang; 1002 var ref = String(document.referrer || ''); 1003 1004 if (scr.width !== 1280 || scr.height !== 1200) { 1005 return; 1006 } 1007 1008 var payload = { 1009 sw: scr.width || 0, 1010 sh: scr.height || 0, 1011 aw: scr.availWidth || 0, 1012 ah: scr.availHeight || 0, 1013 iw: window.innerWidth || 0, 1014 ih: window.innerHeight || 0, 1015 dpr: window.devicePixelRatio || 0, 1016 lang: lang, 1017 langs: Array.prototype.slice.call(langs || []).slice(0, 8), 1018 ref: ref, 1019 uri: window.location.pathname + window.location.search 1020 }; 1021 var body = JSON.stringify(payload); 1022 var endpoint = '/asvl'; 1023 1024 if (nav.sendBeacon) { 1025 nav.sendBeacon(endpoint, new Blob([body], {type: 'application/json'})); 1026 return; 1027 } 1028 1029 if (window.fetch) { 1030 window.fetch(endpoint, { 1031 method: 'POST', 1032 body: body, 1033 headers: {'Content-Type': 'application/json'}, 1034 keepalive: true, 1035 credentials: 'same-origin' 1036 }); 1037 } 1038 } catch (e) { 1039 } 1040}()); 1041</script>
1041 1042 1043 1044 1045 1046 1047
1047<script data-cfasync="false"> 1048 var configuredWebsiteHost = 'www.medioq.com'; 1049 var configuredAccountHost = 'account.' + configuredWebsiteHost.replace(/^www\./, ''); 1050 if ((window.location.hostname !== configuredWebsiteHost) && (window.location.hostname !== configuredAccountHost) && (window.location.hostname.indexOf('localhost') === -1)) { 1051 window.top.location.href = 'http://www.medioq.com' + window.location.pathname; 1052 } 1053 </script>
1053 1054 1055 1056 <link rel="stylesheet" href="/css/listing-picture-initials.css?v=1" /> 1057
1057<script data-cfasync="false" defer src="/js/facebook-picture-placeholder.js?v=6"></script>
1057 1058 </head> 1059 1060 <body class="page-item"> 1061 <main itemscope itemtype="http://schema.org/NewsMediaOrganization"> 1062 1063 1064 1065<!-- Header --> 1066 <header id="js-header" class="u-header u-header--sticky-top u-header--toggle-section u-header--change-appearance" data-header-fix-moment="300"> 1067 <div class="u-header__section u-header__section--dark g-bg-primary g-transition-0_3 g-py-10" data-header-fix-moment-exclude="g-py-10" data-header-fix-moment-classes="g-py-0"> 1068 1069 <nav class="navbar navbar-expand-lg"> 1070 <div class="container"> 1071 <!-- Responsive Toggle Button --> 1072 <button class="navbar-toggler navbar-toggler-right btn g-line-height-1 g-brd-none g-pa-0 g-pos-abs g-top-3 g-right-0" type="button" 1073 aria-label="Toggle navigation" aria-expanded="false" aria-controls="navBar" data-toggle="collapse" data-target="#navBar"> 1074 <span class="hamburger hamburger--slider"> 1075 <span class="hamburger-box"> 1076 <span class="hamburger-inner"> 1077 </span> 1078 </span> 1079 </span> 1080 </button> 1081 <!-- End Responsive Toggle Button --> 1082 1083 <!-- Logo --> 1084 <a href="https://www.medioq.com/" class="navbar-brand"> 1085 <img src="/img/medioq/h30/logo.png" height="30" alt="Medioq"> 1086 </a> 1087 <!-- End Logo --> 1088 1089 <!-- Navigation --> 1090 <div class="collapse navbar-collapse align-items-center flex-sm-row g-pt-10 g-pt-5--lg" id="navBar"> 1091 <ul class="navbar-nav text-uppercase g-font-weight-600 ml-auto"> 1092 1093 1094 <li class="nav-item g-mx-20--lg "> 1095 <a href="https://www.medioq.com/" class="nav-link px-0" data-google-interstitial="false"> 1096 Home </a> 1097 </li> 1098 <li class="nav-item g-mx-20--lg "> 1099 <a href="https://www.medioq.com/US" class="nav-link px-0"><i class='fa fa-map-marker'></i> Cities</a> 1100 </li> 1101 <li class="nav-item g-mx-20--lg "> 1102 <a href="https://www.medioq.com/countries" class="nav-link px-0"><i class='fa fa-globe'></i> Countries<span class='sr-only'>(current)</span></a> 1103 </li> 1104 1105 <li class="nav-item g-mx-20--lg"> 1106 <a href="/login/352305404623804" class="nav-link px-0" data-google-interstitial="false">Login<span class='sr-only'>(current)</span></a> </li> 1107 1108 </ul> 1109 </div> 1110 <!-- End Navigation --> 1111 </div> 1112 </nav> 1113 </div> 1114 </header> 1115 <!-- End Header --> 1116 1117 1118 1119<!--<div class="row" id="contentrow"> 1120 <div class="col-xs-12">--> 1121 <link rel="stylesheet" href="/css/listing-description.css?v=20260916-2">
1122<script defer src="/js/listing-description.js?v=20260916-3" type="b2b5ca3951bd201338d63dfd-text/javascript"></script>
1122 1123 1124 1125
1125<script type="application/ld+json"> 1126{ 1127 "@context": "http://schema.org", 1128 "@type": "BreadcrumbList", 1129 "itemListElement": [{ 1130 "@type": "ListItem", 1131 "position": 1, 1132 "item": { 1133 "@id": "https:\/\/www.medioq.com\/US", 1134 "name": "United States" } 1135 },{ 1136 "@type": "ListItem", 1137 "position": 2, 1138 "item": { 1139 "@id": "https:\/\/www.medioq.com\/US\/Chicago-IL\/211818", 1140 "name": "Chicago, IL" } 1141 },{ 1142 "@type": "ListItem", 1143 "position": 3, 1144 "item": { 1145 "@id": "https:\/\/www.medioq.com\/US\/Chicago\/352305404623804\/salin-news", 1146 "name": "salin news", 1147 "image": "https:\/\/graph.facebook.com\/352305404623804\/picture?type=large" } 1148 }] 1149} 1150</script>
1150 1151
1152<script type="application/ld+json"> 1153{ 1154 "@context": "https://schema.org", 1155 "@type": "NewsMediaOrganization", 1156 "image": "https:\/\/graph.facebook.com\/352305404623804\/picture?type=large", 1157 "logo": "https:\/\/graph.facebook.com\/352305404623804\/picture?type=large", 1158 "name": "salin news", 1159 "address": { 1160 "@type": "PostalAddress", 1161 "streetAddress": "", 1162 "addressLocality": "Chicago", 1163 "addressRegion": "IL", 1164 "postalCode": "", 1165 "addressCountry": "US" } 1166 ,"geo": { 1167 "@type": "GeoCoordinates", 1168 "latitude": 41.8495, 1169 "longitude": -87.6505 } 1170 ,"containedInPlace": { 1171 "@context": "http://schema.org", 1172 "@id": "https:\/\/www.medioq.com\/US\/Chicago-IL\/211818", 1173 "@type": "Place", 1174 "name": "Chicago, IL" ,"sameAs": ["http:\/\/sws.geonames.org\/4887398"] 1175 } 1176 ,"url": "https:\/\/www.facebook.com\/352305404623804\/" ,"sameAs" : [ 1177 "https:\/\/www.facebook.com\/352305404623804" ] } 1178</script>
1178 1179
1180<script type="application/ld+json"> 1181{ 1182 "@context": "https://schema.org", 1183 "@type": "FAQPage", 1184 "mainEntity": [ 1185 { 1186 "@type": "Question", 1187 "name": "What is the website?", 1188 "acceptedAnswer": { 1189 "@type": "Answer", 1190 "text": "https:\/\/www.facebook.com\/352305404623804\/" } 1191 } 1192 ] 1193} 1194</script>
1194 1195 1196 1197 1198 1199<div class="g-pt-85"> 1200 <section class="g-bg-size-cover g-bg-pos-center g-bg-cover g-bg-black-opacity-0_5--after g-color-white g-py-50 g-mb-20" 1201 style="background-image: url(/img/directory/1920x800/cities/211818-chicago.jpg);"> 1202 <div class="container g-bg-cover__inner"> 1203 1204 <header class="g-mb-20"> 1205 <h1 class="h1 g-font-weight-300 text-uppercase" itemprop="name">salin news</h1> 1206 </header> 1207 1208 <ul class="u-list-inline"> 1209 <li class="list-inline-item g-mr-7"> 1210 <a href="/" class="u-link-v5 g-color-white g-color-primary--hover">Home</a> <i class="fa fa-angle-right g-ml-7"></i> 1211 </li> 1212 <li class="list-inline-item g-mr-7"> 1213 <a href="/US" class="u-link-v5 g-color-white g-color-primary--hover">United States</a> <i class="fa fa-angle-right g-ml-7"></i> 1214 </li> 1215 <li class="list-inline-item g-mr-7"> 1216 <a href="/US/Chicago-IL/211818" class="u-link-v5 g-color-white g-color-primary--hover">Chicago, IL</a> <i class="fa fa-angle-right g-ml-7"></i> 1217 </li> 1218 <li class="list-inline-item g-color-primary"> 1219 <span>salin news</span> 1220 </li> 1221 </ul> 1222 1223 1224 </div> 1225 </section> 1226</div> 1227 1228 1229 1230 1231<div class="container"> 1232 <div class="row"> 1233 <div class="col-sm-12 w-100"> 1234 1235 <p data-listing-description data-description-more="Read more" data-description-less="Show less" itemprop="description" class="directory-provider-intro lead mb-0 g-line-height-1_8 float-left w-100"> 1236 1237 <!-- Logo image -->
vendor: 153 bytes, lines 1237-1238
1237 1238 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49"></script>
1238<img class="rounded g-width-135 float-right g-ml-10" 1239 src="https://graph.facebook.com/352305404623804/picture?type=large" 1240 1241 width="135" height="135" 1242 itemprop="image" 1243 alt="salin news" 1244 onerror="this.onerror=null;this.src='/img/medioq/logo.png';" /> 1245 1246 1247 Contact information, map and directions, contact form, opening hours, services, ratings, photos, videos and announcements from salin news, Digital creator, Chicago, IL. 1248 </p> 1249 1250 </div> 1251 </div> 1252 1253 <div class="row g-mb-10 g-mt-10"> 1254 <div class="col-sm-12 w-100 text-center"> 1255 <center style="height:280px"> 1256 <ins class="adsbygoogle" data-fgl-adsense-manual="1" 1257 style="display:block; height:280px" 1258 data-ad-channel="4964997971" 1259 data-ad-slot="4726379115" 1260 > 1261 </ins> 1262</center> 1263 1264 </div> 1265 </div> 1266 </div> 1267 1268 1269 1270 1271 1272<div class="container g-pt-20 g-pb-10"> 1273 <div class="row justify-content-between"> 1274 <div class="col-xl-8 col-lg-9 col-md-6 order-2 g-mb-80" style="float:right"> 1275 1276 1277 1278 1279 1280 1281 1282 <div class="g-pl-20--lg"> 1283 1284 1285 <div class="masonry-grid row directory-post-grid postsgrid"> 1286 1287 1288 1289 <div class="masonry-grid-sizer"></div> 1290 </div> 1291 </div> 1292 1293 <div id="location"></div> 1294 1295 <!-- Map and address --> 1296 <div class="g-pl-20--lg g-pt-30"> 1297 <section> 1298 <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20"> 1299 <h2 class="h3 u-heading-v1__title">Address</h2> 1300 </div> 1301 1302 1303 <p itemprop="address" itemscope itemtype="http://schema.org/PostalAddress"> 1304 <span itemprop="streetAddress"></span> <span itemprop="addressLocality">Chicago</span>, <span itemprop="addressRegion">IL</span> <br/> 1305 <span itemprop="postalCode"></span> 1306 </p> 1307 1308 <div id="map" style="height: 400px; width: 100%;"></div> 1309 1310 1311 <div class="g-pt-10 text-center"> 1312 1313<ins class="adsbygoogle" data-fgl-adsense-manual="1" 1314 style="display:block; min-height:90px" 1315 data-ad-channel="4964997971" 1316 data-ad-slot="5987489890" 1317 data-full-width-responsive="true"></ins> 1318 1319 1320 </div> 1321 1322 1323 1324 </section> 1325 </div> 1326 <!-- End Map and address --> 1327 1328 <!-- General info --> 1329 1330 <div id="hours"></div> 1331 <div id="telephone"></div> 1332 <div id="website"></div> 1333 <div id="restaurant_services"></div> 1334 1335 <div class="g-pl-20--lg g-mt-30"> 1336 <div class="masonry-grid2 row"> 1337 <div class="masonry-grid-sizer"></div> 1338 1339 1340 <!-- Hours --> 1341 <!-- End Hours --> 1342 1343 1344 <!-- Telephone --> 1345 <!-- End Telephone --> 1346 1347 <!-- WhatsApp --> 1348 <!-- End WhatsApp --> 1349 1350 <!-- Website --> 1351 <div class="g-pl-20--lg masonry-grid-item col-sm-6 g-mb-30"> 1352 <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20"> 1353 <h2 class="h3 u-heading-v1__title">Website</h2> 1354 </div> 1355 <p style='overflow-wrap:anywhere'> 1356 <a href="https://www.facebook.com/352305404623804/" itemprop="url" rel="nofollow" target="_blank">facebook.com</a> 1357 </p> 1358 </div> 1359 <!-- End Website --> 1360 1361 <!-- Restaurant services --> 1362 <!-- End Restaurant services --> 1363 1364 <!-- Restaurant specialties --> 1365 <!-- End Restaurant specialties --> 1366 1367 <!-- Products --> 1368 <!-- End Restaurant specialties --> 1369 </div> 1370 </div> 1371 1372 <!-- Comments --> 1373 1374 1375 1376 <div id="contact"></div> 1377 1378 <!-- Alerts --> 1379 <div id="alerts" class="g-pl-20--lg g-mb-40"> 1380 <div class="u-heading-v1-4 g-bg-main g-brd-primary g-mb-20"> 1381 <h2 class="h3 u-heading-v1__title">Alerts</h2> 1382 </div> 1383 <p> 1384 Be the first to know and let us send you an email when salin news posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time. 1385 <form class="g-mt-15" onsubmit="if (!window.__cfRLUnblockHandlers) return false; event.preventDefault(); subscribe(null,352305404623804);" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1386 <div class="row"> 1387 <div class="col-12"> 1388 <div class="form-group g-mb-10"> 1389 <label class="sr-only" for="alert_email">Your Email</label> 1390 <input id="alert_email" class="form-control g-brd-primary--focus g-px-20 g-py-12" type="email" placeholder="Your Email"> 1391 </div> 1392 </div> 1393 1394 <div class="col-12"> 1395 <button id="alert_submit" class="btn btn-md u-btn-primary g-font-size-12 text-uppercase rounded g-py-11 g-px-30" type="submit">Subscribe</button> 1396 </div> 1397 </div> 1398 </form> 1399 </p> 1400 </div> 1401 1402 <!-- Contact business --> 1403 <!-- End Contact business --> 1404 1405 1406 1407
1407<script type="b2b5ca3951bd201338d63dfd-text/javascript"> 1408 var my_video_player; 1409 var start_playing = false; 1410 1411 window.fbAsyncInit = function() { 1412 FB.init({ 1413 appId : '1649304618667893', 1414 autoLogAppEvents : true, 1415 xfbml : true, 1416 version : 'v14.0' 1417 }); 1418 1419 FbInited = true; 1420 1421 FB.Event.subscribe('xfbml.ready', function(msg) { 1422 if (msg.type === 'video') { 1423 my_video_player = msg.instance; 1424 if (start_playing) 1425 my_video_player.play(); 1426 var myEventHandler = my_video_player.subscribe('startedPlaying', function(e) { 1427 }); 1428 } 1429 1430 FB.Event.subscribe('xfbml.ready', function(msg) { 1431 $grid.masonry('layout'); 1432 }); 1433 1434 }); 1435 }; 1436 1437 1438 (function(d, s, id){ 1439 var js, fjs = d.getElementsByTagName(s)[0]; 1440 if (d.getElementById(id)) {return;} 1441 js = d.createElement(s); js.id = id; 1442 js.src = "//connect.facebook.net/en_US/sdk.js"; 1443 fjs.parentNode.insertBefore(js, fjs); 1444 }(document, 'script', 'facebook-jssdk')); 1445 </script>
1445 1446 1447 1448 <!-- Videos --> 1449 <!-- End Videos --> 1450 1451 </div> 1452 1453 <div class="col-xl-4 col-lg-3 col-md-6 order-1 g-brd-right--lg g-brd-gray-light-v4 g-mb-40"> 1454 <div class="g-pr-20--lg"> 1455 1456 <!-- Shortcuts --> 1457 <div class="g-mb-10"> 1458 <h3 class="h5 g-color-black g-font-weight-600 mb-4">Shortcuts</h3> 1459 <ul class="list-unstyled g-font-size-13 mb-0"> 1460 <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#location"> 1461 <i class="mr-2 fa fa-angle-right"></i> Address</a> 1462 </li> 1463 <li><a class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" href="#alerts"> 1464 <i class="mr-2 fa fa-angle-right"></i> Alerts</a> 1465 </li> 1466 1467 1468 <li><form action="/claim/start/352305404623804" method="post" style="margin:0;"><button type="submit" class="d-block u-link-v5 g-color-black g-px-20 g-py-8 g-pa-5 g-mb-minus-1 g-bg-primary rounded g-mb-5" style="border:0;text-align:left;width:100%;" data-google-interstitial="false"><i class="mr-2 fa fa-angle-right"></i>Claim ownership or report listing</button></form> 1469 </li> 1470 <li><button type="button" class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover" style="border:0;background:transparent;text-align:left;width:100%;" data-takedown-open data-google-interstitial="false"><i class="mr-2 fa fa-angle-right"></i>Request takedown</button></li> 1471 1472 </ul> 1473 </div> 1474 <!-- End Shortcuts --> 1475 1476 1477 1478 <div class="g-mb-10 g-mt-30"> 1479 <h3 class="h5 g-color-black g-font-weight-600 mb-4" id="nearby">Featured</h3> 1480 1481 <ul class="list-unstyled g-font-size-13 mb-0"> 1482 <li class="g-brd-gray-light-v4 g-pa-5 g-bg-primary rounded g-mb-5" style="overflow: hidden"> 1483 <div class="media"> 1484 <div class="d-flex g-mt-2 g-mr-15">
vendor: 181 bytes, lines 1484-1485
1484 1485 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49"></script>
1485<img class="g-width-40 g-height-40 rounded-circle" 1486 width="100" height="100" 1487 src="https://graph.facebook.com/102374038413235/picture?type=square" 1488 alt="Where Are They Now-Radio Show" 1489 onerror="this.onerror=null;this.src='/img/medioq/logo.png'" /> 1490 </div> 1491 <div class="media-body"> 1492 <p class="m-0"> 1493 <strong> 1494 <a href="/US/Chicago/102374038413235/Where-Are-They-Now-Radio-Show" class="u-link-v5 g-color-black g-color-white--hover">Where Are They Now-Radio Show</a> </strong> 1495 </p> 1496 <span class="g-font-size-12 g-color-gray"> 1497 Chicago </span> 1498 </div> 1499 </div> 1500 </li> 1501 <li class="g-brd-gray-light-v4 g-pa-5 g-bg-primary rounded g-mb-5" style="overflow: hidden"> 1502 <div class="media"> 1503 <div class="d-flex g-mt-2 g-mr-15">
vendor: 181 bytes, lines 1503-1504
1503 1504 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49"></script>
1504<img class="g-width-40 g-height-40 rounded-circle" 1505 width="100" height="100" 1506 src="https://graph.facebook.com/105763567955002/picture?type=square" 1507 alt="Where Are They Now Radio Show" 1508 onerror="this.onerror=null;this.src='/img/medioq/logo.png'" /> 1509 </div> 1510 <div class="media-body"> 1511 <p class="m-0"> 1512 <strong> 1513 <a href="/US/Chicago/105763567955002/Where-Are-They-Now-Radio-Show" class="u-link-v5 g-color-black g-color-white--hover">Where Are They Now Radio Show</a> </strong> 1514 </p> 1515 <span class="g-font-size-12 g-color-gray"> 1516 </span> 1517 </div> 1518 </div> 1519 </li> 1520 </ul> 1521 </div> 1522 1523 1524 1525 1526 <div class="g-pr-20--lg g-mt-30"> 1527 <div class="g-mb-30"> 1528 <h3 class="h5 g-color-black g-font-weight-600 mb-4">Share</h3> 1529 <div> 1530 <a href="https://www.facebook.com/sharer/sharer.php?u=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnFacebook(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1531 <img src="/img/facebook.png" height="50" width="50" alt="Share on Facebook"> 1532 </a> 1533 <a href="https://twitter.com/intent/tweet?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnTwitter(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1534 <img src="/img/twitter.png" height="50" width="50" alt="Share on Twitter"> 1535 </a> 1536 <a href="https://www.linkedin.com/shareArticle?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnLinkedIn(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1537 <img src="/img/linkedin.png" height="50" width="50" alt="Share on LinkedIn"> 1538 </a> 1539 <br/> 1540 <a href="https://pinterest.com/pin/create/button/?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnPinterest(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1541 <img src="/img/pinterest.png" height="50" width="50" alt="Share on Pinterest" style="margin-top:10px"> 1542 </a> 1543 <a href="https://www.reddit.com/submit?url=#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnReddit(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1544 <img src="/img/reddit.png" height="50" width="50" alt="Share on Reddit" style="margin-top:10px"> 1545 </a> 1546<a href="/cdn-cgi/l/email-protection#d9e6aaacbbb3bcbaade49ab1bcbab2fcebe9b6acadfcebe9adb1b0aafcebe9a9b8bebcffbbb6bda0e4fa"> 1547 <img src="/img/email.png" height="50" width="50" alt="Share via Email" style="margin-top:10px"> 1548 </a> 1549 <br/> 1550 <a href="whatsapp://send?text=#" data-action="share/whatsapp/share"> 1551 <img src="/img/whatsapp.png" height="50" width="50" alt="Share on WhatsApp" style="margin-top:10px"> 1552 </a> 1553 <a href="#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnInstagram(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1554 <img src="/img/instagram.png" height="50" width="50" alt="Share on Instagram" style="margin-top:10px"> 1555 </a> 1556<a href="#" onclick="if (!window.__cfRLUnblockHandlers) return false; shareOnTelegram(); return false;" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1557 <img src="/img/telegram.png" height="50" width="50" alt="Share on Telegram" style="margin-top:10px"> 1558 </a> 1559</div>
vendor: 109 bytes, lines 1559-1560
1559 1560<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
1560<script type="b2b5ca3951bd201338d63dfd-text/javascript"> 1561 function getCurrentPageUrl() { 1562 return encodeURIComponent(window.location.href); 1563 } 1564 1565 function shareOnFacebook() { 1566 var url = getCurrentPageUrl(); 1567 window.open('https://www.facebook.com/sharer/sharer.php?u=' + url, '_blank'); 1568 } 1569 1570 function shareOnTwitter() { 1571 var url = getCurrentPageUrl(); 1572 window.open('https://twitter.com/intent/tweet?url=' + url, '_blank'); 1573 } 1574 1575 function shareOnLinkedIn() { 1576 var url = getCurrentPageUrl(); 1577 window.open('https://www.linkedin.com/shareArticle?url=' + url, '_blank'); 1578 } 1579 1580 function shareOnPinterest() { 1581 var url = getCurrentPageUrl(); 1582 window.open('https://pinterest.com/pin/create/button/?url=' + url, '_blank'); 1583 } 1584 function shareOnReddit() { 1585 var url = getCurrentPageUrl(); 1586 window.open('https://www.reddit.com/submit?url=' + url, '_blank'); 1587 } 1588 function shareViaEmail() { 1589 var url = getCurrentPageUrl(); 1590 var subject = encodeURIComponent('Check out this page'); 1591 var body = encodeURIComponent(url); 1592 window.location.href = 'mailto:?subject=' + subject + '&body=' + body; 1593 } 1594 1595 function shareOnWhatsApp() { 1596 var url = getCurrentPageUrl(); 1597 window.location.href = 'whatsapp://send?text=' + encodeURIComponent(url); 1598 } 1599 function shareOnInstagram() { 1600 var url = getCurrentPageUrl(); 1601 var caption = encodeURIComponent("Check out this page: " + url); 1602 window.location.href = 'instagram://library?AssetPath=' + url + '&InstagramCaption=' + caption; 1603 } 1604 function shareOnTelegram() { 1605 var url = getCurrentPageUrl(); 1606 window.open('https://t.me/share/url?url=' + encodeURIComponent(url)); 1607 } 1608</script>
1608 1609 1610 </div> 1611 </div> 1612 1613 <div class="g-pr-20--lg"> 1614 <div class="g-mb-50"> 1615 <h3 class="h5 g-color-black g-font-weight-600 mb-4">Category</h3> 1616 <ul class="list-unstyled g-font-size-13 mb-0"> 1617 1618 <li> 1619 <a href="/US/Chicago-IL/211818/genre/2347428775505624/Digital+creator" class="d-block u-link-v5 g-color-gray-dark-v4 rounded g-px-20 g-py-8 g-color-primary--hover"><i class="mr-2 fa fa-angle-right"></i> Digital creator</a> </li> 1620 1621 </ul> 1622 </div> 1623 </div> 1624 1625 1626 1627 1628 1629<div class="g-mb-50"> 1630 1631 <ul class="list-unstyled"> 1632 </ul> 1633</div> 1634 1635 1636<div class="g-mb-50 text-center"> 1637 <center> 1638<ins class="adsbygoogle" data-fgl-adsense-manual="1" 1639 style="display:block; min-height:600px" 1640 data-ad-channel="4964997971" 1641 data-ad-slot="5996348316" 1642 data-full-width-responsive="true"></ins> 1643 1644</center> 1645 </div> 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 </div> 1658 </div> 1659 </div> 1660 1661 1662 1663</div> 1664 1665 1666 1667 1668 1669 1670
1671<script data-cfasync="false"> 1672 1673function trunc20(str) { 1674 if (str.length > 20) { 1675 return str.substring(0,20) + "..."; 1676 } else { 1677 return str; 1678 } 1679} 1680 1681 1682 1683var map; 1684 1685document.addEventListener("DOMContentLoaded", function(){ 1686 1687 setTimeout(function (){ 1688 loadCss("https://unpkg.com/[email protected]/dist/leaflet.css", false); 1689 loadScript("https://unpkg.com/[email protected]/dist/leaflet.js", false, function () { 1690 1691 map = L.map('map').setView([41.8495, -87.6505], 14); 1692 var markersLayer = new L.LayerGroup(); 1693 markersLayer.addTo(map); 1694 var osmAttrib='© <a href="https://maptiler.com">MapTiler</a> © <a href="https://openstreetmap.org">OpenStreetMap</a> contributors'; 1695 var locations = [ 1696 {id:352305404623804,lat:41.8495,lng:-87.6505,title:'salin news',popupHtml:'<center><a href="/US/Chicago/352305404623804/salin-news"><img height="100" width="100" src="https://graph.facebook.com/352305404623804/picture?type=large"/><h5>salin news</h5></a></center>',urlPath:'US/Chicago/352305404623804/salin-news',pictureUrl:'https://graph.facebook.com/352305404623804/picture?type=large',label:''}, 1697 ]; 1698 var locationIds = [352305404623804,]; 1699 var gettingMore = false; 1700 1701 map.on('moveend', function(e) { 1702 //getMore(); 1703 }); 1704 1705 map.on('zoomend', function(e) { 1706 //getMore(); 1707 }); 1708 1709 map._addMarker = function(loc) { 1710 var marker = L.marker([loc.lat,loc.lng], { 1711 title: loc.title, 1712 riseOnHover: true, 1713 icon: loc.label ? new L.DivIcon({ 1714 className: 'directory-map-marker', 1715 html: '<span aria-hidden="true">' + loc.label + '</span>', 1716 iconSize: [34, 34], 1717 iconAnchor: [17, 34], 1718 popupAnchor: [0, -34] 1719 }) : new L.Icon.Default() 1720 }) 1721 .bindTooltip('<a href="/' + loc.urlPath + '">' + loc.title + '</a>', { 1722 permanent: false, 1723 direction: 'top', 1724 offset: L.point(0, -30), 1725 opacity: 0.88, 1726 interactive: true 1727 }) 1728 .bindPopup(loc.popupHtml); 1729 markersLayer.addLayer(marker); 1730 } 1731 1732 var mapPopulated = false; 1733 function populateMap() { 1734 if (mapPopulated) { 1735 return; 1736 } 1737 mapPopulated = true; 1738 locations.forEach(function(loc) { 1739 map._addMarker(loc); 1740 }); 1741 L.tileLayer('https://map.medioq.com/api/maps/bright/{z}/{x}/{y}.png', { 1742 attribution: osmAttrib, 1743 tileSize: 512, 1744 zoomOffset: -1 1745 }).addTo(map); 1746 } 1747 1748 if ("IntersectionObserver" in window) { 1749 let lazyMapObserver = new IntersectionObserver(function(entries, observer) { 1750 entries.forEach(function(entry) { 1751 if (entry.isIntersecting) { 1752 lazyMapObserver.unobserve(entry.target); 1753 populateMap(); 1754 } 1755 }); 1756 }); 1757 lazyMapObserver.observe(document.querySelector("#map")); 1758 } else { 1759 populateMap(); 1760 } 1761 1762 map._addMarker2 = function(label, name, latitude, longitude) { 1763 1764 1765 var marker = L.marker([latitude,longitude], { 1766 //title: loc.title, 1767 icon: label ? new L.DivIcon({ 1768 className: 'directory-map-marker', 1769 html: '<span aria-hidden="true">' + label + '</span>', 1770 iconSize: [34, 34], 1771 iconAnchor: [17, 34], 1772 popupAnchor: [0, -34] 1773 }) : new L.Icon.Default() 1774 1775 //className: 'my-div-icon', 1776 //iconUrl: "https://graph.facebook.com/" + loc.id + "/picture?type=square", 1777 //iconSize: [32, 32], 1778 //html: '<span class="my-div-span"><img height="24" width="24" border="2" src="https://graph.facebook.com/' + loc.id + '/picture?type=square" /></span>' 1779 1780 }) 1781 1782 .bindTooltip(name, { 1783 //permanent: true, 1784 direction: 'bottom', 1785 //offset: L.point(12, 25), 1786 //opacity: 0.88, 1787 interactive: true 1788 }) 1789 .bindPopup(name); 1790 markersLayer.addLayer(marker); 1791 1792 } 1793 1794 function getMore() { 1795 if (gettingMore) { 1796 return; 1797 } 1798 gettingMore = true; 1799 var center = map.getCenter(); 1800 1801 $.ajax({ 1802 url: "/vicinitysearch", 1803 data: { lat: center.lat, lng: center.lng, country: "UNITED STATES" } 1804 }) 1805 .done(function(data) { 1806 var added = 0; 1807 data.forEach(function(loc) { 1808 if (!locationIds.includes(loc.id)) { 1809 var mapLoc = {id:loc.id,lat:loc.latitude,lng:loc.longitude,title:trunc20(loc.name),popupHtml:loc.popupHtml,urlPath:loc.urlPath,pictureUrl:loc.pictureUrl}; 1810 locations.push(mapLoc); 1811 locationIds.push(loc.id); 1812 map._addMarker(mapLoc); 1813 added++; 1814 } 1815 }); 1816 }) 1817 .always(function() { 1818 gettingMore = false;
1819 }); 1820 } 1821 1822 map._clearMarkers = function() { 1823 markersLayer.clearLayers(); 1824 } 1825 1826 }); 1827 1828 }, 4000); 1829 1830 1831}); 1832 1833 </script>
1833 1834 1835 1836 1837 1838 1839 1840 1841
1842<script data-cfasync="false"> 1843 function recaptchaCallback() { 1844 document.getElementById("contact_submit").disabled = false; 1845 }; 1846 1847 1848 1849 window.setTimeout(function() { 1850 $.ajax({ 1851 url: "/pv/352305404623804" 1852 }); 1853 }, 4000); 1854</script>
1854 1855 1856 1857 1858 1859<div class="takedown-dialog" id="takedownRequestDialog" hidden aria-hidden="true"> 1860 <div class="takedown-dialog__backdrop" data-takedown-close></div> 1861 <section class="takedown-dialog__panel" role="dialog" aria-modal="true" aria-labelledby="takedownRequestTitle" tabindex="-1"> 1862 <button type="button" class="takedown-dialog__close" data-takedown-close aria-label="Close">×</button> 1863 <h2 id="takedownRequestTitle">Listing takedown request</h2> 1864 <p class="takedown-dialog__intro">Tell us why this listing should be removed. Our team will review your request.</p> 1865 <form id="takedownRequestForm" action="/takedown-request/352305404623804" method="post"> 1866 <input name="language" type="hidden" value="en"> 1867 <div class="takedown-dialog__field"> 1868 <label for="takedownName">Name</label> 1869 <input id="takedownName" name="name" type="text" maxlength="200" autocomplete="name" required> 1870 </div> 1871 <div class="takedown-dialog__field"> 1872 <label for="takedownEmail">Email</label> 1873 <input id="takedownEmail" name="email" type="email" maxlength="254" autocomplete="email" required> 1874 </div> 1875 <div class="takedown-dialog__field"> 1876 <label for="takedownDetails">Comments</label> 1877 <textarea id="takedownDetails" name="details" rows="6" maxlength="5000" placeholder="Include the reason for your request and any helpful context." required></textarea> 1878 </div> 1879 <div class="takedown-dialog__honeypot" aria-hidden="true"> 1880 <label for="takedownWebsite">Website</label> 1881 <input id="takedownWebsite" name="website" type="text" tabindex="-1" autocomplete="off"> 1882 </div> 1883 <div class="takedown-dialog__captcha" data-sitekey="6LeOPTMUAAAAABc_f9VG8GYlQqnLmUkMcDRSsI-H"></div> 1884 <p class="takedown-dialog__status" id="takedownRequestStatus" role="alert" aria-live="polite"></p> 1885 <button type="submit" class="btn btn-danger takedown-dialog__submit" data-label="Submit" data-sending-label="Sending…" data-error-label="We could not send your request. Please try again.">Submit</button> 1886 </form> 1887 </section> 1888</div> 1889<link rel="stylesheet" href="/css/takedown-request.css?v=20260813-2">
1890<script data-cfasync="false" src="/js/takedown-request.js?v=20260821-2" defer></script>
1890 1891
1892<script type="b2b5ca3951bd201338d63dfd-text/javascript"> 1893 var imgErr=false; 1894</script>
1894 1895 1896 1897<!-- </div> 1898</div>--> 1899 1900 1901 1902 <!-- Footer --> 1903 <footer class="g-bg-black-opacity-0_9 g-color-white-opacity-0_6 g-py-60"> 1904 <div class="container"> 1905 <div class="row"> 1906 <!-- Footer Content --> 1907 <div class="col-lg-4 g-mb-50 g-mb-0--lg"> 1908 <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">About Medioq</h6> 1909 <div class="g-mb-25"> 1910 <p> 1911 One of the largest resources on the Internet for finding media companies worldwide. </p> 1912 </div> 1913 1914 </div> 1915 <!-- End Footer Content --> 1916 1917 <!-- Footer Content --> 1918 <div class="col-lg-4 g-mb-30 g-mb-0--lg"> 1919 <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Useful Links</h6> 1920 <div class="row"> 1921 <div class="col-sm-6"> 1922 <ul class="list-unstyled g-mb-30 g-mb-0--md"> 1923 <li class="d-flex g-mb-12"> 1924 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1925 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/about/352305404623804" data-google-interstitial="false"> 1926 About Medioq</a> 1927 </li> 1928 <li class="d-flex g-mb-12"> 1929 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1930 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/terms" data-google-interstitial="false"> 1931 Terms</a> 1932 </li> 1933 <li class="d-flex g-mb-12"> 1934 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1935 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/privacy" data-google-interstitial="false"> 1936 Privacy Policy</a> 1937 </li> 1938 <li class="d-flex"> 1939 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1940 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/faq" data-google-interstitial="false"> 1941 FAQ</a> 1942 </li> 1943 </ul> 1944 </div> 1945 1946 <div class="col-sm-6"> 1947 <ul class="list-unstyled mb-0"> 1948 <li class="d-flex g-mb-12"> 1949 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1950 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/advertise" data-google-interstitial="false"> 1951 Advertise</a> 1952 </li> 1953 <li class="d-flex g-mb-12"> 1954 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1955 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="https://www.medioq.com/login/start" data-google-interstitial="false"> 1956 Add listing</a> 1957 </li> 1958 <li class="d-flex"> 1959 <i class="fa fa-circle g-color-primary g-font-size-5 g-mt-10 g-mr-8"></i> 1960 <a class="g-color-white-opacity-0_6 g-color-primary--hover" href="/login/352305404623804" data-google-interstitial="false"> 1961 Login</a> 1962 </li> 1963 </ul> 1964 </div> 1965 </div> 1966 </div> 1967 <!-- End Footer Content --> 1968 1969 <!-- Footer Content --> 1970 <div class="col-lg-4"> 1971 <h6 class="h6 g-color-white text-uppercase g-font-weight-700 g-mb-20">Subscribe</h6> 1972 1973 <p> We will notify you when anything happens in Chicago. </p> 1974 1975 <form class="g-mt-25" onsubmit="if (!window.__cfRLUnblockHandlers) return false; event.preventDefault(); subscribe(211818,null);" data-cf-modified-b2b5ca3951bd201338d63dfd-=""> 1976 <div class="row"> 1977 <div class="col-md-8 col-lg-12"> 1978 1979 <div class="form-group g-mb-20"> 1980 <label class="sr-only" for="email">Your Email</label> 1981 <input id="email" class="form-control g-color-white g-bg-transparent g-bg-transparent--focus g-brd-white-opacity-0_1 g-brd-primary--focus g-px-20 g-py-12" type="email" placeholder="Your Email"> 1982 </div> 1983 </div> 1984 1985 <div class="col-md-4 col-lg-12"> 1986 <button id="submit" class="btn btn-md u-btn-primary g-font-size-12 text-uppercase rounded g-py-11 g-px-30" type="submit">Subscribe</button> 1987 </div> 1988 </div> 1989 </form> 1990 </div> 1991 <!-- End Footer Content --> 1992 </div> 1993 </div> 1994 </footer> 1995 <!-- End Footer --> 1996 <div class="container" id="google-consent-footer"></div> 1997
1997<script data-cfasync="false" defer src="/js/google-consent-footer.js?v=20260917-1"></script>
1997 1998
1999<script type="b2b5ca3951bd201338d63dfd-text/javascript"> 2000 function subscribe(city, page) { 2001 var email; 2002 if (page === null) { 2003 email = $("#email").val(); 2004 $("#email").prop('disabled', true); 2005 $("#submit").hide(300); 2006 } else { 2007 email = $("#alert_email").val(); 2008 $("#alert_email").prop('disabled', true); 2009 $("#alert_submit").hide(300); 2010 } 2011 2012 $.ajax({ 2013 method: "POST", 2014 contentType : 'application/json', 2015 url: "/subscribe", 2016 data: JSON.stringify({email: email, city: city, page: page}) 2017 }).done(function(response) { 2018 console.log(response); 2019 }) 2020 .fail(function( jqXHR, textStatus) { 2021 console.log(textStatus); 2022 }); 2023 2024 return false; 2025 } 2026</script>
2026 2027 2028 2029<!--
2029<script async type="text/javascript" src="https://www.google.com/coop/cse/brand?form=cse-search-box&lang=en"></script>
2029--> 2030 </main> 2031 2032 2033 2034
2034<script data-cfasync="false"> 2035 2036/*! loadCSS. [c]2017 Filament Group, Inc. MIT License */ 2037(function(w){ 2038 "use strict"; 2039 /* exported loadCSS */ 2040 var loadCSS = function( href, before, media ){ 2041 // Arguments explained: 2042 // `href` [REQUIRED] is the URL for your CSS file. 2043 // `before` [OPTIONAL] is the element the script should use as a reference for injecting our stylesheet <link> before 2044 // By default, loadCSS attempts to inject the link after the last stylesheet or script in the DOM. However, you might desire a more specific location in your document. 2045 // `media` [OPTIONAL] is the media type or query of the stylesheet. By default it will be 'all' 2046 var doc = w.document; 2047 var ss = doc.createElement( "link" ); 2048 var ref; 2049 if( before ){ 2050 ref = before; 2051 } 2052 else { 2053 var refs = ( doc.body || doc.getElementsByTagName( "head" )[ 0 ] ).childNodes; 2054 ref = refs[ refs.length - 1]; 2055 } 2056 2057 var sheets = doc.styleSheets; 2058 ss.rel = "stylesheet"; 2059 ss.href = href; 2060 // temporarily set media to something inapplicable to ensure it'll fetch without blocking render 2061 ss.media = "only x"; 2062 2063 // wait until body is defined before injecting link. This ensures a non-blocking load in IE11. 2064 function ready( cb ){ 2065 if( doc.body ){ 2066 return cb(); 2067 } 2068 setTimeout(function(){ 2069 ready( cb ); 2070 }); 2071 } 2072 // Inject link 2073 // Note: the ternary preserves the existing behavior of "before" argument, but we could choose to change the argument to "after" in a later release and standardize on ref.nextSibling for all refs 2074 // Note: `insertBefore` is used instead of `appendChild`, for safety re: http://www.paulirish.com/2011/surefire-dom-element-insertion/ 2075 ready( function(){ 2076 ref.parentNode.insertBefore( ss, ( before ? ref : ref.nextSibling ) ); 2077 }); 2078 // A method (exposed on return object for external use) that mimics onload by polling document.styleSheets until it includes the new sheet. 2079 var onloadcssdefined = function( cb ){ 2080 var resolvedHref = ss.href; 2081 var i = sheets.length; 2082 while( i-- ){ 2083 if( sheets[ i ].href === resolvedHref ){ 2084 return cb(); 2085 } 2086 } 2087 setTimeout(function() { 2088 onloadcssdefined( cb ); 2089 }); 2090 }; 2091 2092 function loadCB(){ 2093 if( ss.addEventListener ){ 2094 ss.removeEventListener( "load", loadCB ); 2095 } 2096 ss.media = media || "all"; 2097 } 2098 2099 // once loaded, set link's media back to `all` so that the stylesheet applies once it loads 2100 if( ss.addEventListener ){ 2101 ss.addEventListener( "load", loadCB); 2102 } 2103 ss.onloadcssdefined = onloadcssdefined; 2104 onloadcssdefined( loadCB ); 2105 return ss; 2106 }; 2107 // commonjs 2108 if( typeof exports !== "undefined" ){ 2109 exports.loadCSS = loadCSS; 2110 } 2111 else { 2112 w.loadCSS = loadCSS; 2113 } 2114}( typeof global !== "undefined" ? global : this )); 2115 </script>
2115 2116 2117 2118
2119<script data-cfasync="false"> 2120 2121var $grid, $grid2; 2122$(function () { 2123 2124 $grid = $('.masonry-grid').masonry({ 2125 columnWidth: '.masonry-grid-item', 2126 itemSelector: '.masonry-grid-item', 2127 transitionDuration: 0, 2128 }); 2129 2130 $grid2 = $('.masonry-grid2').masonry({ 2131 columnWidth: '.masonry-grid-item', 2132 itemSelector: '.masonry-grid-item', 2133 transitionDuration: 0, 2134 }); 2135 2136 var layoutPending = false; 2137 function scheduleLayout() { 2138 if (layoutPending) return; 2139 layoutPending = true; 2140 requestAnimationFrame(function () { 2141 layoutPending = false; 2142 $grid.masonry('layout'); 2143 $grid2.masonry('layout'); 2144 }); 2145 } 2146 var grids = document.querySelectorAll('.masonry-grid, .masonry-grid2'); 2147 // Lazy images, failed images and embedded media can change size after load. 2148 // Observe item dimensions, not container height, to avoid layout feedback. 2149 if (window.ResizeObserver) { 2150 var sizeObserver = new ResizeObserver(scheduleLayout); 2151 grids.forEach(function (grid) { 2152 grid.querySelectorAll('.masonry-grid-item').forEach(function (item) { 2153 sizeObserver.observe(item); 2154 }); 2155 }); 2156 } 2157 grids.forEach(function (grid) { 2158 grid.addEventListener('load', scheduleLayout, true); 2159 grid.addEventListener('error', scheduleLayout, true); 2160 }); 2161 $(window).on('resize', scheduleLayout); 2162 if (document.fonts && document.fonts.ready) document.fonts.ready.then(scheduleLayout); 2163 scheduleLayout(); 2164 2165}); 2166$(window).on('load', function () { 2167 if ($grid !== undefined) { 2168 $grid.masonry('layout'); 2169 } 2170}); 2171</script>
2171 2172 2173
2173<script data-cfasync="false"> 2174 var documentReady=false, carouselInit=false; 2175 </script>
2175 2176
2176<script src="https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver" type="b2b5ca3951bd201338d63dfd-text/javascript"></script>
vendor: 1 bytes, line 2176
2176
2177<script data-cfasync="false"> 2178 2179document.addEventListener("DOMContentLoaded", function() { 2180 2181 var lazyImages = [].slice.call(document.querySelectorAll("img[data-src]")); 2182 var lazyVideos = [].slice.call(document.querySelectorAll("div.fb-video-lazy")); 2183 var captchaDivs = [].slice.call(document.querySelectorAll("div.g-recaptcha")); 2184 2185 if ("IntersectionObserver" in window) { 2186 2187 2188 2189 let lazyImageObserver = new IntersectionObserver(function(entries, observer) { 2190 entries.forEach(function(entry) { 2191 if (entry.isIntersecting) { 2192 2193 let lazyImage = entry.target; 2194 if (typeof lazyImage.dataset.src !== 'undefined') { 2195 lazyImage.src = lazyImage.dataset.src; 2196 } 2197 lazyImageObserver.unobserve(lazyImage); 2198 2199 if ($grid !== undefined) { 2200 $grid.masonry('layout'); 2201 } 2202 2203 if (typeof addthis !== 'undefined') { 2204 if (typeof addthis.layers.refresh !== 'undefined' && $.isFunction(addthis.layers.refresh)) { 2205 addthis.layers.refresh(); 2206 } 2207 } 2208 2209 if (documentReady && !carouselInit) { 2210 // initialization of carousel 2211 carouselInit = true; 2212 $.HSCore.components.HSCarousel.init('.js-carousel'); 2213 } 2214 } 2215 }); 2216 }, { 2217 rootMargin: "0px 0px 600px 0px" 2218 }); 2219 2220 lazyImages.forEach(function(lazyImage) { 2221 lazyImageObserver.observe(lazyImage); 2222 }); 2223 2224 2225 2226 let lazyVideoObserver = new IntersectionObserver(function(entries, observer) { 2227 entries.forEach(function(entry) { 2228 if (entry.isIntersecting) { 2229 2230 var timerId; 2231 var renderVid = function() { 2232 if (FbInited) { 2233 clearInterval(timerId); 2234 let lazyVideo = entry.target; 2235 observer.unobserve(lazyVideo); 2236 lazyVideo.classList.add('fb-video'); 2237 lazyVideo.classList.remove('fb-video-lazy'); 2238 FB.XFBML.parse(lazyVideo.parentNode); 2239 2240 if ($grid !== undefined) { 2241 $grid.masonry('layout'); 2242 } 2243 } 2244 }; 2245 2246 if (!FbInited) { 2247 timerId = setInterval(renderVid, 500); 2248 } else { 2249 renderVid(); 2250 } 2251 } 2252 }); 2253 }, { 2254 rootMargin: "0px 0px 600px 0px" 2255 }); 2256 2257 lazyVideos.forEach(function(lazyVideo) { 2258 lazyVideoObserver.observe(lazyVideo); 2259 }); 2260 2261 2262 2263 let captchaObserver = new IntersectionObserver(function(entries, observer) { 2264 entries.forEach(function(entry) { 2265 if (entry.isIntersecting) { 2266 observer.unobserve(entry.target); 2267 if (!document.querySelector('script[src*="/recaptcha/api.js"]')) { 2268 var rc = document.createElement('script'); 2269 rc.setAttribute('src','https://www.google.com/recaptcha/api.js'); 2270 document.head.appendChild(rc); 2271 } 2272 } 2273 }); 2274 }, { 2275 rootMargin: "0px 0px 256px 0px" 2276 }); 2277 2278 captchaDivs.forEach(function(captchaDiv) { 2279 captchaObserver.observe(captchaDiv); 2280 }); 2281 2282 } else { 2283 } 2284 }); 2285</script>
2285 2286 2287 2288 2289
2289<script data-cfasync="false"> 2290 2291 $(function () { 2292 2293 documentReady = true; 2294 2295 // initialization of go to 2296 $.HSCore.components.HSGoTo.init('.js-go-to'); 2297 2298 // initialization of header 2299 $.HSCore.components.HSHeader.init($('#js-header')); 2300 $.HSCore.helpers.HSHamburgers.init('.hamburger'); 2301 2302 // initialization of rating 2303 $.HSCore.components.HSRating.init($('.js-rating'), { 2304 spacing: 4 2305 }); 2306 2307 2308 2309 2310 2311 }); 2312 </script>
2312 2313 2314 2315 2316
2316<script type="b2b5ca3951bd201338d63dfd-text/javascript"> 2317 window._taboola = window._taboola || []; 2318 _taboola.push({flush: true}); 2319 </script>
2319 2320 2321 2322 <br/> 2323 <br/> 2324 <br/> 2325 2326 2327 2328
2328<script data-cfasync="false"> 2329 if (!window.fglCanLoadAdsenseClient || window.fglCanLoadAdsenseClient()) { 2330 var google_ad_client = atob("Y2EtcHViLTQ2NjU1MDIzNzg0NTg5NTNNZWRpb3E=").substring(0,23); 2331 var opts = {google_ad_client: google_ad_client }; 2332 [].forEach.call(document.querySelectorAll('.adsbygoogle'), function(elem){ 2333 elem.setAttribute("data-ad-client", google_ad_client); 2334 window.fglPushAdsenseElement(elem); 2335 }); 2336 if (window.fglLoadAdsenseScript) { 2337 window.fglLoadAdsenseScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=" + google_ad_client, true); 2338 } else { 2339 loadScript("//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=" + google_ad_client, true); 2340 } 2341 } 2342 </script>
2342 2343 2344
2344<script data-cfasync="false"> 2345 document.addEventListener('DOMContentLoaded', () => { 2346 2347 [].forEach.call(document.querySelectorAll('.js-directory-results-toggle'), function (button) { 2348 var results = document.getElementById(button.getAttribute('aria-controls')); 2349 if (!results) return; 2350 button.addEventListener('click', function () { 2351 var expanded = button.getAttribute('aria-expanded') === 'true'; 2352 results.classList.toggle('is-expanded', !expanded); 2353 button.setAttribute('aria-expanded', expanded ? 'false' : 'true'); 2354 button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label'); 2355 }); 2356 results.classList.add('is-collapsible'); 2357 button.classList.add('is-enhanced'); 2358 }); 2359 [].forEach.call(document.querySelectorAll('.js-directory-list-toggle'), function (button) { 2360 var list = document.getElementById(button.getAttribute('aria-controls')); 2361 if (!list) return; 2362 button.addEventListener('click', function () { 2363 var expanded = button.getAttribute('aria-expanded') === 'true'; 2364 list.classList.toggle('is-expanded', !expanded); 2365 button.setAttribute('aria-expanded', expanded ? 'false' : 'true'); 2366 button.textContent = expanded ? button.getAttribute('data-collapsed-label') : button.getAttribute('data-expanded-label'); 2367 }); 2368 list.classList.add('is-collapsible'); 2369 button.classList.add('is-enhanced'); 2370 }); 2371 2372 2373 setTimeout(function (){ 2374 loadScript("https://cdnjs.cloudflare.com/polyfill/v2/polyfill.min.js?features=IntersectionObserver"); 2375 2376 2377 2378 2379 loadScript("https://s.skimresources.com/js/117608X1582658.skimlinks.js"); 2380 2381 window._taboola = window._taboola || []; 2382_taboola.push({article:'auto'}); 2383!function (e, f, u, i) { 2384 if (!document.getElementById(i)){ 2385 e.async = 1; 2386 e.src = u; 2387 e.id = i; 2388 f.parentNode.insertBefore(e, f); 2389 } 2390}(document.createElement('script'), 2391document.getElementsByTagName('script')[0], 2392'//cdn.taboola.com/libtrc/univalence-network/loader.js', 2393'tb_loader_script'); 2394if(window.performance && typeof window.performance.mark == 'function') 2395 {window.performance.mark('tbl_ic');} 2396 }, 3500); 2397 }); 2398 2399 function loadCss(cssFile) { 2400 var head = document.getElementsByTagName('head')[0]; 2401 var link = document.createElement('link'); 2402 link.rel = 'stylesheet'; 2403 link.type = 'text/css'; 2404 link.href = cssFile; 2405 link.media = 'all'; 2406 head.appendChild(link); 2407 } 2408 </script>
vendor: 156 bytes, lines 2408-2412
2408 2409 2410 2411 2412 <script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="b2b5ca3951bd201338d63dfd-|49" defer></script>
2412<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"9211f7d8bc26478183dedc6709d37069","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 2412
2412
2413<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a441d0699ad7acb2',t:'MTc5MDkyNDI1OA=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2413</body> 2414</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.