PageSourceSearch

https://admin.octopuspro.com/login

html octopuspro.com collected 2026-09-24 10:56:36 UTC 179,084 bytes, 2,682 lines download raw bytes

1<!DOCTYPE html>
2<script type='module' src='/vue-3/assets/main-CHBhrBmt.js?v=1790246824' rel='preload'></script>
2 <link type='text/css' rel='stylesheet' href='/vue-3/assets/style-Dw9pVUs4.css?v=1790246824'>
3<script>
4    if(localStorage.getItem('version') !== '1790246824'){
5        localStorage.removeItem('data')
6        localStorage.removeItem('s3PathsData')
7        localStorage.removeItem('bookingStatusesData')
8        localStorage.setItem('version','1790246824')
9    }
10</script>
vendor: 1 bytes, line 10
10
11<script type="text/javascript">
12        var config = {};
13</script>
13
14<!--comment-->
15<script>
16    var hasTwilio = '';
17    var getContractorInfoForMapUrl = "https://admin.octopuspro.com/default/get-contractor-info-for-map";
18</script>
18
19<html>
20<head>
21    
21<script src='/dist/js/manifest.js?v=1790246824'></script>
21
22    
22<script src='/dist/js/vendor.js?v=1790246824'></script>
22
23    
23<script src='/dist/js/main.js?v=1790246824'></script>
23
24
25    <!--    
25<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyC7vd6jFUCUbMyfDtWOJlb4n9y2rZU5hhw&libraries=places"></script>
25-->
26
27    <!-- Adding Initial Scale -->
28    <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1">
29
30
31
32    <link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap.min.css?v=1790246824"/>
33	<link type="text/css" rel="stylesheet" media="screen" href="/css/style-updated9.css?v=286?v=1790246824"/>
34	<link type="text/css" rel="stylesheet" media="screen" href="/css/custom_css.min.css?v=1790246824"/>
35	<link type="text/css" rel="stylesheet" media="screen" href="/css/Scroll-menu.css?v=1790246824"/>
36	<link type="text/css" rel="stylesheet" media="screen" href="/css/fontello.min.css?v=1790246824"/>
37	<link type="text/css" rel="stylesheet" media="screen" href="/css/animate.min.css?v=1790246824"/>
38	<link type="text/css" rel="stylesheet" media="screen" href="/css/basic.min.css?v=1790246824"/>
39	<link type="text/css" rel="stylesheet" media="screen" href="/css/switchery.css?v=1790246824"/>
40	<link type="text/css" rel="stylesheet" media="screen" href="/css/firebaseui.css?v=1790246824"/>
41	<link type="text/css" rel="stylesheet" media="screen" href="/css/dropzone.min.css?v=1790246824"/>
42	<link type="text/css" rel="stylesheet" media="screen" href="/css/summernote.css?v=1790246824"/>
43	<link type="text/css" rel="stylesheet" media="screen" href="/css/login_updated.css?v=115?v=1790246824"/>
44	<link type="text/css" rel="stylesheet" media="screen" href="/css/SimpleSliderCustom.css?v=1790246824"/>
45	<link type="text/css" rel="stylesheet" media="screen" href="/css/activity-log.min.css?v=1790246824"/>
46	<link type="text/css" rel="stylesheet" media="screen" href="/css/filtersCss.css?v=102?v=1790246824"/>
47	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-timepicker.css?v=1790246824"/>
48	<link type="text/css" rel="stylesheet" media="screen" href="/css/responsive-table-updated3.css?v=5?v=1790246824"/>
49	<link type="text/css" rel="stylesheet" media="screen" href="/css/datepicker3.min.css?v=1790246824"/>
50	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-datetimepicker.min.css?v=1790246824"/>
51	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-colorpicker.min.css?v=1790246824"/>
52	<link type="text/css" rel="stylesheet" media="screen" href="/css/bootstrap-clockpicker.min.css?v=1790246824"/>
53	<link type="text/css" rel="stylesheet" media="screen" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"/>
54	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap-select.min.css"/>
55	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.datatables.net/v/dt/dt-1.13.4/b-2.3.6/b-colvis-2.3.6/b-html5-2.3.6/b-print-2.3.6/r-2.4.1/datatables.min.css"/>
56	<link type="text/css" rel="stylesheet" media="screen" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css"/>
57    
57<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js?v=1790246824" type="text/javascript"></script>
57
58	
58<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery-migrate.min.js?v=1790246824" type="text/javascript"></script>
58
59	
59<script src="https://cdn.jsdelivr.net/npm/[email protected]/jquery-ui.min.js?v=1790246824" type="text/javascript"></script>
59
60	
60<script src="/js/inspinia.js?v=1790246824" type="text/javascript"></script>
60
61	
61<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js?v=1790246824" type="text/javascript"></script>
61
62	
62<script src="https://cdn.jsdelivr.net/npm/[email protected]/min/moment.min.js?v=1790246824" type="text/javascript"></script>
62
63	
63<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap-select.min.js?v=1790246824" type="text/javascript"></script>
63
64	
64<script src="/js/switchery.min.js?v=1790246824" type="text/javascript"></script>
64
65	
65<script src="/js/classie.js?v=1790246824" type="text/javascript"></script>
65
66	
66<script src="/js/bootstrap-tabdrop.js?v=1790246824" type="text/javascript"></script>
66
67	
67<script src="/js/jquery.form.min.js?v=1790246824" type="text/javascript"></script>
67
68	
68<script src="/js/notify_updated.min.js?v=1790246824" type="text/javascript"></script>
68
69	
69<script src="/js/jquery.bootstrap-touchspin-updated2.js?v=1790246824" type="text/javascript"></script>
69
70	
70<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.validate.min.js?v=1790246824" type="text/javascript"></script>
70
71	
71<script src="/plugins/dropzone/dropzone.min.js?v=1790246824" type="text/javascript"></script>
71
72	
72<script src="/js/summernote.min.js?v=1790246824" type="text/javascript"></script>
72
73	
73<script src="/js/firebase.js?v=1790246824" type="text/javascript"></script>
73
74	
74<script src="/js/firebaseui.js?v=1790246824" type="text/javascript"></script>
74
75	
75<script src="/js/signature_pad.min.js?v=1790246824" type="text/javascript"></script>
75
76	
76<script src="/js/jquery.tablesorter.js?v=1790246824" type="text/javascript"></script>
76
77	
77<script src="/js/jquery.format-1.3.min.js?v=1790246824" type="text/javascript"></script>
77
78	
78<script src="/js/nav-dropdown.js?v=1790246824" type="text/javascript"></script>
78
79	
79<script src="/js/bootstrap-datetimepicker.min.js?v=1790246824" type="text/javascript"></script>
79
80	
80<script src="/js/bootstrap-colorpicker.min.js?v=1790246824" type="text/javascript"></script>
80
81	
81<script src="/js/bootstrap-modal-popover.js?v=1790246824" type="text/javascript"></script>
81
82	
82<script src="/js/popover.js?v=1790246824" type="text/javascript"></script>
82
83	
83<script src="/js/bootstrap-clockpicker.min.js?v=1790246824" type="text/javascript"></script>
83
84	
84<script src="/js/bootstrap-datepicker_1.js?v=1790246824" type="text/javascript"></script>
84
85	
85<script src="/js/ajax/AjaxManager.js?v=1790246824" type="text/javascript"></script>
85
86	
86<script src="/js/filters.js?v=1790246824" type="text/javascript"></script>
86
87	
87<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js?v=1790246824" type="text/javascript"></script>
87
88	
88<script src="https://cdn.datatables.net/v/dt/dt-1.13.4/b-2.3.6/b-colvis-2.3.6/b-html5-2.3.6/b-print-2.3.6/r-2.4.1/datatables.min.js" type="text/javascript"></script>
88
89    
90
91
92    
92<script>
93        const GOOGLE_API_KEY = 'AIzaSyAPqtzqpQ7hTnssEESLhM1twGHR_qhwIOc';
94
95    </script>
95
96
97
98
99
100            <link REL="SHORTCUT ICON"
101              HREF="https://admin.octopuspro.com/pic/favicon_octologo.png?v=1790246824"/>
102
103    
104
105
106
107    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" >
107<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:"1589263453",accountID:"1169474",trustKey:"1169474",xpid:"VQcBWFJUDBABUVJVBgMOV1QA",licenseKey:"1c7ac89166",applicationID:"1537129101",browserID:"1589263453"};;/*! For license information please see nr-loader-spa-1.322.0.min.js.LICENSE.txt */
108(()=>{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};
108e.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;
108const 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);
108if(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$:()=>
108o,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])}
108(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}
108;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)=>
108{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
108ine_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()=>
108{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)=>
108null==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
108dTimingMethod(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
108imeToRegister: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})})}
108return 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"
108!==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);
108if(!(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)}
108);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)})});
108class 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
108h(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>
108
109<meta name="description" content="Login - OctopusPro - Octopuspro" ><title>Login - OctopusPro</title>
110
111    <!--By moataz to check if company has twilio account or not -->
112        <!--    -->
113    <!--  BOOK SETTINGS STYLE LEVEL STARTS @AUTHOR AMR-->
114    <!--    <link type="text/css" rel="stylesheet"-->
115    <!--  BOOK SETTINGS STYLE LEVEL ENDS @AUTHOR AMR-->
116
117
118
119    <!-- INITIALIZE LANGUAGE SCRIPT START @AUTHOR AMR -->
120    
120<script type="text/javascript">
121        /**
122         * Global JS constants injected by the PHP layout.
123         *
124         * LANG          — The active locale code from Zend's translator (e.g. 'en', 'ar', 'fr').
125         *                 Used by octopus-translate.js to decide which translation file to load
126         *                 and by trans.js for the existing translation system.
127         *
128         * COMPANY_ID    — The currently authenticated company's numeric ID, cast to int for safety.
129         *                 Used by octopus-translate.js to apply the feature gate (only runs for
130         *                 companies that have the translation feature enabled).
131         *
132         * LARAVEL_BASE  — The base URL of the Laravel API (e.g. 'https://api.example.com').
133         *                 Trailing slash is stripped to avoid double-slash issues when
134         *                 building endpoint URLs like `${LARAVEL_BASE}/api/v2/locales`.
135         */
136        const LANG = 'en';
137        const COMPANY_ID = 0;
138    </script>
138
139    <!-- INITIALIZE LANGUAGE SCRIPT FINISH @AUTHOR AMR -->
140
141    
142
143</head>
144<style>
145    .h-fit-content{
146        height: fit-content !important;
147    }
148    .inline.no-padding{
149        width: 100%;
150        margin-bottom: 15px;
151    }
152    .input-group-btn .fa-minus,.input-group-btn .fa-plus{
153        font-size: 14px !important;
154        padding-top: 5px;
155    }
156.font-s-32{
157
158    font-size: 32px !important;
159}
160    div > #button:focus{
161        border-color: #2e4051 !important;
162    }
163    #authenticate_email:focus{
164        border-color: #2e4051 !important;
165    }
166    #custom_popupi .btn-primary:focus {
167        border-color: #2e4051 !important;
168    }
169    .width_100{
170        width: 100%;
171        margin-bottom : 15px !important;
172    }
173
174.digit,
175.dig {
176    float: left;
177    padding: 10px 30px;
178    font-size: 2rem;
179    cursor: pointer;
180}
181
182.sub {
183  font-size: 0.8rem;
184  color: grey;
185}
186
187.pad-container {
188  display: none;
189  background-color: white;
190  width: 255px;
191  padding: 18px;
192  margin: auto;
193  text-align: center;
194  box-shadow: 0 14px 28px rgba(0, 0, 0, 0.25), 0 10px 10px rgba(0, 0, 0, 0.22);
195}
196
197.pad-container #output {
198    border: 1px solid lightgray;
199    padding: 5px !important;
200    min-height: 32px;
201}
202
203.pad-container .row {
204    margin-left: 0px;
205}
206
207.toggle-pad {
208    cursor: pointer;
209}
210
211#call {
212  display: inline-block;
213  background-color: #66bb6a;
214  padding: 4px 30px;
215  margin: 10px;
216  color: white;
217  border-radius: 4px;
218  float: left;
219  cursor: pointer;
220}
221
222.botrow {
223  margin: 0 auto;
224  width: 280px;
225  clear: both;
226  text-align: center;
227  font-family: 'Exo';
228}
229
230.back-button {
231    padding: 4px !important;
232    font-size: 25px !important;
233    cursor: pointer !important;
234    margin-top: 0px !important;
235    margin-left: 0px !important;
236}
237
238
239.digit:active,
240.dig:active {
241  background-color: #e6e6e6;
242}
243
244#call:hover {
245  background-color: #81c784;
246}
247
248.dig {
249  float: left;
250  padding: 10px 20px;
251  margin: 10px;
252  width: 30px;
253  cursor: pointer;
254}
255
256    #newTwilioModal .modal-content,#newTwilioModal2 .modal-content {
257        background-color: #222222 !important;;
258        text-align: center;
259        padding-top: 40px;
260        /*width:420px !important;*/
261    }
262
263    #newTwilioModal .modal-footer , #newTwilioModal2 .modal-footer {
264        background-color: #fefefe !important;
265        text-align: center;
266    }
267
268    #newTwilioModal .btn-circle ,#newTwilioModal2 .btn-circle{
269        width: 50px;
270        height: 50px;
271        text-align: center;
272        font-size: 22px;
273        line-height: 1.42857;
274        border-radius: 50%;
275        outline: none;
276    }
277
278    #newTwilioModal .user-info,  #newTwilioModal2 .user-info{
279        padding-bottom: 20px !important;
280    }
281    #newTwilioModal .btn-call:hover ,#newTwilioModal .green-btn-call,
282    #newTwilioModal2 .btn-call:hover ,#newTwilioModal .green-btn-call{
283        color: white;
284        background-color: forestgreen !important;
285    }
286
287    #newTwilioModal #content_modal_popup_twilio ,
288    #newTwilioModal2 #content_modal_popup_twilio {
289        width: 50%;
290        margin: 0 auto;
291    }
292
293    #newTwilioModal .btn-user-avatar,
294    #newTwilioModal2 .btn-user-avatar {
295
296        width:180px;
297        height:180px;
298        font-size: 88px;
299        background-color: #494949 !important;
300        border-color: #494949;
301        color: white;
302    }
303
304    #newTwilioModal .modal-header .close
305    ,    #newTwilioModal2 .modal-header .close{
306        margin-top: -37px;
307        color: white;
308        font-size: 25px;
309        margin-right: 10px;
310
311    }
312    #newTwilioModal .modal-header
313    ,#newTwilioModal2 .modal-header{
314        border:none !important;
315    }
316    #newTwilioModal #warning,
317    #newTwilioModal2 #warning{
318        padding: 10px 0px;
319        text-align: center;
320        color: red;
321    }
322
323    #newTwilioModal .callee-name,
324    #newTwilioModal2 .callee-name{
325        padding: 21px 0px;
326        font-size: 18px;
327        color: whitesmoke;
328    }
329
330    #newTwilioModal .modal-body{
331        max-height: calc(100vh - 212px);
332        overflow-y: auto;
333    }
334    #newTwilioModal #call-time ,
335    #newTwilioModal2 #call-time{
336        color:white;
337    }
338    #newTwilioModal .callee-number ,
339    #newTwilioModal2 .callee-number{
340        color: white;
341        font-size: 20px;
342
343        padding-bottom: 32px;
344    }
345
346    .dismissbtn{
347        background-color: transparent;
348        border-color: white;
349    }
350</style>
351<!--/*popups style*/-->
352<link rel="stylesheet" href="https://admin.octopuspro.com/css/popups-style.css?v=3?v=1790246824">
353<style>
354    .updated_date{
355        float: right;
356        font-size: 10px;
357    }
358    @media (max-width: 720px){
359        #search_form {
360            width: 100%!important;
361        }}
362
363    @media only screen and (max-width: 991px) {
364        .updated_date{
365            float: none;
366        }
367        #tidio-chat-iframe {
368            display: none;
369        }
370    }
371
372
373    @media only screen and (max-width: 500px) {
374        .label-margin
375        {
376            margin-top:5px;
377        }
378    }
379    #tidio-chat div iframe {
380        left: 200px !important;
381        right: initial !important;
382    }
383
384    .settings-items .nav-second-level li a {
385        padding: 14px 10px 7px 10px;
386        padding-left: 40px;
387    }
388
389    .settings-items > .nav > li > a {
390        padding: 14px 10px 2px 10px;
391    }
392
393    .settings-items .nav-third-level li a {
394        padding: 7px 20px 2px 25px;
395        padding-left: 50px;
396    }
397
398    .nav > li > a {
399        color: #ffffff;
400    }
401
402    .nav-second-level > li > a {
403        color: #a7b1c2;
404    }
405
406    .nav-third-level > li > a {
407        color: #a7b1c2;
408        padding-left: 45px;
409    }
410
411
412    .collapse.in{
413
414        height: auto !important;
415
416    }
417
418    .nav_parent_top_menu {
419        background: #fff;
420    }
421
422
423    .custom-search-container {
424        position: relative;
425    }
426    .custom-search-container input { text-indent: 22px;}
427    .custom-search-container .fa-search {
428        position: absolute;
429        top: 10px;
430        left: 10px;
431        z-index: 1
432    }
433
434    .blue-label-btn {
435        background-color: #03A9F4;
436        border-color: #03A9F4;
437        font-size: 12px;
438        color: white;
439    }
440    .blue-label-btn:hover{
441        background-color: #0790ce;
442        border-color: #0790ce;
443        color: white;
444    }
445    div#address_Modal_admin {
446        z-index: 1071;
447    }
448    #top-menu{
449        padding: 10px 30px !important;
450    }
451    @media (max-width: 768px) {
452
453        body.mini-navbar .navbar-static-side {
454            width: 65% ;
455            display: block;
456        }
457        /*.yes{*/
458        /*    width: 50%;*/
459        /*    display: block;*/
460        /*}*/
461        .nav_parent_top_menu {
462            background: #fff;
463            position: relative;
464            z-index: 1010;
465        }
466        /*body.mini-navbar .nav-header{*/
467        /*    padding-top: 63px;*/
468        /*}*/
469        body.mini-navbar .profile-element, body.mini-navbar .nav-label, body.mini-navbar .navbar-default .nav li a span {
470            display: block;
471        }
472        #complo , #myaccount-image , .logo-element{
473            display: none;
474        }
475
476        .nav>li {
477            position: relative;
478            display: block;
479        }
480        .nav > li > a {
481            color: #a7b1c2;
482            font-weight: 600;
483            /*padding: 14px 20px 14px 25px;*/
484
485        }
486        .nav > li > a i {
487            margin-right: 6px;
488            float: left;
489        }
490        .nav > li a .nav-label{
491            font-size: 13px;
492        }
493        .dis_none_in_mob{
494            display: none !important;
495        }
496        .flex_elemnt{
497            display: flex;
498            align-items: center;
499            justify-content: center;
500        }
501        .trans_top{
502            transform: translateY(-16px);
503        }
504        body:not(.fixed-sidebar).mini-navbar .nav li:hover .nav-second-level{
505            position: relative;
506            left:0
507        }
508        body:not(.fixed-sidebar).mini-navbar .nav li:active .nav-second-level{
509            display: block;
510            position: relative;
511            left: 0;
512        }
513        body:not(.fixed-sidebar).mini-navbar .nav li:active ,.nav-second-level, .mini-navbar .nav li:focus > .nav-second-level{
514            position: relative;
515            left: 0;
516        }
517        /*.nav li .nav-second-level{*/
518        /*    display: none !important;*/
519        /*}*/
520        /*.nav li.active .nav-second-level{
521            display: block !important;
522        }*/
523        /*.work_toggels{*/
524        /*    display: block;*/
525        /*    position: relative;*/
526        /*    left: 0;*/
527        /*}*/
528        .mini-navbar .nav-second-level{
529            position: relative;
530        }
531        /*body.mini-navbar #page-wrapper{*/
532        /*    background: none;*/
533        /*}*/
534        .body-small.mini-navbar .navbar-static-side{
535            /*top: 63px;*/
536            /*padding-bottom: 200px !important;*/
537        }
538        body.mini-navbar #page-wrapper {
539            margin:0 !important;
540        }
541        .settings-items .nav-third-level li a{
542            padding-left: 20px ;
543        }
544        .n_padding_left_mob{
545            padding-left: 25px !important;
546        }
547        .mini-navbar .nav-second-level li a{
548            padding: 10px 10px 10px 20px;
549        }
550        .mini-navbar li.active .nav-second-level{
551            left: 0;
552        }
553        .nav-second-level li > ul {
554            padding-left: 15px;
555        }
556        .edit_padd_in_mob{
557            padding-left: 25px !important;
558        }
559        .hiddin_in_mob{
560            display: none !important;
561        }
562        .padding_bot_500{
563            padding-bottom:500px;
564        }
565        /*.label-primary, .badge-primary{*/
566        /*    transform: translate(10px , -16px) !important;*/
567        /*}*/
568        .unique_box_number .pull-right{
569            transform: translate(0px , -16px) !important;
570        }
571        #top-menu{
572            padding: 10px 25px !important;
573            /*padding-left: 10px !important;*/
574        ;
575        }
576    }
577    .home-profile{
578        display: flex;
579        flex-direction: column;
580        flex-wrap: wrap;
581        align-content: center;
582    }
583    .uniq_flex{
584        display: flex;
585        justify-content: space-evenly;
586        align-items: flex-end;
587    }
588    .hiddin_in_mob{
589        display: none !important;
590    }
591    .width_of_icon_search{
592        background: #0e9aef !important;
593        border-color: #0e9aef !important;
594
595    }
596    .width_of_icon_search:hover{
597        background: #0e9aef;
598        border-color: #0e9aef;
599    }
600    .width_of_icon_search:active{
601
602        background: #0e9aef;
603        border-color: #0e9aef;
604    }
605    .width_of_icon_search:focus{
606
607        background: #0e9aef;
608        border-color: #0e9aef;
609    }
610    @media (max-width: 350px) {
611        body.mini-navbar .navbar-static-side {
612            width: 62% ;
613            display: block;
614        }
615        body.mini-navbar .navbar-static-side {
616            width: 65% ;
617            display: block;
618        }
619    }
620
621    .cancel_style{
622        color: #2f4050!important;
623        background-color: #fff!important;
624        border-color: #2f4050!important;
625    }
626    .min_width_btn{
627        min-width: 120px;
628    }
629
630    .toggle-pad img{
631        height: 35px;
632        width: 35px;
633        margin-left: -10px;
634        margin-top: -5px;
635    }
636
637    @media (max-width: 350px) {
638        .add_15margin__un_350{
639            margin-left: -15px;
640            margin-right: -15px;
641        }
642    }
643</style>
644
645<script>
646    $(".sidebar-collapse ul li a").on("click", function() {
647        $("body.mini-navbar .navbar-static-side").addClass("yes");
648    })
649
650     function showEmbedText() {
651      popupi_alert('Set this worker’s default pay rules', `
652   <ul style="margin:0 0 12px 20px; padding:0; list-style-position:inside; list-style-type:disc; font-size:14px; line-height:1.5;">
653  <li style="margin-bottom:4px;">
654    <strong>Default Pay Model:</strong> How this service normally rewards fieldworkers. Choose <b>Commission</b> (percent or flat per service line) or <strong>Hourly</strong> (time-based).
655  </li>
656  <li style="margin-bottom:4px;">
657    <strong>If Commission →</strong> <strong>Base Commission</strong> is the normal share of each service line (pre-tax). <strong>Bonus Commission</strong> is an optional bonus rate you can activate on a booking or service line for special cases.
658  </li>
659  <li style="margin-bottom:4px;">
660    <strong>If Hourly →</strong> enter the regular <strong>Hourly Rate</strong>, an <strong>Over-Time Rate</strong> for premium hours, and an optional <strong>First-Hour Rate</strong> (call-out fee that replaces the first hour).
661  </li>
662  <li style="margin-bottom:4px;">
663    These defaults auto-fill new jobs unless you override them at the <strong>Worker × Service</strong> level in this profile or via a one-off <strong>booking override</strong>.
664  </li>
665  <li style="margin-bottom:4px;">
666    All shares are calculated on the pre-tax amount and each service line’s totals can’t exceed <b>100 %.</b>
667  </li>
668
669    <a href="https://help.octopuspro.com/fieldworker-commission-pay-rates" target="_blank" style="text-decoration:none; font-size:14px; line-height:1.5;">
670      <strong>Learn More →</strong>
671    </a>
672
673</ul>
674
675`);
676      $('.modal-footer').hide();
677    }
678
679
680</script>
680
681<!--check if 'hide_menu' received from bootstrap file equals true,render custom css to hide menu-->
682
683
684<!-- START CUSTOM CSS FOR MOBIE WEB VIEW @AUTHOR Yosor test-->
685<link rel="stylesheet" href="" id="web_view_link">
686<!-- END CUSTOM CSS FOR MOBIE WEB VIEW @AUTHOR AMR-->
687<body class="pace-done " id='bodyhight' onload="loadhight()">
688
689<!-- Browser compatibility warning banner — shown only on non-Chrome / non-Safari browsers -->
690<div id="browser-warning-banner" style="display:none;position:relative;background:#fff3cd;border-bottom:2px solid #ffc107;color:#856404;padding:10px 16px;font-size:14px;line-height:1.5;box-sizing:border-box;align-items:center;justify-content:space-between;">
691    <span>
692        <i class="fa fa-exclamation-circle" style="margin-right:8px;"></i>
693        For the best experience and full feature support, please use <strong>Google Chrome</strong> or <strong>Safari</strong>.
694        Your current browser may not display all features correctly.
695    </span>
696    <button onclick="document.getElementById('browser-warning-banner').style.display='none';" style="background:none;border:none;font-size:22px;line-height:1;cursor:pointer;color:#856404;padding:0 4px;margin-left:16px;float:right;" aria-label="Dismiss">&times;</button>
697</div>
698<script>
699    (function () {
700        var ua = navigator.userAgent;
701        var vendor = navigator.vendor || '';
702
703        var isEdge = /Edg\//.test(ua) || /Edge\//.test(ua);
704
705        var isChrome =
706            /Chrome\//.test(ua) &&
707            !/OPR\//.test(ua) &&
708            !isEdge;
709
710        var isSafari =
711            /^Apple/.test(vendor) ||
712            (/Safari\//.test(ua) && !/Chrome\//.test(ua));
713
714        if (!isChrome && !isSafari) {
715            var banner = document.getElementById('browser-warning-banner');
716            if (banner) banner.style.display = 'flex';
717        }
718    })();
719</script>
719
720<!-- END browser compatibility warning banner -->
721
722<div id="vue-3"></div>
723<div id="wrapper">
724    <!-- check if user login -->
725    
726
727        
728        <div class="no-margin-b">
729            <style>
730    .alert_box{
731        position: absolute;
732        top: 0;
733        right: 0;
734        z-index: 999999;
735        width: 100%;
736        text-align: center;
737        left: 0;
738        margin: 0 !important;
739    }
740    .alert_box .alert{
741        display: inline-block;
742        margin: 0;
743        padding: 10px 20px;
744        border-radius: 0;
745        font-size: 14px;
746        font-weight: 400;
747        line-height: 20px;
748        color: #fff;
749        text-align: left;
750        background-color: #f0ad4e;
751        border-color: #eea236;
752        box-shadow: 0 1px 1px rgba(0,0,0,0.05);
753        margin-top: 5px;
754        width: 100%;
755    }
756    .alert_box .alert-success{
757        background-color: #5cb85c;
758        border-color: #4cae4c;
759    }
760    .alert_box .alert-danger{
761        background-color: #d9534f;
762        border-color: #d43f3a;
763    }
764</style>
765<div class="alert_box">
766    </div>
767
768<script>
769  // $(document).ready(function(){
770  //   setTimeout(function(){
771  //     $(".alert").fadeOut('slow');
772  //   }, 8000); // 8 seconds delay
773  // });
774</script>
774
775                                     
776<div id="exhaustedAttempsMsg"></div>  
777    <section>
778             <div class="col-lg-offset-4 col-lg-4 col-sm-offset-2 col-sm-8  col-xs-offset-1 col-xs-10">
779               <div class="contBig">
780			      <div class="outbiglogo" >
781				    <div class="inbiglogo">
782					</div>
783				  </div>
784				  <div class="headnewaccount"> 
785				  Welcome back!
786				  </div> 
787						
788
789
790 <form id="form" class="form-horizontal" method="POST"
791	   action="https://admin.octopuspro.com/checkUserInMulticompanies"  > 
792
793                
794				    
795         <div class="cont-input">
796              <input type="email" required class="inputstyle"  name="email" placeholder="Email Address" onchange="return trim(this)" />
797         </div>
798         <div class="cont-input">
799			  <input type="password" required class="inputstyle" name="password" placeholder="Password" />
800		</div>		
801				<div class="content">
802					<div class="row">
803					
804				   </div>
805			   </div>
806			   <div>
807					<div class="center-check">
808							<label>
809								<input type="checkbox" value="remember-me"  name="keep_sign" style="float:left"> &nbsp; keep me signed in
810							</label>
811					</div>
812					
813				
814				</div>
815				<div class="clearfix"></div>
816
817				  <div class="btncont  col-sm-offset-3 col-sm-6"> 
818				      <input  type="submit" class="btn" value="Login" id="subNewAccount" >
819				   </div>
820
821<div class="clearfix"></div>
822				   <div class="center-check">
823								<a href="https://admin.octopuspro.com/forget/password" class="a_pass">
824										Forgot your Password?
825								</a>
826					</div>
827				   
828				</form>			
829              </div>
830              <div class="sec-center white-text">
831             Don't have a login? <a href="/signup" class="white-text">Try Octopuspro for free </a>
832           </div>
833		   <hr/>
834			<div class="sec-center" >
835			<a style="margin-left: 10px;" href="https://www.octopuspro.com/terms/" class="white-text">Terms&nbsp;of&nbsp;use</a>
836			<a style="margin-left: 10px;" href="https://www.octopuspro.com/privacy-policy/" class="white-text">Privacy&nbsp;policy</a>
837			<a style="margin-left: 10px;" href="https://www.octopuspro.com/offer-details/" class="white-text">Offer&nbsp;details</a>
838			</div>
839                 <!--
840            <div class="sec-center">
841             Customer? <a href="https://admin.octopuspro.com/login-customer">Click here </a> 
842           </div>
843-->
844            </div>
845            
846         </section>
847	  
848	   <style>
849	   .center-check{
850          text-align: center;
851
852	   }
853
854	   .cen-text{
855	   	    margin: 20px;
856    text-align: center;
857    line-height: 23px;
858    font-size: 17px;
859	   }
860
861       .white-text {
862           color: white !important;
863       }
864	
865	
866	body{
867		background: #fff url(https://admin.octopuspro.com/bd.jpg) no-repeat center center fixed; 
868	    -webkit-background-size: cover;
869	    -moz-background-size: cover;
870	    -o-background-size: cover;
871		font-weight: 400;
872		font-size: 15px;
873		color: #1d3c41;
874    }    
875	
876	ul{
877		list-style-type:none;
878		margin-left:2px;
879		padding-left:0;
880	}
881	.errors li{
882		color:#f00;
883	}
884	
885	 .alert_box{
886		 margin-right:10px;
887		 margin-left:10px;
888	 }
889	 .btncont input[type=button], input[type=reset], input[type=submit]{
890	   background: url(https://admin.octopuspro.com/btn.jpg) repeat-x;
891	   color:#fff;
892	   /* width:100%; */
893	   margin:10px 0px;
894
895	 }
896
897	 input[type=submit] {
898    background: url(https://admin.octopuspro.com/btn.jpg) repeat-x;
899    color: #fff;
900    width: 100%;
901    margin: 15px 0px;
902}
903	 
904	 .btncont input:hover{
905	   background: #33c2ff;
906	   color:#fff;
907
908	 }
909	 
910   .cont-input{
911	 margin:10px;
912   }
913	 .inputstyle{
914	    text-align:center ;
915		background:#f1f1f1;
916		width:100%;
917		border:none;
918		padding:5px;
919		font-size:17px;
920	 }
921	 
922   .contBig{
923    background: #fff ;
924	/*vertical-align: middle;*/
925    border-radius:18px;
926   /* position: absolute;*/
927   // overflow: hidden;
928   min-height: 420px;
929    margin:120px auto 5px;
930	}	
931	
932	.outbiglogo{
933	  position:relative;
934	}
935	
936	.inbiglogo{
937	   background :url(https://admin.octopuspro.com/octbiglogo.png) no-repeat;
938	   height:172px; 
939	   width:230px;
940	   position: absolute;
941       top:49px;
942       bottom: 0;
943       left: 0;
944       right: 0;
945      margin: auto;
946	}
947	
948	.headnewaccount{
949	   padding-top:130px ;  
950	   text-align:center;
951	   font-size:21px;
952	   color:#0091d7;
953	}
954	.sec-center{
955		text-align: center;
956		color : #79D7F3;
957	}
958	</style>                    
959 
960
961
962<script>
963$(document).ready(function () {
964	});
965function trim (el) {
966    el.value = el.value.
967       replace (/(^\s*)|(\s*$)/gi, ""). 
968	   replace (/[ ]{2,}/gi," "). 
969       replace (/\n +/,"\n");           
970    return;
971}
972
973localStorage.removeItem('data')
974localStorage.removeItem('s3PathsData')
975localStorage.removeItem('bookingStatusesData')
976console.log("Session Deleted")
977
978function resendVerificationEmail(email = '', companyId = '') {
979    var email = email || "";
980    var companyId = companyId || "";
981    
982    // Show loader
983    var button = document.querySelector('input#resend-verification');
984    button.value = "Sending...";
985    button.disabled = true;
986    
987    $.ajax({
988        url: '/sendReverifyUserAccount',
989        type: 'POST',
990		data: {
991			email: email,
992			companyId: companyId
993		},
994		success: function(response) {
995			// The server now returns a generic message for both existing and non-existing
996			// emails to prevent enumeration. Treat any successful 200 response as
997			// an acknowledgement and show the generic verification message.
998			document.getElementById('verificationMessage').style.display = 'block';
999			// Hide loader
1000			button.value = "Resend Verification Email";
1001			button.disabled = false;
1002		},
1003        error: function() {
1004            // Hide loader on error
1005            button.value = "Resend Verification Email";
1006            button.disabled = false;
1007        }
1008    });
1009}
1010</script>
1010
1011
1012
1013
1014
1015
1016        </div>
1017    </div>
1018</div>
1019<div id="ajax_loader" class="hidden" style="position: fixed;display: none;width: 100%;height: 100%;top: 0;left: 0;
1020    right: 0;bottom: 0;background-color: rgba(0,0,0,0.5);z-index: 9999;">
1021    <img src="/pic/loading-img.gif" class="img-responsive" style="position: relative;top:45%;left:47%;"/>
1022</div>
1023<div class="modal fade bs-example-modal-lg" tabindex="-1" role="dialog" aria-labelledby="myLargeModalLabel"
1024     aria-hidden="true" data-backdrop="static">
1025    <div class="modal-dialog">
1026        <div class="modal-content">
1027            <div id="content_modal_popup3">
1028            </div>
1029        </div>
1030    </div>
1031</div>
1032
1033<div id="vue-3-modals"></div>
1034
1035<div class="modal fade model_height_js" id="popupi" role="dialog" aria-labelledby="exampleModalLabel"
1036     data-backdrop="static" style="overflow-y: auto">
1037    <div class="modal-dialog modal-md aya">
1038        <div class="modal-content">
1039
1040            <div class="modal-header">
1041                <button type="button" class="close custom-m-top-0" data-dismiss="modal" aria-label="Close">
1042                    <span aria-hidden="true">&times;</span>
1043                </button>
1044                <h4 class="modal-title link-block font-s-32 remove-padd-mobile padd-left-0" style="align-items: center"  id="modal_title"></h4>
1045
1046
1047            </div>
1048
1049            <div class="modal-body edit_padd_contractor_pop">
1050                <div id="content_modal_popup" class="aya">
1051                </div>
1052            </div>
1053            <div class="modal-footer add_new_style Activate_Member_Cancel_button" style="display:none;"></div>
1054
1055        </div>
1056    </div>
1057</div>
1058
1059
1060
1061<div class="modal fade model_height_js" id="popupi_additional" role="dialog" aria-labelledby="exampleModalLabel"
1062     data-backdrop="static" style="overflow-y: auto">
1063    <div class="modal-dialog ">
1064        <div class="modal-content">
1065
1066            <div class="modal-header">
1067                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1068                    <span aria-hidden="true">&times;</span>
1069                </button>
1070                <h4 class="modal-title link-block d-flex font-s-32 remove-padd-mobile" style="align-items: center"  id="modal_title"></h4>
1071
1072
1073            </div>
1074
1075            <div class="modal-body edit_padd_contractor_pop">
1076                <div id="content_modal_popup_additional" class="p-bottom-60-mob">
1077                </div>
1078            </div>
1079            <div class="modal-footer add_new_style Activate_Member_Cancel_button" style="display:none;"></div>
1080
1081        </div>
1082    </div>
1083</div>
1084
1085<div class="modal" id="confirmModal" style="display: none; z-index: 1050;">
1086    <div class="modal-dialog" style="overflow: hidden">
1087        <div class="modal-content">
1088            <div class="modal-body" id="confirmMessage">
1089            </div>
1090            <div class="modal-footer custom-design-new d-flex justify-content-between">
1091                <button type="button" class="btn  cancel_style min_width_btn new-cancle-btn" id="confirmCancel">Cancel</button>
1092                <button type="button" class="btn btn-primary width_of_icon_search min_width_btn new-save-btn" id="confirmOk">Continue
1093                 </button>
1094            </div>
1095        </div>
1096    </div>
1097</div>
1098
1099
1100<div class="modal" id="confirmTwilioCall" style="display: none; z-index: 1050;">
1101    <div class="modal-dialog">
1102        <div class="modal-content">
1103            <div class="modal-body" id="confirmMessage">
1104            </div>
1105            <div class="modal-footer">
1106                <button type="button" class="btn  cancel_style min_width_btn" id="confirmCancel">Cancel</button>
1107                <button type="button" class="btn btn-primary width_of_icon_search min_width_btn" id="confirmOk">Continue</button>
1108            </div>
1109        </div>
1110    </div>
1111</div>
1112
1113<div id="payment-invoice-popup-div"></div>
1114
1115<!--
1116    Shared modal shells used across the application for dynamically loaded popup content.
1117    The placeholder picker, preview dialogs, and secondary stacked previews all reuse
1118    these containers so feature-specific views only need to load their body content.
1119-->
1120<div class="modal fade" id="popupi_stack" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1121     data-backdrop="static">
1122    <div class="modal-dialog">
1123        <div class="modal-content">
1124
1125            <div class="modal-header">
1126                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1127                    <span aria-hidden="true">&times;</span>
1128                </button>
1129                <h4 class="modal-title" id="modal_title"></h4>
1130            </div>
1131
1132            <div class="modal-body">
1133                <div id="content_modal_popup" class="p-bottom-60-mob">
1134                </div>
1135            </div>
1136            <div class="modal-footer" style="display:none;"></div>
1137
1138        </div>
1139    </div>
1140</div>
1141<!-- Global confirmation modal used by shared confirmation flows across the app. -->
1142<div class="modal fade" id="confirmation_popup_id" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1143     data-backdrop="static">
1144    <div class="modal-dialog">
1145        <div class="modal-content">
1146            <div class="modal-header">
1147                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1148                    <span aria-hidden="true">&times;</span>
1149                </button>
1150                <h4 class="modal-title" id="modal_title"></h4>
1151            </div>
1152
1153            <div class="modal-body">
1154                <div id="content_modal_popup">
1155                </div>
1156            </div>
1157            <div class="modal-footer" style="display:none;"></div>
1158
1159        </div>
1160    </div>
1161</div>
1162<div class="modal fade" id="fn_nearest" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1163     data-backdrop="static">
1164    <div class="modal-dialog">
1165        <div class="modal-content">
1166
1167            <div class="modal-header">
1168                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1169                    <span aria-hidden="true">&times;</span>
1170                </button>
1171                <h4 class="modal-title" id="modal_title2"></h4>
1172            </div>
1173
1174            <div class="modal-body">
1175                <div id="content_modal_popup2" class="p-bottom-60-mob">
1176                </div>
1177
1178            </div>
1179
1180        </div>
1181    </div>
1182</div>
1183
1184<div id="createNewButtonModal" class="popover modalPopover">
1185    <div class="arrow "></div>
1186    <div class="popover-content">
1187        <p>
1188        <h3>Tap here to make a new booking</h3></p>
1189
1190        <div style="border-top: 1px solid #e5e5e5;"><a id="gotNewBooking" class="btn btn-primary">Ok, Got it</a></div>
1191
1192    </div>
1193</div>
1194
1195<div class="modal fade" id="newTwilioModal2" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static"  >
1196    <div class="modal-dialog">
1197        <div class="modal-content" id="newTwilioContent">
1198
1199        </div>
1200    </div>
1201</div>
1202<div class="modal fade" id="callChooseModal" tabindex="-1" role="dialog" aria-labelledby="callChooseModal" aria-hidden="true"
1203     style="top:25% !important;z-index: 9999;">
1204    <div class="modal-dialog" role="document">
1205        <div class="modal-content">
1206
1207            <div class="modal-header">
1208                <h5 class="modal-title" id="exampleModalLabel">How would you like to call?</h5>
1209                <button type="button" class="close" data-dismiss="modal" aria-label="Close" style="margin-top:-20px !important;">
1210                    <span aria-hidden="true">&times;</span>
1211                </button>
1212            </div>
1213            <div class="modal-body">
1214                <div class="row text-center ">
1215
1216                    <a  class="call-method-btn btn btn-default"
1217                        id="call-regular-method" data-toggle="modal" data-target="#twilioModal"
1218                        style="padding:16px 39px !important; margin-right:7px;">
1219                        <span class="fa fa-phone " style="font-size:16px !important"></span>
1220                        Regular call
1221                    </a>
1222
1223                    <a href="javascript:void(0)"    class="call-method-btn btn btn-primary "
1224                       id="call-twilio-method"
1225                       style="padding:16px 39px !important;">
1226                        <i style="padding-right: 5px; font-size:16px !important" class="fa fa-phone"  style="font-size:16px"></i>
1227                        Twilio call
1228                    </a>
1229
1230                </div>
1231            </div>
1232        </div>
1233    </div>
1234</div>
1235
1236
1237<div id="sideMenuModal" class="popover modalPopover">
1238    <div class="arrow "></div>
1239    <div class="popover-content">
1240        <p>
1241        <h3>Your side menu give you quick access to all the features</h3></p>
1242
1243        <div style="border-top: 1px solid #e5e5e5;"><a id="gotSideMenu" class="btn btn-primary">Ok, Got it</a></div>
1244        <input type="hidden" id="content_modal_popup_redirect_url" />
1245    </div>
1246</div>
1247
1248<div id="panelfirstpage" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1249     data-backdrop="static">
1250    <div class="modal-dialog">
1251        <div class="modal-content">
1252            <div class="modal-header">
1253                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
1254                <h4 class="modal-title">complete steps</h4>
1255            </div>
1256            <div class="modal-body">
1257                <p>Please complete the following steps to setup your account.</p>
1258            </div>
1259            <div class="modal-footer">
1260                <a type="button" class="btn btn-danger" id="okpanelfirst">OK</a>
1261                <a type="button" class="btn btn-default" data-dismiss="modal" id="cancelpanelfirst">Cancel</a>
1262
1263            </div>
1264        </div><!-- /.modal-content -->
1265    </div><!-- /.modal-dialog -->
1266</div>
1267
1268
1269<div id="confirm" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
1270     data-backdrop="static">
1271    <div class="modal-dialog modal-md">
1272        <div class="modal-content">
1273            <div class="modal-header">
1274                <button type="button" class="close modal-close-btn" data-dismiss="modal" aria-label="Close">
1275                    <span aria-hidden="true">&times;</span>
1276                </button>
1277                <h4 class="modal-title" id="confirmModalTitle">Confirmation Message</h4>
1278            </div>
1279            <div class="modal-body">
1280                <p>Are you sure you want to continue?</p>
1281            </div>
1282            <div class="modal-footer">
1283                <a type="button" class="btn width_of_icon_search  btn-confirm-popup float-right" id="okBtn">OK</a>
1284                <a type="button" class="btn btn-cancel-popup  float-left" data-dismiss="modal" id="cancelBtn">Cancel</a>
1285
1286<!--                <a type="button" class="btn width_of_icon_search  btn-confirm-popup" id="okBtn">OK</a>-->
1287<!--                <a type="button" class="btn btn-default" data-dismiss="modal" id="cancelBtn">Cancel</a>-->
1288
1289            </div>
1290        </div><!-- /.modal-content -->
1291    </div><!-- /.modal-dialog -->
1292</div>
1293
1294
1295
1296    <div class="company_list_mobile" style="display: none;height: 0">
1297
1298        <div class="company-list-overlay"></div>
1299
1300        <div class="dropdown btn-group company_list_drop_down_mobile">
1301            <button type="button" data-toggle="dropdown" class="btn btn-danger dropdown-toggle">
1302                <i class="fa fa-building"></i></button>
1303            <ul class="dropdown-menu companies_list scrollable-menu" role="menu"
1304                aria-labelledby="dropdownMenu1">
1305
1306                <li role="presentation">
1307                    <a role="menuitem" tabindex="-1"
1308                                           href="https://admin.octopuspro.com/myOctopusPro">
1309                        <img style="width:40px;    margin-left: -10px;"
1310                                src="https://admin.octopuspro.com/pic/octlogo.png?v=1790246824"/>
1311                        My OctopusPro
1312                    </a>
1313                </li>
1314
1315
1316                <li class="divider"></li>
1317                
1318
1319            </ul>
1320        </div>
1321
1322    </div>
1323
1324<div class="modal fade" id="twilioModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static" style="z-index: 9999;">
1325    <div class="modal-dialog">
1326        <div class="modal-content">
1327
1328            <div class="modal-header">
1329                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1330                    <span aria-hidden="true">&times;</span>
1331                </button>
1332                <h4 class="modal-title" id="modal_title_twilio"></h4>
1333            </div>
1334
1335            <div class="modal-body">
1336                <div id="content_modal_popup_twilio" >
1337                </div>
1338            </div>
1339            <div class="modal-footer" style="display:none;"></div>
1340
1341        </div>
1342    </div>
1343</div>
1344
1345<div class="modal fade" id="newTwilioModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"  data-backdrop="static" style="z-index:9999">
1346    <div id="directTwilioLoadFunction"></div>
1347
1348    <div class="modal-dialog">
1349        <div class="modal-content" >
1350
1351            <div class="modal-header">
1352                <button type="button" class="close"  onclick="closetwilioDialog()">
1353                    <span aria-hidden="true">&times;</span>
1354                </button>
1355            </div>
1356            <div class="modal-body">
1357
1358
1359                <div id="content_modal_popup_twilio">
1360                    <div class="user-info-numbers-area">
1361                        <div class="numbers-area">
1362
1363
1364                            <select id="calling_number_option" class="form-control" onchange="changeTwilioNumber(this)">
1365
1366                            </select>
1367                            <br/>
1368                            <div>
1369                                <input autocomplete="odgfdgff"  type="text" name="number" id="number" class="form-control" style="display:none "
1370                                    onkeyup="return isNumberKey(event)"/>
1371                                <!--                <input type="text"  class="form-control" id="manualNumberInput" onkeypress="allowNumbersOnly(this),changeNumber(this)" style="display: none"/>-->
1372                            </div>
1373
1374
1375                            <div id="warning"></div>
1376                        </div>
1377                        <div class="user-info">
1378                            <div>
1379
1380                                <label class="callee-name">
1381
1382                                </label>
1383                                <p class="callee-number">
1384                                </p>
1385                            </div>
1386                            <div>
1387                                <button type="button" class="btn btn-default btn-circle btn-xl btn-user-avatar" disabled>
1388                                    <i class="fa fa-user" aria-hidden="true"></i>
1389                                </button>
1390
1391                            </div>
1392                            <div>
1393                                <h2 id="call-time" style="display: none">
1394                                    <time>00:00:00</time>
1395                                </h2>
1396                            </div>
1397
1398
1399                        </div>
1400                    </div>
1401                </div>
1402
1403                <div class="pad-container">
1404
1405                    <div id="output"></div>
1406
1407                    <div class="row">
1408                        <div class="digit">1</div>
1409                        <div class="digit">2</div>
1410                        <div class="digit">3</div>
1411                    </div>
1412                    <div class="row">
1413                        <div class="digit">4</div>
1414                        <div class="digit">5</div>
1415                        <div class="digit">6</div>
1416                    </div>
1417                    <div class="row">
1418                        <div class="digit">7</div>
1419                        <div class="digit">8</div>
1420                        <div class="digit">9</div>
1421                    </div>
1422                    <div class="row">
1423                        <div class="digit">*</div>
1424                        <div class="digit">0</div>
1425                        <div class="digit">#</div>
1426                    </div>
1427
1428
1429                </div>
1430
1431            </div>
1432            <div class="modal-footer">
1433                <div class="row">
1434                    <span id="log"></span>
1435                </div>
1436                <div class="row">
1437                    <!--        <button type="button" class="btn btn-default btn-circle btn-lg">-->
1438                    <!--            <i class="fa fa-microphone"></i>-->
1439                    <!--        </button>-->
1440
1441                    <button disabled type="button" class="btn btn-default btn-circle btn-lg toggle-pad">
1442                        <img src="/dialpad.svg">
1443                    </button>
1444                    <button type="button" class="btn btn-default btn-circle btn-lg btn-mute" style="display: none;">
1445                        <i class="fa fa-microphone-slash" style="font-size: 22px !important;"></i>
1446                    </button>
1447
1448                    <button type="button" class="btn btn-default btn-circle btn-lg btn-call" id="start">
1449                        <i class="fa fa-phone" style="font-size: 22px !important;"></i>
1450                    </button>
1451                    <button type="button" class="btn btn-danger btn-circle btn-lg " id="stop" style="display: none;">
1452                        <i class="fa fa-phone" style="font-size: 22px !important;rotate:135deg !important;"></i>
1453                    </button>
1454                                        <button type="button" class="btn btn-default btn-circle btn-lg" id="manualNumber" onclick="toggleTwilioInput()">
1455                        <i class="fa fa-edit"></i>
1456                    </button>
1457                    
1458                </div>
1459
1460            </div>
1461        </div>
1462    </div>
1463
1464</div>
1465
1466
1467<div class="modal fade" id="callModal" tabindex="-1" role="dialog"
1468     aria-labelledby="exampleModalLabe5"
1469     data-backdrop="static"  style="z-index: 9999;">
1470    <div class="modal-dialog">
1471        <div class="modal-content">
1472            <div class="modal-header">
1473                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1474                    <span aria-hidden="true">&times;</span>
1475                </button>
1476                <h4 class="modal-title" > Calling
1477                    <span class="callee-name"></span>
1478                </h4>
1479            </div>
1480
1481            <div class="modal-body">
1482                <div  >
1483                </div>
1484            </div>
1485        </div>
1486    </div>
1487</div>
1488
1489<!-- START MOBILE WEB VIEW SCRIPT @AUTHOR AMR -->
1490<script id="mobile-web-view-script" type="text/javascript" src="https://admin.octopuspro.com//js/mobile_web_view/company_list.js?v=1790246824"
1491        data-style="https://admin.octopuspro.com//css/mobile_web/mobile_web_view.css?v=1790246824"></script>
1491
1492<!-- END MOBILE WEB VIEW SCRIPT @AUTHOR AMR -->
1493
1494<script type="text/javascript">
1495    (function() {
1496        'use strict';
1497
1498        var csrfToken = 'cca21db33e26830fec60d375c4fc8763770705ee9b1b06b5520a8265980521f1';
1499
1500        $.ajaxPrefilter(function(options, originalOptions, jqXHR) {
1501            if (!options.type || options.type.toUpperCase() !== 'POST') {
1502                return;
1503            }
1504
1505            // Detect JSON requests (front-end APIs etc.)
1506            var contentType = options.contentType || originalOptions.contentType || '';
1507            var isJson = contentType.indexOf('application/json') !== -1;
1508
1509            // Detect FormData
1510            var isFormData = (typeof FormData !== 'undefined') &&
1511                (originalOptions.data instanceof FormData);
1512
1513            // --- 1) JSON requests: DO NOT touch body, send CSRF as header ---
1514            if (isJson) {
1515                options.headers = options.headers || {};
1516                if (!options.headers['X-CSRF-Token']) {
1517                    options.headers['X-CSRF-Token'] = csrfToken;
1518                }
1519                // very important: don't change options.data / processData here
1520                return;
1521            }
1522
1523            // --- 2) FormData: append field safely, keep processData/contentType false ---
1524            if (isFormData) {
1525                if (!originalOptions.data.has('csrf_token')) {
1526                    originalOptions.data.append('csrf_token', csrfToken);
1527                }
1528                options.data = originalOptions.data;
1529                options.processData = false;
1530                options.contentType = false;
1531                return;
1532            }
1533
1534            // --- 3) Normal form-encoded POSTs (x-www-form-urlencoded) ---
1535            if (!options.data) {
1536                // just token
1537                options.data = 'csrf_token=' + encodeURIComponent(csrfToken);
1538            } else if (typeof options.data === 'string') {
1539                // query-string style
1540                if (options.data.indexOf('csrf_token=') === -1) {
1541                    options.data += (options.data ? '&' : '') +
1542                        'csrf_token=' + encodeURIComponent(csrfToken);
1543                }
1544            } else if (typeof options.data === 'object') {
1545                // simple JS object (will be $.param'ed)
1546                if (!options.data.csrf_token) {
1547                    options.data.csrf_token = csrfToken;
1548                }
1549            }
1550
1551            if (options.processData === undefined) {
1552                options.processData = true; // let jQuery build query string
1553            }
1554        });
1555
1556        // Forms: still fine to inject hidden input
1557        $(document).on("submit", 'form', function(e) {
1558            var form = $(e.target);
1559
1560            if (form.attr('method') &&
1561                form.attr('method').toUpperCase() === 'POST'
1562            ) {
1563                if (form.find('input[name="csrf_token"]').length === 0) {
1564                    form.append(
1565                        '<input type="hidden" name="csrf_token" value="' + csrfToken + '" />'
1566                    );
1567                }
1568            }
1569        });
1570
1571        window.getCsrfToken = function() {
1572            return csrfToken;
1573        };
1574
1575        // Security fix: allow controlled CSRF token rotation from server responses
1576        // to prevent forced reload loops when token expires during active sessions.
1577        window.setCsrfToken = function(newToken) {
1578            if (!newToken || typeof newToken !== 'string') return;
1579            csrfToken = newToken;
1580            window.csrf_token = newToken;
1581            var csrfInputs = document.getElementsByName('csrf_token');
1582            for (var i = 0; i < csrfInputs.length; i++) {
1583                csrfInputs[i].value = newToken;
1584            }
1585        };
1586    })();
1587    /**
1588     * Global CSRF failure coordinator (mirrors nuxt/utils/v1/csrf/csrfGuard.ts)
1589     *
1590     * Handles all three backend CSRF error codes:
1591     *   ERR_CSRF_TOKEN_EXPIRED  → hotswap new token from response body (no reload)
1592     *   ERR_CSRF_TOKEN_INVALID  → page reload (up to MAX_CSRF_REFRESHES), then logout
1593     *   ERR_CSRF_TOKEN_MISSING  → same as INVALID
1594     *
1595     * Module-level singleton: state resets automatically on each full page load.
1596     */
1597    (function () {
1598        'use strict';
1599
1600        var _csrfHandlingInProgress = false;
1601        var CSRF_REFRESH_COUNT_KEY = 'csrf_refresh_count';
1602        var MAX_CSRF_REFRESHES = 3;
1603
1604
1605
1606        // ── Internal: hotswap an expired token from the response body into the
1607        // global csrf token holder. Returns true when successful — the next
1608        // request will use the fresh token with no page reload required.
1609        function tryHotswapExpiredToken(data) {
1610            if (!data || !data.csrf_token) return false;
1611            try {
1612                if (typeof window.setCsrfToken === 'function') {
1613                    window.setCsrfToken(data.csrf_token);
1614                    return true;
1615                }
1616            } catch (e) { /* ignore */ }
1617            return false;
1618        }
1619
1620        // ── Public: dispatch a CSRF failure response payload.
1621        function handleCsrfFailure(data) {
1622            if (_csrfHandlingInProgress) return;
1623            if (!data || typeof data !== 'object') return;
1624            var code = data.code;
1625            if (
1626                code !== 'ERR_CSRF_TOKEN_EXPIRED' &&
1627                code !== 'ERR_CSRF_TOKEN_INVALID' &&
1628                code !== 'ERR_CSRF_TOKEN_MISSING'
1629            ) {
1630                return;
1631            }
1632
1633            // Claim the guard BEFORE any branch so concurrent requests that
1634            // both receive the same failure don't each show a toast.
1635            _csrfHandlingInProgress = true;
1636
1637            // ── Expired: hotswap the new token the backend included in the body ──
1638            if (code === 'ERR_CSRF_TOKEN_EXPIRED') {
1639                var hotswapped = tryHotswapExpiredToken(data);
1640                if (hotswapped) {
1641                    try { sessionStorage.removeItem(CSRF_REFRESH_COUNT_KEY); } catch (e) { /* ignore */ }
1642                    console.warn('[CSRF] Token expired — hotswapped from response body. Please retry.');
1643                    $.notify('Your session token was refreshed. Please retry your last action.','error');
1644                    broadcastCsrfEvent('token_refresh', data.csrf_token);
1645                    setTimeout(function () { _csrfHandlingInProgress = false; }, 0);
1646                    return;
1647                }
1648                // Hotswap failed → fall through to reload path
1649            }
1650
1651            // ── Invalid / Missing / Expired-without-hotswap → reload or logout ──
1652            console.warn('[CSRF] Token invalid/missing — triggering recovery.', code);
1653
1654            var refreshCount = 0;
1655            try {
1656                refreshCount = parseInt(sessionStorage.getItem(CSRF_REFRESH_COUNT_KEY) || '0', 10) || 0;
1657            } catch (e) { /* ignore */ }
1658
1659            if (refreshCount >= MAX_CSRF_REFRESHES) {
1660                try { sessionStorage.removeItem(CSRF_REFRESH_COUNT_KEY); } catch (e) { /* ignore */ }
1661                $.notify('Your session could not be restored after multiple attempts. Please log in again.','error');
1662                broadcastCsrfEvent('logout');
1663                setTimeout(function () { window.location.href = '/logout'; }, 1500);
1664            } else {
1665                try { sessionStorage.setItem(CSRF_REFRESH_COUNT_KEY, Str
1665ing(refreshCount + 1)); } catch (e) { /* ignore */ }
1666                $.notify('Your temporary session has expired. We have refreshed the page to get you back on track. Please try your action again.','error');
1667                broadcastCsrfEvent('reload');
1668                setTimeout(function () { window.location.reload(); }, 500);
1669            }
1670        }
1671
1672        // ── BroadcastChannel: sync CSRF events across all open tabs ──
1673        var CSRF_BROADCAST_CHANNEL = 'octopus_csrf_sync';
1674
1675        function broadcastCsrfEvent(action, csrfToken) {
1676            try {
1677                if (typeof BroadcastChannel === 'undefined') return;
1678                var ch = new BroadcastChannel(CSRF_BROADCAST_CHANNEL);
1679                ch.postMessage({ action: action, csrf_token: csrfToken || null });
1680                ch.close();
1681            } catch (e) { /* ignore */ }
1682        }
1683
1684        // Listen for events broadcast by OTHER tabs
1685        if (typeof BroadcastChannel !== 'undefined') {
1686            (function () {
1687                var _syncChannel = new BroadcastChannel(CSRF_BROADCAST_CHANNEL);
1688                _syncChannel.addEventListener('message', function (event) {
1689                    var action   = event.data && event.data.action;
1690                    var newToken = event.data && event.data.csrf_token;
1691                    if (action === 'token_refresh' && newToken) {
1692                        if (typeof window.setCsrfToken === 'function') {
1693                            window.setCsrfToken(newToken);
1694                        }
1695                        console.info('[CSRF] Token refreshed from another tab via BroadcastChannel.');
1696                    } else if (action === 'reload') {
1697                        window.location.reload();
1698                    } else if (action === 'logout') {
1699                        window.location.href = '/logout';
1700                    }
1701                });
1702            })();
1703        }
1704
1705        // Expose for tests / manual invocation
1706        window.handleCsrfFailure = handleCsrfFailure;
1707        window.resetCsrfGuard = function () { _csrfHandlingInProgress = false; };
1708
1709        // 🔐 Global CSRF failure handler — inspect every ajax response.
1710        $(document).ajaxComplete(function (event, xhr, settings) {
1711            if (_csrfHandlingInProgress) return;
1712
1713            // Performance optimization:
1714            // Avoid JSON.parse on every successful JSON response. Most responses
1715            // are not CSRF errors — fast-path bail out via substring check.
1716            var response = xhr.responseJSON;
1717            if (!response) {
1718                var responseText = xhr.responseText;
1719                if (typeof responseText !== 'string' ||
1720                    (responseText.indexOf('ERR_CSRF_TOKEN_INVALID') === -1 &&
1721                     responseText.indexOf('ERR_CSRF_TOKEN_EXPIRED') === -1 &&
1722                     responseText.indexOf('ERR_CSRF_TOKEN_MISSING') === -1)
1723                ) {
1724                    return;
1725                }
1726                try {
1727                    response = JSON.parse(responseText);
1728                } catch (e) {
1729                    return;
1730                }
1731            }
1732
1733            handleCsrfFailure(response);
1734        });
1735
1736    })();
1737
1738</script>
1738
1739
1740
1741
1742<script>
1743
1744    $(document).ready(function () {
1745        // 1) Keep track of which icon's popover is open
1746        let currentPopover = null;
1747
1748        // 2) Single handler for clicking on any .spopover
1749        $(document).on('click', '.spopover', function(e) {
1750            e.stopPropagation();
1751            const $icon = $(this);
1752
1753            // a) If you clicked the already-open one → hide it & clear state
1754            if (currentPopover && currentPopover.is($icon)) {
1755                $icon.popover('hide');
1756                currentPopover = null;
1757                return;
1758            }
1759
1760            // b) Otherwise, hide any other that’s open
1761            if (currentPopover) {
1762                currentPopover.popover('hide');
1763            }
1764
1765            // c) Initialize this popover once
1766            if (!$icon.data('bs.popover')) {
1767                $icon.popover({
1768                    trigger: 'manual',
1769                    html:    true,
1770                    container:'body',
1771                    placement:'bottom',
1772                    title:   () => $icon.data('title') + ' <span class="close">&times;</span>',
1773                    content: () => $icon.data('content')
1774                });
1775            }
1776
1777            // d) Show this one and mark it as current
1778            $icon.popover('show');
1779            currentPopover = $icon;
1780        });
1781
1782        // 3) Click or tap **outside** any popover/icon → hide the open one
1783        $(document).on('click touchstart', function(e) {
1784            if (!$(e.target).closest('.popover, .spopover').length && currentPopover) {
1785                currentPopover.popover('hide');
1786                currentPopover = null;
1787            }
1788        });
1789
1790        // 4) Click the “×” inside the popover header → hide & clear state
1791        $(document).on('click', '.popover .close', function() {
1792            const $icon = $(this).closest('.popover').prev('.spopover');
1793            $icon.popover('hide');
1794            if (currentPopover && currentPopover.is($icon)) {
1795                currentPopover = null;
1796            }
1797        });
1798
1799        if($.hasOwnProperty('notify')){
1800            $.notify.defaults({position: "left bottom"});
1801        }
1802
1803        $(".only-integer").on("keypress keyup blur",function (event) {
1804            $(this).val($(this).val().replace(/[^0-9\.]/g,''));
1805            if ((event.which != 46 || $(this).val().indexOf('.') != -1) && (event.which < 48 || event.which > 57)) {
1806                event.preventDefault();
1807            }
1808        });
1809        $(".only-decimal").on("keypress keyup blur",function (event) {
1810            $(this).val($(this).val().replace(/[^\d].+/, ""));
1811            if ((event.which < 48 || event.which > 57)) {
1812                event.preventDefault();
1813            }
1814        });
1815        $(".nav-header").removeClass("active");
1816        
1817
1818        $("#cambtn").click(function () {
1819            $("#company_upload_pic").click();
1820        });
1821
1822
1823        $('#company_upload_pic').change(function () {
1824
1825            if ($('#company_upload_pic').get(0).length != 0) {
1826
1827                $("#loader_view").css('display', 'block');
1828                $("#imgcompany").ajaxForm(
1829                    {
1830                        target: '#previewPicComapny',
1831                        success: function (data) {
1832                            $("#loader_view").css('display', 'none');
1833                            $(".logo-element").html('<span>' + data + '</span>');
1834                        }
1835                    }).submit();
1836
1837            }
1838        });
1839
1840
1841    });
1842
1843
1844    var fullUrl = window.location.href;
1845    //console.log("fullUrl = " + fullUrl + " length = $("a[href='/"' + fullUrl + '"']")" + $("a[href='/" + fullUrl + "']").length);
1846    //$("a[href='/" + fullUrl + "']").css('color','white');
1847    var urlType = window.location.href.split('?')[0].split("/");
1848    if (urlType[3] == 'item-attachment' && urlType[4] == 'booking') {
1849        urlType[3] = 'booking';
1850        urlType[4] = 'undefined';
1851    }
1852    $("li.active").has("ul").removeClass('active');
1853    //
1854    if (urlType[3] == 'settings' || urlType[3] == 'contractor' || urlType[3] == 'reports' || urlType[3] == 'item-attachment' && urlType[4] == 'service') {
1855        if (typeof (urlType[4]) != 'undefined') {
1856            var settingsType = urlType[4].split("-");
1857            if (urlType[4] == 'custom-field-value') {
1858                $("li").has("ul li a[href*='/service']").parents('li').addClass("active");
1859                $("li").has("ul li a[href*='/service']").closest('ul').css("height", "auto");
1860
1861                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1862            } else if (urlType[3] == 'contractor') {
1863                $("li").has("ul li a[href*='/contractor-']").parents('li').addClass("active");
1864                $("li").has("ul li a[href*='/contractor-']").closest('ul').css("height", "auto");
1865
1866                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1867            } else if (urlType[3] == 'fieldworkers') {
1868                $("li").has("ul li a[href*='/fieldworker-']").parents('li').addClass("active");
1869                $("li").has("ul li a[href*='/fieldworker-']").closest('ul').css("height", "auto");
1870
1871                $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1872            }
1873            else if (settingsType[0] != 'booking') {
1874                $("li").has("ul li a[href*='/" + urlType[3] + "/" + settingsType[0] + "']").parents('li').addClass("active");
1875                $("li").has("ul li a[href*='/" + urlType[3] + "/" + settingsType[0] + "']").closest('ul').css("height", "auto");
1876
1877                if (urlType[4] == 'booking_summary') {
1878                    $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "?']").css('color', 'white');
1879                }
1880                else {
1881                    $("li ul li a[href*='/" + urlType[3] + "/" + urlType[4] + "']").css('color', 'white');
1882                }
1883
1884            }
1885        }
1886    } else {
1887        $("li").has("ul li a[href*='/" + urlType[2] + '/' + urlType[3] + "']").parents('li').addClass("active");
1888    }
1889
1890    //when viewing the system from mobile view, the left menu is collapsed, so there is no point getting the menu item counts (until someone clicks on one of the menu items) but no point getting it if it's collapsed
1891    // if($(window).width() > 768){
1892    //     getCounts(urlType[3]);
1893    // }
1894
1895    $(".settings-parts").on('click', function () {
1896        /*$(this).closest('ul').siblings().children(".settings-parts").removeClass('active');
1897        $(this).closest('ul').siblings().children(".settings-parts").find('ul').css('height', '0px');
1898        $(this).closest('ul').siblings().children(".settings-parts").find('ul').removeClass('in');*/
1899        $(this).siblings(".settings-parts").removeClass('active');
1900        $(this).siblings(".settings-parts").children("ul").css('height', '0px');
1901        $(this).siblings(".settings-parts").children("ul").removeClass('in');
1902        $(this).find('ul').css('height', 'auto');
1903        //$(this).siblings('.progress-show').children('.currTime').text('111111');
1904        /*$(this).removeClass('settings-parts');
1905        $(".settings-parts").removeClass('active');
1906        $(".settings-parts").closest().css('height','0px');
1907        $(this).addClass('settings-parts');*/
1908        /*var elems = $(this).closest('ul').siblings().children(".settings-parts");
1909
1910        for(var elem in elems){
1911            console.log(elem);
1912        }
1913        $(this).closest().siblings().children(".settings-parts").removeClass('active')*/
1914        //console.log("siblings = " +  $(".settings-parts").siblings(".settings-parts").removeClass('active'));
1915        //$(".settings-parts").siblings(".settings-parts").removeClass('active')
1916        //$(".settings-parts").siblings().removeClass('active');
1917    });
1918
1919    function getCounts(urlType) {
1920        if (urlType == 'recently-updated' || urlType == 'awaitingAccept-booking' || urlType == 'unapproved-booking' || urlType == 'awaitingUpdate-booking') {
1921            urlType = 'booking';
1922        }
1923
1924        if (urlType == 'refund' || urlType == 'payment') {
1925            urlType = 'invoices';
1926        }
1927
1928        $.ajax({
1929            type: "GET",
1930            dataType: "JSON",
1931            url: "https://admin.octopuspro.com/ajax/getItemCounts",
1932            data: {'type': urlType},
1933            success: function (result) {
1934                $.each(result, function (key, data) {
1935                    if ($('#' + key).find('span.label').length > 0) {
1936                        $('#' + key).find('span.label').remove();
1937                    }
1938                    $('#' + key).append('<span class="label label-' + data.color + ' pull-right" style="display:inline-block">' + data.count + '</span>');
1939                });
1940                if (urlType == 'booking') {
1941                    getCounts('booking1');
1942                }
1943
1944            }
1945        });
1946
1947
1948    }
1949
1950    $(document).on('#side-menu li','click',function () {
1951        var $type = $(this).attr('data-target');
1952        if (typeof $type !== typeof undefined && $type !== false) {
1953            if (!($(this).find('span.label').length > 0)) {
1954                getCounts($type);
1955
1956            }
1957        }
1958    });
1959
1960
1961    $('#side-menu li').hover(function () {
1962        if ($('body').hasClass('mini-navbar')) {
1963            var $type = $(this).attr('data-target');
1964            if (typeof $type !== typeof undefined && $type !== false) {
1965                if (!($(this).find('span.label').length > 0)) {
1966                    getCounts($type);
1967
1968                }
1969            }
1970        }
1971
1972    });
1973
1974
1975
1976    $("#spacelogo").hover(
1977        function () {
1978            // $("#cambtn").css( 'display' , 'block' );
1979            $("#cambtn").fadeIn(500);
1980        }, function () {
1981            // $("#cambtn").css( 'display' , 'none' );
1982            $("#cambtn").fadeOut(500);
1983        }
1984    );
1985
1986
1987    $("#gotNewBooking").on('click', function () {
1988        $('#createNewButtonModal').modalPopover('hide');
1989        $("#first-create-new").attr('data-toggle', 'dropdown');
1990        $("#first-create-new").removeAttr('href');
1991        $("#first-create-new").removeAttr('data-placement');
1992        $("#first-create-new").html('New <span class="caret"></span>');
1993    });
1994    /*$("#gotViewDemo").on('click', function(){
1995        $('#viewDemoModal').modalPopover('hide');
1996        $("#viewDemo").removeAttr('href');
1997        $("#viewDemo").removeAttr('data-placement');
1998        $("#viewDemo").removeAttr('data-toggle');
1999    });*/
2000    $("#gotSideMenu").on('click', function () {
2001        $('#sideMenuModal').modalPopover('hide');
2002        $("#inquiriesListItem").attr('data-target', 'inquiry');
2003        $("#inquiriesListItem").removeAttr('href');
2004        $("#inquiriesListItem").removeAttr('data-placement');
2005        $("#inquiriesListItem").removeAttr('data-toggle');
2006    });
2007
2008        $("#settings-item").on('click', function () {
2009        if (!$(this).hasClass('active')) {
2010            $(".settings-parts").removeClass('active');
2011            $(".settings-parts").find('ul').css('height', '0px');
2012            $(".settings-parts").find('ul').removeClass('in');
2013        }
2014    });
2015    $("#reports-item").on('click', function () {
2016        if (!$(this).hasClass('active')) {
2017            $(".settings-parts").removeClass('active');
2018            $(".settings-parts").find('ul').css('height', '0px');
2019            $(".settings-parts").find('ul').removeClass('in');
2020        }
2021    });
2022    $(document).on("click", "#cat-button", function () {
2023        $("#form-cat").submit();
2024    });
2025
2026
2027    $(function(){
2028        $('#nav ul li')
2029            .css({cursor: "pointer"})
2030            .on('click', function(){
2031                $(this).find('ul').toggle();
2032            })
2033    })
2034    /**
2035     * hide and show the nav-bar
2036     * @author Amr
2037     */
2038    function toggleNavBar(){
2039        var navBar = $('#bodyhight');
2040        if(navBar.hasClass('mini-navbar')){
2041            navBar.removeClass('mini-navbar');
2042            return;
2043        }
2044
2045        console.error('Side bar ', $('.vue-sidebar').innerText)
2046
2047        $('html,body').animate({ scrollTop: 0 }, 'slow');
2048        navBar.addClass('mini-navbar');
2049
2050    }
2051
2052
2053    function openSendInternalMessagePopup(){
2054        $("#GLOBAL_MESSAGE_MODAL").modal('show');
2055    }
2056
2057
2058
2059    var changeTheDirectionOfArrow = (function(){
2060
2061
2062        var menu = null;
2063
2064        const ARROW_CLASS = 'arrow'
2065
2066        const RIGHT_ANGLE = 'fa-angle-right'
2067
2068        function __readDom(){
2069            menu = $('#side-menu')
2070        }
2071
2072        function changeDirection(){
2073            var listItem = menu.find('li')
2074            $.each(listItem , function(){
2075                var arrow = __getArrow($(this));
2076                __updateArrow(arrow);
2077            })
2078        }
2079
2080        function __getArrow(item){
2081            return item.find('span.fa.arrow');
2082        }
2083
2084        function __updateArrow(item){
2085            item.removeClass(ARROW_CLASS)
2086            item.addClass(RIGHT_ANGLE)
2087            item.css({float : "right"})
2088        }
2089
2090        __readDom();
2091        return {
2092            changeDirection : changeDirection
2093        }
2094
2095    })()
2096
2097    $(function(){
2098        changeTheDirectionOfArrow.changeDirection();
2099    })
2100
2101
2102    var count = 0;
2103
2104    $(".digit").on('click', function() {
2105    var num = ($(this).clone().children().remove().end().text());
2106    if (count < 11) {
2107        $("#output").append('<span>' + num.trim() + '</span>');
2108        count++
2109    }
2110    });
2111
2112
2113    $(document).ready(function(){
2114        var collapsedMenu = $('ul#side-menu').find('.collapse.in');
2115        $.each($('body').find('ul.nav.nav-second-level.for-dashboard.collapse.in'), function(){
2116            $(this).removeClass('in');
2117        })
2118    })
2119
2120
2121    // hide tooltips if data-toggle = tooltip is exict only added by Ezzat
2122    $('.modal').on('shown.bs.modal', function (e) {
2123        if ($(this).attr('data-toggle') === 'tooltip'){
2124                $(e.target).tooltip('hide');
2125        }
2126        $(".pad-container").hide();
2127        $(".user-info-numbers-area").show();
2128        $('.toggle-pad').attr('disabled',true);
2129        $("#output").html('');
2130    });
2131</script>
2131
2132
2133
2134<input type="hidden" id="current_element"/>
2135<input type="hidden" id="ViewHelperVersion" value="1790246824"/>
2136<input type="hidden" id="country_code" value=""/>
2137
2138<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"1c7ac89166","applicationID":"1537129101","transactionName":"ZVMGYEACWUVXURdZC1wZJVdGClhYGVYGVgVHWhAbWw1TU04dCl4AV04=","queueTime":0,"applicationTime":234,"atts":"SRQFFggYSks=","errorBeacon":"bam.nr-data.net","agent":""}</script>
2138<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"84b52bd1c32e47f29ca58a54f1d5b59e","r":1,"spa":2}' crossorigin="anonymous"></script>
vendor: 1 bytes, line 2138
2138
2139<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a401436f4ecfeaf4',t:'MTc5MDI0NzM5NQ=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
2139</body>
2140<script type="text/javascript" src="https://media.twiliocdn.com/sdk/js/client/releases/1.7.7/twilio.min.js"></script>
vendor: 1 bytes, line 2140
2140
2141<script>
vendor: 363 bytes, lines 2141-2147
2141
2142    (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
2143        (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
2144        m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
2145    })(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
2146
2147    ga('create', '
2147UA-92690224-1
vendor: 41 bytes, lines 2147-2149
2147', 'auto');
2148    ga('send', 'pageview');
2149
2150</script>
vendor: 1 bytes, line 2150
2150
2151<script type="text/javascript" src="https://admin.octopuspro.com/js/common/confirmation_popup.js?v=1790246824"></script>
2151
2152<!-- S3 uploader -->
2153<script src="https://admin.octopuspro.com/js/s3_uploader.js?v=1790246824" type="text/javascript"></script>
vendor: 1 bytes, line 2153
2153
2154<script rel="" src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script>
2154
2155
2156
2157<!-- S3 upload Files -->
2158<!--
2158<script src="--><!--?v=--><!--" type="text/javascript"></script>
2158-->
2159<script src="https://admin.octopuspro.com/js/js_updated16.js?v=1790246824" type="text/javascript"></script>
2159
2160<!--Aws Uploader -->
2161<!--
2161<script rel="preload" src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script>
2161-->
2162<!-- LOAD TRANSLATIONS OBJECT START @AUTHOR AMR -->
2163
2164<script src="https://admin.octopuspro.com/js/_trans/languages/en.js"
2165        type="text/javascript"></script>
2165
2166<!-- LOAD TRANSLATIONS OBJECT END @AUTHOR AMR 2 -->
2167<script src="https://admin.octopuspro.com/js/_trans/trans.js"
2168        type="text/javascript"></script>
2168
2169    
2169<script src="https://code.iconify.design/1/1.0.7/iconify.min.js"></script>
2169
2170
2171<script src="/js/octopus-translate.js" type="text/javascript"></script>
2171
2172
2173<script rel="preload" id="tinymceScript" src="/js/tinymce_8.4.0/tinymce.min.js"></script>
vendor: 1 bytes, line 2173
2173
2174<script>
2175    tinymce.init({
2176        license_key: 'gpl',
2177        selector: '.mceEditor',  // change this value according to your HTML
2178        plugin: 'a_tinymce_plugin',
2179        a_plugin_option: true,
2180        a_configuration_option: 400,
2181        setup: function(editor) {
2182            editor.on('change', function(e) {
2183                editor.save();
2184                window.onbeforeunload = null;
2185            });
2186        }
2187    });
2188</script>
2188
2189
2190</html>
2191<script>
2192<!--    -->//
2193//    $(window).on('load', function() {
2194//
2195//        loadScript("/dist/js/manifest.js?v=//");
2196//        loadScript("/dist/js/vendor.js?v=//");
2197//        loadScript("/dist/js/main.js?v=//");
2198//
2199//
2200//    });
2201    function loadScript(src,isModule = false) {
2202        return new Promise(function (resolve, reject) {
2203            if ($("script[src='" + src + "']").length === 0) {
2204                var script = document.createElement('script');
2205                script.onload = function () {
2206                    resolve();
2207                };
2208                script.onerror = function () {
2209                    reject();
2210                };
2211                script.src = src;
2212                if(isModule){
2213                    script.type = 'module';
2214                }
2215                document.body.appendChild(script);
2216            } else {
2217                resolve();
2218            }
2219        });
2220    }
2221
2222    $("#send_verification_email").on("click", function() {
2223        $.ajax({
2224            type: "POST",
2225
2226            url: "https://admin.octopuspro.com/settings/send-verification-ses-custom-email",
2227            success: function (data) {
2228                location.reload();
2229            }
2230        });
2231    })
2232
2233
2234    $( "#page-wrapper" ).on("click", function() {
2235        // $(".nav li").removeClass("active");
2236    })
2237        $(document).ready(function () {
2238            $('#search-btn ').click(function () {
2239                if ($(this).next().is(':visible')) {
2240                    $(this).next().hide();
2241                } else {
2242                    $(this).next().show();
2243                    $(this).next().find('input[type=text]').focus();
2244                }
2245            });
2246        });
2247
2248    $(function(){
2249        $('.jq-toast-wrap .jq-toast-heading').hide();
2250
2251
2252        let customerPortalActiveLinkHrefs = $('.customer-portal-active-link li a');
2253        const currentUrl = window.location.href;
2254        customerPortalActiveLinkHrefs.each( function (){
2255                if( $(this).attr('href') !== currentUrl){
2256                    $(this).attr('style', 'color: #a7b1c2 !important');
2257                }
2258        });
2259
2260        // Twilio.Device.on('incoming', (call) => {
2261        //     $(".pad-container").show();
2262        //     call.on('disconnect', (call) => {
2263        //         $(".pad-container").hide();
2264        //     });
2265        // });
2266
2267        // $('.btn-call').on("click",function(){
2268        //     $(".pad-container").toggle();
2269        //     $(".user-info-numbers-area").toggle();
2270        //     $('.toggle-pad').removeAttr('disabled');
2271        // });
2272
2273
2274        $('.toggle-pad').on("click",function(){
2275            $(".pad-container").toggle();
2276            $(".user-info-numbers-area").toggle();
2277        });
2278
2279        $('.pad-container .digit').on('click',function(){
2280            var connection = Twilio.Device.activeConnection();
2281            if(connection) {
2282                connection.sendDigits($(this).text());
2283            }
2284        })
2285
2286
2287    });
2288
2289</script>
2289
2290
2291<style>
2292    .custom-design-new{
2293        padding: 15px 30px 15px 30px;
2294    }
2295    .custom-design-new:before
2296    {
2297        content: unset;
2298    }
2299    @media (max-width: 991px) {
2300        .custom-design-new {
2301            padding: 10px !important;
2302        }
2303    }
2304    .custom-design-new:after
2305    {
2306        content: unset;
2307    }
2308
2309    .new-save-btn {
2310        border-radius: 8px !important;
2311        padding: 12px 16px !important;
2312        font-family: 'Roboto', serif !important;
2313        font-style: normal !important;
2314        font-weight: 500 !important;
2315        font-size: 16px !important;
2316        line-height: 16px !important;
2317        text-align: center !important;
2318        color: #ffffff !important;
2319        background: #2e4051 !important;
2320    }
2321    .new-cancel-btn {
2322        background-color: white !important;
2323        color: black !important;
2324        border-color: black !important;
2325        border-radius: 8px !important;
2326        padding: 12px 16px !important;
2327        font-family: 'Roboto', serif !important;
2328        font-style: normal !important;
2329        font-weight: 500 !important;
2330        font-size: 16px !important;
2331        line-height: 16px !important;
2332        text-align: center !important;
2333    }
2334    .justify-content-between{
2335        justify-content: space-between;
2336    }
2337    .d-flex{display: flex}
2338    .align-center{
2339        align-items: center;
2340    }
2341    .position-relative{
2342        position: relative;
2343        font-family: 'Roboto', sans-serif;
2344
2345    }
2346    .custom-style{
2347        position: absolute !important;
2348        top:10px !important;
2349        right:10px !important;
2350        margin-right:0 !important;
2351    }
2352    #address_Modal_admin .gm-style-iw{
2353        display: flex !important;
2354        max-height: 40px!important;
2355        align-items: center;
2356        flex-direction: row-reverse;
2357        padding-left: 0.07% !important;
2358    }
2359    @media (max-width: 768px) {
2360        .modal-body.edit_padd_contractor_pop .p-bottom-60-mob {
2361            padding: 12px !important;
2362        }
2363    }
2364</style>
2365<div class="modal fade" id="address_Modal_admin" role="dialog" data-backdrop="static" >
2366    <div class="modal-dialog">
2367
2368        <form  id="address_form" class="form-horizontal" method="get" onsubmit="fillPlace(0,null,0,1);" autocomplete="odgfdgff" >
2369            <!-- Modal content-->
2370            <div class="modal-content h-fit-content" >
2371                <div class="modal-header">
2372                    <button type="button" class="close close_map"  data-dismiss="modal">&times;</button>
2373                    <h4 class="modal-title" id="addressModalTitle" style="text-align: center;font-weight: bold;"> Please confirm location by dragging the marker on the map </h4>
2374                </div>
2375                <div style="padding-bottom: 0px;" class="modal-body">
2376                    <div  class="alert-address alert-danger welcome-alert" role="alert" style="display: none;margin-bottom: 5px;"></div>
2377                    <div id="customerResult"></div>
2378                    <div class="row p-bottom-24 p-right-8 p-left-8 "  id="modal_components" >
2379                        <div class="form-group">
2380                            <div class="col-md-12">
2381                            <div class="inline col-md-12 col-xs-12 no-padding">
2382                                <input  autocomplete="odgfdgff" class=" Location_details_input text_input form-control change-google-location"  placeholder="Tag e.g. Home" name="marker_label[]"   type="text" value="" id="marker_label"/>
2383                            </div>
2384                                                         </div>
2385                        </div>
2386                        <div class="form-group">
2387                            <div class="col-md-12">
2388
2389                            <div class="inline col-md-2 col-xs-6 ipad_locations_inputs_style  ">
2390
2391
2392                                <input  autocomplete="odgfdgff" class=" Location_details_input text_input form-control change-google-location"  auto_fill="subpremise" placeholder="Unit / Lot No." name="unit_lot_number[]"   type="text" value="" id="unit_lot_number"/>
2393
2394                            </div>
2395
2396                            <div class="inline  col-md-5 col-xs-6 ipad_locations_inputs_style ">
2397
2398
2399                                <input    class=" Location_details_input text_input form-control change-google-location update_address_from_component" real-val="" placeholder="Address line 1" auto_fill="street_number" name="street_number[]"   type="text" value="" id="street_number"  autocomplete="odgfdgff" />
2400                            </div>
2401
2402                            <div class="inline col-md-5 col-xs-12  ">
2403
2404                                <input    class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="street_address[]" auto_fill="route"  real-val=""  placeholder="Address line 2"   type="text" value="" id="street_address" autocomplete="odgfdgff" />
2405
2406                            </div>
2407
2408                        </div>
2409                    </div>
2410
2411
2412                    <div class="form-group ">
2413
2414                        <div class="col-md-12  ">
2415
2416                            <div class="inline col-md-4 col-xs-6 ipad_locations_inputs_style">
2417                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="suburb[]" placeholder="Suburb / Locality" auto_fill="locality"   real-val=""  type="text" value="" id="suburb"  autocomplete="odgfdgff" /><!--required-->
2418                            </div>
2419
2420                            <div class="inline col-md-4 col-xs-6 ">
2421                                <input  class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="postcode[]" auto_fill="postal_code"  real-val=""  placeholder="Postal / Zip code" type="text"  value="" id="postcode"   autocomplete="odgfdgff" />
2422                            </div>
2423
2424                            <div class="inline col-md-4 col-xs-6  ipad_locations_inputs_style">
2425                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="country[]" auto_fill="
2425country" placeholder="country"   type="hidden"  value="" id="country"   autocomplete="odgfdgff" />
2426                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="time_zone[]" auto_fill="time_zone" placeholder="time_zone"   type="hidden"  value="" id="time_zone"   autocomplete="off" />
2427                            </div>
2428                            <div class="inline col-md-4 col-xs-12  " id="display_state">
2429                                <input   class=" Location_details_input text_input form-control change-google-location update_address_from_component" name="state[]" placeholder="State" auto_fill="state"   type="text" value=""   autocomplete="odgfdgff" /><!--required-->
2430                            </div>
2431                        </div>
2432
2433                    </div>
2434
2435
2436<div class="col-xs-12 ">
2437                        <label for="autocomplete" style="font-family: 'Roboto';font-style: normal;font-weight: 600;font-size: 16px;line-height: 24px;color: #2E4051;" class="Url_label_vue"> Url</label>
2438
2439                        <input class="text_input form-control auto p-all-15 Location_details_input" id="autocomplete" link-to-address ="1"
2440                               placeholder="Link to address"    autocomplete="odgfdgff" name="fullAddress[]" type="text" value=""/>
2441</div>
2442                    </div>
2443
2444                    <div class="row" style="padding: 0px">
2445                        <div class="col-md-12 modal_body_map" style="padding: 7px">
2446                            <div class="location-map 22" id="location-map-admin">
2447                            <div id="map_canvas" style="height: 400px;"></div>
2448                            </div>
2449                        </div>
2450                    </div>
2451
2452                </div>
2453                <div class="form-group col-md-12 parent-lat-lon-alignment">
2454                    <div class="col-md-12 lat-lon-alignment">
2455                        <div class="inline col-md-4 col-xs-6 p-left-0">
2456                            <input   autocomplete="odgfdgff" style=" color: #000000;  background-color: #ffffffd9;  "  class=" Location_details_input text_input form-control change-google-location"  onchange="autocompleteByLatLon('' , undefined  , $(event.target).attr('id'))" name="lat[]" auto_fill="lat" required placeholder="Latitude"   type="text" value="" id="lat" /><!--required-->
2457                        </div>
2458
2459                        <div class="inline col-md-4 col-xs-6 padding-left-no-right">
2460                            <input  autocomplete="odgfdgff" style=" color: #000000;  background-color: #ffffffd9; "    class=" Location_details_input text_input form-control change-google-location"  onchange="autocompleteByLatLon('' , undefined  , $(event.target).attr('id'))" name="lon[]" auto_fill="lng" required placeholder="Longitude"  type="text"  value="" id="lon" />
2461                        </div>
2462                    </div>
2463                </div>
2464
2465                <div class="modal-footer h-fit-content" >
2466                            <div id="button_container" class="h-fit-content">
2467                                    <button   type="submit" class="width_of_icon_search float-right btn-confirm-popup" >   Save changes </button>
2468                                    <button    class="close_map btn-cancel-popup  change-p-y  float-left"  data-dismiss="modal"   >   Cancel </button>
2469                            </div>
2470
2471                    </div>
2472                 </div>
2473            </div>
2474        </form>
2475    </div>
2476<style>
2477    .ts-dropdown, .ts-dropdown.form-control, .ts-dropdown.form-select{
2478        background-color: #ffffff !important;
2479    }
2480    .change-p-y{
2481        padding: 12px 26px !important;
2482    }
2483    .padd-left-0{
2484        padding-left: 0 !important;
2485    }
2486
2487</style>
2488<script>
2489        $(document).ready(function () {
2490
2491            document.body.addEventListener('click', function (event) {
2492                if (event.target.closest('a[data-target="#create_edit_customer_popup"]')) {
2493                    event.preventDefault();
2494                    // Get the value of data-target attribute
2495                    var dataTarget = this.getAttribute('data-target');
2496                    VueEventBus.$emit('openModalCustomer');
2497                    // Do something with the data-target value
2498                    console.log('Data Target:', dataTarget);
2499                }
2500            });
2501
2502        });
2503
2504
2505</script>
2505
2506
2507
2508<div class="vue3-component" id="modals"></div>
2509<script src="https://admin.octopuspro.com/js/disable-autocomplete.js?v=1790246824" type="text/javascript"></script>
2509
2510<style>
2511
2512
2513    /* Address-update styling is scoped so other shared confirm usages stay unchanged. */
2514    #confirm.address-update-confirm .modal-dialog {
2515        width: 840px;
2516        max-width: calc(100% - 32px);
2517        margin: 20px auto;
2518    }
2519    #confirm.address-update-confirm .modal-content {
2520        border: 0;
2521        border-radius: 4px;
2522        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.25);
2523        overflow: hidden;
2524    }
2525    #confirm.address-update-confirm .modal-header {
2526        position: relative;
2527        padding: 22px 16px 20px;
2528        border-bottom: 1px solid #e5e5e5;
2529    }
2530    #confirm.address-update-confirm .modal-title {
2531        margin: 0;
2532        padding-right: 30px;
2533        font-size: 31px;
2534        font-weight: 700;
2535        line-height: 1.2;
2536        color: #34495e;
2537    }
2538    #confirm.address-update-confirm .modal-body {
2539        padding: 28px 16px 26px !important;
2540    }
2541    #confirm.address-update-confirm .modal-body p,
2542    #confirm.address-update-confirm .confirm-message-text {
2543        margin: 0;
2544        font-size: 16px;
2545        line-height: 1.6;
2546        color: #6d737a;
2547    }
2548    #confirm.address-update-confirm .modal-footer {
2549        display: flex;
2550        justify-content: space-between;
2551        align-items: center;
2552        gap: 12px;
2553        padding: 0 16px 20px;
2554        border-top: 0 !important;
2555    }
2556    #confirm.address-update-confirm .modal-footer::before,
2557    #confirm.address-update-confirm .modal-footer::after {
2558        display: none;
2559    }
2560    #confirm.address-update-confirm .modal-footer .col-lg-3,
2561    #confirm.address-update-confirm .modal-footer .col-md-4,
2562    #confirm.address-update-confirm .modal-footer .col-xs-5 {
2563        float: none;
2564        width: auto;
2565        padding: 0;
2566    }
2567    #confirm.address-update-confirm .modal-close-btn {
2568        position: absolute;
2569        top: 16px;
2570        right: 16px;
2571        width: auto;
2572        height: auto;
2573        padding: 0;
2574        border: 0;
2575        background: transparent;
2576        color: #cfcfcf;
2577        font-size: 32px;
2578        font-weight: 400;
2579        line-height: 1;
2580        opacity: 1;
2581        text-shadow: none;
2582        transition: color 0.2s ease;
2583    }
2584    #confirm.address-update-confirm .modal-close-btn:hover,
2585    #confirm.address-update-confirm .modal-close-btn:focus {
2586        background: transparent;
2587        color: #98a2ad;
2588        outline: none;
2589    }
2590    #confirm.address-update-confirm .confirm-modern-btn {
2591        display: inline-flex;
2592        justify-content: center;
2593        align-items: center;
2594        min-width: 132px;
2595        height: 42px;
2596        padding: 0 22px;
2597        border-radius: 8px;
2598        border: 1px solid transparent;
2599        font-size: 15px;
2600        font-weight: 600;
2601        text-decoration: none;
2602        box-shadow: none;
2603        transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
2604    }
2605    #confirm.address-update-confirm .confirm-modern-btn:hover,
2606    #confirm.address-update-confirm .confirm-modern-btn:focus {
2607        text-decoration: none;
2608        outline: none;
2609    }
2610    #confirm.address-update-confirm .confirm-modern-btn-secondary {
2611        background: #ffffff;
2612        border-color: #d4d9de;
2613        color: #4f5965;
2614    }
2615    #confirm.address-update-confirm .confirm-modern-btn-secondary:hover,
2616    #confirm.address-update-confirm .confirm-modern-btn-secondary:focus {
2617        background: #f8fafb;
2618        border-color: #c8d0d8;
2619        color: #34495e;
2620    }
2621    #confirm.address-update-confirm .confirm-modern-btn-primary {
2622        background: #34495e;
2623        border-color: #34495e;
2624        color: #ffffff;
2625    }
2626    #confirm.address-update-confirm .confirm-modern-btn-primary:hover,
2627    #confirm.address-update-confirm .confirm-modern-btn-primary:focus {
2628        background: #2c3e50;
2629        border-color: #2c3e50;
2630        color: #ffffff;
2631    }
2632    .modal-backdrop.in.address-update-backdrop {
2633        opacity: .55;
2634        background: #666666;
2635    }
2636    @media only screen and (max-width: 767px) {
2637        #confirm.address-update-confirm .modal-dialog {
2638            width: auto;
2639            max-width: none;
2640            margin: 18px 14px;
2641        }
2642        #confirm.address-update-confirm .modal-header {
2643            padding: 18px 14px 16px;
2644        }
2645        #confirm.address-update-confirm .modal-title {
2646            font-size: 24px;
2647            padding-right: 24px;
2648        }
2649        #confirm.address-update-confirm .modal-body {
2650            padding: 22px 14px 20px !important;
2651        }
2652        #confirm.address-update-confirm .modal-footer {
2653            padding: 0 14px 16px;
2654            flex-direction: column-reverse;
2655            align-items: stretch;
2656        }
2657        #confirm.address-update-confirm .confirm-modern-btn {
2658            width: 100%;
2659            min-width: 0;
2660        }
2661        #confirm.address-update-confirm .modal-close-btn {
2662            top: 12px;
2663            right: 12px;
2664        }
2665    }
2666    .custom-m-top-0{
2667        margin-top: 0px !important;
2668    }
2669    .modal-header{
2670        padding: 16px 20px !important;
2671    }
2672    #confirm .modal-dialog.modal-md{width: 65% !important;}
2673    #popupi .modal-dialog.modal-md{width: 65% !important;}
2674    @media (max-width: 1440px) {
2675        #confirm .modal-dialog.modal-md{width:  80%  !important;}
2676        #popupi .modal-dialog.modal-md{width:  80%  !important;}
2677    }
2678    @media (max-width: 768px) {
2679        #confirm .modal-dialog.modal-md{width: auto !important;}
2680        #popupi .modal-dialog.modal-md{width: auto !important;}
2681    }
2682</style>

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.