PageSourceSearch

https://www.cognifit.com/login

html cognifit.com collected 2026-10-01 09:24:44 UTC 247,195 bytes, 2,916 lines download raw bytes

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
3
4<head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# cognifit-app: http://ogp.me/ns/fb/cognifit-app#">
5<script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="96e64329-f2a9-42f4-86af-3f7a26bf402b" data-blockingmode="auto" type="text/javascript"></script>
5<meta http-equiv="X-UA-Compatible" value="IE=9">
6<meta name="viewport" content="width=device-width, initial-scale=1">
7<title>CogniFit - Account - Login or Reset Password</title><link href="/favicon/favicon.ico" rel="shortcut icon" type="image/x-icon" />        
7<script type="text/javascript" src="//dcmc7jx5auk5b.cloudfront.net/jsmin/v811/v2/all/jquery/jquery-3.7.1.min.js" data-cookieconsent="ignore"></script>
7
8        
8<script type="text/javascript" src="https://dcmc7jx5auk5b.cloudfront.net/jsmin/v811/home_su.js" data-cookieconsent="ignore"></script>
8
9                
9<script type="text/javascript" src="//dcmc7jx5auk5b.cloudfront.net/jsmin/v811/v2/all/jquery/jquery-ui.min-plus-colorbox.js" data-cookieconsent="ignore"></script>
9
10        
10<script type="text/javascript" src="//dcmc7jx5auk5b.cloudfront.net/jsmin/v811/v2/all/jquery/jquery.scrollTo.js" data-cookieconsent="ignore"></script>
10
11        
12                
12<script type="text/javascript" src="https://dcmc7jx5auk5b.cloudfront.net/jsmin/v811/Login.js" data-cookieconsent="ignore"></script>
12
13        
13<script type="text/javascript" src="https://dcmc7jx5auk5b.cloudfront.net/jsmin/v811/v2/all/ChatCSManager.js" data-cookieconsent="ignore"></script>
13
14        
14<script>
15            onRenderButton();
16            FastReg.locale = 'en';
17        </script>
17
18                <link href="https://css.cognifit.com/cssmin/v841/newart.css" media="screen" rel="stylesheet" type="text/css" />
19        <link href="https://css.cognifit.com/cssmin/v841/new_corp.css" media="screen" rel="stylesheet" type="text/css" />
20        <!--<link rel="shortcut icon" href="/favicon/favicon.ico" />-->
21		<link rel="apple-touch-icon" sizes="180x180" href="/favicon/apple-touch-icon.png">
22		<link rel="icon" type="image/png" sizes="32x32" href="/favicon/favicon-32x32.png">
23		<link rel="icon" type="image/png" sizes="16x16" href="/favicon/favicon-16x16.png">
24		<link rel="manifest" href="/favicon/site.webmanifest">
25		<link rel="mask-icon" href="/favicon/safari-pinned-tab.svg" color="#007cd5">
26		<meta name="msapplication-TileColor" content="#007cd5">
27		<meta name="theme-color" content="#ffffff">
28        
29    <link rel="canonical" href="https://www.cognifit.com/login" />
30    <link rel="alternate" href="https://www.cognifit.com/ad/en/login" hreflang="en-AD" />
31    <link rel="alternate" href="https://www.cognifit.com/ad/login" hreflang="es-AD" />
32    <link rel="alternate" href="https://www.cognifit.com/ad/ca/login" hreflang="ca-AD" />
33    <link rel="alternate" href="https://www.cognifit.com/ae/en/login" hreflang="en-AE" />
34    <link rel="alternate" href="https://www.cognifit.com/ae/login" hreflang="ar-AE" />
35    <link rel="alternate" href="https://www.cognifit.com/af/login" hreflang="en-AF" />
36    <link rel="alternate" href="https://www.cognifit.com/ag/login" hreflang="en-AG" />
37    <link rel="alternate" href="https://www.cognifit.com/al/login" hreflang="en-AL" />
38    <link rel="alternate" href="https://www.cognifit.com/am/login" hreflang="en-AM" />
39    <link rel="alternate" href="https://www.cognifit.com/ao/en/login" hreflang="en-AO" />
40    <link rel="alternate" href="https://www.cognifit.com/ao/login" hreflang="pt-AO" />
41    <link rel="alternate" href="https://www.cognifit.com/ar/en/login" hreflang="en-AR" />
42    <link rel="alternate" href="https://www.cognifit.com/ar/login" hreflang="es-AR" />
43    <link rel="alternate" href="https://www.cognifit.com/at/en/login" hreflang="en-AT" />
44    <link rel="alternate" href="https://www.cognifit.com/at/login" hreflang="de-AT" />
45    <link rel="alternate" href="https://www.cognifit.com/au/login" hreflang="en-AU" />
46    <link rel="alternate" href="https://www.cognifit.com/az/login" hreflang="en-AZ" />
47    <link rel="alternate" href="https://www.cognifit.com/ba/login" hreflang="en-BA" />
48    <link rel="alternate" href="https://www.cognifit.com/ba/sr/login" hreflang="sr-BA" />
49    <link rel="alternate" href="https://www.cognifit.com/bb/login" hreflang="en-BB" />
50    <link rel="alternate" href="https://www.cognifit.com/bd/login" hreflang="en-BD" />
51    <link rel="alternate" href="https://www.cognifit.com/bd/bn/login" hreflang="bn-BD" />
52    <link rel="alternate" href="https://www.cognifit.com/be/en/login" hreflang="en-BE" />
53    <link rel="alternate" href="https://www.cognifit.com/be/de/login" hreflang="de-BE" />
54    <link rel="alternate" href="https://www.cognifit.com/be/login" hreflang="fr-BE" />
55    <link rel="alternate" href="https://www.cognifit.com/be/nl/login" hreflang="nl-BE" />
56    <link rel="alternate" href="https://www.cognifit.com/bf/en/login" hreflang="en-BF" />
57    <link rel="alternate" href="https://www.cognifit.com/bf/login" hreflang="fr-BF" />
58    <link rel="alternate" href="https://www.cognifit.com/bg/login" hreflang="en-BG" />
59    <link rel="alternate" href="https://www.cognifit.com/bh/en/login" hreflang="en-BH" />
60    <link rel="alternate" href="https://www.cognifit.com/bh/login" hreflang="ar-BH" />
61    <link rel="alternate" href="https://www.cognifit.com/bi/en/login" hreflang="en-BI" />
62    <link rel="alternate" href="https://www.cognifit.com/bi/login" hreflang="fr-BI" />
63    <link rel="alternate" href="https://www.cognifit.com/bj/en/login" hreflang="en-BJ" />
64    <link rel="alternate" href="https://www.cognifit.com/bj/login" hreflang="fr-BJ" />
65    <link rel="alternate" href="https://www.cognifit.com/bn/login" hreflang="en-BN" />
66    <link rel="alternate" href="https://www.cognifit.com/bo/en/login" hreflang="en-BO" />
67    <link rel="alternate" href="https://www.cognifit.com/bo/login" hreflang="es-BO" />
68    <link rel="alternate" href="https://www.cognifit.com/br/en/login" hreflang="en-BR" />
69    <link rel="alternate" href="https://www.cognifit.com/br/login" hreflang="pt-BR" />
70    <link rel="alternate" href="https://www.cognifit.com/bs/login" hreflang="en-BS" />
71    <link rel="alternate" href="https://www.cognifit.com/bt/login" hreflang="en-BT" />
72    <link rel="alternate" href="https://www.cognifit.com/bw/login" hreflang="en-BW" />
73    <link rel="alternate" href="https://www.cognifit.com/by/en/login" hreflang="en-BY" />
74    <link rel="alternate" href="https://www.cognifit.com/by/login" hreflang="ru-BY" />
75    <link rel="alternate" href="https://www.cognifit.com/bz/login" hreflang="en-BZ" />
76    <link rel="alternate" href="https://www.cognifit.com/ca/login" hreflang="en-CA" />
77    <link rel="alternate" href="https://www.cognifit.com/ca/fr/login" hreflang="fr-CA" />
78    <link rel="alternate" href="https://www.cognifit.com/cd/en/login" hreflang="en-CD" />
79    <link rel="alternate" href="https://www.cognifit.com/cd/login" hreflang="fr-CD" />
80    <link rel="alternate" href="https://www.cognifit.com/cf/en/login" hreflang="en-CF" />
81    <link rel="alternate" href="https://www.cognifit.com/cf/login" hreflang="fr-CF" />
82    <link rel="alternate" href="https://www.cognifit.com/cg/en/login" hreflang="en-CG" />
83    <link rel="alternate" href="https://www.cognifit.com/cg/login" hreflang="fr-CG" />
84    <link rel="alternate" href="https://www.cognifit.com/ch/en/login" hreflang="en-CH" />
85    <link rel="alternate" href="https://www.cognifit.com/ch/login" hreflang="de-CH" />
86    <link rel="alternate" href="https://www.cognifit.com/ch/fr/login" hreflang="fr-CH" />
87    <link rel="alternate" href="https://www.cognifit.com/ch/it/login" hreflang="it-CH" />
88    <link rel="alternate" href="https://www.cognifit.com/ci/en/login" hreflang="en-CI" />
89    <link rel="alternate" href="https://www.cognifit.com/ci/login" hreflang="fr-CI" />
90    <link rel="alternate" href="https://www.cognifit.com/ck/login" hreflang="en-CK" />
91    <link rel="alternate" href="https://www.cognifit.com/cl/en/login" hreflang="en-CL" />
92    <link rel="alternate" href="https://www.cognifit.com/cl/login" hreflang="es-CL" />
93    <link rel="alternate" href="https://www.cognifit.com/cm/en/login" hreflang="en-CM" />
94    <link rel="alternate" href="https://www.cognifit.com/cm/login" hreflang="fr-CM" />
95    <link rel="alternate" href="https://www.cognifit.com/cn/login" hreflang="zh-CN" />
96    <link rel="alternate" href="https://www.cognifit.com/co/en/login" hreflang="en-CO" />
97    <link rel="alternate" href="https://www.cognifit.com/co/login" hreflang="es-CO" />
98    <link rel="alternate" href="https://www.cognifit.com/cr/en/login" hreflang="en-CR" />
99    <link rel="alternate" href="https://www.cognifit.com/cr/login" hreflang="es-CR" />
100    <link rel="alternate" href="https://www.cognifit.com/cu/en/login" hreflang="en-CU" />
101    <link rel="alternate" href="https://www.cognifit.com/cu/login" hreflang="es-CU" />
102    <link rel="alternate" href="https://www.cognifit.com/cv/en/login" hreflang="en-CV" />
103    <link rel="alternate" href="https://www.cognifit.com/cv/login" hreflang="pt-CV" />
104    <link rel="alternate" href="https://www.cognifit.com/cy/en/login" hreflang="en-CY" />
105    <link rel="alternate" href="https://www.cognifit.com/cy/login" hreflang="el-CY" />
106    <link rel="alternate" href="https://www.cognifit.com/cz/login" hreflang="en-CZ" />
107    <link rel="alternate" href="https://www.cognifit.com/de/en/login" hreflang="en-DE" />
108    <link rel="alternate" href="https://www.cognifit.com/de/login" hreflang="de-DE" />
109    <link rel="alternate" href="https://www.cognifit.com/dj/en/login" hreflang="en-DJ" />
110    <link rel="alternate" href="https://www.cognifit.com/dj/login" hreflang="ar-DJ" />
111    <link rel="alternate" href="https://www.cognifit.com/dj/fr/login" hreflang="fr-DJ" />
112    <link rel="alternate" href="https://www.cognifit.com/dk/login" hreflang="en-DK" />
113    <link rel="alternate" href="https://www.cognifit.com/dm/login" hreflang="en-DM" />
114    <link rel="alternate" href="https://www.cognifit.com/do/en/login" hreflang="en-DO" />
115    <link rel="alternate" href="https://www.cognifit.com/do/login" hreflang="es-DO" />
116    <link rel="alternate" href="https://www.cognifit.com/dz/en/login" hreflang="en-DZ" />
117    <link rel="alternate" href="https://www.cognifit.com/dz/login" hreflang="ar-DZ" />
118    <link rel="alternate" href="https://www.cognifit.com/ec/en/login" hreflang="en-EC" />
119    <link rel="alternate" href="https://www.cognifit.com/ec/login" hreflang="es-EC" />
120    <link rel="alternate" href="https://www.cognifit.com/ee/en/login" hreflang="en-EE" />
121    <link rel="alternate" href="https://www.cognifit.com/eg/en/login" hreflang="en-EG" />
122    <link rel="alternate" href="https://www.cognifit.com/eg/login" hreflang="ar-EG" />
123    <link rel="alternate" href="https://www.cognifit.com/er/login" hreflang="en-ER" />
124    <link rel="alternate" href="https://www.cognifit.com/es/en/login" hreflang="en-ES" />
125    <link rel="alternate" href="https://www.cognifit.com/es/login" hreflang="es-ES" />
126    <link rel="alternate" href="https://www.cognifit.com/es/ru/login" hreflang="ru-ES" />
127    <link rel="alternate" href="https://www.cognifit.com/es/ar/login" hreflang="ar-ES" />
128    <link rel="alternate" href="https://www.cognifit.com/es/ca/login" hreflang="ca-ES" />
129    <link rel="alternate" href="https://www.cognifit.com/es/de/login" hreflang="de-ES" />
130    <link rel="alternate" href="https://www.cognifit.com/es/el/login" hreflang="el-ES" />
131    <link rel="alternate" href="https://www.cognifit.com/es/eu/login" hreflang="eu-ES" />
132    <link rel="alternate" href="https://www.cognifit.com/es/fr/login" hreflang="fr-ES" />
133    <link rel="alternate" href="https://www.cognifit.com/es/gl/login" hreflang="gl-ES" />
134    <link rel="alternate" href="https://www.cognifit.com/es/he/login" hreflang="he-ES" />
135    <link rel="alternate" href="https://www.cognifit.com/es/it/login" hreflang="it-ES" />
136    <link rel="alternate" href="https://www.cognifit.com/es/ja/login" hreflang="ja-ES" />
137    <link rel="alternate" href="https://www.cognifit.com/es/ko/login" hreflang="ko-ES" />
138    <link rel="alternate" href="https://www.cognifit.com/es/nl/login" hreflang="nl-ES" />
139    <link rel="alternate" href="https://www.cognifit.com/es/pl/login" hreflang="pl-ES" />
140    <link rel="alternate" href="https://www.cognifit.com/es/pt/login" hreflang="pt-ES" />
141    <link rel="alternate" href="https://www.cognifit.com/es/tr/login" hreflang="tr-ES" />
142    <link rel="alternate" href="https://www.cognifit.com/es/sr/login" hreflang="sr-ES" />
143    <link rel="alternate" href="https://www.cognifit.com/es/cn/login" hreflang="zh-ES" />
144    <link rel="alternate" href="https://www.cognifit.com/et/login" hreflang="en-ET" />
145    <link rel="alternate" href="https://www.cognifit.com/fi/login" hreflang="en-FI" />
146    <link rel="alternate" href="https://www.cognifit.com/fj/login" hreflang="en-FJ" />
147    <link rel="alternate" href="https://www.cognifit.com/fm/login" hreflang="en-FM" />
148    <link rel="alternate" href="https://www.cognifit.com/fo/login" hreflang="en-FO" />
149    <link rel="alternate" href="https://www.cognifit.com/fr/en/login" hreflang="en-FR" />
150    <link rel="alternate" href="https://www.cognifit.com/fr/login" hreflang="fr-FR" />
151    <link rel="alternate" href="https://www.cognifit.com/ga/en/login" hreflang="en-GA" />
152    <link rel="alternate" href="https://www.cognifit.com/ga/login" hreflang="fr-GA" />
153    <link rel="alternate" href="https://www.cognifit.com/gb/login" hreflang="en-GB" />
154    <link rel="alternate" href="https://www.cognifit.com/gd/login" hreflang="en-GD" />
155    <link rel="alternate" href="https://www.cognifit.com/ge/login" hreflang="en-GE" />
156    <link rel="alternate" href="https://www.cognifit.com/gh/login" hreflang="en-GH" />
157    <link rel="alternate" href="https://www.cognifit.com/gl/login" hreflang="en-GL" />
158    <link rel="alternate" href="https://www.cognifit.com/gm/login" hreflang="en-GM" />
159    <link rel="alternate" href="https://www.cognifit.com/gn/en/login" hreflang="en-GN" />
160    <link rel="alternate" href="https://www.cognifit.com/gn/login" hreflang="fr-GN" />
161    <link rel="alternate" href="https://www.cognifit.com/gq/en/login" hreflang="en-GQ" />
162    <link rel="alternate" href="https://www.cognifit.com/gq/login" hreflang="es-GQ" />
163    <link rel="alternate" href="https://www.cognifit.com/gq/fr/login" hreflang="fr-GQ" />
164    <link rel="alternate" href="https://www.cognifit.com/gq/pt/login" hreflang="pt-GQ" />
165    <link rel="alternate" href="https://www.cognifit.com/gr/en/login" hreflang="en-GR" />
166    <link rel="alternate" href="https://www.cognifit.com/gr/login" hreflang="el-GR" />
167    <link rel="alternate" href="https://www.cognifit.com/gt/en/login" hreflang="en-GT" />
168    <link rel="alternate" href="https://www.cognifit.com/gt/login" hreflang="es-GT" />
169    <link rel="alternate" href="https://www.cognifit.com/gw/en/login" hreflang="en-GW" />
170    <link rel="alternate" href="https://www.cognifit.com/gw/login" hreflang="pt-GW" />
171    <link rel="alternate" href="https://www.cognifit.com/gy/login" hreflang="en-GY" />
172    <link rel="alternate" href="https://www.cognifit.com/hk/en/login" hreflang="en-HK" />
173    <link rel="alternate" href="https://www.cognifit.com/hk/login" hreflang="zh-HK" />
174    <link rel="alternate" href="https://www.cognifit.com/hn/en/login" hreflang="en-HN" />
175    <link rel="alternate" href="https://www.cognifit.com/hn/login" hreflang="es-HN" />
176    <link rel="alternate" href="https://www.cognifit.com/hr/login" hreflang="en-HR" />
177    <link rel="alternate" href="https://www.cognifit.com/ht/en/login" hreflang="en-HT" />
178    <link rel="alternate" href="https://www.cognifit.com/ht/login" hreflang="fr-HT" />
179    <link rel="alternate" href="https://www.cognifit.com/hu/login" hreflang="en-HU" />
180    <link rel="alternate" href="https://www.cognifit.com/id/login" hreflang="en-ID" />
181    <link rel="alternate" href="https://www.cognifit.com/id/id/login" hreflang="id-ID" />
182    <link rel="alternate" href="https://www.cognifit.com/ie/login" hreflang="en-IE" />
183    <link rel="alternate" href="https://www.cognifit.com/il/en/login" hreflang="en-IL" />
184    <link rel="alternate" href="https://www.cognifit.com/il/login" hreflang="he-IL" />
185    <link rel="alternate" href="https://www.cognifit.com/in/login" hreflang="en-IN" />
186    <link rel="alternate" href="https://www.cognifit.com/iq/en/login" hreflang="en-IQ" />
187    <link rel="alternate" href="https://www.cognifit.com/iq/login" hreflang="ar-IQ" />
188    <link rel="alternate" href="https://www.cognifit.com/ir/en/login" hreflang="en-IR" />
189    <link rel="alternate" href="https://www.cognifit.com/is/login" hreflang="en-IS" />
190    <link rel="alternate" href="https://www.cognifit.com/it/en/login" hreflang="en-IT" />
191    <link rel="alternate" href="https://www.cognifit.com/it/login" hreflang="it-IT" />
192    <link rel="alternate" href="https://www.cognifit.com/jm/login" hreflang="en-JM" />
193    <link rel="alternate" href="https://www.cognifit.com/jo/en/login" hreflang="en-JO" />
194    <link rel="alternate" href="https://www.cognifit.com/jo/login" hreflang="ar-JO" />
195    <link rel="alternate" href="https://www.cognifit.com/jp/en/login" hreflang="en-JP" />
196    <link rel="alternate" href="https://www.cognifit.com/jp/login" hreflang="ja-JP" />
197    <link rel="alternate" href="https://www.cognifit.com/ke/login" hreflang="en-KE" />
198    <link rel="alternate" href="https://www.cognifit.com/kg/en/login" hreflang="en-KG" />
199    <link rel="alternate" href="https://www.cognifit.com/kg/login" hreflang="ru-KG" />
200    <link rel="alternate" href="https://www.cognifit.com/kh/login" hreflang="en-KH" />
201    <link rel="alternate" href="https://www.cognifit.com/ki/login" hreflang="en-KI" />
202    <link rel="alternate" href="https://www.cognifit.com/km/en/login" hreflang="en-KM" />
203    <link rel="alternate" href="https://www.cognifit.com/km/login" hreflang="ar-KM" />
204    <link rel="alternate" href="https://www.cognifit.com/km/fr/login" hreflang="fr-KM" />
205    <link rel="alternate" href="https://www.cognifit.com/kn/login" hreflang="en-KN" />
206    <link rel="alternate" href="https://www.cognifit.com/kp/login" hreflang="en-KP" />
207    <link rel="alternate" href="https://www.cognifit.com/kp/ko/login" hreflang="ko-KP" />
208    <link rel="alternate" href="https://www.cognifit.com/kr/en/login" hreflang="en-KR" />
209    <link rel="alternate" href="https://www.cognifit.com/kr/login" hreflang="ko-KR" />
210    <link rel="alternate" href="https://www.cognifit.com/kw/en/login" hreflang="en-KW" />
211    <link rel="alternate" href="https://www.cognifit.com/kw/login" hreflang="ar-KW" />
212    <link rel="alternate" href="https://www.cognifit.com/kz/en/login" hreflang="en-KZ" />
213    <link rel="alternate" href="https://www.cognifit.com/kz/login" hreflang="ru-KZ" />
214    <link rel="alternate" href="https://www.cognifit.com/la/login" hreflang="en-LA" />
215    <link rel="alternate" href="https://www.cognifit.com/lb/en/login" hreflang="en-LB" />
216    <link rel="alternate" href="https://www.cognifit.com/lb/login" hreflang="ar-LB" />
217    <link rel="alternate" href="https://www.cognifit.com/lc/login" hreflang="en-LC" />
218    <link rel="alternate" href="https://www.cognifit.com/li/en/login" hreflang="en-LI" />
219    <link rel="alternate" href="https://www.cognifit.com/li/login" hreflang="de-LI" />
220    <link rel="alternate" href="https://www.cognifit.com/lk/login" hreflang="en-LK" />
221    <link rel="alternate" href="https://www.cognifit.com/lr/login" hreflang="en-LR" />
222    <link rel="alternate" href="https://www.cognifit.com/ls/login" hreflang="en-LS" />
223    <link rel="alternate" href="https://www.cognifit.com/lt/login" hreflang="en-LT" />
224    <link rel="alternate" href="https://www.cognifit.com/lu/en/login" hreflang="en-LU" />
225    <link rel="alternate" href="https://www.cognifit.com/lu/de/login" hreflang="de-LU" />
226    <link rel="alternate" href="https://www.cognifit.com/lu/login" hreflang="fr-LU" />
227    <link rel="alternate" href="https://www.cognifit.com/lv/login" hreflang="en-LV" />
228    <link rel="alternate" href="https://www.cognifit.com/ly/en/login" hreflang="en-LY" />
229    <link rel="alternate" href="https://www.cognifit.com/ly/login" hreflang="ar-LY" />
230    <link rel="alternate" href="https://www.cognifit.com/ma/en/login" hreflang="en-MA" />
231    <link rel="alternate" href="https://www.cognifit.com/ma/login" hreflang="ar-MA" />
232    <link rel="alternate" href="https://www.cognifit.com/mc/en/login" hreflang="en-MC" />
233    <link rel="alternate" href="https://www.cognifit.com/mc/login" hreflang="fr-MC" />
234    <link rel="alternate" href="https://www.cognifit.com/md/login" hreflang="en-MD" />
235    <link rel="alternate" href="https://www.cognifit.com/me/login" hreflang="en-ME" />
236    <link rel="alternate" href="https://www.cognifit.com/me/sr/login" hreflang="sr-ME" />
237    <link rel="alternate" href="https://www.cognifit.com/mg/en/login" hreflang="en-MG" />
238    <link rel="alternate" href="https://www.cognifit.com/mg/login" hreflang="fr-MG" />
239    <link rel="alternate" href="https://www.cognifit.com/mh/login" hreflang="en-MH" />
240    <link rel="alternate" href="https://www.cognifit.com/mk/login" hreflang="en-MK" />
241    <link rel="alternate" href="https://www.cognifit.com/ml/en/login" hreflang="en-ML" />
242    <link rel="alternate" href="https://www.cognifit.com/ml/login" hreflang="fr-ML" />
243    <link rel="alternate" href="https://www.cognifit.com/mm/login" hreflang="en-MM" />
244    <link rel="alternate" href="https://www.cognifit.com/mn/en/login" hreflang="en-MN" />
245    <link rel="alternate" href="https://www.cognifit.com/mn/login" hreflang="mn-MN" />
246    <link rel="alternate" href="https://www.cognifit.com/mr/en/login" hreflang="en-MR" />
247    <link rel="alternate" href="https://www.cognifit.com/mr/login" hreflang="ar-MR" />
248    <link rel="alternate" href="https://www.cognifit.com/mt/en/login" hreflang="en-MT" />
249    <link rel="alternate" href="https://www.cognifit.com/mt/login" hreflang="it-MT" />
250    <link rel="alternate" href="https://www.cognifit.com/mu/login" hreflang="en-MU" />
251    <link rel="alternate" href="https://www.cognifit.com/mv/login" hreflang="en-MV" />
252    <link rel="alternate" href="https://www.cognifit.com/mw/login" hreflang="en-MW" />
253    <link rel="alternate" href="https://www.cognifit.com/mx/en/login" hreflang="en-MX" />
254    <link rel="alternate" href="https://www.cognifit.com/mx/login" hreflang="es-MX" />
255    <link rel="alternate" href="https://www.cognifit.com/my/login" hreflang="en-MY" />
256    <link rel="alternate" href="https://www.cognifit.com/mz/en/login" hreflang="en-MZ" />
257    <link rel="alternate" href="https://www.cognifit.com/mz/login" hreflang="pt-MZ" />
258    <link rel="alternate" href="https://www.cognifit.com/na/login" hreflang="en-NA" />
259    <link rel="alternate" href="https://www.cognifit.com/ne/en/login" hreflang="en-NE" />
260    <link rel="alternate" href="https://www.cognifit.com/ne/login" hreflang="fr-NE" />
261    <link rel="alternate" href="https://www.cognifit.com/ng/login" hreflang="en-NG" />
262    <link rel="alternate" href="https://www.cognifit.com/ni/en/login" hreflang="en-NI" />
263    <link rel="alternate" href="https://www.cognifit.com/ni/login" hreflang="es-NI" />
264    <link rel="alternate" href="https://www.cognifit.com/nl/en/login" hreflang="en-NL" />
265    <link rel="alternate" href="https://www.cognifit.com/nl/login" hreflang="nl-NL" />
266    <link rel="alternate" href="https://www.cognifit.com/no/login" hreflang="en-NO" />
267    <link rel="alternate" href="https://www.cognifit.com/np/login" hreflang="en-NP" />
268    <link rel="alternate" href="https://www.cognifit.com/nr/login" hreflang="en-NR" />
269    <link rel="alternate" href="https://www.cognifit.com/nu/login" hreflang="en-NU" />
270    <link rel="alternate" href="https://www.cognifit.com/nz/login" hreflang="en-NZ" />
271    <link rel="alternate" href="https://www.cognifit.com/om/en/login" hreflang="en-OM" />
272    <link rel="alternate" href="https://www.cognifit.com/om/login" hreflang="ar-OM" />
273    <link rel="alternate" href="https://www.cognifit.com/pa/en/login" hreflang="en-PA" />
274    <link rel="alternate" href="https://www.cognifit.com/pa/login" hreflang="es-PA" />
275    <link rel="alternate" href="https://www.cognifit.com/pe/en/login" hreflang="en-PE" />
276    <link rel="alternate" href="https://www.cognifit.com/pe/login" hreflang="es-PE" />
277    <link rel="alternate" href="https://www.cognifit.com/pg/login" hreflang="en-PG" />
278    <link rel="alternate" href="https://www.cognifit.com/ph/login" hreflang="en-PH" />
279    <link rel="alternate" href="https://www.cognifit.com/pk/login" hreflang="en-PK" />
280    <link rel="alternate" href="https://www.cognifit.com/pk/ur/login" hreflang="ur-PK" />
281    <link rel="alternate" href="https://www.cognifit.com/pl/login" hreflang="en-PL" />
282    <link rel="alternate" href="https://www.cognifit.com/pl/pl/login" hreflang="pl-PL" />
283    <link rel="alternate" href="https://www.cognifit.com/pr/en/login" hreflang="en-PR" />
284    <link rel="alternate" href="https://www.cognifit.com/pr/login" hreflang="es-PR" />
285    <link rel="alternate" href="https://www.cognifit.com/ps/en/login" hreflang="en-PS" />
286    <link rel="alternate" href="https://www.cognifit.com/ps/login" hreflang="ar-PS" />
287    <link rel="alternate" href="https://www.cognifit.com/pt/en/login" hreflang="en-PT" />
288    <link rel="alternate" href="https://www.cognifit.com/pt/login" hreflang="pt-PT" />
289    <link rel="alternate" href="https://www.cognifit.com/pw/login" hreflang="en-PW" />
290    <link rel="alternate" href="https://www.cognifit.com/py/en/login" hreflang="en-PY" />
291    <link rel="alternate" href="https://www.cognifit.com/py/login" hreflang="es-PY" />
292    <link rel="alternate" href="https://www.cognifit.com/qa/en/login" hreflang="en-QA" />
293    <link rel="alternate" href="https://www.cognifit.com/qa/login" hreflang="ar-QA" />
294    <link rel="alternate" href="https://www.cognifit.com/ro/login" hreflang="en-RO" />
295    <link rel="alternate" href="https://www.cognifit.com/rs/en/login" hreflang="en-RS" />
296    <link rel="alternate" href="https://www.cognifit.com/rs/login" hreflang="sr-RS" />
297    <link rel="alternate" href="https://www.cognifit.com/ru/en/login" hreflang="en-RU" />
298    <link rel="alternate" href="https://www.cognifit.com/ru/login" hreflang="ru-RU" />
299    <link rel="alternate" href="https://www.cognifit.com/rw/en/login" hreflang="en-RW" />
300    <link rel="alternate" href="https://www.cognifit.com/rw/login" hreflang="fr-RW" />
301    <link rel="alternate" href="https://www.cognifit.com/sa/en/login" hreflang="en-SA" />
302    <link rel="alternate" href="https://www.cognifit.com/sa/login" hreflang="ar-SA" />
303    <link rel="alternate" href="https://www.cognifit.com/sb/login" hreflang="en-SB" />
304    <link rel="alternate" href="https://www.cognifit.com/sc/en/login" hreflang="en-SC" />
305    <link rel="alternate" href="https://www.cognifit.com/sc/login" hreflang="fr-SC" />
306    <link rel="alternate" href="https://www.cognifit.com/sd/en/login" hreflang="en-SD" />
307    <link rel="alternate" href="https://www.cognifit.com/sd/login" hreflang="ar-SD" />
308    <link rel="alternate" href="https://www.cognifit.com/se/login" hreflang="en-SE" />
309    <link rel="alternate" href="https://www.cognifit.com/sg/login" hreflang="en-SG" />
310    <link rel="alternate" href="https://www.cognifit.com/si/login" hreflang="en-SI" />
311    <link rel="alternate" href="https://www.cognifit.com/sk/login" hreflang="en-SK" />
312    <link rel="alternate" href="https://www.cognifit.com/sl/login" hreflang="en-SL" />
313    <link rel="alternate" href="https://www.cognifit.com/sm/en/login" hreflang="en-SM" />
314    <link rel="alternate" href="https://www.cognifit.com/sm/login" hreflang="it-SM" />
315    <link rel="alternate" href="https://www.cognifit.com/sn/en/login" hreflang="en-SN" />
316    <link rel="alternate" href="https://www.cognifit.com/sn/login" hreflang="fr-SN" />
317    <link rel="alternate" href="https://www.cognifit.com/so/en/login" hreflang="en-SO" />
318    <link rel="alternate" href="https://www.cognifit.com/so/login" hreflang="ar-SO" />
319    <link rel="alternate" href="https://www.cognifit.com/sr/en/login" hreflang="en-SR" />
320    <link rel="alternate" href="https://www.cognifit.com/sr/login" hreflang="nl-SR" />
321    <link rel="alternate" href="https://www.cognifit.com/st/en/login" hreflang="en-ST" />
322    <link rel="alternate" href="https://www.cognifit.com/st/login" hreflang="pt-ST" />
323    <link rel="alternate" href="https://www.cognifit.com/sv/en/login" hreflang="en-SV" />
324    <link rel="alternate" href="https://www.cognifit.com/sv/login" hreflang="es-SV" />
325    <link rel="alternate" href="https://www.cognifit.com/sy/en/login" hreflang="en-SY" />
326    <link rel="alternate" href="https://www.cognifit.com/sy/login" hreflang="ar-SY" />
327    <link rel="alternate" href="https://www.cognifit.com/sz/login" hreflang="en-SZ" />
328    <link rel="alternate" href="https://www.cognifit.com/td/en/login" hreflang="en-TD" />
329    <link rel="alternate" href="https://www.cognifit.com/td/ar/login" hreflang="ar-TD" />
330    <link rel="alternate" href="https://www.cognifit.com/td/login" hreflang="fr-TD" />
331    <link rel="alternate" href="https://www.cognifit.com/tg/en/login" hreflang="en-TG" />
332    <link rel="alternate" href="https://www.cognifit.com/tg/login" hreflang="fr-TG" />
333    <link rel="alternate" href="https://www.cognifit.com/th/en/login" hreflang="en-TH" />
334    <link rel="alternate" href="https://www.cognifit.com/tj/en/login" hreflang="en-TJ" />
335    <link rel="alternate" href="https://www.cognifit.com/tj/login" hreflang="ru-TJ" />
336    <link rel="alternate" href="https://www.cognifit.com/tl/en/login" hreflang="en-TL" />
337    <link rel="alternate" href="https://www.cognifit.com/tl/login" hreflang="pt-TL" />
338    <link rel="alternate" href="https://www.cognifit.com/tm/login" hreflang="en-TM" />
339    <link rel="alternate" href="https://www.cognifit.com/tm/ru/login" hreflang="ru-TM" />
340    <link rel="alternate" href="https://www.cognifit.com/tn/en/login" hreflang="en-TN" />
341    <link rel="alternate" href="https://www.cognifit.com/tn/login" hreflang="ar-TN" />
342    <link rel="alternate" href="https://www.cognifit.com/to/login" hreflang="en-TO" />
343    <link rel="alternate" href="https://www.cognifit.com/tr/en/login" hreflang="en-TR" />
344    <link rel="alternate" href="https://www.cognifit.com/tr/login" hreflang="tr-TR" />
345    <link rel="alternate" href="https://www.cognifit.com/tt/login" hreflang="en-TT" />
346    <link rel="alternate" href="https://www.cognifit.com/tv/login" hreflang="en-TV" />
347    <link rel="alternate" href="https://www.cognifit.com/tw/login" hreflang="en-TW" />
348    <link rel="alternate" href="https://www.cognifit.com/tw/cn/login" hreflang="zh-TW" />
349    <link rel="alternate" href="https://www.cognifit.com/tz/en/login" hreflang="en-TZ" />
350    <link rel="alternate" href="https://www.cognifit.com/ua/login" hreflang="en-UA" />
351    <link rel="alternate" href="https://www.cognifit.com/ug/login" hreflang="en-UG" />
352    <link rel="alternate" href="https://www.cognifit.com/login" hreflang="en-US" />
353    <link rel="alternate" href="https://www.cognifit.com/us/es/login" hreflang="es-US" />
354    <link rel="alternate" href="https://www.cognifit.com/us/ru/login" hreflang="ru-US" />
355    <link rel="alternate" href="https://www.cognifit.com/us/ar/login" hreflang="ar-US" />
356    <link rel="alternate" href="https://www.cognifit.com/us/bn/login" hreflang="bn-US" />
357    <link rel="alternate" href="https://www.cognifit.com/us/de/login" hreflang="de-US" />
358    <link rel="alternate" href="https://www.cognifit.com/us/el/login" hreflang="el-US" />
359    <link rel="alternate" href="https://www.cognifit.com/us/fr/login" hreflang="fr-US" />
360    <link rel="alternate" href="https://www.cognifit.com/us/he/login" hreflang="he-US" />
361    <link rel="alternate" href="https://www.cognifit.com/us/id/login" hreflang="id-US" />
362    <link rel="alternate" href="https://www.cognifit.com/us/it/login" hreflang="it-US" />
363    <link rel="alternate" href="https://www.cognifit.com/us/ja/login" hreflang="ja-US" />
364    <link rel="alternate" href="https://www.cognifit.com/us/ko/login" hreflang="ko-US" />
365    <link rel="alternate" href="https://www.cognifit.com/us/mn/login" hreflang="mn-US" />
366    <link rel="alternate" href="https://www.cognifit.com/us/nl/login" hreflang="nl-US" />
367    <link rel="alternate" href="https://www.cognifit.com/us/pl/login" hreflang="pl-US" />
368    <link rel="alternate" href="https://www.cognifit.com/us/pt/login" hreflang="pt-US" />
369    <link rel="alternate" href="https://www.cognifit.com/us/tr/login" hreflang="tr-US" />
370    <link rel="alternate" href="https://www.cognifit.com/us/ur/login" hreflang="ur-US" />
371    <link rel="alternate" href="https://www.cognifit.com/us/sr/login" hreflang="sr-US" />
372    <link rel="alternate" href="https://www.cognifit.com/us/cn/login" hreflang="zh-US" />
373    <link rel="alternate" href="https://www.cognifit.com/us/hk/login" hreflang="zh-US" />
374    <link rel="alternate" href="https://www.cognifit.com/uy/en/login" hreflang="en-UY" />
375    <link rel="alternate" href="https://www.cognifit.com/uy/login" hreflang="es-UY" />
376    <link rel="alternate" href="https://www.cognifit.com/uz/login" hreflang="en-UZ" />
377    <link rel="alternate" href="https://www.cognifit.com/uz/ru/login" hreflang="ru-UZ" />
378    <link rel="alternate" href="https://www.cognifit.com/vc/login" hreflang="en-VC" />
379    <link rel="alternate" href="https://www.cognifit.com/ve/en/login" hreflang="en-VE" />
380    <link rel="alternate" href="https://www.cognifit.com/ve/login" hreflang="es-VE" />
381    <link rel="alternate" href="https://www.cognifit.com/vn/en/login" hreflang="en-VN" />
382    <link rel="alternate" href="https://www.cognifit.com/vu/en/login" hreflang="en-VU" />
383    <link rel="alternate" href="https://www.cognifit.com/vu/login" hreflang="fr-VU" />
384    <link rel="alternate" href="https://www.cognifit.com/ws/login" hreflang="en-WS" />
385    <link rel="alternate" href="https://www.cognifit.com/ye/en/login" hreflang="en-YE" />
386    <link rel="alternate" href="https://www.cognifit.com/ye/login" hreflang="ar-YE" />
387    <link rel="alternate" href="https://www.cognifit.com/za/login" hreflang="en-ZA" />
388    <link rel="alternate" href="https://www.cognifit.com/zm/login" hreflang="en-ZM" />
389    <link rel="alternate" href="https://www.cognifit.com/zw/login" hreflang="en-ZW" />
390
391<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
391<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1103385959",accountID:"394458",trustKey:"394458",xpid:"Vw8DVVNbGwIAU1VQBwcOX1w=",licenseKey:"698fbd6a93",applicationID:"1074206998",browserID:"1103385959"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
392(()=>{var e={8122(e,t,r){"use strict";r.d(t,{a:()=>i});var n=r(944);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.R)(3);if(!t||"object"!=typeof t)return(0,n.R)(4);const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),s=0===Object.keys(r).length?e:r;for(let a in s)if(void 0!==e[a])try{if(null===e[a]){r[a]=null;continue}Array.isArray(e[a])&&Array.isArray(t[a])?r[a]=Array.from(new Set([...e[a],...t[a]])):e[a]instanceof Map||e[a]instanceof Set||e[a]instanceof Date||e[a]instanceof RegExp?r[a]=e[a]:"object"==typeof e[a]&&null!==t[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){r[a]||(0,n.R)(1,e)}return r}catch(e){(0,n.R)(2,e)}}},2555(e,t,r){"use strict";r.d(t,{f:()=>a});var n=r(384),i=r(8122);const s={beacon:n.NT.beacon,errorBeacon:n.NT.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0};function a(e){try{return!!e.licenseKey&&!!e.errorBeacon&&!!e.applicationID}catch(e){return!1}}r.d(t,["D",0,e=>(0,i.a)(e,s)])},7699(e,t,r){"use strict";var n=r(860);const i={[n.K7.logging]:!0,[n.K7.genericEvents]:!0,[n.K7.jserrors]:!0,[n.K7.ajax]:!0};r.d(t,["It",0,1e6,"KC",0,i,"qh",0,"SESSION_ERROR"])},9324(e,t,r){"use strict";r.d(t,["A",0,"@newrelic/rrweb","x",0,"1.322.0"])},981(e,t,r){"use strict";r.d(t,["R",0,{AJAX:"AjaxRequest",PA:"PageAction",UA:"UserAction",BP:"BrowserPerformance",WS:"WebSocket",SPV:"SecurityPolicyViolation",JSE:"JavaScriptError",LOG:"Log",PVE:"PageView",PVT:"PageViewTiming",SR:"SessionReplay",ST:"SessionTrace",BI:"BrowserInteraction"}])},9752(e,t,r){"use strict";const n="newrelic-iframe-",i=n+"timing-update",s=n+"api",a=n+"api-response",o=n+"vitals-update",c=n+"ajax";r.d(t,["$8",0,o,"Gi",0,a,"KU",0,c,"Pl",0,n,"cS",0,s,"cr",0,i])},6154(e,t,r){"use strict";var n=r(1863);const i="undefined"!=typeof window&&!!window.document,s="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),a=i?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),o=Boolean("hidden"===a?.document?.visibilityState),c=""+a?.location,d=/iPad|iPhone|iPod/.test(a.navigator?.userAgent),u=d&&"undefined"==typeof SharedWorker,l=(()=>{const e=a.navigator?.userAgent?.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),f=Date.now()-(0,n.t)();r.d(t,["OF",0,d,"RI",0,i,"WN",0,f,"bv",0,s,"gm",0,a,"lR",0,l,"m",0,c,"mw",0,o,"sb",0,u,"zk",0,()=>{const e=a?.performance?.getEntriesByType?.("navigation")?.[0];if(e&&e.responseStart>0&&e.responseStart<a.performance.now())return e}])},7295(e,t,r){"use strict";r.d(t,{Xv:()=>a,gX:()=>i,iW:()=>s});var n=[];function i(e){if(!e||s(e))return!1;if(0===n.length)return!0;if("*"===n[0].hostname)return!1;for(var t=0;t<n.length;t++){var r=n[t];if(r.hostname.test(e.hostname)&&r.pathname.test(e.pathname))return!1}return!0}function s(e){return void 0===e.hostname}function a(e){if(n=[],e&&e.length)for(var t=0;t<e.length;t++){let r=e[t];if(!r)continue;if("*"===r)return void(n=[{hostname:"*"}]);0===r.indexOf("http://")?r=r.substring(7):0===r.indexOf("https://")&&(r=r.substring(8));const i=r.indexOf("/");let s,a;i>0?(s=r.substring(0,i),a=r.substring(i)):(s=r,a="*");let[c]=s.split(":");n.push({hostname:o(c),pathname:o(a,!0)})}}function o(e,t=!1){const r=e.replace(/[.+?^${}()|[\]\\]/g,e=>"\\"+e).replace(/\*/g,".*?");return new RegExp((t?"^":"")+r+"$")}},3241(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(6154);function i(e={}){try{n.gm.dispatchEvent(new CustomEvent("newrelic",{detail:e}))}catch(e){}}},1687(e,t,r){"use strict";r.d(t,{Ak:()=>o,Ze:()=>d,x3:()=>c});var n=r(3241),i=r(3606),s=r(860),a=r(2646);function o(e,t){if(!e)return;const r={staged:!1,priority:s.P3[t]||0};
392e.runtime.drainRegistry.get(t)||e.runtime.drainRegistry.set(t,r)}function c(e,t){if(!e)return;const r=e.runtime.drainRegistry;r&&(r.get(t)&&r.delete(t),l(e,t,!1),r.size&&u(e))}function d(e,t="feature",r=!1){if(e){if(!e.runtime.drainRegistry.get(t)||r)return l(e,t);e.runtime.drainRegistry.get(t).staged=!0,u(e)}}function u(e){if(!e)return;const t=Array.from(e.runtime.drainRegistry);t.every(([e,t])=>t.staged)&&(t.sort((e,t)=>e[1].priority-t[1].priority),t.forEach(([t])=>{e.runtime.drainRegistry.delete(t),l(e,t)}))}function l(e,t,r=!0){if(!e)return;const s=e.ee,o=i.i.handlers;if(s&&!s.aborted&&s.backlog&&o){if((0,n.W)({type:"lifecycle",name:"drain",feature:t}),r){const e=s.backlog[t],r=o[t];if(r){for(let t=0;e&&t<e.length;++t)f(e[t],r);Object.entries(r).forEach(([e,t])=>{Object.values(t||{}).forEach(t=>{t[0]?.on&&t[0].context()instanceof a.y&&!t[0].listeners(e).includes(t[1])&&t[0].on(e,t[1])})})}}s.isolatedBacklog||delete o[t],s.backlog[t]=null,s.emit("drain-"+t,[])}}function f(e,t){var r=e[1];Object.values(t[r]||{}).forEach(t=>{var r=e[0];if(t[0]===r){var n=t[1],i=e[3],s=e[2];n.apply(i,s)}})}},7836(e,t,r){"use strict";var n=r(384),i=r(8990),s=r(2646),a=r(5607);const o="nr@context:".concat(a.W),c=function e(t,r){var n={},a={},u={},l=!1;try{l=16===r.length&&d.initializedAgents?.[r]?.runtime.isolatedBacklog}catch(e){}var f={on:p,addEventListener:p,removeEventListener:function(e,t){var r=n[e];if(!r)return;for(var i=0;i<r.length;i++)r[i]===t&&r.splice(i,1)},emit:function(e,r,n,i,s){!1!==s&&(s=!0);if(c.aborted&&!i)return;t&&s&&t.emit(e,r,n);var o=h(n);g(e).forEach(e=>{e.apply(o,r)});var d=v()[a[e]];d&&d.push([f,e,r,o]);return o},get:m,listeners:g,context:h,buffer:function(e,t){const r=v();if(t=t||"feature",f.aborted)return;Object.entries(e||{}).forEach(([e,n])=>{a[n]=t,t in r||(r[t]=[])})},abort:function(){f._aborted=!0,Object.keys(f.backlog).forEach(e=>{delete f.backlog[e]})},isBuffering:function(e){return!!v()[a[e]]},debugId:r,backlog:l?{}:t&&"object"==typeof t.backlog?t.backlog:{},isolatedBacklog:l};return Object.defineProperty(f,"aborted",{get:()=>{let e=f._aborted||!1;return e||(t&&(e=t.aborted),e)}}),f;function h(e){return e&&e instanceof s.y?e:e?(0,i.I)(e,o,()=>new s.y(o)):new s.y(o)}function p(e,t){n[e]=g(e).concat(t)}function g(e){return n[e]||[]}function m(t){return u[t]=u[t]||e(f,t)}function v(){return f.backlog}}(void 0,"globalEE"),d=(0,n.Zm)();d.ee||(d.ee=c),r.d(t,["P",0,o,"ee",0,c])},2646(e,t,r){"use strict";r.d(t,{y:()=>n});class n{constructor(e){this.contextId=e}}},9908(e,t,r){"use strict";r.d(t,{d:()=>n,p:()=>i});var n=r(7836).ee.get("handle");function i(e,t,r,i,s){s?(s.buffer([e],i),s.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},3606(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(9908);s.on=a;var i=s.handlers={};function s(e,t,r,s){a(s||n.d,i,e,t,r)}function a(e,t,r,i,s){s||(s="feature"),e||(e=n.d);var a=t[s]=t[s]||{};(a[r]=a[r]||[]).push([e,i])}},3878(e,t,r){"use strict";function n(e,t){return{capture:e,passive:!1,signal:t}}function i(e,t,r=!1,i){window.addEventListener(e,t,n(r,i))}function s(e,t,r=!1,i){document.addEventListener(e,t,n(r,i))}r.d(t,{DD:()=>s,jT:()=>n,sp:()=>i})},5607(e,t,r){"use strict";const n=(0,r(9566).bz)();r.d(t,["W",0,n])},9566(e,t,r){"use strict";r.d(t,{LA:()=>a,ZF:()=>o,bz:()=>s,el:()=>c});var n=r(6154);function i(e,t){return e?15&e[t]:16*Math.random()|0}function s(){const e=n.gm?.crypto||n.gm?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(30))),"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".split("").map(e=>"x"===e?i(t,r++).toString(16):"y"===e?(3&i()|8).toString(16):e).join("")}function a(e){const t=n.gm?.crypto||n.gm?.msCrypto;let r,s=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(e)));const a=[];for(var o=0;o<e;o++)a.push(i(r,s++).toString(16));return a.join("")}function o(){return a(16)}function c(){return a(32)}},2614(e,t,r){"use strict";r.d(t,["BB",0,18e5,"Wt",0,"NRBA_SESSION::","g",0,{OFF:0,FULL:1,ERROR:2},"iL",0,{SAME_TAB:"same-tab",CROSS_TAB:"cross-tab"},"tS",0,{STARTED:"session-started",PAUSE:"session-pause",RESET:"session-reset",RESUME:"session-resume",UPDATE:"session-update"},"wk",0,144e5])},733(e,t,r){"use strict";function n(e,t){return function(e){let t=2166136261;for(let r=0;r<e.length;r++)t^=e.charCodeAt(r),t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}("".concat(String(e),":").concat(String(t)))}r.d(t,{Y:()=>n})},1863(e,t,r){"use strict";function n(){return Math.floor(performance.now())}r.d(t,{t:()=>n})},9119(e,t,r){"use strict";r.d(t,{L:()=>s});var n=/([^?#]*)[^#]*(#[^?]*|$).*/,i=/([^?#]*)().*/;function s(e,t){return e?e.replace(t?n:i,"$1$2"):e}},7485(e,t,r){"use strict";r.d(t,{D:()=>i});var n=r(6154);function i(e){if(0===(e||"").indexOf("data:"))return{protocol:"data"};try{const t=new URL(e,location.href),r={port:t.port,hostname:t.hostname,pathname:t.pathname,search:t.search,protocol:t.protocol.slice(0,t.protocol.indexOf(":")),sameOrigin:t.protocol===n.gm?.location?.protocol&&t.host===n.gm?.location?.host};return r.port&&""!==r.port||("http:"===t.protocol&&(r.port="80"),"https:"===t.protocol&&(r.port="443")),r.pathname&&""!==r.pathname?r.pathname.startsWith("/")||(r.pathname="/".concat(r.pathname)):r.pathname="/",r}catch(e){return{}}}},7866(e,t,r){"use strict";r.d(t,["Nc",0,/^\s*at Function code \(Function code:\d+:\d+\)\s*/i,"cn",0,/^\s*(?:([^@]*)(?:\(.*?\))?@)?((?:file|http|https|chrome|safari-extension).*?):(\d+)(?::(\d+))?\s*$/i,"fL",0,/^\s*at .+ \(eval at \S+ \((?:(?:file|http|https):[^)]+)?\)(?:, [^:]*:\d+:\d+)?\)$/i,"h3",0,/function (.+?)\s*\(/,"hB",0,/^\s*at (?:((?:\[object object\])?(?:[^(]*\([^)]*\))*[^()]*(?: \[as \S+\])?) )?\(?((?:file|http|https|chrome-extension):.*?)?:(\d+)(?::(\d+))?\)?\s*$/i])},944(e,t,r){"use strict";r.d(t,{R:()=>i});var n=r(3241);function i(e,t){"function"==typeof console.debug&&(console.debug("New Relic Warning: https://github.com/newrelic/newrelic-browser-agent/blob/main/docs/warning-codes.md#".concat(e),t),(0,n.W)({drained:null,type:"data",name:"warn",feature:"warn",data:{code:e,secondary:t}}))}},8990(e,t,r){"use strict";r.d(t,{I:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},6389(e,t,r){"use strict";function n(e,t=500,r={}){const n=r?.leading||!1;let i;return(...r)=>{n&&void 0===i&&(e.apply(this,r),i=setTimeout(()=>{i=clearTimeout(i)},t)),n||(clearTimeout(i),i=setTimeout(()=>{e.apply(this,r)},t))}}function i(e){let t=!1;return(...r)=>{t||(t=!0,e.apply(this,r))}}r.d(t,{J:()=>i,s:()=>n})},1910(e,t,r){"use strict";r.d(t,{i:()=>s});var n=r(944);const i=new Map;function s(...e){return e.every(e=>{if(i.has(e))return i.get(e);const t="function"==typeof e?e.toString():"",r=t.includes("[native code]"),s=t.includes("nrWrapper");return r||s||(0,n.R)(64,e?.name||t),i.set(e,r),r})}},3304(e,t,r){"use strict";r.d(t,{A:()=>i});var n=r(7836);function i(e){try{return JSON.stringify(e,(()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}})())??""}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}return""}}},9232(e,t,r){"use strict";r.d(t,["f",0,{MFE:"MFE",BA:"BA"}])},7560(e,t,r){"use strict";r.d(t,{N:()=>a,j:()=>c});var n=r(9119),i=r(944);const s=(0,r(6389).J)(e=>(0,i.R)(80,e));function a(e){if(!Array.isArray(e?.assets)||!e.assets.length)return;
392const t=e.assets.map(o).filter(Boolean);return t.length?{assets:t,scripts:t.filter(e=>e.isScript)}:void 0}function o(e){if(!e||"object"!=typeof e)return;const{matcher:t,type:r}=e;let i="string"==typeof t&&t.endsWith(".js");return void 0!==r&&(!function(e){return"script"===e||"asset"===e}(r)?s(r):i=function(e){return"script"===e}(r)),a=t,"[object RegExp]"===Object.prototype.toString.call(a)?{pattern:t,test:e=>(t.lastIndex=0,t.test((0,n.L)(e))),isScript:i}:"string"==typeof t&&t.length>0?{pattern:t,test:e=>(0,n.L)(e).includes(t),isScript:i}:void s(t);var a}function c(e,t,{scriptsOnly:r=!1}={}){if(!e||!t)return!1;return(r?e.scripts:e.assets).some(e=>e.test(t))}},5718(e,t,r){"use strict";r.d(t,{xo:()=>T,AZ:()=>v,cI:()=>g,Qr:()=>A,QL:()=>y});var n=r(6154),i=r(1863),s=r(9119),a=r(7866);class o{dom=new c;performance=new c;constructor(e){this.url=e,this.claimedBy=new Set}get script(){const e=Math.max(this.dom.start,this.performance.end);return{start:e,end:Math.max(this.dom.end,this.performance.end,e)}}}class c{start=0;end=0;value=void 0}function d(e=()=>{},t){return{get:()=>void 0!==t?t:e(),set:e=>{t=e}}}let u;try{u=v(y())[0]}catch(e){u=v(e)[0]}const l=new Map;let f=[];const h=new WeakMap;function p(e){let t=h.get(e);return t||(t={weighedAssetUrls:new Set,recordManifestScriptWindow:(t,r)=>{t&&(e.scriptStart=e.scriptStart>0?Math.min(e.scriptStart,t):t),r&&(e.scriptEnd=e.scriptEnd>0?Math.max(e.scriptEnd,r):r)}},h.set(e,t)),t}function g(e){return l.get(e)}function m(e){const t=g(e);
392if(t)return t;const r=new o(e);if(l.set(e,r),l.size>1e3){const e=l.keys().next().value;l.delete(e)}return r}if(n.gm.MutationObserver&&n.gm.document){new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{if("SCRIPT"===e.nodeName&&e.src){const t=m((0,s.L)(e.src));t.dom.start=(0,i.t)(),t.dom.value=e;const r=()=>{t.dom.end=(0,i.t)()};["load","error"].forEach(t=>e.addEventListener(t,r,{once:!0}))}})})}).observe(n.gm.document,{childList:!0,subtree:!0})}if(n.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{if((e=>"script"===e.initiatorType||["link","fetch"].includes(e.initiatorType)&&(0,s.L)(e.name).endsWith(".js"))(e)){const t=m((0,s.L)(e.name));t.performance.start=Math.floor(e.startTime),t.performance.end=Math.floor(e.responseEnd),t.performance.value=e}if(!f.length)return;const t=[];f.forEach(({test:r,addedAt:n},s)=>{(r(e)||(0,i.t)()-n>1e4)&&t.push(s)}),f=f.filter((e,r)=>!t.includes(r))})}).observe({type:"resource",buffered:!0})}function v(e){if(!e||"string"!=typeof e)return[];const t=new Set,r=e.split("\n");for(const e of r){const r=e.match(a.cn)||e.match(a.hB)||e.match(a.fL);if(r&&r[2])t.add((0,s.L)(r[2]));else{const r=e.match(/\(([^)]+\.js):\d+:\d+\)/)||e.match(/^\s+at\s+([^\s(]+\.js):\d+:\d+/);r&&r[1]&&t.add((0,s.L)(r[1]))}}return[...t]}function y(){let e;try{const t=Error.stackTraceLimit;Error.stackTraceLimit=50,e=(new Error).stack,Error.stackTraceLimit=t}catch(t){e=(new Error).stack}return e}function b(e,t){return(0,s.L)(e.name)===t}function E(e,t){e.fetchStart=Math.floor(t.startTime),e.fetchEnd=Math.floor(t.responseEnd),e.asset=t.name,e.type=t.initiatorType,w(e,t)}function w(e,t){const r=(0,s.L)(t.name),{weighedAssetUrls:n}=p(e);n.has(r)||(n.add(r),e.totalWeight=(e.totalWeight||0)+(t.transferSize||0),"blocking"===t.renderBlockingStatus?e.renderBlocking=!0:"non-blocking"===t.renderBlockingStatus&&!0!==e.renderBlocking&&(e.renderBlocking=!1))}function R(e,t,r,n,i){if(w(e,t),"scripts"!==i&&"all"!==i)return;if("all"===i||r.isScript){const r=Math.floor(t.startTime),n=Math.floor(t.responseEnd);e.fetchStart=e.fetchStart>0?Math.min(e.fetchStart,r):r,e.fetchEnd=e.fetchEnd>0?Math.max(e.fetchEnd,n):n}if(r.isScript){const r=g((0,s.L)(t.name));if(r){const t=()=>{const{start:t,end:n}=r.script;p(e).recordManifestScriptWindow(t,n)};t(),!r.dom.end&&r.dom.value&&["load","error"].forEach(e=>r.dom.value.addEventListener(e,t,{once:!0}))}n.resolved||(e.asset=t.name,e.type=t.initiatorType,n.resolved=!0)}}function T(e,t){const r=t?.manifest;if(!r||!r.assets.length)return;const s={resolved:!1},a=new Set(r.assets);(n.gm.performance?.getEntriesByType("resource")||[]).forEach(r=>{const n=[...a].find(e=>e.test(r.name));n&&(R(e,r,n,s,t.timingMethod),a.delete(n))}),a.size&&function(e,t,r,s){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:n=>{const i=[...t].find(e=>e.test(n.name));return i&&(R(e,n,i,r,s),t.delete(i)),0===t.size}})}(e,a,s,t.timingMethod)}function A(e){const t=e?.id,r={registeredAt:(0,i.t)(),reportedAt:void 0,fetchStart:0,fetchEnd:0,scriptStart:0,scriptEnd:0,asset:void 0,type:"unknown",totalWeight:0,renderBlocking:void 0},a=y();if(!a)return r;const o=n.gm.performance?.getEntriesByType("navigation")?.[0]?.name||"";try{const e=v(a),c=(e.length>1?e.filter(e=>u!==e):e)[0];if(!c)return r;if(o.includes(c))return r.asset=(0,s.L)(o),r.type="inline",r;r.correlation=g(c);const l=r.correlation?.performance.value||n.gm.performance?.getEntriesByType("resource")?.find(e=>b(e,c));if(l)E(r,l);else{(function(e){if(!e||!n.gm.document)return!1;try{const t=n.gm.document.querySelectorAll('link[rel="preload"][as="script"]');for(const r of t)if((0,s.L)(r.href)===e)return!0}catch(e){}return!1})(c)&&(r.asset=c,r.type="preload"),function(e,t){n.gm.PerformanceObserver?.supportedEntryTypes?.includes("resource")&&f.push({addedAt:(0,i.t)(),test:r=>!!b(r,t)&&(E(e,r),!0)})}(r,c)}const h=r.correlation,m=!!t&&!!h?.claimedBy.has(t);h&&t&&h.claimedBy.add(t);const y=()=>{const e=h?.script.start;if(!m||!e)return!1;return r.registeredAt-e>1e4};let w=0,R=0;p(r).recordManifestScriptWindow=(e,t)=>{e&&(w=w>0?Math.min(w,e):e),t&&(R=R>0?Math.max(R,t):t)},Object.defineProperty(r,"scriptStart",d(()=>{const e=y()?r.registeredAt:h?.script.start??r.fetchEnd;return w>0?Math.min(e,w):e})),Object.defineProperty(r,"scriptEnd",d(()=>{const e=y()?r.registeredAt:h?.script.end??r.registeredAt;return R>0?Math.max(e,R):e}))}catch(e){}return r}},5732(e,t,r){"use strict";r.d(t,{$5:()=>m,B5:()=>g,K6:()=>u,M$:()=>
392o,Ms:()=>d,NG:()=>c,Ux:()=>h,YA:()=>p,yx:()=>l});var n=r(5718),i=r(7560),s=r(9119),a=r(9232);function o(e){return e?.type===a.f.MFE}function c(e,t){if(!y(e,t))return;const r=t.runtime.registeredEntities;return r?.find(t=>t.metadata.target.iframeInterfaceId===e)}function d(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities;return r?.filter(t=>String(t.metadata.target.id)===String(e)).map(e=>e.metadata.target)||[]}function u(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=(0,s.L)(e),a=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!1}):!!t.metadata.timings?.asset&&(0,s.L)(t.metadata.timings.asset)===n});return f(a).map(e=>e.metadata.target)}function l(e,t){if(!y(e,t))return[];const r=t.runtime.registeredEntities,n=r?.filter(t=>{const r=t.metadata.target?.manifest;return r?(0,i.j)(r,e,{scriptsOnly:!0}):!!t.metadata.timings?.asset?.endsWith(e)});return f(n).map(e=>e.metadata.target)}function f(e){if(!e?.length)return e||[];const t=new Map,r=[];for(const n of e){const e=n.metadata?.timings?.asset;if(!e){r.push(n);continue}const i="".concat(e,"::").concat(n.metadata?.target?.id),s=t.get(i);if(s){if(s.metadata.target?.blocked&&!n.metadata.target?.blocked){const e=r.indexOf(s);-1!==e&&(r[e]=n),t.set(i,n)}}else t.set(i,n),r.push(n)}return r}function h(e,t){return v(t)?o(e)?e.attributes:t.agentRef.runtime.v2Target.attributes:{}}function p(e,t){return g(e,t)?{"child.id":e.id,"child.type":e.type,...h(void 0,t)}:{}}function g(e,t){return o(e)&&!!v(t)&&t.agentRef.init.api.register.duplicate_data_to_container}function m(e){if(!e?.runtime)return[];if(!y(!0,e)||!e.runtime.registeredEntities?.length)return[e.runtime.v2Target];const t=[];try{var r=(0,n.AZ)((0,n.QL)());let i=r.length-1;for(;r[i];)t.push(...l(r[i--],e))}catch(e){}const i=function(e){const t=new Set,r=[];for(const n of e){const e=n?.instance;t.has(e)||(t.add(e),r.push(n))}return r}(t);return i.length||i.push(e.runtime.v2Target),i}function v(e){return 2===e?.harvestEndpointVersion}function y(e,t){return!!e&&!!t?.init.api.register.enabled}},5289(e,t,r){"use strict";r.d(t,{GG:()=>a,Qr:()=>c,sB:()=>o});var n=r(3878),i=r(6389);function s(){return"undefined"==typeof document||"complete"===document.readyState}function a(e,t){if(s())return e();const r=(0,i.J)(e),a=setInterval(()=>{s()&&(clearInterval(a),r())},500);(0,n.sp)("load",r,t)}function o(e){if(s())return e();(0,n.DD)("DOMContentLoaded",e)}function c(e){if(s())return e();(0,n.sp)("popstate",e)}},384(e,t,r){"use strict";r.d(t,{Zm:()=>c,bQ:()=>u,dV:()=>d,pV:()=>l});var n=r(6154),i=r(1863),s=r(944),a=r(1910);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function c(){return n.gm.NREUM||(n.gm.NREUM={}),void 0===n.gm.newrelic&&(n.gm.newrelic=n.gm.NREUM),n.gm.NREUM}function d(){let e=c();return e.o||(e.o={ST:n.gm.setTimeout,SI:n.gm.setImmediate||n.gm.setInterval,CT:n.gm.clearTimeout,XHR:n.gm.XMLHttpRequest,REQ:n.gm.Request,EV:n.gm.Event,PR:n.gm.Promise,MO:n.gm.MutationObserver,FETCH:n.gm.fetch,WS:n.gm.WebSocket},(0,a.i)(...Object.values(e.o))),e}function u(e,t){let r=c();r.initializedAgents??={},t.initializedAt={ms:(0,i.t)(),date:new Date},r.initializedAgents[e]=t,2===Object.keys(r.initializedAgents).length&&(0,s.R)(69)}function l(){return function(){let e=c();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=c();const t=e.init||{};e.init={...t}}(),d(),function(){let e=c();const t=e.loader_config||{};e.loader_config={...t}}(),c()}r.d(t,["NT",0,o])},2843(e,t,r){"use strict";r.d(t,{G:()=>s,u:()=>i});var n=r(3878);function i(e,t=!1,r,i){(0,n.DD)("visibilitychange",function(){if(t)return void("hidden"===document.visibilityState&&e());e(document.visibilityState)},r,i)}function s(e,t,r){(0,n.sp)("pagehide",e,t,r)}},8139(e,t,r){"use strict";r.d(t,{u:()=>f});var n=r(7836),i=r(3434),s=r(8990),a=r(6154);const o={},c=a.gm.XMLHttpRequest,d="addEventListener",u="removeEventListener",l="nr@wrapped:".concat(n.P);function f(e,t){var r=function(e){return(e||n.ee).get("events")}(e);if(o[r.debugId]++)return r;o[r.debugId]=1;var f=(0,i.YM)(r,!0,t);function p(e){f.inPlace(e,[d,u],"-",g)}function g(e,t){return e[1]}return"getPrototypeOf"in Object&&(a.RI&&h(document,p),c&&h(c.prototype,p),h(a.gm,p)),r.on(d+"-start",function(e,t){var r=e[1];if(null!==r&&("function"==typeof r||"object"==typeof r)&&"newrelic"!==e[0]){var n=(0,s.I)(r,l,function(){var e={object:function(){if("function"!=typeof r.handleEvent)return;return r.handleEvent.apply(r,arguments)},function:r}[typeof r];return e?f(e,"fn-",null,e.name||"anonymous"):r});this.wrapped=e[1]=n}}),r.on(u+"-start",function(e){e[1]=this.wrapped||e[1]}),r}function h(e,t,...r){let n=e;for(;"object"==typeof n&&!Object.prototype.hasOwnProperty.call(n,d);)n=Object.getPrototypeOf(n);n&&t(n,...r)}},3434(e,t,r){"use strict";r.d(t,{YM:()=>d});var n=r(7836),i=r(5607),s=r(5732);const a="nr@original:".concat(i.W);var o=Object.prototype.hasOwnProperty,c=!1;function d(e,t,r){return e||(e=n.ee),i.inPlace=function(e,t,r,n,s,a){r||(r="");const o="-"===r.charAt(0);for(let c=0;c<t.length;c++){const d=t[c],u=e[d];l(u)||(e[d]=i(u,o?d+r:r,n,d,s,a))}},i.flag=a,i;function i(t,n,i,c,f,h){return l(t)?t:(n||(n=""),nrWrapper[a]=t,function(e,t,r){if(Object.defineProperty&&Object.keys)try{return Object.keys(e).forEach(function(r){Object.defineProperty(t,r,{get:function(){return e[r]},set:function(t){return e[r]=t,t}})}),t}catch(e){u([e],r)}for(var n in e)o.call(e,n)&&(t[n]=e[n])}
392(t,nrWrapper,e),nrWrapper);function nrWrapper(){var a,o,l,p;let g,m;try{o=this,a=[...arguments],m=h?(0,s.$5)(r):[r?.runtime?.v2Target],l="function"==typeof i?i(a,o):i||{}}catch(t){u([t,"",[a,o,c],l],e)}d(n+"start",[a,o,c,m],l,f);const v=performance.now();let y;try{return p=t.apply(o,a),y=performance.now(),p}catch(e){throw y=performance.now(),d(n+"err",[a,o,e,m],l,f),g=e,g}finally{const e=y-v,t={start:v,end:y,duration:e,isLongTask:e>=50,methodName:c,thrownError:g};t.isLongTask&&d("long-task",[t,o,m],l,f),d(n+"end",[a,o,p,m],l,f)}}}function d(r,n,i,s){if(!c||t){var a=c;c=!0;try{e.emit(r,n,i,t,s)}catch(t){u([t,r,n,i],e)}c=a}}}function u(e,t){t||(t=n.ee);try{t.emit("internal-error",e)}catch(e){}}function l(e){return!(e&&"function"==typeof e&&e.apply&&!e[a])}r.d(t,["Jt",0,a])},9300(e,t,r){"use strict";const n=r(860).K7.ajax;r.d(t,["TZ",0,n,"f5",0,"ajaxRequest.id","mo",0,{NONE:"none",FAILURES:"failures",ALL:"all"}])},3333(e,t,r){"use strict";var n=r(981);const i=r(860).K7.genericEvents,s=[n.R.PA,n.R.UA,n.R.BP];r.d(t,["$v",0,{RESOURCES:"experimental.resources",REGISTER:"register"},"TZ",0,i,"Zp",0,["auxclick","click","copy","keydown","paste","scrollend"],"kd",0,s,"qN",0,["focus","blur"]])},6774(e,t,r){"use strict";const n=r(860).K7.jserrors;r.d(t,["T",0,n])},993(e,t,r){"use strict";const n=r(860).K7.logging;r.d(t,["A$",0,{OFF:0,ERROR:1,WARN:2,INFO:3,DEBUG:4,TRACE:5},"TZ",0,n,"p_",0,{ERROR:"ERROR",WARN:"WARN",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}])},3785(e,t,r){"use strict";r.d(t,{R:()=>c,b:()=>d});var n=r(9908),i=r(1863),s=r(860),a=r(3969),o=r(993);function c(e,t,r={},c=o.p_.INFO,d=!0,u,l=(0,i.t)()){(0,n.p)(a.xV,["API/logging/".concat(c.toLowerCase(),"/called")],void 0,s.K7.metrics,e),(0,n.p)("log",[l,t,r,c,d,u],void 0,s.K7.logging,e)}function d(e){return"string"==typeof e&&Object.values(o.p_).some(t=>t===e.toUpperCase().trim())}},3969(e,t,r){"use strict";const n=r(860).K7.metrics;r.d(t,["TZ",0,n,"XG",0,"storeEventMetrics","xV",0,"storeSupportabilityMetrics"])},6630(e,t,r){"use strict";const n=r(860).K7.pageViewEvent;r.d(t,["T",0,n])},782(e,t,r){"use strict";const n=r(860).K7.pageViewTiming;r.d(t,["T",0,n])},6344(e,t,r){"use strict";var n=r(2614);const i=r(860).K7.sessionReplay,s={[n.g.ERROR]:15e3,[n.g.FULL]:3e5,[n.g.OFF]:0}
392;r.d(t,["Qb",0,{API:"api",RESUME:"resume",SWITCH_TO_FULL:"switchToFull",INITIALIZE:"initialize",PRELOAD:"preload"},"TZ",0,i,"Vh",0,"errorDuringReplay","_s",0,{DomContentLoaded:0,Load:1,FullSnapshot:2,IncrementalSnapshot:3,Meta:4,Custom:5},"bc",0,{RESET:{message:"Session was reset",sm:"Reset"},IMPORT:{message:"Recorder failed to import",sm:"Import"},TOO_MANY:{message:"429: Too Many Requests",sm:"Too-Many"},TOO_BIG:{message:"Payload was too large",sm:"Too-Big"},CROSS_TAB:{message:"Session Entity was set to OFF on another tab",sm:"Cross-Tab"},ENTITLEMENTS:{message:"Session Replay is not allowed and will not be started",sm:"Entitlement"}},"yP",0,s])},5270(e,t,r){"use strict";r.d(t,{Aw:()=>a,SR:()=>s,rF:()=>o});var n=r(384),i=r(7767);function s(e){return!!(0,n.dV)().o.MO&&(0,i.V)(e)&&!0===e?.session_trace.enabled}function a(e){return!0===e?.session_replay.preload&&s(e)}function o(e,t){try{if("string"==typeof t?.type&&"password"===t.type.toLowerCase())return"*".repeat(e?.length||0);if(void 0!==t?.dataset?.nrUnmask||t?.classList?.contains("nr-unmask"))return e}catch(e){}return"string"==typeof e?e.replace(/[\S]/g,"*"):"*".repeat(e?.length||0)}},3738(e,t,r){"use strict";const n=r(860).K7.sessionTrace,i="-start",s="-end",a="fn"+i,o="fn"+s;r.d(t,["He",0,"bstResource","Kp",0,s,"Lc",0,o,"Rz",0,"pushState","TZ",0,n,"bD",0,"resource","bc",0,{CROSS_TAB:{message:"Session Entity was set to OFF on another tab"},ENTITLEMENTS:{message:"Session Trace is not allowed and will not be started"},RESET:{message:"Session was reset"},SESSION_CHANGED:{message:"Session identifier changed unexpectedly"}},"d3",0,i,"uP",0,a])},3962(e,t,r){"use strict";const n=r(860).K7.softNav;r.d(t,["O2",0,{INITIAL_PAGE_LOAD:"",ROUTE_CHANGE:1,UNSPECIFIED:2},"OV",0,"popstate","Qu",0,{INTERACTION:1,AJAX:2,CUSTOM_END:3,CUSTOM_TRACER:4},"TZ",0,n,"ih",0,{IP:"in progress",PF:"pending finish",FIN:"finished",CAN:"cancelled"},"pP",0,"initialPageLoad","tC",0,["click","keydown","submit"]])},4234(e,t,r){"use strict";r.d(t,{W:()=>i});var n=r(1687);class i{constructor(e,t){this.agentRef=e,this.ee=e?.ee,this.featureName=t,this.blocked=!1}deregisterDrain(){(0,n.x3)(this.agentRef,this.featureName)}}},7767(e,t,r){"use strict";var n=r(6154);r.d(t,["V",0,e=>n.RI&&!0===e?.privacy.cookies_enabled])},8362(e,t,r){"use strict";r.d(t,{d:()=>s});var n=r(9566),i=r(1741);class s extends i.W{agentIdentifier=(0,n.LA)(16)}},1741(e,t,r){"use strict";r.d(t,{W:()=>s});var n=r(944),i=r(4261);class s{#e(e,...t){if(this[e]!==s.prototype[e])return this[e](...t);(0,n.R)(35,e)}addPageAction(e,t){return this.#e(i.hG,e,t)}register(e){return this.#e(i.eY,e)}recordCustomEvent(e,t){return this.#e(i.fF,e,t)}setPageViewName(e,t){return this.#e(i.Fw,e,t)}setCustomAttribute(e,t,r){return this.#e(i.cD,e,t,r)}noticeError(e,t){return this.#e(i.o5,e,t)}setUserId(e,t=!1){return this.#e(i.Dl,e,t)}setApplicationVersion(e){return this.#e(i.nb,e)}setErrorHandler(e){return this.#e(i.bt,e)}addRelease(e,t){return this.#e(i.k6,e,t)}log(e,t){return this.#e("log",e,t)}start(){return this.#e("start")}finished(e){return this.#e(i.BL,e)}recordReplay(){return this.#e(i.CH)}pauseReplay(){return this.#e(i.Tb)}addToTrace(e){return this.#e(i.U2,e)}setCurrentRouteName(e){return this.#e(i.PA,e)}interaction(e){return this.#e(i.dT,e)}wrapLogger(e,t,r){return this.#e(i.Wb,e,t,r)}measure(e,t){return this.#e(i.V1,e,t)}consent(e){return this.#e(i.Pv,e)}}},4261(e,t,r){"use strict";r.d(t,["BL",0,"finished","CH",0,"recordReplay","Dl",0,"setUserId","Fw",0,"setPageViewName","PA",0,"setCurrentRouteName","Pv",0,"consent","Tb",0,"pauseReplay","U2",0,"addToTrace","V1",0,"measure","Wb",0,"wrapLogger","bt",0,"setErrorHandler","cD",0,"setCustomAttribute","dT",0,"interaction","eY",0,"register","fF",0,"recordCustomEvent","hG",0,"addPageAction","hw",0,"api-ixn-","k6",0,"addRelease","nb",0,"setApplicationVersion","o5",0,"noticeError"])},1738(e,t,r){"use strict";r.d(t,{U:()=>l,Y:()=>u});var n=r(3241),i=r(9908),s=r(1863),a=r(944),o=r(3969),c=r(8362),d=r(860);function u(e,t,r,s){const u=s||r;!u||u[e]&&u[e]!==c.d.prototype[e]||(u[e]=function(){(0,i.p)(o.xV,["API/"+e+"/called"],void 0,d.K7.metrics,r.ee),(0,n.W)({drained:!!r.runtime?.activatedFeatures,type:"data",name:"api",feature:"api-"+e,data:{}});try{return t.apply(this,arguments)}catch(e){(0,a.R)(23,e)}})}function l(e,t,r,n,a){const o=e.info;null===r?delete o.jsAttributes[t]:o.jsAttributes[t]=r,(a||null===r)&&(0,i.p)("api-"+n,[(0,s.t)(),t,r],void 0,"session",e.ee)}},8374(e,t,r){r.nc=(()=>{try{return document?.currentScript?.nonce}catch(e){}return""})()},860(e,t,r){"use strict";const n="events",i="jserrors",s="browser/blobs",a="browser/logs",o={ajax:"ajax",genericEvents:"generic_events",jserrors:i,logging:"logging",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",softNav:"soft_navigations"},c={[o.pageViewEvent]:1,[o.pageViewTiming]:2,[o.metrics]:3,[o.jserrors]:4,[o.softNav]:5,[o.ajax]:6,[o.sessionTrace]:7,[o.sessionReplay]:8,[o.logging]:9,[o.genericEvents]:10},d={[o.pageViewEvent]:"rum",[o.pageViewTiming]:n,[o.ajax]:n,[o.softNav]:n,[o.metrics]:i,[o.jserrors]:i,[o.sessionTrace]:s,[o.sessionReplay]:s,[o.logging]:a,[o.genericEvents]:"ins"};r.d(t,["$J",0,d,"K7",0,o,"P3",0,c,"XX",0,i,"Yy",0,a,"df",0,s,"hg",0,"connect"])}};const t={};function r(n){const i=t[n];if(void 0!==i)return i.exports;const s=t[n]={exports:{}};return e[n](s,s.exports,r),s.exports}r.m=e,r.d=(e,t)=>{if(Array.isArray(t))for(var n=0;n<t.length;){var i=t[n++],s=t[n++];r.o(e,i)?0===s&&n++:0===s?Object.defineProperty(e,i,{enumerable:!0,value:t[n++]}):Object.defineProperty(e,i,{enumerable:!0,get:s})}else for(var i in t)r.o(t,i)&&!r.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,n)=>(r.f[n](e,t),t),[])),r.u=e=>({212:"nr-spa-compressor",238:"nr-spa-iframe-message-handler",249:"nr-spa-recorder",478:"nr-spa"}[e]+"-1.322.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.322.0.PROD:";r.l=(n,i,s,a)=>
392{if(e[n])return void e[n].push(i);let o,c;if(void 0!==s){const e=document.getElementsByTagName("script");for(var d=0;d<e.length;d++){const r=e[d];if(r.getAttribute("src")==n||r.getAttribute("data-webpack")==t+s){o=r;break}}}if(!o){c=!0;var u={478:"sha512-SARROoir04gFygxlr/+mTI+PyMeFL+epi1vnUA2G5mTQ7s3G44ItQBJKbOaIMdIE5OBzuaKhb4k5JYta0NICxg==",249:"sha512-6DKQo5WP7YlpzX6l9UfYkgGLGK2oITdoaYTcZtgl5Foa22NY63lED/0z1hBBLeD7qZCz/YdlY19/r8drlol1tg==",212:"sha512-CYxuvSpDx6ErqWJwAvpoHn54eY37YdMcFao/axOumlw3BsSL7yioOeB2LWViY/Njs818sQG10dSglUhYCMfLPw==",238:"sha512-mvbMILWa3ohYst+u6TLfNrmtY2swUIB3rbJFN/uzt3W62KhgvUVwB81UEZ1R0/it5bfrQ5EVz864pi/CAmucNQ=="};o=document.createElement("script"),o.charset="utf-8",r.nc&&o.setAttribute("nonce",r.nc),o.setAttribute("data-webpack",t+s),o.src=n,0!==o.src.indexOf(window.location.origin+"/")&&(o.crossOrigin="anonymous"),u[a]&&(o.integrity=u[a])}e[n]=[i];const l=(t,r)=>{o.onerror=o.onload=null,clearTimeout(f);const i=e[n];if(delete e[n],o.parentNode?.removeChild(o),i?.forEach(e=>e(r)),t)return t(r)},f=setTimeout(l.bind(null,void 0,{type:"timeout",target:o}),12e4);o.onerror=l.bind(null,o.onerror),o.onload=l.bind(null,o.onload),c&&document.head.appendChild(o)}})(),r.r=e=>{Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="https://js-agent.newrelic.com/",(()=>{const e={38:0,788:0};r.f.j=(t,n)=>{let i=r.o(e,t)?e[t]:void 0;if(0!==i)if(i)n.push(i[2]);else{const s=new Promise((r,n)=>i=e[t]=[r,n]);n.push(i[2]=s);const a=r.p+r.u(t),o=new Error,c=n=>{if(r.o(e,t)&&(i=e[t],0!==i&&(e[t]=void 0),i)){const e=n&&("load"===n.type?"missing":n.type),r=n&&n.target&&n.target.src;o.message="Loading chunk "+t+" failed: ("+e+": "+r+")",o.name="ChunkLoadError",o.type=e,o.request=r,i[1](o)}};r.l(a,c,"chunk-"+t,t)}};const t=(t,n)=>{let[i,s,a]=n;var o,c,d=0;if(i.some(t=>0!==e[t])){for(o in s)r.o(s,o)&&(r.m[o]=s[o]);if(a)a(r)}for(t&&t(n);d<i.length;d++)c=i[d],r.o(e,c)&&e[c]&&e[c][0](),e[c]=0},n=self["webpackChunk:NRBA-1.322.0.PROD"]=self["webpackChunk:NRBA-1.322.0.PROD"]||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),(()=>{"use strict";r(8374);var e=r(8362),t=r(860);const n=Object.values(t.K7);var i=r(384),s=r(1741);var a=r(2555),o=r(3333),c=r(9300);const d=e=>{if(!e||"string"!=typeof e)return!1;try{document.createDocumentFragment().querySelector(e)}catch{return!1}return!0};var u=r(2614),l=r(944),f=r(8122);const h="[data-nr-mask]",p=e=>(0,f.a)(e,(()=>{const e={feature_flags:[],experimental:{register:!1,resources:!1,iframe_bridge:!1,iframe_domains:[]},mask_selector:"*",block_selector:"[data-nr-block]",mask_input_options:{color:!1,date:!1,"datetime-local":!1,email:!1,month:!1,number:!1,range:!1,search:!1,tel:!1,text:!1,time:!1,url:!1,week:!1,textarea:!1,select:!1,password:!0}};return{ajax:{deny_list:void 0,block_internal:!0,enabled:!0,autoStart:!0,capture_payloads:c.mo.NONE},api:{register:{get enabled(){return e.feature_flags.includes(o.$v.REGISTER)||e.experimental.register},set enabled(t){e.experimental.register=t},duplicate_data_to_container:!1,get allow_iframe_bridge(){return e.feature_flags.includes(o.$v.IFRAME_BRIDGE)||e.experimental.iframe_bridge},set allow_iframe_bridge(t){e.experimental.iframe_bridge=t},get iframe_domains(){return e.experimental.iframe_domains},set iframe_domains(t){Array.isArray(t)?e.experimental.iframe_domains=t:(0,l.R)(1,t)}}},browser_consent_mode:{enabled:!1},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},get feature_flags(){return e.feature_flags},set feature_flags(t){e.feature_flags=t},generic_events:{enabled:!0,autoStart:!0},harvest:{interval:30},jserrors:{enabled:!0,autoStart:!0},logging:{enabled:!0,autoStart:!0},metrics:{enabled:!0,autoStart:!0},obfuscate:void 0,page_action:{enabled:!0},page_view_event:{enabled:!0,autoStart:!0},page_view_timing:{enabled:!0,autoStart:!0},performance:{capture_marks:!1,capture_measures:!1,capture_detail:!0,resources:{get enabled(){return e.feature_flags.includes(o.$v.RESOURCES)||e.experimental.resources},set enabled(t){e.experimental.resources=t},asset_types:[],first_party_domains:[],ignore_newrelic:!0}},privacy:{cookies_enabled:!0},proxy:{assets:void 0,beacon:void 0},session:{expiresMs:u.wk,inactiveMs:u.BB},session_replay:{autoStart:!0,enabled:!1,preload:!1,sampling_rate:10,error_sampling_rate:100,collect_fonts:!1,inl
392ine_images:!1,fix_stylesheets:!0,mask_all_inputs:!0,get mask_text_selector(){return e.mask_selector},set mask_text_selector(t){d(t)?e.mask_selector="".concat(t,",").concat(h):""===t||null===t?e.mask_selector=h:(0,l.R)(5,t)},get block_class(){return"nr-block"},get ignore_class(){return"nr-ignore"},get mask_text_class(){return"nr-mask"},get block_selector(){return e.block_selector},set block_selector(t){d(t)?e.block_selector+=",".concat(t):""!==t&&(0,l.R)(6,t)},get mask_input_options(){return e.mask_input_options},set mask_input_options(t){t&&"object"==typeof t?e.mask_input_options={...t,password:!0}:(0,l.R)(7,t)}},session_trace:{enabled:!0,autoStart:!0},soft_navigations:{enabled:!0,autoStart:!0},ssl:void 0,user_actions:{enabled:!0,elementAttributes:["id","className","tagName","type"]},web_sockets:{enabled:!1}}})());var g=r(6154),m=r(9324);let v=0;const y={buildEnv:"PROD",distMethod:"CDN",version:m.x,originTime:g.WN},b={consented:!1},E={activatedFeatures:void 0,appMetadata:{},configured:!1,get consented(){return this.session?.state?.consent||b.consented},set consented(e){b.consented=e},customTransaction:void 0,denyList:[],disabled:!1,drainRegistry:new Map,connector:void 0,harvester:void 0,v2Target:void 0,isolatedBacklog:!1,isRecording:!1,loaderType:void 0,maxBytes:3e4,obfuscator:void 0,onerror:void 0,ptid:void 0,releaseIds:{},session:void 0,timeKeeper:void 0,registeredEntities:[],jsAttributesMetadata:{bytes:0},get harvestCount(){return++v},listeningForIframeMessages:!1};var w=r(9232);var R=r(7836),T=r(3241);const A={accountID:void 0,trustKey:void 0,agentID:void 0,licenseKey:void 0,applicationID:void 0,xpid:void 0};var S=r(9908),x=r(9752);function O(e,t={},n,o){let{init:c,info:d,loader_config:u,runtime:l={},exposed:h=!0}=t;if(!d){const e=(0,i.pV)();c=e.init,d=e.info,u=e.loader_config}var m;e.init=p(c||{}),e.loader_config=(m=u||{},(0,f.a)(m,A)),d.jsAttributes??={},g.bv&&(d.jsAttributes.isWorker=!0),e.info=(0,a.D)(d);const v=e.init;e.runtime??=(e=>{const t=(0,f.a)(e,E),r=Object.keys(y).reduce((e,t)=>(e[t]={value:y[t],writable:!1,configurable:!0,enumerable:!0},e),{});return Object.defineProperties(t,r)})(l),e.runtime.v2Target??={type:w.f.BA,instance:e.agentIdentifier,get id(){return e.runtime.appMetadata?.agents?.[0]?.entityGuid},get attributes(){return{"entity.guid":this.id,appId:e.info.applicationID}}},v.proxy.assets&&(e=>{const t=e.startsWith("http");e+="/",r.p=t?e:"https://"+e})(v.proxy.assets),e.runtime.configured||(Object.defineProperty(e,"beacons",{get:()=>[e.info.beacon,e.info.errorBeacon,e.init.proxy.assets,e.init.proxy.beacon].filter(Boolean)}),Object.defineProperty(e.runtime,"denyList",{get:()=>[...e.init.ajax.deny_list||[],...e.init.ajax.block_internal?e.beacons:[]]}),e.runtime.ptid=e.agentIdentifier,function(e){const t=(0,i.pV)();Object.getOwnPropertyNames(s.W.prototype).forEach(r=>{const n=s.W.prototype[r];if("function"!=typeof n||"constructor"===n)return;let i=t[r];e[r]&&!1!==e.exposed&&"micro-agent"!==e.runtime?.loaderType&&(t[r]=(...t)=>{const n=e[r](...t);return i?i(...t):n})})}(e),e.runtime.loaderType=n,e.ee=R.ee.get(e.agentIdentifier),e.exposed=h,(0,T.W)({drained:!!e.runtime.activatedFeatures,type:"lifecycle",name:"initialize",feature:void 0,data:e.config}),e.init.api.register.allow_iframe_bridge&&g.gm.addEventListener("message",t=>{"string"==typeof t.data?.type&&t.data.type.startsWith(x.Pl)&&(0,S.p)("iframe-message",[t],void 0,"IFRAME",e.ee)}),e.runtime.configured=!0)}var _=r(1863),k=r(4261),N=r(1738);var L=r(1687),M=r(4234),P=r(5289),I=r(5270),j=r(7767),C=r(6389),D=r(7699);const B=new WeakSet,H=new WeakMap;class W extends M.W{constructor(e,t){super(e,t),this.abortHandler=void 0,this.featAggregate=void 0,this.loadedSuccessfully=void 0,this.onAggregateImported=new Promise(e=>{this.loadedSuccessfully=e}),this.deferred=Promise.resolve(),!1===e.init[this.featureName].autoStart?this.deferred=new Promise((t,r)=>{this.ee.on("manual-start-all",(0,C.J)(()=>{(0,L.Ak)(e,this.featureName),t()}))}):(0,L.Ak)(e,t)}importAggregator(e,t,n={}){if(this.featAggregate)return;const i=async()=>{if(await this.deferred,this.#t(e),!(0,a.f)(e.info))return(0,l.R)(43),e.ee.abort(),void this.loadedSuccessfully(!1);try{await async function(e,t,n){if(H.has(e))return H.get(e);const i=(async()=>
392{if((0,j.V)(e.init))try{const{setupAgentSession:t}=await r.e(478).then(r.bind(r,8766));t(e)}catch(e){(0,l.R)(20,e),t.emit("internal-error",[e]),(0,S.p)(D.qh,[e],void 0,n,t)}if(e.init.api.register.allow_iframe_bridge)try{const{setupIframeMFEMessageListener:t}=await r.e(238).then(r.bind(r,6417));t(e)}catch(e){(0,l.R)(23,e)}const[{Connector:i},{Harvester:s}]=await Promise.all([r.e(478).then(r.bind(r,6589)),r.e(478).then(r.bind(r,5237))]);e.runtime.connector=new i(e),e.runtime.harvester=new s(e);const a=Object.values(e.features).filter(t=>e.runtime.drainRegistry.has(t.featureName));Promise.all(a.map(e=>e.onAggregateImported)).then(()=>e.runtime.harvester.startTimer())})();H.set(e,i),await i}(e,this.ee,this.featureName)}catch(e){return(0,l.R)(79,e),this.ee.abort(),void this.loadedSuccessfully(!1)}try{if(!this.#r(this.featureName,e.runtime.session,e.init))return this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName),void this.loadedSuccessfully(!1);const{Aggregate:r}=await t();this.featAggregate=new r(e,n),e.runtime.harvester.initializedAggregates.push(this.featAggregate),this.loadedSuccessfully(!0)}catch(e){(0,l.R)(34,e),this.abortHandler?.(),(0,L.Ze)(this.agentRef,this.featureName,!0),this.loadedSuccessfully(!1)}};g.RI?(0,P.GG)(()=>i(),!0):i()}#r(e,r,n){if(this.blocked)return!1;switch(e){case t.K7.sessionReplay:return(0,I.SR)(n)&&!!r;case t.K7.sessionTrace:return!!r;default:return!0}}#t(e){if(!B.has(e)&&(B.add(e),!(0,a.f)(e.info))){const t=(0,i.pV)();let r={...t.info?.jsAttributes};try{r={...r,...e.info?.jsAttributes}}catch(e){}O(e,{...t,info:{...t.info,jsAttributes:r},runtime:e.runtime},e.runtime.loaderType)}}}var U=r(6630);class K extends W{static featureName=U.T;constructor(e){var t;super(e,U.T),this.setupInspectionEvents(),t=e,(0,N.Y)(k.Fw,function(e,r){"string"==typeof e&&("/"!==e.charAt(0)&&(e="/"+e),t.runtime.customTransaction=(r||"http://custom.transaction")+e,(0,S.p)("api-"+k.Fw,[(0,_.t)()],void 0,void 0,t.ee))},t),this.importAggregator(e,()=>e.init.feature_flags.includes("rum_v2")?r.e(478).then(r.bind(r,908)):r.e(478).then(r.bind(r,7927)))}setupInspectionEvents(){const e=(e,t)=>{e&&(0,T.W)({timeStamp:e.timeStamp,loaded:"complete"===e.target.readyState,type:"window",name:t,data:e.target.location+""})};(0,P.sB)(t=>{e(t,"DOMContentLoaded")}),(0,P.GG)(t=>{e(t,"load")}),(0,P.Qr)(t=>{e(t,"navigate")}),this.ee.on(u.tS.UPDATE,(e,t)=>{(0,T.W)({type:"lifecycle",name:"session",data:t})})}}class F extends e.d{constructor(e){var t;(super(),g.gm)?(this.features={},(0,i.bQ)(this.agentIdentifier,this),this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(K),O(this,e,e.loaderType||"agent"),t=this,(0,N.Y)(k.cD,function(e,r,n=!1){if("string"==typeof e){if(["string","number","boolean"].includes(typeof r)||null===r)return(0,N.U)(t,e,r,k.cD,n);(0,l.R)(40,typeof r)}else(0,l.R)(39,typeof e)},t),function(e){(0,N.Y)(k.Dl,function(t,r=!1){if("string"!=typeof t&&null!==t)return void(0,l.R)(41,typeof t);const n=e.info.jsAttributes["enduser.id"];r&&null!=n&&n!==t?(0,S.p)("api-setUserIdAndResetSession",[t],void 0,"session",e.ee):(0,N.U)(e,"enduser.id",t,k.Dl,!0)},e)}(this),function(e){(0,N.Y)(k.nb,function(t){if("string"==typeof t||null===t)return(0,N.U)(e,"application.version",t,k.nb,!1);(0,l.R)(42,typeof t)},e)}(this),function(e){(0,N.Y)("start",function(){e.ee.emit("manual-start-all")},e)}(this),function(e){(0,N.Y)(k.Pv,function(t=!0){if("boolean"==typeof t){if((0,S.p)("api-"+k.Pv,[t],void 0,"session",e.ee),e.runtime.consented=t,t){const t=e.features.page_view_event;t.onAggregateImported.then(e=>{const r=t.featAggregate;e&&!r.sentRum&&r.sendRum?.()})}}else(0,l.R)(65,typeof t)},e)}(this),this.run()):(0,l.R)(21)}get config(){return{info:this.info,init:this.init,loader_config:this.loader_config,runtime:this.runtime}}get api(){return this}run(){try{const e=function(e){const t={};return n.forEach(r=>{t[r]=!!e[r]?.enabled}),t}(this.init),r=[...this.desiredFeatures],i=this.init.feature_flags.includes("rum_v2");r.sort((e,r)=>t.P3[e.featureName]-t.P3[r.featureName]),r.forEach(r=>{if(!e[r.featureName]&&(i||r.featureName!==t.K7.pageViewEvent))return;const n=function(e){switch(e){case t.K7.ajax:return[t.K7.jserrors];case t.K7.sessionTrace:return[t.K7.ajax,t.K7.pageViewEvent];case t.K7.sessionReplay:return[t.K7.sessionTrace];case t.K7.pageViewTiming:return[t.K7.pageViewEvent];default:return[]}}(r.featureName).filter(e=>!(e in this.features));n.length>0&&(0,l.R)(36,{targetFeature:r.featureName,missingDependencies:n}),this.features[r.featureName]=new r(this)})}catch(e){(0,l.R)(22,e);for(const e in this.features)this.features[e].abortHandler?.();const t=(0,i.Zm)();delete t.initializedAgents[this.agentIdentifier]?.features,delete this.sharedAggregator;return t.ee.get(this.agentIdentifier).abort(),!1}}}var V=r(2843),z=r(782);class G extends W{static featureName=z.T;constructor(e){super(e,z.T),g.RI&&((0,V.u)(()=>(0,S.p)("docHidden",[(0,_.t)()],void 0,z.T,this.ee),!0),(0,V.G)(()=>(0,S.p)("winPagehide",[(0,_.t)()],void 0,z.T,this.ee)),this.importAggregator(e,()=>r.e(478).then(r.bind(r,9917))))}}var q=r(3969);class Y extends W{static featureName=q.TZ;constructor(e){super(e,q.TZ),this.importAggregator(e,()=>r.e(478).then(r.bind(r,6555)))}}var Z=r(6774),J=r(3878),X=r(3304);class Q{constructor(e,t,r,n,i){this.name="UncaughtError",this.message="string"==typeof e?e:(0,X.A)(e),this.sourceURL=t,this.line=r,this.column=n,this.__newrelic=i}}function ee(e){return ne(e)?e:new Q(void 0!==e?.message?e.message:e,e?.filename||e?.sourceURL,e?.lineno||e?.line,e?.colno||e?.col,e?.__newrelic,e?.cause)}function te(e){const t="Unhandled Promise Rejection: ";if(!e?.reason)return;if(ne(e.reason)){try{e.reason.message.startsWith(t)||(e.reason.message=t+e.reason.message)}catch(e){}return ee(e.reason)}const r=ee(e.reason);return(r.message||"").startsWith(t)||(r.message=t+r.message),r}function re(e){if(e.error instanceof SyntaxError&&!/:\d+$/.test(e.error.stack?.trim())){const t=new Q(e.message,e.filename,e.lineno,e.colno,e.error.__newrelic,e.cause);return t.name=SyntaxError.name,t}return ne(e.error)?e.error:ee(e)}function ne(e){return e instanceof Error&&!!e.stack}function ie(e,r,n,i,s=(0,_.t)()){"string"==typeof e&&(e=new Error(e)),(0,S.p)("err",[e,s,!1,r,n.runtime.isRecording,void 0,i],void 0,t.K7.jserrors,n.ee),(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,n.ee)}var se=r(993),ae=r(3785);function oe(e,{customAttributes:t={},level:r=se.p_.INFO}={},n,i,s=(0,_.t)()){(0,ae.R)(n.ee,e,t,r,!1,i,s)}function ce(e,r,n,i,s=(0,_.t)()){(0,S.p)("api-"+k.hG,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}function de(e,r,n,i,s=(0,_.t)()){const{start:a,end:o,customAttributes:c}=r||{},d={customAttributes:c||{}};if("object"!=typeof d.customAttributes||"string"!=typeof e||0===e.length)return void(0,l.R)(57);const u=(e,t)=>
392null==e?t:"number"==typeof e?e:e instanceof PerformanceMark?e.startTime:Number.NaN;if(d.start=u(a,0),d.end=u(o,s),Number.isNaN(d.start)||Number.isNaN(d.end))(0,l.R)(57);else{if(d.duration=d.end-d.start,!(d.duration<0))return(0,S.p)("api-"+k.V1,[d,e,i],void 0,t.K7.genericEvents,n.ee),d;(0,l.R)(58)}}function ue(e,r={},n,i,s=(0,_.t)()){(0,S.p)("api-"+k.fF,[s,e,r,i],void 0,t.K7.genericEvents,n.ee)}var le=r(5718);const fe=(e,t)=>e?.nrMfeId===t.id&&(!e?.nrMfeObserved||e?.nrMfeObserved===t.instance),he=e=>{try{return g.gm.CSS.escape(e)}catch(t){return e}},pe=(e,t={})=>{const r=t.id,n=t.instance;if(!e||!r||!n)return!1;try{let r=1===e.nodeType?e:e.parentElement;for(;r?.tagName;){if(fe(r.dataset,t))return r.dataset.nrMfeObserved=n,!0;r=r.parentNode}}catch(e){}return!1},ge=(e,t)=>{const r=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]')),n=(Array.from(r)||[]).find(t=>fe(t.dataset,e));let i=!!n;i&&(n.dataset.nrMfeObserved??=e.instance);const s=new g.gm.MutationObserver(r=>{r.forEach(r=>{r.addedNodes.forEach(r=>{const n=1===r.nodeType?r:null;!i&&fe(n?.dataset,e)&&(s.disconnect(),s.observe(n,{childList:!0,subtree:!0}),i=!0,n.dataset.nrMfeObserved=e.instance),(e=>{try{return e?.textContent?.trim()||["img","video","canvas","svg"].includes(e?.nodeName?.toLowerCase())}catch(e){return!1}})(r)&&(i||pe(r,e))&&t(r,s)})})});return s.observe(n||g.gm.document,{childList:!0,subtree:!0}),s},me=(e,t,r)=>{try{const n=new g.gm.PerformanceObserver(e=>{e.getEntries().forEach(r)});return n.observe(t),e.push(n),n}catch(e){return null}};function ve(e,t){let r,n,i=!1;const s=e=>null==e?e:e-(t?.scriptStart||t?.registeredAt||0),a={fcp:{get value(){const e=s(r);return e>1e4?void 0:e},set value(e){i||(r=e)}},lcp:{get value(){if(void 0!==a.fcp.value)return s(n)},set value(e){i||(n=e)}},cls:{value:void 0},inp:{value:void 0},disconnect:()=>{}};if(!(e&&g.RI&&g.gm.MutationObserver&&g.gm.PerformanceObserver))return a;const o=[];setTimeout(()=>{r||a.disconnect()},1e4);const c=()=>{if(!i){if(null==r){const e=(0,_.t)();if(s(e)>1e4)return void a.disconnect();r=e}n??=(0,_.t)(),a.cls.value??=0}},d=ge(e,(e,t)=>{c(),t.disconnect()});o.push(d);let u=0,l=null;const f=new Set;try{l=new g.gm.ResizeObserver(e=>{i||e.forEach(e=>{try{const t=e.contentRect.width*e.contentRect.height;t>u&&(u=t,a.lcp.value=(0,_.t)()),l.unobserve(e.target)}catch(e){}})})}catch(e){}const h=ge(e,e=>{if(c(),l)try{const t=1===e.nodeType?e:e.parentElement;t&&!f.has(t)&&(f.add(t),"IMG"===t.tagName?t.complete?l.observe(t):t.addEventListener("load",()=>{l.observe(t)},{once:!0}):"VIDEO"===t.tagName?t.readyState>=2?l.observe(t):t.addEventListener("loadeddata",()=>{l.observe(t)},{once:!0}):l.observe(t))}catch(e){}});l&&o.push(l),o.push(h),me(o,{type:"layout-shift",buffered:!0},t=>{i||t.hadRecentInput||(t.sources||[]).some(r=>!!pe(r.node,e)&&(c(),a.cls.value+=t.value,!0))}),me(o,{type:"event",buffered:!0,durationThreshold:40},t=>{!i&&t.interactionId&&pe(t.target,e)&&(void 0===a.inp.value||t.duration>a.inp.value)&&(c(),a.inp.value=t.duration)});const p=["pointerdown","keydown"],m=()=>{p.forEach(e=>{g.gm.removeEventListener(e,v,{passive:!0})})};a.disconnect=()=>{i=!0,o.forEach(e=>{try{e?.disconnect()}catch(e){}}),m(),["visibilitychange","pagehide"].forEach(e=>{g.gm.removeEventListener(e,a.disconnect,{once:!0,passive:!0})})};const v=t=>{pe(t?.target,e)&&((()=>{try{h?.disconnect(),l?.disconnect()}catch(e){}})(),m())};p.forEach(e=>{g.gm.addEventListener(e,v,{passive:!0})}),["visibilitychange","pagehide"].forEach(e=>{g.gm.addEventListener(e,a.disconnect,{once:!0,passive:!0})});const y=g.gm.document?.querySelectorAll('[data-nr-mfe-id="'.concat(he(e.id),'"]'));return Array.from(y||[]).some(t=>fe(t.dataset,e))&&c(),a}var ye=r(9566),be=r(7560),Ee=r(9119);const we=["entry","scripts","all"],Re=["name","id","type"],Te=new Map([[ce,"addPageAction"],[oe,"log"],[de,"measure"],[ie,"noticeError"],[ue,"recordCustomEvent"]]),Ae={experimental:(0,C.J)(()=>(0,l.R)(54,"newrelic.register")),disabled:(0,C.J)(()=>(0,l.R)(55)),invalidTarget:(0,C.J)(e=>(0,l.R)(48,e)),deregistered:(0,C.J)(()=>(0,l.R)(68)),invalidTimingMethod:(0,C.J)(e=>(0,l.R)(80,e)),duplicateName:(0,C.J)(e=>(0,l.R)(81,e)),duplicateId:(0,C.J)(e=>(0,l.R)(82,e))};function Se(e){(0,N.Y)(k.eY,function(t){return xe(e,t)},e)}function xe(e,r){Ae.experimental(),r||={},r.instance=(0,ye.LA)(8),r.type=w.f.MFE,r.licenseKey||=e.info.licenseKey,r.blocked=!1,("object"!=typeof r.tags||null===r.tags||Array.isArray(r.tags))&&(r.tags={}),r.parent??={get id(){return e.runtime.appMetadata.agents?.[0].entityGuid},type:w.f.BA},r.manifest=(0,be.N)(r.manifest),void 0===r.timingMethod||we.includes(r.timingMethod)||(Ae.invali
392dTimingMethod(r.timingMethod),r.timingMethod=void 0);const n=(0,le.Qr)(r);r.manifest&&(0,le.xo)(n,r);const i=ve(r,n),s=(0,Ee.L)(""+location),a={};Object.prototype.hasOwnProperty.call(r,"attributes")||Object.defineProperty(r,"attributes",{get:()=>({...a,"source.id":r.id,"source.name":r.name,"source.type":r.type,"parent.type":r.parent?.type||w.f.BA,"parent.id":r.parent?.id})}),Object.entries(r.tags).forEach(([e,t])=>{Re.includes(e)||(a["source.".concat(e)]=t)});let o=()=>{};const c=e.runtime.registeredEntities,d=e=>{r.blocked=!0,o=e};function u(e){return"string"==typeof e&&!!e.trim()&&e.trim().length<501}e.init.api.register.enabled||d(Ae.disabled),u(r.id)&&u(r.name)||d(()=>Ae.invalidTarget(r)),c.forEach(e=>{try{const{name:t,id:n}=e.metadata.target;t===r.name&&n!==r.id&&Ae.duplicateName(r),n===r.id&&t!==r.name&&Ae.duplicateId(r)}catch(e){}});const f={addPageAction:(t,n={})=>m(ce,[t,{...a,...n},e],r),deregister:()=>{p(),d(Ae.deregistered)},log:(t,n={})=>m(oe,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),measure:(t,n={})=>m(de,[t,{...n,customAttributes:{...a,...n.customAttributes||{}}},e],r),noticeError:(t,n={})=>m(ie,[t,{...a,...n},e],r),recordCustomEvent:(t,n={})=>m(ue,[t,{...a,...n},e],r),setApplicationVersion:e=>g("application.version",e),setCustomAttribute:(e,t)=>g(e,t),setUserId:e=>g("enduser.id",e),metadata:{get customAttributes(){return a},target:r,timings:n,vitals:i,events:{latestTimestamp:void 0}}},h=()=>(r.blocked&&o(),r.blocked);function p(){if(n.reportedAt)return;n.reportedAt=(0,_.t)(),i.disconnect(),n.fcp=i.fcp,n.lcp=i.lcp,n.cls=i.cls,n.inp=i.inp;const e=n.fetchEnd-n.fetchStart,t=n.scriptEnd-n.scriptStart,r={assetUrl:n.asset,assetType:n.type,registerUrl:s,deregisterUrl:(0,Ee.L)(""+location),pageUrl:void 0,currentUrl:void 0,timeAlive:n.reportedAt-n.registeredAt,timeToBeRequested:n.fetchStart,timeToExecute:t,timeToFetch:e,timeToLoad:e+t,t
392imeToRegister:n.registeredAt,totalWeight:n.totalWeight,...void 0!==n.renderBlocking&&{renderBlocking:n.renderBlocking},...i.fcp.value>=0&&{"vitals.fcp.value":i.fcp.value},...i.lcp.value>=0&&{"vitals.lcp.value":i.lcp.value},...i.cls.value>=0&&{"vitals.cls.value":i.cls.value},...i.inp.value>=0&&{"vitals.inp.value":i.inp.value}};f.recordCustomEvent("MicroFrontEndTiming",r)}h()||(c.push(f),(0,V.G)(p));const g=(e,t)=>{h()||(a[e]=t)},m=(r,n,i)=>{if(h()&&r!==xe)return;const s=f.metadata.events.latestTimestamp??(0,_.t)();f.metadata.events.latestTimestamp=void 0;const a=Te.get(r)||"unknown";(0,S.p)(q.xV,["API/register/".concat(a,"/called")],void 0,t.K7.metrics,e.ee);try{return r(...n,i,s)}catch(e){(0,l.R)(50,e)}};return f}class Oe extends W{static featureName=Z.T;constructor(e){var t;super(e,Z.T),t=e,(0,N.Y)(k.o5,(e,r)=>ie(e,r,t),t),function(e){(0,N.Y)(k.bt,function(t){e.runtime.onerror=t},e)}(e),function(e){let t=0;(0,N.Y)(k.k6,function(e,r){++t>10||(this.runtime.releaseIds[e.slice(-200)]=(""+r).slice(-200))},e)}(e),Se(e);try{this.removeOnAbort=new AbortController}catch(e){}this.ee.on("internal-error",(t,r)=>{this.abortHandler&&(0,S.p)("ierr",[ee(t),(0,_.t)(),!0,{},e.runtime.isRecording,r],void 0,this.featureName,this.ee)}),g.gm.addEventListener("unhandledrejection",t=>{this.abortHandler&&(0,S.p)("err",[te(t),(0,_.t)(),!1,{unhandledPromiseRejection:1},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),g.gm.addEventListener("error",t=>{this.abortHandler&&(0,S.p)("err",[re(t),(0,_.t)(),!1,{},e.runtime.isRecording],void 0,this.featureName,this.ee)},(0,J.jT)(!1,this.removeOnAbort?.signal)),this.abortHandler=this.#n,this.importAggregator(e,()=>r.e(478).then(r.bind(r,9377)))}#n(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}var _e=r(8990);let ke=1;function Ne(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===g.gm?0:(0,_e.I)(e,"nr@id",function(){return ke++})}function Le(e){if("string"==typeof e)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,X.A)(e).length}catch(e){return}}}var Me=r(8139),Pe=r(3434),Ie=r(5732);const je={},Ce=["open","send","setRequestHeader"];function De(e,t){var r=e||R.ee;const n=function(e){return(e||R.ee).get("xhr")}(r);if(void 0===g.gm.XMLHttpRequest)return n;if(je[n.debugId]++)return n;je[n.debugId]=1,(0,Me.u)(r,t);var i=(0,Pe.YM)(n,void 0,t),s=g.gm.XMLHttpRequest,a=g.gm.MutationObserver,o=g.gm.Promise,c=g.gm.setInterval,d="readystatechange",u=["onload","onerror","onabort","onloadstart","onloadend","onprogress","ontimeout"],f=[],h=g.gm.XMLHttpRequest=function(e){const r=new s(e),a=n.context(r);a.targets=(0,Ie.$5)(t);try{n.emit("new-xhr",[r],a),r.addEventListener(d,(o=a,function(){var e=this;e.readyState>3&&!o.resolved&&(o.resolved=!0,n.emit("xhr-resolved",[],e)),i.inPlace(e,u,"fn-",E)}),(0,J.jT)(!1))}catch(e){(0,l.R)(15,e);try{n.emit("internal-error",[e])}catch(e){}}var o;return r};function p(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(s,h),h.prototype=s.prototype,i.inPlace(h.prototype,Ce,"-xhr-",E),n.on("send-xhr-start",function(e,t){p(e,t),function(e){f.push(e),a&&(m?m.then(b):c?c(b):(v=-v,y.data=v))}(t)}),n.on("open-xhr-start",p),a){var m=o&&o.resolve();if(!c&&!o){var v=1,y=document.createTextNode(v);new a(b).observe(y,{characterData:!0})}}else r.on("fn-end",function(e){e[0]&&e[0].type===d||b()});function b(){for(var e=0;e<f.length;e++)p(0,f[e]);f.length&&(f=[])}function E(e,t){return t}return n}var Be="fetch-",He=Be+"body-",We=["arrayBuffer","blob","json","text","formData"],Ue=g.gm.Request,Ke=g.gm.Response,Fe="prototype";const Ve={};function ze(e,t){const r=function(e){return(e||R.ee).get("fetch")}(e);if(!(Ue&&Ke&&g.gm.fetch))return r;if(Ve[r.debugId]++)return r;function n(e,n,i){var s=e[n];"function"==typeof s&&(e[n]=function(){var e=[...arguments];const n={},a=(0,Ie.$5)(t);var o;r.emit(i+"before-start",[e],n),n[R.P]&&n[R.P].dt&&(o=n[R.P].dt);var c=s.apply(this,e);return r.emit(i+"start",[e,o],c),c.then(function(e){return r.emit(i+"end",[null,e,a],c),e},function(e){throw r.emit(i+"end",[e,void 0,a],c),e})})}
392return Ve[r.debugId]=1,We.forEach(e=>{n(Ue[Fe],e,He),n(Ke[Fe],e,He)}),n(g.gm,"fetch",Be),r.on(Be+"end",function(e,n,i){var s=this;if(s.targets=i||[t.runtime.v2Target],n){var a=n.headers.get("content-length");null!==a&&(s.rxSize=a),r.emit(Be+"done",[null,n],s)}else r.emit(Be+"done",[e],s)}),r}var Ge=r(7485);class qe{constructor(e){this.agentRef=e}generateTracePayload(e){const t=this.agentRef.loader_config;if(!this.shouldGenerateTrace(e)||!t)return null;var r=(t.accountID||"").toString()||null,n=(t.agentID||"").toString()||null,i=(t.trustKey||"").toString()||null;if(!r||!n)return null;var s=(0,ye.ZF)(),a=(0,ye.el)(),o=Date.now(),c={spanId:s,traceId:a,timestamp:o};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(c.traceContextParentHeader=this.generateTraceContextParentHeader(s,a),c.traceContextStateHeader=this.generateTraceContextStateHeader(s,o,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(c.newrelicHeader=this.generateTraceHeader(s,a,o,r,n,i)),c}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,s){if(!("function"==typeof g.gm?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return s&&n!==s&&(a.d.tk=s),btoa((0,X.A)(a))}shouldGenerateTrace(e){return this.agentRef.init?.distributed_tracing?.enabled&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var t=!1;const r=this.agentRef.init?.distributed_tracing;if(e.sameOrigin)t=!0;else if(r?.allowed_origins instanceof Array)for(var n=0;n<r.allowed_origins.length;n++){var i=(0,Ge.D)(r.allowed_origins[n]);if(e.hostname===i.hostname&&e.protocol===i.protocol&&e.port===i.port){t=!0;break}}return t}excludeNewrelicHeader(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.exclude_newrelic_header}useNewrelicHeaderForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!1!==e.cors_use_newrelic_header}useTraceContextHeadersForCors(){var e=this.agentRef.init?.distributed_tracing;return!!e&&!!e.cors_use_tracecontext_headers}}var Ye=r(7295);function Ze(e){return"string"==typeof e?e:e instanceof(0,i.dV)().o.REQ?e.url:g.gm?.URL&&e instanceof URL?e.href:void 0}function $e(e,t){var r=(0,Ge.D)(t),n=e.params||e;n.hostname=r.hostname,n.port=r.port,n.protocol=r.protocol,n.host=r.hostname+":"+r.port,n.pathname=r.pathname,e.parsedOrigin=r,e.sameOrigin=r.sameOrigin}var Je=["load","error","abort","timeout"],Xe=Je.length,Qe=(0,i.dV)().o.REQ,et=(0,i.dV)().o.XHR;const tt="X-NewRelic-App-Data",rt="internal-error";class nt extends W{static featureName=c.TZ;constructor(e){super(e,c.TZ),this.dt=new qe(e),this.handler=(e,t,r,n)=>(0,S.p)(e,t,r,n,this.ee);try{const e={xmlhttprequest:"xhr",fetch:"fetch",beacon:"beacon"};g.gm?.performance?.getEntriesByType("resource").forEach(r=>{if(r.initiatorType in e&&0!==r.responseStatus){const n={status:r.responseStatus},i={rxSize:r.transferSize,duration:Math.floor(r.duration),cbTime:0};$e(n,r.name),this.handler("xhr",[n,i,r.startTime,r.responseEnd,e[r.initiatorType]],void 0,t.K7.ajax)}})}catch(e){}ze(this.ee,e),De(this.ee,e),function(e,r,n,i){const s=[c.mo.ALL,c.mo.FAILURES].includes(e.init.ajax?.capture_payloads);function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=A,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},t.latestLongtaskEnd=0,e.addEventListener("load",function(r){O(t,e)},(0,J.jT)(!1)),g.lR||e.addEventListener("progress",function(e){t.lastSize=e.loaded},(0,J.jT)(!1))}function o(e){this.params={method:e[0]},$e(this,e[1]),this.metrics={}}function d(t,r){e.loader_config.xpid&&this.sameOrigin&&r.setRequestHeader("X-NewRelic-ID",e.loader_config.xpid);var n=i.generateTracePayload(this.parsedOrigin);if(n){var s=!1;n.newrelicHeader&&(r.setRequestHeader("newrelic",n.newrelicHeader),s=!0),n.traceContextParentHeader&&(r.setRequestHeader("traceparent",n.traceContextParentHeader),n.traceContextStateHeader&&r.setRequestHeader("tracestate",n.traceContextStateHeader),s=!0),s&&(this.dt=n)}}function u(e,t){s&&e.length>=2&&(this.requestHeaders??={},this.requestHeaders[e[0].toLowerCase()]=e[1])}function l(e,t){var n=this.metrics,i=e[0],s=this;if(n&&i){var a=Le(i);a&&(n.txSize=a)}this.startTime=(0,_.t)(),this.requestBody=i,this.listener=function(e){try{"abort"!==e.type||s.loadCaptureCalled||(s.params.aborted=!0),("load"
392!==e.type||s.called===s.totalCbs&&(s.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof s.end)&&s.end(t)}catch(e){try{r.emit(rt,[e])}catch(e){}}};for(var o=0;o<Xe;o++)t.addEventListener(Je[o],this.listener,(0,J.jT)(!1))}function f(e,t,r){this.cbTime+=e,t?this.onloadCalled=!0:this.called+=1,this.called!==this.totalCbs||!this.onloadCalled&&"function"==typeof r.onload||"function"!=typeof this.end||this.end(r)}function h(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&!this.xhrGuids[r]&&(this.xhrGuids[r]=!0,this.totalCbs+=1)}function p(e,t){var r=""+Ne(e)+!!t;this.xhrGuids&&this.xhrGuids[r]&&(delete this.xhrGuids[r],this.totalCbs-=1)}function m(){this.endTime=(0,_.t)()}function v(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-added",[e[1],e[2]],t)}function y(e,t){t instanceof et&&"load"===e[0]&&r.emit("xhr-load-removed",[e[1],e[2]],t)}function b(e,t,r){t instanceof et&&("onload"===r&&(this.onload=!0),("load"===(e[0]&&e[0].type)||this.onload)&&(this.xhrCbStart=(0,_.t)()))}function E(e,t){this.xhrCbStart&&r.emit("xhr-cb-time",[(0,_.t)()-this.xhrCbStart,this.onload,t],t)}function w(e){var t,r=e[1]||{};if("string"==typeof e[0]?0===(t=e[0]).length&&g.RI&&(t=""+g.gm.location.href):e[0]&&e[0].url?t=e[0].url:g.gm?.URL&&e[0]&&e[0]instanceof URL?t=e[0].href:"function"==typeof e[0].toString&&(t=e[0].toString()),"string"==typeof t&&0!==t.length){t&&(this.parsedOrigin=(0,Ge.D)(t),this.sameOrigin=this.parsedOrigin.sameOrigin);var n=i.generateTracePayload(this.parsedOrigin);if(n&&(n.newrelicHeader||n.traceContextParentHeader))if(e[0]&&e[0].headers)o(e[0].headers,n)&&(this.dt=n);else{var s={};for(var a in r)s[a]=r[a];s.headers=new Headers(r.headers||{}),o(s.headers,n)&&(this.dt=n),e.length>1?e[1]=s:e.push(s)}}function o(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function R(e,t){this.params={},this.metrics={},this.startTime=(0,_.t)(),this.dt=t;let[r,n={}]=e;$e(this,Ze(r));const i=(""+(r&&r instanceof Qe&&r.method||n.method||"GET")).toUpperCase();this.params.method=i,this.txSize=Le(n.body||r?.body)||0;try{var a=n.headers||r?.headers;if(s&&a)if(this.requestHeaders??={},a instanceof Headers)a.forEach(function(e,t){this.requestHeaders[t.toLowerCase()]=e}.bind(this));else if("object"==typeof a)for(var o in a)this.requestHeaders[o.toLowerCase()]=a[o]}catch(e){}this.requestBody=n.body||r?.body}function T(e,t){if(this.endTime=(0,_.t)(),this.params||(this.params={}),(0,Ye.iW)(this.params))return;this.params.status=t?t.status:0;const n=()=>{const e=+this.rxSize,t=null==this.rxSize||isNaN(e)?void 0:e,r={txSize:this.txSize,rxSize:t,duration:this.endTime-this.startTime},n=[this.params,r,this.startTime,this.endTime,"fetch"];this.targets.forEach(e=>x(n,this,e))};t&&s?t.clone().text().then(e=>{this.responseBody=e,this.rxSize&&"0"!==this.rxSize&&0!==this.rxSize||void 0===e||0===this.params.status||(this.rxSize=Le(e)),t?.headers&&(this.responseHeaders={},t.headers.forEach(function(e,t){this.responseHeaders[t.toLowerCase()]=e}.bind(this)))}).catch(e=>{r.emit(rt,[e])}).finally(()=>{n()}):n()}function A(e){const t=this.params,n=this.metrics;if(this.ended)return;this.ended=!0;for(let t=0;t<Xe;t++)e.removeEventListener(Je[t],this.listener,!1);if(t.aborted)return;if((0,Ye.iW)(t))return;if(n.duration=this.endTime-this.startTime,this.loadCaptureCalled||4!==e.readyState?null==t.status&&(t.status=0):O(this,e),n.cbTime=this.cbTime,s){try{this.responseBody=e.responseText}catch(t){this.responseBody=e.response}if((!n.rxSize||0===n.rxSize)&&void 0!==this.responseBody&&0!==t.status){const e=Le(this.responseBody);void 0!==e&&(n.rxSize=e)}try{this.responseHeaders=function(e){const t={};return e?(e.split("\r\n").forEach(function(e){const r=e.indexOf(": ");if(r>0){const n=e.substring(0,r),i=e.substring(r+2);t[n.toLowerCase()]=i}}),t):t}(e.getAllResponseHeaders())}catch(e){r.emit(rt,[e])}}const i=[t,n,this.startTime,this.endTime,"xhr"];this.targets.forEach(e=>x(i,this,e))}function x(e,r,i){n("xhr",[...e,i],r,t.K7.ajax)}function O(e,n){e.params.status=n.status;var i=function(e,t){var r=e.responseType;return"json"===r&&null!==t?t:"arraybuffer"===r||"blob"===r||"json"===r?Le(e.response):"text"===r||""===r||void 0===r?Le(e.responseText):void 0}(n,e.lastSize);if(void 0!==i&&0!==n.status&&(e.metrics.rxSize=i),e.sameOrigin&&n.getAllResponseHeaders().indexOf(tt)>=0){var s=n.getResponseHeader(tt);s&&((0,S.p)("sm",["Ajax/CrossApplicationTracing/Header/Seen"],void 0,t.K7.metrics,r),e.params.cat=s.split(", ").pop())}e.loadCaptureCalled=!0}r.on("new-xhr",a),r.on("open-xhr-start",o),r.on("open-xhr-end",d),r.on("send-xhr-start",l),r.on("setRequestHeader-xhr-start",u),r.on("xhr-cb-time",f),r.on("xhr-load-added",h),r.on("xhr-load-removed",p),r.on("xhr-resolved",m),r.on("addEventListener-end",v),r.on("removeEventListener-end",y),r.on("fn-end",E),r.on("fetch-before-start",w),r.on("fetch-start",R),r.on("fn-start",b),r.on("fetch-done",T)}(e,this.ee,this.handler,this.dt),this.importAggregator(e,()=>r.e(478).then(r.bind(r,3845)))}}const it={},st=["pushState","replaceState"];function at(e,t){const r=function(e){return(e||R.ee).get("history")}(e);return!g.RI||it[r.debugId]++||(it[r.debugId]=1,(0,Pe.YM)(r,void 0,t).inPlace(window.history,st,"-")),r}var ot=r(3738);function ct(e){(0,N.Y)(k.BL,function(r=Date.now()){const n=r-g.WN;n<0&&(0,l.R)(62,r),(0,S.p)(q.XG,[k.BL,{time:n}],void 0,t.K7.metrics,e.ee),e.addToTrace({name:k.BL,start:r,origin:"nr"}),(0,S.p)("api-"+k.hG,[n,k.BL],void 0,t.K7.genericEvents,e.ee)},e)}const{He:dt,bD:ut,d3:lt,Kp:ft,TZ:ht,Lc:pt,uP:gt,Rz:mt}=ot;class vt extends W{static featureName=ht;constructor(e){var n;super(e,ht),n=e,(0,N.Y)(k.U2,function(e){if(!(e&&"object"==typeof e&&e.name&&e.start))return;const r={n:e.name,s:e.start-g.WN,e:(e.end||e.start)-g.WN,o:e.origin||"",t:"api"};r.s<0||r.e<0||r.e<r.s?(0,l.R)(61,{start:r.s,end:r.e}):(0,S.p)("bstApi",[r],void 0,t.K7.sessionTrace,n.ee)},n),ct(e);
392if(!(0,j.V)(e.init))return void this.deregisterDrain();const i=this.ee;let s;at(i,e),this.eventsEE=(0,Me.u)(i,e),this.eventsEE.on(gt,function(e,t){this.bstStart=(0,_.t)()}),this.eventsEE.on(pt,function(e,r){(0,S.p)("bst",[e[0],r,this.bstStart,(0,_.t)()],void 0,t.K7.sessionTrace,i)}),i.on(mt+lt,function(e){this.time=(0,_.t)(),this.startPath=location.pathname+location.hash}),i.on(mt+ft,function(e){(0,S.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,t.K7.sessionTrace,i)});try{s=new PerformanceObserver(e=>{const r=e.getEntries();(0,S.p)(dt,[r],void 0,t.K7.sessionTrace,i)}),s.observe({type:ut,buffered:!0})}catch(e){}this.importAggregator(e,()=>r.e(478).then(r.bind(r,6974)),{resourceObserver:s})}}var yt=r(733),bt=r(6344);class Et extends W{static featureName=bt.TZ;#i;recorder;constructor(e){var n;let i;super(e,bt.TZ),n=e,(0,N.Y)(k.CH,function(){(0,S.p)(k.CH,[],void 0,t.K7.sessionReplay,n.ee)},n),function(e){(0,N.Y)(k.Tb,function(){(0,S.p)(k.Tb,[],void 0,t.K7.sessionReplay,e.ee)},e)}(e);const s="".concat(u.Wt).concat((0,yt.Y)(e.info.licenseKey,e.info.applicationID));try{i=JSON.parse(localStorage.getItem(s))}catch(e){}(0,I.SR)(e.init)&&this.ee.on(k.CH,()=>this.#s()),this.#a(i)&&this.importRecorder().then(e=>{e.startRecording(bt.Qb.PRELOAD,i?.sessionReplayMode)}),this.abortHandler=this.#n,this.importAggregator(this.agentRef,()=>r.e(478).then(r.bind(r,6167)),this),this.ee.on("err",e=>{this.blocked||this.agentRef.runtime.isRecording&&(this.errorNoticed=!0,(0,S.p)(bt.Vh,[e],void 0,this.featureName,this.ee))})}#a(e){return e&&(e.sessionReplayMode===u.g.FULL||e.sessionReplayMode===u.g.ERROR)||(0,I.Aw)(this.agentRef.init)}importRecorder(){return this.recorder?Promise.resolve(this.recorder):(this.#i??=Promise.all([r.e(478),r.e(249)]).then(r.bind(r,4866)).then(({Recorder:e})=>(this.recorder=new e(this),this.recorder)).catch(e=>{throw this.ee.emit("internal-error",[e]),this.blocked=!0,e}),this.#i)}#s(){this.blocked||(this.featAggregate?this.featAggregate.mode!==u.g.FULL&&this.featAggregate.initializeRecording(u.g.FULL,!0,bt.Qb.API):this.importRecorder().then(()=>{this.recorder.startRecording(bt.Qb.API,u.g.FULL)}))}#n(){this.recorder?.stopRecording()}}var wt=r(3962);class Rt extends W{static featureName=wt.TZ;constructor(e){if(super(e,wt.TZ),function(e){const r=e.ee.get("tracer");function n(){}(0,N.Y)(k.dT,function(e){return(new n).get("object"==typeof e?e:{})},e);const i=n.prototype={createTracer:function(n,i){var s={},a=this,o="function"==typeof i;return(0,S.p)(q.xV,["API/createTracer/called"],void 0,t.K7.metrics,e.ee),function(){if(r.emit((o?"":"no-")+"fn-start",[(0,_.t)(),a,o],s),o)try{return i.apply(this,arguments)}catch(e){const t="string"==typeof e?new Error(e):e;throw r.emit("fn-err",[arguments,this,t],s),t}finally{r.emit("fn-end",[(0,_.t)()],s)}}}};["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach(r=>{N.Y.apply(this,[r,function(){return(0,S.p)(k.hw+r,[performance.now(),...arguments],this,t.K7.softNav,e.ee),this},e,i])}),(0,N.Y)(k.PA,function(){(0,S.p)(k.hw+"routeName",[performance.now(),...arguments],void 0,t.K7.softNav,e.ee)},e)}(e),!g.RI||!(0,i.dV)().o.MO)return;const n=at(this.ee,e);try{this.removeOnAbort=new AbortController}catch(e){}wt.tC.forEach(e=>{(0,J.sp)(e,e=>{c(e)},!0,this.removeOnAbort?.signal)}
392);const s=()=>(0,S.p)("newURL",[(0,_.t)(),""+window.location],void 0,this.featureName,this.ee);n.on("pushState-end",s),n.on("replaceState-end",s),(0,J.sp)(wt.OV,e=>{c(e),(0,S.p)("newURL",[e.timeStamp,""+window.location],void 0,this.featureName,this.ee)},!0,this.removeOnAbort?.signal);let a=!1;const o=new((0,i.dV)().o.MO)((e,t)=>{a||(a=!0,requestAnimationFrame(()=>{(0,S.p)("newDom",[(0,_.t)()],void 0,this.featureName,this.ee),a=!1}))}),c=(0,C.s)(e=>{"loading"!==document.readyState&&((0,S.p)("newUIEvent",[e],void 0,this.featureName,this.ee),o.observe(document.body,{attributes:!0,childList:!0,subtree:!0,characterData:!0}))},100,{leading:!0});this.abortHandler=function(){this.removeOnAbort?.abort(),o.disconnect(),this.abortHandler=void 0},this.importAggregator(e,()=>r.e(478).then(r.bind(r,4393)),{domObserver:o})}}var Tt=r(981);const At={},St=new Set;function xt(e){return"string"==typeof e?{type:"string",size:(new TextEncoder).encode(e).length}:e instanceof ArrayBuffer?{type:"ArrayBuffer",size:e.byteLength}:e instanceof Blob?{type:"Blob",size:e.size}:e instanceof DataView?{type:"DataView",size:e.byteLength}:ArrayBuffer.isView(e)?{type:"TypedArray",size:e.byteLength}:{type:"unknown",size:0}}class Ot{constructor(e,t){this.timestamp=(0,_.t)(),this.currentUrl=(0,Ee.L)(window.location.href),this.socketId=(0,ye.LA)(8),this.requestedUrl=(0,Ee.L)(e),this.requestedProtocols=Array.isArray(t)?t.join(","):t||"",this.openedAt=void 0,this.protocol=void 0,this.extensions=void 0,this.binaryType=void 0,this.messageOrigin=void 0,this.messageCount=0,this.messageBytes=0,this.messageBytesMin=0,this.messageBytesMax=0,this.messageTypes=void 0,this.sendCount=0,this.sendBytes=0,this.sendBytesMin=0,this.sendBytesMax=0,this.sendTypes=void 0,this.closedAt=void 0,this.closeCode=void 0,this.closeReason="unknown",this.closeWasClean=void 0,this.connectedDuration=0,this.hasErrors=void 0}}class _t extends W{static featureName=o.TZ;constructor(e){super(e,o.TZ);const n=e.init.feature_flags.includes("websockets")||e.init.web_sockets?.enabled,s=!e.init.feature_flags.includes("no_spv"),a=[e.init.page_action.enabled,e.init.performance.capture_marks,e.init.performance.capture_measures,e.init.performance.resources.enabled,e.init.user_actions.enabled,n,s];var c;let d;if(c=e,(0,N.Y)(k.hG,(e,t)=>ce(e,t,c),c),function(e){(0,N.Y)(k.fF,(t,r)=>ue(t,r,e),e)}(e),ct(e),Se(e),function(e){(0,N.Y)(k.V1,(t,r)=>de(t,r,e),e)}(e),this.removeOnAbort=new AbortController,this.abortHandler=()=>{this.removeOnAbort.abort(),this.abortHandler=void 0},n){const u=function(e,t){if(!(0,i.dV)().o.WS)return e;const r=e.get("websockets");if(At[r.debugId]++)return r;At[r.debugId]=1,(0,V.G)(()=>{const e=(0,_.t)();St.forEach(t=>{t.nrData.closedAt=e,t.nrData.closeCode=1001,t.nrData.closeReason="Page navigating away",t.nrData.closeWasClean=!1,t.nrData.openedAt&&(t.nrData.connectedDuration=e-t.nrData.openedAt),r.emit("ws",[t.nrData,t.targets],t)})});
392class n extends WebSocket{static name=Tt.R.WS;static toString(){return"function WebSocket() { [native code] }"}toString(){return"[object WebSocket]"}get[Symbol.toStringTag](){return n.name}#o(e){(e.__newrelic??={}).socketId=this.nrData.socketId,this.nrData.hasErrors??=!0}constructor(...e){super(...e),this.nrData=new Ot(e[0],e[1]),this.targets=(0,Ie.$5)(t),this.addEventListener("open",()=>{this.nrData.openedAt=(0,_.t)(),["protocol","extensions","binaryType"].forEach(e=>{this.nrData[e]=this[e]}),St.add(this)}),this.addEventListener("message",e=>{const{type:t,size:r}=xt(e.data);this.nrData.messageOrigin??=(0,Ee.L)(e.origin),this.nrData.messageCount++,this.nrData.messageBytes+=r,this.nrData.messageBytesMin=Math.min(this.nrData.messageBytesMin||1/0,r),this.nrData.messageBytesMax=Math.max(this.nrData.messageBytesMax,r),(this.nrData.messageTypes??"").includes(t)||(this.nrData.messageTypes=this.nrData.messageTypes?"".concat(this.nrData.messageTypes,",").concat(t):t)}),this.addEventListener("close",e=>{this.nrData.closedAt=(0,_.t)(),this.nrData.closeCode=e.code,e.reason&&(this.nrData.closeReason=e.reason),this.nrData.closeWasClean=e.wasClean,this.nrData.connectedDuration=this.nrData.closedAt-this.nrData.openedAt,St.delete(this),r.emit("ws",[this.nrData,this.targets],this)})}addEventListener(e,t,...r){const n=this,i="function"==typeof t?function(...e){try{return t.apply(this,e)}catch(e){throw n.#o(e),e}}:t?.handleEvent?{handleEvent:function(...e){try{return t.handleEvent.apply(t,e)}catch(e){throw n.#o(e),e}}}:t;return super.addEventListener(e,i,...r)}send(e){if(this.readyState===WebSocket.OPEN){const{type:t,size:r}=xt(e);this.nrData.sendCount++,this.nrData.sendBytes+=r,this.nrData.sendBytesMin=Math.min(this.nrData.sendBytesMin||1/0,r),this.nrData.sendBytesMax=Math.max(this.nrData.sendBytesMax,r),(this.nrData.sendTypes??"").includes(t)||(this.nrData.sendTypes=this.nrData.sendTypes?"".concat(this.nrData.sendTypes,",").concat(t):t)}try{return super.send(e)}catch(e){throw this.#o(e),e}}close(...e){try{super.close(...e)}catch(e){throw this.#o(e),e}}}return g.gm.WebSocket=n,r}(this.ee,e);u.on("ws",(e,t)=>{(0,S.p)("ws-complete",[e,t],void 0,this.featureName,this.ee)})}if(s){if("function"==typeof g.gm.ReportingObserver){const l=new g.gm.ReportingObserver(e=>{e.forEach(e=>{(0,S.p)("spv",[kt(e),(0,_.t)()],void 0,t.K7.genericEvents,this.ee)}),l.disconnect()},{types:["csp-violation"],buffered:!0});l.observe()}g.gm.addEventListener("securitypolicyviolation",e=>{(0,S.p)("spv",[kt(e),e.timeStamp],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal))}if(g.RI){if(ze(this.ee,e),De(this.ee,e),d=at(this.ee,e),e.init.user_actions.enabled){function f(t){const r=(0,Ge.D)(t);return e.beacons.includes(r.hostname+":"+r.port)}function h(){d.emit("navChange")}o.Zp.forEach(e=>(0,J.sp)(e,e=>(0,S.p)("ua",[e],void 0,this.featureName,this.ee),!0)),o.qN.forEac
392h(e=>{const t=(0,C.s)(e=>{(0,S.p)("ua",[e],void 0,this.featureName,this.ee)},500,{leading:!0});(0,J.sp)(e,t)}),g.gm.addEventListener("error",()=>{(0,S.p)("uaErr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(!1,this.removeOnAbort.signal)),this.ee.on("open-xhr-start",(e,r)=>{f(e[1])||r.addEventListener("readystatechange",()=>{2===r.readyState&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)},(0,J.jT)(void 0,this.removeOnAbort.signal))}),this.ee.on("fetch-start",e=>{e.length>=1&&!f(Ze(e[0]))&&(0,S.p)("uaXhr",[],void 0,t.K7.genericEvents,this.ee)}),d.on("pushState-end",h),d.on("replaceState-end",h),window.addEventListener("hashchange",h,(0,J.jT)(!0,this.removeOnAbort.signal)),window.addEventListener("popstate",h,(0,J.jT)(!0,this.removeOnAbort.signal))}if(e.init.performance.resources.enabled&&g.gm.PerformanceObserver?.supportedEntryTypes.includes("resource")){new PerformanceObserver(e=>{e.getEntries().forEach(e=>{(0,S.p)("browserPerformance.resource",[e],void 0,this.featureName,this.ee)})}).observe({type:"resource",buffered:!0})}}a.some(e=>e)?this.importAggregator(e,()=>r.e(478).then(r.bind(r,8019))):this.deregisterDrain()}}function kt(e){const t=e.body??e;return{blockedUrl:t.blockedURL??e.blockedURI,documentUrl:t.documentURL??e.documentURI,effectiveDirective:t.effectiveDirective,originalPolicy:t.originalPolicy,sourceFile:t.sourceFile,statusCode:t.statusCode,lineNumber:t.lineNumber,columnNumber:t.columnNumber,disposition:"reporting"===t.disposition?"report":t.disposition,sample:t.sample,referrer:t.referrer}}var Nt=r(2646);const Lt=new Map;function Mt(e,t,r,n,i=!0,s){if("object"!=typeof t||!t||"string"!=typeof r||!r||"function"!=typeof t[r])return(0,l.R)(29);const a=function(e){return(e||R.ee).get("logger")}(e),o=(0,Pe.YM)(a,void 0,s),c=new Nt.y(R.P);c.level=n.level,c.customAttributes=n.customAttributes,c.autoCaptured=i;const d=t[r]?.[Pe.Jt]||t[r];return Lt.set(d,c),o.inPlace(t,[r],"wrap-logger-",()=>Lt.get(d),void 0,!0),a}var Pt=r(1910);class It extends W{static featureName=se.TZ;constructor(e){var t;super(e,se.TZ),t=e,(0,N.Y)("log",(e,r)=>oe(e,r,t),t),function(e){(0,N.Y)(k.Wb,(t,r,{customAttributes:n={},level:i=se.p_.INFO}={})=>{Mt(e.ee,t,r,{customAttributes:n,level:i},!1,e)},e)}(e),Se(e);const n=this.ee;["log","error","warn","info","debug","trace"].forEach(t=>{(0,Pt.i)(g.gm.console[t]),Mt(n,g.gm.console,t,{level:"log"===t?"info":t},void 0,e)}),this.ee.on("wrap-logger-end",function([t],r,i,s=[e.runtime.v2Target]){const{level:a,customAttributes:o,autoCaptured:c}=this;s.forEach(e=>{(0,ae.R)(n,t,o,a,c,e)})}),this.importAggregator(e,()=>r.e(478).then(r.bind(r,5288)))}}new F({features:[nt,K,G,vt,Et,Y,Oe,_t,It,Rt],loaderType:"spa"})})()})();</script>
392
393<meta http-equiv="Content-Language" content="EN" />
394<meta name="language" content="en" />
395<meta name="distribution" content="global" />
396<meta name="GOOGLEBOT" content="INDEX,FOLLOW" />
397<meta name="robots" content="index | follow" />
398<meta name="REVISIT-AFTER" content="7 days" />
399<meta name="description" content="Your brain health is important, login to continue. Sign up to start your personalized brain training today. One click social sign up and login." />        <meta property="og:site_name" content="CogniFit - Account - Login or Reset Password" />
400                <meta property='og:type' content='website' />
401        <meta property='og:title' content='CogniFit' />
402        <meta property='og:image' content='https://www.cognifit.com/img/cognifit.png' />
403        <meta property='og:url' content='https://www.cognifit.com/login' />
404        <meta property='og:description' content="Your brain health is important, login to continue. Sign up to start your personalized brain training today. One click social sign up and login." />
405        
406
407<meta name="google-site-verification" content="lsb8DF-oKuLYu4S7wV8Lz9HfqTwbtM3Cz9YBZ9iX5uU"/>
408<meta name="baidu-site-verification" content="b9FCFlRUDA"/>
409<meta name="naver-site-verification" content="abdc0727837f478d54c3dfb6ee70770e392ad1f3"/>
410<meta name="google-signin-client_id" content="246580644645-v8mn20777f3bpla68jg4csbos0q5umbd.apps.googleusercontent.com"/>
411<meta property="fb:app_id"
412      content="147013575367957"/>
413
414<meta name="apple-itunes-app" content="app-id=528285610">
415<meta name='ir-site-verification-token' value='922456492'>
416
417<script src="https://accounts.google.com/gsi/client" async defer></script>
vendor: 2 bytes, line 417
417
418<script>
419    let gisCallbackInitialized = false;
420    function gisCallback(credentialResponse){
421        if(typeof onSignIn !== 'function'){
422            function onSignIn(credentialResponse) {
423                if("object"==typeof credentialResponse&&void 0!==credentialResponse.credential){var e="",t=$(".fastRegTag").val(),a=$(".homeSurvey").val();t&&a&&(e="?fastRegTag="+t+"&homeSurvey="+a),jQuery.ajax({type:"POST",dataType:"json",url:"/default/index/registro-google-site"+e,data:{credential:credentialResponse.credential},success:function(e){e.result&&e.sessionId&&(e.destination?window.location.href=e.destination:window.location.href="/my-cognifit")}})}
424            }
425            onSignIn(credentialResponse);
426        }
427    }
428    window.onload = function () {
429        if(!gisCallbackInitialized){
430            gisCallbackInitialized = true;
431            google.accounts.id.initialize({
432                client_id: "246580644645-v8mn20777f3bpla68jg4csbos0q5umbd.apps.googleusercontent.com",
433                callback: gisCallback,
434                auto_select: false,
435                cancel_on_tap_outside: false
436            });
437            google.accounts.id.prompt();
438        }
439    };
440</script>
vendor: 2 bytes, line 440
440
441<script>
442    let params = (new URL(document.location)).searchParams;
443    let irclickid = params.get("irclickid");
444
445    if (irclickid && (General.getCookie('irclickid') !== irclickid)) {
446        General.setCookie('irclickid', irclickid, 3);
447    }
448</script>
448
449
450
451    <!-- Google Tag Manager -->
452    
452<script>
vendor: 379 bytes, lines 452-456
452(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
453                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
454            j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
455            'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
456        })(window,document,'script','dataLayer','
456GTM-WWKDVFT
vendor: 3 bytes, line 456
456');
456</script>
456
457    <!-- End Google Tag Manager -->
458    
459    
460    
461    
461<script>
462</script>
462
463
464
465<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=646df1f7413e9c001905a1de&product=sop' async='async'></script>
465
466
467</head>
468
469
470<body id="home2a"
471      class=" new_corpo new_home new_test signup main-home2a locale_en ">
472
473	
474
475
476<div id="header" class="nanHead nanIntroHead ">
477    <div class="nanIntBoard" id="nanHeadNew">
478        <div class="nanHTop">
479            <div class="nanHLeft">
480   
481                					<div class="nanBtMovMenu nanSpriteHome"></div> 
482				                                
483                        					
484                                
485                                 <h2 class="usTyDiv activePlats">
486                                                                        <a title="CogniFit" class=" " href="/">
487                                        <span class="lgSpace"></span><span class="nanHidden">CogniFit - </span><span class="subtlog">											
488                                        Brain Training                                        </span>
489                                    </a>
490                                </h2>  
491                                	
492                        		 
493                                                
494                
495                          
496            </div>
497                    
498                            <nav class="nanMenu">
499                    <a class="nanBtMenuClose"></a>
500                    	<ul class="nanMLevel1">
501                    <li class="nanMenuLiMain">
502                <a class="nanMenuLiMainA"
503                    href="/assessments">
504                        Cognitive Test                </a>
505            </li>
506        															<li class="nanMenuLiMain">
507								<a class="nanMenuLiMainA">
508									Brain Training								</a>
509								<ul class="nanMLevel2 nanSubLevel">
510							<li><ul class="nanIntBoard">
511												                                <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2First">
512                                    <a href="/cognitive-skills">
513                                        What cognitive skills do we assess?                                    </a>
514                                </li>
515                                							                            <li class="nanMLiLevel2 nanMLiLevel2 ">
516                                <strong>
517                                    Training for Children                                </strong>
518								<ul class="nanMLevel3">
519							                                <li>
520                                    <a href="/brain-training-kids">
521                                        Exercises for Children                                    </a>
522                                </li>
523                                                                <li>
524                                    <a href="/attention-brain-games-training">
525                                        Concentration                                    </a>
526                                </li>
527                                                                <li>
528                                    <a href="/exams-training">
529                                        Exams                                    </a>
530                                </li>
531                                                                <li>
532                                    <a href="/online-memory-games-training">
533                                        Memory                                    </a>
534                                </li>
535                                                                <li>
536                                    <a href="/executive-function-training">
537                                        Reasoning                                    </a>
538                                </li>
539                                                                <li>
540                                    <a href="/reading-comprehension">
541                                        Reading Comprehension                                    </a>
542                                </li>
543                                                                <li>
544                                    <a href="/perception-training">
545                                        Perception                                    </a>
546                                </li>
547                                                                <li>
548                                    <a href="/coordination-training">
549                                        Coordination                                    </a>
550                                </li>
551                                                                <li>
552                                    <a href="/cool-math-games">
553                                        Cool Math Games                                    </a>
554                                </li>
555                                							</ul>
556                            
557						</li>	
558													                            <li class="nanMLiLevel2 nanMLiLevel2 ">
559                                <strong>
560                                    Training for Adults                                </strong>
561								<ul class="nanMLevel3">
562							                                <li>
563                                    <a href="/cognitive-brain-training">
564                                        Personalized Training                                    </a>
565                                </li>
566                                                                <li>
567                                    <a href="/online-memory-games-training">
568                                        Memory                                    </a>
569                                </li>
570                                                                <li>
571                                    <a href="/attention-brain-games-training">
572                                        Concentration                                    </a>
573                                </li>
574                                                                <li>
575                                    <a href="/brain-training-active-aging">
576                                        65 and Over Training                                    </a>
577                                </li>
578                                                                <li>
579                                    <a href="/driving-brain-training">
580                                        Driving                                    </a>
581                                </li>
582                                                                <li>
583                                    <a href="/perception-training">
584                                        Perception                                    </a>
585                                </li>
586                                                                <li>
587                                    <a href="/executive-function-training">
588                                        Reasoning                                    </a>
589                                </li>
590                                                                <li>
591                                    <a href="/coordination-training">
592                                        Coordination                                    </a>
593                                </li>
594                                                                <li>
595                                    <a href="/reading-comprehension">
596                                        Reading Comprehension                                    </a>
597                                </li>
598                                                                <li>
599                                    <a href="/cool-math-games">
600                                        Cool Math Games                                    </a>
601                                </li>
602                                							</ul>
603                            
604						</li>	
605													</ul>						</li></ul>
606						</li>	
607																			<li class="nanMenuLiMain">
608								<a class="nanMenuLiMainA" href="/science">
609									Scientific Validation								</a>
610							</li>
611												
612                                <li class="nanMenuLiMain nanMenuLiMainXtra"><a href="/brain-games"><span class="iconMenuLiMain iconMenuLiMainGame nanSpriteHome"></span><span class="spanMenuLiMain">Brain Games</span></a></li>
613            <li class="nanMenuLiMain nanMenuLiMainXtra">
614                <a class="nanMenuLiMainA">
615                    <span class="iconMenuLiMain iconMenuLiMainCompany 
615nanSpriteHome"></span>
616                    <span class="spanMenuLiMain">Company</span>
617                </a>
618                <ul class="nanMLevel2 nanSubLevel">
619                    <li><ul class="nanIntBoard">
620                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2First">
621                            <a href="/company">
622                                About CogniFit                            </a>
623                        </li>
624                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
625                            <a href="/science">
626                                Our Science                            </a>
627                        </li>
628                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
629                            <a href="/company/insights">
630                                Insights &amp; Reports                            </a>
631                        </li>
632                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
633                            <a href="/company/team">
634                                Team &amp; Advisors                            </a>
635                        </li>
636                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
637                            <a href="/company/newsroom">
638                                Newsroom                            </a>
639                        </li>
640                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
641                            <a target="_blank" rel="noopener" href="https://trust.cognifit.com">
642                                Trust Center                            </a>
643                        </li>
644                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
645                            <a target="_blank" rel="noopener" href="https://blog.cognifit.com">
646                                Blog                            </a>
647                        </li>
648                        <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2Others">
649                            <a target="_blank" rel="noopener" href="https://www.youtube.com/@CogniFit">
650                                Videos                            </a>
651                        </li>
652                    </ul></li>
653                </ul>
654            </li>
655        	</ul>	
656                    </nav>
657            
658            <div class="nanHRight nanHRightPRO">
659                
660                                            <nav class="nanMenu">
661                            <a class="nanBtMenuClose"></a>
662                            <span class="nanBtMenuPro">PRO</span>
663                            	<ul class="nanMLevel1">
664        															<li class="nanMenuLiMain">
665								<a class="nanMenuLiMainA">
666									Tools for Professionals								</a>
667								<ul class="nanMLevel2 nanSubLevel">
668							<li><ul class="nanIntBoard">
669												                                <li class="nanMLiLevel2 nanMLiLevel2 nanMLiLevel2First">
670                                    <a href="/clinical-trials">
671                                        Clinical Trials                                    </a>
672                                </li>
673                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
674                                    <a href="/professional">
675                                        Healthcare                                    </a>
676                                </li>
677                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
678                                    <a href="/educational-technology">
679                                        Education                                    </a>
680                                </li>
681                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
682                                    <a href="/research">
683                                        Academic Research                                    </a>
684                                </li>
685                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
686                                    <a href="/employee-wellbeing">
687                                        Employee wellbeing                                    </a>
688                                </li>
689                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
690                                    <a href="/sports">
691                                        Sports Performance                                    </a>
692                                </li>
693                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
694                                    <a href="/nursing-homes">
695                                        Nursing Homes                                    </a>
696                                </li>
697                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
698                                    <a href="/developers">
699                                        White Label Partnerships                                    </a>
700                                </li>
701                                                                <li class="nanMLiLevel2 nanMLiLevel2 ">
702                                    <a href="/jobfit-CAB">
703                                        HR Recruiting Tools                                    </a>
704                                </li>
705                                							</ul>						</li></ul>
706						</li>	
707						
708        	</ul>	
709                            </nav>
710                    
711                            <div  class="langDiv nanLang">
712            <a class="langTxt">
713                <span class="nanSpriteHome"></span>English            </a>
714            <div class="">
715                <div class="nanSubLevel">
716                                                            <a  href="javascript:void(0);" onclick="Locale.Change('en', 'en_inicioLogin' );">
717                                            English                                        </a>
718                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('es', 'en_inicioLogin' );">
719                                            Español                                        </a>
720                                                                                <a class="exc_ru" href="javascript:void(0);" onclick="Locale.Change('ru', 'en_inicioLogin' );">
721                                            Русский                                        </a>
722                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('ar', 'en_inicioLogin' );">
723                                            العربية                                        </a>
724                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('bn', 'en_inicioLogin' );">
725                                            বাংলা                                        </a>
726                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('de', 'en_inicioLogin' );">
727                                            Deutsch                                        </a>
728                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('el', 'en_inicioLogin' );">
729                                            Ελληνικά                                        </a>
730                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('fr', 'en_inicioLogin' );">
731                                            Français                                        </a>
732                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('he', 'en_inicioLogin' );">
733                                            עברית                                        </a>
734                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('id', 'en_inicioLogin' );">
735                                            Bahasa Indonesia                                        </a>
736                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('it', 'en_inicioLogin' );">
737                                            Italiano                                        </a>
738                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('ja', 'en_inicioLogin' );">
739                                            日本語                                        </a>
740                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('ko_KR', 'en_inicioLogin' );">
741                                            한국어 / 韓國語                                        </a>
742                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('mn', 'en_inicioLogin' );">
743                                            монгол хэл                                        </a>
744                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('nl', 'en_inicioLogin' );">
745                                            Nederlands                                        </a>
746                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('pl', 'en_inicioLogin' );">
747                                            Polski                                        </a>
748                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('pt_PT', 'en_inicioLogin' );">
749                                            Português                                        </a>
750                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('tr', 'en_inicioLogin' );">
751                                            Türkçe                                        </a>
752                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('ur', 'en_inicioLogin' );">
753                                            اردو                                        </a>
754                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('sr', 'en_inicioLogin' );">
755                                            Srpski                                        </a>
756                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('zh_CN', 'en_inicioLogin' );">
757                                            中文(简体)                                        </a>
758                                                                                <a  href="javascript:void(0);" onclick="Locale.Change('zh_HK', 'en_inicioLogin' );">
759                                            中文(繁體)                                        </a>
760                                                        </div>
761            </div>
762        </div>
763    
764                                                                                                        <a class="log_up usertoLog su_open ">
765                                    <span></span><strong>Login</strong><em>Login</em>
766                                </a>
767                                                                                                                            <a fast_reg_tag_user_type_by_land="0" class="button sign_up btHeader nanBtSigUp "  >
768                                        Join Today                                    </a>
769                                                                                                                                    </div>
770
771            <div class="nanClear"></div>
772        </div>
773    </div>
774</div>    
775<div class="nanBlackLayer"></div>
776<div class="nanRegisterSelect namSlideBack ta_register">
777	    <div class="nanRegInt ">
778		
779        <a class="nanBtCloseReg nanSpriteHome"></a>
780        <a class="nanBtGoHome nanSpriteHome" href="/" title="CogniFit" ></a>
781        <div class="nanRegTable ">
782     
783       
784
785            <div id="nanRegImageProd"></div>
786
787            <div id="nanRegTitleProd" class="nanRegTitle">
788                Choose your platform and buy <span id="nanProductSelectTitle"></span>            </div>
789            <div id="nanRegDescriptionProd" class="nanRegDescription"></div>
790
791            <div id="nanRegDescriptionInvitations" class="nanRegTrialOption nanSlideAct5">
792                Try if one month free of charge with 10 licenses.            </div>
793
794            <div id="nanRegTitleReg" class="nanRegTitle">
795                What is the account for?            </div>
796           			 <div class="nanRegTableSecond">
797				  <div class="nanRegTableLeft">
798							<div id="nanRegTitleReg2" class="nanRegTitle hiddenInput">
799					<span class="nanRegTitleReg2_title nanRegTitleReg2_title_any">Welcome to CogniFit!</span>
800                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_4">Welcome to CogniFit Research!</span>
801                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_1">CogniFit Healthcare</span>
802                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_8">Boost Your Business with CogniFit!</span>
803                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_9">CogniFit Employee Wellbeing</span>
804                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_11">Distribute CogniFit to Businesses</span>
805                    <span class="nanRegTitleReg2_title nanRegTitleReg2_title_12">Empower your team</span>
806				</div>
807						
808       
809						<div class="nanRegTitleText">
810               				<p usertype="0">
811                    <span>Sign up on here if you don't have your mobile handy</span>
812                </p>
813                <p usertype="1">
814                    <span>You are going to create a patient management account. This account is designed to give your patients access to CogniFit evaluations and training.</span>
815                </p>
816                <p usertype="4">
817                    <span>You are going to create a research account. This account is specially designed to help researchers with their studies in the cognitive areas.</span>
818                </p>
819                <p usertype="5">
820                    <span>You are going to create a student management account. This account is designed to give your students access to CogniFit evaluations and training.</span>
821                </p>
822                <p usertype="2">
823                    <span>You are going to create a family account. This account is designed to give your family members access to CogniFit evaluations and training.</span>
824                </p>
825                <p usertype="9">
826                    <span>You are going to create a company management account. This account is designed to give your employees access to CogniFit evaluations and training.</span>
827                </p>
828                <p usertype="12">
829                    <span>You're setting up your trainer account. With it, you’ll be able to invite your group and guide them through CogniFit evaluations and training activities.</span>
830                </p>
831            </div>
832			            <div class="nanRegCombo">
833                <a href="#" class="nanRegComboUnitA" usertype="0">
834                    <div class="nanRegComboUnit nanRegComboUnitNormal">
835                        <span class="nanIconPlat nanSpriteHome"></span>
836                        <p class="nanRegComboP">For personal use</p>
837                    </div>
838                </a>
839
840                <a href="#" class="nanRegComboUnitA" usertype="1">
841                    <div class="nanRegComboUnit nanRegComboUnitMedical">
842                        <span class="nanIconPlat nanSpriteHome"></span>
843                        <p class="nanRegComboP">I'm a health professional</p>
844                    </div>
845                </a>
846
847                <a href="#" class="nanRegComboUnitA" usertype="2">
848                    <div class="nanRegComboUnit nanRegComboUnitFamily">
849                        <span class="nanIconPlat nanSpriteHome"></span>
850                        <p class="nanRegComboP">For my family</p>
851                    </div>
852                </a>
853
854                <a href="#" class="nanRegComboUnitA" usertype="5">
855                    <div class="nanRegComboUnit nanRegComboUnitSchool">
856                        <span class="nanIconPlat nanSpriteHome"></span>
857                        <p class="nanRegComboP">I'm an educator</p>
858                    </div>
859                </a>
860
861                <a href="#" class="nanRegComboUnitA" usertype="4">
862                    <div class="nanRegComboUnit nanRegComboUnitResearch">
863                        <span class="nanIconPlat nanSpriteHome"></span>
864                        <p class="nanRegComboP">I'm a researcher</p>
865                    </div>
866                </a>
867
868                <a href="#" class="nanRegComboUnitA" usertype="9">
869                    <div class="nanRegComboUnit nanRegComboUnitEmployeeWellBeing">
870                        <span class="nanIconPlat nanIconPlatWellbeing nanIconSVG "><span></span></span>
871                        <p class="nanRegComboP">Employee Wellbeing</p>
872                    </div>
873                </a>
874                <a href="#" class="nanRegComboUnitA" usertype="8">
875                    <div class="nanRegComboUnit nanRegComboUnitApiPartner">
876                        <span class="nanIconPlat nanIconSVG"><span></span></span>
877                        <p class="nanRegComboP">Developers</p>
878                    </div>
879                </a>
880                <a href="#" class="nanRegComboUnitA" usertype="11" style="width: 0px; overflow: hidden; padding: 0; margin: 0;">
881                    <div class="nanRegComboUnit nanRegComboUnitResellers">
882                        <span class="nanIconPlat nanIconSVG"><span></span></span>
883                        <p class="nanRegComboP">reg_resellers</p>
884                    </div>
885                </a>
886                <a href="#" class="nanRegComboUnitA" usertype="12">
887                    <div class="nanRegComboUnit nanRegComboUnitSports">
888                        <span class="nanIconPlat nanSpriteHome"></span>
889                        <p class="nanRegComboP">I’m a coach or sports professional</p>
890                    </div>
891                </a>
892                <div class="nanClear"></div>
893            </div>
894            <select class="nanPlatReg">
895                                    <option value="-1">---</option>
896                                        <option value="0" >For personal use</option>
897                    <option value="1" >I'm a health professional</option>
898                    <option value="2" >For my family</option>
899                    <option value="5" >I'm an educator</option>
900                    <option value="4" >I'm a researcher</option>
901                    <option value="8" ></option>
902                    <option value="9" ></option>
903                    <option value="11" ></option>
904                    <option value="12" >CogniFit Sports</option>
905                            </select>
906
907            <div id="nanRegFormProd" class="nanRegForm"></div>
908
909            <div class="nanRegComboInfo hiddenInput">
910                <p id="nanRegComboInfoText0" class="nanRegComboInfoText hiddenInput"><span>You are going to create a personal account. This type of account is specially designed to help you evaluate and train your cognitive skills.</span></p>
911                <p id="nanRegComboInfoText1" class="nanRegComboInfoText hiddenInput"><span>You are going to create a patient management account. This account is designed to give your patients access to CogniFit evaluations and training.</span></p>
912                <p id="nanRegComboInfoText2" class="nanRegComboInfoText hiddenInput"><span>You are going to create a family account. This account is designed to give your family members access to CogniFit evaluations and training.</span></p>
913                <p id="nanRegComboInfoText4" class="nanRegComboInfoText hiddenInput"><span>You are going to create a research account. This account is specially designed to help researchers with their studies in the cognitive areas.</span></p>
914                <p id="nanRegComboInfoText5" class="nanRegComboInfoText hiddenInput"><span>You are going to create a student management account. This account is designed to give your students access to CogniFit evaluations and training.</span></p>
915                <p id="nanRegComboInfoText9" class="nanRegComboInfoText hiddenInput"><span>You are going to create a company management account. This account is designed to give your employees access to CogniFit evaluations and training.</span></p>
916                <p id="nanRegComboInfoText8" class="nanRegComboInfoText hiddenInput"><span>You are going to create a developer account. This account is designed to integrate CogniFit’s products within your company.</span></p>
917                <p id="nanRegComboInfoText12" class="nanRegComboInfoText hiddenInput"><span>You're setting up your trainer account. With it, you’ll be able to invite your group and guide them through CogniFit evaluations and training activities.</span></p>
918                <input class="nanRegComboInfoCancel" type="button" value="Cancel" />
919                <input class="nanRegComboInfoConfirm" type="button" value="Confirm" />
920            </div>
921
922            <div id="nanRegFormReg" class="nanRegForm nanRegFormCoach">
923                <form class="fastRegForm">
924                    
925                    <input type="text" class="fastRegTag hiddenInput" value="" />
926                    <input type="text" class="fastRegTagTheProfessional hiddenInput" value="0" />
927                    <input type="text" class="fastRegProduct hiddenInput" value="">
928                    <input type="text" class="fastRegTraining hiddenInput" value="">
929                    <input type="text" class="fastRegTagLocale hiddenInput" value="en">
930                    <input type="text" class="fastRegTagUserType hiddenInput" value="0">
931                    <input type="text" class="fastRegTagProfQuantProd hiddenInput" value="0">
932
933                                                            
934                    <div class="fastRegAwsMarketplaceError" style="display:none;">
935                        Registration token is invalid or expired                    </div>
936
937                    <div class="fastRegUserAwsMarketplaceAlreadyRegistered" style="display:none;">
938                        The product has already been redeemed                    </div>
939
940                    <div class="fastRegUserAwsMarketplaceProductNotCompatible" style="display:none;">
941                        The product to be redeemed is not compatible with the account type                    </div>
942
943                    
944                    <div class="nanRegLine">
945                        <input
946                            placeholder="First Name"
947                            placeholder-default="First Name"
948                            placeholder-user-type-1="Contact name"
949                            type="text"  class="fastRegName" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
950                    </div>
951
952                    <div class="fastRegNameError" style="display:none;">
953                        The format of the First Name entered is not correct                    </div>
954
955                    <div class="nanRegLine">
956                        <input placeholder="Email"
957                            placeholder-default="Email"
958                            placeholder-user-type-4="Institutional Email"
959                            type="email" class="fastRegEmail" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
960                            maxlength="128"
961                        />
962                    </div>
963
964                    <div class="fastRegEmailError" style="display:none;">
965                        Please enter a valid email address.                    </div>
966
967                    <div class="fastRegEmailExists" style="display:none;">
968                        There is an existing account associated with this email                    </div>
969
970                    <small class="fastRegEmailHintResearch" style="display:none;">
971                        Use your university or corporate email to qualify for special discounts.                    </small>
972
973                    <div class="nanRegLine">
974                        <input
975                            placeholder="Organization"
976                            placeholder-default="Organization"
977                            placeholder-user-type-1="Clinic or company name"
978                            placeholder-user-type-9="Company Name"
979                            type="text"  class="fastRegCentrum" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
980                    </div>
981
982                    <div class="fastRegCentrumError" style="display:none;">
983                        This field is mandatory                    </div>
984
985                    <div class="nanRegLine">
986                        <input
987                                                        type="tel" class="fastRegPhone"
988                            autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
989                            maxlength="20"
990                        />
991                    </div>
992
993                    <div class="fastRegPhoneError" style="display:none;">
994                        <span>This field is mandatory</span>
995                        <span class="patternMismatchError">Invalid format</span>
996                    </div>
997
998                    <div class="nanRegLine">
999                        <input
1000                            placeholder="For what university or company do you work?"
1001                           type="text"  class="fastRegCompany fastRegExtraAttributes" autocomplete="off"
1002                           autocorrect="off" autocapitalize="off" spellcheck="false" />
1003                    </div>
1004
1005                    <div class="fastRegCompanyError" style="display:none;">
1006                        This field is mandatory                    </div>
1007
1008                    <div class="nanRegLine">
1009                        <select class="fastRegIndustryType nanRegLineSelectedPlaceholder fastRegExtraAttributes">
1010                            <option value="" hidden disabled selected>Industry Type</option>
1011                            <option value="HEALTHCARE">Healthcare</option><option value="EDUCATION">Education</option><option value="TECH">Tech</option><option value="CONSULTING">Consulting</option><option value="CROS">CROs</option><option value="RESEARCH">Reseach</option><option value="DIRECT_TO_CONSUMER">Direct to consumer</option><option value="HR">HR</option>                        </select>
1012                    </div>
1013
1014                    <div class="fastRegIndustryTypeError" style="display:none;">
1015                        This field is mandatory                    </div>
1016
1017
1018                    <div class="nanRegLine">
1019                        <select class="fastRegProjectNature nanRegLineSelectedPlaceholder fastRegExtraAttributes">
1020                            <option value="" hidden disabled selected>Nature of the Project</option>
1021                            <option value="APP">App</option><option value="WEBSITE">Website</option><option value="BOTH">Both</option>                        </select>
1022                    </div>
1023
1024                    <div class="fastRegProjectNatureError" style="display:none;">
1025                        This field is mandatory                    </div>
1026
1027                    
1028
1029                    <div class="nanRegLine">
1030                        <textarea placeholder="Any other specific needs or expectations from the CogniFit platform"
1031                              class="fastRegExpectationsAndNeeds fastRegExtraAttributes" autocomplete="off"
1032                              autocapitalize="off" spellcheck="false" ></textarea>
1033                    </div>
1034
1035                    <div class="fastRegExpectationsAndNeedsError" style="display:none;">
1036                        This field is mandatory                    </div>
1037
1038
1039                    
1040                    <div class="nanRegLine">
1041                        <input class="ta_btn nanRegSubmit nanRegSubmitStarNow ta_grad" type="submit" value="next" />
1042                        <input class="ta_btn nanRegSubmit nanRegSubmitContinue z_hidden ta_grad" type="submit" value="Continue" />
1043                    </div>
1044
1045                    <div class="nanRegLine">
1046                        <input class="nanRegSubmit nanRegToLogin" type="button" value="Do you already have a CogniFit account?" />
1047						 <a class="nanLogintoRegMob"  href="/login" rel="noopener">Do you already have a CogniFit account?</a>
1048                    </div>
1049
1050                    <img loading="lazy" alt="loading" src="/img/new_cognifit/loading-login.gif" class="clcapaLoadingSignUp" id="capaLoadingSignUp">
1051
1052                </form>
1053
1054                <div class="nanRegRedes newnanRegRedes">
1055                                                                   <div class="nanRegLine">
1056                            <a onclick="FacebookLogin.checkLoginState();" title='Continue with Facebook' class="nanLogFacebook button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social fb">Continue with Facebook</span></a>
1057                                                        <a id="g_id_onload" data-client_id="246580644645-v8mn20777f3bpla68jg4csbos0q5umbd.apps.googleusercontent.com" data-callback="onSignIn" data-type="icon" data-size="large" data-auto_prompt="false" class="nanLogGoogle button redondeado sombreado g_id_signin"></a>
1058                            <a onclick="AppleSignIn.Login();" title='Continue with Apple' class="nanLogApple button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Continue with Apple</span></a>
1059                            <a onclick="MicrosoftAuth.Login();" title='Sign in with Microsoft' class="nanLogMicrosoft button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Sign in with Microsoft</span></a>
1060                        </div>
1061                                    </div>
1062				
1063				<div class="notesReg">
1064					<p class="nanRegNoteFast" id="nanRegNote0">For users 16 years and older. Children under 16 can use CogniFit with a parent on one of the family platforms.</p>
1065                    <p class="nanRegNoteFast" id="nanRegNote1" style="display:none">Send assessments and training programs to patients</p>
1066                    <p class="nanRegNoteFast" id="nanRegNote5" style="display:none">Send assessments and training programs to students</p>
1067                    <p class="nanRegNoteFast" id="nanRegNote2" style="display:none">Send assessments and training programs to your children or other family members.</p>
1068                    <p class="nanRegNoteFast" id="nanRegNote4" style="display:none">Send assessments and training programs to research participants.</p>
1069				</div>
1070
1071                <p class="nanRegTerms">
1072                    By clicking Sign Up or using CogniFit, you are indicating that you have read, understood, and agree to CogniFit's <a  target='_blank' title='' href='/terms-and-conditions'>Terms & Conditions</a> and <a target='_blank'  title='' href='/privacy-policy'>Privacy Policy</a>.                </p>
1073            </div>
1074            </div>
1075			<div class="nanRegTableRight">
1076			<div class="nanRegQR">
1077								<p>Scan the below QR with your phone to register through our mobile app for the ultimate convenience and access on-the-go!</p>
1078				<img alt="Enhance Your Experience!"  loading="lazy" width="400px" height="400px" src="/img/newart/aries/qrhand.webp"/>
1079				<p class="nanRegQR_next">If you don't have your mobile handy sign up on here</p>
1080				
1081			</div>
1082				<div class="nanRegApps">
1083					<p>Download our app to enjoy a good experience on this device</p>
1084										<a href="https://play.google.com/store/apps/details?id=com.cognifit.app&hl=en" target="_blank">
1085						<div class="app_download">
1086							<img class="changeTo_img" src="/img/newart/playStore/google-play-badge_locale_en.png" />
1087						</div>
1088					</a>
1089										<a href="https://itunes.apple.com/app/cognifit-brain-fitness/id528285610?mt=8" target="_blank">
1090						<div class="app_download">
1091							<img class="changeTo_img" src="/img/newart/appStore/app-store-badge_locale_en.svg" />
1092						</div>
1093					</a>
1094										<p class="nanRegQR_next">If you don't have your mobile handy sign up on here</p>
1095				
1096				</div>
1097			</div>
1098			</div>
1099        </div>
1100	
1101    </div>
1102</div>
1103
1104
1105<script>
1106	$("p.nanRegQR_next").click(function(event){
1107			$(".nanRegTable").addClass("nanRegTableNormal");
1108		});
1109</script>
1109
1110<style>.hcsModal{display:none;}</style>
1111<link rel="stylesheet" href="https://css.cognifit.com/cssmin/v841/healthcare-signup.css">
1112<div class="hcs-canvas hcsModal" data-usertype="1" role="dialog" aria-modal="true" aria-label="Create your account">
1113    <div class="hcs">
1114
1115    <!-- ── Top bar ─────────────────────────────────────────────── -->
1116    <div class="hcs__topbar">
1117        <a class="hcs__brand rif_racc" href="" aria-label="CogniFit Healthcare">
1118            <div class="z_H_logo"><span>CogniFit</span></div>
1119                        <div class="z_H_plat z_H_platMedical">
1120                <span class="z_H_platPro"></span>
1121                <span class="z_H_platProSpan">Healthcare</span>
1122            </div>
1123                    </a>
1124                    <button type="button" class="hcs__close hcsModal__close" aria-label="Close"></button>
1125            </div>
1126
1127    <div class="hcs__grid">
1128
1129        <!-- ── LEFT: value proposition + social proof ──────────── -->
1130        <div class="hcs__col hcs__col--info">
1131
1132            <h1 class="hcs__title">
1133                Start evaluating and training your patients in minutes            </h1>
1134                        <div class="hcs__stats">
1135                <div class="hcs__stat">
1136                    <b>
1137                        3,649                    </b>
1138                    <span>
1139                        Clinicians                    </span>
1140                </div>
1141                                <div class="hcs__stat">
1142                    <b>
1143                        105,235                    </b>
1144                    <span>
1145                        Patients                    </span>
1146                </div>
1147                                <div class="hcs__stat">
1148                    <b>180+</b>
1149                    <span>Countries</span>
1150                </div>
1151            </div>
1152            
1153                        <div class="hcs__stats-note">
1154                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><ellipse cx="12" cy="5" rx="8" ry="3"/><path d="M4 5v6c0 1.66 3.58 3 8 3s8-1.34 8-3V5"/><path d="M4 11v6c0 1.66 3.58 3 8 3s8-1.34 8-3v-6"/></svg>
1155                <span>Interpret every result against age- and education-adjusted norms from <b>3,201,008</b> assessments</span>
1156            </div>
1157            
1158                        <hr class="hcs__rule">
1159
1160            <div class="hcs__logos" role="img" aria-label="University of Haifa, University of Washington, Tel Aviv University, Albert Einstein College of Medicine, Universidad Complutense de Madrid">
1161                <img src="/img/newart/healthcare/logos-universities.png"
1162                     alt="University of Haifa, University of Washington, Tel Aviv University, Albert Einstein College of Medicine, Universidad Complutense de Madrid">
1163            </div>
1164            
1165                        <div class="hcs__badges">
1166                                <div class="hcs__badge">
1167                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><path d="m9 12 2 2 4-4"/></svg>
1168                    <span>
1169                        <b>HIPAA</b> Ready                    </span>
1170                </div>
1171                                <div class="hcs__badge">
1172                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/><circle cx="12" cy="11" r="2.4"/></svg>
1173                    <span>
1174                        <b>GDPR</b> Compliant                    </span>
1175                </div>
1176                                <div class="hcs__badge">
1177                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M17.5 19a4.5 4.5 0 0 0 .9-8.9A6 6 0 0 0 6.7 9 4.5 4.5 0 0 0 7 18"/><rect x="9.5" y="12.5" width="5" height="4.5" rx="1"/><path d="M10.5 12.5v-1a1.5 1.5 0 0 1 3 0v1"/></svg>
1178                    <span>
1179                        <b>Encrypted</b> Data                    </span>
1180                </div>
1181                                <div class="hcs__badge">
1182                    <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M3 12h4l2 6 4-14 2 8h6"/></svg>
1183                    <span>
1184                        <b>Clinical Grade</b> Platform                    </span>
1185                </div>
1186                            </div>
1187
1188                        <hr class="hcs__rule">
1189
1190            <div class="hcs__quotes" data-hcs-carousel aria-roledescription="carousel" aria-label="What professionals say">
1191                <div class="hcs__quotes-track">
1192                                            <figure class="hcs__quote is-active"
1193                                role="group" aria-roledescription="slide"
1194                                aria-label="1 of 5"
1195                                >
1196                                                            <img class="hcs__quote-avatar" alt="Dr. Steven Kane"
1197                                     src="/img/newart/healthcare/dr-steven-kane.jpg">
1198                                                        <div>
1199                                <blockquote>&ldquo;The CAB Pro is the best cognitive assessment that can be administered online.&rdquo;</blockquote>
1200                                                                <figcaption>
1201                                    <b>Dr. Steven Kane</b>
1202                                    <span>Clinical Psychologist &amp;amp; Neuropsychologist</span>
1203                                </figcaption>
1204                                                            </div>
1205                        </figure>
1206                                            <figure class="hcs__quote"
1207                                role="group" aria-roledescription="slide"
1208                                aria-label="2 of 5"
1209                                aria-hidden="true">
1210                                                            <img class="hcs__quote-avatar" alt="Dr. Jennifer Stelter"
1211                                     src="/img/newart/healthcare/dr-jennifer-stelter.jpg">
1212                                                        <div>
1213                                <blockquote>&ldquo;Before, I was not offering a cognitive rehab program to my patients who have dementia, and now I can — in a way that is trusted, because of the empirical evidence and the science behind it.&rdquo;</blockquote>
1214                                                                <figcaption>
1215                                    <b>Dr. Jennifer Stelter</b>
1216                                    <span>Clinical Psychologist, Dementia Care</span>
1217                                </figcaption>
1218                                                            </div>
1219                        </figure>
1220                                            <figure class="hcs__quote"
1221                                role="group" aria-roledescription="slide"
1222                                aria-label="3 of 5"
1223                                aria-hidden="true">
1224                                                            <img class="hcs__quote-avatar" alt="Dr. Akhand Pratap Singh"
1225                                     src="/img/newart/healthcare/dr-akhand-pratap-singh.jpg">
1226                                                        <div>
1227                                <blockquote>&ldquo;We are seeing good benefits in patients, and we are able to taper our medications faster also in those cases.&rdquo;</blockquote>
1228                                                                <figcaption>
1229                                    <b>Dr. Akhand Pratap Singh</b>
1230                                    <span>Psychiatrist (MBBS, MD Psychiatry)</span>
1231                                </figcaption>
1232                                                            </div>
1233                        </figure>
1234                                            <figure class="hcs__quote"
1235                                role="group" aria-roledescription="slide"
1236                                aria-label="4 of 5"
1237                                aria-hidden="true">
1238                                                            <img class="hcs__quote-avatar" alt="Deborah Reed"
1239                                     src="/img/newart/healthcare/deborah-reed.jpg">
1240                                                        <div>
1241                                <blockquote>&ldquo;Very easy to use, very detailed reports, actionable data — and Medicare will pay for it if you set up the billing structure correctly.&rdquo;</blockquote>
1242                                                                <fig
1242caption>
1243                                    <b>Deborah Reed</b>
1244                                    <span>Nurse Practitioner, Functional Medicine</span>
1245                                </figcaption>
1246                                                            </div>
1247                        </figure>
1248                                            <figure class="hcs__quote"
1249                                role="group" aria-roledescription="slide"
1250                                aria-label="5 of 5"
1251                                aria-hidden="true">
1252                                                            <img class="hcs__quote-avatar" alt="Abhina Prakash"
1253                                     src="/img/newart/healthcare/abhina-prakash.jpg">
1254                                                        <div>
1255                                <blockquote>&ldquo;The first option that I really found that was all in one, all encompassing.&rdquo;</blockquote>
1256                                                                <figcaption>
1257                                    <b>Abhina Prakash</b>
1258                                    <span>Performance &amp;amp; Cognitive Coach</span>
1259                                </figcaption>
1260                                                            </div>
1261                        </figure>
1262                                    </div>
1263                                <div class="hcs__quotes-dots" role="tablist" aria-label="Choose testimonial">
1264                                            <button type="button" class="hcs__quotes-dot is-active"
1265                                role="tab" aria-selected="true"
1266                                aria-label="Testimonial 1"
1267                                data-hcs-dot="0"></button>
1268                                            <button type="button" class="hcs__quotes-dot"
1269                                role="tab" aria-selected="false"
1270                                aria-label="Testimonial 2"
1271                                data-hcs-dot="1"></button>
1272                                            <button type="button" class="hcs__quotes-dot"
1273                                role="tab" aria-selected="false"
1274                                aria-label="Testimonial 3"
1275                                data-hcs-dot="2"></button>
1276                                            <button type="button" class="hcs__quotes-dot"
1277                                role="tab" aria-selected="false"
1278                                aria-label="Testimonial 4"
1279                                data-hcs-dot="3"></button>
1280                                            <button type="button" class="hcs__quotes-dot"
1281                                role="tab" aria-selected="false"
1282                                aria-label="Testimonial 5"
1283                                data-hcs-dot="4"></button>
1284                                    </div>
1285                            </div>
1286                    </div>
1287
1288        <!-- ── RIGHT: sign-up form ─────────────────────────────── -->
1289        <div class="hcs__col hcs__col--form">
1290
1291            <div class="hcs__formhead">
1292                <h2>
1293                    Create your account                </h2>
1294                <p>
1295                    Designed for psychologists and clinical professionals.                </p>
1296            </div>
1297
1298            <form class="hcs__form" id="hcsSignupForm" action="#" method="post" novalidate>
1299                <input type="hidden" class="fastRegTagUserType"        id="hcsUserType" name="userType" value="1">
1300                <input type="hidden" class="fastRegTag"                value="">
1301                <input type="hidden" class="fastRegTagLocale"          value="en">
1302                <input type="hidden" class="fastRegTagTheProfessional" value="0">
1303                <input type="hidden" class="fastRegTagProfQuantProd"   value="0">
1304                <input type="hidden" class="fastRegTraining"           value="">
1305                <input type="hidden" class="fastRegProduct"            value="">
1306
1307                <div class="hcs__field">
1308                    <input class="hcs__input fastRegName" type="text" name="name" autocomplete="name"
1309                           placeholder="Name" aria-label="Name" required>
1310                    <div class="hcs__fielderr fastRegNameError" style="display:none;">Please enter your name.</div>
1311                </div>
1312                <div class="hcs__field">
1313                    <input class="hcs__input fastRegEmail" type="email" name="email" autocomplete="email"
1314                           placeholder="Email" aria-label="Email" required>
1315                    <div class="hcs__fielderr fastRegEmailError"  style="display:none;">Please enter a valid email address.</div>
1316                    <div class="hcs__fielderr fastRegEmailExists" style="display:none;">This email is already registered. <a class="openHomeLogin" href="/general-login">Log in</a>.</div>
1317                </div>
1318                                <div class="hcs__field" data-hcs-countries="BR" style="display:none;">
1319                    <div class="nanRegLine" style="display:none;">
1320                        <input class="hcs__input fastRegPhone" type="tel"
1321                               autocomplete="tel"
1322                               placeholder="Phone number" aria-label="Phone number" required>
1323                    </div>
1324                    <div class="hcs__fielderr fastRegPhoneError" style="display:none;">Phone number</div>
1325                </div>
1326                                <button class="hcs__submit" type="submit">Create free account</button>
1327                <div id="divLoadingLand"><img loading="lazy" alt="loading" src="/img/new_cognifit/loading-login.gif"></div>
1328            </form>
1329
1330            <p class="hcs__formnote">
1331                <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.9" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><rect x="3" y="11" width="18" height="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/></svg>
1332                <span>No credit card required. Cancel anytime.<br>Your data is protected and never shared.</span>
1333            </p>
1334
1335                        <div class="hcs__steps">
1336                <div class="hcs__steps-label">After creating your account:</div>
1337                <ol class="hcs__steplist">
1338                                        <li class="hcs__step"><span class="hcs__stepnum">1</span><span>Verify your email</span></li>
1339                                        <li class="hcs__step"><span class="hcs__stepnum">2</span><span>Create your clinic</span></li>
1340                                        <li class="hcs__step"><span class="hcs__stepnum">3</span><span>Invite your first patient</span></li>
1341                                        <li class="hcs__step"><span class="hcs__stepnum">4</span><span>Start your first assessment</span></li>
1342                                    </ol>
1343            </div>
1344            
1345            <p class="hcs__legal">
1346                By creating an account, you agree to CogniFit’s <a href="/terms-and-conditions" target="_blank" rel="noopener noreferrer">Terms &amp; Conditions</a> and <a href="/privacy-policy" target="_blank" rel="noopener noreferrer">Privacy Policy</a>.            </p>
1347            <p class="hcs__login">Do you already have a CogniFit account? <a class="openHomeLogin" href="/general-login">Log in</a></p>
1348        </div>
1349
1350    </div>
1351</div>
1352
1353<script>
1354(function () {
1355    // This card can be mounted several times on one page (e.g. general-login
1356    // renders a modal per professional type). Bind to THIS instance: the most
1357    // recently rendered .hcs not yet initialised.
1358    var roots = document.querySelectorAll('.hcs:not([data-hcs-ready])');
1359    var root = roots[roots.length - 1];
1360    if (!root) { return; }
1361    root.setAttribute('data-hcs-ready', '1');
1362
1363    var form = root.querySelector('.hcs__form');
1364    if (!form || form.dataset.hcsSubmitBound) { return; }
1365    form.dataset.hcsSubmitBound = '1';
1366
1367    // Country-gated extra fields (.hcs__field[data-hcs-countries], e.g. phone
1368    // for BR). The server already shows them when the session country matches,
1369    // but that country comes from the URL (/br/…) — a Brazilian on /es is "ES".
1370    // So also reveal them from browser signals: cgCountry cookie, browser
1371    // language region (pt-BR) and IANA time zone (America/Sao_Paulo…). Runs
1372    // BEFORE the phone widget binds so it can preselect the matched flag.
1373    (function revealCountryGatedFields() {
1374        var gated = root.querySelectorAll('.hcs__field[data-hcs-countries]');
1375        if (!gated.length) { return; }
1376        var detected = {};
1377        function add(cc) {
1378            if (cc && /^[A-Za-z]{2}$/.test(cc)) { detected[cc.toUpperCase()] = true; }
1379        }
1380        try { add((window.General && General.getCookie) ? General.getCookie('cgCountry') : ''); } catch (e) {}
1381        try {
1382            var langs = (navigator.languages && navigator.languages.length)
1383                ? navigator.languages : [navigator.language || navigator.userLanguage || ''];
1384            for (var i = 0; i < langs.length; i++) {
1385                var m = /^[a-zA-Z]{2,3}[-_]([a-zA-Z]{2})(?:$|[-_])/.exec(langs[i] || '');
1386                if (m) { add(m[1]); }
1387            }
1388        } catch (e) {}
1389        try {
1390            var TZ_COUNTRY = {
1391                'America/Sao_Paulo': 'BR', 'America/Bahia': 'BR', 'America/Fortaleza': 'BR',
1392                'America/Recife': 'BR', 'America/Maceio': 'BR', 'America/Belem': 'BR',
1393                'America/Araguaina': 'BR', 'America/Santarem': 'BR', 'America/Manaus': 'BR',
1394                'America/Cuiaba': 'BR', 'America/Campo_Grande': 'BR', 'America/Porto_Velho': 'BR',
1395                'America/Boa_Vista': 'BR', 'America/Rio_Branco': 'BR', 'America/Eirunepe': 'BR',
1396                'America/Noronha': 'BR'
1397            };
1398            var tz = Intl.DateTimeFormat().resolvedOptions().timeZone || '';
1399            add(TZ_COUNTRY[tz]);
1400        } catch (e) {}
1401        for (var g = 0; g < gated.length; g++) {
1402            var field  = gated[g];
1403            var wanted = (field.getAttribute('data-hcs-countries') || '').toUpperCase().split(',');
1404            var match  = '';
1405            for (var w = 0; w < wanted.length; w++) {
1406                var cc = wanted[w].trim();
1407                if (cc && detected[cc]) { match = cc; break; }
1408            }
1409            if (!match) { continue; }
1410            field.style.display = '';
1411            var line = field.querySelector('.nanRegLine');
1412            if (line) { line.style.display = ''; } // display:block again → FastReg validates/posts it
1413            var phoneEl = field.querySelector('.fastRegPhone');
1414            if (phoneEl) { phoneEl.dataset.hcsCountry = match.toLowerCase(); } // flag for initHcsPhone
1415        }
1416    }());
1417
1418    // International phone widget (flag + dial code + format validation), like the
1419    // research landing. FastReg.extraParams.validate looks the iti instance up by
1420    // the global key '.fastRegPhone', so we bind THIS card's phone element and
1421    // register it under that key — overriding any legacy .fastRegPhone binding
1422    // (the legacy reg form isn't present on the standalone page, and our popup
1423    // pre-empts that flow elsewhere). Library is lazy-loaded from the same CDN
1424    // Login.js uses.
1425    (function initHcsPhone() {
1426        var phone = root.querySelector('.fastRegPhone');
1427        if (!phone || phone.dataset.itiBound) { return; }
1428        // A country-gated phone that stayed hidden (see revealCountryGatedFields,
1429        // which runs before this) is never validated nor posted — leave it alone.
1430        // Binding it would also claim the shared '.fastRegPhone' widget slot that
1431        // the legacy registration form relies on (Login.js IntlTelInput.init
1432        // returns early when the key exists), breaking the legacy research/API
1433        // phone on pages where only the clinician modal is mounted.
1434        var gatedLine = phone.closest ? phone.closest('.nanRegLine') : null;
1435        if (gatedLine && gatedLine.style.display === 'none') { return; }
1436        var ITI_JS  = 'https://cdn.jsdelivr.net/npm/[email protected]/build/js/intlTelInput.min.js';
1437        var ITI_CSS = 'https://cdn.jsdelivr.net/npm/[email protected]/build/css/intlTelInput.css';
1438        var ITI_UTILS = 'https://cdn.jsdelivr.net/npm/[email protected]/build/js/utils.js';
1439        function bind() {
1440            if (phone.dataset.itiBound || typeof window.intlTelInput === 'undefined') { return; }
1441            phone.dataset.itiBound = '1';
1442            var iti = window.intlTelInput(phone, {
1443                preferredCountries: ['us'],
1444                separateDialCode: true,
1445                autoInsertDialCode: true,
1446                utilsScript: ITI_UTILS
1447            });
1448            try {
1449                // Country-gated reveal (above) wins: it knows why the field is shown.
1450                var cc = phone.dataset.hcsCountry
1451                    || ((window.General && General.getCookie) ? General.getCookie('cgCountry') : '');
1452                iti.setCountry(cc ? cc : 'us');
1453            } catch (e) {}
1454            // Keep THIS card's instance on its own element only. Several cards can
1455            // share a page (one modal per professional type, e.g. research +
1456            // clinician both with a phone) next to the legacy registration form,
1457            // and all of them compete for the single global key
1458            // IntlTelInput.inputsBySelector['.fastRegPhone'] that
1459            // FastReg.extraParams.validate reads. Claiming it here would hijack
1460            // the legacy form's phone (Login.js IntlTelInput.init skips binding
1461            // when the key exists), so the key is only borrowed for the duration
1462            // of THIS form's submit (see submitViaFastReg).
1463            phone.hcsIti = iti;
1464            // Legacy site CSS targets `.iti input.fastRegPhone` with !important
1465            // (text-align:center, padding-left:0, padding-right:0/20%) for another
1466            // form, shrinking/mis-aligning this field. Inline !important beats any
1467            // stylesheet, so normalise the box to match the other inputs here and
1468            // keep iti's dynamic left gap (flag + dial code), re-applied on change.
1469            function styleFix() {
1470                // Legacy rule also puts padding-right:20% on the .iti WRAPPER,
1471                // squeezing the input — zero it out (inline !important wins).
1472                var wrap = phone.parentElement;
1473                if (wrap && wrap.classList && wrap.classList.contains('iti')) {
1474                    wrap.style.setProperty('padding', '0', 'important');
1475                    wrap.style.setProperty('width', '100%', 'important');
1476                }
1477                var s = phone.style;
1478                s.setProperty('box-sizing', 'border-box', 'important');
1479                s.setProperty('width', '100%', 'important');
1480                s.setProperty('height', 'auto', 'important');
1481                s.setProperty('min-height', '0', 'important');
1482                s.setProperty('font-size', '15px', 'important');
1483                s.setProperty('line-height', 'normal', 'important');
1484                s.setProperty('text-align', 'left', 'important');
1485                s.setProperty('padding-top', '17px', 'important');
1486                s.setProperty('padding-bottom', '17px', 'important');
1487                s.setProperty('padding-right', '18px', 'important');
1488                // Left gap = rendered flag + dial-code block (styled in
1489                // healthcare-signup.css) plus a breathing space before the
1490                // number. Measured, not taken from iti's own inline value, so
1491                // re-running is idempotent and the gap never drifts.
1492                var GAP = 14;
1493                var flag = wrap ? wrap.querySelector('.iti__selected-flag') : null;
1494                var fw = flag ? flag.offsetWidth : 0;
1495                s.setProperty('padding-left', (fw > 0 ? fw + GAP : 110) + 'px', 'important');
1496            }
1497            styleFix();
1498            phone.addEventListener('countrychange', function () { setTimeout(styleFix, 0); });
1499            // The widget usually binds while the modal is still closed, so the
1500            // flag block measures 0 and the fallback gap is used. Re-measure once
1501            // it gets a layout size (modal opened, font loaded, viewport resized);
1502            // focus is the no-ResizeObserver fallback.
1503            var flagEl = phone.parentElement ? phone.parentElement.querySelector('.iti__selected-flag') : null;
1504            if (flagEl && typeof window.ResizeObserver === 'function') {
1505                new ResizeObserver(function () { styleFix(); }).observe(flagEl);
1506            }
1507            phone.addEventListener('focus', styleFix);
1508        }
1509        if (typeof window.intlTelInput !== 'undefined') {
1510            bind();
1511        } else if (!document.getElementById('hcsItiScript')) {
1512            var css = document.createElement('link');
1513            css.rel = 'stylesheet'; css.href = ITI_CSS;
1514            document.head.appendChild(css);
1515            var s = document.createElement('script');
1516            s.id = 'hcsItiScript'; s.src = ITI_JS; s.onload = bind;
1517            document.head.appendChild(s);
1518        } else {
1519            document.getElementById('hcsItiScript').addEventListener('load', bind);
1520        }
1521    }());
1522
1523    function submitViaFastReg(e) {
1524        // Never let the form do a native (page-reloading) POST.
1525        if (e && e.preventDefault) { e.preventDefault(); }
1526        // Reuse the site's existing registration flow, exactly like the legacy
1527        // sign-up popup: validation, AJAX POST to /default/index/try-reg-for-partner
1528        // and success redirect all live in FastReg.Do (Login.js).
1529        if (window.jQuery && typeof FastReg !== 'undefined' && FastReg.Do) {
1530            // FastReg.extraParams.validate reads the phone widget from the global
1531            // IntlTelInput.inputsBySelector['.fastRegPhone']. With several cards
1532            // on the page the last one to bind owns that key, so point it at THIS
1533            // form's widget before validating — otherwise a clinician submission
1534            // would be validated/serialized from another modal'
1534s phone input.
1535            // Validation and serialization happen synchronously inside FastReg.Do
1536            // (the AJAX POST that follows already has the values), so borrowing
1537            // the key for the call and handing it back is safe for the legacy form.
1538            var phoneEl = form.querySelector('.fastRegPhone');
1539            var registry = (window.IntlTelInput && IntlTelInput.inputsBySelector) ? IntlTelInput.inputsBySelector : null;
1540            var ownIti = (phoneEl && phoneEl.hcsIti) ? phoneEl.hcsIti : null;
1541            var prevIti = registry ? registry['.fastRegPhone'] : undefined;
1542            if (registry && ownIti) { registry['.fastRegPhone'] = ownIti; }
1543            try {
1544                clearFieldErrors();
1545                FastReg.Do(window.jQuery(form));
1546                markFieldsWithErrors();
1547            } finally {
1548                if (registry && ownIti) {
1549                    if (typeof prevIti === 'undefined') { delete registry['.fastRegPhone']; }
1550                    else { registry['.fastRegPhone'] = prevIti; }
1551                }
1552            }
1553        } else if (window.console) {
1554            console.warn('[healthcare-signup] FastReg (Login.js) not loaded — registration cannot run on this page.');
1555        }
1556        return false;
1557    }
1558
1559    // Every submit starts from a clean state: FastReg only adds error marks, it never
1560    // removes the ones left by a previous attempt on fields that are now valid.
1561    function clearFieldErrors() {
1562        var inputs = form.querySelectorAll('.hcs__input.val-invalid');
1563        for (var i = 0; i < inputs.length; i++) { inputs[i].classList.remove('val-invalid'); }
1564        var errs = form.querySelectorAll('.hcs__fielderr');
1565        for (var j = 0; j < errs.length; j++) { errs[j].style.display = 'none'; }
1566    }
1567
1568    // FastReg.extraParams.validate only adds .val-invalid to an extra field when it
1569    // is empty; a filled-but-invalid phone (bad format for the country) just shows
1570    // the message. Give every field whose error message is visible the same invalid
1571    // look as Name / Email. FastReg.Do validates synchronously, so this runs right
1572    // after it and before the user sees anything.
1573    function markFieldsWithErrors() {
1574        var fields = form.querySelectorAll('.hcs__field');
1575        for (var i = 0; i < fields.length; i++) {
1576            var errs = fields[i].querySelectorAll('.hcs__fielderr');
1577            var visible = false;
1578            for (var j = 0; j < errs.length; j++) {
1579                if (errs[j].style.display !== 'none' && errs[j].offsetParent !== null) { visible = true; break; }
1580            }
1581            if (!visible) { continue; }
1582            var input = fields[i].querySelector('.hcs__input');
1583            if (input) { input.classList.add('val-invalid'); }
1584        }
1585    }
1586
1587    // Native binding: covers submit-button clicks and pages without jQuery.
1588    form.addEventListener('submit', submitViaFastReg);
1589
1590    // jQuery binding: also intercepts submits fired via jQuery.trigger('submit')
1591    // — Login.js binds Enter → $(form).submit(), which does NOT dispatch a native
1592    // submit event, so the addEventListener above never sees it. FastReg.Doing
1593    // guards against the double call when both bindings fire on a real submit.
1594    function bindJquerySubmit() {
1595        if (!window.jQuery) { return false; }
1596        window.jQuery(form).on('submit', submitViaFastReg);
1597        return true;
1598    }
1599    if (!bindJquerySubmit()) { window.addEventListener('load', bindJquerySubmit); }
1600
1601    // Clear the invalid style + error messages once the user focuses a field
1602    // (mirrors the legacy .fastRegForm focus handler).
1603    form.addEventListener('focusin', function (e) {
1604        var input = e.target;
1605        if (input && input.classList) { input.classList.remove('val-invalid'); }
1606        // Hide the focused field's error message(s). Scoped to its .hcs__field so
1607        // it also clears the extra fields (institution / company / phone), whose
1608        // error divs share the .hcs__fielderr class — not just name/email.
1609        var field = (input && input.closest) ? input.closest('.hcs__field') : null;
1610        var errs = field ? field.querySelectorAll('.hcs__fielderr') 
1610: form.querySelectorAll('.hcs__fielderr');
1611        for (var i = 0; i < errs.length; i++) { errs[i].style.display = 'none'; }
1612    });
1613
1614    // "Log in" opens the site login layer (#capaOpenHomeLogin). The header
1615    // variant (.loguearse) is shown via the global abrirlogin() (fadeIn); the
1616    // professional-access variant is toggled via the z_hidden class. Falls back
1617    // to the href (login page) when neither is available on the page.
1618    // "Log in" opens the site login layer — delegated, bound once per page.
1619    if (!window.__hcsLoginBound) {
1620        window.__hcsLoginBound = true;
1621        document.addEventListener('click', function (e) {
1622            if (!e.target.closest || !e.target.closest('.openHomeLogin')) { return; }
1623            var opened = false;
1624            if (typeof abrirlogin === 'function') {
1625                abrirlogin();
1626                opened = true;
1627            } else {
1628                var login = document.getElementById('capaOpenHomeLogin');
1629                if (login) {
1630                    var reg = document.getElementById('capaOpenHomeReg');
1631                    if (reg) { reg.classList.add('z_hidden'); }
1632                    login.classList.remove('z_hidden');
1633                    opened = true;
1634                }
1635            }
1636            if (!opened) { return; } // nothing to open here → follow the href fallback
1637            e.preventDefault();
1638            var openModals = document.querySelectorAll('.hcsModal.is-open');
1639            for (var i = 0; i < openModals.length; i++) { openModals[i].classList.remove('is-open'); }
1640            document.documentElement.style.overflow = '';
1641        });
1642    }
1643
1644    // ── Testimonial carousel: fade between slides, auto-advance, dot nav ──
1645    (function initHcsCarousel() {
1646        var carousel = root.querySelector('[data-hcs-carousel]');
1647        if (!carousel || carousel.dataset.hcsCarouselBound) { return; }
1648        carousel.dataset.hcsCarouselBound = '1';
1649
1650        var slides = carousel.querySelectorAll('.hcs__quote');
1651        var dots   = carousel.querySelectorAll('.hcs__quotes-dot');
1652        if (slides.length < 2) { return; }
1653
1654        var current = 0;
1655        var timer = null;
1656        var INTERVAL = 4000;
1657
1658        function show(index) {
1659            index = (index + slides.length) % slides.length;
1660            for (var i = 0; i < slides.length; i++) {
1661                var active = i === index;
1662                slides[i].classList.toggle('is-active', active);
1663                if (active) { slides[i].removeAttribute('aria-hidden'); }
1664                else { slides[i].setAttribute('aria-hidden', 'true'); }
1665                if (dots[i]) {
1666                    dots[i].classList.toggle('is-active', active);
1667                    dots[i].setAttribute('aria-selected', active ? 'true' : 'false');
1668                }
1669            }
1670            current = index;
1671        }
1672
1673        function start() {
1674            stop();
1675            timer = window.setInterval(function () { show(current + 1); }, INTERVAL);
1676        }
1677        function stop() {
1678            if (timer) { window.clearInterval(timer); timer = null; }
1679        }
1680
1681        for (var d = 0; d < dots.length; d++) {
1682            (function (i) {
1683                dots[i].addEventListener('click', function () { show(i); start(); });
1684            }(d));
1685        }
1686
1687        // Pause on hover / focus so users can read at their own pace.
1688        carousel.addEventListener('mouseenter', stop);
1689        carousel.addEventListener('mouseleave', start);
1690        carousel.addEventListener('focusin', stop);
1691        carousel.addEventListener('focusout', start);
1692
1693        start();
1694    }());
1695}());
1696
1697// ── Fit-to-viewport scaler ────────────────────────────────────────────────
1698// Make the card FILL the screen: scale it so it always occupies the full height
1699// OR the full width (whichever its aspect ratio reaches first), never leaving
1700// empty gutters on both sides. This is "contain" scaling, so it never needs a
1701// scrollbar. Below the two-column breakpoint (≤980px) fit mode is off and the
1702// card flows normally (full width + vertical scroll). CSS side: .hcs.is-fit
1703// (§5 in healthcare-signup.css).
1704(function initHcsFit() {
1705    if (window.__hcsFitInit) { return; }
1706    window.__hcsFitInit = true;
1707
1708    var BREAKPOINT = 980;   // matches the CSS two-column → single-column switch
1709    var MAX_SCALE  = 1.9;   // cap upscaling on very large / tall screens
1710
1711    function fit(card) {
1712        var container = card.parentElement; // .hcs-page or .hcsModal
1713        if (!container) { return; }
1714        var availW = container.clientWidth;
1715        var availH = container.clientHeight || window.innerHeight;
1716
1717        // Fit mode is desktop-only and needs a visible container (a closed modal
1718        // reports 0×0). Otherwise fall back to normal document flow.
1719        if (window.innerWidth <= BREAKPOINT || !availW || !availH) {
1720            card.classList.remove('is-fit');
1721            card.style.transform = '';
1722            container.style.overflow = '';
1723            return;
1724        }
1725
1726        card.classList.add('is-fit');
1727        // Reset scale before measuring the natural (pre-transform) layout size.
1728        card.style.transform = 'translate(-50%, -50%)';
1729        var natW = card.offsetWidth;
1730        var natH = card.offsetHeight;
1731        if (!natW || !natH) { return; }
1732
1733        var scale = Math.min(availW / natW, availH / natH);
1734        if (scale > MAX_SCALE) { scale = MAX_SCALE; }
1735
1736        // Contain never overflows; clip sub-pixel rounding rather than flash a
1737        // phantom scrollbar.
1738        container.style.overflow = 'hidden';
1739        card.style.transform = 'translate(-50%, -50%) scale(' + scale + ')';
1740    }
1741
1742    function fitAll() {
1743        var cards = document.querySelectorAll('.hcs-page > .hcs, .hcsModal > .hcs');
1744        for (var i = 0; i < cards.length; i++) { fit(cards[i]); }
1745    }
1746    // Exposed so the modal opener (_signup-modal.phtml) can re-fit once the
1747    // overlay is shown — it has no measurable size while display:none.
1748    window.hcsFitAll = fitAll;
1749
1750    var raf = null;
1751    function schedule() {
1752        if (raf) { window.cancelAnimationFrame(raf); }
1753        raf = window.requestAnimationFrame(fitAll);
1754    }
1755
1756    window.addEventListener('resize', schedule);
1757    window.addEventListener('load', fitAll);
1758    if (document.readyState === 'loading') {
1759        document.addEventListener('DOMContentLoaded', fitAll);
1760    } else {
1761        fitAll();
1762    }
1763
1764    // The university-logos image shifts the card height once it decodes.
1765    var logo = document.querySelector('.hcs__logos img');
1766    if (logo && !logo.complete) { logo.addEventListener('load', fitAll); }
1767}());
1768</script>
1768
1769</div>
1770
1771<script>
1772(function () {
1773    // One controller for every .hcsModal on the page. Self-guarded so it binds
1774    // once even if this partial is rendered more than once (header + a page that
1775    // mounts extra per-type modals, e.g. /general-login).
1776    if (window.__hcsBound) { return; }
1777    window.__hcsBound = true;
1778
1779    // Server-rendered, immutable "this page forces this vertical" type (empty when
1780    // the page has none). Unlike the mutable global nanLogintoRegSelectOneOption,
1781    // this is set once by the header for forced-vertical pages (schools, research,
1782    // wellbeing, sports, api) and used to resolve their generic sign-up CTAs.
1783    var HCS_PAGE_TYPE = '';
1784
1785    function attr(el, name) { return (el && el.getAttribute) ? el.getAttribute(name) : null; }
1786
1787    // Read the professional type declared on the launching element, tolerating
1788    // the legacy attribute names used by the site's sign-up buttons.
1789    function readUserType(el) {
1790        if (!el) { return ''; }
1791        return attr(el, 'data-usertype')
1792            || attr(el, 'usertype')
1793            || attr(el, 'fast_reg_tag_user_type_by_land')
1794            || '';
1795    }
1796
1797    // Resolve the pending user type when the trigger itself carries none — e.g.
1798    // the product-page "Confirm" button. At that moment the legacy hidden field
1799    // is not yet populated, so read from the platform selector / active box.
1800    function resolveUserType(trigger) {
1801        // A generic "0" (NORMAL / no-professional) counts as unspecified: the real
1802        // intended type lives on the platform selector the product preset, or the
1803        // page-forced vertical.
1804        var ut = readUserType(trigger);
1805        if (ut && ut !== '0') { return ut; }
1806        var plat = document.querySelector('.nanPlatReg');
1807        if (plat && plat.value && plat.value !== '0') { return plat.value; }
1808        if (HCS_PAGE_TYPE) { return HCS_PAGE_TYPE; }
1809        var box = document.querySelector('.z_Pr_forwhoJS.z_Pr_for_Active');
1810        var boxT = box ? readUserType(box) : '';
1811        return (boxT && boxT !== '0') ? boxT : (ut || '');
1812    }
1813
1814    // The modal tailored for a given type, or null when this page mounts none for
1815    // it (→ that type keeps the legacy registration flow).
1816    function modalForType(type) {
1817        // Professional types are always integers; coerce so a malformed value can
1818        // never break the attribute selector (defense-in-depth).
1819        var t = parseInt(type, 10);
1820        if (isNaN(t) || t <= 0) { return null; }
1821        return document.querySelector('.hcsModal[data-usertype="' + t + '"]');
1822    }
1823
1824    // Copy the purchase/registration context the legacy flow already populated on
1825    // #nanRegFormReg into the target modal's mirror fields, so FastReg.Do re-posts
1826    // the same payload and the post-registration purchase continuation is kept.
1827    function carryContext(modal) {
1828        var legacy = document.getElementById('nanRegFormReg');
1829        if (!legacy) { return; }
1830        var fields = ['fastRegTraining', 'fastRegTagProfQuantProd', 'fastRegTag',
1831                      'fastRegTagLocale', 'fastRegTagTheProfessional', 'fastRegProduct'];
1832        for (var i = 0; i < fields.length; i++) {
1833            var src = legacy.querySelector('.' + fields[i]);
1834            var dst = modal.querySelector('.' + fields[i]);
1835            if (src && dst && typeof src.value !== 'undefined') { dst.value = src.value; }
1836        }
1837    }
1838
1839    // Open a modal, stamping the trigger's user type + carrying purchase context.
1840    function open(modal, trigger) {
1841        if (!modal) { return; }
1842        var field = modal.querySelector('.fastRegTagUserType');
1843        var ut = resolveUserType(trigger);
1844        if (field && ut) { field.value = ut; }
1845        carryContext(modal);
1846        // Unwind the legacy registration UI so nothing lingers behind/after this
1847        // modal. quitBlur() (home_su(_NEW).js) clears the blur, unlocks scroll and
1848        // fades the dimming layer; we also hide the overlay it leaves visible.
1849        if (typeof window.quitBlur === 'function') { try { window.quitBlur(); } catch (e) {} }
1850        var legacyOverlay = document.querySelector('.nanRegisterSelect');
1851        if (legacyOverlay) { legacyOverlay.style.display = 'none'; }
1852        closeAll();
1853        modal.classList.add('is-open');
1854        document.documentElement.style.overflow = 'hidden';
1855        // The overlay had no measurable size while hidden — fit the card now.
1856        if (typeof window.hcsFitAll === 'function') {
1857            window.requestAnimationFrame(window.hcsFitAll);
1858        }
1859    }
1860    function closeAll() {
1861        var open = document.querySelectorAll('.hcsModal.is-open');
1862        for (var i = 0; i < open.length; i++) { open[i].classList.remove('is-open'); }
1863        document.documentElement.style.overflow = '';
1864    }
1865
1866    // Exposed so page-specific triggers can open the right modal with context.
1867    window.hcsOpenSignup = function (trigger) {
1868        open(modalForType(resolveUserType(trigger)), trigger);
1869    };
1870
1871    // ── GLOBAL interceptor (capture phase) ──────────────────────────────────
1872    // When a registration would open the legacy overlay AND this page mounts a
1873    // modal for that type, open the modal instead. Capture + stopImmediate
1874    // pre-empt the legacy delegated handlers (home_su.js / Login.js).
1875    document.addEventListener('click', function (e) {
1876        if (!e.target.closest) { return; }
1877
1878        // Case A — direct sign-up CTAs (vertical landings, platform pages, /general-login).
1879        var direct = e.target.closest('.nanBtSigUp, .ta_RegUP');
1880        if (direct) {
1881            // Resolve (explicit → platform selector → page-forced vertical) when the
1882            // button is a fast-registration button OR the page forces a single
1883            // vertical (HCS_PAGE_TYPE). Otherwise a generic .ta_RegUP uses only its
1884            // own explicit type, so "create a new account" (type "0") on a neutral
1885            // page keeps the legacy multi-type selector rather than opening a popup.
1886            var t = (direct.classList.contains('nanBtSigUp') || HCS_PAGE_TYPE)
1887                ? resolveUserType(direct)
1888                : readUserType(direct);
1889            var m = modalForType(t);
1890            if (m) { e.preventDefault(); e.stopImmediatePropagation(); open(m, direct); return; }
1891        }
1892
1893        // Case B — product flow: the "Confirm" button that would reveal
1894        // #nanRegFormReg. Calculator + confirmation popup already ran; we only
1895        // replace the final registration popup.
1896        var confirmBtn = e.target.closest('.nanRegComboInfoConfirm');
1897        if (confirmBtn) {
1898            var m2 = modalForType(resolveUserType(confirmBtn));
1899            if (m2) { e.preventDefault(); e.stopImmediatePropagation(); open(m2, confirmBtn); return; }
1900        }
1901    }, true);
1902
1903    // ── Open/close controls (delegated across all modals) ───────────────────
1904    document.addEventListener('click', function (e) {
1905        var opener = e.target.closest('.openHealthcareSignup');
1906        if (opener)                               { e.preventDefault(); window.hcsOpenSignup(opener); return; }
1907        if (e.target.closest('.hcsModal__close')) { closeAll(); return; }
1908        // Backdrop click: the overlay element itself, not the content card.
1909        if (e.target.classList
1910            && e.target.classList.contains('hcsModal')
1911            && e.target.classList.contains('hcs-canvas')) { closeAll(); }
1912    });
1913    document.addEventListener('keydown', function (e) {
1914        if (e.key === 'Escape') { closeAll(); }
1915    });
1916
1917    // ── Product pricing-calculator flow ─────────────────────────────────────
1918    // The calculator ("for whom" → For My Students / researchers / …) sets the
1919    // chosen professional type on .nanPlatReg + the active .z_Pr_forwhoJS box and
1920    // then opens the legacy registration overlay via fadeInNanRegisterSelect().
1921    // Wrap that opener so a supported type with a mounted modal shows the tailored
1922    // popup instead — preserving everything the buy flow already set up (product,
1923    // quantity, nanPlatReg, tracking). Scoped to pages that actually have the
1924    // calculator, so fadeInNanRegisterSelect is untouched everywhere else.
1925    if (document.querySelector('.z_Pr_forwhoJS')) {
1926        var installFadeHook = function () {
1927            var orig = window.fadeInNanRegisterSelect;
1928            if (typeof orig !== 'function' || orig.__hcsWrapped) { return; }
1929            window.fadeInNanRegisterSelect = function (event) {
1930                var m = modalForType(resolveUserType(null));
1931                if (m) {
1932                    if (event && event.preventDefault) { event.preventDefault(); }
1933                    open(m, null);
1934                    return;
1935                }
1936                return orig.apply(this, arguments);
1937            };
1938            window.fadeInNanRegisterSelect.__hcsWrapped = true;
1939        };
1940        // Try now; retry after home_su(_NEW).js has (re)defined the global.
1941        installFadeHook();
1942        document.addEventListener('DOMContentLoaded', installFadeHook);
1943        window.addEventListener('load', installFadeHook);
1944    }
1945}());
1946</script>
1946
1947
1948	
1949	
1950<div class="pauseHome">
1951</div>
1952<style>
1953	a.nanLogintoRegMob{display: block;}
1954</style>	
1955		
1956<div id="capaOpenHomeLogin" class="ta_register mod_signup loguearse "  style="display:block !important;">
1957	<div class="nanLoginLayer">
1958            <div class="int_mod_signup">
1959                <div class="title_free">Login</div>        
1960                 <div class="our_register">
1961                 <form target="tempLog" action="" onsubmit="return Login.doLoginNew(this);" method="post" class="clearfix" id="login-head">
1962
1963                     
1964                     <div id="Login-Result-Failure" class="sp_nc val-invalid2" ></div>
1965					 
1966                     <div class="nanLogName">        
1967                             <label>email</label>
1968                             <input type="text" class="" id="log-email" name="email" tabindex="1" placeholder="email" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" >
1969                     </div>
1970                     <div class="nanLogPass">
1971                              <label>password</label>
1972                              <input type="password" class="" id="log-pass"  name="log-pass" value="" tabindex="2" placeholder="password" >
1973                     </div>
1974                     <div class="nanLogLineMore">
1975                     <div class="nanLogRemember">
1976                             <input type="checkbox" id="remember-me" name="remember-me" value="1" tabindex="3" class="sp_nc">
1977						 	 <label id="remember" for="remember-me">Remember me</label>
1978                              
1979                     </div>
1980                     <div class="ask-forgot">
1981                              <a onclick="Login.OpenForgot();" class="lightbox forgotPass cboxElement" id="forgot" href="#">Forgot your password?</a>
1982                     </div>
1983						 <div class="reset"></div>
1984                     </div>
1985                                   
1986                     <div class="nanLogBtnSend">
1987                     <input type="submit" name="login" title="Login" value="Login" tabindex="4" class="ta_btn button btn btn-signup redondeado green_free sombreado" />
1988                     </div>
1989                     
1990                      <div class="nanRegLine">
1991		                   <a class="nanLogintoRegMob"  href="/signup?reg=true&regut=normal" rel="noopener">Don't have an account? Sign up here</a>
1992		            </div>
1993                    
1994                     <img loading="lazy" id="capaLoadingLogin" src="/img/new_cognifit/loading-login.gif" alt="loading">
1995                 </form>
1996                 
1997                 </div>
1998                 
1999                                                                                      <div class="ext_register newnanRegRedes">          
2000                             <a onclick="FacebookLogin.checkLoginState();" title='Continue with Facebook' class="nanLogFacebook button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social fb">Continue with Facebook</span></a>
2001                                                         <a id="g_id_onload" data-client_id="246580644645-v8mn20777f3bpla68jg4csbos0q5umbd.apps.googleusercontent.com" data-callback="onSignIn" data-type="icon" data-size="large" data-auto_prompt="false" class="nanLogGoogle button redondeado sombreado g_id_signin"></a>
2002                             <a onclick="AppleSignIn.Login();" title='Continue with Apple' class="nanLogApple button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Continue with Apple</span></a>
2003                             <a onclick="MicrosoftAuth.Login();" title='Sign in with Microsoft' class="nanLogMicrosoft button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Sign in with Microsoft</span></a>
2004                         </div>
2005                                                        
2006             <div class="clear"></div>
2007             </div>
2008              <a class="nanBtGoHome nanSpriteHome" href="/" title="CogniFit" style="display:block"></a>
2009    </div> 
2010</div>
2011
2012<script>
2013 if(General.getCookie("fromCrm")) $(".int_header").find("a.orange_office").remove();
2014 $(".plat_select.btSelectMovil").click(function(event){
2015		event.preventDefault();
2016	    if ($(this).hasClass("cerrado"))
2017	    {
2018			$('.usTyOpt').slideUp();
2019			$(this).removeClass("cerrado");
2020	    }
2021	    else
2022	    {
2023		   $('.usTyOpt').slideDown();
2024		   $(this).addClass("cerrado");
2025	    }
2026   });
2027   
2028   
2029</script>
2029
2030
2031	<div id="info_footer" class="nanFoot">
2032	
2033
2034	<div class="nanFooterXtras">
2035		<div class="nanIntBoard">
2036			<div class="aicpaVerification"></div>
2037			<a rel='noopener' href="/cognifit-and-amazon-web-services"><div class="aicpaVerification awsVerification"><span class="linkNone">Amazon Web Services</span></div></a>
2038			<div class="aicpaVerificationCE"></div>
2039			<ul class="nanFootOthers">
2040                <li>
2041												<p class="nanFontMain">CogniFit App </p>
2042							<ul class="nanFootApp">
2043							    <li><a title="App Store" target="_blank" rel='noopener' href="https://itunes.apple.com/app/cognifit-brain-fitness/id528285610?mt=8"><span>App Store</span><img loading="lazy" width="148" height="44" alt="App Store" src="/img/newart/appStore/app-store-badge_locale_en.svg" /></a></li>
2044							    <li><a title="Play Store" class="playStoreIcon" target="_blank" rel='noopener' href="https://play.google.com/store/apps/details?id=com.cognifit.app&hl=en"><span>Play Store</span><img loading="lazy" width="148" height="44" alt="Play Store" src="/img/newart/playStore/google-play-badge_locale_en.png" /></a></li>
2045                                							</ul>
2046									</li>
2047			</ul>
2048
2049								<ul class="nanFootSocial">
2050						<li class="headLiSocial"><strong class="nanFontMain">Follow us</strong></li>
2051						<li><a title="Facebook" target="_blank" rel='noopener' href="https://www.facebook.com/cognifit"><span class="nanIconRedesFb nanFIconRedes nanSpriteHome"></span><span>Facebook</span></a></li>
2052						<li><a title="Twitter" target="_blank" rel='noopener' href="https://x.com/cognifit"><span class="nanIconRedesTw nanFIconRedes nanSpriteHome"></span><span>Twitter</span></a></li>
2053						<li><a title="YouTube" target="_blank" rel='noopener' href="https://www.youtube.com/Cognifit"><span class="nanIconRedesYt nanFIconRedes nanSpriteHome"></span><span>Youtube</span></a></li>
2054						<li><a title="Instagram" target="_blank" rel='noopener' href="https://www.instagram.com/cognifit/"><span class="nanIconRedesIs nanFIconRedes nanSpriteHome"></span><span>Instagram</span></a></li>
2055						<li><a title="Linkedin" target="_blank" rel='noopener' href="https://www.linkedin.com/company/cognifit/"><span class="nanIconRedesLi nanFIconRedes nanSpriteHome"></span><span>Instagram</span></a></li>
2056					</ul>
2057				
2058		<div class="nanClear"></div>
2059
2060		</div>
2061	</div>
2062
2063
2064	<div class="nanIntBoard">
2065
2066							<div class="nanFootColLinks MENU_TITLE_">
2067		            	<p class="nanFontMain">Brain Science</p><ul>
2068											<li>
2069							<a href="/brain">
2070								The Human Brain							</a>
2071						</li>
2072												<li>
2073							<a href="/mind">
2074								Brain and Mind							</a>
2075						</li>
2076												<li>
2077							<a href="/brain-parts">
2078								Parts of the Brain							</a>
2079						</li>
2080												<li>
2081							<a href="/active-neurons">
2082								Neurons							</a>
2083						</li>
2084												<li>
2085							<a href="/brain-plasticity-and-cognition">
2086								Brain Plasticity 							</a>
2087						</li>
2088												<li>
2089							<a href="/brain-fitness">
2090								Brain Fitness							</a>
2091						</li>
2092												<li>
2093							<a href="/cognition">
2094								Cognition							</a>
2095						</li>
2096												<li>
2097							<a href="/memory-loss">
2098								Memory Loss							</a>
2099						</li>
2100												<li>
2101							<a href="/dementia">
2102								Intellectual Disabilities							</a>
2103						</li>
2104												<li>
2105							<a href="/brain-functions">
2106								Brain Functions							</a>
2107						</li>
2108												<li>
2109							<a href="/executive-functions">
2110								Executive Functions							</a>
2111						</li>
2112												<li>
2113							<a href="/coordination">
2114								Coordination							</a>
2115						</li>
2116												<li>
2117							<a href="/memory">
2118								Memory							</a>
2119						</li>
2120												<li>
2121							<a href="/perception">
2122								Perception							</a>
2123						</li>
2124												<li>
2125							<a href="/attention">
2126								Attention							</a>
2127						</li>
2128													</ul>
2129							</div>
2130											<div class="nanFootColLinks MENU_TITLE_SaludActiva">
2131		            	<p class="nanFontMain">Research</p><ul>
2132											<li>
2133							<a href="/digital-therapeutics">
2134								Digital Therapeutics Validation							</a>
2135						</li>
2136												<li>
2137							<a href="/Study-cognitive-training-vs-computer-games">
2138								Computer Games							</a>
2139						</li>
2140												<li>
2141							<a href="/study-cognitive-training-vs-physical-training">
2142								Healthy Older Adults Trial							</a>
2143						</li>
2144												<li>
2145							<a href="/study-evaluation-fatigue-pilots-marine">
2146								Navy Pilots							</a>
2147						</li>
2148												<li>
2149							<a href="/study-holistic-assess-senior-wellness">
2150								Senior Wellness							</a>
2151						</li>
2152												<li>
2153							<a href="/study-itv-cognitive-training-seniors">
2154								Healthy Seniors 							</a>
2155						</li>
2156												<li>
2157							<a href="/senior-cognitive-training-symposium">
2158								Senior Cognitive Training							</a>
2159						</li>
2160												<li>
2161							<a href="/study-cct-senior-conference">
2162								Cognitive state in adults							</a>
2163						</li>
2164												<li>
2165							<a href="/study-systematic-review-tools-prevention-cognitive-decline">
2166								Systematic review 							</a>
2167						</li>
2168												<li>
2169							<a href="/study-taxonomy-games-dementia">
2170								SG4D taxonomy 							</a>
2171						</li>
2172													</ul>
2173							</div>
2174											<div class="nanFootColLinks MENU_TITLE__publicGames">
2175		            	<p class="nanFontMain">Brain Games</p><ul>
2176											<li>
2177							<a href="/chess">
2178								Chess Online							</a>
2179						</li>
2180												<li>
2181							<a href="/mini-crossword">
2182								Mini Crossword							</a>
2183						</li>
2184												<li>
2185							<a href="/watch-and-catch">
2186								Fruit Frenzy							</a>
2187						</li>
2188												<li>
2189							<a href="/pipe-panic">
2190								Pipe Panic							</a>
2191						</li>
2192												<li>
2193							<a href="/crystal-miner">
2194								Crystal Miner							</a>
2195						</li>
2196												<li>
2197							<a href="/solitaire">
2198								Solitaire							</a>
2199						</li>
2200												<li>
2201							<a href="/robo-factory">
2202								Robo Factory							</a>
2203						</li>
2204												<li>
2205							<a href="/ant-escape">
2206								Ant Escape							</a>
2207						</li>
2208												<li>
2209							<a href="/treasure-island">
2210								Treasure Island							</a>
2211						</li>
2212												<li>
2213							<a href="/neon-lights">
2214								Neon Lights							</a>
2215						</li>
2216												<li>
2217							<a href="/simon-says">
2218								Drive me crazy							</a>
2219						</li>
2220												<li>
2221							<a href="/name-me">
2222								Visual Crossword							</a>
2223						</li>
2224												<li>
2225							<a href="/match-it">
2226								Match it!							</a>
2227						</li>
2228												<li>
2229							<a href="/space-rescue">
2230								Space Rescue							</a>
2231						</li>
2232												<li>
2233							<a href="/math-madness">
2234								Math Madness							</a>
2235						</li>
2236												<li>
2237							<a href="/marble-race">
2238								Marble Race							</a>
2239						</li>
2240												<li>
2241							<a href="/melodic-tennis">
2242								Melodic Tennis							</a>
2243						</li>
2244												<li>
2245							<a href="/scrambled">
2246								Scrambled							</a>
2247						</li>
2248												<li>
2249							<a href="/find-your-pet">
2250								Find Your Pet							</a>
2251						</li>
2252												<li>
2253							<a href="/melody-mayhem">
2254								Melody Mayhem							</a>
2255						</li>
2256												<li>
2257							<a href="/color-rush">
2258								Color Rush							</a>
2259						</li>
2260												<li>
2261							<a href="/3d-art-puzzle">
2262								3D Art Puzzle							</a>
2263						</li>
2264												<li>
2265							<a href="/happy-hopper">
2266								Happy Hopper							</a>
2267						</li>
2268												<li>
2269							<a href="/candy-line-up">
2270								Candy Line Up							</a>
2271						</li>
2272												<li>
2273							<a href="/puzzles">
2274								Puzzles							</a>
2275						</li>
2276												<li>
2277							<a href="/penguin-maze">
2278								Penguin Explorer							</a>
2279						</li>
2280												<li>
2281							<a href="/digits">
2282								Digits							</a>
2283						</li>
2284												<li>
2285							<a href="/color-bee">
2286								Color Bee							</a>
2287						</li>
2288												<li>
2289							<a href="/bee-balloon">
2290								Bee Balloon							</a>
2291						</li>
2292												<li>
2293							<a href="/crossroads">
2294								Crossroads							</a>
2295						</li>
2296												<li>
2297							<a href="/blockout">
2298								Cube Foundry							</a>
2299						</li>
2300												<li>
2301							<a href="/freshsqueeze">
2302								Fresh Squeeze							</a>
2303						</li>
2304												<li>
2305							<a href="/jigsaw">
2306								Jigsaw							</a>
2307						</li>
2308												<li>
2309							<a href="/fuel-a-car">
2310								Fuel a Car							</a>
2311						</li>
2312												<li>
2313							<a href="/math-twins">
2314								Math Twins							</a>
2315						</li>
2316												<li>
2317							<a href="/minus-malus">
2318								Minus Malus							</a>
2319						</li>
2320												<li>
2321							<a href="/mouse-challenge">
2322								Mouse Challenge							</a>
2323						</li>
2324												<li>
2325							<a href="/perfect-tension">
2326								Perfect Tension							</a>
2327						</li>
2328												<li>
2329							<a href="/slice-and-drop">
2330								 Slice and Drop							</a>
2331						</li>
2332												<li>
2333							<a href="/twist-it">
2334								Twist It							</a>
2335						</li>
2336												<li>
2337							<a href="/water-lilies">
2338								Water Lilies							</a>
2339						</li>
2340												<li>
2341							<a href="/whack-a-mole">
2342								Reaction Field							</a>
2343						</li>
2344												<li>
2345							<a href="/words-birds">
2346								Words Birds							</a>
2347						</li>
2348												<li>
2349							<a href="/brain-games">
2350								See More Games...							</a>
2351						</li>
2352													</ul>
2353							</div>
2354											<div class="nanFootColLinks MENU_TITLE_Ejercicios">
2355		            	<p class="nanFontMain">Tools</p><ul>
2356											<li>
2357							<a href="/family-platform">
2358								For Families							</a>
2359						</li>
2360												<li>
2361							<a href="/medical-platform">
2362								For Clinicians							</a>
2363						</li>
2364												<li>
2365							<a href="/cognitive-research-tool-v1">
2366								For Researchers							</a>
2367						</li>
2368												<li>
2369							<a href="/educational-technology">
2370								Education							</a>
2371						</li>
2372												<li>
2373							<a href="/patent">
2374								Patent							</a>
2375						</li>
2376												<li>
2377							<a href="/mindfulness">
2378								MindFit®							</a>
2379						</li>
2380												<li>
2381							<a href="/babybright">
2382								Babybright®							</a>
2383						</li>
2384												<li>
2385							<a href="/resellers">
2386								Resellers							</a>
2387						</li>
2388												<li>
2389							<a href="/brain-training-kids">
2390								Exercises for Children							</a>
2391						</li>
2392												<li>
2393							<a href="/cognitive-development">
2394								Cognitive Development							</a>
2395						</li>
2396												<li>
2397							<a href="/brain-training">
2398								Brain Exercise							</a>
2399						</li>
2400												<li>
2401							<a href="/cognifit-individualized-training-system">
2402								Individualized Training System							</a>
2403						</li>
2404												<li>
2405							<a href="/mind-quiz">
2406								Mind Quiz							</a>
2407						</li>
2408												<li>
2409							<a href="/cognitive-stimulation-therapy-cst">
2410								Cognitive Stimulation Therapy							</a>
2411						</li>
2412												<li>
2413							<a href="/mind-exercise">
2414								Mind Exercises							</a>
2415						</li>
2416												<li>
2417							<a href="/mind-training">
2418								Personalized Brain Training							</a>
2419						</li>
2420												<li>
2421							<a href="/brain-games">
2422								Brain Games							</a>
2423						</li>
2424												<li>
2425							<a href="/mental-exercise">
2426								Mental Exercise							</a>
2427						</li>
2428												<li>
2429							<a href="/memory-games">
2430								Online Memory Games							</a>
2431						</li>
2432												<li>
2433							<a href="/cool-math-games">
2434								Cool Math Games							</a>
2435						</li>
2436												<li>
2437							<a href="/reading-comprehension-exercises">
2438								Reading Comprehension							</a>
2439						</li>
2440												<li>
2441							<a href="/gifted-children">
2442								Gifted Children							</a>
2443						</li>
2444												<li>
2445							<a href="/brain-battles">
2446								Brain Battles							</a>
2447						</li>
2448												<li>
2449							<a href="/iq-test-iqbe">
2450								IQ Test							</a>
2451						</li>
2452													</ul>
2453							</div>
2454						          <div class="nanClear"></div>
2455	</div>
2456
2457           <div class="nanFAD_note">
2458           <div class="nanIntBoard">
2459               <p>* Every CogniFit cognitive assessment is intended as an aid for assessing cognitive wellbeing of an individual. In a clinical setting, the CogniFit results (when interpreted by a qualified healthcare provider), may be used as an aid in determining whether further cognitive evaluation is needed. CogniFit’s brain trainings are designed to promote/encourage the general state of cognitive health. CogniFit does not offer any medical diagnosis or treatment of any medical disease or condition. CogniFit products may also be used for research purposes for any range of cognitive related assessments. If used for research purposes, all use of the product must be in compliance with appropriate human subjects' procedures as they exist within the researchers' institution and will be the researcher's obligation. All such human subject protections shall be under the provisions of all applicable sections of the Code of Federal Regulations.</p>
2460           </div>
2461       </div>                   
2462        	<div class="nanSubFooter">
2463    	<div class="nanIntBoard">
2464        	<ul>
2465                <li>
2466                    <a rel='noopener' href="/terms-and-conditions">
2467                        Terms of Service                    </a>
2468                </li>
2469                                <li><a rel='noopener' href="/privacy-policy">Privacy Policy</a></li>
2470                <li><a target="_blank" rel='noopener' href="https://cognifit.com/affiliates">Become an Affiliate</a></li>
2471                <li><a target="_blank" rel='noopener' href="https://resellers.cognifit.com/">Become a Reseller</a></li>
2472                <li><a rel='noopener' href="javascript: Feedback.OpenSupport();">Contact us</a></li>
2473				<li><a target="_blank" rel='noopener' href="https://support.cognifit.com">Help</a></li>
2474                <li><a target="_blank" rel='noopener' href="https://inclusif.life/accessibility-statement/cognifit">Accessibility Statement</a></li>
2475            </ul>
2476                        <div class="nanClear"></div>
2477			<div class="nanCredits">
2478				<div class="nanC_Country nanCountry">
2479						<a href="/corporativa/index/choose-country-region">
2480							<img alt="Indicate which country or region you are in to view specific content." width="11" height="11" src="/img/flags_16/us.png" />
2481							United States						</a>
2482				</div>
2483				<div class="nanCognifit">
2484					CogniFit Inc © 2026				</div>
2485            </div>
2486        </div>
2487    </div>
2488</div>
2489<div style="display: none;">
2490
2491	<div id="div-forgotPass" class="div-lightbox">
2492		<p class="title">
2493			Please type your email address		</p>
2494
2495		<div class="center">
2496			<form action="" method="post" class="formLightbox"
2497				onsubmit="Login.requestForgottenPassword(); return false;">
2498				<fieldset>
2499					<label class="resendpass" for="lgbox-resendpass">Email:					</label> <input type="text" id="lgbox-resendpass"
2500						name="resend-pass" value=""
2501						onkeypress="if(!Login.pulsar(event)) return Login.requestForgottenPassword() ;" />
2502
2503					<input id="reqPass" type="button" name="request"
2504						value="Submit"
2505						class="isBtn isgr-darkBlue"
2506						onclick="Login.requestForgottenPassword()" />
2507				</fieldset>
2508			</form>
2509			<div id="respuesta-olvido-contrasena">
2510				<br />
2511				<br />
2512			</div>
2513		</div>
2514	</div>
2515	<!-- /div-forgotPass -->
2516
2517</div>
2518
2519<script type="text/javascript">
2520	$(document).ready(function(){			
2521    	$(".forgotPass").colorbox({width:"580px",height:"220px", inline:true, href:"#div-forgotPass"});
2522	});			
2523</script>
2523
2524
2525
2526<div id="capaOpenHomeLogin" class="ta_register mod_signup loguearse"  >
2527	<div class="nanLoginLayer">
2528            <div class="int_mod_signup">
2529                <div class="title_free">Login</div>        
2530                 <div class="our_register">
2531                 <form target="tempLog" action="" onsubmit="return Login.doLoginNew(this);" method="post" class="clearfix" id="login-head">
2532
2533                     
2534                     <div id="Login-Result-Failure" class="sp_nc val-invalid2" ></div>
2535					 
2536                     <div class="nanLogName">        
2537                             <label>email</label>
2538                             <input type="text" class="" id="log-email" name="email" tabindex="1" placeholder="Email or alias" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" >
2539                     </div>
2540                     <div class="nanLogPass">
2541                              <label>password</label>
2542                              <input type="password" class="" id="log-pass"  name="log-pass" value="" tabindex="2" placeholder="password" >
2543                     </div>
2544                     <div class="nanLogLineMore">
2545                     <div class="nanLogRemember">
2546                             <input type="checkbox" id="remember-me" name="remember-me" value="1" tabindex="3" class="sp_nc">
2547						 	 <label id="remember" for="remember-me">Remember me</label>
2548                              
2549                     </div>
2550                     <div class="ask-forgot">
2551                              <a onclick="Login.OpenForgot();" class="lightbox forgotPass cboxElement" id="forgot" href="#">Forgot your password?</a>
2552                     </div>
2553						 <div class="reset"></div>
2554                     </div>
2555                                   
2556                     <div class="nanLogBtnSend">
2557                     <input type="submit" name="login" title="Login" value="Login" tabindex="4" class="ta_btn button btn btn-signup redondeado green_free sombreado" />
2558                     </div>
2559                     
2560                      <div class="nanRegLine">
2561		                 <input class="nanRegSubmit nanLogintoReg" type="button" value="Don't have an account? Sign up here" />
2562		            </div>
2563                    
2564                     <img loading="lazy" id="capaLoadingLogin" src="/img/new_cognifit/loading-login.gif" alt="loading">
2565                 </form>
2566                 
2567                 </div>
2568                 
2569                                                             <style>
2570                             .ext_register.newnanRegRedes a.button {
2571                                 width: 23% !important;
2572                             }
2573                             #g_id_onload div {
2574                                 left: 22%;
2575                             }
2576                         </style>
2577                         <div class="ext_register newnanRegRedes">
2578                             <a onclick="FacebookLogin.checkLoginState();" title='Continue with Facebook' class="nanLogFacebook button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social fb">Continue with Facebook</span></a>
2579                                                         <a id="g_id_onload" data-client_id="246580644645-v8mn20777f3bpla68jg4csbos0q5umbd.apps.googleusercontent.com" data-callback="onSignIn" data-type="icon" data-size="large" data-auto_prompt="false" class="nanLogGoogle button redondeado sombreado g_id_signin"></a>
2580                             <a onclick="AppleSignIn.Login();" title='Continue with Apple' class="nanLogApple button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Continue with Apple</span></a>
2581                             <a onclick="MicrosoftAuth.Login();" title='Sign in with Microsoft' class="nanLogMicrosoft button redondeado sombreado"><span class="iconRed"></span><span class="sp_nc connect_social">Sign in with Microsoft</span></a>
2582                         </div>
2583                                                        
2584             <div class="clear"></div>
2585             </div>
2586             <div class="btn_cerrar_su"><a class="sp_nc su_close_btn log_close nanBtCloseReg"></a></div> 
2587    </div> 
2588</div>
2589
2590<script>
2591    if(General.getCookie("fromCrm")) $(".int_header").find("a.orange_office").remove();
2592    $(".plat_select.btSelectMovil").click(function(event){
2593		event.preventDefault();
2594	    if ($(this).hasClass("cerrado"))
2595	    {
2596			$('.usTyOpt').slideUp();
2597			$(this).removeClass("cerrado");
2598	    }
2599	    else
2600	    {
2601		   $('.usTyOpt').slideDown();
2602		   $(this).addClass("cerrado");
2603	    }
2604   });
2605   
2606   
2607</script>
2607
2608
2609<!-- SF not L --><style>
2610    #chatCSButton {
2611        position: fixed;
2612        bottom: -5px;
2613        right: 20px;
2614        background: linear-gradient(to bottom, rgba(28, 170, 250, 1) 0%, rgba(11, 122, 244, 1) 100%);
2615        font-family: fontCogRobotoBold, Arial, Helvetica, sans-serif;
2616        color: white;
2617        border: none;
2618        padding: 15px 20px;
2619        font-size: 16px;
2620        cursor: pointer;
2621        border-radius: 5px;
2622        z-index: 9999;
2623        display: flex;
2624        align-items: center;
2625        justify-content: center;
2626    }
2627
2628    #chatCSButton span {
2629        display: inline-block;
2630        width: 24px;
2631        height: 24px;
2632        background-color: #fff;
2633        -webkit-mask-image: url("../../img/newart/taurus/svg/stars.svg");
2634        mask-image: url("../../img/newart/taurus/svg/stars.svg");
2635        -webkit-mask-size:  auto 80%;
2636        mask-size:  auto 80%;
2637        -webkit-mask-repeat: no-repeat;
2638        mask-repeat: no-repeat;
2639        -webkit-mask-position: 50% 50%;
2640        mask-position: 50% 50%;
2641        margin-right: 5px;
2642    }
2643
2644    #chatCSContainer {
2645        display: none;
2646        position: fixed;
2647        bottom: 0;
2648        right: 9px;
2649        width: 100%;
2650        max-width: 700px;
2651        height: 80vh;
2652        background-color: #fff;
2653        border: 0;
2654        z-index: 9999;
2655        border-radius: 10px 10px 0 0;
2656        box-shadow: 0 -5px 20px -13px #000;
2657        overflow: hidden;
2658    }
2659
2660    #chatCSHeader {
2661        background: linear-gradient( to bottom, rgba(28, 170, 250, 1) 0%, rgba(11, 122, 244, 1) 100% );
2662        color: white;
2663        padding: 10px;
2664        /*display: flex;
2665        justify-content: start;
2666        align-items: center;*/
2667		height: 28px;
2668    }
2669
2670    #chatCSContent {
2671        height: 100%;
2672        max-height: calc(100% - 50px);
2673    }
2674
2675   .barChatButton {
2676        background: #fff;
2677		border-radius: 6px;
2678		aspect-ratio:1/1;
2679		width: 23px;
2680		margin: 2px;
2681	    border: 0;
2682	   display: inline-block;
2683	   cursor: pointer;
2684	   background: #fff;
2685       padding: 0;
2686    }
2687	.barChatButton span{
2688		width: 100%;
2689		height: 100%;
2690		-webkit-mask-image: url("../../img/newart/taurus/svg/minchat.svg");
2691		mask-image: url("../../img/newart/taurus/svg/minchat.svg");
2692		-webkit-mask-size: auto 70%;
2693		mask-size: auto 70%;
2694		-webkit-mask-repeat: no-repeat;
2695		mask-repeat: no-repeat;
2696		-webkit-mask-position: 50% 50%;
2697		mask-position: 50% 50%;
2698		display: block;
2699		background: linear-gradient( to bottom, rgba(28, 170, 250, 1) 0%, rgba(11, 122, 244, 1) 100% );
2700
2701	}
2702	.barCaiButtonMax span{
2703		-webkit-mask-image: url("../../img/newart/taurus/svg/maxchat.svg");
2704		mask-image: url("../../img/newart/taurus/svg/maxchat.svg");
2705	}
2706	.maximized .barCaiButtonMax span{
2707		-webkit-mask-image: url("../../img/newart/taurus/svg/cutchat.svg");
2708		mask-image: url("../../img/newart/taurus/svg/cutchat.svg");
2709	}
2710	.barCaiButtonClose {
2711		float: right;
2712
2713	}
2714	.barCaiButtonClose span{
2715		-webkit-mask-image: url("../../img/newart/taurus/svg/closechat.svg");
2716		mask-image: url("../../img/newart/taurus/svg/closechat.svg");
2717	}
2718
2719	.z_mask_boxes .barChatButton span{
2720		-webkit-mask-image: url("../../../../img/newart/taurus/svg/minchat.svg");
2721		mask-image: url("../../../../img/newart/taurus/svg/minchat.svg");
2722	}
2723
2724	.z_mask_boxes .barCaiButtonMax span{
2725		-webkit-mask-image: url("../../../../img/newart/taurus/svg/maxchat.svg");
2726		mask-image: url("../../../../img/newart/taurus/svg/maxchat.svg");
2727	}
2728	.z_mask_boxes .maximized .barCaiButtonMax span{
2729		-webkit-mask-image: url("../../../../img/newart/taurus/svg/cutchat.svg");
2730		mask-image: url("../../../../img/newart/taurus/svg/cutchat.svg");
2731	}
2732
2733	.z_mask_boxes .barCaiButtonClose span{
2734		-webkit-mask-image: url("../../../../img/newart/taurus/svg/closechat.svg");
2735		mask-image: url("../../../../img/newart/taurus/svg/closechat.svg");
2736	}
2737
2738    .z_mask_boxes #chatCSButton span {
2739        -webkit-mask-image: url("../../../../img/newart/taurus/svg/stars.svg");
2740        mask-image: url("../../../../img/newart/taurus/svg/stars.svg");
2741    }
2742
2743    #chatCSContainer.maximized {F
2744        width: 100vw;
2745        height: 100vh;
2746        bottom: 0;
2747        right: 0;
2748    }
2749
2750    #chatCSContainer.maximized #chatCSContent {
2751        max-height: calc(100% - 40px);
2752    }
2753
2754	 @media only screen and (max-device-width: 500px) {
2755		#chatCSContainer{
2756	z-index: 100000;
2757	max-height: calc(100dvh - 60px);
2758	height: calc(100dvh - 60px);
2759	top: auto;
2760	bottom: 0;
2761	right: 0;
2762		 }
2763	}
2764</style>
2765
2766<button id="chatCSButton"><span></span>Need help?</button>
2767<div id="chatCSContainer">
2768    <div id="chatCSHeader">
2769         <button id="minimizeChatCSButton" class="barChatButton barCaiButtonMin"><span></span></button>
2770        <button id="maximizeChatCSButton" class="barChatButton barCaiButtonMax"><span></span></button>
2771        <button id="closeChatCSButton" class="barChatButton barCaiButtonClose"><span></span></button>
2772    </div>
2773    <div id="chatCSContent"></div>
2774</div>
2775
2776<script>
2777    $(document).ready(function () {
2778        ChatCSManager.getInstance('en');
2779    });
2780</script>
2780
2781
2782
2783
2784    <!-- Facebook Pixel Code -->
2785    
2785<script>
2786        !function(f,b,e,v,n,t,s)
2787        {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
2788            n.callMethod.apply(n,arguments):n.queue.push(arguments)};
2789            if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
2790            n.queue=[];t=b.createElement(e);t.async=!0;
2791            t.src=v;s=b.getElementsByTagName(e)[0];
2792            s.parentNode.insertBefore(t,s)}(window,document,'script',
2793            'https://connect.facebook.net/en_US/fbevents.js');
2794
2795         // @d.heredia
2796        if(window['fbq'] instanceof Function){
2797            fbq('init', '1084140328351880');
2798            fbq('track', 'PageView');
2799        }
2800    </script>
2800
2801    <noscript>
2802        <img height="1" width="1" src="https://www.facebook.com/tr?id=1084140328351880&ev=PageView&noscript=1"/>
2803    </noscript>
2804    <!-- End Facebook Pixel Code -->
2805<script type="text/javascript">
2806    (function() {
2807        window._pa = window._pa || {};
2808                var pa = document.createElement('script'); pa.type = 'text/javascript'; pa.async = true;
2809        pa.src = ('https:' == document.location.protocol ? 'https:' : 'http:') + "//tag.perfectaudience.com/serve/604a3a422f5586fa0e000039.js";
2810        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(pa, s);
2811    })();
2812</script>
2812
2813<!-- 408/197 -->
2814
2815<script>
2816                  FacebookLogin = {};
2817
2818              FacebookLogin.loadingSdk = false;
2819
2820              FacebookLogin.statusChangeCallback = function(response) {
2821                if (response.status === 'connected') {
2822                    FacebookLogin.redirectInside();
2823                } else if (response.status === 'not_authorized') {
2824                    FacebookLogin.facebookLogin();
2825                } else {
2826                    FacebookLogin.facebookLogin();
2827                }
2828              };
2829
2830              FacebookLogin.facebookLogin = function(){
2831                  FacebookLogin.checkForSdkAndRun(function(){
2832                      FB.login(function(response) {
2833                          if (response.authResponse) {
2834                              FacebookLogin.redirectInside();
2835                          }
2836                      }, {scope: 'public_profile, email'});
2837                  });
2838              };
2839
2840              FacebookLogin.checkLoginState = function() {
2841                FacebookLogin.facebookLogin();
2842              };
2843
2844              FacebookLogin.redirectInside = function(){
2845                  if(typeof $crisp !== 'undefined'){
2846                      $crisp["do"]("session:reset", [false]);
2847                  }
2848                var url = "https://www.cognifit.com/facebookv2/phpsdk-login/registro-with-facebook";
2849                var queryString = '';
2850                var fastRegTraining = $(".fastRegTraining").val();
2851                var fastRegTag = $('.fastRegTag').val();
2852
2853                if(typeof fastRegTraining !== 'undefined' && fastRegTraining !== ''){
2854                    queryString = '?fastRegTraining='+fastRegTraining;
2855                }else{
2856                    var fastRegProduct =  $(".fastRegProduct").val();
2857                    if(typeof fastRegProduct !== 'undefined' && fastRegProduct !== ''){
2858                        queryString = '?fastRegProduct='+fastRegProduct;
2859                    }
2860                }
2861
2862                if(fastRegTag){
2863                    if(queryString){
2864                        queryString += '&';
2865                    }else{
2866                        queryString += '?';
2867                    }
2868                    queryString += 'fastRegTag=' + fastRegTag;
2869                }
2870                url += queryString;
2871                window.location = url;
2872              };
2873
2874              FacebookLogin.checkForSdkAndRun = function(callback){
2875                  if(typeof FB !== 'undefined'){
2876                      callback();
2877                      return;
2878                  }
2879                  if(!FacebookLogin.loadingSdk){
2880                      FacebookLogin.loadingSdk = true;
2881                      FacebookLogin.loadSdk();
2882                  }
2883                  setTimeout(function(){
2884                      FacebookLogin.checkForSdkAndRun(callback);
2885                  }, 200);
2886                  return true;
2887              };
2888
2889              FacebookLogin.loadSdk = function(){
2890                  window.fbAsyncInit = function() {
2891                      FB.init({
2892                          appId      : '147013575367957',
2893                          cookie     : true,  // enable cookies to allow the server to access
2894                          // the session
2895                          xfbml      : true,  // parse social plugins on this page
2896                          version    : 'v2.12' // previously use version 2.2
2897                      });
2898                  };
2899
2900                  (function(d, s, id) {
2901                        var js, fjs = d.getElementsByTagName(s)[0];
2902                        if (d.getElementById(id)) return;
2903                        js = d.createElement(s); js.id = id;
2904                        js.src = "//connect.facebook.net/en_US/sdk.js";
2905                    fjs.parentNode.insertBefore(js, fjs);
2906                  }(document, 'script', 'facebook-jssdk'));
2907              };
2908
2909    </script>
2909
2910
2911<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"698fbd6a93","applicationID":"1074206998","transactionName":"YABbNURSCkIDB0RdXllKbBNfHA1fBgFIGkFfFQ==","queueTime":0,"applicationTime":3,"atts":"TEdYQwxIGUw=","errorBeacon":"bam.nr-data.net","agent":""}</script>
2911<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"375542ca930e4c85b7e28ea96d97ccba","spa":2}' crossorigin="anonymous"></script>
2911
2912</body>
2913<script type="text/javascript">
2914    usi_installed = 0; USI_installCode = function() { if (usi_installed == 0) { usi_installed = 1; var USI_headID = document.getElementsByTagName("head")[0]; var USI_installID = document.createElement('script'); USI_installID.type = 'text/javascript'; USI_installID.src = 'https://www.upsellit.com/active/cognifit.jsp'; USI_headID.appendChild(USI_installID); } }; if (typeof(document.readyState) != "undefined" && document.readyState === "complete") { USI_installCode(); } else if (window.addEventListener){ window.addEventListener('load', USI_installCode, true); } else if (window.attachEvent) { window.attachEvent('onload', USI_installCode); } else { USI_installCode(); } setTimeout("USI_installCode()", 10000);
2915</script>
2915
2916</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.