PageSourceSearch

https://www.medioq.com/US/Chicago/352305404623804/salin-news

html medioq.com collected 2026-10-02 06:57:40 UTC 105,036 bytes, 2,414 lines download raw bytes

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>&nbsp;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='&copy; <a href="https://maptiler.com">MapTiler</a> &copy; <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">&times;</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&amp;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.