@networkpro/blog 1.0.3 → 1.0.5

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 (152) hide show
  1. package/.browserslistrc +12 -0
  2. package/.editorconfig +60 -0
  3. package/.gitattributes +199 -0
  4. package/.github/workflows/auto-assign.yml +32 -0
  5. package/.github/workflows/build-and-deploy.yml +117 -0
  6. package/.github/workflows/dependency-review.yml +20 -0
  7. package/.github/workflows/publish.yml +143 -0
  8. package/.markdownlint.jsonc +19 -0
  9. package/.prettierignore +38 -0
  10. package/.prettierrc +20 -0
  11. package/.stylelintignore +34 -0
  12. package/.vscode/settings.json +81 -0
  13. package/CNAME +1 -0
  14. package/LICENSE.md +265 -0
  15. package/MKDOCS.md +20 -0
  16. package/assets/consulting-terms.pdf +0 -0
  17. package/assets/license/CC-BY-4.0-rdfa.xml +741 -0
  18. package/assets/license/CC-BY-4.0.xml +25 -0
  19. package/assets/license/COPYING-rdfa.xml +1187 -0
  20. package/assets/license/COPYING.odt +0 -0
  21. package/assets/linksheet.json +8 -0
  22. package/assets/pgp/contact.vcf +13 -0
  23. package/assets/pgp/contact@s.neteng.pro.aexpk +17 -0
  24. package/assets/pgp/contact@s.neteng.pro.asc +17 -0
  25. package/assets/pgp/github@sl.neteng.cc.aexpk +29 -0
  26. package/assets/pgp/github@sl.neteng.cc.asc +29 -0
  27. package/assets/pgp/support@neteng.pro.aexpk +47 -0
  28. package/assets/pgp/support@neteng.pro.asc +47 -0
  29. package/docs/LICENSE.md +296 -0
  30. package/docs/PRIVACY.md +212 -0
  31. package/docs/README.md +115 -0
  32. package/docs/TERMS-COND.md +277 -0
  33. package/docs/TERMS-USE.md +212 -0
  34. package/docs/license/CC-BY-4.0.html +1235 -0
  35. package/docs/license/CC-BY-4.0.md +367 -0
  36. package/docs/license/CC-BY-4.0.txt +156 -0
  37. package/docs/license/COPYING.html +1413 -0
  38. package/docs/license/COPYING.md +611 -0
  39. package/docs/license/COPYING.txt +232 -0
  40. package/docs_raw/.authors.yml +11 -0
  41. package/docs_raw/contributing.md +166 -0
  42. package/docs_raw/ext/__init__.py +0 -0
  43. package/docs_raw/icon-512x512-maskable.png +0 -0
  44. package/docs_raw/index.md +28 -0
  45. package/docs_raw/manifest.json +36 -0
  46. package/docs_raw/posts/betterweb.md +59 -0
  47. package/docs_raw/posts/drafts/.meta.yml +1 -0
  48. package/docs_raw/posts/live.md +83 -0
  49. package/docs_raw/posts/moved.md +74 -0
  50. package/docs_raw/posts/pwa.md +65 -0
  51. package/docs_raw/posts/secure-secure-shell.md +561 -0
  52. package/docs_raw/sitemap.xml +83 -0
  53. package/docs_raw/tags.md +12 -0
  54. package/eslint.config.mjs +80 -0
  55. package/mkdocs.yml +115 -0
  56. package/package.json +4 -4
  57. package/postcss.config.mjs +5 -0
  58. package/ref/README.md +56 -0
  59. package/ref/help.md +17 -0
  60. package/stylelint.config.js +109 -0
  61. package/2015/01/04/secure-secure-shell/index.html +0 -1552
  62. package/2025/04/30/our-blog-is-live/index.html +0 -1216
  63. package/2025/05/11/the-network-pro-blog-has-moved/index.html +0 -1193
  64. package/404.html +0 -970
  65. package/archive/2015/index.html +0 -1141
  66. package/archive/2025/index.html +0 -1185
  67. package/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
  68. package/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +0 -2607
  69. package/assets/images/favicon.png +0 -0
  70. package/assets/javascripts/bundle.13a4f30d.min.js +0 -16
  71. package/assets/javascripts/bundle.13a4f30d.min.js.map +0 -7
  72. package/assets/javascripts/lunr/min/lunr.ar.min.js +0 -1
  73. package/assets/javascripts/lunr/min/lunr.da.min.js +0 -18
  74. package/assets/javascripts/lunr/min/lunr.de.min.js +0 -18
  75. package/assets/javascripts/lunr/min/lunr.du.min.js +0 -18
  76. package/assets/javascripts/lunr/min/lunr.el.min.js +0 -1
  77. package/assets/javascripts/lunr/min/lunr.es.min.js +0 -18
  78. package/assets/javascripts/lunr/min/lunr.fi.min.js +0 -18
  79. package/assets/javascripts/lunr/min/lunr.fr.min.js +0 -18
  80. package/assets/javascripts/lunr/min/lunr.he.min.js +0 -1
  81. package/assets/javascripts/lunr/min/lunr.hi.min.js +0 -1
  82. package/assets/javascripts/lunr/min/lunr.hu.min.js +0 -18
  83. package/assets/javascripts/lunr/min/lunr.hy.min.js +0 -1
  84. package/assets/javascripts/lunr/min/lunr.it.min.js +0 -18
  85. package/assets/javascripts/lunr/min/lunr.ja.min.js +0 -1
  86. package/assets/javascripts/lunr/min/lunr.jp.min.js +0 -1
  87. package/assets/javascripts/lunr/min/lunr.kn.min.js +0 -1
  88. package/assets/javascripts/lunr/min/lunr.ko.min.js +0 -1
  89. package/assets/javascripts/lunr/min/lunr.multi.min.js +0 -1
  90. package/assets/javascripts/lunr/min/lunr.nl.min.js +0 -18
  91. package/assets/javascripts/lunr/min/lunr.no.min.js +0 -18
  92. package/assets/javascripts/lunr/min/lunr.pt.min.js +0 -18
  93. package/assets/javascripts/lunr/min/lunr.ro.min.js +0 -18
  94. package/assets/javascripts/lunr/min/lunr.ru.min.js +0 -18
  95. package/assets/javascripts/lunr/min/lunr.sa.min.js +0 -1
  96. package/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +0 -1
  97. package/assets/javascripts/lunr/min/lunr.sv.min.js +0 -18
  98. package/assets/javascripts/lunr/min/lunr.ta.min.js +0 -1
  99. package/assets/javascripts/lunr/min/lunr.te.min.js +0 -1
  100. package/assets/javascripts/lunr/min/lunr.th.min.js +0 -1
  101. package/assets/javascripts/lunr/min/lunr.tr.min.js +0 -18
  102. package/assets/javascripts/lunr/min/lunr.vi.min.js +0 -1
  103. package/assets/javascripts/lunr/min/lunr.zh.min.js +0 -1
  104. package/assets/javascripts/lunr/tinyseg.js +0 -206
  105. package/assets/javascripts/lunr/wordcut.js +0 -6708
  106. package/assets/javascripts/workers/search.d50fe291.min.js +0 -42
  107. package/assets/javascripts/workers/search.d50fe291.min.js.map +0 -7
  108. package/assets/stylesheets/main.342714a4.min.css +0 -1
  109. package/assets/stylesheets/main.342714a4.min.css.map +0 -1
  110. package/assets/stylesheets/palette.06af60db.min.css +0 -1
  111. package/assets/stylesheets/palette.06af60db.min.css.map +0 -1
  112. package/category/security/index.html +0 -1141
  113. package/contributing/index.html +0 -1306
  114. package/feed_json_created.json +0 -1
  115. package/feed_json_updated.json +0 -1
  116. package/feed_rss_created.xml +0 -1
  117. package/feed_rss_updated.xml +0 -1
  118. package/index.html +0 -1275
  119. package/search/search_index.json +0 -1
  120. package/site.webmanifest +0 -25
  121. package/sitemap.xml +0 -39
  122. package/sitemap.xml.gz +0 -0
  123. package/tags/index.html +0 -1303
  124. /package/{ext/__init__.py → assets/.gitkeep} +0 -0
  125. /package/assets/{external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/nsa-happy-dance.png → nsa-happy-dance.png} +0 -0
  126. /package/{ext → docs_raw/ext}/slugs.py +0 -0
  127. /package/{favicon.ico → docs_raw/favicon.ico} +0 -0
  128. /package/{favicon.svg → docs_raw/favicon.svg} +0 -0
  129. /package/{fontawesome → docs_raw/fontawesome}/LICENSE.txt +0 -0
  130. /package/{fontawesome → docs_raw/fontawesome}/brands/facebook.svg +0 -0
  131. /package/{fontawesome → docs_raw/fontawesome}/brands/instagram.svg +0 -0
  132. /package/{fontawesome → docs_raw/fontawesome}/brands/linkedin.svg +0 -0
  133. /package/{fontawesome → docs_raw/fontawesome}/brands/mastodon.svg +0 -0
  134. /package/{fontawesome → docs_raw/fontawesome}/solid/at.svg +0 -0
  135. /package/{hooks → docs_raw/hooks}/socialmedia.py +0 -0
  136. /package/{favicon-180.png → docs_raw/icon-180x180.png} +0 -0
  137. /package/{favicon-192.png → docs_raw/icon-192x192.png} +0 -0
  138. /package/{favicon-512.png → docs_raw/icon-512x512.png} +0 -0
  139. /package/{favicon-splash.png → docs_raw/icon-splash.png} +0 -0
  140. /package/{img → docs_raw/img}/acode.png +0 -0
  141. /package/{img → docs_raw/img}/blog-move.png +0 -0
  142. /package/{img → docs_raw/img}/favicon.png +0 -0
  143. /package/{img → docs_raw/img}/linksheet.png +0 -0
  144. /package/{img → docs_raw/img}/logo.png +0 -0
  145. /package/{img → docs_raw/img}/pmx.png +0 -0
  146. /package/{img → docs_raw/img}/tosdr.png +0 -0
  147. /package/{img → docs_raw/img}/urlcheck.png +0 -0
  148. /package/{robots.txt → docs_raw/robots.txt} +0 -0
  149. /package/{styles → docs_raw/styles}/default.css +0 -0
  150. /package/{styles → docs_raw/styles}/global.css +0 -0
  151. /package/{styles → docs_raw/styles}/normalize.css +0 -0
  152. /package/{styles → docs_raw/styles}/style.css +0 -0
package/index.html DELETED
@@ -1,1275 +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://blog.netwk.pro/">
12
-
13
-
14
-
15
- <link rel="next" href="category/security/">
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.13">
23
-
24
-
25
-
26
- <title>Home - Network Pro™ Blog</title>
27
-
28
-
29
-
30
- <link rel="stylesheet" href="assets/stylesheets/main.342714a4.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="#blog-index" 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™ Blog" class="md-header__button md-logo" aria-label="Network Pro™ Blog" 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™ Blog
100
- </span>
101
- </div>
102
- <div class="md-header__topic" data-md-component="header-topic">
103
- <span class="md-ellipsis">
104
-
105
- Home
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.github.io" 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
- Home
237
-
238
- </a>
239
- </li>
240
-
241
-
242
-
243
-
244
-
245
-
246
-
247
-
248
-
249
-
250
- <li class="md-tabs__item">
251
- <a href="contributing/" class="md-tabs__link">
252
-
253
-
254
-
255
-
256
-
257
- Contributing
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="tags/" class="md-tabs__link">
274
-
275
-
276
-
277
-
278
-
279
- Tags
280
-
281
- </a>
282
- </li>
283
-
284
-
285
-
286
-
287
-
288
-
289
-
290
-
291
-
292
- <li class="md-tabs__item">
293
- <a href="https://netwk.pro" class="md-tabs__link">
294
-
295
-
296
-
297
-
298
-
299
- Website
300
-
301
- </a>
302
- </li>
303
-
304
-
305
-
306
-
307
-
308
-
309
-
310
-
311
-
312
-
313
- <li class="md-tabs__item">
314
- <a href="archive/2025/" class="md-tabs__link">
315
-
316
-
317
-
318
-
319
-
320
- Archive
321
-
322
- </a>
323
- </li>
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
- <li class="md-tabs__item">
336
- <a href="category/security/" class="md-tabs__link">
337
-
338
-
339
-
340
-
341
-
342
- Categories
343
-
344
- </a>
345
- </li>
346
-
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™ Blog" class="md-nav__button md-logo" aria-label="Network Pro™ Blog" data-md-component="logo">
373
-
374
- <img src="img/logo.png" alt="logo">
375
-
376
- </a>
377
- Network Pro™ Blog
378
- </label>
379
-
380
- <div class="md-nav__source">
381
- <a href="https://github.com/netwk-pro/netwk-pro.github.io" 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
-
403
-
404
-
405
-
406
- <li class="md-nav__item md-nav__item--active">
407
-
408
- <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
409
-
410
-
411
-
412
-
413
-
414
- <label class="md-nav__link md-nav__link--active" for="__toc">
415
-
416
-
417
-
418
- <span class="md-ellipsis">
419
- Home
420
-
421
- </span>
422
-
423
-
424
- <span class="md-nav__icon md-icon"></span>
425
- </label>
426
-
427
- <a href="." class="md-nav__link md-nav__link--active">
428
-
429
-
430
-
431
- <span class="md-ellipsis">
432
- Home
433
-
434
- </span>
435
-
436
-
437
- </a>
438
-
439
-
440
-
441
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
442
-
443
-
444
-
445
-
446
-
447
-
448
- <label class="md-nav__title" for="__toc">
449
- <span class="md-nav__icon md-icon"></span>
450
- Table of contents
451
- </label>
452
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
453
-
454
- <li class="md-nav__item">
455
- <a href="#the-network-protm-blog-has-moved" class="md-nav__link">
456
- <span class="md-ellipsis">
457
- The Network Pro™ Blog Has Moved
458
- </span>
459
- </a>
460
-
461
- </li>
462
-
463
- <li class="md-nav__item">
464
- <a href="#were-live" class="md-nav__link">
465
- <span class="md-ellipsis">
466
- We're Live
467
- </span>
468
- </a>
469
-
470
- </li>
471
-
472
- <li class="md-nav__item">
473
- <a href="#secure-secure-shell" class="md-nav__link">
474
- <span class="md-ellipsis">
475
- Secure Secure Shell
476
- </span>
477
- </a>
478
-
479
- </li>
480
-
481
- </ul>
482
-
483
- </nav>
484
-
485
- </li>
486
-
487
-
488
-
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
-
499
-
500
-
501
-
502
-
503
-
504
-
505
-
506
-
507
- <li class="md-nav__item md-nav__item--nested">
508
-
509
-
510
-
511
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
512
-
513
-
514
- <label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
515
-
516
-
517
-
518
- <span class="md-ellipsis">
519
- Contributing
520
-
521
- </span>
522
-
523
-
524
- <span class="md-nav__icon md-icon"></span>
525
- </label>
526
-
527
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
528
- <label class="md-nav__title" for="__nav_2">
529
- <span class="md-nav__icon md-icon"></span>
530
- Contributing
531
- </label>
532
- <ul class="md-nav__list" data-md-scrollfix>
533
-
534
-
535
-
536
-
537
-
538
-
539
-
540
- <li class="md-nav__item">
541
- <a href="contributing/" class="md-nav__link">
542
-
543
-
544
-
545
- <span class="md-ellipsis">
546
- Code of Conduct
547
-
548
- </span>
549
-
550
-
551
- </a>
552
- </li>
553
-
554
-
555
-
556
-
557
- </ul>
558
- </nav>
559
-
560
- </li>
561
-
562
-
563
-
564
-
565
-
566
-
567
-
568
-
569
-
570
-
571
-
572
-
573
-
574
-
575
-
576
-
577
-
578
-
579
-
580
-
581
-
582
- <li class="md-nav__item md-nav__item--nested">
583
-
584
-
585
-
586
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
587
-
588
-
589
- <label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
590
-
591
-
592
-
593
- <span class="md-ellipsis">
594
- Tags
595
-
596
- </span>
597
-
598
-
599
- <span class="md-nav__icon md-icon"></span>
600
- </label>
601
-
602
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
603
- <label class="md-nav__title" for="__nav_3">
604
- <span class="md-nav__icon md-icon"></span>
605
- Tags
606
- </label>
607
- <ul class="md-nav__list" data-md-scrollfix>
608
-
609
-
610
-
611
-
612
-
613
-
614
-
615
- <li class="md-nav__item">
616
- <a href="tags/" class="md-nav__link">
617
-
618
-
619
-
620
- <span class="md-ellipsis">
621
- Tag Index
622
-
623
- </span>
624
-
625
-
626
- </a>
627
- </li>
628
-
629
-
630
-
631
-
632
- </ul>
633
- </nav>
634
-
635
- </li>
636
-
637
-
638
-
639
-
640
-
641
-
642
-
643
-
644
-
645
- <li class="md-nav__item">
646
- <a href="https://netwk.pro" class="md-nav__link">
647
-
648
-
649
-
650
- <span class="md-ellipsis">
651
- Website
652
-
653
- </span>
654
-
655
-
656
- </a>
657
- </li>
658
-
659
-
660
-
661
-
662
-
663
-
664
-
665
-
666
-
667
-
668
-
669
-
670
-
671
-
672
-
673
-
674
-
675
-
676
-
677
-
678
-
679
-
680
-
681
- <li class="md-nav__item md-nav__item--nested">
682
-
683
-
684
-
685
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
686
-
687
-
688
- <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
689
-
690
-
691
-
692
- <span class="md-ellipsis">
693
- Archive
694
-
695
- </span>
696
-
697
-
698
- <span class="md-nav__icon md-icon"></span>
699
- </label>
700
-
701
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
702
- <label class="md-nav__title" for="__nav_5">
703
- <span class="md-nav__icon md-icon"></span>
704
- Archive
705
- </label>
706
- <ul class="md-nav__list" data-md-scrollfix>
707
-
708
-
709
-
710
-
711
-
712
-
713
-
714
-
715
-
716
- <li class="md-nav__item">
717
- <a href="archive/2025/" class="md-nav__link">
718
-
719
-
720
-
721
- <span class="md-ellipsis">
722
- May 2025
723
-
724
- </span>
725
-
726
-
727
- </a>
728
- </li>
729
-
730
-
731
-
732
-
733
-
734
-
735
-
736
-
737
-
738
-
739
-
740
-
741
- <li class="md-nav__item">
742
- <a href="archive/2015/" class="md-nav__link">
743
-
744
-
745
-
746
- <span class="md-ellipsis">
747
- January 2015
748
-
749
- </span>
750
-
751
-
752
- </a>
753
- </li>
754
-
755
-
756
-
757
-
758
- </ul>
759
- </nav>
760
-
761
- </li>
762
-
763
-
764
-
765
-
766
-
767
-
768
-
769
-
770
-
771
-
772
-
773
-
774
-
775
-
776
-
777
-
778
-
779
-
780
-
781
-
782
-
783
- <li class="md-nav__item md-nav__item--nested">
784
-
785
-
786
-
787
- <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
788
-
789
-
790
- <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
791
-
792
-
793
-
794
- <span class="md-ellipsis">
795
- Categories
796
-
797
- </span>
798
-
799
-
800
- <span class="md-nav__icon md-icon"></span>
801
- </label>
802
-
803
- <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
804
- <label class="md-nav__title" for="__nav_6">
805
- <span class="md-nav__icon md-icon"></span>
806
- Categories
807
- </label>
808
- <ul class="md-nav__list" data-md-scrollfix>
809
-
810
-
811
-
812
-
813
-
814
-
815
-
816
-
817
-
818
- <li class="md-nav__item">
819
- <a href="category/security/" class="md-nav__link">
820
-
821
-
822
-
823
- <span class="md-ellipsis">
824
- Security
825
-
826
- </span>
827
-
828
-
829
- </a>
830
- </li>
831
-
832
-
833
-
834
-
835
- </ul>
836
- </nav>
837
-
838
- </li>
839
-
840
-
841
-
842
- </ul>
843
- </nav>
844
- </div>
845
- </div>
846
- </div>
847
-
848
-
849
-
850
- <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
851
- <div class="md-sidebar__scrollwrap">
852
- <div class="md-sidebar__inner">
853
-
854
-
855
- <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
856
-
857
-
858
-
859
-
860
-
861
-
862
- <label class="md-nav__title" for="__toc">
863
- <span class="md-nav__icon md-icon"></span>
864
- Table of contents
865
- </label>
866
- <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
867
-
868
- <li class="md-nav__item">
869
- <a href="#the-network-protm-blog-has-moved" class="md-nav__link">
870
- <span class="md-ellipsis">
871
- The Network Pro™ Blog Has Moved
872
- </span>
873
- </a>
874
-
875
- </li>
876
-
877
- <li class="md-nav__item">
878
- <a href="#were-live" class="md-nav__link">
879
- <span class="md-ellipsis">
880
- We're Live
881
- </span>
882
- </a>
883
-
884
- </li>
885
-
886
- <li class="md-nav__item">
887
- <a href="#secure-secure-shell" class="md-nav__link">
888
- <span class="md-ellipsis">
889
- Secure Secure Shell
890
- </span>
891
- </a>
892
-
893
- </li>
894
-
895
- </ul>
896
-
897
- </nav>
898
- </div>
899
- </div>
900
- </div>
901
-
902
-
903
-
904
- <div class="md-content" data-md-component="content">
905
- <div class="md-content__inner">
906
- <header class="md-typeset">
907
- <p><sup><a href="https://spdx.dev/learn/handling-license-info/">SPDX-License-Identifier</a>:
908
- <code>CC-BY-4.0 OR GPL-3.0-or-later</code></sup></p>
909
- <h1 id="blog-index">Blog Index</h1>
910
- <p><a href="https://blog.netwk.pro/"><img src="img/blog-move.png" style="width: 300px; height: auto;" class="center-image" alt="We've Moved!"></a></p>
911
- <style>
912
- .center-image {
913
- display: block;
914
- margin-left: auto;
915
- margin-right: auto;
916
- }
917
- </style>
918
- </header>
919
-
920
- <article class="md-post md-post--excerpt">
921
- <header class="md-post__header">
922
-
923
- <nav class="md-post__authors md-typeset">
924
-
925
- <span class="md-author">
926
- <img src="assets/external/avatars.githubusercontent.com/u/170266279.png" alt="Network Pro">
927
- </span>
928
-
929
- </nav>
930
-
931
- <div class="md-post__meta md-meta">
932
- <ul class="md-meta__list">
933
- <li class="md-meta__item">
934
- <time datetime="2025-05-11 00:00:00+00:00">May 11, 2025</time></li>
935
-
936
-
937
-
938
- <li class="md-meta__item">
939
-
940
- 2 min read
941
-
942
- </li>
943
-
944
- </ul>
945
-
946
- </div>
947
- </header>
948
- <div class="md-post__content md-typeset">
949
- <h2 id="the-network-protm-blog-has-moved"><a class="toclink" href="2025/05/11/the-network-pro-blog-has-moved/">The Network Pro™ Blog Has Moved</a></h2>
950
- <h3 id="evolving-securely-the-network-protm-blog-has-moved"><a class="toclink" href="2025/05/11/the-network-pro-blog-has-moved/#evolving-securely-the-network-protm-blog-has-moved">🔁 Evolving Securely: The Network Pro™ Blog Has Moved</a></h3>
951
- <p><strong>Same Mission. Stronger Platform. More Accessible Knowledge.</strong></p>
952
- <p>Since launching the <strong>Network Pro™ Blog</strong>, our purpose has been clear:
953
- Deliver uncompromising insight, grounded in technical experience and a commitment to <strong>privacy-respecting, resilient cybersecurity</strong>.</p>
954
- <p>Today, that mission continues—on a new, streamlined domain:<br />
955
- <strong><a href="https://blog.netwk.pro">https://blog.netwk.pro</a></strong></p>
956
- <p>This move isn’t just cosmetic. It reflects our continued investment in accessibility, performance, and <strong>security-aware publishing infrastructure</strong>—with all the same clarity and content integrity you’ve come to expect.</p>
957
-
958
-
959
- <nav class="md-post__action">
960
- <a href="2025/05/11/the-network-pro-blog-has-moved/">
961
- Continue reading
962
- </a>
963
- </nav>
964
-
965
- </div>
966
- </article>
967
-
968
- <article class="md-post md-post--excerpt">
969
- <header class="md-post__header">
970
-
971
- <nav class="md-post__authors md-typeset">
972
-
973
- <span class="md-author">
974
- <img src="assets/external/avatars.githubusercontent.com/u/170266279.png" alt="Network Pro">
975
- </span>
976
-
977
- </nav>
978
-
979
- <div class="md-post__meta md-meta">
980
- <ul class="md-meta__list">
981
- <li class="md-meta__item">
982
- <time datetime="2025-04-30 00:00:00+00:00">April 30, 2025</time></li>
983
-
984
-
985
-
986
- <li class="md-meta__item">
987
-
988
- 2 min read
989
-
990
- </li>
991
-
992
- </ul>
993
-
994
- </div>
995
- </header>
996
- <div class="md-post__content md-typeset">
997
- <h2 id="were-live"><a class="toclink" href="2025/04/30/our-blog-is-live/">We're Live</a></h2>
998
- <h3 id="welcome-to-the-network-protm-blog-cybersecurity-privacy-open-knowledge"><a class="toclink" href="2025/04/30/our-blog-is-live/#welcome-to-the-network-protm-blog-cybersecurity-privacy-open-knowledge">🛡️ Welcome to the Network Pro&trade; Blog: Cybersecurity. Privacy. Open Knowledge</a></h3>
999
- <p>In a digital world where threats are persistent and privacy is too often an afterthought, <strong>Network Pro Strategies</strong> was founded on a belief that <strong>effective security doesn't require compromise</strong>. We specialize in helping organizations and individuals <strong>navigate today’s cybersecurity challenges with confidence, clarity, and control</strong>.</p>
1000
- <p>Today marks the launch of our official blog—your go-to destination for <strong>field-tested strategies, implementation insights, and transparent thought leadership</strong> across cybersecurity, network defense, and privacy-aware infrastructure.</p>
1001
- <hr />
1002
- <h4 id="why-this-blog-exists"><a class="toclink" href="2025/04/30/our-blog-is-live/#why-this-blog-exists">📡 Why This Blog Exists</a></h4>
1003
- <p>Modern security isn’t just about technology—it’s about <strong>trust, autonomy, and informed choices</strong>. As threats evolve and surveillance becomes normalized, we believe clients deserve more than marketing fluff and opaque solutions.</p>
1004
-
1005
-
1006
- <nav class="md-post__action">
1007
- <a href="2025/04/30/our-blog-is-live/">
1008
- Continue reading
1009
- </a>
1010
- </nav>
1011
-
1012
- </div>
1013
- </article>
1014
-
1015
- <article class="md-post md-post--excerpt">
1016
- <header class="md-post__header">
1017
-
1018
- <nav class="md-post__authors md-typeset">
1019
-
1020
- <span class="md-author">
1021
- <img src="assets/external/avatars.githubusercontent.com/u/170266279.png" alt="Network Pro">
1022
- </span>
1023
-
1024
- </nav>
1025
-
1026
- <div class="md-post__meta md-meta">
1027
- <ul class="md-meta__list">
1028
- <li class="md-meta__item">
1029
- <time datetime="2015-01-04 00:00:00+00:00">January 4, 2015</time></li>
1030
-
1031
- <li class="md-meta__item">
1032
- in
1033
-
1034
- <a href="category/security/" class="md-meta__link">Security</a></li>
1035
-
1036
-
1037
-
1038
- <li class="md-meta__item">
1039
-
1040
- 13 min read
1041
-
1042
- </li>
1043
-
1044
- </ul>
1045
-
1046
- </div>
1047
- </header>
1048
- <div class="md-post__content md-typeset">
1049
- <h2 id="secure-secure-shell"><a class="toclink" href="2015/01/04/secure-secure-shell/">Secure Secure Shell</a></h2>
1050
- <!-- markdownlint-disable-file -->
1051
- <!-- eslint-disable -->
1052
-
1053
- <blockquote style="font-size: small; font-style: italic; font-weight: bold;">
1054
- Originally published on 1/4/2015 by <a rel="noopener noreferrer" href="https://github.com/stribika">stribika</a> at:<br />
1055
- <a rel="noopener noreferrer" href="https://blog.stribik.technology/2015/01/04/secure-secure-shell.html">https://blog.stribik.technology/2015/01/04/secure-secure-shell.html</a>
1056
- </blockquote>
1057
-
1058
- <blockquote style="font-size: small; font-style: italic; font-weight: bold;">
1059
- Mirrored to preserve information. Minor changes have been made, and this is noted where applicable. Also see:<br />
1060
- <a rel="noopener noreferrer" href="https://security.stackexchange.com/questions/143442/what-are-ssh-keygen-best-practices">https://security.stackexchange.com/questions/143442/what-are-ssh-keygen-best-practices</a>
1061
- </blockquote>
1062
-
1063
- <blockquote style="font-size: small;">
1064
- 📝 <strong><i>NOTE:</i></strong> Despite this article's age, we've yet to come across a better source of information with regard to SSH configuration.
1065
- </blockquote>
1066
-
1067
- <ul>
1068
- <li><a href="2015/01/04/secure-secure-shell/#sshd">Skip to the good part.</a></li>
1069
- </ul>
1070
- <p>You may have heard that the NSA can decrypt SSH at least some of the time.
1071
- If you have not, then read the <a href="https://www.spiegel.de/international/germany/inside-the-nsa-s-war-on-internet-security-a-1010361.html&gt;)">latest batch of Snowden documents</a> now. All of it. This post will still be here when you finish. My goal with this post here is to make NSA analysts sad.</p>
1072
- <p>TL;DR: Scan this post for fixed width fonts, these will be the config file snippets and commands you have to use.</p>
1073
-
1074
-
1075
- <nav class="md-post__action">
1076
- <a href="2015/01/04/secure-secure-shell/">
1077
- Continue reading
1078
- </a>
1079
- </nav>
1080
-
1081
- </div>
1082
- </article>
1083
-
1084
-
1085
-
1086
-
1087
-
1088
-
1089
-
1090
- <nav class="md-pagination">
1091
-
1092
- </nav>
1093
-
1094
-
1095
- </div>
1096
- </div>
1097
-
1098
-
1099
- <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1100
- </div>
1101
-
1102
- <button type="button" class="md-top md-icon" data-md-component="top" hidden>
1103
-
1104
- <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>
1105
- Back to top
1106
- </button>
1107
-
1108
- </main>
1109
-
1110
- <footer class="md-footer">
1111
-
1112
- <div class="md-footer-meta md-typeset">
1113
- <div class="md-footer-meta__inner md-grid">
1114
- <div class="md-copyright">
1115
-
1116
- <div class="md-copyright__highlight">
1117
- Copyright &copy; 2025 Network Pro Strategies (Network Pro&trade;) – <a href="#__consent">Change cookie settings</a>
1118
-
1119
- </div>
1120
-
1121
-
1122
- Made with
1123
- <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1124
- Material for MkDocs
1125
- </a>
1126
-
1127
- </div>
1128
-
1129
- <div class="md-social">
1130
-
1131
-
1132
-
1133
-
1134
-
1135
- <a href="https://instagram.com/netwk_pro/" target="_blank" rel="noopener" title="Network Pro on Instagram" class="md-social__link">
1136
- <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>
1137
- </a>
1138
-
1139
-
1140
-
1141
-
1142
-
1143
- <a href="https://facebook.com/neteng.pro/" target="_blank" rel="noopener" title="Network Pro on Facebook" class="md-social__link">
1144
- <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>
1145
- </a>
1146
-
1147
-
1148
-
1149
-
1150
-
1151
- <a href="https://linkedin.com/company/netwk-pro/" target="_blank" rel="noopener" title="Network Pro on LinkedIn" class="md-social__link">
1152
- <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>
1153
- </a>
1154
-
1155
-
1156
-
1157
-
1158
-
1159
-
1160
-
1161
- <a href="https://noc.social/@neteng_pro/" target="_blank" rel="noopener me" title="Network Pro on Mastoon" class="md-social__link">
1162
- <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>
1163
- </a>
1164
-
1165
-
1166
-
1167
-
1168
-
1169
- <a href="https://contact.neteng.pro/" target="_blank" rel="noopener" title="Contact Us" class="md-social__link">
1170
- <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>
1171
- </a>
1172
-
1173
- </div>
1174
-
1175
- </div>
1176
- </div>
1177
- </footer>
1178
-
1179
- </div>
1180
- <div class="md-dialog" data-md-component="dialog">
1181
- <div class="md-dialog__inner md-typeset"></div>
1182
- </div>
1183
-
1184
-
1185
- <div class="md-consent" data-md-component="consent" id="__consent" hidden>
1186
- <div class="md-consent__overlay"></div>
1187
- <aside class="md-consent__inner">
1188
- <form class="md-consent__form md-grid md-typeset" name="consent">
1189
-
1190
-
1191
-
1192
-
1193
- <h4>Cookie Consent</h4>
1194
- <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>
1195
- <input class="md-toggle" type="checkbox" id="__settings" >
1196
- <div class="md-consent__settings">
1197
- <ul class="task-list">
1198
-
1199
-
1200
-
1201
-
1202
-
1203
-
1204
-
1205
-
1206
-
1207
-
1208
-
1209
- <li class="task-list-item">
1210
- <label class="task-list-control">
1211
- <input type="checkbox" name="analytics" >
1212
- <span class="task-list-indicator"></span>
1213
- Google Analytics
1214
- </label>
1215
- </li>
1216
-
1217
-
1218
-
1219
-
1220
-
1221
-
1222
-
1223
-
1224
-
1225
-
1226
-
1227
-
1228
- <li class="task-list-item">
1229
- <label class="task-list-control">
1230
- <input type="checkbox" name="github" checked>
1231
- <span class="task-list-indicator"></span>
1232
- GitHub
1233
- </label>
1234
- </li>
1235
-
1236
-
1237
-
1238
- </ul>
1239
- </div>
1240
- <div class="md-consent__controls">
1241
-
1242
-
1243
-
1244
- <button type="reset" class="md-button md-button--primary">Reject</button>
1245
-
1246
-
1247
-
1248
-
1249
- <button class="md-button md-button--primary">Accept</button>
1250
-
1251
-
1252
-
1253
-
1254
-
1255
-
1256
-
1257
- <label class="md-button" for="__settings">Manage settings</label>
1258
-
1259
-
1260
- </div>
1261
- </form>
1262
- </aside>
1263
- </div>
1264
- <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>
1265
-
1266
-
1267
-
1268
- <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.d50fe291.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>
1269
-
1270
-
1271
- <script src="assets/javascripts/bundle.13a4f30d.min.js"></script>
1272
-
1273
-
1274
- </body>
1275
- </html>