1<!doctype html> 2<html lang="en-CA"> 3 <head> 4 <meta charset="UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <meta name="developer" content="Office/Bureau"> 7 <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> 8 9 <!-- This site is optimized with the Yoast SEO plugin v28.5 - https://yoast.com/product/yoast-seo-wordpress/ --> 10 <title>App Security & Privacy - The Citizen Lab</title> 11 <link rel="canonical" href="https://citizenlab2.staging-001.dev/focus-area/app-privacy-security/" /> 12 <link rel="next" href="https://citizenlab2.staging-001.dev/focus-area/app-privacy-security/page/2/" /> 13 <meta property="og:locale" content="en_US" /> 14 <meta property="og:type" content="article" /> 15 <meta property="og:title" content="App Security & Privacy - The Citizen Lab" /> 16 <meta property="og:description" content="How secure are the apps that you use every day? Our work seeks to answer this question by examining the privacy and security of mobile applications from technical, legal, and policy perspectives." /> 17 <meta property="og:url" content="https://citizenlab2.staging-001.dev/focus-area/app-privacy-security/" /> 18 <meta property="og:site_name" content="The Citizen Lab" /> 19 <meta property="og:image" content="https://citizenlab.ca/wp-content/uploads/2025/10/Social-Share.jpg" /> 20 <meta property="og:image:width" content="1200" /> 21 <meta property="og:image:height" content="630" /> 22 <meta property="og:image:type" content="image/jpeg" /> 23 <meta name="twitter:card" content="summary_large_image" /> 24 <meta name="twitter:site" content="@citizenlab" /> 25
25<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"CollectionPage","@id":"https:\/\/citizenlab2.staging-001.dev\/focus-area\/app-privacy-security\/","url":"https:\/\/citizenlab2.staging-001.dev\/focus-area\/app-privacy-security\/","name":"App Security & Privacy - The Citizen Lab","isPartOf":{"@id":"https:\/\/citizenlab.ca\/#website"},"primaryImageOfPage":{"@id":"https:\/\/citizenlab2.staging-001.dev\/focus-area\/app-privacy-security\/#primaryimage"},"image":{"@id":"https:\/\/citizenlab2.staging-001.dev\/focus-area\/app-privacy-security\/#primaryimage"},"thumbnailUrl":"https:\/\/citizenlab.ca\/wp-content\/uploads\/2025\/09\/PlaceholderPeople-CL-02.jpg","inLanguage":"en-CA"},{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/citizenlab2.staging-001.dev\/focus-area\/app-privacy-security\/#primaryimage","url":"https:\/\/citizenlab.ca\/wp-content\/uploads\/2025\/09\/PlaceholderPeople-CL-02.jpg","contentUrl":"https:\/\/citizenlab.ca\/wp-content\/uploads\/2025\/09\/PlaceholderPeople-CL-02.jpg","width":1200,"height":1200,"caption":"Citizen Lab icon"},{"@type":"WebSite","@id":"https:\/\/citizenlab.ca\/#website","url":"https:\/\/citizenlab.ca\/","name":"The Citizen Lab","description":"University of Toronto","publisher":{"@id":"https:\/\/citizenlab.ca\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/citizenlab.ca\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-CA"},{"@type":"Organization","@id":"https:\/\/citizenlab.ca\/#organization","name":"The Citizen Lab","url":"https:\/\/citizenlab.ca\/","logo":{"@type":"ImageObject","inLanguage":"en-CA","@id":"https:\/\/citizenlab.ca\/#\/schema\/logo\/image\/","url":"https:\/\/citizenlab.ca\/wp-content\/uploads\/2025\/10\/citizen-lab-logo-Teal-Orange.svg","contentUrl":"https:\/\/citizenlab.ca\/wp-content\/uploads\/2025\/10\/citizen-lab-logo-Teal-Orange.svg","width":572,"height":256,"caption":"The Citizen Lab"},"image":{"@id":"https:\/\/citizenlab.ca\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/citizenlab","https:\/\/mastodon.social\/@citizenlab","https:\/\/ca.linkedin.com\/company\/the-citizen-lab","https:\/\/bsky.app\/profile\/citizenlab.ca","https:\/\/www.youtube.com\/channel\/UCf5Aunw7xvt3lAFrLhiCA5w","https:\/\/github.com\/citizenlab"]}]}</script>
25 26 <!-- / Yoast SEO plugin. --> 27 28 29<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /> 30<link rel='dns-prefetch' href='//www.googletagmanager.com' /> 31<link rel="alternate" type="application/rss+xml" title="The Citizen Lab » App Security & Privacy Focus Area Feed" href="https://citizenlab.ca/focus-area/app-privacy-security/feed/" /> 32<style id="wp-img-auto-sizes-contain-inline-css"> 33img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 34/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 35</style> 36<style id="wp-block-library-inline-css"> 37:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;
37--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}} 38 39/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 40</style> 41<style id="wp-block-button-inline-css"> 42.wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1% - var(--wp--style--block-gap, .5em)*(1 - var(--wp--block-button--width)/100))}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1%)}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:transparent;background-image:none} 43/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/button/style.min.css */ 44</style>
45<style id="wp-block-details-inline-css"> 46.wp-block-details{box-sizing:border-box}.wp-block-details summary{cursor:pointer} 47/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/details/style.min.css */ 48</style> 49<style id="wp-block-heading-inline-css"> 50h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} 51/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/heading/style.min.css */ 52</style> 53<style id="wp-block-image-inline-css"> 54.wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;
54cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}
54@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} 55/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/image/style.min.css */ 56</style> 57<style id="wp-block-paragraph-inline-css"> 58.is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} 59/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/paragraph/style.min.css */ 60</style> 61<style id="wp-block-buttons-inline-css"> 62.wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} 63/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/buttons/style.min.css */ 64</style> 65<style id="wp-block-post-featured-image-inline-css"> 66.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}
66.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} 67/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/post-featured-image/style.min.css */ 68</style> 69<style id="wp-block-post-template-inline-css"> 70.wp-block-post-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} 71/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/post-template/style.min.css */ 72</style> 73<style id="wp-block-post-title-inline-css"> 74.wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} 75/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/post-title/style.min.css */ 76</style> 77<style id="wp-block-columns-inline-css"> 78.wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} 79/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/columns/style.min.css */ 80</style> 81<style id="wp-block-group-inline-css"> 82.wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} 83/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/group/style.min.css */ 84</style> 85<style id="wp-block-separator-inline-css"> 86@charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important}
87/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/separator/style.min.css */ 88</style> 89<style id="wp-block-spacer-inline-css"> 90.wp-block-spacer{clear:both} 91/*# sourceURL=https://citizenlab.ca/wp-includes/blocks/spacer/style.min.css */ 92</style> 93 94 95<style id="acf-card-block-style-inline-css"> 96.nua-card-block .content-card--featured .content-card__footer{display:none}.first-featured .nua-card-block .content-card--featured .content-card__title{font-size:var(--wp--preset--font-size--size-48)} 97 98/*# sourceURL=https://citizenlab.ca/wp-content/plugins/plugin-citizenlab/blocks/card-block/build/style-index.css */ 99</style> 100<style id="nua-search-filter-style-inline-css"> 101.nua-search-filter__filter-bar{display:flex;flex-wrap:wrap;justify-content:end;margin-bottom:1rem}.nua-search-filter__dropdown{cursor:pointer;display:inline-block;margin-right:1em;position:relative;vertical-align:top;width:auto;z-index:5}.nua-search-filter__dropdown:last-child{margin-right:0}.nua-search-filter__dropdown--active .nua-search-filter__dropdown-list{height:auto;padding-bottom:1.5rem;padding-top:.5rem}.nua-search-filter__dropdown-clear{height:40px;overflow:hidden;position:absolute;right:0;text-indent:200%;top:0;width:40px}.nua-search-filter__dropdown-clear:before{content:"Ã";left:50%;line-height:1em;position:absolute;text-align:center;text-indent:0;top:50%;transform:translate(-50%,-50%)}.nua-search-filter__dropdown-title,.nua-search-filter__filters{height:2.625rem}.nua-search-filter__dropdown-list{background:#0000;border:0;display:block;height:0;overflow:hidden;padding:0;position:relative}.nua-search-filter__dropdown-list,.nua-search-filter__dropdown-title{background:#fff;border:1px solid #000;padding:10px}.nua-search-filter__dropdown-title{margin-bottom:-1px;padding-right:40px}.nua-search-filter__dropdown-list{border-top-width:0;margin:0;padding-bottom:0;padding-top:0}.nua-search-filter__map,.nua-search-filter__map-container{aspect-ratio:16/9;width:100%} 102 103/*# sourceURL=https://citizenlab.ca/wp-content/plugins/plugin-citizenlab/blocks/search-filter/build/style-index.css */ 104</style> 105 106<style id="global-styles-inline-css"> 107:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #FFFFFF;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--gray-light: #BBBBBB;--wp--preset--color--orange: #F8981C;--wp--preset--color--teal: #1ABCB9;--wp--preset--color--brown: #38301F;--wp--preset--color--beige: #958F87;--wp--preset--color--beige-dark: #E9E4D9;--wp--preset--color--beige-light: #F9F5EE;--wp--preset--color--beige-light-extra: #FCFAF7;--wp--preset--color--red: #9A031E;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
107--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: clamp(14px, 0.875rem + ((1vw - 3.2px) * 0.682), 20px);--wp--preset--font-size--large: clamp(22.041px, 1.378rem + ((1vw - 3.2px) * 1.586), 36px);--wp--preset--font-size--x-large: clamp(25.014px, 1.563rem + ((1vw - 3.2px) * 1.93), 42px);--wp--preset--font-size--size-10: clamp(0.625rem, 0.625rem + ((1vw - 0.2rem) * 1), 0.625rem);--wp--preset--font-size--size-12: 12.0px;--wp--preset--font-size--size-12-fluid: clamp(10px, 0.625rem + ((1vw - 3.2px) * 0.227), 12px);--wp--preset--font-size--size-14: clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 1), 0.875rem);--wp--preset--font-size--size-16: clamp(1rem, 1rem + ((1vw - 0.2rem) * 1), 1rem);--wp--preset--font-size--size-18: clamp(1.125rem, 1.125rem + ((1vw - 0.2rem) * 1), 1.125rem);--wp--preset--font-size--size-20: 1.250rem;--wp--preset--font-size--size-20-fluid: clamp(1rem, 1rem + ((1vw - 0.2rem) * 0.455), 1.25rem);--wp--preset--font-size--size-25: clamp(1.5625rem, 1.563rem + ((1vw - 0.2rem) * 1), 1.5625rem);--wp--preset--font-size--size-28: clamp(1.25rem, 1.25rem + ((1vw - 0.2rem) * 0.909), 1.75rem);--wp--preset--font-size--size-30: clamp(1.875rem, 1.875rem + ((1vw - 0.2rem) * 1), 1.875rem);--wp--preset--font-size--size-32: clamp(2rem, 2rem + ((1vw - 0.2rem) * 1), 2rem);--wp--preset--font-size--size-36: clamp(1.5rem, 1.5rem + ((1vw - 0.2rem) * 1.364), 2.25rem);--wp--preset--font-size--size-40: clamp(2.5rem, 2.5rem + ((1vw - 0.2rem) * 1), 2.5rem);--wp--preset--font-size--size-44: clamp(2.75rem, 2.75rem + ((1vw - 0.2rem) * 1), 2.75rem);--wp--preset--font-size--size-44-fluid: clamp(2rem, 2rem + ((1vw - 0.2rem) * 1.364), 2.75rem);--wp--preset--font-size--size-80: clamp(3rem, 3rem + ((1vw - 0.2rem) * 3.636), 5rem);--wp--preset--font-family--theinhardt-condensed: "Theinhardt Condensed", sans-serif;--wp--preset--font-family--moderat-serif: "Moderat Serif", sans-serif;--wp--preset--font-family--moderat-mono: "Moderat Mono", monospace;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:root { --wp--style--global--content-size: 918px;--wp--style--global--wide-size: 1200px; }:where(body) { margin: 0; }.wp-site-blocks { padding-top: var(--wp--style--root--padding-top); padding-bottom: var(--wp--style--root--padding-bottom); }.has-global-padding { padding-right: var(--wp--style--root--padding-right); padding-left: var(--wp--style--root--padding-left); }.has-global-padding > .alignfull { margin-right: calc(var(--wp--style--root--padding-right) * -1); margin-left: calc(var(--wp--style--root--padding-left) * -1); }
107.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) { padding-right: 0; padding-left: 0; }.has-global-padding :where(:not(.alignfull.is-layout-flow) > .has-global-padding:not(.wp-block-block, .alignfull)) > .alignfull { margin-left: 0; margin-right: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.wp-site-blocks) > * { margin-block-start: 24px; margin-block-end: 0; }:where(.wp-site-blocks) > :first-child { margin-block-start: 0; }:where(.wp-site-blocks) > :last-child { margin-block-end: 0; }:root { --wp--style--block-gap: 24px; }:root :where(.is-layout-flow) > :first-child{margin-block-start: 0;}:root :where(.is-layout-flow) > :last-child{margin-block-end: 0;}:root :where(.is-layout-flow) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-constrained) > :first-child{margin-block-start: 0;}:root :where(.is-layout-constrained) > :last-child{margin-block-end: 0;}:root :where(.is-layout-constrained) > *{margin-block-start: 24px;margin-block-end: 0;}:root :where(.is-layout-flex){gap: 24px;}:root :where(.is-layout-grid){gap: 24px;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){max-width: var(--wp--style--global--content-size);margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignwide{max-width: var(--wp--style--global--wide-size);}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{color: var(--wp--preset--color--brown);font-family: var(--wp--preset--font-family--moderat-serif);--wp--style--root--padding-top: 0px;--wp--style--root--padding-right: 0px;--wp--style--root--padding-bottom: 0px;--wp--style--root--padding-left: 0px;}a:where(:not(.wp-element-button)){color: var(--wp--preset--color--brown);font-weight: 500;text-decoration: underline;}:root :where(a:where(:not(.wp-element-button)):visited){color: var(--wp--preset--color--brown);}:root :where(a:where(:not(.wp-element-button)):hover){color: var(--wp--preset--color--brown);text-decoration: underline;}:root :where(a:where(:not(.wp-element-button)):active){color: var(--wp--preset--color--brown);}h1{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-80);font-weight: 700;line-height: 1;margin-bottom: 1rem;}h2{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-44);font-weight: 700;line-height: 1;margin-top: 3rem;margin-bottom: 1rem;}h3{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-36);font-weight: 700;line-height: 1;margin-top: 1rem;margin-bottom: 1rem;}h4{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-25);font-weight: 700;margin-bottom: 1rem;}h5{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-18);font-weight: 700;margin-bottom: 1rem;}h6{color: var(--color-brown);font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-20);font-weight: 700;margin-bottom: 1rem;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-gray-light-color{color: var(--wp--preset--color--gray-light) !important;}.has-orange-color{color: var(--wp--preset--color--orange) !important;}.has-teal-color{color: var(--wp--preset--color--teal) !important;}.has-brown-color{color: var(--wp--preset--color--brown) !important;}.has-beige-color{color: var(--wp--preset--color--beige) !important;}.has-beige-dark-color{color: var(--wp--preset--color--beige-dark) !important;}.has-beige-light-color{color: var(--wp--preset--color--beige-light) !important;}.has-beige-light-extra-color{color: var(--wp--preset--color--beige-light-extra) !important;}.has-red-color{color: var(--wp--preset--color--red) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-gray-light-background-color{background-color: var(--wp--preset--color--gray-light) !important;}.has-orange-background-color{background-color: var(--wp--preset--color--orange) !important;}.has-teal-background-color{background-color: var(--wp--preset--color--teal) !important;}.has-brown-background-color{background-color: var(--wp--preset--color--brown) !important;}.has-beige-background-color{background-color: var(--wp--preset--color--beige) !important;}.has-beige-dark-background-color{background-color: var(--wp--preset--color--beige-dark) !important;}.has-beige-light-background-color{background-color: var(--wp--preset--color--beige-light) !important;}.has-beige-light-extra-background-color{background-color: var(--wp--preset--color--beige-light-extra) !important;}.has-red-background-color{background-color: var(--wp--preset--color--red) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-gray-light-border-color{border-color: var(--wp--preset--color--gray-light) !important;}.has-orange-border-color{border-color: var(--wp--preset--color--orange) !important;}.has-teal-border-color{border-color: var(--wp--preset--color--teal) !important;}.has-brown-border-color{border-color: var(--wp--preset--color--brown) !important;}.has-beige-border-color{border-color: var(--wp--preset--color--beige) !important;}.has-beige-dark-border-color{border-color: var(--wp--preset--color--beige-dark) !important;}.has-beige-light-border-color{border-color: var(--wp--preset--color--beige-light) !important;}.has-beige-light-extra-border-color{border-color: var(--wp--preset--color--beige-light-extra) !important;}.has-red-border-color{border-color: var(--wp--preset--color--red) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
107.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}.has-size-10-font-size{font-size: var(--wp--preset--font-size--size-10) !important;}.has-size-12-font-size{font-size: var(--wp--preset--font-size--size-12) !important;}.has-size-12-fluid-font-size{font-size: var(--wp--preset--font-size--size-12-fluid) !important;}.has-size-14-font-size{font-size: var(--wp--preset--font-size--size-14) !important;}.has-size-16-font-size{font-size: var(--wp--preset--font-size--size-16) !important;}.has-size-18-font-size{font-size: var(--wp--preset--font-size--size-18) !important;}.has-size-20-font-size{font-size: var(--wp--preset--font-size--size-20) !important;}.has-size-20-fluid-font-size{font-size: var(--wp--preset--font-size--size-20-fluid) !important;}.has-size-25-font-size{font-size: var(--wp--preset--font-size--size-25) !important;}.has-size-28-font-size{font-size: var(--wp--preset--font-size--size-28) !important;}.has-size-30-font-size{font-size: var(--wp--preset--font-size--size-30) !important;}.has-size-32-font-size{font-size: var(--wp--preset--font-size--size-32) !important;}.has-size-36-font-size{font-size: var(--wp--preset--font-size--size-36) !important;}.has-size-40-font-size{font-size: var(--wp--preset--font-size--size-40) !important;}.has-size-44-font-size{font-size: var(--wp--preset--font-size--size-44) !important;}.has-size-44-fluid-font-size{font-size: var(--wp--preset--font-size--size-44-fluid) !important;}.has-size-80-font-size{font-size: var(--wp--preset--font-size--size-80) !important;}.has-theinhardt-condensed-font-family{font-family: var(--wp--preset--font-family--theinhardt-condensed) !important;}.has-moderat-serif-font-family{font-family: var(--wp--preset--font-family--moderat-serif) !important;}.has-moderat-mono-font-family{font-family: var(--wp--preset--font-family--moderat-mono) !important;} 108:root :where(.wp-block-post-title){font-family: var(--wp--preset--font-family--theinhardt-condensed);font-size: var(--wp--preset--font-size--size-80);font-weight: 700;line-height: 1.5;} 109:root :where(p){font-family: var(--wp--preset--font-family--moderat-serif);font-size: var(--wp--preset--font-size--size-20-fluid);font-weight: 400;line-height: 1.5;margin-bottom: 1em;} 110/*# sourceURL=global-styles-inline-css */ 111</style> 112 113<link rel="stylesheet preload" as="style" href="https://citizenlab.ca/wp-content/plugins/bigfoot_footnotes/library/bigfoot-number.css?ver=7.1.2" media="all"><link rel="stylesheet preload" as="style" href="https://citizenlab.ca/wp-content/themes/theme-citizenlab/styles/style.css?ver=1.0.0" media="all"><link rel="stylesheet preload" as="style" href="https://cdnjs.cloudflare.com/ajax/libs/featherlight/1.7.13/featherlight.min.css?ver=1.7.13" media="all">
113<script id="jquery-core-js" src="https://citizenlab.ca/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
113 114 115<!-- Google tag (gtag.js) snippet added by Site Kit --> 116<!-- Google Analytics snippet added by Site Kit -->
vendor: 80 bytes, lines 116-117
116 117<script id="google_gtagjs-js" src="https://www.googletagmanager.com/gtag/js?id=
117GT-PB6MGSC
vendor: 18 bytes, line 117
117" async></script>
118<script id="google_gtagjs-js-after"> 119window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);} 120gtag("set","linker",{"domains":["citizenlab.ca"]}); 121gtag("js", new Date()); 122gtag("set", "developer_id.dZTNiMT", true); 123gtag("config", "GT-PB6MGSC"); 124 window._googlesitekit = window._googlesitekit || {}; window._googlesitekit.throttledEvents = []; window._googlesitekit.gtagEvent = (name, data) => { var key = JSON.stringify( { name, data } ); if ( !! window._googlesitekit.throttledEvents[ key ] ) { return; } window._googlesitekit.throttledEvents[ key ] = true; setTimeout( () => { delete window._googlesitekit.throttledEvents[ key ]; }, 5 ); gtag( "event", name, { ...data, event_source: "site-kit" } ); }; 125//# sourceURL=google_gtagjs-js-after 126</script>
126 127<meta name="generator" content="Site Kit by Google 1.188.0" /><noscript><style>.lazyload[data-src]{display:none !important;}</style></noscript><style>.lazyload{background-image:none !important;}.lazyload:before{background-image:none !important;}</style><style class="wp-fonts-local"> 128@font-face{font-family:"Theinhardt Condensed";font-style:normal;font-weight:700;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Theinhardt-Condensed-Bold.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Theinhardt-Condensed-Bold.woff') format('woff');font-stretch:normal;} 129@font-face{font-family:"Theinhardt Condensed";font-style:italic;font-weight:700;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Theinhardt-Condensed-Bold-Italic.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Theinhardt-Condensed-Bold-Italic.woff') format('woff');font-stretch:normal;} 130@font-face{font-family:"Moderat Serif";font-style:normal;font-weight:400;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Regular.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Regular.woff') format('woff');font-stretch:normal;} 131@font-face{font-family:"Moderat Serif";font-style:italic;font-weight:400;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Regular-Italic.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Regular-Italic.woff') format('woff');font-stretch:normal;} 132@font-face{font-family:"Moderat Serif";font-style:normal;font-weight:700;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Bold.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Bold.woff') format('woff');font-stretch:normal;} 133@font-face{font-family:"Moderat Serif";font-style:italic;font-weight:700;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Bold-Italic.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Serif-Bold-Italic.woff') format('woff');font-stretch:normal;} 134@font-face{font-family:"Moderat Mono";font-style:normal;font-weight:400;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Regular.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Regular.woff') format('woff');font-stretch:normal;} 135@font-face{font-family:"Moderat Mono";font-style:italic;font-weight:400;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Regular-Italic.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Regular-Italic.woff') format('woff');font-stretch:normal;} 136@font-face{font-family:"Moderat Mono";font-style:normal;font-weight:600;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Semibold.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Semibold.woff') format('woff');font-stretch:normal;} 137@font-face{font-family:"Moderat Mono";font-style:italic;font-weight:600;font-display:fallback;src:url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Semibold-Italic.woff2') format('woff2'), url('https://citizenlab.ca/wp-content/themes/theme-citizenlab/fonts/Moderat-Mono-Semibold-Italic.woff') format('woff');font-stretch:normal;} 138</style> 139<link rel="icon" href="https://citizenlab.ca/wp-content/uploads/2025/10/cropped-Favicon-Large-32x32.png" sizes="32x32" /> 140<link rel="icon" href="https://citizenlab.ca/wp-content/uploads/2025/10/cropped-Favicon-Large-192x192.png" sizes="192x192" /> 141<link rel="apple-touch-icon" href="https://citizenlab.ca/wp-content/uploads/2025/10/cropped-Favicon-Large-180x180.png" /> 142<meta name="msapplication-TileImage" content="https://citizenlab.ca/wp-content/uploads/2025/10/cropped-Favicon-Large-270x270.png" /> 143 <style id="core-block-supports-inline-css"> 144.wp-container-core-columns-is-layout-004ea267{flex-wrap:nowrap;}.wp-container-content-cd8adcc6{grid-column:span 8;}.wp-container-content-ffc8cefc{grid-column:span 3;}@container (max-width: 39rem ){.wp-container-content-ffc8cefc{grid-column:1/-1;grid-row:auto;}}.wp-container-1{top:calc(0px + var(--wp-admin--admin-bar--position-offset, 0px));position:sticky;z-index:10;}.wp-container-content-348dd67e{grid-column:span 3;}.wp-container-core-group-is-layout-c65c6870{grid-template-columns:repeat(12, minmax(0, 1fr));}.wp-container-content-ec1bbf6b{grid-column:span 12;grid-row:span 1;}@container (max-width: 160.5rem ){.wp-container-content-ec1bbf6b{grid-column:1/-1;grid-row:auto;}}.wp-container-core-columns-is-layout-9809b0a4{flex-wrap:nowrap;}.wp-container-core-group-is-layout-7c846e87 > *{margin-block-start:0;margin-block-end:0;}.wp-container-core-group-is-layout-7c846e87 > * + *{margin-block-start:var(--wp--preset--spacing--20);margin-block-end:0;}.wp-container-core-group-is-layout-34900350{flex-wrap:nowrap;gap:var(--wp--preset--spacing--40);align-items:flex-start;}.wp-container-core-post-template-is-layout-404107e4{grid-template-columns:repeat(2, minmax(0, 1fr));gap:var(--wp--preset--spacing--60);}.wp-container-core-buttons-is-layout-15f0f575{gap:var(--wp--preset--spacing--50) var(--wp--preset--spacing--50);}.wp-container-core-columns-is-layout-7387b849{flex-wrap:nowrap;} 145/*# sourceURL=core-block-supports-inline-css */ 146</style> 147 148</head> 149 <body class="archive tax-focus-area term-app-privacy-security term-1314 wp-theme-theme-citizenlab"> 150 <a class="skip-link screen-reader-text" href="#content">Skip to content</a> 151 <div class="screen-reader-text">
152 <span id="new-window">Opens in a new window</span> 153 <span id="external-site">Opens an external site</span> 154 <span id="new-window-external-site">Opens an external site in a new window</span> 155 </div> 156 <header id="header" class="site-header" role="banner"> 157 <!-- <a href="https://citizenlab.ca"> 158 <picture class="site-logo"> 159 <source type="image/webp" data-srcset="https://citizenlab.ca/wp-content/themes/theme-citizenlab/images/logo.webp"> 160 <source type="image/png" data-srcset="https://citizenlab.ca/wp-content/themes/theme-citizenlab/images/logo.png"> 161 <img src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==" alt="The Citizen Lab" data-src="https://citizenlab.ca/wp-content/themes/theme-citizenlab/images/logo.png" decoding="async" class="lazyload"> 162 </picture><noscript><img src="https://citizenlab.ca/wp-content/themes/theme-citizenlab/images/logo.png" alt="The Citizen Lab" data-eio="l"></noscript> 163 </a> --> 164 <nav class="grid-nav-mobile" role="navigation" aria-label="Mobile Navigation"> 165 166 <div class="grid-nav-mobile__wrapper"> 167 <div class="grid-nav-mobile__background-cell"></div> 168 <button class="hamburger-menu mobile" aria-label="Toggle Menu" aria-expanded="false" aria-controls="mobile-primary-nav"> 169 <span class="hamburger-box" aria-hidden="true"> 170 <span class="hamburger-inner"></span> 171 </span> 172 </button> 173 174 <div class="grid-nav-mobile__item primary-nav" id="mobile-primary-nav"> 175 <nav class="site-nav" aria-label="Primary navigation"><ul id="menu-primary-menu" class="menu"><li id="menu-item-85318" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85318"><a href="#">Our Work</a> 176<ul class="sub-menu"> 177 <li id="menu-item-83866" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83866"><a href="https://citizenlab.ca/research/">Research</a></li> 178 <li id="menu-item-83865" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83865"><a href="https://citizenlab.ca/publication-directory/">Publication Directory</a></li> 179 <li id="menu-item-83867" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83867"><a href="https://citizenlab.ca/tools-resources/">Tools & Resources</a></li> 180</ul> 181</li> 182<li id="menu-item-85320" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85320"><a href="#">News & Events</a> 183<ul class="sub-menu"> 184 <li id="menu-item-84381" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84381"><a href="https://citizenlab.ca/content-type/expert-insights/">Expert Insights</a></li> 185 <li id="menu-item-84382" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84382"><a href="https://citizenlab.ca/content-type/in-the-media/">In the Media</a></li> 186 <li id="menu-item-83860" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83860"><a href="https://citizenlab.ca/events/">Events</a></li> 187 <li id="menu-item-84473" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84473"><a href="https://citizenlab.ca/content-type/news/">News</a></li> 188</ul> 189</li> 190<li id="menu-item-85325" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85325"><a href="#">About</a> 191<ul class="sub-menu"> 192 <li id="menu-item-83869" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83869"><a href="https://citizenlab.ca/who-we-are/">Who We Are</a></li> 193 <li id="menu-item-84299" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-84299"><a href="https://citizenlab.ca/contact/">Contact</a></li> 194 <li id="menu-item-83864" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83864"><a href="https://citizenlab.ca/people/">People</a></li> 195 <li id="menu-item-83897" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-83897"><a target="_blank" href="https://engage.utoronto.ca/site/SPageServer?pagename=donate#/fund/847">Donate</a></li> 196</ul> 197</li> 198</ul></nav> </div> 199 200 201 <div class="grid-nav-mobile__item search-field"> 202 <p>Search by keyword</p> 203 <div class="search-form__wrapper" id="mobile-search-form"> 204 <form role="search" aria-label="Mobile search" method="get" id="searchform-mobile" class="searchform" action="https://citizenlab.ca/"> 205 <div> 206 <label class="screen-reader-text" for="s-mobile">Search for:</label> 207 <input type="text" value="" name="s" id="s-mobile"> 208 <input type="submit" id="searchsubmit-mobile" value="Search"> 209 </div> 210</form> 211 <button class="search-toggle__button mobile" aria-label="Toggle Search" aria-expanded="false" aria-controls="mobile-search-form"> 212 <span aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="20" viewBox="0 0 19 20" fill="none"> 213 <circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="2"/> 214 <path d="M12 13L18 18.5" stroke="currentColor" stroke-width="2"/> 215</svg> 216</span> 217 </button> 218 </div> 219 </div> 220 221 222 223 224 <div class="grid-nav-mobile__item menu-closed-logo"> 225 <a href="https://citizenlab.ca" aria-label="Citizen Lab Home"> 226 <span aria-hidden="true">
226<svg width="130" height="16" viewBox="0 0 130 16" fill="none" xmlns="http://www.w3.org/2000/svg"> 227<path d="M10.2612 0.658691V3.13459H7.00344V15.2926H4.21479V3.13459H0.957031V0.658691H10.2612Z" fill="#1ABCB9"/> 228<path d="M12.0957 15.2926V0.658691H14.8909V6.52268H18.8458V0.658691H21.6409V15.2926H18.8458V8.96601H14.8909V15.2926H12.0957Z" fill="#1ABCB9"/> 229<path d="M24.3184 15.2926V0.658691H31.9741V3.13459H27.1135V6.47055H30.8209V8.93995H27.1135V12.7906H32.1826V15.2665L24.3184 15.2926Z" fill="#1ABCB9"/> 230<path d="M37.0068 10.9677C37.0068 12.5901 37.7104 13.0331 38.8246 13.0331C39.9387 13.0331 40.6489 12.5901 40.6489 10.9677V9.9969H43.4506V10.6028C43.4506 14.2125 41.5416 15.509 38.8246 15.509C36.1076 15.509 34.2051 14.2059 34.2051 10.6028V5.39041C34.2051 1.78731 36.1141 0.490723 38.8246 0.490723C41.535 0.490723 43.4506 1.79383 43.4506 5.39041V5.43602H40.6489V5.03205C40.6489 3.40968 39.9453 2.96011 38.8246 2.96011C37.7039 2.96011 37.0068 3.40968 37.0068 5.03205V10.9677Z" fill="#F8981C"/> 231<path d="M45.8809 15.2926V0.658691H48.7021V15.2926H45.8809Z" fill="#F8981C"/> 232<path d="M59.825 0.658691V3.13459H56.5673V15.2926H53.7656V3.13459H50.5078V0.658691H59.825Z" fill="#F8981C"/> 233<path d="M61.6543 15.2926V0.658691H64.4495V15.2926H61.6543Z" fill="#F8981C"/> 234<path d="M67.0981 0.658691H75.2034V3.0108L69.6782 12.7841H75.3272V15.26H66.5312V12.9209L72.0694 3.14763H67.0981V0.658691Z" fill="#F8981C"/> 235<path d="M77.252 15.2926V0.658691H84.9142V3.13459H80.0471V6.47055H83.7544V8.93995H80.0471V12.7906H85.1097V15.2665L77.252 15.2926Z" fill="#F8981C"/> 236<path d="M87.5469 15.2926V0.658691H90.6027L94.512 9.33088H94.5576V0.658691H97.1117V15.2926H94.4338L90.1401 5.819H90.101V15.2665L87.5469 15.2926Z" fill="#F8981C"/> 237<path d="M99.7637 15.2926V0.658691H102.565V12.8167H107.061V15.2926H99.7637Z" fill="#1ABCB9"/> 238<path d="M107.77 15.2926L111.392 0.658691H114.982L118.514 15.2926H115.81L115.158 12.2107H111.249L110.454 15.2926H107.77ZM111.764 9.72833H114.507L113.203 3.81873H113.164L111.764 9.72833Z" fill="#1ABCB9"/> 239<path d="M120.033 0.658691H123.943C126.94 0.658691 128.66 1.91619 128.66 4.43119C128.665 5.04909 128.503 5.65694 128.193 6.1911C127.882 6.72526 127.434 7.16608 126.894 7.46743C128.432 8.43825 129.044 9.24618 129.044 11.077C129.044 13.9699 127.09 15.2926 124.138 15.2926H120.04L120.033 0.658691ZM122.835 6.45753H123.806C125.063 6.45753 125.897 5.72127 125.897 4.73091C125.897 3.74054 125.246 2.97171 123.943 2.97171H122.828L122.835 6.45753ZM122.835 12.9731H124.008C124.3 13.0094 124.596 12.9806 124.876 12.8887C125.155 12.7969 125.411 12.6442 125.625 12.4418C125.839 12.2394 126.005 11.9921 126.112 11.7179C126.218 11.4436 126.263 11.1491 126.242 10.8555C126.242 9.45468 125.272 8.76402 123.812 8.76402H122.841L122.835 12.9731Z" fill="#1ABCB9"/> 240</svg> 241</span> 242 </a> 243 </div> 244 245 246 </div> 247</nav> </header> 248 <div id="content" class="site-content"> 249 <main id="main" class="site-main" role="main"> 250 251<nav class="grid-nav" role="navigation" aria-label="Main Navigation"> 252 253 <div class="grid-nav__background-cell"></div> 254 255 <div class="grid-nav__item primary-nav" id="desktop-primary-nav"> 256 <nav class="site-nav" aria-label="Primary navigation"><ul id="menu-primary-menu-1" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85318"><a href="#">Our Work</a> 257<ul class="sub-menu"> 258 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83866"><a href="https://citizenlab.ca/research/">Research</a></li> 259 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83865"><a href="https://citizenlab.ca/publication-directory/">Publication Directory</a></li> 260 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83867"><a href="https://citizenlab.ca/tools-resources/">Tools & Resources</a></li> 261</ul> 262</li> 263<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85320"><a href="#">News & Events</a> 264<ul class="sub-menu"> 265 <li class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84381"><a href="https://citizenlab.ca/content-type/expert-insights/">Expert Insights</a></li> 266 <li class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84382"><a href="https://citizenlab.ca/content-type/in-the-media/">In the Media</a></li> 267 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83860"><a href="https://citizenlab.ca/events/">Events</a></li> 268 <li class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-84473"><a href="https://citizenlab.ca/content-type/news/">News</a></li> 269</ul> 270</li> 271<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85325"><a href="#">About</a> 272<ul class="sub-menu"> 273 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83869"><a href="https://citizenlab.ca/who-we-are/">Who We Are</a></li> 274 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-84299"><a href="https://citizenlab.ca/contact/">Contact</a></li> 275 <li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83864"><a href="https://citizenlab.ca/people/">People</a></li> 276 <li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-83897"><a target="_blank" href="https://engage.utoronto.ca/site/SPageServer?pagename=donate#/fund/847">Donate</a></li> 277</ul> 278</li> 279</ul></nav> </div> 280 281 <div class="grid-nav__item focus-areas"> 282 <h2>Focus Areas</h2> 283 <ul class="focus-areas-list"> 284 <li> 285 <a href="https://citizenlab.ca/focus-area/app-privacy-security/" class="focus-area-link"> 286 App Security & Privacy </a> 287 </li> 288 <li> 289 <a href="https://citizenlab.ca/focus-area/artificial-intelligence/" class="focus-area-link"> 290 Artificial Intelligence </a> 291 </li> 292 <li> 293 <a href="https://citizenlab.ca/focus-area/censorship/" class="focus-area-link"> 294 Censorship </a> 295 </li> 296 <li> 297 <a href="https://citizenlab.ca/focus-area/digital-transnational-repression/" class="focus-area-link"> 298 Digital Transnational Repression </a> 299 </li> 300 <li> 301 <a href="https://citizenlab.ca/focus-area/disinformation/" class="focus-area-link"> 302 Disinformation </a> 303 </li> 304 <li> 305 <a href="https://citizenlab.ca/focus-area/law-policy/" class="focus-area-link"> 306 Law & Policy </a> 307 </li> 308 <li> 309 <a href="https://citizenlab.ca/focus-area/mass-surveillance/" class="focus-area-link"> 310 Mass Surveillance </a> 311 </li> 312 <li> 313 <a href="https://citizenlab.ca/focus-area/targeted-surveillance/" class="focus-area-link"> 314 Targeted Surveillance </a> 315 </li> 316 </ul> 317 </div> 318 319 <div class="grid-nav__item newsletter-signup"> 320 <a href="https://citizenlab.ca/newsletter/" target="_self" class="btn">Subscribe to our newsletter</a> 321 </div> 322 323 324 <div class="grid-nav__item search-toggle"> 325 <div class="search-form__wrapper" id="desktop-search-form"> 326 <p>Search by keyword</p> 327 <form role="search" aria-label="Desktop search" method="get" id="searchform-desktop" class="searchform" action="https://citizenlab.ca/"> 328 <div> 329 <label class="screen-reader-text" for="s-desktop">Search for:</label> 330 <input type="text" value="" name="s" id="s-desktop"> 331 <input type="submit" id="searchsubmit-desktop" value="Search"> 332 </div> 333</form> 334 </div> 335 336 <button class="search-toggle__button desktop" aria-label="Toggle Search" aria-expanded="false" aria-controls="desktop-search-form"> 337 <span aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="19" height="20" viewBox="0 0 19 20" fill="none"> 338 <circle cx="8" cy="8" r="6" stroke="currentColor" stroke-width="2"/> 339 <path d="M12 13L18 18.5" stroke="currentColor" stroke-width="2"/> 340</svg> 341</span> 342 </button> 343 344 <button class="search-close-toggle__button desktop" aria-label="Close Search" aria-expanded="false" aria-controls="desktop-search-form"> 345 <span aria-hidden="true"><svg width="21" height="20" viewBox="0 0 21 20" fill="none" xmlns="http://www.w3.org/2000/svg"> 346<line y1="-1" x2="25.1719" y2="-1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 0.814453 18.2993)" stroke="currentColor" stroke-width="2"/> 347<path d="M19.0089 18.7992L1.20966 1" stroke="currentColor" stroke-width="2"/> 348</svg> 349</span> 350 </button> 351 </div> 352 353 354 <div class="grid-nav__item menu-closed-logo "> 355 <a href="https://citizenlab.ca" aria-label="Citizen Lab Home"> 356 <span aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="143" viewBox="0 0 18 143" fill="none"> 357 <path d="M0.820312 132.612L3.58457 132.612L3.58457 136.249L17.1586 136.249L17.1586 139.363L3.58458 139.363L3.58458 143L0.820312 143L0.820312 132.612Z" fill="#1ABCB9"/> 358 <path d="M17.1586 130.561L0.820312 130.561L0.820312 127.44L7.36726 127.44L7.36726 123.024L0.820312 123.024L0.820312 119.904L17.1586 119.904L17.1586 123.024L10.0952 123.024L10.0952 127.44L17.1586 127.44L17.1586 130.561Z" fill="#1ABCB9"/> 359 <path d="M17.1586 116.914L0.820312 116.914L0.820312 108.367L3.58457 108.367L3.58458 113.793L7.30906 113.793L7.30906 109.654L10.0661 109.654L10.0661 113.793L14.3652 113.793L14.3652 108.134L17.1295 108.134L17.1586 116.914Z" fill="#1ABCB9"/> 360 <path d="M12.3144 102.75C14.1257 102.75 14.6204 101.965 14.6204 100.721C14.6204 99.477 14.1257 98.684 12.3144 98.684L11.2305 98.684L11.2305 95.5561L11.907 95.5561C15.937 95.5561 17.3846 97.6875 17.3846 100.721C17.3846 103.754 15.9298 105.878 11.907 105.878L6.08752 105.878C2.06479 105.878 0.617187 103.747 0.617187 100.721C0.617187 97.6947 2.07206 95.5561 6.08752 95.5561L6.13844 95.5561L6.13844 98.684L5.68743 98.684C3.87611 98.684 3.37417 99.4697 3.37417 100.721C3.37417 101.972 3.87611 102.75 5.68743 102.75L12.3144 102.75Z" fill="#F8981C"/> 361 <path d="M17.1586 92.8433L0.820312 92.8433L0.820312 89.6935L17.1586 89.6934L17.1586 92.8433Z" fill="#F8981C"/> 362 <path d="M0.820312 77.2763L3.58457 77.2763L3.58457 80.9135L17.1586 80.9135L17.1586 84.0415L3.58458 84.0415L3.58458 87.6787L0.820312 87.6787L0.820312 77.2763Z" fill="#F8981C"/> 363 <path d="M17.1586 75.2383L0.820312 75.2383L0.820312 72.1176L17.1586 72.1176L17.1586 75.2383Z" fill="#F8981C"/> 364 <path d="M0.820312 69.1572L0.820312 60.1078L3.44637 60.1078L14.3579 66.2765L14.3579 59.9696L17.1222 59.9696L17.1222 69.79L14.5107 69.79L3.59913 63.6068L3.59913 69.1572L0.820312 69.1572Z" fill="#F8981C"/> 365 <path d="M17.1586 57.8169L0.820312 57.8169L0.820312 49.2622L3.58457 49.2622L3.58458 54.6962L7.30906 54.6962L7.30906 50.5571L10.0661 50.5571L10.0661 54.6962L14.3652 54.6962L14.3652 49.044L17.1295 49.044L17.1586 57.8169Z" fill="#F8981C"/> 366 <path d="M17.1586 46.3232L0.820312 46.3232L0.820312 42.9116L10.5025 38.5469L10.5025 38.496L0.820312 38.496L0.820312 35.6444L17.1586 35.6444L17.1586 38.6342L6.58162 43.428L6.58162 43.4717L17.1295 43.4717L17.1586 46.3232Z" fill="#F8981C"/> 367 <path d="M17.1586 32.6831L0.820312 32.6831L0.820312 29.5551L14.3943 29.5551L14.3943 24.5358L17.1586 24.5358L17.1586 32.6831Z" fill="#1ABCB9"/> 368 <path d="M17.1586 23.7437L0.820312 19.6991L0.820312 15.6909L17.1586 11.7482L1
3687.1586 14.7671L13.7178 15.4945L13.7178 19.8591L17.1586 20.7466L17.1586 23.7437ZM10.9463 19.2845L10.9463 16.2219L4.34839 17.6768L4.34839 17.7205L10.9463 19.2845Z" fill="#1ABCB9"/> 369 <path d="M0.820312 10.0605L0.820312 5.69591C0.820312 2.3497 2.22427 0.429255 5.03218 0.429254C5.72205 0.423814 6.40068 0.603941 6.99706 0.950758C7.59343 1.29758 8.0856 1.79833 8.42204 2.40062C9.50592 0.683863 10.4079 6.8065e-05 12.4521 6.79757e-05C15.6819 6.78345e-05 17.1586 2.18238 17.1586 5.47768L17.1586 10.0533L0.820312 10.0605ZM7.29452 6.93256L7.29452 5.84868C7.29452 4.44472 6.47251 3.5136 5.3668 3.5136C4.2611 3.5136 3.40272 4.24104 3.40272 5.69591L3.40272 6.93984L7.29452 6.93256ZM14.5689 6.93256L14.5689 5.62317C14.6094 5.29708 14.5773 4.96607 14.4747 4.65388C14.3722 4.3417 14.2018 4.0561 13.9758 3.81758C13.7497 3.57905 13.4737 3.39352 13.1675 3.27431C12.8613 3.15509 12.5325 3.10514 12.2047 3.12806C10.6407 3.12806 9.86964 4.21194 9.86964 5.8414L9.86964 6.92529L14.5689 6.93256Z" fill="#1ABCB9"/> 370</svg> 371</span> 372 </a> 373 </div> 374 375 376 <button class="hamburger-menu desktop" aria-label="Toggle Menu" aria-expanded="false" aria-controls="desktop-primary-nav"> 377 <span class="hamburger-box" aria-hidden="true"> 378 <span class="hamburger-inner"></span> 379 </span> 380 </button> 381</nav> 382 383 <article id="post-83988" class="post-83988 enhanced-archives type-enhanced-archives status-publish hentry"> 384 <div class="entry-content nua-grid"> 385 386<div class="wp-block-columns alignwide is-style-invert-on-mobile pattern-simple-header is-layout-flex wp-container-core-columns-is-layout-004ea267 wp-block-columns-is-layout-flex" style="margin-bottom:130px"> 387<div class="wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow" style="padding-right:var(--wp--preset--spacing--50);flex-basis:70%"> 388<div class="wp-block-group is-layout-flow wp-block-group-is-layout-flow" style="margin-bottom:var(--wp--preset--spacing--70)"> 389<p class="page-breadcrumbs has-moderat-mono-font-family has-size-12-font-size wp-block-paragraph" style="margin-top:0;margin-bottom:0;font-style:normal;font-weight:600;text-decoration:none"><a href="https://citizenlab.ca/research/" data-type="page" data-id="83856">RESEARCH</a> â FOCUS AREA</p> 390 391 392<h1 style="line-height:1;margin-top:0;margin-bottom:0" class="wp-block-post-title">App Security & Privacy</h1></div> 393 394 395 396<p class="has-size-28-font-size wp-block-paragraph">Examining the privacy and security of mobile applications (apps) from technical, legal, and policy perspectives.</p> 397 398 399 400<details class="wp-block-details has-moderat-mono-font-family has-size-12-font-size is-layout-flow wp-block-details-is-layout-flow" style="margin-top:0;margin-bottom:0;font-style:normal;font-weight:600;text-transform:uppercase"><summary>Read more</summary> 401<p class="has-size-20-font-size wp-block-paragraph" style="text-transform:none">How secure are the apps that you use every day? Our work seeks to answer this question by examining the privacy and security of mobile apps.</p> 402 403 404 405<p class="has-size-20-font-size wp-block-paragraph" style="text-transform:none">Mobile apps have become a ubiquitous feature of modern life and a central means for civil society to communicate, organize, and mobilize. The apps we use collect, store, and transmit sensitive information about the most intimate aspects of our daily lives in ways that are insecure and lack transparency. Apps that have amassed billions of users across the world remain understudied by security researchers, with limited information on their relative privacy and security. </p> 406 407 408 409<p class="has-size-20-font-size wp-block-paragraph" style="text-transform:none">Security vulnerabilities in mobile apps can compromise a userâs device and expose their private data to attackers. Apps that use inadequate encryption to transmit data can expose a userâs personal data and geolocation to anyone with visibility on the network. </p> 410 411 412 413<p class="has-size-20-font-size wp-block-paragraph" style="text-transform:none">Our work examines the privacy and security of mobile apps from technical, legal, and policy perspectives. We analyze mobile apps to identify security issues and insecure network transmissions. We have identified and disclosed security vulnerabilities to app developers, leading to security improvements for billions of users, multiple times over. </p> 414</details> 415</div> 416 417 418 419<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:30%"> 420<figure class="wp-block-image size-full is-style-default" style="margin-right:var(--wp--preset--spacing--60)"><img fetchpriority="high" decoding="async" width="1000" height="1000" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA+gAAAPoAQMAAAB3bUanAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAAJFJREFUeNrtwTEBAAAAwqD1T20KP6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL4G7D8AATQMm+MAAAAASUVORK5CYII=" alt="" class="wp-image-86538 lazyload" style="object-fit:cover" data-src="https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali.jpg" data-srcset="https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali.jpg 1000w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-300x300.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-150x150.jpg 150w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-768x768.jpg 768w" data-max-width="1000" data-sizes="auto" data-eio-rwidth="1000" data-eio-rheight="1000" /><noscript><img fetchpriority="high" decoding="async" width="1000" height="1000" src="https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali.jpg" alt="" class="wp-image-86538" style="object-fit:cover" srcset="https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali.jpg 1000w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-300x300.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-150x150.jpg 150w, https://citizenlab.ca/wp-content/uploads/2025/09/spot-illustrations-ali-768x768.jpg 768w" sizes="(max-width: 1000px) 100v
420w, 1000px" data-eio="l" /></noscript></figure> 421</div> 422</div> 423 424 425 426<div class="wp-block-group alignwide is-style-grid-one-column-tablet is-layout-grid wp-container-core-group-is-layout-c65c6870 wp-block-group-is-layout-grid"> 427<div class="wp-block-group wp-container-content-cd8adcc6 is-layout-flow wp-block-group-is-layout-flow" style="margin-bottom:100px;padding-top:15px"> 428<p class="has-moderat-mono-font-family has-size-16-font-size wp-block-paragraph">LATEST RESEARCH</p> 429 430 431 432<div class="wp-block-query is-layout-flow wp-block-query-is-layout-flow"><ul class="wp-block-post-template is-layout-flow wp-block-post-template-is-layout-flow"><li class="wp-block-post post-83405 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-app-vulnerability topic-rednote year-sf-1449"> 433 434<div class="nua-card-block wp-block-acf-card-block" > 435 436<article class="content-card content-card--research post-83405 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-app-vulnerability topic-rednote year-sf-1449"> 437 <div class="content-card__content"> 438 <header class="content-card__header"> 439 <div class="content-card__breadcrumbs"> 440 <a href="/research">research</a> â <a href="https://citizenlab.ca/content-type/report/">Report</a> </div> 441 <h2 class="content-card__title"><a href="https://citizenlab.ca/research/network-security-issues-in-rednote/">Network Security Issues in RedNote</a></h2> </header> 442 <div class="content-card__excerpt"> 443 <p>Our network security analysis of the popular social media app, RedNote, revealed a number of issues with both the Android and iOS versions of the app. </p> 444 </div> 445 446 <div class="content-card__date-focus-areas-wrapper"> 447 <div class="content-card__date"> 448 February 12, 2025 </div> 449 450 <div class="person-single__focus-areas"> 451 452 <a class="single__focus-area" href="https://citizenlab.ca/focus-area/app-privacy-security/"> 453 App Security & Privacy </a> 454 </div> 455 </div> 456 </div> 457 458 <div class="content-card__thumbnail"> 459 <img decoding="async" width="1920" height="1080" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4AQMAAADSHVMAAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAARJJREFUGBntwQENAAAAwiD7p34PBwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOBU+OUAARAVzPEAAAAASUVORK5CYII=" class="attachment-medium-large size-medium-large wp-post-image lazyload" alt="" data-src="https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05.jpg" data-srcset="https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05.jpg 1920w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-300x169.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-1024x576.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-768x432.jpg 768w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-1536x864.jpg 1536w" data-max-width="1920" data-sizes="auto" data-eio-rwidth="1920" data-eio-rheight="1080" /><noscript><img decoding="async" width="1920" height="1080" src="https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05.jpg" class="attachment-medium-large size-medium-large wp-post-image" alt="" srcset="https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05.jpg 1920w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-300x169.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-1024x576.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-768x432.jpg 768w, https://citizenlab.ca/wp-content/uploads/2025/02/featured-image-2048x1431-edit-05-1536x864.jpg 1536w" sizes="(max-width: 1920px) 100v
459w, 1920px" data-eio="l" /></noscript> </div> 460 </article></div> 461 462</li><li class="wp-block-post post-83421 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-wechat year-sf-1450"> 463 464<div class="nua-card-block wp-block-acf-card-block" > 465 466<article class="content-card content-card--research post-83421 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-wechat year-sf-1450"> 467 <div class="content-card__content"> 468 <header class="content-card__header"> 469 <div class="content-card__breadcrumbs"> 470 <a href="/research">research</a> â <a href="https://citizenlab.ca/content-type/report/">Report</a> </div> 471 <h2 class="content-card__title"><a href="https://citizenlab.ca/research/should-we-chat-too-security-analysis-of-wechats-mmtls-encryption-protocol/">Should We Chat, Too? Security Analysis of WeChatâs MMTLS Encryption Protocol</a></h2> </header> 472 <div class="content-card__excerpt"> 473 <p>This report performs the first public analysis of MMTLS, the main network protocol used by WeChat, an app with over one billion users. The report finds that MMTLS is a modified version of TLS, however some of the modifications have introduced cryptographic weaknesses. </p> 474 </div> 475 476 <div class="content-card__date-focus-areas-wrapper"> 477 <div class="content-card__date"> 478 October 15, 2024 </div> 479 480 <div class="person-single__focus-areas"> 481 482 <a class="single__focus-area" href="https://citizenlab.ca/focus-area/app-privacy-security/"> 483 App Security & Privacy </a> 484 </div> 485 </div> 486 </div> 487 488 <div class="content-card__thumbnail"> 489 <img decoding="async" width="1408" height="750" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABYAAAALuAQMAAAAtxiDJAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAAJdJREFUGBntwTEBAAAAwiD7p14ND2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAjBqwAAfteHgoAAAAASUVORK5CYII=" class="attachment-medium-large size-medium-large wp-post-image lazyload" alt="" data-src="https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit.jpg" data-srcset="https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit.jpg 1408w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-300x160.jpg 300w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-1024x545.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-768x409.jpg 768w" data-max-width="1408" data-sizes="auto" data-eio-rwidth="1408" data-eio-rheight="750" /><noscript><img decoding="async" width="1408" height="750" src="https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit.jpg" class="attachment-medium-large size-medium-large wp-post-image" alt="" srcset="https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit.jpg 1408w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-300x160.jpg 300w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-1024x545.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2024/10/featured-image-zoomed-2048x1500-edit-768x409.jpg 768w" sizes="(max-width: 1408px) 100vw, 1408px" data-eio="l" /></noscript> </div> 490 </article></div> 491 492</li><li class="wp-block-post post-83431 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-keyboard-apps year-sf-1450"> 493 494<div class="nua-card-block wp-block-acf-card-block" > 495 496<article class="content-card content-card--research post-83431 research type-research status-publish has-post-thumbnail hentry content-type-report focus-area-app-privacy-security region-asia-pacific region-china topic-keyboard-apps year-sf-1450"> 497 <div class="content-card__content"> 498 <header class="content-card__header"> 499 <div class="content-card__breadcrumbs"> 500 <a href="/research">research</a> â <a href="https://citizenlab.ca/content-type/report/">Report</a> </div> 501 <a href="https://citizenlab.ca/research/vulnerabilities-across-keyboard-apps-reveal-keystrokes-to-network-eavesdroppers/"> 502 <h2 class="content-card__title">The Not-So-Silent Type</h2> 503 <h3 class="content-card__subtitle">Vulnerabilities Across Keyboard Apps Reveal Keystrokes to Network Eavesdroppers</h3> 504 </a> 505 </header> 506 <div class="content-card__excerpt"> 507 <p>In this report, we examine cloud-based pinyin keyboard apps from nine vendors (Baidu, Honor, Huawei, iFlyTek, OPPO, Samsung, Tencent, Vivo, and Xiaomi) for vulnerabilities in how the apps transmit user keystrokes. Our analysis found that eight of the nine apps identified contained vulnerabilities that could be exploited to completely reveal the contents of usersâ keystrokes in transit. We estimate that up to one billion users could be vulnerable to having all of their keystrokes intercepted, constituting a tremendous risk to user security. </p> 508 </div> 509 510 <div class="content-card__date-focus-areas-wrapper"> 511 <div class="content-card__date"> 512 April 23, 2024 </div> 513 514 <div class="person-single__focus-areas"> 515 516 <a class="single__focus-area" href="https://citizenlab.ca/focus-area/app-privacy-security/"> 517 App Security & Privacy </a> 518 </div> 519 </div> 520 </div> 521 522 <div class="content-card__thumbnail"> 523 <img decoding="async" width="768" height="432" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAwAAAAGwAQMAAAAkGpCRAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAAD9JREFUeNrtwTEBAAAAwqD1T20LL6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4GejsAABW1fuTQAAAABJRU5ErkJggg==" class="attachment-medium-large size-medium-large wp-post-image lazyload" alt="" data-src="https://citizenlab.ca/wp-content/uploads/2024/04/featured-image-1.gif" data-eio-rwidth="768" data-eio-rheight="432" /><noscript><img decoding="async" width="768" height="432" src="https://citizenlab.ca/wp-content/uploads/2024/04/featured-image-1.gif" class="attachment-medium-large size-medium-large wp-post-image" alt="" data-eio="l" /></noscript> </div> 524 </article></div> 525 526</li></ul></div> 527</div> 528 529 530 531<div style="height:1px" aria-hidden="true" class="wp-block-spacer"></div> 532 533 534 535<div class="wp-block-group wp-container-content-348dd67e is-layout-flow wp-block-group-is-layout-flow"> 536<div class="wp-block-group wp-container-content-ffc8cefc is-layout-flow wp-block-group-is-layout-flow wp-container-1 is-position-sticky" style="margin-bottom:100px;padding-top:15px"> 537<p class="has-moderat-mono-font-family has-size-16-font-size wp-block-paragraph">RECENT NEWS</p> 538 539 540 541<div class="nua-recent-posts-block align wp-block-acf-recent-posts"> 542 543 544<article class="content-card content-card--post--compact"> 545 546 <div class="content-card__content"> 547 548 <div class="content-card__content-type"> 549 <a href="/content-type/news/">News</a> â <a href="https://citizenlab.ca/content-type/testimony/"><span>Testimony</span></a>
549 </div> 550 551 <h2 class="content-card__title"><a href="https://citizenlab.ca/ronald-deibert-delivers-testimony-to-the-house-of-commons-on-parliamentary-duties-and-the-covid-19-pandemic/">Ronald Deibert Delivers Testimony to the House of Commons on Parliamentary Duties and the COVID-19 Pandemic</a></h2> 552 553 <div class="content-card__date"> 554 April 29, 2020 </div> 555 556 </div> 557 558 559</article> 560 561<article class="content-card content-card--post--compact"> 562 563 <div class="content-card__content"> 564 565 <div class="content-card__content-type"> 566 <a href="/content-type/news/">News</a> â <a href="https://citizenlab.ca/content-type/op-ed/"><span>Op-ed</span></a> </div> 567 568 <a class="content-card__title-link" href="https://citizenlab.ca/fit-leaking-citizen-lab-research-fitness-tracker-privacy/"> 569 <h2 class="content-card__title">Fit Leaking</h2> 570 <h3 class="content-card__subtitle">Citizen Lab Research on Fitness Tracker Privacy</h3> 571 </a> 572 573 574 <div class="content-card__date"> 575 January 29, 2018 </div> 576 577 </div> 578 579 580</article> 581 582<article class="content-card content-card--post--compact"> 583 584 <div class="content-card__content"> 585 586 <div class="content-card__content-type"> 587 <a href="/content-type/news/">News</a> â <a href="https://citizenlab.ca/content-type/news/"><span>News</span></a> </div> 588 589 <a class="content-card__title-link" href="https://citizenlab.ca/secure-your-chats-encrypted-messaging/"> 590 <h2 class="content-card__title">Secure Your Chats</h2> 591 <h3 class="content-card__subtitle">Why Encrypted Messaging Matters</h3> 592 </a> 593 594 595 <div class="content-card__date"> 596 November 9, 2017 </div> 597 598 </div> 599 600 601</article> 602 603</div> 604 605</div> 606</div> 607</div> 608 609 610 611<div class="wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow" style="margin-bottom:var(--wp--preset--spacing--40)"> 612<p class="has-moderat-mono-font-family has-size-16-font-size wp-container-content-ec1bbf6b wp-block-paragraph">BROWSE RELATED CONTENT</p> 613</div> 614 615 616 617<div class="wp-block-nua-search-filter alignwide"><div class="nua-search-filter nua-grid not-translated research post event" data-options="{"postTypes":["research","post","event"],"showSearch":true,"filterByPostTypes":true,"postsPerPage":5,"taxonomies":["content-type","region","year-sf"],"taxOptions":{"topic":{"hierarchical":"false"},"region":{"hierarchical":"true"}},"enableHierarchical":true,"enableMetaSearch":false,"enableSort":true,"baseQueryTerms":[{"taxonomy":"focus-area","term":"app-privacy-security"}],"enableCardContentType":true,"enableBaseQueryMeta":false,"baseQueryMeta":{"relation":"OR","queries":[]},"showCount":true}"></div></div> 618 619 620 621<hr class="wp-block-separator alignwide has-text-color has-gray-dark-color has-alpha-channel-opacity has-gray-dark-background-color has-background" style="margin-bottom:var(--wp--preset--spacing--60)"/> 622 623 624 625<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9809b0a4 wp-block-columns-is-layout-flex" style="margin-bottom:var(--wp--preset--spacing--60)"> 626<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66.66%"> 627<p class="has-moderat-mono-font-family has-size-16-font-size wp-block-paragraph">OUR EXPERTS IN APP SECURITY & PRIVACY</p> 628</div> 629 630 631 632<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:33.33%"></div> 633</div> 634 635 636 637<div class="wp-block-query alignwide experts-wrapper is-layout-flow wp-block-query-is-layout-flow"><ul class="columns-2 wp-block-post-template is-layout-grid wp-container-core-post-template-is-layout-404107e4 wp-block-post-template-is-layout-grid"><li class="wp-block-post post-82899 person type-person status-publish has-post-thumbnail hentry category-researchers focus-area-app-privacy-security"> 638 639<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-34900350 wp-block-group-is-layout-flex"> 640<div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained"><figure class="wp-block-post-featured-image"><a href="https://citizenlab.ca/person/pellaeon-lin/" target="_self" ><img decoding="async" width="150" height="150" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACWAQMAAAAGz+OhAAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAABpJREFUSMftwTEBAAAAwqD1T20ND6AAAIB3Awu4AAFdkeOZAAAAAElFTkSuQmCC" class="attachment-thumbnail size-thumbnail wp-post-image lazyload" alt="Pellaeon Lin" style="border-radius:100px;height:82px;width:82px;object-fit:cover;" data-src="https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-150x150.jpg" data-srcset="https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-150x150.jpg 150w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-300x300.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-1024x1024.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-768x768.jpg 768w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02.jpg 1200w" data-max-width="150" data-sizes="auto" data-eio-rwidth="150" data-eio-rheight="150" /><noscript><img decoding="async" width="150" height="150" src="https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-150x150.jpg" class="attachment-thumbnail size-thumbnail wp-post-image" alt="Pellaeon Lin" style="border-radius:100px;height:82px;width:82px;object-fit:cover;" srcset="https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-150x150.jpg 150w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-300x300.jpg 300w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-1024x1024.jpg 1024w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02-768x768.jpg 768w, https://citizenlab.ca/wp-content/uploads/2025/09/PlaceholderPeople-CL-02.jpg 1200w" sizes="(max-width: 150px) 100v
640w, 150px" data-eio="l" /></noscript></a></figure></div> 641 642 643 644<div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-7c846e87 wp-block-group-is-layout-constrained"><h3 style="font-style:normal;font-weight:700;line-height:1;margin-top:var(--wp--preset--spacing--40);margin-bottom:0" class="wp-block-post-title has-size-36-font-size has-theinhardt-condensed-font-family"><a href="https://citizenlab.ca/person/pellaeon-lin/" target="_self" >Pellaeon Lin</a></h3> 645 646 647<div class="nua-custom-field-block align wp-block-acf-custom-field-block"> 648 649 <div class="position__wrapper"> 650 <p class="position__value">Senior Researcher</p> 651 </div> 652 653</div> 654</div> 655</div> 656 657</li><li class="wp-block-post post-82873 person type-person status-publish hentry focus-area-app-privacy-security"> 658 659<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-34900350 wp-block-group-is-layout-flex"> 660<div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained"></div> 661 662 663 664<div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-7c846e87 wp-block-group-is-layout-constrained"><h3 style="font-style:normal;font-weight:700;line-height:1;margin-top:var(--wp--preset--spacing--40);margin-bottom:0" class="wp-block-post-title has-size-36-font-size has-theinhardt-condensed-font-family"><a href="https://citizenlab.ca/person/mona-wang/" target="_self" >Mona Wang</a></h3> 665 666 667<div class="nua-custom-field-block align wp-block-acf-custom-field-block"> 668 669 <div class="position__wrapper"> 670 <p class="position__value">Open Technology Fund Information Controls Fellow</p> 671 </div> 672 673</div> 674</div> 675</div> 676 677</li><li class="wp-block-post post-82874 person type-person status-publish hentry focus-area-app-privacy-security focus-area-censorship"> 678 679<div class="wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-34900350 wp-block-group-is-layout-flex"> 680<div class="wp-block-group has-global-padding is-layout-constrained wp-block-group-is-layout-constrained"></div> 681 682 683 684<div class="wp-block-group has-global-padding is-layout-constrained wp-container-core-group-is-layout-7c846e87 wp-block-group-is-layout-constrained"><h3 style="font-style:normal;font-weight:700;line-height:1;margin-top:var(--wp--preset--spacing--40);margin-bottom:0" class="wp-block-post-title has-size-36-font-size has-theinhardt-condensed-font-family"><a href="https://citizenlab.ca/person/jeffrey-knockel/" target="_self" >Jeffrey Knockel</a></h3> 685 686 687<div class="nua-custom-field-block align wp-block-acf-custom-field-block"> 688 689 <div class="position__wrapper"> 690 <p class="position__value">Senior Fellow</p> 691 </div> 692 693</div> 694</div> 695</div> 696 697</li></ul></div> 698 699 700 701<div class="wp-block-group alignfull pattern-all-focus-areas has-beige-light-extra-background-color has-background has-global-padding is-layout-constrained wp-block-group-is-layout-constrained" style="margin-top:80px;padding-top:var(--wp--preset--spacing--70);padding-bottom:var(--wp--preset--spacing--80)"> 702<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-9809b0a4 wp-block-columns-is-layout-flex" style="margin-bottom:var(--wp--preset--spacing--60)"> 703<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:66%"> 704<div class="wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow"> 705<h2 class="wp-block-heading alignwide has-moderat-serif-font-family has-size-40-font-size" style="font-style:normal;font-weight:400">All Focus Areas</h2> 706</div> 707</div> 708</div> 709 710 711 712<div class="wp-block-columns alignwide is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex"> 713<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:90%"> 714<div class="wp-block-buttons alignwide is-layout-flex wp-container-core-buttons-is-layout-15f0f575 wp-block-buttons-is-layout-flex"> 715<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="https://citizenlab.ca/focus-area/app-privacy-security/">App Security & Privacy</a></div> 716 717 718 719<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/artificial-intelligence/">Artificial Intelligence</a></div> 720 721 722 723<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/censorship/">Censorship</a></div> 724 725 726 727<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/digital-transnational-repression/">Digital Transnational Repression</a></div> 728 729 730 731<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/disinformation/">Disinformation</a></div> 732 733 734 735<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/law-policy/">Law & Policy</a></div> 736 737 738 739<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="/focus-area/mass-surveillance/">Mass Surveillance</a></div> 740 741 742 743<div class="wp-block-button is-style-secondary-button"><a class="wp-block-button__link wp-element-button" href="https://citizenlab.ca/focus-area/targeted-surveillance/">Targeted Surveillance</a></div> 744</div> 745</div> 746</div> 747</div> 748 </div><!-- .entry-content --> 749 </article> 750 751 752</main><!-- #main --> 753<footer class="site-footer" role="contentinfo"> 754 755 <div class="brand-symbol__row nua-grid not-translated"> 756 <div class="alignwide"> 757 <svg width="132" height="59" viewBox="0 0 132 59" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="footer-brand-symbol-title"> 758 <title id="footer-brand-symbol-title">Citizen Lab Brand Symbol</title> 759 <g clip-path="url(#clip0_3763_14516)"> 760 <path d="M20.1895 25.9468C27.354 25.9468 33.1629 20.1379 33.1629 12.9734C33.1629 5.80896 27.354 0 20.1895 0C13.025 0 7.21608 5.80896 7.21608 12.9734C7.21608 20.1379 13.025 25.9468 20.1895 25.9468ZM35.1102 29.4115H5.2688C2.47433 29.4115 0.210938 31.6749 0.210938 34.4694V59H6.20451V44.3625H9.69444V59H30.5V44.3625H33.9899V59H40.1681V34.4694C40.1681 31.6749 37.9047 29.4115 35.1102 29.4115Z" fill="#1ABCB9" /> 761 <path d="M65.71 25.9468C72.8745 25.9468 78.6834 20.1379 78.6834 12.9734C78.6834 5.80896 72.8745 0 65.71 0C58.5455 0 52.7366 5.80896 52.7366 12.9734C52.7366 20.1379 58.5455 25.9468 65.71 25.9468ZM80.6307 29.4115H50.7893C47.9948 29.4115 45.7314 31.6749 45.7314 34.4694V59H51.725V44.3625H55.2149V59H76.0205V44.3625H79.5104V59H85.6886V34.4694C85.6886 31.6749 83.4252 29.4115 80.6307 29.4115Z" fill="#F8981C" /> 762 <path d="M111.231 25.9468C118.396 25.9468 124.205 20.1379 124.205 12.9734C124.205 5.80896 118.396 0 111.231 0C104.067 0 98.2581 5.80896 98.2581 12.9734C98.2581 20.1379 104.067 25.9468 111.231 25.9468ZM126.152 29.4115H96.3108C93.5163 29.4115 91.2529 31.6749 91.2529 34.4694V59H97.2465V44.3625H100.736V59H121.542V44.3625H125.032V59H131.21V34.4694C131.21 31.6749 128.947 29.4115 126.152 29.4115Z" fill="#1ABCB9" /> 763 </g> 764 <defs> 765 <clipPath id="clip0_3763_14516"> 766 <rect width="130.999" height="59" fill="white" transform="translate(0.210938)" /> 767 </clipPath> 768 </defs> 769 </svg> 770 </div> 771 </div> 772 773 <div class="footer__wrapper nua-grid not-translated"> 774 775 <div class="column__start-1 column__end-4 row__start-0"> 776 <div class="brand-wordmark__wrapper">
777 <a class="logo" href="https://citizenlab.ca" aria-label="Citizen Lab Home"> 778 <svg width="267" height="32" viewBox="0 0 267 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="footer-wordmark-title"> 779 <title id="footer-wordmark-title">The Citizen Lab</title> 780 <path d="M19.3954 1.07324V6.23449H12.6043V31.579H6.79112V6.23449H0V1.07324H19.3954Z" fill="#1ABCB9" /> 781 <path d="M23.2261 31.579V1.07324H29.0529V13.2973H37.2973V1.07324H43.1241V31.579H37.2973V18.3906H29.0529V31.579H23.2261Z" fill="#1ABCB9" /> 782 <path d="M48.7056 31.579V1.07324H64.6647V6.23449H54.5323V13.1886H62.2606V18.3363H54.5323V26.3634H65.0993V31.5246L48.7056 31.579Z" fill="#1ABCB9" /> 783 <path d="M75.1519 22.5336C75.1519 25.9156 76.6188 26.8392 78.9413 26.8392C81.2639 26.8392 82.7444 25.9156 82.7444 22.5336V20.5098H88.5847V21.773C88.5847 29.2976 84.6051 32.0004 78.9413 32.0004C73.2775 32.0004 69.3115 29.284 69.3115 21.773V10.9072C69.3115 3.39622 73.2911 0.693359 78.9413 0.693359C84.5915 0.693359 88.5847 3.4098 88.5847 10.9072V11.0023H82.7444V10.1602C82.7444 6.7782 81.2775 5.84102 78.9413 5.84102C76.6052 5.84102 75.1519 6.7782 75.1519 10.1602V22.5336Z" fill="#F8981C" /> 784 <path d="M93.6494 31.579V1.07324H99.5305V31.579H93.6494Z" fill="#F8981C" /> 785 <path d="M122.715 1.07324V6.23449H115.924V31.579H110.084V6.23449H103.292V1.07324H122.715Z" fill="#F8981C" /> 786 <path d="M126.52 31.579V1.07324H132.347V31.579H126.52Z" fill="#F8981C" /> 787 <path d="M137.875 1.07324H154.771V5.97643L143.253 26.3498H155.029V31.5111H136.693V26.635L148.238 6.26166H137.875V1.07324Z" fill="#F8981C" /> 788 <path d="M159.048 31.579V1.07324H175.021V6.23449H164.875V13.1886H172.603V18.3363H164.875V26.3634H175.429V31.5246L159.048 31.579Z" fill="#F8981C" /> 789 <path d="M180.507 31.579V1.07324H186.877L195.027 19.1512H195.122V1.07324H200.446V31.579H194.864L185.913 11.8304H185.832V31.5246L180.507 31.579Z" fill="#F8981C" /> 790 <path d="M205.977 31.579V1.07324H211.817V26.4177H221.189V31.579H205.977Z" fill="#1ABCB9" /> 791 <path d="M222.667 31.579L230.219 1.07324H237.703L245.064 31.579H239.427L238.069 25.1546H229.92L228.263 31.579H222.667ZM230.993 19.9797H236.711L233.995 7.66063H233.913L230.993 19.9797Z" fill="#1ABCB9" /> 792 <path d="M248.216 1.07324H256.365C262.613 1.07324 266.199 3.69462 266.199 8.93736C266.209 10.2254 265.873 11.4925 265.225 12.606C264.577 13.7196 263.642 14.6385 262.518 15.2667C265.723 17.2904 267 18.9746 267 22.7912C267 28.8218 262.925 31.579 256.773 31.579H248.229L248.216 1.07324ZM254.056 13.1614H256.08C258.701 13.1614 260.44 11.6266 260.44 9.56215C260.44 7.49764 259.082 5.89493 256.365 5.89493H254.043L254.056 13.1614ZM254.056 26.7437H256.501C257.11 26.8194 257.728 26.7593 258.311 26.5678C258.894 26.3763 259.427 26.0582 259.872 25.6362C260.318 25.2142 260.664 24.6989 260.887 24.1271C261.109 23.5554 261.202 22.9415 261.16 22.3295C261.16 19.4093 259.136 17.9695 256.094 17.9695H254.07L254.056 26.7437Z" fill="#1ABCB9" /> 793 </svg> 794 </a> 795 </div> 796 <a href="https://citizenlab.ca/newsletter/" target="_self" class="btn newsletter-signup-btn newsletter-signup-btn-1 column__start-1 column__end-4">Subscribe to our newsletter</a> 797 </div> 798 799 800 <div class="menu__wrapper column__start-5 column__end-12 row__start-0"> 801 <nav class="footer-nav" aria-label="Footer navigation"><ul id="menu-footer-menu" class="menu"><li id="menu-item-85334" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85334"><a href="#">Our Work</a> 802<ul class="sub-menu"> 803 <li id="menu-item-83905" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83905"><a href="https://citizenlab.ca/research/">Research</a></li> 804 <li id="menu-item-83904" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83904"><a href="https://citizenlab.ca/publication-directory/">Publication Directory</a></li> 805 <li id="menu-item-83906" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83906"><a href="https://citizenlab.ca/tools-resources/">Tools & Resources</a></li> 806</ul> 807</li> 808<li id="menu-item-85335" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85335"><a href="#">News & Events</a> 809<ul class="sub-menu"> 810 <li id="menu-item-85339" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-85339"><a href="https://citizenlab.ca/content-type/expert-insights/">Expert Insights</a></li> 811 <li id="menu-item-85337" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-85337"><a href="https://citizenlab.ca/content-type/in-the-media/">In the Media</a></li> 812 <li id="menu-item-83899" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83899"><a href="https://citizenlab.ca/events/">Events</a></li> 813 <li id="menu-item-85338" class="menu-item menu-item-type-taxonomy menu-item-object-content-type menu-item-85338"><a href="https://citizenlab.ca/content-type/news/">News</a></li> 814</ul> 815</li>
816<li id="menu-item-85336" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-has-children menu-item-85336"><a href="#">About</a> 817<ul class="sub-menu"> 818 <li id="menu-item-83908" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83908"><a href="https://citizenlab.ca/who-we-are/">Who We Are</a></li> 819 <li id="menu-item-85340" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-85340"><a href="https://citizenlab.ca/contact/">Contact</a></li> 820 <li id="menu-item-83902" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83902"><a href="https://citizenlab.ca/people/">People</a></li> 821 <li id="menu-item-83910" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-83910"><a target="_blank" href="https://engage.utoronto.ca/site/SPageServer?pagename=donate#/fund/847">Donate</a></li> 822</ul> 823</li> 824</ul></nav> </div> 825 826 <a href="https://citizenlab.ca/newsletter/" target="_self" class="btn newsletter-signup-btn newsletter-signup-btn-2 column__start-1 column__end-4">Subscribe to our newsletter</a> 827 828 <div class="socials__wrapper column__start-1 column__end-6"> 829 <h4>CONNECT</h4> 830 831 <ul class="socials"> 832 <li> 833 <a href="https://bsky.app/profile/citizenlab.ca" target="_blank" aria-label="Follow us on Bluesky"> 834 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="21" height="18" fill="none" viewBox="0 0 21 18"><path fill="currentColor" d="M15.795 1.436c-2.312 1.728-4.799 5.231-5.712 7.111-.913-1.88-3.4-5.383-5.712-7.111C2.703.189 0-.776 0 2.294c0 .613.353 5.15.56 5.886.72 2.561 3.343 3.214 5.676 2.819-4.078.691-5.116 2.98-2.875 5.268 4.255 4.347 6.116-1.09 6.593-2.483.088-.256.129-.375.13-.274 0-.101.04.018.128.274.477 1.393 2.338 6.83 6.594 2.483 2.24-2.288 1.203-4.577-2.876-5.268 2.334.395 4.957-.258 5.676-2.819.207-.736.56-5.273.56-5.886 0-3.07-2.703-2.105-4.37-.858Z"> </path></svg> </span> 835 </a> 836 </li> 837 <li> 838 <a href="https://ca.linkedin.com/company/the-citizen-lab" target="_blank" aria-label="Follow us on LinkedIn"> 839 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="19" height="20" fill="none" viewBox="0 0 19 20"><path fill="currentColor" d="M17.692.531c.712.019 1.244.716 1.25 1.417l-.003 16.33c-.039.676-.534 1.323-1.224 1.358H1.343C.726 19.613.175 19.042.167 18.41V1.758C.174 1.143.73.528 1.343.53h16.349ZM4.147 3.187c-1.237.
83913-1.83 1.664-1.05 2.653.785.998 2.4.694 2.766-.531.345-1.151-.55-2.244-1.716-2.121v-.001ZM16.084 16.79v-5.703c-.09-1.704-.579-3.2-2.4-3.53-1.208-.222-2.518.003-3.3 1.045-.06.08-.152.272-.195.316-.029.03-.044.028-.083.024V7.717H7.465v9.074h2.76v-4.894c.063-1.022.4-1.886 1.524-1.95 1.193-.067 1.542.75 1.599 1.827v5.017h2.736ZM5.712 7.717H2.975v9.074h2.737V7.717Z"> </path></svg> </span> 840 </a> 841 </li> 842 <li> 843 <a href="https://x.com/citizenlab" target="_blank" aria-label="Follow us on X (Twitter)"> 844 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="17" height="18" fill="none" viewBox="0 0 17 18"><path fill="currentColor" d="M10.121 7.818 16.14.822h-1.426L9.488 6.897 5.314.822H.5l6.312 9.186L.5 17.344h1.426l5.519-6.415 4.408 6.415h4.814L10.12 7.818Zm-1.953 2.27-.64-.914L2.44 1.896h2.19L8.738 7.77l.64.914 5.337 7.635h-2.19l-4.356-6.23Z"> </path></svg> </span> 845 </a> 846 </li> 847 <li> 848 <a href="https://www.instagram.com/thecitizenlab/" target="_blank" aria-label="Follow us on Instagram"> 849 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="21" height="21" fill="none" viewBox="0 0 21 21"><path fill="currentColor" d="M6.24.07C5.169.12 4.436.292 3.796.543A4.932 4.932 0 0 0 2.01 1.71 4.943 4.943 0 0 0 .85 3.497C.603 4.14.434 4.872.387 5.946.34 7.02.33 7.364.335 10.103c.005 2.738.017 3.081.068 4.157.051 1.073.223 1.805.473 2.446a4.937 4.937 0 0 0 1.167 1.784 4.945 4.945 0 0 0 1.788 1.159c.641.248 1.375.417 2.448.464 1.076.047 1.42.058 4.157.052 2.738-.005 3.082-.017 4.157-.068 1.073-.051 1.805-.223 2.446-.473a4.943 4.943 0 0 0 1.784-1.166 4.944 4.944 0 0 0 1.16-1.789c.247-.641.416-1.375.463-2.447.047-1.076.058-1.42.053-4.158-.005-2.738-.018-3.08-.069-4.156-.05-1.074-.223-1.806-.473-2.447a4.948 4.948 0 0 0-1.166-1.784A4.935 4.935 0 0 0 17.003.518C16.36.27 15.628.101 14.555.054c-1.076-.048-1.42-.058-4.157-.053C7.66.006 7.316.018 6.24.07m.117 18.228c-.983-.043-1.517-.206-1.872-.343a3.145 3.145 0 0 1-1.161-.752 3.134 3.134 0 0 1-.757-1.158c-.138-.356-.304-.889-.35-1.872-.05-1.063-.062-1.382-.067-4.074-.005-2.692.005-3.01.051-4.074.043-.983.207-1.517.343-1.872.183-.472.4-.808.753-1.162a3.125 3.125 0 0 1 1.158-.756c.355-.139.888-.304 1.871-.35 1.063-.05 1.382-.062 4.074-.067 2.692-.005 3.011.004 4.075.051.982.043 1.517.206 1.872.343.471.183.807.4 1.16.752.354.353.574.687.758 1.159.138.354.304.888.35 1.87.05 1.064.062 1.383.067 4.075.005 2.692-.005 3.01-.051 4.074-.043.983-.206 1.517-.343 1.873-.183.47-.4.807-.753 1.16a3.133 3.133 0 0 1-1.158.757c-.355.139-.889.304-1.87.35-1.064.05-1.383.062-4.075.067-2.692.005-3.01-.005-4.074-.051m8.22-13.605a1.21 1.21 0 1 0 2.42-.005 1.21 1.21 0 0 0-2.42.005m-9.34 5.4a5.178 5.178 0 1 0 10.355-.021 5.178 5.178 0 0 0-10.355.021Zm1.817-.003a3.361 3.361 0 1 1 6.722-.012 3.361 3.361 0 0 1-6.722.012"></path></svg> </span> 850 </a> 851 </li> 852 <li> 853 <a href="https://www.youtube.com/channel/UCf5Aunw7xvt3lAFrLhiCA5w" target="_blank" aria-label="Follow us on YouTube"> 854 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="25" height="19" viewBox="0 0 25 19" fill="none"><path d="M24.4793 3.48247C24.1912 2.40616 23.3454 1.56034 22.2691 1.27223C20.3182 0.749512 12.5 0.749512 12.5 0.749512C12.5 0.749512 4.68184 0.749512 2.73296 1.27223C1.65665 1.56034 0.810833 2.40616 0.52272 3.48247C0 5.43135 0 9.49992 0 9.49992C0 9.49992 0 13.5685 0.52272 15.5174C0.810833 16.5937 1.65665 17.4395 2.73296 17.7276C4.68184 18.2503 12.5 18.2503 12.5 18.2503C12.5 18.2503 20.3182 18.2503 22.267 17.7276C23.3433 17.4395 24.1892 16.5937 24.4773 15.5174C25 13.5685 25 9.49992 25 9.49992C25 9.49992 25 5.43135 24.4773 3.48247H24.4793ZM9.99959 13.2495V5.75033L16.4945 9.49992L9.99959 13.2495Z" fill="currentColor"></path></svg> </span> 855 </a> 856 </li> 857 <li> 858 <a href="https://github.com/citizenlab" target="_blank" aria-label="Follow us on Social Media"> 859 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="25" height="26" viewBox="0 0 25 26" fill="none"><path fill-rule="evenodd" clip-rule="evenodd" d="M12.5089 0.933594C5.59253 0.933594 0 6.6626 0 13.7509C0 19.4174 3.5824 24.2116 8.55268 25.9095C9.17493 26.0371 9.40283 25.6334 9.40283 25.2949C9.40283 24.998 9.38234 23.9798 9.38234 22.9173C5.90237 23.6803 5.1777 21.3887 5.1777 21.3887C4.61947 19.9044 3.78981 19.5216 3.78981 19.5216C2.65031 18.7378 3.87175 18.7378 3.87175 18.7378C5.13417 18.8237 5.79739 20.0528 5.79739 20.0528C6.9164 22.0059 8.71656 21.4538 9.4438 21.1127C9.54622 20.2846 9.87911 19.7117 10.2299 19.394C7.45415 19.0971 4.53497 17.993 4.53497 13.0713C4.53497 11.6703 5.03174 10.5245 5.81787 9.63387C5.6924 9.31617 5.25964 8.0011 5.94334 6.23813C5.94334 6.23813 6.99835 5.8996 9.38234 7.5532C10.4015 7.27196 11.4539 7.12873 12.5089 7.12873C13.5639 7.12873 14.642 7.27716 15.6355 7.5532C18.017 5.897 19.0745 6.23813 19.0745 6.23813C19.7582 7.9985 19.3229 9.31617 19.2 9.63387C20.0066 10.5245 20.4829 11.6703 20.4829 13.0713C20.4829 17.9956 17.5637 19.0763 14.7675 19.394C15.2233 19.7976 15.6176 20.5606 15.6176 21.7715C15.6176 23.4902 15.5971 24.8704 15.5971 25.2949
859C15.5971 25.6334 15.825 26.0371 16.4473 25.9095C21.4175 24.2116 24.9999 19.4174 24.9999 13.7509C25.0204 6.6626 19.4074 0.933594 12.5115 0.933594L12.5089 0.933594Z" fill="currentColor"></path></svg> </span> 860 </a> 861 </li> 862 <li> 863 <a href="https://citizenlab.ca/feed/" target="_blank" aria-label="Follow us on Social Media"> 864 <span aria-hidden="true"><?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="25" height="26" viewBox="0 0 25 26" fill="none"><path d="M0 9.2002C9.23211 9.25426 16.7002 16.7242 16.7002 25.9336H12.1758C12.1758 24.2816 11.8532 22.6806 11.2139 21.1758C10.5956 19.7191 9.70889 18.4094 8.58105 17.2861C7.45007 16.1628 6.13754 15.2798 4.6748 14.6641C3.19393 14.0423 1.62263 13.7171 0 13.7051V9.2002ZM1.19434 0.933594C14.3411 0.933594 24.9998 11.5485 25 24.6416C25 25.0621 24.9879 25.4829 24.9668 25.9004H20.4365C20.4606 25.4829 20.4756 25.0621 20.4756 24.6416C20.4755 22.0466 19.9662 19.5327 18.9619 17.1689C18.4794 16.0337 17.8821 14.9373 17.1855 13.9102C16.4979 12.892 15.7046 11.9364 14.8301 11.0654C13.9555 10.1974 12.996 9.40755 11.9736 8.71973C10.9452 8.02587 9.84124 7.43079 8.70117 6.9502C6.32454 5.94997 3.80018 5.44246 1.19434 5.43945C0.814417 5.43945 0.434523 5.45164 0.0576172 5.47266V0.960938C0.43452 0.942925 0.81442 0.933594 1.19434 0.933594ZM3.51367 18.8691C5.45296 18.8691 7.0273 20.4397 7.02734 22.3711C7.02734 24.3025 5.45299 25.8672 3.51367 25.8672C1.57436 25.8672 0 24.2996 0 22.3682C5.14674e-06 20.4368 1.57135 18.8692 3.51367 18.8691Z" fill="currentColor"></path></svg> </span> 865 </a> 866 </li> 867 </ul> 868 </div> 869 870 <div class="uoft-logos__wrapper column__start-7 column__end-12"> 871 <a href="https://munkschool.utoronto.ca/" target="_blank"> 872 <img width="506" height="82" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfoAAABSAQMAAACG44Q9AAAAA1BMVEVHcEyC+tLSAAAAAXRSTlMAQObYZgAAABxJREFUWMPtwQENAAAAwqD3T20ON6AAAAAAAF4MFNIAAbmnUToAAAAASUVORK5CYII=" class="attachment-full size-full lazyload" alt="Munk Logo" decoding="async" data-src="https://citizenlab.ca/wp-content/uploads/2025/10/MunkLogoLockup.svg" data-eio-rwidth="506" data-eio-rheight="82" /><noscript><img width="506" height="82" src="https://citizenlab.ca/wp-content/uploads/2025/10/MunkLogoLockup.svg" class="attachment-full size-full" alt="Munk Logo" decoding="async" data-eio="l" /></noscript> </a> 873 </div> 874 875 876 877 <div class="copyright__wrapper column__start-1 column__end-12"> 878 <span>© 2026 The Citizen Lab</span> 879 880 <nav class="utility-nav" aria-label="Utility navigation"><ul id="menu-utility-menu" class="menu"><li id="menu-item-85811" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-85811"><a href="https://citizenlab.ca/vulnerability-disclosures/">Disclosure Policy</a></li> 881<li id="menu-item-83916" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-83916"><a href="https://citizenlab.ca/privacy-policy/">Privacy Policy</a></li> 882</ul></nav> </div> 883 884 </div> 885</footer> 886</div><!-- #content --> 887
888<script type="speculationrules"> 889{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/theme-citizenlab/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 890</script>
vendor: 1 bytes, line 890
890
891<script id="eio-lazy-load-js-before"> 892var eio_lazy_vars = {"bg_min_dpr":1.1,"exactdn_domain":"","safe_domains":["citizenlab.ca","www.citizenlab.ca"],"skip_autoscale":0,"threshold":0,"use_dpr":1}; 893//# sourceURL=eio-lazy-load-js-before 894</script>
vendor: 1 bytes, line 894
894
895<script async data-wp-strategy="async" id="eio-lazy-load-js" src="https://citizenlab.ca/wp-content/plugins/ewww-image-optimizer/includes/lazysizes.min.js?ver=877"></script>
vendor: 1 bytes, line 895
895
896<script id="bigfoot-js" src="https://citizenlab.ca/wp-content/plugins/bigfoot_footnotes/library/bigfoot.js?ver=1.0"></script>
vendor: 1 bytes, line 896
896
897<script id="bigfoot-min-js" src="https://citizenlab.ca/wp-content/plugins/bigfoot_footnotes/library/bigfoot.min.js?ver=1.0"></script>
vendor: 1 bytes, line 897
897
898<script id="bigfoot-function-js" src="https://citizenlab.ca/wp-content/plugins/bigfoot_footnotes/library/bigfoot-function.js?ver=1.0"></script>
vendor: 1 bytes, line 898
898
899<script id="nua-scripts-js-before"> 900const nua_env = {"rest_url":"https:\/\/citizenlab.ca\/wp-json\/","base_url":"https:\/\/citizenlab.ca","base_path":"\/","nonce":"b988f9969e","site_name":"The Citizen Lab","site_url":"https:\/\/citizenlab.ca","current_user":{"data":{},"ID":0,"caps":[],"cap_key":null,"roles":[],"allcaps":[],"filter":null}} 901//# sourceURL=nua-scripts-js-before 902</script>
vendor: 1 bytes, line 902
902
903<script id="nua-scripts-js" src="https://citizenlab.ca/wp-content/themes/theme-citizenlab/build/main.js?ver=1.0.0"></script>
vendor: 1 bytes, line 903
903
904<script id="featherlight-js-js" src="https://cdnjs.cloudflare.com/ajax/libs/featherlight/1.7.13/featherlight.min.js?ver=1.7.13"></script>
vendor: 1 bytes, line 904
904
905<script id="googlesitekit-events-provider-content-events-js-before"> 906window._googlesitekit = window._googlesitekit || {}; 907window._googlesitekit.contentEvents = {"postID":1314,"isSinglePost":false,"hasVimeoEmbed":false}; 908//# sourceURL=googlesitekit-events-provider-content-events-js-before 909</script>
vendor: 1 bytes, line 909
909
910<script id="googlesitekit-events-provider-content-events-js" src="https://citizenlab.ca/wp-content/plugins/google-site-kit/dist/assets/js/googlesitekit-events-provider-content-events-c7172f3fd0e4d5ad62ef.js" defer></script>
vendor: 1 bytes, line 910
910
911<script data-wp-strategy="defer" defer id="acf-card-block-view-script-js" src="https://citizenlab.ca/wp-content/plugins/plugin-citizenlab/blocks/card-block/build/script.js?ver=84efda77fc402a6fb0ed"></script>
vendor: 1 bytes, line 911
911
912<script id="react-js" src="https://citizenlab.ca/wp-includes/js/dist/vendor/react.min.js?ver=18.3.1.1"></script>
vendor: 1 bytes, line 912
912
913<script id="react-dom-js" src="https://citizenlab.ca/wp-includes/js/dist/vendor/react-dom.min.js?ver=18.3.1.1"></script>
vendor: 1 bytes, line 913
913
914<script id="wp-hooks-js" src="https://citizenlab.ca/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 914
914
915<script id="wp-i18n-js" src="https://citizenlab.ca/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 915
915
916<script id="wp-i18n-js-after"> 917wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); 918//# sourceURL=wp-i18n-js-after 919</script>
vendor: 1 bytes, line 919
919
920<script id="wp-private-apis-js" src="https://citizenlab.ca/wp-includes/js/dist/private-apis.min.js?ver=eb85f28c4c729bb4f002"></script>
vendor: 1 bytes, line 920
920
921<script id="wp-url-js" src="https://citizenlab.ca/wp-includes/js/dist/url.min.js?ver=7b0de086d4ae11d55704"></script>
vendor: 1 bytes, line 921
921
922<script id="wp-api-fetch-js-translations"> 923( function( domain, translations ) { 924 var localeData = translations.locale_data[ domain ] || translations.locale_data.messages; 925 localeData[""].domain = domain; 926 wp.i18n.setLocaleData( localeData, domain ); 927} )( "default", {"translation-revision-date":"2026-09-23 10:44:04+0000","generator":"GlotPress\/4.1.0","domain":"messages","locale_data":{"messages":{"":{"domain":"messages","plural-forms":"nplurals=2; plural=n != 1;","lang":"en_CA"},"Could not get a valid response from the server.":["Could not get a valid response from the server."],"Unable to connect. Please check your Internet connection.":["Unable to connect. Please check your Internet connection."],"Media upload failed. If this is a photo or a large image, please scale it down and try again.":["Media upload failed. If this is a photo or a large image, please scale it down and try again."],"The response is not a valid JSON response.":["The response is not a valid JSON response."]}},"comment":{"reference":"wp-includes\/js\/dist\/api-fetch.js"}} ); 928//# sourceURL=wp-api-fetch-js-translations 929</script>
vendor: 1 bytes, line 929
929
930<script id="wp-api-fetch-js" src="https://citizenlab.ca/wp-includes/js/dist/api-fetch.min.js?ver=6f2a4faeee3c722b1e57"></script>
vendor: 1 bytes, line 930
930
931<script id="wp-api-fetch-js-after"> 932wp.apiFetch.use( wp.apiFetch.createRootURLMiddleware( "https://citizenlab.ca/wp-json/" ) ); 933wp.apiFetch.nonceMiddleware = wp.apiFetch.createNonceMiddleware( "b988f9969e" ); 934wp.apiFetch.use( wp.apiFetch.nonceMiddleware ); 935wp.apiFetch.use( wp.apiFetch.mediaUploadMiddleware ); 936wp.apiFetch.nonceEndpoint = "https://citizenlab.ca/wp-admin/admin-ajax.php?action=rest-nonce"; 937//# sourceURL=wp-api-fetch-js-after 938</script>
vendor: 1 bytes, line 938
938
939<script id="wp-escape-html-js" src="https://citizenlab.ca/wp-includes/js/dist/escape-html.min.js?ver=87ebe53e97bba59805a5"></script>
vendor: 1 bytes, line 939
939
940<script id="wp-element-js" src="https://citizenlab.ca/wp-includes/js/dist/element.min.js?ver=4a4370b2b349066fd440"></script>
vendor: 1 bytes, line 940
940
941<script id="nua-search-filter-script-js-extra"> 942var nsf = {"apiKey":"","themeUrl":"https://citizenlab.ca/wp-content/themes/theme-citizenlab","siteUrl":"https://citizenlab.ca","blockUrl":"https://citizenlab.ca/wp-content/plugins/plugin-citizenlab/blocks/search-filter/build/","strings":{"result":"Result","results":"Results","clear":"Clear","no_terms_found":"No terms found","type":"Type","search":"Keyword","label_search":"Search by keyword","loading":"Loading","error":"Error:","no_results":"No results found","date_desc":"Newest","date_asc":"Oldest","title_asc":"A-Z","title_desc":"Z-A","event_upcoming":"Upcoming","event_ongoing":"Ongoing","event_past":"Past","sort":"Sort by","post_types":"Post types","zoom_in":"Zoom in","zoom_out":"Zoom out","all_types":"All Types","all_topics":"All Topics","all_regions":"All Regions","all_focus_areas":"All Focus Areas","all_content_types":"All Content Types","all_investigations":"All Investigations","year":"Year","years":"Year Published","all_years":"All Years","researches":"Research"}}; 943//# sourceURL=nua-search-filter-script-js-extra 944</script>
vendor: 1 bytes, line 944
944
945<script id="nua-search-filter-script-js" src="https://citizenlab.ca/wp-content/plugins/plugin-citizenlab/blocks/search-filter/build/script.js?ver=51fa3b1730745483dd19"></script>
vendor: 1 bytes, line 945
945
946<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"aa7b04b1eb484691ab3f8397d4b2e4e7","r":1,"spa":2}' crossorigin="anonymous"></script>
946 947</body> 948 949</html><!-- 950Performance optimized by Redis Object Cache. Learn more: https://wprediscache.com 951 952Retrieved 4887 objects (2 MB) from Redis using PhpRedis (v6.3.0). 953-->
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.