1<!DOCTYPE html> 2<html lang="fi"> 3 <head> 4
4<script> 5 // Initialize the dataLayer array 6 window.dataLayer = window.dataLayer || []; 7 window.gtag = function() { dataLayer.push(arguments); } 8 window.gtag('consent', 'default', { 9 ad_storage: 'denied', 10 ad_user_data: 'denied', 11 ad_personalization: 'denied', 12 analytics_storage: 'denied', 13 functionality_storage: 'denied', 14 personalization_storage: 'denied', 15 security_storage: 'denied', 16 wait_for_update: 500 17 }); 18</script>
18 19 20 <!-- Google Tag Manager --> 21
21<script>
vendor: 377 bytes, lines 21-26
21 22 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 23 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 24 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 25 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 26 })(window,document,'script','dataLayer','
26GTM-5JW3JMX2
vendor: 10 bytes, lines 26-27
26'); 27
27</script>
27 28 <!-- End Google Tag Manager --> 29 <meta charset="utf-8"> 30 <!-- Title wordpress backendistä --> 31 <title>Viralliset ilmoitukset / Julkiset hankinnat </title> 32 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 33 34<!-- Head infoa wordpressistä --> 35 <meta name='robots' content='max-image-preview:large' /> 36<link rel='dns-prefetch' href='//ajax.googleapis.com' /> 37<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' /> 38<link rel='dns-prefetch' href='//fonts.googleapis.com' /> 39<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://julkisethankinnat.fi/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjulkisethankinnat.fi%2Fviralliset-ilmoitukset%2F" /> 40<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://julkisethankinnat.fi/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fjulkisethankinnat.fi%2Fviralliset-ilmoitukset%2F&format=xml" /> 41<style id="wp-img-auto-sizes-contain-inline-css"> 42img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px} 43/*# sourceURL=wp-img-auto-sizes-contain-inline-css */ 44</style> 45<style id="wp-emoji-styles-inline-css"> 46 47 img.wp-smiley, img.emoji { 48 display: inline !important; 49 border: none !important; 50 box-shadow: none !important; 51 height: 1em !important; 52 width: 1em !important; 53 margin: 0 0.07em !important; 54 vertical-align: -0.1em !important; 55 background: none !important; 56 padding: 0 !important; 57 } 58/*# sourceURL=wp-emoji-styles-inline-css */ 59</style> 60<style id="wp-block-library-inline-css"> 61: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;
61--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}} 62 63/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */ 64</style> 65<style id="classic-theme-styles-inline-css"> 66/*! This file is auto-generated */ 67.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} 68/*# sourceURL=/wp-includes/css/classic-themes.min.css */ 69</style> 70 71<style id="global-styles-inline-css"> 72: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--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,
720) 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%);--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: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--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%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}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{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}: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-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-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-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;}
72.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;} 73/*# sourceURL=global-styles-inline-css */ 74</style> 75 76<link rel='stylesheet' id='edita-user-management-css' href='https://julkisethankinnat.fi/app/plugins/edita-user-management/public/css/edita-user-management-public.1701166429.css' media='all' /> 77<link rel='stylesheet' id='lib_googlefonts-css' href='https://fonts.googleapis.com/css2?family=DM+Mono:wght@500&family=DM+Sans:opsz,[email protected],400;9..40,500;9..40,700&display=swap' media='all' /> 78<link rel='stylesheet' id='site-css' href='https://julkisethankinnat.fi/app/themes/credita-bootstrap/style.1744363761.css' media='all' />
79<script id="jquery-core-js" src="https://julkisethankinnat.fi/wp/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 79
79
80<script id="jquery-migrate-js" src="https://julkisethankinnat.fi/wp/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 80
80
81<script id="edita-user-management-js" src="https://julkisethankinnat.fi/app/plugins/edita-user-management/public/js/edita-user-management-public.1701166429.js"></script>
vendor: 1 bytes, line 81
81
82<script id="lib_jquery2-js" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
vendor: 1 bytes, line 82
82
83<script id="lib_bootstrap_base_js-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/bootstrap.1701166429.js"></script>
vendor: 1 bytes, line 83
83
84<script id="lib_bootbox_js-js" src="https://cdnjs.cloudflare.com/ajax/libs/bootbox.js/4.4.0/bootbox.min.js"></script>
vendor: 1 bytes, line 84
84
85<script id="consent_notices_js-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/consent-notices.1701166429.js"></script>
85 86<link rel="https://api.w.org/" href="https://julkisethankinnat.fi/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://julkisethankinnat.fi/wp-json/wp/v2/pages/883" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://julkisethankinnat.fi/wp/xmlrpc.php?rsd" /> 87<meta name="generator" content="WordPress 7.1.2" /> 88<link rel="canonical" href="https://julkisethankinnat.fi/viralliset-ilmoitukset/" /> 89<link rel='shortlink' href='https://julkisethankinnat.fi/?p=883' /> 90 <link rel="shortcut icon" href="https://julkisethankinnat.fi/app/themes/credita-bootstrap/favicon.ico" /> 91 92 </head> 93 94 <!--WORDPRESS SITE NAME--> 95 96 <body> 97 <!-- Google Tag Manager (noscript) -->
vendor: 78 bytes, lines 97-98
97 98 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
98GTM-5JW3JMX2
vendor: 100 bytes, lines 98-101
98" 99 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 100 101
101<!-- End Google Tag Manager (noscript) --> 102 <!-- Fixed navbar --> 103<nav id="main-nav" class="w"> 104 <div class="container"> 105 <div class="mobile-navi-toggle"><span class="icon-bar top-bar"></span><span class="icon-bar middle-bar"></span><span class="icon-bar bottom-bar"></span></div> 106 <div class="site-logo"><a href="https://julkisethankinnat.fi"><img src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/img/credita_logo_ow.png" alt="Credita"></a></div> 107 <div class="main-nav"><ul id="menu-primary-menu-not-logged" class="menu"><li id="menu-item-97" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-97"><a href="https://julkisethankinnat.fi/hankintailmoitukset/">Hankintailmoitukset</a></li> 108<li id="menu-item-887" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-883 current_page_item menu-item-887"><a href="https://julkisethankinnat.fi/viralliset-ilmoitukset/" aria-current="page">Viralliset ilmoitukset</a></li> 109<li id="menu-item-98" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-98"><a href="https://julkisethankinnat.fi/asiakaspalvelu/">Asiakaspalvelu</a></li> 110<li id="menu-item-1016" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1016"><a href="https://julkisethankinnat.fi/hankintatieto/">Hankintatieto</a></li> 111<li id="menu-item-100" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-100"><a href="https://julkisethankinnat.fi/tietoa-palvelusta/">Tietoa palvelusta</a></li> 112</ul></div> <div class="user_navi"> 113 <button type="button" class="i-l i-r i-login " id="btn_navi_login">Kirjaudu sisään</button> 114 115 <div class="user_login_container active"> 116 <div class="login-container"> 117 <form class="edita-login-form" action="#"> 118 <label class="helper">Kirjaudu sisään käyttämällä Credita-tunnuksiasi</label> 119 <div> 120 <input type="hidden" name="action" value="edita_login_form"> 121 <input type="hidden" name="return_page" value="https://julkisethankinnat.fi/forgot-password/"> 122 <input 123 type="text" 124 name="userName" 125 class="edita_username" 126 placeholder="Käyttäjätunnus" 127 /> 128 <input 129 type="password" 130 name="password" 131 class="edita_password password" 132 placeholder="Salasana" 133 /> 134 135 <div class="checkbox-input"> 136 <label><input class="show-password" type="checkbox" onclick="show_password();" /><i></i><span>Näytä salasana</span></label> 137 </div> 138 139 <div class="checkbox-input"> 140 <label><input class="remember_me" type="checkbox" /><i></i><span>Muista minut</span></label> 141 </div> 142 <div class="edita_login_error helper"></div> 143 <div class="align-c"> 144 <button type="submit" class="outline i-r i-login2">Kirjaudu sisään</button><br /> 145 <a href="https://julkisethankinnat.fi/forgot-password/">Unohditko salasanasi?</a> 146 </div> 147 </div> 148 </form> 149 <div class="new-user-container"> 150 <label class="helper">Ei Credita-tunnusta?</label> 151 <a href="/tilaaminen" class="icon arrow-right">Luo uusi tunnus</a> 152 </div> 153 </div> 154 </div> 155 </div> 156 </div><!-- /container --> 157</nav><div class="clearfix"></div> 158<div class="container"> 159 <div class="big-login-container login-container"> 160 <h1>Tämä sivu edellyttää palvelun 161 tilausta.</h1> 162 163 <div class="login-form"> 164 <div class="login-container"> 165 <form class="edita-login-form" action="#"> 166 <label class="helper">Kirjaudu sisään käyttämällä Credita-tunnuksiasi</label> 167 <div> 168 <input type="hidden" name="action" value="edita_login_form"> 169 <input type="hidden" name="return_page" value="https://julkisethankinnat.fi/forgot-password/"> 170 <input 171 type="text" 172 name="userName" 173 class="edita_username" 174 placeholder="Käyttäjätunnus" 175 /> 176 <input 177 type="password" 178 name="password" 179 class="edita_password password" 180 placeholder="Salasana" 181 /> 182 183 <div class="checkbox-input"> 184 <label><input class="show-password" type="checkbox" onclick="show_password();" /><i></i><span>Näytä salasana</span></label> 185 </div> 186 187 <div class="checkbox-input"> 188 <label>
188<input class="remember_me" type="checkbox" /><i></i><span>Muista minut</span></label> 189 </div> 190 <div class="edita_login_error helper"></div> 191 <div class="align-c"> 192 <button type="submit" class="outline i-r i-login2">Kirjaudu sisään</button><br /> 193 <a href="https://julkisethankinnat.fi/forgot-password/">Unohditko salasanasi?</a> 194 </div> 195 </div> 196 </form> 197 <div class="new-user-container"> 198 <label class="helper">Ei Credita-tunnusta?</label> 199 <a href="/tilaaminen" class="icon arrow-right">Luo uusi tunnus</a> 200 </div> 201 </div> 202 </div> 203 </div> 204</div> 205<footer> 206 207 <div class="container"> 208 209 <div class="row dp"> 210 <div class="col-1-4"> 211 <h5>Asiakaspalvelu</h5> 212 <p>Palvelemme arkisin klo 8.45â15.</p> 213 <a href="tel:+358800141070" class="tel">+358 800 141 070</a><br /> 214 <a href="mailto:[email protected]" class="email">[email protected]</a> 215 216 </div> 217 <div class="col-1-4 footer-sub-menu"> 218 <div><div class="menu-visitor-menu-container"><ul id="menu-visitor-menu" class="menu"><li id="menu-item-76" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76"><a href="https://julkisethankinnat.fi/hankintailmoitukset/">Hankintailmoitukset</a></li> 219<li id="menu-item-890" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-883 current_page_item menu-item-890"><a href="https://julkisethankinnat.fi/viralliset-ilmoitukset/" aria-current="page">Viralliset ilmoitukset</a></li> 220<li id="menu-item-1017" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1017"><a href="https://julkisethankinnat.fi/hankintatieto/">Hankintatieto</a></li> 221<li id="menu-item-22" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-22"><a href="https://julkisethankinnat.fi/asiakaspalvelu/">Asiakaspalvelu</a></li> 222<li id="menu-item-25" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-25"><a href="https://julkisethankinnat.fi/tilaaminen/">Tilaaminen</a></li> 223<li id="menu-item-24" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-24"><a href="https://julkisethankinnat.fi/tietoa-palvelusta/">Tietoa palvelusta</a></li> 224</ul></div></div> </div> 225 226 <div class="col-1-4"> 227 <h5>Tutustu muihin palveluihimme</h5> 228 <a href="https://edilex.fi" target="_blank" class="outside">edilex.fi</a><br /> 229 <a href="https://tyoelamanlait.fi" target="_blank" class="outside">työelämänlait.fi</a><br /> 230 <a href="https://elintarvikelait.fi" target="_blank" class="outside">elintarvikelait.fi</a><br /> 231 </div> 232 <div class="col-1-4"> 233 <h5>Yhteistyössä</h5> 234 <a href="https://www.eversheds-sutherland.com/global/en/where/europe/finland/-fi/index.html" target="_blank"><img alt="Eversheds Sutherland" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/img/eversheds_sutherland.png" id="everheds"></a> 235 </div> 236 </div><!-- /row--> 237 238 <div class="footer-bottom-menu-container"> 239 <nav class="footer-nav"><ul id="menu-footer-bottom-menu" class="menu"><li id="menu-item-1817" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-1817"><a target="_blank" href="https://store.almainsights.fi/">store.almainsights.fi</a></li> 240<li id="menu-item-465" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-465"><a target="_blank" href="https://www.almamedia.fi/tietosuoja/">Tietosuojaseloste</a></li> 241<li id="menu-item-466" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-466"><a target="_blank" href="https://store.almainsights.fi/toimitus-ja-kayttoehdot/">Käyttöehdot</a></li> 242<li id="menu-item-468" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-468"><a target="_blank" href="/app/uploads/2026/06/Credita_hinnasto_1.9.2024-alkaen_Alma-Media-Finland-Oy.pdf">Hinnasto</a></li> 243</ul></nav> </div> 244 </div><!-- /container--> 245 246
246<script type="speculationrules"> 247{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp/wp-*.php","/wp/wp-admin/*","/app/uploads/*","/app/*","/app/plugins/*","/app/themes/credita-bootstrap/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]} 248</script>
vendor: 1 bytes, line 248
248
249<script id="hankintatieto-script-js-extra"> 250var credita_hankintatieto_email = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 251//# sourceURL=hankintatieto-script-js-extra 252</script>
vendor: 1 bytes, line 252
252
253<script id="hankintatieto-script-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/hankintatieto.1701166429.js"></script>
vendor: 1 bytes, line 253
253
254<script id="credita-filters-script-js-extra"> 255var credita_search = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 256//# sourceURL=credita-filters-script-js-extra 257</script>
vendor: 1 bytes, line 257
257
258<script id="credita-filters-script-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/credita-filter.1731059456.js"></script>
vendor: 1 bytes, line 258
258
259<script id="credita-wishlist-script-js-extra"> 260var credita_search = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 261//# sourceURL=credita-wishlist-script-js-extra 262</script>
vendor: 1 bytes, line 262
262
263<script id="credita-wishlist-script-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/credita-wishlist.1701166429.js"></script>
vendor: 1 bytes, line 263
263
264<script id="credita-url-search-params-polyfill-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/url-search-params.1701166429.js"></script>
vendor: 1 bytes, line 264
264
265<script id="credita-array-includes-polyfill-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/includes-polyfill.1701166429.js"></script>
vendor: 1 bytes, line 265
265
266<script id="credita-url-polyfill-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/url-polyfill.1701166429.js"></script>
vendor: 1 bytes, line 266
266
267<script id="credita-search-script-js-extra"> 268var credita_search = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 269//# sourceURL=credita-search-script-js-extra 270</script>
vendor: 1 bytes, line 270
270
271<script id="credita-search-script-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/credita-search.1701166429.js"></script>
vendor: 1 bytes, line 271
271
272<script id="single-official-notice-js-extra"> 273var credita_search = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 274//# sourceURL=single-official-notice-js-extra 275</script>
vendor: 1 bytes, line 275
275
276<script id="single-official-notice-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/single-official-notice.1701166429.js"></script>
vendor: 1 bytes, line 276
276
277<script id="credita-hankinta-js" src="https://julkisethankinnat.fi/app/plugins/credita-search/includes/js/hankintatieto.1701166429.js"></script>
vendor: 1 bytes, line 277
277
278<script id="edita-user-api-script-js-extra"> 279var edita_api = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 280var edita_api = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 281//# sourceURL=edita-user-api-script-js-extra 282</script>
vendor: 1 bytes, line 282
282
283<script id="edita-user-api-script-js" src="https://julkisethankinnat.fi/app/plugins/edita-user-management/public/../public/js/edita-user-api.1780563744.js"></script>
vendor: 1 bytes, line 283
283
284<script id="edita-orders-script-js-extra"> 285var edita_api = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 286//# sourceURL=edita-orders-script-js-extra 287</script>
vendor: 1 bytes, line 287
287
288<script id="edita-orders-script-js" src="https://julkisethankinnat.fi/app/plugins/edita-user-management/public/../public/js/edita-orders.1780563744.js"></script>
vendor: 1 bytes, line 288
288
289<script id="edita-login-script-js-extra"> 290var edita_api = {"ajax_url":"https://julkisethankinnat.fi/wp/wp-admin/admin-ajax.php"}; 291//# sourceURL=edita-login-script-js-extra 292</script>
vendor: 1 bytes, line 292
292
293<script id="edita-login-script-js" src="https://julkisethankinnat.fi/app/plugins/edita-user-management/public/../public/js/edita-login.1701166429.js"></script>
vendor: 1 bytes, line 293
293
294<script id="owl-carousel-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/owl.carousel.1701166429.min.js"></script>
vendor: 1 bytes, line 294
294
295<script id="main-js-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/main.1731059456.js"></script>
vendor: 1 bytes, line 295
295
296<script id="xiong-order-js-extra"> 297var CREDITA_URLS = {"home":"https://julkisethankinnat.fi"}; 298//# sourceURL=xiong-order-js-extra 299</script>
vendor: 1 bytes, line 299
299
300<script id="xiong-order-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/xiong-order.1701166429.js"></script>
vendor: 1 bytes, line 300
300
301<script id="xiong-order-calculation-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/xiong-order-calculation.1725194063.js"></script>
vendor: 1 bytes, line 301
301
302<script id="xiong-animations-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/xiong-animations.1701166429.js"></script>
vendor: 1 bytes, line 302
302
303<script id="xiong-share-js" src="https://julkisethankinnat.fi/app/themes/credita-bootstrap/js/xiong-share.1701166429.js"></script>
vendor: 1 bytes, line 303
303
304<script id="wp-emoji-settings" type="application/json"> 305{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://julkisethankinnat.fi/wp/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}} 306</script>
vendor: 1 bytes, line 306
306
307<script type="module"> 308/*! This file is auto-generated */ 309var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))}); 310//# sourceURL=https://julkisethankinnat.fi/wp/wp-includes/js/wp-emoji-loader.min.js 311</script>
311 312 313</footer> 314<footer id="alma-footer" style="background-color:#333;padding:0;"> 315 <div class="container"> 316 <!-- ALMA CR WIDGET: --> 317<div 318 class="ALMACR-container" 319 id="ALMACR-container-ALMACR-widget-5577db28b922930e04000019" 320 data-almacr-widget-template-version="2.0.0" 321 data-almacr-widget-id="5577db28b922930e04000019" 322 data-almacr-widget-publisher-id="5577db0eb922930e0800001d" 323> 324 <article lang="fi" class="ALMACR-widget" id="ALMACR-widget-5577db28b922930e04000019"> 325 <almamedia-footer></almamedia-footer> 326
326<script> 327 (function footerIIFE() { 328 try { 329 /*! @almamedia/footer 2 */ 330var Pt=Object.defineProperty,Nt=Object.defineProperties;var $t=Object.getOwnPropertyDescriptors;var Et=Object.getOwnPropertySymbols;var St=Object.prototype.hasOwnProperty,Mt=Object.prototype.propertyIsEnumerable;var At=(L,U,R)=>U in L?Pt(L,U,{enumerable:!0,configurable:!0,writable:!0,value:R}):L[U]=R,gt=(L,U)=>{for(var R in U||(U={}))St.call(U,R)&&At(L,R,U[R]);if(Et)for(var R of Et(U))Mt.call(U,R)&&At(L,R,U[R]);return L},xt=(L,U)=>Nt(L,$t(U));var Tt=(L,U)=>{var R={};for(var K in L)St.call(L,K)&&U.indexOf(K)<0&&(R[K]=L[K]);if(L!=null&&Et)for(var K of Et(L))U.indexOf(K)<0&&Mt.call(L,K)&&(R[K]=L[K]);return R};var Ct=(L,U,R)=>At(L,typeof U!="symbol"?U+"":U,R);var n,l$2,u$3,i$2,r$2,o$1,e$1,f$2,c$2,s$2,a$2,h$1,p$2={},v$1=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,d$1=Array.isArray;function w$1(L,U){for(var R in U)L[R]=U[R];return L}function _(L){L&&L.parentNode&&L.parentNode.removeChild(L)}function g(L,U,R){var K,W,X,Y={};for(X in U)X=="key"?K=U[X]:X=="ref"?W=U[X]:Y[X]=U[X];if(arguments.length>2&&(Y.children=arguments.length>3?n.call(arguments,2):R),typeof L=="function"&&L.defaultProps!=null)for(X in L.defaultProps)Y[X]===void 0&&(Y[X]=L.defaultProps[X]);return m$1(L,Y,K,W,null)}function m$1(L,U,R,K,W){var X={type:L,props:U,key:R,ref:K,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:W==null?++u$3:W,__i:-1,__u:0};return W==null&&l$2.vnode!=null&&l$2.vnode(X),X}function k$1(L){return L.children}function x$1(L,U){this.props=L,this.context=U}function C(L,U){if(U==null)return L.__?C(L.__,L.__i+1):null;for(var R;U<L.__k.length;U++)if((R=L.__k[U])!=null&&R.__e!=null)return R.__e;return typeof L.type=="function"?C(L):null}function S(L){var U,R;if((L=L.__)!=null&&L.__c!=null){for(L.__e=L.__c.base=null,U=0;U<L.__k.length;U++)if((R=L.__k[U])!=null&&R.__e!=null){L.__e=L.__c.base=R.__e;break}return S(L)}}function M(L){(!L.__d&&(L.__d=!0)&&i$2.push(L)&&!P.__r++||r$2!==l$2.debounceRendering)&&((r$2=l$2.debounceRendering)||o$1)(P)}function P(){var L,U,R,K,W,X,Y,tt;for(i$2.sort(e$1);L=i$2.shift();)L.__d&&(U=i$2.length,K=void 0,X=(W=(R=L).__v).__e,Y=[],tt=[],R.__P&&((K=w$1({},W)).__v=W.__v+1,l$2.vnode&&l$2.vnode(K),j$1(R.__P,K,W,R.__n,R.__P.namespaceURI,32&W.__u?[X]:null,Y,X==null?C(W):X,!!(32&W.__u),tt),K.__v=W.__v,K.__.__k[K.__i]=K,z$1(Y,K,tt),K.__e!=X&&S(K)),i$2.length>U&&i$2.sort(e$1));P.__r=0}function $(L,U,R,K,W,X,Y,tt,et,st,ut){var Q,pt,ct,dt,yt,vt,ht=K&&K.__k||v$1,ft=U.length;for(et=I(R,U,ht,et),Q=0;Q<ft;Q++)(ct=R.__k[Q])!=null&&(pt=ct.__i===-1?p$2:ht[ct.__i]||p$2,ct.__i=Q,vt=j$1(L,ct,pt,W,X,Y,tt,et,st,ut),dt=ct.__e,ct.ref&&pt.ref!=ct.ref&&(pt.ref&&V(pt.ref,null,ct),ut.push(ct.ref,ct.__c||dt,ct)),yt==null&&dt!=null&&(yt=dt),4&ct.__u||pt.__k===ct.__k?et=H(ct,et,L):typeof ct.type=="function"&&vt!==void 0?et=vt:dt&&(et=dt.nextSibling),ct.__u&=-7);return R.__e=yt,et}function I(L,U,R,K){var W,X,Y,tt,et,st=U.length,ut=R.length,Q=ut,pt=0;for(L.__k=[],W=0;W<st;W++)(X=U[W])!=null&&typeof X!="boolean"&&typeof X!="function"?(tt=W+pt,(X=L.__k[W]=typeof X=="string"||typeof X=="number"||typeof X=="bigint"||X.constructor==String?m$1(null,X,null,null,null):d$1(X)?m$1(k$1,{children:X},null,null,null):X.constructor===void 0&&X.__b>0?m$1(X.type,X.props,X.key,X.ref?X.ref:null,X.__v):X).__=L,X.__b=L.__b+1,Y=null,(et=X.__i=T(X,R,tt,Q))!==-1&&(Q--,(Y=R[et])&&(Y.__u|=2)),Y==null||Y.__v===null?(et==-1&&pt--,typeof X.type!="function"&&(X.__u|=4)):et!==tt&&(et==tt-1?pt--:et==tt+1?pt++:(et>tt?pt--:pt++,X.__u|=4))):X=L.__k[W]=null;if(Q)for(W=0;W<ut;W++)(Y=R[W])!=null&&!(2&Y.__u)&&(Y.__e==K&&(K=C(Y)),q(Y,Y));return K}function H(L,U,R){var K,W;if(typeof L.type=="function"){for(K=L.__k,W=0;K&&W<K.length;W++)K[W]&&(K[W].__=L,U=H(K[W],U,R));return U}L.__e!=U&&(U&&L.type&&!R.contains(U)&&(U=C(L)),R.insertBefore(L.__e,U||null),U=L.__e);do U=U&&U.nextSibling;while(U!=null&&U.nodeType===8);return U}function T(L,U,R,K){var W=L.key,X=L.type,Y=R-1,tt=R+1,et=U[R];if(et===null||et&&W==et.key&&X===et.type&&!(2&et.__u))return R;if((typeof X!="function"||X===k$1||W)&&K>(et!=null&&!(2&et.__u)?1:0))for(;Y>=0||tt<U.length;){if(Y>=0){if((et=U[Y])&&!(2&et.__u)&&W==et.key&&X===et.type)return Y;Y--}if(tt<U.length){if((et=U[tt])&&!(2&et.__u)&&W==et.key&&X===et.type)return tt;tt++}}return-1}function A(L,U,R){U[0]==="-"?L.setProperty(U,R==null?"":R):L[U]=R==null?"":typeof R!="number"||y.test(U)?R:R+"px"}function F(L,U,R,K,W){var X;
330t:if(U==="style")if(typeof R=="string")L.style.cssText=R;else{if(typeof K=="string"&&(L.style.cssText=K=""),K)for(U in K)R&&U in R||A(L.style,U,"");if(R)for(U in R)K&&R[U]===K[U]||A(L.style,U,R[U])}else if(U[0]==="o"&&U[1]==="n")X=U!==(U=U.replace(f$2,"$1")),U=U.toLowerCase()in L||U==="onFocusOut"||U==="onFocusIn"?U.toLowerCase().slice(2):U.slice(2),L.l||(L.l={}),L.l[U+X]=R,R?K?R.u=K.u:(R.u=c$2,L.addEventListener(U,X?a$2:s$2,X)):L.removeEventListener(U,X?a$2:s$2,X);else{if(W=="http://www.w3.org/2000/svg")U=U.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(U!="width"&&U!="height"&&U!="href"&&U!="list"&&U!="form"&&U!="tabIndex"&&U!="download"&&U!="rowSpan"&&U!="colSpan"&&U!="role"&&U!="popover"&&U in L)try{L[U]=R==null?"":R;break t}catch(Y){}typeof R=="function"||(R==null||R===!1&&U[4]!=="-"?L.removeAttribute(U):L.setAttribute(U,U=="popover"&&R==1?"":R))}}function O(L){return function(U){if(this.l){var R=this.l[U.type+L];if(U.t==null)U.t=c$2++;else if(U.t<R.u)return;return R(l$2.event?l$2.event(U):U)}}}function j$1(L,U,R,K,W,X,Y,tt,et,st){var ut,Q,pt,ct,dt,yt,vt,ht,ft,jt,bt,Z,lt,it,_t,mt,kt,wt=U.type;if(U.constructor!==void 0)return null;128&R.__u&&(et=!!(32&R.__u),X=[tt=U.__e=R.__e]),(ut=l$2.__b)&&ut(U);t:if(typeof wt=="function")try{if(ht=U.props,ft="prototype"in wt&&wt.prototype.render,jt=(ut=wt.contextType)&&K[ut.__c],bt=ut?jt?jt.props.value:ut.__:K,R.__c?vt=(Q=U.__c=R.__c).__=Q.__E:(ft?U.__c=Q=new wt(ht,bt):(U.__c=Q=new x$1(ht,bt),Q.constructor=wt,Q.render=B$1),jt&&jt.sub(Q),Q.props=ht,Q.state||(Q.state={}),Q.context=bt,Q.__n=K,pt=Q.__d=!0,Q.__h=[],Q._sb=[]),ft&&Q.__s==null&&(Q.__s=Q.state),ft&&wt.getDerivedStateFromProps!=null&&(Q.__s==Q.state&&(Q.__s=w$1({},Q.__s)),w$1(Q.__s,wt.getDerivedStateFromProps(ht,Q.__s))),ct=Q.props,dt=Q.state,Q.__v=U,pt)ft&&wt.getDerivedStateFromProps==null&&Q.componentWillMount!=null&&Q.componentWillMount(),ft&&Q.componentDidMount!=null&&Q.__h.push(Q.componentDidMount);else{if(ft&&wt.getDerivedStateFromProps==null&&ht!==ct&&Q.componentWillReceiveProps!=null&&Q.componentWillReceiveProps(ht,bt),!Q.__e&&(Q.shouldComponentUpdate!=null&&Q.shouldComponentUpdate(ht,Q.__s,bt)===!1||U.__v===R.__v)){for(U.__v!==R.__v&&(Q.props=ht,Q.state=Q.__s,Q.__d=!1),U.__e=R.__e,U.__k=R.__k,U.__k.some(function(nt){nt&&(nt.__=U)}),Z=0;Z<Q._sb.length;Z++)Q.__h.push(Q._sb[Z]);Q._sb=[],Q.__h.length&&Y.push(Q);break t}Q.componentWillUpdate!=null&&Q.componentWillUpdate(ht,Q.__s,bt),ft&&Q.componentDidUpdate!=null&&Q.__h.push(function(){Q.componentDidUpdate(ct,dt,yt)})}if(Q.context=bt,Q.props=ht,Q.__P=L,Q.__e=!1,lt=l$2.__r,it=0,ft){for(Q.state=Q.__s,Q.__d=!1,lt&<(U),ut=Q.render(Q.props,Q.state,Q.context),_t=0;_t<Q._sb.length;_t++)Q.__h.push(Q._sb[_t]);Q._sb=[]}else do Q.__d=!1,lt&<(U),ut=Q.render(Q.props,Q.state,Q.context),Q.state=Q.__s;while(Q.__d&&++it<25);Q.state=Q.__s,Q.getChildContext!=null&&(K=w$1(w$1({},K),Q.getChildContext())),ft&&!pt&&Q.getSnapshotBeforeUpdate!=null&&(yt=Q.getSnapshotBeforeUpdate(ct,dt)),tt=$(L,d$1(mt=ut!=null&&ut.type===k$1&&ut.key==null?ut.props.children:ut)?mt:[mt],U,R,K,W,X,Y,tt,et,st),Q.base=U.__e,U.__u&=-161,Q.__h.length&&Y.push(Q),vt&&(Q.__E=Q.__=null)}catch(nt){if(U.__v=null,et||X!=null)if(nt.then){for(U.__u|=et?160:128;tt&&tt.nodeType===8&&tt.nextSibling;)tt=tt.nextSibling;X[X.indexOf(tt)]=null,U.__e=tt}else for(kt=X.length;kt--;)_(X[kt]);else U.__e=R.__e,U.__k=R.__k;l$2.__e(nt,U,R)}else X==null&&U.__v===R.__v?(U.__k=R.__k,U.__e=R.__e):tt=U.__e=N(R.__e,U,R,K,W,X,Y,et,st);return(ut=l$2.diffed)&&ut(U),128&U.__u?void 0:tt}function z$1(L,U,R){for(var K=0;K<R.length;K++)V(R[K],R[++K],R[++K]);l$2.__c&&l$2.__c(U,L),L.some(function(W){try{L=W.__h,W.__h=[],L.some(function(X){X.call(W)})}catch(X){l$2.__e(X,W.__v)}})}function N(L,U,R,K,W,X,Y,tt,et){var st,ut,Q,pt,ct,dt,yt,vt=R.props,ht=U.props,ft=U.type;if(ft==="svg"?W="http://www.w3.org/2000/svg":ft==="math"?W="http://www.w3.org/1998/Math/MathML":W||(W="http://www.w3.org/1999/xhtml"),X!=null){for(st=0;st<X.length;st++)if((ct=X[st])&&"setAttribute"in ct==!!ft&&(ft?ct.localName===ft:ct.nodeType===3)){L=ct,X[st]=null;break}}if(L==null){if(ft===null)return document.createTextNode(ht);L=document.createElementNS(W,ft,ht.is&&ht),tt&&(l$2.__m&&l$2.__m(U,X),tt=!1),X=null}if(ft===null)vt===ht||tt&&L.data===ht||(L.data=ht);else{if(X=X&&n.call(L.childNodes),vt=R.props||p$2,!tt&&X!=null)for(vt={},st=0;st<L.attributes.length;st++)vt[(ct=L.attributes[st]).name]=ct.value;for(st in vt)if(ct=vt[st],st!="children"){if(st=="dangerouslySetInnerHTML")Q=ct;else if(!(st in ht)){if(st=="value"&&"defaultValue"in ht||st=="checked"&&"defaultChecked"in ht)continue;F(L,st,null,ct,W)}}for(st in ht)ct=ht[st],st=="children"?pt=ct:st=="dangerouslySetInnerHTML"?ut=ct:st=="value"?dt=ct:st=="checked"?yt=ct:tt&&typeof ct!="function"||vt[
330st]===ct||F(L,st,ct,vt[st],W);if(ut)tt||Q&&(ut.__html===Q.__html||ut.__html===L.innerHTML)||(L.innerHTML=ut.__html),U.__k=[];else if(Q&&(L.innerHTML=""),$(L,d$1(pt)?pt:[pt],U,R,K,ft==="foreignObject"?"http://www.w3.org/1999/xhtml":W,X,Y,X?X[0]:R.__k&&C(R,0),tt,et),X!=null)for(st=X.length;st--;)_(X[st]);tt||(st="value",ft==="progress"&&dt==null?L.removeAttribute("value"):dt!==void 0&&(dt!==L[st]||ft==="progress"&&!dt||ft==="option"&&dt!==vt[st])&&F(L,st,dt,vt[st],W),st="checked",yt!==void 0&&yt!==L[st]&&F(L,st,yt,vt[st],W))}return L}function V(L,U,R){try{if(typeof L=="function"){var K=typeof L.__u=="function";K&&L.__u(),K&&U==null||(L.__u=L(U))}else L.current=U}catch(W){l$2.__e(W,R)}}function q(L,U,R){var K,W;if(l$2.unmount&&l$2.unmount(L),(K=L.ref)&&(K.current&&K.current!==L.__e||V(K,null,U)),(K=L.__c)!=null){if(K.componentWillUnmount)try{K.componentWillUnmount()}catch(X){l$2.__e(X,U)}K.base=K.__P=null}if(K=L.__k)for(W=0;W<K.length;W++)K[W]&&q(K[W],U,R||typeof L.type!="function");R||_(L.__e),L.__c=L.__=L.__e=void 0}function B$1(L,U,R){return this.constructor(L,R)}function D$1(L,U,R){var K,W,X,Y;U===document&&(U=document.documentElement),l$2.__&&l$2.__(L,U),W=(K=typeof R=="function")?null:R&&R.__k||U.__k,X=[],Y=[],j$1(U,L=(!K&&R||U).__k=g(k$1,null,[L]),W||p$2,p$2,U.namespaceURI,!K&&R?[R]:W?null:U.firstChild?n.call(U.childNodes):null,X,!K&&R?R:W?W.__e:U.firstChild,K,Y),z$1(X,L,Y)}function E(L,U){D$1(L,U,E)}function G(L,U,R){var K,W,X,Y,tt=w$1({},L.props);for(X in L.type&&L.type.defaultProps&&(Y=L.type.defaultProps),U)X=="key"?K=U[X]:X=="ref"?W=U[X]:tt[X]=U[X]===void 0&&Y!==void 0?Y[X]:U[X];return arguments.length>2&&(tt.children=arguments.length>3?n.call(arguments,2):R),m$1(L.type,tt,K||L.key,W||L.ref,null)}function J(L,U){var R={__c:U="__cC"+h$1++,__:L,Consumer:function(K,W){return K.children(W)},Provider:function(K){var W,X;return this.getChildContext||(W=new Set,(X={})[U]=this,this.getChildContext=function(){return X},this.componentWillUnmount=function(){W=null},this.shouldComponentUpdate=function(Y){this.props.value!==Y.value&&W.forEach(function(tt){tt.__e=!0,M(tt)})},this.sub=function(Y){W.add(Y);var tt=Y.componentWillUnmount;Y.componentWillUnmount=function(){W&&W.delete(Y),tt&&tt.call(Y)}}),K.children}};return R.Provider.__=R.Consumer.contextType=R}n=v$1.slice,l$2={__e:function(L,U,R,K){for(var W,X,Y;U=U.__;)if((W=U.__c)&&!W.__)try{if((X=W.constructor)&&X.getDerivedStateFromError!=null&&(W.setState(X.getDerivedStateFromError(L)),Y=W.__d),W.componentDidCatch!=null&&(W.componentDidCatch(L,K||{}),Y=W.__d),Y)return W.__E=W}catch(tt){L=tt}throw L}},u$3=0,x$1.prototype.setState=function(L,U){var R;R=this.__s!=null&&this.__s!==this.state?this.__s:this.__s=w$1({},this.state),typeof L=="function"&&(L=L(w$1({},R),this.props)),L&&w$1(R,L),L!=null&&this.__v&&(U&&this._sb.push(U),M(this))},x$1.prototype.forceUpdate=function(L){this.__v&&(this.__e=!0,L&&this.__h.push(L),M(this))},x$1.prototype.render=k$1,i$2=[],o$1=typeof Promise=="function"?Promise.prototype.then.bind(Prom
330ise.resolve()):setTimeout,e$1=function(L,U){return L.__v.__b-U.__v.__b},P.__r=0,f$2=/(PointerCapture)$|Capture$/i,c$2=0,s$2=O(!1),a$2=O(!0),h$1=0;var f$1=0;function u$2(L,U,R,K,W,X){U||(U={});var Y,tt,et=U;"ref"in U&&(Y=U.ref,delete U.ref);var st={type:L,props:et,key:R,ref:Y,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f$1,__i:-1,__u:0,__source:W,__self:X};if(typeof L=="function"&&(Y=L.defaultProps))for(tt in Y)et[tt]===void 0&&(et[tt]=Y[tt]);return l$2.vnode&&l$2.vnode(st),st}var t,r$1,u$1,i$1,o=0,f=[],c$1=l$2,e=c$1.__b,a$1=c$1.__r,v=c$1.diffed,l$1=c$1.__c,m=c$1.unmount,s$1=c$1.__;function d(L,U){c$1.__h&&c$1.__h(r$1,L,o||U),o=0;var R=r$1.__H||(r$1.__H={__:[],__h:[]});return L>=R.__.length&&R.__.push({}),R.__[L]}function h(L){return o=1,p$1(D,L)}function p$1(L,U,R){var K=d(t++,2);if(K.t=L,!K.__c&&(K.__=[D(void 0,U),function(tt){var et=K.__N?K.__N[0]:K.__[0],st=K.t(et,tt);et!==st&&(K.__N=[st,K.__[1]],K.__c.setState({}))}],K.__c=r$1,!r$1.u)){var W=function(tt,et,st){if(!K.__c.__H)return!0;var ut=K.__c.__H.__.filter(function(pt){return!!pt.__c});if(ut.every(function(pt){return!pt.__N}))return!X||X.call(this,tt,et,st);var Q=K.__c.props!==tt;return ut.forEach(function(pt){if(pt.__N){var ct=pt.__[0];pt.__=pt.__N,pt.__N=void 0,ct!==pt.__[0]&&(Q=!0)}}),X&&X.call(this,tt,et,st)||Q};r$1.u=!0;var X=r$1.shouldComponentUpdate,Y=r$1.componentWillUpdate;r$1.componentWillUpdate=function(tt,et,st){if(this.__e){var ut=X;X=void 0,W(tt,et,st),X=ut}Y&&Y.call(this,tt,et,st)},r$1.shouldComponentUpdate=W}return K.__N||K.__}function x(L){var U=r$1.context[L.__c],R=d(t++,9);return R.c=L,U?(R.__==null&&(R.__=!0,U.sub(r$1)),U.props.value):L.__}function b(L){var U=d(t++,10),R=h();return U.__=L,r$1.componentDidCatch||(r$1.componentDidCatch=function(K,W){U.__&&U.__(K,W),R[1](K)}),[R[0],function(){R[1](void 0)}]}function j(){for(var L;L=f.shift();)if(L.__P&&L.__H)try{L.__H.__h.forEach(z),L.__H.__h.forEach(B),L.__H.__h=[]}catch(U){L.__H.__h=[],c$1.__e(U,L.__v)}}c$1.__b=function(L){r$1=null,e&&e(L)},c$1.__=function(L,U){L&&U.__k&&U.__k.__m&&(L.__m=U.__k.__m),s$1&&s$1(L,U)},c$1.__r=function(L){a$1&&a$1(L),t=0;var U=(r$1=L.__c).__H;U&&(u$1===r$1?(U.__h=[],r$1.__h=[],U.__.forEach(function(R){R.__N&&(R.__=R.__N),R.i=R.__N=void 0})):(U.__h.forEach(z),U.__h.forEach(B),U.__h=[],t=0)),u$1=r$1},c$1.diffed=function(L){v&&v(L);var U=L.__c;U&&U.__H&&(U.__H.__h.length&&(f.push(U)!==1&&i$1===c$1.requestAnimationFrame||((i$1=c$1.requestAnimationFrame)||w)(j)),U.__H.__.forEach(function(R){R.i&&(R.__H=R.i),R.i=void 0})),u$1=r$1=null},c$1.__c=function(L,U){U.some(function(R){try{R.__h.forEach(z),R.__h=R.__h.filter(function(K){return!K.__||B(K)})}catch(K){U.some(function(W){W.__h&&(W.__h=[])}),U=[],c$1.__e(K,R.__v)}}),l$1&&l$1(L,U)},c$1.unmount=function(L){m&&m(L);var U,R=L.__c;R&&R.__H&&(R.__H.__.forEach(function(K){try{z(K)}catch(W){U=W}}),R.__H=void 0,U&&c$1.__e(U,R.__v))};var k=typeof requestAnimationFrame=="function";function w(L){var U,R=function(){clearTimeout(K),k&&cancelAnimationFrame(U),setTimeout(L)},K=setTimeout(R,100);k&&(U=requestAnimationFrame(R))}function z(L){var U=r$1,R=L.__c;typeof R=="function"&&(L.__c=void 0,R()),r$1=U}function B(L){var U=r$1;L.__c=L.__(),r$1=U}function D(L,U){return typeof U=="function"?U(L):U}const LangContext=J("fi"),LangContextProvider=LangContext.Provider,RootContext=J(null),RootContextProvider=RootContext.Provider,useRootHook=()=>x(RootContext);var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(L){return L&&L.__esModule&&Object.prototype.hasOwnProperty.call(L,"default")?L.default:L}var md5={exports:{}};(function(L){(function(U){function R(Z,lt){var it=(Z&65535)+(lt&65535),_t=(Z>>16)+(lt>>16)+(it>>16);return _t<<16|it&65535}function K(Z,lt){return Z<<lt|Z>>>32-lt}function W(Z,lt,it,_t,mt,kt){return R(K(R(R(lt,Z),R(_t,kt)),mt),it)}function X(Z,lt,it,_t,mt,kt,wt){return W(lt&it|~lt&_t,Z,lt,mt,kt,wt)}function Y(Z,lt,it,_t,mt,kt,wt){return W(lt&_t|it&~_t,Z,lt,mt,kt,wt)}function tt(Z,lt,it,_t,mt,kt,wt){return W(lt^it^_t,Z,lt,mt,kt,wt)}function et(Z,lt,it,_t,mt,kt,wt){return W(it^(lt|~_t),Z,lt,mt,kt,wt)}function st(Z,lt){Z[lt>>5]|=128<<lt%32,Z[(lt+64>>>9<<4)+14]=lt;var it,_t,mt,kt,wt,nt=1732584193,rt=-271733879,at=-1732584194,ot=271733878;for(it=0;it<Z.length;it+=16)_t=nt,mt=rt,kt=at,wt=ot,nt=X(nt,rt,at,ot,Z[it],7,-680876936),ot=X(ot,nt,rt,at,Z[it+1],12,-389564586),at=X(at,ot,nt,rt,Z[it+2],17,606105819),rt=X(rt,at,ot,nt,Z[it+3],22,-1044525330),nt=X(nt,rt,at,ot,Z[it+4],7,-176418897),ot=X(ot,nt,rt,at,Z[it+5],12,1200080426),at=X(at,ot,nt,rt,Z[it+6],17,-1473231341),rt=X(rt,at,ot,nt,Z[it+7],22,-45705983),nt=X(nt,rt,at,ot,Z[it+8],7,1770035416),ot=X(ot,nt,rt,at,Z[it+9],12,-1958414417),at=X(at,ot,nt,rt,Z[it+10],17,-42063),rt=X(rt,at,ot,nt,Z[it+11],22,-1990404162),nt=X(nt,rt,at,ot,Z[it+12],7,1804603682),ot=X(ot,nt,rt,at,Z[it+13],12,-40341101),at=X(at,ot,nt,rt,Z[it+14],17,-1502002290),rt=X(rt,at,ot,nt,Z[it+15],22,1236535329),nt=Y(nt,rt,at,ot,Z[it+1],5,-165796510),ot=Y(ot,nt,rt,at,Z[it+6],9,-1069501632),at=Y(at,ot,nt,rt,Z[it+11],14,643717713),rt=Y(rt,at,ot,nt,Z[it],20,-373897302),nt=Y(nt,rt,at,ot,Z[it+5],5,-701558691),ot=Y(ot,nt,rt,at,Z[it+10],9,38016083),at=Y(at,ot,nt,rt,Z[it+15],14,-660478335),rt=Y(rt,at,ot,nt,Z[it+4],20,-405537848),nt=Y(nt,rt,at,ot,Z[it+9],5,568446438),ot=Y(ot,nt,rt,at,Z[it+14],9,-1019803690),at=Y(at,ot,nt,rt,Z[it+3],14,-187363961),rt=Y(rt,at,ot,nt,Z[it+8],20,1163531501),nt=Y(nt,rt,at,ot,Z[it+13],5,-1444681467),ot=Y(ot,nt,rt,at,Z[it+2],9,-51403784),at=Y(at,ot,nt,rt,Z[it+7],14,1735328473),rt=Y(rt,at,ot,nt,Z[it+12],20,-1926607734),nt=tt(nt,rt,at,ot,Z[it+5],4,-378558),ot=tt(ot,nt,rt,at,Z[it+8],11,-2022574463),at=tt(at,ot,nt,rt,Z[it+11],16,1839030562),rt=tt(rt,at,ot,nt,Z[it+14],23,-35309556),nt=tt(nt,rt,at,ot,Z[it+1],4,-1530992060),ot=tt(ot,nt,rt,at,Z[it+4],11,1272893353),at=tt(at,ot,nt,rt,Z[it+7],16,-155497632),rt=tt(rt,at,ot,nt,Z[it+10],23,-1094730640),nt=tt(nt,rt,at,ot,Z[it+13],4,681279174),ot=tt(ot,nt,rt,at,Z[it],11,-358537222),at=tt(at,ot,nt,rt,Z[it+3],16,-722521979),rt=tt(rt,at,ot,nt,Z[it+6],23,76029189),nt=tt(nt,rt,at,ot,Z[it+9],4,-640364487),ot=tt(ot,nt,rt,at,Z[it+12],11,-421815835),at=tt(at,ot,nt,rt,Z[it+15],16,530742520),rt=tt(rt,at,ot,nt,Z[it+2],23,-995338651),nt=et(nt,rt,at,ot,Z[it],6,-198630844),ot=et(ot,nt,rt,at,Z[it+7],10,1126891415),at=et(at,ot,nt,rt,Z[it+14],15,-1416354905),rt=et(rt,at,ot,nt,Z[it+5],21,-57434055),nt=et(nt,rt,at,ot,Z[it+12],6,1700485571),ot=et(ot,nt,rt,at,Z[it+3],10,-1894986606),at=et(at,ot,nt,rt,Z[it+10],15,-1051523),rt=et(rt,at,ot,nt,Z[it+1],21,-2054922799),nt=et(nt,rt,at,ot,Z[it+8],6,1873313359),ot=et(ot,nt,rt,at,Z[it+15],10,-30611744),at=et(at,ot,nt,rt,Z[it+6],15,-1560198380),rt=et(rt,at,ot,nt,Z[it+13],21,1309151649),nt=et(nt,rt,at,ot,Z[it+4],6,-145523070),ot=et(ot,nt,rt,at,Z[it+11],10,-1120210379),at=et(at,ot,nt,rt,Z[it+2],15,718787259),rt=et(rt,at,ot,nt,Z[it+9],21,-343485551),nt=R(nt,_t),rt=R(rt,mt),at=R(at,kt),ot=R(ot,wt);return[nt,rt,at,ot]}function ut(Z){var lt,it="",_t=Z.length*32;for(lt=0;lt<_t;lt+=8)it+=String.fromCharCode(Z[lt>>5]>>>lt%32&255);return it}
330function Q(Z){var lt,it=[];for(it[(Z.length>>2)-1]=void 0,lt=0;lt<it.length;lt+=1)it[lt]=0;var _t=Z.length*8;for(lt=0;lt<_t;lt+=8)it[lt>>5]|=(Z.charCodeAt(lt/8)&255)<<lt%32;return it}function pt(Z){return ut(st(Q(Z),Z.length*8))}function ct(Z,lt){var it,_t=Q(Z),mt=[],kt=[],wt;for(mt[15]=kt[15]=void 0,_t.length>16&&(_t=st(_t,Z.length*8)),it=0;it<16;it+=1)mt[it]=_t[it]^909522486,kt[it]=_t[it]^1549556828;return wt=st(mt.concat(Q(lt)),512+lt.length*8),ut(st(kt.concat(wt),640))}function dt(Z){var lt="0123456789abcdef",it="",_t,mt;for(mt=0;mt<Z.length;mt+=1)_t=Z.charCodeAt(mt),it+=lt.charAt(_t>>>4&15)+lt.charAt(_t&15);return it}function yt(Z){return unescape(encodeURIComponent(Z))}function vt(Z){return pt(yt(Z))}function ht(Z){return dt(vt(Z))}function ft(Z,lt){return ct(yt(Z),yt(lt))}function jt(Z,lt){return dt(ft(Z,lt))}function bt(Z,lt,it){return lt?it?ft(lt,Z):jt(lt,Z):it?vt(Z):ht(Z)}L.exports?L.exports=bt:U.md5=bt})(commonjsGlobal)})(md5);var md5Exports=md5.exports;const blueimpMd5=getDefaultExportFromCjs(md5Exports);function md5Hex(L){return Array.isArray(L)&&(L=L.join("")),blueimpMd5(L)}var store;function getGlobalConfig(L){var U,R,K;return{lang:(U=L==null?void 0:L.lang)!=null?U:store==null?void 0:store.lang,message:L==null?void 0:L.message,abortEarly:(R=L==null?void 0:L.abortEarly)!=null?R:store==null?void 0:store.abortEarly,abortPipeEarly:(K=L==null?void 0:L.abortPipeEarly)!=null?K:store==null?void 0:store.abortPipeEarly}}var store2;function getGlobalMessage(L){return store2==null?void 0:store2.get(L)}var store3;function getSchemaMessage(L){return store3==null?void 0:store3.get(L)}var store4;function getSpecificMessage(L,U){var R;return(R=store4==null?void 0:store4.get(L))==null?void 0:R.get(U)}function _stringify(L){var R,K,W;const U=typeof L;return U==="string"?'"'.concat(L,'"'):U==="number"||U==="bigint"||U==="boolean"?"".concat(L):U==="object"||U==="function"?(W=L&&((K=(R=Object.getPrototypeOf(L))==null?void 0:R.constructor)==null?void 0:K.name))!=null?W:"null":U}function _addIssue(L,U,R,K,W){var Q,pt,ct,dt,yt,vt,ht,ft;const X=W&&"input"in W?W.input:R.value,Y=(pt=(Q=W==null?void 0:W.expected)!=null?Q:L.expects)!=null?pt:null,tt=(ct=W==null?void 0:W.received)!=null?ct:_stringify(X),et={kind:L.kind,type:L.type,input:X,expected:Y,received:tt,message:"Invalid ".concat(U,": ").concat(Y?"Expected ".concat(Y," but r"):"R","eceived ").concat(tt),requirement:L.requirement,path:W==null?void 0:W.path,issues:W==null?void 0:W.issues,lang:K.lang,abortEarly:K.abortEarly,abortPipeEarly:K.abortPipeEarly},st=L.kind==="schema",ut=(ft=(ht=(vt=(yt=(dt=W==null?void 0:W.message)!=null?dt:L.message)!=null?yt:getSpecificMessage(L.reference,et.lang))!=null?vt:st?getSchemaMessage(et.lang):null)!=null?ht:K.message)!=null?ft:getGlobalMessage(et.lang);ut&&(et.message=typeof ut=="function"?ut(et):ut),st&&(R.typed=!1),R.issues?R.issues.push(et):R.issues=[et]}function _joinExpects(L,U){var K;const R=[...new Set(L)];return R.length>1?"(".concat(R.join(" ".concat(U," ")),")"):(K=R[0])!=null?K:"never"}var ValiError=class extends Error{constructor(U){super(U[0].message);Ct(this,"issues");this.name="ValiError",this.issues=U}};function regex(L,U){return{kind:"validation",type:"regex",reference:regex,async:!1,expects:"".concat(L),requirement:L,message:U,_run(R,K){return R.typed&&!this.requirement.test(R.value)&&_addIssue(this,"format",R,K),R}}}function url(L){return{kind:"validation",type:"url",reference:url,async:!1,expects:null,requirement(U){try{return new URL(U),!0}catch(R){return!1}},message:L,_run(U,R){return U.typed&&!this.requirement(U.value)&&_addIssue(this,"URL",U,R),U}}}function array(L,U){return{kind:"schema",type:"array",reference:array,expects:"Array",async:!1,item:L,message:U,_run(R,K){var X;const W=R.value;if(Array.isArray(W)){R.typed=!0,R.value=[];for(let Y=0;Y<W.length;Y++){const tt=W[Y],et=this.item._run({typed:!1,value:tt},K);if(et.issues){const st={type:"array",origin:"value",input:W,key:Y,value:tt};for(const ut of et.issues)ut.path?ut.path.unshift(st):ut.path=[st],(X=R.issues)==null||X.push(ut);
330if(R.issues||(R.issues=et.issues),K.abortEarly){R.typed=!1;break}}et.typed||(R.typed=!1),R.value.push(et.value)}}else _addIssue(this,"type",R,K);return R}}}function object(L,U){return{kind:"schema",type:"object",reference:object,expects:"Object",async:!1,entries:L,message:U,_run(R,K){var X;const W=R.value;if(W&&typeof W=="object"){R.typed=!0,R.value={};for(const Y in this.entries){const tt=W[Y],et=this.entries[Y]._run({typed:!1,value:tt},K);if(et.issues){const st={type:"object",origin:"value",input:W,key:Y,value:tt};for(const ut of et.issues)ut.path?ut.path.unshift(st):ut.path=[st],(X=R.issues)==null||X.push(ut);if(R.issues||(R.issues=et.issues),K.abortEarly){R.typed=!1;break}}et.typed||(R.typed=!1),(et.value!==void 0||Y in W)&&(R.value[Y]=et.value)}}else _addIssue(this,"type",R,K);return R}}}function string(L){return{kind:"schema",type:"string",reference:string,expects:"string",async:!1,message:L,_run(U,R){return typeof U.value=="string"?U.typed=!0:_addIssue(this,"type",U,R),U}}}function _subIssues(L){let U;if(L)for(const R of L)U?U.push(...R.issues):U=R.issues;return U}function union(L,U){return{kind:"schema",type:"union",reference:union,expects:_joinExpects(L.map(R=>R.expects),"|"),async:!1,options:L,message:U,_run(R,K){let W,X,Y;for(const tt of this.options){const et=tt._run({typed:!1,value:R.value},K);if(et.typed)if(et.issues)X?X.push(et):X=[et];else{W=et;break}else Y?Y.push(et):Y=[et]}if(W)return W;if(X){if(X.length===1)return X[0];_addIssue(this,"type",R,K,{issues:_subIssues(X)}),R.typed=!0}else{if((Y==null?void 0:Y.length)===1)return Y[0];_addIssue(this,"type",R,K,{issues:_subIssues(Y)})}return R}}}function parse$1(L,U,R){const K=L._run({typed:!1,value:U},getGlobalConfig(R));if(K.issues)throw new ValiError(K.issues);return K.value}function pipe(...L){return xt(gt({},L[0]),{pipe:L,_run(U,R){for(const K of L)if(K.kind!=="metadata"){if(U.issues&&(K.kind==="schema"||K.kind==="transformation")){U.typed=!1;break}(!U.issues||!R.abortEarly&&!R.abortPipeEarly)&&(U=K._run(U,R))}return U}})}const blocks$1=[{name:"Ajassa",items:[{text:"Iltalehti.fi",url:"https://www.iltalehti.fi",title:"Uutiset, urheilu, viihde ja lifestyle",md:'[Uutiset](https://www.iltalehti.fi/uutiset "Uutiset"), [urheilu](https://www.iltalehti.fi/urheilu "urheilu"), [viihde](https://www.iltalehti.fi/viihde "viihde") ja [TV-ohjelmat](https://www.iltalehti.fi/telkku/ "TV-ohjelmat")'},{text:"Kauppalehti",url:" https://www.kauppalehti.fi/",title:"Kauppalehti",md:'[Talousuutiset](https://www.kauppalehti.fi/uutiset "Talousuutiset") ja [p\xF6rssikurssit](https://www.kauppalehti.fi/porssi "p\xF6rssikurssit")'},{text:"Talousel\xE4m\xE4",url:"https://www.talouselama.fi/",title:"Talousuutiset, taustat ja seuraukset",md:'[Talousuutiset](https://www.talouselama.fi/uutiset "Talousuutiset"), [analyysit](https://www.talouselama.fi/analyysit "analyysit") ja [yrityskaupat](https://www.talouselama.fi/aiheet/yrityskaupat "yritysaupat")'},{text:"Uusi Suomi",url:"https://www.uusisuomi.fi/",title:"Uusi Suomi",md:"Politiikan ja yhteiskunnan uutiset ja analyysit"},{text:"Arvopaperi",url:"https://www.arvopaperi.fi/",title:"Arvopaperi",md:'[Sijoittajan uutiset](https://www.arvopaperi.fi/uutiset "Sijoittajan uutiset"), [analyysit](https://www.arvopaperi.fi/analyysi "analyysit") ja [listautumiset](https://www.arvopaperi.fi/listautumiset "listautumiset")'},{text:"Ampparit.com",url:"https://www.ampparit.com/",title:"Tuoreimmat uutiset",md:'[Uutiset](https://www.ampparit.com/uutiset "Uutiset"), [Urheilu](https://www.ampparit.com/urheilu "Urheilu") ja [TV-opas](https://www.ampparit.com/tv "TV-opas")'},{text:"IL-TV",url:"https://www.iltalehti.fi/iltv/",title:"Tuoreimmat uutisvideot",md:"Tuoreimmat uutisvideot"},{text:"P\xE4iv\xE4n s\xE4\xE4",url:"https://www.iltalehti.fi/saa/",title:"P\xE4iv\xE4n s\xE4\xE4",md:'[S\xE4\xE4ennuste](https://www.iltalehti.fi/saa/9paivaa "S\xE4\xE4ennuste") ja [sadetutkat](https://www.iltalehti.fi/saa/sadetutka "sadetutkat")'},{text:"Konep\xF6rssi",url:"https://www.koneporssi.com/",title:"Ty\xF6koneiden ja kuljetuskaluston erikoislehti",md:"Ty\xF6koneiden ja kuljetuskaluston erikoislehti"}]},{name:"Vapaalla",items:[{text:"Etuovi.com",url:"https://www.etuovi.com",title:"Asunnot",md:'[Myyt\xE4v\xE4t asunnot](https://www.etuovi.com/myytavat-asunnot "Myyt\xE4v\xE4t asunnot") ja [asunnon hinta-arvio](https://www.etuovi.com/asunnon-hinta-arvio "asunnon hinta-arvio")'},{text:"Nettiauto",url:"https://www.nettiauto.com/",title:"Vaihtoautot, heti ajoon -autot ja s\xE4hk\xF6autot",md:'[Vaihtoautot](https://www.nettiauto.com/vaihtoautot "Vaihtoautot"), [heti ajoon -autot](https://www.nettiauto.com/pikalinkit/heti-ajoon "heti ajoon -autot") ja [s\xE4hk\xF6autot](https://www.nettiauto.com/vaihtoautot/sahkoautot "s\xE4hk\xF6autot")'},{text:"Baana",url:"https://baana.nettiauto.com/",title:"Myy autosi jopa 48 tunnissa",md:"Kilpailuta kerralla autoliikkeet ja myy autosi jopa 48 tunnissa"},{text:"Autotalli.com",url:"https://www.autotalli.com",title:"Autotalli.com",md:'[Vaihtoautot](https://www.autotalli.com/vaihtoautot "Vaihtoautot"), [uudet autot](https://www.autotalli.com/uudet-autot/l
330istaa "uudet autot"), [s\xE4hk\xF6autot](https://www.autotalli.com/vaihtoautot/listaa/polttoaine/sahko "s\xE4hk\xF6autot") ja [leasing-autot](https://www.autotalli.com/leasing-autot/listaa/auton_tyyppi/kaikki-sopimukset "leasing-autot")'},{text:"AutoJerry.fi",url:"https://autojerry.fi/",title:"Kilpailuta paras autokorjaamo tai autohuolto helposti",md:"Autohuollot"},{text:"Iltalehti",url:"https://www.iltalehti.fi/",title:"Iltalehti",md:'[Uutiset](https://www.iltalehti.fi/uutiset "Uutiset"), [muoti](https://www.iltalehti.fi/tyylicom "muoti") ja [viihde](https://www.iltalehti.fi/viihde "viihde")'},{text:"Urakkamaailma.fi",url:"https://www.urakkamaailma.fi/",title:"L\xF6yd\xE4 remontillesi luotettava tekij\xE4",md:"L\xF6yd\xE4 remontillesi luotettava tekij\xE4"},{text:"Katsastushinnat.fi",url:"https://katsastushinnat.fi/",title:"Suomen parhaat katsastusasemat",md:"Suomen parhaat katsastusasemat"},{text:"IL-TV",url:"https://www.iltalehti.fi/iltv/",title:"Ideoita ja inspiraatiota",md:"Ideoita ja inspiraatiota"},{text:"Telkku",url:"https://www.iltalehti.fi/telkku",title:"TV-ohjelmat",md:"[TV-ohjelmat](https://www.iltalehti.fi/telkku/), [TV-elokuvat](https://www.iltalehti.fi/telkku/elokuvat) ja [TV-opas](https://www.iltalehti.fi/telkku/)"},{text:"IL Alennuskoodit",url:"https://www.iltalehti.fi/alennuskoodi/",title:"Alennuskoodit ja tarjoukset",md:"Alennuskoodit ja tarjoukset"},{text:"Mikrobitti",url:"https://www.mikrobitti.fi/",title:"Mikrobitti",md:'[Tietokoneet](https://www.mikrobitti.fi/aiheet/tietokoneet "Tietokoneet"), [laitteet](https://www.mikrobitti.fi/tuotehaku "laitteet") ja [testit](https://www.mikrobitti.fi/testit "testit")'},{text:"Vuokraovi.com",url:"https://www.vuokraovi.com",title:"Vuokraovi",md:'[Vuokra-asunnot](https://www.vuokraovi.com/haku/vuokra-asunnot "Vuokra-asunnot")'},{text:"Asuntoneuvos",url:"https://www.asuntoneuvos.com/",title:"Asuntoneuvos",md:"Vuokranantajan ty\xF6kalut ja markkinatieto"},{text:"Etua.fi",url:"https://www.etua.fi",title:"Monipuolinen lainapalvelu",md:'[Kulutusluotot](https://www.etua.fi/kulutusluotto "Kulutusluotot"), [yrityslainat](https://www.etua.fi/yrityslaina "yrityslainat") ja [asuntolainat](https://www.etua.fi/asuntolaina "asuntolainat")'},{text:"Kattokorko.fi",url:"https://www.kattokorko.fi",title:"Edullisin lainavertailu",md:"Edullisin lainavertailu"},{text:"Muuttomaailma.fi",url:"https://www.muuttomaailma.fi/",title:"Muuttopalvelut",md:"Muuttopalvelut"},{text:"Ampparit.com",url:"https://www.ampparit.com/",title:"Tuoreimmat uutiset",md:'[Uutiset](https://www.ampparit.com/uutiset "Uutiset"), [urheilu](https://www.ampparit.com/urheilu "Urheilu") ja [TV-opas](https://www.ampparit.com/tv "TV-opas")'},{text:"Nettimoto",url:"https://www.nettimoto.com/",title:"K\xE4ytetyt moottoripy\xF6r\xE4t, m\xF6nkij\xE4t ja moottorikelkat",md:'[Moottoripy\xF6r\xE4t](https://www.nettimoto.com/pikalinkit/moottoripyorat "Moottoripy\xF6r\xE4t"), [m\xF6nkij\xE4t](https://www.nettimoto.com/pikalinkit/monkijat "m\xF6nkij\xE4t") ja [moottorikelkat](https://www.nettimoto.com/pikalinkit/moottorikelkat "moottorikelkat")'},{text:"Nettivene",url:"https://www.nettivene.com/",title:"K\xE4ytetyt veneet, vaihtoveneet, uudet veneet",md:'[Moottoriveneet](https://www.nettivene.com/pikalinkit/moottoriveneet "Moottoriveneet"), [pulpettiveneet](https://www.nettivene.com/pikalinkit/pulpettiveneet "pulpettiveneet") ja [purjeveneet](https://www.nettivene.com/pikalinkit/purjeveneet "purjeveneet")'},{text:"Nettikone",url:"https://www.nettikone.com/",title:"Vaihtokoneet, mets\xE4koneet ja maatalouskoneet",md:'[Kuljetuskalusto](https://www.nettikone.com/pikalinkit/kuljetuskalusto "Kuljetuskalusto"), [maatalouskoneet](https://www.nettikone.com/pikalinkit/maatalouskoneet "Maatalouskoneet") ja [mets\xE4koneet](https://www.nettikone.com/pikalinkit/metsakoneet "Mets\xE4koneet")'},{text:"Nettim\xF6kki",url:"https://www.nettimokki.com/",title:"3000 vuokram\xF6kki\xE4 ymp\xE4ri Suomen",md:"3000 vuokram\xF6kki\xE4 ymp\xE4ri Suomen"},{text:"Nettikaravaani",url:"https://www.nettikaravaani.com/",title:"Matkailuautot, asuntoautot ja asuntovaunut",md:'[Matkailuautot](https://www.nettikaravaani.com/pikalinkit/matkailuautot "Matk
330ailuautot") ja [matkailuvaunut](https://www.nettikaravaani.com/pikalinkit/matkailuvaunut "Matkailuvaunut")'},{text:"Nettivaraosa",url:"https://www.nettivaraosa.com/",title:"Varaosat ja tarvikkeet",md:'[Auton varaosat](https://www.nettivaraosa.com/pikalinkit/auton-varaosat "Auton varaosat"), [vanteet](https://www.nettivaraosa.com/vanteet "vanteet") ja [rengassarjat](https://www.nettivaraosa.com/rengassarjat "rengassarjat")'},{text:"Rekkari.fi",url:"https://rekkari.fi/",title:"Auton, moton ja veneen rekisteritiedot",md:"Auton, moton ja veneen rekisteritiedot"}]},{name:"Ty\xF6ss\xE4",items:[{text:"Kauppalehti",url:"https://www.kauppalehti.fi/",title:"Johtaminen, yritykset ja toimitilat",md:'[Johtaminen](https://www.kauppalehti.fi/aiheet/johtaminen "Johtaminen"), [yritykset](https://www.kauppalehti.fi/yritykset "yritykset") ja [toimitilat](https://toimitilat.kauppalehti.fi/ "toimitilat")'},{text:"Jobly",url:"https://www.jobly.fi/",title:"Avoimet ty\xF6paikat",md:"Avoimet ty\xF6paikat"},{text:"Tekniikka & Talous",url:"https://www.tekniikkatalous.fi/",title:"Teknologiauutiset ja ilmi\xF6t",md:"Teknologiauutiset ja ilmi\xF6t"},{text:"Tivi",url:"https://www.tivi.fi/",title:"ICT-uutiset ja -ilmi\xF6t",md:"ICT-uutiset ja -ilmi\xF6t"},{text:"Konep\xF6rssi",url:"https://www.koneporssi.com/",title:"Ty\xF6koneiden ja kuljetuskaluston erikoislehti",md:"Ty\xF6koneiden ja kuljetuskaluston erikoislehti"},{text:"Onnity\xF6ss\xE4",url:"https://onnityossa.fi/",title:"Paremman ty\xF6el\xE4m\xE4n puolesta",md:"Paremman ty\xF6el\xE4m\xE4n puolesta"},{text:"Nettikone",url:"https://www.nettikone.com/",title:"Vaihtokoneet, mets\xE4koneet ja maatalouskoneet",md:'[Kuljetuskalusto](https://www.nettikone.com/pikalinkit/kuljetuskalusto "Kuljetuskalusto"), [Maatalouskoneet](https://www.nettikone.com/pikalinkit/maatalouskoneet "Maatalouskoneet") ja [Mets\xE4koneet](https://www.nettikone.com/pikalinkit/metsakoneet "Mets\xE4koneet")'},{heading:"Yrityspalvelut"},{text:"Alma Career",url:"https://www.almacareer.com/",title:"Kansainv\xE4liset rekrytointipalvelut",md:"Kansainv\xE4liset rekrytointipalvelut"},{text:"Property Insights",url:"https://www.almainsights.fi/kiinteistotietopalvelut/",title:"Asuntokaupan palvelut ammattilaisille",md:"Kattavaa ja luotettavaa tietoa kiinteist\xF6liiketoiminnan ammattilaisille"},{text:"Legal Insights",url:"https://www.almainsights.fi/juridiikan-palvelut/",title:"Juridiikan hakupalvelut",md:"Asiantuntijasis\xE4ll\xF6t ja lains\xE4\xE4d\xE4nt\xF6"},{text:"Business Insights",url:"https://www.almainsights.fi/yritystietopalvelut/",title:"Yritystietopalvelut",md:"Oikea-aikaista yritys- ja p\xE4\xE4tt\xE4j\xE4tietoa p\xE4\xE4t\xF6ksenteon tueksi"},{text:"Kauppalehti Toimitilat ja myyt\xE4v\xE4t yritykset",url:"https://toimitilat.kauppalehti.fi/",title:"Yritysten liiketilat",md:'[Liiketilat](https://toimitilat.kauppalehti.fi/List/liiketilat "Liiketilat"), [toimitilat](https://toimitilat.kauppalehti.fi/List/toimitilat "toimitilat"), [varastot](https://toimitilat.kauppalehti.fi/List/varastot "varastot") ja myyt\xE4v\xE4t yritykset'},{text:"Autoilun j\xE4rjestelm\xE4t",url:"https://almaajo.fi/websales/",title:"Autoilun j\xE4rjestelm\xE4t",md:"Websales, Webrent ja Autosofta"},{text:"Nettix Pro",url:"https://almaajo.fi/nettix-pro/",title:"Nettix Pro",md:"Toiminnanohjausj\xE4rjestelm\xE4 moottoritoimialalle"},{text:"Netello",url:"https://netello.fi",title:"Netello",md:'[Hakukoneoptimointi](https://netello.fi/hakukoneoptimointi "Hakukoneoptimointi"), [sivustot](https://netello.fi/kotisivut-yritykselle "sivustot") ja [TIE-ratkaisu](https://netello.fi/netello-tie "TIE-ratkaisu")'},{text:"Ammattilaisen ty\xF6kalut asuntokauppaan",url:"https://etuovi.com/mediatieto/palvelun-esittely-etuovicom/",title:"Ammattilaisen ty\xF6kalut asuntokauppaan",md:'[Kiinteist\xF6nv\xE4litt\xE4j\xE4n CRM](https://etuovi.com/mediatieto/myyntipro-2/ "Kiinteist\xF6nv\xE4litt\xE4j\xE4n CRM") ja [asuntokaupan markkinadata](https://data.etuovi.com/ "asuntokaupan markkinadata")'},{text:"KIVI-kiinteist\xF6nv\xE4litysj\xE4rjestelm\xE4",url:"https://etuovi.com/mediatieto/kivi-kiinteistonvalitysjarjestelma/",title:"KIVI-kiinteist\xF6nv\xE4litysj\xE4rjestelm\xE4",md:'[Kirjautuminen](https://kivi.etuovi.com/ "Kirjautuminen") ja [Demo-tunnukset](https://www.etuovi.com/mediatieto/kivi-kiinteistonvalitysjarjestelma/#tilaa-demotunnukset "Demo-tunnukset")'},{text:"DOKS",url:"https://www.doks.fi",title:"DOKS - Rahanpesulain velvoitteet, pakoteseulonta ja compliance-teht\xE4v\xE4t ",md:"Rahanpesulain velvoitteet, pakoteseulonta ja compliance-teht\xE4v\xE4t"},{text:"Alma Kirjakauppa",url:"https://kirjakauppa.almainsights.fi",title:"Alma Kirjakauppa",md:"Bisneskirjat ja juridiikan kirjat"}]}],ItemSchema=object({text:string(),url:pipe(string(),url()),title:string(),md:pipe(string(),regex(new RegExp('^[ \\p{L}0-9\\[\\]()\\.\\-_\\/,:;\u20AC@?+\xA9\u2013&%"\u201C\u201D\u2018\u2019#]*$',"iu")))}),HeadingSchema=object({heading:string()}),BlockSchema=object({name:string(),items:array(union([ItemSchema,HeadingSchema]))}),BlocksSchema=array(BlockSchema),blocks=parse$1(BlocksSchema,blocks$1);function slugify(L){const U="\xE0\xE1\xE4\xE2\xE8\xE9\xEB\xEA\xEC\xED\xEF\xEE\xF2\xF3\xF6\xF4\xF9\xFA\xFC\xFB\xF1\xE7\xDF\xFF\u0153\xE6\u0155\u015B\u0144\u1E55\u1E83\u01F5\u01F9\u1E3F\u01D8\u1E8D\u017A\u1E27\xB7/_,:;",R="aaaaeeeeiiiioooouuuuncsyoarsnpwgnmuxzh------",K=new RegExp(U.split("").join("|"),"g");return L.toString().toLowerCase().replace(/\s+/g,"-").replace(K,W=>R.charAt(U.indexOf(W))).replace(/&/g,"-ja-").replace(/[^\w\-]+/g,"").replace(/\-\-+/g,"-").replace(/^-+/,"").replace(/-+$/,"")}const widget={id:"5577db28b922930e04000019",name:"Alma Footer",publisher:{id:"5577db0eb922930e0800001d",name:"Alma-Media"}};function addUtm(L,U){const R=new URL(parse$1(pipe(string(),url()),L));return R.searchParams.set("utm_source",document.location.hostname),R.searchParams.set("utm_medium","almainternal"),R.searchParams.set("utm_campaign","".concat(slugify(widget.publisher.name),"--").concat(slugify(widget.name))),U&&R.searchParams.set("utm_content","contentrouter_".concat(U.clientWidth,"x").concat(U.clientHeight)),R.toString()}function ExtLink(K){var W=K,{children:L,href:U}=W,R=Tt(W,["children","href"]);const X=useRootHook(),Y=xt(gt({target:"_blank",rel:"noopener"},R),{href:addUtm(U,X)});return u$2("a",xt(gt({},Y),{children:L}))}const REGEXP_MARKDOWN_LINK=/\[[^\]]+\]\([^\)]+\)/,REGEXP_MARKDOWN_LINK_TEXT=/\[([^\]]+)\]/,REGEXP_MARKDOWN_LINK_HREF=/\]\(([^" ]+)(?: ".*")?\)/,REGEXP_MARKDOWN_LINK_TITLE=/"([^"]+)"/;function parseMarkdownLinkText(L){var U;return((U=L.match(REGEXP_MARKDOWN_LINK_TEXT))==null?void 0:U[1])||""}function parseMarkdownLinkHref(L){var U;return((U=L.match(REGEXP_MARKDOWN_LINK_HREF))==null?void 0:U[1])||""}function parseMarkdownLinkTitle(L){var U;return(U=L.match(REGEXP_MARKDOWN_LINK_TITLE))==null?void 0:U[1]}function parseMarkdownLink(L){return{text:parseMarkdownLinkText(L),attributes:{href:parseMarkdownLinkHref(L),title:parseMarkdownLinkTitle(L)}}}function parse(L){return L.split(new RegExp("(".concat(REGEXP_MARKDOWN_LINK.source,")"))).filter(U=>U!=="")}function sanitize(L){return L.replace(/`/g,"").replace(/~/g,"").replace(/_/g,"").replace(/\*/g,"")}function toComponent(L,U){const R=REGEXP_MARKDOWN_LINK.exec(L);return R?U(parseMarkdownLink(R[0])):sanitize(L)}function MarkdownToJSX({markdown:L,className:U}){const R=W=>u$2(ExtLink,xt(gt({},W.attributes),{children:W.text})),K=parse(L).map(W=>toComponent(W,R));return u$2("span",{className:U,children:K})}function BlockItem({classPrefix:L,item:U}){return u$2(k$1,{children:[u$2(ExtLink,{className:"".concat(L,"__primary-link"),href:U.url,title:U.title,children:U.text}),u$2(MarkdownToJSX,{className:"".concat(L,"__md"),markdown:U.md})]})}function BlockSubSectionTitle({classPrefix:L,heading:U}){return u$2("span",{className:"".concat(L,"__subtitle"),children:U})}const ITEMS_TO_SHOW_BY_DEFAULT=5;function visibilityToggle(L,U){const R="item--visible",K="item--hidden";return L||U<ITEMS_TO_SHOW_BY_DEFAULT?R:K}function Content(){const[L,U]=h(!1),R=()=>{U(!L)};return u$2("ul",{className:"blocks",children:blocks.map(K=>{const W=slugify(K.name.toLowerCase());return u$2("li",{className:"block block--".concat(W),children:[u$2("span",{className:"title",children:K.name}),u$2("ul",{className:"items",children:[K.items.map((X,Y)=>{const et=md5Hex("heading"in X?X.heading:X.text).substring(0,10);return u$2("li",{className:"item ".concat(visibilityToggle(L,Y)),children:"heading"in X?u$2(BlockSubSectionTitle,{classPrefix:"item",heading:X.heading}):u$2(BlockItem,{classPrefix:"item",item:X})},et)}),!L&&u$2("li",{className:"item",children:u$2("button",{type:"button",className:"show-all",onClick:R,children:"N\xE4yt\xE4 kaikki"})})]})]},W)})})}
330const AlmaLogo='<svg width="100%" height="100%" viewBox="0 0 48 48" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:1.41421;"><path d="M0,5.68l0.003,-5.68l22.558,0.045l0.075,22.576l-22.636,-0.003l0.033,-14.158l16.963,0.033l-0.042,-2.861l-16.954,0.048Zm16.987,11.288l0.003,-2.894l-11.323,0.036l0.018,2.849l11.302,0.009Z" style="fill:#fff;"/><path d="M25.367,31.059l0,-5.68l22.558,0.045l0.075,22.576l-22.636,-0.003l0.036,-14.158l16.957,0.033l-0.042,-2.861l-16.948,0.048Zm16.981,11.288l0.006,-2.894l-11.321,0.039l0.018,2.846l11.297,0.009Z" style="fill:#fff;"/><path d="M31.058,0.008l0.038,16.956l16.904,-0.001l-0.011,5.651l-22.616,0.007l-0.009,-22.621l5.694,0.008Z" style="fill:#fff;fill-rule:nonzero;"/><path d="M22.636,25.379l-0.038,22.587l-5.587,0.034l-0.093,-17.028l-2.706,0l-0.072,17.028l-5.668,0l0.028,-17.028l-2.759,0l-0.038,17.028l-5.681,0l-0.022,-22.607l22.636,-0.014Z" style="fill:#fff;fill-rule:nonzero;"/></svg>\n';function Logo(){return u$2(k$1,{children:u$2("div",{className:"logo",dangerouslySetInnerHTML:{__html:AlmaLogo}})})}const EVENT_CMP_B2B_CONSENT_AVAILABLE="alma_b2b_consent_available_repetitive",EVENT_CMP_V2_CONSENT_AVAILABLE="alma_cmp_v2_consents_available_repetitive";function onConsent(L,U){window.addEventListener(L,U,{once:!0})}function Consent(){const[L,U]=h(void 0);return onConsent(EVENT_CMP_B2B_CONSENT_AVAILABLE,()=>{U("B2B")}),onConsent(EVENT_CMP_V2_CONSENT_AVAILABLE,()=>{U("CMPv2")}),u$2(k$1,{children:typeof L!="undefined"&&u$2("button",{className:"open-cmp",type:"button",onClick:()=>{switch(L){case"B2B":window.gravitoData.B2BCMP.openPreferences();break;case"CMPv2":window.gravitocmp.openPreferences();break}},children:"Ev\xE4steasetukset"})})}function Contact(){return u$2(ExtLink,{href:"https://www.almamedia.fi/yhteystiedot",children:"Alma Media yhteystiedot"})}const CURRENT_YEAR=new Date().getFullYear(),copyrightMessage="\xA9 Alma Media Oyj ".concat(CURRENT_YEAR);function Copyright(){return u$2(ExtLink,{href:"https://www.almamedia.fi/",children:copyrightMessage})}function Privacy(){return u$2(ExtLink,{rel:"privacy-policy",href:"https://www.almamedia.fi/tietosuoja",title:"Yksityisyydensuoja Alma Mediassa",children:"Tietosuoja"})}function MenuBottom(){return u$2("footer",{className:"footer",children:[u$2(Copyright,{}),u$2(Privacy,{}),u$2(Consent,{}),u$2(Contact,{})]})}const CSS=':host{all:initial;contain:content;box-sizing:border-box}:host *,:host :before,:host :after{box-sizing:inherit}.container{--size-base:16px;--size-nano:calc(var(--size-base)*.25);--size-xxs:calc(var(--size-base)*.5);--size-xs:calc(var(--size-base)*.75);--size-small:calc(var(--size-base)*.875);--size-normal:calc(var(--size-base)*1);--size-large:calc(var(--size-base)*1.25);--size-xl:calc(var(--size-base)*1.5);--size-xxl:calc(var(--size-base)*2);font-family:HelveticaNeue-Light,Helvetica Neue Light,Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-weight:300;font-size:var(--size-normal);text-align:left;padding:var(--size-xs);color:#fff;gap:var(--size-normal);direction:ltr;background:#333;grid-template-areas:"a""b""c";justify-content:left;margin:0;display:none}@supports (--css:variables) and (display:grid) and (height:calc(100% - 10px)){.container{display:grid}}@media screen and (width>=767px){.container{grid-template-areas:"a b""c c"}}.logo{box-sizing:content-box;padding:var(--size-xs);aspect-ratio:1;width:64px;height:auto;margin-bottom:var(--size-xxl);grid-area:a}a{color:#aaa;text-decoration-skip-ink:auto;text-decoration:none}a:hover{color:#fff;text-decoration:underline}.blocks{gap:var(--size-large);margin:0 0 var(--size-xxl);grid-area:b;grid-template-rows:min-content min-content min-content;grid-template-columns:1fr;padding:0;list-style:none;display:grid}@media screen and (width>=767px){.blocks{grid-template-rows:min-content;grid-template-columns:1fr 1fr 1fr}}.block{padding:var(--size-xs);padding-bottom:0}.block:hover{background:#00000026}.title{font-size:var(--size-xl);font-weight:700;line-height:var(--size-xl);color:#fff;margin-block:0 var(--size-xl);vertical-align:top;display:inline-block}.items{flex-direction:column;gap:0;margin:0;padding:0;list-style:none;display:flex}.item{font-size:var(--size-small);line-height:var(--size-xl);padding-block:var(--size-xxs);padding-inline:var(--size-xs);margin-inline:calc(var(--size-xs)*-1)}.item:hover{background:#0003}
330.item.item--hidden:not(:focus):not(:active){clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.item__subtitle{font-size:var(--size-large);margin:var(--size-xxl)0 var(--size-normal);color:#fff;font-weight:700;line-height:1.25em}.item__primary-link{color:#fff;font-weight:700;text-decoration:underline #646464}.item__primary-link:hover{text-decoration-color:#fff}.item__md{color:#aaa}.item__md:before{content:" \u2013 "}.item__md a,.item__md a:link,.item__md a:visited{text-decoration:underline #646464}.item__md a:hover{text-decoration-color:#fff}.show-all{color:inherit;text-transform:uppercase;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline #646464}.show-all:hover{text-decoration-color:#fff}.footer{padding:var(--size-xs);gap:var(--size-normal);font-size:var(--size-small);flex-direction:column;grid-area:c;align-items:center;display:flex}@media screen and (width>=767px){.footer{flex-direction:row}}.footer a{cursor:pointer;color:#aaa;font-weight:inherit;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline #646464;display:inline}.footer a:hover{text-decoration-color:#fff}.footer .open-cmp{cursor:pointer;color:#aaa;font-weight:inherit;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline #646464;display:inline}.footer .open-cmp:hover{text-decoration-color:#fff}';function StyleSheet(){return u$2(k$1,{children:u$2("style",{dangerouslySetInnerHTML:{__html:CSS}})})}function isElement(L){return L instanceof Element}function Container(L){const[U,R]=h(null);return u$2("div",{className:"container",ref:W=>isElement(W)&&R(W),children:u$2(RootContextProvider,{value:U,children:u$2(LangContextProvider,{value:L.lang,children:[u$2(StyleSheet,{}),u$2(Logo,{}),u$2(Content,{}),u$2(MenuBottom,{})]})})})}var Severity;(function(L){L.fatal="fatal",L.error="error",L.warning="warning",L.log="log",L.info="info",L.debug="debug",L.critical="critical"})(Severity||(Severity={}));const CHROME_REGEXP=/^\s*at (?:(.*?) ?\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\/).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,GECKO_REGEXP=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension).*?:\/.*?|\[native code\]|[^@]*(?:bundle|\d+\.js))(?::(\d+))?(?::(\d+))?\s*$/i,WINJS_REGEXP=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i,UNKNOWN_FUNCTION="?",AUTH_HEADER="X-Sentry-Auth",DSN_REGEXP=/^(?:(\w+):)\/\/(?:([\w-]+)(?::(\w+))?@)([\w.-]+)(?::(\d+))?\/(.+)/;function computeStackTraceFromStackProp(L){if(!L.stack)return null;const U=[],R=L.stack.split("\n");let K,W;for(let X=0;X<R.length;++X){if(K=CHROME_REGEXP.exec(R[X]))W={filename:K[2]&&K[2].indexOf("address at ")===0?K[2].substr(11):K[2],function:K[1]||UNKNOWN_FUNCTION,lineno:K[3]?+K[3]:null,colno:K[4]?+K[4]:null};else if(K=WINJS_REGEXP.exec(R[X]))W={filename:K[2],function:K[1]||UNKNOWN_FUNCTION,lineno:+K[3],colno:K[4]?+K[4]:null};else if(K=GECKO_REGEXP.exec(R[X]))X===0&&!K[5]&&L.columnNumber!==void 0&&(U[0].column=L.columnNumber+1),W={filename:K[3],function:K[1]||UNKNOWN_FUNCTION,lineno:K[4]?+K[4]:null,colno:K[5]?+K[5]:null};else continue;!W.function&&W.lineno&&(W.function=UNKNOWN_FUNCTION),U.push(W)}return U.length?{value:extractMessage(L),type:L.name,stacktrace:{frames:U.reverse()}}:null}function extractMessage(L){return(L&&L.message||"No error message").split("\n").filter(R=>!!R)[0]}function computeStackTrace(L){try{const U=computeStackTraceFromStackProp(L);if(U)return U}catch(U){}return{value:extractMessage(L),type:L&&L.name,stacktrace:{frames:[]}}}function uuid4(){return"xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx".replace(/[xy]/g,L=>{const U=Math.random()*16|0;return(L==="x"?U:U&3|8).toString(16)})}class MicroSentryClient{constructor(U){if(U&&U.dsn){const R=DSN_REGEXP.exec(U.dsn),K=R?R.slice(1):[],W=K[5].split("/"),X=W.slice(0,-1).join("/");this.apiUrl=K[0]+"://"+K[3]+(K[4]?":"+K[4]:"")+(X?"/"+X:"")+"/api/"+W.pop()+"/store/",this.authHeader="Sentry sentry_version=7,sentry_key="+K[1]+(K[2]?",sentry_secret="+K[2]:"")}this.environment=U&&U.environment}prepare(U){return xt(gt({},this.getRequestBlank()),{exception:{values:[computeStackTrace(U)]}})}report(U){this.send(this.prepare(U))}send(U){!this.apiUrl||!U||this.createRequest(U)}createRequest(U){const R=new XMLHttpRequest;R.open("POST",this.apiUrl,!0),R.setRequestHeader("Content-type","application/json"),R.setRequestHeader(AUTH_HEADER,this.authHeader||""),R.send(JSON.stringify(U))}getRequestBlank(){return{platform:"javascript",event_id:uuid4(),sdk:{name:"micro-sentry.javascript.core",version:"0.0.0"},timestamp:Date.now()/1e3,environment:this.environment}}}function isMatchingPattern(L,U){return Object.prototype.toString.call(U)==="[object RegExp]"?U.test(L):typeof U=="string"?L.indexOf(U)!==-1:!1}const MAX_BREADCRUMBS=100;function getWindow(){return window}
330class BrowserMicroSentryClient extends MicroSentryClient{constructor(U,R=getWindow()){super(U),this.options=U,this.window=R,this.breadcrumbsKeyName="breadcrumbs",this.destroyed=!1,this._state={};const{plugins:K=[],beforeSend:W=ut=>ut,beforeBreadcrumb:X=ut=>ut,blacklistUrls:Y=[],ignoreErrors:tt=[],release:et=void 0,maxBreadcrumbs:st=MAX_BREADCRUMBS}=this.options||{};this.plugins=K.map(ut=>new ut(this)),this.beforeSend=W,this.beforeBreadcrumb=X,this.blacklistUrls=Y,this.ignoreErrors=tt,this.release=et,this.maxBreadcrumbs=st>=0?st:MAX_BREADCRUMBS}get state(){return this._state}clearState(){this._state={}}setTags(U){return this.setKeyState("tags",gt({},U)),this}setTag(U,R){return this.extendState({tags:{[U]:R}}),this}setExtra(U,R){return this.extendState({extra:{[U]:R}}),this}setExtras(U){return this.setKeyState("extra",gt({},U)),this}setUser(U){return this.setKeyState("user",U?gt({},U):void 0),this}clone(){const U=new BrowserMicroSentryClient(xt(gt({},this.options),{plugins:[]}));return U.extendState(this.state),U}withScope(U){const R=this.clone();U(R),R.destroy(),this.setBreadcrumbs(void 0)}addBreadcrumb(U){const R=this.beforeBreadcrumb(U);R&&(this.extendState({[this.breadcrumbsKeyName]:[gt({timestamp:Date.now()/1e3},R)]}),this.trimBreadcrumbs())}setBreadcrumbs(U){this.setKeyState(this.breadcrumbsKeyName,U),this.trimBreadcrumbs()}captureMessage(U,R){this.send(xt(gt({},this.getRequestBlank()),{message:U,level:R}))}destroy(){this.destroyed=!0,this.plugins.forEach(U=>{U.destroy&&U.destroy()})}isIgnoredError(U){return this.ignoreErrors.length?this.getPossibleEventMessages(U).some(R=>this.ignoreErrors.some(K=>isMatchingPattern(R,K))):!1}extractQueryString(U){let R=U;if(R){R.startsWith("/")&&(R="http://prefix".concat(R));try{const K=new URL(R).search.slice(1);return K.length?K:void 0}catch(K){return}}}getRequestBlank(){const U=this.window.location.toString();return gt(xt(gt({request:{url:U,query_string:this.extractQueryString(U),headers:{"User-Agent":this.window.navigator.userAgent}}},super.getRequestBlank()),{sdk:{name:"micro-sentry.javascript.browser",version:"0.0.0"}}),this.state)}send(U){if(this.destroyed||this.isDeniedUrl(U)||this.isIgnoredError(U))return;const R=this.beforeSend(gt({release:this.release},U));R&&(super.send(R),this.setBreadcrumbs(void 0))}getPossibleEventMessages(U){if(U.message)return[U.message];if(U.exception)try{const{type:R="",value:K=""}=U.exception.values&&U.exception.values[0]||{};return["".concat(K),"".concat(R,": ").concat(K)]}catch(R){return[]}return[]}isDeniedUrl(U){if(!this.blacklistUrls.length)return!1;const R=this.getEventFilterUrl(U);return R?this.blacklistUrls.some(K=>isMatchingPattern(R,K)):!1}getEventFilterUrl(U){try{if(U.exception){const R=U.exception.values&&U.exception.values[0].stacktrace&&U.exception.values[0].stacktrace.frames;return R&&R[R.length-1].filename||null}return null}catch(R){return null}}extendState(U){this._state=Object.keys(U).reduce((R,K)=>{const W=this._state[K],X=Array.isArray(W)?W:null,Y=U[K],tt=Array.isArray(Y)?Y:null;return xt(gt({},R),{[K]:X||tt?[...X||[],...tt||[]]:gt(gt({},typeof W!="string"?W:{}),typeof Y!="string"?Y:{})})},this._state)}setKeyState(U,R){this._state[U]=R}getKeyState(U){return this._state[U]}trimBreadcrumbs(){var R;const U=this.getKeyState(this.breadcrumbsKeyName);U&&((R=U.length)!=null?R:0)>this.maxBreadcrumbs&&this.setKeyState(this.breadcrumbsKeyName,this.maxBreadcrumbs>0?U.slice(-this.maxBreadcrumbs):[])}}const sentry=new BrowserMicroSentryClient({dsn:"https://[email protected]/4506991592603648",ignoreErrors:[],beforeSend:L=>(L.user&&(L.user.ip_address=void 0),console.debug("Reporting:",L),L)});function reportError(L){sentry.report(L)}function ErrorBoundary({children:L}
330){const[U,R]=b();return U&&(console.error(U),reportError(U)),u$2(k$1,{children:typeof U=="undefined"&&L})}function r(){return(r=Object.assign?Object.assign.bind():function(L){for(var U=1;U<arguments.length;U++){var R=arguments[U];for(var K in R)Object.prototype.hasOwnProperty.call(R,K)&&(L[K]=R[K])}return L}).apply(this,arguments)}var i=["context","children"];function a(L){this.getChildContext=function(){return L.context};var U=L.children,R=function(K,W){if(K==null)return{};var X,Y,tt={},et=Object.keys(K);for(Y=0;Y<et.length;Y++)W.indexOf(X=et[Y])>=0||(tt[X]=K[X]);return tt}(L,i);return G(U,R)}function s(){var L=new CustomEvent("_preact",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(L),this._vdom=g(a,r({},this._props,{context:L.detail.context}),function U(R,K){if(R.nodeType===3)return R.data;if(R.nodeType!==1)return null;var W=[],X={},Y=0,tt=R.attributes,et=R.childNodes;for(Y=tt.length;Y--;)tt[Y].name!=="slot"&&(X[tt[Y].name]=tt[Y].value,X[c(tt[Y].name)]=tt[Y].value);for(Y=et.length;Y--;){var st=U(et[Y],null),ut=et[Y].slot;ut?X[ut]=g(p,{name:ut},st):W[Y]=st}var Q=K?g(p,null,W):W;return g(K||R.nodeName.toLowerCase(),X,Q)}(this,this._vdomComponent)),(this.hasAttribute("hydrate")?E:D$1)(this._vdom,this._root)}function c(L){return L.replace(/-(\w)/g,function(U,R){return R?R.toUpperCase():""})}function l(L,U,R){if(this._vdom){var K={};K[L]=R=R==null?void 0:R,K[c(L)]=R,this._vdom=G(this._vdom,K),D$1(this._vdom,this._root)}}function u(){D$1(this._vdom=null,this._root)}function p(L,U){var R=this;return g("slot",r({},L,{ref:function(K){K?(R.ref=K,R._listener||(R._listener=function(W){W.stopPropagation(),W.detail.context=U},K.addEventListener("_preact",R._listener))):R.ref.removeEventListener("_preact",R._listener)}}))}function register(L,U,R,K){function W(){var X=Reflect.construct(HTMLElement,[],W);return X._vdomComponent=L,X._root=K&&K.shadow?X.attachShadow({mode:K.mode||"open"}):X,X}return(W.prototype=Object.create(HTMLElement.prototype)).constructor=W,W.prototype.connectedCallback=s,W.prototype.attributeChangedCallback=l,W.prototype.disconnectedCallback=u,R=R||L.observedAttributes||Object.keys(L.propTypes||{}),W.observedAttributes=R,R.forEach(function(X){Object.defineProperty(W.prototype,X,{get:function(){return this._vdom.props[X]},set:function(Y){this._vdom?this.attributeChangedCallback(X,null,Y):(this._props||(this._props={}),this._props[X]=Y,this.connectedCallback());var tt=typeof Y;Y!=null&&tt!=="string"&&tt!=="boolean"&&tt!=="number"||this.setAttribute(X,Y)}})}),customElements.define(U,W)}function registerWebComponent(L,U,R=[]){if(!isAlmaTagName(U)){console.error("<".concat(U,"> is not an Alma Media web component. Please use a valid tag name."));return}if(!supportsShadowDomV1()){console.error("<".concat(U,"> Shadow DOM v1 is not supported in this browser."));return}customElements.get(U)?console.warn("<".concat(U,"> is already defined in the custom elements registry.")):register(L,U,R,{shadow:!0})}function supportsShadowDomV1(){return typeof document.head.attachShadow=="function"}function isAlmaTagName(L){return L.startsWith("almamedia-")}const tagName="almamedia-footer";function AlmaFooter(L){const{lang:U="fi"}=L;return u$2(ErrorBoundary,{children:u$2(Container,{lang:U})})}registerWebComponent(AlmaFooter,tagName,["lang"]); 331/*! Build time: 2025-01-09T10:41:05.235Z */ 332 } 333 catch (e) { 334 console.error('Error rendering Alma Footer', e); 335 } 336 })(); 337 </script>
337 338 </article> 339</div> 340<!--/ ALMA CR WIDGET --> 341<!-- ALMACR:CONTENT_OK --> 342 </div> 343</footer> 344<!-- päättyvä container --> 345 346 347 348 349 350 351 352 353 354
354<script type="text/javascript"> 355 (function() { 356 $('.ilmoitusblock2').hide(); 357 358 $('#change-view').on('click', function() { 359 $('.ilmoitusblock2').slideToggle('fast'); 360 $('.ilmoitusblock').slideToggle('fast'); 361 }); 362 })(); 363 </script>
363 364 365 <!--TÃLLÃ JQUERYLLA VOI VAIHTAA BUTTON TEKSTIN --> 366
366<script type="text/javascript"> 367 $('#change-view').click(function(){ 368 var $this = $(this); 369 $this.toggleClass('change-view'); 370 if($this.hasClass('change-view')){ 371 $this.html('<i class="fa fa-th-large"></i>Oletusnäkymä'); 372 } else { 373 $this.html('<i class="fa fa-th-list"></i>Tiivis näkymä'); 374 } 375 }); 376 </script>
376 377 378 </body> 379</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.