diff --git a/.config/vimwiki/templates/cybersecurity/default.html b/.config/vimwiki/templates/cybersecurity/default.html
new file mode 100644
index 0000000..91f8929
--- /dev/null
+++ b/.config/vimwiki/templates/cybersecurity/default.html
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+$for(author-meta)$
+
+$endfor$
+$if(date-meta)$
+
+$endif$
+$if(keywords)$
+
+$endif$
+$if(description-meta)$
+
+$endif$
+ $if(title-prefix)$$title-prefix$ – $endif$$pagetitle$
+$for(css)$
+
+$endfor$
+$for(header-includes)$
+ $header-includes$
+$endfor$
+$if(math)$
+$if(mathjax)$
+
+$endif$
+ $math$
+$endif$
+
+
+
+
+$for(include-before)$
+$include-before$
+$endfor$
+$if(title)$
+
+$endif$
+$if(toc)$
+
+$endif$
+$body$
+$for(include-after)$
+$include-after$
+$endfor$
+
+
+
diff --git a/.config/vimwiki/templates/cybersecurity/styles.html b/.config/vimwiki/templates/cybersecurity/styles.html
new file mode 100644
index 0000000..7e70fc2
--- /dev/null
+++ b/.config/vimwiki/templates/cybersecurity/styles.html
@@ -0,0 +1,318 @@
+img {
+ border-radius: .5rem;
+}
+
+code {
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #32c725;
+ background-color: #0f240e;
+ border-radius: .4rem;
+}
+
+pre code {
+ font-family: Menlo, Monaco, "Courier New", monospace;
+ color: #fff;
+ padding: 2px 4px;
+ font-size: 90%;
+ background-color: #0000;
+}
+
+pre {
+ padding: .5rem;
+ line-height: 1.25;
+ overflow-x: scroll;
+}
+
+.sourceCode {
+ border-radius: .5rem;
+}
+
+table {
+ border-collapse: separate;
+ border-spacing: 0;
+ overflow: hidden;
+ margin: auto;
+ width: auto;
+}
+th {
+ background-color: #269b20;
+ color: #FFFFFF;
+}
+th, td {
+ padding: .5rem;
+ border: 1px solid #575757;
+}
+tr:nth-child(even) {
+ background-color: #0f0f0f;
+}
+/* required css to make rounded table (below) */
+tr:first-child th:first-child {
+ border-top-left-radius: .5rem;
+}
+tr:first-child th:last-child {
+ border-top-right-radius: .5rem;
+}
+tr:last-child td:first-child {
+ border-bottom-left-radius: .5rem;
+}
+tr:last-child td:last-child {
+ border-bottom-right-radius: .5rem;
+}
+
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ box-shadow: none !important;
+ text-shadow: none !important;
+ }
+
+ a,
+ a:visited {
+ text-decoration: underline;
+ }
+
+ a[href]:after {
+ content: " (" attr(href) ")";
+ }
+
+ abbr[title]:after {
+ content: " (" attr(title) ")";
+ }
+
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: "";
+ }
+
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid;
+ }
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ img {
+ max-width: 100% !important;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+}
+
+a,
+a:visited {
+ color: #01ff70;
+}
+
+a:hover,
+a:focus,
+a:active {
+ color: #2ecc40;
+}
+
+.retro-no-decoration {
+ text-decoration: none;
+}
+
+html {
+ font-size: 12px;
+}
+
+@media screen and (min-width: 32rem) and (max-width: 48rem) {
+ html {
+ font-size: 15px;
+ }
+}
+
+@media screen and (min-width: 48rem) {
+ html {
+ font-size: 16px;
+ }
+}
+
+body {
+ line-height: 1.85;
+}
+
+p,
+.retro-p {
+ font-size: 1rem;
+ margin-bottom: 1.3rem;
+ text-align: justify;
+}
+
+h1,
+.retro-h1,
+h2,
+.retro-h2,
+h3,
+.retro-h3,
+h4,
+.retro-h4 {
+ margin: 1.414rem 0 .5rem;
+ font-weight: inherit;
+ line-height: 1.42;
+}
+
+h1,
+.retro-h1 {
+ margin-top: 0;
+ font-size: 3.998rem;
+}
+
+h2,
+.retro-h2 {
+ font-size: 2.827rem;
+}
+
+h3,
+.retro-h3 {
+ font-size: 1.999rem;
+}
+
+h4,
+.retro-h4 {
+ font-size: 1.414rem;
+}
+
+h5,
+.retro-h5 {
+ font-size: 1.121rem;
+}
+
+h6,
+.retro-h6 {
+ font-size: .88rem;
+}
+
+small,
+.retro-small {
+ font-size: .707em;
+}
+
+/* https://github.com/mrmrs/fluidity */
+
+img,
+canvas,
+iframe,
+video,
+svg,
+select,
+textarea {
+ max-width: 100%;
+}
+
+html,
+body {
+ background-color: #0f0f0f;
+ min-height: 100%;
+}
+
+html {
+ font-size: 18px;
+}
+
+body {
+ color: #fafafa;
+ font-family: "Courier New";
+ line-height: 1.45;
+ margin: auto;
+ padding: 1rem;
+ max-width: 48rem;
+}
+
+pre {
+ background-color: #333;
+}
+
+blockquote {
+ border-left: 3px solid #01ff70;
+ padding-left: 1rem;
+}
+
+/* Code highlighting*/
+
+pre > code.sourceCode { white-space: pre; position: relative; }
+pre > code.sourceCode > span { line-height: 1.25; }
+pre > code.sourceCode > span:empty { height: 1.2em; }
+.sourceCode { overflow: visible; }
+code.sourceCode > span { color: inherit; text-decoration: inherit; }
+div.sourceCode { margin: 1em 0; }
+pre.sourceCode { margin: 0; }
+@media screen {
+div.sourceCode { overflow: auto; }
+}
+@media print {
+pre > code.sourceCode { white-space: pre-wrap; }
+pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
+}
+pre.numberSource code
+ { counter-reset: source-line 0; }
+pre.numberSource code > span
+ { position: relative; left: -4em; counter-increment: source-line; }
+pre.numberSource code > span > a:first-child::before
+ { content: counter(source-line);
+ position: relative; left: -1em; text-align: right; vertical-align: baseline;
+ border: none; display: inline-block;
+ -webkit-touch-callout: none; -webkit-user-select: none;
+ -khtml-user-select: none; -moz-user-select: none;
+ -ms-user-select: none; user-select: none;
+ padding: 0 4px; width: 4em;
+ }
+pre.numberSource { margin-left: 3em; padding-left: 4px; }
+div.sourceCode
+ { color: #cccccc; background-color: #303030; }
+@media screen {
+pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
+}
+code span.al { color: #ffcfaf; } /* Alert */
+code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
+code span.at { } /* Attribute */
+code span.bn { color: #dca3a3; } /* BaseN */
+code span.bu { } /* BuiltIn */
+code span.cf { color: #f0dfaf; } /* ControlFlow */
+code span.ch { color: #dca3a3; } /* Char */
+code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
+code span.co { color: #7f9f7f; } /* Comment */
+code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
+code span.do { color: #7f9f7f; } /* Documentation */
+code span.dt { color: #dfdfbf; } /* DataType */
+code span.dv { color: #dcdccc; } /* DecVal */
+code span.er { color: #c3bf9f; } /* Error */
+code span.ex { } /* Extension */
+code span.fl { color: #c0bed1; } /* Float */
+code span.fu { color: #efef8f; } /* Function */
+code span.im { } /* Import */
+code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
+code span.kw { color: #f0dfaf; } /* Keyword */
+code span.op { color: #f0efd0; } /* Operator */
+code span.ot { color: #efef8f; } /* Other */
+code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
+code span.sc { color: #dca3a3; } /* SpecialChar */
+code span.ss { color: #cc9393; } /* SpecialString */
+code span.st { color: #cc9393; } /* String */
+code span.va { } /* Variable */
+code span.vs { color: #cc9393; } /* VerbatimString */
+code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */