@networkpro/blog 0.1.6

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 (93) hide show
  1. package/2015/01/04/secure-secure-shell/index.html +1438 -0
  2. package/2025/04/30/our-blog-is-live/index.html +1100 -0
  3. package/404.html +858 -0
  4. package/ATTRIBUTION/index.html +897 -0
  5. package/CONDUCT/index.html +1215 -0
  6. package/archive/2015/index.html +969 -0
  7. package/archive/2025/index.html +949 -0
  8. package/assets/external/avatars.githubusercontent.com/u/170266279.png +0 -0
  9. package/assets/external/raw.githubusercontent.com/netwk-pro/netwk-pro.github.io/refs/heads/master/assets/nsa-happy-dance.png +0 -0
  10. package/assets/external/unpkg.com/mermaid@11/dist/mermaid.min.js +2607 -0
  11. package/assets/images/favicon.png +0 -0
  12. package/assets/javascripts/bundle.13a4f30d.min.js +16 -0
  13. package/assets/javascripts/bundle.13a4f30d.min.js.map +7 -0
  14. package/assets/javascripts/lunr/min/lunr.ar.min.js +1 -0
  15. package/assets/javascripts/lunr/min/lunr.da.min.js +18 -0
  16. package/assets/javascripts/lunr/min/lunr.de.min.js +18 -0
  17. package/assets/javascripts/lunr/min/lunr.du.min.js +18 -0
  18. package/assets/javascripts/lunr/min/lunr.el.min.js +1 -0
  19. package/assets/javascripts/lunr/min/lunr.es.min.js +18 -0
  20. package/assets/javascripts/lunr/min/lunr.fi.min.js +18 -0
  21. package/assets/javascripts/lunr/min/lunr.fr.min.js +18 -0
  22. package/assets/javascripts/lunr/min/lunr.he.min.js +1 -0
  23. package/assets/javascripts/lunr/min/lunr.hi.min.js +1 -0
  24. package/assets/javascripts/lunr/min/lunr.hu.min.js +18 -0
  25. package/assets/javascripts/lunr/min/lunr.hy.min.js +1 -0
  26. package/assets/javascripts/lunr/min/lunr.it.min.js +18 -0
  27. package/assets/javascripts/lunr/min/lunr.ja.min.js +1 -0
  28. package/assets/javascripts/lunr/min/lunr.jp.min.js +1 -0
  29. package/assets/javascripts/lunr/min/lunr.kn.min.js +1 -0
  30. package/assets/javascripts/lunr/min/lunr.ko.min.js +1 -0
  31. package/assets/javascripts/lunr/min/lunr.multi.min.js +1 -0
  32. package/assets/javascripts/lunr/min/lunr.nl.min.js +18 -0
  33. package/assets/javascripts/lunr/min/lunr.no.min.js +18 -0
  34. package/assets/javascripts/lunr/min/lunr.pt.min.js +18 -0
  35. package/assets/javascripts/lunr/min/lunr.ro.min.js +18 -0
  36. package/assets/javascripts/lunr/min/lunr.ru.min.js +18 -0
  37. package/assets/javascripts/lunr/min/lunr.sa.min.js +1 -0
  38. package/assets/javascripts/lunr/min/lunr.stemmer.support.min.js +1 -0
  39. package/assets/javascripts/lunr/min/lunr.sv.min.js +18 -0
  40. package/assets/javascripts/lunr/min/lunr.ta.min.js +1 -0
  41. package/assets/javascripts/lunr/min/lunr.te.min.js +1 -0
  42. package/assets/javascripts/lunr/min/lunr.th.min.js +1 -0
  43. package/assets/javascripts/lunr/min/lunr.tr.min.js +18 -0
  44. package/assets/javascripts/lunr/min/lunr.vi.min.js +1 -0
  45. package/assets/javascripts/lunr/min/lunr.zh.min.js +1 -0
  46. package/assets/javascripts/lunr/tinyseg.js +206 -0
  47. package/assets/javascripts/lunr/wordcut.js +6708 -0
  48. package/assets/javascripts/workers/search.d50fe291.min.js +42 -0
  49. package/assets/javascripts/workers/search.d50fe291.min.js.map +7 -0
  50. package/assets/stylesheets/main.342714a4.min.css +1 -0
  51. package/assets/stylesheets/main.342714a4.min.css.map +1 -0
  52. package/assets/stylesheets/palette.06af60db.min.css +1 -0
  53. package/assets/stylesheets/palette.06af60db.min.css.map +1 -0
  54. package/author/team/index.html +888 -0
  55. package/category/security/index.html +971 -0
  56. package/ext/__init__.py +0 -0
  57. package/ext/slugs.py +23 -0
  58. package/favicon-180.png +0 -0
  59. package/favicon-192.png +0 -0
  60. package/favicon-512.png +0 -0
  61. package/favicon-splash.png +0 -0
  62. package/favicon.ico +0 -0
  63. package/favicon.svg +550 -0
  64. package/feed_json_created.json +1 -0
  65. package/feed_json_updated.json +1 -0
  66. package/feed_rss_created.xml +1 -0
  67. package/feed_rss_updated.xml +1 -0
  68. package/fontawesome/LICENSE.txt +165 -0
  69. package/fontawesome/brands/facebook.svg +1 -0
  70. package/fontawesome/brands/instagram.svg +1 -0
  71. package/fontawesome/brands/linkedin.svg +1 -0
  72. package/fontawesome/brands/mastodon.svg +1 -0
  73. package/fontawesome/solid/at.svg +1 -0
  74. package/hooks/socialmedia.py +21 -0
  75. package/img/acode.png +0 -0
  76. package/img/favicon.png +0 -0
  77. package/img/linksheet.png +0 -0
  78. package/img/logo.png +0 -0
  79. package/img/pmx.png +0 -0
  80. package/img/tosdr.png +0 -0
  81. package/img/urlcheck.png +0 -0
  82. package/index.html +1013 -0
  83. package/package.json +66 -0
  84. package/robots.txt +13 -0
  85. package/search/search_index.json +1 -0
  86. package/site.webmanifest +25 -0
  87. package/sitemap.xml +43 -0
  88. package/sitemap.xml.gz +0 -0
  89. package/styles/default.css +509 -0
  90. package/styles/global.css +3 -0
  91. package/styles/normalize.css +364 -0
  92. package/styles/style.css +314 -0
  93. package/tags/index.html +1135 -0
@@ -0,0 +1,1215 @@
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/CONDUCT/">
12
+
13
+
14
+ <link rel="prev" href="..">
15
+
16
+
17
+ <link rel="next" href="../tags/">
18
+
19
+
20
+ <link rel="alternate" type="application/rss+xml" title="RSS feed" href="../feed_rss_created.xml">
21
+ <link rel="alternate" type="application/rss+xml" title="RSS feed of updated content" href="../feed_rss_updated.xml">
22
+
23
+ <link rel="icon" href="../img/favicon.png">
24
+ <meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.13">
25
+
26
+
27
+
28
+ <title>Contributing - Network Pro Strategies</title>
29
+
30
+
31
+
32
+ <link rel="stylesheet" href="../assets/stylesheets/main.342714a4.min.css">
33
+
34
+
35
+ <link rel="stylesheet" href="../assets/stylesheets/palette.06af60db.min.css">
36
+
37
+
38
+
39
+
40
+
41
+
42
+
43
+
44
+
45
+
46
+
47
+
48
+ <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>
49
+
50
+
51
+
52
+
53
+
54
+
55
+ </head>
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+ <body dir="ltr" data-md-color-scheme="default" data-md-color-primary="amber" data-md-color-accent="yellow">
66
+
67
+
68
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
69
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
70
+ <label class="md-overlay" for="__drawer"></label>
71
+ <div data-md-component="skip">
72
+
73
+
74
+ <a href="#contributor-covenant-code-of-conduct" class="md-skip">
75
+ Skip to content
76
+ </a>
77
+
78
+ </div>
79
+ <div data-md-component="announce">
80
+
81
+ </div>
82
+
83
+
84
+
85
+
86
+ <header class="md-header" data-md-component="header">
87
+ <nav class="md-header__inner md-grid" aria-label="Header">
88
+ <a href=".." title="Network Pro Strategies" class="md-header__button md-logo" aria-label="Network Pro Strategies" data-md-component="logo">
89
+
90
+ <img src="../img/logo.png" alt="logo">
91
+
92
+ </a>
93
+ <label class="md-header__button md-icon" for="__drawer">
94
+
95
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
96
+ </label>
97
+ <div class="md-header__title" data-md-component="header-title">
98
+ <div class="md-header__ellipsis">
99
+ <div class="md-header__topic">
100
+ <span class="md-ellipsis">
101
+ Network Pro Strategies
102
+ </span>
103
+ </div>
104
+ <div class="md-header__topic" data-md-component="header-topic">
105
+ <span class="md-ellipsis">
106
+
107
+ Contributing
108
+
109
+ </span>
110
+ </div>
111
+ </div>
112
+ </div>
113
+
114
+
115
+ <form class="md-header__option" data-md-component="palette">
116
+
117
+
118
+
119
+
120
+ <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">
121
+
122
+ <label class="md-header__button md-icon" title="Switch to light mode" for="__palette_1" hidden>
123
+ <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>
124
+ </label>
125
+
126
+
127
+
128
+
129
+
130
+ <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">
131
+
132
+ <label class="md-header__button md-icon" title="Switch to system preference" for="__palette_2" hidden>
133
+ <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>
134
+ </label>
135
+
136
+
137
+
138
+
139
+
140
+ <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">
141
+
142
+ <label class="md-header__button md-icon" title="Switch to dark mode" for="__palette_0" hidden>
143
+ <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>
144
+ </label>
145
+
146
+
147
+ </form>
148
+
149
+
150
+
151
+ <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>
152
+
153
+
154
+
155
+
156
+
157
+ <label class="md-header__button md-icon" for="__search">
158
+
159
+ <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>
160
+ </label>
161
+ <div class="md-search" data-md-component="search" role="dialog">
162
+ <label class="md-search__overlay" for="__search"></label>
163
+ <div class="md-search__inner" role="search">
164
+ <form class="md-search__form" name="search">
165
+ <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>
166
+ <label class="md-search__icon md-icon" for="__search">
167
+
168
+ <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>
169
+
170
+ <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>
171
+ </label>
172
+ <nav class="md-search__options" aria-label="Search">
173
+
174
+ <button type="reset" class="md-search__icon md-icon" title="Clear" aria-label="Clear" tabindex="-1">
175
+
176
+ <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>
177
+ </button>
178
+ </nav>
179
+
180
+ <div class="md-search__suggest" data-md-component="search-suggest"></div>
181
+
182
+ </form>
183
+ <div class="md-search__output">
184
+ <div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
185
+ <div class="md-search-result" data-md-component="search-result">
186
+ <div class="md-search-result__meta">
187
+ Initializing search
188
+ </div>
189
+ <ol class="md-search-result__list" role="presentation"></ol>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+ </div>
195
+
196
+
197
+
198
+ <div class="md-header__source">
199
+ <a href="https://github.com/netwk-pro/blog" title="Go to repository" class="md-source" data-md-component="source">
200
+ <div class="md-source__icon md-icon">
201
+
202
+ <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>
203
+ </div>
204
+ <div class="md-source__repository">
205
+ GitHub
206
+ </div>
207
+ </a>
208
+ </div>
209
+
210
+ </nav>
211
+
212
+ </header>
213
+
214
+ <div class="md-container" data-md-component="container">
215
+
216
+
217
+
218
+
219
+
220
+ <nav class="md-tabs" aria-label="Tabs" data-md-component="tabs">
221
+ <div class="md-grid">
222
+ <ul class="md-tabs__list">
223
+
224
+
225
+
226
+
227
+
228
+
229
+ <li class="md-tabs__item">
230
+ <a href=".." class="md-tabs__link">
231
+
232
+
233
+
234
+
235
+
236
+ Blog Home
237
+
238
+ </a>
239
+ </li>
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+ <li class="md-tabs__item md-tabs__item--active">
251
+ <a href="./" 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
+ <li class="md-tabs__item">
270
+ <a href="../tags/" class="md-tabs__link">
271
+
272
+
273
+
274
+
275
+
276
+ Tags
277
+
278
+ </a>
279
+ </li>
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+ <li class="md-tabs__item">
289
+ <a href="https://netwk.pro/" class="md-tabs__link">
290
+
291
+
292
+
293
+
294
+
295
+ Website
296
+
297
+ </a>
298
+ </li>
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+ <li class="md-tabs__item">
310
+ <a href="../archive/2025/" class="md-tabs__link">
311
+
312
+
313
+
314
+
315
+
316
+ Archive
317
+
318
+ </a>
319
+ </li>
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+ <li class="md-tabs__item">
332
+ <a href="../category/security/" class="md-tabs__link">
333
+
334
+
335
+
336
+
337
+
338
+ Categories
339
+
340
+ </a>
341
+ </li>
342
+
343
+
344
+
345
+
346
+ </ul>
347
+ </div>
348
+ </nav>
349
+
350
+
351
+
352
+ <main class="md-main" data-md-component="main">
353
+ <div class="md-main__inner md-grid">
354
+
355
+
356
+
357
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
358
+ <div class="md-sidebar__scrollwrap">
359
+ <div class="md-sidebar__inner">
360
+
361
+
362
+
363
+
364
+
365
+
366
+ <nav class="md-nav md-nav--primary md-nav--lifted" aria-label="Navigation" data-md-level="0">
367
+ <label class="md-nav__title" for="__drawer">
368
+ <a href=".." title="Network Pro Strategies" class="md-nav__button md-logo" aria-label="Network Pro Strategies" data-md-component="logo">
369
+
370
+ <img src="../img/logo.png" alt="logo">
371
+
372
+ </a>
373
+ Network Pro Strategies
374
+ </label>
375
+
376
+ <div class="md-nav__source">
377
+ <a href="https://github.com/netwk-pro/blog" title="Go to repository" class="md-source" data-md-component="source">
378
+ <div class="md-source__icon md-icon">
379
+
380
+ <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>
381
+ </div>
382
+ <div class="md-source__repository">
383
+ GitHub
384
+ </div>
385
+ </a>
386
+ </div>
387
+
388
+ <ul class="md-nav__list" data-md-scrollfix>
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+ <li class="md-nav__item">
399
+ <a href=".." class="md-nav__link">
400
+
401
+
402
+
403
+ <span class="md-ellipsis">
404
+ Blog Home
405
+
406
+ </span>
407
+
408
+
409
+ </a>
410
+ </li>
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+ <li class="md-nav__item md-nav__item--active">
423
+
424
+ <input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
425
+
426
+
427
+
428
+
429
+
430
+ <label class="md-nav__link md-nav__link--active" for="__toc">
431
+
432
+
433
+
434
+ <span class="md-ellipsis">
435
+ Contributing
436
+
437
+ </span>
438
+
439
+
440
+ <span class="md-nav__icon md-icon"></span>
441
+ </label>
442
+
443
+ <a href="./" class="md-nav__link md-nav__link--active">
444
+
445
+
446
+
447
+ <span class="md-ellipsis">
448
+ Contributing
449
+
450
+ </span>
451
+
452
+
453
+ </a>
454
+
455
+
456
+
457
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
458
+
459
+
460
+
461
+
462
+
463
+
464
+ <label class="md-nav__title" for="__toc">
465
+ <span class="md-nav__icon md-icon"></span>
466
+ Table of contents
467
+ </label>
468
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
469
+
470
+ <li class="md-nav__item">
471
+ <a href="#contents" class="md-nav__link">
472
+ <span class="md-ellipsis">
473
+ Contents
474
+ </span>
475
+ </a>
476
+
477
+ </li>
478
+
479
+ <li class="md-nav__item">
480
+ <a href="#our-pledge" class="md-nav__link">
481
+ <span class="md-ellipsis">
482
+ Our Pledge
483
+ </span>
484
+ </a>
485
+
486
+ </li>
487
+
488
+ <li class="md-nav__item">
489
+ <a href="#our-standards" class="md-nav__link">
490
+ <span class="md-ellipsis">
491
+ Our Standards
492
+ </span>
493
+ </a>
494
+
495
+ </li>
496
+
497
+ <li class="md-nav__item">
498
+ <a href="#responsibilities" class="md-nav__link">
499
+ <span class="md-ellipsis">
500
+ Responsibilities
501
+ </span>
502
+ </a>
503
+
504
+ </li>
505
+
506
+ <li class="md-nav__item">
507
+ <a href="#scope" class="md-nav__link">
508
+ <span class="md-ellipsis">
509
+ Scope
510
+ </span>
511
+ </a>
512
+
513
+ </li>
514
+
515
+ <li class="md-nav__item">
516
+ <a href="#enforcement" class="md-nav__link">
517
+ <span class="md-ellipsis">
518
+ Enforcement
519
+ </span>
520
+ </a>
521
+
522
+ </li>
523
+
524
+ <li class="md-nav__item">
525
+ <a href="#attribution" class="md-nav__link">
526
+ <span class="md-ellipsis">
527
+ Attribution
528
+ </span>
529
+ </a>
530
+
531
+ </li>
532
+
533
+ </ul>
534
+
535
+ </nav>
536
+
537
+ </li>
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+ <li class="md-nav__item">
548
+ <a href="../tags/" class="md-nav__link">
549
+
550
+
551
+
552
+ <span class="md-ellipsis">
553
+ Tags
554
+
555
+ </span>
556
+
557
+
558
+ </a>
559
+ </li>
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+ <li class="md-nav__item">
570
+ <a href="https://netwk.pro/" class="md-nav__link">
571
+
572
+
573
+
574
+ <span class="md-ellipsis">
575
+ Website
576
+
577
+ </span>
578
+
579
+
580
+ </a>
581
+ </li>
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+ <li class="md-nav__item md-nav__item--nested">
606
+
607
+
608
+
609
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_5" >
610
+
611
+
612
+ <label class="md-nav__link" for="__nav_5" id="__nav_5_label" tabindex="0">
613
+
614
+
615
+
616
+ <span class="md-ellipsis">
617
+ Archive
618
+
619
+ </span>
620
+
621
+
622
+ <span class="md-nav__icon md-icon"></span>
623
+ </label>
624
+
625
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_5_label" aria-expanded="false">
626
+ <label class="md-nav__title" for="__nav_5">
627
+ <span class="md-nav__icon md-icon"></span>
628
+ Archive
629
+ </label>
630
+ <ul class="md-nav__list" data-md-scrollfix>
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+ <li class="md-nav__item">
641
+ <a href="../archive/2025/" class="md-nav__link">
642
+
643
+
644
+
645
+ <span class="md-ellipsis">
646
+ April 2025
647
+
648
+ </span>
649
+
650
+
651
+ </a>
652
+ </li>
653
+
654
+
655
+
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+ <li class="md-nav__item">
666
+ <a href="../archive/2015/" class="md-nav__link">
667
+
668
+
669
+
670
+ <span class="md-ellipsis">
671
+ January 2015
672
+
673
+ </span>
674
+
675
+
676
+ </a>
677
+ </li>
678
+
679
+
680
+
681
+
682
+ </ul>
683
+ </nav>
684
+
685
+ </li>
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+ <li class="md-nav__item md-nav__item--nested">
708
+
709
+
710
+
711
+ <input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_6" >
712
+
713
+
714
+ <label class="md-nav__link" for="__nav_6" id="__nav_6_label" tabindex="0">
715
+
716
+
717
+
718
+ <span class="md-ellipsis">
719
+ Categories
720
+
721
+ </span>
722
+
723
+
724
+ <span class="md-nav__icon md-icon"></span>
725
+ </label>
726
+
727
+ <nav class="md-nav" data-md-level="1" aria-labelledby="__nav_6_label" aria-expanded="false">
728
+ <label class="md-nav__title" for="__nav_6">
729
+ <span class="md-nav__icon md-icon"></span>
730
+ Categories
731
+ </label>
732
+ <ul class="md-nav__list" data-md-scrollfix>
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+ <li class="md-nav__item">
743
+ <a href="../category/security/" class="md-nav__link">
744
+
745
+
746
+
747
+ <span class="md-ellipsis">
748
+ Security
749
+
750
+ </span>
751
+
752
+
753
+ </a>
754
+ </li>
755
+
756
+
757
+
758
+
759
+ </ul>
760
+ </nav>
761
+
762
+ </li>
763
+
764
+
765
+
766
+ </ul>
767
+ </nav>
768
+ </div>
769
+ </div>
770
+ </div>
771
+
772
+
773
+
774
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
775
+ <div class="md-sidebar__scrollwrap">
776
+ <div class="md-sidebar__inner">
777
+
778
+
779
+ <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
780
+
781
+
782
+
783
+
784
+
785
+
786
+ <label class="md-nav__title" for="__toc">
787
+ <span class="md-nav__icon md-icon"></span>
788
+ Table of contents
789
+ </label>
790
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
791
+
792
+ <li class="md-nav__item">
793
+ <a href="#contents" class="md-nav__link">
794
+ <span class="md-ellipsis">
795
+ Contents
796
+ </span>
797
+ </a>
798
+
799
+ </li>
800
+
801
+ <li class="md-nav__item">
802
+ <a href="#our-pledge" class="md-nav__link">
803
+ <span class="md-ellipsis">
804
+ Our Pledge
805
+ </span>
806
+ </a>
807
+
808
+ </li>
809
+
810
+ <li class="md-nav__item">
811
+ <a href="#our-standards" class="md-nav__link">
812
+ <span class="md-ellipsis">
813
+ Our Standards
814
+ </span>
815
+ </a>
816
+
817
+ </li>
818
+
819
+ <li class="md-nav__item">
820
+ <a href="#responsibilities" class="md-nav__link">
821
+ <span class="md-ellipsis">
822
+ Responsibilities
823
+ </span>
824
+ </a>
825
+
826
+ </li>
827
+
828
+ <li class="md-nav__item">
829
+ <a href="#scope" class="md-nav__link">
830
+ <span class="md-ellipsis">
831
+ Scope
832
+ </span>
833
+ </a>
834
+
835
+ </li>
836
+
837
+ <li class="md-nav__item">
838
+ <a href="#enforcement" class="md-nav__link">
839
+ <span class="md-ellipsis">
840
+ Enforcement
841
+ </span>
842
+ </a>
843
+
844
+ </li>
845
+
846
+ <li class="md-nav__item">
847
+ <a href="#attribution" class="md-nav__link">
848
+ <span class="md-ellipsis">
849
+ Attribution
850
+ </span>
851
+ </a>
852
+
853
+ </li>
854
+
855
+ </ul>
856
+
857
+ </nav>
858
+ </div>
859
+ </div>
860
+ </div>
861
+
862
+
863
+
864
+ <div class="md-content" data-md-component="content">
865
+ <article class="md-content__inner md-typeset">
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+ <!-- =========================================================================
875
+ CODE_OF_CONDUCT.md
876
+
877
+ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
878
+ This file is part of Network Pro.
879
+ ========================================================================== -->
880
+
881
+ <!--
882
+ Copyright © 2025 Network Pro Strategies (Network Pro)
883
+
884
+ ---
885
+
886
+ I. Creative Commons Attribution 4.0 International
887
+
888
+ Network Pro (the "Licensed Material") is licensed under Creative Commons Attribution 4.0 International ("CC BY 4.0"). To view a copy of this license, visit https://creativecommons.org/licenses/by/4.0/.
889
+
890
+ Per the terms of the License, you are free to distribute, remix, adapt, and build upon the Licensed Material for any purpose, even commercially. You must give appropriate credit, provide a link to the License, and indicate if changes were made.
891
+
892
+ The Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable.
893
+
894
+ Permissions beyond the scope of this License—or instead of those permitted by this License—may be available as further defined within this document.
895
+
896
+ SPDX Reference: https://spdx.org/licenses/CC-BY-4.0.html
897
+ Canonical URL: https://creativecommons.org/licenses/by/4.0/
898
+
899
+ ---
900
+
901
+ II. GNU General Public License
902
+
903
+ Network Pro is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License ("GNU GPL") as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
904
+
905
+ This material is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
906
+
907
+ See the GNU General Public License for more details.
908
+
909
+ SPDX Reference: https://spdx.org/licenses/GPL-3.0-or-later.html
910
+ Canonical URL: https://www.gnu.org/licenses/gpl-3.0.html
911
+
912
+ ---
913
+
914
+ Author: Scott Lopez
915
+ Email: <contact@neteng.pro>
916
+ Web: <https://bio.neteng.pro>
917
+ -->
918
+
919
+ <p><sup><a href="https://spdx.dev/learn/handling-license-info/">SPDX-License-Identifier</a>:
920
+ <code>CC-BY-4.0 OR GPL-3.0-or-later</code></sup></p>
921
+ <p><a name="top"></a></p>
922
+ <h1 id="contributor-covenant-code-of-conduct">Contributor Covenant Code of Conduct</h1>
923
+ <p><strong>Network Pro Strategies</strong><br />
924
+ <strong>Effective Date:</strong> 3/21/2025</p>
925
+ <h2 id="contents">Contents</h2>
926
+ <ul>
927
+ <li><a href="#pledge">Our Pledge</a></li>
928
+ <li><a href="#standards">Our Standards</a></li>
929
+ <li><a href="#response">Responsibilities</a></li>
930
+ <li><a href="#scope">Scope</a></li>
931
+ <li><a href="#enforce">Enforcement</a></li>
932
+ <li><a href="#attribute">Attribution</a></li>
933
+ </ul>
934
+ <hr />
935
+ <p><a name="pledge"></a></p>
936
+ <h2 id="our-pledge">Our Pledge</h2>
937
+ <p>We as members, contributors, and leaders pledge to make participation in our
938
+ community a harassment-free experience for everyone, regardless of age, body
939
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
940
+ identity and expression, level of experience, education, socio-economic status,
941
+ nationality, personal appearance, race, caste, color, religion, or sexual
942
+ identity and orientation.</p>
943
+ <p>We pledge to act and interact in ways that contribute to an open, welcoming,
944
+ diverse, inclusive, and healthy community.</p>
945
+ <p><sub><a href="#top">Back to top</a></sub></p>
946
+ <p><a name="standards"></a></p>
947
+ <h2 id="our-standards">Our Standards</h2>
948
+ <p>Examples of behavior that contributes to a positive environment for our
949
+ community include:</p>
950
+ <ul>
951
+ <li>Demonstrating empathy and kindness toward other people</li>
952
+ <li>Being respectful of differing opinions, viewpoints, and experiences</li>
953
+ <li>Giving and gracefully accepting constructive feedback</li>
954
+ <li>Accepting responsibility and apologizing to those affected by our mistakes,
955
+ and learning from the experience</li>
956
+ <li>Focusing on what is best not just for us as individuals, but for the overall
957
+ community</li>
958
+ </ul>
959
+ <p>Examples of unacceptable behavior include:</p>
960
+ <ul>
961
+ <li>The use of sexualized language or imagery, and sexual attention or advances of
962
+ any kind</li>
963
+ <li>Trolling, insulting or derogatory comments, and personal or political attacks</li>
964
+ <li>Public or private harassment</li>
965
+ <li>Publishing others' private information, such as a physical or email address,
966
+ without their explicit permission</li>
967
+ <li>Other conduct which could reasonably be considered inappropriate in a
968
+ professional setting</li>
969
+ </ul>
970
+ <p><sub><a href="#top">Back to top</a></sub></p>
971
+ <p><a name="response"></a></p>
972
+ <h2 id="responsibilities">Responsibilities</h2>
973
+ <p>Company and community leaders are responsible for clarifying and enforcing our standards of
974
+ acceptable behavior and will take appropriate and fair corrective action in
975
+ response to any behavior that they deem inappropriate, threatening, offensive,
976
+ or harmful.</p>
977
+ <p>Company and community leaders have the right and responsibility to remove, edit, or reject
978
+ comments, commits, code, wiki edits, issues, and other contributions that are
979
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
980
+ decisions when appropriate.</p>
981
+ <p>Network Pro Strategies reserves the right, at its sole discretion, to remove, edit, or reject any contributions that are contrary to or detrimental to its business interests.</p>
982
+ <p><sub><a href="#top">Back to top</a></sub></p>
983
+ <p><a name="scope"></a></p>
984
+ <h2 id="scope">Scope</h2>
985
+ <p>This Code of Conduct applies within all community spaces, and also applies when
986
+ an individual is officially representing the company or community in public spaces.
987
+ Examples of representing our company or community include using an official email address,
988
+ posting via an official social media account, or acting as an appointed
989
+ representative at an online or offline event.</p>
990
+ <p><sub><a href="#top">Back to top</a></sub></p>
991
+ <p><a name="enforce"></a></p>
992
+ <h2 id="enforcement">Enforcement</h2>
993
+ <p>Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the abuse team at <a href="mailto:abuse@neteng.pro">abuse@neteng.pro</a>. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances.</p>
994
+ <p>The abuse team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.</p>
995
+ <p>Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project’s leadership.</p>
996
+ <p><sub><a href="#top">Back to top</a></sub></p>
997
+ <p><a name="attribute"></a></p>
998
+ <h2 id="attribution">Attribution</h2>
999
+ <p>This Code of Conduct is adapted from the <a href="https://www.contributor-covenant.org">Contributor Covenant</a>,
1000
+ version 2.1, available at
1001
+ <a href="https://www.contributor-covenant.org/version/2/1/code_of_conduct.html">https://www.contributor-covenant.org/version/2/1/code_of_conduct.html</a>.</p>
1002
+ <p>The <strong>Enforcement</strong> section is adapted from the
1003
+ <a href="https://www.contributor-covenant.org">Contributor Covenant</a>,
1004
+ version 1.4, available at
1005
+ <a href="https://www.contributor-covenant.org/version/1/4/code-of-conduct/">https://www.contributor-covenant.org/version/1/4/code-of-conduct/</a>.</p>
1006
+ <p>For answers to common questions about this code of conduct, see the FAQ at
1007
+ <a href="https://www.contributor-covenant.org/faq">https://www.contributor-covenant.org/faq</a>. Translations are available at
1008
+ <a href="https://www.contributor-covenant.org/translations">https://www.contributor-covenant.org/translations</a>.</p>
1009
+ <p><sub><a href="#top">Back to top</a></sub></p>
1010
+ <hr />
1011
+ <p><span style="font-size: 12px; font-weight: bold; text-align: center;"></p>
1012
+ <p><a href="https://netwk.pro">Home</a> &nbsp; | &nbsp; <a href="https://netwk.pro/terms-of-use.html">Terms of Use</a><br />
1013
+ <a href="https://netwk.pro/privacy.html">Privacy Policy</a> &nbsp; | &nbsp; <a href="https://netwk.pro/legal.html">Legal</a></p>
1014
+ <p></span></p>
1015
+ <p>&nbsp;</p>
1016
+ <p><span style="font-size: 12px; text-align: center;"></p>
1017
+ <p>Copyright &copy; 2025<br />
1018
+ <strong><a href="https://netwk.pro/">Network Pro Strategies</a></strong> (Network Pro&trade;)</p>
1019
+ <p>Network Pro&trade;, the shield logo, and the "Locking Down Networks&trade;" slogan are <a href="https://netwk.pro/legal#trademark">trademarks</a> of Network Pro Strategies.</p>
1020
+ <p>Licensed under <strong><a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></strong> and the <strong><a href="https://spdx.org/licenses/GPL-3.0-or-later.html">GNU GPL</a></strong>, as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.</p>
1021
+ <p></span></p>
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+ </article>
1036
+ </div>
1037
+
1038
+
1039
+ <script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
1040
+ </div>
1041
+
1042
+ <button type="button" class="md-top md-icon" data-md-component="top" hidden>
1043
+
1044
+ <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>
1045
+ Back to top
1046
+ </button>
1047
+
1048
+ </main>
1049
+
1050
+ <footer class="md-footer">
1051
+
1052
+ <div class="md-footer-meta md-typeset">
1053
+ <div class="md-footer-meta__inner md-grid">
1054
+ <div class="md-copyright">
1055
+
1056
+ <div class="md-copyright__highlight">
1057
+ Copyright &copy; 2025 Network Pro Strategies (Network Pro&trade;) – <a href="#__consent">Change cookie settings</a>
1058
+
1059
+ </div>
1060
+
1061
+
1062
+ Made with
1063
+ <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
1064
+ Material for MkDocs
1065
+ </a>
1066
+
1067
+ </div>
1068
+
1069
+ <div class="md-social">
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+ <a href="https://instagram.com/netwk_pro/" target="_blank" rel="noopener" title="Network Pro on Instagram" class="md-social__link">
1076
+ <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>
1077
+ </a>
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+ <a href="https://facebook.com/neteng.pro/" target="_blank" rel="noopener" title="Network Pro on Facebook" class="md-social__link">
1084
+ <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>
1085
+ </a>
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+ <a href="https://linkedin.com/company/netwk-pro/" target="_blank" rel="noopener" title="Network Pro on LinkedIn" class="md-social__link">
1092
+ <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>
1093
+ </a>
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+ <a href="https://noc.social/@neteng_pro/" target="_blank" rel="noopener me" title="Network Pro on Mastoon" class="md-social__link">
1102
+ <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>
1103
+ </a>
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+ <a href="https://contact.neteng.pro/" target="_blank" rel="noopener" title="Contact Us" class="md-social__link">
1110
+ <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>
1111
+ </a>
1112
+
1113
+ </div>
1114
+
1115
+ </div>
1116
+ </div>
1117
+ </footer>
1118
+
1119
+ </div>
1120
+ <div class="md-dialog" data-md-component="dialog">
1121
+ <div class="md-dialog__inner md-typeset"></div>
1122
+ </div>
1123
+
1124
+
1125
+ <div class="md-consent" data-md-component="consent" id="__consent" hidden>
1126
+ <div class="md-consent__overlay"></div>
1127
+ <aside class="md-consent__inner">
1128
+ <form class="md-consent__form md-grid md-typeset" name="consent">
1129
+
1130
+
1131
+
1132
+
1133
+ <h4>Cookie Consent</h4>
1134
+ <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>
1135
+ <input class="md-toggle" type="checkbox" id="__settings" >
1136
+ <div class="md-consent__settings">
1137
+ <ul class="task-list">
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+ <li class="task-list-item">
1150
+ <label class="task-list-control">
1151
+ <input type="checkbox" name="analytics" >
1152
+ <span class="task-list-indicator"></span>
1153
+ Google Analytics
1154
+ </label>
1155
+ </li>
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+ <li class="task-list-item">
1169
+ <label class="task-list-control">
1170
+ <input type="checkbox" name="github" checked>
1171
+ <span class="task-list-indicator"></span>
1172
+ GitHub
1173
+ </label>
1174
+ </li>
1175
+
1176
+
1177
+
1178
+ </ul>
1179
+ </div>
1180
+ <div class="md-consent__controls">
1181
+
1182
+
1183
+
1184
+ <button type="reset" class="md-button md-button--primary">Reject</button>
1185
+
1186
+
1187
+
1188
+
1189
+ <button class="md-button md-button--primary">Accept</button>
1190
+
1191
+
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+ <label class="md-button" for="__settings">Manage settings</label>
1198
+
1199
+
1200
+ </div>
1201
+ </form>
1202
+ </aside>
1203
+ </div>
1204
+ <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>
1205
+
1206
+
1207
+
1208
+ <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>
1209
+
1210
+
1211
+ <script src="../assets/javascripts/bundle.13a4f30d.min.js"></script>
1212
+
1213
+
1214
+ </body>
1215
+ </html>