PageSourceSearch

https://www.loss2profit.com/products

html loss2profit.com collected 2026-09-28 22:45:27 UTC 318,874 bytes, 4,973 lines download raw bytes

1 
2   
3<!DOCTYPE html>
4<html>
5  <head>
6    <title>Digital Products</title>
7
8    
9
10
11
12
13 
14
15 
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33		
34		
35			
36		
37
38
39
40
41
42
43	
44	
45
46
47	
48		
49	
50	
51
52
53	
54	
55		
56	
57
58
59
60 
61 
62 	
63 	
64		<meta name="viewport" content="width=device-width, initial-scale=1.0">
65 	
66 	
67  
68    
69   		
70   		
71   		
72   		
73   		
74   		
75   		
76    
77    <meta name="google" content="notranslate">
78    
79    	
80        	<link rel="canonical" href="https://www.loss2profit.com/products" />
81  
82
83
84<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
85<link rel="icon" href="/favicon.ico" type="image/x-icon">
86
87
88
89
90
91
92	
93		
93<script>var orgCountry = "IN";</script>
93
94	
95	
96
97
98<link id="theme" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre.min.css" rel="stylesheet">
99
100<link rel="preconnect" href="https://fonts.googleapis.com"> 
101<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 
102
103<link rel="preload" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" as="style" onload="this.onload=null;this.rel='stylesheet'">
104<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" ></noscript>
105
106<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" as="style" onload="this.onload=null;this.rel='stylesheet'">
107<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/css/intlTelInput.css?v=1" ></noscript>
108
109<link rel="preload" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
110<noscript><link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/fontawesome/css/all.min.css" ></noscript>
111
112<link id="theme-exp" href="https://d502jbuhuh9wk.cloudfront.net/resources/themes/default/spectre-exp.min.css" rel="stylesheet">
113
114
115
116	
117	<link href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstyles_0f8f8346b730ed7f9d44d25335e652c6.css" rel="stylesheet">
118	<link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/sstore_052a28d8fc16dab749345a09dfcd63bf.css"/>
119	
120	<link rel="stylesheet" href="https://d502jbuhuh9wk.cloudfront.net/resources/stylesheets/gtheme3.css?v=7"/>
121	
122	<style type="text/css">
123		#loginLoader{
124			position: absolute;
125	    	left: 0;
126	    	right: 0;
127	    	margin-left: auto;
128	    	margin-right: auto;
129	    	width: 100px;
130	    	top: 50%;
131		}
132	    .customSocialBtn {
133	      	display: flex; 
134	    	white-space: nowrap;
135	    	justify-content: center;
136	    	align-items: center;
137	    	padding: 11px 67px;
138	    	position: static;
139	    	left: 0px;
140	    	top: 40px;
141	    	cursor: pointer;
142	    	margin: auto;
143	    	border: none;
144	    	gap: 10px;
145	    	/*width: 364px;
146	    	height: 48px;
147	      	 background: #000000; */
148	    	/*For New Button Remove Bellow Codes and Uncomment upper Code  */
149	    	background: white;
150	      	border-radius: 4px;
151	      	box-shadow: 0 2px 4px 0 rgb(0 0 0 / 25%);
152	      	width: 245px;
153	      	height: 40px;
154	    }
155	  
156	    .customSocialBtn img.icon {     
157	    	height: 20px;
158	    	width: 20px;
159	    }
160	    .customSocialBtn span.buttonText {
161	    	font-style: normal;
162	    	font-weight: 900;
163	    	font-size: 16px;
164	    	line-height: 120%;
165			opacity: 0.9;
166	    	font-family: 'Roboto', sans-serif;
167	    	/* color: #F7F7F7; */
168	    	/*For New Button Remove Bellow Codes and Uncomment upper Code  */
169	    	color: #808080;
170	    }
171	</style>
172	
173	
174		
175		
176		 
177			<style type="text/css">
178				
179					.main.container { margin-top: calc(var(--headerHeight) + 25px); }
180				
181			</style>
182		
183	
184	
185		
186		
187			<style type="text/css">
188				footer a, footer+div a {
189					color: var(--footerTextColor) !important;
190				}
191				footer .socialIcons {text-align: right;}
192				@media (max-width: 600px) {
193					footer .linksCont a { display: block !important; }
194					footer .socialIcons {text-align: center;margin-top: 20px;}
195				}
196			</style>
197		
198	
199
200
201
202
203
204<style type="text/css">
205	:root {
206	 	--themeColor: #5755d9;
207	 	--themeBGColor: #fff;
208		--headerHeight: 80px;
209		--headerTextColor: #edebe9;
210		--headerBGColor: #333333;
211		--footerTextColor: #FAF0F0;
212	}
213
214
215	:root {
216	 	--themeColor: #317AE7;
217	 	--themeBGColor: #EFF5FE;
218	 	--themeCornerRadius: 25px;
219	 	--themeGrayColor: #F5F5F5;
220	 }
221
222</style>
223
224<style type="text/css">
225	.is-overlay-bg {
226    opacity: 1;
227}
228    @media (max-width: 760px){
229.whatsapp-widget-container {
230        width: 60px;
231        bottom: 90px;
232        display: flex !important;
233    }
234}
235    
236
237</style>
238
239
240
241	<!-- Facebook Pixel Code -->
242	
242<script>
vendor: 426 bytes, lines 242-251
242
243	  !function(f,b,e,v,n,t,s)
244	  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
245	  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
246	  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
247	  n.queue=[];t=b.createElement(e);t.async=!0;
248	  t.src=v;s=b.getElementsByTagName(e)[0];
249	  s.parentNode.insertBefore(t,s)}(window, document,'script',
250	  'https://connect.facebook.net/en_US/fbevents.js');
251	  fbq('init', '
251853127119593297
vendor: 34 bytes, lines 251-253
251');
252	  fbq('track', 'PageView');
253	
253</script>
253
254	<noscript><img height="1" width="1" style="display:none"
255	  src="https://www.facebook.com/tr?id=853127119593297&ev=PageView&noscript=1"
256	/></noscript>
257	<!-- End Facebook Pixel Code -->
258
259
260<script type="text/javascript">
261	window.onload = function(event) {
262	   document.querySelectorAll('header .avatar img').forEach(function(img){
263		   	if(img.naturalWidth == 0) {
264		   		img.style.display='none';
265		   	}
266	   })
267	};
268	var RESCDN = "https://d502jbuhuh9wk.cloudfront.net";
269	
270	function showCourseDefaultCover(img, cid) {
271		var rndm = ((parseInt(cid.replace(/[a-z]/g, '')) % 10) % 6) + 1;
272		rndm = isNaN(rndm) ? 1 : rndm;
273		if(img === null) {
274			return RESCDN + "/resources/images/cc"+rndm+".jpg";
275		}
276		
277		img.src = RESCDN + "/resources/images/cc"+rndm+".jpg";
278	}
279</script>
279
280
281
282
283	
284	
285
286
287
288
289
290
291
292<script type="text/javascript">var learnerConsentMsg = `We've updated our <a href='/termsofuse' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='/privacy-policy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
292
293
294<script type="text/javascript">var creatorConsentMsg = `We've updated our <a href='https://graphy.com/legal/terms' target='_blank' style='text-decoration:underline'>terms and conditions</a> and <a href='https://graphy.com/legal/privacy' target='_blank' style='text-decoration:underline'>privacy policy</a>.<br>By proceeding, you agree to our new terms.`;</script>
294
295
296<script type="text/javascript">var cookieMsg = `We use cookies to personalise your experience and to analyse our website traffic. By continuing to use our website, you consent to our cookies.`;</script>
296
297
298
299
300
301
302
303<script type="text/template" id="consentPromptTemplate">
304<div class="spectre">
305	<div class="modal active" id="consentPrompt">
306		    <a href="javascript:void(0);" class="modal-overlay" aria-label="Close"></a>
307		    <div class="modal-container" style="max-width:325px">
308		      <div class="modal-header" style="padding:0.8rem 0.8rem 0px 0.8rem;">
309		        <div class="modal-title h5 text-center">Updated Terms</div>
310		      </div>
311		      <div class="modal-body">
312		        
313				<form id="consentForm" style="text-align:center; font-size:13px">
314					<div class="content"></div><br>
315					<div class="text-center">
316						<button id="consentBtn" type="button" class="btn close btn-primary">I Agree</button>
317					</div>
318				</form>
319
320		    </div>
321		  </div>
322</div>
323</script>
323
324
325
326<script>
327	var hideCookiePopup = false;
328	var cookieConsentEnabled = false;
329	if(!cookieConsentEnabled){
330		hideCookiePopup = true;
331	}
332	var SPORG = {subscriptionPlan: "rise", checkout_version: "2", customer_type: "r"};
333</script>
vendor: 1 bytes, line 333
333
334<script type="text/template" id="cookiePopupTemplate">
335<div class="spectre" style="position: fixed; bottom: 0; width: 100%; opacity:1; z-index: 9999;">
336		<div class="modal-container p-0" id="cookiePopup">        
337			<form id="cookiePopupForm">
338				<div class="columns" style="align-items: center;">
339					<div class="column col-sm-12 content text-center"></div>
340					<div class="column col-sm-12 text-center">
341						<a href="/privacy-policy" class="btn" target="_blank" id="viewPrivacyPolicyBtn" style="margin-right:15px;">View privacy policy</a>
342						<button id="acceptCookiesBtn" type="button" class="btn close btn-primary">Accept cookies</button>
343					</div>
344				</div>
345			</form>
346		</div>
347</div>
348</script>
348
349
350
351
352	
353		
354		
355			
355<script>
vendor: 399 bytes, lines 355-364
355
356!function(f,b,e,v,n,t,s)
357{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
358n.callMethod.apply(n,arguments):n.queue.push(arguments)};
359if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
360n.queue=[];t=b.createElement(e);t.async=!0;
361t.src=v;s=b.getElementsByTagName(e)[0];
362s.parentNode.insertBefore(t,s)}(window, document,'script',
363'https://connect.facebook.net/en_US/fbevents.js');
364fbq('init', '
3643239484346346565
vendor: 30 bytes, lines 364-365
364');
365fbq('track', 'PageView');
366</script>
366
367<noscript><img height="1" width="1" style="display:none"
368src="https://www.facebook.com/tr?id=3239484346346565&ev=PageView&noscript=1"
369/></noscript>
370		
371	
372
373
374
375
376
377
378
379
380	
381
382
383<!-- Google Tag Manager -->
384<script>
vendor: 327 bytes, lines 384-388
384(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
385new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
386j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
387'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
388})(window,document,'script','dataLayer','
388GTM-KW7N9P2
vendor: 4 bytes, line 388
388');
389</script>
389
390<!-- End Google Tag Manager -->
391 
392 	
392<script defer type="text/javascript" src="https://api.pirsch.io/pirsch-extended.js" 
393    id="pirschextendedjs" 
394    data-code="tvjyRxwUriCzlNT6imNV2oiinXj5ED1N"></script>
394
395 
396    
397<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"errorBeacon":"bam.nr-data.net","licenseKey":"NRJS-3c5e94b79297c3f66ad","agent":"","beacon":"bam.nr-data.net","applicationTime":25,"applicationID":"1108160141","transactionName":"Y1RVZkAHVhIHBUZfWVoeZEJAD1YGJQlcQkRbXVtXQElIEwkCR1VCRxEfdXcyEQ==","queueTime":0};
398(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:"1134555315",accountID:"3033394",trustKey:"3033394",xpid:"VwYEUlVaDBABVVFaBgcHV1AA",licenseKey:"NRJS-3c5e94b79297c3f66ad",applicationID:"1108160141",browserID:"1134555315"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
399(()=>{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};
399e.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;
399const 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);
399if(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$:()=>
399o,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])}
399(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}
399;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)=>
399{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
399ine_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()=>
399{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)=>
399null==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
399dTimingMethod(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
399imeToRegister: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})})}
399return 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"
399!==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);
399if(!(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)}
399);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)})});
399class 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
399h(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>
399<link
400      rel="stylesheet"
401      href="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/stylesheets/digital-product_01bab387320c46e84d9b767a861a175c.css"
402    />
403    <style type="text/css">
404      #pgchooser .button {
405        background: #fff;
406        border: 3px solid #e5e5e5;
407        width: 250px;
408        height: 60px;
409        background-size: auto calc(100% - 10px) !important;
410        padding: 0;
411      }
412
413      .clearfix {
414        margin-top: 50px;
415      }
416
417      .main form {
418        background: white;
419        margin-top: 1rem;
420      }
421    </style>
422  </head>
423  <body>
424    
425      
426      
427        
428
429
430
431<div class="header spectre fixed"
432	style="background-color: #333333;">
433	
434	<header class="navbar container" style="min-height: 80px;">
435		  
436		  <div id="navbar-section-btn">
437		  	
438		  	<a class="btn btn-link btn-action ml-2" id="header-collapse-btn"  href="javascript:void(0);">
439				<i class="icon-menu material-icons">menu</i>
440		  	</a>
441		  </div>
442		  <section class="navbar-section" style="min-height: 80px;">
443		    <a href="/" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "www.loss2profit.com","button":"profile_logo"}'><img alt="logo" onerror="this.src='https://d502jbuhuh9wk.cloudfront.net/resources/images/yourlogohere.jpg'" src='https://d502jbuhuh9wk.cloudfront.net/logos/64bb94ebe4b0539686c35283.png?v=3'/></a>
444		  </section>
445		  
446		  <section class="navbar-section menu-links">
447			
448				<a href="/s/store" class="nav-link" data-id="courses" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "www.loss2profit.com","button":"store"}'>Courses</a>
449			
450			
451				<a href="/blog" class="nav-link" data-id="blog" amplitude-event="navbar_link_tapped_user_landing_page" amplitude-payload='{"custom_domain": "www.loss2profit.com","button":"blog"}'>Blog</a>
452			
453			
454			
455				
456					<a class="nav-link" href="/s/pages/customersupport" data-id="stse4loaz" target='_blank'>Customer Support</a>
457				
458					<a class="nav-link" href="/s/pages/affiliateprogram" data-id="083r0dd83" target='_blank'>Become an Affiliate</a>
459				
460					<a class="nav-link" href="/s/pages/algotrading" data-id="wwar5lb92" target='_blank'>Algo Trading</a>
461				
462					<a class="nav-link" href="/s/pages/t-shirts" data-id="2hb7viqpt" target='_blank'>T-Shirts</a>
463				
464			
465			
466			
467				<a href="/sessions#nav_bar" class="nav-link" amplitude-event="livesessions_tapped" amplitude-payload='{"source":"nav_bar"}' href="javascript:void(0);">Webinars</a>
468			
469			
470				<a href="/products#nav_bar" class="nav-link" amplitude-event="digital_products_tapped" amplitude-payload='{"source":"nav_bar"}' href="javascript:void(0);">Digital Products</a>
471			
472			
473				<a href="/memberships" class="nav-link" amplitude-event="membership_tapped" amplitude-payload='{"membership_id": "65005d1bf6192a7c0c9be9c9","source":"nav_bar"}' href="javascript:void(0);">Membership</a>
474			
475			
476				
477				
478					
479						
480						
481					
482		    			<a href="javascript:void(0);" class="btn btn-primary loginBtn">Login</a>
483				
484			
485		  </section>
486	</header>
487	
488	
489</div>
490      
491    
492
493    <div class="spectre">
494      <!-- Title -->
495      <div class="bg-product-title">
496        <div class="product-container" style='padding-top: 80px;'>
497          <h1 class="product-title">Digital Products</h1>
498        </div>
499      </div>
500
501      <!-- Digital Product List -->
502      <div class="product-container digital-product-main my-12">
503        <p class="list-heading">All digital products</p>
504        <div class="digital-product-grid" id="digitalProductsList"></div>
505        <div class="digital-product-grid list-loading">
506          
507            <div>
508              <div class="skeleton-box skeleton-cover"></div>
509              <div class="skeleton-box skeleton-title"></div>
510              <div class="skeleton-box skeleton-timings"></div>
511              <div class="skeleton-price">
512                <div class="skeleton-box"></div>
513                <div class="skeleton-box"></div>
514              </div>
515            </div>
516          
517            <div>
518              <div class="skeleton-box skeleton-cover"></div>
519              <div class="skeleton-box skeleton-title"></div>
520              <div class="skeleton-box skeleton-timings"></div>
521              <div class="skeleton-price">
522                <div class="skeleton-box"></div>
523                <div class="skeleton-box"></div>
524              </div>
525            </div>
526          
527            <div>
528              <div class="skeleton-box skeleton-cover"></div>
529              <div class="skeleton-box skeleton-title"></div>
530              <div class="skeleton-box skeleton-timings"></div>
531              <div class="skeleton-price">
532                <div class="skeleton-box"></div>
533                <div class="skeleton-box"></div>
534              </div>
535            </div>
536          
537            <div>
538              <div class="skeleton-box skeleton-cover"></div>
539              <div class="skeleton-box skeleton-title"></div>
540              <div class="skeleton-box skeleton-timings"></div>
541              <div class="skeleton-price">
542                <div class="skeleton-box"></div>
543                <div class="skeleton-box"></div>
544              </div>
545            </div>
546          
547            <div>
548              <div class="skeleton-box skeleton-cover"></div>
549              <div class="skeleton-box skeleton-title"></div>
550              <div class="skeleton-box skeleton-timings"></div>
551              <div class="skeleton-price">
552                <div class="skeleton-box"></div>
553                <div class="skeleton-box"></div>
554              </div>
555            </div>
556          
557            <div>
558              <div class="skeleton-box skeleton-cover"></div>
559              <div class="skeleton-box skeleton-title"></div>
560              <div class="skeleton-box skeleton-timings"></div>
561              <div class="skeleton-price">
562                <div class="skeleton-box"></div>
563                <div class="skeleton-box"></div>
564              </div>
565            </div>
566          
567            <div>
568              <div class="skeleton-box skeleton-cover"></div>
569              <div class="skeleton-box skeleton-title"></div>
570              <div class="skeleton-box skeleton-timings"></div>
571              <div class="skeleton-price">
572                <div class="skeleton-box"></div>
573                <div class="skeleton-box"></div>
574              </div>
575            </div>
576          
577            <div>
578              <div class="skeleton-box skeleton-cover"></div>
579              <div class="skeleton-box skeleton-title"></div>
580              <div class="skeleton-box skeleton-timings"></div>
581              <div class="skeleton-price">
582                <div class="skeleton-box"></div>
583                <div class="skeleton-box"></div>
584              </div>
585            </div>
586          
587        </div>
588      </div>
589    </div>
590
591    
592      
593        
594        
595          
596
597
598
599
600
601
602
603
604
605
606<div class="yogya-footer" style="display: flex !important;align-items:center;justify-content:center;clear:both;width: 100%;flex-direction: column; row-gap:30px; background: #F7F7F7; color: #232228; padding: 80px 10px;">
607	
608		
609		
610			
611				
612				
613					<a style="display: flex !important;align-items:center;justify-content:center;text-decoration: none !important;background: #000 !important;color: #fff !important;padding: 12px 20px !important;border-radius: 4px !important;font-size: 14px !important;font-weight: 600 !important;line-height: 20px !important;" rel="nofollow" href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=loss2profit&utm_source=gc&utm_device=website&gref=loss2profit" target="_blank"><img alt="Launch your Graphy" style="height: 20px; width: 11px; margin-right: 12px;" src="/resources/images/grvector.svg">Launch your Graphy</a>
614					<div class="text-center" style="font-size: 12px;font-weight: 400;line-height: 20px;letter-spacing: 0.015em;">100K+ creators trust <a href="https://graphy.com/products/create-and-sell-course-online?utm_campaign=loss2profit&utm_source=gc&utm_device=website&gref=loss2profit" target="_blank" rel="nofollow" style="color: #000 !important;text-decoration: underline !important;padding: 0 !important;font-size: inherit !important;">Graphy</a> to teach online</div>
615				
616			
617		
618	
619	<div style="display: flex !important;align-items:center;justify-content:center;column-gap: 12px;">
620		<a href="https://www.facebook.com/Loss2Profits" class="fbPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;
620display: flex;align-items:center;justify-content:center;"><i class="fa-brands fa-facebook-f" style="font-size: 11px"></i></a>
621		<a href="https://www.instagram.com/loss2profit/" class="instaPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;"><i class="fa-brands fa-instagram" style="font-size: 11px"></i></a> 
622		<a href="https://twitter.com/Loss2P" class="twitterPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;" ><span style="font-size: 11px">&#x1D54F;</span></a> 
623		<a href="https://www.linkedin.com/company/graphyapp" class="linkedinPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;" ><i class="fa-brands fa-linkedin-in" style="font-size: 11px"></i></a> 
624		<a href="https://www.youtube.com/c/GraphyUniversity" class="yPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;" ><i class="fa-brands fa-youtube" style="font-size: 11px"></i></a>
625		<a href="" class="telegramPage" target="_blank" style="text-decoration: none !important;color:#000 !important;font-size: inherit !important;height:24px;width:24px;border: 1px solid #E5E5E5;display: flex;align-items:center;justify-content:center;" ><i class="fa-brands fa-telegram" style="font-size: 11px"></i></a>
626	</div>
627	<div style="display: flex !important;align-items:center;justify-content:center;font-size: 14px;font-weight: 500;line-height: 20px;letter-spacing: 0.015em;column-gap: 12px;flex-wrap: wrap;">
628		<span>Loss2profit <i class="fa-regular fa-copyright"></i> 2026</span> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
629		<a href="/privacypolicy" style="color: #232228 !important; padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Privacy policy</a>  <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
630		<a href="/termsofuse" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Terms of use</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
631		<a href="/contactus" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Contact us</a> <i class="fa-solid fa-circle" style="font-size: 4px;"></i> 
632		<a href="/refundpolicy" style="color: #232228 !important;padding: 0 !important;font-size: inherit !important;text-decoration: underline !important">Refund policy</a>
633	</div>
634</div>
635
636
637
638
639
640        
641      
642    
643    
644
645
646
647
648
649
650
651 
652
653<script>
654	var created_date = `Created Date`;
655	var uname_msg = `Name`;
656	var email_msg = `Email`;
657	var has_web_token = `Has Web Token`;
658	var has_mobile_token = `Has Mobile Token`;
659	var actions_msg = `Actions`;
660	var delete_user = `Delete User`;
661	var create_target_audience = `Create Target Audience`;
662	var msg_now = `NOW`;
663	var msg_now_2 = `Now`;
664	var msg_scheduled = `SCHEDULED`;
665	var msg_recurring = `RECURRING`;
666	var msg_weeks = `weeks`;
667	var msg_months = `month(s)`;
668	var msg_days = `days`;
669	var notification_screen = `Notification Screen`;
670	var coursepackagelandingpage = `Course/Package landing page`;
671	var search_course_name = `Search by course/package name`;
672	var webinar_landing_page = `Webinar landing page`;
673	var search_by_webinar_name = `Search by webinar name`;
674	var categorypage = `Category Page`;
675	var custompage = `Custom Page`;
676	var blogpage = `Blog Page`;
677	var customlink = `Custom Link`;
678	var homepage_msg = `Homepage`;
679	var search_category = `Search category`;
680	var search_page_title = `Search by Page title`;
681	var search_blog_title = `Search by Blog title`;
682	var enter_the_link = `Enter the link`;
683	var membership_page = `Membership page`;
684	var pick_a_date = `Pick a date`;
685	var pick_first_push_date = `Pick a first push date`;
686	var every_msg = `Every`;
687	var starting_msg = `Starting`;
688	var msg_published = `Published`;
689	var msg_unpublished = `Unpublished`;
690	var msg_customize = `Customize`;
691	var msg_edit = `Edit`;
692	var msg_featured_image = `Featured Image`;
693	var msg_preview = `Preview`;
694	var msg_delete = `Delete`;
695	var msg_unpublish = `Unpublish`;
696	var msg_publish = `Publish  `;
697	var msg_question= `questions`;
698	var try_new_coding_assignment= `Try new coding assignment`;
699	var change_enrollment_date = `Change Enrollment Date`;
700	var change_expiry = `Change Expiry`;
701	var change_remanining_time = `Change Remaining Time`;
702	var remove_from_course = `Remove From Course`;
703	var reset_course_progress = `Reset Course Progress`;
704	var complete_report = `Complete Report`;
705	var msg_progress = `Progress`;
706	var timetaken = `Time Taken`;
707	var msg_user_details = `User Details`;
708	var graphy_platform_fees_note = `Amount after deducting Graphy platform fees. This does not include your payment gateway charges.`;
709	var final_price_note = `Final payable price by learners`;
710	var save_alert_message = `Save progress before moving forward.`;
711	var no_chapter_alert_message = `Please add at least one chapter in the course.`;
712	var download_msg = `Download`;
713	var revoke_msg = `Revoke`;
714	var yes_msg = `Yes`;
715	var no_msg = `No`;
716	var details_hover = `Details`;
717	var hide_notification = `Hide Notification`;
718	var notify_learners_hover = `Notify Learners`;
719	var search_course_package = `Search Courses to add in this package.`;
720	var bulk_delete = `Bulk Delete`;
721	var scheduled_msg = `Scheduled`;
722	var inprogress_msg = `In Progress`;
723	var completed_msg = `Completed`;
724	var yes_all_caps = `YES`;
725	var no_all_caps = `NO`;
726	var discount_msg = `Discount`;
727	var max_discount = `Max Discount`;
728	var min_cart = `Min Cart`;
729	var delete_bookmark = `Delete Bookmark`;
730	var view_question = `View question`;
731	var msg_free = `Free`;
732	var membership_expiration_note = `Membership will be canceled on next billing date.`;
733	var msg_active = `Active`;
734	var msg_inactive = `Inactive`;
735	var delete_hover = `Delete`;
736	var view_hover = `View`;
737	var coursewise = `Course Wise`;
738	var learner_wise = `Learner wise`;
739	var segment_wise = `Segment wise`;
740	var unregistered_msg = `Unregistered`;
741	var target_audience_deleted = `Target Audience Deleted`;
742	var courses_msg = `course(s)`;
743	var learners_msg = `learner(s)`;
744	var unregistered_learners = `Unregistered Learner`;
745	var all_learners = `All Learners`;
746	var course_wise_learners = `Course wise Learners`;
747	var segment_wise_learners = `Segment wise Learners`;
748	var with_token = `with token`;
749	var segments_msg = `segments`;
750	var add_users_msg = `Add Users`;
751	var approx_msg = `Approx`;
752	var revoke_cancellation_request = `Revoke Cancellation request.`;
753	var remove_scheduled_membership_cancellation = `Remove Scheduled Membership Cancellation`;
754	var schedule_to_stop_subscription = `Schedule to stop Subscription`;
755	var stop_subscription = `Stop subscription`;
756	var available_for_review_all_caps = `AVAILABLE FOR REVIEW`;
757	var reviewed_all_caps = `REVIEWED`;
758	var rejected_all_caps = `REJECTED`;
759	var preview_code = `Preview Code`;
760	var approve_msg = `Approve`;
761	var reject_msg = `Reject`;
762	var history_msg = `History`;
763	var message_hover= `Message`;
764	var remove_msg= `Remove`;
765	var enroll_msg= `Enroll`;
766	var change_validity= `Change Validity`;
767	var learners_selected= `learner(s) selected`;
768	var select_all_msg= `Select all`;
769	var do_you_want_to_delete_course= `Do you really want to delete this course?`;
770	var do_you_want_to_revoke_this_certificate= `Do you really want to revoke this certificate?`;
771	var do_you_want_to_revoke_entry= `Do you really want to revoke this entry?`;
772	var do_you_want_to_edit_enrollment_date= `Do you really want to edit enrollment date of all learners?`;
773	var do_you_want_to_edit_enrollment_date_for_selected= `Do you really want to edit enrollment date of selected learners?`;
774	var do_you_want_to_edit_course_validity= `Do you really want to edit course validity of all learners?`;
775	var do_you_want_to_edit_course_validity_for_selected= `Do you really want to edit course validity of selected learners?`;
776	var do_you_want_to_remove_selected= `Do you really want to remove selected learners?`;
777	var do_you_want_to_remove_all= `Do you really want to remove all learners?`;
778	var do_you_want_to_create_zip= `Do you really want to create zip for this course?`;
779	var do_you_want_to_deactivate= `Do you really want to deactivate?`;
780	var successfully_done_alert= `Successfully Done.`;
781	var please_select_atleast_1_learner= `Please select atleast 1 learner !`;
782	var on_msg= `On`;
783	var single_correct_option = `Single Correct Option`;
784	var multiple_correct_options = `Multiple Correct Options`;
785	var numerical_Fill_in_the_Blank = `Numerical/Fill in the Blank`;
786	var match_the_Column = `Match the Column`;
787	var subjective = `Subjective`;
788	var your_target_audience_appear= `Your target audience user(s) will appear here`;
789	var your_upcoming_campaign= `Your upcoming campaign will appear here`;
790	var status_msg= `Status`;
791	var stop_campaign= `Stop Campaign`;
792	var copy_campaign= `Copy Campaign`;
793	var platform_fee_tax = `platform fees including taxes`;
794	var pg_fees_taxes = `payment gateway fees including taxes`;
795	var msg_quiz = `Quiz`;
796	var msg_livetest = `Live test`;
797	var msg_heading = `Heading`;
798	var msg_text = `Text`;
799	var msg_form = `Form`;
800	var msg_live_class = `Live class`;
801	var msg_live_class_rec = `live class recording`;
802	var msg_code = `Code`;
803	var msg_assignment = `Assignment`;
804	var msg_added = `added`;
805	var msg_about = `About`;
806	var msg_year = `year`;
807	var msg_month = `Month`;
808	var msg_day = `day`;
809	//var msg_hour = `hh`;
810	//var msg_minute = `mm`;
811	//var msg_seconds = `seconds`;
812	var msg_month_l = `month`;
813	var msg_day_l = `day`;
814	var msg_hour_l = `hour`;
815	var msg_minute_l = `minute`;
816	var msg_second_l = `second`;
817	var mobile_number=`Mobile Number`;
818	var status_android =`Status (ANDROID)`;
819	var status_ios =`Status (IOS)`;
820	var delivery_time=`Delivery Time`;
821	var sure_unhide=`Are you sure you want to unhide this course ?`;
822	var become_a_partner=`Become a Partner`;
823	var failed_msg=`Failed`;
824	var sent_msg=`Sent`;
825	var pending_msg=`Pending`;
826	var running_msg=`Running`;
827	var add_pricing_plan = `Add pricing plan`;
828	var msg_add = `Add`;
829	var of_msg = `of`;
830	var items_msg = `items`
831	var ago_msg = `ago`
832	var items_msg = `items`;
833	
834	var january_msg = `January`;
835	var february_msg = `February`;
836	var march_msg = `March`;
837	var april_msg = `April`;
838	var may_msg = `May`;
839	var june_msg = `June`;
840	var july_msg = `July`;
841	var august_msg = `August`;
842	var september_msg = `September`;
843	var october_msg = `October`;
844	var november_msg = `November`;
845	var december_msg = `December`;
846	var sunday_msg = `Sunday`;
847	var monday_msg = `Monday`;
848	var tuesday_msg = `Tuesday`;
849	var wednesday_msg = `Wednesday`;
850	var thursday_msg = `Thursday`;
851	var friday_msg = `Friday`;
852	var saturday_msg = `Saturday`;
853	var at_msg = `at`;
854	var generate_outline = `Generate outline using AI`;
855	var it_take_min = `It may take a min.`;
856	var msg_ok = `OK`;
857	var edit_pricing_plan = `Edit pricing plan`;
858
859</script>
859
860
861
862
863
864
865
866
867<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-2.0.3.min.js"></script>
867
868
869<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/underscore-min.js?v=1.9.1"></script>
869
870
871<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.form.js"></script>
vendor: 1 bytes, line 871
871
872<script async src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.noty.packaged.min.js"></script>
vendor: 1 bytes, line 872
872
873<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-ui.min.js"></script>
vendor: 1 bytes, line 873
873
874<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.timeago.js"></script>
vendor: 1 bytes, line 874
874
875<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/js-webshim/minified/extras/modernizr-custom.js"></script>
vendor: 1 bytes, line 875
875
876<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery.datetimepicker.js"></script>
876
877
878
879
880
881
882
883
884
885<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/aes.js"></script>
vendor: 1 bytes, line 885
885
886<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/mode-ecb-min.js"></script>
vendor: 1 bytes, line 886
886
887<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/pad-nopadding-min.js"></script>
887
888
889<!-- 
889<script src="https://unpkg.com/@popperjs/core@2"></script>
vendor: 1 bytes, line 889
889
890<script src="https://unpkg.com/tippy.js@6"></script>
890 -->
891<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/2.3.3/umd/popper.js" integrity="sha512-jSMYzs1Iebw2Uew+Y9karoqkqTDEzbqkdttIkHJKh3auQ6aGV7p8b7A3Yo9k/LsMvUFqWt5AV66hfo1OwH4Jjg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 891
891
892<script src="https://cdnjs.cloudflare.com/ajax/libs/tippy.js/6.0.0/tippy-bundle.umd.js"></script>
892
893
894<script type="text/javascript">
895	var passwordPolicyRequired = false;
896	var checkoutV2 = true;
897	var primaryFieldPhoneEnabled = false;
898	var orgLanguageCode = "";
899	var SPEERESCDN = "https://d502jbuhuh9wk.cloudfront.net";
900</script>
900
901
902<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sutils_919c30bb7230024efec7b939763642a2.js"></script>
vendor: 1 bytes, line 902
902
903<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/utils/dateUtils_f53456b03f1287667a7b24fb63b367ce.js"></script>
vendor: 1 bytes, line 903
903
904<script type="text/javascript">
905	// Make org object globally available for dateUtils
906	window.org = window.org || {};
907	window.org.currencyCode = "false"=='true'?'USD':'INR';
908	var websiteV3Org = false;
909	var orgCreatedDate = {"$date":"2023-07-22T08:35:55.035Z"};
910</script>
910
911
912	
912<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/talk_b564486691065235006e186474078666.js"></script>
912
913
914
915
916
917
918<script type="text/javascript">
919	var trialExpired = "false";
920	var planCancelled = "false";
921	var isFreePlan = false;
922	
923</script>
vendor: 1 bytes, line 923
923
924<script type="text/javascript" id="dsf239df">
925	var ctx = "/s",
926		isFirstLogin = "", cjs = CryptoJS;
927		
928	var defaultCoreColor = "#5755d9", theme1CoreColor = "#572b7a", theme2CoreColor = "#3f51b5", theme3CoreColor = "#009051", 
929		theme4CoreColor = "#596439", theme5CoreColor = "#F0591D", theme6CoreColor = "#28a745", theme7CoreColor = "#1bbc9b", 
930		theme8CoreColor = "#f38f20", apkId = "6231373436231373432363038663465653864613523630386634656538646135", theme9CoreColor = "#c0af01", theme10CoreColor = "#e8d3a4",
931		webColor = defaultCoreColor,
932		CFCDN = "https://d502jbuhuh9wk.cloudfront.net", mobileNotification = true, webNotification = true, 
933		iosPlayVideo = false,
934		chromeDrmPlayback = false,
935		gaType = "";
936		
937	
938	
939	$("#dsf239df").remove();
940</script>
940
941
942
943
944
945
946
947
948	
949		<input type="hidden" id="orgCurrencyCode" value="INR" />
950	
951	
952
953
954
955	
955<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/detect-private-browsing.js"></script>
955
956	
956<script type="text/javascript">
957	detectPrivateMode(
958        function(is_private) {
959            if(typeof is_private !== 'undefined' && is_private) {
960            		$("input[name=privateMode]").val("private");
961            }
962        }
963    );
964	</script>
964
965
966
967
968	
969	
970		
970<script type="text/javascript"
971			src="https://d502jbuhuh9wk.cloudfront.net/resources/js/intlTelInput.min.js"></script>
971
972		
972<script type="text/javascript">
973		
974			var ipInfo = localStorage.getItem('ipInfo');
975	        if(!ipInfo) {
976	        	$.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
977	        		if(resp) {
978	        			var ipInfoStr = JSON.stringify(resp);
979	    				var ipInfoField = document.getElementById("ipInfo");
980	    				var countryCode = (resp.country) ? resp.country : "in";
981				        sessionStorage.setItem('countryCode', countryCode);
982						if('statusText' in resp) {
983	    					if((resp['statusText'] !== 'error') && ('ip' in resp)) {
984	    						localStorage.setItem('ipInfo', ipInfoStr);
985	    						if(ipInfoField) {
986	    							ipInfoField.value = ipInfoStr;
987	    		        		}
988							}
989						}
990			        	else if('ip' in resp) {
991			        		localStorage.setItem('ipInfo', ipInfoStr);
992			        		if(ipInfoField) {
993			        			ipInfoField.value = ipInfoStr;
994			        		}
995		        		}
996					}
997	        	})
998	        }
999		
1000		  $("#sphone").intlTelInput({
1001		      initialCountry: "auto",
1002		      geoIpLookup: function(callback) {
1003		    	 var scountryCode = sessionStorage.getItem('countryCode');
1004		    	 
1005		    	 if(scountryCode !== null) {
1006		    		 callback(scountryCode);
1007		    	 }else {
1008		    		 $.get("https://ipinfo.io", function() {}, "jsonp").always(function(resp) {
1009				          var countryCode = (resp && resp.country) ? resp.country : "in";
1010				          callback(countryCode);
1011				          sessionStorage.setItem('countryCode', countryCode);
1012				        });
1013		    	 }
1014		      },
1015		      preferredCountries: ["in", "us"],
1016		      separateDialCode: true,
1017		      utilsScript: "/resources/js/intlUtils.js"
1018		    });
1019		  	
1020		  </script>
1020
1021	
1022
1023
1024
1025<div class="spectre">
1026
1027	
1028	
1029	
1030
1031	
1031<script type="text/javascript">
1032		if(top != self) {
1033		    //iframe
1034		    $(".toast").remove();
1035		}
1036	</script>
1036
1037	
1038	
1039</div>
1040
1041	
1041<script type="text/javascript">
1042var Tawk_API=Tawk_API||{}, Tawk_LoadStart=new Date();
1043(function(){
1044var s1=document.createElement("script"),s0=document.getElementsByTagName("script")[0];
1045s1.async=true;
1046s1.src='https://embed.tawk.to/651e898b6fcfe87d54b6bddd/1hbvkij7e';
1047s1.charset='UTF-8';
1048s1.setAttribute('crossorigin','*');
1049s0.parentNode.insertBefore(s1,s0);
1050})();
1051</script>
1051
1052
1053<input type="hidden" id="orgCreditAlias"
1054	value="Loss2profit Coins" />
1055
1056
1057
1058	
1059
1060
1061<script>
1062
1063
1064
1065
1066	var orgTaxLabel = "Tax";
1067
1068
1069
1070	var sessionCountry = "";
1071
1072	$(document).ready(function() {		
1073		$("input[name='userMobileVerify']").change(function(data){
1074			var uniqueMobileSwitch = $('#uniqueMobileId');
1075			if(data.target.value==='true'){
1076				$('input[name=uniqueMobile]').prop('checked', true)
1077				$('#uniqueMobileLabelId').show();				
1078			}else{
1079				$('input[name=uniqueMobile]').prop('checked', false)
1080				$('#uniqueMobileLabelId').hide();
1081			}
1082		});
1083	});
1084	
1085	
1086		
1087		
1088			localStorage.removeItem('microserviceAuthToken');
1089		
1090   
1091   
1092   
1093	
1094	
1095			localStorage.removeItem('communityToken');
1096	
1097   
1098   
1099   
1100	
1101	
1102			localStorage.removeItem('chatRefreshToken');
1103	
1104
1105
1106
1107	
1108	
1109			localStorage.removeItem('refreshToken');
1110	
1111
1112	
1113</script>
1113
1114
1115
1116<!-- amplitude script start -->
1117
1118
1119
1120	
1120<script type="text/javascript">
1121	    window.localStorage.removeItem('loginAmplitudeEventSent');
1122	</script>
1122
1123
1124
1125<!-- amplitude script end -->
1126
1127 
1128    <div class="spectre">
1129        <div class="modal" id="membershipPopupHtml">
1130            <iframe id="microfe-popup-membership" src=""
1131                style="width: calc(100% + 10px); height: 100vh; border: none;"
1132                onload="$(this).parent().removeClass('loading');"></iframe>
1133        </div>
1134    </div>
1135    
1135<script>
1136        function openMembershipPopup(source){
1137            if(source==='banner'){
1138            	setGraphyCookie('SHOWMEMBERSHIPBANNER', 'true', 1);
1139            }
1140            if(source!=='private'){
1141            	location.href="/membership#"+source;
1142            }else{
1143				location.href="/private";
1144			}
1145        }
1146        function openMembershipPopup(source, id){
1147            if(source==='banner'){
1148            	setGraphyCookie('SHOWMEMBERSHIPBANNER', 'true', 1);
1149            }
1150            if(typeof id !== 'undefined' ){
1151            	location.href="/memberships/"+id+"#"+source;
1152            }else if(source!=='private'){
1153            	location.href="/membership#"+source;
1154			}else{
1155				location.href="/private";
1156			}
1157        }
1158        function closeMembershipPopup() {
1159            $("#membershipPopupHtml").removeClass("active");
1160            $("body").removeClass("overflowYDisable");
1161            window.location.hash="";
1162            setGraphyCookie('SHOWMEMBERSHIPBANNER', 'true', 1);
1163        }
1164        $("body").on('click', ".membershipBtn", function() {
1165        	openMembershipPopup('nav_bar');
1166        });
1167        
1168        if(window.location.hash==="#membership"){
1169        	openMembershipPopup("");
1170        }
1171        
1172    </script>
1172
1173    
1174    <!-- sending ipInfo data as form data when signing up -->
1175    
1175<script type="text/javascript">
1176		document.addEventListener("DOMContentLoaded", function(event) {
1177			const signupParamsField = document.getElementById("signupParams");
1178			if(signupParamsField && (window.signupParams)) {
1179				signupParamsField.value = JSON.stringify(window.signupParams);
1180			}
1181			const ipInfo = localStorage.getItem("ipInfo");
1182			const ipInfoField = document.getElementById("ipInfo");			
1183			if(ipInfo && ipInfoField) {
1184			   ipInfoField.value = ipInfo;
1185			}
1186		});
1187	</script>
1187
1188 
1189
1190 <div id="template-container"></div>
1191
1192    
1193
1194
1195
1196
1197<script>const customDomain = "www.loss2profit.com";</script>
1197
1198
1199   
1200  
1201
1202<script>
1203var disabledLocleVar='Disabled';
1204var enabledLocaleVar='Enabled';
1205var smsLocaleVar='SMS';
1206var webpushLocaleVar='Web Push';
1207var mobilepushLocaleVar='Mobile Push';
1208var invoicenumberLocaleVar='Invoice Number';
1209var productLocaleVar='Product';
1210var dateLocaleVar='Date';
1211var amountLocaleVar='Amount';
1212var detailsLocaleVar='Details';
1213var subscriptionPlanLocaleVar='Subscription Plan';
1214var addonsLocaleVar='Add Ons';
1215var showLocalVar='Show';
1216var hideLocaleVar='Hide';
1217</script>
1217 
1218<div class="spectre">
1219
1220	
1221	
1222		
1223		
1224		
1225			
1226				
1226<script>
1227					var isPopupLogin = true;
1228					var login = '';
1229					var message = '';
1230					function closeLoginPopup() {
1231						$("#loginFormHtml").removeClass("active");
1232						$("body").removeClass("overflowYDisable");
1233					}
1234				</script>
1234
1235				
1236				
1237				
1238					
1239				
1240
1241				<div class="modal" id="loginFormHtml">
1242					<iframe id="microfe-popup-login" src="/t/public/login" loading="lazy"
1243						style="width: calc(100% + 10px); height: 100vh; border: none;"
1244						onload="$(this).parent().removeClass('loading');"></iframe>
1245				</div>
1246			
1247		
1248	 
1249	
1250
1251	<div class="modal" id="cartHtml">
1252		<a href="javascript:void(0);" class="modal-overlay close"
1253			aria-label="Close"></a>
1254		<div class="modal-container" style="max-width: 800px;">
1255			<div class="modal-header">
1256				<a href="javascript:void(0);"
1257					class="close btn btn-clear float-right" aria-label="Close"></a>
1258				<div class="modal-title h5">
1259					<i class="fa-regular fa-shopping-cart"></i>
1260					Cart
1261					(<span class="cartCount"></span>
1262					Items
1263					)
1264				</div>
1265			</div>
1266			<div class="modal-body" style="max-height: 70vh;">
1267				<div class="content">
1268
1269					<div class="text-center msg loading"></div>
1270					<div class="text-center msg noItems" style="display: none;">
1271						There are no items in your cart<br/>
1272						<a class="btn btn-primary" href="/s/store"
1273							style="margin: 20px auto;">
1274							Add More
1275						</a>
1276					</div>
1277					<div class="items msg" style="display: none;">
1278						<div class="m-0 cartDiv">
1279							<table class="table cartTable">
1280								<thead>
1281									<tr>
1282										<th colspan="2">Item Details</th>
1283										<th class="text-right">Price</th>
1284										<th style="width: 50px;"></th>
1285									</tr>
1286								</thead>
1287								<tbody></tbody>
1288							</table>
1289						</div>
1290						<div class="suggestCart mt-2 bg-gray p-2" style="display: none;">
1291							<h6>You may also be interested in</h6>
1292							<div class="columns loading" id="cartRelatedCont"></div>
1293						</div>
1294					</div>
1295				</div>
1296			</div>
1297			<div class="modal-footer">
1298				<div class="msg items clearfix">
1299					
1300						
1301						
1302							<div class="float-left text-gray">
1303								Note: Promo Codes can be applied after checkout
1304							</div>
1305						
1306						
1307					
1308					<div class="float-right">
1309						Total Amount
1310						<span class="text-primary curr">₹<span
1311							class="totalAmount">0</span></span>
1312					</div>
1313				</div>
1314				<div class="msg items clearfix mt-2">
1315					<a class="btn float-left" href="/s/store" amplitude-event="add_more_course_checkout">
1316						Add More
1317					</a>
1318					
1319					
1320						
1321							
1322						
1323						
1324					
1325					<a class="btn btn-primary float-right" href="/s/checkout" amplitude-event="checkout_tapped_course_checkout" amplitude-payload='{"currency": "INR" }'>Checkout</a>
1326				</div>
1327			</div>
1328		</div>
1329	</div>
1330	<div class="modal" id="newCheckoutHtml" style="padding: 0; z-index: 10000;">
1331	<div id="newCheckoutLoader" class="loading loading-lg" style="position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5); z-index: 1000;display:none;"></div>
1332		<!-- <a href="javascript:void(0);" class="modal-overlay close"
1333			aria-label="Close"></a>
1334		<div class="modal-container" style=""> -->
1335		
1336
1337			<iframe onload="hideCheckoutLoader()" id="newCheckoutIframe" sandbox="allow-top-navigation allow-modals allow-popups allow-presentation allow-orientation-lock allow-pointer-lock allow-popups-to-escape-sandbox allow-top-navigation-by-user-activation allow-scripts allow-same-origin allow-forms" style = "width: calc(100% + 10px); height: 100%; border: none;"  src=""></iframe>
1338				
1339		<!-- </div> -->
1340	</div>
1341</div>
1342
1343<script type="text/template" id="cartItemTemplate">
1344		<tr data-id="<@- item.id @>" data-type="<@- item.type @>" data-title="<@- item.title @>" data-price="<@- item.price @>" data-coursecategory="<@- item.courseCategory @>">
1345			<@ var itemType = item.type; @>
1346			<td style="width:150px;">	
1347				<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item.id +"/"+ item.id +"_scaled_cover.jpg?v=" + coverVersion; if(isNaN(coverVersion)) { curl = showCourseDefaultCover(null, item.id)   } @>
1348				<img alt="<@- item.title @> cover" style="width:100%;max-height:100px;" class="img-fit-contain lazy"  onerror="showCourseDefaultCover(this, '<@- item.id @>')" 
1349						data-src='<@- curl @>' />
1350			</td>
1351			<td class="itemTitle"><@- item.title @><@ if(item.description !== undefined) { @><div class='text-gray variantDescription'><@ print(item.description) @></div><@ } @></td>
1352			<td class="text-right curr"><@ if(item.priceWithoutTax !== undefined && 'Tax' != '') { @><@ print(getDisplayAmount(item.priceWithoutTax)) @><br><small><@ print(getDisplayAmount(item.price)) @> incl. <@- item.gstRate @>% Tax</small><@ } else { @><@ print(getDisplayAmount(item.price)) @> <@ if(item.gstRate > 0 && 'Tax' != '') { print("<br><small>incl. " +item.gstRate+"% Tax</small>") } @><@ } @> 				
1353			<@ if(item.pgChargesLearnerPercent !==undefined && getDisplayAmount(item.pgChargesLearnerPercent).includes('₹')) {@> <br><small>Internet handling fees: <@print(getDisplayAmount(item.pgChargesLearnerPercent/100*item.price))@></small> <@} @>
1354			</td>
1355			<td>
1355<button class="btn btn-sm btn-error btn-action circle removeItemBtn" data-url="/s/cart/remove/<@- item.id @>"><i class="material-icons">clear</i></button></td>
1356		</tr>
1357	</script>
vendor: 1 bytes, line 1357
1357
1358<script type="text/template" id="cartcoursecard-template">
1359		<div class="column col-2 col-md-4 scourse <@- item['spayee:resource']['spayee:courseType'] @>" title="<@- item["spayee:resource"]["spayee:title"] @>">
1360			  <a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1361				<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id)   } @>
1362		              <img style="width: 100%;" alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl  @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1363					  <div class="card-footer" style="padding: 0.2rem;"><span class="ctitle text-ellipsis d-block" style="color:#2f4f4f;font-size:small;"><@- item["spayee:resource"]["spayee:title"] @></span></div>
1364		      </a>
1365		</div>
1366	</script>
vendor: 1 bytes, line 1366
1366
1367<script type="text/template" id="coursecard-template">
1368		<div class="column scourse <@- item['spayee:resource']['spayee:courseType'] @> hidePackageRibbon<@- item['spayee:resource']['spayee:hidePackageRibbon'] @>">
1369					
1370					
1371					
1372					<@ var itemCategory =  (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:'' @>
1373
1374					<a class="card courseDiscId" style="height:100%" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" data-id="<@- item._id@>" data-dcid="<@-item._id@>"
1375						amplitude-event="course_card_tapped_checkout"
1376						amplitude-payload='{"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('₹', '', item, '0.0', '', false)) @>","currency":"INR","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable('', item) @>","wallet_coins_enabled_on_school":"true","category":"<@- itemCategory @>"}'
1377					>
1378					
1379						
1380					
1381		              <div class="card-image relative <@ print(item["spayee:resource"]["spayee:availableForMembership"] ? 'includedInMembership' : '') @>">
1382						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id + "/" + item._id +"_scaled_cover.jpg?v=" + item["spayee:resource"]["spayee:coverVersion"]; if(isNaN(item["spayee:resource"]["spayee:coverVersion"])) { curl = showCourseDefaultCover(null, item._id);   } @>
1383						<div class="blurbg lazy" data-bg="<@- curl @>"></div>
1384		                <img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="lazy" data-src="<@- curl @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1385		              </div>
1386		              <div class="card-body text-ellipsis">
1387							<span class="ctitle" style="color:#2f4f4f;text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 2;"><@- item["spayee:resource"]["spayee:title"] @></span><br>
1388
1389							<@ if(item.rating !== undefined) { @>
1390								<span class="text-gray ratingIcons icon-text">
1391								<@ for(var i=1;i<6;i++) { @>
1392									<@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @>
1393									<i class="material-icons">star_border</i>								
1394								<@ } } @></span><small class="d-inline-block pl-1 text-dark"><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</small>
1395							<@ }else { @> <span class="text-gray ratingIcons icon-text">&nbsp;</span> <@ } @>
1396							<br>
1397							<span class="text-gray">
1398								<@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @>
1399									<@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses
1400								<@ }else { @>
1401									<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:publisher"]):"&nbsp;") @>
1402								<@ } @>
1403							</span>
1404					  </div>
1405		              <div class="card-footer">
1406						<@ print(getCourseDisplayPrice('₹', '', item, '0.0', '', true)) @>
1407						<span class="text-gray" style="font-size:small">
1408							<@ if(item['spayee:resource']['spayee:instalmentPlanId']!=null && item['spayee:resource']['spayee:instalmentPlanId'] !== "") { @>
1409								<@ print(getCourseInstalmentDisplayPrice('', item))@>
1410								<@ }else { @>
1411								<@ "&nbsp;" @>
1412							<@ } @>
1413						</span>
1414		              </div>
1415					<div style="padding: 0 0.8rem 0.8rem 0.8rem;">
1416						<span class="text-gray" style="font-size:small">
1417							<@ if(getMultiplePlanLabel('', item)>1) {@>
1418							<i class="material-icons text-primary" style="font-size:small">discount</i>
1419							<@ print(' Flexible pricing plans') } @>
1420						</span>
1421					</div>
1422		            </a>
1423		</div>
1424	</script>
1424
1425
1426<script type="text/template" id="blogcard-template">
1427		<div class="column col-3 col-md-6 col-sm-6 col-xs-12 scourse" style="margin-bottom: 20px;">
1428					<a class="card" title="<@- item['spayee:resource']['spayee:title'] @>" href="/blog/<@- item['spayee:resource']['spayee:url'] @>">
1429		              <div class="card-image relative">
1430						<@ if(item['spayee:resource']['spayee:cover'] !== undefined && item['spayee:resource']['spayee:cover']) { @>
1431							<div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg<@ print(item["spayee:resource"]["spayee:coverVersion"] !== undefined?"?v="+item["spayee:resource"]["spayee:coverVersion"]:"") @>"></div>
1432							<img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src="https://d502jbuhuh9wk.cloudfront.net/articles/<@- item._id @>/cover.jpg?v=<@- item['spayee:resource']['spayee:coverVersion'] @>" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1433						<@ }else { @>
1434							<div class="blurbg lazy" data-bg="https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png"></div>
1435							<img alt="<@- item['spayee:resource']['spayee:title'] @> cover" class="img-responsive centered relative lazy" style="max-height: 100%;" data-src='https://d502jbuhuh9wk.cloudfront.net/resources/images/defaultCourseCover.png'>
1436						<@ } @>
1437		              </div>
1438		              <div class="card-body text-ellipsis"><span style="color:#2f4f4f;"><@- item["spayee:resource"]["spayee:title"] @></span></div>
1439		              <div class="card-footer" style="padding: 0.4rem;">
1440						<span class="text-gray float-left text-ellipsis" style="max-width: calc(100% - 110px);"><@ print(item["spayee:resource"]["spayee:author"]!==undefined?htmlEntities(item["spayee:resource"]["spayee:author"]):"") @></span>
1441						<@ var pdate = item.createdDate.$date; if(item['spayee:resource']['spayee:publishDate'] !== undefined && item['spayee:resource']['spayee:publishDate'] !== '') { pdate = item['spayee:resource']['spayee:publishDate']; } @>
1442						<time class="float-right text-warning"><@ print(formatDate(new Date(pdate))) @></time>
1443		              </div>
1444		            </a>
1445		</div>
1446	</script>
1446
1447	
1448	
1448<script type="text/javascript">
1449	  var uuid = function (a) {
1450		  // https://github.com/amplitude/Amplitude-Javascript/blob/master/src/uuid.js
1451		  return a // if the placeholder was passed, return
1452		    ? // a random number from 0 to 15
1453		      (
1454		        a ^ // unless b is 8,
1455		        ((Math.random() * // in which case
1456		          16) >> // a random number from
1457		          (a / 4))
1458		      ) // 8 to 11
1459		        .toString(16) // in hexadecimal
1460		    : // or otherwise a concatenated string:
1461		      (
1462		        [1e7] + // 10000000 +
1463		        -1e3 + // -1000 +
1464		        -4e3 + // -4000 +
1465		        -8e3 + // -80000000 +
1466		        -1e11
1467		      ) // -100000000000,
1468		        .replace(
1469		          // replacing
1470		          /[018]/g, // zeroes, ones, and eights with
1471		          uuid, // random hex digits
1472		        );
1473	  };
1474		
1475	  (function(e,t){var n=e.amplitude||{_q:[],_iq:{}};var r=t.createElement("script")
1476	  ;r.type="text/javascript"
1477	  ;r.integrity="sha384-tzcaaCH5+KXD4sGaDozev6oElQhsVfbJvdi3//c2YvbY02LrNlbpGdt3Wq4rWonS"
1478	  ;r.crossOrigin="anonymous";r.async=true
1479	  ;r.src="https://cdn.amplitude.com/libs/amplitude-8.5.0-min.gz.js"
1480	  ;r.onload=function(){if(!e.amplitude.runQueuedFunctions){
1481	  console.log("[Amplitude] Error: could not load SDK")}}
1482	  ;var i=t.getElementsByTagName("script")[0];i.parentNode.insertBefore(r,i)
1483	  ;function s(e,t){e.prototype[t]=function(){
1484	  this._q.push([t].concat(Array.prototype.slice.call(arguments,0)));return this}}
1485	  var o=function(){this._q=[];return this}
1486	  ;var a=["add","append","clearAll","prepend","set","setOnce","unset","preInsert","postInsert","remove"]
1487	  ;for(var c=0;c<a.length;c++){s(o,a[c])}n.Identify=o;var u=function(){this._q=[]
1488	  ;return this}
1489	  ;var l=["setProductId","setQuantity","setPrice","setRevenueType","setEventProperties"]
1490	  ;for(var p=0;p<l.length;p++){s(u,l[p])}n.Revenue=u
1491	  ;var d=["init","logEvent","logRevenue","setUserId","setUserProperties","setOptOut","setVersionName","setDomain","setDeviceId","enableTracking","setGlobalUserProperties","identify","clearUserProperties","setGroup","logRevenueV2","regenerateDeviceId","groupIdentify","onInit","logEventWithTimestamp","logEventWithGroups","setSessionId","resetSessionId"]
1492	  ;function v(e){function t(t){e[t]=function(){
1493	  e._q.push([t].concat(Array.prototype.slice.call(arguments,0)))}}
1494	  for(var n=0;n<d.length;n++){t(d[n])}}v(n);n.getInstance=function(e){
1495	  e=(!e||e.length===0?"$default_instance":e).toLowerCase()
1496	  ;if(!Object.prototype.hasOwnProperty.call(n._iq,e)){n._iq[e]={_q:[]};v(n._iq[e])
1497	  }return n._iq[e]};e.amplitude=n})(window,document);
1498	
1499	  amplitude.getInstance().init('e56929a4c3888c23e97a7e70e34ccf6c');
1500	  amplitude.getInstance().setUserId(null);
1501	  //amplitude.getInstance().regenerateDeviceId();
1502
1503    var userProperties = {
1504			custom_domain: "www.loss2profit.com",
1505			org_id: "64bb94ebe4b0539686c35283",
1506			default_google_login_enabled: 'true' == 'true',
1507			personalized_google_login_enabled: '' != '' && 'true' == 'false' ? true : false,
1508			facebook_login_enabled: '' == 'true' ? true : false
1509	  };
1510	  amplitude.getInstance().setUserProperties(userProperties);
1511    
1512/*     var deviceId = uuid();
1513	  amplitude.getInstance().setDeviceId(deviceId);
1514	  sessionStorage.setItem('amplitudeDeviceId', deviceId); */
1515	</script>
1515
1516	
1517	
1517<script type="text/javascript">
1518		window.signupParams = {source: "store", platform: "web", sourceId: null};
1519		var showGraphyFomoFlag = '';
1520		
1521			showGraphyFomoFlag = '64bb94ebe4b0539686c35283';
1522		
1523	</script>
1523
1524
1525	
1525<script type="text/javascript">
1526		function hideCheckoutLoader() {
1527			if(typeof window.hideLoader =="function") {
1528				window.hideLoader();
1529			}
1530		}
1531		var checkoutRedirectGuestUsers = 'signup';
1532	</script>
1532
1533
1534
1535
1536
1537
1538
1539<script type="text/template" id="spcoursecard-2-template">
1540		<div class="column third">
1541			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1542			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1543			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1544			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1545			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
1546			<p class="size-16"><@ if(item.rating !== undefined) { @>
1547								<span class="text-gray ratingIcons icon-text">
1548								<@ for(var i=1;i<6;i++) { @>
1549									<@ if(item.rating.avgRating >= i) { @><i class="material-icons text-primary">star</i><@ }else if(item.rating.avgRating > i-1 && item.rating.avgRating < i) { @><i class="material-icons text-primary">star_half</i><@ }else { @>
1550									<i class="material-icons">star_border</i>								
1551								<@ } } @></span><span><@ print(formatRating(item['rating']['avgRating'])) @> (<@- item['rating']['total'] @> ratings)</span>
1552			<@ }else { @> <span class="text-gray ratingIcons icon-text">&nbsp;</span> <@ } @></p>
1553			<p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
1554				<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
1555			
1556			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', true)) @></span><br></p>
1557			<div style="margin:1em 0"></div>
1558			</a>
1559		</div>
1560	</script>
vendor: 1 bytes, line 1560
1560
1561<script type="text/template" id="spcoursecard-1-template">
1562		<div class="column third">
1563			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1564			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1565			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1566			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1567			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
1568			<div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
1569
1570			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', true)) @></span><br></p>
1571			<div style="margin:1em 0"></div>
1572			</a>
1573		</div>
1574	</script>
vendor: 1 bytes, line 1574
1574
1575<script type="text/template" id="spcoursecard-3-template">
1576		<div class="column third">
1577			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1578			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1579			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1580			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1581			<h4 class="size-21 text-ellipsis" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><@- item['spayee:resource']['spayee:title'] @></h4>
1582			<div class="size-16 text-ellipsis" style="max-height: 3rem;"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
1583			<p class="size-16 text-ellipsis"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
1584				<@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
1585			<p class="size-18"><span style="color: rgb(21, 101, 192);"><@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', true)) @></span><br></p>
1586			<div style="margin:1em 0"></div>
1587			</a>
1588		</div>
1589	</script>
1589
1590	
1591<script type="text/template" id="spcoursecard-4-template">
1592		<div class="column third text-center" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;">
1593			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1594			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1595			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1596			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1597			</a>
1598			<h3 class="size-18 text-center" style="text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;"><b class="text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h3>
1599			<div class="discription"><@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @></div>
1600			<p class="size-18 price text-primary"><@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', true)) @></p>
1601			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now<br></a>
1602		</div>
1603	</script>
1603	
1604<script type="text/template" id="spcoursecard-5-template">
1605		<div class="column third" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 0px;">
1606			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1607			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>			
1608			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1609			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1610			</a>
1611			<h3 class="sub-heading"><b class="size-18 text-primary"><@- item['spayee:resource']['spayee:title'] @></b></h4>
1612			<p class="size-16 description text-primary"> <@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @><@ print(item["courses-count"]!==undefined?item["courses-count"]:"0") @> Courses<@ }else { @>
1613				Instructor : <@ print(item["spayee:resource"]["spayee:publisher"]!==undefined?item["spayee:resource"]["spayee:publisher"]:"&nbsp;") @><@ } @></p>
1614			<@if(item.rating){@>
1615				<p class="size-16 description text-primary">Rating: &nbsp;
1616 					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
1617						<@if(item.rating){@> 
1618							<@if(item.rating.avgRating){@> 
1619								<@ if(item.rating.avgRating >= ratingsSize) {@> 
1620									<i class="icon ion-android-star text-primary"></i>&nbsp; 
1621								<@ } else if(item.rating.avgRating > ratingsSize-1 && item.rating.avgRating < ratingsSize) { @> 
1622									<i class="icon ion-android-star-half text-primary"></i>&nbsp; 
1623								<@ } @>
1624							<@}@>		
1625		  				<@}@>
1626					<@}@>
1627				</p>
1628			<@}@>
1629		
1630			<p class="size-18 price text-primary">Price : <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', true)) @></p>
1631			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>Buy now</a>
1632		</div>
1633	</script>
1633
1634	
1635<script type="text/template" id="spcoursecard-6-template">
1636		<div class="column third">
1637			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1638			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1639				
1640				
1641				<@  var itemCategory =  (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:''@>
1642				
1643				<@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) { @> 
1644				   <a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="course_card_tapped_checkout" amplitude-payload='{"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>","currency":"INR","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- true @>","category":"<@- itemCategory @>"}'>
1645				<@ } else { @>
1646 				   <a title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="course_card_tapped_checkout" amplitude-payload='{"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>","currency":"INR","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- true @>","category":"<@- itemCategory @>"}'>  
1647                <@ } @>
1648			
1649			
1650			<img class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')" style="border-radius: 20px; margin-bottom: 0px; width: 100%; height: 190px;object-fit:cover;">
1651			</a>
1652			<div style="font-weight: 800; line-height: 1.1; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;" class="text-ellipsis"><@- item['spayee:resource']['spayee:title'] @></div>
1653			<p class="size-16 description text-primary"><@ if(item['spayee:resource']['spayee:courseType'] === 'package') { @> Courses<@ } @></p>
1654			<p class="size-18 price text-primary"><@ if (item['spayee:resource']['spayee:availableForMarket']==="true" ) @> <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @></p>
1655			<@ if (item.isMembershipPage != undefined && !item.isMembershipPage) { @>
1656            
1657				
1658					<@ var itemCategory =  (item['spayee:resource']['spayee:filter1'] !== undefined)? item['spayee:resource']['spayee:filter1'][0]:'' @>
1659					<@ if(isMultiplePlansAvailable(sessionCountry, item) === false) { @>
1660						<a title="<@- item['spayee:resource']['spayee:title'] @>" href="/single-checkout/<@- item['_id'] @>?pid=<@ print(getCoursePid(sessionCountry, item)) @>" class="buy-btn btn btn-primary" amplitude-event="course_buy_now_tapped_checkout" amplitude-payload='{"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>","currency":"INR","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- true @>","category":"<@- itemCategory @>"}' style="border: none;padding: 16px 61px; font-size: 16px; letter-spacing: 0.08px; line-height: 16px; font-weight: 600; text-decoration: none; display: block; text-align: center;">
1661							Buy now
1662						</a>
1663					<@ } else { @>
1664
1665						<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="course_buy_now_tapped_checkout" amplitude-payload='{"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "package_id" : "course_id" @>": "<@- item._id @>","is_a_package":"<@-  item['spayee:resource']['spayee:courseType']== 'package' ? "true" : "false" @>","price_on_card":"<@- removeCurrencySymbol(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>","currency":"INR","multiple_pricing_plans_exist":"<@- isMultiplePlansAvailable(sessionCountry, item) @>","wallet_coins_enabled_on_school":"<@- true @>","category":"<@- itemCategory @>"}' style="border: none;padding: 16px 61px; font-size: 16px; letter-spacing: 0.08px; line-height: 16px; font-weight: 600; text-decoration: none; display: block; text-align: center;">
1666							Buy now
1667						</a>
1668					<@ } @>
1669				
1670				
1671			
1672			<@ } @>
1673		</div>
1674	</script>
1674			
1675	
1676	
1677<script type="text/template" id="spcoursecard-7-template">
1678		<div class="column third course-mob-block">
1679			<div class="inner-course-block">
1680			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1681			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>			
1682			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>"  amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none;">
1683			<img class="lazy" data-style="width: 100%; height: auto;" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')" >
1684			</a>
1685			<div class="course-price-block">
1686			<p class="text-ellipsis" title="<@- item['spayee:resource']['spayee:title'] @>" style="font-size: 18px; font-weight: 700; line-height: 1.3rem; width: 100%; margin-top: 0px; margin-bottom: 0px; min-height: 47px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;">
1687				<@- item['spayee:resource']['spayee:title'] @>
1688			</p>
1689			<p class="text-primary" style="word-break: break-all; font-size: 14px; font-weight: 500; line-height: 1.5; margin-top: 16px; margin-bottom: 0px;">
1690					<@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1691			</p>
1692			</div>
1693			<a title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" class="buy-btn btn btn-primary" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; border: none; cursor: pointer; border-radius: 4px; padding: 13px 28px; line-height: 1.5; font-weight: 600; font-size: 14px; letter-spacing: 0.15px; margin-top: 28px;">
1694				Enroll now
1695			</a>
1696			</div>
1697		</div>
1698</script>
1698		
1699	
1700<script type="text/template" id="spcoursecard-8-template">
1701	 <div class="row clearfix" style="margin-bottom: 24px; margin-top: 14px;">
1702			<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id);   } @>
1703			<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1704                    <div class="column third center" style="padding-left: 0px; padding-right: 0px;">
1705                        <img
1706                            class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover"  onerror="showCourseDefaultCover(this, '<@- item._id @>')"
1707                            style="margin-top: 0px; margin-bottom: 0px;"
1708                        />
1709                    </div>
1710                    <div class="column two-third course-block-mob" style="display: flex; flex-direction: column; justify-content: center;">
1711                        <div class="course-price-block">	
1712							<h3 style="color: rgb(255, 255, 255); font-size: 18px; font-weight: 700; line-height: 1.1; margin-bottom: 0px; margin-top: 0px; text-wrap: balance;overflow: hidden;display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 1;">
1713								<@- item['spayee:resource']['spayee:title'] @>
1714							</h3>
1715                        	<div class="sortDescription8">
1716                            	<@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"") @>
1717                        	</div>
1718						</div>
1719
1720                        <a class="buy-btn btn btn-primary" title="<@- item['spayee:resource']['spayee:title'] @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" style="width: fit-content; text-align: left; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; background-color: rgb(231, 215, 73); color: rgb(0, 0, 0);border-radius: 0px;padding: 16px 48px;line-height: 16px;font-weight: 700;font-size: 16px;letter-spacing: 0.08px;border-image: initial;">
1721                            Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1722                        </a>
1723					</div>
1724        </div>
1725	</script>
1725	
1726
1727
1728	<!-- vegas TEMPLATE 9 NEW-->
1729	
1729<script type="text/template" id="spcoursecard-9-template" >
1730    <div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1731        <div style="border:1px solid #D7D7D7; border-radius:24px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1732            <@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1733            <@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1734            
1735            <a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1736                <img style="height:200px; width:100%; object-fit:fill; margin:0px 0px; border-top-left-radius:24px; border-top-right-radius:24px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1737            </a>
1738            
1739			<div style="padding:10px 20px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1740				<h3 
1741					class="size-18 text-left" 
1742					title="<@- item['spayee:resource']['spayee:title'] @>" 
1743					style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1744				>
1745					<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1746				</h3>
1747			
1748				<div 
1749					class="size-16 text-ellipsis course-card-text" 
1750					title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1751					style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1752				>
1753				<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1754				</div>
1755			</div>
1756			
1757                <div style="margin-top: auto; margin-left:10px;">
1758                    <a style="background-color:#FB5607 !important; border:0px !important; border-radius:62px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1759                       class="buy-btn btn btn-primary" 
1760                       title="<@- item['spayee:resource']['spayee:title'] @>" 
1761                       amplitude-event="buy_now_tapped_course_checkout" 
1762                       amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1763                       href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1764                        Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1765                    </a>
1766                </div>
1767            </div>
1768        </div>
1769    </div>
1770</script>
1770
1771
1772			<!--Blaze Course nEW tEMPLATE 10-->
1773			
1773<script type="text/template" id="spcoursecard-10-template">
1774							<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 10px;margin-top:10px; text-align:left;">
1775								<div style="height: 100%; display: flex; flex-direction: column;">
1776									<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1777									<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1778									
1779									<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' style="text-decoration: none; color:black; font-size:24px;">
1780										<img style="height:320px;  object-fit:cover; margin:0px 0px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1781									</a>
1782									
1783									<div style=" flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1784										<h3 
1785			    class="size-18 text-left" 
1786			    style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: white;"
1787			>
1788			    <b title="<@= item['spayee:resource']['spayee:title'] @>" style="color:white;">
1789			        <@- item['spayee:resource']['spayee:title'] @>
1790			    </b>
1791			</h3>
1792										
1793										<div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;color:white;">
1794											<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1795										</div>
1796										
1797										<div style="margin-top: auto;">
1798											<a style="width:100% !important;font-weight:600 !important; letter-spacing:0px; color:black !important; background-color:#D8FD46 !important; border:0px !important; border-radius:0px !important; padding:20px 36px !important; width: fit-content; display: inline-block; text-decoration: none; transition: all 0.16s ease 0s; cursor: pointer; padding: 16px 28px; line-height: 16px; font-weight: 700; font-size: 16px; letter-spacing: 0px; border-image: initial;" 
1799											class="buy-btn btn btn-primary" 
1800											title="<@- item['spayee:resource']['spayee:title'] @>" 
1801											amplitude-event="buy_now_tapped_course_checkout" 
1802											amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1803											href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1804											 Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1805										 </a>
1806			
1807										</div>
1808									</div>
1809								</div>
1810							</div>
1811						</script>
1811
1812			
1813			<!--Olive Course 11-->
1814			
1814<script type="text/template" id="spcoursecard-11-template" >
1815				<@ 
1816				// Calculate colors based on index
1817				var colorIndex = (typeof window.courseCardColorIndex === 'undefined') ? 0 : window.courseCardColorIndex;
1818				var colors = [
1819					{ bg: '#FFA46B', btnBg: '#361500' },  // Orange card → Dark brown button
1820					{ bg: '#87A1F6', btnBg: '#001A71' },  // Blue card → Dark blue button
1821					{ bg: '#B073DC', btnBg: '#34005A' }  // Purple card → Dark brown button (default)
1822				];
1823				var currentColor = colors[colorIndex % 3];
1824				window.courseCardColorIndex = colorIndex + 1;
1825				@>
1826				
1827				<div class="column third text-center course-card course-card-fixed-height" style="padding: 0 15px; margin-bottom: 30px;">
1828					<div class="course-card-wrapper" style="background-color: <@- currentColor.bg @>; height: 100%; border-radius: 32px; overflow: hidden;">
1829						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; 
1830						if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1831						
1832						<a class="course-image-link" style="display: block; padding: 16px;padding-bottom:0px" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1833							<img style="height:320px; width:100%; object-fit:cover; border-radius: 32px;" class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1834						</a>
1835						
1836						<div style="padding: 20px;" class="course-card-content">
1837							<h3 style="font-size:24px; text-transform:uppercase; color: black; margin: 0 0 15px 0; text-align: left;white-space:nowrap; overflow: hidden; text-overflow: ellipsis;width: 100%;display:block;">
1838								<b title="<@= item['spayee:resource']['spayee:title'] @>"><@- item['spayee:resource']['spayee:title'] @></b>
1839							</h3>
1840							<div title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" class="size-16 text-ellipsis course-card-text" style="max-height: 3rem; min-height: 3rem; color:black; margin-bottom: 12px;text-align: left;">
1841								<@ print(item['spayee:resource']['spayee:shortDescription']!==undefined?item['spayee:resource']['spayee:shortDescription']:"&nbsp;") @>
1842							</div>
1843							<a class="enroll-button" 
1844							   style="display: block; 
1845									  background-color: <@- currentColor.btnBg @>; 
1846									  color: white !important; 
1847									  padding: 12px; 
1848									  text-align: center; 
1849									  font-weight: 600; 
1850									  text-decoration: none;
1851									  border-radius: 32px;"
1852							   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1853								Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1854							</a>
1855						</div>
1856					</div>
1857				</div>
1858				
1859			</script>
1859
1860			
1861
1862			<!-- Nebula Course 12-->
1863			
1863<script type="text/template" id="spcoursecard-12-template" >
1864				<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1865					<div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1866						<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1867						<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1868						
1869						<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1870							<img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1871						</a>
1872						
1873						<div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1874							<h3 
1875								class="size-18 text-left" 
1876								title="<@- item['spayee:resource']['spayee:title'] @>" 
1877								style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1878							>
1879								<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1880							</h3>
1881						
1882							<div 
1883								class="size-16 text-ellipsis course-card-text" 
1884								title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1885								style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1886							>
1887							<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1888							</div>
1889						</div>
1890							
1891							<div style="margin-top: auto; margin-left:0px;">
1892								<a style="background-color:#6715FF !important;  border-radius:12px !important; padding:10px 16px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1893								   class="buy-btn btn btn-primary" 
1894								   title="<@- item['spayee:resource']['spayee:title'] @>" 
1895								   amplitude-event="buy_now_tapped_course_checkout" 
1896								   amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1897								   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1898									Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1899								</a>
1900							</div>
1901						</div>
1902					</div>
1903				</div>
1904			</script>
1904
1905
1906
1907
1908		<!--Dusk Course-13-->
1909		
1909<script type="text/template" id="spcoursecard-13-template" >
1910			<div class="column third text-center course-card-fixed-height" style="padding-left: 1rem; padding-right: 1rem; margin-bottom: 2rem; text-align:left;">
1911				<div style="border:0px; border-radius:16px; padding-bottom: 20px; height: 100%; display: flex; flex-direction: column;">
1912					<@ var curl = "https://d502jbuhuh9wk.cloudfront.net/courses/"+ item._id +"/"+ item._id +"_scaled_cover.jpg?v=" + item['spayee:resource']['spayee:coverVersion']; if(isNaN(item['spayee:resource']['spayee:coverVersion'])) { curl = showCourseDefaultCover(null, item._id); } @>
1913					<@ var planName = getCoursePlanName(sessionCountry, item), price = getCoursePrice(sessionCountry, item, '0.0', ''), isPackage = item['spayee:resource']['spayee.courseType'] == 'package', courseId = isPackage ? '' : item._id, packageId = isPackage ? item._id : ''; @>
1914					
1915					<a style="color:black; text-align:left;" title="<@- item['spayee:resource']['spayee:title'] @>" href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>" amplitude-event="buy_now_tapped_course_checkout" amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}'>
1916						<img style="height:240px; width:100%; object-fit:fill; margin:0px 0px; border-radius:16px; " class="lazy" data-src="<@- curl @>" alt="<@- item['spayee:resource']['spayee:title'] @> cover" onerror="showCourseDefaultCover(this, '<@- item._id @>')">
1917					</a>
1918					
1919					<div style="padding:10px 0px; flex-grow: 1; display: flex; flex-direction: column;" class="course-card-content">
1920						<h3 
1921							class="size-18 text-left" 
1922							title="<@- item['spayee:resource']['spayee:title'] @>" 
1923							style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; display: block; margin-bottom: 12px; color: black;"
1924						>
1925							<b style="color:black;"><@- item['spayee:resource']['spayee:title'] @></b>
1926						</h3>
1927					
1928						<div 
1929							class="size-16 text-ellipsis course-card-text" 
1930							title="<@= (item['spayee:resource']['spayee:shortDescription'] || ' ').replace(/<[^>]*>/g, '') @>" 
1931							style="max-height: 3rem; min-height: 3rem; margin-bottom: 12px; overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1;"
1932						>
1933						<@= (item['spayee:resource']['spayee:shortDescription'] || '').replace(/<[^>]*>/g, '') @>
1934						</div>
1935					</div>
1936					
1937				   
1938						
1939						<div style="margin-top: auto; margin-left:0px;">
1940							<a style="background-color:#282400 !important;border:0px ;  border-radius:41px !important; padding:10px 24px !important; width: fit-content; display: inline-block; text-decoration: none; color: white; padding: 12px 24px; font-weight: 600 !important; font-size: 16px;letter-spacing:0px; !important" 
1941							   class="buy-btn btn btn-primary" 
1942							   title="<@- item['spayee:resource']['spayee:title'] @>" 
1943							   amplitude-event="buy_now_tapped_course_checkout" 
1944							   amplitude-payload='{"plan_name": "<@- planName @>", "price": <@- price @>, "currency": "INR", "course_id": "<@- courseId @>", "is_package": <@- isPackage @>, "package_id": "<@- packageId @>"}' 
1945							   href="<@ print(getCourseLandingPageUrl(item._id, item['spayee:resource']['spayee:courseUrl'])) @>">
1946								Enroll for <@ print(getCourseDisplayPrice('₹', sessionCountry, item, '0.0', '', false)) @>
1947							</a>
1948						</div>
1949					</div>
1950				</div>
1951			</div>
1952		</script>
1952
1953			
1954			
1955
1956
1957
1958
1959
1960
1961
1962<!-- Curriculum 1st Template -->
1963<script type="text/template" id="coursecurr-1-template">
1964       <table class="table courseContents">
1965        <thead>
1966            <tr>
1967                <td style="width: 50px;"></td>
1968                <td style="width: 50px;"></td>
1969                <td></td>
1970            </tr>
1971        </thead>
1972        <tbody>
1973            <@ $.each(item, function(index, value) { @>
1974            <tr>
1975                <td><i class="material-icons courseItemIcon" data-type="<@- value.type @>"></i></td>
1976                <td colspan="2">
1977                    <@- value.title @> 
1978					<@ if(value.type == 'aiheading') { @>
1979						<small>(coming soon)</small><@ } @>
1980					<@ if(assetInfo && value.type == 'video' && value.duration !== undefined && value.duration > 0) { @>
1981						<small>(<@ print(Math.floor(value.duration)) @>:00)</small><@ } @>
1982					<@ if(assetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @>
1983						<small>(<@- value.pages @> pages)</small>
1984					<@ } @>
1985                </td>
1986            </tr>
1987            <@ if(value.items != undefined) { @> <@ $.each(value['items'], function(index1, value1) { @>
1988            <tr>
1989                <td></td>
1990                <td><i class="material-icons courseItemIcon" data-type="<@- value1.type @>"></i></td>
1991                <td>
1992                    <@- value1.title @>
1993					<@ if(assetInfo && value.type == 'video' && value1.duration !== undefined && value1.duration > 0) { @><small>(<@ print(Math.floor(value1.duration)) @>:00)</small><@ } @>
1994					<@ if(assetInfo && value1.type =='pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
1995					<@ if(value1.type =='aiheading') { @><small>(coming soon)</small><@ } @>
1996                </td>
1997            </tr>
1998            <@ }); @> <@ } @> <@ }); @>
1999        </tbody>
2000    </table>
2001</script>
2001
2002
2003
2004<!-- Curriculum 2nd Template -->
2005<script type="text/template" id="coursecurr-2-template">
2006    <div class="column full curriculum2"  spellcheck="false">
2007      <div class="course-content1" >
2008    	<p style="font-size: 15px; font-weight: 400; margin-top: 0px;">
2009    		<@if(summary.modules && summary.modules>0){@>
2010    			<@print(summary.modules)@> Modules &nbsp;<i class="icon ion-android-folder-open"></i>&nbsp; &nbsp; <@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@>|<@}@>&nbsp; &nbsp;
2011    		<@}@>
2012    		<@if(summary.sessions && summary.sessions>0 && curriculumAssetInfo){@>
2013    			<@print(summary.sessions)@> Sessions <i class="icon ion-android-laptop"></i>&nbsp; &nbsp; <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>|<@}@>&nbsp; &nbsp;
2014    		<@}@>
2015    		<@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2016    			<@print(millisecondsToHHMMSSStr(summary.durations))@> Total Time&nbsp;&nbsp;<i class="icon ion-ios-clock-outline"></i>
2017    		<@}@>
2018    	</p>
2019      </div>
2020
2021
2022    	<@ $.each(item, function(index, value) { @>
2023    	<div class="course-course-content-box" >
2024    		<div class="course-content-blue-title <@if(value && value.contents){@> bg-primary <@}else if($('#'+id).closest('div.is-section').hasClass("is-bg-grey")){@>bg-white<@}else{@>is-bg-grey<@}@>" >
2025              <span class="title-icon">
2026    			<span class="material-icons <@if(value && !value.contents){@> text-primary <@}@>"><@ print(getCourseAssetIcon(value.type))@></span>
2027    		  </span>
2028    			<div class="titl5b" >
2029    				<h3 class="<@if(value && !value.contents){@> text-primary <@}@>">
2030    					<@print(value.title)@> <@ if(curriculumAssetInfo && value.type == 'pdf' && value.pages !== undefined && value.pages > 0) { @><small>(<@- value.pages @> pages)</small><@ } @>
2031    					<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2032    							<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value.id)@>" class="previewBtn"><span class="<@if(value && !value.contents){@> text-primary <@}@>">Preview</span></a>
2033    					<@}@>
2034    				</h3>
2035    		  		<p class="<@if(value && !value.contents){@> text-primary <@}@>"><@if(value && value.contents && curriculumAssetInfo){@>
2036    						Sessions: <@print(value.contents)@>
2037    					<@}@>
2038    					<@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@>|<@}@>
2039    						Time: <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2040    					<@}@>
2041    				<@if(value && value.contents>0){@><span class="material-icons">expand_more</span><@}@>  </p>
2042    			</div>
2043    		</div>
2044    <@if(value && value.items){@>
2045    	<@ $.each(value['items'], function(index1, value1) { @>
2046    		<div class="course-content-body <@if(index==0){@>showing<@ }@>" >
2047    				<div class="desc1 " >
2048    				<div class="is-box-9" >
2049    					<div class="boxa1" >
2050    						<span class="material-icons text-primary"><@ print(getCourseAssetIcon(value1.type))@></span>
2051    						<p> <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
2052							<@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
2053							</p>
2054		
2055    					</div>
2056    				</div>
2057    				<div class="is-box-1" >
2058    					<div class="boxa2" >
2059    						<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2060    								<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>#<@print(value1.id)@>">
2061										<@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2062									</a>
2063    						<@}@>
2064    					</div>
2065    				</div>
2066    				<div class="is-box-2" >
2067    					<div class="boxa2" >
2068    						<p class="duration"><@if(value1.duration && curriculumAssetInfo){@><@print(millisecondsToHHMMSSStr(value1.duration))@><@}@></p>
2069    					</div>
2070    				</div>
2071    				</div>
2072    		</div>
2073    	<@ }); @>
2074    <@}@>
2075    	</div>
2076      <@ }); @>
2077
2078    </div>
2079</script>
2079
2080
2081
2082
2083
2084
2085<!-- Curriculum 3rd Template -->
2086<script type="text/template" id="coursecurr-3-template">
2087     <div class="column full" spellcheck="false" data-gramm="false">
2088        <div class="accordion-syllabus" >
2089			<@ $.each(item, function(index, value) { @>
2090            <div class="accordion-syllabus-item">
2091                <header class="accordion-syllabus-header">
2092                    <h4 class="accordion-syllabus-header__title">
2093                        <span class="text-primary">
2094							<@if(index<9){@>
2095									0<@print(index+1)@>
2096								<@ } else {@> 
2097									<@print(index+1)@> 
2098							<@ } @>
2099						</span>
2100                        <p><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2101							<@if(value && value.items){@>
2102								<@ print(value.items.length) @> attachment(s) 
2103							<@}@>
2104						<@if(value.moduleDurations && curriculumAssetInfo){@>
2105							<@if(value && value.contents){@> • <@}@>
2106    						<@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2107    					<@}@>
2108						</span></p>
2109						
2110                    </h4>
2111                    <div class="accordion-syllabus-header__info">
2112                        <p class="text-primary hide-sm">
2113							<@if(value && value.items){@>
2114								<@ print(value.items.length) @> attachment(s) 
2115							<@}@>
2116						<@if(value.moduleDurations && curriculumAssetInfo){@>
2117							<@if(value && value.contents){@> • <@}@>
2118    						<@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2119    					<@}@>
2120						</p>
2121						<@if(value && value.items){@>
2122                        <div class="accordion-syllabus-header__icon text-primary">
2123                            <i class="fa fa-angle-left" aria-hidden="true"></i>
2124                        </div>
2125						<@}@>
2126                    </div>
2127                </header>
2128				<@if(value && value.items){@>
2129                <div class="accordion-content" style="">
2130                    <div class="accordian-content-block">
2131                        <ul class="accordian-list">
2132							<@ $.each(value['items'], function(index1, value1) { @>
2133                            <li class="accordian-list__item">
2134                                <div class="accordian-content-card">
2135                                    <div class="accordian-content-card__info">
2136                                        <div class="accordian-content-card__ico">
2137											<@ if(value1.type == 'code'){ @>
2138												<img src="/resources/images/CodeIcon.svg">
2139											<@ } else { @>
2140												<span class="material-icons text-primary">
2141													<@ print(getCourseAssetIcon(value1.type))@>
2142												</span>
2143											<@ } @>
2144										</div>
2145                                        <div class="accordian-content-card__title">
2146											<@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
2147											<@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
2148										</div>
2149                                    </div>
2150                                    <div class="accordian-content-card__link">
2151										<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2152    										<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn">
2153												<span class="text-primary">
2154													<@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @><span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span>
2155												</span>
2156											</a>
2157    									<@}@>
2158                                    </div>
2159                                </div>
2160                            </li>
2161                    		<@ }); @>
2162                        </ul>
2163                    </div>
2164                </div>
2165			<@ } @>
2166            </div>
2167           <@ }); @>   
2168        </div>
2169    </div>
2170</script>
2170
2171
2172
2173
2174<!-- Curriculum 4th Template -->
2175<script type="text/template" id="coursecurr-4-template">
2176   <div class="column full coursecurr4">
2177	 <@ $.each(item, function(index, value) { @>
2178	 <div class="accordion-syllabus-item">
2179	 <header class="accordion-syllabus-header" >
2180		 <h4 class="accordion-syllabus-header__title">
2181			 <span>
2182				 <@if(index<9){@>0<@print(index+1)@><@ } else {@> <@print(index+1)@> <@ } @>
2183			 </span>
2184			 <div class="accordion-syllabus-header__title-block" > 
2185				 <p style="font-size: 20px; font-weight: 700;">
2186					 <@print(value.title)@>
2187				 </p>
2188				 <p class="text-primary" style="font-weight: 500; font-size: 14px; line-height: 150%; margin-top: 10px; ">
2189					 <@if(value && value.type == 'aiheading'){@>
2190						 (coming soon)
2191					 <@}@>
2192					 <@if(value && value.items){@>
2193						 <@ print(value.items.length) @> attachment(s) 
2194					 <@}@>
2195					 <@if(value.moduleDurations && curriculumAssetInfo){@><@if(value && value.contents){@> • <@}@>
2196						 <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2197					 <@}@>
2198				 </p>
2199			 </div>
2200		 </h4>
2201		 <@if(value && value.items){@>
2202		 <div class="accordion-syllabus-header__info" >
2203			 <div class="accordion-syllabus-header__icon" >
2204				 <i class="fa fa-angle-left" aria-hidden="true"></i>
2205			 </div>
2206		 </div>
2207		 <@ } @>
2208	 </header>
2209	 <@if(value && value.items){@>
2210	 <div class="accordion-content"  style="">
2211		 <div class="accordian-content-block" >
2212			 <ul class="accordian-list">
2213				 <@ $.each(value['items'], function(index1, value1) { @>
2214				 <li class="accordian-list__item">
2215					 <div class="accordian-content-card" >
2216						 <div class="accordian-content-card__info" >
2217							 <div class="accordian-content-card__ico" >
2218								 <@ if(value1.type == 'code'){ @>
2219									 <img src="/resources/images/CodeIcon.svg">
2220								 <@ } else { @>
2221									 <span class="material-icons text-primary">
2222										 <@ print(getCourseAssetIcon(value1.type))@>262
2223									 </span>
2224								 <@ } @>
2225							 </div>
2226							 <div class="accordian-content-card__title" >
2227								 <@print(value1.title)@> <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @><small>(<@- value1.pages @> pages)</small><@ } @>
2228								 <@ if(value1.type == 'aiheading') { @><small>(coming soon)</small><@ } @>
2229							 </div>
2230						 </div>
2231						 <div class="accordian-content-card__link" >
2232							 <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2233							 <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,"-"))@>-<@- courseId @>#<@print(value1.id)@>" class="previewBtn">
2234								 <span class="text-primary">
2235									 <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @> <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right"></i></span>
2236								 </span>
2237							 </a>
2238							 <@ } @>
2239						 </div>
2240					 </div>
2241				 </li>
2242				 <@ }); @>
2243			 </ul>
2244		 </div>
2245	 </div>
2246	 <@ } @>
2247   </div>
2248  <@ }); @>  
2249 </div>
2250 </script>
2250
2251
2252 <!-- vegas curriculum-5-->
2253 
2253<script>
2254	// Simple responsive positioning
2255	function updatePosition() {
2256		const element = document.getElementById('totalTimeElement');
2257		if(element){
2258		if (window.innerWidth > 768) {
2259			element.style.position = 'absolute';
2260			element.style.top = "5px";
2261			element.style.right = '122px';
2262		} else {
2263			element.style.position = 'static';
2264			element.style.margin = '0 0';
2265		}
2266		}
2267	}
2268	
2269	// Run on load and resize
2270	window.addEventListener('load', updatePosition);
2271	window.addEventListener('resize', updatePosition);
2272	</script>
2272
2273 
2273<script type="text/template" id="coursecurr-5-template">
2274	<div class="total-time" id="totalTimeElement" style="
2275    font-size: 18px;
2276    font-weight: 600;
2277    color: #FB5607;
2278    padding: 8px 12px;
2279    border-radius: 4px;
2280    white-space: nowrap;">
2281     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2282        <@print(millisecondsToHHMMSSStr(summary.durations))@>
2283    <@}@>
2284</div>
2285
2286<div class="accordion-syllabus" style="max-width:1000px !important">
2287    <@ $.each(item, function(index, value) { @>
2288    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2289        <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:0px;box-shadow:none;padding:0.5rem !important">
2290            <h4 class="accordion-syllabus-header__title">
2291                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
2292                    <@if(index < 9) {@>  
2293                        Week <@print(index + 1)@>:  
2294                    <@ } else {@>  
2295                        Week <@print(index + 1)@>:
2296                    <@ } @>  
2297                </span>
2298                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2299                    <@if(value && value.items){@>
2300                        <@ print(value.items.length) @> attachment(s) 
2301                    <@} else {@>
2302                        1 attachment(s)
2303                    <@}@>
2304                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2305						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2306					<@}@>
2307                </span></p>
2308            </h4>
2309			
2310            <div class="accordion-syllabus-header__info">
2311                <p class="text-primary hide-sm" style="color:#FB5607 !important;">
2312                    <@if(value && value.items){@>
2313                        <@ print(value.items.length) @> attachment(s) 
2314                    <@} else {@>
2315                        1 attachment(s)
2316                    <@}@>
2317                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2318						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2319					<@}@>
2320                </p>
2321                <div class="accordion-syllabus-header__icon text-primary">
2322                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#FB5607;"></i>
2323                </div>
2324            </div>
2325        </header>
2326        <div class="accordion-content" style="filter:none;">
2327            <div class="accordian-content-block" style="background:#F5F5F5 !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
2328                <ul class="accordian-list">
2329                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2330                    <@ if(value['items'] && value['items'].length > 0) { @>
2331                        <@ $.each(value['items'], function(index1, value1) { @>
2332                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2333							<style>
2334								@media (max-width: 768px) {
2335								  .accordian-content-card {
2336									flex-direction: column !important;
2337									align-items: stretch !important;
2338								  }
2339							  
2340								  .accordian-content-card__top {
2341									flex-direction: row !important;
2342									justify-content: space-between !important;
2343									align-items: center !important;
2344									width: 100% !important;
2345								  }
2346							  
2347								  .accordian-content-card__title {
2348									flex: 1 !important;
2349									margin: 0 10px !important;
2350									white-space: nowrap;
2351									overflow: hidden;
2352									text-overflow: ellipsis;
2353								  }
2354							  
2355								  .accordian-content-card__bottom {
2356									flex-direction: row !important;
2357									justify-content: space-between !important;
2358									align-items: center !important;
2359									width: 100% !important;
2360									margin-top: 6px !important;
2361								  }
2362							  
2363								  .accordian-content-card__link {
2364									flex: 1 !important;
2365									min-width: 0 !important;
2366									text-align: left !important;
2367								  }
2368							  
2369								  .accordian-content-card__time {
2370									flex-shrink: 0 !important;
2371									text-align: right !important;
2372								  }
2373								}
2374							  </style>
2375							  
2376							  <div class="accordian-content-card"
2377     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2378
2379							  
2380								<!-- Row 1: Icon + Title + Collapse Icon -->
2381								<div class="accordian-content-card__top"
2382									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2383							  
2384								  <!-- Icon -->
2385								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2386									<@ if(value1.type == 'code'){ @>
2387									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2388									<@ } else { @>
2389									  <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;">
2390										<@ print(getCourseAssetIcon(value1.type))@>
2391									  </span>
2392									<@ } @>
2393								  </div>
2394							  
2395								  <!-- Title -->
2396								  <div class="accordian-content-card__title"
2397									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2398									<@print(value1.title)@>
2399								  </div>
2400							  
2401								  <!-- Collapse Icon (optional) -->
2402								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2403									<!-- Example placeholder, add real icon if needed -->
2404									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2405								  </div>
2406								</div>
2407							  
2408								<!-- Row 2: Preview Button and Time -->
2409								<div class="accordian-content-card__bottom"
2410									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2411							  
2412								  <!-- Preview Button -->
2413								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2414									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2415									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
2416										 class="previewBtn"
2417										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2418										<span class="text-primary" style="color:#FB5607;">
2419										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2420										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span>
2421										</span>
2422									  </a>
2423									<@}@>
2424								  </div>
2425							  
2426								  <!-- Time -->
2427								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2428									<p class="text-primary course-asset-time"
2429									   style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;">
2430									  <@ if(value1.duration && value1.duration > 0) { @>
2431										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
2432									  <@ } else { @>
2433										--
2434									  <@ } @>
2435									</p>
2436								  </div>
2437							  
2438								</div>
2439							  </div>
2440							  
2441							
2442                        </li>
2443                        <@ }); @>
2444                    <@ } else { @>
2445                        <li class="accordian-list__item" style="padding:0px 0px !important;">
2446							<div class="accordian-content-card"
2447							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2448					   
2449						   <!-- Row 1: Icon + Title + Collapse Icon -->
2450						   <div class="accordian-content-card__top"
2451								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2452						 
2453							   <!-- Icon -->
2454							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2455								   <@ if(value.type == 'code'){ @>
2456									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2457								   <@ } else { @>
2458									   <span class="material-icons text-primary" style="color:#FB5607; font-size: 24px;">
2459										   <@ print(getCourseAssetIcon(value.type))@>
2460									   </span>
2461								   <@ } @>
2462							   </div>
2463						 
2464							   <!-- Title -->
2465							   <div class="accordian-content-card__title"
2466									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2467								   <@print(value.title)@>
2468							   </div>
2469						 
2470							   <!-- Collapse Icon (optional) -->
2471							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2472								   <!-- Example placeholder, add real icon if needed -->
2473								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2474							   </div>
2475						   </div>
2476						 
2477						   <!-- Row 2: Preview Button and Time -->
2478						   <div class="accordian-content-card__bottom"
2479								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2480						 
2481							   <!-- Preview Button -->
2482							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2483								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2484									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2485										  class="previewBtn"
2486										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #FB5607; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2487										   <span class="text-primary" style="color:#FB5607;">
2488											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2489											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#FB5607;"></i></span>
2490										   </span>
2491									   </a>
2492								   <@}@>
2493							   </div>
2494						 
2495							   <!-- Time -->
2496							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2497								   <p class="text-primary course-asset-time"
2498									  style="font-size: 14px; font-weight: 500; color:#FB5607 !important; margin: 0;">
2499									   <@ if(value.duration && value.duration > 0) { @>
2500										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
2501									   <@ } else { @>
2502										   --
2503									   <@ } @>
2504								   </p>
2505							   </div>
2506						   </div>
2507					   </div>
2508                        </li>
2509                    <@ } @>
2510                </ul>
2511            
2512                <@ if(itemsCount > 5) { @>
2513                    <div style="text-align: center; margin-top: 10px;">
2514						<button style="background-color: #FB5607; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2515						onclick="
2516							var parentAccordion = this.closest('.accordion-content');
2517							parentAccordion.style.maxHeight = 'none';
2518							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2519							this.style.display = 'none';
2520						">
2521                            View All
2522                        </button>
2523                    </div>
2524                <@ } @>
2525            </div>
2526        </div>
2527    </div>
2528    <@ }); @>
2529    <@ if(item.length > 5) { @>
2530        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
2531            <button style="background-color: #FB5607; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
2532                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
2533                View All Sessions
2534            </button>
2535        </div>
2536    <@ } @>
2537</div>
2538	</div>
2539</script>
2539
2540
2541
2542<!--Blaze-Curriculum-6-->
2543<script type="text/template" id="coursecurr-6-template">
2544    <div class="column full" spellcheck="false" data-gramm="false">
2545        <div class="total-time" id="totalTimeElement" style="
2546            font-size: 18px;
2547            font-weight: 600;
2548            color: #D8FD46;
2549            padding: 8px 12px;
2550            border-radius: 4px;
2551            white-space: nowrap;
2552            background: #232323;
2553            margin-bottom: 20px;">
2554            <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2555                <@print(millisecondsToHHMMSSStr(summary.durations))@>
2556            <@}@>
2557        </div>
2558
2559        <div class="accordion-syllabus">
2560            <@ $.each(item, function(index, value) { @>
2561            <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2562                <header class="accordion-syllabus-header" style="background:#232323 !important; border-radius:0px;box-shadow:none;padding:20px 20px !important">
2563                    <h4 class="accordion-syllabus-header__title">
2564                        <span class="text-primary" style="font-size:18px ; font-weight:600; color:white;"> 
2565                            <@if(index < 9) {@>  
2566								Week <@print(index + 1)@>:  
2567							<@ } else {@>  
2568								Week <@print(index + 1)@>:
2569							<@ } @>  
2570                        </span>
2571                        <p style="font-size:18px ; font-weight:600;color:white;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;color:#D8FD46 !important;">
2572							<@if(value && value.items){@>
2573								<@ print(value.items.length) @> attachment(s) 
2574							<@} else {@>
2575								1 attachment(s)
2576							<@}@>
2577							<@if(value.moduleDurations && curriculumAssetInfo){@>
2578								• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2579							<@}@>
2580						</span></p>
2581                    </h4>
2582                    <div class="accordion-syllabus-header__info">
2583                        <p class="text-primary hide-sm" style="color:#D8FD46 !important;">
2584                            <@if(value && value.items){@>
2585                                <@ print(value.items.length) @> attachment(s) 
2586                            <@} else {@>
2587                                1 attachment(s)
2588                            <@}@>
2589							<@if(value.moduleDurations && curriculumAssetInfo){@>
2590								• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2591							<@}@>
2592                        </p>
2593                        <div class="accordion-syllabus-header__icon text-primary">
2594                            <i class="fa fa-angle-left" aria-hidden="true" style="color:#D8FD46;"></i>
2595                        </div>
2596                    </div>
2597                </header>
2598                <div class="accordion-content" style="filter:none;background:#181818;">
2599                    <div class="accordian-content-block" style="box-shadow:none;padding:16px 20px !important;background:transparent !important;">
2600                        <ul class="accordian-list">
2601                            <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2602                            <@ if(value['items'] && value['items'].length > 0) { @>
2603                                <@ $.each(value['items'], function(index1, value1) { @>
2604                                <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2605                                    <style>
2606                                        @media (max-width: 768px) {
2607                                            .accordian-content-card {
2608                                                flex-direction: column !important;
2609                                                align-items: stretch !important;
2610                                            }
2611                                        
2612                                            .accordian-content-card__top {
2613                                                flex-direction: row !important;
2614                                                justify-content: space-between !important;
2615                                                align-items: center !important;
2616                                                width: 100% !important;
2617                                            }
2618                                        
2619                                            .accordian-content-card__title {
2620                                                flex: 1 !important;
2621                                                margin: 0 10px !important;
2622                                                white-space: nowrap;
2623                                                overflow: hidden;
2624                                                text-overflow: ellipsis;
2625                                            }
2626                                        
2627                                            .accordian-content-card__bottom {
2628                                                flex-direction: row !important;
2629                                                justify-content: space-between !important;
2630                                                align-items: center !important;
2631                                                width: 100% !important;
2632                                                margin-top: 6px !important;
2633                                            }
2634                                        
2635                                            .accordian-content-card__link {
2636                                                flex: 1 !important;
2637                                                min-width: 0 !important;
2638                                                text-align: left !important;
2639                                            }
2640                                        
2641                                            .accordian-content-card__time {
2642                                                flex-shrink: 0 !important;
2643                                                text-align: right !important;
2644                                            }
2645                                        }
2646                                    </style>
2647                                    
2648                                    <div class="accordian-content-card"
2649                                        style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; ">
2650                                    
2651                                        <!-- Row 1: Icon + Title + Collapse Icon -->
2652                                        <div class="accordian-content-card__top"
2653                                            style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2654                                        
2655                                            <!-- Icon -->
2656                                            <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2657                                                <@ if(value1.type == 'code'){ @>
2658                                                    <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);">
2659                                                <@ } else { @>
2660                                                    <span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;">
2661                                                        <@ print(getCourseAssetIcon(value1.type))@>
2662                                                    </span>
2663                                                <@ } @>
2664                                            </div>
2665                                        
2666                                            <!-- Title -->
2667                                            <div class="accordian-content-card__title"
2668                                                style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2669                                                <@print(value1.title)@>
2670                                                <!-- <@ if(curriculumAssetInfo && value1.type == 'pdf' && value1.pages !== undefined && value1.pages > 0) { @>
2671                                                    <small style="color: #999;">(<@- value1.pages @> pages)</small>
2672                                                <@ } @>
2673                                                <@ if(value1.type == 'aiheading') { @>
2674                                                    <small style="color: #999;">(coming soon)</small>
2675                                                <@ } @> -->
2676                                            </div>
2677                                        
2678                                            <!-- Collapse Icon -->
2679                                            <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2680                                            </div>
2681                                        </div>
2682                                    
2683                                        <!-- Row 2: Preview Button and Time -->
2684                                        <div class="accordian-content-card__bottom"
2685                                            style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2686                                        
2687                                            <!-- Preview Button -->
2688                                            <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2689                                                <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
2690                                                <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
2691                                                    class="previewBtn"
2692                                                    style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2693                                                    <span class="text-primary" style="color:#D8FD46;">
2694                                                        <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2695                                                        <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span>
2696                                                    </span>
2697                                                </a>
2698                                                <@}@>
2699                                            </div>
2700                                        
2701                                            <!-- Time -->
2702                                            <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2703                                                <p class="text-primary course-asset-time"
2704                                                    style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;">
2705                                                    <@ if(value1.duration && value1.duration > 0) { @>
2706                                                        <@ print(millisecondsToHHMMSSStr(value1.duration)) @>
2707                                                    <@ } else { @>
2708                                                        --
2709                                                    <@ } @>
2710                                                </p>
2711                                            </div>
2712                                        </div>
2713                                    </div>
2714                                </li>
2715                                <@ }); @>
2716                            <@ } else { @>
2717								<li class="accordian-list__item" style="padding:0px 0px !important;">
2718									<div class="accordian-content-card"
2719										style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; ">
2720								   
2721										<!-- Row 1: Icon + Title + Collapse Icon -->
2722										<div class="accordian-content-card__top"
2723											style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2724									  
2725											<!-- Icon -->
2726											<div class="accordian-content-card__ico" style="flex-shrink: 0;">
2727												<@ if(value.type == 'code'){ @>
2728													<img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px; filter: invert(1);">
2729												<@ } else { @>
2730													<span class="material-icons text-primary" style="color:#D8FD46; font-size: 24px;">
2731														<@ print(getCourseAssetIcon(value.type))@>
2732													</span>
2733												<@ } @>
2734											</div>
2735									  
2736											<!-- Title -->
2737											<div class="accordian-content-card__title"
2738												style="font-weight: 400; font-size: 14px; color: white; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2739												<@print(value.title)@>
2740											</div>
2741									  
2742											<!-- Collapse Icon (optional) -->
2743											<div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2744												<!-- Example placeholder, add real icon if needed -->
2745												<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2746											</div>
2747										</div>
2748									  
2749										<!-- Row 2: Preview Button and Time -->
2750										<div class="accordian-content-card__bottom"
2751											style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2752									  
2753											<!-- Preview Button -->
2754											<div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
2755												<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
2756													<a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
2757													   class="previewBtn"
2758													   style="font-size: 14px; font-weight: 500; text-decoration: none; color: #D8FD46 !important; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
2759														<span class="text-primary" style="color:#D8FD46;">
2760															<@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
2761															<span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#D8FD46;"></i></span>
2762														</span>
2763													</a>
2764												<@}@>
2765											</div>
2766									  
2767											<!-- Time -->
2768											<div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
2769												<p class="text-primary course-asset-time"
2770												   style="font-size: 14px; font-weight: 500; color:#D8FD46 !important; margin: 0;">
2771													<@ if(value.duration && value.duration > 0) { @>
2772														<@ print(millisecondsToHHMMSSStr(value.duration)) @>
2773													<@ } else { @>
2774														--
2775													<@ } @>
2776												</p>
2777											</div>
2778										</div>
2779									</div>
2780								</li>
2781                            <@ } @>
2782                        </ul>
2783                    
2784                        <@ if(itemsCount > 5) { @>
2785                            <div style="text-align: center; margin-top: 10px;">
2786                                <button style="background-color: #D8FD46; color: black; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 
2787                                   onclick="
2788							var parentAccordion = this.closest('.accordion-content');
2789							parentAccordion.style.maxHeight = 'none';
2790							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
2791							this.style.display = 'none';
2792						">
2793                                    View All
2794                                </button>
2795                            </div>
2796                        <@ } @>
2797                    </div>
2798                </div>
2799            </div>
2800            <@ }); @>
2801            <@ if(item.length > 5) { @>
2802                <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
2803                    <button style="background-color: #D8FD46; color: black; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 0px;" 
2804                        onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
2805                        View All Sessions
2806                    </button>
2807                </div>
2808            <@ } @>
2809        </div>
2810    </div>
2811</script>
2811
2812
2813<script>
2814    // Simple responsive positioning (same as Vegas)
2815    function updatePosition() {
2816        const element = document.getElementById('totalTimeElement');
2817        if(element){
2818            if (window.innerWidth > 768) {
2819                element.style.position = 'absolute';
2820                element.style.top = "5px";
2821                element.style.right = '122px';
2822            } else {
2823                element.style.position = 'static';
2824                element.style.margin = '0 0';
2825            }
2826        }
2827    }
2828    
2829    // Run on load and resize
2830    window.addEventListener('load', updatePosition);
2831    window.addEventListener('resize', updatePosition);
2832</script>
2832
2833
2834
2835
2836
2837<!--Nebula Curriculum 7-->
2838
2839
2840<script>
2841	// Simple responsive positioning
2842	function updatePosition() {
2843		const element = document.getElementById('totalTimeElement');
2844		if(element){
2845		if (window.innerWidth > 768) {
2846			element.style.position = 'absolute';
2847			element.style.top = "5px";
2848			element.style.right = '122px';
2849		} else {
2850			element.style.position = 'static';
2851			element.style.margin = '0 0';
2852		}
2853		}
2854	}
2855	
2856	// Run on load and resize
2857	window.addEventListener('load', updatePosition);
2858	window.addEventListener('resize', updatePosition);
2859	</script>
2859
2860 
2860<script type="text/template" id="coursecurr-7-template">
2861	<div class="total-time" id="totalTimeElement" style="
2862    font-size: 18px;
2863    font-weight: 600;
2864    color: #6715FF;
2865    padding: 8px 12px;
2866    border-radius: 4px;
2867    white-space: nowrap;">
2868     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
2869        <@print(millisecondsToHHMMSSStr(summary.durations))@>
2870    <@}@>
2871</div>
2872
2873<div class="accordion-syllabus" style="max-width:1000px !important">
2874    <@ $.each(item, function(index, value) { @>
2875    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
2876        <header class="accordion-syllabus-header" style="background:#F1ECFB !important; border-radius16px;box-shadow:none;padding:20px !important">
2877            <h4 class="accordion-syllabus-header__title">
2878                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
2879                    <@if(index < 9) {@>  
2880                        Week <@print(index + 1)@>:  
2881                    <@ } else {@>  
2882                        Week <@print(index + 1)@>:
2883                    <@ } @>  
2884                </span>
2885                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
2886                    <@if(value && value.items){@>
2887                        <@ print(value.items.length) @> attachment(s) 
2888                    <@} else {@>
2889                        1 attachment(s)
2890                    <@}@>
2891                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2892						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2893					<@}@>
2894                </span></p>
2895            </h4>
2896			
2897            <div class="accordion-syllabus-header__info">
2898                <p class="text-primary hide-sm" style="color:#6715FF !important;">
2899                    <@if(value && value.items){@>
2900                        <@ print(value.items.length) @> attachment(s) 
2901                    <@} else {@>
2902                        1 attachment(s)
2903                    <@}@>
2904                    <@if(value.moduleDurations && curriculumAssetInfo){@>
2905						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
2906					<@}@>
2907                </p>
2908                <div class="accordion-syllabus-header__icon text-primary">
2909                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#6715FF;"></i>
2910                </div>
2911            </div>
2912        </header>
2913        <div class="accordion-content" style="filter:none;background:transparent !important;">
2914            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
2915                <ul class="accordian-list">
2916                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
2917                    <@ if(value['items'] && value['items'].length > 0) { @>
2918                        <@ $.each(value['items'], function(index1, value1) { @>
2919                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
2920							<style>
2921								@media (max-width: 768px) {
2922								  .accordian-content-card {
2923									flex-direction: column !important;
2924									align-items: stretch !important;
2925								  }
2926							  
2927								  .accordian-content-card__top {
2928									flex-direction: row !important;
2929									justify-content: space-between !important;
2930									align-items: center !important;
2931									width: 100% !important;
2932								  }
2933							  
2934								  .accordian-content-card__title {
2935									flex: 1 !important;
2936									margin: 0 10px !important;
2937									white-space: nowrap;
2938									overflow: hidden;
2939									text-overflow: ellipsis;
2940								  }
2941							  
2942								  .accordian-content-card__bottom {
2943									flex-direction: row !important;
2944									justify-content: space-between !important;
2945									align-items: center !important;
2946									width: 100% !important;
2947									margin-top: 6px !important;
2948								  }
2949							  
2950								  .accordian-content-card__link {
2951									flex: 1 !important;
2952									min-width: 0 !important;
2953									text-align: left !important;
2954								  }
2955							  
2956								  .accordian-content-card__time {
2957									flex-shrink: 0 !important;
2958									text-align: right !important;
2959								  }
2960								}
2961							  </style>
2962							  
2963							  <div class="accordian-content-card"
2964     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
2965
2966							  
2967								<!-- Row 1: Icon + Title + Collapse Icon -->
2968								<div class="accordian-content-card__top"
2969									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
2970							  
2971								  <!-- Icon -->
2972								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
2973									<@ if(value1.type == 'code'){ @>
2974									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
2975									<@ } else { @>
2976									  <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;">
2977										<@ print(getCourseAssetIcon(value1.type))@>
2978									  </span>
2979									<@ } @>
2980								  </div>
2981							  
2982								  <!-- Title -->
2983								  <div class="accordian-content-card__title"
2984									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
2985									<@print(value1.title)@>
2986								  </div>
2987							  
2988								  <!-- Collapse Icon (optional) -->
2989								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
2990									<!-- Example placeholder, add real icon if needed -->
2991									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
2992								  </div>
2993								</div>
2994							  
2995								<!-- Row 2: Preview Button and Time -->
2996								<div class="accordian-content-card__bottom"
2997									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
2998							  
2999								  <!-- Preview Button -->
3000								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3001									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
3002									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
3003										 class="previewBtn"
3004										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3005										<span class="text-primary" style="color:#6715FF;">
3006										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3007										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span>
3008										</span>
3009									  </a>
3010									<@}@>
3011								  </div>
3012							  
3013								  <!-- Time -->
3014								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3015									<p class="text-primary course-asset-time"
3016									   style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;">
3017									  <@ if(value1.duration && value1.duration > 0) { @>
3018										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
3019									  <@ } else { @>
3020										--
3021									  <@ } @>
3022									</p>
3023								  </div>
3024							  
3025								</div>
3026							  </div>
3027							  
3028							
3029                        </li>
3030                        <@ }); @>
3031                    <@ } else { @>
3032                        <li class="accordian-list__item" style="padding:0px 0px !important;">
3033							<div class="accordian-content-card"
3034							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
3035					   
3036						   <!-- Row 1: Icon + Title + Collapse Icon -->
3037						   <div class="accordian-content-card__top"
3038								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
3039						 
3040							   <!-- Icon -->
3041							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
3042								   <@ if(value.type == 'code'){ @>
3043									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
3044								   <@ } else { @>
3045									   <span class="material-icons text-primary" style="color:#6715FF; font-size: 24px;">
3046										   <@ print(getCourseAssetIcon(value.type))@>
3047									   </span>
3048								   <@ } @>
3049							   </div>
3050						 
3051							   <!-- Title -->
3052							   <div class="accordian-content-card__title"
3053									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
3054								   <@print(value.title)@>
3055							   </div>
3056						 
3057							   <!-- Collapse Icon (optional) -->
3058							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
3059								   <!-- Example placeholder, add real icon if needed -->
3060								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
3061							   </div>
3062						   </div>
3063						 
3064						   <!-- Row 2: Preview Button and Time -->
3065						   <div class="accordian-content-card__bottom"
3066								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
3067						 
3068							   <!-- Preview Button -->
3069							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3070								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
3071									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
3072										  class="previewBtn"
3073										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #6715FF; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3074										   <span class="text-primary" style="color:#6715FF;">
3075											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3076											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#6715FF;"></i></span>
3077										   </span>
3078									   </a>
3079								   <@}@>
3080							   </div>
3081						 
3082							   <!-- Time -->
3083							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3084								   <p class="text-primary course-asset-time"
3085									  style="font-size: 14px; font-weight: 500; color:#6715FF !important; margin: 0;">
3086									   <@ if(value.duration && value.duration > 0) { @>
3087										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
3088									   <@ } else { @>
3089										   --
3090									   <@ } @>
3091								   </p>
3092							   </div>
3093						   </div>
3094					   </div>
3095                        </li>
3096                    <@ } @>
3097                </ul>
3098            
3099                <@ if(itemsCount > 5) { @>
3100                    <div style="text-align: center; margin-top: 10px;">
3101						<button style="background-color: #6715FF; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3102						onclick="
3103							var parentAccordion = this.closest('.accordion-content');
3104							parentAccordion.style.maxHeight = 'none';
3105							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
3106							this.style.display = 'none';
3107						">
3108                            View All
3109                        </button>
3110                    </div>
3111                <@ } @>
3112            </div>
3113        </div>
3114    </div>
3115    <@ }); @>
3116    <@ if(item.length > 5) { @>
3117        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
3118            <button style="background-color: #6715FF; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3119                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
3120                View All Sessions
3121            </button>
3122        </div>
3123    <@ } @>
3124</div>
3125	</div>
3126</script>
3126
3127
3128
3129
3130<!--Olive Curriculum 8-->
3131<script>
3132	// Simple responsive positioning
3133	function updatePosition() {
3134		const element = document.getElementById('totalTimeElement');
3135		if(element){
3136		if (window.innerWidth > 768) {
3137			element.style.position = 'absolute';
3138			element.style.top = "5px";
3139			element.style.right = '122px';
3140		} else {
3141			element.style.position = 'static';
3142			element.style.margin = '0 0';
3143		}
3144		}
3145	}
3146	
3147	// Run on load and resize
3148	window.addEventListener('load', updatePosition);
3149	window.addEventListener('resize', updatePosition);
3150	</script>
3150
3151 
3151<script type="text/template" id="coursecurr-8-template">
3152	<div class="total-time" id="totalTimeElement" style="
3153    font-size: 18px;
3154    font-weight: 600;
3155    color: #064400;
3156    padding: 8px 12px;
3157    border-radius: 4px;
3158    white-space: nowrap;">
3159     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
3160        <@print(millisecondsToHHMMSSStr(summary.durations))@>
3161    <@}@>
3162</div>
3163
3164<div class="accordion-syllabus" style="max-width:1000px !important">
3165    <@ $.each(item, function(index, value) { @>
3166    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
3167        <header class="accordion-syllabus-header" style="background:#E5E5E5 !important; border-radius16px;box-shadow:none;padding:20px !important">
3168            <h4 class="accordion-syllabus-header__title">
3169                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
3170                    <@if(index < 9) {@>  
3171                        Week <@print(index + 1)@>:  
3172                    <@ } else {@>  
3173                        Week <@print(index + 1)@>:
3174                    <@ } @>  
3175                </span>
3176                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
3177                    <@if(value && value.items){@>
3178                        <@ print(value.items.length) @> attachment(s) 
3179                    <@} else {@>
3180                        1 attachment(s)
3181                    <@}@>
3182                    <@if(value.moduleDurations && curriculumAssetInfo){@>
3183						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
3184					<@}@>
3185                </span></p>
3186            </h4>
3187			
3188            <div class="accordion-syllabus-header__info">
3189                <p class="text-primary hide-sm" style="color:#064400 !important;">
3190                    <@if(value && value.items){@>
3191                        <@ print(value.items.length) @> attachment(s) 
3192                    <@} else {@>
3193                        1 attachment(s)
3194                    <@}@>
3195                    <@if(value.moduleDurations && curriculumAssetInfo){@>
3196						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
3197					<@}@>
3198                </p>
3199                <div class="accordion-syllabus-header__icon text-primary">
3200                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#064400;"></i>
3201                </div>
3202            </div>
3203        </header>
3204        <div class="accordion-content" style="filter:none;background:transparent !important;">
3205            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
3206                <ul class="accordian-list">
3207                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
3208                    <@ if(value['items'] && value['items'].length > 0) { @>
3209                        <@ $.each(value['items'], function(index1, value1) { @>
3210                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
3211							<style>
3212								@media (max-width: 768px) {
3213								  .accordian-content-card {
3214									flex-direction: column !important;
3215									align-items: stretch !important;
3216								  }
3217							  
3218								  .accordian-content-card__top {
3219									flex-direction: row !important;
3220									justify-content: space-between !important;
3221									align-items: center !important;
3222									width: 100% !important;
3223								  }
3224							  
3225								  .accordian-content-card__title {
3226									flex: 1 !important;
3227									margin: 0 10px !important;
3228									white-space: nowrap;
3229									overflow: hidden;
3230									text-overflow: ellipsis;
3231								  }
3232							  
3233								  .accordian-content-card__bottom {
3234									flex-direction: row !important;
3235									justify-content: space-between !important;
3236									align-items: center !important;
3237									width: 100% !important;
3238									margin-top: 6px !important;
3239								  }
3240							  
3241								  .accordian-content-card__link {
3242									flex: 1 !important;
3243									min-width: 0 !important;
3244									text-align: left !important;
3245								  }
3246							  
3247								  .accordian-content-card__time {
3248									flex-shrink: 0 !important;
3249									text-align: right !important;
3250								  }
3251								}
3252							  </style>
3253							  
3254							  <div class="accordian-content-card"
3255     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
3256
3257							  
3258								<!-- Row 1: Icon + Title + Collapse Icon -->
3259								<div class="accordian-content-card__top"
3260									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
3261							  
3262								  <!-- Icon -->
3263								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
3264									<@ if(value1.type == 'code'){ @>
3265									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
3266									<@ } else { @>
3267									  <span class="material-icons text-primary" style="color:#064400; font-size: 24px;">
3268										<@ print(getCourseAssetIcon(value1.type))@>
3269									  </span>
3270									<@ } @>
3271								  </div>
3272							  
3273								  <!-- Title -->
3274								  <div class="accordian-content-card__title"
3275									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
3276									<@print(value1.title)@>
3277								  </div>
3278							  
3279								  <!-- Collapse Icon (optional) -->
3280								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
3281									<!-- Example placeholder, add real icon if needed -->
3282									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
3283								  </div>
3284								</div>
3285							  
3286								<!-- Row 2: Preview Button and Time -->
3287								<div class="accordian-content-card__bottom"
3288									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
3289							  
3290								  <!-- Preview Button -->
3291								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3292									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
3293									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
3294										 class="previewBtn"
3295										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3296										<span class="text-primary" style="color:#064400;">
3297										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3298										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span>
3299										</span>
3300									  </a>
3301									<@}@>
3302								  </div>
3303							  
3304								  <!-- Time -->
3305								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3306									<p class="text-primary course-asset-time"
3307									   style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;">
3308									  <@ if(value1.duration && value1.duration > 0) { @>
3309										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
3310									  <@ } else { @>
3311										--
3312									  <@ } @>
3313									</p>
3314								  </div>
3315							  
3316								</div>
3317							  </div>
3318							  
3319							
3320                        </li>
3321                        <@ }); @>
3322                    <@ } else { @>
3323                        <li class="accordian-list__item" style="padding:0px 0px !important;">
3324							<div class="accordian-content-card"
3325							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
3326					   
3327						   <!-- Row 1: Icon + Title + Collapse Icon -->
3328						   <div class="accordian-content-card__top"
3329								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
3330						 
3331							   <!-- Icon -->
3332							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
3333								   <@ if(value.type == 'code'){ @>
3334									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
3335								   <@ } else { @>
3336									   <span class="material-icons text-primary" style="color:#064400; font-size: 24px;">
3337										   <@ print(getCourseAssetIcon(value.type))@>
3338									   </span>
3339								   <@ } @>
3340							   </div>
3341						 
3342							   <!-- Title -->
3343							   <div class="accordian-content-card__title"
3344									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
3345								   <@print(value.title)@>
3346							   </div>
3347						 
3348							   <!-- Collapse Icon (optional) -->
3349							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
3350								   <!-- Example placeholder, add real icon if needed -->
3351								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
3352							   </div>
3353						   </div>
3354						 
3355						   <!-- Row 2: Preview Button and Time -->
3356						   <div class="accordian-content-card__bottom"
3357								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
3358						 
3359							   <!-- Preview Button -->
3360							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3361								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
3362									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
3363										  class="previewBtn"
3364										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #064400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3365										   <span class="text-primary" style="color:#064400;">
3366											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3367											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#064400;"></i></span>
3368										   </span>
3369									   </a>
3370								   <@}@>
3371							   </div>
3372						 
3373							   <!-- Time -->
3374							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3375								   <p class="text-primary course-asset-time"
3376									  style="font-size: 14px; font-weight: 500; color:#064400 !important; margin: 0;">
3377									   <@ if(value.duration && value.duration > 0) { @>
3378										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
3379									   <@ } else { @>
3380										   --
3381									   <@ } @>
3382								   </p>
3383							   </div>
3384						   </div>
3385					   </div>
3386                        </li>
3387                    <@ } @>
3388                </ul>
3389            
3390                <@ if(itemsCount > 5) { @>
3391                    <div style="text-align: center; margin-top: 10px;">
3392						<button style="background-color: #064400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3393						onclick="
3394							var parentAccordion = this.closest('.accordion-content');
3395							parentAccordion.style.maxHeight = 'none';
3396							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
3397							this.style.display = 'none';
3398						">
3399                            View All
3400                        </button>
3401                    </div>
3402                <@ } @>
3403            </div>
3404        </div>
3405    </div>
3406    <@ }); @>
3407    <@ if(item.length > 5) { @>
3408        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
3409            <button style="background-color: #064400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3410                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
3411                View All Sessions
3412            </button>
3413        </div>
3414    <@ } @>
3415</div>
3416	</div>
3417</script>
3417
3418
3419
3420
3421<!--Dusk Curriculum 9-->
3422<script>
3423	// Simple responsive positioning
3424	function updatePosition() {
3425		const element = document.getElementById('totalTimeElement');
3426		if(element){
3427		if (window.innerWidth > 768) {
3428			element.style.position = 'absolute';
3429			element.style.top = "5px";
3430			element.style.right = '122px';
3431		} else {
3432			element.style.position = 'static';
3433			element.style.margin = '0 0';
3434		}
3435		}
3436	}
3437	
3438	// Run on load and resize
3439	window.addEventListener('load', updatePosition);
3440	window.addEventListener('resize', updatePosition);
3441	</script>
3441
3442 
3442<script>
3443	// Simple responsive positioning
3444	function updatePosition() {
3445		const element = document.getElementById('totalTimeElement');
3446		if(element){
3447		if (window.innerWidth > 768) {
3448			element.style.position = 'absolute';
3449			element.style.top = "5px";
3450			element.style.right = '122px';
3451		} else {
3452			element.style.position = 'static';
3453			element.style.margin = '0 0';
3454		}
3455		}
3456	}
3457	
3458	// Run on load and resize
3459	window.addEventListener('load', updatePosition);
3460	window.addEventListener('resize', updatePosition);
3461	</script>
3461
3462 
3462<script type="text/template" id="coursecurr-9-template">
3463	<div class="total-time" id="totalTimeElement" style="
3464    font-size: 18px;
3465    font-weight: 600;
3466    color: #282400;
3467    padding: 8px 12px;
3468    border-radius: 4px;
3469    white-space: nowrap;">
3470     <@if(summary.durations && summary.durations>0 && curriculumAssetInfo){@>
3471        <@print(millisecondsToHHMMSSStr(summary.durations))@>
3472    <@}@>
3473</div>
3474
3475<div class="accordion-syllabus" style="max-width:1000px !important">
3476    <@ $.each(item, function(index, value) { @>
3477    <div class="accordion-syllabus-item" style="<@ if(index >= 5) { @> display: none; <@ } @>">
3478        <header class="accordion-syllabus-header" style="background:#F5F5F5 !important; border-radius:8px;box-shadow:none;padding:20px !important">
3479            <h4 class="accordion-syllabus-header__title">
3480                <span class="text-primary" style="font-size:18px ; font-weight:600; color:black;"> 
3481                    <@if(index < 9) {@>  
3482                        Week <@print(index + 1)@>:  
3483                    <@ } else {@>  
3484                        Week <@print(index + 1)@>:
3485                    <@ } @>  
3486                </span>
3487                <p style="font-size:18px ; font-weight:600;"><@print(value.title)@> <span class="text-primary show-sm" style="font-size: 14px;">
3488                    <@if(value && value.items){@>
3489                        <@ print(value.items.length) @> attachment(s) 
3490                    <@} else {@>
3491                        1 attachment(s)
3492                    <@}@>
3493                    <@if(value.moduleDurations && curriculumAssetInfo){@>
3494						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
3495					<@}@>
3496                </span></p>
3497            </h4>
3498			
3499            <div class="accordion-syllabus-header__info">
3500                <p class="text-primary hide-sm" style="color:#282400 !important;">
3501                    <@if(value && value.items){@>
3502                        <@ print(value.items.length) @> attachment(s) 
3503                    <@} else {@>
3504                        1 attachment(s)
3505                    <@}@>
3506                    <@if(value.moduleDurations && curriculumAssetInfo){@>
3507						• <@print(millisecondsToHHMMSSStr(value.moduleDurations))@>
3508					<@}@>
3509                </p>
3510                <div class="accordion-syllabus-header__icon text-primary">
3511                    <i class="fa fa-angle-left" aria-hidden="true" style="color:#282400;"></i>
3512                </div>
3513            </div>
3514        </header>
3515        <div class="accordion-content" style="filter:none;background:transparent !important;">
3516            <div class="accordian-content-block" style="background:transparent !important;box-shadow:none;padding:16px 66px 3px 69px !important;">
3517                <ul class="accordian-list">
3518                    <@ var itemsCount = value['items'] ? value['items'].length : 0; @>
3519                    <@ if(value['items'] && value['items'].length > 0) { @>
3520                        <@ $.each(value['items'], function(index1, value1) { @>
3521                        <li class="accordian-list__item" style="padding:0px 0px !important;<@ if(index1 >= 5) { @> display: none; <@ } @>"> 
3522							<style>
3523								@media (max-width: 768px) {
3524								  .accordian-content-card {
3525									flex-direction: column !important;
3526									align-items: stretch !important;
3527								  }
3528							  
3529								  .accordian-content-card__top {
3530									flex-direction: row !important;
3531									justify-content: space-between !important;
3532									align-items: center !important;
3533									width: 100% !important;
3534								  }
3535							  
3536								  .accordian-content-card__title {
3537									flex: 1 !important;
3538									margin: 0 10px !important;
3539									white-space: nowrap;
3540									overflow: hidden;
3541									text-overflow: ellipsis;
3542								  }
3543							  
3544								  .accordian-content-card__bottom {
3545									flex-direction: row !important;
3546									justify-content: space-between !important;
3547									align-items: center !important;
3548									width: 100% !important;
3549									margin-top: 6px !important;
3550								  }
3551							  
3552								  .accordian-content-card__link {
3553									flex: 1 !important;
3554									min-width: 0 !important;
3555									text-align: left !important;
3556								  }
3557							  
3558								  .accordian-content-card__time {
3559									flex-shrink: 0 !important;
3560									text-align: right !important;
3561								  }
3562								}
3563							  </style>
3564							  
3565							  <div class="accordian-content-card"
3566     style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
3567
3568							  
3569								<!-- Row 1: Icon + Title + Collapse Icon -->
3570								<div class="accordian-content-card__top"
3571									 style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
3572							  
3573								  <!-- Icon -->
3574								  <div class="accordian-content-card__ico" style="flex-shrink: 0;">
3575									<@ if(value1.type == 'code'){ @>
3576									  <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
3577									<@ } else { @>
3578									  <span class="material-icons text-primary" style="color:#282400; font-size: 24px;">
3579										<@ print(getCourseAssetIcon(value1.type))@>
3580									  </span>
3581									<@ } @>
3582								  </div>
3583							  
3584								  <!-- Title -->
3585								  <div class="accordian-content-card__title"
3586									   style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
3587									<@print(value1.title)@>
3588								  </div>
3589							  
3590								  <!-- Collapse Icon (optional) -->
3591								  <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
3592									<!-- Example placeholder, add real icon if needed -->
3593									<!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
3594								  </div>
3595								</div>
3596							  
3597								<!-- Row 2: Preview Button and Time -->
3598								<div class="accordian-content-card__bottom"
3599									 style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
3600							  
3601								  <!-- Preview Button -->
3602								  <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3603									<@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value1.id)){@>
3604									  <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value1.id)@>"
3605										 class="previewBtn"
3606										 style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3607										<span class="text-primary" style="color:#282400;">
3608										  <@ if(value1.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3609										  <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span>
3610										</span>
3611									  </a>
3612									<@}@>
3613								  </div>
3614							  
3615								  <!-- Time -->
3616								  <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3617									<p class="text-primary course-asset-time"
3618									   style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;">
3619									  <@ if(value1.duration && value1.duration > 0) { @>
3620										<@ print(millisecondsToHHMMSSStr(value1.duration)) @>
3621									  <@ } else { @>
3622										--
3623									  <@ } @>
3624									</p>
3625								  </div>
3626							  
3627								</div>
3628							  </div>
3629							  
3630							
3631                        </li>
3632                        <@ }); @>
3633                    <@ } else { @>
3634                        <li class="accordian-list__item" style="padding:0px 0px !important;">
3635							<div class="accordian-content-card"
3636							style="display: flex; flex-wrap: nowrap; align-items: center; justify-content: space-between; padding: 10px 0; width: 100%; box-sizing: border-box; border-bottom: 1px solid #eee;">
3637					   
3638						   <!-- Row 1: Icon + Title + Collapse Icon -->
3639						   <div class="accordian-content-card__top"
3640								style="display: flex; align-items: center; justify-content: space-between; width: 100%;">
3641						 
3642							   <!-- Icon -->
3643							   <div class="accordian-content-card__ico" style="flex-shrink: 0;">
3644								   <@ if(value.type == 'code'){ @>
3645									   <img src="/resources/images/CodeIcon.svg" style="width: 24px; height: 24px;">
3646								   <@ } else { @>
3647									   <span class="material-icons text-primary" style="color:#282400; font-size: 24px;">
3648										   <@ print(getCourseAssetIcon(value.type))@>
3649									   </span>
3650								   <@ } @>
3651							   </div>
3652						 
3653							   <!-- Title -->
3654							   <div class="accordian-content-card__title"
3655									style="font-weight: 400; font-size: 14px; color: #333; margin: 0 10px; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;">
3656								   <@print(value.title)@>
3657							   </div>
3658						 
3659							   <!-- Collapse Icon (optional) -->
3660							   <div class="accordian-content-card__collapse" style="flex-shrink: 0;">
3661								   <!-- Example placeholder, add real icon if needed -->
3662								   <!-- <i class="fa fa-chevron-down" style="font-size: 16px;"></i> -->
3663							   </div>
3664						   </div>
3665						 
3666						   <!-- Row 2: Preview Button and Time -->
3667						   <div class="accordian-content-card__bottom"
3668								style="display: flex; justify-content: space-between; align-items: center; width: 100%; margin-top: 6px; flex-wrap: nowrap;">
3669						 
3670							   <!-- Preview Button -->
3671							   <div class="accordian-content-card__link" style="flex: 1; min-width: 0; text-align: left;">
3672								   <@if(summary.sampleAvailable && summary.sampleSectionIds.includes(value.id)){@>
3673									   <a href="/s/preview/courses/<@print(decodeURIComponent(summary.courseUrl).replace(/ /g,'-'))@>-<@- courseId @>#<@print(value.id)@>"
3674										  class="previewBtn"
3675										  style="font-size: 14px; font-weight: 500; text-decoration: none; color: #282400; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; display: inline-block;">
3676										   <span class="text-primary" style="color:#282400;">
3677											   <@ if(value.type == 'video') { @> Watch <@ } else {@> Preview <@ } @>
3678											   <span style="color:#000"><i class="fa fa-solid fa-arrow-up-right" style="color:#282400;"></i></span>
3679										   </span>
3680									   </a>
3681								   <@}@>
3682							   </div>
3683						 
3684							   <!-- Time -->
3685							   <div class="accordian-content-card__time" style="flex-shrink: 0; text-align: right;">
3686								   <p class="text-primary course-asset-time"
3687									  style="font-size: 14px; font-weight: 500; color:#282400 !important; margin: 0;">
3688									   <@ if(value.duration && value.duration > 0) { @>
3689										   <@ print(millisecondsToHHMMSSStr(value.duration)) @>
3690									   <@ } else { @>
3691										   --
3692									   <@ } @>
3693								   </p>
3694							   </div>
3695						   </div>
3696					   </div>
3697                        </li>
3698                    <@ } @>
3699                </ul>
3700            
3701                <@ if(itemsCount > 5) { @>
3702                    <div style="text-align: center; margin-top: 10px;">
3703						<button style="background-color: #282400; color: white; padding: 4px 28px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3704						onclick="
3705							var parentAccordion = this.closest('.accordion-content');
3706							parentAccordion.style.maxHeight = 'none';
3707							this.closest('.accordian-content-block').querySelectorAll('.accordian-list__item').forEach(el => el.style.display = 'block'); 
3708							this.style.display = 'none';
3709						">
3710                            View All
3711                        </button>
3712                    </div>
3713                <@ } @>
3714            </div>
3715        </div>
3716    </div>
3717    <@ }); @>
3718    <@ if(item.length > 5) { @>
3719        <div style="text-align: center; margin-top: 10px;margin-bottom: 20px;">
3720            <button style="background-color: #282400; color: white; padding: 8px 32px; border: none; cursor: pointer; font-size: 16px; border-radius: 24px;" 
3721                onclick="document.querySelectorAll('.accordion-syllabus-item').forEach(el => el.style.display = 'block'); this.style.display = 'none';">
3722                View All Sessions
3723            </button>
3724        </div>
3725    <@ } @>
3726</div>
3727	</div>
3728</script>
3728
3729
3730
3731
3732
3733
3734
3735<!-- Feedback Template First -->
3736<script type="text/template" id="widget-1-template">
3737<div class="column full feedbackContainer feedback1 spectre">
3738<@if(msg){@>
3739	<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3740<@}else{@>
3741<div class="avgratingbox">
3742  <div class="flex-row" >
3743        <div class="is-box-2" >
3744           <p style="color: rgb(247, 247, 247); font-weight: 700!important; font-size: 40px!important; text-align: center; letter-spacing: 3px; padding-bottom: 0px; margin-bottom: 0px; line-height: 1; margin-top: 0px;"> 
3745			<@ if(ratings && ratings.avgRating) {@>
3746				<@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3747			<@}else{@>
3748				0
3749			<@}@>
3750		  </p>
3751          <h5 class="ratings1" style="text-align: center; margin-bottom: 0px; margin-top: 0px; line-height: 1;">  
3752          <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
3753					<@if(ratings){@> 
3754						<@ if(ratings.avgRating >= ratingsSize) {@> 
3755							<i class="icon ion-android-star"></i>&nbsp; 
3756						<@ } else if(ratings.avgRating > ratingsSize-1 && ratings.avgRating < ratingsSize) { @> 
3757							<i class="icon ion-android-star-half"></i>&nbsp;
3758						<@ } else { @> 
3759							<i class="icon ion-android-star-outline"></i>&nbsp; 
3760						<@ } @>
3761					<@} else {@>
3762						<i class="icon ion-android-star-outline"></i>&nbsp;
3763					<@}@>		
3764		  <@}@>
3765          </h5>        
3766          <p style="margin: 10px 0 0 !important;text-align: center;line-height: 1;font-size: 30px!important;"><i class="fa-light fa-users t-white"></i> </p>
3767          <p style="margin-bottom: 10px; margin-top: 0px; font-size: 12px!important; letter-spacing: 1px; font-weight: 500!important; color: rgb(247, 247, 247); text-align: center;">
3768			Total <@ if(ratings){print(ratings.total) }else{0}@> Reviews 
3769		  </p>
3770        </div>
3771        <div class="is-box-9">
3772			<@ for (i = 0; i < 5; i++) {@>
3773				<div class="box7878"> 
3774            <div style="flex:1;">							
3775					<div class="meter <@print(ratingsPer[(parseInt(i)+1)+'-star'].cls)@> nostripes">
3776                  		<span style="width: <@print(ratingsPer[(parseInt(i)+1)+'-star'].rates)@>%"></span>
3777               		</div>	
3778            </div>
3779            <div id="ratingbox">
3780              <p class="ratings2" style=" line-height: 1;">  
3781				<@ for (ratingsSize = 5; ratingsSize >=1; ratingsSize--) {@>
3782						<@if(ratingsSize>i){@>
3783							<i class="fa fa-solid fa-star-sharp text-primary"></i>&nbsp;
3784						<@} else {@>
3785							<i class="fa fa-solid fa-star-sharp"></i>&nbsp;
3786						<@}@>
3787				<@}@>
3788               <span class="t-white">					
3789					<@ if(ratings && ratings.ratingsCount){print(ratings.ratingsCount[(parseInt(5)-i)+'-stars'])}else{0} @>
3790			   </span>
3791              </p>
3792
3793            </div>
3794          </div>
3795	  	<@}@>
3796        </div>        
3797  	</div>
3798</div>
3799	<div class="bg-secondary" style="padding:15px 15px;border-radius:10px;border-top-right-radius: 0;border-top-left-radius: 0;" >
3800		<p
3801			style="font-size: 16px!important; font-weight: 500!important; letter-spacing: 1px;" class="text-primary">
3802			Reviews
3803		</p>
3804
3805<div class="review-box" id="createCustomReview" style="display:none">
3806<div class="flex-row">
3807	<div class="is-box-2 centerbox">
3808		<div class="spectre">
3809			<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" >
3810				<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3811			</figure>	
3812			<@if(typeof SPUSER !== 'undefined'){ @><p class="review-name"><@ print(SPUSER.name) @> </p><@ } @>
3813		</div>
3814	</div>
3815	<div class="is-box-10">
3816		<textarea rows="3" class="form-input"
3817			placeholder="Add your review here"></textarea>
3818		<div class="rating3">
3819			<p id="rating-stars">
3820				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 
3821					class="fa fa-solid fa-star-sharp text-primary rating-star" data-value='<@- ratingsSize @>'></i> <@}@>
3822			</p>
3823
3824			<button class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
3825				data-reviewData="reviewlist"
3826				style="padding: 2px 28px; text-transform: uppercase; border-radius: 40px;">Post</button>
3827		</div>
3828	</div>
3829</div>
3830</div>		
3831	
3832	<div id="reviewlist">
3833	<@ $.each(items, function(index, item) { @>
3834	<div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3835		<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3836			<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3837		<@ } @>
3838		<div class="flex-row">
3839			<div class="is-box-2 centerbox">
3840				<div class="spectre">
3841					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3842						<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="uppercase avatar avatar-lg figsize" >
3843							<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3844					<@ } else {@>	
3845					<figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="uppercase avatar avatar-lg figsize" >
3846						<img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>">	
3847					<@ } @>
3848					</figure>
3849					<p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @><@ print(SPUSER.name) @><@ } else {@>	<@ print(item.userName) @><@ } @>	</p>
3850				</div>
3851			</div>
3852			<div class="is-box-10">
3853				<div class="rating4">
3854					<p>
3855						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@
3856						if(item.rating >= ratingsSize) {@> 
3857							<i class="fa fa-solid fa-star-sharp text-primary"></i>
3858						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3859							<i class="fa fa-solid fa-star-sharp-half text-primary"></i> 
3860						<@ } else { @> 
3861							<i class="fa fa-solid fa-star-sharp"></i> 
3862						<@}@> 
3863						<@ }@>
3864					</p>
3865					<p
3866						style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;">
3867						<time class="timestamp"
3868							datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@
3869							print(parseDate(item.createdDate.$date)) @></time>
3870					</p>
3871				</div>
3872				<p  class="reviewTxt"
3873					style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@
3874					print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @></p>
3875				<div class="comment-tag">
3876					<@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @>
3877				</div>
3878			</div>
3879		</div>
3880	</div>
3881	<@ }); @>
3882	</div>	
3883	<button class="bg-primary loadMoreReviewsBtn reviewLMbtn" data-itemTemplate="feedback-1-item-template" data-reviewData="reviewlist" >Load More Reviews</button>
3884</div>
3885<@}@>
3886</script>
3886
3887
3888
3889<script type="text/template" id="feedback-1-item-template">
3890<div class="review-box reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>"">
3891<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3892	<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3893<@ } @>
3894<div class="flex-row">
3895	<div class="is-box-2 centerbox">
3896		<div class="spectre">
3897			<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3898				<figure data-initial="<@if(typeof SPUSER !== 'undefined'){print(SPUSER.email.substring(0, 1))}else{@>Me<@}@>" class="avatar avatar-lg figsize" >
3899					<img src="/s/profile/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ if(typeof SPUSER !== 'undefined'){print(SPUSER.mhash)} @>">
3900			<@ } else {@>	
3901			<figure data-initial="<@ print(getUserInitial(null, item.userName)) @>" class="avatar avatar-lg figsize" >
3902				<img src="/s/profile/<@- item.userId @>/thumb" alt="" class="review-pic" onerror="profileImageError(this)" data-mhash="<@ item.mhash @>">	
3903			<@ } @>
3904			</figure>
3905			<p class="review-name"><@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @><@ print(SPUSER.name) @><@ } else {@>	<@ print(item.userName) @><@ } @>	</p>
3906		</div>
3907	</div>
3908	<div class="is-box-10">
3909		<div class="rating4">
3910			<p>
3911				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <@
3912				if(item.rating >= ratingsSize) {@> 
3913					<i class="fa fa-solid fa-star-sharp text-primary"></i>
3914				<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
3915					<i class="fa fa-solid fa-star-sharp-half text-primary"></i>
3916				<@ } else { @> 
3917					<i class="fa fa-solid fa-star-sharp-outline"></i> 
3918				<@}@> 
3919				<@ } @>
3920			</p>
3921			<p
3922				style="font-size: 13px!important; color: rgb(174, 170, 170); font-weight: 600!important; margin-top: 4px;">
3923				<time class="timestamp"
3924					datetime="<@ print((new Date(item.createdDate.$date)).toISOString()) @>"><@
3925					print(parseDate(item.createdDate.$date)) @></time>
3926			</p>
3927		</div>
3928		<p  class="reviewTxt"
3929			style="color: rgb(102, 102, 102); font-weight: 500!important; font-size: 13px!important; margin-bottom: 10px;"><@
3930			print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @></p>
3931		<div class="comment-tag">
3932			<@ if(item.isFeatured) {@><span>Featured Review </span><@ } @><@ if(item.isVerifiedPurchase) {@> <span>Verified Purchase </span><@ } @>
3933		</div>
3934	</div>
3935</div>
3936</div>
3937</script>
3937
3938
3939
3940<!-- Feedback Template Second -->
3941<script type="text/template" id="feedback-2-template">
3942<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
3943<@if(msg){@>
3944	<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
3945<@}else{@>
3946<@ if(total > 0 && ratings && ratings.avgRating) {@>
3947<div class="avgratingbox">
3948<div class="column third">
3949   <div class="is-card avgRatingContainer" >
3950      <div class="avgRatingInnerContainer">
3951         <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
3952         <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
3953            <i class="icon ion-android-star text-primary" style="font-size: 80px;"></i>
3954            <div style="margin-left: 25px;">
3955               <span style="display: flex; justify-content: flex-start; align-items: baseline;">
3956                  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;">
3957                     <@ if(ratings && ratings.avgRating) {@>
3958                     <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
3959                     <@}else{@>
3960                     0
3961                     <@}@>
3962                  </h3>
3963                  <p class="avgRatingReviews">/5</p>
3964               </span>
3965               <p class="avgRatingReviews">
3966                  <@ if(ratings){print(ratings.total) }else{0}@> reviews
3967               </p>
3968            </div>
3969         </div>
3970      </div>
3971   </div>
3972</div>
3973</div>
3974<@ } @>
3975<div id="feedback2Reviewlist" class="reviewslist">
3976   <@ $.each(items, function(index, item) { @>
3977   		<@ var template = _.template($("#feedback-2-item-template").html()); print(template({item: item})) @>
3978   <@ }); @>
3979   <@}@>
3980</div>
3981<div class="row clearfix">
3982   <div class="column full">
3983      <p class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-2-item-template" data-reviewData="feedback2Reviewlist" style="text-align: right; font-size: 14px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none;">
3984         View more
3985      </p>
3986   </div>
3987</div>
3988</script>
3988
3989
3990<script type="text/template" id="feedback-2-item-template">
3991	<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
3992      <div class="is-card avgRatingContainer">
3993         <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
3994			<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
3995				<a class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
3996			<@ } @>
3997            <p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 80px; max-height: 80px; overflow: hidden;">
3998   			<@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
3999   		 	</p>
4000			<div class="reviewerName">
4001           	<p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px;">
4002   				<@ print(item.userName) @>
4003   		 	</p></div>
4004			
4005			 <p style="margin: 0px;">
4006				<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
4007					<@ if(item.rating >= ratingsSize) {@> 
4008						<i class="fa fa-solid fa-star-sharp text-primary"></i>
4009					<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
4010						<i class="fa fa-solid fa-star-sharp-half text-primary"></i> 
4011					<@ } @> 
4012				<@ }@>
4013			 </p>		
4014
4015      	 </div>
4016	  </div>	
4017   </div>
4018</script>
vendor: 1 bytes, line 4018
4018
4019<script type="text/template" id="feedback-2-createTemplate">
4020	<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4021  <div class="is-boxes">
4022    <div class="is-box-centered">
4023      <div class="is-container container" style="max-width: 940px;">
4024	
4025		<div class="review-box review-add-box">
4026            <div class="is-container container is-content-800" >
4027               <div class="row clearfix" >
4028                  <div class="column full" >
4029                     <h1 style="text-align: center; font-size: 28px; line-height: 1.1; font-weight: 700; letter-spacing: 0px; color: var(--themeColor); margin-bottom: 44px;">Add a review</h1>
4030                  </div>
4031               </div>
4032               <div class="textarea-cont">
4033                  <div class="review-star text-primary" style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;">
4034					<span id="rating-stars">
4035                     <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> <i 
4036                        class="fa fa-solid fa-star-sharp rating-star" data-value='<@- ratingsSize @>'></i> <@}@>
4037					</span>
4038                  </div>
4039                  <textarea class="add-review-textarea" id="reviewText" style="background: transparent;width: 100%; border-width: 0px; padding-right: 28px; padding-bottom: 28px; min-height: 150px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;" placeholder="Add your review here"></textarea>
4040                  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4041						<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
4042				<@ } @>
4043               </div>
4044               <div  style="margin-top: 20px; display: flex; justify-content: flex-end;">
4045                  <button id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4046					data-reviewData="feedback2Reviewlist" disabled >Submit</button>
4047               </div>
4048            </div>
4049		</div>
4050		</div>
4051		</div>
4052	</div>
4053</div>
4054</script>
4054
4055
4056<!-- Vegas 4th feedback Template-->
4057
4058
4059<script type="text/template" id="feedback-4-template">
4060	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
4061	<@if(msg){@>
4062		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
4063	<@}else{@>
4064	<@ if(total > 0 && ratings && ratings.avgRating) {@>
4065	<div class="avgratingbox">
4066	<div class="column third">
4067	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
4068		  <div class="avgRatingInnerContainer">
4069			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
4070			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
4071				<i class="icon ion-android-star text-primary" style="font-size: 80px;"></i>
4072				<div style="margin-left: 25px;">
4073				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
4074					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: var(--themeColor); line-height: 1.3;">
4075						 <@ if(ratings && ratings.avgRating) {@>
4076						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
4077						 <@}else{@>
4078						 0
4079						 <@}@>
4080					  </h3>
4081					  <p class="avgRatingReviews">/5</p>
4082				   </span>
4083				   <p class="avgRatingReviews">
4084					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
4085				   </p>
4086				</div>
4087			 </div>
4088		  </div>
4089	   </div>
4090	</div>
4091	</div>
4092	<@ } @>
4093	<div id="feedback4Reviewlist" class="reviewslist">
4094	   <@ $.each(items, function(index, item) { @>
4095			   <@ var template = _.template($("#feedback-4-item-template").html()); print(template({item: item})) @>
4096	   <@ }); @>
4097	   <@}@>
4098	</div>
4099	<div class="row clearfix">
4100	   <div class="column full" style="text-align: center;">
4101		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-4-item-template" data-reviewData="feedback4Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#FB5607; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
4102			View All Reviews
4103		  </a>
4104	   </div>
4105	</div>
4106	</script>
4106
4107	
4108	
4108<script type="text/template" id="feedback-4-item-template">
4109		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
4110		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
4111			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
4112				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
4113					<a  style="color:#FB5607 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
4114				<@ } @>
4115				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
4116				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
4117					</p>
4118				<div class="reviewerName">
4119				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
4120					   <@ print(item.userName) @>
4121					</p></div>
4122				
4123				 <p style="margin: 0px;">
4124					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
4125						<@ if(item.rating >= ratingsSize) {@> 
4126							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#FB5607 !important;"></i>
4127						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
4128							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#FB5607 !important;"></i> 
4129						<@ } @> 
4130					<@ }@>
4131				 </p>		
4132	
4133			   </div>
4134		  </div>	
4135	   </div>
4136	</script>
4136
4137	
4137<script type="text/template" id="feedback-4-createTemplate">
4138		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4139	  <div class="is-boxes">
4140		<div class="is-box-centered">
4141		  <div class="is-container container" style="max-width: 1200px;">
4142		
4143			<div class="review-box review-add-box">
4144				<div class="is-container container is-content-1200" >
4145				   <div class="row clearfix" >
4146					  <div class="column full" >
4147						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
4148					  </div>
4149				   </div>
4150				   <div class="textarea-cont">
4151					<div style="display:flex; gap:30px;">
4152						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
4153						<div class="review-star1 text-primary" 
4154						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
4155					   <span id="rating-stars" >
4156						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
4157							   <i class="fa fa-solid fa-star-sharp rating-star" 
4158								  data-value='<@- ratingsSize @>' 
4159								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
4160						   <@}@>
4161					   </span>
4162				   </div>
4163				   <style></style>
4164				   
4165				   
4166					</div>
4167					  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
4168					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4169							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
4170					<@ } @>
4171				   </div>
4172				   <div  style=" display: flex; justify-content: center;">
4173					  <button style="letter-spacing:0px !important ; background-color:#FB5607;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4174						data-reviewData="feedback4Reviewlist" disabled >Submit</button>
4175				   </div>
4176				</div>
4177			</div>
4178			</div>
4179			</div>
4180		</div>
4181	</div>
4182	</script>
4182
4183	
4184
4185
4186
4187<!-- Blaze 5th feedback Template-->
4188<script type="text/template" id="feedback-5-template">
4189	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
4190	<@if(msg){@>
4191		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
4192	<@}else{@>
4193	<@ if(total > 0 && ratings && ratings.avgRating) {@>
4194	<div class="avgratingbox">
4195	<div class="column third">
4196	   <div class="is-card avgRatingContainer" style="background:#232323; border-radius:0px;padding:21px;" >
4197		  <div class="avgRatingInnerContainer">
4198			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;color:white;">Customer ratings</h3>
4199			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
4200				<i class="icon ion-android-star text-primary" style="font-size: 80px;color:rgb(216, 253, 70);"></i>
4201				<div style="margin-left: 25px;">
4202				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
4203					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800; color: rgb(216, 253, 70); line-height: 1.3;">
4204						 <@ if(ratings && ratings.avgRating) {@>
4205						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
4206						 <@}else{@>
4207						 0
4208						 <@}@>
4209					  </h3>
4210					  <p class="avgRatingReviews" style="color:white;">/5</p>
4211				   </span>
4212				   <p class="avgRatingReviews" style="color:white;">
4213					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
4214				   </p>
4215				</div>
4216			 </div>
4217		  </div>
4218	   </div>
4219	</div>
4220	</div>
4221	<@ } @>
4222	<div id="feedback5Reviewlist" class="reviewslist">
4223	   <@ $.each(items, function(index, item) { @>
4224			   <@ var template = _.template($("#feedback-5-item-template").html()); print(template({item: item})) @>
4225	   <@ }); @>
4226	   <@}@>
4227	</div>
4228	<div class="row clearfix">
4229	   <div class="column full" style="text-align: center;">
4230		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-5-item-template" data-reviewData="feedback5Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#D8FD46; color:black; padding:12px 28px; border-radius:0px;text-decoration:none;">
4231			View All Reviews
4232		  </a>
4233	   </div>
4234	</div>
4235	</script>
4235
4236	
4237	
4238	
4238<script type="text/template" id="feedback-5-item-template">
4239		<style>
4240			.template5-review .reviewTxt{
4241				color:white !important;
4242			}
4243			.template5-review .reviewerName p{
4244				color:white !important;
4245			}
4246		</style>
4247		<div class="column third reviewcontainer template5-review <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @> selfreview <@ } @>">
4248			<div class="is-card avgRatingContainer" style="border:1px solid #232323;padding:20px;">
4249				<div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;">
4250					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id) { @>
4251						<a style="color:#D8FD46 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>">
4252							<i class="material-icons">delete</i>
4253						</a>
4254					<@ } @>
4255					<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
4256						<@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
4257					</p>
4258					<div class="reviewerName">
4259						<p style="font-size: 12px; font-weight: 500; line-height: 1.3; text-align: left; padding-top: 0px; margin:0px; opacity:0.5; ">
4260							<@ print(item.userName) @>
4261						</p>
4262					</div>
4263	
4264					<p style="margin: 0px;">
4265						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) { @>
4266							<@ if(item.rating >= ratingsSize) { @>
4267								<i class="fa fa-solid fa-star-sharp text-primary" style="color:#D8FD46 !important;"></i>
4268							<@ } else if(item.rating > ratingsSize - 1 && item.rating < ratingsSize) { @>
4269								<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#D8FD46 !important;"></i>
4270							<@ } @>
4271						<@ } @>
4272					</p>
4273				</div>
4274			</div>
4275		</div>
4276	</script>
4276
4277	
4278	
4278<script type="text/template" id="feedback-5-createTemplate">
4279		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4280	  <div class="is-boxes">
4281		<div class="is-box-centered" style="background:#181818;">
4282		  <div class="is-container container" style="max-width: 1200px;">
4283		
4284			<div class="review-box review-add-box">
4285				<div class="is-container container is-content-1200" >
4286				   <div class="row clearfix" >
4287					  <div class="column full" >
4288						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: white; ">Add a review</h1>
4289					  </div>
4290				   </div>
4291				   <div class="textarea-cont" style="background:transparent">
4292					<div style="display:flex; gap:30px;">
4293						<div><h3 style="font-size:18px;font-weight:600; color:white;">Overall Rating</h3></div>
4294						<div class="review-star text-primary" 
4295						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
4296					   <span id="rating-stars" >
4297						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
4298							   <i class="fa fa-solid fa-star-sharp rating-star" 
4299								  data-value='<@- ratingsSize @>' 
4300								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
4301						   <@}@>
4302					   </span>
4303				   </div>
4304				   
4305				   
4306					</div>
4307					  <textarea class="add-review-textarea" id="reviewText" style="color:white;background:#232323;width: 100%; border: 1px solid #636363; padding: 28px;  min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:0px !important" placeholder="Add your review here"></textarea>
4308					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4309							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
4310					<@ } @>
4311				   </div>
4312				   <div  style=" display: flex; justify-content: center;margin-top:20px;">
4313					  <button style="letter-spacing:0px !important ; background-color:#D8FD46;padding:12px 28px !important; border-radius:0px !important; color:black;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4314						data-reviewData="feedback5Reviewlist" disabled >Submit</button>
4315				   </div>
4316				</div>
4317			</div>
4318			</div>
4319			</div>
4320		</div>
4321	</div>
4322	</script>
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338<!-- Nebula Feedback 6-->
4339
4340<script type="text/template" id="feedback-6-template">
4341	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
4342	<@if(msg){@>
4343		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
4344	<@}else{@>
4345	<@ if(total > 0 && ratings && ratings.avgRating) {@>
4346	<div class="avgratingbox">
4347	<div class="column third">
4348	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
4349		  <div class="avgRatingInnerContainer">
4350			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
4351			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
4352				<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #6715FF !important;"></i>
4353				<div style="margin-left: 25px;">
4354				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
4355					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #6715FF !important; line-height: 1.3;">
4356						 <@ if(ratings && ratings.avgRating) {@>
4357						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
4358						 <@}else{@>
4359						 0
4360						 <@}@>
4361					  </h3>
4362					  <p class="avgRatingReviews">/5</p>
4363				   </span>
4364				   <p class="avgRatingReviews">
4365					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
4366				   </p>
4367				</div>
4368			 </div>
4369		  </div>
4370	   </div>
4371	</div>
4372	</div>
4373	<@ } @>
4374	<div id="feedback6Reviewlist" class="reviewslist">
4375	   <@ $.each(items, function(index, item) { @>
4376			   <@ var template = _.template($("#feedback-6-item-template").html()); print(template({item: item})) @>
4377	   <@ }); @>
4378	   <@}@>
4379	</div>
4380	<div class="row clearfix">
4381	   <div class="column full" style="text-align: center;">
4382		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-6-item-template" data-reviewData="feedback6Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#6715FF; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
4383			View All Reviews
4384		  </a>
4385	   </div>
4386	</div>
4387	</script>
4387
4388	
4389	
4389<script type="text/template" id="feedback-6-item-template">
4390		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
4391		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
4392			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
4393				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
4394					<a  style="color:#6715FF !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
4395				<@ } @>
4396				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
4397				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
4398					</p>
4399				<div class="reviewerName">
4400				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
4401					   <@ print(item.userName) @>
4402					</p></div>
4403				
4404				 <p style="margin: 0px;">
4405					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
4406						<@ if(item.rating >= ratingsSize) {@> 
4407							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#6715FF !important;"></i>
4408						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
4409							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#6715FF !important;"></i> 
4410						<@ } @> 
4411					<@ }@>
4412				 </p>		
4413	
4414			   </div>
4415		  </div>	
4416	   </div>
4417	</script>
4417
4418	
4418<script type="text/template" id="feedback-6-createTemplate">
4419		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4420	  <div class="is-boxes">
4421		<div class="is-box-centered">
4422		  <div class="is-container container" style="max-width: 1200px;">
4423		
4424			<div class="review-box review-add-box">
4425				<div class="is-container container is-content-1200" >
4426				   <div class="row clearfix" >
4427					  <div class="column full" >
4428						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
4429					  </div>
4430				   </div>
4431				   <div class="textarea-cont" style="background:transparent">
4432					<div style="display:flex; gap:30px;">
4433						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
4434						<div class="review-star1 text-primary" 
4435						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
4436					   <span id="rating-stars" >
4437						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
4438							   <i class="fa fa-solid fa-star-sharp rating-star" 
4439								  data-value='<@- ratingsSize @>' 
4440								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
4441						   <@}@>
4442					   </span>
4443				   </div>
4444				   <style></style>
4445				   
4446				   
4447					</div>
4448					  <textarea class="add-review-textarea" id="reviewText" style="background:white;width: 100%; border: 1px solid #c3c0c0; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
4449					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4450							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: grey; margin-top: 0px;"><@ print(SPUSER.name) @></p>
4451					<@ } @>
4452				   </div>
4453				   <div  style=" display: flex; justify-content: center;">
4454					  <button style="letter-spacing:0px !important ; background-color:#6715FF;padding:12px 28px !important;margin-top:30px;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4455						data-reviewData="feedback6Reviewlist" disabled >Submit</button>
4456				   </div>
4457				</div>
4458			</div>
4459			</div>
4460			</div>
4461		</div>
4462	</div>
4463	</script>
4463
4464
4465
4466
4467
4468
4469<!-- Olive Feedback 7-->
4470<script type="text/template" id="feedback-7-template">
4471	<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
4472	<@if(msg){@>
4473		<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
4474	<@}else{@>
4475	<@ if(total > 0 && ratings && ratings.avgRating) {@>
4476	<div class="avgratingbox">
4477	<div class="column third">
4478	   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;" >
4479		  <div class="avgRatingInnerContainer">
4480			 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
4481			 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
4482				<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #064400 !important;"></i>
4483				<div style="margin-left: 25px;">
4484				   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
4485					  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #064400 !important; line-height: 1.3;">
4486						 <@ if(ratings && ratings.avgRating) {@>
4487						 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
4488						 <@}else{@>
4489						 0
4490						 <@}@>
4491					  </h3>
4492					  <p class="avgRatingReviews">/5</p>
4493				   </span>
4494				   <p class="avgRatingReviews">
4495					  <@ if(ratings){print(ratings.total) }else{0}@> reviews
4496				   </p>
4497				</div>
4498			 </div>
4499		  </div>
4500	   </div>
4501	</div>
4502	</div>
4503	<@ } @>
4504	<div id="feedback7Reviewlist" class="reviewslist">
4505	   <@ $.each(items, function(index, item) { @>
4506			   <@ var template = _.template($("#feedback-7-item-template").html()); print(template({item: item})) @>
4507	   <@ }); @>
4508	   <@}@>
4509	</div>
4510	<div class="row clearfix">
4511	   <div class="column full" style="text-align: center;">
4512		  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-7-item-template" data-reviewData="feedback7Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#064400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
4513			View All Reviews
4514		  </a>
4515	   </div>
4516	</div>
4517	</script>
4517
4518	
4519	
4519<script type="text/template" id="feedback-7-item-template">
4520		<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
4521		  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:white; padding:20px; ">
4522			 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
4523				<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
4524					<a  style="color:#064400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
4525				<@ } @>
4526				<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
4527				   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
4528					</p>
4529				<div class="reviewerName">
4530				   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
4531					   <@ print(item.userName) @>
4532					</p></div>
4533				
4534				 <p style="margin: 0px;">
4535					<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
4536						<@ if(item.rating >= ratingsSize) {@> 
4537							<i class="fa fa-solid fa-star-sharp text-primary" style="color:#064400 !important;"></i>
4538						<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
4539							<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#064400 !important;"></i> 
4540						<@ } @> 
4541					<@ }@>
4542				 </p>		
4543	
4544			   </div>
4545		  </div>	
4546	   </div>
4547	</script>
4547
4548	
4548<script type="text/template" id="feedback-7-createTemplate">
4549		<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4550	  <div class="is-boxes">
4551		<div class="is-box-centered">
4552		  <div class="is-container container" style="max-width: 1200px;">
4553		
4554			<div class="review-box review-add-box">
4555				<div class="is-container container is-content-1200" >
4556				   <div class="row clearfix" >
4557					  <div class="column full" >
4558						 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
4559					  </div>
4560				   </div>
4561				   <div class="textarea-cont">
4562					<div style="display:flex; gap:30px;">
4563						<div><h3 style="font-size:18px;font-weight:600;">Overall Rating</h3></div>
4564						<div class="review-star1 text-primary" 
4565						style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
4566					   <span id="rating-stars" >
4567						   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
4568							   <i class="fa fa-solid fa-star-sharp rating-star" 
4569								  data-value='<@- ratingsSize @>' 
4570								  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
4571						   <@}@>
4572					   </span>
4573				   </div>
4574				   <style></style>
4575				   
4576				   
4577					</div>
4578					  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
4579					  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4580							<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
4581					<@ } @>
4582				   </div>
4583				   <div  style=" display: flex; justify-content: center;">
4584					  <button style="letter-spacing:0px !important ; background-color:#064400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4585						data-reviewData="feedback7Reviewlist" disabled >Submit</button>
4586				   </div>
4587				</div>
4588			</div>
4589			</div>
4590			</div>
4591		</div>
4592	</div>
4593	</script>
4593
4594
4595
4596
4597
4598	<!--Dusk Feedback-8-->
4599	
4599<script type="text/template" id="feedback-8-template">
4600		<div class="column full feedbackContainer feedback2 spectre <@- total @>" style="padding: 0;">
4601		<@if(msg){@>
4602			<h4 style="letter-spacing: 2px; text-align: center;"><@print(msg)@></h4>
4603		<@}else{@>
4604		<@ if(total > 0 && ratings && ratings.avgRating) {@>
4605		<div class="avgratingbox">
4606		<div class="column third">
4607		   <div class="is-card avgRatingContainer" style="border-radius:16px !important ; padding:20px ;border:1px solid #E5E5E5 !important;background:#F5F5F5;" >
4608			  <div class="avgRatingInnerContainer">
4609				 <h3 style="font-weight: 800; font-size: 12px; line-height: 1.3; margin-bottom: 0px;">Customer ratings</h3>
4610				 <div  style="display: flex; flex-direction: row; align-items: center; justify-content: center;">
4611					<i class="icon ion-android-star text-primary" style="font-size: 80px;    color: #282400 !important;"></i>
4612					<div style="margin-left: 25px;">
4613					   <span style="display: flex; justify-content: flex-start; align-items: baseline;">
4614						  <h3 style="margin-top: 0px; margin-bottom: 0px; font-size: 32px; font-weight: 800;     color: #282400 !important; line-height: 1.3;">
4615							 <@ if(ratings && ratings.avgRating) {@>
4616							 <@ print(parseFloat(ratings.avgRating.toFixed(1))) @>
4617							 <@}else{@>
4618							 0
4619							 <@}@>
4620						  </h3>
4621						  <p class="avgRatingReviews">/5</p>
4622					   </span>
4623					   <p class="avgRatingReviews">
4624						  <@ if(ratings){print(ratings.total) }else{0}@> reviews
4625					   </p>
4626					</div>
4627				 </div>
4628			  </div>
4629		   </div>
4630		</div>
4631		</div>
4632		<@ } @>
4633		<div id="feedback8Reviewlist" class="reviewslist">
4634		   <@ $.each(items, function(index, item) { @>
4635				   <@ var template = _.template($("#feedback-8-item-template").html()); print(template({item: item})) @>
4636		   <@ }); @>
4637		   <@}@>
4638		</div>
4639		<div class="row clearfix">
4640		   <div class="column full" style="text-align: center;">
4641			  <a class="loadMoreReviewsBtn reviewLMbtn text-primary" data-itemTemplate="feedback-8-item-template" data-reviewData="feedback8Reviewlist" style="text-align: center; font-size: 16px; font-weight: 500;cursor: pointer;line-height: 1.5;display: none; background:#282400; color:white; padding:12px 28px; border-radius:24px;text-decoration:none;">
4642				View All Reviews
4643			  </a>
4644		   </div>
4645		</div>
4646		</script>
4646
4647		
4648		
4648<script type="text/template" id="feedback-8-item-template">
4649			<div class="column third reviewcontainer <@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>selfreview<@ } @>">
4650			  <div class="is-card avgRatingContainer" style="border:1px solid #E5E5E5 !important; border-radius:16px !important;background:#F5F5F5; padding:20px; ">
4651				 <div style="text-align: center; display: flex; flex-direction: column; align-items: flex-start;" >
4652					<@ if(typeof SPUSER !== 'undefined' && item["userId"] === SPUSER.id)	{ @>
4653						<a  style="color:#282400 !important;" class="btn btn-link float-right deleteCurrentReviewBtn" data-id="<@ print(item['_id']) @>"><i class="material-icons">delete</i></a>
4654					<@ } @>
4655					<p class="reviewTxt" style="font-size: 14px; font-weight: 400; line-height: 1.5; margin-bottom: 25px; margin-top: 0px; min-height: 82px; max-height: 80px; overflow: hidden;">
4656					   <@ print(item.reviewtext.replace(/</g,'&lt;').replace(/>/g,'&gt;')) @>
4657						</p>
4658					<div class="reviewerName">
4659					   <p style="font-size: 12px; font-weight: 500; line-height: 1.3;  text-align: left; padding-top: 0px; margin:0px; opacity:0.5;">
4660						   <@ print(item.userName) @>
4661						</p></div>
4662					
4663					 <p style="margin: 0px;">
4664						<@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@> 
4665							<@ if(item.rating >= ratingsSize) {@> 
4666								<i class="fa fa-solid fa-star-sharp text-primary" style="color:#282400 !important;"></i>
4667							<@ } else if(item.rating > ratingsSize-1 && item.rating < ratingsSize) { @> 
4668								<i class="fa fa-solid fa-star-sharp-half text-primary" style="color:#282400 !important;"></i> 
4669							<@ } @> 
4670						<@ }@>
4671					 </p>		
4672		
4673				   </div>
4674			  </div>	
4675		   </div>
4676		</script>
4676
4677		
4677<script type="text/template" id="feedback-8-createTemplate">
4678			<div data-cat="1" class="is-section is-box is-section-20" id="createCustomReview" style="display: none;" data-id="<@- parentId @>">
4679		  <div class="is-boxes">
4680			<div class="is-box-centered">
4681			  <div class="is-container container" style="max-width: 1200px;">
4682			
4683				<div class="review-box review-add-box">
4684					<div class="is-container container is-content-1200" >
4685					   <div class="row clearfix" >
4686						  <div class="column full" >
4687							 <h1 style="text-align: left; font-size: 32px; line-height: 1.1; font-weight: 600; letter-spacing: 0px; color: black; ">Add a review</h1>
4688						  </div>
4689					   </div>
4690					   <div class="textarea-cont">
4691						<div style="display:flex; gap:30px;">
4692							<div><h3 style="font-size:18px;font-weight:600;">Overall rating</h3></div>
4693							<div class="review-star1 text-primary" 
4694							style="display: flex; flex-direction: row; align-items: center; padding-top: 0px; margin-top: 0px;margin-left:0px !important;margin:0px !important">
4695						   <span id="rating-stars" >
4696							   <@ for (ratingsSize = 1; ratingsSize <= 5; ratingsSize++) {@>
4697								   <i class="fa fa-solid fa-star-sharp rating-star" 
4698									  data-value='<@- ratingsSize @>' 
4699									  style="width: 20px; height: 20px; text-align: center; flex-shrink: 0; margin: 0; padding: 0;"></i>
4700							   <@}@>
4701						   </span>
4702					   </div>
4703					   <style></style>
4704					   
4705					   
4706						</div>
4707						  <textarea class="add-review-textarea" id="reviewText" style="background:#E5E5E5;width: 100%; border: 1px solid #E5E5E5; padding-right: 28px; padding-bottom: 28px;padding-left:20px; min-height: 180px; font-size: 14px; font-weight: 500; line-height: 1.5; padding-top: 10px;border-radius:16px !important" placeholder="Add your review here"></textarea>
4708						  <@ if(typeof SPUSER !== 'undefined' && SPUSER.name.length > 0)	{ @>
4709								<p style="font-weight: 400; font-size: 10px; line-height: 1.3; color: rgba(255, 255, 255, 0.5); margin-top: 0px;"><@ print(SPUSER.name) @></p>
4710						<@ } @>
4711					   </div>
4712					   <div  style=" display: flex; justify-content: center;">
4713						  <button style="letter-spacing:0px !important ; background-color:#282400;padding:12px 28px !important;" id="reviewSubmitBtn" class="btn btn-primary <@ if(typeof SPUSER !== 'undefined'){ print('createCustomReviewBtn') }else { print('loginBtn') } @>"
4714							data-reviewData="feedback8Reviewlist" disabled >Submit</button>
4715					   </div>
4716					</div>
4717				</div>
4718				</div>
4719				</div>
4720			</div>
4721		</div>
4722		</script>
4722
4723
4724
4725
4726<div class="spectre">
4727<div class="modal" id="reviewModal">
4728			<a href="javascript:void(0);" class="modal-overlay close"
4729				aria-label="Close"></a>	
4730			<div class="modal-container">
4731				<div class="modal-header">
4732					<a href="javascript:void(0);"
4733						class="close btn btn-clear float-right" aria-label="Close"></a>
4734					<div class="modal-title h5">Review</div>
4735				</div>
4736				<div class="modal-body" style="max-height: 90vh;padding-top: 0;">
4737				</div>
4738			</div>
4739			
4740			  
4741			  
4742</div>
4743
4744  
4745</div>
4746
4747
4748
4749
4750
4751    
4752
4753
4754
4755
4756	<div id="ui-notification-container" class="spectre"></div>
4757	
4757<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-easing.js"></script>
4757
4758	
4758<script src="https://d502jbuhuh9wk.cloudfront.net/resources/js/jquery-notification.js"></script>
4758
4759
4760	<!-- Import and configure the Firebase SDK -->
4761	<!-- These scripts are made available when the app is served or deployed on Firebase Hosting -->
4762	<!-- If you do not serve/host your project using Firebase Hosting see https://firebase.google.com/docs/web/setup -->
4763	
4763<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-app.js"></script>
4763
4764	
4764<script src="https://www.gstatic.com/firebasejs/8.10.0/firebase-messaging.js"></script>
4764
4765
4766	
4766<script>
4767  // Retrieve Firebase Messaging object.
4768  var firebaseConfig = {"apiKey":"AIzaSyCQ2wNyeXrIzifB0IKKVCalHXrDk7pg32w","authDomain":"live-stream-chat-efac5.firebaseapp.com","databaseURL":"https://live-stream-chat-efac5.firebaseio.com","projectId":"live-stream-chat-efac5","storageBucket":"live-stream-chat-efac5.appspot.com","messagingSenderId":"158909475587","appId":"1:158909475587:web:93ede0a9feef2b3f"};
4769  // Initialize Firebase
4770  firebase.initializeApp(firebaseConfig);
4771  const messaging = firebase.messaging();
4772  // Add the public key generated from the console here.
4773  messaging.usePublicVapidKey("BN3BYOmWjo3NAW7if4jCE5cG-yIOXAvmoKB9k53ZssAfgb7Z6ZZ-oAQWFK7j6EqHIG3f-G9QAVKLOIK7Vw3X0_k");
4774
4775  // Callback fired if Instance ID token is updated.
4776  messaging.onTokenRefresh(function(){
4777    messaging.getToken().then(function(refreshedToken){
4778      // Indicate that the new Instance ID token has not yet been sent to the
4779      // app server.
4780      setTokenSentToServer(false);
4781      // Send Instance ID token to app server.
4782      sendTokenToServer(refreshedToken);
4783      // Display new Instance ID token and clear UI of all previous messages.
4784      resetUI();
4785      // [END_EXCLUDE]
4786    })["catch"](function(err){
4787      console.log('Unable to retrieve refreshed token ', err);
4788      showToken('Unable to retrieve refreshed token ', err);
4789      requestPermission();
4790    });
4791  });
4792
4793  // Handle incoming messages. Called when:
4794  // - a message is received while the app has focus
4795  // - the user clicks on an app notification created by a service worker
4796  //   `messaging.setBackgroundMessageHandler` handler.
4797  messaging.onMessage(function(payload){
4798    console.log('Message received. ', payload);
4799    appendMessage(payload);
4800  });
4801
4802  function resetUI() {
4803    clearMessages();
4804    $(function(){
4805        $("#ui-notification-container").notification();
4806    });
4807    // Get Instance ID token. Initially this makes a network call, once retrieved
4808    // subsequent calls to getToken will return from cache.
4809    messaging.getToken().then(function(currentToken) {
4810      if (currentToken) {
4811        sendTokenToServer(currentToken);
4812        updateUIForPushEnabled(currentToken);
4813      } else {
4814        // Show permission request.
4815        console.log('No Instance ID token available. Request permission to generate one.');
4816        // Show permission UI.
4817        updateUIForPushPermissionRequired();
4818        setTokenSentToServer(false);
4819      }
4820    })["catch"](function(err) {
4821      console.log('An error occurred while retrieving token. ', err);
4822      showToken('Error retrieving Instance ID token. ', err);
4823      setTokenSentToServer(false);
4824    });
4825    // [END get_token]
4826  }
4827
4828  function showToken(currentToken) {
4829    // Show token in console and UI.
4830    console.log(currentToken);
4831  }
4832
4833  // Send the Instance ID token your application server, so that it can:
4834  // - send messages back to this app
4835  // - subscribe/unsubscribe the token from topics
4836  function sendTokenToServer(currentToken) {
4837    if (!isTokenSentToServer()) {
4838      console.log('Sending token to server...');
4839      var packet = {
4840			  url : "/public/v1/fcm/token",
4841			  data: {token: currentToken},
4842			  success: function(data, params) {
4843				  console.log("Token successfully sent")
4844				  setTokenSentToServer(true);
4845				  setTokenSentToServerUserId(window.userId);
4846			  }
4847	  };
4848	  postData(packet, {});
4849    } else {
4850      console.log('Token already sent to server so won\'t send it again ' +
4851          'unless it changes');
4852    }
4853
4854  }
4855
4856  function isTokenSentToServer() {
4857    return window.localStorage.getItem('sentToServer') === '1' && isTokenSentToServerWithUser(window.userId);
4858  }
4859  
4860  function isTokenSentToServerWithUser(userId) {
4861	 return window.localStorage.getItem('sentToServer-user') === userId;
4862  }
4863
4864  function setTokenSentToServer(sent) {
4865    window.localStorage.setItem('sentToServer', sent ? '1' : '0');
4866  }
4867  
4868  function setTokenSentToServerUserId(userId) {
4869	    window.localStorage.setItem('sentToServer-user', userId);
4870  }
4871
4872  function requestPermission() {
4873    console.log('Requesting permission...');
4874    // [START request_permission]
4875    Notification.requestPermission().then(function(permission) {
4876      if (permission === 'granted') {
4877        console.log('Notification permission granted.');
4878        resetUI();
4879      } else {
4880        console.log('Unable to get permission to notify.');
4881      }
4882    });
4883    // [END request_permission]
4884  }
4885
4886  function deleteToken() {
4887    // Delete Instance ID token.
4888    // [START delete_token]
4889    messaging.getToken().then(function(currentToken){
4890      messaging.deleteToken(currentToken).then(function(){
4891        console.log('Token deleted.');
4892        setTokenSentToServer(false);
4893        // Once token is deleted update UI.
4894        resetUI();
4895      })["catch"](function(err) {
4896        console.log('Unable to delete token. ', err);
4897      });
4898    })["catch"](function(err) {
4899      console.log('Error retrieving Instance ID token. ', err);
4900      showToken('Error retrieving Instance ID token. ', err);
4901    });
4902
4903  }
4904
4905  // Add a message to the messages element.
4906  function appendMessage(payload) {
4907	  $("#ui-notification-container").notification("create", {
4908          title: payload.data.title,
4909          content: payload.data.message,
4910          customIcon: payload.data.customIcon,
4911          customImage: payload.data.customImage,
4912          link: payload.data.link
4913      },
4914      {
4915          sticky: true 
4916      });
4917  }
4918
4919  // Clear the messages element of all children.
4920  function clearMessages() {
4921    const messagesElement = document.querySelector('#ui-notification-container');
4922    while (messagesElement.hasChildNodes()) {
4923      messagesElement.removeChild(messagesElement.lastChild);
4924    }
4925  }
4926
4927  function updateUIForPushEnabled(currentToken) {
4928	  showToken("Token update ui: " + currentToken);
4929  }
4930
4931  function updateUIForPushPermissionRequired() {
4932    console.warg("Push notification permission is requred")
4933  }
4934
4935  window.userId = "";
4936  resetUI();
4937  
4938  
4939 </script>
4939
4940
4941    
4941<script
4942      type="text/javascript"
4943      src="https://d502jbuhuh9wk.cloudfront.net/resources/js/intlTelInput.min.js"
4944    ></script>
4944
4945    
4945<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/sstore_5ffb558e86d7b5ef265e05fb0bfbef79.js?v=ed2501920c474b3ce5cefbd6892f21ef"></script>
4945
4946    
4946<script type="text/javascript">
4947      store.bindEvents();
4948      window.signupParams = {
4949        source: "digitalProductStore",
4950        platform: "web",
4951        sourceId: "",
4952      };
4953
4954      if (window.matchMedia("(max-width: 600px)").matches) {
4955    	  $("#mfeIFrame, .product-container.content-container").css("padding-top", "");
4956      }
4957    </script>
4957
4958    
4958<script src="https://d502jbuhuh9wk.cloudfront.net/static/files/lazyload.min.js"></script>
4958
4959    
4959<script type="text/javascript">
4960      var lazyLoadInstance = new LazyLoad({
4961        unobserve_entered: true,
4962        callback_enter: function (element) {
4963          resizeCdnImage(element);
4964        },
4965      });
4966    </script>
4966
4967    
4967<script>
4968      window.SPEERESCDN = "https://d502jbuhuh9wk.cloudfront.net";
4969      window.ORG_ID = "64bb94ebe4b0539686c35283";
4970    </script>
4970
4971    
4971<script src="https://d502jbuhuh9wk.cloudfront.net/staticfiles/resources/scripts/digital-product_301157a721b4628187c7445c759c8ac7.js"></script>
4971
4972  </body>
4973</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.