@networkpro/web 0.13.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/CODE_OF_CONDUCT.md +172 -0
  2. package/LICENSE.md +4 -4
  3. package/README.md +11 -10
  4. package/assets/bin/contact.vcf +13 -0
  5. package/assets/bin/contact@s.neteng.pro.aexpk +17 -0
  6. package/assets/bin/contact@s.neteng.pro.asc +17 -0
  7. package/assets/bin/github@sl.neteng.cc.aexpk +29 -0
  8. package/assets/bin/github@sl.neteng.cc.asc +29 -0
  9. package/assets/bin/linksheet.json +8 -0
  10. package/assets/bin/support@neteng.pro.aexpk +47 -0
  11. package/assets/bin/support@neteng.pro.asc +47 -0
  12. package/assets/consulting-terms.pdf +0 -0
  13. package/eslint.config.mjs +112 -0
  14. package/jsconfig.json +28 -0
  15. package/netlify.toml +13 -0
  16. package/package.json +64 -61
  17. package/playwright.config.js +79 -0
  18. package/postcss.config.mjs +14 -0
  19. package/scripts/bundleCss.js +40 -0
  20. package/src/app.d.ts +15 -0
  21. package/src/app.html +81 -0
  22. package/src/demo.spec.js +14 -0
  23. package/src/lib/components/Badges.svelte +74 -0
  24. package/src/lib/components/ContainerSection.svelte +19 -0
  25. package/src/lib/components/FullWidthSection.svelte +13 -0
  26. package/src/lib/components/LegalNav.svelte +75 -0
  27. package/src/lib/components/Logo.svelte +110 -0
  28. package/src/lib/components/SocialMedia.svelte +70 -0
  29. package/src/lib/components/foss/FossFeatures.svelte +24 -0
  30. package/src/lib/components/foss/FossItemContent.svelte +153 -0
  31. package/src/lib/components/layout/Footer.svelte +188 -0
  32. package/src/lib/components/layout/HeaderDefault.svelte +86 -0
  33. package/src/lib/components/layout/HeaderHome.svelte +84 -0
  34. package/src/lib/data/fossData.js +233 -0
  35. package/src/lib/images.js +77 -0
  36. package/src/lib/img/badges/cc-by-badge.png +0 -0
  37. package/src/lib/img/badges/gpl-badge.svg +1 -0
  38. package/src/lib/img/by.svg +1 -0
  39. package/src/lib/img/cc.svg +1 -0
  40. package/src/lib/img/logo-web.png +0 -0
  41. package/src/lib/img/logo-web.webp +0 -0
  42. package/src/lib/img/obtainium.webp +0 -0
  43. package/src/lib/img/posts/acode.png +0 -0
  44. package/src/lib/img/posts/acode.webp +0 -0
  45. package/src/lib/img/posts/linksheet.png +0 -0
  46. package/src/lib/img/posts/linksheet.webp +0 -0
  47. package/src/lib/img/posts/pmx.png +0 -0
  48. package/src/lib/img/posts/pmx.webp +0 -0
  49. package/src/lib/img/posts/tosdr.png +0 -0
  50. package/src/lib/img/posts/tosdr.webp +0 -0
  51. package/src/lib/img/posts/urlcheck.png +0 -0
  52. package/src/lib/img/posts/urlcheck.webp +0 -0
  53. package/src/lib/index.js +43 -0
  54. package/src/lib/pages/AboutContent.svelte +294 -0
  55. package/src/lib/pages/FossContent.svelte +109 -0
  56. package/src/lib/pages/HomeContent.svelte +120 -0
  57. package/src/lib/pages/LicenseContent.svelte +486 -0
  58. package/src/lib/pages/PrivacyContent.svelte +249 -0
  59. package/src/lib/pages/TermsConditionsContent.svelte +240 -0
  60. package/src/lib/pages/TermsUseContent.svelte +236 -0
  61. package/src/lib/registerServiceWorker.js +65 -0
  62. package/src/lib/styles/css/brands.css +76 -0
  63. package/src/lib/styles/css/brands.min.css +6 -0
  64. package/src/lib/styles/css/default.css +454 -0
  65. package/src/lib/styles/css/fontawesome.min.css +9 -0
  66. package/src/lib/styles/css/global.css +10 -0
  67. package/src/lib/styles/css/normalize.css +349 -0
  68. package/src/lib/styles/css/offline.css +120 -0
  69. package/src/lib/styles/css/solid.min.css +6 -0
  70. package/src/lib/styles/css/style.css +310 -0
  71. package/src/lib/styles/fa-global.css +10 -0
  72. package/src/lib/styles/global.min.css +9 -0
  73. package/src/lib/styles/index.js +11 -0
  74. package/src/lib/styles/webfonts/fa-brands-400.ttf +0 -0
  75. package/src/lib/styles/webfonts/fa-brands-400.woff2 +0 -0
  76. package/src/lib/styles/webfonts/fa-solid-900.ttf +0 -0
  77. package/src/lib/styles/webfonts/fa-solid-900.woff2 +0 -0
  78. package/src/routes/+error.svelte +43 -0
  79. package/src/routes/+layout.js +94 -0
  80. package/src/routes/+layout.svelte +110 -0
  81. package/src/routes/+page.svelte +77 -0
  82. package/src/routes/about/+page.svelte +61 -0
  83. package/src/routes/contact/+page.server.js +24 -0
  84. package/src/routes/example.svx +9 -0
  85. package/src/routes/foss-spotlight/+page.svelte +63 -0
  86. package/src/routes/license/+page.svelte +63 -0
  87. package/src/routes/page.svelte.test.js +18 -0
  88. package/src/routes/privacy-policy/+page.svelte +63 -0
  89. package/src/routes/privacy-rights/+page.server.js +24 -0
  90. package/src/routes/terms-conditions/+page.svelte +63 -0
  91. package/src/routes/terms-of-use/+page.svelte +63 -0
  92. package/src/service-worker.d.ts +4 -0
  93. package/src/service-worker.js +90 -0
  94. package/static/icon-512x512-maskable.png +0 -0
  95. package/static/icon-contact.png +0 -0
  96. package/static/icon-services.png +0 -0
  97. package/static/img/svelte.png +0 -0
  98. package/static/manifest.json +64 -0
  99. package/static/offline.html +79 -0
  100. package/static/offline.min.css +7 -0
  101. package/{robots.txt → static/robots.txt} +0 -2
  102. package/static/sitemap.xml +102 -0
  103. package/stylelint.config.js +118 -0
  104. package/svelte.config.js +56 -0
  105. package/tests/app.spec.js +67 -0
  106. package/tests/mobile.spec.js +58 -0
  107. package/tests-examples/demo-todo-app.spec.js +504 -0
  108. package/tsconfig.custom.json +39 -0
  109. package/vite.config.js +19 -0
  110. package/vitest-setup-client.js +33 -0
  111. package/vitest.config.client.js +34 -0
  112. package/vitest.config.server.js +30 -0
  113. package/404.html +0 -84
  114. package/about.html +0 -334
  115. package/about.html.br +0 -0
  116. package/about.html.gz +0 -0
  117. package/bundle-report.html +0 -39
  118. package/css/default.css +0 -1
  119. package/css/normalize.css +0 -1
  120. package/css/style.css +0 -1
  121. package/docs/404.html +0 -1187
  122. package/docs/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
  123. package/docs/assets/external/img.shields.io/badge/GitHub_Package_Registry-white.ed8def48.svg +0 -1
  124. package/docs/assets/external/img.shields.io/badge/npmjs-white.681714c1.svg +0 -1
  125. package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/by.svg +0 -20
  126. package/docs/assets/external/mirrors.creativecommons.org/presskit/icons/cc.svg +0 -27
  127. package/docs/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +0 -2607
  128. package/docs/assets/images/favicon.png +0 -0
  129. package/docs/assets/javascripts/bundle.c8b220af.min.js +0 -16
  130. package/docs/assets/javascripts/bundle.c8b220af.min.js.map +0 -7
  131. package/docs/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
  132. package/docs/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
  133. package/docs/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
  134. package/docs/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
  135. package/docs/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
  136. package/docs/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
  137. package/docs/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
  138. package/docs/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
  139. package/docs/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
  140. package/docs/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
  141. package/docs/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
  142. package/docs/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
  143. package/docs/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
  144. package/docs/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
  145. package/docs/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
  146. package/docs/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
  147. package/docs/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
  148. package/docs/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
  149. package/docs/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
  150. package/docs/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
  151. package/docs/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
  152. package/docs/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
  153. package/docs/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
  154. package/docs/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
  155. package/docs/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
  156. package/docs/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
  157. package/docs/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
  158. package/docs/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
  159. package/docs/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
  160. package/docs/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
  161. package/docs/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
  162. package/docs/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
  163. package/docs/assets/javascripts/lunr/tinyseg.js +0 -206
  164. package/docs/assets/javascripts/lunr/wordcut.js +0 -6708
  165. package/docs/assets/javascripts/workers/search.f8cc74c7.min.js +0 -42
  166. package/docs/assets/javascripts/workers/search.f8cc74c7.min.js.map +0 -7
  167. package/docs/assets/stylesheets/main.2afb09e1.min.css +0 -1
  168. package/docs/assets/stylesheets/main.2afb09e1.min.css.map +0 -1
  169. package/docs/assets/stylesheets/palette.06af60db.min.css +0 -1
  170. package/docs/assets/stylesheets/palette.06af60db.min.css.map +0 -1
  171. package/docs/blog/2015/01/04/secure-secure-shell/index.html +0 -1771
  172. package/docs/blog/2025/04/30/our-blog-is-live/index.html +0 -1436
  173. package/docs/blog/archive/2015/index.html +0 -1303
  174. package/docs/blog/archive/2025/index.html +0 -1291
  175. package/docs/blog/category/security/index.html +0 -1303
  176. package/docs/blog/index.html +0 -1350
  177. package/docs/conduct/index.html +0 -1509
  178. package/docs/feed_json_created.json +0 -1
  179. package/docs/feed_json_updated.json +0 -1
  180. package/docs/feed_rss_created.xml +0 -1
  181. package/docs/feed_rss_updated.xml +0 -1
  182. package/docs/fontawesome/LICENSE.txt +0 -165
  183. package/docs/fontawesome/brands/facebook.svg +0 -1
  184. package/docs/fontawesome/brands/instagram.svg +0 -1
  185. package/docs/fontawesome/brands/linkedin.svg +0 -1
  186. package/docs/fontawesome/brands/mastodon.svg +0 -1
  187. package/docs/fontawesome/solid/at.svg +0 -1
  188. package/docs/index.html +0 -1395
  189. package/docs/legal/index.html +0 -1740
  190. package/docs/privacy/index.html +0 -1615
  191. package/docs/search/search_index.json +0 -1
  192. package/docs/sitemap.xml +0 -55
  193. package/docs/sitemap.xml.gz +0 -0
  194. package/docs/tags/index.html +0 -2084
  195. package/docs/terms-conditions/index.html +0 -1655
  196. package/docs/terms-use/index.html +0 -1584
  197. package/favicon-192.png +0 -0
  198. package/favicon-512.png +0 -0
  199. package/favicon.svg.br +0 -0
  200. package/favicon.svg.gz +0 -0
  201. package/html/spotlight.html +0 -435
  202. package/html/spotlight.html.br +0 -0
  203. package/html/spotlight.html.gz +0 -0
  204. package/img/banner-1280x640.png +0 -0
  205. package/img/banner-1440.png +0 -0
  206. package/img/banner-og-1200x630.png +0 -0
  207. package/img/favicon-template.png +0 -0
  208. package/img/fb-cover.png +0 -0
  209. package/img/fb-cover2.png +0 -0
  210. package/img/fsf-member.png +0 -0
  211. package/img/gh-logo.png +0 -0
  212. package/img/gpl3-small.png +0 -0
  213. package/img/gpl3.png +0 -0
  214. package/img/linkedin-banner-new.png +0 -0
  215. package/img/linkedin-banner.png +0 -0
  216. package/img/linkedin-banner2.png +0 -0
  217. package/img/logo-1024x1024.png +0 -0
  218. package/img/logo-alt.png +0 -0
  219. package/img/logo-elevated.png +0 -0
  220. package/img/logo-light-elevated.png +0 -0
  221. package/img/logo-light-slogan.png +0 -0
  222. package/img/logo-light.png +0 -0
  223. package/img/logo-slogan.png +0 -0
  224. package/img/logo-transparent-black-small.png +0 -0
  225. package/img/logo-transparent-black.png +0 -0
  226. package/img/logo-transparent-elevated.png +0 -0
  227. package/img/logo-transparent-slogan.png +0 -0
  228. package/img/mastodon-banner.png +0 -0
  229. package/img/netpro-logo-transparent.png +0 -0
  230. package/img/posts/acode.png +0 -0
  231. package/img/posts/linksheet.png +0 -0
  232. package/img/posts/tosdr.png +0 -0
  233. package/img/posts/urlcheck.png +0 -0
  234. package/img/qr/pgp-github.png +0 -0
  235. package/img/qr/pgp-support.png +0 -0
  236. package/img/qr/vcard.png +0 -0
  237. package/img/sd311.png +0 -0
  238. package/img/shield.png +0 -0
  239. package/img/shield.svg +0 -1
  240. package/img/shield.svg.br +0 -0
  241. package/img/shield.svg.gz +0 -0
  242. package/img/shield2.png +0 -0
  243. package/img/shield3-2000x2000.png +0 -0
  244. package/img/shield3-black-1024x1024.png +0 -0
  245. package/img/shield3-black.png +0 -0
  246. package/img/shield3-white.png +0 -0
  247. package/img/trademark.jpg +0 -0
  248. package/index.html +0 -268
  249. package/index.html.br +0 -0
  250. package/index.html.gz +0 -0
  251. package/js/app.d544156ea2ba85a7d486.mjs +0 -1
  252. package/js/runtime.52b1ac291305b90de3df.mjs +0 -1
  253. package/js/vendor/.gitkeep +0 -0
  254. package/legal.html +0 -535
  255. package/legal.html.br +0 -0
  256. package/legal.html.gz +0 -0
  257. package/privacy.html +0 -404
  258. package/privacy.html.br +0 -0
  259. package/privacy.html.gz +0 -0
  260. package/site.webmanifest +0 -25
  261. package/sitemap.xml +0 -177
  262. package/terms-and-conditions.html +0 -409
  263. package/terms-and-conditions.html.br +0 -0
  264. package/terms-and-conditions.html.gz +0 -0
  265. package/terms-of-use.html +0 -380
  266. package/terms-of-use.html.br +0 -0
  267. package/terms-of-use.html.gz +0 -0
  268. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets → assets}/nsa-happy-dance.png +0 -0
  269. /package/{favicon.svg → src/lib/img/favicon.svg} +0 -0
  270. /package/{favicon-180.png → src/lib/img/icon-180x180.png} +0 -0
  271. /package/{img/badge_obtainium.png → src/lib/img/obtainium.png} +0 -0
  272. /package/{img → src/lib/img}/qr/pgp-contact.png +0 -0
  273. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/pgp-github.png +0 -0
  274. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/pgp-support.png +0 -0
  275. /package/{docs/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master → src/lib}/img/qr/vcard.png +0 -0
  276. /package/{CNAME → static/CNAME} +0 -0
  277. /package/{favicon.ico → static/favicon.ico} +0 -0
  278. /package/{docs/img/favicon.png → static/icon-192x192.png} +0 -0
  279. /package/{docs/img/logo.png → static/icon-512x512.png} +0 -0
  280. /package/{favicon-splash.png → static/icon-splash.png} +0 -0
  281. /package/{img → static/img}/logo-transparent.png +0 -0
  282. /package/{img → static/img}/logo.png +0 -0
package/docs/index.html DELETED
@@ -1,1395 +0,0 @@
1
-
2
- <!doctype html>
3
- <html lang="en" class="no-js">
4
- <head>
5
-
6
- <meta charset="utf-8">
7
- <meta name="viewport" content="width=device-width,initial-scale=1">
8
-
9
-
10
-
11
- <link rel="canonical" href="https://netwk.pro/docs/">
12
-
13
-
14
-
15
- <link rel="next" href="blog/">
16
-
17
-
18
- <link rel="alternate" type="application/rss+xml" title="RSS feed" href="feed_rss_created.xml">
19
- <link rel="alternate" type="application/rss+xml" title="RSS feed of updated content" href="feed_rss_updated.xml">
20
-
21
- <link rel="icon" href="img/favicon.png">
22
- <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.12">
23
-
24
-
25
-
26
- <title>About Network Pro&trade; - Network Pro Strategies</title>
27
-
28
-
29
-
30
- <link rel="stylesheet" href="assets/stylesheets/main.2afb09e1.min.css">
31
-
32
-
33
- <link rel="stylesheet" href="assets/stylesheets/palette.06af60db.min.css">
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
- <script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
47
-
48
-
49
-
50
-
51
-
52
-
53
- </head>
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
- <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow">
64
-
65
-
66
- <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
67
- <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
68
- <label class="md-overlay" for="__drawer"></label>
69
- <div data-md-component="skip">
70
-
71
-
72
- <a href="#about-network-protm" class="md-skip">
73
- Skip to content
74
- </a>
75
-
76
- </div>
77
- <div data-md-component="announce">
78
-
79
- </div>
80
-
81
-
82
-
83
-
84
- <header class="md-header" data-md-component="header">
85
- <nav class="md-header__inner md-grid" aria-label="Header">
86
- <a href="." title="Network Pro Strategies" class="md-header__button md-logo" aria-label="Network Pro Strategies" data-md-component="logo">
87
-
88
- <img src="img/logo.png" alt="logo">
89
-
90
- </a>
91
- <label class="md-header__button md-icon" for="__drawer">
92
-
93
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
94
- </label>
95
- <div class="md-header__title" data-md-component="header-title">
96
- <div class="md-header__ellipsis">
97
- <div class="md-header__topic">
98
- <span class="md-ellipsis">
99
- Network Pro Strategies
100
- </span>
101
- </div>
102
- <div class="md-header__topic" data-md-component="header-topic">
103
- <span class="md-ellipsis">
104
-
105
- About Network Pro&trade;
106
-
107
- </span>
108
- </div>
109
- </div>
110
- </div>
111
-
112
-
113
- <form class="md-header__option" data-md-component="palette">
114
-
115
-
116
-
117
-
118
- <input class="md-option" data-md-color-media="(prefers-color-scheme)" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to light mode" type="radio" name="__palette" id="__palette_0">
119
-
120
- <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
121
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m14.3 16-.7-2h-3.2l-.7 2H7.8L11 7h2l3.2 9zM20 8.69V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12zm-9.15 3.96h2.3L12 9z"/></svg>
122
- </label>
123
-
124
-
125
-
126
-
127
-
128
- <input class="md-option" data-md-color-media="(prefers-color-scheme: dark)" data-md-color-scheme="slate" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to system preference" type="radio" name="__palette" id="__palette_1">
129
-
130
- <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_2" hidden>
131
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 18c-.89 0-1.74-.2-2.5-.55C11.56 16.5 13 14.42 13 12s-1.44-4.5-3.5-5.45C10.26 6.2 11.11 6 12 6a6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
132
- </label>
133
-
134
-
135
-
136
-
137
-
138
- <input class="md-option" data-md-color-media="(prefers-color-scheme: light)" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow" aria-label="Switch to dark mode" type="radio" name="__palette" id="__palette_2">
139
-
140
- <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
141
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a4 4 0 0 0-4 4 4 4 0 0 0 4 4 4 4 0 0 0 4-4 4 4 0 0 0-4-4m0 10a6 6 0 0 1-6-6 6 6 0 0 1 6-6 6 6 0 0 1 6 6 6 6 0 0 1-6 6m8-9.31V4h-4.69L12 .69 8.69 4H4v4.69L.69 12 4 15.31V20h4.69L12 23.31 15.31 20H20v-4.69L23.31 12z"/></svg>
142
- </label>
143
-
144
-
145
- </form>
146
-
147
-
148
-
149
- <script>var palette=__md_get("__palette");if(palette&&palette.color){if("(prefers-color-scheme)"===palette.color.media){var media=matchMedia("(prefers-color-scheme: light)"),input=document.querySelector(media.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");palette.color.media=input.getAttribute("data-md-color-media"),palette.color.scheme=input.getAttribute("data-md-color-scheme"),palette.color.primary=input.getAttribute("data-md-color-primary"),palette.color.accent=input.getAttribute("data-md-color-accent")}for(var[key,value]of Object.entries(palette.color))document.body.setAttribute("data-md-color-"+key,value)}</script>
150
-
151
-
152
-
153
-
154
-
155
- <label class="md-header__button md-icon" for="__search">
156
-
157
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
158
- </label>
159
- <div class="md-search" data-md-component="search" role="dialog">
160
- <label class="md-search__overlay" for="__search"></label>
161
- <div class="md-search__inner" role="search">
162
- <form class="md-search__form" name="search">
163
- <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
164
- <label class="md-search__icon md-icon" for="__search">
165
-
166
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
167
-
168
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
169
- </label>
170
- <nav class="md-search__options" aria-label="Search">
171
-
172
- <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
173
-
174
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
175
- </button>
176
- </nav>
177
-
178
- <div class="md-search__suggest" data-md-component="search-suggest"></div>
179
-
180
- </form>
181
- <div class="md-search__output">
182
- <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
183
- <div class="md-search-result" data-md-component="search-result">
184
- <div class="md-search-result__meta">
185
- Initializing search
186
- </div>
187
- <ol class="md-search-result__list" role="presentation"></ol>
188
- </div>
189
- </div>
190
- </div>
191
- </div>
192
- </div>
193
-
194
-
195
-
196
- <div class="md-header__source">
197
- <a href="https://github.com/netwk-pro/netwk-pro-blog" title="Go to repository" class="md-source" data-md-component="source">
198
- <div class="md-source__icon md-icon">
199
-
200
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
201
- </div>
202
- <div class="md-source__repository">
203
- GitHub
204
- </div>
205
- </a>
206
- </div>
207
-
208
- </nav>
209
-
210
- </header>
211
-
212
- <div class="md-container" data-md-component="container">
213
-
214
-
215
-
216
-
217
-
218
- <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
219
- <div class="md-grid">
220
- <ul class="md-tabs__list">
221
-
222
-
223
-
224
-
225
-
226
-
227
-
228
-
229
- <li class="md-tabs__item md-tabs__item--active">
230
- <a href="." class="md-tabs__link">
231
-
232
-
233
-
234
-
235
-
236
- About Us
237
-
238
- </a>
239
- </li>
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
- <li class="md-tabs__item">
251
- <a href="blog/" class="md-tabs__link">
252
-
253
-
254
-
255
-
256
-
257
- Blog
258
-
259
- </a>
260
- </li>
261
-
262
-
263
-
264
-
265
-
266
-
267
-
268
-
269
-
270
-
271
-
272
- <li class="md-tabs__item">
273
- <a href="legal/" class="md-tabs__link">
274
-
275
-
276
-
277
-
278
-
279
- Legal Documentation
280
-
281
- </a>
282
- </li>
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
-
293
-
294
- <li class="md-tabs__item">
295
- <a href="conduct/" class="md-tabs__link">
296
-
297
-
298
-
299
-
300
-
301
- Contributing
302
-
303
- </a>
304
- </li>
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
-
314
-
315
-
316
- <li class="md-tabs__item">
317
- <a href="tags/" class="md-tabs__link">
318
-
319
-
320
-
321
-
322
-
323
- Tags
324
-
325
- </a>
326
- </li>
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
- <li class="md-tabs__item">
337
- <a href="https://netwk.pro/" class="md-tabs__link">
338
-
339
-
340
-
341
-
342
-
343
- Back to Website
344
-
345
- </a>
346
- </li>
347
-
348
-
349
-
350
- </ul>
351
- </div>
352
- </nav>
353
-
354
-
355
-
356
- <main class="md-main" data-md-component="main">
357
- <div class="md-main__inner md-grid">
358
-
359
-
360
-
361
- <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
362
- <div class="md-sidebar__scrollwrap">
363
- <div class="md-sidebar__inner">
364
-
365
-
366
-
367
-
368
-
369
-
370
- <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
371
- <label class="md-nav__title" for="__drawer">
372
- <a href="." title="Network Pro Strategies" class="md-nav__button md-logo" aria-label="Network Pro Strategies" data-md-component="logo">
373
-
374
- <img src="img/logo.png" alt="logo">
375
-
376
- </a>
377
- Network Pro Strategies
378
- </label>
379
-
380
- <div class="md-nav__source">
381
- <a href="https://github.com/netwk-pro/netwk-pro-blog" title="Go to repository" class="md-source" data-md-component="source">
382
- <div class="md-source__icon md-icon">
383
-
384
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
385
- </div>
386
- <div class="md-source__repository">
387
- GitHub
388
- </div>
389
- </a>
390
- </div>
391
-
392
- <ul class="md-nav__list" data-md-scrollfix>
393
-
394
-
395
-
396
-
397
-
398
-
399
-
400
-
401
-
402
- <li class="md-nav__item md-nav__item--active">
403
-
404
- <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
405
-
406
-
407
-
408
-
409
-
410
- <label class="md-nav__link md-nav__link--active" for="__toc">
411
-
412
-
413
-
414
- <span class="md-ellipsis">
415
- About Us
416
-
417
- </span>
418
-
419
-
420
- <span class="md-nav__icon md-icon"></span>
421
- </label>
422
-
423
- <a href="." class="md-nav__link md-nav__link--active">
424
-
425
-
426
-
427
- <span class="md-ellipsis">
428
- About Us
429
-
430
- </span>
431
-
432
-
433
- </a>
434
-
435
-
436
-
437
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
438
-
439
-
440
-
441
-
442
-
443
-
444
- <label class="md-nav__title" for="__toc">
445
- <span class="md-nav__icon md-icon"></span>
446
- Table of contents
447
- </label>
448
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
449
-
450
- <li class="md-nav__item">
451
- <a href="#security-that-respects-you" class="md-nav__link">
452
- <span class="md-ellipsis">
453
- Security That Respects You
454
- </span>
455
- </a>
456
-
457
- <nav class="md-nav" aria-label="Security That Respects You">
458
- <ul class="md-nav__list">
459
-
460
- <li class="md-nav__item">
461
- <a href="#what-we-do" class="md-nav__link">
462
- <span class="md-ellipsis">
463
- What We Do
464
- </span>
465
- </a>
466
-
467
- </li>
468
-
469
- </ul>
470
- </nav>
471
-
472
- </li>
473
-
474
- </ul>
475
-
476
- </nav>
477
-
478
- </li>
479
-
480
-
481
-
482
-
483
-
484
-
485
-
486
-
487
-
488
-
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
-
499
-
500
-
501
-
502
-
503
-
504
-
505
-
506
- <li class="md-nav__item md-nav__item--nested">
507
-
508
-
509
-
510
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
511
-
512
-
513
- <div class="md-nav__link md-nav__container">
514
- <a href="blog/" class="md-nav__link ">
515
-
516
-
517
-
518
- <span class="md-ellipsis">
519
- Blog
520
-
521
- </span>
522
-
523
-
524
- </a>
525
-
526
-
527
- <label class="md-nav__link " for="__nav_2" id="__nav_2_label" tabindex="0">
528
- <span class="md-nav__icon md-icon"></span>
529
- </label>
530
-
531
- </div>
532
-
533
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
534
- <label class="md-nav__title" for="__nav_2">
535
- <span class="md-nav__icon md-icon"></span>
536
- Blog
537
- </label>
538
- <ul class="md-nav__list" data-md-scrollfix>
539
-
540
-
541
-
542
-
543
-
544
-
545
-
546
-
547
-
548
-
549
-
550
-
551
-
552
-
553
-
554
-
555
-
556
-
557
-
558
-
559
-
560
-
561
-
562
- <li class="md-nav__item md-nav__item--nested">
563
-
564
-
565
-
566
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_2" >
567
-
568
-
569
- <label class="md-nav__link" for="__nav_2_2" id="__nav_2_2_label" tabindex="0">
570
-
571
-
572
-
573
- <span class="md-ellipsis">
574
- Archive
575
-
576
- </span>
577
-
578
-
579
- <span class="md-nav__icon md-icon"></span>
580
- </label>
581
-
582
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_2_label" aria-expanded="false">
583
- <label class="md-nav__title" for="__nav_2_2">
584
- <span class="md-nav__icon md-icon"></span>
585
- Archive
586
- </label>
587
- <ul class="md-nav__list" data-md-scrollfix>
588
-
589
-
590
-
591
-
592
-
593
-
594
-
595
-
596
-
597
- <li class="md-nav__item">
598
- <a href="blog/archive/2025/" class="md-nav__link">
599
-
600
-
601
-
602
- <span class="md-ellipsis">
603
- April 2025
604
-
605
- </span>
606
-
607
-
608
- </a>
609
- </li>
610
-
611
-
612
-
613
-
614
-
615
-
616
-
617
-
618
-
619
-
620
-
621
-
622
- <li class="md-nav__item">
623
- <a href="blog/archive/2015/" class="md-nav__link">
624
-
625
-
626
-
627
- <span class="md-ellipsis">
628
- January 2015
629
-
630
- </span>
631
-
632
-
633
- </a>
634
- </li>
635
-
636
-
637
-
638
-
639
- </ul>
640
- </nav>
641
-
642
- </li>
643
-
644
-
645
-
646
-
647
-
648
-
649
-
650
-
651
-
652
-
653
-
654
-
655
-
656
-
657
-
658
-
659
-
660
-
661
-
662
-
663
-
664
-
665
- <li class="md-nav__item md-nav__item--nested">
666
-
667
-
668
-
669
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2_3" >
670
-
671
-
672
- <label class="md-nav__link" for="__nav_2_3" id="__nav_2_3_label" tabindex="0">
673
-
674
-
675
-
676
- <span class="md-ellipsis">
677
- Categories
678
-
679
- </span>
680
-
681
-
682
- <span class="md-nav__icon md-icon"></span>
683
- </label>
684
-
685
- <nav class="md-nav" data-md-level="2" aria-labelledby="__nav_2_3_label" aria-expanded="false">
686
- <label class="md-nav__title" for="__nav_2_3">
687
- <span class="md-nav__icon md-icon"></span>
688
- Categories
689
- </label>
690
- <ul class="md-nav__list" data-md-scrollfix>
691
-
692
-
693
-
694
-
695
-
696
-
697
-
698
-
699
-
700
- <li class="md-nav__item">
701
- <a href="blog/category/security/" class="md-nav__link">
702
-
703
-
704
-
705
- <span class="md-ellipsis">
706
- Security
707
-
708
- </span>
709
-
710
-
711
- </a>
712
- </li>
713
-
714
-
715
-
716
-
717
- </ul>
718
- </nav>
719
-
720
- </li>
721
-
722
-
723
-
724
-
725
- </ul>
726
- </nav>
727
-
728
- </li>
729
-
730
-
731
-
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
-
742
-
743
-
744
-
745
-
746
-
747
-
748
-
749
-
750
-
751
-
752
-
753
-
754
-
755
-
756
- <li class="md-nav__item md-nav__item--nested">
757
-
758
-
759
-
760
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
761
-
762
-
763
- <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
764
-
765
-
766
-
767
- <span class="md-ellipsis">
768
- Legal Documentation
769
-
770
- </span>
771
-
772
-
773
- <span class="md-nav__icon md-icon"></span>
774
- </label>
775
-
776
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
777
- <label class="md-nav__title" for="__nav_3">
778
- <span class="md-nav__icon md-icon"></span>
779
- Legal Documentation
780
- </label>
781
- <ul class="md-nav__list" data-md-scrollfix>
782
-
783
-
784
-
785
-
786
-
787
-
788
-
789
- <li class="md-nav__item">
790
- <a href="legal/" class="md-nav__link">
791
-
792
-
793
-
794
- <span class="md-ellipsis">
795
- Legal, Copyright, and Licensing
796
-
797
- </span>
798
-
799
-
800
- </a>
801
- </li>
802
-
803
-
804
-
805
-
806
-
807
-
808
-
809
-
810
-
811
-
812
- <li class="md-nav__item">
813
- <a href="privacy/" class="md-nav__link">
814
-
815
-
816
-
817
- <span class="md-ellipsis">
818
- Privacy Policy
819
-
820
- </span>
821
-
822
-
823
- </a>
824
- </li>
825
-
826
-
827
-
828
-
829
-
830
-
831
-
832
-
833
-
834
-
835
- <li class="md-nav__item">
836
- <a href="terms-use/" class="md-nav__link">
837
-
838
-
839
-
840
- <span class="md-ellipsis">
841
- Website Terms of Use
842
-
843
- </span>
844
-
845
-
846
- </a>
847
- </li>
848
-
849
-
850
-
851
-
852
-
853
-
854
-
855
-
856
-
857
-
858
- <li class="md-nav__item">
859
- <a href="terms-conditions/" class="md-nav__link">
860
-
861
-
862
-
863
- <span class="md-ellipsis">
864
- Consulting & Implementation Terms and Conditions
865
-
866
- </span>
867
-
868
-
869
- </a>
870
- </li>
871
-
872
-
873
-
874
-
875
- </ul>
876
- </nav>
877
-
878
- </li>
879
-
880
-
881
-
882
-
883
-
884
-
885
-
886
-
887
-
888
-
889
-
890
-
891
-
892
-
893
-
894
-
895
-
896
-
897
-
898
-
899
-
900
- <li class="md-nav__item md-nav__item--nested">
901
-
902
-
903
-
904
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_4" >
905
-
906
-
907
- <label class="md-nav__link" for="__nav_4" id="__nav_4_label" tabindex="0">
908
-
909
-
910
-
911
- <span class="md-ellipsis">
912
- Contributing
913
-
914
- </span>
915
-
916
-
917
- <span class="md-nav__icon md-icon"></span>
918
- </label>
919
-
920
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_4_label" aria-expanded="false">
921
- <label class="md-nav__title" for="__nav_4">
922
- <span class="md-nav__icon md-icon"></span>
923
- Contributing
924
- </label>
925
- <ul class="md-nav__list" data-md-scrollfix>
926
-
927
-
928
-
929
-
930
-
931
-
932
-
933
- <li class="md-nav__item">
934
- <a href="conduct/" class="md-nav__link">
935
-
936
-
937
-
938
- <span class="md-ellipsis">
939
- Contributor Covenant Code of Conduct
940
-
941
- </span>
942
-
943
-
944
- </a>
945
- </li>
946
-
947
-
948
-
949
-
950
- </ul>
951
- </nav>
952
-
953
- </li>
954
-
955
-
956
-
957
-
958
-
959
-
960
-
961
-
962
-
963
-
964
-
965
-
966
-
967
-
968
-
969
-
970
-
971
-
972
-
973
-
974
-
975
- <li class="md-nav__item md-nav__item--nested">
976
-
977
-
978
-
979
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
980
-
981
-
982
- <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
983
-
984
-
985
-
986
- <span class="md-ellipsis">
987
- Tags
988
-
989
- </span>
990
-
991
-
992
- <span class="md-nav__icon md-icon"></span>
993
- </label>
994
-
995
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
996
- <label class="md-nav__title" for="__nav_5">
997
- <span class="md-nav__icon md-icon"></span>
998
- Tags
999
- </label>
1000
- <ul class="md-nav__list" data-md-scrollfix>
1001
-
1002
-
1003
-
1004
-
1005
-
1006
-
1007
-
1008
- <li class="md-nav__item">
1009
- <a href="tags/" class="md-nav__link">
1010
-
1011
-
1012
-
1013
- <span class="md-ellipsis">
1014
- Tags
1015
-
1016
- </span>
1017
-
1018
-
1019
- </a>
1020
- </li>
1021
-
1022
-
1023
-
1024
-
1025
- </ul>
1026
- </nav>
1027
-
1028
- </li>
1029
-
1030
-
1031
-
1032
-
1033
-
1034
-
1035
-
1036
-
1037
-
1038
- <li class="md-nav__item">
1039
- <a href="https://netwk.pro/" class="md-nav__link">
1040
-
1041
-
1042
-
1043
- <span class="md-ellipsis">
1044
- Back to Website
1045
-
1046
- </span>
1047
-
1048
-
1049
- </a>
1050
- </li>
1051
-
1052
-
1053
-
1054
- </ul>
1055
- </nav>
1056
- </div>
1057
- </div>
1058
- </div>
1059
-
1060
-
1061
-
1062
- <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
1063
- <div class="md-sidebar__scrollwrap">
1064
- <div class="md-sidebar__inner">
1065
-
1066
-
1067
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
1068
-
1069
-
1070
-
1071
-
1072
-
1073
-
1074
- <label class="md-nav__title" for="__toc">
1075
- <span class="md-nav__icon md-icon"></span>
1076
- Table of contents
1077
- </label>
1078
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
1079
-
1080
- <li class="md-nav__item">
1081
- <a href="#security-that-respects-you" class="md-nav__link">
1082
- <span class="md-ellipsis">
1083
- Security That Respects You
1084
- </span>
1085
- </a>
1086
-
1087
- <nav class="md-nav" aria-label="Security That Respects You">
1088
- <ul class="md-nav__list">
1089
-
1090
- <li class="md-nav__item">
1091
- <a href="#what-we-do" class="md-nav__link">
1092
- <span class="md-ellipsis">
1093
- What We Do
1094
- </span>
1095
- </a>
1096
-
1097
- </li>
1098
-
1099
- </ul>
1100
- </nav>
1101
-
1102
- </li>
1103
-
1104
- </ul>
1105
-
1106
- </nav>
1107
- </div>
1108
- </div>
1109
- </div>
1110
-
1111
-
1112
-
1113
- <div class="md-content" data-md-component="content">
1114
- <article class="md-content__inner md-typeset">
1115
-
1116
-
1117
-
1118
- <nav class="md-tags" >
1119
-
1120
-
1121
-
1122
-
1123
- <a href="tags/#tag:about" class="md-tag">about</a>
1124
-
1125
-
1126
-
1127
-
1128
-
1129
- <a href="tags/#tag:documentation" class="md-tag">documentation</a>
1130
-
1131
-
1132
-
1133
-
1134
-
1135
- <a href="tags/#tag:network-pro" class="md-tag">network-pro</a>
1136
-
1137
-
1138
- </nav>
1139
-
1140
-
1141
-
1142
-
1143
-
1144
-
1145
- <p><sup><a href="https://spdx.dev/learn/handling-license-info/">SPDX-License-Identifier</a>:
1146
- <code>CC-BY-4.0 OR GPL-3.0-or-later</code></sup></p>
1147
- <p><a name="top"></a></p>
1148
- <h1 id="about-network-protm">About Network Pro&trade;</h1>
1149
- <!-- markdownlint-disable-file -->
1150
-
1151
- </section>
1152
- <p><img alt="npmjs" src="assets/external/img.shields.io/badge/npmjs-white.681714c1.svg"> &nbsp; <img alt="GitHub Package Registry" src="assets/external/img.shields.io/badge/GitHub_Package_Registry-white.ed8def48.svg"></p>
1153
- <h2 id="security-that-respects-you">Security That Respects You</h2>
1154
- <p>At <strong>Network Pro Strategies (Network Pro&trade;)</strong>, we deliver network security, cybersecurity, and digital privacy consulting with clarity, credibility, and care. We believe that real security doesn’t have to come at the cost of user autonomy, and that privacy-minded solutions can be both practical and powerful.</p>
1155
- <p>Our approach is built on a simple principle: <strong>the best security is the one that fits.</strong> That means we don’t push ideologies—we apply what works. We advocate for and implement <strong>free and open source solutions</strong> where they offer competitive functionality, control, and visibility. When proprietary platforms are better suited, we deploy them responsibly and securely—ensuring every recommendation is grounded in <strong>technical merit</strong>, <strong>scalability</strong>, and <strong>client goals</strong>.</p>
1156
- <h3 id="what-we-do"><strong>What We Do</strong></h3>
1157
- <p>As a remote-first consultancy, we support clients across industries and geographies with a focus on:</p>
1158
- <ul>
1159
- <li><strong>Network Hardening &amp; Perimeter Defense</strong></li>
1160
- <li><strong>Firewall Architecture &amp; Policy Optimization</strong></li>
1161
- <li><strong>Cloud Security &amp; Zero Trust Implementation</strong></li>
1162
- <li><strong>Secure Infrastructure Design &amp; Implementation</strong></li>
1163
- <li><strong>Risk Reduction &amp; Security Posture Assessment</strong></li>
1164
- </ul>
1165
- <p>Our consulting engagements range from tactical one-off solutions to strategic, long-term partnerships. Whether it’s helping a business segment its internal network, lock down its cloud footprint, or plan scalable defenses—we deliver clear value, with zero fluff.</p>
1166
- <p>We also believe education is a core pillar of real-world security. That’s why we invest in raising awareness—across both technical and general audiences—on best practices in digital privacy, secure design, and threat mitigation.</p>
1167
- <p><strong>Network Pro&trade; exists to bring strong, thoughtful security to organizations that value integrity—without sacrificing agility or trust.</strong> We don’t just secure infrastructure. We secure confidence.</p>
1168
- <p>&nbsp;</p>
1169
- <p>🔹 <a href="https://contact.neteng.pro">Let’s connect</a> to discuss how we can help secure and strengthen your business today.</p>
1170
- <hr />
1171
- <p>You can find our PGP keys and a vCard containing our contact information for your convenience below.</p>
1172
- <table>
1173
- <thead>
1174
- <tr>
1175
- <th style="text-align: right;"><img decoding="async" loading="lazy" src="assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-support.png" width="150px" height="150px" alt="PGP Key - support@neteng.pro"></th>
1176
- <th style="text-align: left;"><strong><a href="https://keys.openpgp.org/search?q=support%40neteng.pro">support@neteng.pro</a></strong><br /><strong>PGP Key (ed25519)</strong><br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.aexpk" type="application/pgp-keys"><strong>aexpk</strong></a>&nbsp; <strong>&#47;</strong> &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/support@neteng.pro.asc" type="application/pgp-keys"><strong>asc</strong></a><br />&nbsp;<br />6590b992e2e3eff12738<br />7bce2af093e9dec61ba0</th>
1177
- </tr>
1178
- </thead>
1179
- <tbody>
1180
- <tr>
1181
- <td style="text-align: right;"><strong><a href="https://keys.openpgp.org/search?q=github%40sl.neteng.cc">github@sl.neteng.cc</a></strong><br /><strong>PGP Key (ed25519)</strong><br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/github@sl.neteng.cc.aexpk" type="application/pgp-keys"><strong>aexpk</strong></a>&nbsp; <strong>&#47;</strong> &nbsp;<a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/github@sl.neteng.cc.asc" type="application/pgp-keys"><strong>asc</strong></a><br />&nbsp;<br /><strong>e8b4f1193b21601207b0</strong><br /><strong>80bbaebbb8f6d4bb723b</strong></td>
1182
- <td style="text-align: left;"><img decoding="async" loading="lazy" src="assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/pgp-github.png" width="150px" height="150px" alt="PGP Key - github@sl.neteng.cc"></td>
1183
- </tr>
1184
- <tr>
1185
- <td style="text-align: right;"><img decoding="async" loading="lazy" src="assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/img/qr/vcard.png" width="150px" height="150px" alt="vCard"></td>
1186
- <td style="text-align: left;"><strong>vCard</strong><br />&nbsp;<br /><a href="https://raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/bin/contact.vcf"><strong>vcf</strong></a></td>
1187
- </tr>
1188
- </tbody>
1189
- </table>
1190
- <p><sub><a href="#top">Back to top</a></sub></p>
1191
- <hr />
1192
- <div style="font-size: 12px; text-align: center;">
1193
-
1194
- <p>Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are <a href="./legal/#trademark" target="_self">trademarks</a> of Network Pro Strategies.</p>
1195
-
1196
- <p>Licensed under <a href="./legal/#cc-by" target="_self"><strong>CC BY 4.0</strong></a> and the <a href="./legal/#gnu-gpl" target="_self"><strong>GNU GPL</strong></a>, as published by the <a rel="noopener noreferrer" href="https://fsf.org" target="_blank">Free Software Foundation</a>, either version 3 of the License, or (at your option) any later version.</p>
1197
-
1198
- </div>
1199
-
1200
-
1201
-
1202
-
1203
-
1204
-
1205
-
1206
-
1207
-
1208
-
1209
-
1210
-
1211
-
1212
-
1213
-
1214
-
1215
- </article>
1216
- </div>
1217
-
1218
-
1219
- <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1220
- </div>
1221
-
1222
- <button type="button" class="md-top md-icon" data-md-component="top" hidden>
1223
-
1224
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8z"/></svg>
1225
- Back to top
1226
- </button>
1227
-
1228
- </main>
1229
-
1230
- <footer class="md-footer">
1231
-
1232
- <div class="md-footer-meta md-typeset">
1233
- <div class="md-footer-meta__inner md-grid">
1234
- <div class="md-copyright">
1235
-
1236
- <div class="md-copyright__highlight">
1237
- Copyright &copy; 2025 Network Pro Strategies (Network Pro&trade;) – <a href="#__consent">Change cookie settings</a>
1238
-
1239
- </div>
1240
-
1241
-
1242
- Made with
1243
- <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1244
- Material for MkDocs
1245
- </a>
1246
-
1247
- </div>
1248
-
1249
- <div class="md-social">
1250
-
1251
-
1252
-
1253
-
1254
-
1255
- <a href="https://instagram.com/netwk_pro/" target="_blank" rel="noopener" title="Network Pro on Instagram" class="md-social__link">
1256
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141m0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7m146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8m76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8M398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1"/></svg>
1257
- </a>
1258
-
1259
-
1260
-
1261
-
1262
-
1263
- <a href="https://facebook.com/neteng.pro/" target="_blank" rel="noopener" title="Network Pro on Facebook" class="md-social__link">
1264
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256c0 120 82.7 220.8 194.2 248.5V334.2h-52.8V256h52.8v-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287v175.9C413.8 494.8 512 386.9 512 256"/></svg>
1265
- </a>
1266
-
1267
-
1268
-
1269
-
1270
-
1271
- <a href="https://linkedin.com/company/netwk-pro/" target="_blank" rel="noopener" title="Network Pro on LinkedIn" class="md-social__link">
1272
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3M135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5m282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9z"/></svg>
1273
- </a>
1274
-
1275
-
1276
-
1277
-
1278
-
1279
-
1280
-
1281
- <a href="https://noc.social/@neteng_pro/" target="_blank" rel="noopener me" title="Network Pro on Mastoon" class="md-social__link">
1282
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M433 179.11c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.56-28.4-290.48 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.63 289.1 40.51 10.7 75.32 13 103.33 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1-.9-13.9c85.63 20.9 158.65 9.1 178.75 6.7 56.12-6.7 105-41.3 111.23-72.9 9.8-49.8 9-121.5 9-121.5m-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.83 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.83-6.1 23.71 27.3 18.4 53 18.4 175z"/></svg>
1283
- </a>
1284
-
1285
-
1286
-
1287
-
1288
-
1289
- <a href="https://contact.neteng.pro/" target="_blank" rel="noopener" title="Contact Us" class="md-social__link">
1290
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0s256 114.6 256 256v32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32v112c0 17.7 14.3 32 32 32s32-14.3 32-32v-32c0-106-86-192-192-192m64 192a64 64 0 1 0-128 0 64 64 0 1 0 128 0"/></svg>
1291
- </a>
1292
-
1293
- </div>
1294
-
1295
- </div>
1296
- </div>
1297
- </footer>
1298
-
1299
- </div>
1300
- <div class="md-dialog" data-md-component="dialog">
1301
- <div class="md-dialog__inner md-typeset"></div>
1302
- </div>
1303
-
1304
-
1305
- <div class="md-consent" data-md-component="consent" id="__consent" hidden>
1306
- <div class="md-consent__overlay"></div>
1307
- <aside class="md-consent__inner">
1308
- <form class="md-consent__form md-grid md-typeset" name="consent">
1309
-
1310
-
1311
-
1312
-
1313
- <h4>Cookie Consent</h4>
1314
- <p>We use cookies to recognize your repeated visits and preferences, as well as to measure the effectiveness of our documentation and whether users find what they're searching for. With your consent, you're helping us to make our documentation better.</p>
1315
- <input class="md-toggle" type="checkbox" id="__settings" >
1316
- <div class="md-consent__settings">
1317
- <ul class="task-list">
1318
-
1319
-
1320
-
1321
-
1322
-
1323
-
1324
-
1325
-
1326
-
1327
-
1328
-
1329
- <li class="task-list-item">
1330
- <label class="task-list-control">
1331
- <input type="checkbox" name="analytics" >
1332
- <span class="task-list-indicator"></span>
1333
- Google Analytics
1334
- </label>
1335
- </li>
1336
-
1337
-
1338
-
1339
-
1340
-
1341
-
1342
-
1343
-
1344
-
1345
-
1346
-
1347
-
1348
- <li class="task-list-item">
1349
- <label class="task-list-control">
1350
- <input type="checkbox" name="github" checked>
1351
- <span class="task-list-indicator"></span>
1352
- GitHub
1353
- </label>
1354
- </li>
1355
-
1356
-
1357
-
1358
- </ul>
1359
- </div>
1360
- <div class="md-consent__controls">
1361
-
1362
-
1363
-
1364
- <button type="reset" class="md-button md-button--primary">Reject</button>
1365
-
1366
-
1367
-
1368
-
1369
- <button class="md-button md-button--primary">Accept</button>
1370
-
1371
-
1372
-
1373
-
1374
-
1375
-
1376
-
1377
- <label class="md-button" for="__settings">Manage settings</label>
1378
-
1379
-
1380
- </div>
1381
- </form>
1382
- </aside>
1383
- </div>
1384
- <script>var consent=__md_get("__consent");if(consent)for(var input of document.forms.consent.elements)input.name&&(input.checked=consent[input.name]||!1);else"file:"!==location.protocol&&setTimeout((function(){document.querySelector("[data-md-component=consent]").hidden=!1}),250);var form=document.forms.consent;for(var action of["submit","reset"])form.addEventListener(action,(function(e){if(e.preventDefault(),"reset"===e.type)for(var n of document.forms.consent.elements)n.name&&(n.checked=!1);__md_set("__consent",Object.fromEntries(Array.from(new FormData(form).keys()).map((function(e){return[e,!0]})))),location.hash="",location.reload()}))</script>
1385
-
1386
-
1387
-
1388
- <script id="__config" type="application/json">{"base": ".", "features": ["navigation.instant", "navigation.tracking", "navigation.tabs", "navigation.indexes", "toc.follow", "navigation.top", "search.suggest"], "search": "assets/javascripts/workers/search.f8cc74c7.min.js", "tags": null, "translations": {"clipboard.copied": "Copied to clipboard", "clipboard.copy": "Copy to clipboard", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.placeholder": "Type to start searching", "search.result.term.missing": "Missing", "select.version": "Select version"}, "version": null}</script>
1389
-
1390
-
1391
- <script src="assets/javascripts/bundle.c8b220af.min.js"></script>
1392
-
1393
-
1394
- </body>
1395
- </html>