PageSourceSearch

https://learn.asge.org/Public/Catalog/Details.aspx?id=7E%2bwSyg4oDAuf7mCLOHTQw%3d%3d

html asge.org collected 2026-10-02 02:24:25 UTC 201,850 bytes, 2,476 lines download raw bytes

1
2
3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4<html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml"
5xml:lang="en" lang="en">
6<head id="Head1">
6<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info = {"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net","licenseKey":"8f0e834daf","applicationID":"1007448362","transactionName":"b1RUZ0cFXUEFAhBaVlYed2BlS0NHBg0NUBZbUEJSWQtUHQAEEFJQVEIYUkYUSw==","queueTime":0,"applicationTime":130,"agent":"","atts":""}</script>
6<script type="text/javascript">(window.NREUM||(NREUM={})).init={privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]},distributed_tracing:{enabled:true}};(window.NREUM||(NREUM={})).loader_config={agentID:"1007448677",accountID:"911097",trustKey:"911097",xpid:"XQcGUV9UGwIAVFZWAwkEUFY=",licenseKey:"8f0e834daf",applicationID:"1007448362",browserID:"1007448677"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
7(()=>{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};
7e.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;
7const 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);
7if(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$:()=>
7o,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])}
7(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}
7;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)=>
7{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
7ine_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()=>
7{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)=>
7null==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
7dTimingMethod(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
7imeToRegister: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})})}
7return 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"
7!==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);
7if(!(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)}
7);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)})});
7class 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
7h(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>
7<title>
8	Quality Essentials Learning Bundle | 2026
9</title><link id="ApplicationRoot" rel="home" href="../../Default.aspx" hreflang="en" type="text/html" /><link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400i,700,700i" rel="stylesheet" type="text/css" /><link type="text/css" rel="stylesheet"  href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/ui-lightness/jquery-ui.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/card.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/item.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/label.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/icon.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/input.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/button.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/image.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/segment.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/menu.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/table.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/step.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/statistic.min.css" /><link type="text/css" rel="stylesheet"  href="https://cdn.jsdelivr.net/npm/[email protected]/dist/components/divider.min.css" /><link rel="stylesheet" href="/Styles/bootstrap/css/bootstrap.min.css" type="text/css" /><link href="/Scripts/BootstrapToggle/css/bootstrap-toggle.min.css" rel="stylesheet" type="text/css" /><link href="/Styles/Fancybox2/source/jquery.fancybox.css?v=2.1.0" rel="stylesheet" type="text/css" /><link href="/Styles/Fancybox2/source/helpers/jquery.fancybox-buttons.css?v=11_14_2016" rel="stylesheet" type="text/css" /><link href="/Styles/Fancybox2/source/helpers/jquery.fancybox-zoom.css?v=1.0.0" rel="stylesheet" type="text/css" /><link href="../../Styles/site.css?v=360.2.49.css33" rel="stylesheet" type="text/css" /><link href="../../Styles/Exam.css?v=7_11_2016" rel="stylesheet" type="text/css" /><link href="../../Styles/learningActivityCatalog.css?v=360.2.49.lac1" rel="stylesheet" type="text/css" />
9<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
9<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
9<script src="/Styles/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
9<script>
10window.dataLayer = window.dataLayer || [];
11window.dataLayer.push({"course_name":"Quality Essentials Learning Bundle | 2026","product_code":"OLQUALBUN2026","module_name":null});
12window.dataLayer.push({
13  "event": "launch_course",
14  "course_name": "Quality Essentials Learning Bundle | 2026",
15  "product_code": "OLQUALBUN2026",
16  "module_name": null
17});
18</script>
18
19
20<script>
21window.OasisGlassDataLayer = window.OasisGlassDataLayer || [];
22window.OasisGlassDataLayer.push({"course_name":"Quality Essentials Learning Bundle | 2026","product_code":"OLQUALBUN2026","module_name":null});
23window.OasisGlassDataLayer.push({
24  "event": "launch_course",
25  "course_name": "Quality Essentials Learning Bundle | 2026",
26  "product_code": "OLQUALBUN2026",
27  "module_name": null
28});
29</script>
29
30
31
32    
32<script src="/Scripts/jquery.ui.touch-punch.min.js" type="text/javascript"></script>
32
33    
34    
34<script src="/Scripts/js/noty/jquery.noty.min.js" type="text/javascript"></script>
34
35    
35<script src="/Scripts/js/noty/layouts/topRight.js" type="text/javascript"></script>
35
36    
36<script src="/Scripts/js/noty/layouts/bottomRight.js" type="text/javascript"></script>
36
37    
37<script src="/Scripts/js/noty/layouts/center.js" type="text/javascript"></script>
37
38    
38<script src="/Scripts/js/noty/layouts/topCenter.js" type="text/javascript"></script>
38
39    
39<script src="/Scripts/js/noty/themes/oasis.js?v=360.2.40.15" type="text/javascript"></script>
39
40    
41    
42    
42<script src="/Scripts/SessionTimeout/jquery.idletimeout.js" type="text/javascript"></script>
42
43    
43<script src="/Scripts/SessionTimeout/jquery.idletimer.js" type="text/javascript"></script>
43
44    
45    
45<script src="/Scripts/ie10fix.js" type="text/javascript"></script>
45
46
47    
47<script type="text/javascript" src="https://learn.asge.org/Scripts/jquery.blockUI.min.js"></script>
47<script type="text/javascript" src="https://cloud.tinymce.com/5/tinymce.min.js?apiKey=b12vtljriegpyx8t9bn8xjgvbeb9rqao2umsk83bm7ntoq9m"></script>
47<link href="//vjs.zencdn.net/4.6/video-js.css" rel="stylesheet" />
47<script type="text/javascript" src="https://vjs.zencdn.net/4.6/video.js"></script>
47
48    
48<script src="/Scripts/video-js/4.5.1/youtube.min.js" type="text/javascript"></script>
48
49    
49<script type="text/javascript">
50        videojs.options.flash.swf = "/Scripts/video-js/video-js.swf";
51    </script>
51
52    
52<script src="https://cdn.jwplayer.com/libraries/wGjZW9II.js" type="text/javascript"></script>
52
53
54    
55    
55<script type="text/javascript" src="/Scripts/overlib.js"></script>
55
56    
57    
58
59    
59<script src="/Scripts/BootstrapToggle/js/bootstrap-toggle.min.js" type="text/javascript"></script>
59
60    
61    
62    
62<script src="/Styles/Fancybox2/source/jquery.fancybox.pack.js?v=2.1.0" type="text/javascript"></script>
62
63    
63<script src="/Styles/Fancybox2/source/helpers/jquery.fancybox-zoom.js?v=1.0.0" type="text/javascript"></script>
63
64    
64<script src="/Styles/Fancybox2/source/helpers/jquery.fancybox-buttons.js?v=2.1.4" type="text/javascript"></script>
64
65    
66
67    <link href="/fontawesome/css/all.min.css?v=360.2.49.css2" rel="stylesheet" /><link href="/fontawesome/css/custom-icons.min.css?v=360.2.49.ci3" rel="stylesheet" />
67<script src="/Scripts/jquery.easing-1.3.pack.min.js" type="text/javascript"></script>
67
68
69    
69<script src="/Scripts/jquery.signalR-2.4.3.min.js" type="text/javascript"></script>
69
70    
71
72    
72<script src="/Scripts/readmore.min.js" type="text/javascript"></script>
72
73
74    
75    
75<script src="//cdn.jsdelivr.net/npm/sweetalert2@11"></script>
75
76    
77
78    
78<script type="text/javascript" src="/Scripts/features.js?v=360.2.49.10"></script>
78
79    
80    
80<script type="text/javascript" src="/Scripts/webServiceSessionExpiredHandler.js?v=360.2.49.10"></script>
80
81    
81<script type="text/javascript" src="/Scripts/factor360richtextfeature.js?v=360.2.49rt1"></script>
81
82    
82<script type="text/javascript" src="/Scripts/learningActivityCatalog.js?v=360.2.49.lac4"></script>
82
83
84    <style type="text/css">
85        #imgNotification {
86            opacity: 0.6;
87            filter: alpha(opacity=60); /* For IE8 and earlier */
88        }
89
90        .wordWrapWordBreak {
91            display: block;
92            word-wrap: break-word; /* This will not be recognized by Visual Studio, but it works. */
93        }
94
95        #imgNotification:hover {
96            opacity: 1;
97            filter: alpha(opacity=100); /* For IE8 and earlier */
98        }
99
100        .RadGrid {
101            outline: none;
102        }
103
104        a.ui-dialog-titlebar-close {
105            display: none;
106        }
107
108        .languageDropdown ul.rcbList li img.rcbImage {
109            height: 24px;
110        }
111
112        input.rcbInput.languageDropdownInput {
113            height: 24px;
114        }
115
116        #divLanguageSelectorBox {
117            text-align: center;
118        }
119
120        .factor360AccountNavigation {
121            margin-top: -10px;
122        }
123
124        .navbar.factor360AccountNavigation {
125            margin-bottom: 0px; /* so that it does not block our main menu */
126            z-index: 1001;
127        }
128
129        .factor360Nav {
130            display: -webkit-box;
131            display: -ms-flexbox;
132            display: flex;
133            -webkit-box-align: start;
134            -ms-flex-align: start;
135            align-items: flex-start;
136            -webkit-box-pack: end;
137            -ms-flex-pack: end;
138            justify-content: flex-end;
139            -webkit-box-orient: horizontal;
140            -webkit-box-direction: normal;
141            -ms-flex-flow: row wrap;
142            flex-flow: row wrap;
143        }
144            /* use flexbox so that shopping cart icon does not get dragged to the bottom when account menu is opened */
145
146            .factor360Nav > li {
147                /*display: inline-block;  prevent this navigation item to wrap into multiple line on small screen */
148            }
149
150                .factor360Nav > li > a:hover,
151                .factor360Nav > li > a:active,
152                .factor360Nav > li > a:focus,
153                .factor360Nav .open > a, .factor360Nav .open > a:focus, .factor360Nav .open > a:hover {
154                    background-color: transparent;
155                }
156
157        @media (max-width: 767px) { /* follows navbar.less from bootstrap */
158            .navbar-nav .open .dropdown-menu {
159                background-color: #fff;
160                border-bottom: 3px solid #444444;
161            }
162        }
163
164        .factor360Nav > li > a {
165            padding-bottom: 5px;
166        }
167
168        .modal-dialog {
169            margin-top: 15%;
170        }
171
172
173
174        .languageSelectorPanel {
175            position: absolute;
176            top: 8px;
177            right: 0px;
178            margin: 5px;
179        }
180
181
182        #noty_topRight_layout_container {
183            display: none;
184        }
185        /* Medium Devices, Desktops */
186        @media only screen and (min-width : 768px) {
187            #noty_topRight_layout_container {
188                display: inherit;
189            }
190        }
191
192        .divHeadLogin {
193            margin: 10px auto;
194        }
195    </style>
196
197    
198    <!-- Latest compiled and minified CSS -->
199    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
200    <link href='../../Styles/Site_Responsive.css?v=360.2.40.sr1' rel="stylesheet" type="text/css" />
201    <style type="text/css">
202        .catalogContainer {
203            display: -webkit-flex;
204            display: flex;
205        }
206
207        .mainCatalogColumn {
208            -webkit-flex: 1 0 65%;
209            flex: 1 0 66%;
210        }
211
212        .mainCatalogColumn95 {
213            -webkit-flex: 1 0 95%;
214            flex: 1 0 95%;
215        }
216
217        .sideCatalogColumn {
218            -webkit-flex: 0 1 35%;
219            flex: 0 1 34%;
220            margin-left: 10px;
221        }
222
223        @media all and (max-width: 768px) {
224
225            .catalogContainer {
226                -webkit-flex-direction: column;
227                flex-direction: column;
228            }
229
230            .mainCatalogColumn {
231                flex: 0,0, auto;
232                -webkit-order: 2;
233                order: 2;
234            }
235
236            .sideCatalogColumn {
237                margin-left: 0;
238                flex: 0,0, auto;
239                -webkit-order: 1;
240                order: 1;
241            }
242
243            .mobile-content-separator {
244                margin-bottom: 20px;
245            }
246        }
247    </style>
248
249    <style type="text/css">
250        /*Add transition to containers so they can push in and out.*/
251        #divCatalogWithSideBar_MainLayout,
252        #divCatalogWithSideBar_LeftSideBar,
253        .catalogWithSideBar_hamburger {
254            -webkit-transition: all 0.2s ease-out;
255            -moz-transition: all 0.2s ease-out;
256            -ms-transition: all 0.2s ease-out;
257            -o-transition: all 0.2s ease-out;
258            transition: all 0.2s ease-out;
259        }
260        /*This is the parent div that contains the menu and the content area.*/
261        #divCatalogWithSideBar_MainLayout {
262            position: relative;
263            padding-left: 0;
264        }
265        /* -- Dynamic vertical menu button on the left side -------------------------------------*/
266        /*`.catalogWithSideBar_hamburger` represents the responsive menu toggle that shows/hides onsmall screens.*/
267        .catalogWithSideBar_hamburger {
268            position: absolute;
269            display: block;
270            /* show this only on small screens */
271            top: 0;
272            left: 0;
273            font-size: 1.5em;
274            /* change this value to increase/decrease button size */
275            z-index: 1; /* so that it does not show up on top of the bootstrap My Account menu dropdown  */
276            height: auto;
277            padding: 5px;
278            color: inherit !important;
279            cursor: pointer;
280        }
281
282            .catalogWithSideBar_hamburger:hover {
283                color: inherit;
284            }
285        /* Active components (when user clicks on hamburger) */
286        #divCatalogWithSideBar_MainLayout.active #divCatalogWithSideBar_LeftSideBar {
287            left: 300px;
288            width: 150px;
289        }
290
291        #divCatalogWithSideBar_MainLayout.active .catalogWithSideBar_hamburger {
292            left: 150px;
293        }
294
295
296        /* -- Responsive Styles (Media Queries) ------------------------------------- */
297        @media all {
298            /* < 1300 px : Hide  */
299            #divCatalogWithSideBar_LeftSideBar {
300                left: -150px; /* as if the side bar disappear */
301                width: 150px;
302            }
303
304                #divCatalogWithSideBar_LeftSideBar.active {
305                    left: 150px;
306                    width: 150px;
307                }
308
309            .catalogWithSideBar_hamburger {
310                display: block;
311            }
312
313                .catalogWithSideBar_hamburger.active {
314                    left: 150px; /* for the active left sidebar width*/
315                }
316        }
317
318        @media all and (min-width:1075px) {
319            /* 1175 - 1300 px : Icon only  */
320            #divCatalogWithSideBar_MainLayout {
321                padding-left: 0;
322                /* left col width "#divCatalogWithSideBar_LeftSideBar" */
323                left: 0;
324            }
325
326            #divCatalogWithSideBar_LeftSideBar {
327                left: 70px; /* as if the side bar sticking to left boarder (150px original - 80 px width) */
328                width: 80px;
329            }
330
331                #divCatalogWithSideBar_LeftSideBar.active {
332                    left: 70px;
333                    width: 80px;
334                }
335
336            #divCatalogWithSideBar_MainLayout.active .catalogWithSideBar_hamburger {
337                left: 150px;
338            }
339
340            .catalogWithSideBar_hamburger {
341                display: none;
342            }
343
344                .catalogWithSideBar_hamburger.active {
345                    left: 150px; /* for the active left sidebar width*/
346                }
347        }
348
349        @media all and (min-width:1300px) {
350            /* 1176 - 1400 px : Icon only  */
351            #divCatalogWithSideBar_MainLayout {
352                padding-left: 0;
353                /* left col width "#divCatalogWithSideBar_LeftSideBar" */
354                left: 0;
355            }
356
357            #divCatalogWithSideBar_LeftSideBar {
358                left: 70px; /* as if the side bar sticking to left boarder (150px original - 80 px width) */
359                width: 80px;
360            }
361
362                #divCatalogWithSideBar_LeftSideBar.active {
363                    left: 70px;
364                    width: 80px;
365                }
366
367            #divCatalogWithSideBar_MainLayout.active .catalogWithSideBar_hamburger {
368                left: 150px;
369            }
370
371            .catalogWithSideBar_hamburger {
372                display: none;
373            }
374
375                .catalogWithSideBar_hamburger.active {
376                    left: 150px; /* for the active left sidebar width*/
377                }
378        }
379
380        @media all and (min-width:1401px) {
381            /* 1400 --> 1500 px: Icon + New Line + Description  */
382            #divCatalogWithSideBar_LeftSideBar {
383                left: 30px;
384                width: 120px;
385            }
386
387            .catalogWithSideBar_hamburger {
388                display: none;
389            }
390
391            #divCatalogWithSideBar_LeftSideBar.active {
392                left: 30px;
393                width: 120px;
394            }
395        }
396
397        @media all and (min-width:1501px) {
398            /* 1500+ px: Icon + Description  */
399            #divCatalogWithSideBar_LeftSideBar {
400                left: 0;
401                width: 150px;
402            }
403
404                #divCatalogWithSideBar_LeftSideBar.active {
405                    left: 0;
406                    width: 150px;
407                }
408        }
409
410        @media all and (min-width: 1300px) {
411            .divPublicMenuWrapper .oasisWrap.fullwidth {
412                padding-left: 75px;
413                padding-right: 75px;
414                width: 100%;
415            }
416
417            .oasisWrap.fullwidth.fullScreenWithSideBar #divCatalogWithSideBar_MainLayout {
418                padding-left: 75px;
419                padding-right: 75px;
420                width: 100%;
421            }
422        }
423
424        @media all and (min-width: 1401px) {
425            .divPublicMenuWrapper .oasisWrap.fullwidth {
426                padding-left: 110px;
427                padding-right: 110px;
428                width: 100%;
429            }
430
431            .oasisWrap.fullwidth.fullScreenWithSideBar #divCatalogWithSideBar_MainLayout {
432                padding-left: 110px;
433                padding-right: 110px;
434                width: 100%;
435            }
436        }
437
438        @media all and (min-width: 1501px) {
439            .divPublicMenuWrapper .oasisWrap.fullwidth {
440                padding-left: 152px;
441                padding-right: 152px;
442                width: 100%;
443            }
444
445            .oasisWrap.fullwidth.fullScreenWithSideBar #divCatalogWithSideBar_MainLayout {
446                padding-left: 152px;
447                padding-right: 152px;
448                width: 100%;
449            }
450        }
451
452
453        fullScreenWithSideBar .factor360LeftSideBarWrapper {
454            margin-left: 0px;
455        }
456
457        .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar {
458            left: 0px;
459            width: 150px;
460        }
461
462            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar.expand {
463                width: 150px;
464                left: 150px;
465            }
466
467        .fullScreenWithSideBar #divUserPageWithSideBar_MainLayout {
468            padding-left: 1px;
469            padding-right: 1px;
470        }
471
472        @media all and (min-width:1200px) {
473            /*1176 - 1400 px : Icon only*/
474            .fullScreenWithSideBar .factor360LeftSideBarWrapper {
475                margin-left: 0px;
476            }
477
478            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar {
479                left: 0px;
480                width: 65px;
481                overflow: hidden;
482            }
483
484                .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar.expand {
485                    width: 65px;
486                }
487
488            .fullScreenWithSideBar #divUserPageWithSideBar_MainLayout {
489                padding-left: 75px;
490                padding-right: 75px;
491            }
492        }
493
494        @media all and (min-width:1300px) {
495            .fullScreenWithSideBar .factor360LeftSideBarWrapper {
496                margin-left: 0px;
497            }
498
499            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar {
500                left: 0px;
501                width: 65px;
502            }
503
504                .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar.expand {
505                    width: 65px;
506                }
507
508            .fullScreenWithSideBar #divUserPageWithSideBar_MainLayout {
509                padding-left: 75px;
510                padding-right: 75px;
511            }
512        }
513
514        @media all and (min-width:1401px) {
515            .fullScreenWithSideBar .factor360LeftSideBarWrapper {
516                margin-left: 0px;
517            }
518
519            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar {
520                left: 30px;
521                width: 120px;
522            }
523
524            .fullScreenWithSideBar .factor360LeftSideBarWrapper {
525                padding-left: 15px;
526            }
527
528            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar.expand {
529                left: 30px;
530                width: 120px;
531            }
532
533            .fullScreenWithSideBar #divUserPageWithSideBar_MainLayout {
534                padding-left: 110px;
535                padding-right: 110px;
536            }
537        }
538
539        @media all and (min-width:1501px) {
540            .fullScreenWithSideBar .factor360LeftSideBarWrapper {
541                margin-left: 0px;
542            }
543
544            .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar {
545                left: 0px;
546                width: 150px;
547            }
548
549                .fullScreenWithSideBar #divUserPageWithSideBar_LeftSideBar.expand {
550                    width: 150px;
551                }
552
553            .fullScreenWithSideBar #divUserPageWithSideBar_MainLayout {
554                padding-left: 152px;
555                padding-right: 152px;
556            }
557        }
558    </style>
559    
560    <link rel="canonical" href="https://learn.asge.org/Listing/Quality-Essentials-Learning-Bundle-2026-5172" />
561
562<link href="../../images/ASGE/asge.ico" rel="shortcut icon" type="image/x-icon" /><link href="../../Styles/__bahamaBlue.css?v=360.2.47.16" rel="stylesheet" type="text/css" /><link rel="stylesheet" type="text/css" /><style id="clientCustomStyling" type="text/css" rel="stylesheet">body {  font-family: 'Arial';}body { background:none; background-color:#FFFFFF;}.box_notification.error.failedLearningActivityNotification { background-color: #66FFFF;}.box_notification.error.failedLearningActivityNotification { color: #111111;}.factor360ClientCustomPurchaseButton, .btnAccessClass  {
563                                            
564                                            
565                                        }.oasisCustomNottyWrapper.error, .oasisCustomNottyContainer.error {
566                                            
567                                            
568                                            
569                                        }.oasisCustomNottyWrapper.warning,  .oasisCustomNottyContainer.warning  {
570                                            
571                                            
572                                            
573                                        }.oasisCustomNottyWrapper.information , .oasisCustomNottyContainer.information  {
574                                            
575                                            
576                                            
577                                        }:root {
578 
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595                                    }</style><link href="https://fonts.googleapis.com/css2?family=Alex+Brush&amp;display=swap" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600;1,700&amp;display=swap" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&amp;display=swap" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@300;400&amp;display=swap" rel="stylesheet" type="text/css" /><link href="https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&amp;display=swap" rel="stylesheet" type="text/css" /><meta name="ROBOTS" content="INDEX,NOFOLLOW" /><meta name="CourseName" content="Quality Essentials Learning Bundle | 2026" /><meta name="CourseName" content="GI Unit Leadership: Shaping a High-Performing Endoscopy Unit (On-Demand) | February 2026" /><meta name="CourseName" content="The ASGE Quality Course: Improving Quality and Safety in the Endoscopy Unit (On-demand) | November 2025" /><meta name="CreditType" content="CME" /><meta name="CreditType" content="Participation" /><meta name="MemberPrice" content="$600.00" /><meta name="Non-MemberPrice" content="$800.00" /><link href="/WebResource.axd?d=urCACUaUZeT6oPoIZXShbrtebslNNaPQ94R80p_5ti-c3afVxIILq_GE2rctEJuyhDB0dNmZ4RaWaOKXRBlQzfefY8ve-PWznHenIcDQ8Ye6KkLDHkjFrye6mt61WlsH0&amp;t=639264198921335729" type="text/css" rel="stylesheet" class="Telerik_stylesheet" /><link href="/WebResource.axd?d=4ytSv8sIF7k2K6JRNAeY3XTFk_LIfceBezreb-F4-emuH9H21H7fyhYsBn56Mx0SWJwPF9tJSYCLhqcT1VBEnBHHeoY4Im1-GyWtf2lurADhwi35EX4TVE_KE2C8hm8ZLujtx1WPxfKcQ5YELvL3bQ2&amp;t=639264198921335729" type="text/css" rel="stylesheet" class="Telerik_stylesheet" /></head>
596<body>
597    <div id="seoContent" style="display: none;">
598        
599    
600    
601
602    </div>
603    <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 65 bytes, lines 603-604
603
604<script async src="https://www.googletagmanager.com/gtag/js?id=
604UA-34293309-2
vendor: 13 bytes, line 604
604"></script>
605<script>
606  
vendor: 138 bytes, lines 606-610
606window.dataLayer = window.dataLayer || [];
607  function gtag(){dataLayer.push(arguments);}
608  gtag('js', new Date());
609
610  gtag('config', '
610UA-34293309-2
vendor: 5 bytes, line 610
610');
611</script>
vendor: 2 bytes, line 611
611
612<script  src="https://capture.oasis-analytics.com/tracker/glassAnalytics.js"  data-client-secret-key="0b7a4e3396b64096990ad9953a65784d"  data-api-url="https://capture.oasis-analytics.com"  async></script>
612
613
614
615
616
617
618
619
620
621
622<div id="divEnableMathEditor" style="display: none">
623    false
624</div>
625
626</script>
626
627
628
629
630<script type="text/javascript">
631    $(function () {
632        var $ltrEnableMathEditor = $('#divEnableMathEditor').html();
633        var enableMathEditor = ($ltrEnableMathEditor.toLowerCase() === 'true');
634        if (enableMathEditor) {
635            if (typeof com !== 'undefined') {
636                com.wiris.js.JsPluginViewer.parseElement(document.getElementById("divMainContent"), true, function () { });
637            }
638        }
639    });
640</script>
640
641
642
643    <div id="overDiv" style="position: absolute; visibility: hidden; z-index: 1000;">
644    </div>
645    <form method="post" action="./Details.aspx?id=7E%2bwSyg4oDAuf7mCLOHTQw%3d%3d" id="frmMaster" enctype="multipart/form-data">
646<div class="aspNetHidden">
647<input type="hidden" name="RadScriptManager1_TSM" id="RadScriptManager1_TSM" value="" />
648<input type="hidden" name="__LASTFOCUS" id="__LASTFOCUS" value="" />
649<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
650<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
651<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="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" />
652</div>
653
654<script type="text/javascript">
655//<![CDATA[
656var theForm = document.forms['frmMaster'];
657if (!theForm) {
658    theForm = document.frmMaster;
659}
660function __doPostBack(eventTarget, eventArgument) {
661    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
662        theForm.__EVENTTARGET.value = eventTarget;
663        theForm.__EVENTARGUMENT.value = eventArgument;
664        theForm.submit();
665    }
666}
667//]]>
668</script>
668
669
670
671<script src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZGYME_74v0sjKdDJ8uAaVdJWtNlPOO95K8fHWJqVN3rEAc8iqk8vBKl3HlrP3fMPyw2&amp;t=639190653332169432" type="text/javascript"></script>
671
672
673
674<script src="/Telerik.Web.UI.WebResource.axd?_TSM_HiddenField_=RadScriptManager1_TSM&amp;compress=1&amp;_TSM_CombinedScripts_=%3b%3bSystem.Web.Extensions%2c+Version%3d4.0.0.0%2c+Culture%3dneutral%2c+PublicKeyToken%3d31bf3856ad364e35%3aen-US%3add3ac3d5-1e29-4112-8fed-529caffa8f24%3aea597d4b%3ab25378d2%3bTelerik.Web.UI%2c+Version%3d2026.3.812.462%2c+Culture%3dneutral%2c+PublicKeyToken%3d121fae78165ba3d4%3aen-US%3aab6aa57e-34e3-4a88-a53e-99567e45582d%3a16e4e7cd%3aed16cbdc%3af7645509%3a88144a7a" type="text/javascript"></script>
vendor: 2 bytes, line 674
674
675<script src="/WebResource.axd?d=JoBkLzP19aTuxbWOhHobYrsrE7BM9u4mqJMJyLI7whpZZimW2fCI7H045jxxr8F7lHyUO-tKJvVSzYwiSNIXJw2&amp;t=639190653332169432" type="text/javascript"></script>
675
676<div class="aspNetHidden">
677
678	<input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="0ACAD0AF" />
679</div>
680
681        
682
683        
683<script type="text/javascript">
684//<![CDATA[
685Sys.WebForms.PageRequestManager._initialize('ctl00$ctl00$RadScriptManager1', 'frmMaster', ['tctl00$ctl00$RadAjaxManager1SU','RadAjaxManager1SU'], [], [], 90, 'ctl00$ctl00');
686//]]>
687</script>
687
688
689        <!-- 2026.3.812.462 --><div id="RadAjaxManager1SU">
690	<span id="ctl00_ctl00_RadAjaxManager1" style="display:none;"></span>
691</div>
692        <div id="raLoadingPanel" style="display:none;">
693	
694            <div class="AJAXLoading">
695                <img id="Image1" class="AJAXLoadingImage" src="../../images/AJAXloading.gif" alt="loading animation" />
696            </div>
697        
698</div>
699        <div id="raDefaultLoadingPanel" class="RadAjax RadAjax_Default" style="display:none;">
700	<div class="raDiv">
701		
702        
703	</div><div class="raColor raTransp">
704
705	</div>
706</div>
707        <input type="hidden" name="ctl00$ctl00$hfIANATimeZone" id="hfIANATimeZone" />
708        <span class="singularClientSpecificTinyMCEFormattedCustomFontJSON">
709            <input type="hidden" name="ctl00$ctl00$hfClientSpecificTinyMCEFormattedCustomFontJSON" id="hfClientSpecificTinyMCEFormattedCustomFontJSON" value="[&quot;{\&quot;fontFormat\&quot;:\&quot;Alex Brush=Alex Brush\&quot;,\&quot;fontFamilyUrl\&quot;:\&quot;https://fonts.googleapis.com/css2?family=Alex+Brush&amp;display=swap\&quot;}&quot;,&quot;{\&quot;fontFormat\&quot;:\&quot;Source Sans Pro=Source Sans Pro\&quot;,\&quot;fontFamilyUrl\&quot;:\&quot;https://fonts.googleapis.com/css2?family=Source+Sans+Pro:ital,wght@0,300;0,400;0,600;0,700;1,300;1,400;1,600;1,700&amp;display=swap\&quot;}&quot;,&quot;{\&quot;fontFormat\&quot;:\&quot;Source Sans 3=Source Sans 3\&quot;,\&quot;fontFamilyUrl\&quot;:\&quot;https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,wght@0,200..900;1,200..900&amp;display=swap\&quot;}&quot;,&quot;{\&quot;fontFormat\&quot;:\&quot;Noto Sans=Noto Sans\&quot;,\&quot;fontFamilyUrl\&quot;:\&quot;https://fonts.googleapis.com/css2?family=Noto+Sans:wght@300;400&amp;display=swap\&quot;}&quot;,&quot;{\&quot;fontFormat\&quot;:\&quot;Poppins=Poppins\&quot;,\&quot;fontFamilyUrl\&quot;:\&quot;https://fonts.googleapis.com/css2?family=Poppins:wght@400;600;700&amp;display=swap\&quot;}&quot;]" />
710        </span>
711        <input type="hidden" name="ctl00$ctl00$ltrUTCOffset" id="ltrUTCOffset" />
712
713        <input type="hidden" name="ctl00$ctl00$hfBrowserWidth" id="hfBrowserWidth" />
714        <input type="hidden" name="ctl00$ctl00$hfBrowserHeight" id="hfBrowserHeight" />
715
716        
716<script type="text/javascript">
717
718            function captureBrowserSize() {
719
720                console.log("captureBrowserSize")
721                var width = window.innerWidth || document.body.clientWidth;
722                var height = window.innerHeight || document.body.clientHeight;
723
724                $('#hfBrowserWidth').val(width);
725                $('#hfBrowserHeight').val(height);
726            };
727
728
729            //for mobile phone the combobox is scrolling the page
730            //with this function its not gonna happen anymore
731            function fixGridSchedulerComboBoxDropDownList() {
732                // For RadGrid - .RadGrid .RadTouchExtender
733                // For RadScheduler - .rsContentScrollArea.RadTouchExtender
734                // For RadComboBox - .rcbScroll
735                // For RadDropDownList - .rddlList
736                var fixed = $telerik.$(".RadGrid .RadTouchExtender, .rsContentScrollArea.RadTouchExtender, .rcbScroll, .rddlList");
737                fixed.on('touchmove', function (e) {
738                    e.preventDefault();
739                });
740            }
741            Sys.Application.add_load(fixGridSchedulerComboBoxDropDownList);
742
743
744            $(function () {
745
746                var $hiddenfield = $('#ltrUTCOffset');
747                if ($hiddenfield)
748                    $hiddenfield.val(new Date().getTimezoneOffset().toString());
749                else
750                    alert('no data!');
751
752                var $hfIANATimeZone = $('#hfIANATimeZone');
753                if (!$hfIANATimeZone.val()) {
754                    updateCurrentLocalDateTime();
755                }
756
757                var hfBrowserWidth = $('#hfBrowserWidth');
758                if (!hfBrowserWidth.val()) {
759                    updateCaptureBrowserSize();
760                }
761
762                // if for some reason clicking on noty message does not close the noty, this will.
763                $('.noty_message').on('click', function () {
764                    var notyId = $(this).closest('.noty_bar').attr('id');
765                    $.noty.close(notyId); // Close a NOTY
766                });
767            });// end of document ready
768            function updateCurrentLocalDateTime() {
769                console.log('updateCurrentLocalDateTime called');
770                var postData = getLocalDateTimeZone();
771                console.log('UpdateCurrentLocalDateTime with: ' + JSON.stringify(postData));
772                $.ajax({
773                    type: 'POST',
774                    url: '/Webservices/ClientServices.asmx/UpdateCurrentLocalDateTime',
775                    contentType: 'application/json; charset=utf-8',
776                    dataType: 'json',
777                    data: JSON.stringify(postData),
778                    success: function (data) {
779                        console.log('updateCurrentLocalDateTime SUCCESS');
780                    },
781                    failure: function () {
782                        console.log('updateCurrentLocalDateTime FAILED');
783                    }
784                });
785            }
786
787            function updateCaptureBrowserSize() {
788                console.log('updateCaptureBrowserSize called');
789
790                captureBrowserSize();
791
792                var width = $('#hfBrowserWidth').val();
793                var height = $('#hfBrowserHeight').val();
794
795                var postData = new Object();
796                postData.BrowserWidth = width;
797                postData.BrowserHeight = height;
798
799                console.log('updateCaptureBrowserSize with: ' + JSON.stringify(postData));
800                $.ajax({
801                    type: 'POST',
802                    url: '/Webservices/ClientServices.asmx/UpdateCaptureBrowserSize',
803                    contentType: 'application/json; charset=utf-8',
804                    dataType: 'json',
805                    data: JSON.stringify(postData),
806                    success: function (data) {
807                        console.log('updateCaptureBrowserSize SUCCESS');
808                    },
809                    failure: function () {
810                        console.log('updateCaptureBrowserSize FAILED');
811                    }
812                });
813            }
814
815            function getLocalDateTimeZone() {
816                var ianaTimeZone = getIANATimeZone();
817                const dateForUpdateCurrentLocalDateTime = new Date()
818                const options_long = { timeZone: ianaTimeZone, timeZoneName: "long" }
819                const timeZoneName_long = new Intl.DateTimeFormat("en-US", options_long)
820                    .formatToParts(dateForUpdateCurrentLocalDateTime)
821                    .find((part) => part.type === "timeZoneName").value
822
823                const options_short = { timeZone: ianaTimeZone, timeZoneName: "short" }
824                const timeZoneName_short = new Intl.DateTimeFormat("en-US", options_short)
825                    .formatToParts(dateForUpdateCurrentLocalDateTime)
826                    .find((part) => part.type === "timeZoneName").value
827
828                var _localDateTimeZoneData = new Object();
829                _localDateTimeZoneData.IANATimeZone = ianaTimeZone;
830                _localDateTimeZoneData.TimeZoneName_Long = timeZoneName_long;
831                _localDateTimeZoneData.TimeZoneName_Short = timeZoneName_short;
832                return _localDateTimeZoneData
833            }
834            function getIANATimeZone() {
835                var ianaTimeZone = '';
836                // Because IE 11 does NOT support Intl.DateTimeFormat().resolvedOptions().timeZone, we will always assume it is Eastern Time
837                if (window.navigator.userAgent.indexOf("MSIE ") > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {
838                    // Internet Explorer
839                    ianaTimeZone = 'America/New_York';
840                } else {
841                    // Other
842                    ianaTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
843                }
844                return ianaTimeZone;
845            }
846            function displaySystemNotification(message) {
847                var $hfSystemNotificationIsDisplayed = $('#hfSystemNotificationIsDisplayed');
848                if ($hfSystemNotificationIsDisplayed.val() == '') {
849                    $hfSystemNotificationIsDisplayed.val(false);
850                }
851                if ($hfSystemNotificationIsDisplayed.val()) {
852                    $hfSystemNotificationIsDisplayed.val(false);
853                    var n = noty({
854                        text: message,
855                        layout: 'topRight',
856                        theme: 'oasisTheme',
857                        type: 'information',
858                        timeout: 60000 // milli-seconds
859
860                    });
861                } else {
862                    $hfSystemNotificationIsDisplayed.val(true);
863                }
864
865            }
866            function showLanguageSelector() {
867                $('#divLanguageSelectorBox').modal('show');
868            }
869
870            function languageCombo_OnClientSelectedIndexChanging(sender, eventArgs) {
871                var input = sender.get_inputDomElement()
872                input.style.background = "url(" + eventArgs.get_item().get_imageUrl() + ") no-repeat";
873                input.style.backgroundSize = "24px"
874                input.style.paddingLeft = "32px"
875            }
876
877            function languageCombo_OnClientLoad(sender) {
878                var input = sender.get_inputDomElement()
879                var selectedItem = sender.get_selectedItem();
880                input.style.background = "url(" + selectedItem.get_imageUrl() + ") no-repeat";
881                input.style.backgroundSize = "24px"
882                input.style.paddingLeft = "32px"
883            }
884
885            
886
887
888
889        </script>
889
890        
891<style type="text/css">
892    .RadNotification {
893        height: auto !important;
894    }
895</style>
896<script type="text/javascript">
897    var modalDiv = null;
898
899    function showModalDiv(sender, args) {
900        if (!modalDiv) {
901            modalDiv = document.createElement("div");   // create element if not existed yet
902            modalDiv.className = "customNotificationOverlay";
903            modalDiv.setAttribute("unselectable", "on");
904            modalDiv.style.zIndex = (sender.get_zIndex() - 1).toString();
905            document.body.appendChild(modalDiv);
906        }
907        modalDiv.style.display = "";
908    }
909
910    function hideModalDiv() {
911        modalDiv.style.display = "none";
912    }
913
914    function logDownloadNotificationSeenAndClose() {
915        var postData = new Object();
916        postData.DoNotShowNextTime = $("#ctl00_ctl00___mobileAppDownloadNotification_radNotifyMobileAppDownload_C_cbxDontDisplayMobileAppNotification").is(":checked");
917
918        $.ajax({
919            type: 'POST',
920            url: '/Webservices/UserPreferenceServices.asmx/RememberMobileAppDownloadNotification',
921            contentType: 'application/json; charset=utf-8',
922            dataType: 'json',
923            data: JSON.stringify(postData)
924        });
925
926        var radNotifyIOSAppDownload = $find("ctl00_ctl00___mobileAppDownloadNotification_radNotifyMobileAppDownload");
927        radNotifyIOSAppDownload.hide();
928    }
929</script>
929
930
931
932        <div style="position: fixed; right: 10px; z-index: 99999;">
933            <input type="hidden" name="ctl00$ctl00$hfSystemNotificationIsDisplayed" id="hfSystemNotificationIsDisplayed" />
934            
935        </div>
936        <div class="contentWrapper">
937            <header id="header">
938                <h1 class="factor360srOnly">OasisLMS</h1>
939                
940    <div id="HeaderMenuPlaceHolder_ucRegularHeader_pnlRegularHeader" style="position: relative;">
941	
942    <div id="HeaderMenuPlaceHolder_ucRegularHeader_pnlHeaderLogoWrap" class="headerLogoWrap publicMenuHeaderLogoWrapBorder">
943		
944        <style>
945            .pageLoginContainer {
946                margin: 10px 2px;
947                text-align: right;
948            }
949
950            @media all and (max-width: 768px) {
951                .pageLoginContainer {
952                    text-align: right;
953                }
954            }
955    
956
957            /*/*
958            #header:hover .headerLogoWrap>hover .placeForBannerImage > .hlnkHeaderRedirectURL, .placeForBannerImage:hover > .hlnkHeaderRedirectURL {
959                z-index: 40000;
960            }*/
961        </style>
962
963        <div id="HeaderMenuPlaceHolder_ucRegularHeader_pnlHeaderLogo" class="headerLogoWrap headerLogo placeForBannerImage">
964			
965            <a id="HeaderMenuPlaceHolder_ucRegularHeader_hlnkHeaderRedirectURL" class="hlnkHeaderRedirectURL" href="http://www.asge.org/" target="_blank" style="border: none; z-index: 1031; position: relative;"><img id="HeaderMenuPlaceHolder_ucRegularHeader_imgLogo" class="customImageLogo" src="../../ImageHandler.ashx?path=ASGE\ASGE_Logo.png" alt="ASGE logo" style="border-style:None;" /></a>
966            
967
968            
969        
970		</div>
971    
972	</div>
973    
974    
975
976</div>
977
978
979
980
981
982
983    
984
985
986
987
988
989
990    
991    <div class="oasisWrap">
992        
993<script type="text/javascript" src="/Public/Catalog/catalogLoginModal.js?v=360.2.49.clm1"></script>
993
994<style>
995    #header {
996        z-index: auto;
997    }
998</style>
999<div class="pageLoginContainer" style="display: none;">
1000    <input type="submit" name="ctl00$ctl00$HeaderMenuPlaceHolder$HeaderMenuPlaceHolder$ucLoginPanel$btnLogin" value="Login" onclick="return false;" id="HeaderMenuPlaceHolder_HeaderMenuPlaceHolder_ucLoginPanel_btnLogin" class="button" data-toggle="modal" data-target="#divUserLoginBox" />
1001    <input type="submit" name="ctl00$ctl00$HeaderMenuPlaceHolder$HeaderMenuPlaceHolder$ucLoginPanel$btnloginViaSSO" value="Login" id="HeaderMenuPlaceHolder_HeaderMenuPlaceHolder_ucLoginPanel_btnloginViaSSO" class="button" />
1002</div>
1003
1004<div class="loginModalPopup">
1005
1006    <!-- Login Modal -->
1007    <style type="text/css">
1008        .modal-dialog {
1009            margin-top: 15%;
1010        }
1011    </style>
1012
1013    <div class="modal fade" tabindex="-1" id="divUserLoginBox" role="dialog">
1014        <div class="modal-dialog modal-sm" role="document">
1015            <!-- Modal content-->
1016            <div class="modal-content">
1017                <div class="modal-header">
1018                    <div class="titleBar noMargin noPadding">
1019                        <span class="glyphicon glyphicon-lock" style="margin-right: 10px;"></span>
1020                        <span id="HeaderMenuPlaceHolder_HeaderMenuPlaceHolder_ucLoginPanel_lblModalHeaderTitle">Login</span>
1021                    </div>
1022                </div>
1023                <div class="modal-body" style="padding: 0;">
1024                    
1025<link href="/Public/__loginBox.css?v=360.2.49.lb1" rel="stylesheet" type="text/css" />    
1026<script type="text/javascript" src="/Public/__loginBox.js?v=360.2.49.lb1"></script>
1026
1027
1028
1029                </div>
1030            </div>
1031        </div>
1032    </div>
1033    <!-- End of Modal -->
1034
1035</div>
1036
1037    </div>
1038
1039
1040
1041                <div id="divSiteMasterNavigationMenuWrapper">
1042                    
1043    
1044
1045    <div id="divSiteMasterNavigationMenuWrapper">
1046        
1047<style>
1048    .publicMenuLoginButton {
1049        -moz-box-shadow: 0px 0px 1px 1px #ccc;
1050        -webkit-box-shadow: 0px 0px 1px 1px #ccc;
1051        box-shadow: 0px 0px 1px 1px #ccc;
1052        line-height: normal;
1053    }
1054
1055    .mobilePublicMenudivider {
1056        height: 1px;
1057        margin: 6px 0;
1058        overflow: hidden;
1059        background-color: #e5e5e5;
1060    }
1061
1062    /* =========================
1063       Nested Mega Header (Desktop first)
1064       ========================= */
1065
1066    /* Top navigation wrapper */
1067    .main-nav {
1068        position: relative;
1069    }
1070
1071    .publicMenuNestedMainNavList {
1072        display: flex;
1073        margin: 0;
1074        padding: 0;
1075        list-style: none;
1076        align-items: center;
1077    }
1078
1079    .main-nav__item {
1080        position: relative; /* needed so publicMenuMegaMenu can align under each item */
1081    }
1082
1083    .main-nav__link {
1084        border: none;
1085        background: none;
1086        font: inherit;
1087        cursor: pointer;
1088        padding: 20px 0;
1089        text-decoration: none;
1090        white-space: nowrap;
1091    }
1092
1093        .main-nav__link:hover,
1094        .main-nav__link:focus {
1095            outline: none;
1096        }
1097
1098    /* dropdown arrow indicator on items that have child/grandchild */
1099    .publicMenuHasGrandChild > .main-nav__link::after,
1100    .publicMenuHasChild > .main-nav__link::after {
1101        content: "▾";
1102        margin-left: 2px;
1103        font-size: 1em;
1104        color: inherit;
1105        background: none;
1106    }
1107
1108    /* Mega menu panel (desktop) */
1109    .publicMenuMegaMenu {
1110        text-align: left;
1111        position: absolute;
1112        top: 100%;
1113        transform: translateX(-50%) translateY(10px);
1114        min-width: 225px;
1115        border-radius: 0 0 4px 4px;
1116        border: 0px solid var(--factor360MainNavigationBackgroundColor);
1117        box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
1118        /* Hidden by default (desktop hover shows it) */
1119        opacity: 0;
1120        visibility: hidden;
1121        pointer-events: none;
1122        transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;
1123        background: var(--factor360MainNavigationBackgroundColor);
1124        z-index: 9999;
1125    }
1126
1127
1128    @media all and (min-width:1200px) {
1129        .publicMenuMegaMenu {
1130            left: 50%;
1131        }
1132    }
1133
1134
1135    /* Inner content grid */
1136    .publicMenuMegaMenu__inner {
1137        display: flex;
1138        padding: 15px 0px 0px 0px;
1139    }
1140
1141    /* Each column */
1142    .publicMenuMegaMenu__column {
1143        flex: auto !important;
1144        text-align: left;
1145    }
1146
1147    /* Links inside each column */
1148    .publicMenuMegaMenu__links {
1149        display: flex;
1150        flex-direction: column;
1151        list-style: none;
1152        margin: 0;
1153        padding: 0px !important;
1154        min-width: 225px !important;
1155    }
1156
1157        .publicMenuMegaMenu__links li + li {
1158            margin-top: 6px;
1159        }
1160
1161        .publicMenuMegaMenu__links a {
1162            text-decoration: none;
1163        }
1164
1165            .publicMenuMegaMenu__links a:hover,
1166            .publicMenuMegaMenu__links a:focus {
1167                text-decoration: underline;
1168            }
1169
1170    /* Hover color keep */
1171    .publicMenuHasGrandChild:hover .main-nav__link--toggle,
1172    .publicMenuHasChild:hover .main-nav__link--toggle {
1173        color: var(--factor360MainNavigationHoverForeColor) !important;
1174    }
1175
1176    @media (hover: hover) {
1177        .publicMenuHasChild:hover > .publicMenuMegaMenu,
1178        .publicMenuHasChild:focus-within > .publicMenuMegaMenu {
1179            opacity: 1;
1180            visibility: visible;
1181            pointer-events: auto;
1182            transform: translateX(0%) translateY(0);
1183        }
1184
1185        .publicMenuHasChild:first-child:hover > .publicMenuMegaMenu,
1186        .publicMenuHasChild:first-child:focus-within > .publicMenuMegaMenu {
1187            opacity: 1;
1188            visibility: visible;
1189            pointer-events: auto;
1190            transform: translateX(0%) translateY(0);
1191        }
1192    }
1193
1194    /* Force closed after click */
1195    .publicMenuHasChild.publicMenuHoverLocked:hover > .publicMenuMegaMenu,
1196    .publicMenuHasChild.publicMenuHoverLocked:focus-within > .publicMenuMegaMenu {
1197        opacity: 0;
1198        visibility: hidden;
1199        pointer-events: none;
1200        transform: translateX(0) translateY(10px);
1201    }
1202
1203    @media (min-width: 768px) {
1204        @media (hover: hover) {
1205
1206            .publicMenuHasGrandChild:hover > .publicMenuMegaMenu,
1207            .publicMenuHasGrandChild:focus-within > .publicMenuMegaMenu {
1208                opacity: 1;
1209                visibility: visible;
1210                pointer-events: auto;
1211                transform: translateX(-15%) translateY(0);
1212            }
1213        }
1214
1215        .publicMenuMegaMenu__inner {
1216            flex-wrap: wrap;
1217        }
1218
1219        .publicMenuMegaMenu__column {
1220            border-bottom: 1px solid gray;
1221        }
1222    }
1223
1224    @media (min-width: 1108px) {
1225        .publicMenuMegaMenu__column {
1226            border-bottom: unset;
1227        }
1228
1229        .publicMenuMegaMenu__inner {
1230            flex-wrap: nowrap;
1231        }
1232        /* Show on hover (desktop) */
1233        @media (hover: hover) {
1234            .publicMenuHasGrandChild:hover > .publicMenuMegaMenu,
1235            .publicMenuHasGrandChild:focus-within > .publicMenuMegaMenu {
1236                opacity: 1;
1237                visibility: visible;
1238                pointer-events: auto;
1239                transform: translateX(-15%) translateY(0);
1240            }
1241
1242            .publicMenuHasChild:hover > .publicMenuMegaMenu,
1243            .publicMenuHasChild:focus-within > .publicMenuMegaMenu {
1244                opacity: 1;
1245                visibility: visible;
1246                pointer-events: auto;
1247                transform: translateX(-50%) translateY(0);
1248            }
1249        }
1250    }
1251    /* Title styling */
1252    .publicMenuMegaMenu__column .publicMenuMegaMenu__title {
1253        padding: 5px 5px !important;
1254        font-weight: 700;
1255        width: 100%;
1256        text-wrap-mode: nowrap !important;
1257        white-space: pre;
1258    }
1259
1260    .nav_top ul.publicMenuMegaMenu__links {
1261        margin-top: 1px !important;
1262    }
1263
1264    .nav_top .publicMenuMegaMenu__links li {
1265        padding: 10px 10px !important;
1266    }
1267
1268        .nav_top .publicMenuMegaMenu__links li a {
1269            padding: 0px !important;
1270        }
1271
1272        .nav_top .publicMenuMegaMenu__links li:hover {
1273            color: var(--factor360MainNavigationHoverForeColor);
1274        }
1275
1276    .publicMenuMegaMenu__title:hover {
1277        color: var(--factor360MainNavigationHoverForeColor);
1278        background: var(--factor360MainNavigationBackgroundHoverColor) !important;
1279    }
1280
1281    .nav_top .publicMenuMegaMenu__links li:hover a {
1282        color: var(--factor360MainNavigationHoverForeColor) !important;
1283    }
1284
1285    /* Apply border-right to ALL columns except the last */
1286    .publicMenuMegaMenu__inner > .publicMenuMegaMenu__column:not(:last-child) {
1287        border-right: 1px solid var(--factor360MainNavigationBackgroundColor);
1288        padding-right: 5px;
1289        margin-right: 5px;
1290    }
1291
1292    /* smaller dropdown panel for normal child menu */
1293    .publicMenuHasChild .publicMenuMegaMenu {
1294        min-width: 200px;
1295    }
1296
1297    /* =========================
1298       Mobile Trigger (Nested Menu)
1299       - Only show "Menu" row first
1300       - Nav is hidden until wrapper has .is-open
1301       ========================= */
1302
1303    /* desktop: hide trigger */
1304    .publicMenuNestedMobileTrigger {
1305        display: none;
1306    }
1307
1308    @media (max-width: 768px) {
1309
1310        /* Hide all dropdown panels by default on mobile */
1311        .publicMenuHasChild > .publicMenuMegaMenu,
1312        .publicMenuHasGrandChild > .publicMenuMegaMenu {
1313            display: none;
1314        }
1315
1316        /* Show panel only when <li> has .is-open */
1317        .main-nav__item.is-open > .publicMenuMegaMenu {
1318            display: block;
1319        }
1320
1321        /* Make the root link feel like a toggle row */
1322        .main-nav__link--toggle {
1323            width: 100%;
1324        }
1325
1326        /* Optional: rotate the arrow when open (if you want) */
1327        .main-nav__item.is-open > .main-nav__link--toggle::after {
1328            content: "▴";
1329        }
1330
1331        /* IMPORTANT: ensure nested wrapper is visible on mobile
1332           (your previous CSS had display:none, we override it) */
1333        .nestedPublicMenuWrapper {
1334            display: block !important;
1335        }
1336
1337        /* show only the trigger by default */
1338        .publicMenuNestedMobileTrigger {
1339            display: block;
1340            padding: 12px;
1341            text-align: center;
1342            border-bottom: 1px solid rgba(0,0,0,0.12);
1343        }
1344
1345        .publicMenuNestedTriggerLink {
1346            display: inline-flex;
1347            align-items: center;
1348            justify-content: center;
1349            width: 100%;
1350            text-decoration: none;
1351            cursor: pointer;
1352            padding: 5px 12px;
1353            font-size: 1.5em
1354        }
1355
1356        /* hide nav until user taps Menu */
1357        .publicMenuNestedNav {
1358            display: none;
1359        }
1360
1361        /* opened state */
1362        .nestedPublicMenuWrapper.is-open .publicMenuNestedNav {
1363            display: block;
1364        }
1365
1366        /* vertical list */
1367        .publicMenuNestedMainNavList {
1368            flex-direction: column;
1369            align-items: stretch;
1370            width: 100%;
1371            gap: 0;
1372        }
1373
1374        .main-nav__item {
1375            width: 100%;
1376            border-bottom: 1px solid rgba(0,0,0,0.08);
1377        }
1378
1379        .main-nav__link {
1380            display: flex;
1381            align-items: center;
1382            justify-content: space-between;
1383            width: 100%;
1384            padding: 14px 12px;
1385        }
1386
1387        /* mega menu becomes part of flow on mobile (no overlay) */
1388        .publicMenuMegaMenu {
1389            position: static;
1390            left: auto;
1391            top: auto;
1392            transform: none;
1393            min-width: 100%;
1394            width: 100%;
1395            box-shadow: none;
1396            border-radius: 0;
1397            opacity: 1;
1398            visibility: visible;
1399            pointer-events: auto;
1400        }
1401
1402        .publicMenuMegaMenu__inner {
1403            flex-direction: column;
1404            padding: 12px 0;
1405        }
1406
1407        .publicMenuMegaMenu__column {
1408            min-width: 100%;
1409            width: 100%;
1410        }
1411
1412        /* remove column borders on mobile */
1413        .publicMenuMegaMenu__inner > .publicMenuMegaMenu__column:not(:last-child) {
1414            border-right: none;
1415            padding-right: 0;
1416            margin-right: 0;
1417            border-bottom: 1px solid rgba(0,0,0,0.08);
1418        }
1419    }
1420
1421
1422</style>
1423
1424<script type="text/javascript">
1425    $(document).ready(function () {
1426        $(".mobile-menu-trigger a.trigger-link").click(function () {
1427            var $mobileMenu = $(".mobile-menu");
1428            $mobileMenu.toggle();
1429
1430            var publicMenuDropdownClass = $('.publicMenuDropdownClass');
1431            if (publicMenuDropdownClass.is(".caret.down.icon.publicMenuDropdownClass")) {
1432                publicMenuDropdownClass.removeClass("down");
1433                publicMenuDropdownClass.addClass("up");
1434            } else {
1435                publicMenuDropdownClass.removeClass("up");
1436                publicMenuDropdownClass.addClass("down");
1437            }
1438        });
1439
1440
1441        $(".simplePublicMenu.menu-list-toggle").click(function () {
1442            console.log('toggle')
1443            $toggledItem = $(this);
1444            $menuListToggleIcon = $(this).find('.menuListToggleIcon');
1445            if ($toggledItem.is(".simplePublicMenu.menu-list-toggle.active")) {
1446                //We already expanded the item, close the item here
1447                $toggledItem.removeClass("active");
1448                $toggledItem.parent().siblings(".publicMenuChildItem").removeClass("active");
1449                $menuListToggleIcon.removeClass('up')
1450                $menuListToggleIcon.addClass('down')
1451
1452            } else {
1453                //Item not yet expanded, expand it here
1454                $toggledItem.addClass("active");
1455                $toggledItem.parent().siblings(".publicMenuChildItem").addClass("active");
1456                $menuListToggleIcon.removeClass('down')
1457                $menuListToggleIcon.addClass('up')
1458            }
1459
1460        });
1461    });
1462    $(document).on("click", ".publicMenuNestedTriggerLink", function (e) {
1463        e.preventDefault();
1464
1465        var $wrapper = $(".nestedPublicMenuWrapper");
1466        var $caret = $wrapper.find(".publicMenuNestedCaret");
1467
1468        $wrapper.toggleClass("is-open");
1469
1470        if ($wrapper.hasClass("is-open")) {
1471            $caret.removeClass("fa-caret-down").addClass("fa-caret-up");
1472        } else {
1473            $caret.removeClass("fa-caret-up").addClass("fa-caret-down");
1474        }
1475    });
1476
1477
1478    // Mobile: Accordion behavior for each root menu item (one-by-one)
1479    $(document).on("click", ".nestedPublicMenuWrapper .main-nav__link--toggle", function (e) {
1480
1481        // On mobile only
1482        if (window.matchMedia("(max-width: 768px)").matches === false) return;
1483
1484        // If link is "#" or empty, prevent jump.
1485        // If it is a real URL, we still want toggle behavior, so prevent default on first tap.
1486        e.preventDefault();
1487
1488        var $li = $(this).closest(".main-nav__item");
1489
1490        // close other open siblings (one-by-one behavior)
1491        $li.siblings(".main-nav__item.is-open").removeClass("is-open");
1492
1493        // toggle current
1494        $li.toggleClass("is-open");
1495    });
1496    $(document).on("click", ".publicMenuMegaMenu a", function () {
1497        setTimeout(function () {
1498            $(document).trigger("click");
1499        }, 0);
1500    });
1501</script>
1501
1502
1503<div id="NavigationMenuContent_NavigationMenuContent_ucPublicMenu_pnlPublicMenuWrapper" class=" publicMenuWrapper oasisWrap">
1504	
1505
1506
1507    
1508    
1509
1510
1511    
1512
1513
1514</div>
1515
1516    </div>
1517
1518
1519                </div>
1520            </header>
1521            <div class="clear">
1522            </div>
1523            <div id="pnlSiteMasterMainContent" class="oasisWrap main divMainContent">
1524	
1525                <main>
1526                    
1527    <input type="hidden" name="ctl00$ctl00$MainContent$lblNetworkSpeed" id="MainContent_lblNetworkSpeed" />
1528    <!-- Menu toggle -->
1529    <a href="#divCatalogWithSideBar_LeftSideBar" id="aCatalogWithSideBar_SideBar" class="catalogWithSideBar_hamburger" aria-label="catalogWithSideBar_SideBar">
1530        <!-- Hamburger icon -->
1531        <span class="glyphicon glyphicon-menu-hamburger"></span>
1532        <span id="MainContent_lblADAComplianceForHamburgerIcon" style="display: none">Hamburger Menu</span>
1533    </a>
1534    <div id="divCatalogWithSideBar_LeftSideBar" class="factor360LeftSideBarWrapper">
1535        
1536<style type="text/css">
1537    .userDashboardItemInnerWrapper {
1538        display: flex;
1539        display: -webkit-flex;
1540        flex-flow: row nowrap;
1541        align-items: center;
1542        justify-content: flex-start;
1543    }
1544
1545        .userDashboardItemInnerWrapper.columnMode {
1546            flex-flow: column wrap;
1547        }
1548
1549        .userDashboardItemInnerWrapper.horizontalCenter {
1550            justify-content: center;
1551        }
1552
1553        .userDashboardItemInnerWrapper.horizontalRight {
1554            justify-content: flex-end;
1555        }
1556
1557    .userDasboardItemIcon {
1558        vertical-align: middle;
1559        flex: 0 1 10%; /* not auto so we can scale the userDasboardItemTitle*/
1560    }
1561
1562    .userDasboardItemTitle {
1563        vertical-align: middle;
1564        flex: 0 1 90%;
1565        -webkit-flex: 0 1 90%;
1566        margin-left: 2px;
1567        text-align: center;
1568    }
1569
1570    @media only screen and (min-width : 1500px) {
1571        .userDasboardItemTitle {
1572            text-align: left;
1573        }
1574    }
1575
1576    .PreviewIcon {
1577        vertical-align: middle;
1578        padding-left: 5px;
1579        font-size: 20px;
1580    }
1581
1582    /* Aug 26, 2026 Gevin Valerian
1583       Unread Circle messages, on the Community item. Only rendered for clients whose Community is Circle —
1584       see the code-behind.
1585
1586       A flex item rather than an absolutely-positioned dot, because this menu changes shape with the window:
1587       between 1075px and 1400px the title is hidden and only the icon shows, and a badge pinned to the corner
1588       of the link would be sitting over the icon at exactly those widths. As a flex item it simply follows
1589       whatever is still visible. `margin-left: auto` pushes it to the far edge when the title is there and
1590       leaves it beside the icon when it is not.
1591
1592       Its own class rather than the admin site's `badge adminAlertBadge error`: that pair is defined in the
1593       admin stylesheet, which the learner site does not load, so borrowing the name here would have produced
1594       an unstyled number. */
1595    .circleUnreadBadge {
1596        flex: 0 0 auto;
1597        margin-left: auto;
1598        min-width: 18px;
1599        height: 18px;
1600        padding: 0 5px;
1601        border-radius: 9px;
1602        background-color: #d9534f;
1603        color: #ffffff;
1604        font-size: 11px;
1605        font-weight: 700;
1606        line-height: 18px;
1607        text-align: center;
1608        box-sizing: border-box;
1609    }
1610
1611    /* Stacked layout: nothing to push against, so the auto margin has to go or it lands off to one side of
1612       the column. */
1613    .userDashboardItemInnerWrapper.columnMode .circleUnreadBadge {
1614        margin-left: 0;
1615        margin-top: 3px;
1616    }
1617</style>
1618<div id="MainContent_ucVerticalUserSubNavigation_pnlUserSubNavigation">
1619		
1620    
1621            <input type="hidden" name="ctl00$ctl00$MainContent$ucVerticalUserSubNavigation$rptUserSubNavigation$ctl00$hfUserDashboardItemEnum" id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hfUserDashboardItemEnum_0" value="2" />
1622            <div id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_pnlUserDashboardItemWrapper_0" class="sidebarItemWrapper selected" style="margin: 20px 0px;">
1623			
1624                <a id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hlnkTargetURL_0" aria-label="target url" data-bs-toggle="tooltip" href="https://learn.asge.org/Site/Catalog" target="_self" style="text-decoration: none; color: inherit; text-align: left; position: relative; margin-bottom: 5px; white-space: normal;">
1625                    <div class="userDashboardItemInnerWrapper" style="">
1626                        <div class="userDasboardItemIcon" style="">
1627                            <i id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_iUserDashboardItemIcon_0" class="globe icon userDashboardItemIcon selectedUserDashboard"></i>
1628                        </div>
1629                        <div class="userDasboardItemTitle" style="">
1630                            <span id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_lblMenuTitle_0" style="opacity: 0.8;">Catalog</span>
1631                        </div>
1632                        
1633                        
1634                    </div>
1635                </a>
1636                
1637            
1638		</div>
1639        
1640            <input type="hidden" name="ctl00$ctl00$MainContent$ucVerticalUserSubNavigation$rptUserSubNavigation$ctl01$hfUserDashboardItemEnum" id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hfUserDashboardItemEnum_1" value="19" />
1641            <div id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_pnlUserDashboardItemWrapper_1" class="sidebarItemWrapper" style="margin: 20px 0px;">
1642			
1643                <a id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hlnkTargetURL_1" aria-label="target url" data-bs-toggle="tooltip" href="https://learn.asge.org/Site/Library" target="_self" style="text-decoration: none; color: inherit; text-align: left; position: relative; margin-bottom: 5px; white-space: normal;">
1644                    <div class="userDashboardItemInnerWrapper" style="">
1645                        <div class="userDasboardItemIcon" style="">
1646                            <i id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_iUserDashboardItemIcon_1" class="book icon userDashboardItemIcon"></i>
1647                        </div>
1648                        <div class="userDasboardItemTitle" style="">
1649                            <span id="MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_lblMenuTitle_1" style="opacity: 0.8;">Library</span>
1650                        </div>
1651                        
1652                        
1653                    </div>
1654                </a>
1655                
1656            
1657		</div>
1658        
1659
1660	</div>
1661<script type="text/javascript">
1662    $(function () {
1663        updateUserDashboardItemDisplay();
1664    }); // end of document ready
1665    $(window).resize(function () {
1666        setTimeout(updateUserDashboardItemDisplay(), 150);
1667
1668    });
1669
1670    window.onclick = function (event) {        
1671        //event.preventDefault();
1672        if (!(event.target instanceof Element)) return;
1673
1674        if (!event.target.matches('.glyphicon-menu-hamburger') && !event.target.matches('.factor360LeftSideBarWrapper')) {
1675            if ($('.userPageWithSideBar_hamburger').hasClass('active') && $('.factor360LeftSideBarWrapper').hasClass('active')) {
1676                $('.userPageWithSideBar_hamburger').removeAttr('class').addClass('userPageWithSideBar_hamburger');
1677                $('.factor360LeftSideBarWrapper').removeAttr('class').addClass('factor360LeftSideBarWrapper');
1678            }
1679        }
1680    };
1681
1682    function updateUserDashboardItemDisplay() {
1683        // make it as if the dashboard item wrapper responsive 
1684        // Width range is from UserPageWithSidebar.master (the one that controls divUserPageWithSideBar_LeftSideBar)
1685        var windowWidth = $(window).width();
1686        //console.log('panel width: ' + windowWidth);
1687        var $userDashboardItemInnerWrappers = $('.userDashboardItemInnerWrapper');
1688        $userDashboardItemInnerWrappers.each(function () { $(this).removeClass('columnMode') })
1689        $userDashboardItemInnerWrappers.each(function () { $(this).removeClass('horizontalCenter') })
1690        $userDashboardItemInnerWrappers.each(function () { $(this).removeClass('horizontalRight') })
1691
1692        if (windowWidth <= 1075) {
1693            $('.userDasboardItemTitle').show();//the whole box will be hidden, but we need to show the title
1694        } else if (windowWidth <= 1300) {
1695            /* only icon shows up */
1696            $userDashboardItemInnerWrappers.each(function () { $(this).addClass('horizontalRight') })
1697            $('.userDasboardItemTitle').hide();
1698        } else if (windowWidth <= 1400) {
1699            /* only icon shows up */
1700            $userDashboardItemInnerWrappers.each(function () { $(this).addClass('horizontalCenter') })
1701            $('.userDasboardItemTitle').hide();
1702
1703        } else if (windowWidth <= 1500) {
1704            /* icon and text shows up but because the container becomes tinier, we display in column */
1705            $userDashboardItemInnerWrappers.each(function () { $(this).addClass('columnMode') })
1706            $('.userDasboardItemTitle').show();
1707            //NOTE: we are going to call master page's js function! to adjust the height/avoid scrolling
1708            // because icon and text stacked together can increase the height beyond its container
1709            updateSideBarAndContentHeight();
1710        } else {
1711            $('.userDasboardItemTitle').show();
1712        }
1713
1714    }
1715</script>
1715
1716
1717    </div>
1718    <div id="divCatalogWithSideBar_MainLayout">
1719        <div id="divCatalogWithSideBar_MainContent" class="content container-fluid wrapper_container withSideBar">
1720            
1721    
1722
1723<style type="text/css">
1724    .learningActivitySummaryBox {
1725        /*flex: 0 1 100%;*/
1726        flex: 0 1 100%;
1727        order: 1;
1728    }
1729
1730    .learningActivityInformationClass {
1731        flex: 0 1 100%;
1732        order: 2;
1733        position: relative; /* used for the Less-More element to be placed correctly at the bottom of this class element*/
1734    }
1735
1736    .divRecommendedLearningActivity {
1737        flex: 0 1 100%;
1738    }
1739
1740
1741    @media screen and (min-width:768px) {
1742        /*.learningActivityDetailWrapper {
1743                display: inline-block;
1744                width: 100%;
1745            }*/
1746
1747        .learningActivitySummaryBox {
1748            flex: 0 1 35%;
1749            order: 2;
1750        }
1751
1752        .learningActivityInformationClass {
1753            flex: 0 1 65%;
1754            padding-right: 20px;
1755            order: 1;
1756        }
1757
1758
1759        .divRecommendedLearningActivity {
1760            float: right;
1761            width: 35%;
1762        }
1763    }
1764
1765    .tooltip-wrapper {
1766        display: block; /* display: block works as well */
1767    }
1768
1769    .LearningActivityInformationActionButtonTooltip[disabled] {
1770        /* don't let button block mouse events from reaching wrapper */
1771        pointer-events: none;
1772    }
1773
1774    <!-- Login Modal -->
1775    .modal-dialog {
1776        margin-top: 15%;
1777    }
1778</style>
1779<div class="container-fluid">
1780    <div>
1781        <div id="MainContent_MainContent_ucLearningActivityCatalog_Details_pnlLearningActivityDetailSideBySide">
1782		
1783            
1784
1785<style type="text/css">
1786    .sideBySideLoginWrapper {
1787        display: -webkit-box; /* OLD - iOS 6-, Safari 3.1-6, BB7 */
1788        display: -ms-flexbox; /* TWEENER - IE 10 */
1789        display: -webkit-flex; /* NEW - Safari 6.1+. iOS 7.1+, BB10 */
1790        display: flex; /* NEW, Spec - Firefox, Chrome, Opera */
1791        -webkit-box-orient: horizontal;
1792        -webkit-box-direction: normal;
1793        -ms-flex-flow: row nowrap;
1794        flex-flow: row nowrap;
1795        -webkit-justify-content: space-between; /* Safari */
1796        justify-content: space-between;
1797        -webkit-align-items: center; /* Safari */
1798        align-items: center;
1799        margin-bottom: 0px;
1800        margin-top: 15px;
1801        text-align: center;
1802    }
1803
1804    .buttonInsideLoginPanel {
1805        -ms-flex: 1 1 50%;
1806        flex: 1 1 50%;
1807        padding: 10px !important;
1808        font-size: 14pt !important;
1809        margin-left: 5px;
1810        margin-right: 5px;
1811        /* max-width: 49%;*/
1812    }
1813
1814    .learningActivitySummaryBox {
1815        /*flex: 0 1 100%;*/
1816        flex: 0 1 100%;
1817        order: 1;
1818    }
1819
1820    .learningActivityInformationClass {
1821        flex: 0 1 100%;
1822        order: 2;
1823        position: relative; /* used for the Less-More element to be placed correctly at the bottom of this class element*/
1824    }
1825
1826    .divRecommendedLearningActivity {
1827        flex: 0 1 100%;
1828    }
1829
1830
1831    @media screen and (min-width:768px) {
1832        /*.learningActivityDetailWrapper {
1833                display: inline-block;
1834                width: 100%;
1835            }*/
1836
1837        .learningActivitySummaryBox {
1838            flex: 0 1 35%;
1839            order: 2;
1840        }
1841
1842        .learningActivityInformationClass {
1843            flex: 0 1 65%;
1844            padding-right: 20px;
1845            order: 1;
1846        }
1847
1848
1849        .divRecommendedLearningActivity {
1850            float: right;
1851            width: 35%;
1852        }
1853    }
1854
1855    .tooltip-wrapper {
1856        display: block; /* display: block works as well */
1857    }
1858
1859    .LearningActivityInformationActionButtonTooltip[disabled] {
1860        /* don't let button block mouse events from reaching wrapper */
1861        pointer-events: none;
1862    }
1863
1864    <!-- Login Modal -->
1865    .modal-dialog {
1866        margin-top: 15%;
1867    }
1868</style>
1869<script src="/Scripts/purchaseLearningActivityViaAjax.js?v=360.2.49plava1" type="text/javascript"></script>
1869
1870<div id="divLearningActivityBreadCrumb" class="factor360BreadCrumbWrapper">
1871    <ol class="breadcrumb">
1872<li class=""><a  href="https://learn.asge.org/Site/Catalog">Catalog</a></li>
1873<li class="active" >Quality Essentials Learning Bundle | 2026</li>
1874</ol>
1875</div>
1876<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLearningActivityCoverImage" style="float: left; margin: 10px 8px 0 20px;">
1877			
1878    <img id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_imgLearningActivityCoverImage" class="img-responsive" alt="" src="https://dmit3s8isosa3.cloudfront.net/ASGE/c4c6804a-0d9e-4b5c-991e-0ef29a1cb2fc.png" style="width:50px;" />
1879
1880		</div>
1881<div style="float: left;" class="titleBar">
1882    Quality Essentials Learning Bundle | 2026
1883    
1884    
1885    <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLearningActivityKeywordTileView" class="factor360PageHeaderFlexboxItem pnlLearningActivityKeywordClass" style="display: inline;">
1886			
1887        
1888    
1889		</div>
1890</div>
1891<div style="clear: both;"></div>
1892<div style="height: 15px;"></div>
1893<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnllearningActivityDetailWrapper" class="factor360PageHeaderFlexboxWrapper topVerticalAligned enableWrap learningActivityDetailWrapper" class="factor360PageHeaderFlexboxWrapper topVerticalAligned enableWrap learningActivityDetailWrapper">
1894			
1895    <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLearningActivityInfomation" class="factor360PageHeaderFlexboxItem learningActivityInformationClass" style="overflow: hidden;">
1896				
1897        <div class="learningActivityInformationClass_InnerPanelClass pnllearningActivityInformationClass">
1898            
1899                    <div class="title">
1900                        Description
1901                    </div>
1902                    
1903                    <div style="margin-left: 50px; overflow-x: auto;">
1904                        <p>Build a stronger, safer, higher-performing endoscopy unit with ASGE's Quality Essentials Learning Bundle. This comprehensive learning experience combines The ASGE Quality Course: Improving Quality and Safety in the Endoscopy Unit (November 2025), which equips your entire team with the knowledge and tools to deliver safe, consistent, high-quality care, with the GI Unit Leadership Course: Shaping a High-Performing Endoscopy Unit (February 2026), which empowers GI unit leaders to optimize operations, strengthen culture and drive sustainable performance improvement. Together, these complementary courses align frontline staff and leadership around a shared commitment to quality, safety and patient-centered care. By completing both programs, you can support your team to be better prepared to demonstrate measurable excellence and pursue recognition through the ASGE Endoscopy Unit Recognition Program (EURP).</p>
1905
1906                        
1907
1908
1909                    </div>
1910                
1911        </div>
1912    
1913			</div>
1914    <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLearningActivitysummaryBox" class="factor360PageHeaderFlexboxItem learningActivitySummaryBox" class="factor360PageHeaderFlexboxItem learningActivitySummaryBox">
1915				
1916        <div class="panel panel-primary">
1917            <div class="panel-heading">
1918                <div class="panel-title">
1919                    <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_lblLearningActivity_Summary">Summary</span>
1920                </div>
1921            </div>
1922            <div class="panel-body">
1923                
1924<!-- Modal margins so it's in the center -->
1925<style type="text/css">
1926    .modal-dialog {
1927        margin-top: 15%;
1928    }
1929
1930    .price-option {
1931        display: flex;
1932        align-items: flex-start;
1933    }
1934
1935        .price-option input[type="radio"] {
1936            margin-top: 4px;
1937        }
1938
1939    .price-details {
1940        margin-left: 10px;
1941    }
1942
1943        .price-details div {
1944            line-height: 1.6;
1945        }
1946</style>
1947<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlCourseAvailability">
1948					
1949    <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned thinBottom">
1950        <div class="factor360PageHeaderFlexboxItem topAligned rowDescriptionLabel percent35">
1951            <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblLearningActivity_AvailabilityWord">Availability:</span>
1952        </div>
1953        <div class="factor360PageHeaderFlexboxItem topAligned percent65">
1954            <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblStatusLabel">On-Demand</span>
1955        </div>
1956    </div>
1957    <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned thinBottom">
1958        <div class="factor360PageHeaderFlexboxItem topAligned rowDescriptionLabel percent35">
1959        </div>
1960        <div class="factor360PageHeaderFlexboxItem topAligned percent65">
1961            <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblAvailabilityLabel"></span>
1962        </div>
1963    </div>
1964    <div class="lineSeparator"></div>
1965
1966				</div>
1967
1968
1969
1970
1971<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlLearningActivityPrices">
1972					
1973    <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned thinBottom">
1974        <div class="factor360PageHeaderFlexboxItem topAligned rowDescriptionLabel percent35">
1975            Cost:
1976        </div>
1977        
1978        <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlLearningActivityPriceInfo">
1979						
1980            <div class="factor360PageHeaderFlexboxItem topAligned percent65">
1981                <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblLearningActivityPrice">Member: $600.00<br />Non-Member: $800.00</span>
1982            </div>
1983        
1984					</div>
1985    </div>
1986    <div class="lineSeparator"></div>
1987
1988				</div>
1989
1990<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlLearningActivityCreditations">
1991					
1992    <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned thinBottom">
1993        <div class="factor360PageHeaderFlexboxItem topAligned rowDescriptionLabel percent35">
1994            <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblCreditOfferedLabel" style="font-weight:bold;">Credit Offered:</span>
1995        </div>
1996        <div class="factor360PageHeaderFlexboxItem topAligned percent65">
1997            
1998                    <div>
1999                        <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_rptLearningActivityCreditations_lblLearningActivityCreditationInfo_0">12.25 CME Credits</span>
2000                        
2001                    </div>
2002                
2003                    <div class="lineSeparator thinSeparator"></div>
2004                
2005                    <div>
2006                        <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_rptLearningActivityCreditations_lblLearningActivityCreditationInfo_1">12.25 Participation Credits</span>
2007                        
2008                    </div>
2009                
2010        </div>
2011    </div>
2012    <div class="lineSeparator"></div>
2013
2014				</div>
2015<div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlLearningActivityContained">
2016					
2017    <div>
2018        <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned thinBottom">
2019            <div class="factor360PageHeaderFlexboxItem topAligned rowDescriptionLabel percent35">
2020                <span id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lblLearningActivity_ContainsWord">Contains:</span>
2021            </div>
2022            <div class="factor360PageHeaderFlexboxItem topAligned percent65">
2023                <a onclick="displayLearningActivitySummaryCourseListPopup();return false;" id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_lnkBtnLearningActivityContainedSummary" class="factor360ModernHyperlink" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ctl00$MainContent$MainContent$ucLearningActivityCatalog_Details$__learningActivityCatalog_SideBySideDetails$ucLearningActivityCatalog_SideBySide$lnkBtnLearningActivityContainedSummary&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))">2 Courses</a>
2024                
2025            </div>
2026        </div>
2027    </div>
2028
2029				</div>
2030<div id="divLearningActivitySummaryDisplay_CourseListPopup" class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog">
2031    <div class="modal-dialog modal-lg" role="document">
2032        <div class="modal-content">
2033            <div class="modal-header">
2034                <button type="button" class="close" data-dismiss="modal">&times;</button>
2035                <div class="titleBar" style="padding: 0;">
2036                    Quality Essentials Learning Bundle | 2026 Course List
2037                </div>
2038            </div>
2039            <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_ucLearningActivityCatalog_SideBySide_pnlBundledOrChildLearningActivityList" style="overflow:auto;padding: 15px; max-height: 350px;">
2040					
2041                The ASGE Quality Course: Improving Quality and Safety in the Endoscopy Unit (On-demand) | November 2025<br><br>GI Unit Leadership: Shaping a High-Performing Endoscopy Unit (On-Demand) | February 2026
2042            
2043				</div>
2044
2045        </div>
2046
2047    </div>
2048</div>
2049<script type="text/javascript">
2050    function displayLearningActivitySummaryCourseListPopup() {
2051        $('#divLearningActivitySummaryDisplay_CourseListPopup').modal('show');
2052    }
2053</script>
2053
2054
2055                
2056                
2057                <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLogin" class="spnAccessClass">
2058					
2059                    <div id="MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_SideBySideDetails_pnlLoginWrapper" class="sideBySideLoginWrapper">
2060						
2061                        
2062                        
2063                        
2064                    
2065					</div>
2066                
2067				</div>
2068                
2069                
2070            </div>
2071        </div>
2072        
2073    
2074			</div>
2075
2076		</div>
2077
2078
2079
2080
2081<div class="modal fade" id="divUserLoginBox" role="dialog">
2082    <div class="modal-dialog modal-sm" role="document">
2083        <!-- Modal content-->
2084        <div class="modal-content">
2085            <div class="modal-header">
2086                <div class="titleBar noMargin noPadding"><span class="glyphicon glyphicon-lock" style="margin-right: 10px;"></span>Login</div>
2087            </div>
2088            <div class="modal-body" style="padding: 0;">
2089                
2090<link href="/Public/__loginBox.css?v=360.2.49.lb1" rel="stylesheet" type="text/css" />    
2091<script type="text/javascript" src="/Public/__loginBox.js?v=360.2.49.lb1"></script>
2091
2092
2093
2094            </div>
2095        </div>
2096    </div>
2097</div>
2098
2099
2100
2101<script type="text/javascript">
2102    $('.containsClass_InnerPanelClass').readmore({
2103        collapsedHeight: 195,
2104        heightMargin: 15,//in pixels, avoids collapsing blocks that are only slightly larger than collapsedHeight
2105        moreLink: '<div class="factor360ReadMore" style="position: inherit; padding-top:15px;"><a href="#" class="button factor360Hyperlink factor360ReadMoreButton">Show More</a></div>',
2106        lessLink: '<div class="factor360ReadMore expanded" style="padding-top:10px;"><a href="#" class="button factor360Hyperlink factor360ReadLessButton">Show Less</a></div>',
2107        embedCSS: true,
2108        blockCSS: 'display: block; width: 100%;'//default css
2109    });
2110   
2111    function pageLoad() {
2112        $('.learningActivityInformationClass_InnerPanelClass').readmore({
2113            collapsedHeight: 500,// to compensate if there is video player displayed.
2114            heightMargin: 16,//in pixels, avoids collapsing blocks that are only slightly larger than collapsedHeight
2115            moreLink: '<div class="factor360ReadMore"><a href="#" class="button factor360Hyperlink factor360ReadMoreButton">Show More</a></div>',
2116            lessLink: '<div class="factor360ReadMore expanded"><a href="#" class="button factor360Hyperlink factor360ReadLessButton">Show Less</a></div>',
2117            embedCSS: true,
2118            blockCSS: 'display: block; width: 100%;'//default css
2119
2120        }); // end of readmore
2121
2122        var $learningActivityInformationTooltip = $('.LearningActivityInformationTooltip');
2123        $learningActivityInformationTooltip.each(function () {
2124            assignTooltip(this.id, this.title, 'top');
2125        });
2126
2127        var $toolTip = $('.LearningActivityInformationActionButtonTooltip');
2128        $toolTip.each(function () {
2129            assignTooltip(this.id, this.title, 'top');
2130        });
2131
2132        var $tooltipWrapper = $('.tooltip-wrapper');
2133        $tooltipWrapper.each(function () {
2134            assignTooltip(this.id, this.title, 'top');
2135        });
2136
2137    } // end of pageLoad         
2138
2139    function retainLoginModal() {
2140        // to retain bootstrap modal to close on invalid form validation
2141        $('#divUserLoginBox').modal('show');
2142    } // end of retainLoginModal
2143
2144    // Invitation Code
2145    function closeWindowAfterEnrollingUserViaInvitationCode() {
2146        $.fancybox.close();
2147        setTimeout("UpdatePageAfterEnrollingUserViaInvitationCode();", 300);
2148    }
2149    function UpdatePageAfterEnrollingUserViaInvitationCode() {
2150        __doPostBack('__page', 'JavascriptUpdatePageAfterEnrollingUserViaInvitationCode');
2151    }
2152
2153    function closeOptionalPriceModalAndContinue(selectedOptionalPrice) {
2154        $.fancybox.close();
2155        setTimeout(function () { __doPostBack('__page', "UpdateOptionalPriceAndContinue_" + selectedOptionalPrice); }, 100);
2156    }
2157
2158    function closeUserDonationPromptWindowAndOpenAddDonationWindowPopup() {
2159        $.fancybox.close();
2160        setTimeout(function () { __doPostBack('__page', "JavascriptOpenAddDonationWindowPopup"); }, 100);
2161    }
2162
2163    
2164
2165</script>
2165
2166
2167        
2168	</div>
2169        
2170        
2171
2172    </div>
2173</div>
2174<script type="text/javascript">
2175
2176    function pageLoad() {
2177        $('.learningActivityInformationClass_InnerPanelClass').readmore({
2178            collapsedHeight: 500,// to compensate if there is video player displayed.
2179            heightMargin: 16,//in pixels, avoids collapsing blocks that are only slightly larger than collapsedHeight
2180            moreLink: '<div class="factor360ReadMore"><a href="#" class="button factor360Hyperlink factor360ReadMoreButton">Show More</a></div>',
2181            lessLink: '<div class="factor360ReadMore expanded"><a href="#" class="button factor360Hyperlink factor360ReadLessButton">Show Less</a></div>',
2182            embedCSS: true,
2183            blockCSS: 'display: block; width: 100%;'//default css
2184
2185        }); // end of readmore
2186
2187        var $learningActivityInformationTooltip = $('.LearningActivityInformationTooltip');
2188        $learningActivityInformationTooltip.each(function () {
2189            assignTooltip(this.id, this.title, 'top');
2190        });
2191
2192        var $toolTip = $('.LearningActivityInformationActionButtonTooltip');
2193        $toolTip.each(function () {
2194            assignTooltip(this.id, this.title, 'top');
2195        });
2196
2197        var $tooltipWrapper = $('.tooltip-wrapper');
2198        $tooltipWrapper.each(function () {
2199            assignTooltip(this.id, this.title, 'top');
2200        });
2201
2202    } // end of pageLoad         
2203
2204    function retainLoginModal() {
2205        // to retain bootstrap modal to close on invalid form validation
2206        $('#divUserLoginBox').modal('show');
2207    } // end of retainLoginModal
2208
2209    // Invitation Code
2210    function closeWindowAfterEnrollingUserViaInvitationCode() {
2211        $.fancybox.close();
2212        setTimeout("UpdatePageAfterEnrollingUserViaInvitationCode();", 300);
2213    }
2214    function UpdatePageAfterEnrollingUserViaInvitationCode() {
2215        __doPostBack('__page', 'JavascriptUpdatePageAfterEnrollingUserViaInvitationCode');
2216    }
2217
2218    function closeOptionalPriceModalAndContinue(selectedOptionalPrice) {
2219        $.fancybox.close();
2220        setTimeout(function () { __doPostBack('__page', "UpdateOptionalPriceAndContinue_" + selectedOptionalPrice); }, 100);
2221    }
2222
2223    function closeUserDonationPromptWindowAndOpenAddDonationWindowPopup() {
2224        $.fancybox.close();
2225        setTimeout(function () { __doPostBack('__page', "JavascriptOpenAddDonationWindowPopup"); }, 100);
2226    }
2227
2228</script>
2228
2229
2230
2231        </div>
2232    </div>
2233
2234    
2234<script type="text/javascript">
2235        function toggleClass(jQueryElement, className) {
2236            var classes = [];
2237            if (jQueryElement.attr('class') !== undefined) {
2238                classes = jQueryElement.attr('class').split(/\s+/);
2239            }
2240            var length = classes.length;
2241            var i = 0;
2242
2243            for (; i < length; i++) {
2244                if (classes[i] === className) {
2245                    classes.splice(i, 1);
2246                    break;
2247                }
2248            }
2249            // The className is not found
2250            if (length === classes.length) {
2251                classes.push(className);
2252            }
2253            var newClass = classes.join(' ');
2254            jQueryElement.attr('class', newClass);
2255        }// end of toggleClass
2256
2257        $(function () {
2258            var $aCatalogWithSideBar_SideBar = $('#aCatalogWithSideBar_SideBar');
2259            var $divCatalogWithSideBar_MainLayout = $('#divCatalogWithSideBar_MainLayout');
2260            var $divCatalogWithSideBar_LeftSideBar = $('#divCatalogWithSideBar_LeftSideBar');
2261
2262            $aCatalogWithSideBar_SideBar.on('click touchstart', function (e) {
2263                var active = 'active';
2264                e.preventDefault();
2265                toggleClass($divCatalogWithSideBar_MainLayout, active);
2266                toggleClass($divCatalogWithSideBar_LeftSideBar, active);
2267                toggleClass($aCatalogWithSideBar_SideBar, active);
2268            })
2269
2270            //adjust main content height with the sidebar height so that at least its height is as tall as the sidebar
2271            setMainContentMinHeightBySideBarHeight();
2272            //adjust left side bar so that: it displays all the menus without scroll (done with css height: auto) and tall enough to have the same height as the main content when main content height exceeds the original side bar height
2273            // Note that this height would not have the correct height with pages with delayed content, like Admin/LearningActivity/Dashboard.aspx, unless we use interval.
2274            var count = 0;// we will give 100 * 100 = 10000ms = 10 seconds for the system to have COMPLETE height of the divCatalogWithSideBar_MainContent
2275            var _leftSideBarHeightAdjustmentInterval = window.setInterval(function () {
2276                if (count === 100) {
2277                    clearInterval(_leftSideBarHeightAdjustmentInterval);
2278                } else {
2279                    setSideBarHeightByMainContentHeight();
2280                    count += 1;
2281                }
2282            }, 100);
2283            //if there is no anything in the sidebar, we will hide the sidebar altogether
2284            var $divCatalogWithSideBar_LeftSideBar = $('#divCatalogWithSideBar_LeftSideBar');
2285            var divCatalogPageWithSideBarChildDiv = $divCatalogWithSideBar_LeftSideBar.children('div');
2286            if (divCatalogPageWithSideBarChildDiv.length === 0) {
2287                $divCatalogWithSideBar_LeftSideBar.hide();
2288                $('#aCatalogWithSideBar_SideBar').hide();
2289            } else {
2290                $divCatalogWithSideBar_LeftSideBar.show();
2291            }
2292        });// end of document ready
2293        function setMainContentMinHeightBySideBarHeight() {
2294            // IMPORTANT: this function is use somewhere else too
2295            $('#divCatalogWithSideBar_MainContent').css('min-height', $('#divCatalogWithSideBar_LeftSideBar').outerHeight() + 'px');
2296        }
2297        function setSideBarHeightByMainContentHeight() {
2298            // IMPORTANT: this function is use somewhere else too
2299            $('#divCatalogWithSideBar_LeftSideBar').css('height', 'auto'); // this will make the side bar height just tall enough to fit all the menu items without scroll bar, and then we will compare this height with main content height to decide if we need to set side bar height same as main content height
2300            var newSidebarHeight = $('#divCatalogWithSideBar_LeftSideBar').outerHeight();
2301            var mainContentHeight = $('#divCatalogWithSideBar_MainContent').outerHeight();
2302            if (mainContentHeight > newSidebarHeight) {
2303                $('#divCatalogWithSideBar_LeftSideBar').outerHeight(mainContentHeight);
2304            }
2305        }
2306        function updateSideBarAndContentHeight() {
2307            // IMPORTANT: this function is use somewhere else too
2308            // this is used to avoid side bar having scroll when resizing
2309            var $divCatalogWithSideBar_LeftSideBar = $('#divCatalogWithSideBar_LeftSideBar');
2310            var originalSidebarHeight = $divCatalogWithSideBar_LeftSideBar.outerHeight();
2311            $divCatalogWithSideBar_LeftSideBar.css('height', 'auto');
2312            var newSidebarHeight = $divCatalogWithSideBar_LeftSideBar.outerHeight();
2313            var mainContentHeight = $('#divCatalogWithSideBar_MainContent').outerHeight();
2314            if (newSidebarHeight > originalSidebarHeight) {
2315                setMainContentMinHeightBySideBarHeight();
2316            } else if (mainContentHeight > newSidebarHeight) {
2317                setSideBarHeightByMainContentHeight();
2318            }
2319        }// end of updateSideBarAndContentHeight
2320    </script>
2320
2321
2322
2323    
2324    
2325
2326                </main>
2327
2328            
2329</div>
2330            <div id="pnlFooterAndPoweredBy" class="oasisWrap divFooterAndPoweredBy" class="oasisWrap divFooterAndPoweredBy">
2331	
2332                <footer>
2333                    <div>
2334                        <div id="pnlCustomFooterContent">
2335		
2336                            
2337                        
2338	</div>
2339                        <div id="pnlPoweredBy" class="factor360PageHeaderFlexboxWrapper topVerticalAligned" style="margin-top: 15px;">
2340		
2341                            <div id="pnlComputerInfo" class="factor360PageHeaderFlexboxItem topAligned" style="padding-left: 15px; color: #fff; font-size: 0.8em;">
2342			
2343                                
2344                            
2345		</div>
2346                            <div class="factor360PageHeaderFlexboxItem topAligned"
2347                                style="padding-left: 15px; padding-right: 15px; text-align: right;">
2348                                <a id="hlAndroidAppDownload" href="https://play.google.com/store/apps/details?id=org.asge.oasismobile.gileap" target="_blank"><img id="imgAndroidAppDownload" alt="Android App Download" src="../../images/google-play-badge.png" style="height:40px;border: 0;" /></a>
2349                                <a id="hlIOSAppDownload" href="https://itunes.apple.com/us/app/asge-gi-leap/id1381451470?ls=1&amp;mt=8" target="_blank"><img id="imgIOSAppDownload" alt="IOS App Download" src="../../images/ios-appstore-badge.png" style="height:40px;border: 0;" /></a>
2350                                <a id="hlkPoweredBy" href="https://www.asge.org/home/foundation/beyond-our-walls-campaign" target="_blank"><img id="imgPoweredBy" alt="Powered By" src="../../images/ASGE/ASGE-PowerBy.png" style="border: 0;" /></a>
2351                            </div>
2352                        
2353	</div>
2354                    </div>
2355                </footer>
2356            
2357</div>
2358        </div>
2359        
2360        <!-- Language Selector Modal -->
2361        <div id="divLanguageSelectorBox" class="modal fade" tabindex="-1" role="dialog">
2362            <div class="modal-dialog" role="document">
2363                <!-- Modal content-->
2364                <div class="modal-content">
2365                    <div class="modal-header">
2366                        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
2367                        <div class="titleBar noMargin noPadding" style="text-align: center;">
2368                            Please select your language
2369                        </div>
2370                    </div>
2371                    <div class="modal-body" style="">
2372                        
2373<style type="text/css">
2374    .well.languageItemBox {
2375        margin-bottom: 3px;
2376        background-color: transparent;
2377        border-color: #d6e9c6;
2378        color: inherit;
2379               border-radius: 4px;
2380        font-size: 120%;
2381    }
2382
2383        .well.languageItemBox:hover {
2384            background-color: #dff0d8;
2385            color: #3c763d;
2386        }
2387
2388    .alert.selectedLanguageItemBox {
2389        margin-bottom: 0px;
2390        font-size: 120%;
2391        padding:9px;/* made it same as well class */
2392        border-color:#56a957;
2393        border-width:2px;
2394    }
2395</style>
2396
2397        <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned leftAligned noBottom enableWrap">
2398    
2399        <div id="ucSelectLanguage_rptSelectLanguage_pnlEachLanguageWrapper_0" class="factor360PageHeaderFlexboxItem topAligned paddedFlexboxItem width100p">
2400	
2401                         <span id="ucSelectLanguage_rptSelectLanguage_lblLanguageID_0" style="display:none;">1</span>
2402            <a id="ucSelectLanguage_rptSelectLanguage_lnkBtnSelectLanguage_0" class="factor360NoDecorationHyperlink" href="javascript:WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(&quot;ctl00$ctl00$ucSelectLanguage$rptSelectLanguage$ctl01$lnkBtnSelectLanguage&quot;, &quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, true))" style=""><div id="ucSelectLanguage_rptSelectLanguage_pnlEachLanguageInnerWrapper_0" class="alert alert-success selectedLanguageItemBox">
2403		
2404                        <div class="factor360PageHeaderFlexboxWrapper topVerticalAligned topVerticalAligned leftAligned noBottom">
2405                            <div class="factor360PageHeaderFlexboxItem topAligned paddedFlexboxItem3px">
2406                                <img id="ucSelectLanguage_rptSelectLanguage_imgLanguageFlag_0" src="https://learn.asge.org/images/Flags/flag-usa.png" alt="English Flag" style="width:32px;" />
2407                            </div>
2408                            <div class="factor360PageHeaderFlexboxItem topAligned paddedFlexboxItem3px">
2409                                <span id="ucSelectLanguage_rptSelectLanguage_lblLanguageName_0">English</span>
2410                            </div>
2411                        </div>
2412                    
2413	</div></a>
2414        
2415</div>
2416
2417    </div>
2418
2419                    </div>
2420                </div>
2421            </div>
2422        </div>
2423        <!-- End of Language Selector Modal -->
2424        
2425        
2426
2427        
2428
2429        
2430    
2431
2432<script type="text/javascript">
2433//<![CDATA[
2434window.onload=assignTooltip('MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hlnkTargetURL_0','Catalog','bottom',false, 'body');window.onload=assignTooltip('MainContent_ucVerticalUserSubNavigation_rptUserSubNavigation_hlnkTargetURL_1','Library','bottom',false, 'body');window.__TsmHiddenField = $get('RadScriptManager1_TSM');WebForm_AutoFocus('ctl00_ctl00_MainContent_MainContent_ucLearningActivityCatalog_Details___learningActivityCatalog_TopAndTabDetails_ucLoginBox_txtUserName');Sys.Application.add_init(function() {
2435    $create(Telerik.Web.UI.RadAjaxManager, {"_updatePanels":"","ajaxSettings":[],"clientEvents":{OnRequestStart:"",OnResponseEnd:""},"defaultLoadingPanelID":"","enableAJAX":true,"enableHistory":false,"links":[],"styles":[],"uniqueID":"ctl00$ctl00$RadAjaxManager1","updatePanelsRenderMode":0}, null, null, $get("ctl00_ctl00_RadAjaxManager1"));
2436});
2437Sys.Application.add_init(function() {
2438    $create(Telerik.Web.UI.RadAjaxLoadingPanel, {"initialDelayTime":0,"isSticky":false,"minDisplayTime":0,"skin":"","transparency":10,"uniqueID":"ctl00$ctl00$raLoadingPanel","zIndex":90000}, null, null, $get("raLoadingPanel"));
2439});
2440Sys.Application.add_init(function() {
2441    $create(Telerik.Web.UI.RadAjaxLoadingPanel, {"initialDelayTime":0,"isSticky":false,"minDisplayTime":0,"skin":"Default","uniqueID":"ctl00$ctl00$raDefaultLoadingPanel","zIndex":90000}, null, null, $get("raDefaultLoadingPanel"));
2442});
2443//]]>
2444</script>
2444
2445</form>
2446
2447    <!-- dialog window markup for session timeout warning -->
2448    
2449
2450    
2451    
2452    
2453    
2454    
2455    
2456    
2457
2458    
2458<script type="text/javascript">
2459        $(function () {
2460            adaComplianceFixer();
2461        })
2462    </script>
2462
2463    
2463<script type="text/javascript" src="/Scripts/adaComplianceFixes.js?v=360.2.40.15"></script>
2463
2464
2465    
2465<script type="text/javascript">
2466        function closeFancyboxPopupAndRedirectToTargetURL(url) {
2467            $.fancybox.close();
2468            window.location = url;
2469        }// end of closeFancyboxAndRedirectToTargetURL
2470    </script>
2470
2471
2472
2473</body>
2474
2475
2476</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.