PageSourceSearch

https://munio-self-defense-website.base44.app/search

html munio-self-defense-website.base44.app collected 2026-10-03 03:06:30 UTC 17,652 bytes, 347 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  
4<script>
5   (function () {
6  var proto = XMLHttpRequest.prototype;
7  var open = proto.open, setRequestHeader = proto.setRequestHeader, send = proto.send;
8  var TOKEN_KEY = 'base44_access_token';
9  var storedTokenHeader = function () {
10    try { return 'Bearer ' + localStorage.getItem(TOKEN_KEY); } catch (e) { return null; }
11  };
12  var forgetStoredToken = function () {
13    try { localStorage.removeItem(TOKEN_KEY); localStorage.removeItem('token'); } catch (e) {}
14  };
15
16  proto.open = function (method, url) {
17    this.__b44IsAuthCheck = /\/entities\/User\/me(\?|$)/.test(url);
18    return open.apply(this, arguments);
19  };
20
21  proto.setRequestHeader = function (name, value) {
22    if (this.__b44IsAuthCheck && name.toLowerCase() === 'authorization' && value === storedTokenHeader()) {
23      this.__b44SentToken = value;
24    }
25    return setRequestHeader.call(this, name, value);
26  };
27
28  proto.send = function () {
29    this.addEventListener('loadend', function () {
30      var rejectedTokenStillStored = this.status === 401 && this.__b44SentToken === storedTokenHeader();
31      if (rejectedTokenStillStored) forgetStoredToken();
32    });
33    return send.apply(this, arguments);
34  };
35})();
36  </script>
36
37  <meta charset="utf-8"/>
38  <link href="https://media.base44.com/images/public/6a60bfa46861e1ef54be65a6/2fcc903f3_MUNIOfavicon2022-16x16pixels-1200dpi.png" rel="icon" sizes="16x16" type="image/png"/>
39  <link href="https://media.base44.com/images/public/6a60bfa46861e1ef54be65a6/2fcc903f3_MUNIOfavicon2022-16x16pixels-1200dpi.png" rel="icon" sizes="32x32" type="image/png"/>
40  <link href="https://media.base44.com/images/public/6a60bfa46861e1ef54be65a6/2fcc903f3_MUNIOfavicon2022-16x16pixels-1200dpi.png" rel="apple-touch-icon"/>
41  <meta content="#1a1a1a" name="theme-color"/>
42  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
43  <link href="/manifest.json" rel="manifest"/>
44  <meta content="Search on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products." name="description"/>
45  <meta content="Search | MUNIO Self Defense website" property="og:title"/>
46  <meta content="Search on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products." property="og:description"/>
47  <meta content="https://media.base44.com/images/public/marketing-site-assets/branded/favicon-branded-v2.png/v1/fill/w_1200,h_630/favicon-branded-v2.png" property="og:image"/>
48  <title>
49   Search | MUNIO Self Defense website
50  </title>
51  <link href="https://fonts.googleapis.com" rel="preconnect"/>
52  <link crossorigin="" href="https://fonts.gstatic.com" rel="preconnect"/>
53  <link href="https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,300;1,9..40,400&amp;family=DM+Serif+Display:ital@0;1&amp;display=swap" rel="stylesheet"/>
54  
54<script crossorigin="" src="/assets/index-mbye_aiI.js" type="module">
55  </script>
55
56  <link crossorigin="" href="/assets/index-CIVzTxGN.css" rel="stylesheet"/>
57  
57<script type="module">
58   if (window.self === window.top) {
59  let lastPath = "";
60  function getPageNameFromPath(path) {
61    const segments = path.split("/").filter(Boolean);
62    return segments[0] || null;
63  }
64  function trackPageView() {
65    const path = window.location.pathname;
66    if (path === lastPath) return;
67    lastPath = path;
68    const pageName = getPageNameFromPath(path) || "home";
69    const appId = "6a60bfa46861e1ef54be65a6";
70    if (!appId) return;
71    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
72      method: "POST",
73    }).catch(() => {});
74  }
75  const originalPushState = history.pushState.bind(history);
76  history.pushState = function (...args) {
77    originalPushState(...args);
78    trackPageView();
79  };
80  const originalReplaceState = history.replaceState.bind(history);
81  history.replaceState = function (...args) {
82    originalReplaceState(...args);
83    trackPageView();
84  };
85  window.addEventListener("popstate", trackPageView);
86  trackPageView();
87}
88  </script>
88
89  <meta content="https://munio-self-defense-website.base44.app/search" property="og:url"/>
90  <meta content="website" property="og:type"/>
91  <meta content="MUNIO Self Defense website" property="og:site_name"/>
92  <meta content="Search | MUNIO Self Defense website" name="twitter:title"/>
93  <meta content="Search on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products." name="twitter:description"/>
94  <meta content="https://media.base44.com/images/public/marketing-site-assets/branded/favicon-branded-v2.png/v1/fill/w_1200,h_630/favicon-branded-v2.png" name="twitter:image"/>
95  <meta content="summary_large_image" name="twitter:card"/>
96  <meta content="https://munio-self-defense-website.base44.app/search" name="twitter:url"/>
97  
97<script>
98   (function () {
99  var titles = {"/": "MUNIO Self Defense website", "/shop": "Shop | MUNIO Self Defense website", "/about-munio": "About Munio | MUNIO Self Defense website", "/wholesale": "Wholesale | MUNIO Self Defense website", "/wholesale-confirmation": "Wholesale Confirmation | MUNIO Self Defense website", "/blog": "Blog | MUNIO Self Defense website", "/free-resources": "Free Resources | MUNIO Self Defense website", "/free-ebook": "Free Ebook | MUNIO Self Defense website", "/cart": "Cart | MUNIO Self Defense website", "/checkout": "Checkout | MUNIO Self Defense website", "/privacy-policy": "Static Page | MUNIO Self Defense website", "/terms-conditions": "Static Page | MUNIO Self Defense website", "/refund-policy": "Static Page | MUNIO Self Defense website", "/disclaimer": "Static Page | MUNIO Self Defense website", "/lifetime-warranty": "Static Page | MUNIO Self Defense website", "/legal-statement": "Static Page | MUNIO Self Defense website", "/cpsia-information": "Static Page | MUNIO Self Defense website", "/comparison-chart": "Comparison Chart | MUNIO Self Defense website", "/search": "Search | MUNIO Self Defense website", "/faq": "FAQ | MUNIO Self Defense website", "/complete-order": "Complete Order | MUNIO Self Defense website", "/login": "Login | MUNIO Self Defense website", "/register": "Register | MUNIO Self Defense website", "/forgot-password": "Forgot Password | MUNIO Self Defense website", "/reset-password": "Reset Password | MUNIO Self Defense website", "/admin": "Admin / Admin Dashboard | MUNIO Self Defense website", "/admin/orders": "Admin / Admin Orders | MUNIO Self Defense website", "/admin/resellers": "Admin / Admin Resellers | MUNIO Self Defense website", "/admin/inventory": "Admin / Admin Inventory | MUNIO Self Defense website", "/admin/discount-codes": "Admin / Admin Discount Codes | MUNIO Self Defense website", "/admin/email-preview": "Admin / Email Preview | MUNIO Self Defense website", "/admin/layout-lab": "Admin / Layout Lab | MUNIO Self Defense website", "/home": "MUNIO Self Defense website"};
100  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
101  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
102  var dashed = function (s) {
103    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
104  };
105  var decode = function (s) {
106    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
107    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
108    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
109  };
110  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
111  var norm = function (path) {
112    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
113    return parts.length ? "/" + parts.join("/") : "/";
114  };
115  var lastPath = location.pathname, written = document.title, on = true;
116  var sync = function () {
117    // Path only: a hash/query change is the same page, and the SDK strips its own auth
118    // params with replaceState -- neither must clobber a server-rendered title in place.
119    if (!on || location.pathname === lastPath) return;
120    lastPath = location.pathname;
121    if (document.title !== written) { on = false; return; }
122    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
123    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
124    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
125    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
126    // a redirect landing on an unmapped path would bake the placeholder into the stored
127    // snapshot. Leaving the title alone degrades to today's behavior instead.
128    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
129    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
130    // dashes there, and the client cannot tell the two apart. The map emits every reach
130able
131    // shape per segment instead (_client_url_variants).
132    var title = titles[norm(location.pathname)];
133    if (title === undefined) return;
134    document.title = title;
135    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
136    // keeping the assigned string would make the next sync() read our own write as the app's.
137    written = document.title;
138  };
139  var wrap = function (fn) {
140    // The history entry is already pushed by the time sync() runs, so a throw here would
141    // surface inside the host app's router and break navigation. This is injected into apps
142    // we cannot test, so it swallows rather than trusting the trace.
143    return function () {
144      var r = fn.apply(this, arguments);
145      try { sync(); } catch (e) {}
146      return r;
147    };
148  };
149  history.pushState = wrap(history.pushState);
150  history.replaceState = wrap(history.replaceState);
151  window.addEventListener("popstate", sync);
152})();
153  </script>
153
154  <meta content="yes" name="mobile-web-app-capable"/>
155  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
156  <meta content="MUNIO Self Defense website" name="apple-mobile-web-app-title"/>
157  <link href="https://munio-self-defense-website.base44.app/search" rel="canonical"/>
158  
158<script data-seo-source="builder" type="application/ld+json">
159   {"name": "MUNIO Self Defense website", "@context": "https://schema.org", "@type": "WebSite", "url": "https://munioselfdefense.com"}
160  </script>
160
161  
161<script data-seo-source="builder" type="application/ld+json">
162   {"name": "MUNIO Self Defense website", "@context": "https://schema.org", "@type": "Organization", "url": "https://munioselfdefense.com"}
163  </script>
163
164  
164<script data-seo-source="builder" type="application/ld+json">
165   {"@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [{"@type": "ListItem", "position": 1, "name": "Home", "item": "https://munio-self-defense-website.base44.app/"}, {"@type": "ListItem", "position": 2, "name": "Search | MUNIO Self Defense website", "item": "https://munio-self-defense-website.base44.app/search"}]}
166  </script>
166
167  <meta content="noindex, follow" name="robots"/>
168 </head>
169 <body>
170  <div id="root">
171   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
172    <main>
173     <header>
174      <h1>
175       Search | MUNIO Self Defense website
176      </h1>
177      <p>
178       Search on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
179      </p>
180     </header>
181     <nav aria-label="Pages">
182      <h2>
183       Pages
184      </h2>
185      <ul>
186       <li>
187        <a href="/">
188         Home
189        </a>
190       </li>
191       <li>
192        <a href="/shop">
193         Shop
194        </a>
195        — Shop on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
196       </li>
197       <li>
198        <a href="/about-munio">
199         About Munio
200        </a>
201        — About Munio on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
202       </li>
203       <li>
204        <a href="/wholesale">
205         Wholesale
206        </a>
207        — Wholesale on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
208       </li>
209       <li>
210        <a href="/wholesale-confirmation">
211         Wholesale Confirmation
212        </a>
213        — Wholesale Confirmation on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
214       </li>
215       <li>
216        <a href="/blog">
217         Blog
218        </a>
219        — Blog on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
220       </li>
221       <li>
222        <a href="/free-resources">
223         Free Resources
224        </a>
225        — Free Resources on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
226       </li>
227       <li>
228        <a href="/free-ebook">
229         Free Ebook
230        </a>
231        — Free Ebook on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
232       </li>
233       <li>
234        <a href="/cart">
235         Cart
236        </a>
237        — Cart on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
238       </li>
239       <li>
240        <a href="/checkout">
241         Checkout
242        </a>
243        — Checkout on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
244       </li>
245       <li>
246        <a href="/privacy-policy">
247         Static Page
248        </a>
249        — Static Page on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
250       </li>
251       <li>
252        <a href="/comparison-chart">
253         Comparison Chart
254        </a>
255        — Comparison Chart on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
256       </li>
257       <li>
258        <a href="/search">
259         Search
260        </a>
261        — Search on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
262       </li>
263       <li>
264        <a href="/faq">
265         FAQ
266        </a>
267        — FAQ on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
268       </li>
269       <li>
270        <a href="/complete-order">
271         Complete Order
272        </a>
273        — Complete Order on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
274       </li>
275       <li>
276        <a href="/login">
277         Login
278        </a>
279        — Login on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
280       </li>
281       <li>
282        <a href="/register">
283         Register
284        </a>
285        — Register on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
286       </li>
287       <li>
288        <a href="/forgot-password">
289         Forgot Password
290        </a>
291        — Forgot Password on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
292       </li>
293       <li>
294        <a href="/reset-password">
295         Reset Password
296        </a>
297        — Reset Password on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
298       </li>
299       <li>
300        <a href="/admin">
301         Admin Dashboard
302        </a>
303        — Admin / Admin Dashboard on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
304       </li>
305       <li>
306        <a href="/admin/orders">
307         Admin Orders
308        </a>
309        — Admin / Admin Orders on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
310       </li>
311       <li>
312        <a href="/admin/resellers">
313         Admin Resellers
314        </a>
315        — Admin / Admin Resellers on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
316       </li>
317       <li>
318        <a href="/admin/inventory">
319         Admin Inventory
320        </a>
321        — Admin / Admin Inventory on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
322       </li>
323       <li>
324        <a href="/admin/discount-codes">
325         Admin Discount Codes
326        </a>
327        — Admin / Admin Discount Codes on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
328       </li>
329       <li>
330        <a href="/admin/email-preview">
331         Email Preview
332        </a>
333        — Admin / Email Preview on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
334       </li>
335       <li>
336        <a href="/admin/layout-lab">
337         Layout Lab
338        </a>
339        — Admin / Layout Lab on MUNIO Self Defense website. MUNIO Self Defense website brings together 30 pages for self defense products.
340       </li>
341      </ul>
342     </nav>
343    </main>
344   </div>
345  </div>
346 </body>
347</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.