PageSourceSearch

https://www.thestar.com/interactives/canadian-federal-politics-ele…e_1337f598-2b2e-4b63-b5ee-0e923c663892.html

html thestar.com collected 2026-09-24 06:48:24 UTC 468,495 bytes, 7,374 lines download raw bytes

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37<!DOCTYPE html>
38        <html lang="en">
39        <head>
40<link href="https://www.google.com" rel="preconnect" />
41<link href="https://www.gstatic.com" rel="preconnect" crossorigin="anonymous" />
42<meta name="tncms-access-version" content="2026-09-23 12:52:50" />
43<meta name="tncms-access-criteria" content="{&quot;2dd8d7f0-75cf-11ef-a5eb-eb0b664a7744&quot;:[],&quot;43776d68-6dd5-11ee-a31a-cf3e835c3f62&quot;:[&quot;61c29558-f644-11ed-9fed-dbcead3ea153&quot;],&quot;811ce583-146c-4bdb-a099-96d80a4302b3&quot;:[&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;],&quot;c7392a02-91c0-11ed-ba69-c7309ed0b15c&quot;:[],&quot;b0e71289-b334-4d30-b27e-e8b1a08e88d9&quot;:[],&quot;57972cce-66eb-11ef-857a-171d79a5a491&quot;:[],&quot;a72957b2-5660-11ef-8cbc-e3169b5c0672&quot;:[],&quot;365cf796-3e23-11ef-96c1-db72919c269b&quot;:[],&quot;4244550a-3e22-11ef-80ec-0bfb12fdc1a2&quot;:[],&quot;2bfb8b58-6ba7-11ef-9399-579a9976bd03&quot;:[],&quot;0d8207a0-4d90-11ee-ae08-ff4003a74030&quot;:[],&quot;3fcc7733-f382-4437-b8b5-64735e629aec&quot;:[&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;],&quot;ebe97f30-b04c-4d93-b3d3-3acb66c129f2&quot;:[&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;],&quot;3ab8e9e0-9eae-11ee-9c00-e3a33758cbd1&quot;:[],&quot;37954a56-558e-415e-96ff-74669f167ec3&quot;:[],&quot;c736d130-91c0-11ed-ba66-0fae60de4138&quot;:[],&quot;c739d68c-91c0-11ed-ba6a-53dbc1fa1274&quot;:[],&quot;fa00d158-aa59-11ee-aa89-43c9e85e6058&quot;:[&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;],&quot;d1f5b8f0-f1f1-43dc-8345-6d12d8686d15&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;],&quot;1066b81f-42bb-4b83-8afc-f40827a51dcb&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;],&quot;0212e8ca-5bc5-4fe3-948a-c9e95499b4f8&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;],&quot;032964db-b861-4b4c-87e5-9a31b8187f04&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;],&quot;c73e1f44-91c0-11ed-ba6e-f7199bfaffb2&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;,&quot;ec5a9031-5c20-4ac5-9f35-fae2cdc5d3c8&quot;],&quot;c73f0206-91c0-11ed-ba6f-b702d325b7bb&quot;:[&quot;1ac155f8-de0d-11ed-b546-57044e978df2&quot;,&quot;c7068dcc-91c0-11ed-ba3e-9ff8e64f3398&quot;,&quot;c708dafa-91c0-11ed-ba40-bf9dee2a460c&quot;,&quot;ec5a9031-5c20-4ac5-9f35-fae2cdc5d3c8&quot;],&quot;c73fbe9e-91c0-11ed-ba70-13c3ab67525d&quot;:[],&quot;de10496a-1602-11ee-8812-6bf05729af20&quot;:[],&quot;c32a7abe-00ba-11ef-8eb6-dbfe84395912&quot;:[],&quot;f20cde70-63c1-11ef-9b6f-7f4aa4e4245b&quot;:[],&quot;613b6a9e-4cbe-11ee-83cc-7fcb18447b09&quot;:[],&quot;3d3732dc-95f5-11ef-acf6-3f63dd7ec478&quot;:[],&quot;d048dc1c-55c0-11ef-8789-972745c370b8&quot;:[],&quot;57aac698-55c1-11ef-9b0d-6f720887275d&quot;:[],&quot;3ef4b469-bcfb-485e-9cb6-a1a6083a6ba2&quot;:[],&quot;de2c10ce-b813-4884-a299-4d53a6095446&quot;:[],&quot;1c64e632-1cff-11ee-8812-370eb07637ed&quot;:[],&quot;191cf976-55c3-11ef-8662-0f2f8d08c3e1&quot;:[],&quot;e86dc8d6-55c3-11ef-adf7-f3634a9350f2&quot;:[],&quot;8ba318fe-55c3-11ef-90da-2fcccd31ba61&quot;:[],&quot;14ac8abc-7b63-11ef-81dc-5f3be8fdff76&quot;:[],&quot;a457c2b8-55c4-11ef-adf6-a338de8d539e&quot;:[],&quot;693f956a-55c5-11ef-aee5-6f08a8e86e39&quot;:[],&quot;eec4f014-55c4-11ef-9a58-aff901200ba7&quot;:[],&quot;6c927222-0c1a-42b4-9cfc-a5c22773ac60&quot;:[],&quot;13ac653a-80a9-4b47-b70e-b4a163c120ab&quot;:[],&quot;ea1fc1a4-b5a8-4b52-a274-2a9905366488&quot;:[],&quot;6d7ca118-b0c4-11ef-92d9-63c9bf7a9694&quot;:[],&quot;7a2a953b-3fd9-4ef0-80ac-9304d9c6d98b&quot;:[],&quot;79c2df5a-0259-408e-90f7-341f1c2531f5&quot;:[],&quot;1c9d1038-2e5c-11ef-8363-9fcfd7b5188f&quot;:[],&quot;74df0aa2-c5ae-499a-91ae-c7dae3d328a6&quot;:[],&quot;d9c66d11-d246-46f8-8023-c3713e65af94&quot;:[],&quot;29b58565-171f-494e-b81a-061fe768795e&quot;:[],&quot;1257ca80-fc33-4af4-9853-3c4c87e91d2f&quot;:[],&quot;4718e2bf-7b77-4fba-941b-8aa83f08b663&quot;:[],&quot;6e5876b4-34bb-11ef-94b2-57a84c7910f9&quot;:[],&quot;f3838754-6a1f-11ef-8234-979c6d21ce7e&quot;:[],&quot;013ac1a6-241f-11ef-873d-a782f80f0fd7&quot;:[],&quot;36bf4640-5c22-4e31-8f81-249d99ec5b6c&quot;:[],&quot;8abebbda-e07c-11ee-af16-63dcd1ab3db7&quot;:[],&quot;6f366564-f941-11ef-861d-2371c3f56e47&quot;:[],&quot;2c4c1810-fce5-11ee-b71c-a37d2de14ad9&quot;:[]}" />
44<meta name="tncms-criteria-ids" content="61c29558-f644-11ed-9fed-dbcead3ea153,c7068dcc-91c0-11ed-ba3e-9ff8e64f3398,c708dafa-91c0-11ed-ba40-bf9dee2a460c,1ac155f8-de0d-11ed-b546-57044e978df2,ec5a9031-5c20-4ac5-9f35-fae2cdc5d3c8" />
45<meta name="tncms-access-asset-app" content="editorial" />
46<meta name="tncms-access-asset-id" content="1337f598-2b2e-4b63-b5ee-0e923c663892" />
47<meta name="keywords" content="" />
48<meta name="news_keywords" content="" />
49<meta name="description" content="If a federal election were held today, here&#8217;s how the vote breakdown would look for each party, according Vox Pop Labels models." />
50<meta name="author" content="Vox Pop Labs" />
51<meta name="viewport" content="width=device-width, initial-scale=1.0" />
52<meta name="apple-mobile-web-app-capable" content="yes" />
53<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
54<meta name="googlebot" content="noarchive" />
55<meta name="robots" content="max-image-preview:large" />
56<meta property="og:type" content="article" />
57<meta property="og:url" content="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" />
58<meta property="og:image" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/editorial/a/ab/aabac44d-1425-4727-a2e3-f59ed8f9c3e7/69e27918b973e.image.jpg?crop=1763%2C926%2
58C0%2C124&amp;resize=1200%2C630&amp;order=crop%2Cresize" />
59<meta property="og:image:width" content="1200" />
60<meta property="og:image:height" content="630" />
61<meta property="og:title" content="Just how popular are Carney&#8217;s Liberals with Canadian voters? Here&#8217;s what the polls show right now" />
62<meta property="og:description" content="If a federal election were held today, here&#8217;s how the vote breakdown would look for each party, according Vox Pop Labels models." />
63<meta property="og:site_name" content="Toronto Star" />
64<meta property="og:section" content="interactives" />
65<meta property="article:publisher" content="https://www.facebook.com/torontostar" />
66<meta name="twitter:image" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/editorial/a/ab/aabac44d-1425-4727-a2e3-f59ed8f9c3e7/69e27918b973e.image.jpg?crop=1763%2C926%2C0%2C124&amp;resize=438%2C230&amp;order=crop%2Cresize" />
67<meta name="twitter:card" content="summary_large_image" />
68<meta name="twitter:site" content="@torontostar" />
69<meta name="twitter:image:alt" content="Signal poll forecast" />
70<meta property="tncms:subs" content="5.0" />
71<meta property="vf:owner" content="oidc:8c39ea58-a2d8-11ed-8b9f-5753c0e7044b" />
72<meta name="bingbot" content="noarchive" />
73<meta name="robots" content="noarchive" />
74<meta name="apple-itunes-app" content="app-id=379481068, affiliate-data=pt=328230&amp;ct=Prod-Smartbanner&amp;mt=8, app-argument=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" />
75<meta property="tncms:ads" content="lazyload,refresh" />
76<link rel="stylesheet preload" as="style" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/bootstrap/resources/styles/bootstrap.min.87df60d54091cf1e8f8173c2e568260c.css"/>
77<link rel="stylesheet preload" as="style" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/styles/layout.c6ac426b6fec25f4f7314644fca99984.css"/>
78<link rel="stylesheet preload" as="style" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/oovvuu.css?_dc=1789580009"/>
79<link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/styles/tnt.access.offers.58c893fb66f3a073134f1e9d492820d7.css"/>
80<link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/styles/datepicker3.9f2593097fc3849b80bb9d187a12b345.css"/>
81<link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_html_template/resources/styles/header-base.css?_dc=1784741504"/>
82<link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_html_template/resources/styles/special_html_template.css?_dc=1784741504"/>
83<style>/*<![CDATA[*/ .grecaptcha-badge { visibility: hidden; } @media (max-width: 991px) { #tncms-block-3699117 .mobileMenuLinks { display: none !important; } } #weather-3699120 .list-unstyled { margin: 0; } #weather-3699120 span { display: block; } #weather-3699120 .forecast-link a { padding: 8px; margin-top: -10px; } #weather-3699120 .icon { position: relative; } #weather-3699120 .icon .tnt-svg { position: relative; font-size: 26px; margin-bottom: -6px; margin-right: 8px; margin-top: -8px; } #weather-3699120 .temp { font-size: 18px; line-height: 20px; font-weight: bold; } #weather-3699120 .cond { opacity: 0.7; } #weather-3699120 .current-conditions { float: left; height: 24px; } #weather-3699120 .dropdown-toggle { color: #333333; display: block; } #weather-3699120 .weather-date-separator { margin: 0 10px 0 10px; color: #979797; } #weather-3699120 img {width: auto !important;height: 30px !important; display: inline; padding-left: 4px; vertical-align: middle; } #weather-3699120 .sponsor-line { height: 36px; padding: 0 10px; clear: left; color: #333; } #weather-3699120 .sponsor-line a { margin-right: 4px; } #site-top-nav #weather-3699120 .icon { margin-top: 4px; } #site-top-nav #weather-3699120 .temp { line-height: 36px; } #weather-3699120 .current-conditions { height: 36px; padding: 0 10px; } #main-navigation #weather-3699120 .current-conditions { padding-top: 11px; } #weather-3699120 .current-conditions { display: flex; } #weather-3699120 .current-conditions .dropdown-toggle { display: flex !important; align-items: center; } #weather-3699120 .current-conditions .dropdown-toggle > * { float: none !important; height: 100%; display: flex !important; align-items: center; } #weather-3699123 .list-unstyled { margin: 0; } #weather-3699123 span { display: block; } #weather-3699123 .forecast-link a { padding: 8px; margin-top: -10px; } #weather-3699123 .icon { position: relative; } #weather-3699123 .icon .tnt-svg { position: relative; font-size: 26px; margin-bottom: -6px; margin-right: 8px; margin-top: -8px; } #weather-3699123 .temp { font-size: 18px; line-height: 20px; font-weight: bold; } #weather-3699123 .cond { opacity: 0.7; } #weather-3699123 .current-conditions { float: left; height: 24px; } #weather-3699123 .dropdown-toggle { color: #333333; display: block; } #weather-3699123 .weather-date-separator { margin: 0 10px 0 10px; color: #979797; } #weather-3699123 img {width: auto !important;height: 30px !important; display: inline; padding-left: 4px; vertical-align: middle; } #weather-3699123 .sponsor-line { height: 36px; padding: 0 10px; clear: left; color: #333; } #weather-3699123 .sponsor-line a { margin-right: 4px; } #site-top-nav #weather-3699123 .icon { margin-top: 4px; } #site-top-nav #weather-3699123 .temp { line-height: 36px; } #weather-3699123 .current-conditions { height: 36px; padding: 0 10px; } #main-navigation #weather-3699123 .current-conditions { padding-top: 11px; } #weather-3699123 .current-conditions { display: flex; } #weather-3699123 .current-conditions .dropdown-toggle { display: flex !important; align-items: center; } #weather-3699123 .current-conditions .dropdown-toggle > * { float: none !important; height: 100%; display: flex !important; align-items: center; } #weather-3687831 .list-unstyled { margin: 0; } #weather-3687831 span { display: block; } #weather-3687831 .forecast-link a { padding: 8px; margin-top: -10px; } #weather-3687831 .icon { position: relative; } #weather-3687831 .icon .tnt-svg { position: relative; font-size: 26px; margin-bottom: -6px; margin-right: 8px; margin-top: -8px; } #weather-3687831 .temp { font-size: 18px; line-height: 20px; font-weight: bold; } #weather-3687831 .cond { opacity: 0.7; } #weather-3687831 .current-conditions { float: left; height: 24px; } #weather-3687831 .dropdown-toggle { color: #333333; display: block; } #weather-3687831 .weather-date-separator { margin: 0 10px 0 10px; color: #979797; } #weather-3687831 img {width: 80px !important;height: auto !important; display: inline; padding-left: 4px; vertical-align: middle; } #weather-3687831 .sponsor-line { height: 36px; padding: 0 10px; clear: left; color: #333; } #weather-3687831 .sponsor-line a { margin-right: 4px; vertical-align: bottom; } #site-top-nav #weather-3687831 .icon { margin-top: 4px; } #site-top-nav #weather-3687831 .temp { line-height: 36px; } #weather-3687831 .current-conditions { height: 36px; padding: 0 10px; } #main-navigation #weather-3687831 .current-conditions { padding-top: 11px; } #tncms-block-2828682 .tnt-prop-img { max-width: 138px; } #site-logo-2828682 { color: #666; } #tncms-block-2826984 .tnt-prop-img { max-width: 300px; } #site-logo-2826984 { color: #666; } .follow-links-2826990 li { margin-right: 1px; padding: 0; } .follow-links-2826990 li a, .follow-links-2826990 li a:focus, .follow-links-2826990 li a:active { ; color: #fff!important; font-size: 18px; margin-right: 10px; padding:0; box-shadow: none; } .follow-links-2826990 li a:hover { text-decoration: none; } .follow-links-2826990 li a.fb:hover { color: #3A59A5; } .follow-links-2826990 li a.tw:hover { color: #000; } .follow-links-2826990 li a.yt:hover { color: #CE2B29; } .follow-links-2826990 li a.is:hover { color: #000; } @media screen and (min-width: 320px) { #ad-3143188 { min-height: 50px; min-width: 320px; } } /*]]>*/</style>
84<script type="text/javascript">/*<![CDATA[*/ (function(){var tnsrc=window.location.hash.match(/[&#]tncms-source=([^&]+)/);var dl = window.dataLayer = window.dataLayer || [];dl.push({"townnews":{"product":{"software":"BLOX","version":"1.96.1"},"crm":{"group_id":848},"content":{"id":"1337f598-2b2e-4b63-b5ee-0e923c663892","title":"Just how popular are Carney's Liberals with Canadian voters? Here's what the polls show right now","type":"article","published_time":"2026-05-21T17:00:00Z","tags":["#federal_politics","#starnewsroom","#federal_election","#polls","#poll_tracker","#the_signal","#election_forecast","#mark_carney","#pierre_poilievre","#starlock","#conservative_party_of_canada","#liberal_party_of_canada"],"authors":[{"id":"8c39ea58-a2d8-11ed-8b9f-5753c0e7044b","eh":"e1674abbd6d93cf2b5b0133bdd004bda220b5a8b4bdc247c39236fd31e20cb68","first_name":"Vox Pop Labs","last_name":null,"title":null}],"taxonomies":{"blox_sections":{"ns":"https:\/\/www.townnews.com\/ns\/blox\/v1\/tags\/section","items":["interactives","politics\/federal"]},"blox_flags":{"ns":"https:\/\/www.townnews.com\/ns\/blox\/v1\/tags\/flag","items":[]}},"metrics":{"image_count":1,"video_count":0,"audio_count":0,"word_count":347},"byline":""}},"tncms":{"template":{"version":"3.155.0"},"page":{"grid":"ample","style":"none","path":"\/interactives","syndicated":"false","reaction":"false","app":"editorial","theme":"flex","skin":"flex-editorial","http_status":200},"subscription":{"required":"true"},"asset":{"type":"article","author":"Vox Pop Labs","start_hour":"13","id":"1337f598-2b2e-4b63-b5ee-0e923c663892","app":"editorial","ga_page":"\/interactives\/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"},"vendor":{"outbrain":"disabled","taboola":""},"system":{"render_time":407},"client":{"is_bot":"no","is_gdpr":"no"}}});if (tnsrc && tnsrc[1]) {dl.push({'tncms.campaign.internal_source': tnsrc[1]});}window.addEventListener("DOMContentLoaded", function(oEvent) {var oTest = document.createElement('div');oTest.innerHTML = '&nbsp;';oTest.className = 'adsbox';document.body.appendChild(oTest);var nTimeoutID = window.setTimeout(function() {if (oTest.offsetHeight === 0) {dl.push({'event': 'tncms.ad.blocked'});}document.body.removeChild(oTest);window.clearTimeout(nTimeoutID);}, 100);});var nWidth=Math.max(document.documentElement.clientWidth, window.innerWidth || 0),aBPs=[[300,"Extra small: Most smartphones."],[768,"Small: Tablet devices."],[992,"Medium: Laptops & landscape tablets."],[1200,"Large: Desktop computers."]],i,c,aThisBP,aBP;
84for(i=0,c=aBPs.length;i<c;i++){aThisBP=aBPs[i];if(aBP===undefined||aThisBP[0]<=nWidth){aBP=aThisBP;}}if(aBP!==undefined){dl.push({'tncms.client.breakpoint':aBP[1]});}(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'tncms.start':new Date().getTime(),event:'tncms.start'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','GTM-PDQV3N');})(); /*]]>*/</script>
vendor: 68 bytes, lines 84-85
84
85<script src="https://www.google.com/recaptcha/enterprise.js?render=
856LdF3BEhAAAAAEQUmLciJe0QwaHESwQFc2vwCWqh
vendor: 12 bytes, line 85
85"></script>
86<script type="module" src="/shared-content/art/tncms/api/csrf.js"></script>
vendor: 1 bytes, line 86
86
87<script type="module" async="async" src="/shared-content/art/tncms/api/access.777fdd2121da80d545ff.js"></script>
vendor: 1 bytes, line 87
87
88<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/jquery/resources/scripts/jquery.min.d6d18fcf88750a16d256e72626e676a6.js"></script>
vendor: 1 bytes, line 88
88
89<script src="/shared-content/art/tncms/user/user.js"></script>
vendor: 1 bytes, line 89
89
90<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/bootstrap/resources/scripts/bootstrap.min.d457560d3dfbf1d56a225eb99d7b0702.js"></script>
vendor: 1 bytes, line 90
90
91<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core_ext/resources/scripts/common/override.common.js?_dc=1785951071"></script>
vendor: 1 bytes, line 91
91
92<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/tnt.c7cd232a9076c196b2102839f349c060.js"></script>
vendor: 1 bytes, line 92
92
93<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/application.0758030105fdd3a70dff03f4da4530e2.js"></script>
vendor: 1 bytes, line 93
93
94<script async="async" src="https://btloader.com/tag?o=5071905434894336&amp;upapi=true&amp;async=true"></script>
vendor: 1 bytes, line 94
94
95<script src="//c.webtrends-optimize.com/acs/accounts/cfa16dfe-2c13-4c6e-8cb4-c532d090eb72/js/wt.js"></script>
vendor: 1 bytes, line 95
95
96<script async="async" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/scripts/edition-selector.js?_dc=1789580011"></script>
vendor: 1 bytes, line 96
96
97<script async="async" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/scripts/footer.nav.js?_dc=1789580011"></script>
vendor: 1 bytes, line 97
97
98<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/bootstrap-datepicker.2b28bee684315ebcadec4a6b63cc146d.js"></script>
vendor: 1 bytes, line 98
98
99<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/jquery.mask.84bef41f682a27dac3fd6e812c06365d.js"></script>
vendor: 1 bytes, line 99
99
100<script defer="defer">/*<![CDATA[*/ grecaptcha.enterprise.ready(function() {const oCaptchaEls = document.querySelectorAll('div.g-recaptcha');oCaptchaEls.forEach(function(oEl) {oEl.dataset.widgetId = grecaptcha.enterprise.render(oEl, oEl.dataset);});}); /*]]>*/</script>
vendor: 1 bytes, line 100
100
101<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.log.9e3b79ea89bb936c281f4c22f38976fa.js"></script>
vendor: 1 bytes, line 101
101
102<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.status.828de94349981272665c0fb0107f3e49.js"></script>
vendor: 1 bytes, line 102
102
103<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/tnt.navigation.accessibility.7a9170240d21440159b9bd59db72933b.js"></script>
vendor: 1 bytes, line 103
103
104<script async="async" src="https://securepubads.g.doubleclick.net/tag/js/gpt.js"></script>
vendor: 1 bytes, line 104
104
105<script async="async" src="//micro.rubiconproject.com/prebid/dynamic/18488.js"></script>
vendor: 1 bytes, line 105
105
106<script src="https://config.aps.amazon-adsystem.com/configs/5028"></script>
vendor: 1 bytes, line 106
106
107<script src="https://client.aps.amazon-adsystem.com/publisher.js"></script>
vendor: 1 bytes, line 107
107
108<script>/*<![CDATA[*/ const aps=((e='5028')=>{(window._aps=window._aps||new Map()),_aps.has(e)||_aps.set(e,{queue:[],store:new Map([["listeners",new Map()]])});let t={accountID:e,record:function(e,t){return new Promise((r,n)=>{_aps.get(this.accountID).queue.push(new CustomEvent(e,{detail:{...t,resolve:r,reject:n}}))})},read:function(e){return this.record("bootstrap/store/willRead",{name:e}),_aps.get(this.accountID).store.get(e)},run:function(e,t){_aps.get("_system")?.store.get("listeners").has(e)?this.record(e,t):this.record("bootstrap/run/willDrop",{name:e,detail:t})},react:function(e,t){_aps.get(this.accountID).store.get("listeners").set(e,t);this.record("bootstrap/react/didExecute",{name:e})}};return t.record("bootstrap/version/declare",{version:5}),t})();((t=aps)=>{window.apstag=window.apstag||{init:function(e,r){t.record("legacy/init/enqueue",{config:e,callback:r})},fetchBids:function(e,r){t.record("legacy/fetchBids/enqueue",{bidConfig:e,callback:r})},setDisplayBids:function(){t.run("legacy/setDisplayBids/enqueue",{arguments})},targetingKeys:function(){return t.read("legacy/targetingKeys")??[]},rpa:function(e,r,n){t.record("legacy/rpa/enqueue",{tokenConfig:e,callback:r,setCookie:n})},upa:function(e,r,n){t.record("legacy/upa/enqueue",{tokenConfig:e,callback:r,setCookie:n})},dpa:function(e){t.record("legacy/dpa/enqueue",{callback:e})}};t.record("bootstrapExtAPStag/version/declare",{version:1})})(),((t=aps)=>{window.apstag={...window.apstag,queue:{push:function(e){t.record("legacy/queue/push",{callback:e})}}};t.record("bootstrapExtQueue/version/declare",{version:1})})(),((t=aps)=>{window.apstag={...window.apstag,customPlacements:function(){return{hint:function(e,r,n){t.record("customPlacement/hint/define",{id:e,isDefault:r,hintMetadata:n})},enable:function(){t.record("customPlacement/service/enable")},addEventListener:function(e,r){if("PlacementResponse"===e)t.react("customPlacement/placement/didRespond",r);else throw new Error("Unsupported event type")}}}};t.record("bootstrapExtASR/version/declare",{version:1})})(),((t=aps)=>{window.apstag={...window.apstag,nativeContent:function(){return{enable:function(){t.record("nativeCommerceAds/service/enable")},registerHook:function(e,r){if("nativeCommerceAds.updateClickUrl"===e)t.react("nativeCommerceAds/clickUrl/update",k=>({status:"completed",value:{url:r(k?.detail?.url,k?.detail?.element)}}));else throw new Error("Unsupported event type")}}}};t.record("bootstrapExtNCA/version/declare",{version:1})})();
109    apstag.init({
110        pubID: '5028',
111        adServer: 'googletag',
112        simplerGPT: true
113    }); /*]]>*/</script>
vendor: 1 bytes, line 113
113
114<script>/*<![CDATA[*/ window.googletag = window.googletag || {cmd: []};
115    window.gptAdSlots = window.gptAdSlots || [];var PREBID_TIMEOUT = 3500;
116    
117    var pbjs = pbjs || {};
118    pbjs.que = pbjs.que || [];
119    var a9Enabled = typeof apstag !== 'undefined';
120    
121    googletag.cmd.push(function() {
122        // Disable requests for ads on page load
123        googletag.pubads().disableInitialLoad();
124    });
125    
126    function sendAdServerRequest(gptSlots, requestManager) {
127        googletag.cmd.push(function() {
128            if (typeof gptSlots !== 'undefined') {
129                var slotsToRefresh = [];
130                for (var i = 0; i < gptSlots.length; i++) {
131                    if (requestManager.slotsLoaded.indexOf(gptSlots[i]) < 0) {
132                        slotsToRefresh.push(gptSlots[i]);
133                        requestManager.slotsLoaded.push(gptSlots[i]);
134                    }
135                }
136                if (slotsToRefresh.length > 0) {
137                    googletag.pubads().refresh(slotsToRefresh);
138                }
139
140            } else {
141                if (requestManager.adServerRequestSent) {
142                    return;
143                }
144                requestManager.adServerRequestSent = true;
145                googletag.pubads().refresh();
146            }
147        });
148    }
149    
150    
151        // when both APS and Prebid have returned, initiate ad request
152        function biddersBack(gptSlots, requestManager) {
153            if (requestManager.aps && requestManager.prebid) {
154                sendAdServerRequest(gptSlots, requestManager);
155            }
156            return;
157        }
158    
159    
160    function magnite_refreshBid(ids) {
161        var gptSlots;
162        if (typeof ids !== 'undefined') {
163            gptSlots = [];
164            for (var i = 0; i < ids.length; i++) {
165                gptSlots.push(gptAdSlots[ids[i]]);
166            }
167        }
168        var requestManager = {
169            adServerRequestSent: false,
170            slotsLoaded: [],
171            
172                aps: false,
173                prebid: false,
174            
175        };
176
177        
178            googletag.cmd.push(function() {
179                if (typeof gptSlots === 'undefined') {
180                    apstag.fetchBids({}, function(bids) {
181                        apstag.setDisplayBids();
182                        requestManager.aps = true;
183                        biddersBack(gptSlots, requestManager);
184                    });
185                } else {
186                    apstag.fetchBids({
187                        slots: gptSlots
188                    }, function(bids) {
189                        apstag.setDisplayBids();
190                        requestManager.aps = true;
191                        biddersBack(gptSlots, requestManager);
192                    });
193                }
194            });
195        
196
197        pbjs.que.push(function() {
198            pbjs.rp.requestBids({
199                
200                    callback: function() {
201                        googletag.cmd.push(function() {
202                            requestManager.prebid = true;
203                            biddersBack(gptSlots, requestManager);
204                        });
205                    },
206                
207                gptSlotObjects: gptSlots
208            });
209        });
210        
211        setTimeout(function() {
212            sendAdServerRequest(gptSlots, requestManager);
213        }, PREBID_TIMEOUT);
214    }
215    
216    
217    
218    // Log all bids
219    function pbjs_logAllBids() {
220        var responses = pbjs.getBidResponses();
221        var output = [];
222        for (var adunit in responses) {
223            if (responses.hasOwnProperty(adunit)) {
224                var bids = responses[adunit].bids;
225                for (var i = 0; i < bids.length; i++) {
226                    var b = bids[i];
227                    output.push({
228                        'adunit': adunit, 'adId': b.adId, 'bidder': b.bidder,
229                        'time': b.timeToRespond, 'cpm': b.cpm, 'msg': b.statusMessage
230                    });
231                }
232            }
233        }
234        if (output.length) {
235            if (console.table) {
236                console.log('All bids returned');
237                console.table(output);
238            } else {
239                for (var j = 0; j < output.length; j++) {
240                    console.log(output[j]);
241                }
242            }
243        } else {
244            console.warn('NO prebid responses');
245        }
246    }
247
248    // Log winning bids
249    function pbjs_logWinningBids() {
250        var bids = pbjs.getHighestCpmBids();
251        var output = [];
252        for (var i = 0; i < bids.length; i++) {
253            var b = bids[i];
254            output.push({
255                'adunit': b.adUnitCode, 'adId': b.adId, 'bidder': b.bidder,
256                'time': b.timeToRespond, 'cpm': b.cpm
257            });
258        }
259        if (output.length) {
260            if (console.table) {
261                console.log('Winning bids');
262                console.table(output);
263            } else {
264                for (var j = 0; j < output.length; j++) {
265                    console.log(output[j]);
266                }
267            }
268        } else {
269            console.warn('No prebid winners');
270        }
271    }
272
273    window.__tnt = window.__tnt || {};
274    __tnt.ads = __tnt.ads || {};
275    __tnt.ads.dfp = __tnt.ads.dfp || {};
276
277    __tnt.ads.dfp.targeting = __tnt.ads.dfp.targeting || {};
278
279    __tnt.ads.dfp.targeting.asset_id = '1337f598-2b2e-4b63-b5ee-0e923c663892';
280
281    __tnt.ads.dfp.targeting.page = ["asset","article","app-editorial"];
282    __tnt.ads.dfp.templates = __tnt.ads.dfp.templates || {};
283    __tnt.ads.dfp.templates = {
284        cube:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/cube.a023713b7eff47127899286dc36e1970.js",
285        interstitial:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/interstitial.df40f87de692498682823c6773da5459.js",
286        nativeArticle:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/native-article.9b3cd3bb8591bed71346f4fe429b96dc.js",
287        pageCurl:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/page-curl.ca0c1a7372c29272ef1ccf504ced01a9.js",
288        parallax:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/parallax.0ce32932f3b4125f930bea8d431f8f03.js",
289        paw:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/paw.9ea074ccc913cb273a4b790e1e37460a.js",
290        pencil:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/pencil.2662e4159cdac4809283c5399d78644b.js",
291        reveal:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/reveal.e5d561a6b71aa2730a07fa90f5f4f6d6.js",
292        roller:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/roller.c699c542afb9f08b38613e8473ddf14f.js",
293        slider:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/slider.015001bff591d1665c6d0ec2a888b1ca.js",
294        stickyAnchor:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/sticky-anchor.b16df11ef6c433b3b8ec1881d240c9cb.js",
295        video:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/video-inline.d45f12d51e6b121b88d52db2e387136f.js",
296        wallpaper:"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/shared-content\/art\/tncms\/templates\/libraries\/flex\/components\/ads\/resources\/scripts\/templates\/wallpaper.dc1c1bace62343a130be3589fe0846f9.js"
297    };
298        
299        __tnt.ads.dfp.targeting.environment='prod';
300        
301        
302
303        var browserWidth = jQuery(window).width();
304        var cutpoint="large";
305        if(browserWidth>=481 && browserWidth<=1024){
306            cutpoint="medium";
307        } else if (browserWidth<=480){
308            cutpoint="small";
309        }
310        __tnt.ads.dfp.targeting.cutpoint = cutpoint;
311        var keywords = "#federal_politics,#starnewsroom,#federal_election,#polls,#poll_tracker,#the_signal,#election_forecast,#mark_carney,#pierre_poilievre,#starlock,#conservative_party_of_canada,#liberal_party_of_canada";
312            if(typeof keywords === "string" && keywords.length > 0) {
313                var keywordsArray = keywords.split(',');
314                oKvng = [];
315                sKvng = '';
316                for (var keyword of keywordsArray) {   
317                        oKvng.push(keyword.replace('#', ''));
318                }
319                if(oKvng.length > 0) {
320                    sKvng = oKvng.join(',');
321                    __tnt.ads.dfp.targeting.kvng = sKvng;
322                }
323            }__tnt.ads.dfp.targeting.assetid = '1337f598-2b2e-4b63-b5ee-0e923c663892';;__tnt.ads.dfp.targeting.section = 'interactives';__tnt.ads.dfp.targeting.subsection = '';__tnt.ads.dfp.targeting.author = 'vox pop labs_';if (__tnt.user.services) { __tnt.ads.dfp.targeting.subscriber = "true"; } else { __tnt.ads.dfp.targeting.subscriber = "false"; }
324
325     /*]]>*/</script>
vendor: 1 bytes, line 325
325
326<script>/*<![CDATA[*/ 
327    googletag.cmd.push(function(){
328            var adUnit = (window.frameElement && window.frameElement.getAttribute('data-gam-adunit')) ? window.frameElement.getAttribute('data-gam-adunit') : '/58580620/thestar.com/interactives';
329            var mapping = googletag.sizeMapping().addSize([320, 0], [320, 50]).addSize([768, 0], []).addSize([992, 0], []).addSize([1200, 0], []).build();
330                gptAdSlots['ad-3143188'] = googletag.defineSlot(adUnit, [[320,50]], 'ad-3143188').defineSizeMapping(mapping).setCollapseEmptyDiv(true).addService(googletag.pubads());
331                gptAdSlots['ad-3143188'].setTargeting('gpid', '58580620/thestar.com/interactives/ad-3143188');
332                gptAdSlots['ad-3143188'].setTargeting('pos', ['1']);
333    });
334 /*]]>*/</script>
vendor: 1 bytes, line 334
334
335<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/ads/resources/scripts/tnt.ads.adverts.66a3812a7b5c12fde8cd998fd691ad7d.js"></script>
vendor: 1 bytes, line 335
335
336<script src="/shared-content/art/tncms/tracking.js"></script>
vendor: 1 bytes, line 336
336
337<script>/*<![CDATA[*/ __tnt.recentFive = {
338    /*
339     * Gets the data stored in 'tnt:recent:five'
340     * Returns Array
341     */
342        get:function(){
343            if(window.localStorage && localStorage.getItem('tnt:recent:five')!=null){
344                try{ return JSON.parse(localStorage.getItem('tnt:recent:five')); } catch {}
345            }
346
347            return [];
348        },
349
350    /*
351     * Sets the 'tnt:recent:five' localStorage item
352     * Returns boolean
353     */
354        set:function(data){
355            if(window.localStorage){
356                try{ 
357                    localStorage.setItem('tnt:recent:five', JSON.stringify(data));
358                    return true;
359                } catch {}
360            }
361
362            return false;
363        },
364
365    /*
366     * Adds the most recent item, prunes any duplicates, and trims the array down to 5 items
367     * Returns Array on success, false on fail 
368     */
369        add:function(asset){
370            var assets = __tnt.recentFive.get();
371            assets.unshift(asset);
372
373            if(assets.length > 1){
374                assets = assets.filter(function(item, index, a){ return a.indexOf(item) == index });
375
376                while(assets.length>5){
377                    assets.pop();
378                }
379            }
380
381            if(__tnt.recentFive.set(assets)){ return assets; }
382            return false;
383        }
384    }; /*]]>*/</script>
vendor: 1 bytes, line 384
384
385<script async="async" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/scripts/save.asset.js?_dc=1789580011"></script>
vendor: 1 bytes, line 385
385
386<script>/*<![CDATA[*/ 
387
388    // GPP Helper Function
389    __tnt.ads.dfp.getGppData = function(callback) {
390        var maxRetries = 5;
391        var retryDelay = 400;
392        var existsRetryCount = 0;
393        var readyRetryCount = 0;
394        var debug = /[?&]ads_log/.test(window.location.search);
395        
396        function checkGppExists() {
397            if (typeof __gpp !== 'function') {
398                existsRetryCount++;
399                if (existsRetryCount < maxRetries) {
400                    if (debug) console.log('GPP CMP not available, retrying... (' + existsRetryCount + '/' + maxRetries + ')');
401                    setTimeout(checkGppExists, retryDelay);
402                    return;
403                } else {
404                    if (debug) console.log('GPP CMP not available after ' + maxRetries + ' attempts');
405                    callback(null);
406                    return;
407                }
408            }
409            fetchGppData();
410        }
411        
412        function fetchGppData() {
413            try {
414                __gpp('ping', function(pingData, success) {
415                    if (!success || pingData.signalStatus !== 'ready') {
416                        readyRetryCount++;
417                        if (readyRetryCount < maxRetries) {
418                            if (debug) console.log('GPP signal not ready, retrying... (' + readyRetryCount + '/' + maxRetries + ')');
419                            setTimeout(fetchGppData, retryDelay);
420                            return;
421                        } else {
422                            if (debug) console.log('GPP signal not ready after ' + maxRetries + ' attempts');
423                            callback(pingData || null);
424                            return;
425                        }
426                    }
427                    callback(pingData);
428                });
429            } catch (error) {
430                if (debug) console.log('Error getting GPP data: ' + error.message);
431                callback(null);
432            }
433        }
434        
435        checkGppExists();
436    };
437
438    // Apply GPP Privacy Settings
439    __tnt.ads.dfp.setPrivacySettings = function(callback) {
440        __tnt.ads.dfp.getGppData(function(gppData) {
441            googletag.cmd.push(function() {
442                var disableTargetedAds = false;
443                var debug = /[?&]ads_log/.test(window.location.search);
444        
445                if (gppData && gppData.parsedSections) {
446                    for (var sectionName in gppData.parsedSections) {
447                        var sectionData = gppData.parsedSections[sectionName];
448                        if (!sectionData) continue;
449                        
450                        var section = sectionData[Object.keys(sectionData)[0]];
451                        if (!section) continue;
452
453                        // GDPR (tcfeuv2) - Check Purpose 4
454                        if (sectionName === 'tcfeuv2') {
455                            var purposes = section.Purpose && section.Purpose.Consent;
456                            if (!purposes || !purposes[3]) {
457                                disableTargetedAds = true;
458                                break;
459                            }
460                        }
461
462                        // Canada (tcfcav1) - Check Purpose 4
463                        if (sectionName === 'tcfcav1') {
464                            var purposes = section.PurposesExpressConsent;
465                            if (!purposes || !purposes[3]) {
466                                disableTargetedAds = true;
467                                break;
468                            }
469                        }
470
471                        // CCPA (uspv1) - Check opt-out of sale
472                        if (sectionName === 'uspv1') {
473                            var uspString = section.uspString || '';
474                            if (uspString[2] === 'Y') {
475                                disableTargetedAds = true;
476                                break;
477                            }
478                        }
479
480                        // US National & States - Check opt-out flags
481                        var usRegex = /^(usnat|usca|usva|usco|usut|usct|usfl|usmt|usor|ustx|usde|usia|usne|usnh|usnj|ustn)$/i;
482                        if (usRegex.test(sectionName)) {
483                            if (section.TargetedAdvertisingOptOut === 1 || 
484                                section.SaleOptOut === 1 || 
485                                section.SharingOptOut === 1) {
486                                disableTargetedAds = true;
487                                break;
488                            }
489                        }
490                    }
491                    
492                    if (debug) console.log('Disable Targeted Ads: ' + disableTargetedAds);
493                } else {
494                    if (debug) console.log('No GPP data available, using default privacy settings');
495                }
496                
497                // Set privacy settings in GPT
498                googletag.pubads().setPrivacySettings({
499                    'restrictDataProcessing': disableTargetedAds
500                });
501                
502                if (callback) callback();
503            });
504        });
505    };
506
507    // Main initialization with GPP check
508    googletag.cmd.push(function() {
509    
510        // Targeting for client browser
511        googletag.pubads().setTargeting('browser', __tnt.client.browser.name);
512        
513        // Targeting for schain
514        // Targeting for keywords
515        if (__tnt.ads.dfp.targeting) {
516            for (var k in __tnt.ads.dfp.targeting) {
517                if (__tnt.ads.dfp.targeting.hasOwnProperty(k)) {
518                    googletag.pubads().setTargeting(k,__tnt.ads.dfp.targeting[k]);
519                }
520            }
521        }
522        
523        // Viewable impression event listener
524            googletag.pubads().addEventListener('impressionViewable', function(event) {
525                for (var key in gptAdSlots) {
526                    if (gptAdSlots[key] === event.slot && __tnt.ads.slots[key]) {
527                        if (!__tnt.ads.slots[key].viewableImpression) __tnt.ads.slots[key].viewableImpression = true;
528                    }
529                }
530            });
531
532        // Publisher provided ID(PPID)
533        if (window.localStorage) {
534            var sID = window.localStorage.getItem('_us_master_id');
535            if (sID) {
536                if (window.dataLayer) {
537                    dataLayer.push({
538                        'tncms.ad.userstitch_id': sID
539                    });
540                }
541                googletag.pubads().setPublisherProvidedId(sID);
542            }
543        }
544        
545        // Disable initial ad load for all ad variants
546        googletag.pubads().disableInitialLoad();
547        
548        // Fetch multiple ads at the same time
549        googletag.pubads().enableSingleRequest();
550        
551        // Enable all GPT services for all defined ad slots
552        googletag.enableServices();
553    });
554 /*]]>*/</script>
554
555
556            
557            <title>Just how popular are Carney&#8217;s Liberals  right now?</title>
558            
559    
560    
561        <link rel="shortcut icon" type="image/x-icon" href="https://www.thestar.com/content/tncms/site/icon.ico" />
562    
563    
564        <link rel="preconnect" href="//aax.amazon-adsystem.com">
565    
566        <link rel="preconnect" href="//c.amazon-adsystem.com">
567    
568        <link rel="preconnect" href="//www.google.com">
569    
570        <link rel="preconnect" href="//adservice.google.com">
571    
572        <link rel="preconnect" href="//securepubads.g.doubleclick.net">
573    
574        <link rel="preconnect" href="//stats.g.doubleclick.net">
575    
576        <link rel="preconnect" href="//tpc.googlesyndication.com">
577    
578        <link rel="preconnect" href="//pagead2.googlesyndication.com">
579    
580        <link rel="preconnect" href="//www.googletagmanager.com">
581    
582        <link rel="preconnect" href="//www.google-analytics.com">
583    <link rel="alternate" type="application/rss+xml" title="Just how popular are Carney&#8217;s Liberals  right now?" href="http://www.thestar.com/search/?f=rss&amp;t=article&amp;c=interactives&amp;l=50&amp;s=start_time&amp;sd=desc" />
584    <link rel="canonical" href="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" />
585            
585<script defer src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/fontawesome.2d2bffd5ae1ad5a87314065b9bf6fb87.js"></script>
585
586            
586<script>
587    function initStarLogo() {
588        
589        const editionLocations = {"toronto":{"home":"\/","alt":"The Star","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core_ext\/resources\/images\/publication-logos\/thestar_logo.png?_dc=1785951071","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core_ext\/resources\/images\/publication-logos\/thestar_logo.png?_dc=1785951071","width":380,"height":40,"mobileWidth":190,"mobileHeight":20},"vancouver":{"home":"\/vancouver\/","alt":"The Star - Vancouver","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_vancouver.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_vancouver.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25},"calgary":{"home":"\/calgary\/","alt":"The Star - Calgary","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_calgary.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_calgary.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25},"edmonton":{"home":"\/edmonton\/","alt":"The Star - Edmonton","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_edmonton.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_edmonton.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25},"winnipeg":{"home":"\/winnipeg\/","alt":"The Star - Winnipeg","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_winnipeg.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_winnipeg.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25},"ottawa":{"home":"\/ottawa\/","alt":"The Star - Ottawa","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_ottawa.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_ottawa.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25},"halifax":{"home":"\/halifax\/","alt":"The Star - Halifax","logo":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/desktop\/star_halifax.png?_dc=1789580010","mobile":"https:\/\/bloximages.chicago2.vip.townnews.com\/thestar.com\/content\/tncms\/live\/libraries\/flex\/components\/torstar_core\/resources\/images\/regional\/mobile\/star_halifax.png?_dc=1789580009","width":510,"height":81,"mobileWidth":157,"mobileHeight":25}};
590        const selectedLocation = editionLocations.toronto;
591        try {
592            let root = document.querySelector(":root");
593            root.style.setProperty('--site-logo-src', "url('"+selectedLocation.logo+"')");
594            root.style.setProperty('--site-logo-width', selectedLocation.width+"px");
595            root.style.setProperty('--site-logo-height', selectedLocation.height+"px");
596            root.style.setProperty('--site-logo-mobile-src', "url('"+selectedLocation.mobile+"')");
597            root.style.setProperty('--site-logo-mobile-width', selectedLocation.mobileWidth+"px");
598            root.style.setProperty('--site-logo-mobile-height', selectedLocation.mobileHeight+"px");
599
600            let logoDesktopHref = document.getElementById("siteUserHeaderHref-desktop");
601            logoDesktopHref.href=selectedLocation.home;
602
603            let logoMobileHref = document.getElementById("siteUserHeaderHref-mobile");
604            logoMobileHref.href=selectedLocation.home;
605        } catch(err){}
606        try {
607
608        } catch(err){c}
609    }
610    initStarLogo();
611    </script>
611
612<link rel="preconnect" href="https://tags.crwdcntrl.net">
613   <link rel="preconnect" href="https://bcp.crwdcntrl.net">
614   <link rel="preconnect" href="https://c.ltmsphrcl.net">
615   <link rel="dns-prefetch" href="https://tags.crwdcntrl.net">
616   <link rel="dns-prefetch" href="https://bcp.crwdcntrl.net">
617   <link rel="dns-prefetch" href="https://c.ltmsphrcl.net">
618   <!-- Identity Links -->
619   <link rel="preconnect" href="https://bcp.st.crwdcntrl.net">
620   <link rel="dns-prefetch" href="https://bcp.st.crwdcntrl.net">
621   <link rel="preconnect" href="https://c.st.ltmsphrcl.net">
622   <link rel="dns-prefetch" href="https://c.st.ltmsphrcl.net">
623   
623<script>
624    ! function() {
625      var lotameClientId = '17837';
626      window.googletag = window.googletag || {};
627      window.googletag.cmd = window.googletag.cmd || [];
628      var audTargetingKey = 'lotame';
629      var pidTargetingKey = 'lpid';
630      var panoramaIdTargetingKey = 'lpanoramaid';
631      var audLocalStorageKey = 'lotame_' + lotameClientId + '_auds';
632      var isUserLoggedIn = TNCMS.User.isLoggedIn();
633
634      // Immediately load audiences and id from local storage
635      try {
636        var storedAuds = window.localStorage.getItem(audLocalStorageKey) || '';
637
638        if (storedAuds) {
639          googletag.cmd.push(function() {
640            window.googletag.pubads().setTargeting(audTargetingKey, storedAuds.split(','));
641          });
642        }
643
644        var localStoragePid = window.localStorage.getItem('_cc_id') || '';
645        if (localStoragePid) {
646          googletag.cmd.push(function() {
647              window.googletag.pubads().setTargeting(pidTargetingKey, localStoragePid);
648          });
649        }
650      } catch(e) {}
651
652      // Callback when targeting audience is ready to push latest audience data
653      var audienceReadyCallback = function (profile) {
654        // Get audiences as an array
655        var lotameAudiences = profile.getAudiences() || [];
656
657        // Set the new target audiences for call to Google
658        googletag.cmd.push(function() {
659          window.googletag.pubads().setTargeting(audTargetingKey, lotameAudiences);
660        });
661
662        var lotamePid = profile.getProfileId() || '';
663        if (lotamePid) {
664          googletag.cmd.push(function() {
665            window.googletag.pubads().setTargeting(pidTargetingKey, lotamePid);
666          });
667        }
668        
669        var panoObject = window['lotame_' + lotameClientId].getPanorama() || '';
670        if(panoObject) {
671            var panoID = panoObject.getId();
672            var panoIDType = panoObject.getIdType();
673            if (panoID) {
674              googletag.cmd.push(function() {
675                window.googletag.pubads().setTargeting(panoramaIdTargetingKey, panoID);
676              });
677            }
678
679        }
680      };
681
682      // Lotame Config
683      var lotameTagInput = {
684        data: {},
685        config: {
686          audienceLocalStorage: audLocalStorageKey,
687          onProfileReady: audienceReadyCallback,
688          clientId: Number(17837)
689          
690        }
691      };
692
693      // Lotame initialization
694      var lotameConfig = lotameTagInput.config || {};
695      var namespace = window['lotame_' + lotameClientId] = {};
696      namespace.config = lotameConfig;
697      namespace.data = lotameTagInput.data || {};
698      namespace.cmd = namespace.cmd || [];
699
700     // Handle Identity
701      if(isUserLoggedIn) {
702         var currentUserEmail = TNCMS.User.getEmail().trim().toLowerCase();
703         window['lotame_' + lotameClientId].cmd.push(function() {
704             window['lotame_' + lotameClientId].setIdentity(
705                 { id: currentUserEmail, type: 'EMAIL'}
706             );
707          });
708      }   
709      
710    } ();
711    </script>
711
712    
712<script async src="https://tags.crwdcntrl.net/lt/c/17837/lt.min.js"></script>
712<script type="text/javascript">
713        /* Image Resizer */
714        window.addEventListener('message', receiveMessage, false)
715        function receiveMessage(event) {
716            var origin = event.origin || event.originalEvent.origin
717            if (origin !== 'https://misc.thestar.com')
718                return
719            var data = event.data.resize
720            if (data) {
721                const {height, iframe} = data;
722                if (height && iframe) {
723                    const iframeElement = document.getElementById(iframe)
724                    if (iframeElement) {
725                        iframeElement.height = height
726                    }
727                    var elem = height
728                }
729            }
730        }
731    </script>
731<script>
732            /** Added for TSP-2941 - Sponsorship on weather widget  */
733            window.weatherHeaderSponsorship = false;
734        </script>
734<script>
735bDebug = false;
736if(document.location.hash.includes("swg.debug=1") || document.location.hash.includes("swg.deventitlement=DEV_MODE_SCENARIO_METER_ACCESS_GRANTED") || document.location.hash.includes("swg.deventitlement=DEV_MODE_SCENARIO_METER_ACCESS_DENIED")){ bDebug = true }
737if(bDebug){ console.log("SWG+GEA - CS-4864 - 2023/11/10 - 11:54") }
738
739window.__tnt || (window.__tnt = {});
740window.__tnt.subscription || (__tnt.subscription = {});
741window.__tnt.subscription.bp || (__tnt.subscription.bp = []); // array of functions run before the custom access method promises
742window.__tnt.subscription.ap || (__tnt.subscription.ap = []); // array of functions run after custom access method promises
743window.__tnt.subscription.d || (__tnt.subscription.d = []); // array of functions run on access denied
744window.__tnt.subscription.a || (__tnt.subscription.a = []); // array of functions run on access granted
745
746window.__tnt.subscription.access || (window.__tnt.subscription.access = {});
747window.__tnt.subscription.access.promises || (window.__tnt.subscription.access.promises = []);
748window.__tnt.subscription.access.promisesStageTwo || (window.__tnt.subscription.access.promisesStageTwo = []);
749window.__tnt.subscription.access.manifest || (window.__tnt.subscription.access.manifest = {
750    denied: {
751        promise: null,
752        resolve: function(){ }
753    }, 
754    granted: {
755        promise: null,
756        resolve: function(){ }
757    }
758});
759window.__tnt.subscription.offers || (window.__tnt.subscription.offers = {});
760window.__tnt.subscription.offers.swgData || (window.__tnt.subscription.offers.swgData = null);if(bDebug){ console.log("GEA - GEA Asset Mode Enabled"); }
761window.__tnt.subscription.geaLoaded = null;
762window.__tnt.subscription.geaPromise = new Promise(function(resolve, reject){
763    __tnt.subscription.geaLoaded = resolve;
764}).then(function(){
765if(bDebug){ console.log("GEA - Loaded Promise"); }
766    InitGaaMetering();
767});
768__tnt.subscription.access.promises.push(__tnt.subscription.geaPromise);
769
770try{
771    var searchParams = new URL(document.location).searchParams,
772        gaaSig = null,
773        promiseWaitForGeaPos = __tnt.subscription.access.promises.length;
774
775    __tnt.subscription.resolveWaitForGea = null;
776    __tnt.subscription.access.promises[promiseWaitForGeaPos] = new Promise(function(resolve, reject){ 
777        __tnt.subscription.resolveWaitForGea = resolve;
778    }).then(function(){
779        if(bDebug){ console.log("GEA - Waited for GEA Initialization") }
780    });
781            
782            
783    window.__tnt.subscription.bp.push(function(oResp){
784        if(bDebug){ 
785            console.log("GEA - Checking for race condition");
786            console.log(oResp);
787        }
788            
789    });
790} catch(e){ console.log("GEA - An error occurred", e) }
791
792
793window.userStatus = document.createEvent('Event');
794    userStatus.initEvent('tnt-user-status', true, true);
795    userStatus.version = 3;
796    userStatus.hasAccess = false;
797    userStatus.accessMethod = 'none';
798    userStatus.accessError = null;
799
800/*
801 * SwG Checkout Started
802 * 
803 * @event #SWGSubscriptionCheckoutStarted
804 */
805logSWGSubscriptionCheckoutStarted = new CustomEvent('SWGSubscriptionCheckoutStarted', { detail: {} });
806
807/*
808 * SwG Checkout Started
809 * 
810 * @event #SWGSubscriptionOrderCompleted
811 */
812logSWGSubscriptionOrderCompleted = new CustomEvent('SWGSubscriptionOrderCompleted', { detail: {} });
813
814// Init GEA User State
815window.__tnt.subscription.gea || (window.__tnt.subscription.gea = {});
816__tnt.subscription.gea.configured = false;
817window.userState = { granted: false };window.__tnt.subscription.gea.getUserData = function(){
818    try{
819        const sJWT = Cookies.get('tncms-user');
820        if(sJWT){
821            const sBase64URL = sJWT.split('.')[1];
822            const sBase64 = sBase64URL.replace(/-/g, '+').replace(/_/g, '/');
823            const sJSON = decodeURIComponent(atob(sBase64).split('').map(function(sChar){
824                return '%' + ('00' + sChar.charCodeAt(0).toString(16)).slice(-2);
825            }).join(''));
826            return JSON.parse(sJSON);
827        }
828    }catch(e){ console.log(e) }
829};
830
831window.__tnt.googleLogin = function(){
832    if(bDebug){ console.log("SWG - Google Login") }
833    var googleLoginForm = document.getElementById('tn-google-login'),
834        inputReferer = document.createElement('input'),
835        inputUsername = document.createElement('input');
836
837    if(!googleLoginForm){
838        googleLoginForm = document.createElement('form');
839        googleLoginForm.id = "tn-google-login";
840        googleLoginForm.action = window.location.origin + "/users/login/";
841        googleLoginForm.method = "POST";
842
843        inputReferer.type = 'hidden';
844        inputReferer.name = 'referer_url';
845        inputReferer.value = "https://thestar.com/subscribe/success/?itm_source=swg";
846
847        inputUsername.type = 'hidden';
848        inputUsername.name = 'username';
849        inputUsername.value = "provider:google";
850
851        googleLoginForm.appendChild(inputReferer);
852        googleLoginForm.appendChild(inputUsername);
853
854        document.body.append(googleLoginForm);
855    }
856
857    googleLoginForm.submit();
858};try{
859    var searchParams = new URL(document.location).searchParams,
860        gaaSig = null,
861        promiseWaitForGeaPos = __tnt.subscription.access.promises.length;
862} catch(e){ console.log("GEA - An error occurred", e) }
863
864function InitGaaMetering() {
865if(bDebug){ console.log("GEA - Initializing GEA Metering", userState) }
866
867    var articleBody = document.getElementById('article-body'),
868        paywallEl = null;
869              
870    if(articleBody){
871        paywallEl = articleBody.querySelector('.access-offers-in-page');
872if(bDebug){
873    console.log("GEA - found article body", articleBody);
874    console.log("GEA - paywall el", paywallEl);
875}
876        if(paywallEl){ paywallEl.classList.add('hide') }
877    }
878
879    window.__tnt.subscription.ap.push(function(oResp){
880if(bDebug){ console.log("GEA - Running promise setup") }
881        var promisePos = __tnt.subscription.access.promises.length;
882        __tnt.subscription.access.promisesStageTwo[promisePos] = new Promise(function(resolve, reject){
883if(bDebug){ console.log("GEA - In main promise") }
884
885            function unlockArticle(entResp){
886if(bDebug){ console.log("GEA - unlockArticle", entResp) }
887                if(paywallEl){ paywallEl.classList.add('gea-unlocked') }resolve({
888                    has_access:true,
889                    data:{
890                        type:'custom_javascript',
891                        name:'Google Extended Access',
892                        class_name: '',
893                        description: ''
894                    }
895                });
896            }
897        
898            function showPaywall(){
899            if(bDebug){ console.log("GEA - showPaywall") }
900            
901                window.sessionStorage.setItem("tncms-paymentPathReferrer",window.location.href);var articleBody = document.getElementById('article-body'),
902                  paywallEl = null;
903              
904              if(articleBody){
905                  paywallEl = articleBody.querySelector('.access-offers-in-page');
906              
907                  if(paywallEl && paywallEl.classList.contains('hide')){ 
908                      paywallEl.classList.remove('hide');
909                      //paywallEl.scrollIntoView(true);
910                  } 
911              }
912                 
913                resolve({
914                    has_access:false,
915                    data:{
916                        type:'custom_javascript',
917                        name:'Google Extended Access',
918                        class_name: '',
919                        description: ''
920                    }
921                });
922            }
923
924            // Site Url
925            var siteUrl = "thestar.com",
926                redirectUri = encodeURIComponent(window.location.href),
927                aAllowedReferrers = ['google.com', 'www.google.com', 'play.google.com', 'accounts.google.com', 'accounts.youtube.com', 'thestar.com', 'www.thestar.com'];
928
929if(bDebug){
930    console.log("GEA - Checking Users Log-in Status");
931    console.log("GEA - Allowed Referrers", aAllowedReferrers);
932    if(__tnt && __tnt.user && __tnt.user.authToken){
933        console.log("GEA - User Logged In: ", __tnt.user);
934    }else{
935        aAllowedReferrers.push(document.location.host);
936    }
937}
938
939            try{
940                var gaaConfig = {
941                /*            
942                 * Google API Client ID
943                 * googleApiClientID uses Google's register user flow
944                 *
945                 *
946                 * googleApiClientId: 'API CLIENT ID HERE',
947                 *
948                 * authorizationUrl redirects a user for registration */
949                    authorizationUrl: `https://thestar.com/users/login?referer_url=${redirectUri}&itm_source=gea`,
950
951                // userState object
952                    userState: window.userState,
953
954                // allowedReferrers list
955                    allowedReferrers: aAllowedReferrers,
956                
957                /*
958                 * handleLoginPromise
959                 * Runs when the user chooses to log in within the Google provided pop up
960                 */
961                    handleLoginPromise: new Promise(function(resolve, reject){
962if(bDebug){ console.log("GEA - handleLoginPromise", this) }
963                        GaaMetering.getLoginPromise().then(() => {
964if(bDebug){ console.log("GEA - getLoginPromise", this) }
965                            window.location = `/users/login?referer_url=${redirectUri}`;
966                        });
967                    }),
968
969                /*
970                 * registerUserPromise
971                 * Runs when the user signs up for a new account (not sure what triggers this)
972                 */
973                    registerUserPromise: new Promise(function(resolve, reject){ 
974                        GaaMetering.getGaaUserPromise().then((gaaUser) => {
975                            fetch('https://thestar.com/tncms/user/google/register',
976                                {
977                                    method: 'POST',
978                                    headers: {
979                                        'Content-type': 'application/json'
980                                    },
981                                    body: JSON.stringify(gaaUser)
982                                })
983                                .then(response => response.json())
984                                .then(userState => { resolve(userState); });
985                            });
986                        }),
987
988                    /*
989                     * publisherEntitlementPromise
990                     * Reports user status to GEA, whether the user has access granted by the site, or needs GEA to grant it
991                     */
992                        publisherEntitlementPromise: new Promise(function(resolve, reject){
993                            var accessStatus = {'granted': false };
994
995                            if(__tnt && __tnt.user && __tnt.user.authToken){
996                                 var userData = __tnt.subscription.gea.getUserData(),
997                                     unixTimeStamp = TNCMS.User.getCreateTimestamp(),
998                                     userId = null;
999
1000                                 if(userData && userData.sub){ userId = userData.sub }
1001
1002                                // user is a subscriber and has access
1003                                if(!oResp.required && __tnt.user.services && userId){
1004                                    accessStatus = {
1005                                        'id': userId,
1006                                        'registrationTimestamp': unixTimeStamp,
1007                                        'subscriptionTimestamp': unixTimeStamp,
1008                                        'granted': true, 
1009                                        'grantReason': "SUBSCRIBER"
1010                                    }
1011
1012                                // user is logged in and has access from metering
1013                                }else if(!oResp.required && userId){
1014                                    accessStatus = {
1015                                        'id': userId,
1016                                        'registrationTimestamp': unixTimeStamp,
1017                                        'granted': true, 
1018                                        'grantReason': "METERING"
1019                                    }
1020
1021                                // user is logged in, but does not have access
1022                                }else if(userId){
1023                                    accessStatus = {
1024                                        'id': userId,
1025                                        'registrationTimestamp': unixTimeStamp,
1026                                        'granted': false
1027                                    }
1028                                }
1029
1030                            // user not logged in, but access not required
1031                            } else if (!oResp.required){
1032                                accessStatus = {
1033                                    'granted': true, 
1034                                    'grantReason': "METERING"
1035                                }
1036                            }
1037if(bDebug){ console.log("GEA - publisherEntitlement", accessStatus) }
1038                        resolve(accessStatus);
1039                    }),
1040                
1041                /*
1042                 * handleSwGEntitlement
1043                 *
1044                 */
1045                    handleSwGEntitlement: function(entResp){
1046if(bDebug){ console.log("GEA - handleSwgEntitlement", entResp) }
1047                    },
1048
1049                    unlockArticle: unlockArticle,
1050                    showPaywall: showPaywall
1051                }
1052            }catch(e){ console.log("GEA - ERROR in Config", e) }
1053
1054            try{
1055                var searchParams = new URL(document.location).searchParams,
1056                    gaaSig = null;
1057
1058                if(searchParams.get('gaa_sig')){
1059                    gaaSig = searchParams.get('gaa_sig');
1060if(bDebug){ console.log("GEA - found gaa_sig", gaaSig) }
1061                }
1062
1063                if(gaaSig && !__tnt.subscription.gea.configured){
1064if(bDebug){ console.log("GEA - not configured, running init", gaaConfig) }
1065                    __tnt.subscription.gea.configured = true;
1066
1067                    GaaMetering.init(gaaConfig);
1068                }else{
1069if(bDebug){ console.log("GEA - signature not found or already configured, showing paywall") }
1070                    showPaywall()
1071                }
1072
1073            }catch(e){
1074                console.log("GEA - ERROR in Init ", e);
1075    
1076                showPaywall()
1077            }
1078        });
1079        
1080        return oResp;
1081    });
1082
1083        if(typeof(__tnt.subscription.resolveWaitForGea)=="function"){ __tnt.subscription.resolveWaitForGea() }
1084};
1085
1086var offerData = [
1087    {
1088        'blox_id': "80b4e5f6-4806-11ee-9693-ab1cbb2290f2", // id of the blox offer (individual offer, not the offer group)
1089        'swg_id': "basic" // id of the offer within the SwG setup
1090    },
1091    {
1092        'blox_id': "44992db4-4e57-11ee-abc4-ff7681ffe761",
1093        'swg_id': "basic_annual"
1094    },
1095    {
1096        'blox_id': "efa61084-4806-11ee-9693-6b4367f71b58",
1097        'swg_id': "basic_annual"
1098    },
1099    {
1100        'blox_id': "67ed98ba-6eb7-11ee-b04e-4bfdb0aa194b",
1101        'swg_id': "basic_annual"
1102    },
1103    {
1104        'blox_id': "6061021e-aa6a-11ee-8a91-b7e5ebb0cc5c",
1105        'swg_id': "basic_annual"
1106    },
1107    {
1108        'blox_id': "1a0fb21c-bee5-11ee-b5ca-ab9e76134ea6",
1109        'swg_id': "basic_annual"
1110    },
1111    {
1112        'blox_id': "1ac91a04-fe5a-11ee-ac1f-fb76ea8a7542",
1113        'swg_id': "basic_annual"
1114    },
1115    {
1116        'blox_id': "08317b5a-0d57-11ef-8d8f-8b278ef2ab4d",
1117        'swg_id': "basic"
1118    },
1119    {
1120        'blox_id': "be052cc4-4529-11ef-92df-9376d5c2ff13",
1121        'swg_id': "basic"
1122    },
1123    {
1124        'blox_id': "36206994-8003-11ef-a503-27a6b936f934",
1125        'swg_id': "basic_annual"
1126    }
1127];
1128__tnt.subscription.offers.customizeOffers = function(t, offer){
1129    var footer = null,
1130        siteNameEl = document.head.querySelector('meta[property="og:site_name"]'),
1131        siteName = "";
1132
1133    if(siteNameEl){ siteName = siteNameEl.content }
1134
1135    if(t && offer && __tnt.subscription.swg && offerData && offerData.length){
1136        try{
1137            footer = t.querySelector('.method-footer');
1138            offerData.forEach(function(thisOffer){ 
1139                if(offer.id == thisOffer.blox_id){
1140                    var buttonArea = document.createElement('div'),
1141                        orContainer = document.createElement('div'),
1142                        orEl = document.createElement('span'),
1143                        textElement = document.createElement('p');
1144
1145                    buttonArea.classList.add('offer-custom-purchase-container');
1146                    buttonArea.style = "margin:auto;" // style modification should be moved to site css
1147
1148                    orEl.innerHTML = "or";
1149                    orEl.classList.add("user-option-or", "text-muted");
1150                    orEl.style = "background: #ffffff;padding:0 10px;";
1151                    
1152                    orContainer.style = "width: 100%; text-align: center; border-bottom: 1px solid #999; line-height: 0.1em; margin: 30px 0px;";
1153                    orContainer.appendChild(orEl);
1154
1155                    textElement.innerHTML = "Pay with Subscribe with Google";
1156                    textElement.classList.add("swg-text");
1157                    textElement.style="margin-bottom:20px;";
1158
1159                    var subscriptions = __tnt.subscription.swg;
1160
1161                    subscriptions.setOnLoginRequest(function() {
1162                        __tnt.googleLogin();
1163                    });
1164
1165                    subscriptions.setOnPaymentResponse(function(paymentResponse){
1166                        paymentResponse.then(function(resp){
1167                            var swgData = null,
1168                                respRawParsed = null,
1169                                respPurchaseData = null;
1170
1171                            try{
1172                                if(!__tnt.subscription.offers.swgData){ JSON.parse(sessionStorage.getItem('__tnt.subscription.offers.swgData')) }
1173                            }catch(error){ console.log("SWG error", error) }
1174
1175                            Object.assign(logSWGSubscriptionOrderCompleted.detail, __tnt.subscription.offers.swgData);
1176
1177                            if(resp && resp.raw){
1178                                respRawParse = JSON.parse(resp.raw);
1179                                if(respRawParse && respRawParse.purchaseData){ respPurchaseData = JSON.parse(respRawParse.purchaseData) }
1180                                if(respPurchaseData){
1181                                    logSWGSubscriptionOrderCompleted.detail.order_id = respPurchaseData.orderId;
1182                                    logSWGSubscriptionOrderCompleted.detail.package_name = respPurchaseData.packageName;
1183                                }
1184                            }
1185
1186                            window.dispatchEvent(logSWGSubscriptionOrderCompleted);
1187
1188                            resp.complete().then(function(){
1189                                if(bDebug){ console.log("SWG - logging user in") }
1190                                __tnt.googleLogin();
1191                            });
1192                        });
1193                    });
1194
1195                    var swgButton = subscriptions.createButton(function(){
1196                        var price = Number(offer.rate_price)/100;
1197
1198                        if(bDebug){ console.log("SWG - offer data", offer) }
1199                        __tnt.subscription.offers.swgData = {
1200                            checkout_id: crypto.randomUUID(),
1201                            products: [{
1202                                brand: siteName,
1203                                category: "Subscribe with Google",
1204                                payment_type: "Subscribe with Google",
1205                                name: offer.service_name,
1206                                product_id: offer.service_id,
1207                                sku: offer.rate_id,
1208                                price: price,
1209                                position: 1,
1210                                swg_product_id: thisOffer.swg_id,
1211                                quantity: 1,
1212                            }]
1213                        }
1214
1215                        sessionStorage.setItem('__tnt.subscription.offers.swgData', JSON.stringify(__tnt.subscription.offers.swgData));
1216                        subscriptions.subscribe(thisOffer.swg_id);
1217                    });
1218                    buttonArea.appendChild(swgButton);
1219
1220                    offerContainer = t.querySelector('.subscription-service');
1221                    if(offerContainer){ offerContainer.setAttribute('data-swg-id', thisOffer.swg_id) }
1222
1223                    offerButton = footer.querySelector('.method-link');
1224                    if(offerButton){ offerButton.setAttribute('data-swg-id', thisOffer.swg_id) }
1225
1226                    footer.appendChild(orContainer);
1227                    footer.appendChild(textElement);
1228                    footer.appendChild(buttonArea);
1229                }
1230            });
1231        } catch(e){ console.log("SwG Button - An error occurred", e) }
1232    }
1233}</script>
1233
1234
1235<script async src="https://accounts.google.com/gsi/client" defer></script>
vendor: 1 bytes, line 1235
1235
1236<script async subscriptions-control="manual" src="https://news.google.com/swg/js/v1/swg.js"></script>
vendor: 1 bytes, line 1236
1236
1237<script async src="https://news.google.com/swg/js/v1/swg-gaa.js" onload="__tnt.subscription.geaLoaded()"></script>
1237<script>
1238    window.__tnt || (window.__tnt = {});
1239    window.__tnt.subscription || (__tnt.subscription = {});
1240    window.__tnt.subscription.a || (__tnt.subscription.a = []);
1241    window.__tnt.subscription.d || (__tnt.subscription.d = []);
1242    
1243    /** Added for Adobe Analytics - Access Granted */
1244    __tnt.subscription.a.push(function(oResp){
1245        window.adobeAccessTokens = oResp;
1246    });
1247    
1248    /** Added for Adobe Analytics - Access Denied */
1249    __tnt.subscription.d.push(function(oResp){
1250        window.adobeAccessTokens = oResp;
1251    });
1252    </script>
1252
1253        
1254    
1255<script>
1256document.addEventListener('DOMContentLoaded', function() {
1257    // Function to add event listener
1258
1259    let starDomain = true   
1260    let preProd = false
1261
1262    function addLoginToggleListener() {
1263        var loginToggle = document.querySelector('.login-toggle');
1264        if (loginToggle) {
1265            loginToggle.addEventListener('click', function(ev) {
1266                ev.preventDefault();
1267                ev.stopPropagation();
1268
1269                if(starDomain){                
1270                    var newLink = 'https://www.thestar.com/users/login?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html';                  
1271                    window.location.href = newLink;
1272                }else{
1273                const genericLoginForm = document.getElementById('user-login-form-generic');
1274                    try{
1275                        genericLoginForm.submit();
1276                        return false;
1277                    } catch(err){
1278                    }
1279                }
1280
1281                return false;
1282            }, true);
1283        }
1284    }
1285
1286    // Check initially if the element exists
1287    addLoginToggleListener();
1288
1289    // Use MutationObserver to monitor the DOM for changes
1290    var observer = new MutationObserver(function(mutations) {
1291        mutations.forEach(function(mutation) {
1292            if (mutation.addedNodes) {
1293                for (var i = 0; i < mutation.addedNodes.length; i++) {
1294                    var node = mutation.addedNodes[i];
1295                    if (node.nodeType === 1) { // Check if the added node is an element
1296                        if (node.matches('.login-toggle') || node.querySelector('.login-toggle')) {
1297                            addLoginToggleListener();
1298                            observer.disconnect(); // Stop observing once the element is found and the listener is added
1299                            break;
1300                        }
1301                    }
1302                }
1303            }
1304        });
1305    });
1306
1307    // Start observing the body for changes
1308    observer.observe(document.body, { childList: true, subtree: true });
1309    
1310    function nameFixer() {
1311        const firstNameHolders = document.querySelectorAll('strong.tn-user-screenname[class="tn-user-screenname"]');
1312        if (firstNameHolders.length > 0 && TNCMS.User.getScreenName()) {
1313            nameFixObserver.disconnect(); // Disconnect observer if only needed once
1314    
1315            let fName = "Reader";
1316            try {
1317                fName = TNCMS.User.getFirstName();
1318            } catch (e) {
1319                //console.error("Error getting first name:", e);
1320            }
1321    
1322            firstNameHolders.forEach(holder => {
1323                holder.innerHTML = fName;
1324            });
1325        }
1326    }
1327    
1328    setTimeout(() => {
1329      nameFixer(); // Because sometimes the paywall is slow to load even though it is already on the dom.
1330    }, 3000);
1331    
1332    var nameFixObserver = new MutationObserver(function (mutations) {
1333        //nameFixer(); // Call nameFixer at the start to check initial state
1334        mutations.forEach(function (mutation) {
1335            if (mutation.addedNodes) {
1336                for (var i = 0; i < mutation.addedNodes.length; i++) {
1337                    var node = mutation.addedNodes[i];
1338                    if (node.nodeType === 1) { // Check if the added node is an element
1339                        if (node.matches('.subscriber-offers.access-offers-in-page.access-offers-wrapper') || node.querySelector('.subscriber-offers.access-offers-in-page.access-offers-wrapper')) {
1340                            nameFixer();
1341                            nameFixObserver.disconnect(); // Stop observing if only needed once
1342                            return; // Exit loop early if node is found
1343                        }
1344                    }
1345                }
1346            }
1347        });
1348    });
1349    
1350    // Start observing the body for changes
1351    nameFixObserver.observe(document.body, { childList: true, subtree: true });
1352   
1353
1354});
1355</script>
1355
1356
1357    
1358    
1359<script>
1360new ResizeObserver(() => {
1361        let vw = document.documentElement.clientWidth / 100;
1362        document.documentElement.style.setProperty('--vw', `${vw}px`);
1363      }).observe(document.documentElement);
1364</script>
1364
1365
1366    
1367    
1367<script>
1368    window.sessionStorage.setItem("lastVisitedArticle","https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html");
1369    </script>
1369
1370    <!-- tsHeadScripts Loader -->
1371<script language="javascript" type="text/javascript">window.OOVVUU_RUNTIME_AUTORUN_DISABLED = false;function initDomLoadedHandler() {
1372    
1373    
1374    try{
1375        window.__tnt.subscription.a.push(function(oResp){
1376            const eventData = {
1377                  event_timestamp:Date.now(),
1378                  action:'paywall',
1379                  displayed: false
1380              }
1381              const event = new CustomEvent("BloxPaywallStatus", {detail:eventData});
1382              window.dispatchEvent(event);
1383        });
1384    } catch(err){}
1385    
1386        //console.log("Firing star asset code 2");
1387        
1388        const debugMode = false;
1389        
1390        window.addEventListener("BLOXSubscriptionProductListViewed", function () {
1391            //console.log("Firing BLOXSubscriptionProductListViewed v051202");
1392            //let us see if one or more of the offers are "featured" and if so, add a featured class to the subscription service div
1393            try{
1394                let offerEls = document.querySelectorAll(".access-methods-list .subscription-service .method-featured");
1395                for(let i=0;i<offerEls.length;i++)
1396                {
1397                    if(offerEls[i].childNodes.length>0)
1398                    {
1399                        offerEls[i].parentNode.classList.add("featured");
1400                    }
1401                }
1402            } catch(e){}
1403            
1404            //remove any hidden classes from offers
1405            /*
1406            try{
1407                let purchaseButtons = document.querySelectorAll(".subscription-service .method-footer a.btn");
1408                for(let i=0;i<purchaseButtons.length;i++)
1409                {
1410                    purchaseButtons[i].classList.remove("hidden");
1411                }
1412            } catch(e){}
1413            */
1414            
1415        });
1416        
1417        window.addEventListener('BLOXSubscriptionProductViewed', function (e) {
1418            //console.log("Firing BLOXSubscriptionProductViewed",e)
1419            const returnDomain = localStorage.getItem("tncms-user-site-domain");
1420            try{
1421                const termsContainer = document.querySelector(".tn-tos-agree");
1422                let termsText = "I Agree to the <a href='https://www.thestar.com/site/static-pages/subscription-terms.html' aria-label='Subscription Terms' target='_blank'>Subscription Terms</a>, <a href='https://notices.torstar.com/main_terms_of_use_daily_and_community_brands_EN/' aria-label='Terms of Use' target='_blank'>Terms of Use</a> and <a href='http://notices.torstar.com/privacy-policy/index.html' aria-label='Privacy Policy' target='_blank'>Privacy Policy</a>";
1423                termsContainer.innerHTML = termsText;
1424                
1425                document.querySelector(".service-renews.purchase-standard").style.display="none";
1426            }catch(err){
1427                //unable to update terms
1428            }
1429            
1430        })
1431        
1432        document.getElementById("form-submit-super-purchase").addEventListener("click", function() {
1433            const tos = document.getElementById('tn-tos-super-purchase');
1434            const key = "tncms-disclaimer-checked";
1435            if (tos.checked) {
1436                window.sessionStorage.setItem(key, "1");
1437            } else {
1438                sessionStorage.removeItem(key);
1439            }
1440        });
1441        
1442        window.addEventListener('BLOXSubscriptionOrderCompleted', function (e) {
1443            if(debugMode)
1444            {
1445                console.log("Firing BLOXSubscriptionOrderCompleted v120606");
1446            }
1447            /* update screenname field to display the first name the user entered on the purchase form */
1448            try {
1449                const screenNameField = document.querySelector(".username.purchase-standard");
1450                const userName = document.getElementById("field-purchaser-firstname-super-purchase");
1451                /* console.log("Should be updating ",screenNameField," to "+userName.value); */
1452                if (userName!="")
1453                {
1454                    screenNameField.innerHTML = " "+userName.value;
1455                }
1456            } catch(err) {
1457                if(debugMode){
1458                    console.log("Failed to get and update screen name on purchase page.");
1459                }
1460                document.querySelector(".username.purchase-standard").innerHTML = "";
1461            }
1462            /* updating the receipt language */
1463            let receiptText = document.querySelector("#modal-purchase-receipt p.text-center");
1464            let extraReceiptText = "<p>You will also start receiving the Star's free morning newsletter, First Up, soon.</p>";
1465            receiptText.insertAdjacentHTML("afterend", extraReceiptText);
1466            if(debugMode)
1467            {
1468                console.log("Should have added to receipt",receiptText,extraReceiptText);
1469            }
1470            try{
1471                const offerModal = document.querySelector("#access-offers-modal");
1472                const purchaseSuccessTab = offerModal.querySelector("#user-modal-tab-purchase-success");
1473                
1474                $('#access-offers-modal').on('hidden.bs.modal', function (e) {
1475                    if (purchaseSuccessTab.classList.contains("active"))
1476                    {
1477                            /*we are closing the modal and we are on the success tab, therefore we just need to redirect to the success page */
1478                            window.sessionStorage.setItem("tncms-paymentPathReferrer",window.location.href);
1479                            window.location.href="/subscribe/success/";}
1480                })
1481            } catch(err){console.log("Error with order completed stage",err);}
1482        })
1483    
1484    
1485    
1486if(TNCMS.User.isLoggedIn())
1487{
1488    const firstNameHolders = document.querySelectorAll(".tn-user-firstname");
1489    if(firstNameHolders.length > 0)
1490    {
1491        let sName = TNCMS.User.getScreenName();
1492        sName = sName.split("-");
1493        let fName = sName[0];
1494        try{
1495            fName = TNCMS.User.getFirstName();
1496        } catch(e)
1497        {
1498            fName = "Reader";
1499        }
1500        
1501        for(let i=0;i<firstNameHolders.length;i++)
1502        {
1503            firstNameHolders[i].innerHTML = fName;
1504        }
1505    }
1506}
1507
1508    
1509    (() => {
1510    const params = new URLSearchParams(window.location.search);
1511
1512    if (TNCMS.User.isLoggedIn() && params.has('profile_updated')) {
1513        window.profile_updated = true;
1514
1515        let observer;
1516        const getCookie = (name) => {
1517            const value = `; ${document.cookie}`;
1518            const parts = value.split(`; ${name}=`);
1519        
1520            if (parts.length === 2) {
1521                return parts.pop().split(';').shift();
1522            }
1523        
1524            return null;
1525        };
1526
1527        const checkCookie = () => {
1528            return new Promise((resolve, reject) => {
1529                const timeout = setTimeout(() => {
1530                    clearInterval(checkInterval);
1531                    reject(new Error('tncms_csrf_token cookie was not found'));
1532                }, 5000);
1533
1534                const checkInterval = setInterval(() => {
1535                    const token = getCookie('tncms_csrf_token');
1536
1537                    if (token) {
1538                        clearInterval(checkInterval);
1539                        clearTimeout(timeout);
1540                        resolve(token);
1541                    }
1542                }, 100);
1543            });
1544        };
1545
1546        const updateForm = async (formElement) => {
1547            const cleanUrl = new URL(window.location.href);
1548            cleanUrl.searchParams.delete('profile_updated');
1549            window.history.replaceState({}, '', cleanUrl);
1550
1551            try {
1552                const actionUrl = new URL(formElement.action);
1553                actionUrl.searchParams.delete('profile_updated');
1554                formElement.action = actionUrl.toString();
1555            } catch (e) {
1556                console.warn('===== Invalid form action:', formElement.action, e);
1557            }
1558
1559            const xOrgUrl = formElement.querySelector('input[name="x_org_url"]');
1560
1561            if (xOrgUrl?.value) {
1562                try {
1563                    const orgUrl = new URL(xOrgUrl.value, window.location.origin);
1564                    orgUrl.searchParams.delete('profile_updated');
1565                    xOrgUrl.value = orgUrl.toString();
1566                } catch (e) {
1567                    console.warn('===== Invalid x_org_url:', xOrgUrl.value, e);
1568                }
1569            }
1570
1571            const xRefererUrl = formElement.querySelector('input[name="referer_url"]');
1572
1573            if (xRefererUrl?.value) {
1574                try {
1575                    const refererUrl = new URL(xRefererUrl.value, window.location.origin);
1576                    refererUrl.searchParams.delete('profile_updated');
1577                    xRefererUrl.value = refererUrl.toString();
1578                } catch (e) {
1579                    console.warn('===== Invalid referer_url:', xRefererUrl.value, e);
1580                }
1581            }
1582            
1583            const stop = () => observer?.disconnect();
1584            setTimeout(stop, 10000);
1585
1586            try {
1587                await checkCookie();
1588                formElement.submit();
1589            } catch (e) {
1590                console.warn('===== Cookie check failed:', e);
1591            }
1592        };
1593
1594        const checkFormReady = async () => {
1595            const formElement = document.querySelector('.user-login-panel.header > form:first-of-type');
1596
1597            if (!formElement) {
1598                return;
1599            }
1600
1601            const xOrgUrl = formElement.querySelector('input[name="x_org_url"]');
1602            const xRefererUrl = formElement.querySelector('input[name="referer_url"]');
1603
1604            // Wait until Viafoura populated the form
1605            if (
1606                formElement.action.includes('profile_updated') ||
1607                xOrgUrl?.value.includes('profile_updated') ||
1608                xRefererUrl?.value.includes('profile_updated')
1609            ) {
1610                await updateForm(formElement);
1611            }
1612        };
1613
1614        observer = new MutationObserver(() => {
1615            checkFormReady().catch((e) => {
1616                console.warn('===== checkFormReady failed:', e);
1617            });
1618        });
1619
1620        observer.observe(document.body, {
1621            childList: true,
1622            subtree: true,
1623            attributes: true,
1624            attributeFilter: ['action', 'value']
1625        });
1626
1627        // Handle already existing form
1628        checkFormReady().catch((e) => {
1629            console.warn('===== Initial form check failed:', e);
1630        });
1631    }
1632})();
1633
1634}
1635if(document.readyState !== 'loading') {
1636    initDomLoadedHandler();
1637} else {
1638    document.addEventListener('DOMContentLoaded', function () {
1639        initDomLoadedHandler();
1640    });
1641}
1642</script>
vendor: 1 bytes, line 1642
1642
1643<script>
1644    try {
1645        authorListJSON = JSON.parse('[{"author":"Vox Pop Labs","credit":null,"guid":"8c39ea58-a2d8-11ed-8b9f-5753c0e7044b"}]');
1646        authorProfileName = ' ';
1647        authorScreenName = '';
1648        authorProfileTitle = '';
1649        authorProfileId = '';
1650        if (authorListJSON.length === 0 && authorProfileName && authorProfileId){
1651            authorListJSON = [{"author":authorProfileName,"credit":authorProfileTitle,"guid":authorProfileId}];
1652        }
1653        else if (authorListJSON.length === 0 && !authorProfileName && authorScreenName && authorProfileId){
1654            authorListJSON = [{"author":authorScreenName,"credit":authorProfileTitle,"guid":authorProfileId}];
1655        }        
1656    }
1657    catch(e){
1658    }
1659    var environment = "live";
1660    </script>
1660
1661
1662    
1662<script src="https://resources.thestar.com/cf7f3d5747a0/55637cf57ed4/launch-9387fe3a1e9f.min.js" async></script>
1662
1663
1664    
1664<script>
1665    window.adobeTokens = {
1666        "assetData" : {
1667            "access" : "free",
1668            "authorList" : authorListJSON ? authorListJSON : "",
1669            "authorByline" : "no byline",
1670            "counts" : {
1671                "paragraphs" : "10",
1672                "words" : "301-450 words",
1673                "wordCount" : "329"
1674            },
1675            "flags" : "",
1676            "geo" : "",
1677            "keywords" : "#federal_politics, #starnewsroom, #federal_election, #polls, #poll_tracker, #the_signal, #election_forecast, #mark_carney, #pierre_poilievre, #starlock, #conservative_party_of_canada, #liberal_party_of_canada",
1678            "hubId" : "",
1679            "originalUUID" : "",
1680            "publishInfo" : {
1681                "startDate" : "05/21/2026",
1682                "startDateHier" : "2026|05|21",
1683                "startDateTime" : "2026-05-21T13:00:00-0400",
1684                "startTime" : "1:00 pm"
1685            },
1686            "readTime" : "1",
1687            "sponsorship" : {
1688                "adId" : "",
1689                "advertiserId" : "",
1690                "orderId" : ""
1691            },
1692            "title" : "Just how popular are Carney's Liberals with Canadian voters? Here's what the polls show right now",
1693            "uuid" : "1337f598-2b2e-4b63-b5ee-0e923c663892",
1694            "viafouraEnabled" : "false"
1695        },
1696        "environment" : environment,
1697        "multimedia" : 
1698            {"main":{"total":0,"videos":0,"images":1,"audios":0,"collections":0,"uuids":["aabac44d-1425-4727-a2e3-f59ed8f9c3e7"]},"inline":{"total":0,"videos":0,"images":0,"audios":0,"collections":0,"uuids":[]},"collections":[]},
1699        "pageType" : "article",
1700        "presentation" : "",
1701        "search" : {
1702            "totalResults" : "0",
1703            "totalURLResults" : "0"
1704        },
1705        "sections" : {
1706            "allSections" : ["interactives", "politics/federal"],
1707            "primarySection" : "interactives",
1708            "urlSections" : "|interactives",
1709        },
1710        "siteDomain" : "thestar.com",
1711        "statusCode" : "200",
1712        "subPageType" : "asset",
1713        "urls" : {
1714            "absoluteURL" : "https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html",
1715            "canonicalURL" : "https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"
1716        }
1717    }
1718    </script>
1718
1719
1720
1721        <meta property="mrf:cms_id" content="thestar:article_1337f598-2b2e-4b63-b5ee-0e923c663892">
1722     <meta property="mrf:tags" content="primarySection:interactives;topLevelCategory:interactives;category:interactives;category:politics|federal;torstarTags:federal_politics;torstarTags:starnewsroom;torstarTags:federal_election;torstarTags:polls;torstarTags:poll_tracker;torstarTags:the_signal;torstarTags:election_forecast;torstarTags:mark_carney;torstarTags:pierre_poilievre;torstarTags:starlock;torstarTags:conservative_party_of_canada;torstarTags:liberal_party_of_canada;wordCountBucket:301-450 words">
1723<!-- Google Tag Manager -->
1724    
1724<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
1725    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
1726    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
1727    'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '&gtm_auth=74eL4wQLYRNQ18AwQITlNA&gtm_preview=env-1&gtm_cookies_win=x';f.parentNode.insertBefore(j,f);
1728    })(window,document,'script','dataLayer','GTM-WRSZQF8');</script>
1728
1729    <!-- End Google Tag Manager -->
1730        <style>
1731        /* Sticky Mobile Top Ad */
1732        .stickyMobileAd {
1733          position: relative;
1734        }
1735        .stickyMobileAd.sticky {
1736          position: fixed;
1737          top: 49px;
1738          width:100%;
1739          background-color:white;
1740          z-index: 110;
1741          margin: 0 -15px;
1742          padding: 10px;
1743        }
1744
1745        /* Sticky Mobile Footer Ad */
1746        @media only screen and (max-width: 767px) {
1747            #tncms-region-page_sticky_anchor::before {
1748                content: "ADVERTISEMENT";
1749                text-align: center;
1750                font-family: Merriweather Sans, Helvetica, Roboto, Arial, sans-serif;
1751                font-size: 10px;
1752                color: #686868;
1753                letter-spacing: .6px;
1754                line-height: 20px;
1755                font-weight: bolder;
1756                display: flex;
1757                align-self: center;
1758                align-items: center;
1759                justify-content: center;
1760            }
1761        }
1762
1763        #sticky-anchor {
1764            background-color: #ecebec;
1765        }
1766
1767        #sticky-anchor > .sticky-anchor-close > svg {
1768            color: #686868;
1769        }
1770
1771        #sticky-anchor > .sticky-anchor-close {
1772            background-color: #ecebec;
1773        }
1774
1775        </style>
1776        
1777<script>
1778    if(typeof grecaptcha === 'undefined') {
1779        grecaptcha = {};
1780    }
1781    grecaptcha.ready = function(cb){
1782        if(typeof grecaptcha === 'undefined') {
1783            // window.__grecaptcha_cfg is a global variable that stores reCAPTCHA's
1784            // configuration. By default, any functions listed in its 'fns' property
1785            // are automatically executed when reCAPTCHA loads.
1786            const c = '___grecaptcha_cfg';
1787            window[c] = window[c] || {};
1788            (window[c]['fns'] = window[c]['fns']||[]).push(cb);
1789        } else {
1790            cb();
1791        }
1792    }
1793</script>
1793
1794
1795    
1796    
1797    
1798        
1798<script>
1799            var comContainer = "";
1800            const containerId = "1337f598-2b2e-4b63-b5ee-0e923c663892";
1801         document.addEventListener("DOMContentLoaded", function(){
1802              const comContainerInit = (coms, schemaDiv) => {
1803                let pos = 1; 
1804                comBuild = "";
1805                if(coms.length == 0){
1806                    comSchema(); 
1807                }  
1808                coms.forEach(com => {
1809                  let last = ",";
1810                  let first = '"commentCount": ['+coms.length+'],';
1811                  if(pos == coms.length){
1812                    last = "";
1813                  }
1814                  if(pos != 1){
1815                      first = "";
1816                  }
1817                  let txtSafe = com["content"].replace(/(\r\n|\n|\r)/gm, "");
1818                  txtSafe = txtSafe.replace(/"/g, '\\"');
1819                  comBuild = comBuild + first +'"comment": [ { "@context": "http://schema.org/", "@type": "Comment", "datePublished": "'+ com["date_created"]+'","author": { "@context": "http://schema.org/", "@type": "Person", "name": "user" }, "text": "'+txtSafe+'", "upvoteCount": '+com["total_likes"]+', "downvoteCount": "'+com["total_dislikes"]+'" } ]'+last;
1820                  pos++;
1821                });
1822                 window.comContainer = comBuild;
1823                 let initSchemaEntry = '{ '+ window.comContainer +'}';
1824                let insertPos = document.getElementsByTagName('schemaInsert');
1825                let jsonSchema = JSON.parse(initSchemaEntry);
1826                // document.getElementById('iniSchema').innerHTML = JSON.stringify(jsonSchema);
1827                schemaDiv.innerHTML = JSON.stringify(jsonSchema);
1828                document.body.appendChild(schemaDiv);                
1829              }
1830            
1831            const getCommentsForSchema = () => {
1832            const requestOptions = {
1833              method: "GET",
1834              redirect: "follow"
1835            };
1836            fetch("https://livecomments.viafoura.co/v4/livecomments/00000000-0000-4000-8000-032a225cd465?container_id="+containerId+"&reply_limit=2&sorted_by=newest&limit=10", requestOptions)
1837              .then((res) => res.json())
1838              .then((res) => {
1839                let comCount = 0;
1840                if (res["contents"]){
1841                    comCount = res["contents"].length;
1842                }
1843                if (comCount > 0){
1844                    window.comContainer = '"commentCount = ['+comCount+']"';
1845                    let schemaDiv = document.createElement('script');
1846                    schemaDiv.setAttribute('id', 'iniSchema');
1847                    schemaDiv.setAttribute('type', 'application/ld+json');
1848                   comContainerInit(res["contents"], schemaDiv);
1849                   
1850                }else{
1851                    return ""; 
1852                }
1853              })  
1854              .catch((error) => console.error(error));  
1855              }
1856            getCommentsForSchema();
1857        });     
1858            </script>
1858 
1859        
1860        
1860<script type="application/ld+json">
1861        {"@context":"https://schema.org","@type":"NewsMediaOrganization","name":"The Toronto Star","logo":{"@context":"http://schema.org","@type":"ImageObject","url":"https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/media/a/3e/a3e8ae1c-2803-11ef-a4c8-4379d14d2ba0/6668670d2a4e2.image.png?resize=1200%2C1200","height":1200,"width":1200},"url":"www.thestar.com/","@id":"www.thestar.com/"}
1862        </script>
1862
1863        
1863<script type="application/ld+json">
1864        {"@context":"https://schema.org","@type":"WebSite","url":"https://www.thestar.com","potentialAction":{"@type":"SearchAction","target":"https://www.thestar.com/search?q={search_term_string}","query-input":"required name=search_term_string"}}
1865        </script>
1865<script type="application/ld+json">
1866            {
1867                "@context" : "https://schema.org",
1868                "@type" : "Organization","sameAs": "https://en.wikipedia.org/wiki/Toronto_Star","alternateName": "the star,thestar,toronto star,torontostar,the toronto star","parentOrganization": {
1869                    "@type": "NewsMediaOrganization",
1870                    "name" : "Torstar Corporation",
1871                    "url": "https://torstar.com/",
1872                    "logo": {
1873                        "@type": "ImageObject",
1874                        "url": "https://www.torstar.com/images/layout/torStarLogo6.png",
1875                        "width": "186",
1876                        "height" : "187"
1877                    }
1878                }
1879            }    
1880            </script>
1880
1881            
1881<script type="application/ld+json">
1882            {
1883                "@context":"https://schema.org", 
1884                
1885                "@type":"NewsArticle",
1886                
1887                "isAccessibleForFree":true,
1888                "articleSection":"interactives",
1889                "dateCreated":"2026-05-21T13:00:00-04:00",
1890                "dateModified":"2026-08-14T15:37:14-04:00",
1891                "datePublished":"2026-05-21T13:00:00-04:00",
1892                "headline":"Just how popular are Carney's Liberals with Canadian voters? Here's what the polls show right now",
1893                "description":"If a federal election were held today, here's how the vote breakdown would look for each party, according Vox Pop Labels models.",
1894                "mainEntityOfPage":"https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html",                
1895                "image":"https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/editorial/a/ab/aabac44d-1425-4727-a2e3-f59ed8f9c3e7/69e27918b973e.image.jpg?crop=1763%2C926%2C0%2C124&resize=1200%2C630&order=crop%2Cresize",
1896                
1897                    "isPartOf":{
1898                        "@type":["CreativeWork", "Product"],
1899                        "name":"Toronto Star",
1900                        "productID":"thestar.com:basic"
1901                    },
1902                
1903                "publisher":{
1904                    "@type":"NewsMediaOrganization","name":"Toronto Star",
1905                    "publishingPrinciples":"https://www.thestar.com/site/atkinson/atkinson-principles.html"},
1906                "author": [
1907                
1908                    
1909                        
1910                            {
1911                                "@type": "Person",
1912                                "name": ""
1913                            }
1914                        
1915                         
1916                        
1917                    
1918                ] 
1919            }
1920            
1921            </script>
1921
1922            
1923        
1923<script type="application/ld+json">
1924        {"@context":"https://schema.org","@type":"SpeakableSpecification","cssSelector":[".asset-header .headline", ".asset-content .subscriber-preview"],"url":"https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html?utm_source=speakable&utm_medium=push"}
1925        </script>
1925<!-- generics -->
1926<link rel="icon" type="image/x-icon" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/favicon.ico?_dc=1789580010">
1927<link rel="icon" type="image/png" sizes="32x32" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/favicon-32x32.png?_dc=1789580010">
1928<link rel="icon" type="image/png" sizes="96x96" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/favicon-96x96.png?_dc=1789580010">
1929<link rel="icon" type="image/png" sizes="192x192" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/android-icon-192x192.png?_dc=1789580010">
1930
1931<!-- Android -->
1932<link rel="shortcut icon" sizes="192x192" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/android-icon-192x192.png?_dc=1789580010">
1933
1934<!-- iOS -->
1935<link rel="apple-touch-icon" sizes="57x57" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-57x57.png?_dc=1789580010">
1936<link rel="apple-touch-icon" sizes="60x60" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-60x60.png?_dc=1789580010">
1937<link rel="apple-touch-icon" sizes="72x72" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-72x72.png?_dc=1789580010">
1938<link rel="apple-touch-icon" sizes="76x76" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-76x76.png?_dc=1789580010">
1939<link rel="apple-touch-icon" sizes="114x114" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-114x114.png?_dc=1789580010">
1940<link rel="apple-touch-icon" sizes="120x120" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-120x120.png?_dc=1789580010">
1941<link rel="apple-touch-icon" sizes="144x144" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-144x144.png?_dc=1789580010">
1942<link rel="apple-touch-icon" sizes="152x152" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-152x152.png?_dc=1789580010">
1943<link rel="apple-touch-icon" sizes="180x180" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/apple-icon-180x180.png?_dc=1789580010">
1944
1945
1946<!-- Windows 8 IE 10-->
1947<meta name="msapplication-TileColor" content="#FFFFFF">
1948<meta name="msapplication-TileImage" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/ms-icon-144x144.png?_dc=1789580010">
1949
1950<!— Windows 8.1 + IE11 and above —>
1951<meta name="msapplication-config" content="none"/>
1952<meta name="msapplication-TileColor" content="#006ed2" />
1953<meta name="msapplication-square70x70logo" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/ms-icon-70x70.png?_dc=1789580010" />
1954<meta name="msapplication-square150x150logo" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/ms-icon-150x150.png?_dc=1789580010" />
1955<meta name="msapplication-square310x310logo" content="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/favicons/thestar/ms-icon-310x310.png?_dc=1789580010" />
1956    
1957    
1958        
1959        <link rel="preconnect" href="https://bloximages.chicago2.vip.townnews.com">
1960        
1961    
1962    <link rel="preconnect" href="https://fonts.googleapis.com">
1963    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
1964    
1965    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=STIX+Two+Text:ital,wght@0,500;0,600;0,700;1,500;1,600;1,700&family=Frank+Ruhl+Libre:wght@300;400;500;600;700;800;900&family=Merriweather+Sans:ital,wght@0,400;0,500;0,600;0,700;0,800;1,400;1,500;1,600;1,700;1,800&display=swap">
1966    
1967    
1968    
1969    
1970    <style>
1971    
1972        
1973        :root {
1974          --site-bg-color: #f8f8f8;
1975          --content-bg-color: #f8f8f8;
1976          --content-text-color: #333;
1977          --body-text-color: #333333;
1978          --link-color: #333;
1979          --accent-color: #006ed2;
1980          --accent-color2: #006ed2;     
1981          --accent-color3: #0065a4;
1982          --accent-color4: #00548B;
1983          --accent-color2-community: #006633;     
1984          --accent-color3-community: #006633;  
1985          --nav-bg-color: #F8F8F8;
1986          --nav-link-color: #333;
1987          --top-bar-bg-color: #ffffff;
1988          --top-bar-link-color: #000;
1989          --masthead-bg-color: #ffffff;
1990          --footer-bg-color: #333;
1991          --footer-text-color: #fff; 
1992          --font-daily-serif: 'Frank Ruhl Libre', Times New Roman,Times,serif;
1993          --font-daily-serif-semi: 'Frank Ruhl Libre', Times New Roman,Times,serif;
1994          --font-daily-serif-bold: 'Frank Ruhl Libre', Times New Roman,Times,serif;    
1995          --font-daily-sans: 'Merriweather Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
1996          --font-daily-text: 'STIX Two Text',serif;      
1997          --font-daily-text-italic: 'STIX Two Text',serif;         
1998          --icon-alert-light: #B40404;
1999          --nav-home-display: none;
2000          --breaking-news-developing: #016ED2;
2001          --paywall-offer-bg: #00436a;
2002          --paywall-offer-bg-gradient: radial-gradient(circle, #00436a 0%, #00436a 100%);
2003          --site-logo-src: url("https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core_ext/resources/images/publication-logos/thestar_logo.png?_dc=1785951071");
2004          --site-logo-height: 40px;
2005          --site-logo-width: 380px;
2006          --site-logo-mobile-src: url("https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core_ext/resources/images/publication-logos/thestar_logo.png?_dc=1785951071");
2007          --site-logo-mobile-height: 20px;
2008          --site-logo-mobile-width: 190px;
2009          --captions-color1: #686868;
2010          --brand-star-hover: #00548B;
2011          --viafoura-badge-bg: #00436A;
2012          --subscriber-newsletter-label-border: #006ed2;
2013          --ai-summary-border-color: rgba(0, 110, 210, 0.5);
2014        }
2015        
2016    </style>
2017    
2018        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/navigation.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2019        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/navigation.css?_dc=1789580009"></noscript>
2020        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/pages.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2021        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/pages.css?_dc=1789580009"></noscript>
2022        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/blocks.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2023        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/blocks.css?_dc=1789580009"></noscript>
2024        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/utilities.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2025        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/utilities.css?_dc=1789580009"></noscript>
2026        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/global.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2027        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/global.css?_dc=1789580009"></noscript><link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/threecolheader.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2028            <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/threecolheader.css?_dc=1789580009"></noscript><link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/stn.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2029        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/stn.css?_dc=1789580009"></noscript>
2030        
2031                <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/star.article.personality.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2032                <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/star.article.personality.css?_dc=1789580009"></noscript>
2033                
2034            
2035            <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/quizzes.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2036            <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/quizzes.css?_dc=1789580009"></noscript>
2037        
2038        
2039        
2040        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/storypacks.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2041        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/storypacks.css?_dc=1789580009"></noscript>
2042        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_grid_layout/resources/styles/common/gridstorypacks.css?_dc=1789580012" as="style" onload="this.onload=null;this.rel='stylesheet'">
2043        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_grid_layout/resources/styles/common/gridstorypacks.css?_dc=1789580012"></noscript>
2044        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_grid_layout/resources/styles/common/common.css?_dc=1789580012" as="style" onload="this.onload=null;this.rel='stylesheet'">
2045        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_grid_layout/resources/styles/common/common.css?_dc=1789580012"></noscript>
2046        
2047        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/utilities.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2048        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/utilities.css?_dc=1789580009"></noscript>
2049        
2050        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/user-control
2050s.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2051        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/user-controls.css?_dc=1789580009"></noscript>
2052        
2053        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/icons.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2054        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/icons.css?_dc=1789580009"></noscript>
2055    
2056    
2057        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/staronly.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2058        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/staronly.css?_dc=1789580009"></noscript>
2059    
2060        <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/site/resources/styles/site.css?_dc=1671043982" as="style" onload="this.onload=null;this.rel='stylesheet'">
2061        <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/site/resources/styles/site.css?_dc=1671043982"></noscript>
2062    
2063    
2064    <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/oovvuu.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2065    <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/oovvuu.css?_dc=1789580009"></noscript>
2066    <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/primis.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
2067    <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/daily/primis.css?_dc=1789580009"></noscript>    
2068    
2069            <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core_ext/resources/styles/common/video.override.css?_dc=1785951071" as="style" onload="this.onload=null;this.rel='stylesheet'">
2070            <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core_ext/resources/styles/common/video.override.css?_dc=1785951071"></noscript>       
2071        
2072        </head>
2073        <body class="fluid fixed-scroll-nav app-editorial grid-ample blox-asset uuid-1337f598-2b2e-4b63-b5ee-0e923c663892  section-interactives type-article infinity-disabled" data-path="/interactives" data-authors='[]' data-asset-uuid="1337f598-2b2e-4b63-b5ee-0e923c663892">
2074	
2074<script type='text/javascript' src='/shared-content/art/stats/common/tracker.js'></script>
2074
2075	
2075<script type='text/javascript'>
2076	<!--
2077	if (typeof(TNStats_Tracker) !== 'undefined' && typeof(TNTracker) === 'undefined') { TNTracker = new TNStats_Tracker('www.thestar.com'); TNTracker.trackPageView(); }
2078	// -->
2079	</script>
2079
2080	<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-PDQV3N&amp;townnews.product.software=BLOX&amp;townnews.product.version=1.96.1&amp;townnews.crm.group_id=848&amp;townnews.content.id=1337f598-2b2e-4b63-b5ee-0e923c663892&amp;townnews.content.title=Just+how+popular+are+Carney%27s+Liberals+with+Canadian+voters%3F+Here%27s+what+the+polls+show+right+now&amp;townnews.content.type=article&amp;townnews.content.published_time=2026-05-21T17%3A00%3A00Z&amp;townnews.content.tags.0=%23federal_politics&amp;townnews.content.tags.1=%23starnewsroom&amp;townnews.content.tags.2=%23federal_election&amp;townnews.content.tags.3=%23polls&amp;townnews.content.tags.4=%23poll_tracker&amp;townnews.content.tags.5=%23the_signal&amp;townnews.content.tags.6=%23election_forecast&amp;townnews.content.tags.7=%23mark_carney&amp;townnews.content.tags.8=%23pierre_poilievre&amp;townnews.content.tags.9=%23starlock&amp;townnews.content.tags.10=%23conservative_party_of_canada&amp;townnews.content.tags.11=%23liberal_party_of_canada&amp;townnews.content.authors.0.id=8c39ea58-a2d8-11ed-8b9f-5753c0e7044b&amp;townnews.content.authors.0.eh=e1674abbd6d93cf2b5b0133bdd004bda220b5a8b4bdc247c39236fd31e20cb68&amp;townnews.content.authors.0.first_name=Vox+Pop+Labs&amp;townnews.content.taxonomies.blox_sections.ns=https%3A%2F%2Fwww.townnews.com%2Fns%2Fblox%2Fv1%2Ftags%2Fsection&amp;townnews.content.taxonomies.blox_sections.items.0=interactives&amp;townnews.content.taxonomies.blox_sections.items.1=politics%2Ffederal&amp;townnews.content.taxonomies.blox_flags.ns=https%3A%2F%2Fwww.townnews.com%2Fns%2Fblox%2Fv1%2Ftags%2Fflag&amp;townnews.content.metrics.image_count=1&amp;townnews.content.metrics.video_count=0&amp;townnews.content.metrics.audio_count=0&amp;townnews.content.metrics.word_count=347&amp;townnews.content.byline=&amp;tncms.template.version=3.155.0&amp;tncms.page.grid=ample&amp;tncms.page.style=none&amp;tncms.page.path=%2Finteractives&amp;tncms.page.syndicated=false&amp;tncms.page.reaction=false&amp;tncms.page.app=editorial&amp;tncms.page.theme=flex&amp;tncms.page.skin=flex-editorial&amp;tncms.page.http_status=200&amp;tncms.subscription.required=true&amp;tncms.asset.type=article&amp;tncms.asset.author=Vox+Pop+Labs&amp;tncms.asset.start_hour=13&amp;tncms.asset.id=1337f598-2b2e-4b63-b5ee-0e923c663892&amp;tncms.asset.app=editorial&amp;tncms.asset.ga_page=%2Finteractives%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html&amp;tncms.vendor.outbrain=disabled&amp;tncms.vendor.taboola=&amp;tncms.system.render_time=407&amp;tncms.client.is_bot=no&amp;tncms.client.is_gdpr=no&amp;tncms.client.noscript=yes" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
2081        <a href="#main-page-container" class="sr-only" onclick="document.getElementById('main-page-container').scrollIntoView(); return false">Skip to main content</a>
2082    
2083    <!-- Google Tag Manager (noscript) -->
2084    <noscript>
2085    <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WRSZQF8&gtm_auth=74eL4wQLYRNQ18AwQITlNA&gtm_preview=&gtm_cookies_win=x&noscript=true"
2086    height="0" width="0" style="display:none;visibility:hidden"></iframe>
2087    </noscript>
2088    <!-- End Google Tag Manager (noscript) -->
2089    
2090        
2091        
2092        <!-- Google Tag Manager -->
2093        
2093<script>
2094            var dataLayer = window.dataLayer || [];
2095            dataLayer.push(
2096                {'user_id': __tnt.user.screenName},
2097                {'user_state': __tnt.user.loggedIn ? 'logged in' : 'anonymous'},
2098                {'utm_label': __tnt.urlHash('utm_label')}
2099            );
2100        </script>
2100
2101        
2102        
2102<script>
2103            $(function(){
2104                var bloxServiceIDs = [];
2105                var bloxUserServiceIds = [];
2106                var dataLayer = window.dataLayer || [];
2107
2108                
2109
2110                if (__tnt.user.services){
2111                    var bloxUserServiceIDs = __tnt.user.services.replace('%2C',',').split(',');
2112                }
2113
2114                // GTM tncms.subscription.paid_access_service_ids
2115                if(bloxServiceIDs){
2116                    dataLayer.push({'tncms':{'subscription':{'access_service_ids':bloxServiceIDs.toString()}}});
2117                }
2118
2119                // GTM tncms.subscrption.user_service_ids
2120                if(bloxUserServiceIDs){
2121                    dataLayer.push({'tncms':{'subscription':{'user_service_ids':bloxUserServiceIDs.toString()}}});
2122                }
2123            });
2124        </script>
2124
2125        
2126        <div id="site-container"><div id="asset-contribute-bar" class="asset-edit-bar hidden-print">
2127                <div class="asset-edit-icon"><i class="fas tnt-certificate tnt-fw"></i></div>
2128                <div class="asset-edit-message">You are the owner of this article.</div>
2129                <div class="asset-edit-btns">
2130                    <a class="btn btn-primary btn-sm" href="https://www.thestar.com/users/admin/contribute/article/?assetid=1337f598-2b2e-4b63-b5ee-0e923c663892&assettype=article"><i class="fas tnt-pencil-alt tnt-fw"></i> Edit Article</a>
2131                    
2132                        <a class="btn btn-danger btn-sm" href="https://www.thestar.com/users/admin/contribute/article/?from_section=/interactives"><i class="fas tnt-plus tnt-fw"></i> Add New Article</a>
2133                    
2134                    <button class="asset-edit-close btn btn-link btn-sm"><i class="fas tnt-times"></i><span class="sr-only">Close</span></button>
2135                </div>
2136            </div><div id="asset-admin-bar" class="asset-edit-bar hidden-print">
2137                <div class="asset-edit-icon"><i class="fas tnt-lock-open tnt-fw"></i></div>
2138                <div class="asset-edit-message">You have permission to edit this article.</div>
2139                <div class="asset-edit-btns">
2140                    <a class="btn btn-primary btn-sm" target="_blank" rel="noopener nofollow" href="https://www.thestar.com/tncms/admin/editorial-asset/?edit=1337f598-2b2e-4b63-b5ee-0e923c663892"><i class="fas tnt-pencil-alt tnt-fw"></i> Edit</a>
2141                    <button class="asset-edit-close btn btn-link btn-sm"><i class="fas tnt-times"></i><span class="sr-only">Close</span></button>
2142                </div>
2143            </div>
2144        
2145
2146    
2147
2148    
2149
2150    
2151        
2152        
2153            <aside class="hidden-print offcanvas-drawer offcanvas-drawer-left visible-sm visible-xs" aria-label="Left Main Menu" aria-expanded="false" tabindex="-1" >
2154                <div id="tncms-region-mobile-nav-top-left-region" class="tncms-region "><div id="tncms-block-3699117" class="tncms-block">
2155<div class="mobileMenuToolsContainer">
2156    
2157    <div class="mobileMenuTopBar">
2158        <button aria-label="Close Mobile Menu" role="button" class="mobile-menu-close">
2159            <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 12 12" stroke="currentColor" stroke-width="1" stroke-linecap="round" width="24" height="24">
2160                <line x1="11" y1="1" x2="1" y2="11"></line>
2161                <line x1="1" y1="1" x2="11" y2="11"></line>
2162            </svg>
2163        </button>
2164        
2165        <div class="mobileLoginState">
2166            <span id='userStateButton' data-status='login'>Log In</span>
2167        
2168            <form id="user-mobile-logout-form" method="post" style="display:none" action="https://www.thestar.com/users/logout/" ><input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><input type="submit" name="logout" value="Logout" class="hide">
2169            </form>
2170            <form id="user-mobile-login-form" style="display:none" role="form" method="post" action="https://www.thestar.com/users/login/">
2171                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2172            </form>
2173            
2174            
2175            
2176            
2177        </div>
2178    </div>
2179    
2180    
2181    
2182    <a href="/about/">
2183        <img src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/media2/resources/images//proudly-canadian/proudly-canadian-owned.png?_dc=1789580007" alt="Proudly Canadian Owned Logo" class="proudlyCanadianMobileLogo"/>
2184    </a>
2185    
2186    
2187    
2188    <div class="mobileMenuLinks">
2189        
2190        
2191        </div>
2192</div></div><div id="tncms-block-3699120" class="tncms-block"><div id="weather-3699120" class="weather-current size-small pull-left">
2193    <ul class="list-unstyled">
2194        <li class="current-conditions ">
2195            <a href="/weather/?weather_zip=M7A1A2" class="dropdown-toggle"  aria-label="Weather">
2196                <span class="icon pull-left">
2197                    
2198                    <span class="fas tnt-wi-night-clear"></span>
2199                </span>
2200                <span class="pull-left temp-desc small">
2201                    <span class="temp">16&deg;</span>
2202                    
2203                </span>
2204                <span class="clearfix"></span>
2205
2206                
2207                    <span class="weather-date-separator">|</span>
2208                    <span class="weather-currentDate">Thursday, Sept. 24</span>
2209                
2210            </a>
2211            
2212        </li><li class="sponsor-line"><a href='https://ad.doubleclick.net/ddm/trackclk/N1381746.280442TORONTOSTAR/B36413023.454436571;dc_trk_aid=647942558;dc_trk_cid=261696611;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=;dc_tdv=1' sponsored' target='_blank' rel='noopener sponsored'><strong><u>Play Now! $60M</u></strong><strong><u> + $6MM</u></strong><img src='https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/editorial/9/62/962391b6-a783-4f5d-90fb-e2b416f33559/685808027fb7b.preview.png' class='img-responsive tnt-prop-img lazyloaded' alt='OLG Lottery'></a></li></ul>
2213</div>
2214
2215
2216    <div class="clearfix"></div>
2217<script>
2218        if(window.location.pathname.indexOf('subscribe') < 0) {
2219            window.weatherHeaderSponsorship = true;
2220            window.weatherSponsor = 'OLG Lottery';
2221        }
2222    </script>
2222<script>window.weatherSponsorURL = 'https://ad.doubleclick.net/ddm/trackclk/N1381746.280442TORONTOSTAR/B36413023.454436571;dc_trk_aid=647942558;dc_trk_cid=261696611;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=;dc_tdv=1'</script>
2222</div><div id="tncms-block-3699114" class="tncms-block">
2223<div class="mobileMenuToolsContainer">
2224    
2225    
2226    
2227    
2228    
2229    <div class="mobileMenuSearch">
2230         <div id='site-search-form-3699114' class="user-controls-search">
2231            <form id="site-search-3699114" aria-label="Site search" action="/search/" method="GET">
2232                <input type="hidden" name="l" value="25">
2233                <input type="hidden" name="s" value="">
2234                <input type="hidden" name="sd" value="desc">
2235                <input type="hidden" name="f" value="html">
2236                <input type="hidden" name="t" value="article,video,youtube,collection">
2237                <input type="hidden" name="app" value="editorial">
2238                <input type="hidden" name="nsa" value="eedition">
2239                <div id="site-search-form-3699114" class="site-search-form input-group form-control">
2240                    <label for="site-search-3699114-term" class="sr-only">Site search</label>
2241                    <input id="site-search-3699114-term" name="q" title="Site search" type="text" placeholder="Search..." class="form-control" autocomplete="off">
2242                    <input type="submit" class="hide" value="Search">
2243                    <span class="input-group-btn">
2244                        <button id="site-search-3699114-btn" class="btn btn-link" aria-label="Submit Site Search" type="submit">
2245                            <span class="hidden-xl hidden-lg hidden-md fas tnt-search"></span>
2246                            <span id="site-search-button-3699114" class="hidden-xs hidden-sm">Search</span>
2247                        </button>
2248                    </span>
2249                </div>
2250                <div class="user-controls-cancel-button">
2251                    <span id="search-cancel-3699114" aria-label="Clear Search">
2252                        <span class="fas tnt-times"></span>
2253                    </span>
2254                </div>
2255            </form>
2256            
2257        </div>
2258        
2259    </div>
2260    
2261    <div class="mobileMenuLinks">
2262        
2263        
2264        <div class="mobileMenuLink">
2265            <a tabindex="0"  href="/newsletters/?itm_source=newsletter-header-link" ><i class='fas tnt-envelope'></i>Newsletters</a>
2266        </div>
2267        
2268        
2269        
2270        <div class="mobileMenuLink">
2271            <a tabindex="0" class="epaper"  href="https://waterloorecord.pressreader.com/"  target="_blank" rel="noopener"><i class="fas tnt-file"></i>Today's paper</a>
2272        </div>
2273        
2274        </div>
2275</div></div></div>
2276                <div id="mobile-primary-panel">
2277        <div id="tncms-region-nav-mobile-nav-left" class="tncms-region-nav"><div id="mobile-nav-left_menu" class="panel-group nav navbar-nav" role="tablist" aria-hidden="true"><div class="panel panel-default ">
2278                    <div class="panel-heading" role="tab">
2279                        <div class="panel-title"><a tabindex="-1" aria-hidden="true" href="/"  class="nav-link tnt-section-home  ">Home</a>
2280                        </div>
2281                    </div></div><div class="panel panel-default ">
2282                    <div class="panel-heading" role="tab">
2283                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-2" data-target="#mobile-nav-left_menu-child-2">
2284                                    <i class="fas tnt-chevron-down"></i>
2285                                </span><a tabindex="-1" aria-hidden="true" href="/news/gta/"  class="nav-link tnt-section-gta  ">GTA</a>
2286                        </div>
2287                    </div><ul id="mobile-nav-left_menu-child-2" class="collapse nav navbar-nav">
2288                                <li>
2289                                    <a tabindex="-1" aria-hidden="true" href="https://readerschoice.thestar.com/readerschoice-toronto/"  target="_blank" rel="noopener" class="nav-link tnt-section-readers-choice-awards ">Readers’ Choice Awards</a>
2290                                    
2291                                </li></ul></div><div class="panel panel-default ">
2292                    <div class="panel-heading" role="tab">
2293                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-3" data-target="#mobile-nav-left_menu-child-3">
2294                                    <i class="fas tnt-chevron-down"></i>
2295                                </span><a tabindex="-1" aria-hidden="true" href="/news/canada/"  class="nav-link tnt-section-canada  ">Canada</a>
2296                        </div>
2297                    </div><ul id="mobile-nav-left_menu-child-3" class="collapse nav navbar-nav">
2298                                <li>
2299                                    <a tabindex="-1" aria-hidden="true" href="/news/ontario/"  class="nav-link tnt-section-ontario ">Ontario</a>
2300                                    
2301                                </li>
2302                                <li>
2303                                    <a tabindex="-1" aria-hidden="true" href="/news/canada/british-columbia/"  class="nav-link tnt-section-british-columbia ">British Columbia</a>
2304                                    
2305                                </li>
2306                                <li>
2307                                    <a tabindex="-1" aria-hidden="true" href="/news/canada/alberta/"  class="nav-link tnt-section-alberta ">Alberta</a>
2308                                    
2309                                </li>
2310                                <li>
2311                                    <a tabindex="-1" aria-hidden="true" href="/news/canada/quebec/"  class="nav-link tnt-section-quebec ">
2311Quebec</a>
2312                                    
2313                                </li>
2314                                <li>
2315                                    <a tabindex="-1" aria-hidden="true" href="/news/canada/nova-scotia/"  class="nav-link tnt-section-nova-scotia ">Nova Scotia</a>
2316                                    
2317                                </li></ul></div><div class="panel panel-default ">
2318                    <div class="panel-heading" role="tab">
2319                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-4" data-target="#mobile-nav-left_menu-child-4">
2320                                    <i class="fas tnt-chevron-down"></i>
2321                                </span><a tabindex="-1" aria-hidden="true" href="/politics/"  class="nav-link tnt-section-politics  ">Politics</a>
2322                        </div>
2323                    </div><ul id="mobile-nav-left_menu-child-4" class="collapse nav navbar-nav">
2324                                <li>
2325                                    <a tabindex="-1" aria-hidden="true" href="/politics/federal/"  class="nav-link tnt-section-federal-politics ">Federal Politics</a>
2326                                    
2327                                </li>
2328                                <li>
2329                                    <a tabindex="-1" aria-hidden="true" href="/politics/provincial/"  class="nav-link tnt-section-provincial-politics ">Provincial Politics</a>
2330                                    
2331                                </li>
2332                                <li>
2333                                    <a tabindex="-1" aria-hidden="true" href="/politics/political-opinion/"  class="nav-link tnt-section-political-opinion ">Political Opinion</a>
2334                                    
2335                                </li></ul></div><div class="panel panel-default ">
2336                    <div class="panel-heading" role="tab">
2337                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-5" data-target="#mobile-nav-left_menu-child-5">
2338                                    <i class="fas tnt-chevron-down"></i>
2339                                </span><a tabindex="-1" aria-hidden="true" href="/news/world/"  class="nav-link tnt-section-world  ">World</a>
2340                        </div>
2341                    </div><ul id="mobile-nav-left_menu-child-5" class="collapse nav navbar-nav">
2342                                <li>
2343                                    <a tabindex="-1" aria-hidden="true" href="/news/world/united-states/"  class="nav-link tnt-section-united-states ">United States</a>
2344                                    
2345                                </li>
2346                                <li>
2347                                    <a tabindex="-1" aria-hidden="true" href="/news/world/americas/"  class="nav-link tnt-section-americas ">Americas</a>
2348                                    
2349                                </li>
2350                                <li>
2351                                    <a tabindex="-1" aria-hidden="true" href="/news/world/europe/"  class="nav-link tnt-section-europe ">Europe</a>
2352                                    
2353                                </li>
2354                                <li>
2355                                    <a tabindex="-1" aria-hidden="true" href="/news/world/asia/"  class="nav-link tnt-section-asia ">Asia</a>
2356                                    
2357                                </li>
2358                                <li>
2359                                    <a tabindex="-1" aria-hidden="true" href="/news/world/africa/"  class="nav-link tnt-section-africa ">Africa</a>
2360                                    
2361                                </li>
2362                                <li>
2363                                    <a tabindex="-1" aria-hidden="true" href="/news/world/australia/"  class="nav-link tnt-section-australia ">Australia</a>
2364                                    
2365                                </li>
2366                                <li>
2367                                    <a tabindex="-1" aria-hidden="true" href="/news/world/middle-east/"  class="nav-link tnt-section-middle-east ">Middle East</a>
2368                                    
2369                                </li></ul></div><div class="panel panel-default ">
2370                    <div class="panel-heading" role="tab">
2371                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-6" data-target="#mobile-nav-left_menu-child-6">
2372                                    <i class="fas tnt-chevron-down"></i>
2373                                </span><a tabindex="-1" aria-hidden="true" href="/opinion/"  class="nav-link tnt-section-opinion  ">Opinion</a>
2374                        </div>
2375                    </div><ul id="mobile-nav-left_menu-child-6" class="collapse nav navbar-nav">
2376                                <li>
2377                                    <a tabindex="-1" aria-hidden="true" href="/opinion/star-columnists/"  class="nav-link tnt-section-star-columnists ">Star Columnists</a>
2378                                    
2379                                </li>
2380                                <li>
2381                                    <a tabindex="-1" aria-hidden="true" href="/opinion/editorials/"  class="nav-link tnt-section-editorials ">Editorials</a>
2382                                    
2383                                </li>
2384                                <li>
2385                                    <a tabindex="-1" aria-hidden="true" href="/opinion/contributors/"  class="nav-link tnt-section-contributors ">Contributors</a>
2386                                    
2387                                </li>
2388                                <li>
2389                                    <a tabindex="-1" aria-hidden="true" href="/opinion/letters-to-the-editor/"  class="nav-link tnt-section-letters-to-the-editor ">Letters To The Editor</a>
2390                                    
2391                                </li>
2392                                <li>
2393                                    <a tabindex="-1" aria-hidden="true" href="/opinion/editorial-cartoons/"  class="nav-link tnt-section-editorial-cartoons ">Editorial Cartoons</a>
2394                                    
2395                                </li></ul></div><div class="panel panel-default ">
2396                    <div class="panel-heading" role="tab">
2397                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-7" data-target="#mobile-nav-left_menu-child-7">
2398                                    <i class="fas tnt-chevron-down"></i>
2399                                </span><a tabindex="-1" aria-hidden="true" href="/life/"  class="nav-link tnt-section-life  ">Life</a>
2400                        </div>
2401                    </div><ul id="mobile-nav-left_menu-child-7" class="collapse nav navbar-nav">
2402                                <li>
2403                                    <a tabindex="-1" aria-hidden="true" href="/life/relationships/"  class="nav-link tnt-section-relationships ">Relationships</a>
2404                                    
2405                                </li>
2406                                <li>
2407                                    <a tabindex="-1" aria-hidden="true" href="/life/food-and-drink/"  class="nav-link tnt-section-food-and-drink ">Food and Drink</a>
2408                                    
2409                                </li>
2410                                <li>
2411                                    <a tabindex="-1" aria-hidden="true" href="/life/home-and-garden/"  class="nav-link tnt-section-home-and-garden ">Home and Garden</a>
2412                                    
2413                                </li>
2414                                <li>
2415                                    <a tabindex="-1" aria-hidden="true" href="/life/beauty-and-fashion/"  class="nav-link tnt-section-beauty-and-fashion ">Beauty and Fashion</a>
2416                                    
2417                                </li>
2418                                <li>
2419                                    <a tabindex="-1" aria-hidden="true" href="/life/health-wellness/"  class="nav-link tnt-section-health ">Health</a>
2420                                    
2421                                </li>
2422                                <li>
2423                                    <a tabindex="-1" aria-hidden="true" href="/life/travel/"  class="nav-link tnt-section-travel ">Travel</a>
2424                                    
2425                                </li>
2426                                <li>
2427                                    <a tabindex="-1" aria-hidden="true" href="/life/autos/"  class="nav-link tnt-section-autos ">Autos</a>
2428                                    
2429                                </li>
2430                                <li>
2431                                    <a tabindex="-1" aria-hidden="true" href="/life/horoscopes/"  class="nav-link tnt-section-horoscopes ">Horoscopes</a>
2432                                    
2433                                </li>
2434                                <li>
2435                                    <a tabindex="-1" aria-hidden="true" href="https://obituaries.thestar.com/"  target="_blank" rel="noopener" class="nav-link tnt-section-obituaries ">Obituaries</a>
2436                                    
2437                                </li></ul></div><div class="panel panel-default ">
2438                    <div class="panel-heading" role="tab">
2439                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-8" data-target="#mobile-nav-left_menu-child-8">
2440                                    <i class="fas tnt-chevron-down"></i>
2441                                </span><a tabindex="-1" aria-hidden="true" href="/sports/"  class="nav-link tnt-section-sports  ">Sports</a>
2442                        </div>
2443                    </div><ul id="mobile-nav-left_menu-child-8" class="collapse nav navbar-nav">
2444                                <li>
2445                                    <a tabindex="-1" aria-hidden="true" href="/sports/hockey/"  class="nav-link tnt-section-nhl ">NHL</a>
2446                                    
2447                                </li>
2448                                <li>
2449                                    <a tabindex="-1" aria-hidden="true" href="/sports/basketball/"  class="nav-link tnt-section-nba ">NBA</a>
2450                                    
2451                                </li>
2452                                <li>
2453                                    <a tabindex="-1" aria-hidden="true" href="/sports/baseball/"  class="nav-link tnt-section-mlb ">MLB</a>
2454                                    
2455                                </li>
2456                                <li>
2457                                    <a tabindex="-1" aria-hidden="true" href="/sports/football/"  class="nav-link tnt-section-nfl ">NFL</a>
2458                                    
2459                                </li>
2460                                <li>
2461                                    <a tabindex="-1" aria-hidden="true" href="/sports/football/cfl/"  class="nav-link tnt-section-cfl ">CFL</a>
2462                                    
2463                                </li>
2464                                <li>
2465                                    <a tabindex="-1" aria-hidden="true" href="/sports/sports-betting/"  class="nav-link tnt-section-sports-betting ">Sports Betting</a>
2466                                    
2467                                </li>
2468                                <li>
2469                                    <a tabindex="-1" aria-hidden="true" href="/sports/golf/"  class="nav-link tnt-section-golf ">Golf</a>
2470                                    
2471                                </li>
2472                                <li>
2473                                    <a tabindex="-1" aria-hidden="true" href="/sports/soccer/"  class="nav-link tnt-section-soccer ">Soccer</a>
2474                                    
2475                                </li>
2476                                <li>
2477                                    <a tabindex="-1" aria-hidden="true" href="/sports/tennis/"  class="nav-link tnt-section-tennis ">Tennis</a>
2478                                    
2479                                </li>
2480                                <li>
2481                                    <a tabindex="-1" aria-hidden="true" href="/sports/auto-racing/"  class="nav-link tnt-section-auto-racing ">Auto Racing</a>
2482                                    
2483                                </li>
2484                                <li>
2485                                    <a tabindex="-1" aria-hidden="true" href="/sports/cricket/"  class="nav-link tnt-section-cricket ">Cricket</a>
2486                                    
2487                                </li>
2488                                <li>
2489                                    <a tabindex="-1" aria-hidden="true" href="/sports/olympics-and-paralympics/"  class="nav-link tnt-section-olympics-and-paralympics ">Olympics and Paralympics</a>
2490                                    
2491                                </li></ul></div><div class="panel panel-default ">
2492                    <div class="panel-heading" role="tab">
2493                        <div class="panel-title"><a tabindex="-1" aria-hidden="true" href="/real-estate/"  class="nav-link tnt-section-real-estate  ">Real Estate</a>
2494                        </div>
2495                    </div></div><div class="panel panel-default ">
2496                    <div class="panel-heading" role="tab">
2497                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-10" data-target="#mobile-nav-left_menu-child-10">
2498                                    <i class="fas tnt-chevron-down"></i>
2499                                </span><a tabindex="-1" aria-hidden="true" href="/entertainment/"  class="nav-link tnt-section-entertainment  ">Entertainment</a>
2500                        </div>
2501                    </div><ul id="mobile-nav-left_menu-child-10" class="collapse nav navbar-nav">
2502                                <li>
2503                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/television/"  class="nav-link tnt-section-television ">Television</a>
2504                                    
2505                                </li>
2506                                <li>
2507                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/music/"  class="nav-link tnt-section-music ">Music</a>
2508                                    
2509                                </li>
2510                                <li>
2511                                    <a tabindex="-1" aria-hidden="true" href="https://www.thestar.com/entertainment/music/taylor-swift/"  target="_blank" rel="noopener" class="nav-link tnt-section-taylor-swift ">Taylor Swift</a>
2512                                    
2513                                </li>
2514                                <li>
2515                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/books/"  class="nav-link tnt-section-books ">Books</a>
2516                                    
2517                                </li>
2518                                <li>
2519                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/movies/"  class="nav-link tnt-section-movies ">Movies</a>
2520                                    
2521                                </li>
2522                                <li>
2523                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/stage/"  class="nav-link tnt-section-stage ">Stage</a>
2524                                    
2525    
2525                            </li>
2526                                <li>
2527                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/visual-arts/"  class="nav-link tnt-section-visual-arts ">Visual Arts</a>
2528                                    
2529                                </li>
2530                                <li>
2531                                    <a tabindex="-1" aria-hidden="true" href="https://diversions.thestar.com/"  target="_blank" rel="noopener" class="nav-link tnt-section-fun-games ">Fun & Games</a>
2532                                    
2533                                </li>
2534                                <li>
2535                                    <a tabindex="-1" aria-hidden="true" href="https://diversions.thestar.com/comics.html"  target="_blank" rel="noopener" class="nav-link tnt-section-comics ">Comics</a>
2536                                    
2537                                </li>
2538                                <li>
2539                                    <a tabindex="-1" aria-hidden="true" href="/entertainment/tv-listings/"  class="nav-link tnt-section-tv-listings ">TV Listings</a>
2540                                    
2541                                </li></ul></div><div class="panel panel-default ">
2542                    <div class="panel-heading" role="tab">
2543                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-11" data-target="#mobile-nav-left_menu-child-11">
2544                                    <i class="fas tnt-chevron-down"></i>
2545                                </span><a tabindex="-1" aria-hidden="true" href="/business/"  class="nav-link tnt-section-business  ">Business</a>
2546                        </div>
2547                    </div><ul id="mobile-nav-left_menu-child-11" class="collapse nav navbar-nav">
2548                                <li>
2549                                    <a tabindex="-1" aria-hidden="true" href="/business/small-business/"  class="nav-link tnt-section-small-business ">Small Business</a>
2550                                    
2551                                </li>
2552                                <li>
2553                                    <a tabindex="-1" aria-hidden="true" href="/business/technology/"  class="nav-link tnt-section-technology ">Technology</a>
2554                                    
2555                                </li>
2556                                <li>
2557                                    <a tabindex="-1" aria-hidden="true" href="/business/personal-finance/"  class="nav-link tnt-section-personal-finance ">Personal Finance</a>
2558                                    
2559                                </li>
2560                                <li>
2561                                    <a tabindex="-1" aria-hidden="true" href="/business/mars/"  class="nav-link tnt-section-innovation ">Innovation</a>
2562                                    
2563                                </li></ul></div><div class="panel panel-default ">
2564                    <div class="panel-heading" role="tab">
2565                        <div class="panel-title"><span tabindex="-1" aria-hidden="true" data-toggle="collapse" class="expand-children collapsed pull-right" aria-expanded="false" aria-controls="mobile-nav-left_menu-child-12" data-target="#mobile-nav-left_menu-child-12">
2566                                    <i class="fas tnt-chevron-down"></i>
2567                                </span><a tabindex="-1" aria-hidden="true" href="/podcasts/"  class="nav-link tnt-section-podcasts  ">Podcasts</a>
2568                        </div>
2569                    </div><ul id="mobile-nav-left_menu-child-12" class="collapse nav navbar-nav">
2570                                <li>
2571                                    <a tabindex="-1" aria-hidden="true" href="/podcasts/this-matters/"  class="nav-link tnt-section-this-matters ">This Matters</a>
2572                                    
2573                                </li>
2574                                <li>
2575                                    <a tabindex="-1" aria-hidden="true" href="/podcasts/its-political/"  class="nav-link tnt-section-it-s-political ">It’s Political</a>
2576                                    
2577                                </li>
2578                                <li>
2579                                    <a tabindex="-1" aria-hidden="true" href="/podcasts/billionaire-murders/"  class="nav-link tnt-section-the-billionaire-murders ">The Billionaire Murders</a>
2580                                    
2581                                </li>
2582                                <li>
2583                                    <a tabindex="-1" aria-hidden="true" href="/podcasts/deep-left-field/"  class="nav-link tnt-section-deep-left-field ">Deep Left Field </a>
2584                                    
2585                                </li></ul></div><div class="panel panel-default ">
2586                    <div class="panel-heading" role="tab">
2587                        <div class="panel-title"><a tabindex="-1" aria-hidden="true" href="/news/investigations/"  class="nav-link tnt-section-investigations  ">Investigations</a>
2588                        </div>
2589                    </div></div></div></div>
2590        
2591        
2592        <div id="tncms-region-mobile-nav-bottom-left-region" class="tncms-region "></div>
2593    </div>
2594    <div id="mobile-secondary-panel" style="display:none !important">
2595        
2596    </div>
2597            </aside> 
2598        
2599        
2600
2601        <div class="offcanvas-inner">
2602            <div class="offcanvas-close-btn hidden-md hidden-lg"></div>
2603    
2604    
2605    
2606    
2607    
2608    
2609
2610    
2611        <div id="site-top-nav-container" class="hidden-sm hidden-xs hidden-print">
2612            <header id="site-top-nav" class="container_fluid">
2613                <div class="row">
2614                    <div id="topbar-col-one" class="col-md-4 col-sm-4"><div id="tncms-region-topbar-col-one" class="tncms-region "><div id="tncms-block-3699123" class="tncms-block"><div id="weather-3699123" class="weather-current size-small pull-left">
2615    <ul class="list-unstyled">
2616        <li class="current-conditions ">
2617            <a href="/weather/?weather_zip=M7A1A2" class="dropdown-toggle"  aria-label="Weather">
2618                <span class="icon pull-left">
2619                    
2620                    <span class="fas tnt-wi-night-clear"></span>
2621                </span>
2622                <span class="pull-left temp-desc small">
2623                    <span class="temp">16&deg;</span>
2624                    
2625                </span>
2626                <span class="clearfix"></span>
2627
2628                
2629                    <span class="weather-date-separator">|</span>
2630                    <span class="weather-currentDate">Thursday, Sept. 24</span>
2631                
2632            </a>
2633            
2634        </li><li class="sponsor-line"><a href='https://ad.doubleclick.net/ddm/trackclk/N1381746.280442TORONTOSTAR/B36413023.454436571;dc_trk_aid=647942558;dc_trk_cid=261696611;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=;dc_tdv=1' sponsored' target='_blank' rel='noopener sponsored'><strong><u>Play Now! $60M</u></strong><strong><u> + $6MM</u></strong><img src='https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/assets/v3/editorial/9/62/962391b6-a783-4f5d-90fb-e2b416f33559/685808027fb7b.preview.png' class='img-responsive tnt-prop-img lazyloaded' alt='OLG Lottery'></a></li></ul>
2635</div>
2636
2637
2638    <div class="clearfix"></div>
2639<script>
2640        if(window.location.pathname.indexOf('subscribe') < 0) {
2641            window.weatherHeaderSponsorship = true;
2642            window.weatherSponsor = 'OLG Lottery';
2643        }
2644    </script>
2644<script>window.weatherSponsorURL = 'https://ad.doubleclick.net/ddm/trackclk/N1381746.280442TORONTOSTAR/B36413023.454436571;dc_trk_aid=647942558;dc_trk_cid=261696611;dc_lat=;dc_rdid=;tag_for_child_directed_treatment=;tfua=;ltd=;dc_tdv=1'</script>
2644</div></div></div>
2645    <div id="topbar-col-two" class="col-md-4 col-sm-4"><div id="tncms-region-topbar-col-two" class="tncms-region "><div id="tncms-block-3140365" class="tncms-block">
2646<style>
2647.site-logo-desktop {
2648    background-image: var(--site-logo-src);
2649    height: var(--site-logo-height);
2650    width: var(--site-logo-width);
2651    background-size:cover;
2652    display:block;
2653}
2654#topbar-col-two #tncms-region-topbar-col-two {
2655    margin: 0 !important;
2656}
2657 @media (max-width: 992px) {
2658    .site-logo-desktop {
2659        background-image: var(--site-logo-mobile-src);
2660        height: var(--site-logo-mobile-height);
2661        width: var(--site-logo-mobile-width);
2662        background-size:cover;
2663        display:block;
2664    }
2665 }
2666 @media (min-width: 993px) {
2667     #topbar-col-two {
2668         padding-top: 12px !important;
2669     }
2670 }
2671 @media (max-width: 411px) {
2672    .site-logo-desktop {
2673        height: 17px;
2674        width: 157px;
2675        background-size:cover;
2676        display:block;
2677    }
2678    .user-promo-button {
2679        margin-right: 8px !important;
2680        margin-left: 8px !important;
2681    }
2682 }
2683
2684 @media (min-width: 993px) and (max-width: 1080px) {
2685    .site-logo-desktop {
2686        height: 34px !important;
2687        width: 320px !important;
2688    }
2689 }
2690</style>
2691<div class="site-logo-container text-left siteUserHeader-desktop" style="height:40px;">
2692    <div class="logo-middle">
2693        <a id="siteUserHeaderHref-desktop" title="Toronto Star" href="/" aria-label="Home page" class="site-logo-desktop"></a>
2694    </div>
2695</div></div></div></div>
2696    <div id="topbar-col-three" class="col-md-4 col-sm-4"><div id="tncms-region-topbar-col-three" class="tncms-region "><div id="tncms-block-2841699" class="tncms-block">
2697<div class="user-controls">
2698    <div id="user-controls-2841699" class="user-controls-main" style="position:relative;z-index:1010">
2699        
2700        
2701        <div id="user-promo-2841699" class="user-promo">
2702            
2703            <div class="user-promo-desktop left">
2704                
2705                <div class="anonymous hidden">
2706                        
2707                    <div data-type='danon' class="user-promo-button">
2708                        <a href="https://www.thestar.com/subscribe/trial-purchase/">
2709                        <div class="line1">Try Us</div>
2710                        <div class="line2">7-Day Trial</div>
2711                        </a>
2712                    </div>
2713                </div>
2714                
2715                
2716                <div class="registered hidden">
2717                    
2718                    <div data-type='dreg' class="user-promo-button">
2719                        <a href="https://www.thestar.com/subscribe/?sub_referrer=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2720                        <div class="line1">SALE: Only $1</div>
2721                        <div class="line2">Subscribe Now</div>
2722                        </a>
2723                    </div>
2724                </div>
2725                
2726                
2727                <div class="subscriber hidden">
2728                    <div data-type='dsub' class="user-promo-button">
2729                        <a href="https://www.thestar.com/newsletters/?itm_source=newsletter-header-link">
2730                        <div class="line1">Newsletters</div>
2731                        
2732                        </a>
2733                    </div>
2734                </div>
2735                
2736            </div>
2737            
2738        </div>
2739        
2740        <div id="user-control-panel-2841699" class="user-login-panel header">
2741            <button class="btn btn-secondary dropdownMenuButton loggedout" aria-label="sign in" type="button" id="userControlPanel-2841699" 
2742                data-placement="header" data-status="closed" data-user="loggedout">
2743                <span class="userName">Sign In</span>
2744                <span class="userIconSpan icon-guest"></span>
2745                <i class="userPanelIndicator fas tnt-chevron-down"></i>
2746            </button>
2747            <div class="user-controls-menu closed" aria-label="User menu">
2748                    <ul role="menu"> 
2749                        
2750                            <li class="user-controls-dropdown-user-email" role="menuitem" id="user-email-2841699"></li>
2751                        
2752                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/" aria-label="Manage Profile" rel="nofollow">Manage Profile<i class="fas tnt-chevron-right"></i></a></li>
2753                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/" aria-label="Subscriptions" rel="nofollow">Subscriptions<i class="fas tnt-chevron-right"></i></a></li>
2754                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/?view=transactions" aria-label="Billing Information"  rel="nofollow">Billing Information<i class="fas tnt-chevron-right"></i></a></li>
2755                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/list/" rel="nofollow" aria-label="Saved Articles">Saved Articles<i class="fas tnt-chevron-right"></i></a></li>
2756                        
2757                        <li role="menuitem"><a class="dropdown-item" href="/newsletters/" aria-label="Newsletters" >Newsletters<i class="fas tnt-chevron-right"></i></a></li>
2758                        
2759                        <li role="menuitem"><a class="dropdown-item" href="/site/notifications/" aria-label="Notifications" >Notifications<i class="fas tnt-chevron-right"></i></a></li>
2760                        
2761                        
2762                        
2763                            <li role="menuitem" id="sub-perks-2841699" style="display: none;"><a class="dropdown-item" href="/site/benefits?itm_source=benefits-menu" aria-label="Subscriber Perks">Subscriber Perks<i class="fas tnt-chevron-right"></i></a></li>
2764                        
2765                        
2766                        
2767                            <li role="menuitem" id="archives-2841699" style="display: none;">
2768                                <a class="dropdown-item" href="/newspapers/" rel="nofollow" aria-label="Archives" >
2769                                    Archives
2770                                </a>
2771                            </li>
2772                        
2773                        
2774                        <li>
2775                            <a class="dropdown-item logout-btn" id="logout-2841699" onclick="handleUserLogout2841699()" rel="nofollow" role="menuitem" aria-label="Logout" >
2776                                Sign out
2777                            </a>
2778                        </li>
2779                    </ul>
2780            </div>
2781              
2782              
2783            <form id="user-login-form-2841699" style="display:none" role="form" method="post" action="https://www.thestar.com/users/login/">
2784                <input type="hidden" name="x_org_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2785                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2786                <input type="hidden" name="username" value="provider:Metroland Hub">
2787                <input type="hidden" name="site" value="thestar.com">
2788            </form>
2789            
2790            <form id="user-local-logout-form-2841699" method="post" style="display:block" action="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" >
2791                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2792                <input type="submit" name="logout" value="Logout" class="hide">
2793            </form>
2794            <form id="user-remote-logout-form-2841699" method="post" action="https://www.thestar.com/tncms/auth/logout/"><input type="hidden" name="return" value="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><input type="submit" name="logout" value="Logout" class="hide">
2795            </form>
2796        
2797        </div><!-- closing user-login-panel -->
2798        
2799        
2800        
2801        <div class="user-controls-search-button">
2802            <button id="search-toggle-2841699" aria-label="Search">
2803                <span class="fas tnt-search"></span>
2804            </button>
2805        </div>
2806        
2807    </div><!--closing user controls main -->
2808
2809
2810    
2811
2812     <div id='site-search-form-2841699' class="user-controls-search" style="display:none";>
2813        <form id="site-search-header" aria-label="Site search" action="/search/" method="GET" >
2814            <input type="hidden" name="l" value="25">
2815                <input type="hidden" name="s" value="start_time">
2816                <input type="hidden" name="sd" value="desc">
2817            
2818            
2819            
2820                <input type="hidden" name="d1" value="">
2821            
2822            <input type="hidden" name="f" value="html">
2823            
2824                <input type="hidden" name="t" value="article,video,youtube,collection">
2825            
2826            <input type="hidden" name="app" value="editorial">
2827            <input type="hidden" name="nsa" value="eedition">
2828            <div id="site-search-form-2841699" class="site-search-form input-group   ">
2829                <label for="site-search-2841699-term" class="sr-only">Site search</label>
2830                <input id="site-search-2841699-term" name="q" title="Site search" type="text" placeholder="Search..." class="form-control" autocomplete="off">
2831                <input type="submit" class="hide" value="Search">
2832                <span class="input-group-btn">
2833                    <button id="site-search-2841699-btn" class="btn btn-primary" aria-label="Submit Site Search" type="submit">
2834                        <span class="hidden-xl hidden-lg hidden-md fas tnt-search"></span>
2835                        <span id="site-search-button-2841699" class="hidden-xs hidden-sm">Search</span>
2836                    </button>
2837                </span>
2838            </div>
2839            <div class="user-controls-cancel-button">
2840                <span id="search-cancel-2841699" aria-label="Cancel Search">
2841                    <span class="fas tnt-times"></span>
2842                </span>
2843            </div>
2844        </form>
2845        
2846    </div>
2847    
2848
2849</div><!-- closing user controls --></div></div><div id="tncms-region-nav-topbar-col-three-nav" class="tncms-region-nav"><ul id="topbar-col-three-nav_menu" class="topNav list-inline nav-list" ><li class=" "  data-cmspath="/interactives" data-liurl="/site/about/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2850                
2851                <a class="nav-link   tnt-section-span-aria-label-proudly-canadian-span"  href="/site/about/"  tabindex="0">
2852                    <span class="nav-label "><span aria-label="Proudly Canadian"></span></span>
2853                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/newsletters/?itm_source=newsletter-header-link" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2854                
2855                <a class="nav-link   tnt-section-i-class-fas-tnt-envelope-i-newsletters"  href="/newsletters/?itm_source=newsletter-header-link"  tabindex="0">
2856                    <span class="nav-label "><i class="fas tnt-envelope"></i> Newsletters</span>
2857                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://torontostar.pressreader.com/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
2858                
2859                <a class="nav-link   tnt-section-i-class-fas-tnt-file-alt-i-today-s-paper"  href="https://torontostar.pressreader.com/"  target="_blank" rel="noopener" tabindex="0">
2860                    <span class="nav-label "><i class="fas tnt-file-alt"></i> Today’s Paper</span>
2861                </a></li></ul><style>
2862            .affix-top #tncms-region-main-nav-right-region{display: none}
2863            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
2864            @media (max-width: 991px){
2865            #main-navigation{height: 45px}
2866            }
2867            
2868        </style>
2869    </div></div>
2870                </div>
2871            </header>
2872        </div>
2873    
2874
2875    
2876        <div id="site-header-container" class="hidden-sm hidden-xs hidden-print">
2877            <header id="site-header" class="container_fluid" role="banner">
2878                
2879                <div class="row">
2880                    <div id="masthead-full-top" class="col-lg-12"><div id="tncms-region-masthead-full-top" class="tncms-region "></div></div>
2881                </div>
2882                <div class="row">
2883                    
2884                    <div id="masthead-col-one" class="col-md-4 col-sm-4"><div id="tncms-region-masthead-col-one" class="tncms-region "><div id="tncms-block-3687831" class="tncms-block"><div id="weather-3687831" class="weather-current size-small pull-left">
2885    <ul class="list-unstyled">
2886        <li class="current-conditions ">
2887            <a href="/weather/?weather_zip=M7A1A2" class="dropdown-toggle"  aria-label="Weather">
2888                <span class="icon pull-left">
2889                    
2890                    <span class="fas tnt-wi-night-clear"></span>
2891                </span>
2892                <span class="pull-left temp-desc small">
2893                    <span class="temp">16&deg;</span>
2894                    
2895                </span>
2896                <span class="clearfix"></span>
2897
2898                
2899            </a>
2900            
2901        </li></ul>
2902</div>
2903
2904    <div class="clearfix"></div>
2905</div></div></div>
2906    <div id="masthead-col-two" class="col-md-4 col-sm-4"><div id="tncms-region-masthead-col-two" class="tncms-region "></div></div>
2907    <div id="masthead-col-three" class="col-md-4 col-sm-4"><div id="tncms-region-masthead-col-three" class="tncms-region "></div></div>
2908                </div>
2909                <div class="row">
2910                    <div id="masthead-full-bottom" class="col-lg-12"><div id="tncms-region-masthead-full-bottom" class="tncms-region "></div></div>
2911                </div>
2912                
2913            </header>
2914        </div>
2915    
2916
2917    
2918    
2919        <div id="site-navbar-container" class="hidden-print affix-top">
2920            <div id="tncms-region-affix-nav-brand" class="tncms-region "><div id="tncms-block-2828682" class="tncms-block sm-brand hidden-sm hidden-xs"><div id="site-logo-2828682" class="site-logo-container text-center" ><div class="logo-middle">
2921            <a  href="/" aria-label="Home page"><img 
2922            
2923            src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/31c48758-8d44-11ed-8c30-0bcb8697ec11.png?resize=200%2C200" 
2924            srcset="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/31c48758-8d44-11ed-8c30-0bcb8697ec11.png"
2925            sizes="100vw"
2926            
2927            class=" img-responsive lazyload tnt-prop-img"
2928            width="138"
2929            height="138"
2930            alt="site-logo"
2931            ></a>
2932        </div></div></div></div>
2933            <nav id="main-navigation" aria-label="Main" class="navbar yamm navbar-default container_fluid navbar-static">
2934                
2935                
2936                <div class="navbar-header">
2937                    
2938                    
2939                        <button type="button" class=" visible-sm visible-xs navbar-toggle pull-left" data-toggle="offcanvas" data-target="left" aria-label="Left Main Menu" aria-expanded="false">
2940                            <span class="icon-bar"></span>
2941                            <span class="icon-bar"></span>
2942                            <span class="icon-bar"></span>
2943                            
2944                        </button>
2945                         
2946                    
2947                    
2948
2949                    
2950                        <div class="navbar-brand hidden-md hidden-lg pos_left">
2951                            
2952                                <div id="tncms-region-main-nav-brand" class="tncms-region "><div id="tncms-block-3140368" class="tncms-block">
2953<style>
2954.site-logo-mobile {
2955    background-image: var(--site-logo-src);
2956    height: var(--site-logo-height);
2957    width: var(--site-logo-width);
2958    background-size:cover;
2959    display:block;
2960}
2961#topbar-col-two #tncms-region-topbar-col-two {
2962    margin: 0 !important;
2963}
2964 @media (max-width: 992px) {
2965    .site-logo-mobile {
2966        background-image: var(--site-logo-mobile-src);
2967        height: var(--site-logo-mobile-height);
2968        width: var(--site-logo-mobile-width);
2969        background-size:cover;
2970        display:block;
2971    }
2972 }
2973 @media (min-width: 993px) {
2974     #topbar-col-two {
2975         padding-top: 12px !important;
2976     }
2977 }
2978 @media (max-width: 411px) {
2979    .site-logo-mobile {
2980        height: 17px;
2981        width: 157px;
2982        background-size:cover;
2983        display:block;
2984    }
2985    .user-promo-button {
2986        margin-right: 8px !important;
2987        margin-left: 8px !important;
2988    }
2989 }
2990
2991 @media (min-width: 993px) and (max-width: 1080px) {
2992    .site-logo-mobile {
2993        height: 34px !important;
2994        width: 320px !important;
2995    }
2996 }
2997</style>
2998<div class="site-logo-container text-left siteUserHeader-mobile" style="height:20px;">
2999    <div class="logo-middle">
3000        <a id="siteUserHeaderHref-mobile" title="Toronto Star" href="/" aria-label="Home page" class="site-logo-mobile"></a>
3001    </div>
3002</div></div><div id="tncms-block-2841705" class="tncms-block">
3003<div class="user-controls">
3004    <div id="user-controls-2841705" class="user-controls-main" >
3005        
3006        
3007        <div id="user-promo-2841705" class="user-promo">
3008            
3009            <div class="user-promo-mobile ">
3010                
3011                <div class="anonymous hidden">
3012                    
3013                    <div class="user-promo-button">
3014                        <a href="https://www.thestar.com/subscribe/trial-purchase/" aria-label="Try Us">Try Us</a>
3015                    </div>
3016                </div>
3017                
3018                
3019                <div class="registered hidden">
3020                    
3021                    <div class=" user-promo-button">
3022                        <a href="https://www.thestar.com/subscribe/" aria-label="SALE<br>Only $1">SALE<br>Only $1</a>
3023                    </div>
3024                </div>
3025                
3026                
3027                <div class="subscriber hidden">
3028                    <div class="user-promo-button">
3029                        <a href="/newsletters?itm_source=newsletter-header-button" aria-label="Newsletters">Newsletters</a>
3030                    </div>
3031                </div>
3032                
3033            </div>
3034            
3035        </div>
3036        
3037        <div id="user-control-panel-2841705" class="user-login-panel mobile">
3038            <button class="btn btn-secondary dropdownMenuButton loggedout" aria-label="sign in" type="button" id="userControlPanel-2841705" 
3039                data-placement="mobile" data-status="closed" data-user="loggedout">
3040                <span class="userName">Sign In</span>
3041                <span class="userIconSpan icon-guest"></span>
3042                <i class="userPanelIndicator fas tnt-chevron-down"></i>
3043            </button>
3044            <div class="user-controls-menu closed" aria-label="User menu">
3045                    <ul role="menu"> 
3046                        
3047                            <li class="user-controls-dropdown-user-email" role="menuitem" id="user-email-2841705"></li>
3048                        
3049                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/" aria-label="Manage Profile" rel="nofollow">Manage Profile<i class="fas tnt-chevron-right"></i></a></li>
3050                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/" aria-label="Subscriptions" rel="nofollow">Subscriptions<i class="fas tnt-chevron-right"></i></a></li>
3051                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/?view=transactions" aria-label="Billing Information"  rel="nofollow">Billing Information<i class="fas tnt-chevron-right"></i></a></li>
3052                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/list/" rel="nofollow" aria-label="Saved Articles">Saved Articles<i class="fas tnt-chevron-right"></i></a></li>
3053                        
3054                        <li role="menuitem"><a class="dropdown-item" href="/newsletters/" aria-label="Newsletters" >Newsletters<i class="fas tnt-chevron-right"></i></a></li>
3055                        
3056                        <li role="menuitem"><a class="dropdown-item" href="/site/notifications/" aria-label="Notifications" >Notifications<i class="fas tnt-chevron-right"></i></a></li>
3057                        
3058                        
3059                        
3060                            <li role="menuitem" id="sub-perks-2841705" style="display: none;"><a class="dropdown-item" href="/site/benefits?itm_source=benefits-menu" aria-label="Subscriber Perks">Subscriber Perks<i class="fas tnt-chevron-right"></i></a></li>
3061                        
3062                        
3063                        
3064                            <li role="menuitem" id="archives-2841705" style="display: none;">
3065                                <a class="dropdown-item" href="/newspapers/" rel="nofollow" aria-label="Archives" >
3066                                    Archives
3067                                </a>
3068                            </li>
3069                        
3070                        
3071                        <li>
3072                            <a class="dropdown-item logout-btn" id="logout-2841705" onclick="handleUserLogout2841705()" rel="nofollow" role="menuitem" aria-label="Logout" >
3073                                Sign out
3074                            </a>
3075                        </li>
3076                    </ul>
3077            </div>
3078              
3079              
3080            <form id="user-login-form-2841705" style="display:none" role="form" method="post" action="https://www.thestar.com/users/login/">
3081                <input type="hidden" name="x_org_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3082                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3083                <input type="hidden" name="username" value="provider:Metroland Hub">
3084                <input type="hidden" name="site" value="thestar.com">
3085            </form>
3086            
3087            <form id="user-local-logout-form-2841705" method="post" style="display:block" action="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" >
3088                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3089                <input type="submit" name="logout" value="Logout" class="hide">
3090            </form>
3091            <form id="user-remote-logout-form-2841705" method="post" action="https://www.thestar.com/tncms/auth/logout/"><input type="hidden" name="return" value="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><input type="submit" name="logout" value="Logout" class="hide">
3092            </form>
3093        
3094        </div><!-- closing user-login-panel -->
3095        
3096        
3097        
3098    </div><!--closing user controls main -->
3099
3100
3101    
3102
3103</div><!-- closing user controls --></div></div>
3104                            
3105                        </div>
3106                    
3107
3108                    
3109                </div>
3110
3111                
3112                    <div id="navbar-collapse" class="navbar-collapse collapse">
3113                        
3114                            <div class="pull-right">
3115                                <div id="tncms-region-main-nav-right-region" class="tncms-region "><div id="tncms-block-3118246" class="tncms-block">
3116
3117</div><div id="tncms-block-2841702" class="tncms-block">
3118<div class="user-controls">
3119    <div id="user-controls-2841702" class="user-controls-main" >
3120        
3121        <div id="user-control-panel-2841702" class="user-login-panel static">
3122            <button class="btn btn-secondary dropdownMenuButton loggedout" aria-label="sign in" type="button" id="userControlPanel-2841702" 
3123                data-placement="static" data-status="closed" data-user="loggedout">
3124                <span class="userName">Sign In</span>
3125                <span class="userIconSpan icon-guest"></span>
3126                <i class="userPanelIndicator fas tnt-chevron-down"></i>
3127            </button>
3128            <div class="user-controls-menu closed" aria-label="User menu">
3129                    <ul role="menu"> 
3130                        
3131                            <li class="user-controls-dropdown-user-email" role="menuitem" id="user-email-2841702"></li>
3132                        
3133                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/" aria-label="Manage Profile" rel="nofollow">Manage Profile<i class="fas tnt-chevron-right"></i></a></li>
3134                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/" aria-label="Subscriptions" rel="nofollow">Subscriptions<i class="fas tnt-chevron-right"></i></a></li>
3135                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/service/?view=transactions" aria-label="Billing Information"  rel="nofollow">Billing Information<i class="fas tnt-chevron-right"></i></a></li>
3136                        <li role="menuitem"><a class="dropdown-item" href="/users/admin/list/" rel="nofollow" aria-label="Saved Articles">Saved Articles<i class="fas tnt-chevron-right"></i></a></li>
3137                        
3138                        <li role="menuitem"><a class="dropdown-item" href="/newsletters/" aria-label="Newsletters" >Newsletters<i class="fas tnt-chevron-right"></i></a></li>
3139                        
3140                        <li role="menuitem"><a class="dropdown-item" href="/site/notifications/" aria-label="Notifications" >Notifications<i class="fas tnt-chevron-right"></i></a></li>
3141                        
3142                        
3143                        
3144                            <li role="menuitem" id="sub-perks-2841702" style="display: none;"><a class="dropdown-item" href="/site/benefits?itm_source=benefits-menu" aria-label="Subscriber Perks">Subscriber Perks<i class="fas tnt-chevron-right"></i></a></li>
3145                        
3146                        
3147                        
3148                            <li role="menuitem" id="archives-2841702" style="display: none;">
3149                                <a class="dropdown-item" href="/newspapers/" rel="nofollow" aria-label="Archives" >
3150                                    Archives
3151                                </a>
3152                            </li>
3153                        
3154                        
3155                        <li>
3156                            <a class="dropdown-item logout-btn" id="logout-2841702" onclick="handleUserLogout2841702()" rel="nofollow" role="menuitem" aria-label="Logout" >
3157                                Sign out
3158                            </a>
3159                        </li>
3160                    </ul>
3161            </div>
3162              
3163              
3164            <form id="user-login-form-2841702" style="display:none" role="form" method="post" action="https://www.thestar.com/users/login/">
3165                <input type="hidden" name="x_org_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3166                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3167                <input type="hidden" name="username" value="provider:Metroland Hub">
3168                <input type="hidden" name="site" value="thestar.com">
3169            </form>
3170            
3171            <form id="user-local-logout-form-2841702" method="post" style="display:block" action="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html" >
3172                <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3173                <input type="submit" name="logout" value="Logout" class="hide">
3174            </form>
3175            <form id="user-remote-logout-form-2841702" method="post" action="https://www.thestar.com/tncms/auth/logout/"><input type="hidden" name="return" value="https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><input type="submit" name="logout" value="Logout" class="hide">
3176            </form>
3177        
3178        </div><!-- closing user-login-panel -->
3179        
3180        
3181        <div id="user-promo-2841702" class="user-promo">
3182            
3183            <div class="user-promo-desktop right">
3184                
3185                <div class="anonymous hidden">
3186                        
3187                    <div data-type='danon' class="user-promo-button">
3188                        <a href="https://www.thestar.com/subscribe/trial-purchase/">
3189                        <div class="line1">Try Us</div>
3190                        <div class="line2">7-Day Trial</div>
3191                        </a>
3192                    </div>
3193                </div>
3194                
3195                
3196                <div class="registered hidden">
3197                    
3198                    <div data-type='dreg' class="user-promo-button">
3199                        <a href="https://www.thestar.com/subscribe/">
3200                        <div class="line1">SALE<br>Only $1</div>
3201                        
3202                        </a>
3203                    </div>
3204                </div>
3205                
3206                
3207                <div class="subscriber hidden">
3208                    <div data-type='dsub' class="user-promo-button">
3209                        <a href="/newsletters?itm_source=newsletter-header-button">
3210                        <div class="line1">Newsletters</div>
3211                        
3212                        </a>
3213                    </div>
3214                </div>
3215                
3216            </div>
3217            
3218        </div>
3219        
3220        
3221        
3222    </div><!--closing user controls main -->
3223
3224
3225    
3226
3227</div><!-- closing user controls --></div></div>
3228                                
3229                            </div>
3230                        
3231                        <div class="navbar-left">
3232                            <div id="tncms-region-nav-main-nav" class="tncms-region-nav"><ul id="main-nav_menu" class="topNav nav navbar-nav" role="navigation" aria-label="Main"><li class=" "  data-cmspath="/interactives" data-liurl="/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3233                
3234                <a class="nav-link  nav-home  tnt-section-home"  href="/"  tabindex="0">
3235                    <span class="nav-label ">Home</span>
3236                </a></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/news/gta/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3237                
3238                <a class="nav-link  dropdown-toggle  tnt-section-gta"   data-target="#"   href="/news/gta/"  tabindex="0">
3239                    <span class="nav-label ">GTA</span>
3240                </a><ul id="main-nav_menu-child-2" class="subNav dropdown">
3241                        
3242                        
3243                            
3244                            <li class=" "  data-activeitem="">
3245                                <a class="nav-link   tnt-section-readers-choice-awards"  href="https://readerschoice.thestar.com/readerschoice-toronto/"  target="_blank" rel="noopener" tabindex="0">
3246                                <span class="nav-label">Readers’ Choice Awards</span>
3247                                </a>
3248                            </li>
3249                            
3250                        
3251                        
3252                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/news/canada/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3253                
3254                <a class="nav-link  dropdown-toggle  tnt-section-canada"   data-target="#"   href="/news/canada/"  tabindex="0">
3255                    <span class="nav-label ">Canada</span>
3256                </a><ul id="main-nav_menu-child-4" class="subNav dropdown">
3257                        
3258                        
3259                            
3260                            <li class=" "  data-activeitem="">
3261                                <a class="nav-link   tnt-section-ontario"  href="/news/ontario/"  tabindex="0">
3262                                <span class="nav-label">Ontario</span>
3263                                </a>
3264                            </li>
3265                            
3266                        
3267                            
3268                            <li class=" "  data-activeitem="">
3269                                <a class="nav-link   tnt-section-british-columbia"  href="/news/canada/british-columbia/"  tabindex="0">
3270                                <span class="nav-label">British Columbia</span>
3271                                </a>
3272                            </li>
3273                            
3274                        
3275                            
3276                            <li class=" "  data-activeitem="">
3277                                <a class="nav-link   tnt-section-alberta"  href="/news/canada/alberta/"  tabindex="0">
3278                                <span class="nav-label">Alberta</span>
3279                                </a>
3280                            </li>
3281                            
3282                        
3283                            
3284                            <li class=" "  data-activeitem="">
3285                                <a class="nav-link   tnt-section-quebec"  href="/news/canada/quebec/"  tabindex="0">
3286                                <span class="nav-label">Quebec</span>
3287                                </a>
3288                            </li>
3289                            
3290                        
3291                            
3292                            <li class=" "  data-activeitem="">
3293                                <a class="nav-link   tnt-section-nova-scotia"  href="/news/canada/nova-scotia/"  tabindex="0">
3294                                <span class="nav-label">Nova Scotia</span>
3295                                </a>
3296                            </li>
3297                            
3298                        
3299                        
3300                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/politics/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3301                
3302                <a class="nav-link  dropdown-toggle  tnt-section-politics"   data-target="#"   href="/politics/"  tabindex="0">
3303                    <span class="nav-label ">Politics</span>
3304                </a><ul id="main-nav_menu-child-10" class="subNav dropdown">
3305                        
3306                        
3307                            
3308                            <li class=" "  data-activeitem="">
3309                                <a class="nav-link   tnt-section-federal-politics"  href="/politics/federal/"  tabindex="0">
3310                                <span class="nav-label">Federal Politics</span>
3311                                </a>
3312                            </li>
3313                            
3314                        
3315                            
3316                            <li class=" "  data-activeitem="">
3317                                <a class="nav-link   tnt-section-provincial-politics"  href="/politics/provincial/"  tabindex="0">
3318                                <span class="nav-label">Provincial Politics</span>
3319                                </a>
3320                            </li>
3321                            
3322                        
3323                            
3324                            <li class=" "  data-activeitem="">
3325                                <a class="nav-link   tnt-section-political-opinion"  href="/politics/political-opinion/"  tabindex="0">
3326                                <span class="nav-label">Political Opinion</span>
3327                                </a>
3328                            </li>
3329                            
3330                        
3331                        
3332                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/news/world/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3333                
3334                <a class="nav-link  dropdown-toggle  tnt-section-world"   data-target="#"   href="/news/world/"  tabindex="0">
3335                    <span class="nav-label ">World</span>
3336                </a><ul id="main-nav_menu-child-14" class="subNav dropdown">
3337                        
3338                        
3339                            
3340                            <li class=" "  data-activeitem="">
3341                                <a class="nav-link   tnt-section-united-states"  href="/news/world/united-states/"  tabindex="0">
3342                                <span class="nav-label">United States</span>
3343                                </a>
3344                            </li>
3345                            
3346                        
3347                            
3348                            <li class=" "  data-activeitem="">
3349                                <a class="nav-link   tnt-section-americas"  href="/news/world/americas/"  tabindex="0">
3350                                <span class="nav-label">Americas</span>
3351                                </a>
3352                            </li>
3353                            
3354                        
3355                            
3356                            <li class=" "  data-activeitem="">
3357                                <a class="nav-link   tnt-section-europe"  href="/news/world/europe/"  tabindex="0">
3358                                <span class="nav-label">Europe</span>
3359                                </a>
3360                            </li>
3361                            
3362                        
3363                            
3364                            <li class=" "  data-activeitem="">
3365                                <a class="nav-link   tnt-section-asia"  href="/news/world/asia/"  tabindex="0">
3366                                <span class="nav-label">Asia</span>
3367                                </a>
3368                            </li>
3369                            
3370                        
3371                            
3372                            <li class=" "  data-activeitem="">
3373                                <a class="nav-link   tnt-section-africa"  href="/news/world/africa/"  tabindex="0">
3374                                <span class="nav-label">Africa</span>
3375                                </a>
3376                            </li>
3377                            
3378                        
3379                            
3380                            <li class=" "  data-activeitem="">
3381                                <a class="nav-link   tnt-section-australia"  href="/news/world/australia/"  tabindex="0">
3382                                <span class="nav-label">Australia</span>
3383                                </a>
3384                            </li>
3385                            
3386                        
3387                            
3388                            <li class=" "  data-activeitem="">
3389                                <a class="nav-link   tnt-section-middle-east"  href="/news/world/middle-east/"  tabindex="0">
3390                                <span class="nav-label">Middle East</span>
3391                                </a>
3392                            </li>
3393                            
3394                        
3395                        
3396                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/opinion/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3397                
3398                <a class="nav-link  dropdown-toggle  tnt-section-opinion"   data-target="#"   href="/opinion/"  tabindex="0">
3399                    <span class="nav-label ">Opinion</span>
3400                </a><ul id="main-nav_menu-child-22" class="subNav dropdown">
3401                        
3402                        
3403                            
3404                            <li class=" "  data-activeitem="">
3405                                <a class="nav-link   tnt-section-star-columnists"  href="/opinion/star-columnists/"  tabindex="0">
3406                                <span class="nav-label">Star Columnists</span>
3407                                </a>
3408                            </li>
3409                            
3410                        
3411                            
3412                            <li class=" "  data-activeitem="">
3413                                <a class="nav-link   tnt-section-editorials"  href="/opinion/editorials/"  tabindex="0">
3414                                <span class="nav-label">Editorials</span>
3415                                </a>
3416                            </li>
3417                            
3418                        
3419                            
3420                            <li class=" "  data-activeitem="">
3421                                <a class="nav-link   tnt-section-contributors"  href="/opinion/contributors/"  tabindex="0">
3422                                <span class="nav-label">Contributors</span>
3423                                </a>
3424                            </li>
3425                            
3426                        
3427                            
3428                            <li class=" "  data-activeitem="">
3429                                <a class="nav-link   tnt-section-letters-to-the-editor"  href="/opinion/letters-to-the-editor/"  tabindex="0">
3430                                <span class="nav-label">Letters To The Editor</span>
3431                                </a>
3432                            </li>
3433                            
3434                        
3435                            
3436                            <li class=" "  data-activeitem="">
3437                                <a class="nav-link   tnt-section-editorial-cartoons"  href="/opinion/editorial-cartoons/"  tabindex="0">
3438                                <span class="nav-label">Editorial Cartoons</span>
3439                                </a>
3440                            </li>
3441                            
3442                        
3443                        
3444                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/life/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3445                
3446                <a class="nav-link  dropdown-toggle  tnt-section-life"   data-target="#"   href="/life/"  tabindex="0">
3447                    <span class="nav-label ">Life</span>
3448                </a><ul id="main-nav_menu-child-28" class="subNav dropdown">
3449                        
3450                        
3451                            
3452                            <li class=" "  data-activeitem="">
3453                                <a class="nav-link   tnt-section-relationships"  href="/life/relationships/"  tabindex="0">
3454                                <span class="nav-label">Relationships</span>
3455                                </a>
3456                            </li>
3457                            
3458                        
3459                            
3460                            <li class=" "  data-activeitem="">
3461                                <a class="nav-link   tnt-section-food-and-drink"  href="/life/food-and-drink/"  tabindex="0">
3462                                <span class="nav-label">Food and Drink</span>
3463                                </a>
3464                            </li>
3465                            
3466                        
3467                            
3468                            <li class=" "  data-activeitem="">
3469                                <a class="nav-link   tnt-section-home-and-garden"  href="/life/home-and-garden/"  tabindex="0">
3470                                <span class="nav-label">Home and Garden</span>
3471                                </a>
3472                            </li>
3473                            
3474                        
3475                            
3476                            <li class=" "  data-activeitem="">
3477                                <a class="nav-link   tnt-section-beauty-and-fashion"  href="/life/beauty-and-fashion/"  tabindex="0">
3478                                <span class="nav-label">Beauty and Fashion</span>
3479                                </a>
3480                            </li>
3481                            
3482                        
3483                            
3484                            <li class=" "  data-activeitem="">
3485                                <a class="nav-link   tnt-section-health"  href="/life/health-wellness/"  tabindex="0">
3486                                <span class="nav-label">Health</span>
3487                                </a>
3488                            </li>
3489                            
3490                        
3491                            
3492                            <li class=" "  data-activeitem="">
3493                                <a class="nav-link   tnt-section-travel"  href="/life/travel/"  tabindex="0">
3494                                <span class="nav-label">Travel</span>
3495                                </a>
3496                            </li>
3497                            
3498                        
3499                            
3500                            <li class=" "  data-activeitem="">
3501                                <a class="nav-link   tnt-section-autos"  href="/life/autos/"  tabindex="0">
3502                                <span class="nav-label">Autos</span>
3503                                </a>
3504                            </li>
3505                            
3506                        
3507                            
3508                            <li class=" "  data-activeitem="">
3509                                <a class="nav-link   tnt-section-horoscopes"  href="/life/horoscopes/"  tabindex="0">
3510                                <span class="nav-label">Horoscopes</span>
3511                                </a>
3512                            </li>
3513                            
3514                        
3515                            
3516                            <li class=" "  data-activeitem="">
3517                                <a class="nav-link   tnt-section-obituaries"  href="https://obituaries.thestar.com/"  target="_blank" rel="noopener" tabindex="0">
3518                                <span class="nav-label">Obituaries</span>
3519                                </a>
3520                            </li>
3521                            
3522                        
3523                        
3524                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/sports/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3525                
3526                <a class="nav-link  dropdown-toggle  tnt-section-sports"   data-target="#"   href="/sports/"  tabindex="0">
3527                    <span class="nav-label ">Sports</span>
3528                </a><ul id="main-nav_menu-child-38" class="subNav dropdown">
3529                        
3530                        
3531                            
3532                            <li class=" "  data-activeitem="">
3533                                <a class="nav-link   tnt-section-nhl"  href="/sports/hockey/"  tabindex="0">
3534                                <span class="nav-label">NHL</span>
3535                                </a>
3536                            </li>
3537                            
3538                        
3539                            
3540                            <li class=" "  data-activeitem="">
3541                                <a class="nav-link   tnt-section-nba"  href="/sports/basketball/"  tabindex="0">
3542                                <span class="nav-label">NBA</span>
3543                                </a>
3544                            </li>
3545                            
3546                        
3547                            
3548                            <li class=" "  data-activeitem="">
3549                                <a class="nav-link   tnt-section-mlb"  href="/sports/baseball/"  tabindex="0">
3550                                <span class="nav-label">MLB</span>
3551                                </a>
3552                            </li>
3553                            
3554                        
3555                            
3556                            <li class=" "  data-activeitem="">
3557                                <a class="nav-link   tnt-section-nfl"  href="/sports/football/"  tabindex="0">
3558                                <span class="nav-label">NFL</span>
3559                                </a>
3560                            </li>
3561                            
3562                        
3563                            
3564                            <li class=" "  data-activeitem="">
3565                                <a class="nav-link   tnt-section-cfl"  href="/sports/football/cfl/"  tabindex="0">
3566                                <span class="nav-label">CFL</span>
3567                                </a>
3568                            </li>
3569                            
3570                        
3571                            
3572                            <li class=" "  data-activeitem="">
3573                                <a class="nav-link   tnt-section-sports-betting"  href="/sports/sports-betting/"  tabindex="0">
3574                                <span class="nav-label">Sports Betting</span>
3575                                </a>
3576                            </li>
3577                            
3578                        
3579                            
3580                            <li class=" "  data-activeitem="">
3581                                <a class="nav-link   tnt-section-golf"  href="/sports/golf/"  tabindex="0">
3582                                <span class="nav-label">Golf</span>
3583                                </a>
3584                            </li>
3585                            
3586                        
3587                            
3588                            <li class=" "  data-activeitem="">
3589                                <a class="nav-link   tnt-section-soccer"  href="/sports/soccer/"  tabindex="0">
3590                                <span class="nav-label">Soccer</span>
3591                                </a>
3592                            </li>
3593                            
3594                        
3595                            
3596                            <li class=" "  data-activeitem="">
3597                                <a class="nav-link   tnt-section-tennis"  href="/sports/tennis/"  tabindex="0">
3598                                <span class="nav-label">Tennis</span>
3599                                </a>
3600                            </li>
3601                            
3602                        
3603                            
3604                            <li class=" "  data-activeitem="">
3605                                <a class="nav-link   tnt-section-auto-racing"  href="/sports/auto-racing/"  tabindex="0">
3606                                <span class="nav-label">Auto Racing</span>
3607                                </a>
3608                            </li>
3609                            
3610                        
3611                            
3612                            <li class=" "  data-activeitem="">
3613                                <a class="nav-link   tnt-section-cricket"  href="/sports/cricket/"  tabindex="0">
3614                                <span class="nav-label">Cricket</span>
3615                                </a>
3616                            </li>
3617                            
3618                        
3619                            
3620                            <li class=" "  data-activeitem="">
3621                                <a class="nav-link   tnt-section-olympics-and-paralympics"  href="/sports/olympics-and-paralympics/"  tabindex="0">
3622                                <span class="nav-label">Olympics and Paralympics</span>
3623                                </a>
3624                            </li>
3625                            
3626                        
3627                        
3628                    </ul></li><li class=" "  data-cmspath="/interactives" data-liurl="/real-estate/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3629                
3630                <a class="nav-link   tnt-section-real-estate"  href="/real-estate/"  tabindex="0">
3631                    <span class="nav-label ">Real Estate</span>
3632                </a></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/entertainment/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3633                
3634                <a class="nav-link  dropdown-toggle  tnt-section-entertainment"   data-target="#"   href="/entertainment/"  tabindex="0">
3635                    <span class="nav-label ">Entertainment</span>
3636                </a><ul id="main-nav_menu-child-52" class="subNav dropdown">
3637                        
3638                        
3639                            
3640                            <li class=" "  data-activeitem="">
3641                                <a class="nav-link   tnt-section-television"  href="/entertainment/television/"  tabindex="0">
3642                                <span class="nav-label">Television</span>
3643                                </a>
3644                            </li>
3645                            
3646                        
3647                            
3648                            <li class=" "  data-activeitem="">
3649                                <a class="nav-link   tnt-section-music"  href="/entertainment/music/"  tabindex="0">
3650                                <span class="nav-label">Music</span>
3651                                </a>
3652                            </li>
3653                            
3654                        
3655                            
3656                            <li class=" "  data-activeitem="">
3657                                <a class="nav-link   tnt-section-taylor-swift"  href="https://www.thestar.com/entertainment/music/taylor-swift/"  target="_blank" rel="noopener" tabindex="0">
3658                                <span class="nav-label">Taylor Swift</span>
3659                                </a>
3660                            </li>
3661                            
3662                        
3663                            
3664                            <li class=" "  data-activeitem="">
3665                                <a class="nav-link   tnt-section-books"  href="/entertainment/books/"  tabindex="0">
3666                                <span class="nav-label">Books</span>
3667                                </a>
3668                            </li>
3669                            
3670                        
3671                            
3672                            <li class=" "  data-activeitem="">
3673                                <a class="nav-link   tnt-section-movies"  href="/entertainment/movies/"  tabindex="0">
3674                                <span class="nav-label">Movies</span>
3675                                </a>
3676                            </li>
3677                            
3678                        
3679                            
3680                            <li class=" "  data-activeitem="">
3681                                <a class="nav-link   tnt-section-stage"  href="/entertainment/stage/"  tabindex="0">
3682                                <span class="nav-label">Stage</span>
3683                                </a>
3684                            </li>
3685                            
3686                        
3687                            
3688                            <li class=" "  data-activeitem="">
3689                                <a class="nav-link   tnt-section-visual-arts"  href="/entertainment/visual-arts/"  tabindex="0">
3690                                <span class="nav-label">Visual Arts</span>
3691                                </a>
3692                            </li>
3693                            
3694                        
3695                            
3696                            <li class=" "  data-activeitem="">
3697                                <a class="nav-link   tnt-section-fun-games"  href="https://diversions.thestar.com/"  target="_blank" rel="noopener" tabindex="0">
3698                                <span class="nav-label">Fun & Games</span>
3699                                </a>
3700                            </li>
3701                            
3702                        
3703                            
3704                            <li class=" "  data-activeitem="">
3705                                <a class="nav-link   tnt-section-comics"  href="https://diversions.thestar.com/comics.html"  target="_blank" rel="noopener" tabindex="0">
3706                                <span class="nav-label">Comics</span>
3707                                </a>
3708                            </li>
3709                            
3710                        
3711                            
3712                            <li class=" "  data-activeitem="">
3713                                <a class="nav-link   tnt-section-tv-listings"  href="/entertainment/tv-listings/"  tabindex="0">
3714                                <span class="nav-label">TV Listings</span>
3715                                </a>
3716                            </li>
3717                            
3718                        
3719                        
3720                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/business/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3721                
3722                <a class="nav-link  dropdown-toggle  tnt-section-business"   data-target="#"   href="/business/"  tabindex="0">
3723                    <span class="nav-label ">Business</span>
3724                </a><ul id="main-nav_menu-child-63" class="subNav dropdown">
3725                        
3726                        
3727                            
3728                            <li class=" "  data-activeitem="">
3729                                <a class="nav-link   tnt-section-small-business"  href="/business/small-business/"  tabindex="0">
3730                                <span class="nav-label">Small Business</span>
3731                                </a>
3732                            </li>
3733                            
3734                        
3735                            
3736                            <li class=" "  data-activeitem="">
3737                                <a class="nav-link   tnt-section-technology"  href="/business/technology/"  tabindex="0">
3738                                <span class="nav-label">Technology</span>
3739                                </a>
3740                            </li>
3741                            
3742                        
3743                            
3744                            <li class=" "  data-activeitem="">
3745                                <a class="nav-link   tnt-section-personal-finance"  href="/business/personal-finance/"  tabindex="0">
3746                                <span class="nav-label">Personal Finance</span>
3747                                </a>
3748                            </li>
3749                            
3750                        
3751                            
3752                            <li class=" "  data-activeitem="">
3753                                <a class="nav-link   tnt-section-innovation"  href="/business/mars/"  tabindex="0">
3754                                <span class="nav-label">Innovation</span>
3755                                </a>
3756                            </li>
3757                            
3758                        
3759                        
3760                    </ul></li><li class=" dropdown " aria-expanded="false" data-cmspath="/interactives" data-liurl="/podcasts/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3761                
3762                <a class="nav-link  dropdown-toggle  tnt-section-podcasts"   data-target="#"   href="/podcasts/"  tabindex="0">
3763                    <span class="nav-label ">Podcasts</span>
3764                </a><ul id="main-nav_menu-child-68" class="subNav dropdown">
3765                        
3766                        
3767                            
3768                            <li class=" "  data-activeitem="">
3769                                <a class="nav-link   tnt-section-this-matters"  href="/podcasts/this-matters/"  tabindex="0">
3770                                <span class="nav-label">This Matters</span>
3771                                </a>
3772                            </li>
3773                            
3774                        
3775                            
3776                            <li class=" "  data-activeitem="">
3777                                <a class="nav-link   tnt-section-it-s-political"  href="/podcasts/its-political/"  tabindex="0">
3778                                <span class="nav-label">It’s Political</span>
3779                                </a>
3780                            </li>
3781                            
3782                        
3783                            
3784                            <li class=" "  data-activeitem="">
3785                                <a class="nav-link   tnt-section-the-billionaire-murders"  href="/podcasts/billionaire-murders/"  tabindex="0">
3786                                <span class="nav-label">The Billionaire Murders</span>
3787                                </a>
3788                            </li>
3789                            
3790                        
3791                            
3792                            <li class=" "  data-activeitem="">
3793                                <a class="nav-link   tnt-section-deep-left-field"  href="/podcasts/deep-left-field/"  tabindex="0">
3794                                <span class="nav-label">Deep Left Field </span>
3795                                </a>
3796                            </li>
3797                            
3798                        
3799                        
3800                    </ul></li><li class=" "  data-cmspath="/interactives" data-liurl="/news/investigations/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
3801                
3802                <a class="nav-link   tnt-section-investigations"  href="/news/investigations/"  tabindex="0">
3803                    <span class="nav-label ">Investigations</span>
3804                </a></li></ul><style>
3805            .affix-top #tncms-region-main-nav-right-region{display: none}
3806            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
3807            @media (max-width: 991px){
3808            #main-navigation{height: 45px}
3809            }
3810            
3811        </style>
3812    </div>
3813                        </div>
3814                    </div>
3815                
3816
3817                
3818            </nav>
3819            
3820            
3821        </div>
3822        
3823            
3824        
3825    
3826    
3827    <div id="main-body-container">
3828
3829    
3830    
3831    <section id="main-page-container" class="container_fluid">
3832        
3833        
3834
3835
3836<script>
3837        window.articleTemplate = "article-interactive";
3838    </script>
3838
3839<link rel="preconnect" href="https://fonts.googleapis.com">
3840<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
3841<link href="https://fonts.googleapis.com/css2?family=Inter:opsz,[email protected],100..900&amp;display=swap" rel="stylesheet">
3842<link rel="stylesheet" href="https://projects-images.thestar.com/signalUnlimited/style4.css">
3843<script src="https://misc.thestar.com/interactivegraphic/libraries/d3.v7.min.js"></script>
3843 
3844<script src="https://misc.thestar.com/interactivegraphic/libraries/topojsonv3.min.js"></script>
3844
3845<style>
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866.subscriber-offers {
3867   left: 0;
3868}
3869
3870#widget-gift-mount {
3871   display: flex;
3872   justify-content: center;
3873   padding-top: 8px;
3874display: none;
3875}
3876
3877   .widget-tnt-gift-article {
3878        position: relative;
3879        display: inline-block;
3880    }
3881    .widget-tnt-gift-btn-dropdown {
3882        display: inline-flex;
3883        align-items: center;
3884        justify-content: center;
3885        background: none;
3886        border: none;
3887        padding: 0;
3888        cursor: pointer;
3889    }
3890    .widget-tnt-gift-btn-dropdown img {
3891        display: block;
3892        width: 32px;
3893        height: 32px;
3894    }
3895    .widget-tnt-gift-menu {
3896        position: absolute;
3897        top: calc(100% + 8px);
3898        right: -80px;
3899        z-index: 1000;
3900        min-width: 260px;
3901        background: #fff;
3902        border: 1px solid #ddd;
3903        border-radius: 8px;
3904        box-shadow: 0 8px 24px rgba(0,0,0,0.15);
3905        padding: 0;
3906        display: none;
3907        color: black;
3908    }
3909    .widget-tnt-gift-toggle:checked + .widget-tnt-gift-btn-dropdown + .widget-tnt-gift-menu {
3910        display: block;
3911    }
3912    .widget-gift-title {
3913        font-weight: 700;
3914        padding: 12px 16px;
3915        border-bottom: 1px solid #eee;
3916    }
3917    .widget-gift-body {
3918        padding: 16px;
3919    }
3920    .widget-gift-desc {
3921        margin-bottom: 12px;
3922    }
3923    .widget-gift-options {
3924        list-style: none;
3925        padding: 0;
3926        margin: 0;
3927    }
3928    .widget-gift-options li + li {
3929        margin-top: 8px;
3930    }
3931    .widget-gift-options a {
3932        display: block;
3933        text-decoration: none;
3934        color: inherit;
3935        padding: 8px 10px;
3936        border-radius: 6px;
3937        cursor: pointer;
3938    }
3939    .widget-gift-options a:hover,
3940    .widget-gift-options a:focus {
3941        background: #f5f5f5;
3942        text-decoration: none;
3943    }
3944    .widget-alert {
3945        margin-bottom: 10px;
3946        padding: 8px 10px;
3947        border-radius: 6px;
3948        font-size: 0.95rem;
3949    }
3950    .widget-alert-success {
3951        background: #edf7ed;
3952        color: #1e4620;
3953    }
3954    .widget-alert-danger {
3955        background: #fdecea;
3956        color: #611a15;
3957    }
3958    .widget-alert-warning {
3959        background: #fff4e5;
3960        color: #663c00;
3961    }
3962</style>
3963<div class="SA_story-wrapper" id="SA_story-wrapper">
3964<section class="SA_top-wrapper"><img class="SA_main-art" src="https://projects-images.thestar.com/signalUnlimited/images/signal-leaves-v2-tint.png" alt="">
3965<div class="SA_headline-package">
3966<h2>The Signal</h2>
3967<h1>Canada’s premier federal election forecast</h1>
3968<p class="SA_byline">By <a href="https://voxpoplabs.com/" target="_blank">Vox Pop Labs</a></p>
3969<p class="SA_byline">In partnership with the Toronto Star</p>
3970<p class="SA_date">Last updated on <span id="lastupdated">--</span></p>
3971<div id="widget-gift-mount"></div>
3972</div>
3973</section>
3974<section class="SA_text-wrapper" id="SA_intro-text">
3975<p>Political fortunes can change at any moment. The Signal models thousands of polls to bring you one of the most consistently accurate election forecasts in Canada. See <a id="SA_scrolldown" href="#SA_methodology-section">methodology</a> for details.</p>
3976</section>
3977<section class="SA_graphic-container">
3978<div class="SA_graphic-top-container">
3979<div class="SA_graphic-top-text-container">
3980<h2 class="SA_graphic-heading">If a federal election were held today</h2>
3981</div>
3982</div>
3983<div class="SA_graphic">
3984<div class="SA_card-container"></div>
3985<div class="chart0"></div>
3986</div>
3987</section>
3988<!-- start of paywall -->
3989    <div id="article-body" itemprop="articleBody">
3990    <div id="asset-content" class="asset-content subscriber-premium">
3991    <div class="subscriber-preview"></div>
3992    <div class="subscriber-only" style="display:none">
3993<section class="SA_graphic-container">
3994<div class="SA_graphic-top-container">
3995<div class="SA_graphic-top-text-container">
3996<h2 class="SA_graphic-heading">Projected vote share by party for</h2>
3997<div class="SA_region-dropdown-wrapper">
3998<h2 class="SA_graphic-heading"><select class="SA_region-dropdown">
3999<option selected value="NATIONAL">Canada</option>
4000<option value="ON">Ontario</option>
4001<option value="QC">Quebec</option>
4002<option value="BC">British Columbia</option>
4003<option value="AB">Alberta</option>
4004<option value="SK/MB">Manitoba and Sask.</option>
4005<option value="ATL">Atlantic Canada</option>
4006</select></h2>
4007</div>
4008<!-- <p class="SA_graphic-blurb">Which parties do voters support?</p> --></div>
4009</div>
4010<div class="SA_graphic">
4011<div class="party-box-wrapper">
4012<div class="party-box" id="partybox1">
4013<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4014<p class="party-name">--</p>
4015<p class="party-name-long">--</p>
4016</div>
4017<p class="party-votes"><span>--</span>%</p>
4018<div class="lowerupper">
4019<div class="lowerbox">
4020<p class="lowerupperlabel">Low</p>
4021<p class="lowfigure"><span>--</span></p>
4022</div>
4023<div class="higherbox">
4024<p class="lowerupperlabel">High</p>
4025<p class="highfigure"><span>--</span></p>
4026</div>
4027</div>
4028</div>
4029<div class="party-box" id="partybox2">
4030<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4031<p class="party-name">--</p>
4032<p class="party-name-long">--</p>
4033</div>
4034<p class="party-votes"><span>--</span>%</p>
4035<div class="lowerupper">
4036<div class="lowerbox">
4037<p class="lowerupperlabel">Low</p>
4038<p class="lowfigure"><span>--</span></p>
4039</div>
4040<div class="higherbox">
4041<p class="lowerupperlabel">High</p>
4042<p class="highfigure"><span>--</span></p>
4043</div>
4044</div>
4045</div>
4046<div class="party-box" id="partybox3">
4047<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4048<p class="party-name">--</p>
4049<p class="party-name-long">--</p>
4050</div>
4051<p class="party-votes"><span>--</span>%</p>
4052<div class="lowerupper">
4053<div class="lowerbox">
4054<p class="lowerupperlabel">Low</p>
4055<p class="lowfigure"><span>--</span></p>
4056</div>
4057<div class="higherbox">
4058<p class="lowerupperlabel">High</p>
4059<p class="highfigure"><span>--</span></p>
4060</div>
4061</div>
4062</div>
4063<div class="party-box" id="partybox4">
4064<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4065<p class="party-name">--</p>
4066<p class="party-name-long">--</p>
4067</div>
4068<p class="party-votes"><span>--</span>%</p>
4069<div class="lowerupper">
4070<div class="lowerbox">
4071<p class="lowerupperlabel">Low</p>
4072<p class="lowfigure"><span>--</span></p>
4073</div>
4074<div class="higherbox">
4075<p class="lowerupperlabel">High</p>
4076<p class="highfigure"><span>--</span></p>
4077</div>
4078</div>
4079</div>
4080<div class="party-box" id="partybox5">
4081<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4082<p class="party-name">--</p>
4083<p class="party-name-long">--</p>
4084</div>
4085<p class="party-votes"><span>--</span>%</p>
4086<div class="lowerupper">
4087<div class="lowerbox">
4088<p class="lowerupperlabel">Low</p>
4089<p class="lowfigure"><span>--</span></p>
4090</div>
4091<div class="higherbox">
4092<p class="lowerupperlabel">High</p>
4093<p class="highfigure"><span>--</span></p>
4094</div>
4095</div>
4096</div>
4097<div class="party-box" id="partybox6">
4098<div class="party-name-box"><img class="party-logo" id="" src="" alt="">
4099<p class="party-name">--</p>
4100<p class="party-name-long">--</p>
4101</div>
4102<p class="party-votes"><span>--</span>%</p>
4103<div class="lowerupper">
4104<div class="lowerbox">
4105<p class="lowerupperlabel">Low</p>
4106<p class="lowfigure"><span>--</span></p>
4107</div>
4108<div class="higherbox">
4109<p class="lowerupperlabel">High</p>
4110<p class="highfigure"><span>--</span></p>
4111</div>
4112</div>
4113</div>
4114<div class="OTHbox" id="partyboxOther">
4115<div class="party-name-box"><!-- <img class="party-logo" id="" src="" alt=""> -->
4116<p class="party-name" id="other-name">Other</p>
4117<p class="party-name-long" id="other-name-long">Other</p>
4118</div>
4119<p class="party-votes"><span>--</span>%</p>
4120<div class="lowerupper">
4121<div class="lowerbox">
4122<p class="lowerupperlabel">Low</p>
4123<p class="lowfigure"><span>--</span></p>
4124</div>
4125<div class="higherbox">
4126<p class="lowerupperlabel">High</p>
4127<p class="highfigure"><span>--</span></p>
4128</div>
4129</div>
4130</div>
4131</div>
4132</div>
4133</section>
4134<section class="SA_graphic-container">
4135<div class="SA_graphic-top-container">
4136<div class="SA_graphic-top-text-container">
4137<h2 class="SA_graphic-heading">Vote share over time for</h2>
4138<div class="SA_region-dropdown-wrapper">
4139<h2 class="SA_graphic-heading"><select class="SA_region-dropdown">
4140<option selected value="NATIONAL">Canada</option>
4141<option value="ON">Ontario</option>
4142<option value="QC">Quebec</option>
4143<option value="BC">British Columbia</option>
4144<option value="AB">Alberta</option>
4145<option value="SK/MB">Manitoba and Sask.</option>
4146<option value="ATL">Atlantic Canada</option>
4147</select></h2>
4148</div>
4149<p class="SA_graphic-blurb">How vote share has changed since the last federal election. The upper and lower bounds represent a 95 per cent credible interval.</p>
4150</div>
4151<div class="SA_key-container" id="SA_key2">
4152<p style="text-align: right;">Median vote intention</p>
4153<img id="key2img" src="https://projects-images.thestar.com/signalUnlimited/images/key2.svg" alt="">
4154<p>Upper and lower bounds</p>
4155</div>
4156</div>
4157<div class="SA_graphic">
4158<div class="chartbox">
4159<div class="chart2"><svg id="chart2"></svg></div>
4160<div class="SA_tooltip SA_hidden" id="SA_tooltip2">
4161<div class="SA_value"></div>
4162</div>
4163</div>
4164</div>
4165</section>
4166<div class="SA_ad_breaker">
4167<div class="ad-interactives-placeholder"></div>
4168</div>
4169<section class="SA_graphic-container">
4170<div class="SA_graphic-top-container">
4171<div class="SA_graphic-top-text-container">
4172<h2 class="SA_graphic-heading">Projected seat count for</h2>
4173<div class="SA_region-dropdown-wrapper">
4174<h2 class="SA_graphic-heading"><select class="SA_region-dropdown">
4175<option selected value="NATIONAL">Canada</option>
4176<option value="ON">Ontario</option>
4177<option value="QC">Quebec</option>
4178<option value="BC">British Columbia</option>
4179<option value="AB">Alberta</option>
4180<option value="SK/MB">Manitoba and Sask.</option>
4181<option value="ATL">Atlantic Canada</option>
4182</select></h2>
4183</div>
4184<p class="SA_graphic-blurb">The median is the number of seats each party is estimated to win. The upper and lower bounds represent a 95 per cent credible interval.</p>
4185</div>
4186<div class="SA_key-container" id="SA_key1">
4187<p style="text-align: right;">Lower bound</p>
4188<p class="key-center-text">Median</p>
4189<img id="key1img" src="https://projects-images.thestar.com/signalUnlimited/images/key1.svg" alt="">
4190<p>Upper bound</p>
4191</div>
4192</div>
4193<div class="SA_graphic">
4194<div class="chart1"><svg id="chart1"></svg></div>
4195</div>
4196</section>
4197<section class="SA_graphic-container">
4198<div class="SA_graphic-top-container">
4199<div class="SA_graphic-top-text-container">
4200<h2 class="SA_graphic-heading">Riding projections</h2>
4201<p class="SA_graphic-blurb">The projected outcome for each riding based on current vote share estimates.</p>
4202</div>
4203<div class="SA_key-container" id="SA_key3"><!-- <p class="map-legend-label">Projection confidence</p> -->
4204<div class="map-legend-boxes">
4205<div class="map-legend-party-box map-legend-label-box">
4206<p class="box-label">Toss up</p>
4207<p class="box-label" id="leaning">Leaning</p>
4208<p class="box-label" id="likely">Likely</p>
4209<p class="box-label" id="safe">Safe</p>
4210</div>
4211<div class="map-legend-party-box">
4212<div class="tossupbox"></div>
4213<div class="leaningbox"></div>
4214<div class="likelybox"></div>
4215<div class="safebox"></div>
4216</div>
4217</div>
4218</div>
4219</div>
4220<div class="SA_graphic">
4221<div id="map-holder">
4222<div class="SA_tooltip SA_hidden" id="SA_tooltip1">
4223<div class="SA_closebutton" id="SA_closebutton1"><img class="SA_icon" src="https://projects-images.thestar.com/signalUnlimited/images/close-icon.svg" border="0"></div>
4224<div class="SA_value"></div>
4225</div>
4226<div class="selection-holder">
4227<p id="searchboxtitle">Search for a riding</p>
4228<div class="searchbox"><input autocomplete="off" type="text" id="filterOn" onfocus="this.value=''" placeholder="Type a riding name">
4229<div class="filterListContainer">
4230<ul id="filterList"></ul>
4231</div>
4232</div>
4233</div>
4234<div id="map-wrapper">
4235<div class="zoom-buttons">
4236<div class="zoom-button" id="zoomin"><img class="zoom-button-icon" src="https://projects-images.thestar.com/signalUnlimited/images/plus.svg" border="0"></div>
4237<div class="zoom-button zoombutton-out disable" id="zoomout"><img class="zoom-button-icon" src="https://projects-images.thestar.com/signalUnlimited/images/minus.svg" border="0"></div>
4238<div class="zoom-button zoombutton-out disable" id="reset"><img class="zoom-button-icon" src="https://projects-images.thestar.com/signalUnlimited/images/close.svg" border="0"></div>
4239</div>
4240<svg id="map"></svg></div>
4241</div>
4242</div>
4243</section>
4244<section class="SA_graphic-container">
4245<div class="SA_graphic-top-container">
4246<div class="SA_graphic-top-text-container">
4247<h2 class="SA_graphic-heading">Polling manifest</h2>
4248<p class="SA_graphic-blurb">
4248Details of the most recent polls included in The Signal forecasting model.</p>
4249</div>
4250</div>
4251<div class="SA_graphic">
4252<div class="graphic table">
4253<div class="tablebox">
4254<table class="poll-table">
4255<thead>
4256<tr class="poll-table-header">
4257<th>Dates</th>
4258<th>Pollster</th>
4259<th class="partycolumn">LIB</th>
4260<th class="partycolumn">CON</th>
4261<th class="partycolumn">NDP</th>
4262<th class="partycolumn">BQ</th>
4263<th class="partycolumn">GRN</th>
4264<th class="partycolumn">PPC</th>
4265<th class="partycolumn">OTH</th>
4266<th class="samplecolumn">Sample</th>
4267<!-- <th>Method</th> --></tr>
4268</thead>
4269</table>
4270</div>
4271<button id="expandButton">See more</button></div>
4272</div>
4273</section>
4274<div class="SA_ad_breaker">
4275<div class="ad-interactives-placeholder"></div>
4276</div>
4277<section class="SA_text-wrapper"><img src="https://projects-images.thestar.com/signalUnlimited/images/vpl-logo.png" id="SA_vpl-logo">
4278<p class="SA_heading">About Vox Pop Labs</p>
4279<p><a href="https://voxpoplabs.com" target="__blank">Vox Pop Labs</a> is a social enterprise working to enhance democratic participation with innovative digital products and public opinion research services. Founded and operated by social and statistical scientists, Vox Pop Labs is the developer of several electoral literacy applications such as <a href="https://votecompass.com" target="_blank">Vote Compass</a> and <a href="https://www.polimeter.org" target="_blank">Polimeter</a>.</p>
4280<p class="SA_heading" id="SA_methodology-section">Signal methodology</p>
4281<p>The Signal is an election forecast developed by Vox Pop Labs. It combines hundreds of public opinion polls using a Bayesian dynamic linear model to estimate vote share and project seat outcomes for each political party.</p>
4282<p>The model is designed to correct for key sources of bias in polling. It gives more weight to larger samples, accounts for consistent differences between pollsters (“house effects”) using data collected over multiple years, and adjusts for systematic bias in the polling industry as a whole based on past election results. While these biases are often small, they can have meaningful effects on seat projections.</p>
4283<p>Because polls are noisy and not released every day, the model also incorporates information over time. Each day’s estimate reflects both new polling data and prior estimates, which helps smooth trends and prevents overreacting to outlier polls. This allows us to produce a daily forecast even when no new polls are released.</p>
4284<p>To generate regional and riding-level projections, we apply the same framework using updated electoral boundaries and results from the previous election. We then simulate 4,000 possible elections, aligning regional outcomes with the national forecast and incorporating an incumbency advantage for sitting candidates. These simulations produce seat projections along with credible intervals that capture uncertainty.</p>
4285<p>Uncertainty is greatest at the riding level, where projections rely on national and regional trends rather than local polling. These estimates should therefore be interpreted with appropriate caution.</p>
4286<p>To learn more about The Signal’s methodology, visit <a href="https://voxpoplabs.com/the-signal/methodology/" target="_blank">voxpoplabs.com/the-signal/methodology</a>.</p>
4287</section>
4288<div class="SA_ad_breaker">
4289<div class="ad-interactives-placeholder"></div>
4290</div>
4291<section class="SA_credit-box">
4292<div class="SA_credit">
4293<p class="SA_credit-role">Model:</p>
4294<p class="SA_credit-name">Vox Pop Labs</p>
4295</div>
4296<div class="SA_credit">
4297<p class="SA_credit-role">Design and development:</p>
4298<p class="SA_credit-name">Cameron Tulk</p>
4299</div>
4300<div class="SA_credit">
4301<p class="SA_credit-role">Top illustration:</p>
4302<p class="SA_credit-name">Susan Kao</p>
4303</div>
4304<div class="SA_credit SA_credit-long">
4305<p class="SA_credit-name">THE SIGNAL word mark and related model intellectual property © Vox Pop Labs Inc. All rights reserved.</p>
4306</div>
4307</section>
4308</div> <!-- closing subscriber-only wrapper -->
4309                        </div> <!-- closing asset-content section -->
4310                        </div> <!--closing article body --></div>
4311<script src="https://projects-images.thestar.com/signalUnlimited/script10.js"></script>
4311 
4312<script>
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332(function () {
4333    function dispatchUserStatusEvent() {
4334        window.dispatchEvent(new CustomEvent("tnt-user-status", {
4335            detail: {
4336                grantingMethodName: ""
4337            }
4338        }));
4339    }
4340    function loadGiftScript() {
4341        var script = document.createElement("script");
4342        script.src = "https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/article/resources/scripts/tnt.gift.btn.js";
4343        script.async = false;
4344        script.onload = function () {
4345            dispatchUserStatusEvent();
4346        };
4347        script.onerror = function () {
4348            console.error("Failed to load tnt.gift.btn.js");
4349        };
4350        document.head.appendChild(script);
4351    }
4352    const waitForGiftObj = setInterval(function () {
4353        if (!window.giftArticleObj || !giftArticleObj.dataassetuuid || !giftArticleObj.dataAssetUrl) {
4354            return;
4355        }
4356        clearInterval(waitForGiftObj);
4357        document.body.setAttribute("data-asset-uuid", giftArticleObj.dataassetuuid || "");
4358        const mount = document.getElementById("widget-gift-mount");
4359        if (!mount) {
4360            console.log("widget-gift-mount not found");
4361            return;
4362        }
4363        const imageSrc = giftArticleObj.sSrc || "";
4364        const assetUrl = giftArticleObj.dataAssetUrl || "";
4365        const assetType = giftArticleObj.dataassettype || "";
4366        const assetTitle = giftArticleObj.dataassettitle || "";
4367        const giftServiceIds = giftArticleObj.datagiftserviceids || "";
4368        const apiUrl = giftArticleObj.dataapiurl || "";
4369        mount.innerHTML = "";
4370        const wrapper = document.createElement("div");
4371        wrapper.id = "tnt-gift-btn-wrapper-metaInstance1";
4372        wrapper.className = "widget-tnt-gift-article";
4373        wrapper.setAttribute("data-asset-url", assetUrl);
4374        wrapper.setAttribute("data-gift-service-ids", giftServiceIds);
4375        wrapper.setAttribute("data-asset-type", assetType);
4376        wrapper.setAttribute("data-asset-title", assetTitle);
4377        wrapper.setAttribute("data-api-url", apiUrl);
4378        wrapper.hidden = true;
4379        const toggle = document.createElement("input");
4380        toggle.type = "checkbox";
4381        toggle.id = "widget-tnt-gift-toggle-metaInstance1";
4382        toggle.className = "widget-tnt-gift-toggle";
4383        toggle.hidden = true;
4384        const button = document.createElement("label");
4385        button.setAttribute("for", "widget-tnt-gift-toggle-metaInstance1");
4386        button.id = "tnt-gift-btn";
4387        button.className = "widget-tnt-gift-btn-dropdown";
4388        button.setAttribute("aria-haspopup", "true");
4389        button.hidden = true;
4390        const img = document.createElement("img");
4391        img.src = imageSrc;
4392        img.alt = "Gift this article";
4393        img.title = "Gift this article";
4394        button.appendChild(img);
4395        const menu = document.createElement("div");
4396        menu.id = "tnt-gift-menu";
4397        menu.className = "widget-tnt-gift-menu";
4398        menu.setAttribute("aria-labelledby", "tnt-gift-btn");
4399        const title = document.createElement("div");
4400        title.className = "widget-gift-title";
4401        title.textContent = "New subscriber benefit!";
4402        const body = document.createElement("div");
4403        body.className = "widget-gift-body";
4404        const copyClip = document.createElement("div");
4405        copyClip.id = "gift-copy-clip";
4406        copyClip.className = "widget-alert widget-alert-success";
4407        copyClip.setAttribute("role", "alert");
4408        copyClip.hidden = true;
4409        copyClip.innerHTML = "Copied to clipboard";
4410        const claimed = document.createElement("div");
4411        claimed.id = "gift-claimed";
4412        claimed.className = "widget-alert widget-alert-success";
4413        claimed.setAttribute("role", "alert");
4414        claimed.hidden = true;
4415        claimed.innerHTML = "A gifted article has been claimed.";
4416        const error = document.createElement("div");
4417        error.id = "gift-error";
4418        error.className = "widget-alert widget-alert-danger";
4419        error.setAttribute("role", "alert");
4420        error.hidden = true;
4421        error.innerHTML = "Out of gifts for the month";
4422        const limit = document.createElement("div");
4423        limit.id = "gift-limit";
4424        limit.className = "widget-alert widget-alert-warning";
4425        limit.hidden = true;
4426        limit.textContent = "Unfortunately you've used all of your gifts this month. Your counter will reset on the first day of next month.";
4427        const desc = document.createElement("div");
4428        desc.className = "widget-gift-desc gift-desc";
4429        desc.textContent = "Share this " + (assetType || "article") + " paywall-free";
4430        const options = document.createElement("ul");
4431        options.className = "widget-gift-options gift-options";
4432        const emailLi = document.createElement("li");
4433        const emailA = document.createElement("a");
4434        emailA.id = "tnt-gift-email";
4435        emailA.setAttribute("role", "button");
4436        emailA.innerHTML = "Email";
4437        emailLi.appendChild(emailA);
4438        const copyLi = document.createElement("li");
4439        const copyA = document.createElement("a");
4440        copyA.id = "tnt-gift-copy";
4441        copyA.setAttribute("role", "button");
4442        copyA.innerHTML = `
4443            <span class="tnt-link">Copy Link<\/span>
4444            <span class="tnt-spinner" hidden>Loading…<\/span>
4445        `;
4446        copyLi.appendChild(copyA);
4447        options.appendChild(emailLi);
4448        options.appendChild(copyLi);
4449        body.appendChild(copyClip);
4450        body.appendChild(claimed);
4451        body.appendChild(error);
4452        body.appendChild(limit);
4453        body.appendChild(desc);
4454        body.appendChild(options);
4455        menu.appendChild(title);
4456        menu.appendChild(body);
4457        wrapper.appendChild(toggle);
4458        wrapper.appendChild(button);
4459        wrapper.appendChild(menu);
4460        mount.appendChild(wrapper);
4461        if (!window.__giftScriptLoaded) {
4462            window.__giftScriptLoaded = true;
4463            loadGiftScript();
4464        } else {
4465            dispatchUserStatusEvent();
4466        }
4467    }, 25);
4468})();
4469</script>
4469
4470
4471<script type="module">
4472      
4473  function getAdPlacementHtml(id) {
4474      const wrapperEl = document.createElement("div");
4475      wrapperEl.classList.add('article-special-billboard-wrapper');
4476  
4477      const el = document.createElement("div");
4478      el.classList.add('adLabelWrapperManual');
4479      
4480      const label = document.createElement("span");
4481      label.appendChild(document.createTextNode('ARTICLE CONTINUES BELOW'));
4482      label.classList.add('label-article-continues');
4483      
4484      const innerEl = document.createElement('div');
4485      innerEl.classList.add('tnt-ads-container', 'text-center', 'article-special-ads-desktop');      
4486      
4487      const adPlaceholderEl = document.createElement('div');
4488      adPlaceholderEl.setAttribute('id','article-instory-' + id)
4489      
4490      
4491      el.appendChild(label);
4492      innerEl.appendChild(adPlaceholderEl);
4493      el.appendChild(innerEl);
4494      wrapperEl.appendChild(el);
4495      
4496      return wrapperEl;
4497  }
4498      
4499    /* cycle through elements with selector `.ad-interactives-placeholder` and replace with our actual ad HTML 
4500    then run the JS to create the ad slot & refresh */
4501    function updateHtmlTemplateAdPlaceholders() {
4502        const elements = document.querySelectorAll('.ad-interactives-placeholder');
4503        
4504        /* enable lazyload */
4505        window.googletag.cmd.push(function () {
4506            googletag.setConfig({
4507                lazyLoad: {
4508                  fetchMarginPercent: 500,
4509                  renderMarginPercent: 200,
4510                  mobileScaling: 2.0
4511                }
4512              });
4513        });          
4514          
4515        /* define slots */  
4516        for (let i = 0; i < elements.length; i++) {
4517            const adPos = i+1;
4518            const adHtml = getAdPlacementHtml(adPos);
4519            elements[i].replaceWith(adHtml);
4520            generateHtmlTemplateAd('article-instory-' + adPos, adPos);            
4521        }
4522
4523        window.googletag.cmd.push(function () {            
4524            // Enable services
4525            window.googletag.enableServices();
4526            
4527            /* refresh dynamic ad slots */
4528            window.googletag
4529                .pubads()
4530                .getSlots()
4531                .forEach(function (slot) {
4532                    if (slot.getSlotElementId().includes("instory")) {                        
4533                        window.googletag.pubads().refresh([slot]);                        
4534                    }
4535                });
4536        
4537        });
4538        
4539    }
4540    
4541    
4542    /**
4543    * Dynamically generates an ad and inserts it into the template when called.
4544    * @param  {String} slotName - id of the element to render the ad in
4545    */
4546    function generateHtmlTemplateAd(slotName, adPos) {
4547        // Generate slot name           
4548        var adUnitString = '/58580620/thestar.com/interactives';         
4549        
4550        window.googletag.cmd.push(function() {            
4551        // Add any targeting or any other modifications to the ad here                     
4552         
4553            var mapping = googletag.sizeMapping()
4554            .addSize([992, 0], [[970,250], [728,90], [300,250]]) // desktop
4555            .addSize([0, 0], [300, 250]) // mobile
4556            .build();         
4557                              
4558            window.gptAdSlots[slotName] = window.googletag.defineSlot(adUnitString, [300,250], slotName)
4559                    .defineSizeMapping(mapping)
4560                    .addService(window.googletag.pubads())
4561                    .setTargeting('pos', `${adPos}`); 
4562        });                    
4563      };
4564
4565
4566
4567    document.addEventListener("DOMContentLoaded", (event) => {
4568        window.googletag = window.googletag || {};
4569        window.googletag.cmd = window.googletag.cmd || [];
4570        
4571       /* replace the placeholders with ads */
4572        updateHtmlTemplateAdPlaceholders();
4573        
4574        /* reload ads when breakpoint is crossed, so we don't have leaderboards on mobile if the browser is resized */
4575        function refreshInstoryAds() {
4576            try 
4577            {
4578                googletag.pubads().getSlots().forEach(function(slot) {
4579                    if (slot.getSlotElementId().includes('instory')) {
4580                        googletag.pubads().refresh([slot]);
4581                    }
4582                });
4583                /* only fire refresh once when resizing from desktop */
4584                window.htmlTemplate.adsRefreshed = true;
4585            } catch (err) {
4586                console.log('error refreshing instory ads: ', err);
4587            }
4588        }
4589        
4590        function handleMediaQueryChange(event) {
4591            if (event.matches && !window.htmlTemplate.adsRefreshed) {
4592                refreshInstoryAds(); 
4593            }
4594        }
4595                
4596        window.htmlTemplate = {};
4597        window.htmlTemplate.adsRefreshed = false;
4598        const mediaQuery = window.matchMedia('(max-width: 992px)');
4599        mediaQuery.addEventListener('change', handleMediaQueryChange); 
4600        
4601    });
4602     
4603
4604</script>
4604
4605
4606       
4606<script>
4607       var giftArticleObj ={};
4608       giftArticleObj.dataAssetUrl ="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html";
4609       giftArticleObj.dataassettype ="article";
4610       giftArticleObj.dataassettitle ="Just how popular are Carney's Liberals with Canadian voters? Here's what the polls show right now";
4611       giftArticleObj.dataassetuuid ="1337f598-2b2e-4b63-b5ee-0e923c663892";
4612       giftArticleObj.datagiftserviceids ="[16203,17076,12907,19939,20014,17769,14503,12817,17337,12880,12955,18690,13474,19329,12910,12877,13726,16134,12961,12820,12736,12835,17808,17427,12883,19921,12895,13666,17088,12946,12931,18255,16902,12889,19894,19302,12898,18666,13465,13513,18213,17835,16368,17784,20106,12940,12925,15144,19861,12937,16050,12901,16866,19972,12964,18693,20115,20079,15837,18561,16869,14605,20310,13477,16821,17616,16062,12916,19617,14203,16068,20043,13549,12949,15108,12814,14970,12838,20008,12886,19990,14979,18669,20118,12826,13471,13927,12811,16254,19912,12904,19836,16197,12934,12913,13468,12727,12943,18252,15825,13996,20055,20040,19987,16887,14254,12928,13069,19074,12892,19824,18159,19338,12919,12958,20229,12832,19957,19918,16437,12922,12823,12829,12952,12241,12238,12778,12781,12784,13861,9927,12802,13024,12262]";   
4613       giftArticleObj.sSrc="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/media2/resources/images/article-gifting/gift-icon.svg?_dc=1789580007";
4614       giftArticleObj.dataapiurl = "https://42o3d97vxa.execute-api.us-east-1.amazonaws.com/prod/sign-gift-link";
4615       </script>
4615
4616   
4617            <div class="row">
4618                
4619                
4620                
4621                
4622                
4623            </div>
4624        
4625        <div class="row">
4626            <div class="col-md-12"><div id="tncms-region-global-container-bottom" class="tncms-region "></div></div>
4627        </div><div class="row">
4628                <div id="asset-below" class="asset-below clearfix">
4629                    <div class="tsBelowArticle">
4630                        <div class="asset-comments hidden-print"></div>
4631                    </div>
4632                </div>
4633            </div></section>
4634    <section id="main-bottom-container" class="container-fullscreen-region container-fluid">
4635        <div class="fullscreen-region"><div id="tncms-region-global-container-bottom-fullscreen" class="tncms-region "></div></div>
4636    </section><!-- / main-body-container -->
4637    </div>
4638    <div id="site-footer-container" class="hidden-print">
4639         
4640            <div class="container">
4641                <div id="asset-container-bottom" class="col-md-12">
4642                    <div id="tncms-region-asset_container_bottom" class="tncms-region hidden-print"></div> 
4643                </div>
4644            </div>
4645        
4646
4647        
4648            <footer id="site-footer" class="container_fluid well-main">
4649                
4650                <div id="tncms-region-footer-top-col-full" class="tncms-region "></div>
4651                <div class="row">
4652                    <div id="footer-col-one" class="col-sm-3"><div id="tncms-region-footer-col-one" class="tncms-region "><div id="tncms-block-2826984" class="tncms-block footer-logo"><div id="site-logo-2826984" class="site-logo-container text-left" ><div class="logo-middle">
4653            <a  href="/" aria-label="Home page"><img 
4654            
4655            src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/2faeee7c-8d44-11ed-8c18-eb5483a10695.png?resize=200%2C181" 
4656            srcset="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/2faeee7c-8d44-11ed-8c18-eb5483a10695.png?resize=150%2C136 150w, https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/2faeee7c-8d44-11ed-8c18-eb5483a10695.png?resize=200%2C181 200w, https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/2faeee7c-8d44-11ed-8c18-eb5483a10695.png?resize=225%2C203 225w, https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/custom/image/2faeee7c-8d44-11ed-8c18-eb5483a10695.png 300w"
4657            sizes="(min-width: 1200px) calc(25.00vw - 30px), calc(25vw - 30px)"
4658            
4659            class=" img-responsive lazyload tnt-prop-img"
4660            width="300"
4661            height="271"
4662            alt="site-logo"
4663            ></a>
4664        </div></div></div><div id="tncms-block-2828136" class="tncms-block"><h3 id="footerColOneToggle">theStar.com <i class="visible-xs fas tnt-chevron-down"></i></h3></div></div><div id="tncms-region-nav-footer-col-one-nav" class="tncms-region-nav"><ul id="footer-col-one-nav_menu" class="topNav bullet-nav nav-list" ><li class=" "  data-cmspath="/interactives" data-liurl="/subscribe/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4665                
4666                <a class="nav-link   tnt-section-subscribe-to-the-star"  href="/subscribe/"  tabindex="0">
4667                    <span class="nav-label ">Subscribe to the Star</span>
4668                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/users/admin/service/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4669                
4670                <a class="nav-link   tnt-section-manage-star-subscription"  href="/users/admin/service/"  tabindex="0">
4671                    <span class="nav-label ">Manage Star Subscription</span>
4672                </a></li><li class="  gdpr-removal"  data-cmspath="/interactives" data-liurl="/site/forms/feedback_form/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4673                
4674                <a class="nav-link   tnt-section-feedback"  href="/site/forms/feedback_form/"  tabindex="0">
4675                    <span class="nav-label ">Feedback</span>
4676                </a></li><li class="  gdpr-removal"  data-cmspath="/interactives" data-liurl="/site/forms/removal_request/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4677                
4678                <a class="nav-link   tnt-section-removal-request"  href="/site/forms/removal_request/"  tabindex="0">
4679                    <span class="nav-label ">Removal Request</span>
4680                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/sitemap/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4681                
4682                <a class="nav-link   tnt-section-site-map"  href="/site/sitemap/"  tabindex="0">
4683                    <span class="nav-label ">Site Map</span>
4684                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/newsletters/?itm_source=newsletter-footer-link" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4685                
4686                <a class="nav-link   tnt-section-newsletters"  href="/newsletters/?itm_source=newsletter-footer-link"  tabindex="0">
4687                    <span class="nav-label ">Newsletters</span>
4688                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/opinion/corrections/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4689                
4690                <a class="nav-link   tnt-section-corrections"  href="/opinion/corrections/"  tabindex="0">
4691                    <span class="nav-label ">Corrections</span>
4692                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/todays-news/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4693                
4694                <a class="nav-link   tnt-section-today-s-news"  href="/site/todays-news/"  tabindex="0">
4695                    <span class="nav-label ">Today’s News</span>
4696                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/globenewswire/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4697                
4698                <a class="nav-link   tnt-section-globenewswire"  href="/globenewswire/"  tabindex="0">
4699                    <span class="nav-label ">GlobeNewswire</span>
4700                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/flyers/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4701                
4702                <a class="nav-link   tnt-section-flyers"  href="/site/flyers/"  tabindex="0">
4703                    <span class="nav-label ">Flyers</span>
4704                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/contests/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4705                
4706                <a class="nav-link   tnt-section-contests"  href="/contests/"  tabindex="0">
4707                    <span class="nav-label ">Contests</span>
4708                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/newspapers/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4709                
4710                <a class="nav-link   tnt-section-archives"  href="/newspapers/"  tabindex="0">
4711                    <span class="nav-label ">Archives</span>
4712                </a></li></ul><style>
4713            .affix-top #tncms-region-main-nav-right-region{display: none}
4714            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
4715            @media (max-width: 991px){
4716            #main-navigation{height: 45px}
4717            }
4718            
4719        </style>
4720    </div><div id="tncms-region-footer-col-one-bottom" class="tncms-region "></div></div>
4721    <div id="footer-col-two" class="col-sm-3"><div id="tncms-region-footer-col-two" class="tncms-region "><div id="tncms-block-2828139" class="tncms-block"><h3 id="footerColTwoToggle">Toronto Star Newspapers Ltd. <i class="visible-xs fas tnt-chevron-down"></i></h3></div></div><div id="tncms-region-nav-footer-col-two-nav" class="tncms-region-nav"><ul id="footer-col-two-nav_menu" class="topNav bullet-nav nav-list" ><li class=" "  data-cmspath="/interactives" data-liurl="https://www.tsoffers.ca/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4722                
4723                <a class="nav-link   tnt-section-subscribe-to-home-delivery"  href="https://www.tsoffers.ca/"  target="_blank" rel="noopener" tabindex="0">
4724                    <span class="nav-label ">Subscribe to Home Delivery</span>
4725                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://toriservices.newscyclecloud.com/cgi-bin/cmo_tor-c-cmdb-01.sh/custservice/web/login.html?SiteID=TS" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4726                
4727                <a class="nav-link   tnt-section-manage-home-delivery-subscription"  href="https://toriservices.newscyclecloud.com/cgi-bin/cmo_tor-c-cmdb-01.sh/custservice/web/login.html?SiteID=TS"  target="_blank" rel="noopener" tabindex="0">
4728                    <span class="nav-label ">Manage Home Delivery Subscription</span>
4729                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://tsgroupoffers.c
4729a/welcome" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4730                
4731                <a class="nav-link   tnt-section-corporate-group-subscriptions"  href="https://tsgroupoffers.ca/welcome"  target="_blank" rel="noopener" tabindex="0">
4732                    <span class="nav-label ">Corporate Group Subscriptions</span>
4733                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/about/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4734                
4735                <a class="nav-link   tnt-section-about"  href="/site/about/"  tabindex="0">
4736                    <span class="nav-label ">About</span>
4737                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://www.torstar.ca/sections/journalistic-standards" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4738                
4739                <a class="nav-link   tnt-section-torstar-journalistic-standards"  href="https://www.torstar.ca/sections/journalistic-standards"  target="_blank" rel="noopener" tabindex="0">
4740                    <span class="nav-label ">Torstar Journalistic Standards</span>
4741                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/atkinson/atkinson-principles.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4742                
4743                <a class="nav-link   tnt-section-atkinson-principles"  href="/site/atkinson/atkinson-principles.html"  tabindex="0">
4744                    <span class="nav-label ">Atkinson Principles</span>
4745                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/glossary.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4746                
4747                <a class="nav-link   tnt-section-glossary"  href="/site/static-pages/glossary.html"  tabindex="0">
4748                    <span class="nav-label ">Glossary</span>
4749                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/trust/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4750                
4751                <a class="nav-link   tnt-section-trust-project"  href="/trust/"  tabindex="0">
4752                    <span class="nav-label ">Trust Project</span>
4753                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/contact-us.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4754                
4755                <a class="nav-link   tnt-section-contact-us"  href="/site/static-pages/contact-us.html"  tabindex="0">
4756                    <span class="nav-label ">Contact Us</span>
4757                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://careers.smartrecruiters.com/Torstar/careers" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4758                
4759                <a class="nav-link   tnt-section-join-our-team"  href="https://careers.smartrecruiters.com/Torstar/careers"  target="_blank" rel="noopener" tabindex="0">
4760                    <span class="nav-label ">Join Our Team</span>
4761                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/contact-webmaster.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4762                
4763                <a class="nav-link   tnt-section-contact-webmaster"  href="/site/static-pages/contact-webmaster.html"  tabindex="0">
4764                    <span class="nav-label ">Contact Webmaster</span>
4765                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/faq/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4766                
4767                <a class="nav-link   tnt-section-faq"  href="/site/faq/"  tabindex="0">
4768                    <span class="nav-label ">FAQ</span>
4769                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://torontostar.pressreader.com/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4770                
4771                <a class="nav-link   tnt-section-star-epaper-edition"  href="https://torontostar.pressreader.com/"  target="_blank" rel="noopener" tabindex="0">
4772                    <span class="nav-label ">Star ePaper Edition</span>
4773                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/reprint-license.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4774                
4775                <a class="nav-link   tnt-section-reprint-and-license"  href="/site/static-pages/reprint-license.html"  tabindex="0">
4776                    <span class="nav-label ">Reprint and License</span>
4777                </a></li></ul><style>
4778            .affix-top #tncms-region-main-nav-right-region{display: none}
4779            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
4780            @media (max-width: 991px){
4781            #main-navigation{height: 45px}
4782            }
4783            
4784        </style>
4785    </div><div id="tncms-region-footer-col-two-bottom" class="tncms-region "></div></div>
4786    <div id="footer-col-three" class="col-sm-3"><div id="tncms-region-footer-col-three" class="tncms-region "><div id="tncms-block-2828142" class="tncms-block"><h3 id="footerColThreeToggle">Advertising <i class="visible-xs fas tnt-chevron-down"></i></h3></div></div><div id="tncms-region-nav-footer-col-three-nav" class="tncms-region-nav"><ul id="footer-col-three-nav_menu" class="topNav bullet-nav nav-list" ><li class=" "  data-cmspath="/interactives" data-liurl="https://www.torstaradvertising.ca" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4787                
4788                <a class="nav-link   tnt-section-advertise-with-us"  href="https://www.torstaradvertising.ca"  target="_blank" rel="noopener" tabindex="0">
4789                    <span class="nav-label ">Advertise with Us</span>
4790                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/terms-and-conditions.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4791                
4792                <a class="nav-link   tnt-section-advertising-terms"  href="/site/static-pages/terms-and-conditions.html"  tabindex="0">
4793                    <span class="nav-label ">Advertising Terms</span>
4794                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/static-pages/advertising-standards.html" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4795                
4796                <a class="nav-link   tnt-section-advertising-standards"  href="/site/static-pages/advertising-standards.html"  tabindex="0">
4797                    <span class="nav-label ">Advertising Standards</span>
4798                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/special-features/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4799                
4800                <a class="nav-link   tnt-section-special-features"  href="/special-features/"  tabindex="0">
4801                    <span class="nav-label ">Special Features</span>
4802                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/sponsored-sections/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4803                
4804                <a class="nav-link   tnt-section-sponsored-content"  href="/sponsored-sections/"  tabindex="0">
4805                    <span class="nav-label ">Sponsored Content</span>
4806                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/site/ad-registry/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4807                
4808                <a class="nav-link   tnt-section-election-ads-registry"  href="/site/ad-registry/"  tabindex="0">
4809                    <span class="nav-label ">Election Ads Registry</span>
4810                </a></li></ul><style>
4811            .affix-top #tncms-region-main-nav-right-region{display: none}
4812            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
4813            @media (max-width: 991px){
4814            #main-navigation{height: 45px}
4815            }
4816            
4817        </style>
4818    </div><div id="tncms-region-footer-col-three-bottom" class="tncms-region "></div></div>
4819    <div id="footer-col-four" class="col-sm-3"><div id="tncms-region-footer-col-four" class="tncms-region "><div id="tncms-block-2828145" class="tncms-block"><h3 id="footerColFourToggle">Initiatives <i class="visible-xs fas tnt-chevron-down"></i></h3></div></div><div id="tncms-region-nav-footer-col-four-nav" class="tncms-region-nav"><ul id="footer-col-four-nav_menu" class="topNav bullet-nav nav-list" ><li class=" "  data-cmspath="/interactives" data-liurl="/initiatives/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4820                
4821                <a class="nav-link   tnt-section-the-toronto-star-childrens-charities"  href="/initiatives/"  tabindex="0">
4822                    <span class="nav-label ">The Toronto Star Children's Charities</span>
4823                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/initiatives/santa-claus-fund/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4824                
4825                <a class="nav-link   tnt-section-santa-claus-fund"  href="/initiatives/santa-claus-fund/"  tabindex="0">
4826                    <span class="nav-label ">Santa Claus Fund</span>
4827                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="/initiatives/fresh-air-fund/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4828                
4829                <a class="nav-link   tnt-section-fresh-air-fund"  href="/initiatives/fresh-air-fund/"  tabindex="0">
4830                    <span class="nav-label ">Fresh Air Fund</span>
4831                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://www.thestaradvisers.com/Portal/default.aspx" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4832                
4833                <a class="nav-link   tnt-section-star-advisers"  href="https://www.thestaradvisers.com/Portal/default.aspx"  target="_blank" rel="noopener" tabindex="0">
4834                    <span class="nav-label ">Star Advisers</span>
4835                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://www.classroomconnection.ca/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4836                
4837                <a class="nav-link   tnt-section-classroom-connection"  href="https://www.classroomconnection.ca/"  target="_blank" rel="noopener" tabindex="0">
4838                    <span class="nav-label ">Classroom Connection</span>
4839                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://www.newspapers.com/?iid=619" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4840                
4841                <a class="nav-link   tnt-section-newspaperscom-archives"  href="https://www.newspapers.com/?iid=619"  target="_blank" rel="noopener" tabindex="0">
4842                    <span class="nav-label ">Newspapers.com Archives</span>
4843                </a></li><li class=" "  data-cmspath="/interactives" data-liurl="https://starstore.ca/" data-parent="" data-grandparent="" data-activeitem="" data-cmsUrl="/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
4844                
4845                <a class="nav-link   tnt-section-shop-starstoreca"  href="https://starstore.ca/"  target="_blank" rel="noopener" tabindex="0">
4846                    <span class="nav-label ">Shop StarStore.ca</span>
4847                </a></li></ul><style>
4848            .affix-top #tncms-region-main-nav-right-region{display: none}
4849            .affix #tncms-region-main-nav-right-region{display: flex;column-gap:8px}
4850            @media (max-width: 991px){
4851            #main-navigation{height: 45px}
4852            }
4853            
4854        </style>
4855    </div><div id="tncms-region-footer-col-four-bottom" class="tncms-region "></div></div>
4856                </div>
4857                <div id="tncms-region-footer-bottom-col-full" class="tncms-region "><div id="tncms-block-2826990" class="tncms-block footer-social padding-bottom"><div class="follow-links-2826990 follow-links text-left">
4858    
4859    <section id="block-2826990" class="block emphasis-h4   " ><ul class="list-inline">
4860        
4861            <li>
4862                <a href="https://www.facebook.com/torontostar" title="Facebook" target="_blank" rel="noopener" class="btn btn-xs btn-link fb" data-toggle="tooltip" data-placement="bottom">
4863                    <i class="fab tnt-facebook-f"></i>
4864                    <span class="sr-only">Facebook</span>
4865                </a>
4866            </li>
4867        
4868        
4869            <li>
4870                <a href="https://twitter.com/torontostar" title="Twitter" target="_blank" rel="noopener" class="btn btn-xs btn-link tw" data-toggle="tooltip" data-placement="bottom">
4871                    <i class="fab tnt-x-twitter"></i>
4872                    <span class="sr-only">Twitter</span>
4873                </a>
4874            </li>
4875        
4876        
4877        
4878        
4879            <li>
4880                <a href="https://www.youtube.com/TorontoStar" title="Youtube" target="_blank" rel="noopener" class="btn btn-xs btn-link yt" data-toggle="tooltip" data-placement="bottom">
4881                    <i class="fab tnt-youtube"></i>
4882                    <span class="sr-only">YouTube</span>
4883                </a>
4884            </li>
4885        
4886        
4887        
4888        
4889            <li>
4890                <a href="https://www.instagram.com/thetorontostar/" title="Instagram" target="_blank" rel="noopener" class="btn btn-xs btn-link is" data-toggle="tooltip" data-placement="bottom">
4891                    <i class="fab tnt-instagram"></i>
4892                    <span class="sr-only">Instagram</span>
4893                </a>
4894            </li>
4895        
4896        
4897        
4898        
4899        
4900        
4901        
4902        
4903        
4904        
4905        
4906        
4907        
4908        
4909        
4910        
4911        
4912        
4913        
4914        
4915        
4916        
4917    </ul>
4918    </section>
4919</div>
4920<script type="application/ld+json">
4921{ "@context" : "https://schema.org",
4922  "@type" : "Organization",
4923  "url" : "http://www.thestar.com",
4924  "sameAs" : ["https:\/\/www.facebook.com\/torontostar","https:\/\/twitter.com\/torontostar","https:\/\/www.youtube.com\/TorontoStar","https:\/\/www.instagram.com\/thetorontostar\/"]
4925}
4926</script>
4926
4927<div class="clearfix"></div></div><div id="tncms-block-2831502" class="tncms-block">
4928<div class="footer-right-icons">
4929    
4930        <div class="epaper-link"><a href="https://thestarepaper.pressreader.com/" class="epaper" arial-label="ePaper Link"><img src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/icons/todays-paper.png?_dc=1789580009" alt="ePaper Link" loading="lazy" width=112 height=40></a></div>
4931    
4932    
4933        <div class="apple-link"><a href="https://apps.apple.com/ca/app/thestar-com-iphone/id379481068" arial-label="Apple App Store Download"><img src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/icons/app-store.svg?_dc=1789580009" alt="Apple App Store Logo" loading="lazy" width=112 height=40></a></div>
4934    
4935    
4936        <div class="google-link"><a href="https://play.google.com/store/apps/details?id=com.thestar.www&referrer=utm_source%3Dweb-driver%26utm_medium%3Ddriver%26utm_content%3Dfooter" arial-label="Google Play Store Download"><img src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/images/icons/google-play.svg?_dc=1789580009" alt="Google Play Store Logo" loading="lazy" width=112 height=40></a></div>
4937    
4938    
4939</div></div></div><div id="browser-compatibility-modal" class=" browser-compatibility-wrapper browser-compatibility-modal">
4940        <div class="modal fade" tabindex="-1" role="dialog">
4941            <div class="modal-dialog" role="document">
4942                <div class="modal-content text-center">
4943                    <div class="modal-header">
4944                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
4945                        <h4 class="modal-title">Browser Compatibility</h4>
4946                    </div>
4947                    <div class="modal-body">
4948                        <p class="lead">Your browser is out of date and potentially vulnerable to security risks.<br />We recommend switching to one of the following browsers:</p>
4949                        <div class="btn-group" role="group" aria-label="Outdated browser notice">
4950                            <a href="https://www.microsoft.com/en-us/edge" role="button" class="btn btn-default list-group-item"><i class="fab tnt-edge"></i>Microsoft Edge</a>
4951                            <a href="https://www.google.com/chrome/" role="button" class="btn btn-default list-group-item"><i class="fab tnt-chrome"></i>Google Chrome</a>
4952                            <a href="https://www.mozilla.org/en-US/firefox/" role="button" class="btn btn-default list-group-item"><i class="fab tnt-firefox"></i>Firefox</a>
4953                        </div>
4954                    </div>
4955                </div><!-- /.modal-content -->
4956            </div><!-- /.modal-dialog -->
4957        </div><!-- /.modal -->
4958    </div>
4959            </footer>
4960        
4961
4962        <div id="site-copyright-container" class="container_fluid">
4963            <div id="tncms-region-footer-copyright" class="tncms-region "><div id="tncms-block-3399231" class="tncms-block">
4964    <div id="site-copyright" class="row copyright">
4965    <div class="copyrightLinks">
4966        
4967        <a href="https://www.torstar.ca/terms" aria-label="Terms of Use">Terms of Use</a>
4968        
4969        
4970        | <a href="https://www.torstar.ca/privacy-policy" aria-label="Privacy Policy">Privacy Policy</a>
4971        
4972        
4973        | <a href="https://www.torstar.ca/sections/subscription-terms" aria-label="Subscription Terms">Subscription Terms</a>
4974        
4975        
4976        | <a href="/site/static-pages/terms-and-conditions.html" aria-label="Advertising Terms">Advertising Terms</a>
4977        
4978        
4979        | <a href="/site/static-pages/accessibility.html" aria-label="Accessibility">Accessibility</a>
4980        
4981    </div>
4982    <div class="copyrightMessage">
4983        100% Canadian Owned.<br />
4984© Copyright Toronto Star Newspapers Limited 1996 - 2026<br />
4985The Toronto Star and thestar.com, each property of Toronto Star Newsp
4985apers Limited, 8 Spadina Avenue, 10th Floor, Toronto, ON M5V 0S8
4986    </div>
4987    
4988</div></div></div>
4989        </div>
4990    </div>
4991    
4992    
4993        </div><!-- / offcanvas close  -->
4994    
4995
4996    
4997    <div id="sticky-anchor"><div id="tncms-region-page_sticky_anchor" class="tncms-region hidden-print collapse in"><div id="tncms-block-3143188" class="tncms-block visible-xs"><div class="tnt-ads-container text-center  " >
4998        <div id="ad-3143188" class="tnt-ads dfp-ad" data-lazy="true" data-refresh="true" data-mobile-refresh="true" data-bidding-refresh="true" >
4999            
4999<script>
5000                googletag.cmd.push(function() {
5001                        googletag.display('ad-3143188');
5002                        
5003                });
5004            </script>
5004
5005        </div>
5006    </div></div></div></div>
5007    <!-- / site-container close -->
5008    </div>
5009    
5010    
5010<script>
5011        window.__tnt = window.__tnt || {};
5012        __tnt.compatibility = __tnt.compatibility || {};
5013
5014        __tnt.compatibility.status = '';
5015        __tnt.compatibility.check = function() {
5016            if (typeof __tnt.advertisements == 'undefined') {
5017                __tnt.compatibility.status = 'FAIL: object 0 undefined';
5018                return false;
5019            }
5020            return true;
5021        };
5022        __tnt.compatibility.notification = function() {
5023            };
5024        (function() {
5025            function compatibilityCheck() {
5026                if (!__tnt.compatibility.check()) {
5027                    __tnt.trackEvent({
5028                        'category':'subscription',
5029                        'action':'adblock',
5030                        'label':'adblock detected',
5031                        'value':'1'
5032                    });
5033                    __tnt.compatibility.notification();
5034                }
5035            }
5036
5037            if (document.readyState != 'loading') {
5038                compatibilityCheck();
5039            } else {
5040                document.addEventListener('DOMContentLoaded', compatibilityCheck);
5041            }
5042        })();
5043    </script>
5043
5044    
5045    
5045<script>
5046        jQuery(function() {
5047            if(typeof TNCMS.Tracking != 'undefined'){
5048                jQuery(TNCMS.Tracking.trackDeclarativeEvents);
5049            }dataLayer.push({'tncms.client.recent_five':__tnt.recentFive.add("1337f598-2b2e-4b63-b5ee-0e923c663892")});});
5050    </script>
5050
5051
5052    
5052<script>
5053        __tnt.trackEvent = function(obj) {
5054            if (typeof obj === 'object') {
5055                    if (obj.category && obj.action) {
5056                        __tnt.googleEvent(obj);
5057                    } else if (obj.network && obj.socialAction) {
5058                        __tnt.googleSocial(obj);
5059                    } else if (obj.url) {
5060                        __tnt.googlePageView(obj);
5061                    }
5062                    if (typeof TNCMS.Tracking != 'undefined' && obj.metric) {
5063                        TNCMS.Tracking.addEvent({
5064                            app: obj.app,
5065                            metric: obj.metric,
5066                            id: obj.uuid
5067                        });
5068                    }
5069            }
5070        };
5071
5072        if (__tnt.trackEventLater.length > 0) {
5073            __tnt.trackEventLater.forEach(function(obj) {
5074                __tnt.trackEvent(obj);
5075            });
5076        }
5077
5078        Array.from(document.querySelectorAll('body [data-track]')).forEach(function(el) {
5079            el.addEventListener(__tnt.client.clickEvent, function() {
5080                __tnt.trackEvent(JSON.parse(el.dataset.track));
5081            });
5082        });
5083        Array.from(document.querySelectorAll('body [data-tncms-track-event]')).forEach(function(el) {
5084            el.addEventListener(__tnt.client.clickEvent, function() {
5085                __tnt.trackEvent(JSON.parse(el.dataset.tncmsTrackEvent));
5086            });
5087        });
5088        
5089        Array.from(document.querySelectorAll('body [data-tncms-track-dmp]')).forEach(function(el) {
5090            el.addEventListener(__tnt.client.clickEvent, function() {
5091                var dmpData = el.dataset.tncmsTrackDmp;
5092                
5093            });
5094        });
5095    
5096    </script>
5096
5097    
5098    <!-- Parsely Root object -->
5099    <div id="parsely-root" style="display: none">
5100        <span id="parsely-cfg" data-parsely-site="thestar.com"></span>
5101    </div>            
5102                <link rel="preload" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/subscription-assets.css?_dc=1789580009" as="style" onload="this.onload=null;this.rel='stylesheet'">
5103                <noscript><link rel="stylesheet" href="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/styles/common/subscription-assets.css?_dc=1789580009"></noscript>
5104            
5105        
5106        
5107    <form id="user-login-form-generic" style="display:none" role="form" method="post" action="https://www.thestar.com/users/login/">
5108        <input type="hidden" name="x_org_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
5109        <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
5110        <input type="hidden" name="username" value="provider:Metroland Hub">
5111        <input type="hidden" name="site" value="thestar.com">
5112    </form>
5113    
5114<div id="tn-pay-card-templates" class="tn-pay-card-templates wallet-card-icons" hidden><template class="visa" data-card="Visa" data-card-spreedly="visa"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.visa.32937c5b818e2f6145f243b6ccc36fb6.svg" alt="Visa" /></template><template class="master" data-card="Mastercard" data-card-spreedly="master"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.mastercard.3cb5b7ce700383b4bf471acc2ecf7828.svg" alt="Mastercard" /></template><template class="american_express" data-card="American Express" data-card-spreedly="american_express"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.amex.9ae30a7ced41276fe9f087fdbc2e2bea.svg" alt="American Express" /></template><template class="discover" data-card="Discover" data-card-spreedly="discover"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.discover.df3351b64454849e4220183966bb80bd.svg" alt="Discover" /></template><template class="jcb" data-card="JCB" data-card-spreedly="jcb"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.jcb.f824c86d80073c9649d3ec9ebc995f64.svg" alt="JCB" /></template><template class="diners_club" data-card="Diners Club" data-card-spreedly="diners_club"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.diners.b2a3028ea5bece90a83cd302043a20f6.svg" alt="Diners Club" /></template><template class="dankort" data-card="Dankort" data-card-spreedly="dankort"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.creditcard.d9a15f41d5d4bd97cda40c4a67e08907.svg" alt="Credit Card" /></template><template class="other" data-card="other"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.creditcard.d9a15f41d5d4bd97cda40c4a67e08907.svg" alt="Credit Card" /></template>
5115</div>
5116<div id="access-offers-modal"  class=" access-offers-wrapper access-modal access-offers-modal access-display-default" data-offers-in-page="true" data-display-mode="in-page" data-rate-display="service">
5117        <div class="modal fade" data-backdrop="static" data-keyboard="false">
5118            <div class="modal-dialog offer-tab">
5119                <!-- OFFERS TAB -->
5120                <div id="modal-offers-tab" class="modal-content primary-tab hide" data-active-class="offer-tab">
5121                    <div class="modal-header">
5122                        <button type="button" class="tab-back btn btn-sm btn-default" aria-label="Previous Tab">
5123                            <span>Back</span>
5124                        </button>
5125
5126                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5127                            <span aria-hidden="true">&times;</span>
5128                        </button>   
5129                        <h3 class="offer-group-title text-center">Offer</h3>
5130                    </div>
5131                    <div class="modal-body">
5132
5133                        <template class="template promo-error-template">
5134                            <div class="promo-error alert alert-warning">
5135    <p><strong>Sorry</strong>, an error occurred.</p>
5136</div></template><template class="template-promo-service hide"><div class="promotion-service subscription-service panel panel-default">
5137    <h4 class="method-featured"></h4>
5138    <h3 class="method-header"></h3>
5139    <div class="method-image"></div>
5140    <div class="offer-details">
5141        <p class="offer-rate"></p>
5142        <p class="offer-limits">Already Subscribed!</p>
5143        <p class="offer-cycle"></p>
5144        <p class="offer-savings"></p>
5145    </div>
5146
5147    <div class="method-footer">
5148        <a data-subscription-service="" class="method-link btn btn-primary btn-lg"><span class="no-services">Get Started</span><span class="user-owns-this-service">Manage Service</span></a>
5149        <p class="offer-cancel">Cancel anytime</p>
5150    </div></div></template>
5151
5152                        <div id="access-modal-description" class="text-center offer-group-description"></div>
5153                        <div class="access-login access-login-super col-sm-8 col-sm-push-2">
5154    <div class="logged-in alert alert-success row purchase-standard" role="alert">
5155        <div class="col-sm-8 text-left">You are logged in <strong class="tn-user-screenname"></strong></div>
5156        <div class="col-sm-4 text-right">&nbsp;<a class="alert-link" href="https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html" rel="nofollow">Switch accounts</a></div>
5157    </div>
5158
5159                        </div>
5160                        <div class="clearfix"></div>
5161                        
5162                        <div class="promo-loading text-center font-larger" style="display:none;">
5163    <span class="fas tnt-spinner tnt-spin"></span>
5164</div><div id="access-methods" class="output access-methods-list" data-referer="https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html" data-paywall-display="modal">
5165                            <div class="text-center">
5166                                <i class="fas tnt-spinner tnt-spin" style="font-size:64px;"></i>
5167                            </div>
5168                        </div>
5169
5170                        <div class="offer-group-secure-signup text-center">Secure transaction.<span class="access-login access-login-link not-logged-in">
5171                                <a href="javascript:void(0)" role="button" class="login-toggle">Have an account? Log In</a>
5172                            </span></div></div>
5173                    <div class="clearfix"></div>
5174                </div>
5175            
5176                <!-- SIGNUP TAB -->
5177                <div id="user-modal-tab-signup" class="modal-content hide" >
5178                    <div class="modal-header">
5179                        <button type="button" class="tab-back btn btn-sm btn-default" aria-label="Previous Tab">
5180                            <span>Back</span>
5181                        </button>
5182                    
5183                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5184                            <span aria-hidden="true">&times;</span>
5185                        </button>
5186                        
5187                        <h3 class="text-center">Sign Up</h3>
5188                    </div>
5189                    <div class="modal-body"><div class="user-register-blox">
5190                <form id="user-register-form" class="user-login-form" role="form" method="post" action="https://www.thestar.com/users/signup/"><input name="referer_url" type="hidden" value="/"><div class="alert alert-danger critical-error hide">
5191                        <p>Account processing issue - the email address may already exist</p>
5192                    </div>
5193
5194                    <fieldset>
5195                        <legend class="sr-only">User information</legend>
5196                            <div class="form-group row">
5197                                <label for="input-firstname" class="control-label hide">
5198                                    
5199                                        <span class="text-danger">*</span>
5200                                    
5201                                    First name
5202                                </label>
5203                                <div class="input-container col-xs-6">
5204                                    <input id="input-firstname" class="form-control first_last_names" type="text" name="first_name" value="" required placeholder="First name">
5205                                </div>
5206                                
5207                                <label for="input-lastname" class="control-label hide">
5208                                    
5209                                        <span class="text-danger">*</span>
5210                                    
5211                                    Last name
5212                                </label>
5213                                <div class="input-container col-xs-6">
5214                                    <input id="input-lastname" class="form-control first_last_names" type="text" name="last_name" value="" required placeholder="Last name">
5215                                    
5216                                </div>
5217                            </div>
5218                        <div class="form-group">
5219                            <label for="input-email" class="control-label hide"><span class="text-danger">*</span> Email Address</label>
5220                            <div class="input-container">
5221                                <input id="input-email" class="form-control" type="email" name="email" value="" placeholder="Email Address" data-toggle="tooltip" data-placement="top" title="Your email address will be used to confirm your account. We won't share it with anyone else." required>
5222                                <span class="sr-only">Your email address will be used to confirm your account. We won't share it with anyone else.</span>
5223                            </div>
5224                        </div>
5225
5226                        <div class="form-group">
5227                                <label for="input-password" class="control-label hide"><span class="text-danger">*</span> Password</label>
5228                                <div class="input-container">
5229                                    <input id="input-password" class="form-control" type="password" name="password" autocomplete="off" placeholder="Password" data-toggle="tooltip" data-placement="top" title="Create a password that only you will remember. If you forget it, you'll be able to recover it using your email address." required>
5230                                    <p class="help-block">Must be at least 8 characters, not contain repeating characters (e.g., 111), and not contain sequential numbers (e.g., 123).</p>
5231                                    <span class="sr-only">Create a password that only you will remember. If you forget it, you'll be able to recover it using your email address.</span>
5232                                </div>
5233                            </div>
5234
5235                            <div class="form-group">
5236                                <label for="input-confirm-password" class="control-label hide"><span class="text-danger">*</span> Confirm Password</label>
5237                                <div class="input-container">
5238                                    <input id="input-confirm-password" class="form-control" type="password" name="password_verify" autocomplete="off" placeholder="Confirm Password" data-toggle="tooltip" data-placement="top" title="Confirm your password." required>
5239                                    <span class="sr-only">Confirm your password.</span>
5240                                </div>
5241                            </div></fieldset>
5242                    
5243                    
5244                        <fieldset>
5245                            <legend>Contact information</legend>
5246
5247                            
5248                                <div class="form-group">
5249                                    <label for="input-phone" class="control-label">
5250                                        
5251    
5252 Phone
5253                                    </label>
5254                                    <div class="input-container">
5255                                        <input id="input-phone" class="form-control phoneUS" type="tel" name="phone" value=""  
5256    
5257 data-mask="(000) 000-0000">
5258                                        
5259                                    </div>
5260                                </div>
5261                            
5262
5263                            
5264                                <div class="form-group">
5265                                    <label for="select-country" class="control-label">
5266    
5267 Country</label>
5268                                    <div class="input-container">
5269                                        <select id="select-country" name="country" class="form-control" 
5270    
5271><option value="US" >United States of America</option><option value="VI" >US Virgin Islands</option><option value="UM" >United States Minor Outlying Islands</option><option value="CA" selected>Canada</option><option value="MX" >Mexico, United Mexican States</option><option value="BS" >
5271Bahamas, Commonwealth of the</option><option value="CU" >Cuba, Republic of</option><option value="DO" >Dominican Republic</option><option value="HT" >Haiti, Republic of</option><option value="JM" >Jamaica</option><option value="AF" >Afghanistan</option><option value="AL" >Albania, People's Socialist Republic of</option><option value="DZ" >Algeria, People's Democratic Republic of</option><option value="AS" >American Samoa</option><option value="AD" >Andorra, Principality of</option><option value="AO" >Angola, Republic of</option><option value="AI" >Anguilla</option><option value="AQ" >Antarctica (the territory South of 60 deg S)</option><option value="AG" >Antigua and Barbuda</option><option value="AR" >Argentina, Argentine Republic</option><option value="AM" >Armenia</option><option value="AW" >Aruba</option><option value="AU" >Australia, Commonwealth of</option><option value="AT" >Austria, Republic of</option><option value="AZ" >Azerbaijan, Republic of</option><option value="BH" >Bahrain, Kingdom of</option><option value="BD" >Bangladesh, People's Republic of</option><option value="BB" >Barbados</option><option value="BY" >Belarus</option><option value="BE" >Belgium, Kingdom of</option><option value="BZ" >Belize</option><option value="BJ" >Benin, People's Republic of</option><option value="BM" >Bermuda</option><option value="BT" >Bhutan, Kingdom of</option><option value="BO" >Bolivia, Republic of</option><option value="BA" >Bosnia and Herzegovina</option><option value="BW" >Botswana, Republic of</option><option value="BV" >Bouvet Island (Bouvetoya)</option><option value="BR" >Brazil, Federative Republic of</option><option value="IO" >British Indian Ocean Territory (Chagos Archipelago)</option><option value="VG" >British Virgin Islands</option><option value="BN" >Brunei Darussalam</option><option value="BG" >Bulgaria, People's Republic of</option><option value="BF" >Burkina Faso</option><option value="BI" >Burundi, Republic of</option><option value="KH" >Cambodia, Kingdom of</option><option value="CM" >Cameroon, United Republic of</option><option value="CV" >Cape Verde, Republic of</option><option value="KY" >Cayman Islands</option><option value="CF" >Central African Republic</option><option value="TD" >Chad, Republic of</option><option value="CL" >Chile, Republic of</option><option value="CN" >China, People's Republic of</option><option value="CX" >Christmas Island</option><option value="CC" >Cocos (Keeling) Islands</option><option value="CO" >Colombia, Republic of</option><option value="KM" >Comoros, Union of the</option><option value="CD" >Congo, Democratic Republic of</option><option value="CG" >Congo, People's Republic of</option><option value="CK" >Cook Islands</option><option value="CR" >Costa Rica, Republic of</option><option value="CI" >Cote D'Ivoire, Ivory Coast, Republic of the</option><option value="CY" >Cyprus, Republic of</option><option value="CZ" >Czech Republic</option><option value="DK" >Denmark, Kingdom of</option><option value="DJ" >Djibouti, Republic of</option><option value="DM" >Dominica, Commonwealth of</option><option value="EC" >Ecuador, Republic of</option><option value="EG" >Egypt, Arab Republic of</option><option value="SV" >El Salvador, Republic of</option><option value="GQ" >Equatorial Guinea, Republic of</option><option value="ER" >Eritrea</option><option value="EE" >Estonia</option><option value="ET" >Ethiopia</option><option value="FO" >Faeroe Islands</option><option value="FK" >Falkland Islands (Malvinas)</option><option value="FJ" >Fiji, Republic of the Fiji Islands</option><option value="FI" >Finland, Republic of</option><option value="FR" >France, French Republic</option><option value="GF" >French Guiana</option><option value="PF" >French Polynesia</option><option value="TF" >French Southern Territories</option><option value="GA" >Gabon, Gabonese Republic</option><option value="GM" >Gambia, Republic of the</option><option value="GE" >Georgia</option><option value="DE" >Germany</option><option value="GH" >Ghana, Republic of</option><option value="GI" >Gibraltar</option><option value="GR" >Greece, Hellenic Republic</option><option value="GL" >Greenland</option><option value="GD" >Grenada</option><option value="GP" >Guadaloupe</option><option value="GU" >Guam</option><option value="GT" >Guatemala, Republic of</option><option value="GN" >Guinea, Revolutionary
5272People's Rep'c of</option><option value="GW" >Guinea-Bissau, Republic of</option><option value="GY" >Guyana, Republic of</option><option value="HM" >Heard and McDonald Islands</option><option value="VA" >
5272Holy See (Vatican City State)</option><option value="HN" >Honduras, Republic of</option><option value="HK" >Hong Kong, Special Administrative Region of China</option><option value="HR" >Hrvatska (Croatia)</option><option value="HU" >Hungary, Hungarian People's Republic</option><option value="IS" >Iceland, Republic of</option><option value="IN" >India, Republic of</option><option value="ID" >Indonesia, Republic of</option><option value="IR" >Iran, Islamic Republic of</option><option value="IQ" >Iraq, Republic of</option><option value="IE" >Ireland</option><option value="IL" >Israel, State of</option><option value="IT" >Italy, Italian Republic</option><option value="JP" >Japan</option><option value="JO" >Jordan, Hashemite Kingdom of</option><option value="KZ" >Kazakhstan, Republic of</option><option value="KE" >Kenya, Republic of</option><option value="KI" >Kiribati, Republic of</option><option value="KP" >Korea, Democratic People's Republic of</option><option value="KR" >Korea, Republic of</option><option value="KW" >Kuwait, State of</option><option value="KG" >Kyrgyz Republic</option><option value="LA" >Lao People's Democratic Republic</option><option value="LV" >Latvia</option><option value="LB" >Lebanon, Lebanese Republic</option><option value="LS" >Lesotho, Kingdom of</option><option value="LR" >Liberia, Republic of</option><option value="LY" >Libyan Arab Jamahiriya</option><option value="LI" >Liechtenstein, Principality of</option><option value="LT" >Lithuania</option><option value="LU" >Luxembourg, Grand Duchy of</option><option value="MO" >Macao, Special Administrative Region of China</option><option value="MK" >Macedonia, the former Yugoslav Republic of</option><option value="MG" >Madagascar, Republic of</option><option value="MW" >Malawi, Republic of</option><option value="MY" >Malaysia</option><option value="MV" >Maldives, Republic of</option><option value="ML" >Mali, Republic of</option><option value="MT" >Malta, Republic of</option><option value="MH" >Marshall Islands</option><option value="MQ" >Martinique</option><option value="MR" >Mauritania, Islamic Republic of</option><option value="MU" >Mauritius</option><option value="YT" >Mayotte</option><option value="FM" >Micronesia, Federated States of</option><option value="MD" >Moldova, Republic of</option><option value="MC" >Monaco, Principality of</option><option value="MN" >Mongolia, Mongolian People's Republic</option><option value="MS" >Montserrat</option><option value="MA" >Morocco, Kingdom of</option><option value="MZ" >Mozambique, People's Republic of</option><option value="MM" >Myanmar</option><option value="NA" >Namibia</option><option value="NR" >Nauru, Republic of</option><option value="NP" >Nepal, Kingdom of</option><option value="AN" >Netherlands Antilles</option><option value="NL" >Netherlands, Kingdom of the</option><option value="NC" >New Caledonia</option><option value="NZ" >New Zealand</option><option value="NI" >Nicaragua, Republic of</option><option value="NE" >Niger, Republic of the</option><option value="NG" >Nigeria, Federal Republic of</option><option value="NU" >Niue, Republic of</option><option value="NF" >Norfolk Island</option><option value="MP" >Northern Mariana Islands</option><option value="NO" >Norway, Kingdom of</option><option value="OM" >Oman, Sultanate of</option><option value="PK" >Pakistan, Islamic Republic of</option><option value="PW" >Palau</option><option value="PS" >Palestinian Territory, Occupied</option><option value="PA" >Panama, Republic of</option><option value="PG" >Papua New Guinea</option><option value="PY" >Paraguay, Republic of</option><option value="PE" >Peru, Republic of</option><option value="PH" >Philippines, Republic of the</option><option value="PN" >Pitcairn Island</option><option value="PL" >Poland, Polish People's Republic</option><option value="PT" >Portugal, Portuguese Republic</option><option value="PR" >Puerto Rico</option><option value="QA" >Qatar, State of</option><option value="RE" >Reunion</option><option value="RO" >Romania, Socialist Republic of</option><option value="RU" >Russian Federation</option><option value="RW" >Rwanda, Rwandese Republic</option><option value="WS" >Samoa, Independent State of</option><option value="SM" >San Marino, Republic of</option><option value="ST" >Sao Tome and Principe, Democratic Republic of</option><option value="SA" >Saudi Arabia, Kingdom of</option><option value="SN" >Senegal, Republic of</option><option value="CS" >Serbia and Montenegro</option><option value="SC" >Seychelles, Republic of</option><option value="SL" >Sierra Leone, Republic of</option><option value="SG" >Singapore, Republic of</option><option value="SK" >Slovakia (Slovak Republic)</option><option value="SI" >Slovenia</option><option value="SB" >Solomon Islands</option><option value="SO" >Somalia, Somali Republic</option><option value="ZA" >South Africa, Republic of</option><option value="GS" >South Georgia and the South Sandwich Islands</option><option value="ES" >Spain, Spanish State</option><option value="LK" >Sri Lanka, Democratic Socialist Republic of</option><option value="SH" >St. Helena</option><option value="KN" >St. Kitts and Nevis</option><option value="LC" >St. Lucia</option><option value="PM" >St. Pierre and Miquelon</option><option value="VC" >St. Vincent and the Grenadines</option><option value="SD" >
5272Sudan, Democratic Republic of the</option><option value="SR" >Suriname, Republic of</option><option value="SJ" >Svalbard & Jan Mayen Islands</option><option value="SZ" >Swaziland, Kingdom of</option><option value="SE" >Sweden, Kingdom of</option><option value="CH" >Switzerland, Swiss Confederation</option><option value="SY" >Syrian Arab Republic</option><option value="TW" >Taiwan, Province of China</option><option value="TJ" >Tajikistan</option><option value="TZ" >Tanzania, United Republic of</option><option value="TH" >Thailand, Kingdom of</option><option value="TL" >Timor-Leste, Democratic Republic of</option><option value="TG" >Togo, Togolese Republic</option><option value="TK" >Tokelau (Tokelau Islands)</option><option value="TO" >Tonga, Kingdom of</option><option value="TT" >Trinidad and Tobago, Republic of</option><option value="TN" >Tunisia, Republic of</option><option value="TR" >Turkey, Republic of</option><option value="TM" >Turkmenistan</option><option value="TC" >Turks and Caicos Islands</option><option value="TV" >Tuvalu</option><option value="UG" >Uganda, Republic of</option><option value="UA" >Ukraine</option><option value="AE" >United Arab Emirates</option><option value="GB" >United Kingdom of Great Britain & N. Ireland</option><option value="UY" >Uruguay, Eastern Republic of</option><option value="UZ" >Uzbekistan</option><option value="VU" >Vanuatu</option><option value="VE" >Venezuela, Bolivarian Republic of</option><option value="VN" >Viet Nam, Socialist Republic of</option><option value="WF" >Wallis and Futuna Islands</option><option value="EH" >Western Sahara</option><option value="YE" >Yemen</option><option value="ZM" >Zambia, Republic of</option><option value="ZW" >Zimbabwe</option></select>
5273                                    </div>
5274                                </div>
5275
5276                                <div class="form-group">
5277                                    <label for="input-address" class="control-label">
5278    
5279 Address</label>
5280                                    <div class="input-container">
5281                                        <input id="input-address" class="form-control" type="text" name="address" value="" 
5282    
5283>
5284                                    </div>
5285                                </div>
5286
5287                                <div class="form-group">
5288                                    <label for="input-city" class="control-label">
5289    
5290 City</label>
5291                                    <div class="input-container">
5292                                        <input id="input-city" class="form-control" type="text" name="municipality" value="Toronto" 
5293    
5294>
5295                                    </div>
5296                                </div>
5297
5298                                <div class="form-group">
5299                                    <label for="select-state" class="control-label">
5300    
5301 State</label>
5302                                    <div class="input-container">
5303                                        <select id="select-state" name="region" class="form-control" 
5304    
5305><option value="AL" >Alabama</option><option value="AK" >Alaska</option><option value="AZ" >Arizona</option><option value="AR" >Arkansas</option><option value="CA" >California</option><option value="CO" >Colorado</option><option value="CT" >Connecticut</option><option value="DE" >Delaware</option><option value="FL" >Florida</option><option value="GA" >Georgia</option><option value="HI" >Hawaii</option><option value="ID" >Idaho</option><option value="IL" >Illinois</option><option value="IN" >Indiana</option><option value="IA" >Iowa</option><option value="KS" >Kansas</option><option value="KY" >Kentucky</option><option value="LA" >Louisiana</option><option value="ME" >Maine</option><option value="MD" >Maryland</option><option value="MA" >Massachusetts</option><option value="MI" >Michigan</option><option value="MN" >Minnesota</option><option value="MS" >Mississippi</option><option value="MO" >Missouri</option><option value="MT" >Montana</option><option value="NE" >Nebraska</option><option value="NV" >Nevada</option><option value="NH" >New Hampshire</option><option value="NJ" >New Jersey</option><option value="NM" >New Mexico</option><option value="NY" >New York</option><option value="NC" >North Carolina</option><option value="ND" >North Dakota</option><option value="OH" >Ohio</option><option value="OK" >Oklahoma</option><option value="OR" >Oregon</option><option value="PA" >Pennsylvania</option><option value="RI" >Rhode Island</option><option value="SC" >South Carolina</option><option value="SD" >South Dakota</option><option value="TN" >Tennessee</option><option value="TX" >Texas</option><option value="UT" >Utah</option><option value="VT" >Vermont</option><option value="VA" >Virginia</option><option value="WA" >Washington</option><option value="DC" >Washington D.C.</option><option value="WV" >West Virginia</option><option value="WI" >Wisconsin</option><option value="WY" >Wyoming</option><option value="PR" >Puerto Rico</option><option value="VI" >US Virgin Islands</option><option value="AA" >Armed Forces Americas</option><option value="AP" >Armed Forces Pacific</option><option value="AE" >Armed Forces Europe</option><option value="MP" >Northern Mariana Islands</option><option value="MH" >Marshall Islands</option><option value="AS" >American Samoa</option><option value="FM" >Federated States of Micronesia</option><option value="GU" >Guam</option><option value="PW" >Palau</option><option value="AB" >Alberta, Canada</option><option value="BC" >British Columbia, Canada</option><option value="MB" >Manitoba, Canada</option><option value="NB" >New Brunswick, Canada</option><option value="NL" >Newfoundland, Canada</option><option value="NS" >Nova Scotia, Canada</option><option value="NT" >Northwest Territories, Canada</option><option value="NU" >Nunavut, Canada</option><option value="ON" selected>Ontario, Canada</option><option value="PE" >Prince Edward Island, Canada</option><option value="QC" >Quebec, Canada</option><option value="SK" >Saskatchewan, Canada</option><option value="YT" >Yukon Territory, Canada</option></select>
5306                                    </div>
5307                                </div>
5308
5309                                <div class="form-group">
5310                                    <label for="input-postcode" class="control-label">
5311    
5312 Postal Code</label>
5313                                    <div class="input-container">
5314                                        <input id="input-postcode" class="form-control" type="text" name="postcode" value=""  
5315    
5316>
5317                                    </div>
5318                                    
5319                                </div>
5320                            
5321                        </fieldset>
5322                    
5323
5324                    
5325                        <fieldset>
5326                            <legend class="sr-only">Birth date</legend>
5327                            <div class="form-group">
5328                                <label for="dp-birthday" class="control-label sr-only">
5329                                    
5330    
5331 Birthday
5332                                </label>
5333                                <div class="input-container">
5334                                    <input id="dp-birthday" class="form-control" name="dp_birthday" placeholder="Birthday" value="" 
5335    
5336>
5337                                    <input id="input-birthday" type="hidden" name="birthday" value="" disabled>
5338                                </div>
5339                            </div>
5340                            
5340<script>
5341                                jQuery(document).ready(function($){
5342                                    function dateToYMD(date) {
5343                                        var yyyy = date.getFullYear();
5344                                        var mm = date.getMonth() + 1;
5345                                        var dd = date.getDate();
5346                                        return '' + yyyy + '-' + (mm <= 9 ? '0' + mm : mm) + '-' + (dd <= 9 ? '0' + dd : dd);
5347                                    }
5348
5349                                    $('#dp-birthday').datepicker({ 
5350                                        format:'mm-dd-yyyy',
5351                                        startView: 2,
5352                                        endDate: 'now',
5353                                        orientation:'top left',
5354                                        autoclose: true,
5355                                    }).on('hide', function(e){
5356                                        if( $('#dp-birthday').val() != '' ){
5357                                            // mm-dd-yyyy
5358                                            var sBirthdate = $('#dp-birthday').datepicker('getDate');
5359                                            $('#input-birthday').val(dateToYMD(sBirthdate)).prop('disabled', false);
5360                                        }
5361                                        e.stopPropagation();
5362                                    });
5363
5364                                    if( $('#input-birthday').val() != '' ){
5365                                        // yyyy-mm-dd
5366                                        var sBirthdate = $('#input-birthday').val().split('-');
5367                                        // mm-dd-yyyy
5368                                        var sNewBirthdate = sBirthdate[1] + '-' + sBirthdate[2] + '-' + sBirthdate[0];
5369                                        $('#dp-birthday').val(sNewBirthdate);
5370                                    }
5371                                });
5372                            </script>
5372
5373                        </fieldset>
5374                    
5375
5376                    
5377                        <div class="form-group">
5378                            <div class="input-container">
5379                                <label class="center-block text-center"><span class="sr-only">CAPTCHA</span><div class="tncms-recaptcha-wrapper"><div class="g-recaptcha" data-sitekey="6LdvF8kSAAAAAHtjCXotWkt5byjdinh-RPyWTH5J" data-action="submit"></div><input type="hidden" name="g-recaptcha-is-checkbox" value="yes"></div></label>
5380                            </div>
5381                        </div><div class="user-register-submit form-group">
5382                        <div class="input-container text-center">
5383                            <button type="submit" class="btn btn-lg btn-primary">Create Account</button>
5384                        </div>
5385                    </div></form><div class="user-login-or-container">
5386                                <span class="user-login-or text-muted">or</span>
5387                            </div>
5388                            <p class="text-center">Sign up with</p><div class="user-login-fed-auth">
5389    <form role="form" method="post" action="https://www.thestar.com/users/login/" class=""><input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><button type="submit" name="username" value="provider:appleid" class="btn btn-block btn-lg btn-appleid">
5390                <span class="fab tnt-apple tnt-fw"></span> Sign in with Apple</button><button type="submit" name="username" value="provider:facebook" class="btn btn-block btn-lg btn-facebook">
5391                <span class="fab tnt-facebook-square tnt-fw"></span> Sign in with Facebook</button><button type="submit" name="username" value="provider:google" class="btn btn-block btn-lg btn-google">
5392                <span class="fab tnt-google tnt-fw"></span> Sign in with Google</button></form>
5393</div></div>
5394    
5394<script>
5395        window.tntSignup = document.createEvent('Event');
5396        tntSignup.initEvent('tnt-signup',true,true,{});
5397
5398        jQuery(document).ready(function($){
5399            $('#user-register-form input').each(function(){
5400                if( $(this).attr('data-mask') && $(this).data('mask') !== '' ){
5401                    $(this).mask( $(this).data('mask') );
5402                }
5403            });
5404    
5405            if( $('#input-smslist-phone').length > 0 && $('#input-phone').length > 0 ){
5406                $('#input-phone').change(function(){
5407                    $('#input-smslist-phone').val( $(this).val() );
5408                });
5409            }
5410
5411            document.getElementById('user-register-form').addEventListener('click', function(e) {
5412                if (e.target.matches('.mailing-lists-select-all')) {
5413                    var inputs = document.getElementById('user-register-form')['lists[]'];
5414                    for (var i=0; i<inputs.length; i++) {
5415                        inputs[i].checked = true;
5416                    }
5417                } else if (e.target.matches('.mailing-lists-select-none')) {
5418                    var inputs = document.getElementById('user-register-form')['lists[]'];
5419                    for (var i=0; i<inputs.length; i++) {
5420                        inputs[i].checked = false;
5421                    }
5422                }
5423            });
5424            
5425            $('#user-register-form').validate({
5426                onkeyup: false,
5427                errorElement: 'span',
5428                errorPlacement: function(error, element){
5429                    error.appendTo( element.parents('.input-container') );
5430                },
5431                errorClass: 'has-error text-danger',
5432                validClass: 'has-success text-success',
5433                highlight: function(element, errorClass, validClass){
5434                    $(element).parents('.form-group').addClass(errorClass).removeClass(validClass);
5435                },
5436                unhighlight: function(element, errorClass, validClass){
5437                    $(element).parents('.form-group').removeClass(errorClass).addClass(validClass);
5438                },
5439                rules: {
5440                    phone: {
5441                        required: function(element){
5442                            
5443                                return $('input[name="smslist_lists[]"]').is(':checked');
5444                            
5445                        }
5446                    },
5447                    screen_name: {
5448                        required: false,
5449                        remote_username: __tnt.scrubUrl($('#input-username').data('check-url'))
5450                    },
5451                    
5452                    
5453                    
5454                    password: {
5455                        hasSequentialNumbers: true,
5456                        hasRepeatingChars: true,
5457                        minlength: 8
5458                    },
5459                    password_verify: {
5460                        equalTo: '#input-password'
5461                    }
5462                },
5463                messages: {
5464                    
5465                    password: {
5466                        minlength: "Passwords must be at least 8 characters long."
5467                    },
5468                    password_verify: {
5469                        equalTo: "The password you entered doesn't match."
5470                    }
5471                }, submitHandler: function(form) {
5472                        $('#user-register-form button').prop('disabled', true);//form.submit();
5473                    }});
5474    
5475            $.validator.addMethod("first_last_names", function(value, element) {
5476                return this.optional( element ) || /^[a-z][- '.,a-z]+$/i.test( value );
5477            }, 'Names must start with a letter and can only contain valid characters.');
5478        });
5479    </script>
5479</div>
5480                    <div class="modal-footer">
5481                        <div class="text-right padding-bottom">
5482                            <a href="javascript:void(0)" role="button" id="user-modal-login-toggle">Have an account? Log In</a>
5483                        </div>
5484                    </div>
5485                </div>
5486
5487                <!-- SIGNUP SUCCESS VERIFICATION -->
5488                <div id="user-modal-tab-signup-success" class="modal-content hide">
5489                    <div class="modal-header">
5490                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5491                            <span aria-hidden="true">&times;</span>
5492                        </button>
5493                        
5494                        <h3 class="text-center">You're all set!</h3>
5495                    </div>
5496                    <div class="modal-body row">
5497
5498                        <div class="col-xs-12" id="user-modal-tabs">
5499                            <div id="user-modal-signup-success-tab">
5500
5501                                <p id="user-modal-signup-success-check" class="text-center"><i class="fas tnt-check"></i></p>
5502                                
5503                                <p class="text-center"><strong>Thank you <span class="username"></span></strong>.</p>
5504                                <p class="text-center">Your account has been registered, and you are now logged in.</p>
5505                                
5506                                <p class="text-center">Check your email for details.</p>
5507                            </div>
5508                        </div>
5509                    </div>
5510                    <div class="modal-footer text-center">
5511                        <a href="javascript:void(0)" role="button" class="btn btn-primary btn-lg" data-dismiss="modal" aria-label="OK">OK</a>
5512                    </div>
5513                </div>
5514
5515                <!-- LOGIN TAB -->
5516                <div id="user-modal-tab-login" class="modal-content hide">
5517                    <div class="modal-header">
5518                        <button type="button" class="tab-back btn btn-sm btn-default" aria-label="Previous Tab">
5519                            <span>Back</span>
5520                        </button>
5521                    
5522                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5523                            <span aria-hidden="true">&times;</span>
5524                        </button>
5525                
5526                        <h3 id="user-modal-login-heading" class="text-center">Log In</h3>
5527                    </div>
5528                    <div class="modal-body row">
5529
5530                        <div class="col-xs-12" id="user-modal-tabs">
5531                            <div id="user-modal-login-tab" class=""><div class="user-login-blox"><form id="access-modal-login-form" class="user-login-form" role="form" method="post" action="https://www.thestar.com/users/login/">
5532                <div class="alert alert-danger critical-error hide">
5533                    <p>Invalid password or account does not exist</p>
5534                </div><input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><div class="user-login-username form-group">
5535                    <label for="user-username" class="control-label hide">Email Address</label>
5536                    <div class="input-container">
5537                        <input id="user-username" class="form-control" name="username" type="text" value="" placeholder="Email Address" required>
5538                    </div>
5539                </div>
5540                
5541                <div class="user-login-password form-group">
5542                    <label for="user-password" class="control-label hide">Password</label><div class="input-group">
5543        <input id="user-password" class="form-control" name="password" type="password" autocomplete="off" required  placeholder="Password">
5544        <div id="user-password-toggle" class="input-group-addon password-toggle" title="Toggle password visibility">
5545            <i class="fas tnt-eye"></i>
5546        </div>
5547    </div></div>
5548                
5549                <div class="user-login-remember form-group row">
5550                    <div class="input-container col-xs-6">
5551                    </div>
5552                    <div class="col-xs-6 text-right forgot-wrapper">
5553                        <a id="open-modal-forgot" class="" rel="nofollow" href="https://www.thestar.com/users/forgot/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
5554                           Forgot your password?
5555                        </a>
5556                    </div>
5557                </div>
5558                
5559                <div class="user-login-submit form-group">
5560                    <div class="input-container text-center">
5561                        <button type="submit" class="btn btn-lg btn-primary">Log In</button>
5562                    </div>
5563                </div>
5564                
5565                <div class="text-center form-group">
5566                    <a id="open-modal-instant-login" class="btn btn-sm btn-default btn-instant-login" rel="nofollow" href="https://www.thestar.com/users/instant-login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
5567                        Email me a log in link
5568                    </a>
5569                </div>
5570
5571                
5572            </form><div class="user-login-or-container">
5573                        <span class="user-login-or text-muted">or</span>
5574                    </div>
5575                    <p class="text-center">Sign in with</p><div class="user-login-fed-auth">
5576    <form role="form" method="post" action="https://www.thestar.com/users/login/" class=""><input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><button type="submit" name="username" value="provider:appleid" class="btn btn-block btn-lg btn-appleid">
5577                <span class="fab tnt-apple tnt-fw"></span> Sign in with Apple</button><button type="submit" name="username" value="provider:facebook" class="btn btn-block btn-lg btn-facebook">
5578                <span class="fab tnt-facebook-square tnt-fw"></span> Sign in with Facebook</button><button type="submit" name="username" value="provider:google" class="btn btn-block btn-lg btn-google">
5579                <span class="fab tnt-google tnt-fw"></span> Sign in with Google</button></form>
5580</div></div></div>
5581
5582                        </div>
5583                    </div>
5584                    <div class="modal-footer padding-top">
5585                        <div class="col-xs-4 text-left">
5586                            <a href="/tncms/auth/admin/">Admin login</a>
5587                            <a href="javascript:void(0)" role="button" class="padding-bottom" id="user-modal-purchase-toggle">Subscribe</a>
5588                        </div> 
5589                        <div class="col-xs-8 text-right">
5590                            <a href="javascript:void(0)" role="button" class="padding-bottom" id="user-modal-signup-toggle">Need an account? Sign Up</a>
5591                        </div>
5592                    </div>
5593                </div>
5594                
5595                <!-- FORGOT TAB -->
5596                <div id="user-modal-tab-forgot" class="modal-content hide">
5597                    <div class="modal-header">
5598                        <button type="button" class="tab-back btn btn-sm-default" aria-label="Previous Tab">
5599                            <span>Back</span>
5600                        </button>
5601                        
5602                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5603                            <span aria-hidden="true">&times;</span>
5604                        </button>
5605                        
5606                        <h3 class="text-center">Reset Password</h3>
5607                    </div>
5608                    
5609                    <div class="modal-body row">
5610                        <div class="col-xs-12">
5611                        <p class="user-help">Submitting this form below will send a message to your email with a link to change your password.</p>
5612
5613    <form id="user-modal-forgot-form" role="form" method="post" action="https://www.thestar.com/users/forgot/">
5614        <input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html">
5615        <div class="user-login-username form-group">
5616            <label for="forgot-username" class="sr-only">Email or Screen Name</label>
5617            <input id="forgot-username" class="form-control" name="username" type="text" placeholder="Email or Screen Name" value="" required>
5618        </div>
5619        
5620            <div class="form-group">
5621                <div class="input-container">
5622                    <label class="center-block text-center"><span class="sr-only">CAPTCHA</span><div class="tncms-recaptcha-wrapper"><div class="g-recaptcha" data-sitekey="6LdvF8kSAAAAAHtjCXotWkt5byjdinh-RPyWTH5J" data-action="submit"></div><input type="hidden" name="g-recaptcha-is-checkbox" value="yes"></div></label>
5623                </div>
5624            </div><div class="user-login-submit form-group">
5625            <div class="text-center">
5626                <button type="submit" class="btn btn-primary">Reset Password</button> 
5627            </div>
5628        </div>
5629    </form></div>
5630                    </div>
5631                </div>
5632                
5633                <div id="user-modal-tab-forgot-success" class="modal-content hide">
5634                    <div class="modal-header">
5635                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5636                            <span aria-hidden="true">&times;</span>
5637                        </button>
5638                        
5639                        <h3 class="text-center">Forgot Password</h3>
5640                    </div>
5641                    
5642                    <div class="modal-body">
5643                        <p>An email message containing instructions on how to reset your password has been sent to the email address listed on your account.</p>
5644                    </div>
5645                
5646                </div>
5647                
5648                <!-- INSTANT LOG-IN TAB -->
5649                <div id="user-modal-tab-instant-login" class="modal-content hide">
5650                    <div class="modal-header">
5651                        <button type="button" class="tab-back btn btn-sm-default" aria-label="Previous Tab">
5652                            <span>Back</span>
5653                        </button>
5654                        
5655                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5656                            <span aria-hidden="true">&times;</span>
5657                        </button>
5658                        
5659                        <h3 class="text-center">Email me a log in link</h3>
5660                    </div>
5661                    
5662                    <div class="modal-body row">
5663                        <div class="col-xs-12">
5664                        <form id="instant-login-form" class="form-horizontal" role="form" method="post" action="https://www.thestar.com/users/instant-login/">
5665    <div class="form-group">
5666        <div class="col-xs-12">
5667            <label for="instant-login-email" class="sr-only">Account Email</label>
5668            <input id="instant-login-email" class="form-control" name="email" type="email" value="" required placeholder="Account Email">
5669        </div>
5670    </div>
5671    <div class="form-group">
5672        <div class="input-container">
5673            <label class="center-block text-center"><span class="sr-only">CAPTCHA</span><div class="tncms-recaptcha-wrapper"><div class="g-recaptcha" data-sitekey="6LdvF8kSAAAAAHtjCXotWkt5byjdinh-RPyWTH5J" data-action="submit"></div><input type="hidden" name="g-recaptcha-is-checkbox" value="yes"></div></label>
5674        </div>
5675    </div>
5676    <div class="user-login-link-submit form-group">
5677        <div class="text-center">
5678            <button type="submit" class="btn btn-primary">Send Email</button> 
5679        </div>
5680    </div>
5681</form></div>
5682                    </div>
5683                </div>
5684
5685                <!-- PROMO TAB -->
5686                <div id="user-modal-tab-promo" class="modal-content hide" data-active-class="offer-tab">
5687                    <div class="modal-header">
5688                        <button type="button" class="tab-back btn btn-sm btn-default" aria-label="Previous Tab">
5689                            <span>Back</span>
5690                        </button>
5691                    
5692                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5693                            <span aria-hidden="true">&times;</span>
5694                        </button>
5695
5696                        <h3 class="text-center">Promotional Offers</h3>
5697                    </div>
5698
5699                    <div class="modal-body">
5700                        <form id="service-promo-fetch" class="text-left service-promo-open form-horizontal" role="form" method="post" action="https://www.thestar.com/tncms/subscription/services/">
5701    <input type="hidden" name="serviceid" value=""/>
5702    <div class="form-group">
5703        <label for="promo" class="sr-only">Enter Promo Code</label>
5704    </div>
5705    
5706    <div class="form-group">
5707        <div class="input-group col-sm-8 col-sm-push-2 col-xs-10 col-xs-offset-1">
5708            <input type="text" class="form-control" name="promoCode" placeholder="Enter Promo Code" value=""/>
5709            <span class="input-group-btn">
5710                <button type="submit" class="btn btn-primary">Redeem</button>
5711            </span>
5712        </div>
5713    </div>
5714</form>
5715
5716                        <div class="row">
5717                            <div class="col-xs-12">
5718                                <div id="service-promo-error" class="row hide">
5719                                    <div class="col-xs-10 col-xs-push-1 alert alert-warning">
5720                                        <p>No promotional rates found.</p>
5721                                    </div>
5722                                </div>
5723
5724                                <div class="promo-loading text-center font-larger" style="display:none;">
5725    <span class="fas tnt-spinner tnt-spin"></span>
5726</div><div id="service-promo-output" class="output access-methods-list" data-paywall-display="promo"></div>
5727                            </div>
5728                        </div>
5729                        <div class="clearfix"></div>
5730                    </div>
5731                </div>
5732
5733                <!-- PURCHASE TAB -->
5734                <div id="user-modal-tab-purchase" class="modal-content hide">
5735                    <div class="modal-header">
5736                        <button type="button" class="tab-back btn btn-sm btn-default" aria-label="Previous Tab">
5737                            <span>Back</span>
5738                        </button>
5739                    
5740                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
5741                            <span aria-hidden="true">&times;</span>
5742                        </button>
5743                
5744                        <h3 class="text-center">
5745                            <span class="purchase-gift">Purchase Gift</span>
5746                            <span class="purchase-standard">Purchase Access</span>
5747                        </h3>
5748                    </div>
5749                    
5750                    <div class="modal-body row">
5751                        <div class="col-xs-12 purchase-form-wrapper"><div id="user-purchase-wrapper" class="col-xs-12">
5752        
5753        <div id="user-purchase-rate">
5754            <template>
5755                <div data-service-id="" data-rate-id="">
5756                    <div class="service-rate">
5757                        <div class="row">
5758                            <div class="rate-info alert alert-info col-xs-12">
5759                                <div class="service-basics">
5760                                    <h4 class="rate-name"></h4>
5761                                    <p class="rate-price"></p>
5762                                    <p class="rate-tax tnt-tax-detail hidden">+ Tax</p>
5763                                </div>
5764                                <div class="service-details hide">
5765                                    <p class="service-description"></p>
5766                                    <a class="service-link purchase-standard" href="">See More Offers</a>
5767                                </div>
5768                                <div class="rate-info-expander">
5769                                    <span class="collapsed">details</span>
5770                                    <span class="expanded hide">close</span>
5771                                </div>
5772                            </div>
5773                        </div>
5774                    </div>
5775                </div>
5776            </template>
5777            <div class="subscribe-form-purchase-rate output"></div>
5778        </div><div id="tnt-payment-super-purchase" class="tnt-payment">
5779    <div class="row">
5780        <div class="col-xs-12 alert alert-warning alert-dismissible tnt-payment-error fade" role="alert" id="form-error-super-purchase" hidden>
5781            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
5782            <div class="error-message" data-forgot-text="Forgot your password?">An error occurred</div>
5783        </div>
5784        <div class="col-xs-12 alert alert-success alert-dismissible tnt-payment-message fade" role="alert" id="form-message-super-purchase" hidden>
5785            <button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
5786            <div class="response-message"></div>
5787        </div>
5788    </div>
5789    
5790    <p class="secure-notice text-center">
5791        <span class="fas tnt-lock tnt-fw"></span> Secure &amp; Encrypted</p><div id="form-federated-auth-super-purchase" class="row not-logged-in purchase-standard tnt-payment-federated-auth">
5792        <div class="col-xs-12 access-offers-wrapper">
5793            <form
5794                id="form-federated-auth-super-purchase-email"
5795                class="form-horizontal tnt-payment-federated-auth-form"
5796                onSubmit="return false">
5797                <fieldset class="col-xs-12">
5798                    <legend>Sign in with</legend>
5799                    <div class="form-group">
5800                        <label for="email-federated-option-super-purchase" class="control-label sr-only">
5801                            Email Address
5802                        </label>
5803                        <input id="email-federated-option-super-purchase" type="email" name="email" class="form-control" placeholder="Email Address" data-required required />
5804                    </div>
5805                    
5806                    <div class="form-group">
5807                        <button value="blox-account" class="btn btn-block btn-lg btn-local-account" id="form-federated-auth-super-purchase-blox-account">
5808                            <span class=""></span>  Email Address
5809                        </button>
5810                    </div>
5811                </fieldset>
5812            </form>
5813            <div class="user-login-or-container">
5814                <span class="user-login-or text-muted">or</span>
5815            </div>
5816            
5817            <div class="user-login-fed-auth">
5818    <form role="form" method="post" action="https://www.thestar.com/users/login/" class="form-horizontal not-logged-in"><input type="hidden" name="referer_url" value="https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html"><button type="submit" name="username" value="provider:appleid" class="btn btn-block btn-lg btn-appleid">
5819                <span class="fab tnt-apple tnt-fw"></span> Sign in with Apple</button><button type="submit" name="username" value="provider:facebook" class="btn btn-block btn-lg btn-facebook">
5820                <span class="fab tnt-facebook-square tnt-fw"></span> Sign in with Facebook</button><button type="submit" name="username" value="provider:google" class="btn btn-block btn-lg btn-google">
5821                <span class="fab tnt-google tnt-fw"></span> Sign in with Google</button></form>
5822</div>
5823        </div>
5824    </div>
5825    
5826
5827    <form id="tncms-paypal-super-purchase" action="/tncms/subscription/buy_paypal/" method="post" class="tnt-payment-paypal-form hide">
5828    <input name="referrer_url" type="hidden" value="/subscribe/success/" aria-hidden="true" />
5829    <input name="service_id" type="hidden" value="" aria-hidden="true" />
5830    <input name="rate_id" type="hidden" value="" aria-hidden="true" />
5831    <input name="first_name" type="hidden" value="" aria-hidden="true" />
5832    <input name="last_name" type="hidden" value="" aria-hidden="true" />
5833    <input name="email" type="hidden" value="" aria-hidden="true" />
5834    <input name="password" type="password" value="" aria-hidden="true" aria-label="password" />
5835    <input name="password_verify" type="password" value="" aria-hidden="true" aria-label="password verify" />
5836    <input name="address" type="hidden" value="" aria-hidden="true" />
5837    <input name="municipality" type="hidden" value="" aria-hidden="true" />
5838    <input name="region" type="hidden" value="" aria-hidden="true" />
5839    <input name="postal_code" type="hidden" value="" aria-hidden="true" />
5840    <input name="country" type="hidden" value ="" aria-hidden="true" />
5841    <input name="postal-address" type="hidden" value="" aria-hidden="true" />
5842    <input name="postal-city" type="hidden" value="" aria-hidden="true" />
5843    <input name="postal-state" type="hidden" value="" aria-hidden="true" />
5844    <input name="postal-postcode" type="hidden" value="" aria-hidden="true" />
5845    <input name="postal-country" type="hidden" value="" aria-hidden="true" />
5846    <input name="phone" type="hidden" value="" aria-hidden="true" />
5847</form>
5848
5849    <form
5850        id="form-super-purchase"
5851        class="form-horizontal tnt-payment-form"
5852        role="form"
5853        action="/tncms/subscription/buy/"
5854        method="post"
5855        data-taxable="false"
5856        data-location-required="true"
5857        data-spreedly-key="X7rJZ6QgeO39MdUWonvRd9m0BB7"
5858        data-captcha-key="6LdF3BEhAAAAAEQUmLciJe0QwaHESwQFc2vwCWqh"
5859        data-payment-method=""
5860        data-renewal-mode="false"
5861        
5862        data-renewal-token=""
5863        data-spreedly-context="Spreedly"
5864        data-spreedly-env="X7rJZ6QgeO39MdUWonvRd9m0BB7"
5865        data-error-element="form-error-super-purchase"
5866        data-message-element="form-message-super-purchase"
5867        
5868        
5869        data-cards-source=""
5870        data-cards-allowed="[&quot;visa&quot;,&quot;master&quot;,&quot;american_express&quot;,&quot;discover&quot;,&quot;jcb&quot;,&quot;diners_club&quot;,&quot;dankort&quot;]"
5871        data-terms-of-service="tn-tos-super-purchase"
5872        data-submit-button="form-submit-super-purchase"
5873        >
5874        
5875        <input type="hidden" name="referrer_url" value="/subscribe/success/" />
5876        <input type="hidden" name="service_id" value="" />
5877        <input type="hidden" name="rate_name" value="" />
5878        <input type="hidden" name="rate_id" value="" />
5879        <input type="hidden" name="tnpay-token" value="" />
5880        <input type="hidden" name="use_stored" value="" />
5881        
5882        <input type="hidden" name="rate_price" value="" /><input type="hidden" id="voight-kampf-super-purchase" name="recaptcha_token" value="" /><input type="hidden" name="promoCode" value="" />
5883
5884        
5885            
5886
5887    
5888
5889    <div class="logged-in alert alert-success" role="alert">
5890        <div class="col-sm-8 text-left">You are logged in <strong class="tn-user-firstname"></strong></div>
5891        
5892        
5893            <div class="col-sm-4 text-right">&nbsp;<a class="alert-link" role="button" tabindex="0" onclick="handleUserSwitchAccounts();">Switch accounts</a></div>
5894             
5894<script>
5895             
5896                function buildUserSwitchAccountsForm() {
5897                    var form = document.getElementById('user-local-logout-form-switch-accounts');
5898                    
5899                    if (form) { return; }
5900                
5901                    // build form with javascript since having a form element here breaks the payment modal.
5902                    var switchForm = document.createElement('form');
5903                    switchForm.setAttribute('id','user-local-logout-form-switch-accounts');
5904                    switchForm.setAttribute('method','post');
5905                    switchForm.setAttribute('action','https://www.thestar.com/tncms/auth/logout/?return=https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html');
5906                    switchForm.setAttribute('style','display:none;');
5907                    
5908                    var refUrl = document.createElement('input'); //input element, text
5909                    refUrl.setAttribute('type','hidden');
5910                    refUrl.setAttribute('name','referer_url');
5911                    refUrl.setAttribute('value','https://www.thestar.com/interactives/canadian-federal-politics-election-forecast/article_1337f598-2b2e-4b63-b5ee-0e923c663892.html');
5912                    
5913                    var submit = document.createElement('input'); 
5914                    submit.setAttribute('type','submit');
5915                    submit.setAttribute('name','logout');
5916                    submit.setAttribute('value','Logout');
5917                    
5918                    switchForm.appendChild(refUrl);
5919                    switchForm.appendChild(submit);
5920                    
5921                    document.getElementsByTagName('body')[0].appendChild(switchForm);                
5922                }
5923                
5924                function handleUserSwitchAccounts() {
5925                    window.sessionStorage.removeItem('bd-viafoura-oidc'); // clear viafoura JWT token
5926                    // logout user before sending them to login page via return url
5927                    document.getElementById('user-local-logout-form-switch-accounts').submit();
5928                    return false;
5929                }
5930                
5931                buildUserSwitchAccountsForm();
5932            </script>
5932           
5933        
5934    </div>
5935
5936            <fieldset id="form-signup-super-purchase" class="col-xs-12 not-logged-in purchase-standard tnt-purchase-login">
5937                <legend>What's your email address?</legend>
5938                <div class="form-group">
5939                    <label for="email-super-purchase" class="control-label sr-only">Email</label>
5940                    <input id="email-super-purchase"
5941                        type="email"
5942                        name="email"
5943                        class="form-control"
5944                        placeholder="Email" data-required data-required-logged-out required />
5945                </div>
5946                <div class="form-group">
5947                    <div class="row">
5948                        <div class="col-xs-6">
5949                            <label for="password-super-purchase" class="sr-only">Password</label>
5950                            <input id="password-super-purchase"
5951                                type="password"
5952                                name="password"
5953                                class="form-control"
5954                                placeholder="Password" data-required data-required-logged-out required />
5955                        </div>
5956                        <div class="col-xs-6">
5957                            <label for="password-verify-super-purchase" class="sr-only">Confirm password</label>
5958                            <input id="password-verify-super-purchase"
5959                                type="password"
5960                                name="password_verify"
5961                                class="form-control"
5962                                placeholder="Confirm password" />
5963                        </div>
5964                    </div>
5965                </div>
5966            </fieldset><fieldset id="form-name-super-purchase" class="col-xs-12 purchase-standard">
5967                <legend>What's your name?</legend>
5968                <div class="form-group">
5969                    <div class="row">
5970                        <div class="col-xs-6">
5971                            <label for="field-purchaser-firstname-super-purchase" class="control-label sr-only">First name</label>
5972                            <input id="field-purchaser-firstname-super-purchase"
5973                                class="form-control"
5974                                type="text"
5975                                name="first_name"
5976                                placeholder="First name" data-required required>
5977                        </div>
5978                        <div class="col-xs-6">
5979                            <label for="field-purchaser-lastname-super-purchase" class="control-label sr-only">Last name</label>
5980                            <input id="field-purchaser-lastname-super-purchase"
5981                                class="form-control"
5982                                type="text"
5983                                name="last_name"
5984                                placeholder="Last name" data-required required>
5985                        </div>
5986                    </div>
5987                </div>
5988            </fieldset><fieldset id="form-gift-to-super-purchase" class="col-xs-12 purchase-gift">
5989                <legend>Who is this gift for?</legend>
5990                <div class="form-group">
5991                    <div class="row">
5992                        <div class="col-xs-12 col-md-6">
5993                            <label for="field-recipient-name-super-purchase" class="control-label sr-only">Recipient name</label>
5994                            <input id="field-recipient-name-super-purchase"
5995                                class="form-control"
5996                                type="text"
5997                                name="recipient_name"
5998                                placeholder="Recipient name" data-required required />
5999                        </div>
6000                        <div class="col-xs-12 col-md-6">
6001                            <label for="field-recipient-email-super-purchase" class="control-label sr-only">Recipient email</label>
6002                            <input id="field-recipient-email-super-purchase"
6003                                class="form-control"
6004                                type="email"
6005                                name="recipient_email"
6006                                placeholder="Recipient email" data-required required />
6007                        </div>
6008                    </div>
6009                </div>
6010                <div class="form-group">
6011                    <div class="row">
6012                        <div id="gift-message" class="col-xs-12">
6013                            <label for="field-gift-message-super-purchase" class="control-label sr-only">Optional message for the recipient</label>
6014                            <textarea id="field-gift-message-super-purchase"
6015                                class="form-control"
6016                                name="message"
6017                                rows="4"
6018                                placeholder="Optional message for the recipient"></textarea>
6019                        </div>
6020                    </div>
6021                </div>
6022            </fieldset><fieldset id="form-gift-from-super-purchase" class="col-xs-12 purchase-gift">
6023                <legend>Who is this gift from?</legend>
6024                <div id="purchaser-info" class="form-group-flex">
6025                    <div id="purchaser-name">
6026                        <label for="field-purchaser-name-super-purchase" class="control-label sr-only">Purchaser name</label>
6027                        <input id="field-purchaser-name-super-purchase"
6028                            class="form-control"
6029                            type="text"
6030                            name="purchaser_name"
6031                            placeholder="Purchaser name" data-required required />
6032                    </div>
6033                        
6034                    <div id="purchaser-email">
6035                        <label for="field-purchaser-email-super-purchase" class="control-label sr-only">Purchaser email</label>
6036                        <input id="field-purchaser-email-super-purchase"
6037                            class="form-control"
6038                            type="email"
6039                            name="purchaser_email"
6040                            placeholder="Purchaser email" data-required required />
6041                    </div>
6042                </div><template id="purchaser-zip-template">
6043                    <div id="purchaser-zip">
6044                        <label for="field-purchaser-zip-super-purchase" class="control-label sr-only">Purchaser postal code</label>
6045                        <input id="field-purchaser-zip-super-purchase"
6046                            class="form-control"
6047                            type="text"
6048                            name="purchaser_zip"
6049                            placeholder="Purchaser postal code" data-required required />
6050                    </div>
6051                </template>
6052            </fieldset>
6053            <fieldset id="form-gift-deliver-super-purchase" class="col-xs-12 purchase-gift">
6054                <legend>Delivery date</legend>
6055                <div class="form-group">
6056                    <div class="row">
6057                        <div class="col-xs-12">
6058                            <label for="field-gift-date-super-purchase" class="control-label sr-only">Delivery date</label>
6059                        </div>
6060                        <div class="col-xs-12">
6061                            <input id="field-gift-date-super-purchase"
6062                                class="form-control"
6063                                name="delivery_date"
6064                                type="date"
6065                                value="2026-09-24">
6066                        </div>
6067                    </div>
6068                </div>
6069            </fieldset><fieldset id="form-billing-location-super-purchase" class="col-xs-12 tnt-billing-location tnt-tax-detail  tnt-required">
6070                <legend>
6071                    What's your billing location?
6072                </legend><div class="form-group-flex">
6073                    <div id="billing-state">
6074                        <label for="field-postal-state-super-purchase" class="control-label sr-only">
6075                            State
6076                        </label>
6077                        <select id="field-postal-state-super-purchase"
6078                            class="form-control"
6079                            name="postal-state"
6080                            placeholder="State"><option value="AL" >Alabama</option><option value="AK" >Alaska</option><option value="AZ" >Arizona</option><option value="AR" >Arkansas</option><option value="CA" >California</option><option value="CO" >Colorado</option><option value="CT" >Connecticut</option><option value="DE" >Delaware</option><option value="FL" >Florida</option><option value="GA" >Georgia</option><option value="HI" >Hawaii</option><option value="ID" >Idaho</option><option value="IL" >Illinois</option><option value="IN" >Indiana</option><option value="IA" >Iowa</option><option value="KS" >Kansas</option><option value="KY" >Kentucky</option><option value="LA" >Louisiana</option><option value="ME" >Maine</option><option value="MD" >Maryland</option><option value="MA" >Massachusetts</option><option value="MI" >Michigan</option><option value="MN" >Minnesota</option><option value="MS" >Mississippi</option><option value="MO" >Missouri</option><option value="MT" >Montana</option><option value="NE" >Nebraska</option><option value="NV" >Nevada</option><option value="NH" >New Hampshire</option><option value="NJ" >New Jersey</option><option value="NM" >New Mexico</option><option value="NY" >New York</option><option value="NC" >North Carolina</option><option value="ND" >North Dakota</option><option value="OH" >Ohio</option><option value="OK" >Oklahoma</option><option value="OR" >Oregon</option><option value="PA" >Pennsylvania</option><option value="RI" >Rhode Island</option><option value="SC" >South Carolina</option><option value="SD" >South Dakota</option><option value="TN" >Tennessee</option><option value="TX" >Texas</option><option value="UT" >Utah</option><option value="VT" >Vermont</option><option value="VA" >Virginia</option><option value="WA" >Washington</option><option value="DC" >Washington D.C.</option><option value="WV" >West Virginia</option><option value="WI" >Wisconsin</option><option value="WY" >Wyoming</option><option value="PR" >Puerto Rico</option><option value="VI" >US Virgin Islands</option><option value="AA" >Armed Forces Americas</option><option value="AP" >Armed Forces Pacific</option><option value="AE" >Armed Forces Europe</option><option value="MP" >Northern Mariana Islands</option><option value="MH" >Marshall Islands</option><option value="AS" >American Samoa</option><option value="FM" >Federated States of Micronesia</option><option value="GU" >Guam</option><option value="PW" >Palau</option><option value="AB" >Alberta, Canada</option><option value="BC" >British Columbia, Canada</option><option value="MB" >Manitoba, Canada</option><option value="NB" >New Brunswick, Canada</option><option value="NL" >Newfoundland, Canada</option><option value="NS" >Nova Scotia, Canada</option><option value="NT" >Northwest Territories, Canada</option><option value="NU" >Nunavut, Canada</option><option value="ON" selected>Ontario, Canada</option><option value="PE" >Prince Edward Island, Canada</option><option value="QC" >Quebec, Canada</option><option value="SK" >Saskatchewan, Canada</option><option value="YT" >Yukon Territory, Canada</option></select>
6081                    </div>
6082                    <div id="billing-postcode">
6083                        <label for="field-postal-postcode-super-purchase" class="control-label sr-only">
6084                            Postal Code
6085                        </label>
6086                        <input id="field-postal-postcode-super-purchase"
6087                            type="text"
6088                            name="postal-postcode"
6089                            maxlength="7"
6090                            class="form-control"
6091                            placeholder="Postal code" required />
6092                    </div>
6093                    <div id="billing-country">
6094                        <label for="field-postal-country-super-purchase" class="control-label sr-only">
6095                            Country
6096                        </label>
6097                        <select id="field-postal-country-super-purchase" name="postal-country" class="form-control"><option value="US" >United States of America</option><option value="VI" >US Virgin Islands</option><option value="UM" >United States Minor Outlying Islands</option><option value="CA" selected>Canada</option><option value="MX" >Mexico, United Mexican States</option><option value="BS" >Bahamas, Commonwealth of the</option><option value="CU" >Cuba, Republic of</option><option value="DO" >Dominican Republic</option><option value="HT" >Haiti, Republic of</option><option value="JM" >Jamaica</option><option value="AF" >Afghanistan</option><option value="AL" >Albania, People's Socialist Republic of</option><option value="DZ" >Algeria, People's Democratic Republic of</option><option value="AS" >American Samoa</option><option value="AD" >Andorra, Principality of</option><option value="AO" >Angola, Republic of</option><option value="AI" >Anguilla</option><option value="AQ" >Antarctica (the territory South of 60 deg S)</option><option value="AG" >Antigua and Barbuda</option><option value="AR" >Argentina, Argentine Republic</option><option value="AM" >Armenia</option><option value="AW" >Aruba</option><option value="AU" >Australia, Commonwealth of</option><option value="AT" >Austria, Republic of</option><option value="AZ" >Azerbaijan, Republic of</option><option value="BH" >Bahrain, Kingdom of</option><option value="BD" >Bangladesh, People's Republic of</option><option value="BB" >Barbados</option><option value="BY" >Belarus</option><option value="BE" >Belgium, Kingdom of</option><option value="BZ" >Belize</option><option value="BJ" >Benin, People's Republic of</option><option value="BM" >Bermuda</option><option value="BT" >Bhutan, Kingdom of</option><option value="BO" >Bolivia, Republic of</option><option value="BA" >Bosnia and Herzegovina</option><option value="BW" >Botswana, Republic of</option><option value="BV" >Bouvet Island (Bouvetoya)</option><option value="BR" >Brazil, Federative Republic of</option><option value="IO" >British Indian Ocean Territory (Chagos Archipelago)</option><option value="VG" >British Virgin Islands</option><option value="BN" >Brunei Darussalam</option><option value="BG" >Bulgaria, People's Republic of</option><option value="BF" >Burkina Faso</option><option value="BI" >Burundi, Republic of</option><option value="KH" >Cambodia, Kingdom of</option><option value="CM" >Cameroon, United Republic of</option><option value="CV" >Cape Verde, Republic of</option><option value="KY" >Cayman Islands</option><option value="CF" >Central African Republic</option><option value="TD" >Chad, Republic of</option><option value="CL" >Chile, Republic of</option><option value="CN" >China, People's Republic of</option><option value="CX" >Christmas Island</option><option value="CC" >Cocos (Keeling) Islands</option><option value="CO" >Colombia, Republic of</option><option value="KM" >Comoros, Union of the</option><option value="CD" >Congo, Democratic Republic of</option><option value="CG" >Congo, People's Republic of</option><option value="CK" >Cook Islands</option><option value="CR" >Costa Rica, Republic of</option><option value="CI" >Cote D'Ivoire, Ivory Coast, Republic of the</option><option value="CY" >Cyprus, Republic of</option><option value="CZ" >Czech Republic</option><option value="DK" >Denmark, Kingdom of</option><option value="DJ" >Djibouti, Republic of</option><option value="DM" >Dominica, Commonwealth of</option><option value="EC" >Ecuador, Republic of</option><option value="EG" >Egypt, Arab Republic of</option><option value="SV" >El Salvador, Republic of</option><option value="GQ" >Equatorial Guinea, Republic of</option><option value="ER" >Eritrea</option><option value="EE" >Estonia</option><option value="ET" >Ethiopia</option><option value="FO" >Faeroe Islands</option><option value="FK" >Falkland Islands (Malvinas)</option><option value="FJ" >Fiji, Republic of the Fiji Islands</option><option value="FI" >Finland, Republic of</option><option value="FR" >France, French Republic</option><option value="GF" >French Guiana</option><option value="PF" >French Polynesia</option><option value="TF" >French Southern Territories</option><option value="GA" >Gabon, Gabonese Republic</option><option value="GM" >
6097Gambia, Republic of the</option><option value="GE" >Georgia</option><option value="DE" >Germany</option><option value="GH" >Ghana, Republic of</option><option value="GI" >Gibraltar</option><option value="GR" >Greece, Hellenic Republic</option><option value="GL" >Greenland</option><option value="GD" >Grenada</option><option value="GP" >Guadaloupe</option><option value="GU" >Guam</option><option value="GT" >Guatemala, Republic of</option><option value="GN" >Guinea, Revolutionary
6098People's Rep'c of</option><option value="GW" >Guinea-Bissau, Republic of</option><option value="GY" >Guyana, Republic of</option><option value="HM" >Heard and McDonald Islands</option><option value="VA" >Holy See (Vatican City State)</option><option value="HN" >Honduras, Republic of</option><option value="HK" >Hong Kong, Special Administrative Region of China</option><option value="HR" >Hrvatska (Croatia)</option><option value="HU" >Hungary, Hungarian People's Republic</option><option value="IS" >Iceland, Republic of</option><option value="IN" >India, Republic of</option><option value="ID" >Indonesia, Republic of</option><option value="IR" >Iran, Islamic Republic of</option><option value="IQ" >Iraq, Republic of</option><option value="IE" >Ireland</option><option value="IL" >Israel, State of</option><option value="IT" >Italy, Italian Republic</option><option value="JP" >Japan</option><option value="JO" >Jordan, Hashemite Kingdom of</option><option value="KZ" >Kazakhstan, Republic of</option><option value="KE" >Kenya, Republic of</option><option value="KI" >Kiribati, Republic of</option><option value="KP" >Korea, Democratic People's Republic of</option><option value="KR" >Korea, Republic of</option><option value="KW" >Kuwait, State of</option><option value="KG" >Kyrgyz Republic</option><option value="LA" >Lao People's Democratic Republic</option><option value="LV" >Latvia</option><option value="LB" >Lebanon, Lebanese Republic</option><option value="LS" >Lesotho, Kingdom of</option><option value="LR" >Liberia, Republic of</option><option value="LY" >Libyan Arab Jamahiriya</option><option value="LI" >Liechtenstein, Principality of</option><option value="LT" >Lithuania</option><option value="LU" >Luxembourg, Grand Duchy of</option><option value="MO" >Macao, Special Administrative Region of China</option><option value="MK" >Macedonia, the former Yugoslav Republic of</option><option value="MG" >Madagascar, Republic of</option><option value="MW" >Malawi, Republic of</option><option value="MY" >Malaysia</option><option value="MV" >Maldives, Republic of</option><option value="ML" >Mali, Republic of</option><option value="MT" >Malta, Republic of</option><option value="MH" >Marshall Islands</option><option value="MQ" >Martinique</option><option value="MR" >Mauritania, Islamic Republic of</option><option value="MU" >Mauritius</option><option value="YT" >Mayotte</option><option value="FM" >Micronesia, Federated States of</option><option value="MD" >Moldova, Republic of</option><option value="MC" >Monaco, Principality of</option><option value="MN" >Mongolia, Mongolian People's Republic</option><option value="MS" >Montserrat</option><option value="MA" >Morocco, Kingdom of</option><option value="MZ" >Mozambique, People's Republic of</option><option value="MM" >Myanmar</option><option value="NA" >Namibia</option><option value="NR" >Nauru, Republic of</option><option value="NP" >Nepal, Kingdom of</option><option value="AN" >Netherlands Antilles</option><option value="NL" >Netherlands, Kingdom of the</option><option value="NC" >New Caledonia</option><option value="NZ" >New Zealand</option><option value="NI" >Nicaragua, Republic of</option><option value="NE" >Niger, Republic of the</option><option value="NG" >Nigeria, Federal Republic of</option><option value="NU" >Niue, Republic of</option><option value="NF" >Norfolk Island</option><option value="MP" >Northern Mariana Islands</option><option value="NO" >Norway, Kingdom of</option><option value="OM" >Oman, Sultanate of</option><option value="PK" >Pakistan, Islamic Republic of</option><option value="PW" >Palau</option><option value="PS" >Palestinian Territory, Occupied</option><option value="PA" >Panama, Republic of</option><option value="PG" >Papua New Guinea</option><option value="PY" >Paraguay, Republic of</option><option value="PE" >Peru, Republic of</option><option value="PH" >
6098Philippines, Republic of the</option><option value="PN" >Pitcairn Island</option><option value="PL" >Poland, Polish People's Republic</option><option value="PT" >Portugal, Portuguese Republic</option><option value="PR" >Puerto Rico</option><option value="QA" >Qatar, State of</option><option value="RE" >Reunion</option><option value="RO" >Romania, Socialist Republic of</option><option value="RU" >Russian Federation</option><option value="RW" >Rwanda, Rwandese Republic</option><option value="WS" >Samoa, Independent State of</option><option value="SM" >San Marino, Republic of</option><option value="ST" >Sao Tome and Principe, Democratic Republic of</option><option value="SA" >Saudi Arabia, Kingdom of</option><option value="SN" >Senegal, Republic of</option><option value="CS" >Serbia and Montenegro</option><option value="SC" >Seychelles, Republic of</option><option value="SL" >Sierra Leone, Republic of</option><option value="SG" >Singapore, Republic of</option><option value="SK" >Slovakia (Slovak Republic)</option><option value="SI" >Slovenia</option><option value="SB" >Solomon Islands</option><option value="SO" >Somalia, Somali Republic</option><option value="ZA" >South Africa, Republic of</option><option value="GS" >South Georgia and the South Sandwich Islands</option><option value="ES" >Spain, Spanish State</option><option value="LK" >Sri Lanka, Democratic Socialist Republic of</option><option value="SH" >St. Helena</option><option value="KN" >St. Kitts and Nevis</option><option value="LC" >St. Lucia</option><option value="PM" >St. Pierre and Miquelon</option><option value="VC" >St. Vincent and the Grenadines</option><option value="SD" >Sudan, Democratic Republic of the</option><option value="SR" >Suriname, Republic of</option><option value="SJ" >Svalbard & Jan Mayen Islands</option><option value="SZ" >Swaziland, Kingdom of</option><option value="SE" >Sweden, Kingdom of</option><option value="CH" >Switzerland, Swiss Confederation</option><option value="SY" >Syrian Arab Republic</option><option value="TW" >Taiwan, Province of China</option><option value="TJ" >Tajikistan</option><option value="TZ" >Tanzania, United Republic of</option><option value="TH" >Thailand, Kingdom of</option><option value="TL" >Timor-Leste, Democratic Republic of</option><option value="TG" >Togo, Togolese Republic</option><option value="TK" >Tokelau (Tokelau Islands)</option><option value="TO" >Tonga, Kingdom of</option><option value="TT" >Trinidad and Tobago, Republic of</option><option value="TN" >Tunisia, Republic of</option><option value="TR" >Turkey, Republic of</option><option value="TM" >Turkmenistan</option><option value="TC" >Turks and Caicos Islands</option><option value="TV" >Tuvalu</option><option value="UG" >Uganda, Republic of</option><option value="UA" >Ukraine</option><option value="AE" >United Arab Emirates</option><option value="GB" >United Kingdom of Great Britain & N. Ireland</option><option value="UY" >Uruguay, Eastern Republic of</option><option value="UZ" >Uzbekistan</option><option value="VU" >Vanuatu</option><option value="VE" >Venezuela, Bolivarian Republic of</option><option value="VN" >Viet Nam, Socialist Republic of</option><option value="WF" >Wallis and Futuna Islands</option><option value="EH" >Western Sahara</option><option value="YE" >Yemen</option><option value="ZM" >Zambia, Republic of</option><option value="ZW" >Zimbabwe</option></select>
6099                    </div>
6100                </div>
6101            </fieldset><fieldset id="form-location-super-purchase" class="col-xs-12 tnt-delivery-location delivery-location-required" hidden>
6102                <legend>What's your delivery address?</legend>
6103                <div class="form-group tnt-tax-detail">
6104                    <label>
6105                        <input id="same-info-super-purchase" class="same-info" type="checkbox" name="same_info">
6106                        <b style="position:relative;top:-2px;padding-left:10px;">Copy billing location</b>
6107                    </label>
6108                </div>
6109                
6110                <div class="form-group">
6111                    <label for="address-super-purchase" class="control-label sr-only">Address</label>
6112                    <input id="address-super-purchase" type="text" name="address" class="form-control" placeholder="Address" />
6113                </div>
6114
6115                <div class="form-group">
6116                    <label for="municipality-super-purchase" class="control-label sr-only">City</label>
6117                    <input id="municipality-super-purchase" type="text" name="municipality" class="form-control" placeholder="City" />
6118                </div>
6119
6120                <div class="form-group">
6121                    <div class="row">
6122                        <div class="col-xs-7 col-md-4">
6123                            <label for="region-super-purchase" class="control-label sr-only">State</label>
6124                            <select id="region-super-purchase" class="form-control" name="region" placeholder="State"><option value="AL" >Alabama</option><option value="AK" >Alaska</option><option value="AZ" >Arizona</option><option value="AR" >Arkansas</option><option value="CA" >California</option><option value="CO" >Colorado</option><option value="CT" >Connecticut</option><option value="DE" >Delaware</option><option value="FL" >Florida</option><option value="GA" >Georgia</option><option value="HI" >Hawaii</option><option value="ID" >Idaho</option><option value="IL" >Illinois</option><option value="IN" >Indiana</option><option value="IA" >Iowa</option><option value="KS" >Kansas</option><option value="KY" >Kentucky</option><option value="LA" >Louisiana</option><option value="ME" >Maine</option><option value="MD" >Maryland</option><option value="MA" >Massachusetts</option><option value="MI" >Michigan</option><option value="MN" >Minnesota</option><option value="MS" >Mississippi</option><option value="MO" >Missouri</option><option value="MT" >Montana</option><option value="NE" >Nebraska</option><option value="NV" >Nevada</option><option value="NH" >New Hampshire</option><option value="NJ" >New Jersey</option><option value="NM" >New Mexico</option><option value="NY" >New York</option><option value="NC" >North Carolina</option><option value="ND" >North Dakota</option><option value="OH" >Ohio</option><option value="OK" >Oklahoma</option><option value="OR" >Oregon</option><option value="PA" >Pennsylvania</option><option value="RI" >Rhode Island</option><option value="SC" >South Carolina</option><option value="SD" >South Dakota</option><option value="TN" >Tennessee</option><option value="TX" >Texas</option><option value="UT" >Utah</option><option value="VT" >Vermont</option><option value="VA" >Virginia</option><option value="WA" >Washington</option><option value="DC" >Washington D.C.</option><option value="WV" >West Virginia</option><option value="WI" >Wisconsin</option><option value="WY" >Wyoming</option><option value="PR" >Puerto Rico</option><option value="VI" >US Virgin Islands</option><option value="AA" >Armed Forces Americas</option><option value="AP" >Armed Forces Pacific</option><option value="AE" >Armed Forces Europe</option><option value="MP" >Northern Mariana Islands</option><option value="MH" >Marshall Islands</option><option value="AS" >American Samoa</option><option value="FM" >Federated States of Micronesia</option><option value="GU" >Guam</option><option value="PW" >Palau</option><option value="AB" >Alberta, Canada</option><option value="BC" >British Columbia, Canada</option><option value="MB" >Manitoba, Canada</option><option value="NB" >New Brunswick, Canada</option><option value="NL" >Newfoundland, Canada</option><option value="NS" >Nova Scotia, Canada</option><option value="NT" >Northwest Territories, Canada</option><option value="NU" >Nunavut, Canada</option><option value="ON" selected>Ontario, Canada</option><option value="PE" >Prince Edward Island, Canada</option><option value="QC" >Quebec, Canada</option><option value="SK" >Saskatchewan, Canada</option><option value="YT" >Yukon Territory, Canada</option></select>
6125                        </div>
6126                        <div class="col-xs-5 col-md-3">
6127                            <label for="postal-code-super-purchase" class="control-label sr-only">Postal code</label>
6128                            <input id="postal-code-super-purchase"
6129                                type="text"
6130                                name="postal_code"
6131                                maxlength="6"
6132                                class="form-control"
6133                                placeholder="Postal code" />
6134                        </div>
6135                    </div>
6136                </div>
6137                <div class="form-group">
6138                    <div class="row">
6139                        <div class="col-xs-7">
6140                            <label for="select-country-super-purchase" class="control-label sr-only">Country</label>
6141                            <div class="input-container">
6142                                <select id="select-country-super-purchase" name="country" class="form-control"><option value="US" >United States of America</option><option value="VI" >US Virgin Islands</option><option value="UM" >United States Minor Outlying Islands</option><option value="CA" selected>Canada</option><option value="MX" >Mexico, United Mexican States</option><option value="BS" >
6142Bahamas, Commonwealth of the</option><option value="CU" >Cuba, Republic of</option><option value="DO" >Dominican Republic</option><option value="HT" >Haiti, Republic of</option><option value="JM" >Jamaica</option><option value="AF" >Afghanistan</option><option value="AL" >Albania, People's Socialist Republic of</option><option value="DZ" >Algeria, People's Democratic Republic of</option><option value="AS" >American Samoa</option><option value="AD" >Andorra, Principality of</option><option value="AO" >Angola, Republic of</option><option value="AI" >Anguilla</option><option value="AQ" >Antarctica (the territory South of 60 deg S)</option><option value="AG" >Antigua and Barbuda</option><option value="AR" >Argentina, Argentine Republic</option><option value="AM" >Armenia</option><option value="AW" >Aruba</option><option value="AU" >Australia, Commonwealth of</option><option value="AT" >Austria, Republic of</option><option value="AZ" >Azerbaijan, Republic of</option><option value="BH" >Bahrain, Kingdom of</option><option value="BD" >Bangladesh, People's Republic of</option><option value="BB" >Barbados</option><option value="BY" >Belarus</option><option value="BE" >Belgium, Kingdom of</option><option value="BZ" >Belize</option><option value="BJ" >Benin, People's Republic of</option><option value="BM" >Bermuda</option><option value="BT" >Bhutan, Kingdom of</option><option value="BO" >Bolivia, Republic of</option><option value="BA" >Bosnia and Herzegovina</option><option value="BW" >Botswana, Republic of</option><option value="BV" >Bouvet Island (Bouvetoya)</option><option value="BR" >Brazil, Federative Republic of</option><option value="IO" >British Indian Ocean Territory (Chagos Archipelago)</option><option value="VG" >British Virgin Islands</option><option value="BN" >Brunei Darussalam</option><option value="BG" >Bulgaria, People's Republic of</option><option value="BF" >Burkina Faso</option><option value="BI" >Burundi, Republic of</option><option value="KH" >Cambodia, Kingdom of</option><option value="CM" >Cameroon, United Republic of</option><option value="CV" >Cape Verde, Republic of</option><option value="KY" >Cayman Islands</option><option value="CF" >Central African Republic</option><option value="TD" >Chad, Republic of</option><option value="CL" >Chile, Republic of</option><option value="CN" >China, People's Republic of</option><option value="CX" >Christmas Island</option><option value="CC" >Cocos (Keeling) Islands</option><option value="CO" >Colombia, Republic of</option><option value="KM" >Comoros, Union of the</option><option value="CD" >Congo, Democratic Republic of</option><option value="CG" >Congo, People's Republic of</option><option value="CK" >Cook Islands</option><option value="CR" >Costa Rica, Republic of</option><option value="CI" >Cote D'Ivoire, Ivory Coast, Republic of the</option><option value="CY" >Cyprus, Republic of</option><option value="CZ" >Czech Republic</option><option value="DK" >Denmark, Kingdom of</option><option value="DJ" >Djibouti, Republic of</option><option value="DM" >Dominica, Commonwealth of</option><option value="EC" >Ecuador, Republic of</option><option value="EG" >Egypt, Arab Republic of</option><option value="SV" >El Salvador, Republic of</option><option value="GQ" >Equatorial Guinea, Republic of</option><option value="ER" >Eritrea</option><option value="EE" >Estonia</option><option value="ET" >Ethiopia</option><option value="FO" >Faeroe Islands</option><option value="FK" >Falkland Islands (Malvinas)</option><option value="FJ" >Fiji, Republic of the Fiji Islands</option><option value="FI" >Finland, Republic of</option><option value="FR" >France, French Republic</option><option value="GF" >French Guiana</option><option value="PF" >French Polynesia</option><option value="TF" >French Southern Territories</option><option value="GA" >Gabon, Gabonese Republic</option><option value="GM" >Gambia, Republic of the</option><option value="GE" >Georgia</option><option value="DE" >Germany</option><option value="GH" >Ghana, Republic of</option><option value="GI" >Gibraltar</option><option value="GR" >Greece, Hellenic Republic</option><option value="GL" >Greenland</option><option value="GD" >Grenada</option><option value="GP" >Guadaloupe</option><option value="GU" >Guam</option><option value="GT" >Guatemala, Republic of</option><option value="GN" >Guinea, Revolutionary
6143People's Rep'c of</option><option value="GW" >Guinea-Bissau, Republic of</option><option value="GY" >Guyana, Republic of</option><option value="HM" >Heard and McDonald Islands</option><option value="VA" >
6143Holy See (Vatican City State)</option><option value="HN" >Honduras, Republic of</option><option value="HK" >Hong Kong, Special Administrative Region of China</option><option value="HR" >Hrvatska (Croatia)</option><option value="HU" >Hungary, Hungarian People's Republic</option><option value="IS" >Iceland, Republic of</option><option value="IN" >India, Republic of</option><option value="ID" >Indonesia, Republic of</option><option value="IR" >Iran, Islamic Republic of</option><option value="IQ" >Iraq, Republic of</option><option value="IE" >Ireland</option><option value="IL" >Israel, State of</option><option value="IT" >Italy, Italian Republic</option><option value="JP" >Japan</option><option value="JO" >Jordan, Hashemite Kingdom of</option><option value="KZ" >Kazakhstan, Republic of</option><option value="KE" >Kenya, Republic of</option><option value="KI" >Kiribati, Republic of</option><option value="KP" >Korea, Democratic People's Republic of</option><option value="KR" >Korea, Republic of</option><option value="KW" >Kuwait, State of</option><option value="KG" >Kyrgyz Republic</option><option value="LA" >Lao People's Democratic Republic</option><option value="LV" >Latvia</option><option value="LB" >Lebanon, Lebanese Republic</option><option value="LS" >Lesotho, Kingdom of</option><option value="LR" >Liberia, Republic of</option><option value="LY" >Libyan Arab Jamahiriya</option><option value="LI" >Liechtenstein, Principality of</option><option value="LT" >Lithuania</option><option value="LU" >Luxembourg, Grand Duchy of</option><option value="MO" >Macao, Special Administrative Region of China</option><option value="MK" >Macedonia, the former Yugoslav Republic of</option><option value="MG" >Madagascar, Republic of</option><option value="MW" >Malawi, Republic of</option><option value="MY" >Malaysia</option><option value="MV" >Maldives, Republic of</option><option value="ML" >Mali, Republic of</option><option value="MT" >Malta, Republic of</option><option value="MH" >Marshall Islands</option><option value="MQ" >Martinique</option><option value="MR" >Mauritania, Islamic Republic of</option><option value="MU" >Mauritius</option><option value="YT" >Mayotte</option><option value="FM" >Micronesia, Federated States of</option><option value="MD" >Moldova, Republic of</option><option value="MC" >Monaco, Principality of</option><option value="MN" >Mongolia, Mongolian People's Republic</option><option value="MS" >Montserrat</option><option value="MA" >Morocco, Kingdom of</option><option value="MZ" >Mozambique, People's Republic of</option><option value="MM" >Myanmar</option><option value="NA" >Namibia</option><option value="NR" >Nauru, Republic of</option><option value="NP" >Nepal, Kingdom of</option><option value="AN" >Netherlands Antilles</option><option value="NL" >Netherlands, Kingdom of the</option><option value="NC" >New Caledonia</option><option value="NZ" >New Zealand</option><option value="NI" >Nicaragua, Republic of</option><option value="NE" >Niger, Republic of the</option><option value="NG" >Nigeria, Federal Republic of</option><option value="NU" >Niue, Republic of</option><option value="NF" >Norfolk Island</option><option value="MP" >Northern Mariana Islands</option><option value="NO" >Norway, Kingdom of</option><option value="OM" >Oman, Sultanate of</option><option value="PK" >Pakistan, Islamic Republic of</option><option value="PW" >Palau</option><option value="PS" >Palestinian Territory, Occupied</option><option value="PA" >Panama, Republic of</option><option value="PG" >Papua New Guinea</option><option value="PY" >Paraguay, Republic of</option><option value="PE" >Peru, Republic of</option><option value="PH" >Philippines, Republic of the</option><option value="PN" >Pitcairn Island</option><option value="PL" >Poland, Polish People's Republic</option><option value="PT" >Portugal, Portuguese Republic</option><option value="PR" >Puerto Rico</option><option value="QA" >Qatar, State of</option><option value="RE" >Reunion</option><option value="RO" >Romania, Socialist Republic of</option><option value="RU" >Russian Federation</option><option value="RW" >Rwanda, Rwandese Republic</option><option value="WS" >Samoa, Independent State of</option><option value="SM" >San Marino, Republic of</option><option value="ST" >Sao Tome and Principe, Democratic Republic of</option><option value="SA" >Saudi Arabia, Kingdom of</option><option value="SN" >Senegal, Republic of</option><option value="CS" >Serbia and Montenegro</option><option value="SC" >Seychelles, Republic of</option><option value="SL" >Sierra Leone, Republic of</option><option value="SG" >Singapore, Republic of</option><option value="SK" >Slovakia (Slovak Republic)</option><option value="SI" >Slovenia</option><option value="SB" >Solomon Islands</option><option value="SO" >Somalia, Somali Republic</option><option value="ZA" >South Africa, Republic of</option><option value="GS" >South Georgia and the South Sandwich Islands</option><option value="ES" >Spain, Spanish State</option><option value="LK" >Sri Lanka, Democratic Socialist Republic of</option><option value="SH" >St. Helena</option><option value="KN" >St. Kitts and Nevis</option><option value="LC" >St. Lucia</option><option value="PM" >St. Pierre and Miquelon</option><option value="VC" >St. Vincent and the Grenadines</option><option value="SD" >
6143Sudan, Democratic Republic of the</option><option value="SR" >Suriname, Republic of</option><option value="SJ" >Svalbard & Jan Mayen Islands</option><option value="SZ" >Swaziland, Kingdom of</option><option value="SE" >Sweden, Kingdom of</option><option value="CH" >Switzerland, Swiss Confederation</option><option value="SY" >Syrian Arab Republic</option><option value="TW" >Taiwan, Province of China</option><option value="TJ" >Tajikistan</option><option value="TZ" >Tanzania, United Republic of</option><option value="TH" >Thailand, Kingdom of</option><option value="TL" >Timor-Leste, Democratic Republic of</option><option value="TG" >Togo, Togolese Republic</option><option value="TK" >Tokelau (Tokelau Islands)</option><option value="TO" >Tonga, Kingdom of</option><option value="TT" >Trinidad and Tobago, Republic of</option><option value="TN" >Tunisia, Republic of</option><option value="TR" >Turkey, Republic of</option><option value="TM" >Turkmenistan</option><option value="TC" >Turks and Caicos Islands</option><option value="TV" >Tuvalu</option><option value="UG" >Uganda, Republic of</option><option value="UA" >Ukraine</option><option value="AE" >United Arab Emirates</option><option value="GB" >United Kingdom of Great Britain & N. Ireland</option><option value="UY" >Uruguay, Eastern Republic of</option><option value="UZ" >Uzbekistan</option><option value="VU" >Vanuatu</option><option value="VE" >Venezuela, Bolivarian Republic of</option><option value="VN" >Viet Nam, Socialist Republic of</option><option value="WF" >Wallis and Futuna Islands</option><option value="EH" >Western Sahara</option><option value="YE" >Yemen</option><option value="ZM" >Zambia, Republic of</option><option value="ZW" >Zimbabwe</option></select>
6144                            </div>
6145                        </div>
6146                        
6147                        <div class="col-xs-5">
6148                            <label for="phone-super-purchase" class="control-label sr-only">Phone</label>
6149                            <input id="phone-super-purchase" type="tel" name="phone" class="form-control" placeholder="Phone number" />
6150                        </div>
6151                        
6152                    </div>
6153                </div>
6154            </fieldset><fieldset id="form-payment-tax-detail" class="tnt-tax-detail col-xs-12">
6155                <div class="form-group-flex tax-result">
6156                    <div id="tax-subtotal-container">
6157                        Subtotal: <span class="tax-subtotal"></span>
6158                    </div>
6159                    <div id="tax-total-container">
6160                        Total: <span class="tax-total"></span>
6161                    </div>
6162                </div>
6163            </fieldset><fieldset id="form-payment-super-purchase" class="col-xs-12">
6164            <legend>How would you like to pay?</legend>
6165
6166            
6167            
6168            <div id="tn-pay-method-select-super-purchase" class="form-group tn-pay-method-select" hidden>
6169                <template id="tn-pay-method-card-template-super-purchase" class="wallet-template">
6170                    <a class="btn btn-lg btn-block btn-default wallet-btn wallet-show-card" title="">
6171                        <span class="tn-cc-lg" data-cc=""></span>
6172                        <span class="tn-cc-text">
6173                            <span class="tn-cc-heading"><span class="tn-cc-ending-in">Ending in <span class="tn-cc-last-four"></span></span>
6174                            <span class="tn-cc-label text-muted"></span> <small class="tn-cc-exp"></small>
6175                        </span>
6176                    </a>
6177                </template><div id="tn-pay-method-alt-super-purchase" class="tn-pay-method-alt"></div><div id="tn-pay-method-output-super-purchase" class="tn-pay-method-output"></div>
6178             
6179                <a id="tn-pay-method-new-card-super-purchase" class="btn btn-lg btn-block tn-pay-method-new-card wallet-btn wallet-show-card">
6180                    <div class="">Add New Card</div><div id="tn-pay-cards-valid-super-purchase" class="tn-pay-cards tn-pay-cards-new" data-cards-allowed="[&quot;visa&quot;,&quot;master&quot;,&quot;american_express&quot;,&quot;discover&quot;,&quot;jcb&quot;,&quot;diners_club&quot;,&quot;dankort&quot;]" aria-label="Allowed credit cards">
6181    <span data-cc="american_express"  title="American Express" class="allow_announce"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.amex.9ae30a7ced41276fe9f087fdbc2e2bea.svg" alt="American Express" /></span>
6182    <span data-cc="discover"  title="Discover" class="allow_announce"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.discover.df3351b64454849e4220183966bb80bd.svg" alt="Discover" /></span>
6183    <span data-cc="master"  title="Mastercard" class="allow_announce"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.mastercard.3cb5b7ce700383b4bf471acc2ecf7828.svg" alt="Mastercard" /></span>
6184    <span data-cc="visa" title="Visa" class="allow_announce"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.visa.32937c5b818e2f6145f243b6ccc36fb6.svg" alt="Visa" /></span>
6185    <span data-cc="jcb" title="JCB" class="allow" aria-hidden="true"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.jcb.f824c86d80073c9649d3ec9ebc995f64.svg" alt="JCB" /></span>
6186    <span data-cc="diners_club" title="Diners Club" class="allow" aria-hidden="true"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.diners.b2a3028ea5bece90a83cd302043a20f6.svg" alt="Diners Club" /></span>
6187    <span data-cc="dankort" title="Dankort" class="allow" aria-hidden="true"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.creditcard.d9a15f41d5d4bd97cda40c4a67e08907.svg" alt="Credit Card" /></span>
6188    <span data-cc="other" title="Credit Card" class="allow"><img loading="lazy" src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/images/pay.creditcard.d9a15f41d5d4bd97cda40c4a67e08907.svg" alt="Credit Card" /></span>
6189</div></a>
6190            </div>
6191            
6192            <div id="tn-pay-manual-entry-super-purchase" class="tn-pay-card-entry">
6193                <div class="tn-pay-card-loading text-center"><i class="fas tnt-spinner tnt-spin" style="font-size:64px;"></i></div><div class="tn-pay-card-wrapper tn-pay-iframe" hidden></div><!-- pay card wrapper -->
6194            </div><!-- tn-pay-manual-entry -->
6195
6196        </fieldset>
6197
6198        <fieldset class="col-xs-12">
6199            <div class="form-group tn-tos-group">
6200                <label>
6201                    <input id="tn-tos-super-purchase" type="checkbox" name="tos_confirm" />
6202                    <span class="tn-tos-agree">I Agree to the Subscription <a class="tos-link" href="https://notices.torstar.com/main_terms_of_use_daily_and_community_brands_EN/">Terms of Use.</a>
6203                    </span>
6204                    <br/>
6205                    <small class="service-renews purchase-standard" hidden>This service will be automatically renewed and your credit card billed once it nears expiration.</small>
6206                </label>
6207            </div>
6208
6209            </fieldset>
6210
6211        <div class="form-group text-center"><input type="submit" name="payment_button" class="btn btn-primary tn-pay-button" id="form-submit-super-purchase" value="Pay Now" disabled>
6212        </div>
6213
6214        <p class="secure-notice text-center">
6215            <span class="purchase-gift">Secure transaction.</span>
6216            <span class="purchase-standard">Secure transaction.</span>
6217        </p>
6218        
6219        
6220    </form>
6221</div>
6222</div>
6223</div>
6224                    </div>
6225                </div>
6226                
6227                <!-- PURCHASE SUCCESS -->
6228                <div id="user-modal-tab-purchase-success" class="modal-content hide">
6229                    <div class="modal-header">
6230                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
6231                            <span aria-hidden="true">&times;</span>
6232                        </button>
6233                        
6234                        <h3 class="text-center">You're all set!</h3>
6235                    </div>
6236                    <div class="modal-body row">
6237
6238                        <div class="col-xs-12" id="user-modal-tabs">
6239                            <div id="user-modal-signup-success-tab">
6240
6241                                <div id="user-modal-tab-purchase-success-hammer">
6242                                    <p class="purchase-success-checkmark text-center"><i class="fas tnt-check"></i></p>
6243                                </div>
6244                                
6245                                    <p class="text-center">
6246                                        <strong>Thank you<span class="username purchase-standard"></span></strong>.
6247                                    </p>
6248                                    <p class="text-center">
6249                                        <span class="purchase-gift">Your gift purchase was successful!</span>
6250                                        <span class="purchase-standard">Your purchase was successful, and you are now logged in.</span>
6251                                    </p>
6252                                
6253                            </div>
6254                            
6255                            <div class="col-xs-12" id="modal-purchase-receipt">
6256                                <template data-currency-symbol-before="$" data-currency-symbol-after="">
6257                                    <h4 class="service-name"></h4>
6258                                    <div class="table-responsive">
6259                                        <table class="table">
6260                                            <tbody>
6261                                                <tr id="purchase-receipt-rate">
6262                                                    <td class="text-muted">Rate:</td>
6263                                                    <td class="service-rate"></td>
6264                                                </tr>
6265                                                    <tr id="purchase-receipt-tax" class="tnt-tax-detail hidden">
6266                                                        <td class="text-muted">Tax:</td>
6267                                                        <td class="service-tax"></td>
6268                                                    </tr>
6269                                                    <tr id="purchase-receipt-tax-total" class="tnt-tax-detail hidden">
6270                                                        <td class="text-muted">Today's total:</td>
6271                                                        <td class="service-total"></td>
6272                                                    </tr>
6273                                                <tr id="purchase-receipt-starts" class="purchase-standard">
6274                                                    <td class="text-muted">Begins:</td>
6275                                                    <td class="service-start"></td>
6276                                                </tr>
6277                                                <tr id="purchase-receipt-transaction" class="purchase-standard">
6278                                                    <td class="text-muted">Transaction ID:</td>
6279                                                    <td class="transaction-id"></td>
6280                                                </tr>
6281                                            </tbody>
6282                                        </table>
6283                                    </div>
6284                                </template>
6285                            
6286                                <div class="modal-receipt-output"></div>
6287
6288                                
6289                            
6290                                <p class="text-center">A receipt was sent to your email.</p>
6291                            
6292                            </div>
6293                        </div>
6294                    </div>
6295                    <div class="modal-footer">
6296                    
6296<script>
6297        const userEmail = TNCMS.User.getEmail();       
6298        const optPurchaseUrl = '/subscribe/success/';            
6299        const pathname = window.location.pathname;       
6300        const storageEmail = window.localStorage.getItem("tncms-firstupsubscribed");
6301        const subscriptionRateName = window.sessionStorage.getItem("__tnt.service.rate.name");
6302        const isFirstUpSubscribed = storageEmail && storageEmail.indexOf(userEmail) > -1;        
6303        const isSubscribed = TNCMS.User.hasFullAccess() && __tnt.user.services;
6304        const isDisclaimerViewed = window.sessionStorage.getItem("tncms-disclaimer-checked");
6305        const isFirstUpSignupNeeded = userEmail && isSubscribed && subscriptionRateName && isDisclaimerViewed && !isFirstUpSubscribed && 
6306            (optPurchaseUrl == '/subscribe/success/') && (pathname.indexOf('subscribe/success') > -1);   
6307        if(isFirstUpSignupNeeded) {
6308            const newStorageEmail  = storageEmail? `${storageEmail},${userEmail}` : userEmail;
6309            const theOptions = {
6310                'realm': "dailynews",
6311                'listid': 631, /* 631 */
6312                'domain':"api.thestar.com",
6313                'domainAlias': "thestar",
6314                'user_email': userEmail,
6315                'new_storage_email': newStorageEmail
6316            }
6317            subscribeNewUserToNewsletter(theOptions);
6318
6319            
6320
6321            const commentingNotificationsOptions = {
6322                realm: "dailynews",
6323                listid: 1338,
6324                domain: "api.thestar.com",
6325                domainAlias: "thestar",
6326                user_email: userEmail
6327            };
6328
6329            subscribeNewUserToNewsletter(commentingNotificationsOptions);
6330
6331            
6332        }
6333       
6334        function csrfDatetime() {
6335            const salt = "aIojjNzJ";
6336            const now = new Date();
6337            const epochTime = now.getTime();
6338            const manipulatedNumber = (epochTime * 12345) + 67890;
6339            const manipulatedString = manipulatedNumber.toString().split('').reverse().join('') + salt;
6340            const disguised = btoa(manipulatedString);
6341            return disguised;
6342        }
6343            
6344        async function newsletterHashData(data) {
6345            const encoder = new TextEncoder();
6346            const dataUint8Array = encoder.encode(data);
6347            const hashBuffer = await crypto.subtle.digest('SHA-256', dataUint8Array);
6348            const hashArray = Array.from(new Uint8Array(hashBuffer)); // Convert buffer to byte array
6349            const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); // Convert bytes to hex string
6350            return hashHex;
6351        }
6352        
6353        async function subscribeNewUserToNewsletter(theOptions) {
6354            let listid = theOptions.listid;
6355            let realm = theOptions.realm;
6356            let NLdomain = theOptions.domain;
6357            let domainAlias = theOptions.domainAlias;
6358            let currentUserEmail = theOptions.user_email;
6359            let newStorageEmail = theOptions.new_storage_email;
6360            var myHeaders = new Headers();
6361            myHeaders.append("Content-Type", "application/json");
6362            myHeaders.append("Host", "new_storage_email");
6363
6364            const recaptchaResponse = "";
6365            const userToken = Cookies.get('tncms-user');
6366
6367            var raw;
6368            const source = {
6369                "platform": "web",
6370                "property": domainAlias,
6371                "type": "automatic",
6372                "place": "modal_purchase_success",
6373                "url": window.location.href,
6374                "userAgent": navigator.userAgent,
6375                "blockId": "",
6376                "timestamp": new Date().toISOString(),
6377                "action": "sub"
6378            };
6379            if (userToken) {
6380                raw = JSON.stringify({
6381                  "email": currentUserEmail,
6382                  "origin": domainAlias,
6383                  "token": userToken,
6384                  "source": source
6385                });
6386            } else {
6387                raw = JSON.stringify({
6388                  "email": currentUserEmail,
6389                  "origin": domainAlias,
6390                  "source": source
6391                });
6392            }
6393
6394            const hash = await newsletterHashData(raw);
6395            myHeaders.append("x-data-integrity", hash);
6396
6397            var requestOptions = {
6398              method: 'POST',
6399              headers: myHeaders,
6400              body: raw,
6401              redirect: 'follow'
6402            };
6403
6404            fetch("https://" + NLdomain + "/newsletters/v2/subscription?realm=" + realm + "&listid=" + listid, requestOptions)
6405              .then(response => response.text())
6406              .then(result => { 
6407                  let message = JSON.parse(result);
6408                  if((message?.error?.code ?? -1) === 0) {
6409                      return;
6410                  } else if(message.code == 200) {  
6411                      window.localStorage.setItem("tncms-firstupsubscribed", newStorageEmail);
6412                      sessionStorage.removeItem("tncms-disclaimer-checked");
6413                  }
6414                  else {
6415                      console.log("error");
6416                      console.log(message.code);
6417                  }                      
6418              })
6419              .catch(error => console.log('error', error));
6420        }        
6421    </script>
6421
6422
6423    <div class="text-center">
6424        
6425        <a href="/subscribe/success/" role="button" class="btn btn-danger btn-lg" aria-label="OK">OK</a>
6426        
6427    </div>
6428                    </div>
6429                </div>
6430
6431                <!-- ERROR TAB -->
6432                <div id="modal-error-tab" class="modal-content hide">
6433                    <div class="modal-header">
6434                        <button type="button" class="close" data-dismiss="modal" aria-label="Close">
6435                            <span aria-hidden="true">&times;</span>
6436                        </button>
6437                        
6438                        <h3 class="text-center">An error occurred</h3>
6439                    </div>
6440                    <div class="modal-body row">
6441                        <div class="col-xs-12">
6442                            <div class="alert alert-warning" role="alert">
6443                                <div class="error-message">This offer is currently unavailable.</div>
6444                            </div>
6445                            <div class="text-center">
6446                                <button type="button" class="btn" data-dismiss="modal" aria-label="Close">Close</button>
6447                            </div>
6448                        </div>
6449                    </div>
6450                </div>
6451
6452                <!-- SPINNER TAB -->
6453                <div id="modal-spinner-tab" class="modal-content hide">
6454                    <div class="modal-body row text-center">
6455                        <i class="fas tnt-spinner tnt-spin" style="font-size:64px;"></i>
6456                    </div>
6457                </div></div>
6458        </div>
6459    </div>
6460<template id="access-offers-in-page-template">
6461
6462    <div  class="subscriber-offers access-offers-in-page access-offers-wrapper access-display-default">
6463        <header class="text-center">
6464            <button type="button" class="close" aria-label="Close">
6465                <span aria-hidden="true">&times;</span>
6466            </button>   
6467            <h2 class="offer-group-title"></h2>
6468            <p class="offer-group-description"></p>
6469        </header>
6470
6471        <div class="access-login access-login-super col-sm-8 col-sm-push-2">
6472    <div class="logged-in alert alert-success row purchase-standard" role="alert">
6473        <div class="col-sm-8 text-left">You are logged in <strong class="tn-user-screenname"></strong></div>
6474        <div class="col-sm-4 text-right">&nbsp;<a class="alert-link" href="https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html" rel="nofollow">Switch accounts</a></div>
6475    </div>
6476
6477        </div>
6478        <div class="clearfix"></div> 
6479
6480        <div class="access-methods-list output no-services" data-paywall-display="inline"></div>
6481
6482        <div class="offer-group-secure-signup text-center padding-bottom">Secure transaction.<span class="access-login access-login-link not-logged-in">
6483                <a href="javascript:void(0)" role="button" class="login-toggle" data-in-page="true">Have an account? Log In</a>
6484            </span></div>
6485    </div>
6486
6487</template>
6488<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/content/tncms/live/libraries/flex/components/torstar_core/resources/scripts/newsletter-helper.min.js?_dc=1789580011"></script>
vendor: 1 bytes, line 6488
6488
6489<script src="https://cdn.jsdelivr.net/npm/jwt-decode/build/jwt-decode.min.js"></script>
vendor: 1 bytes, line 6489
6489
6490<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/tnt.errors.log.gtm.ff9df6708e2dbc9da79fbefae5491221.js"></script>
vendor: 1 bytes, line 6490
6490
6491<script>/*<![CDATA[*/ 
6492        if(window.innerWidth<800){
6493        document.addEventListener('DOMContentLoaded', function() {
6494        function getAbsoluteHeight(el) {
6495          var styles = window.getComputedStyle(el);
6496          var margin = parseFloat(styles['marginTop']) +
6497          parseFloat(styles['marginBottom']);
6498
6499          return Math.ceil(el.offsetHeight + margin);
6500         }
6501         
6502          try{
6503              var myStickyObject = document.querySelector('.stickyMobileAd');
6504              var bodyContainer = document.getElementById("main-body-container");
6505
6506              if (!myStickyObject || !bodyContainer) {
6507                return;
6508              }
6509
6510              var initialOffset = myStickyObject.offsetTop; // Initial offset position of ad div
6511              var isSticky = false;
6512              var hasExecuted = false; // Flag variable to track if the code has already executed
6513              var adContainerHeight = getAbsoluteHeight(myStickyObject);
6514              
6515              var adPlaceholder = document.createElement('div');
6516              adPlaceholder.style.height = adContainerHeight + 'px';
6517              adPlaceholder.style.width = '100%';
6518              
6519              
6520            
6521              function makeSticky() {
6522                myStickyObject.classList.add('sticky');
6523                isSticky = true;
6524                // bodyContainer.style.marginTop = adContainerHeight - 1 + "px";
6525                
6526                // myStickyObject.parentElement.appendChild(adPlaceholder);
6527                myStickyObject.parentElement.prepend(adPlaceholder);
6528            
6529                setTimeout(function() {
6530                  myStickyObject.classList.remove('sticky');
6531                  // bodyContainer.style.marginTop = "0px";
6532                  myStickyObject.parentElement.removeChild(adPlaceholder);
6533                  isSticky = false;
6534                }, 7000); // Revert back to normal after 7 seconds
6535              }
6536            
6537              function handleScroll() {
6538                if (!hasExecuted) {
6539                  var scrollPos = window.pageYOffset || document.documentElement.scrollTop;
6540            
6541                  if (!isSticky && scrollPos >= initialOffset) {
6542                    makeSticky();
6543                  }
6544            
6545                  hasExecuted = true;
6546                  window.removeEventListener('scroll', handleScroll); // Remove the scroll event listener
6547                }
6548              }
6549              window.addEventListener('scroll', handleScroll);
6550          }catch(err){}
6551        });
6552        }
6553         /*]]>*/</script>
vendor: 1 bytes, line 6553
6553
6554<script>/*<![CDATA[*/ dataLayer.push({
6555            'tncms.asset.sections': ["interactives", "politics/federal"],
6556            'tncms.asset.flags': [""],
6557            'tncms.asset.keywords': ["#federal_politics", "#starnewsroom", "#federal_election", "#polls", "#poll_tracker", "#the_signal", "#election_forecast", "#mark_carney", "#pierre_poilievre", "#starlock", "#conservative_party_of_canada", "#liberal_party_of_canada"]
6558        }); /*]]>*/</script>
vendor: 1 bytes, line 6558
6558
6559<script>/*<![CDATA[*/ 
6560                __tnt.googleEvent = function(obj) {
6561                    dataLayer.push({
6562                        'event': 'tncms.event.trigger',
6563                             'tncms.event.trigger.category': obj.category,
6564                             'tncms.event.trigger.action': obj.action,
6565                             'tncms.event.trigger.label': obj.label, 
6566                             'tncms.event.trigger.value': obj.value
6567                    });
6568                }
6569                /* Virtual page view */
6570                __tnt.googlePageView = function(obj) {
6571                    var sURL = obj.url.replace(/^.*\/\/[^\/]+/, '');
6572                    dataLayer.push({
6573                        'event': 'tncms.event.virtual_pageview',
6574                            'tncms.event.virtual_pageview.url': sURL,
6575                            'tncms.event.virtual_pageview.title': obj.title,
6576                            'tncms.event.virtual_pageview.metric': obj.metric
6577                    });
6578                }
6579                /* Social event */
6580                __tnt.googleSocial = function(obj) {
6581                    dataLayer.push({
6582                        'event': 'tncms.event.social',
6583                            'tncms.event.social.network': obj.network,
6584                            'tncms.event.social.action': obj.socialAction,
6585                            'tncms.event.social.target': obj.url
6586                    });
6587                } /*]]>*/</script>
vendor: 1 bytes, line 6587
6587
6588<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.3.1.95bbb3da2f158942c0d0dff2acafdef2.js"></script>
vendor: 1 bytes, line 6588
6588
6589<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.granted.3.1.ad90ffc453968fa1a966ef47f259ec6d.js"></script>
vendor: 1 bytes, line 6589
6589
6590<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.user.modal.49beee8a0cced4df9438e2a9bb52e78d.js"></script>
vendor: 1 bytes, line 6590
6590
6591<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.user.modal.wall.2c4de5639d82c1a355192e6b6164f231.js"></script>
vendor: 1 bytes, line 6591
6591
6592<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.denied.5.0.05ba7eb954dfb869e57aca2e4d3f4ec9.js"></script>
vendor: 1 bytes, line 6592
6592
6593<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/jquery.validate.f4d73313b7ce7a32500a94c38e2d2ca2.js"></script>
vendor: 1 bytes, line 6593
6593
6594<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/additional-methods.54cac72c4ecc4fe6191818374fa8d218.js"></script>
vendor: 1 bytes, line 6594
6594
6595<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/plugins/resources/scripts/jquery.validate.custom-methods.77562065896d6b48f0405363b8758736.js"></script>
vendor: 1 bytes, line 6595
6595
6596<script>/*<![CDATA[*/ 
6597        document.getElementById('user-password-toggle').addEventListener('click', function() {
6598            var passInput = document.getElementById('user-password'),
6599                passToggle = document.getElementById('user-password-toggle'),
6600                passIcon = passToggle.getElementsByClassName('tnt-svg')[0];
6601            if (passInput.type === 'password') {
6602                passInput.type = 'text';
6603                passIcon.classList.replace('tnt-eye', 'tnt-eye-slash');
6604            } else {
6605                passInput.type = 'password';
6606                passIcon.classList.replace('tnt-eye-slash', 'tnt-eye');
6607            }
6608        }); /*]]>*/</script>
vendor: 1 bytes, line 6608
6608
6609<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.payment.4dc6d7241d3b6d5b678a40ded47c855a.js"></script>
vendor: 1 bytes, line 6609
6609
6610<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.payment.wallet.66a8a34f1641881439e21da604056e9b.js"></script>
vendor: 1 bytes, line 6610
6610
6611<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.payment.paypal.02877f1ee06ab25cd4669e9a49ecc6f9.js"></script>
vendor: 1 bytes, line 6611
6611
6612<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.log.gtm.37085f9822fb12feb0326ec09cd5a1a0.js"></script>
vendor: 1 bytes, line 6612
6612
6613<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.log.legacy.8de26295ce9ca025da0008f10ecacd2d.js"></script>
vendor: 1 bytes, line 6613
6613
6614<script>/*<![CDATA[*/ 
6615    let userFirstName = ''; 
6616    let userLastName = ''; 
6617    if (TNCMS.User.isLoggedIn()) 
6618    { 
6619        try
6620        { 
6621            userLastName= TNCMS.User.getLastName() || '';
6622            userFirstName = TNCMS.User.getFirstName() || '';
6623            document.getElementById('field-purchaser-firstname-super-purchase').setAttribute('value', userFirstName); 
6624            document.getElementById('field-purchaser-lastname-super-purchase').setAttribute('value', userLastName); 
6625            document.getElementById('field-purchaser-name-super-purchase').setAttribute('value', userFirstName + ' ' + userLastName); 
6626        } 
6627        catch(err){} 
6628    } /*]]>*/</script>
vendor: 1 bytes, line 6628
6628
6629<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.output.subscription.c45ca3f1403477be0258909cff76ed45.js"></script>
vendor: 1 bytes, line 6629
6629
6630<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.output.laterpay.7a6e72d83c11470ac72ce2b2f5d9fdbd.js"></script>
vendor: 1 bytes, line 6630
6630
6631<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/subscription/resources/scripts/tnt.access.output.customjs.1480f2a51e2939dd767e130e3406e489.js"></script>
vendor: 1 bytes, line 6631
6631
6632<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/asset-edit.60e8e67e04be1194326dcfbe7f00b8c3.js"></script>
vendor: 1 bytes, line 6632
6632
6633<script>/*<![CDATA[*/ 
6634        document.querySelector('.mobile-menu-close').addEventListener('click',function(e){
6635            e.preventDefault();
6636            e.stopPropagation();
6637            document.documentElement.classList.remove('drawer-open', 'active-left', 'active-right');
6638        })
6639         /*]]>*/</script>
vendor: 1 bytes, line 6639
6639
6640<script>/*<![CDATA[*/ 
6641            (function(d) {
6642                const loginUserButton = d.querySelector("#userStateButton");
6643                const userLogoutForm = d.querySelector("#user-mobile-logout-form");
6644                const userLoginForm = d.querySelector("#user-mobile-login-form");
6645                const remoteSite = false;
6646                d.addEventListener('DOMContentLoaded',function(){
6647                    if (TNCMS.User.isLoggedIn())
6648                    {
6649                        loginUserButton.dataset.status='logout';
6650                        loginUserButton.innerHTML = "Log Out";
6651                    }
6652                })
6653                loginUserButton.addEventListener('click', function () {
6654                    if(loginUserButton.dataset.status=='login')
6655                    {
6656                        if (remoteSite)
6657                        {
6658                            userLoginForm.submit();
6659                        } else {
6660                            window.location.href="/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html";
6661                        }
6662                    } else {
6663                        userLogoutForm.submit();
6664                    }
6665                });
6666            })(document);
6667             /*]]>*/</script>
vendor: 1 bytes, line 6667
6667
6668<script>/*<![CDATA[*/ 
6669            (function(d) {
6670            
6671            var form = d.getElementById('site-search-3699114'),
6672                query_input = d.getElementById('site-search-3699114-term'),
6673                is_open = false;
6674            let searchCancel = d.getElementById("search-cancel-3699114");
6675            let searchDiv = d.getElementById("site-search-form-3699114");
6676            let controlsDiv = d.getElementById("user-controls-3699114");
6677            searchCancel.addEventListener('click', function () {
6678                query_input.value=""
6679            });
6680            
6681            /** Submit handler */
6682            form.onsubmit = function(){
6683                // Filter query
6684                var elem = document.querySelector("#site-search-3699114 input[name=q]"),
6685        sQueryFiltered = elem.value.replace(/\?/g, '');
6686    elem.value = sQueryFiltered;
6687        
6688                // No submit if empty input
6689                if( query_input.val() ){
6690                    return true;
6691                } else{
6692                    return false;
6693                }
6694            };
6695        })(document);
6696            
6697         /*]]>*/</script>
vendor: 1 bytes, line 6697
6697
6698<script>/*<![CDATA[*/ 
6699        (function(){
6700            let currentUserType = 'anonymous';
6701            if (__tnt.user.loggedIn && __tnt.user.services!='0' && __tnt.user.services !== undefined)
6702            {
6703                currentUserType = 'subscriber';
6704            } else if (__tnt.user.loggedIn)
6705            {
6706                currentUserType = 'registered';
6707            }
6708            
6709            try {
6710            const selectedPromo = document.querySelector("#user-promo-2841699.user-promo ."+currentUserType);
6711            selectedPromo.classList.remove("hidden");
6712            } catch(err){}
6713       })();
6714            
6715        /*]]>*/</script>
vendor: 1 bytes, line 6715
6715
6716<script>/*<![CDATA[*/ 
6717    const userControlPanelMain2841699=document.querySelector("#user-control-panel-2841699");
6718    const userControlPanelButton2841699=document.querySelector("#userControlPanel-2841699");
6719    const userPanelIndicator2841699=userControlPanelButton2841699.querySelector(".userPanelIndicator");
6720    const userControlPanel2841699=userControlPanelMain2841699.querySelector(".user-controls-menu");
6721    const userNameContainer2841699=userControlPanelMain2841699.querySelector(".userName");
6722    const debugReg2841699 = false;
6723    const debugSub2841699 = false;
6724         
6725    document.addEventListener("DOMContentLoaded", handleUserLogin2841699('domloaded'));
6726    /* add an event listener for tnt-user-status */
6727    document.addEventListener("tnt-user-status", handleUserLogin2841699('userstatus'));
6728    function handleUserLogout2841699()
6729    {
6730        //window.sessionStorage.removeItem('tncms-newsletter-email','');
6731        window.sessionStorage.removeItem('bd-viafoura-oidc'); // clear viafoura JWT token
6732        document.getElementById('user-local-logout-form-2841699').submit();
6733        return false;
6734    }
6735    function setAccountEmail() {
6736        const userControlUserEmail2841699 =
6737        userControlPanelMain2841699.querySelector(
6738            "#user-email-2841699"
6739        );
6740
6741        if (!userControlUserEmail2841699) {
6742            return;
6743        }
6744    
6745        if (TNCMS.User.isLoggedIn() && TNCMS.User.getEmail()) {
6746            userControlUserEmail2841699.style.display = 'block';
6747            userControlUserEmail2841699.textContent = TNCMS.User.getEmail();
6748        } else {
6749            userControlUserEmail2841699.style.display = 'none';
6750            userControlUserEmail2841699.textContent = '';
6751        }
6752    }
6753    function handleUserLogin2841699(caller)
6754    {
6755        //console.log("Called from "+caller);
6756        // Modify dropdown menu button if user is logged in
6757        if (TNCMS.User.isLoggedIn() || debugReg2841699 || debugSub2841699) {
6758           // check to see if we've already handled this, which might be the case if this is being fired from the user subscription wall
6759           if(userControlPanelButton2841699.dataset.user!="loggedin")
6760           {
6761               let userFirstName = "Guest";
6762               
6763               try{
6764                   userFirstName = TNCMS.User.getFirstName();
6765               } catch(err){
6766                   userFirstName = TNCMS.User.getScreenName();
6767                   if (userFirstName.includes('jid-'))
6768                   {
6769                       //we have a janrain user screenname, do nothing
6770                       userFirstName = "Reader";
6771                   } else {
6772                       //we can try splitting on hyphen and taking first segment
6773                       let userNameParts = userFirstName.split("-");
6774                       if(userNameParts.length > 2)
6775                       {
6776                           userFirstName = userNameParts[0];
6777                       }
6778                   }
6779               }
6780               if(debugReg2841699 || debugSub2841699)
6781               {
6782                   userFirstName = "Debug User";
6783               }
6784               userControlPanelButton2841699.classList.remove("loggedout");
6785               userControlPanelButton2841699.classList.add("loggedin");
6786               userControlPanelButton2841699.dataset.user="loggedin";
6787               
6788               userNameContainer2841699.innerHTML = userFirstName;
6789               const userIcon2841699 = userControlPanelButton2841699.querySelector('.userIconSpan');
6790               userIcon2841699.classList.remove('icon-guest');
6791               userIcon2841699.classList.add('icon-signed-in');
6792               userControlPanelButton2841699.addEventListener('click', function(evt){
6793                   const target = userControlPanelButton2841699;
6794                   const userPanelIndicatorToggle2841699=userControlPanelButton2841699.querySelector(".userPanelIndicator");
6795                   if(target.dataset.status=="open")
6796                   {
6797                       target.dataset.status="closed";
6798                       userControlPanel2841699.classList.remove("open");
6799                       userControlPanel2841699.classList.add("closed");
6800                       userPanelIndicatorToggle2841699.classList.remove("tnt-chevron-up");
6801                       userPanelIndicatorToggle2841699.classList.add("tnt-chevron-down");
6802                   } else {
6803                       target.dataset.status="open";
6804                       userControlPanel2841699.classList.remove("closed");
6805                       userControlPanel2841699.classList.add("open");
6806                       userPanelIndicatorToggle2841699.classList.remove("tnt-chevron-down");
6807                       userPanelIndicatorToggle2841699.classList.add("tnt-chevron-up");
6808                   }
6809                   
6810               });
6811           }
6812           if(caller === 'userstatus') {
6813               setAccountEmail();
6814           }
6815       } else {
6816           userControlPanelButton2841699.addEventListener('click', function(){
6817                
6818                window.location = 'https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html';
6819                
6820           });
6821       }
6822    }
6823 /*]]>*/</script>
vendor: 1 bytes, line 6823
6823
6824<script>/*<![CDATA[*/ 
6825    document.addEventListener('DOMContentLoaded',function() {
6826        const isUserSubscriber = (TNCMS.User.hasFullAccess() && __tnt.user.services) || TNCMS.User.isAdmin(); 
6827        
6828        const showArchivesToSubscribers = () => {
6829            const archiveMenuItemEl = document.getElementById('archives-2841699');
6830            let bShowArchivesItemByDomain = true;
6831            
6832            
6833            if (!archiveMenuItemEl) {
6834                return;
6835            }
6836            
6837            if(isUserSubscriber && bShowArchivesItemByDomain) {
6838                archiveMenuItemEl.style.display = 'block';
6839            } else {
6840                archiveMenuItemEl.style.display = 'none';
6841            }
6842        };
6843        
6844        const showPerksToSubscribers = () => {
6845            const perksMenuItemEl = document.getElementById('sub-perks-2841699'); 
6846            
6847            if(isUserSubscriber && perksMenuItemEl) {
6848                perksMenuItemEl.style.display = 'block';
6849            }
6850        };
6851        
6852        try {
6853            showArchivesToSubscribers();
6854            showPerksToSubscribers();
6855        } catch(e) {
6856            console.log('inlineMenuItemLinkScript Error: ', e);
6857        }
6858    });
6859 /*]]>*/</script>
vendor: 1 bytes, line 6859
6859
6860<script>/*<![CDATA[*/ 
6861        (function(d) {
6862        
6863        var form = d.getElementById('site-search-header'),
6864            query_input = d.getElementById('site-search-2841699-term'),
6865            is_open = false;
6866        let searchToggle = d.getElementById("search-toggle-2841699");
6867        let searchCancel = d.getElementById("search-cancel-2841699");
6868        let searchDiv = d.getElementById("site-search-form-2841699");
6869        let controlsDiv = d.getElementById("user-controls-2841699");
6870        searchToggle.addEventListener('click', function () {
6871            controlsDiv.style.display="none";
6872            searchDiv.style.display="flex";
6873            query_input.focus();
6874            is_open = true;
6875        });
6876        searchCancel.addEventListener('click', function () {
6877            searchDiv.style.display="none";
6878            controlsDiv.style.display="flex";
6879            is_open = false;
6880        });
6881        
6882        /** Submit handler */
6883        form.onsubmit = function(){
6884            // Filter query
6885            var elem = document.querySelector("#site-search-2841699 input[name=q]"),
6886        sQueryFiltered = elem.value.replace(/\?/g, '');
6887    elem.value = sQueryFiltered;
6888    
6889            // No submit if empty input
6890            if( query_input.val() ){
6891                return true;
6892            } else{
6893                return false;
6894            }
6895        };
6896    })(document);
6897        
6898     /*]]>*/</script>
vendor: 1 bytes, line 6898
6898
6899<script>/*<![CDATA[*/ 
6900        (function(){
6901            let currentUserType = 'anonymous';
6902            if (__tnt.user.loggedIn && __tnt.user.services!='0' && __tnt.user.services !== undefined)
6903            {
6904                currentUserType = 'subscriber';
6905            } else if (__tnt.user.loggedIn)
6906            {
6907                currentUserType = 'registered';
6908            }
6909            
6910            try {
6911            const selectedPromo = document.querySelector("#user-promo-2841705.user-promo ."+currentUserType);
6912            selectedPromo.classList.remove("hidden");
6913            } catch(err){}
6914       })();
6915            
6916        /*]]>*/</script>
vendor: 1 bytes, line 6916
6916
6917<script>/*<![CDATA[*/ 
6918    const userControlPanelMain2841705=document.querySelector("#user-control-panel-2841705");
6919    const userControlPanelButton2841705=document.querySelector("#userControlPanel-2841705");
6920    const userPanelIndicator2841705=userControlPanelButton2841705.querySelector(".userPanelIndicator");
6921    const userControlPanel2841705=userControlPanelMain2841705.querySelector(".user-controls-menu");
6922    const userNameContainer2841705=userControlPanelMain2841705.querySelector(".userName");
6923    const debugReg2841705 = false;
6924    const debugSub2841705 = false;
6925         
6926    document.addEventListener("DOMContentLoaded", handleUserLogin2841705('domloaded'));
6927    /* add an event listener for tnt-user-status */
6928    document.addEventListener("tnt-user-status", handleUserLogin2841705('userstatus'));
6929    function handleUserLogout2841705()
6930    {
6931        //window.sessionStorage.removeItem('tncms-newsletter-email','');
6932        window.sessionStorage.removeItem('bd-viafoura-oidc'); // clear viafoura JWT token
6933        document.getElementById('user-local-logout-form-2841705').submit();
6934        return false;
6935    }
6936    function setAccountEmail() {
6937        const userControlUserEmail2841705 =
6938        userControlPanelMain2841705.querySelector(
6939            "#user-email-2841705"
6940        );
6941
6942        if (!userControlUserEmail2841705) {
6943            return;
6944        }
6945    
6946        if (TNCMS.User.isLoggedIn() && TNCMS.User.getEmail()) {
6947            userControlUserEmail2841705.style.display = 'block';
6948            userControlUserEmail2841705.textContent = TNCMS.User.getEmail();
6949        } else {
6950            userControlUserEmail2841705.style.display = 'none';
6951            userControlUserEmail2841705.textContent = '';
6952        }
6953    }
6954    function handleUserLogin2841705(caller)
6955    {
6956        //console.log("Called from "+caller);
6957        // Modify dropdown menu button if user is logged in
6958        if (TNCMS.User.isLoggedIn() || debugReg2841705 || debugSub2841705) {
6959           // check to see if we've already handled this, which might be the case if this is being fired from the user subscription wall
6960           if(userControlPanelButton2841705.dataset.user!="loggedin")
6961           {
6962               let userFirstName = "Guest";
6963               
6964               try{
6965                   userFirstName = TNCMS.User.getFirstName();
6966               } catch(err){
6967                   userFirstName = TNCMS.User.getScreenName();
6968                   if (userFirstName.includes('jid-'))
6969                   {
6970                       //we have a janrain user screenname, do nothing
6971                       userFirstName = "Reader";
6972                   } else {
6973                       //we can try splitting on hyphen and taking first segment
6974                       let userNameParts = userFirstName.split("-");
6975                       if(userNameParts.length > 2)
6976                       {
6977                           userFirstName = userNameParts[0];
6978                       }
6979                   }
6980               }
6981               if(debugReg2841705 || debugSub2841705)
6982               {
6983                   userFirstName = "Debug User";
6984               }
6985               userControlPanelButton2841705.classList.remove("loggedout");
6986               userControlPanelButton2841705.classList.add("loggedin");
6987               userControlPanelButton2841705.dataset.user="loggedin";
6988               
6989               userNameContainer2841705.innerHTML = userFirstName;
6990               const userIcon2841705 = userControlPanelButton2841705.querySelector('.userIconSpan');
6991               userIcon2841705.classList.remove('icon-guest');
6992               userIcon2841705.classList.add('icon-signed-in');
6993               userControlPanelButton2841705.addEventListener('click', function(evt){
6994                   const target = userControlPanelButton2841705;
6995                   const userPanelIndicatorToggle2841705=userControlPanelButton2841705.querySelector(".userPanelIndicator");
6996                   if(target.dataset.status=="open")
6997                   {
6998                       target.dataset.status="closed";
6999                       userControlPanel2841705.classList.remove("open");
7000                       userControlPanel2841705.classList.add("closed");
7001                       userPanelIndicatorToggle2841705.classList.remove("tnt-chevron-up");
7002                       userPanelIndicatorToggle2841705.classList.add("tnt-chevron-down");
7003                   } else {
7004                       target.dataset.status="open";
7005                       userControlPanel2841705.classList.remove("closed");
7006                       userControlPanel2841705.classList.add("open");
7007                       userPanelIndicatorToggle2841705.classList.remove("tnt-chevron-down");
7008                       userPanelIndicatorToggle2841705.classList.add("tnt-chevron-up");
7009                   }
7010                   
7011               });
7012           }
7013           if(caller === 'userstatus') {
7014               setAccountEmail();
7015           }
7016       } else {
7017           userControlPanelButton2841705.addEventListener('click', function(){
7018                
7019                window.location = 'https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html';
7020                
7021           });
7022       }
7023    }
7024 /*]]>*/</script>
vendor: 1 bytes, line 7024
7024
7025<script>/*<![CDATA[*/ 
7026    document.addEventListener('DOMContentLoaded',function() {
7027        const isUserSubscriber = (TNCMS.User.hasFullAccess() && __tnt.user.services) || TNCMS.User.isAdmin(); 
7028        
7029        const showArchivesToSubscribers = () => {
7030            const archiveMenuItemEl = document.getElementById('archives-2841705');
7031            let bShowArchivesItemByDomain = true;
7032            
7033            
7034            if (!archiveMenuItemEl) {
7035                return;
7036            }
7037            
7038            if(isUserSubscriber && bShowArchivesItemByDomain) {
7039                archiveMenuItemEl.style.display = 'block';
7040            } else {
7041                archiveMenuItemEl.style.display = 'none';
7042            }
7043        };
7044        
7045        const showPerksToSubscribers = () => {
7046            const perksMenuItemEl = document.getElementById('sub-perks-2841705'); 
7047            
7048            if(isUserSubscriber && perksMenuItemEl) {
7049                perksMenuItemEl.style.display = 'block';
7050            }
7051        };
7052        
7053        try {
7054            showArchivesToSubscribers();
7055            showPerksToSubscribers();
7056        } catch(e) {
7057            console.log('inlineMenuItemLinkScript Error: ', e);
7058        }
7059    });
7060 /*]]>*/</script>
vendor: 1 bytes, line 7060
7060
7061<script>/*<![CDATA[*/ 
7062(function(w, d) {
7063    let userServices = __tnt.user.services;
7064    let userStatus = __tnt.user.loggedIn;
7065    if(userServices == null){
7066        userServices = 0;
7067    }let allowedServicesTier1 = Array();
7068    let excludedServicesTier1 = Array();
7069    
7070    
7071        let excludedServicesTierString1 = "12859,12841,12847,12850,13396,12856,12865,12844,12730,13072,12868,12871,12874";
7072        excludedServicesTier1 = excludedServicesTierString1.split(",");
7073        const allowedLinkTier1 = "https://www.thestar.com/tncms/auth/federated/?return=https://torontostar.pressreader.com/";
7074        const deniedLinkTier1 = "/subscribe/epaper/";
7075    
7076    
7077    
7078        const allowedServicesTier2 = Array();
7079        const allowedLinkTier2 = "/subscribe/epaper/";
7080    
7081    
7082    let newLink = "";
7083    /* For testing only */
7084    
7085    
7086    
7087    if (userStatus && userServices!="0")
7088    {
7089        let accessGranted = false;
7090        let userServicesList = userServices.split(",");
7091        userServicesList.forEach((uService) => {
7092            
7093            if (allowedServicesTier1.length > 0) 
7094            {
7095                if(allowedServicesTier1.includes(uService))
7096                {
7097                    
7098                    accessGranted = true;
7099                    newLink = allowedLinkTier1;
7100                }
7101            }
7102            else if (excludedServicesTier1.length > 0)                 
7103            {
7104                accessGranted = true;
7105                newLink = allowedLinkTier1;
7106                if(excludedServicesTier1.includes(uService))
7107                {
7108                    
7109                    accessGranted = false;
7110                    newLink = deniedLinkTier1;
7111                }
7112            }
7113            
7114            if(allowedServicesTier2.includes(uService))
7115            {
7116                
7117                accessGranted = true;
7118                newLink = allowedLinkTier2;
7119            }
7120        });
7121        /* only making this call if the user is at least logged in and has something other than 0 for services */
7122        if (accessGranted)
7123        {
7124            
7125            updateEditionLinks3118246(newLink);
7126        } else {
7127            /* we have someone logged in, but they don't have access, so we'll just update the link to the other one.*/
7128            
7129            
7130            if (allowedServicesTier1.length === 0 && excludedServicesTier1.length > 0) {
7131                updateEditionLinks3118246(newLink);
7132            }
7133            else 
7134            {
7135                
7136                    updateEditionLinks3118246("/subscribe/epaper/");
7137                
7138            }
7139        }
7140    } else if (userStatus) {
7141        /* we have someone logged in, but they don't have access, so we'll just update the link to the other one.*/
7142        
7143        
7144            updateEditionLinks3118246("/subscribe/epaper/");
7145        
7146    } else {
7147        
7148        
7149            updateEditionLinks3118246("/subscribe/epaper/");
7150        
7151    }
7152    
7153    
7154    function updateEditionLinks3118246(newLink)
7155    {
7156        
7157            let oSelectors = [];
7158            
7159                oSelectors.push(".tnt-section-i-class-fas-tnt-file-alt-i-today-s-paper");
7160            
7161                oSelectors.push(".epaper");
7162            
7163        
7164        for (let i=0;i<oSelectors.length;i++) {
7165            let eLinks = document.querySelectorAll(oSelectors[i]);
7166            Array.prototype.forEach.call(eLinks, function(el) {
7167                  
7168                el.href=newLink;
7169            });
7170        }
7171    }
7172})(window, document);
7173 /*]]>*/</script>
vendor: 1 bytes, line 7173
7173
7174<script>/*<![CDATA[*/ 
7175        (function(){
7176            let currentUserType = 'anonymous';
7177            if (__tnt.user.loggedIn && __tnt.user.services!='0' && __tnt.user.services !== undefined)
7178            {
7179                currentUserType = 'subscriber';
7180            } else if (__tnt.user.loggedIn)
7181            {
7182                currentUserType = 'registered';
7183            }
7184            
7185            try {
7186            const selectedPromo = document.querySelector("#user-promo-2841702.user-promo ."+currentUserType);
7187            selectedPromo.classList.remove("hidden");
7188            } catch(err){}
7189       })();
7190            
7191        /*]]>*/</script>
vendor: 1 bytes, line 7191
7191
7192<script>/*<![CDATA[*/ 
7193    const userControlPanelMain2841702=document.querySelector("#user-control-panel-2841702");
7194    const userControlPanelButton2841702=document.querySelector("#userControlPanel-2841702");
7195    const userPanelIndicator2841702=userControlPanelButton2841702.querySelector(".userPanelIndicator");
7196    const userControlPanel2841702=userControlPanelMain2841702.querySelector(".user-controls-menu");
7197    const userNameContainer2841702=userControlPanelMain2841702.querySelector(".userName");
7198    const debugReg2841702 = false;
7199    const debugSub2841702 = false;
7200         
7201    document.addEventListener("DOMContentLoaded", handleUserLogin2841702('domloaded'));
7202    /* add an event listener for tnt-user-status */
7203    document.addEventListener("tnt-user-status", handleUserLogin2841702('userstatus'));
7204    function handleUserLogout2841702()
7205    {
7206        //window.sessionStorage.removeItem('tncms-newsletter-email','');
7207        window.sessionStorage.removeItem('bd-viafoura-oidc'); // clear viafoura JWT token
7208        document.getElementById('user-local-logout-form-2841702').submit();
7209        return false;
7210    }
7211    function setAccountEmail() {
7212        const userControlUserEmail2841702 =
7213        userControlPanelMain2841702.querySelector(
7214            "#user-email-2841702"
7215        );
7216
7217        if (!userControlUserEmail2841702) {
7218            return;
7219        }
7220    
7221        if (TNCMS.User.isLoggedIn() && TNCMS.User.getEmail()) {
7222            userControlUserEmail2841702.style.display = 'block';
7223            userControlUserEmail2841702.textContent = TNCMS.User.getEmail();
7224        } else {
7225            userControlUserEmail2841702.style.display = 'none';
7226            userControlUserEmail2841702.textContent = '';
7227        }
7228    }
7229    function handleUserLogin2841702(caller)
7230    {
7231        //console.log("Called from "+caller);
7232        // Modify dropdown menu button if user is logged in
7233        if (TNCMS.User.isLoggedIn() || debugReg2841702 || debugSub2841702) {
7234           // check to see if we've already handled this, which might be the case if this is being fired from the user subscription wall
7235           if(userControlPanelButton2841702.dataset.user!="loggedin")
7236           {
7237               let userFirstName = "Guest";
7238               
7239               try{
7240                   userFirstName = TNCMS.User.getFirstName();
7241               } catch(err){
7242                   userFirstName = TNCMS.User.getScreenName();
7243                   if (userFirstName.includes('jid-'))
7244                   {
7245                       //we have a janrain user screenname, do nothing
7246                       userFirstName = "Reader";
7247                   } else {
7248                       //we can try splitting on hyphen and taking first segment
7249                       let userNameParts = userFirstName.split("-");
7250                       if(userNameParts.length > 2)
7251                       {
7252                           userFirstName = userNameParts[0];
7253                       }
7254                   }
7255               }
7256               if(debugReg2841702 || debugSub2841702)
7257               {
7258                   userFirstName = "Debug User";
7259               }
7260               userControlPanelButton2841702.classList.remove("loggedout");
7261               userControlPanelButton2841702.classList.add("loggedin");
7262               userControlPanelButton2841702.dataset.user="loggedin";
7263               
7264               userNameContainer2841702.innerHTML = userFirstName;
7265               const userIcon2841702 = userControlPanelButton2841702.querySelector('.userIconSpan');
7266               userIcon2841702.classList.remove('icon-guest');
7267               userIcon2841702.classList.add('icon-signed-in');
7268               userControlPanelButton2841702.addEventListener('click', function(evt){
7269                   const target = userControlPanelButton2841702;
7270                   const userPanelIndicatorToggle2841702=userControlPanelButton2841702.querySelector(".userPanelIndicator");
7271                   if(target.dataset.status=="open")
7272                   {
7273                       target.dataset.status="closed";
7274                       userControlPanel2841702.classList.remove("open");
7275                       userControlPanel2841702.classList.add("closed");
7276                       userPanelIndicatorToggle2841702.classList.remove("tnt-chevron-up");
7277                       userPanelIndicatorToggle2841702.classList.add("tnt-chevron-down");
7278                   } else {
7279                       target.dataset.status="open";
7280                       userControlPanel2841702.classList.remove("closed");
7281                       userControlPanel2841702.classList.add("open");
7282                       userPanelIndicatorToggle2841702.classList.remove("tnt-chevron-down");
7283                       userPanelIndicatorToggle2841702.classList.add("tnt-chevron-up");
7284                   }
7285                   
7286               });
7287           }
7288           if(caller === 'userstatus') {
7289               setAccountEmail();
7290           }
7291       } else {
7292           userControlPanelButton2841702.addEventListener('click', function(){
7293                
7294                window.location = 'https://www.thestar.com/users/login/?referer_url=https%3A%2F%2Fwww.thestar.com%2Finteractives%2Fcanadian-federal-politics-election-forecast%2Farticle_1337f598-2b2e-4b63-b5ee-0e923c663892.html';
7295                
7296           });
7297       }
7298    }
7299 /*]]>*/</script>
vendor: 1 bytes, line 7299
7299
7300<script>/*<![CDATA[*/ 
7301    document.addEventListener('DOMContentLoaded',function() {
7302        const isUserSubscriber = (TNCMS.User.hasFullAccess() && __tnt.user.services) || TNCMS.User.isAdmin(); 
7303        
7304        const showArchivesToSubscribers = () => {
7305            const archiveMenuItemEl = document.getElementById('archives-2841702');
7306            let bShowArchivesItemByDomain = true;
7307            
7308            
7309            if (!archiveMenuItemEl) {
7310                return;
7311            }
7312            
7313            if(isUserSubscriber && bShowArchivesItemByDomain) {
7314                archiveMenuItemEl.style.display = 'block';
7315            } else {
7316                archiveMenuItemEl.style.display = 'none';
7317            }
7318        };
7319        
7320        const showPerksToSubscribers = () => {
7321            const perksMenuItemEl = document.getElementById('sub-perks-2841702'); 
7322            
7323            if(isUserSubscriber && perksMenuItemEl) {
7324                perksMenuItemEl.style.display = 'block';
7325            }
7326        };
7327        
7328        try {
7329            showArchivesToSubscribers();
7330            showPerksToSubscribers();
7331        } catch(e) {
7332            console.log('inlineMenuItemLinkScript Error: ', e);
7333        }
7334    });
7335 /*]]>*/</script>
vendor: 1 bytes, line 7335
7335
7336<script>/*<![CDATA[*/ 
7337                    function getAbsoluteHeight(el) {
7338                      var styles = window.getComputedStyle(el);
7339                      var margin = parseFloat(styles['marginTop']) +
7340                      parseFloat(styles['marginBottom']);
7341
7342                      return Math.ceil(el.offsetHeight + margin);
7343                    }
7344                    var isMobile = __tnt.client.platform.android || __tnt.client.platform.iphone || __tnt.client.platform.ios;
7345                    
7346                        !function(t,i,n){var e,a,s,o,c,d={init:function(){a=i.getElementById("site-navbar-container"),isMobile?a.classList.add("affix-sticky"):(e=i.getElementById("main-body-container"),s=getAbsoluteHeight(a),o=!1,c=0,t.addEventListener("scroll",d.navPosition,!1),t.addEventListener("mousewheel",d.navPosition,!1))},navPosition:function(){o||(o=!0,setTimeout(function(){var n=a.getBoundingClientRect(),d=t.pageYOffset||i.documentElement.scrollTop,f=n.top+d;d>=f&&d>c?a.classList.contains("affix")||(c=f,a.classList.add("affix"),a.classList.remove("affix-top"),e.style.marginTop=s+"px"):a.classList.contains("affix-top")||(a.classList.remove("affix"),a.classList.add("affix-top"),e.style.marginTop="0px"),o=!1},25))}};"loading"==i.readyState?i.addEventListener("DOMContentLoaded",d.init,!1):d.init()}(window,document,__tnt);
7347                    document.addEventListener('DOMContentLoaded', function() {
7348                        var isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
7349                        
7350                        if (isIOS) {
7351                            Array.from(document.querySelectorAll('[data-toggle="offcanvas"]')).forEach(function(drawer) {
7352                                drawer.addEventListener("mouseover", function(e) {
7353                                    var drawerCls = drawer.dataset.target === 'left' ? 'active-left' : 'active-right';
7354                                    document.documentElement.classList.add('drawer-open', drawerCls);
7355                                })
7356                            })
7357                        }
7358                    }); /*]]>*/</script>
vendor: 1 bytes, line 7358
7358
7359<script>/*<![CDATA[*/ window.document.addEventListener('TownnewsSegmentLoaded', function(oEvent) {
7360        try {
7361            if(oEvent.detail && oEvent.detail.user_id && window.localStorage) {
7362                window.localStorage.setItem('_us_master_id', oEvent.detail.user_id);
7363                __tnt.log('UserStitch ID: ' + oEvent.detail.user_id);
7364            }
7365        } catch(oError){
7366            console.log(oError);
7367        }
7368    }); /*]]>*/</script>
vendor: 1 bytes, line 7368
7368
7369<script>/*<![CDATA[*/ document.addEventListener("DOMContentLoaded", __tnt.deprecatedCheck, false); /*]]>*/</script>
vendor: 1 bytes, line 7369
7369
7370<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/ads/resources/scripts/tnt.ads.core.9d39a5cf1d944aca793cec64b465c450.js"></script>
vendor: 1 bytes, line 7370
7370
7371<script src="https://bloximages.chicago2.vip.townnews.com/thestar.com/shared-content/art/tncms/templates/libraries/flex/components/template/resources/scripts/tnt.regions.e7df22f20c42105cce5864da9e346f48.js"></script>
vendor: 1 bytes, line 7371
7371
7372<script>/*<![CDATA[*/ __tnt.regions.stickyAnchor.init(); /*]]>*/</script>
vendor: 1 bytes, line 7372
7372
7373<script src="//cdn.viafoura.net/entry/index.js"></script>
7373</body>
7374</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.