PageSourceSearch

https://odysseypets.com/contact-us/

html odysseypets.com collected 2026-10-04 13:26:19 UTC 253,196 bytes, 3,167 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <link rel="preconnect" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/">
5            <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/combined.min-v6.css" as="style">
6        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/js/jquery-cdn.min.js" as="script">
7        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/header.min.js" as="script">
8        <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.min-v9.js" as="script">
9             <!-- End Google Analytics -->
10            
10<script>(function(d){var s = d.createElement("script");s.setAttribute("data-account", "buNJbo9Fzs");s.setAttribute("src", "https://cdn.userway.org/widget.js");(d.body || d.head).appendChild(s);})(document)</script>
10
11
12        <noscript>Please ensure Javascript is enabled for purposes of <a href="https://userway.org">website accessibility</a></noscript>
13        <meta name="viewport" content="width=device-width, initial-scale=1"/>
14    <link rel="preconnect" href="https://ik.imagekit.io/0ofixtqpt/" crossorigin />
15
16    <link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/fonts/fontawesome-webfont.woff2" as="font"  type="font/woff2" />
17    <link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
18    <noscript><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css"></noscript>
19                <link rel="canonical" href="https://odysseypets.com/contact-us" />
20                            <meta name="robots" content="index, follow">
21                    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
21<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:"1431907933",accountID:"3639234",trustKey:"3639234",xpid:"VwAEWFRQDBABUFBUAAYGUVIF",licenseKey:"NRJS-848b5ec7e91ef88ba3a",applicationID:"1416771764",browserID:"1431907933"};;/*! For license information please see nr-loader-spa-1.323.0.min.js.LICENSE.txt */
22(()=>{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.323.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};
22e.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;
22const 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);
22if(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$:()=>
22o,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])}
22(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}
22;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.323.0.min.js"),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e={},t="NRBA-1.323.0.PROD:";r.l=(n,i,s,a)=>
22{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-ORjtmy+nQMgxbu0os8+oTRa5sPzbinyuWSvpZrrstVLIaHofRRlfODdH+oUmkIgeQpM+vPf3vG/4RzvCsFVh1A==",249:"sha512-o7+K6xC0z3TqynjVxpd+jgiSgqy8rrPeRcUSqt5J0Rqg5Su5CycLMYfpwiM3WBCHiNDrG5aZoXJQ6HRc335XYQ==",212:"sha512-kRvBt1IYQDBnClTEWNaE8sDFqbXXM3Vdyf972Uf4MFbJxl7u3KmdO+jdB1H4achPEoT9YtNXHswaESey6sCH0A==",238:"sha512-U5EGmyYbFVR2UMNAuZJ7fTgVVtPa5b8RPMySDwXo7z3frRdkUJ2x1VAQTLQCeBab8VlGVGRV8FiSHIn/pwN72A=="};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.323.0.PROD"]=self["webpackChunk:NRBA-1.323.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
22ine_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()=>
22{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)=>
22null==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
22dTimingMethod(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
22imeToRegister: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})})}
22return 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,a=(0,ye.ZF)(),o=(0,ye.el)(),c=Date.now();this.agentRef.runtime?.timeKeeper?.ready&&(s=Math.floor(this.agentRef.runtime.timeKeeper.correctAbsoluteTimestamp(c)));var d={spanId:a,traceId:o,timestamp:c,timestampCorrected:s};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(d.traceContextParentHeader=this.generateTraceContextParentHeader(a,o),d.traceContextStateHeader=this.generateTraceContextStateHeader(a,s??c,r,n,i)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(d.newrelicHeader=this.generateTraceHeader(a,o,s??c,r,n,i)),d}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"
22!==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);
22if(!(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)}
22);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)})});
22class 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
22h(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>
22
23
24    <meta name="csrf-token" content="RmBzPrFxFQmgEVtPEtSsRYczYKEnbatr62QbsdBH"/>
25    <meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
26    
27        <meta name="title" content="Contact Odyssey Pets In Dallas"/>
28        <meta name="description" content="Have a Pet Question or Need Pet Advice? Contact Odyssey Pets in Dallas today. Visit our website for more information."/>
29        <!-- FB Tags -->
30    <meta property="og:type" content="website">
31    <meta property="og:title" content="Contact Odyssey Pets In Dallas">
32    <meta property="og:url" content="https://odysseypets.com/contact-us/">
33    <meta property="og:description" content="Have a Pet Question or Need Pet Advice? Contact Odyssey Pets in Dallas today. Visit our website for more information.">
34    <meta property="og:image" content="https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG"/>
35
36
37    <!-- Google+ Tag -->
38    <meta itemprop="image" content="https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG"/>
39
40
41    
42
43
44                                                                                                                                                                                                                                                                                                                                                                <title>Contact Odyssey Pets In Dallas</title>
45
46    
47    
47<script src="https://cdn.franpos.com/customer-contents/libs/franpos_loyalty_form_popup.js" data-form-url="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090" data-delay="5000" data-heading="Join Our Newsletter!" data-title-color="#ffffff" data-title-bg="#016600" data-backdrop-color="#00000033" data-shown-key="newsletterPopupShown" defer ></script>
47
48    <!-- Stylesheets
49   ============================================= -->
50<link rel="alternate" href="https://odysseypets.com/contact-us/" hreflang="en-us"/>
51
52<link rel="preload" href="https://fonts.googleapis.com/css?family=Antonio:300,400,500,600,700|Archivo+Narrow:300,400,500,600,700&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
53<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Antonio:300,400,500,600,700|Archivo+Narrow:300,400,500,600,700&display=swap"></noscript>
54
55<style type="text/css">
56    header#header *:not(i):not(.fa) {
57        font-family: "Antonio" !important;
58    }
59
60    h1, h2, h3, h4, h5, h6 {
61        font-family: "Antonio" !important;
62    }
63
64    body:not(i):not(header):not(h1):not(h2):not(h3):not(h4):not(h5):not(h6):not(.fa) {
65        font-family: "Archivo Narrow" !important;
66    }
67    .title-transform-none h2 {
68        text-transform: none !important;
69    }
70</style>
71
72<script type="text/javascript">var GET_LOCATION = "";</script>
vendor: 1 bytes, line 72
72
73<script type="text/javascript">var locationCount = "1";</script>
vendor: 1 bytes, line 73
73
74<script type="text/javascript">let auto_redirect = "0";</script>
74
75    <link rel="stylesheet" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/combined.min-v6.css" defer/>
76    
76<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/js/jquery-cdn.min.js"></script>
76
77    
77<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/header.min.js" defer></script>
77
78    
78<script type="text/javascript" src="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.min-v9.js" defer></script>
78
79
80<!-- Preconnect and DNS Prefetch for External Services -->
81<link rel="dns-prefetch" href="//www.google.com">
82<link rel="dns-prefetch" href="//static.elfsight.com">
83<link rel="preconnect" href="https://fonts.googleapis.com" crossorigin>
84<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
85
86<!-- Google reCAPTCHA (Enterprise) -->
vendor: 87 bytes, lines 86-90
86
87<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
88
89
90
91<!-- Elfsight Widget -->
92<script src="https://static.elfsight.com/platform/platform.js" data-use-service-core defer></script>
92
93
94<!-- Google Fonts -->
95<link rel="preload" href="https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap" as="style" onload="this.onload=null;this.rel='stylesheet'">
96<noscript><link href="https://fonts.googleapis.com/css2?family=Noto+Sans&display=swap" rel="stylesheet"></noscript>
97
98<!-- Viewport Meta -->
99<meta name="viewport" content="width=device-width, initial-scale=1">
100
101<!-- Preload and Styles -->
102<link rel="preload" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.compile.min-v11.css" as="style">
103<link rel="stylesheet" href="https://d3w285dzx3yv2d.cloudfront.net/static/vendors/v2/performance/custom.compile.min-v11.css">
104
105
106    
106<script>
107        (function(){
108            const runAnalytics = function(id) {
109                const s = document.createElement('script');
110                s.src = `https://www.googletagmanager.com/gtag/js?id=${id}`;
111                s.async = true;
112                document.head.appendChild(s);
113
114                window.dataLayer = window.dataLayer || [];
115                function gtag(){ dataLayer.push(arguments); }
116
117                gtag('js', new Date());
118                gtag('config', id);
119            };
120
121            const id = "G-WJZWVPJWQB";
122            if (id) {
123                (window.requestIdleCallback || function(cb){ setTimeout(cb, 300); })(function() {
124                    runAnalytics(id);
125                });
126            }
127        })();
128    </script>
128
129
130    
130<script>
131        (window.requestIdleCallback || function(cb){ setTimeout(cb, 300); })(function(){
132            !function(f,b,e,v,n,t,s){
133                if(f.fbq) return;
134                n = f.fbq = function(){
135                    n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);
136                };
137                if(!f._fbq) f._fbq = n;
138                n.push = n;
139                n.loaded = !0;
140                n.version = '2.0';
141                n.queue = [];
142                t = b.createElement(e); t.async = true;
143                t.src = v;
144                s = b.getElementsByTagName(e)[0];
145                s.parentNode.insertBefore(t,s);
146            }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');
147
148            fbq('init', '2983775221638716');
149            fbq('track', 'PageView');
150        });
151    </script>
151
152    <noscript>
153        <img height="1" width="1" style="display:none"
154             src="https://www.facebook.com/tr?id=2983775221638716&ev=PageView&noscript=1"/>
155    </noscript>
156
157
158<!-- site level css start -->
159    <style type="text/css">
160        .service-link-color h2 {
161color: #016600 !important;
162}    </style>
163<!-- site level css end -->
164
165<script type="application/ld+json">
166{
167    "@context": "http://schema.org/",
168    "@type": "WebSite",
169    "name": "Odyssey Pets",
170  "url": "https://odysseypets.com"
171}
172
173</script>
173<script type="application/ld+json">
174{
175    "@context": "http://schema.org",
176    "@type": "PetStore",
177    "name": "Odyssey Pets",
178  "image": "https://ik.imagekit.io/0ofixtqpt/488605/front1.JPG",
179  "@id": "",
180  "url": "https://odysseypets.com",
181  "telephone": "9724071166",
182  "priceRange": "$$$",
183  "address": {
184    "@type": "PostalAddress",
185    "streetAddress": "14999 Preston Rd",
186    "addressLocality": "Dallas",
187    "addressRegion": "TX",
188    "postalCode": "75254",
189    "addressCountry": "US",
190    "description" : "Have a Pet Question or Need Pet Advice? Contact Odyssey Pets in Dallas today. Visit our website for more information."
191  },
192      "geo": {
193      "@type": "GeoCoordinates",
194      "latitude": 32.9519933,
195    "longitude": -96.8048136
196    },
197        "openingHoursSpecification": [{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"07:30","closes":"19:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Sunday","opens":"11:00","closes":"18:00"}],
198    "sameAs": ["https://maps.app.goo.gl/z1HrjJj2QTakFJPw7","https://www.facebook.com/odysseypets
198/","https://maps.app.goo.gl/z1HrjJj2QTakFJPw7","https://www.instagram.com/odysseypets/"],
199    "aggregateRating": {
200      "@type": "AggregateRating",
201      "ratingValue": 5,
202    "reviewCount": 5
203    },
204    "review": [
205        {
206        "@type": "Review",
207        "datePublished" : "2026-09-04",
208        "reviewBody": "Amazing little pet store. I’m one of those psycho pet owners and I worked in Vet hospitals when I was younger so have higher standards and would trust my dog baby with thier staff. I’m mostly in there for DFWAPC meetings as I don’t live close so mostly get the pleasure of harrassing Miles and enjoying their fish and plant department but every staff member has a true love for animals is knowledgable, helpful, courteous and not afraid to say idk and ask another employee (one of my biggest pet peeves when people fake knowledge)",
209        "author": {
210            "@type": "Person",
211            "name": "T Wilson"
212          },
213        "reviewRating": {
214            "@type": "Rating",
215            "worstRating": "1",
216            "bestRating": "5",
217            "ratingValue": "5"
218         }
219    },        {
220        "@type": "Review",
221        "datePublished" : "2026-08-28",
222        "reviewBody": "Great products. Great service. Very knowledgeable employees! This place is especially great for fish, if you're interested in that. I highly recommend Odyssey pets!",
223        "author": {
224            "@type": "Person",
225            "name": "Michael Said"
226          },
227        "reviewRating": {
228            "@type": "Rating",
229            "worstRating": "1",
230            "bestRating": "5",
231            "ratingValue": "5"
232         }
233    },        {
234        "@type": "Review",
235        "datePublished" : "2026-08-01",
236        "reviewBody": "The best by far! People who are knowledgeable, approachable. They carry only transparent, healthy brands of dog and cat food. Great aquarium resource as well. Support a locally owned small business! Odyssey Pets is the best!",
237        "author": {
238            "@type": "Person",
239            "name": "Shel Mulry"
240          },
241        "reviewRating": {
242            "@type": "Rating",
243            "worstRating": "1",
244            "bestRating": "5",
245            "ratingValue": "5"
246         }
247    },        {
248        "@type": "Review",
249        "datePublished" : "2026-08-01",
250        "reviewBody": "Been going there for 15 years because the groomers are kind and gentle to my 2 boys Ollie and Dickens. Great staff and clean boarding area. Highly recommend.",
251        "author": {
252            "@type": "Person",
253            "name": "Bob “USMCVet1985”"
254          },
255        "reviewRating": {
256            "@type": "Rating",
257            "worstRating": "1",
258            "bestRating": "5",
259            "ratingValue": "5"
260         }
261    },        {
262        "@type": "Review",
263        "datePublished" : "2026-07-24",
264        "reviewBody": "I purchased my Rummy Nose Tetras from Odyssey Pets. I stopped in, they only had a couple. Gentlemen gave me Miles card and told me to email him. Miles was great! He ordered me 20 Rummy Nose Tetras and I picked them up a week later. Video attached is after having them for 2 weeks. They are all healthy, happy, schooling and a  beautiful addition to my 75 gallon. Thank you Miles and everyone at Odyssey Pets. This was my 1st purchase, but definitely not my last! ❤️",
265        "author": {
266            "@type": "Person",
267            "name": "MamaKimbo75"
268          },
269        "reviewRating": {
270            "@type": "Rating",
271            "worstRating": "1",
272            "bestRating": "5",
273            "ratingValue": "5"
274         }
275    }        ]
276    }
277
278</script>
278<!-- Document Title
279============================================= -->
280                                    <link rel="shortcut icon" href="https://ik.imagekit.io/0ofixtqpt/5090102/fav.png">
281                            <style>
282    .mobile_carousel {
283        background-color: #016600;
284    }
285
286    .cust-carousel {
287        background: #016600;
288    }
289
290    #return-to-top {
291        background-color: #016600;
292    }
293
294    .fa-bars {
295        color: #016600 !important;
296    }
297
298    .header-icons-span, .portfolio-filter li.activeFilter a, .portfolio-shuffle:hover {
299        background-color: #016600;
300    }
301
302    .fa-paw, .fa-car {
303        color: #016600 !important;
304    }
305
306    a.all-brands, .share-btn {
307        background-color: #016600  !important;
308    }
309
310    button.contact-btn, a.contact-btn, .subscribe-btn {
311        background-color: #016600  !important;
312    }
313
314    .pro_btn, .icon-line-heart, .icon-line-power {
315        background-color: #016600  !important;
316    }
317
318    .cta-widget-btn {
319        background-color: #016600  !important;
320    }
321
322    #result .footer-custom-icon {
323        color: #016600;
324    }
325
326    #gotoTop:hover {
327        background-color: #016600  !important;
328    }
329
330    .owl-carousel .owl-nav [class*=owl-]:hover {
331        background-color: #1bc110  !important;
332        color: #fff !important;
333    }
334    .owl-carousel .owl-nav [class*=owl-]{
335        background-color: #016600  !important;
336        color: #fff !important;
337    }
338
339    .feature-box.fbox-plain .fbox-icon i {
340        color: #016600  !important;
341    }
342
343    #top-bar {
344        background-color: #016600  !important;
345    }
346
347    .brand-panel-heading {
348        background-color: #016600  !important;
349    }
350
351    .event-a {
352        color: #016600  !important;
353    }
354
355    .event-a:hover {
356        color: #1bc110  !important;
357    }
358
359    .about-a:hover {
360        color: #016600  !important;
361    }
362
363    .portfolio-overlay a:hover {
364        color: #016600  !important;
365    }
366
367    .tag-a {
368        color: #016600  !important;
369    }
370
371    .tag-a:hover {
372        color: #016600  !important;
373    }
374
375    .loc-li:hover {
376        background-color: #016600  !important;
377    }
378
379    .pagination > li > a {
380        color: #016600  !important;
381    }
382
383    .pagination > li > a:hover {
384        color: #016600  !important;
385    }
386
387    .pagination > .active > span {
388        background-color: #016600  !important;
389        border-color: #016600  !important;
390    }
391
392    .about-us-a {
393        color: #016600  !important;
394    }
395
396    .about-us-a:hover {
397        color: #016600  !important;
398    }
399
400    #header-wrap .container-fluid{
401        background-color: #fff !important;
402    }
403
404    .review-a{
405        color: #016600  !important;
406        cursor: pointer;
407        font-weight: 400;
408    }
409
410    .review-a:hover{
411        color: #016600  !important;
412    }
413
414                .dark #primary-menu ul ul li{
415        width: initial !important;
416        text-align: left !important;
417    }
418    /*#primary-menu ul ul:not(.mega-menu-column){*/
419    /*    left: 0 !important;*/
420    /*    right: 0 !important;*/
421    /*}*/
422    
423    
424             #primary-menu ul ul:not(.mega-menu-column) {
425            border-top: 2px solid #016600  !important;
426        }
427        .dark #primary-menu:not(.not-dark) ul ul, #primary-menu.dark ul ul {
428            border-top-color: #016600  !important;
429        }
430        #primary-menu ul li>a {
431            color: #2b2b2b !important;
432        }
433
434        #primary-menu ul li>a:hover {
435            color: #2b2b2b !important;
436        }
437
438        .dark #primary-menu:not(.not-dark) ul ul, #primary-menu ul ul:not(.mega-menu-column) {
439            background-color: #016600 !important;
440            border-color: #016600 !important;
441        }
442
443        .dark #primary-menu:not(.not-dark) ul ul li:hover > a{
444            background-color:  !important;
445            border-color:  !important;
446        }
447
448        .dark #primary-menu:not(.not-dark) ul ul li>a {
449            color: #ffffff !important;
450        }
451
452        .dark #primary-menu:not(.not-dark) ul ul li>a:hover {
453            color:  !important;
454        }
455
456        #primary-menu ul li .mega-menu-content ul li.menu-item.sub-menu:hover{
457            background-color: unset !important;
458            border-color: unset !important;
459        }
460
461        #primary-menu ul li .mega-menu-content ul li.menu-item.sub-menu ul li:hover{
462            background-color: unset !important;
463            border-color: unset !important;
464            color: #000000 !important;
465        }
466                .anc_subscription_description{
467            margin-top: 8px !important;
468        }
469        .more_anc_subsc_desc{
470            margin-top: 0px !important;
471            margin-bottom: 10px !important;
472        }
473        #anc_text {
474            margin-right: 70px !important;
475            margin-left: 70px !important;
476        }
477        .announcement_subscription_close{
478            position: absolute;
479            right: 0 !important;
480            top: 0 !important;
481            margin-top: 0px !important;
482            margin-right: 0px !important;
483        }
484
485        .locationBrd{
486        border-left: 8px solid #016600 !important;
487    }
488    .location-border span{
489        color: #016600 !important;
490    }
491    .location-border:hover{
492        background-color: #016600 !important;
493    }
494    .location-border:hover .location-drawer-business{
495        color: #ffffff !important;
496    }
497    .location-border:hover span{
498        color: #ffffff !important;
499    }
500    .location-border span.drawer_delivery{
501        color: #000000 !important;
502    }
503    /* search bar style */
504    .ecwid-search-widget__input{
505        border: 1px solid #016600 !important;
506        height: 3.2em !important;
507    }
508    .ecwid-search-widget__btn{
509        height: 3.2em !important;
510        border: 1px solid #016600 !important;
511        background: #016600 !important;
512        width: 40px !important;
513    }
514    .ecwid-search-widget__btn:hover{
515        opacity: 1 !important;
516    }
517    html#ecwid_html body#ecwid_body .ec-minicart__icon .icon-default path[stroke],html#ecwid_html body#ecwid_body .ec-minicart__icon .icon-default circle[stroke]{
518        stroke: #016600 !important;
519    }
520    html#ecwid_html body#ecwid_body .ec-minicart--m .ec-minicart__counter::after{
521        background-color: #016600 !important;
522    }
523    .ec-notice__text-inner {
524        color: #000000!important;
525    }
526    /*** Mega Menu ***/
527    @media (min-width: 991px) {
528        .custom-mega-menu-link:after {
529            content: '';
530            display: block;
531            width: 40px;
532            border-bottom: 2px solid #ffffff  !important;
533        }
534
535        #primary-menu ul li .mega-menu-content div.mega-menu-container-div {
536            background-color: #016600  !important;
537        }
538        .animal-li {
539            background-color: #016600 !important;
540            border-color: #016600  !important;
541        }
542        .dark #primary-menu:not(.not-dark) ul ul li>a.nav-link{
543            color: #2b2b2b !important;
544            transition: none !important;
545        }
546
547        .dark #primary-menu:not(.not-dark) ul ul li.animal-li>a.nav-link {
548            color: #ffffff !important;
549            transition: none !important;
550        }
551        .dark #primary-menu ul li .mega-menu-content ul li a.animal-a:hover {
552            color: #ffffff !important;
553        }
554        #primary-menu ul li .mega-menu-content ul.mega-menu-column-ul{
555            background-color: #016600  !important;
556            border-color: #016600  !important;
557        }
558
559        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title > a{
560            background-color: #016600  !important;
561            border-color: #016600  !important;
562            color: #2b2b2b  !important;
563        }
564
565        #primary-menu ul li .mega-menu-content ul >
565 li.menu-item.sub-menu.mega-menu-category-title ul li.sub-menu-mega-menu > a{
566            background-color: #016600  !important;
567            border-color: #016600  !important;
568            color: #2b2b2b  !important;;
569        }
570        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-1,
571        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-2,
572        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul.supplies-container-3{
573            border-color: #016600  !important;
574        }
575
576        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title:hover > a {
577            background-color: unset !important;
578            border-color: unset !important;
579            padding-left: 15px !important;
580        }
581
582        #primary-menu ul li .mega-menu-content ul > li.menu-item.sub-menu.mega-menu-category-title ul li.sub-menu-mega-menu:hover > a {
583            background-color: #ffffff  !important;
584            border-color: #ffffff  !important;
585            color: #016600  !important;
586            padding-left: 15px !important;
587        }
588
589        .custom-mega-submenu-title {
590            color:   !important;
591        }
592    }
593        /***/
594    #return-to-top{
595        background-color: #016600 !important;
596    }
597    body#ecwid_body .heading-block .small-text #my-categories-0 {
598        margin-top: 30px;
599    }
600    .blog-search-button {
601        background-color: #016600  !important;
602    }
603
604/* --- NWP-3809 Style Overrides --- */
605
606/* Services */
607.home-service-section h2, .home-service-container h2 { font-size: 36px !important; }
608.home-service-section p, .home-service-container p, .home-service-section .small-text, .home-service-container .small-text { font-size: 22px !important; }
609.home-service-section .service-carousel-desc p { font-size: 22px !important; } 
610
611/* Brands */
612.home-brand-section h2, .pet-brand-section h2, .home-brand-container h2 { font-size: 36px !important; }
613.home-brand-section p, .pet-brand-section p, .home-brand-container p, .home-brand-section .small-text, .pet-brand-section .small-text { font-size: 22px !important; }
614
615/* Gallery */
616.gallery-section h2, .gallery-section h3 { font-size: 36px !important; }
617.gallery-section p, .gallery-section .small-text { font-size: 22px !important; }
618
619/* Reviews */
620.review-section h2, .review-section h2.review-title-color { font-size: 36px !important; }
621/* Description text for reviews */
622.review-section > .container > .row > .heading-block > span, .review-section .review_text_inner.small-text, .review-section p.review-description-color { font-size: 22px !important; }
623/* Trusted / h3 */
624.review-section h3, .review-section label[data-testid="review-count"], .review-section p[style*="bold"], .review-section div[style*="bold"] { font-size: 20px !important; }
625/* Review div */
626.review-section .review_card_carousel_child_description p, .review-section div.testi-content p, .review-section .review_testimonial_description p, .review-section .review-text-color, .review-section .review_testimonial_description { font-size: 14px !important; }
627span.review_testimonial_author { font-size: 14px !important; }
628
629/* Home page widget width fixes (About Us to match others) */
630.aboutus-container, .aboutus_row, .aboutus_content {
631    width: 100% !important;
632    max-width: 1170px !important;
633    margin-left: auto !important;
634    margin-right: auto !important;
635}
636
637/* --- End NWP-3809 --- */
638
639/* More Home Page Widgets (NWP-3809) */
640.home-blog-section h2, .home-event-section h2, .home-promotion-section h2, 
641.home-about-section h2, .home-aboutus-section h2, .aboutus_section h2, 
642.hero-section h2, .meet-section h2, .team_section h2, .home-multi-location-section h2 {
643    font-size: 36px !important;
644}
645
646.home-blog-section .small-text, .home-event-section .small-text, .home-promotion-section .small-text, 
647.home-about-section p, .home-aboutus-section p, .aboutus_section p, 
648.hero-section p, .meet-section p, .team_section p, .home-multi-location-section .small-text, .team-member-description p, .member-bio p {
649    font-size: 22px !important;
650}
651/* End More Home Page Widgets */
652</style>
653    
654</head>
655<body class="stretched">
656<div class="body-overlay"></div>
657
658
659<div id="wrapper" class="clearfix">
660            <style>
661    .announcement {
662                    display: none;
663                 background: #ffffff;
664        color: #016600;
665    }
666
667    #announcement-close {
668        background-color: #ffffff;
669    }
670
671    .announcement-btn {
672        background: #016600 !important;
673        color: #ffffff !important;
674    }
675    #announcement-loader{
676        padding-left: 20px;
677        display: none
678    }
679    #announcement-loader img{
680        height:30px;
681        width:30px;
682        padding-right:10px
683    }
684    @media (max-width: 991px) and (min-width: 320px) {
685        .announcement {
686            background: #016600;
687            color: #ffffff;
688        }
689
690        #announcement-close {
691            background-color: #016600;
692            margin-top: 0px;
693        }
694
695        .announcement-btn {
696            background: #ffffff !important;
697            color: #016600 !important;
698        }
699        .anc_new_name_div{
700            float: left !important;
701            width: 40%;
702        }
703        .anc_new_email_div{
704            float: left;
705            width: 41% !important;
706            margin-left: -24px;
707        }
708        .anc_new_button_div{
709            float: right;
710        }
711        .anc_new_input{
712            margin-top: 7px !important;
713        }
714        .anc_new_button{
715            width: 85px !important;
716            display: inline-block !important;
717            height: 40px !important;
718            white-space: unset !important;
719            line-height: 15px !important;
720            padding: 5px 12px !important;
721            border-radius: 16px !important;
722            font-size: 9px !important;
723        }
724        .anc_new_button:after{
725            position: absolute;
726            top: 39px;
727            left: 57%;
728            width: 0;
729            height: 0;
730            margin-left: 0;
731            border-left: 10px solid transparent;
732            border-right: 10px solid transparent;
733            border-top: 10px solid #ffffff;
734            content: '';
735        }
736    }
737    @media(max-width: 320px){
738        .anc_new_button{
739            width: 80px !important;
740        }
741    }
742    @media(max-width: 720px) {
743        .mobile-anc-btn{
744            display: block !important;
745        }
746
747    }
748</style>
749
750<div class="announcement announcement-mobile" id="announcement">
751    <input type="hidden" id="announcement_id" value="5293">
752            <div id="anc_text" style="white-space: pre-line">JOIN THE COMMUNITY!
753Get pet care tips, event invitations, new product updates, and exclusive offers delivered straight to your inbox. 🐾
754                                                <a target="_blank" id='announcement-btn' class="hidden-xs mobile-anc-btn hidden-sm button button-small nomargin announcement-btn"
755                       href="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090">Sign Up</a>
756                                    </div>
757        <button id="announcement-close" class=""
758            onclick="set_show_announcement_flag()">
759        <span class="fa fa-close"></span>
760    </button>
761            <div class="hidden-md hidden-lg">
762                                                <a target="_blank" id='announcement-btn' class="hidden-xs hidden-sm button button-small nomargin announcement-btn"
763                       href="https://my.franpos.com/LoyaltySignup/WDU4Z3FldEcvUGNqOEFnelJlOXN6dz090">Sign Up</a>
764                                    </div>
765    </div>
766<script defer>
767    $(window).on('load',function(){
768        // if($(".anc_subscription_description").length > 0) {
769        //     let desc_length = $(".anc_subscription_description").html().length;
770        //     if (desc_length > 90) {
771        //         $(".anc_subscription_description").removeClass('col-md-6');
772        //         $(".anc_subscription_description").addClass('col-md-12');
773        //         $(".anc_subscription_description").addClass('more_anc_subsc_desc');
774        //         $(".anc_first_input").addClass('col-md-offset-3');
775        //     } else if (desc_length <= 45) {
776        //         $(".anc_subscription_description").removeClass('col-md-6');
777        //         $(".anc_subscription_description").addClass('col-md-3');
778        //         $(".anc_adjust_input").removeClass('col-md-2');
779        //         $(".anc_adjust_input").addClass('col-md-3');
780        //     }
781        // }
782    });
783
784    // Listen for announcement button click
785    const announcementButton = document.getElementById('announcement-btn');
786    if (announcementButton) {
787        announcementButton.addEventListener('click', recordClick);
788    }
789
790    // Record announcement button click
791    function recordClick() {
792        const announcement_id = document.getElementById('announcement_id').value;
793        const url = '/record-announcement-click/';
794        const token = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
795
796        fetch(url, {
797            method: 'POST',
798            headers: {
799                'Content-Type': 'application/json',
800                'X-CSRF-TOKEN': token
801            },
802            body: JSON.stringify({announcement_id: announcement_id})
803        })
804            .catch((error) => {
805                console.error('Error:', error);
806            });
807    }
808</script>
808                <style>
809    .open > .social-share, .promotion-container .dropdown-menu{
810        text-align: center !important;
811    }
812    html#ecwid_html body#ecwid_body .ec-size .ec-store .grid-product__title-inner, html#ecwid_html body#ecwid_body .ec-size .ec-store .grid-product__price-amount, html#ecwid_html body#ecwid_body .ec-size .ec-store .product-details__product-price, html#ecwid_html body#ecwid_body .ecwid, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--secondary .form-control__button, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control__text, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control__textarea, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--radio{
813        color: #333;
814    }
815    html#ecwid_html body#ecwid_body .ec-pika-single, html#ecwid_html body#ecwid_body .ec-pika-button, html#ecwid_html body#ecwid_body .ec-pika-label, html#ecwid_html body#ecwid_body .ec-pika-label:visited, html#ecwid_html body#ecwid_body .ec-size .ec-store .form-control--error .form-control__text, html#ecwid_html body#ecwid_body .ec-size .ec-store .details-product-purchase__qty-field .form-control__placeholder{
816        color: #000000;
817    }
818    input#ec-cart-email-input{
819        color: #000000;
820        font-weight: 400;
821    }
822    @media(max-width: 1200px) and (min-width:1000px) {
823        .menu-top {
824            padding-top: 9%;
825        }
826    }
827    @media (min-width: 800px) and (max-width: 2000px) and (orientation: landscape) {
828        .ec-cart-widget.ec-cart-desktop {
829            display: block !important;
830        }
831        .ec-cart-widget.mobile{
832            display: none !important;
833        }
834    }
835    @media (min-width: 1028px) and (max-width: 2000px) and (orientation: portrait) {
836        .ec-cart-widget.ec-cart-desktop {
837            display: block !important;
838        }
839        .ec-cart-widget.mobile{
840            display: none !important;
841        }
842    }
843</style>
844<header id="header" class="transparent-header dark full-header" data-sticky-class="dark">
845                        <style>
846    .si-gplus:hover, .si-colored.si-gplus{
847        background-color: #ffffff !important;
848    }
849    .top-links ul li{
850        border-left: unset !important;
851    }
852    .loc-topbar-li:hover{
853        background-color: transparent !important;
854
855    }
856    .loc-header-icon-span {
857        background-color: #ffffff !important;
858    }
859    .loc-header-icons{
860        color: #016600  !important
861    }
862    .hour-cursor {color: inherit !important;}
863</style>
864<div id="top-bar" class="transparent-topbar hidden-sm hidden-xs">
865    
866    <div class="col_half nobottommargin clearfix col-md-1 top-left">
867        <div class="top-links">
868            <ul>
869                
870
871
872
873
874
875
876
877
878
879                    <li class="mobile-top-links"><a target="_blank" class="mapLink"
880                                                    href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh">
881                            <span class="ts-icon get-direction-btn"><i class="fas fa-map-marker-alt"></i></span>
882                            <span class="ts-text get-direction-btn">14999 Preston Rd, Ste. 400A,  Dallas,  TX
883                            &nbsp;75254</span></a>
884                    </li>
885                                                        <li class="hour-li mobile-top-links">
886                        <a class="hour-cursor"><span class="ts-icon"><i class="far fa-clock"></i></span>
887                            <span class="ts-text">
888                                                                                                                                                                                                        
889                                                Open Today:
890                                                                                                            11:00 am - 6:00 pm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </span>
891                        </a>
892                    </li>
893                            </ul>
894        </div>
895    </div>
896    <div class="col_half fright col_last nobottommargin clearfix">
897        <!-- Top Social
898          ============================================= -->
899        <div id=
900                     "top-social">
901            <ul>
902                                                                                        
903                            
904                            
905                                                            <li><a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank" class="si-gplus" data-hover-width="109"><span
906                                                class="ts-icon">
907                                            <img src="https://ik.imagekit.io/0ofixtqpt/3430774/glogo.png" style="width: 18px;">
908                                        </span><span
909                                                class="ts-text">
910                                            <img src="https://ik.imagekit.io/0ofixtqpt/3430772/google-logo.png" style="width: 60px;">
911                                        </span></a></li>
912                            
913                            
914                            
915                            
916                                                                                                                                                                                    
917                            
918                            
919                            
920                                                            <li><a href="https://www.youtube.com/@OdysseyPets" target="_blank" class="si-youtube" data-hover-width="109"><span
921                                                class="ts-icon"><i class="fab fa-youtube"></i></span><span
922                                                class="ts-text">Youtube</span></a></li>
923                            
924                            
925                            
926                                                                                                                                                                                                                    <li>
926<a href="https://www.facebook.com/odysseypets/" target="_blank" class="si-facebook" data-hover-width="109"><span
927                                                class="ts-icon"><i class="fab fa-facebook"></i></span><span
928                                                class="ts-text">Facebook</span></a></li>
929                            
930                            
931                            
932                            
933                            
934                            
935                            
936                                                                                                                                                                                                                                                                            
937                            
938                            
939                            
940                            
941                            
942                            
943                                                                                                                                                                                                                                
944                                                            <li>
944<a href="https://www.instagram.com/odysseypets/" target="_blank" class="si-instagram" data-hover-width="109"><span
945                                                class="ts-icon"><i class="fab fa-instagram"></i></span><span
946                                                class="ts-text">Instagram</span></a></li>
947                            
948                            
949                            
950                            
951                            
952                            
953                                                                                                                                                                                                                                                                            <span class="top_phone">
954                        <a href="tel:(972) 407-1166">
955                            <span class="ts-icon call-us-btn">
956                                <i class="fas fa-phone call-us-btn" style="transform: rotate(90deg) !important;"></i>
957                            </span>
958                            <span class="ts-text call-us-btn">(972) 407-1166</span>
959                        </a>
960                    </span>
961                            </ul>
962        </div><!-- #top-social end -->
963    </div>
964    
965</div>
966     <div id="top-bar" class="transparent-topbar hidden-md hidden-lg mobile-topbar">
967        <div class="col-xs-12 nobottommargin clearfix">
968                                            <div class="hour-li mobile-top-links single-hour-div">
969                    <a class="hour-cursor"><span class="ts-icon"><i class="far fa-clock"></i></span>
970                        <span class="ts-text">
971                                                                                                                                                                                                                              
972                                            Open Today:
973                                                                                            11:00 am - 6:00 pm                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </span>
974                    </a>
975                </div>
976                        <div class="top-links text-center loc-toplinks">
977                <ul>
978                                        <li class="loc-li loc-topbar-li">
979                         <span class="header-icons-span loc-header-icon-span hidden-lg hidden-md loc-call-span">
980                            <a href="tel:9724071166"><i class="fas fa-phone header-icons loc-header-icons call-us-btn" style="transform: rotate(90deg) !important;"></i></a>
981                         </span>
982                    </li>
983                                        <li class="loc-li loc-topbar-li">
984                        <span class="header-icons-span loc-header-icon-span fa fa-left hidden-lg hidden-md loc-direction-span single-direction-span">
985                            <a target="_blank" class="mapLink"
986                               href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh"><i
987                                        class="fas fa-map-marker-alt header-icons loc-header-icons get-direction-btn"></i></a>
988                        </span>
989                    </li>
990                </ul>
991            </div>
992        </div>
993    </div>
994<script defer>
995    $('document').ready(function(){
996        $('.top-links ul li.location-drawer').css({cursor: "pointer"});
997    })
998    document.addEventListener("DOMContentLoaded", function () {
999    const mapLinks = document.getElementsByClassName("mapLink");
1000    const isMobile = window.innerWidth <= 768;
1001
1002    if (isMobile) {
1003        Array.from(mapLinks).forEach(link => {
1004        let originalLink = link.href;
1005
1006            if (originalLink.includes("https://www.google.com/maps/place/search?q=")) {
1007                let newLink = originalLink.replace(
1008                    "https://www.google.com/maps/place/search?q=",
1009                    "https://www.google.com/maps/search/?api=1&query="
1010                );
1011                link.href = newLink;
1012            }
1013        });
1014    }
1015});
1016
1017</script>
1017                        <div id="header-wrap" style="display:block">
1018            <div class="container-fluid clearfix ">
1019                <div id="primary-menu-trigger" class="single-menu-trigger">
1020                    <i class="fas fa-bars"></i>
1021                    <span class="mobile_menu_text"> MENU </span>
1022                </div>
1023                <!-- Logo ============================================= -->
1024                                <div id="logo" class="mobile-header-logo ">
1025                                                                                                                                                                                                                                                    <a href="/"
1026                                       class="standard-logo logo-adjustment" data-dark-logo="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png">
1027                                        <img src="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png" alt="Odyssey Pets Logo" class="logo-adjustment-img">
1028                                    </a>
1029                                    <a href="/"
1030                                       class="retina-logo logo-alignment logo-adjustment" data-dark-logo="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png">
1031                                        <img src="https://ik.imagekit.io/0ofixtqpt/2501317/1693769242_Odyssey logo circle B (1).png" alt="Odyssey Pets Logo" class="logo-adjustment-img">
1032                                    </a>
1033                                                                                                                                            </div><!-- #logo end -->
1034                <!-- Mobile search box -->
1035                                <!-- Mobile search box end -->
1036                <!-- Primary Navigation============================================= -->
1037                <nav id="primary-menu" class="menu-top" style="">
1038                    <ul id="">
1039                                                <div id="ecwidSearch-desktop" class="alignleft">
1040                                                    </div>
1041                                                                                    <style>
1042    .menu-btn{
1043        border-radius: 30px;
1044    }
1045
1046    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1047        padding-top: 19px;;
1048    }
1049
1050        @media (max-width: 991px) {
1051            .custom-btn {
1052            display: inline-block;
1053            width: 48%;
1054            margin-right: 2%;
1055        }
1056    }
1057
1058    </style>
1059
1060            <li class="current  ">
1061
1062                                                                <a class="" href="https://shop.odysseypets.com/" title="Shop Near Dallas" target=_blank 
1063                        style="">
1064                        <div class=""
1065                        style="">
1066                        Shop
1067                        </div>
1068                        
1069                    </a>
1070                                                        
1071                              </li>
1072                                                                                                                                                <style>
1073    .menu-btn{
1074        border-radius: 30px;
1075    }
1076
1077    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1078        padding-top: 19px;;
1079    }
1080
1081        @media (max-width: 991px) {
1082            .custom-btn {
1083            display: inline-block;
1084            width: 48%;
1085            margin-right: 2%;
1086        }
1087    }
1088
1089    </style>
1090
1091            <li class=" sub-menu click-class ">
1092
1093                            <a class="" href="/pet-food-supply/" title="Cat &amp; Dog Near Dallas"                 style=""
1094                >
1095                <div class=""
1096                    style="">
1097                    Cat &amp; Dog
1098                </div>
1099            </a>
1100                                      <ul style="">
1101                                                                                <li>
1102                                                                                        <a href="/pet-food-cost-carb-calculators/" title="Pet Food Cost &amp; Carb Calculators Near Dallas" >
1103                                    <div>Pet Food Cost &amp; Carb Calculators</div>
1104                                </a>
1105                                                    </li>
1106                                                                                                    <li>
1107                                                                                        <a href="/dog-food-supply/" title="Dog Food &amp; Supplies Near Dallas" >
1108                                    <div>Dog Food &amp; Supplies</div>
1109                                </a>
1110                                                    </li>
1111                                                                                                    <li>
1112                                                                                        <a href="/cat-food-supply/" title="Cat Food &amp; Supplies Near Dallas" >
1113                                    <div>Cat Food &amp; Supplies</div>
1114                                </a>
1115                                                    </li>
1116                                                                                                    <li>
1117                                                                                        <a href="/brands/" title="See All Brands Near Dallas" >
1118                                    <div>See All Brands</div>
1119                                </a>
1120                                                    </li>
1121                                                                                                    <li>
1122                                                                                                                                        <a href="http://www.luckybuckantlers.com/" title="Lucky Buck Antlers Near Dallas" target=_blank>
1123                                            <div>Lucky Buck Antlers</div>
1124                                        </a>
1125                                                                                                                        </li>
1126                                                </ul>
1127            </li>
1128                                                                                                                                                <style>
1129    .menu-btn{
1130        border-radius: 30px;
1131    }
1132
1133    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1134        padding-top: 19px;;
1135    }
1136
1137        @media (max-width: 991px) {
1138            .custom-btn {
1139            display: inline-block;
1140            width: 48%;
1141            margin-right: 2%;
1142        }
1143    }
1144
1145    </style>
1146
1147            <li class=" sub-menu click-class ">
1148
1149                            <a class="" href="/fish-food-supply/" title="Fis
1149h Near Dallas"                 style=""
1150                >
1151                <div class=""
1152                    style="">
1153                    Fish
1154                </div>
1155            </a>
1156                                      <ul style="">
1157                                                                                <li>
1158                                                                                        <a href="/fish-food-supply/" title="The Fish Room Near Dallas" >
1159                                    <div>The Fish Room</div>
1160                                </a>
1161                                                    </li>
1162                                                                                                    <li>
1163                                                                                        <a href="/fish-food-supply/" title="Aquarium Service Near Dallas" >
1164                                    <div>Aquarium Service</div>
1165                                </a>
1166                                                    </li>
1167                                                                                                    <li>
1168                                                                                        <a href="/aquarium-consultations/" title="Aquarium Consultations Near Dallas" >
1169                                    <div>Aquarium Consultations</div>
1170                                </a>
1171                                                    </li>
1172                                                </ul>
1173            </li>
1174                                                                                                                                                <style>
1175    .menu-btn{
1176        border-radius: 30px;
1177    }
1178
1179    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1180        padding-top: 19px;;
1181    }
1182
1183        @media (max-width: 991px) {
1184            .custom-btn {
1185            display: inline-block;
1186            width: 48%;
1187            margin-right: 2%;
1188        }
1189    }
1190
1191    </style>
1192
1193            <li class=" sub-menu click-class ">
1194
1195                            <a class="" href="/small-pet-food-supply/" title="Small Pets Near Dallas"                 style=""
1196                >
1197                <div class=""
1198                    style="">
1199                    Small Pets
1200                </div>
1201            </a>
1202                                      <ul style="">
1203                                                                                <li>
1204                                                                                        <a href="/bird-food-supply/" title="Bird Food &amp; Supplies Near Dallas" >
1205                                    <div>Bird Food &amp; Supplies</div>
1206                                </a>
1207                                                    </li>
1208                                                                                                    <li>
1209                                                                                        <a href="/small-pet-food-supply/" title="Small Pets Food &amp; Supplies Near Dallas" >
1210                                    <div>Small Pets Food &amp; Supplies</div>
1211                                </a>
1212                                                    </li>
1213                                                </ul>
1214            </li>
1215                                                                                                                                                <style>
1216    .menu-btn{
1217        border-radius: 30px;
1218    }
1219
1220    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1221        padding-top: 19px;;
1222    }
1223
1224        @media (max-width: 991px) {
1225            .custom-btn {
1226            display: inline-block;
1227            width: 48%;
1228            margin-right: 2%;
1229        }
1230    }
1231
1232    </style>
1233
1234            <li class=" sub-menu click-class ">
1235
1236                            <a class="" href="/services/" title="Services Near Dallas"                 style=""
1237                >
1238                <div class=""
1239                    style="">
1240                    Services
1241                </div>
1242            </a>
1243                                      <ul style="">
1244                                                                                <li>
1245                                                                                        <a href="/local-delivery/" title="Local Delivery Near Dallas" >
1246                                    <div>Local Delivery</div>
1247                                </a>
1248                                                    </li>
1249                                                                                                    <li>
1250                                                                                        <a href="/dog-boarding/" title="Dog Boarding &amp; Daycare Near Dallas" >
1251                                    <div>Dog Boarding &amp; Daycare</div>
1252                                </a>
1253                                                    </li>
1254                                                                                                    <li>
1255                                                                                        <a href="/grooming/" title="Dog Grooming Near Dallas" >
1256                                    <div>Dog Grooming</div>
1257                                </a>
1258                                                    </li>
1259                                                                                                    <li>
1260                                                                                        <a href="/nutritional-counseling/" title="Nutritional Counseling Near Dallas" >
1261                                    <div>Nutritional Counseling</div>
1262                                </a>
1263                                                    </li>
1264                                                                                                    <li>
1265                                                                                        <a href="/pet-adoptions/" title="Pet Adoptions Near Dallas" >
1266                                    <div>Pet Adoptions</div>
1267                                </a>
1268                                                    </li>
1269                                                </ul>
1270            </li>
1271                                                                                                                                                <style>
1272    .menu-btn{
1273        border-radius: 30px;
1274    }
1275
1276    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1277        padding-top: 19px;;
1278    }
1279
1280        @media (max-width: 991px) {
1281            .custom-btn {
1282            display: inline-block;
1283            width: 48%;
1284            margin-right: 2%;
1285        }
1286    }
1287
1288    </style>
1289
1290            <li class=" sub-menu click-class ">
1291
1292                            <a class="" href="/events/" title="Events &amp; Deals Near Dallas"                 style=""
1293                >
1294                <div class=""
1295                    style="">
1296                    Events &amp; Deals
1297                </div>
1298            </a>
1299                                      <ul style="">
1300                                                                                <li>
1301                                                                                        <a href="/deals/" title="Deals Near Dallas" >
1302                                    <div>Deals</div>
1303                                </a>
1304                                                    </li>
1305                                                </ul>
1306            </li>
1307                                                                                                                                                <style>
1308    .menu-btn{
1309        border-radius: 30px;
1310    }
1311
1312    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1313        padding-top: 19px;;
1314    }
1315
1316        @media (max-width: 991px) {
1317            .custom-btn {
1318            display: inline-block;
1319            width: 48%;
1320            margin-right: 2%;
1321        }
1322    }
1323
1324    </style>
1325
1326            <li class=" sub-menu click-class ">
1327
1328                            <a class="" href="/loyalty-program/" title="Loyalty Program Near Dallas"                 style=""
1329                >
1330                <div class=""
1331                    style="">
1332                    Loyalty Program
1333                </div>
1334            </a>
1335                                      <ul style="">
1336                                                                                <li>
1337                                                                                        <a href="/vip/" title="VIP Membership Near Dallas" >
1338                                    <div>VIP Membership</div>
1339                                </a>
1340                                                    </li>
1341                                                </ul>
1342            </li>
1343                                                                                                                                                <style>
1344    .menu-btn{
1345        border-radius: 30px;
1346    }
1347
1348    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1349        padding-top: 19px;;
1350    }
1351
1352        @media (max-width: 991px) {
1353            .custom-btn {
1354            display: inline-block;
1355            width: 48%;
1356            margin-right: 2%;
1357        }
1358    }
1359
1360    </style>
1361
1362            <li class=" sub-menu click-class ">
1363
1364                            <a class="" href="/about-us/" title="About Near Dallas"                 style=""
1365                >
1366                <div class=""
1367                    style="">
1368                    About
1369                </div>
1370            </a>
1371                                      <ul style="">
1372                                                                                <li>
1373                                                                                        <a href="/industry-awards/" title="Industry Awards Near Dallas" >
1374                                    <div>Industry Awards</div>
1375                                </a>
1376                                                    </li>
1377                                                                                                    <li>
1378                                                                                        <a href="/kibble-assessment/" title="Kibble Assessment Near Dallas" >
1379                                    <div>Kibble Assessment</div>
1380                                </a>
1381                                                    </li>
1382                                                                                                    <li>
1383                                                                                        <a href="/loyalty-program/" title="Join Our Loyalty Program Near Dallas" >
1384                                    <div>Join Our Loyalty Program</div>
1385                                </a>
1386                                                    </li>
1387                                                                                                    <li>
1388                                                                                        <a href="/application/" title="Employment Application Near Dallas" >
1389                                    <div>Employment Application</div>
1390                                </a>
1391                                                    </li>
1392                                                                                                    <li>
1393                                                                                        <a href="/resources/" title="Resources Near Dallas" >
1394                                    <div>Resources</div>
1395                                </a>
1396                                                    </li>
1397                                                                                                    <li>
1398                                                                                        <a href="/reviews/" title="Online Reviews Near Dallas" >
1399                                    <div>Online Reviews</div>
1400                                </a>
1401                                                    </li>
1402                                                                                                    <li>
1403                                                                                        <a href="/contact-us/" title="Contact Near Dallas" >
1404                                    <div>Contact</div>
1405                                </a>
1406                                                    </li>
1407                                                </ul>
1408            </li>
1409                                                                                                                                                <style>
1410    .menu-btn{
1411        border-radius: 30px;
1412    }
1413
1414    #header.sticky-header:not(.static-sticky) #primary-menu > ul > li > a{
1415        padding-top: 19px;;
1416    }
1417
1418        @media (max-width: 991px) {
1419            .custom-btn {
1420            display: inline-block;
1421            width: 48%;
1422            margin-right: 2%;
1423        }
1424    }
1425
1426    </style>
1427
1428            <li class="  ">
1429
1430                            <a class="" href="/blog/" title="Blog Near Dallas"                 style=""
1431                >
1432                <div class=""
1433                    style="">
1434                    Blog
1435                </div>
1436            </a>
1437                              </li>
1438                                                                                                                                </ul>
1439                </nav><!-- #primary-menu end -->
1440            </div>
1441        </div>
1442    </header>
1443<div id="side-panel">
1444    <div class="side-panel-wrap">
1445        <div class="drawer-title">
1446            <button type="button" class="close drawer-close" data-dismiss="alert" aria-label="Close">
1447                <span aria-hidden="true" class="drawer-close-icon">×</span>
1448            </button>
1449            <h3 class="drawer-title-name"><i class="fas fa-map-marker-alt"></i> &nbsp; Find Your Store </h3>
1450        </div>
1451        <div class="drawer-card">
1452            <div class="zip-code-div">
1453                <input type="text" class="zip-code-search" id="zipCode" data-id="zip-code-input" placeholder="Enter Zip Code" maxlength="5" />
1454                <button type="submit" id="zipSearch" class="loc-search-button"><i class="fas fa-search search-icon"></i></button>
1455            </div>
1456            <span class="zip-error"></span>
1457                            <h2 id="all-show" class="local-store-link"> All Locations </h2>
1458                        <img src="https://ik.imagekit.io/0ofixtqpt/143715/preloader-dark.gif" id="loader-location" class="loader-location"/>
1459            <div class="show-location">
1460                <a class="location-drawer-anchor locationSelect" data-slug="dallas" data-name="dallas" href="javascript:;" data-href="/">
1461            <div class="client-location location-border">
1462                <h3 class="notopmargin nobottommargin location-drawer-business">
1463                    Dallas
1464                </h3>
1465                <span>
1466                    <i class="fas fa-map-marker-alt"></i> &nbsp;14999 Preston Rd, ,Ste. 400A, Dallas, TX 75254
1467                </span>
1468                <br />
1469                                    <span>
1470                        <i class="fas fa-phone" style="transform: rotate(90deg) !important;"></i>&nbsp;&nbsp;(972) 407-1166
1471                    </span>
1472                    <br />
1473                
1474                <span class="hours-drawer">
1475                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Open Today Until 6:00 pm
1476                                                                                                                                                                                                                                                                                                                            </span>
1477                <span class="drawer_delivery">
1478                    <br />
1479                    In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available
1480                </span>
1481            </div>
1482        </a>
1483                        </div>
1484        </div>
1485    </div>
1486</div>
1487<script>
1488    let ecwid_count = '0';
1489    ecwid_count = parseInt(ecwid_count);
1490    let selectedLocation = localStorage.getItem('selected_location');
1491    if(localStorage.getItem('drawer_flag') == null && ecwid_count > 1){
1492        localStorage.setItem('drawer_flag',1);
1493        $("body").addClass('side-panel-open');
1494    }else{
1495        localStorage.setItem('drawer_flag',0);
1496        $("body").removeClass('side-panel-open');
1497    }
1498    var loc = $('#client_location').val();
1499    localStorage.setItem('selected_location', loc);
1500    $('a[data-slug='+loc+']').children().addClass('locationBrd');
1501    $('#loader-location').css('display','none');
1502    $('body').on('click', '.locationSelect', function () {
1503        let slug = $(this).data('slug');
1504        let hqName = $(this).data('name');
1505
1506        let previousSlug = localStorage.getItem('selected_location');
1507
1508        // Check if same slug is clicked
1509        const isLocationSelected = previousSlug === slug;
1510        const isHQSelectedAndLocationEmpty = slug === hqName && previousSlug === '';
1511
1512        let shouldCloseDrawer = isLocationSelected || isHQSelectedAndLocationEmpty;
1513
1514        // If the HQ is selected, set the slug to an empty string
1515        if (slug === hqName) {
1516            slug = '';
1517        }
1518
1519        // Update the selected location in localStorage
1520        localStorage.setItem('selected_location', slug);
1521
1522        if (shouldCloseDrawer) {
1523            document.querySelector('.drawer-close').click();
1524        } else {
1525            redirectToLocation(slug, previousSlug, hqName)
1526        }
1527    });
1528
1529    function redirectToLocation(slug, previousSlug, hqName) {
1530        // Get the current URL path
1531        let currentPath = window.location.pathname;
1532
1533        // Check the previous slug with HQ
1534        if (previousSlug === hqName) {
1535            previousSlug = '';
1536        }
1537
1538        // Determine the new URL path and redirect
1539        let newPath = previousSlug
1540            ? replaceOrRemoveLocationInUrl(slug, currentPath)
1541            : `/${slug}${currentPath}`;
1542
1543        // Redirect to the new URL
1544        location.href = newPath;
1545    }
1546
1547    function replaceOrRemoveLocationInUrl(newLocation, currentPath) {
1548        // Use a regular expression to match the location part (only the first segment after the domain)
1549        let newPath = currentPath.replace(/\/[^\/]+/, newLocation ? `/${newLocation}` : '');
1550
1551        // Ensure the new path starts with a slash
1552        if (!newPath.startsWith('/')) {
1553            newPath = '/' + newPath;
1554        }
1555
1556        return newPath;
1557    }
1558
1559    $("#zipCode").keyup(function(){
1560        this.value = this.value.replace(/[^0-9]/g,'');
1561    });
1562
1563    // Function to handle zip code search actions
1564    function handleZipSearch() {
1565        $('.show-location').css('display', 'none');
1566        $('#loader-location').css('display', 'block');
1567        $('#all-show').html('Nearby Store');
1568        search();
1569    }
1570
1571    // Attach keypress event to zip code search input
1572    $('.zip-code-search').keypress(function (e) {
1573        if (e.which === 13) {
1574            handleZipSearch();
1575        }
1576    });
1577
1578    // Attach click event to zip search button
1579    $('#zipSearch').click(function () {
1580        handleZipSearch();
1581    });
1582
1583    function search() {
1584        let location = $('input[name=location_id]').val();
1585        let zip = $('#zipCode').val();
1586        if(zip !== '' && zip.length < 5){
1587            $('.zip-error').html("Error: Please enter a valid ZIP code");
1588            $('.local-store-link').attr('style', 'margin-top:5% !important');
1589            $('#loader-location').css('display','none');
1590            return false;
1591        } else {
1592            $('.zip-error').html("");
1593            $('#all-show').attr('style', 'margin-top:0% !important','display: block');
1594            $('#ecwid-show').attr('style', 'margin-top:0% !important','display: block');
1595        }
1596
1597        // If no zip code is provided, show all the locations
1598        if(zip === '') {
1599            $('#all-show').html('All Locations');
1600        }
1601
1602        let url = '/zipSearch/';
1603        $.ajax({
1604            headers: {
1605                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
1606            },
1607            type: 'POST',
1608            url: url,
1609            data: {'currentLoc': location,'zip' : zip},
1610            success: function (response) {
1611                $('.show-location').css('display','block');
1612                $('#loader-location').css('display','none');
1613                $('.show-location').html(response);
1614                $('a[data-slug='+loc+']').children().addClass('locationBrd');
1615            }
1616        });
1617    }
1618    $('.drawer-close').on('click', function(){
1619        $("body").removeClass('side-panel-open');
1620        $('#all-show').html('All Locations');
1621        $('#ecwid-show').html('Choose a Store to Buy Online');
1622        $('#zipCode').val('');
1623    });
1624</script>
1624<script>
1625    let ecwidMobileSearch = $('#ecwidSearch-mobile');
1626    let ecwidDesktopSearch = $('#ecwidSearch-desktop');
1627    window.addEventListener("orientationchange", function() {
1628        if (window.matchMedia("(orientation: portrait)").matches) {
1629            showPortraitSearch();
1630        }
1631        if (window.matchMedia("(orientation: landscape)").matches) {
1632            showLandscapeSearch();
1633        }
1634    }, false);
1635    var logoPosition = '1';
1636    var captcha_key = '6LfcAGMpAAAAAL68qM6-xqbJeELRxV4MPPD71y27';
1637    var wwidth = 0;
1638    function dynamic_padding() {
1639        $('#header-wrap').show();
1640        var p = 0;
1641        $('#primary-menu > ul > li').each(function (x, y) {
1642            p += $(y).width();
1643        });
1644        var w = $('#primary-menu').width();
1645        var actual_width = w - p;
1646        var count_li = $('#primary-menu > ul > li').length + 2;
1647        var padding_width = actual_width / count_li;
1648        $('#primary-menu > ul > li').each(function () {
1649            $(this).attr('style', 'padding-right:' + padding_width + 'px !important;');
1650        });
1651        $('#primary-menu > ul > li:first').attr('style', 'padding-left:' + padding_width + 'px !important;padding-right: ' + padding_width + 'px !important;');
1652        wwidth = $(window).width();
1653    }
1654
1655    $(window).resize(function () {
1656        if (wwidth != $(window).width() && ($(window).width() > '768')) {
1657            if (logoPosition > 1) {
1658                dynamic_padding();
1659            }
1660        }
1661    });
1662    if (logoPosition > 1 && ($(window).width() > '768')) {
1663        setTimeout( dynamic_padding, 500);
1664    }
1665
1666    $(document).ready(function (){
1667        if (window.matchMedia("(orientation: landscape)").matches) {
1668            // console.log('landscape');
1669            showLandscapeSearch();
1670        }
1671        if (window.matchMedia("(orientation: portrait)").matches) {
1672            ecwidDesktopSearch.hide();
1673            
1674            
1675        }
1676    });
1677
1678    /**
1679     * show portrait search box
1680     */
1681    function showPortraitSearch()
1682    {
1683        let desktopSearch = ecwidDesktopSearch.html();
1684        ecwidDesktopSearch.html('').hide();
1685        ecwidMobileSearch.show().html(desktopSearch);
1686        $('#my-search-').removeClass('search-products-desktop').addClass('search-products-mobile');
1687    }
1688
1689    /**
1690     * show landscape search box
1691     */
1692    function showLandscapeSearch()
1693    {
1694        let mobileSearch = ecwidMobileSearch.html();
1695        ecwidMobileSearch.html('').hide();
1696        ecwidDesktopSearch.show().html(mobileSearch);
1697        $('#my-search-').removeClass('search-products-mobile').addClass('search-products-desktop');
1698    }
1699</script>
1699            <style>
1700        .col-md-2{
1701            width: 20% !important;
1702        }
1703        .msg-countdown{
1704         float: right;
1705        }
1706    </style>
1707    <section id="page-title"
1708                 class="page-title-parallax page-title-dark page-title-right hero-bg-image mobile-main-land-section mobile-page-title"
1709                 data-stellar-background-ratio="0.2">
1710            <div class="home-overlay"></div>
1711            <div class="container clearfix center bottommargin-sm-6 hero-title-div">
1712                <h1 class="hero-title">
1713                                            Odyssey Pets in Dallas, TX
1714                                    </h1>
1715                                    <p class="notopmargin animal_short">
1716                                                    <p>We Open Today at 11:00 AM</p>
1717                                            </p>
1718                
1719                                                            <a  href="tel: (972) 407-1166"
1720                           class="button slide_btn_left button-large hero-btn button-rounded noleftmargin topmargin-sm main-widget-image-button sub-page-cta-btn-1 call-us-btn"
1721                           style="background-color: #ffffff">
1722                            Call Us
1723                        </a>
1724                                    
1725                    
1726                       
1727                       
1728                       
1729                        
1730                    
1731                                                                            <a target=&quot;_blank&quot; href="https://goo.gl/maps/3JwaTvzBzfmqAdgz6"
1732                           class="button slide_btn_right button-large button-rounded hero-btn noleftmargin topmargin-sm main-widget-image-button sub-page-cta-btn-2 "
1733                           style="background-color: #ffffff">
1734                            Driving Directions
1735                        </a>
1736                                                </div>
1737
1738        </section>
1739        
1739<script>
1740        $(document).ready(function () {
1741            let options = {};
1742            let moptions = {};
1743            $(".pet-brand-btn").click(function () {
1744                $('html, body').animate({scrollTop: $('#pet-brand').offset().top - 250}, '200');
1745            });
1746
1747            var timer = 1;
1748                        var count = parseInt(0); // desktop slide count
1749            var mcount = parseInt(0); // mobile slide count
1750            if(count > 1){ // if greater than 1 slide in desktop then loop true
1751                options = {
1752                    loop: false,
1753                                        autoplay: {
1754                                                delay: '5000',
1755                                                disableOnInteraction: false,
1756                    },
1757                                        navigation: {
1758                        nextEl: '.swiper-button-next',
1759                        prevEl: '.swiper-button-prev',
1760                    },
1761                    pagination: {
1762                        el: '.swiper-pagination',
1763                        clickable: true,
1764                    }
1765                }
1766            } else{ // if ony 1 slide in desktop then loop set to false
1767                options = {
1768                    loop: false,
1769                                        autoplay: {
1770                                                delay: '5000',
1771                                                disableOnInteraction: false,
1772                    },
1773                                        navigation: {
1774                        nextEl: '.swiper-button-next',
1775                        prevEl: '.swiper-button-prev',
1776                    },
1777                    pagination: {
1778                        el: '.swiper-pagination',
1779                        clickable: true,
1780                    }
1781                }
1782            }
1783
1784            if(mcount > 1){ // if greater than 1 slide in mobile then loop true
1785                moptions = {
1786                    loop: false,
1787                                        autoplay: {
1788                                                delay: '5000',
1789                                                disableOnInteraction: false,
1790                    },
1791                                        navigation: {
1792                        nextEl: '.swiper-button-next',
1793                        prevEl: '.swiper-button-prev',
1794                    },
1795                    pagination: {
1796                        el: '.swiper-pagination',
1797                        clickable: true,
1798                    }
1799                }
1800            } else{  // if ony 1 slide in mobile then loop set to false
1801                moptions = {
1802                    loop: false,
1803                                        autoplay: {
1804                                                delay: '5000',
1805                                                disableOnInteraction: false,
1806                    },
1807                                        navigation: {
1808                        nextEl: '.swiper-button-next',
1809                        prevEl: '.swiper-button-prev',
1810                    },
1811                    pagination: {
1812                        el: '.swiper-pagination',
1813                        clickable: true,
1814                    }
1815                }
1816            }
1817
1818
1819            homeslider('.desktop_slider', timer,count,options);
1820            homeslider('.mobile_slider', timer,count,moptions);
1821
1822            function homeslider(type, timer) {
1823                if ($(type + " .swiper-slide").length  > 1)
1824                {
1825                    var swiper = new Swiper(type, options);
1826                    if ($(type + " .swiper-slide").length === 1 || $(type + " .swiper-slide").length === 3) {
1827                        if (swiper.params.loop) {
1828                            $('.swiper-wrapper').addClass("disabled");
1829                            $('.swiper-pagination').addClass("disabled");
1830                            swiper.autoplay.stop();
1831                        }
1832                    }
1833                }
1834            }
1835        });
1836
1837
1838        function hotlink(id) {
1839            var href = $(id).attr("href");
1840            var target = $(id).attr("target");
1841            if (href.charAt(0) == "#") {
1842                if (href.length > 1) {
1843                    $(id).removeAttr("href");
1844                    $(id).addClass("hotlink-btn");
1845                    if (href == '#home-service-section' && ($(id).hasClass("hotlink-btn"))) {
1846
1847                        $('html, body').animate({scrollTop: $('#home-service-section').offset().top - 250}, '200');
1848                        $(id).attr("href", href);
1849                    }
1850                    if (href == '#home-brand-section' && ($(id).hasClass("hotlink-btn"))) {
1851                        $('html, body').animate({scrollTop: $('#home-brand-section').offset().top - 250}, '200');
1852                        $(id).attr("href", href);
1853                    }
1854                    if (href == '#home-event-section' && ($(id).hasClass("hotlink-btn"))) {
1855                        $('html, body').animate({scrollTop: $('#home-event-section').offset().top - 250}, '200');
1856                        $(id).attr("href", href);
1857                    }
1858                    if (href == '#home-promotion-section' && ($(id).hasClass("hotlink-btn"))) {
1859                        $('html, body').animate({scrollTop: $('#home-promotion-section').offset().top - 250}, '200');
1860                        $(id).attr("href", href);
1861                    }
1862                    if (href == '#home-review-section' && ($(id).hasClass("hotlink-btn"))) {
1863                        $('html, body').animate({scrollTop: $('#home-review-section').offset().top - 250}, '200');
1864                        $(id).attr("href", href);
1865                    }
1866                }
1867            } else if (href.charAt(0) != '#' && target == "_blank") {
1868                window.open($(id).attr('href'));
1869            } else if (href.charAt(0) != '#' && target == "undefined") {
1870                window.location.href = $(id).attr('href');
1871            }
1872
1873        }
1874    </script>
1874
1875    <style>
1876        .home-cta-btn-1{
1877            color: #016600 !important;
1878        }
1879        .home-cta-btn-1:hover{
1880            color: #fff !important;
1881        }
1882        .home-cta-btn-2{
1883            color: #016600 !important;
1884        }
1885        .home-cta-btn-2:hover{
1886            color: #fff !important;
1887        }
1888        .home-cta-btn-1:hover{
1889            background-color: !important;
1890        }
1891        .home-cta-btn-2:hover{
1892            background-color:  !important;
1893        }
1894        .sub-page-cta-btn-1{
1895            color: #016600 !important;
1896        }
1897        .sub-page-cta-btn-1:hover{
1898            color: #fff !important;
1899        }
1900        .sub-page-cta-btn-2{
1901            color: #016600 !important;
1902        }
1903        .sub-page-cta-btn-2:hover{
1904            color: #fff !important;
1905        }
1906        .sub-page-cta-btn-1:hover{
1907            background-color: !important;
1908        }
1909        .sub-page-cta-btn-2:hover{
1910            background-color:  !important;
1911        }
1912        
1913            #page-title{
1914            background: url('https://ik.imagekit.io/0ofixtqpt/2931626/tr:n-topbar_bg/website-header-image-no-logo.png') !important;
1915        }
1916                    .home-overlay{
1917            background: rgba(0,0,0,0.2) !important;
1918        }
1919                    @media (max-width:1024px) and (min-width: 320px) {
1920                    .swiper-button-next, .swiper-button-prev, .swiper-pagination {
1921                display: block;
1922            }
1923        
1924                    #slider-cover {
1925                background: none !important;
1926            }
1927                                 #page-title {
1928                background: url('https://ik.imagekit.io/0ofixtqpt/2911637/website-header-images-mobile-2.png') !important;
1929            }
1930                }
1931    </style>
1932
1933
1934    <section id="content">
1935
1936        <div class="content-wrap">
1937
1938                        <div class="container clearfix">
1939
1940                <div class="col_half">
1941                    <div class="fancy-title text-center">
1942                        <h3>We’d love to hear from you</h3>
1943                    </div>
1944
1945                    <div class="contact-widget">
1946
1947                        <div class="contact-form-result"></div>
1948
1949                        <form data-toggle="validator" role="form" id="contact_form">
1950                            <input type="hidden" name="_token" value="RmBzPrFxFQmgEVtPEtSsRYczYKEnbatr62QbsdBH" autocomplete="off">
1951                            <input type="hidden" name="loc_id" value="283">
1952                            <div class="form-group col-sm-4">
1953                                <label for="inputName" class="control-label">Name
1954                                    <small>*</small>
1955                                </label>
1956                                <input type="text" class="empty-filed form-control" id="inputName" name="name"
1957                                       placeholder="Name" data-error="Name is required" required autofocus>
1958                                <div class="help-block with-errors"></div>
1959                            </div>
1960                            <div class="form-group col-sm-4">
1961                                <label for="inputEmail" class="control-label">Email</label>
1962                                <input type="email" class="empty-filed form-control" id="inputEmail" name="email"
1963                                       placeholder="Email">
1964
1965                            </div>
1966                            <div class="form-group col-sm-4">
1967                                <label for="inputPhone" class="control-label">Phone
1968                                    <small>*</small>
1969                                </label>
1970                                <div class="row">
1971                                    <div class="form-group phone col-xs-12">
1972                                        <input type="text" class="empty-filed form-control bfh-phone input-mask"
1973                                               name="phone" id="phone_number" data-country="US"
1974                                               data-format="(ddd) ddd-dddd" data-error="Phone is required" required>
1975                                        <div class="help-block with-errors"></div>
1976                                    </div>
1977                                </div>
1978                            </div>
1979                            <div class="form-group col-xs-12">
1980                                <label for="inputMessage" class="control-label">Message
1981                                    <small>*</small>
1982                                </label> <span id="messageCountdown" class="msg-countdown"></span>
1983                                <textarea class="empty-filed form-control" id="message" name="message" rows=6" cols="30"
1984                                          aria-required="true" data-error="Message is required" maxlength="500" required></textarea>
1985                                <div class="help-block with-errors"></div>
1986                            </div>
1987                            <div class="form-group col-xs-12">
1988                                <div class="g-recaptcha" data-sitekey="6LfcAGMpAAAAAL68qM6-xqbJeELRxV4MPPD71y27" data-action="CONTACT"></div>
1989                                <button type="submit" id="contact-btn"
1990                                        class="contact-btn contact-submit-btn button-rounded button button-large btn-primary">
1991                                    Submit
1992                                </button>
1993                                <img src="https://ik.imagekit.io/0ofixtqpt/143715/preloader-dark.gif" id="contact-loader" class="loader-contact"/>
1994                            </div>
1995                        </form>
1996
1997                        <div class="success-message-alert text-center hidden alert alert-success alert-dismissible col-xs-12">
1998                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
1999                                <span aria-hidden="true">×</span>
2000                            </button>
2001                        </div>
2002                        <div class="error-message-alert text-center hidden alert alert-danger alert-dismissible col-xs-12">
2003                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
2004                                <span aria-hidden="true">×</span>
2005                            </button>
2006                        </div>
2007                    </div>
2008                </div>
2009
2010                                <!-- Google Map
2011                ============================================= -->
2012                <div id="show-map" class="col_half col_last">
2013                    <div id="contact_map" class="place contact-us-map">
2014                        <div class="place contact-us-map">
2015                            <a href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh" target="_blank">
2016                                <iframe
2017                                        class="get-direction-btn"
2018                                        width="450"
2019                                        height="250"
2020                                        frameborder="0"
2021                                        style="border:0;"
2022                                        referrerpolicy="no-referrer-when-downgrade"
2023                                        src="https://www.google.com/maps/embed/v1/search?key=AIzaSyDLf1mqLyRZJJR1-kQfHuPm5gcLyvgMdc8&q=Odyssey+Pets%2C+14999+Preston+Rd%2C+Ste.+400A%2C+Dallas%2C+TX%2C+75254%2C+US">
2024                                </iframe>
2025                            </a>
2026                        </div>
2027                    </div>
2028                </div><!-- Google Map End -->
2029
2030                <div class="clear"></div>
2031
2032
2033                <!-- Contact Info
2034                ============================================= -->
2035                                    
2036                    <div class="row clear-bottommargin">
2037                        <div class="col-md-3 col-sm-6 bottommargin clearfix contact-us-block ct-address" style=display:block;>
2038                            <div class="feature-box fbox-center fbox-bg fbox-plain contact-feature-box">
2039                                <div class="fbox-icon">
2040                                                                            <a target="_blank" href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh"><i
2041                                                    class="contact_icon fas fa-map-marker-alt get-direction-btn"></i></a>
2042                                                                    </div>
2043                                <h3>Visit Us<a target="_blank"
2044                                                                                                     href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh"><span
2045                                                class="subtitle small-text contact-us-block-text get-direction-btn">14999 Preston Rd,  Dallas,  TX&nbsp;75254</span></a>
2046                                </h3>
2047                            </div>
2048                        </div>
2049
2050                        <div class="col-md-3 col-sm-6 bottommargin clearfix contact-us-block ct-number" style=display:block;>
2051                            <div class="feature-box fbox-center fbox-bg fbox-plain contact-feature-box">
2052                                <div class="fbox-icon">
2053                                    <a href="tel:(972) 407-1166"><i
2054                                                class="contact_icon fas fa-phone call-us-btn" style="transform: rotate(90deg) !important;"></i></a>
2055                                </div>
2056                                <h3>Speak to Us<a
2057                                            href="tel:(972) 407-1166"><span
2058                                                class="call-us-btn subtitle small-text contact-us-block-text">(972) 407-1166</span></a>
2059                                </h3>
2060                            </div>
2061                        </div>
2062
2063                        <div class="col-md-3 col-sm-6 bottommargin clearfix contact-us-block ct-fax" style=display:none;>
2064                            <div class="feature-box fbox-center fbox-bg fbox-plain contact-feature-box">
2065                                <div class="fbox-icon">
2066                                    <a href="tel:"><i
2067                                                class="contact_icon fas fa-fax call-us-btn"></i></a>
2068                                </div>
2069                                <h3>Fax Us<a href="tel:"><span
2070                                                class="call-us-btn subtitle small-text contact-us-block-text"></span></a>
2071                                </h3>
2072                            </div>
2073                        </div>
2074
2075                        <div class="col-md-3 col-sm-6 bottommargin clearfix contact-us-block ct-email" style=display:block;>
2076                            <div class="feature-box fbox-center fbox-bg fbox-plain contact-feature-box">
2077                                <div class="fbox-icon">
2078                                    <a href="mailto:[email protected]"><i
2079                                                class="contact_icon fas fa-envelope"></i></a>
2080                                </div>
2081                                <h3>Email Us<a href="mailto:[email protected]"><span
2082                                                class="subtitle small-text contact-us-block-text">[email protected]</span></a>
2083                                </h3>
2084                            </div>
2085                        </div>
2086                        <div class="col-md-3 col-sm-6 bottommargin clearfix contact-us-block ct-sm" style=display:block;>
2087                            <div class="feature-box fbox-center fbox-bg fbox-plain contact-feature-box">
2088                                                                                                                                                                                <div class="fbox-icon">
2089                                                                                                                                                                                                                                                                                                                                                                <a target="_blank" href="https://www.facebook.com/odysseypets
2089/">
2090                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            <i class="contact_icon fab fa-facebook"></i>
2091                                                                                                            </a>
2092                                        </div>
2093                                        <h3>Like us on Facebook
2094                                                                                                                                                                                                                                                                                                                                        <a target="_blank" href="https://www.facebook.com/odysseypets
2094/">
2095                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        <span class="subtitle small-text contact-us-block-text">@odysseypets</span>
2096                                                    </a>
2097                                        </h3>
2098                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </div>
2099                        </div>
2100                    </div><!-- Contact Info End -->
2101                            </div>
2102                        <!--review part-->
2103    <style>
2104        .review-widget-testimonial{
2105            background-color: #ffffff    !important;
2106            overflow-y: auto !important;
2107        }
2108        .review-text-color {
2109            color: #333333    !important;
2110        }
2111
2112        .lazy-background.review-background-parallax {
2113            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2114        }
2115
2116        .lazy-background.review-background-static {
2117            background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2118        }
2119
2120        .review-title-color {
2121            color: #ffffff  !important;
2122        }
2123
2124        .review-description-color {
2125            color: #ffffff  !important;
2126        }
2127
2128        .review-overlay {
2129            background: rgba(0,0,0,0.6)  !important;
2130        }
2131
2132        #home-review-section #recent-reviews .heading-block {
2133            margin-bottom: 10px;
2134        }
2135
2136        @media (min-device-width: 768px) and (orientation: portrait) {
2137            .lazy-background.review-background-parallax {
2138                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2139                background-attachment: scroll !important;
2140            }
2141
2142            .lazy-background.review-background-static {
2143                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2144            }
2145        }
2146
2147        @media (max-device-width: 1024px) and (orientation: landscape) {
2148            .lazy-background.review-background-parallax {
2149                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2150                background-attachment: scroll !important;
2151            }
2152
2153            .lazy-background.review-background-static {
2154                background-image: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg') !important;
2155            }
2156        }
2157
2158        @media (max-width: 765px) and (min-width: 320px) {
2159            .lazy-background.review-background-parallax {
2160                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2161                background-attachment: scroll !important;
2162            }
2163
2164            .lazy-background.review-background-static {
2165                background: url('https://ik.imagekit.io/0ofixtqpt/488602/Dallas-TX.jpg');
2166            }
2167        }
2168    </style>
2169                                <div id="home-review-section"
2170                 class="review-section review-background-parallax lazy-background"
2171                 style="margin: 0px !important;">
2172                                                                                    <div class="review-overlay"></div>
2173                                                                <div id="recent-reviews" class="container topmargin clear-bottommargin clearfix">
2174                                    <div class="row clearfix">
2175                                        <div class="heading-block center ">
2176                                            <h2 class="review-title-color">
2177                                                    WHAT Dallas CUSTOMERS ARE SAYING</h2>
2178                                            <span class="divcenter small-text review-description-color">
2179                                                <p>We love all of our happy customers from local areas near us including <a href="https://www.google.com/maps/dir/Dallas,+TX/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.8617153,-96.9014668,12z/data=!3m1!4b1!4m14!4m13!1m5!1m1!1s0x864c19f77b45974b:0xb9ec9ba4f647678f!2m2!1d-96.7969879!2d32.7766642!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Dallas" target="blank">Dallas</a>,&nbsp;<a href="google.com/maps/dir/Addison/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9561472,-96.8246912,15z/data=!4m14!4m13!1m5!1m1!1s0x864c214a666c3839:0xe6594ab6c798f986!2m2!1d-96.8291685!2d32.96179!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Addison" target="blank">Addison</a>,&nbsp;<a href="https://www.google.com/maps/dir/Richardson/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.7984271,13z/data=!4m14!4m13!1m5!1m1!1s0x864c1ee979bea767:0x2cdb29c046270495!2m2!1d-96.7298519!2d32.9483335!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Richardson" target="blank">Richardson</a>,&nbsp;<a href="https://www.google.com/maps/dir/Plano/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.9034838,11z/data=!4m14!4m13!1m5!1m1!1s0x864c21da13c59513:0x62aa036489cd602b!2m2!1d-96.6988856!2d33.0198431!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Plano" target="blank">Plano</a>,&nbsp;<a href="https://www.google.com/maps/dir/Carrollton/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.9485128,-96.9034838,11z/data=!4m14!4m13!1m5!1m1!1s0x864c212bbbdd571f:0x9c1efd49b3841d5d!2m2!1d-96.8899636!2d32.9756415!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Carrollton" target="blank">Carrollton</a>,&nbsp;<a href="https://www.google.com/maps/dir/Garland/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@32.8577139,-96.9247698,11z/data=!4m14!4m13!1m5!1m1!1s0x864c03c1db5fc275:0x71fbdcb38623cd0!2m2!1d-96.6388833!2d32.912624!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Garland" target="blank">Garland</a>, <a href="https://www.google.com/maps/dir/Frisco,+TX/Odyssey+Pets,+14999+Preston+Rd+%23400a,+Dallas,+TX+75254/@33.0518195,-96.953042,11z/data=!4m14!4m13!1m5!1m1!1s0x864c3c1abc09943d:0xcad371b035c8fea2!2m2!1d-96.8236116!2d33.1506744!1m5!1m1!1s0x864c23d0d0136c61:0x48d61510e37a3e25!2m2!1d-96.8059163!2d32.9530094!3e0" title="Get Directions From Frisco" target="blank">Frisco</a>, and more!&nbsp;</p>                                            </span>
2180                                        </div>
2181                                                                                    <div class="center small-text review-description-color" style="font-weight: bold; clear: both; margin: 2px 0 15px;">388 trusted five-star reviews</div>
2182                                                                                                                            <div id="oc-testi"
2183                                             class="owl-carousel testimonials-carousel carousel-widget bottommargin "
2184                                             data-margin="20" data-items-xs="1" data-items-sm="2" data-items-lg="3">
2185                                                                                            <div class="oc-item ">
2186                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2187                                                        <div class="col-xs-4">
2188                                                            <div class="testi-image">
2189                                                                <a>
2190                                                                                                                                            <img class="lazy"
2191                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2192                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5286778/tr:n-reviewer_image_thumb/ACg8ocKwy2ahBoJOqXdKUyOvDhiUTiHnbDraameFyMm7KwkveAtK2Q=s120-c-rp-mo-br100"
2193                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2194                                                                                                                                    </a>
2195                                                                <div class="testi-meta review-text-color nobold">
2196                                                                    T Wilson
2197                                                                </div>
2198                                                                <div class="center rv_time review-text-color">
2199                                                                    2026-09-04
2200                                                                </div>
2201                                                            </div>
2202                                                        </div>
2203                                                        <div class="col-xs-8">
2204                                                            <div class="testi-content">
2205                                                                                                                                    <i class="fab fa-google social"></i>
2206                                                                                                                                                                                                <sp
2206an class="stars s-5.0">
2207                                                                    <span class='new-star' style="width: 100%;"></span>
2208                                                                </span>
2209                                                                                                                                    <div class="r_more">
2210                                                                        <p class="small-text-color review-text-color review-fulltext-0 hidden-teamtext">Amazing little pet store. I’m one of those psycho pet owners and I worked in Vet hospitals when I was younger so have higher standards and would trust my dog baby with thier staff. I’m mostly in there for DFWAPC meetings as I don’t live close so mostly get the pleasure of harrassing Miles and enjoying their fish and plant department but every staff member has a true love for animals is knowledgable, helpful, courteous and not afraid to say idk and ask another employee (one of my biggest pet peeves when people fake knowledge)</p>
2211                                                                        <p class="review-lesstext-0 review-text-color small-text-color"></p>
2212                                                                        <p class="review-moretext-0 review-text-color small-text-color"></p>
2213                                                                    </div>
2214                                                                                                                            </div>
2215                                                        </div>
2216                                                    </div>
2217                                                </div>
2218                                                                                                                                                <div class="oc-item ">
2219                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2220                                                        <div class="col-xs-4">
2221                                                            <div class="testi-image">
2222                                                                <a>
2223                                                                                                                                            <img class="lazy"
2224                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2225                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5271643/tr:n-reviewer_image_thumb/ALV-UjXaIu6HiBgwsQA5bCtsXlWozJBl17XBXvIcVXIq5Xjd6UuMejVVrg=s120-c-rp-mo-ba12-br100"
2226                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2227                                                                                                                                    </a>
2228                                                                <div class="testi-meta review-text-color nobold">
2229                                                                    Michael Said
2230                                                                </div>
2231                                                                <div class="center rv_time review-text-color">
2232                                                                    2026-08-28
2233                                                                </div>
2234                                                            </div>
2235                                                        </div>
2236                                                        <div class="col-xs-8">
2237                                                            <div class="testi-content">
2238                                                                                                                                    <i class="fab fa-google social"></i>
2239                                                                                                                                                                                                <sp
2239an class="stars s-5.0">
2240                                                                    <span class='new-star' style="width: 100%;"></span>
2241                                                                </span>
2242                                                                                                                                    <div class="r_more">
2243                                                                        <p class="small-text-color review-text-color review-fulltext-1 hidden-teamtext">Great products. Great service. Very knowledgeable employees! This place is especially great for fish, if you&#039;re interested in that. I highly recommend Odyssey pets!</p>
2244                                                                        <p class="review-lesstext-1 review-text-color small-text-color"></p>
2245                                                                        <p class="review-moretext-1 review-text-color small-text-color"></p>
2246                                                                    </div>
2247                                                                                                                            </div>
2248                                                        </div>
2249                                                    </div>
2250                                                </div>
2251                                                                                                                                                <div class="oc-item ">
2252                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2253                                                        <div class="col-xs-4">
2254                                                            <div class="testi-image">
2255                                                                <a>
2256                                                                                                                                            <img class="lazy"
2257                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2258                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5210113/tr:n-reviewer_image_thumb/ALV-UjWpaLx_SutWTkk-FNvbMW8S19jbBDoGokOsxlWm2AgM81Xq5DXAxw=s120-c-rp-mo-br100"
2259                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2260                                                                                                                                    </a>
2261                                                                <div class="testi-meta review-text-color nobold">
2262                                                                    Shel Mulry
2263                                                                </div>
2264                                                                <div class="center rv_time review-text-color">
2265                                                                    2026-08-01
2266                                                                </div>
2267                                                            </div>
2268                                                        </div>
2269                                                        <div class="col-xs-8">
2270                                                            <div class="testi-content">
2271                                                                                                                                    <i class="fab fa-google social"></i>
2272                                                                                                                                                                                                <span class="stars s-5.0">
2273                                                                    <span class='new-star' style="width: 100%;"></span>
2274                                                                </span>
2275                                                                                                                                    <div class="r_more">
2276                                                                        <p class="small-text-color review-text-color review-fulltext-2 hidden-teamtext">The best by far! People who are knowledgeable, approachable. They carry only transparent, healthy brands of dog and cat food. Great aquarium resource as well. Support a locally owned small business! Odyssey Pets is the best!</p>
2277                                                                        <p class="review-lesstext-2 review-text-color small-text-color"></p>
2278                                                                        <p class="review-moretext-2 review-text-color small-text-color"></p>
2279                                                                    </div>
2280                                                                                                                            </div>
2281                                                        </div>
2282                                                    </div>
2283                                                </div>
2284                                                                                                                                                <div class="oc-item ">
2285                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2286                                                        <div class="col-xs-4">
2287                                                            <div class="testi-image">
2288                                                                <a>
2289                                                                                                                                            <img class="lazy"
2290                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2291                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5211493/tr:n-reviewer_image_thumb/ACg8ocKn0K7T4bwpFOA6DhZqAumUPrxBfjRshyKggU5COyyojF8XNw=s120-c-rp-mo-br100"
2292                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2293                                                                                                                                    </a>
2294                                                                <div class="testi-meta review-text-color nobold">
2295                                                                    Bob “USMCVet1985”
2296                                                                </div>
2297                                                                <div class="center rv_time review-text-color">
2298                                                                    2026-08-01
2299                                                                </div>
2300                                                            </div>
2301                                                        </div>
2302                                                        <div class="col-xs-8">
2303                                                            <div class="testi-content">
2304                                                                                                                                    <i class="fab fa-google social"></i>
2305                                                                                                                                                                                                <sp
2305an class="stars s-5.0">
2306                                                                    <span class='new-star' style="width: 100%;"></span>
2307                                                                </span>
2308                                                                                                                                    <div class="r_more">
2309                                                                        <p class="small-text-color review-text-color review-fulltext-3 hidden-teamtext">Been going there for 15 years because the groomers are kind and gentle to my 2 boys Ollie and Dickens. Great staff and clean boarding area. Highly recommend.</p>
2310                                                                        <p class="review-lesstext-3 review-text-color small-text-color"></p>
2311                                                                        <p class="review-moretext-3 review-text-color small-text-color"></p>
2312                                                                    </div>
2313                                                                                                                            </div>
2314                                                        </div>
2315                                                    </div>
2316                                                </div>
2317                                                                                                                                                <div class="oc-item ">
2318                                                    <div class="testimonial bottommargin-sm review-widget-testimonial">
2319                                                        <div class="col-xs-4">
2320                                                            <div class="testi-image">
2321                                                                <a>
2322                                                                                                                                            <img class="lazy"
2323                                                                             src="https://ik.imagekit.io/0ofixtqpt/143729/tr:n-reviewer_image_thumb/default-placeholder.png"
2324                                                                             data-src="https://ik.imagekit.io/0ofixtqpt/5188183/tr:n-reviewer_image_thumb/ALV-UjVhlm2GQW13y2OmLNqaEgFKUKODfMH2ZPeVganganGua8qIYs8=s120-c-rp-mo-ba12-br100"
2325                                                                             onError="this.onerror=null;this.src='https://ik.imagekit.io/0ofixtqpt/147554/tr:n-reviewer_image_thumb/avatar.jpg';">
2326                                                                                                                                    </a>
2327                                                                <div class="testi-meta review-text-color nobold">
2328                                                                    MamaKimbo75
2329                                                                </div>
2330                                                                <div class="center rv_time review-text-color">
2331                                                                    2026-07-24
2332                                                                </div>
2333                                                            </div>
2334                                                        </div>
2335                                                        <div class="col-xs-8">
2336                                                            <div class="testi-content">
2337                                                                                                                                    <i class="fab fa-google social"></i>
2338                                                                                                                                                                                                <span class="stars s-5.0">
2339                                                                    <span class='new-star' style="width: 100%;"></span>
2340                                                                </span>
2341                                                                                                                                    <div class="r_more">
2342                                                                        <p class="small-text-color review-text-color review-fulltext-4 hidden-teamtext">I purchased my Rummy Nose Tetras from Odyssey Pets. I stopped in, they only had a couple. Gentlemen gave me Miles card and told me to email him. Miles w
2342as great! He ordered me 20 Rummy Nose Tetras and I picked them up a week later. Video attached is after having them for 2 weeks. They are all healthy, happy, schooling and a  beautiful addition to my 75 gallon. Thank you Miles and everyone at Odyssey Pets. This was my 1st purchase, but definitely not my last! ❤️</p>
2343                                                                        <p class="review-lesstext-4 review-text-color small-text-color"></p>
2344                                                                        <p class="review-moretext-4 review-text-color small-text-color"></p>
2345                                                                    </div>
2346                                                                                                                            </div>
2347                                                        </div>
2348                                                    </div>
2349                                                </div>
2350                                                                                                                                        </div>
2351
2352                                        <div class="col-xs-12 center bottommargin">
2353                                                                                            <a href="/reviews/"
2354                                                   class="button button-large contact-btn button-rounded noleftmargin">View
2355                                                    All
2356                                                    Reviews </a>
2357                                                                                                                                        <a target="_blank"
2358                                                   href="https://app.nextpaw.com/write-review/7MVdXlwfKtHJGidH"
2359                                                   class="button button-large contact-btn button-rounded noleftmargin">Write
2360                                                    A Review </a>
2361                                                                                    </div>
2362                                    </div>
2363                                </div>
2364                                                            </div>
2365                                
2365<script>
2366    function toggleReviewContent(i) {
2367        $(".review-moretext-" + i).toggle();
2368        $(".review-lesstext-" + i).toggle();
2369    }
2370    $(document).ready(function () {
2371        var r_showChar = 100;
2372        var r_ellipsestext = "...";
2373        var r_moretext = "Show More";
2374        var r_lesstext = "Show Less";
2375        var i = 0;
2376        $('.r_more').each(function () {
2377            var r_content = $('.review-fulltext-' + i).html();
2378            var r_readless = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_lesstext + '</a>';
2379            $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content + r_readless).hide();
2380            if (r_content.length > r_showChar) {
2381                var r_c = r_content.substr(0, r_showChar);
2382                var r_readmore = '<a class="morelink' + i + ' review-a" onclick="toggleReviewContent(' + i + ')"> ' + r_moretext + '</a>';
2383                $('p.review-lesstext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_c + r_ellipsestext + ' ' + r_readmore);
2384            }else{
2385                $('p.review-moretext-' + i).html('<i class="fas fa-quote-left fa-2x"></i>'+r_content).show();
2386            }
2387            i++;
2388        });
2389    });
2390</script>
2390
2391<!--review part end--->
2392                    </div>
2393        
2394        <a href="/contact-us"
2395       class="button button-full cta-widget-btn center">
2396        <div class="container clearfix">
2397            Come visit our pet supply store in Dallas, TX specializing in quality food, treats, and supplies for cats, dogs, fish, and small pets.
2398        </div>
2399    </a>
2400        <style>
2401            .contact-us-map iframe{
2402                min-height: 400px!important;
2403                max-height: 100% !important;
2404                min-width: 100%;
2405                max-width: 100%;
2406            }
2407            @media(max-width: 750px) and (min-width:320px){
2408                .contact-us-map iframe{
2409                    max-width: 100% !important;
2410                    max-height: 100% !important;
2411
2412                }
2413                .postcontent, .postcontent.bothsidebar, .sidebar, .col_full, .col_half, .col_one_third, .col_two_third, .col_three_fourth, .col_one_fourth, .col_one_fifth, .col_two_fifth, .col_three_fifth, .col_four_fifth, .col_one_sixth, .col_five_sixth{
2414                    margin-bottom: 200px !important;
2415                }
2416            }
2417        </style>
2418    </section>
2419    
2419<script>
2420        $(document).ready(function () {
2421            $('#messageCountdown').hide();
2422            $('#message').on("keyup change", function () {
2423                const max = 500;
2424                const len = $(this).val().length;
2425                const char = max - len;
2426                if(len>150){
2427                    $('#messageCountdown').show().text(char + ' characters remaining');
2428                }else{
2429                    $('#messageCountdown').hide();
2430                }
2431                if(len===max){
2432                    $('#messageCountdown').addClass('text-danger');
2433                }else{
2434                    $('#messageCountdown').removeClass('text-danger');
2435                }
2436            });
2437        });
2438    </script>
2438
2439</div>
2440<!-- Footer
2441============================================= -->
2442
2443<footer id="footer" class="dark">
2444            <div class="container">
2445            <!-- Footer Widgets
2446            ============================================= -->
2447            <div class="footer-widgets-wrap clearfix">
2448                <div class="col-xs-12 col-sm-6 col-md-4">
2449                    <div class="widget clearfix">
2450                        <div class="clearfix">
2451                            <div class="col-md-12">
2452                                <address class="nobottommargin">
2453                                    <a target="_blank"
2454                                       href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh">
2455                                        <h4 class="get-direction-btn"
2456                                            id="map-title">Odyssey Pets</h4></a>
2457                                    14999 Preston Rd, Ste. 400A
2458                                    <br/>                                    Dallas, TX&nbsp&nbsp75254<br>
2459                                    <a class="call-us-btn"
2460                                       href="tel:(972) 407-1166"><abbr
2461                                                title="Phone Number"></abbr>(972) 407-1166
2462                                    </a><br>
2463                                    <a href="mailto:[email protected]" class="footer_email"><abbr
2464                                                title="Email"></abbr>[email protected]</a>
2465                                                                            <div class="shopservices">
2466                                            In-Store Pickup, Curbside Pickup, Local Delivery, Same Day Delivery, No Contact Delivery Available
2467                                        </div>
2468                                                                    </address>
2469                                <!-- Google Map
2470               ============================================= -->
2471                                <div id="map-conatiner" style="">
2472                                    <div id="show-map" class="col_half col_last">
2473                                        <div id="contact_map" class="place contact-us-map">
2474                                            <div class="place footer-map"><a href="https://www.google.com/maps/place/search?q=Odyssey+Pets+14999+Preston+Rd+400a+Dallas+TX+75254&amp;place_id=Ei0xNDk5OSBQcmVzdG9uIFJkICM0MDBhLCBEYWxsYXMsIFRYIDc1MjMwLCBVU0EiIBoeChYKFAoSCdEwMgOdIEyGEaZscOUlIzzlEgQ0MDBh" target="_blank">
2475                                                    <iframe
2476                                                            class="get-direction-btn"
2477                                                            frameborder="0"
2478                                                            style="border:0;"
2479                                                            referrerpolicy="no-referrer-when-downgrade"
2480                                                            src="https://www.google.com/maps/embed/v1/search?key=AIzaSyDLf1mqLyRZJJR1-kQfHuPm5gcLyvgMdc8&q=Odyssey+Pets%2C+14999+Preston+Rd%2C+Ste.+400A%2C+Dallas%2C+TX%2C+75254%2C+US">
2481                                                    </iframe>
2482                                                </a>
2483                                            </div>
2484                                        </div>
2485                                    </div>
2486                                </div>
2487                                <!-- Google Map End -->
2488                            </div>
2489                        </div>
2490                    </div>
2491                </div>
2492                <div class="col-xs-12 col-sm-6 col-md-8">
2493                    <div class="col-xs-12 col-md-5">
2494                        <div class="widget widget_links clearfix">
2495                            <div class="bottommargin-sm">
2496                                <h4 class="nomargin footer-hours-title">Business Hours</h4>
2497                                                                                            </div>
2498
2499                            <table class="table" style="text-align: center;">
2500                                <tbody>
2501                                                                                                        
2502                                                                            <tr>
2503                                            <td style="font-size: 14px; vertical-align: middle;">Mon</td>
2504                                            <td style="font-size: 14px;">
2505                                                                                                                                                        7:30 AM - 7:00 PM
2506                                                                                            </td>
2507                                        </tr>
2508                                                                            <tr>
2509                                            <td style="font-size: 14px; vertical-align: middle;">Tue</td>
2510                                            <td style="font-size: 14px;">
2511                                                                                                                                                        7:30 AM - 7:00 PM
2512                                                                                            </td>
2513                                        </tr>
2514                                                                            <tr>
2515                                            <td style="font-size: 14px; vertical-align: middle;">Wed</td>
2516                                            <td style="font-size: 14px;">
2517                                                                                                                                                        7:30 AM - 7:00 PM
2518                                                                                            </td>
2519                                        </tr>
2520                                                                            <tr>
2521                                            <td style="font-size: 14px; vertical-align: middle;">Thu</td>
2522                                            <td style="font-size: 14px;">
2523                                                                                                                                                        7:30 AM - 7:00 PM
2524                                                                                            </td>
2525                                        </tr>
2526                                                                            <tr>
2527                                            <td style="font-size: 14px; vertical-align: middle;">Fri</td>
2528                                            <td style="font-size: 14px;">
2529                                                                                                                                                        7:30 AM - 7:00 PM
2530                                                                                            </td>
2531                                        </tr>
2532                                                                            <tr>
2533                                            <td style="font-size: 14px; vertical-align: middle;">Sat</td>
2534                                            <td style="font-size: 14px;">
2535                                                                                                                                                        7:30 AM - 7:00 PM
2536                                                                                            </td>
2537                                        </tr>
2538                                                                            <tr>
2539                                            <td style="font-size: 14px; vertical-align: middle;">Sun</td>
2540                                            <td style="font-size: 14px;">
2541                                                                                                                                                        11:00 AM - 6:00 PM
2542                                                                                            </td>
2543                                        </tr>
2544                                    
2545                                                                </tbody>
2546                            </table>
2547
2548                        </div>
2549                    </div>
2550                    <div class="col-xs-12 col-md-3">
2551                        <div class="widget widget_links clearfix">
2552                            <h4>Sitemap</h4>
2553                            <ul>
2554                                                                                                                                            <li>
2555                                                                                            <a href="https://shop.odysseypets.com/" target=_blank>
2556                                                    <div class="footer-sitemap-text">Shop</div>
2557                                                </a>
2558                                                                                    </li>
2559                                                                                                                                                                                    <li>
2560                                                                                            <a href="/pet-food-supply/" >
2561                                                    <div class="footer-sitemap-text">Cat &amp;
2561 Dog</div>
2562                                                </a>
2563                                                                                    </li>
2564                                                                                                                                                                                    <li>
2565                                                                                            <a href="/fish-food-supply/" >
2566                                                    <div class="footer-sitemap-text">Fish</div>
2567                                                </a>
2568                                                                                    </li>
2569                                                                                                                                                                                    <li>
2570                                                                                            <a href="/small-pet-food-supply/" >
2571                                                    <div class="footer-sitemap-text">Small Pets</div>
2572                                                </a>
2573                                                                                    </li>
2574                                                                                                                                                                                    <li>
2575                                                                                            <a href="/services/" >
2576                                                    <div class="footer-sitemap-text">Services</div>
2577                                                </a>
2578                                                                                    </li>
2579                                                                                                                                                                                    <li>
2580                                                                                            <a href="/events/" >
2581                                                    <div class="footer-sitemap-text">Events &amp; Deals</div>
2582                                                </a>
2583                                                                                    </li>
2584                                                                                                                                                                                    <li>
2585                                                                                            <a href="/loyalty-program/" >
2586                                                    <div class="footer-sitemap-text">Loyalty Program</div>
2587                                                </a>
2588                                                                                    </li>
2589                                                                                                                                                                                    <li>
2590                                                                                            <a href="/about-us/" >
2591                                                    <div class="footer-sitemap-text">About</div>
2592                                                </a>
2593                                                                                    </li>
2594                                                                                                                                                                                    <li>
2595                                                                                            <a href="/blog/" >
2596                                                    <div class="footer-sitemap-text">Blog</div>
2597                                                </a>
2598                                                                                    </li>
2599                                                                                                                                                                            <li>
2600                                        <a href="/sitemap/">
2601                                            <div class="footer-sitemap-text">Sitemap</div>
2602                                        </a>
2603                                    </li>
2604                                                            </ul>
2605                        </div>
2606                    </div>
2607                    <div class="col-xs-12 col-md-4">
2608                        <div class="widget quick-contact-widget clearfix">
2609                            <h4>Subscribe</h4>
2610                            <div class="input-group divcenter">
2611                                Get exclusive email offers, promotions, and updates from our business.
2612                            </div>
2613                            <div class="quick-contact-form-result"></div>
2614                            <form class="quick-contact-form nobottommargin subscription-form"
2615                                  name="subscription-form" role="form" enctype="multipart/form-data" method="POST"
2616                                  action="https://odysseypets.com/subscription/save" onsubmit="return false" novalidate>
2617                                <input type="hidden" id="locationId" name="location_id" value="283">
2618                                <input type="hidden" id="clientId" name="client_id" value="222">
2619                                <input type="hidden" name="result" value="footer-result">
2620                                <div class="form-process"></div>
2621                                <div class="input-group divcenter">
2622                                    <span class="input-group-addon"><i class="fas fa-user"></i></span>
2623                                    <input type="text" maxlength="25" class="required form-control input-block-level subscription_name" id="name"
2624                                           name="name" value="" placeholder="Name" required/>
2625                                </div>
2626                                <div class="input-group divcenter">
2627                                    <span class="input-group-addon"><i class="fas fa-envelope"></i></span>
2628                                    <input type="email" class="required form-control email input-block-level" id="email"
2629                                           name="email" value="" placeholder="Email Address" required/>
2630                                </div>
2631                                <div class="g-recaptcha" style="transform: scale(0.5);-webkit-transform: scale(0.7);transform-origin: 0 0;-webkit-transform-origin: 0 0;" data-sitekey="6LfcAGMpAAAAAL68qM6-xqbJeELRxV4MPPD71y27" data-action="NEWSLETTER"></div>
2632                                <button name="submit" type="submit" id="submit-button" tabindex="5" value="Submit"
2633                                        class="button button-large button-rounded btn-success subscribe-btn noleftmargin">
2634                                    Sign Up
2635                                </button>
2636                                <span class="loader"><img src='https://ik.imagekit.io/0ofixtqpt/143716/preloader-dark.gif'/>Sending ..</span>
2637                                <div class="result"></div>
2638                            </form>
2639                        </div>
2640                    </div>
2641                </div>
2642                            </div><!-- .footer-widgets-wrap end -->
2643        </div>
2644<!-- Copyrights
2645============================================= -->
2646    <div id="copyrights">
2647        <div class="container clearfix">
2648            <input type="hidden" id="location" name="location" value="">
2649                        <div class="col-xs-12 col-md-8 footer-copyright">
2650                Copyrights &copy; 2026                                    | <a href="/privacy-policy">Privacy Policy</a>
2651                                                    | <a href="/terms-of-services">Terms of Service</a>
2652                                                | Powered by
2653                <a target="_blank" href="https://www.nextpaw.com">
2654                    <img class="powered-by" src="https://ik.imagekit.io/0ofixtqpt/143712/nextpaw.png" width="70px">
2655                </a>
2656                <br>
2657            </div>
2658            <div class="col-xs-12 col-md-4 tright">
2659                <div class="fright clearfix">
2660                                                                                                        
2661                                
2662                                
2663                                                                    <a href="https://maps.app.goo.gl/z1HrjJj2QTakFJPw7" target="_blank"
2664                                       class="social-icon si-small si-borderless si-gplus">
2665                                        <i class="fab fa-google-plus footer-custom-icon"></i>
2666                                    </a>
2667                                
2668                                
2669                                
2670                                
2671                                
2672                                
2673                                                                                                                                                
2674                                
2675                                
2676                                
2677                                                                    <a href="https://www.youtube.com/@OdysseyPets" target="_blank"
2678                                       class="social-icon si-small si-borderless si-youtube">
2679                                        <i class="fab fa-youtube"></i>
2680                                    </a>
2681                                
2682                                
2683                                
2684                                
2685                                
2686                                                                                                                                                                                    <a href="https://www.facebook.com/odysseypets
2686/" target="_blank"
2687                                       class="social-icon si-small si-borderless si-facebook">
2688                                        <i class="fab fa-facebook"></i>
2689                                    </a>
2690                                
2691                                
2692                                
2693                                
2694                                
2695                                
2696                                
2697                                
2698                                
2699                                                                                                                                                                                                                                                        
2700                                
2701                                
2702                                
2703                                
2704                                
2705                                
2706                                
2707                                
2708                                                                                                                                                                                                    
2709                                                                    <a href="https://www.instagram.com/odysseypets
2709/" target="_blank"
2710                                       class="social-icon si-small si-borderless si-instagram">
2711                                        <i class="fab fa-instagram"></i>
2712                                    </a>
2713                                
2714                                
2715                                
2716                                
2717                                
2718                                
2719                                
2720                                
2721                                                                                                                                                                                                                                </div>
2722                <div class="clear"></div>
2723            </div>
2724        </div><!-- #copyrights end -->
2725    </div>
2726    <!--Modal: modalCookie-->
2727    <div class="modal fade top" id="modalCookie1" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
2728         aria-hidden="true" data-backdrop="false">
2729        <div class="modal-dialog modal-frame modal-top modal-notify modal-info modal_cookie" role="document">
2730            <!--Content-->
2731            <div class="modal-content">
2732                <!--Body-->
2733                <div class="modal-body cookie_bg">
2734                    <div class="container d-flex justify-content-center align-items-center">
2735                        <div class="col-md-6">
2736                            <p class="text-center loc_msg"></p>
2737                        </div>
2738                        <div class="col-md-6 col-xs-12">
2739                            <a type="button" class="btn btn-lg btn-primary cookie_btn" data-value="NO"
2740                               data-dismiss="modal">No, Thanks</a>
2741                            <a type="button" id="redirect_location" data-slug="" href="" data-value="YES"
2742                               class="btn cookie_btn btn-lg btn-outline-primary waves-effect">Change Location</a>
2743                        </div>
2744                    </div>
2745                </div>
2746            </div>
2747            <!--/.Content-->
2748        </div>
2749    </div>
2750    <style>
2751        .footer-map iframe{
2752            min-width: 300px !important;
2753            max-width: 300px !important;
2754            min-height: 300px !important;
2755            max-height: 300px !important;
2756        }
2757        @media(max-width: 720px) and (min-width:320px){
2758            .footer-map iframe{
2759
2760                max-width: 100% !important;
2761
2762                max-height: 100% !important;
2763            }
2764        }
2765
2766        /*CSS for tiny MCE editor custom class*/
2767        .mce-figcaption-custom {
2768            font-size: 14px;
2769            margin-top: 5px;
2770            font-style: italic;
2771            text-align: center;
2772        }
2773
2774        .mce-figure-custom {
2775            margin-bottom: 10px;
2776        }
2777
2778        .mce-figure-align-left-custom {
2779            float: left;
2780            margin-right: 25px;
2781        }
2782
2783        .mce-figure-align-right-custom {
2784            float: right;
2785            margin-left: 25px;
2786        }
2787
2788        .mce-figure-align-center-custom {
2789            text-align: center;
2790        }
2791
2792        .mce-image-align-left-custom {
2793            margin-right: 25px;
2794            margin-bottom: 10px;
2795        }
2796
2797        .mce-image-align-right-custom {
2798            margin-left: 25px;
2799            margin-bottom: 10px;
2800        }
2801
2802        .mce-image-align-center-custom {
2803            margin-bottom: 10px;
2804        }
2805
2806        .first-widget .divider.divider-border.divider-center {
2807            display: none !important;
2808        }
2809        </style>
2810</footer>
2811<script>
2812    // Get all anchor tags (<a>) on the page
2813const links = document.querySelectorAll('a');
2814
2815// Loop through each link
2816links.forEach(link => {
2817  // Get the href attribute of the link
2818  let href = link.getAttribute('href');
2819  
2820  // Check if the href exists
2821  if (href) {
2822    // If the href is a relative path (starts with '/'), do nothing
2823    if (href.startsWith('/')) {
2824      return;
2825    }
2826
2827    // Check if the href starts with 'http://' or contains 'www' (indicating a non-secure URL)
2828    if (href.startsWith('http://') || href.startsWith('www')) {
2829        link.setAttribute('href', 'https://' + href.replace(/^http:\/\//, '').replace('www.', ''));
2830    }
2831  }
2832});
2833
2834
2835</script>
2835<!-- Return to Top -->
2836    <div id="gotoTop" class="fas fa-arrow-up"></div>
2837<!-- External JavaScripts
2838============================================= -->
2839<!-- Footer Scripts
2840============================================= -->
2841
2842
2843
2844
2845<script defer type="text/javascript">
2846    var headquarterName = "dallas";
2847    var currentLocName = "dallas";
2848    var pageType = "other";
2849</script>
2849
2850
2851<script defer type="text/javascript">
2852    function animateCSS(element, animationName, callback) {
2853        const node = document.querySelector(element)
2854        node.classList.add('animated', animationName)
2855
2856        function handleAnimationEnd() {
2857            node.classList.remove('animated', animationName)
2858            node.removeEventListener('animationend', handleAnimationEnd)
2859
2860            if (typeof callback === 'function') callback()
2861        }
2862
2863        node.addEventListener('animationend', handleAnimationEnd)
2864    }
2865
2866    let closePopup = localStorage.getItem('closeBox');
2867    // lazy load video for apple browser
2868    $(document).ready(function () {
2869        // add frame to video tag for ios devices
2870        const videos = document.querySelectorAll('video');
2871        if(videos.length > 0) {
2872            for (video of videos) { // use var video if "strict mode" is enabled
2873                Object.entries(video.children).forEach(([key, value]) => {
2874                    var newSrc = value.src + '#t=0.1';
2875                    video.children[key].src = newSrc;
2876                    video.setAttribute('playsinline','true');
2877                    video.load();
2878                });
2879            }
2880        }
2881
2882        setInterval(function(){
2883            if($('iframe#ec-credit-card-form').length > 0) {
2884                var url = $('iframe#ec-credit-card-form').attr('src');
2885                var dec = decodeURIComponent(url);
2886                function getParameterByName(name, url) {
2887                    name = name.replace(/[\[\]]/g, '\\$&');
2888                    var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
2889                        results = regex.exec(url);
2890                    if (!results) return null;
2891                    if (!results[2]) return '';
2892                    return decodeURIComponent(results[2].replace(/\+/g, ' '));
2893                }
2894                var color = getParameterByName('color-foreground',dec);
2895                if(color.toString() !== 'rgb(0, 0, 0)') {
2896                    var newColor = 'rgb(0, 0, 0)';
2897                    var newUrl = dec.replace(/(color-foreground=).*?(&)/, '$1' + newColor + '$2');
2898                    var newUrl = newUrl.replace(/(color-price=).*?(&)/, '$1' + newColor + '$2');
2899                    var urlEnc = encodeURI(newUrl);
2900                    $('iframe#ec-credit-card-form').attr('src', urlEnc);
2901                }
2902            }
2903        }, 1000);
2904        if($('.floating_chat').length < 1){
2905            $('body').addClass('fbRight');
2906        }
2907        if($('.fb-customerchat').length < 1){
2908            $('body').addClass('noFb');
2909        }
2910
2911        if(closePopup == 'hide'){
2912            $(".bubbleText").hide();
2913        }
2914
2915        $(document).on('click', function (event) {
2916            if (!$(event.target).closest('.msg_box').length) {
2917                if(!$(event.target).closest('.floating_chat').length){
2918                    if($('.floating_chat').hasClass('closeBox') == true){
2919                        $('.sendBtn').show();
2920                        $('.supportTxt').show();
2921                        $('#formData').show();
2922                        $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
2923                        $('.floating_chat').find('>i').removeClass('fa-times').addClass('fa-weixin');
2924                        $('.floating_chat').addClass('openBox');
2925                        $('.msg_box').removeClass('enter');
2926                        animateCSS('.msg_box', 'fadeOutRight');
2927                        $('.floating_chat').removeClass('closeBox');
2928                        $('.bubbleText').show();
2929                    }
2930                }
2931            }
2932        });
2933        setTimeout(function() {
2934            $('.floating_chat').addClass('enter');
2935        }, 1000);
2936        $('.openBox').click(function () {
2937            if($(this).hasClass('closeBox')){
2938                $('.sendBtn').show();
2939                $('.supportTxt').show();
2940                $('.msg_box').removeClass('enter').css({'z-index': 0,'right':'-500px'});
2941                $(this).find('>i').removeClass('fa-times').addClass('fa-weixin');
2942                $(this).addClass('openBox');
2943                $('.msg_box').removeClass('enter');
2944                animateCSS('.msg_box', 'fadeOutRight');
2945                $(this).removeClass('closeBox');
2946                $('.bubbleText').show();
2947            } else {
2948                $('#formData').show();
2949                $('.msg_box').addClass('enter').css({'z-index':999,'right' : 0});
2950                $(this).find('>i').removeClass('fa-weixin').addClass('fa-times');
2951                $(this).addClass('closeBox');
2952                animateCSS('.msg_box', 'fadeInRight');
2953                $(this).removeClass('openBox');
2954                $('form input[type="text"].bfh-phone, form input[type="tel"].bfh-phone, span.bfh-phone').each(function () {
2955                    var $phone = $(this);
2956                    $phone.bfhphone($phone.data());
2957                });
2958                $('.bubbleText').hide();
2959                $('.SubmittedMessage__SendStatus').hide();
2960                $('.ConfirmationMessage').hide();
2961                $('.SubmittedMessage').removeClass('SubmittedMessage--visible');
2962            }
2963        });
2964
2965        $('#boxclose').click(function () {
2966            $(".bubbleText").fadeOut("normal", function() {
2967                $(this).remove();
2968                localStorage.setItem('closeBox', 'hide');
2969            });
2970        });
2971
2972        $(document).on('touchstart','li.sub-menu', function () {
2973            if(navigator.userAgent.match(/(iPhone|iPod|iPad)/i)){
2974                var count = $(this).attr('click-count');
2975                if(count !== undefined){
2976                    location.href = $(this).children('a').attr('href');
2977                } else{
2978                    if($(this).hasClass('click-class')){
2979                        $(this).attr('click-count',undefined);
2980                    }else{
2981                        $(this).attr('click-count',1);
2982                    }
2983                }
2984            }
2985        });
2986        // remove submenu css if empty
2987        $('li.sub-menu').each(function () {
2988            if($(this).children('ul').children().length === 0){
2989                $(this).children('ul').remove();
2990            }
2991        });
2992
2993        $("video.fullscreen-bg__video source").each(function () {
2994            var sourceFile = $(this).attr("data-src");
2995            $(this).attr("src", sourceFile);
2996            var video = this.parentElement;
2997        });
2998
2999        $('.mySlides').each(function () {
3000            var imgUrl = $(this).children().attr('src');
3001            $(this).children().css('opacity', 0);
3002            $(this).css('background', 'url("' + imgUrl + '")');
3003        });
3004
3005        var myIndex = 0;
3006        if ($(".page-slider-container")[0]) {
3007            carousel();
3008        }
3009
3010        function carousel() {
3011            var i;
3012            var x = document.getElementsByClassName("mySlides");
3013            for (i = 0; i < x.length; i++) {
3014                x[i].style.display = "none";
3015            }
3016            myIndex++;
3017            if (myIndex > x.length) {
3018                myIndex = 1
3019            }
3020            x[myIndex - 1].style.display = "block";
3021            setTimeout(carousel, 2000); // Change image every 2 seconds
3022        }
3023
3024        if ($(".review-background-static").length) {
3025            $('.location-divider').hide();
3026        }
3027        if ($(".review-background-parallax").length) {
3028            $('.location-divider').hide();
3029        }
3030
3031        $('.social_share').each(function () {
3032            $(this).attr('target', '_blank');
3033        });
3034
3035        var font_family = $('body').css('font-family');
3036        var r_font_family = font_family.replace(/\"/g, "");
3037        if (r_font_family == "PT Sans Narrow") {
3038            $("#top-social .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3039        } else if (r_font_family == "Roboto") {
3040            $("#top-social .si-gplus .ts-text").attr('style', 'top: 0px !important;' + 'left:0px !important;' + 'margin-left:-7px !important');
3041            $("#top-social .si-youtube .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3042            $("#top-social .si-linkedin .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3043            $("#top-social .si-yelp .ts-text").attr('style', 'top: 0px !important' + ';' + 'left:0px !important;' + 'margin-left:-7px !important');
3044        }
3045    });
3046
3047
3048
3049    document.addEventListener("DOMContentLoaded", function () {
3050        var lazyBackgrounds = [].slice.call(document.querySelectorAll(".lazy-background"));
3051
3052        if ("IntersectionObserver" in window) {
3053            let lazyBackgroundObserver = new IntersectionObserver(function (entries, observer) {
3054                entries.forEach(function (entry) {
3055                    if (entry.isIntersecting) {
3056                        entry.target.classList.add("visible");
3057                        lazyBackgroundObserver.unobserve(entry.target);
3058                    }
3059                });
3060            });
3061
3062            lazyBackgrounds.forEach(function (lazyBackground) {
3063                lazyBackgroundObserver.observe(lazyBackground);
3064            });
3065        }
3066    });
3067
3068    //Add Icon for Submenu in Mobile
3069    $('.sub-menu-trigger').click(function () {
3070        if($(this).children('i').hasClass('rotate-icon')){
3071            $(this).children('i').removeClass('rotate-icon');
3072            $(this).parent().children('ul').css('display','none');
3073        }else{
3074            $(this).children('i').addClass('rotate-icon');
3075            $(this).parent().children('ul').css('display','block');
3076        }
3077    });
3078
3079    //Link to page for Submenu in Mobile
3080    if( /Android|webOS|BlackBerry|iPhone|iPod|iPad/i.test(navigator.userAgent) ) {
3081        var touchmoved;
3082        $('.sub-menu').on('touchend', '.mobile-a', function () {
3083            if(touchmoved != true){
3084                location.href =$(this).attr('href');
3085            }
3086        }).on('touchmove', function(e){
3087            touchmoved = true;
3088        }).on('touchstart', function(){
3089            touchmoved = false;
3090        });
3091
3092        $('.sub-menu').on('touchend').on('touchmove', function(e){
3093            touchmoved = true;
3094        }).on('touchstart', function(){
3095            touchmoved = false;
3096        });
3097    }
3098
3099
3100</script>
3100
3101<!-- Ecwid Seo friendly url js code -->
3102<script>
3103    window.ec = window.ec || {};
3104    window.ec.config = window.ec.config || {};
3105    window.ec.config.storefrontUrls = window.ec.config.storefrontUrls || {};
3106    window.ec.config.storefrontUrls.cleanUrls = true;
3107    if(currentLocName == headquarterName){
3108        window.ec.config.baseUrl = '/shop/';
3109        var ecwid_ProductBrowserURL = "/shop/";
3110    } else{
3111        var ecwid_ProductBrowserURL = currentLocName+'/shop/';
3112        window.ec.config.baseUrl = currentLocName+'/shop/';
3113    }
3114
3115</script>
3115
3116    <!-- Prefetch + Preconnect -->
3117    <link rel="dns-prefetch" href="//www.googletagmanager.com">
3118    <link rel="preconnect" href="https://www.googletagmanager.com" crossorigin>
3119    
3119<script>
3120    function loadGTM(id) {
3121        (function(w,d,s,l,i){
3122            w[l]=w[l]||[];
3123            w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
3124            var f=d.getElementsByTagName(s)[0],
3125                j=d.createElement(s), dl=l!='dataLayer'?'&l='+l:'';
3126            j.async=true; j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;
3127            f.parentNode.insertBefore(j,f);
3128        })(window,document,'script','dataLayer', id);
3129    }
3130
3131    function loadGtag() {
3132        var url = window.location.host;
3133        if (url.indexOf('.jenkins') === -1 && url.indexOf('.test') === -1) {
3134            var gtagScript = document.createElement('script');
3135            gtagScript.src = "https://www.googletagmanager.com/gtag/js?id=G-9N2957J5VN";
3136            gtagScript.async = true;
3137            document.head.appendChild(gtagScript);
3138
3139            gtagScript.onload = function () {
3140                
vendor: 177 bytes, lines 3140-3143
3140window.dataLayer = window.dataLayer || [];
3141                function gtag(){ dataLayer.push(arguments); }
3142                gtag('js', new Date());
3143                gtag('config', '
3143G-9N2957J5VN
vendor: 16 bytes, lines 3143-3144
3143');
3144            
3144};
3145        }
3146    }
3147
3148    function loadTrackingScripts() {
3149                loadGTM('GTM-NMGWHXT');
3150                                loadGtag();
3151            }
3152
3153    if ('requestIdleCallback' in window) {
3154        requestIdleCallback(loadTrackingScripts, { timeout: 2000 });
3155    } else {
3156        setTimeout(loadTrackingScripts, 2000);
3157    }
3158    </script>
3158
3159
3160    <!-- NOSCRIPT for GTM (should NOT be deferred) -->
vendor: 89 bytes, lines 3160-3162
3160
3161    <noscript>
3162                <iframe src="https://www.googletagmanager.com/ns.html?id=
3162GTM-NMGWHXT
vendor: 106 bytes, lines 3162-3165
3162" height="0" width="0" style="display:none;visibility:hidden"></iframe>
3163                    </noscript>
3164
3165
3166<script type="text/javascript">window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","licenseKey":"NRJS-848b5ec7e91ef88ba3a","applicationID":"1416771764","transactionName":"ZwNVYEEHCEVTVEZdDl5JdldHDwlYHXZCRD14EkNEbyUJWEZFXVgNVRREaHAJCEJAWF5YBEImWlVaCA==","queueTime":0,"applicationTime":242,"atts":"S0RWFgkdG0s=","errorBeacon":"bam.nr-data.net","agent":""}</script>
3166</body>
3167</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.