@networkpro/web 1.12.6 → 1.12.8

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 (60) hide show
  1. package/CHANGELOG.md +71 -1
  2. package/README.md +27 -0
  3. package/cspell.json +3 -0
  4. package/package.json +7 -7
  5. package/src/app.html +1 -1
  6. package/src/lib/components/foss/FossItemContent.svelte +2 -2
  7. package/src/lib/data/fossData.js +8 -1
  8. package/src/lib/images.js +15 -8
  9. package/src/lib/img/qr/pgp-contact.webp +0 -0
  10. package/src/lib/img/qr/pgp-github.webp +0 -0
  11. package/src/lib/img/qr/pgp-security.png +0 -0
  12. package/src/lib/img/qr/pgp-security.webp +0 -0
  13. package/src/lib/img/qr/pgp-support.webp +0 -0
  14. package/src/lib/img/qr/vcard.webp +0 -0
  15. package/src/lib/meta.js +5 -0
  16. package/src/lib/pages/AboutContent.svelte +62 -32
  17. package/src/lib/pages/LicenseContent.svelte +13 -19
  18. package/src/lib/pages/PGPContent.svelte +110 -0
  19. package/src/lib/pages/TermsConditionsContent.svelte +1 -1
  20. package/src/lib/styles/css/default.css +18 -0
  21. package/src/lib/styles/css/style.css +13 -4
  22. package/src/lib/styles/global.min.css +1 -1
  23. package/src/routes/pgp/+page.server.js +18 -0
  24. package/src/routes/pgp/+page.svelte +61 -0
  25. package/src/routes/pgp/[key]/+server.js +35 -0
  26. package/src/service-worker.js +16 -5
  27. package/static/{assets → bin}/license/CC-BY-4.0.html +1 -1
  28. package/static/{assets → bin}/license/COPYING.html +1 -1
  29. package/static/pgp/pgp-contact.webp +0 -0
  30. package/static/pgp/pgp-github.webp +0 -0
  31. package/static/pgp/pgp-security.png +0 -0
  32. package/static/pgp/pgp-security.webp +0 -0
  33. package/static/pgp/pgp-support.webp +0 -0
  34. package/static/pgp/security@s.neteng.pro.asc +22 -0
  35. package/static/pgp/vcard.webp +0 -0
  36. package/static/sitemap.xml +13 -13
  37. package/static/assets/bin/contact.vcf +0 -13
  38. package/static/assets/bin/contact@s.neteng.pro.asc +0 -17
  39. package/static/assets/bin/github@sl.neteng.cc.asc +0 -29
  40. package/static/assets/bin/linksheet.json +0 -8
  41. package/static/assets/bin/support@neteng.pro.asc +0 -47
  42. package/static/assets/consulting-terms.pdf +0 -0
  43. /package/{assets → static/bin}/consulting-terms.pdf +0 -0
  44. /package/{assets → static}/bin/contact.vcf +0 -0
  45. /package/static/{assets → bin}/license/CC-BY-4.0-rdfa.xml +0 -0
  46. /package/static/{assets → bin}/license/CC-BY-4.0.md +0 -0
  47. /package/static/{assets → bin}/license/CC-BY-4.0.txt +0 -0
  48. /package/static/{assets → bin}/license/CC-BY-4.0.xml +0 -0
  49. /package/static/{assets → bin}/license/COPYING-rdfa.xml +0 -0
  50. /package/static/{assets → bin}/license/COPYING.md +0 -0
  51. /package/static/{assets → bin}/license/COPYING.odt +0 -0
  52. /package/static/{assets → bin}/license/COPYING.txt +0 -0
  53. /package/{assets → static}/bin/linksheet.json +0 -0
  54. /package/{assets/bin → static/pgp}/contact@s.neteng.pro.asc +0 -0
  55. /package/{assets/bin → static/pgp}/github@sl.neteng.cc.asc +0 -0
  56. /package/static/{img/qr → pgp}/pgp-contact.png +0 -0
  57. /package/static/{img/qr → pgp}/pgp-github.png +0 -0
  58. /package/static/{img/qr → pgp}/pgp-support.png +0 -0
  59. /package/{assets/bin → static/pgp}/support@neteng.pro.asc +0 -0
  60. /package/static/{img/qr → pgp}/vcard.png +0 -0
@@ -518,3 +518,21 @@ footer .container {
518
518
  overflow: hidden;
519
519
  white-space: nowrap;
520
520
  }
521
+
522
+ .pgp-entry {
523
+ display: flex;
524
+ align-items: center;
525
+ flex-wrap: wrap;
526
+ gap: 2rem;
527
+ margin-bottom: 2rem;
528
+ }
529
+
530
+ .pgp-text {
531
+ flex: 2;
532
+ min-width: 250px;
533
+ }
534
+
535
+ .pgp-qr {
536
+ flex: 1;
537
+ min-width: 150px;
538
+ }
@@ -129,15 +129,24 @@ a:active {
129
129
  text-decoration: underline;
130
130
  }
131
131
 
132
+ /* visited link */
133
+ a:visited {
134
+ color: #7f6227;
135
+ }
136
+
132
137
  /* focused link */
133
- a:focus {
138
+ a:focus-visible {
134
139
  color: #191919; /* Black text when focused */
135
140
  background-color: #ffc627; /* Gold background when focused */
141
+ outline: 2px solid #ffc627;
142
+ outline-offset: 4px;
136
143
  }
137
144
 
138
- /* visited link */
139
- a:visited {
140
- color: #7f6227;
145
+ /* Reset focus style to avoid duplication */
146
+ a:focus:not(:focus-visible) {
147
+ color: inherit;
148
+ background-color: transparent;
149
+ outline: none;
141
150
  }
142
151
 
143
152
  /* visited and mouse over */
@@ -3,4 +3,4 @@ Copyright © 2025 Network Pro Strategies (Network Pro™)
3
3
  SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
4
4
  This file is part of Network Pro.
5
5
  ========================================================================== */
6
- html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:focus{color:#191919;background-color:#ffc627}a:visited,a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!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{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#7f6227}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
6
+ html{-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{margin:.67em 0;font-size:2em}hr{box-sizing:content-box}pre{font-family:monospace;font-size:1em}a{background-color:#0000}abbr[title]{border-bottom:none;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:100%;line-height:1.15}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted buttontext}fieldset{padding:.35em .75em .625em}legend{color:inherit;box-sizing:border-box;white-space:normal;max-width:100%;padding:0;display:table}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}details{display:block}summary{display:list-item}template{display:none}html{color:#222;scroll-behavior:smooth;font-size:1em;line-height:1.4}::-moz-selection{text-shadow:none;background:#191919}::selection{text-shadow:none;background:#191919}hr{border:0;border-top:1px solid #ccc;height:1px;margin:1em 0;padding:0;display:block;overflow:visible}audio,canvas,iframe,img,svg,video{vertical-align:middle}fieldset{border:0;margin:0;padding:0}textarea{resize:vertical}body{color:#fafafa;background-color:#191919;margin:10px;font-family:Arial,Helvetica,sans-serif}a{text-decoration:none}a:link{color:#ffc627}a:hover,a:active{color:#ffc627;text-decoration:underline}a:visited{color:#7f6227}a:focus-visible{color:#191919;outline-offset:4px;background-color:#ffc627;outline:2px solid #ffc627}a:focus:not(:focus-visible){color:inherit;background-color:#0000;outline:none}a:visited:hover{color:#7f6227}.hidden,[hidden]{display:none!important}.visually-hidden{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.visually-hidden.focusable:active,.visually-hidden.focusable:focus{clip:auto;width:auto;height:auto;white-space:inherit;margin:0;position:static;overflow:visible}.invisible{visibility:hidden}.clearfix:before,.clearfix:after{content:"";display:table}.clearfix:after{clear:both}@media print{*,:before,:after{color:#000!important;box-shadow:none!important;text-shadow:none!important;background:#fff!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{white-space:pre-wrap!important}pre,blockquote{page-break-inside:avoid;border:1px solid #999}tr,img{page-break-inside:avoid}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}}.full-width-section{background-position:50%;background-size:cover;width:100%;max-width:1920px;margin:0 auto}.container{max-width:1200px;margin:0 auto;padding:0 12px}.readable{max-width:900px;margin:0 auto}header,footer{width:100%}header .container,footer .container{max-width:1200px;margin:0 auto;padding:20px 12px}.gh{border-collapse:collapse;border-spacing:0;margin:0 auto}.gh td,.gh th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.gh .gh-tcell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.gh,.gh col{width:auto!important}.gh-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.soc{border-collapse:collapse;border-spacing:0;margin:0 auto}.soc td,.soc th{border-collapse:collapse;word-break:normal;padding:8px;overflow:hidden}.soc .soc-fa{text-align:center;vertical-align:middle}@media screen and (width<=767px){.soc,.soc col{width:auto!important}.soc-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.foss{border-collapse:collapse;border-spacing:0}.foss td,.foss th{border-collapse:collapse;word-break:normal;padding:10px 5px;overflow:hidden}.foss .foss-cell{text-align:center;vertical-align:middle}@media screen and (width<=767px){.foss,.foss col{width:auto!important}.foss-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}}.bnav{text-align:center;border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav td,.bnav th{text-align:center;vertical-align:middle;word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav .bnav-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav,.bnav col{width:auto!important}.bnav-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.bnav2{border-collapse:collapse;border-spacing:0;margin:0 auto}.bnav2 td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;font-weight:700;line-height:1.125rem;overflow:hidden}.bnav2 th{word-break:normal;border-style:none;padding:12px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.bnav2 .bnav2-cell{text-align:center;vertical-align:middle;align-content:center}@media screen and (width<=767px){.bnav2,.bnav2 col{width:auto!important}.bnav2-wrap{-webkit-overflow-scrolling:touch;margin:auto 0;overflow-x:auto}}.pgp{border-collapse:collapse;border-spacing:0;margin:0 auto}.pgp td{word-break:normal;border-style:none;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp th{word-break:normal;border:1px solid #000;padding:10px;font-size:.875rem;line-height:1.125rem;overflow:hidden}.pgp .pgp-col1{text-align:right;vertical-align:middle;padding-right:1rem}.pgp .pgp-col2{text-align:left;vertical-align:middle;padding-left:1rem}@media screen and (width<=767px){.pgp,.pgp col{width:auto!important}.pgp-wrap{-webkit-overflow-scrolling:touch;margin:2rem 0 auto;overflow-x:auto}}.logo{margin-left:auto;margin-right:auto;display:block}.index-title1{text-align:center;font-style:italic;font-weight:700}.index-title2{letter-spacing:-.015em;text-align:center;font-variant:small-caps;font-size:1.25rem;line-height:1.625rem}.index1{letter-spacing:-.035em;text-align:center;font-style:italic;font-weight:700;line-height:2.125rem}.index2{letter-spacing:-.035em;text-align:center;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.index3{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem}.index4{letter-spacing:-.035em;text-align:center;font-size:1.5rem;line-height:1.75rem;text-decoration:underline}.subhead{letter-spacing:-.035em;font-variant:small-caps;font-size:1.5rem;line-height:1.75rem}.bold{font-weight:700}.emphasis{font-style:italic}.uline{text-decoration:underline}.bolditalic{font-style:italic;font-weight:700}.bquote{border-left:3px solid #9e9e9e;margin-left:30px;padding-left:10px;font-style:italic}.small-text{font-size:.75rem;line-height:1.125rem}.large-text-center{text-align:center;font-size:1.25rem;line-height:1.75rem}.prewrap{white-space:pre-wrap;display:block}.hr-styled{width:75%;margin:auto}.center-text{text-align:center}.copyright{text-align:center;font-size:.75rem;line-height:1.125rem}.gold{color:#ffc627}.visited{color:#7f6227}.goldseparator{color:#ffc627;margin:0 .5rem}.center-nav{text-align:center;padding:5px;font-size:1rem;line-height:1.5rem}.block{resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;font-size:.75rem;line-height:1.125rem}.fingerprint{white-space:pre-line;font-weight:700;display:block}.pgp-image{width:150px;height:150px}.spacer{margin:2rem 0}.separator{margin:0 .5rem}.emoji{margin-right:8px}.headline{margin-bottom:4px;font-style:italic;font-weight:700;display:block}.label{font-family:inherit;font-weight:700}.description{font-family:inherit;font-style:normal;font-weight:400;display:inline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pgp-entry{flex-wrap:wrap;align-items:center;gap:2rem;margin-bottom:2rem;display:flex}.pgp-text{flex:2;min-width:250px}.pgp-qr{flex:1;min-width:150px}
@@ -0,0 +1,18 @@
1
+ /* ==========================================================================
2
+ src/routes/pgp/+page.server.js
3
+
4
+ Copyright © 2025 Network Pro Strategies (Network Pro™)
5
+ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
6
+ This file is part of Network Pro.
7
+ ========================================================================== */
8
+
9
+ import { defaultMeta, meta } from "$lib/meta.js";
10
+
11
+ export const prerender = false;
12
+
13
+ /** @type {import('./$types').PageServerLoad} */
14
+ export function load() {
15
+ return {
16
+ meta: meta["/pgp"] || defaultMeta,
17
+ };
18
+ }
@@ -0,0 +1,61 @@
1
+ <!-- ==========================================================================
2
+ src/routes/pgp/+page.svelte
3
+
4
+ Copyright © 2025 Network Pro Strategies (Network Pro™)
5
+ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
6
+ This file is part of Network Pro.
7
+ ========================================================================== -->
8
+
9
+ <script>
10
+ import PGPContent from "$lib/pages/PGPContent.svelte";
11
+ import Badges from "$lib/components/Badges.svelte";
12
+ import FullWidthSection from "$lib/components/FullWidthSection.svelte";
13
+ import LegalNav from "$lib/components/LegalNav.svelte";
14
+ import SocialMedia from "$lib/components/SocialMedia.svelte";
15
+ import MetaTags from "$lib/components/MetaTags.svelte";
16
+
17
+ /**
18
+ * @type {string}
19
+ * Style class for the div element.
20
+ */
21
+ const spaceStyle = "spacer";
22
+
23
+ export let data;
24
+ </script>
25
+
26
+ <MetaTags title={data.meta.title} description={data.meta.description} />
27
+
28
+ <link rel="canonical" href="https://netwk.pro/pgp" />
29
+
30
+ <section id="about">
31
+ <FullWidthSection containerClass="readable">
32
+ <!-- BEGIN MAIN CONTENT -->
33
+ <section id="main-content">
34
+ <PGPContent />
35
+ </section>
36
+ <!-- END MAIN CONTENT -->
37
+
38
+ <div class={spaceStyle}></div>
39
+
40
+ <!-- SOCIAL MEDIA -->
41
+ <section id="social-media">
42
+ <SocialMedia />
43
+ </section>
44
+
45
+ <hr />
46
+
47
+ <div class={spaceStyle}></div>
48
+
49
+ <!-- LEGAL NAVIGATION -->
50
+ <section id="legal-nav">
51
+ <LegalNav />
52
+ </section>
53
+
54
+ <div class={spaceStyle}></div>
55
+
56
+ <!-- BADGES -->
57
+ <section id="badges">
58
+ <Badges />
59
+ </section>
60
+ </FullWidthSection>
61
+ </section>
@@ -0,0 +1,35 @@
1
+ /* ==========================================================================
2
+ src/routes/pgp/[key]/+server.js
3
+
4
+ Copyright © 2025 Network Pro Strategies (Network Pro™)
5
+ SPDX-License-Identifier: CC-BY-4.0 OR GPL-3.0-or-later
6
+ This file is part of Network Pro.
7
+ ========================================================================== */
8
+
9
+ import { error } from "@sveltejs/kit";
10
+ import fs from "fs/promises";
11
+ import path from "path";
12
+
13
+ /**
14
+ * @type {import('@sveltejs/kit').RequestHandler}
15
+ */
16
+ export async function GET({ params, setHeaders }) {
17
+ const key = params.key;
18
+
19
+ if (!key || !key.endsWith(".asc")) {
20
+ throw error(400, "Invalid or missing file name");
21
+ }
22
+
23
+ const filePath = path.resolve("static/pgp", key);
24
+
25
+ try {
26
+ const file = await fs.readFile(filePath);
27
+ setHeaders({
28
+ "Content-Type": "application/pgp-keys",
29
+ "Content-Disposition": `attachment; filename="${key}"`,
30
+ });
31
+ return new Response(file);
32
+ } catch {
33
+ return new Response("File not found", { status: 404 });
34
+ }
35
+ }
@@ -32,6 +32,14 @@ const IGNORE_PATHS = new Set([
32
32
  "/img/logo-transparent.png",
33
33
  "/img/logo.png",
34
34
  "/img/svelte.png",
35
+ "/pgp/pgp-github.png",
36
+ "/pgp/pgp-github.webp",
37
+ "/pgp/contact@s.neteng.pro.asc",
38
+ "/pgp/github@sl.neteng.cc.asc",
39
+ "/pgp/security@s.neteng.pro.asc",
40
+ "/pgp/support@neteng.pro.asc",
41
+ "/pgp/vcard.png",
42
+ "/pgp/vcard.webp",
35
43
  "/screenshots/desktop-foss.png",
36
44
  "/webfonts/fa-brands-400.ttf",
37
45
  "/webfonts/fa-solid-900.ttf",
@@ -50,7 +58,7 @@ const ASSETS = [
50
58
 
51
59
  const shouldExclude =
52
60
  path.startsWith("http") ||
53
- path.startsWith("/assets/") ||
61
+ path.startsWith("/bin/") ||
54
62
  disallowedHosts.some(
55
63
  (host) => hostname === host || hostname.endsWith(`.${host}`),
56
64
  ) ||
@@ -81,10 +89,12 @@ const REQUIRED_ASSETS = [
81
89
  "/icon-services.png",
82
90
  "/icon-splash.png",
83
91
  "/img/banner-og-1200x630.png",
84
- "/img/qr/pgp-contact.png",
85
- "/img/qr/pgp-github.png",
86
- "/img/qr/pgp-support.png",
87
- "/img/qr/vcard.png",
92
+ "/pgp/pgp-contact.png",
93
+ "/pgp/pgp-contact.webp",
94
+ "/pgp/pgp-security.png",
95
+ "/pgp/pgp-security.webp",
96
+ "/pgp/pgp-support.png",
97
+ "/pgp/pgp-support.webp",
88
98
  "/manifest.json",
89
99
  "/offline.html",
90
100
  "/offline.min.css",
@@ -99,6 +109,7 @@ const REQUIRED_ASSETS = [
99
109
  "/webfonts/fa-brands-400.woff2",
100
110
  "/webfonts/fa-solid-900.woff2",
101
111
  "/.well-known/dnt-policy-1.0.txt",
112
+ "/.well-known/gpc.json",
102
113
  ];
103
114
 
104
115
  if (isDev) {
@@ -26,7 +26,7 @@
26
26
 
27
27
  <link
28
28
  rel="canonical"
29
- href="https://netwk.pro/assets/license/CC-BY-4.0.html" />
29
+ href="https://netwk.pro/bin/license/CC-BY-4.0.html" />
30
30
 
31
31
  <link rel="icon" href="/favicon.ico" sizes="any" type="image/x-icon" />
32
32
  </head>
@@ -26,7 +26,7 @@
26
26
 
27
27
  <link
28
28
  rel="canonical"
29
- href="https://netwk.pro/assets/license/COPYING.html" />
29
+ href="https://netwk.pro/bin/license/COPYING.html" />
30
30
 
31
31
  <link
32
32
  rel="icon"
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,22 @@
1
+ -----BEGIN PGP PUBLIC KEY BLOCK-----
2
+ Comment: User ID: security@s.neteng.pro <security@s.neteng.pro>
3
+ Comment: Valid from: 1/6/25 8:36 AM
4
+ Comment: Type: 255-bit EdDSA (secret key available)
5
+ Comment: Usage: Signing, Encryption, Certifying User IDs
6
+ Comment: Fingerprint: B7FE1D4E6CAB3E714A9FDF6E48CB7290C00D0DA5
7
+
8
+
9
+ mDMEZ3v4eRYJKwYBBAHaRw8BAQdAFxcxIifN3QdPmjnVFLXkCueQBV+GCpybLTgw
10
+ FPqMNvi0LXNlY3VyaXR5QHMubmV0ZW5nLnBybyA8c2VjdXJpdHlAcy5uZXRlbmcu
11
+ cHJvPojRBBMWCgCDBYJne/h5AwsJBwmQSMtykMANDaVFFAAAAAAAHAAgc2FsdEBu
12
+ b3RhdGlvbnMub3BlbnBncGpzLm9yZ3rrat4fGUXd3ubqU+S6lJBxikUj2XJHnG3R
13
+ dledkYRnAxUKCAQWAAIBAhkBApsDAh4BFiEEt/4dTmyrPnFKn99uSMtykMANDaUA
14
+ AM61AQCadROujMKqyuGezv9/l2bqY2TCwxlU6pt2OP2kBaGawQEA56C1AnZ4j43c
15
+ VnMVc66lGoTzyTceHJRtC4OF+BT2TQW4OARne/h5EgorBgEEAZdVAQUBAQdAeH9H
16
+ BjnnWYk6uRjTz/rD8XKuyVmK+M2FkvwwTGnp41UDAQgHiL4EGBYKAHAFgmd7+HkJ
17
+ kEjLcpDADQ2lRRQAAAAAABwAIHNhbHRAbm90YXRpb25zLm9wZW5wZ3Bqcy5vcmec
18
+ Wa0ZrRuAVXctQtSq1NG+iidE0NBjZDHAgMnyMjEhIAKbDBYhBLf+HU5sqz5xSp/f
19
+ bkjLcpDADQ2lAAADagD/VgytFYartgP6AuqYOgbFd+n25ziiFX936t+ooCLvhcwB
20
+ AO6Mwo291bBwCIFNJ8gA1P7P02UsXvFOO+GGgaHlff8K
21
+ =Wt2X
22
+ -----END PGP PUBLIC KEY BLOCK-----
Binary file
@@ -1,5 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Sitemap last updated on 2025-06-08 -->
2
+ <!-- Sitemap last updated on 2025-06-11 -->
3
3
 
4
4
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
5
5
 
@@ -7,7 +7,7 @@
7
7
 
8
8
  <loc>https://netwk.pro</loc>
9
9
 
10
- <lastmod>2025-05-28</lastmod>
10
+ <lastmod>2025-06-10</lastmod>
11
11
 
12
12
  <changefreq>weekly</changefreq>
13
13
 
@@ -31,7 +31,7 @@
31
31
 
32
32
  <loc>https://netwk.pro/about</loc>
33
33
 
34
- <lastmod>2025-05-29</lastmod>
34
+ <lastmod>2025-06-10</lastmod>
35
35
 
36
36
  <changefreq>monthly</changefreq>
37
37
 
@@ -67,7 +67,7 @@
67
67
 
68
68
  <loc>https://netwk.pro/license</loc>
69
69
 
70
- <lastmod>2025-06-04</lastmod>
70
+ <lastmod>2025-06-10</lastmod>
71
71
 
72
72
  <changefreq>monthly</changefreq>
73
73
 
@@ -91,7 +91,7 @@
91
91
 
92
92
  <loc>https://netwk.pro/terms-conditions</loc>
93
93
 
94
- <lastmod>2025-05-29</lastmod>
94
+ <lastmod>2025-06-10</lastmod>
95
95
 
96
96
  <changefreq>monthly</changefreq>
97
97
 
@@ -101,25 +101,25 @@
101
101
 
102
102
  <url>
103
103
 
104
- <loc>https://netwk.pro/assets/license/COPYING.html</loc>
104
+ <loc>https://netwk.pro/bin/CC-BY-4.0.html</loc>
105
105
 
106
- <lastmod>2025-05-29</lastmod>
106
+ <lastmod>2025-06-10</lastmod>
107
107
 
108
- <changefreq>yearly</changefreq>
108
+ <changefreq>monthly</changefreq>
109
109
 
110
- <priority>0.4</priority>
110
+ <priority>0.5</priority>
111
111
 
112
112
  </url>
113
113
 
114
114
  <url>
115
115
 
116
- <loc>https://netwk.pro/assets/license/CC-BY-4.0.html</loc>
116
+ <loc>https://netwk.pro/bin/COPYING.html</loc>
117
117
 
118
- <lastmod>2025-05-29</lastmod>
118
+ <lastmod>2025-06-10</lastmod>
119
119
 
120
- <changefreq>yearly</changefreq>
120
+ <changefreq>monthly</changefreq>
121
121
 
122
- <priority>0.4</priority>
122
+ <priority>0.5</priority>
123
123
 
124
124
  </url>
125
125
 
@@ -1,13 +0,0 @@
1
- BEGIN:VCARD
2
- VERSION:3.0
3
- FN:Scott Lopez
4
- N:Lopez;Scott
5
- TEL;TYPE=WORK,PREF=1:(623) 252-4350
6
- EMAIL;TYPE=HOME:github@sl.neteng.cc
7
- EMAIL;TYPE=WORK:support@neteng.pro
8
- EMAIL;TYPE=Secure:business@s.neteng.pro
9
- ADR;TYPE=WORK:;;Peoria\, AZ 85382\nUS
10
- ORG:Network Pro Strategies
11
- TITLE:Security Consultant
12
- URL:https://netwk.pro
13
- END:VCARD
@@ -1,17 +0,0 @@
1
- -----BEGIN PGP PUBLIC KEY BLOCK-----
2
-
3
- xjMEaA9hQBYJKwYBBAHaRw8BAQdA0plJIVADzWGVQtDnYcjtokJN+xTURRDx
4
- +bPQWsRCCMrNK2NvbnRhY3RAcy5uZXRlbmcucHJvIDxjb250YWN0QHMubmV0
5
- ZW5nLnBybz7CwBEEExYKAIMFgmgPYUADCwkHCZD5k3NJlJX5V0UUAAAAAAAc
6
- ACBzYWx0QG5vdGF0aW9ucy5vcGVucGdwanMub3Jn7SJZvz9xzMXAz0AK0oap
7
- 2J4yPfF5ITdHI3E4NrGhHiUDFQoIBBYAAgECGQECmwMCHgEWIQTfEYuqbC2d
8
- zevcLdz5k3NJlJX5VwAA3lgBAPlvilH7QBDdourj+ndUWOlkN/UK5GVZFNdl
9
- Wtz+yqO9AQDi6ZJvz4FXtnLpiDnrGLl+XtS9mpb9W1K6veAfq9EPDs44BGgP
10
- YUASCisGAQQBl1UBBQEBB0CH4STLqhXPigKwiTqgROmO9+ZBwLULvQIr/opO
11
- xkvFcgMBCAfCvgQYFgoAcAWCaA9hQAmQ+ZNzSZSV+VdFFAAAAAAAHAAgc2Fs
12
- dEBub3RhdGlvbnMub3BlbnBncGpzLm9yZzQ5Pg7sTb37RQ0E0xHK7uw476sQ
13
- 4ReUd+a+A2uSan3wApsMFiEE3xGLqmwtnc3r3C3c+ZNzSZSV+VcAALq5AQDJ
14
- bhqyY8dg25WXFPtL8TgeK8BP+d4y5IaobKuZ2gHh2wD+MmeUZZBNiIM/QPMo
15
- Pgm5czd9ckE/aknVqJZPLx7KJAQ=
16
- =o5rM
17
- -----END PGP PUBLIC KEY BLOCK-----
@@ -1,29 +0,0 @@
1
- -----BEGIN PGP PUBLIC KEY BLOCK-----
2
- Comment: User ID: SunDevil311 <github@sl.neteng.cc>
3
- Comment: Valid from: 1/7/24 2:11 AM
4
- Comment: Valid until: 1/8/29 11:58 PM
5
- Comment: Type: 255-bit EdDSA (secret key available)
6
- Comment: Usage: Signing, Encryption, Certifying User IDs
7
- Comment: Fingerprint: E8B4F1193B21601207B080BBAEBBB8F6D4BB723B
8
-
9
-
10
- mDMEZZpquxYJKwYBBAHaRw8BAQdAk/oCPQnD4FIVgyVsugXB/Sq8Rp+b9Ahz31KY
11
- EOTyuIW0IVN1bkRldmlsMzExIDxnaXRodWJAc2wubmV0ZW5nLmNjPoiWBBMWCAA+
12
- AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7
13
- cjsFAmeBrNgFCQlrKHgACgkQrru49tS7cjujpQEA9LtzB8R+5kwSnjM3mU+ZOK2X
14
- 370iUAOrDOI41/Xzdi4BAJbImQxZCPHWpNEysPkpf5OYIQhBljYGBLyPlgbqKl8B
15
- iHUEEBYKAB0WIQTzG0myNw5BdXuKqI/DoNSOqcFPXgUCZZpwcwAKCRDDoNSOqcFP
16
- XrtIAQC4+QUJEFHFaW1hePdF0k8OMVm7YX6B2ReccN7JV6WIggD/SULjDjEa59/R
17
- e3QovTnGE/+JQl7WnMG7wIWWt7AsyAyIkAQTFggAOBYhBOi08Rk7IWASB7CAu667
18
- uPbUu3I7BQJlmmq7AhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEK67uPbU
19
- u3I7V7cA/3VdMTkltx5d9mqOl8azXkXEeInblf/GHqp9gD/ziCRcAP4rifnkxfYp
20
- z8Xkl/YtqWNUqMU/AbTqLXrNrj6Ld6L4CYiWBBMWCAA+AhsDBQsJCAcCBhUKCQgL
21
- AgQWAgMBAh4BAheAFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAma5TVIFCQbC4ngA
22
- CgkQrru49tS7cjsh+QEAzgTKYSbMAsJrgQrLZ+gTuZjtP2cf4LNplwVyyOW+ZBEB
23
- AK99IZScLbf0QOJowg4XXds02yKG6pB/9BhTf0gfbq4JuDgEZZpquxIKKwYBBAGX
24
- VQEFAQEHQPUDNJbixlUJE10/uCSaxUcly4+YB6aDP+qt6kYw+ExRAwEIB4h4BBgW
25
- CAAgFiEE6LTxGTshYBIHsIC7rru49tS7cjsFAmWaarsCGwwACgkQrru49tS7cjtS
26
- 9AEA9bv6Zq/PcRL25QM4NlvJDsKjePihgaYav+4ekdk0tkoA/02QjSNlzIL/CpRF
27
- 540gKvILQXFUuoPAKBL+sEggB+8D
28
- =iL2v
29
- -----END PGP PUBLIC KEY BLOCK-----
@@ -1,8 +0,0 @@
1
- {
2
- "id": "fe.linksheet.nightly",
3
- "url": "https://github.com/LinkSheet/nightly",
4
- "author": "1fexd",
5
- "name": "LinkSheet Nightly",
6
- "preferredApkIndex": 0,
7
- "additionalSettings": "{\"includePrereleases\":true,\"fallbackToOlderReleases\":true,\"filterReleaseTitlesByRegEx\":\"\",\"filterReleaseNotesByRegEx\":\"\",\"verifyLatestTag\":false,\"dontSortReleasesList\":false,\"useLatestAssetDateAsReleaseDate\":false,\"trackOnly\":false,\"versionExtractionRegEx\":\"\",\"matchGroupToUse\":\"\",\"versionDetection\":false,\"releaseDateAsVersion\":false,\"useVersionCodeAsOSVersion\":false,\"apkFilterRegEx\":\"LinkSheet.Nightly\",\"invertAPKFilter\":true,\"autoApkFilterByArch\":true,\"appName\":\"LinkSheet Nightly\",\"shizukuPretendToBeGooglePlay\":false,\"exemptFromBackgroundUpdates\":false,\"skipUpdateNotifications\":false,\"about\":\"Restore link control on Android 12+\",\"appAuthor\":\"1fexd\"}"
8
- }
@@ -1,47 +0,0 @@
1
- -----BEGIN PGP PUBLIC KEY BLOCK-----
2
- Comment: User ID: Network Pro Strategies <support@neteng.pro>
3
- Comment: a.k.a.: Network Pro Strategies <contact@neteng.pro>
4
- Comment: a.k.a.: Network Pro Strategies <github@neteng.pro>
5
- Comment: a.k.a.: Network Pro Strategies <no-reply@neteng.pro>
6
- Comment: a.k.a.: Network Pro Strategies <social@neteng.pro>
7
- Comment: a.k.a.: Network Pro Strategies <website@neteng.pro>
8
- Comment: Valid from: 3/28/25 5:16 PM
9
- Comment: Valid until: 3/27/28 5:16 PM
10
- Comment: Type: 255-bit EdDSA (secret key available)
11
- Comment: Usage: Signing, Encryption, Certifying User IDs
12
- Comment: Fingerprint: 6590B992E2E3EFF127387BCE2AF093E9DEC61BA0
13
-
14
-
15
- mDMEZ+c71xYJKwYBBAHaRw8BAQdAXrXB9LKKHj7tgAzrCkheQe+yJ0KD50yVrHM7
16
- yOopYuW0K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHN1cHBvcnRAbmV0ZW5nLnBy
17
- bz6InAQTFgoARAIbAwUJBaOagAULCQgHAgIiAgYVCgkICwIEFgIDAQIeBwIXgBYh
18
- BGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzLAhkBAAoJECrwk+nexhugp9UBAJ4O
19
- J4aR6SBdYCInPri4DuRrLeLtMIT6yPN2XP0+aRH5AP4piPrWA5Qx22t7DZTF8S08
20
- 6rhDtFuslGkMab4ITA+8AbQrTmV0d29yayBQcm8gU3RyYXRlZ2llcyA8Y29udGFj
21
- dEBuZXRlbmcucHJvPoiZBBMWCgBBFiEEZZC5kuLj7/EnOHvOKvCT6d7GG6AFAmfn
22
- PJgCGwMFCQWjmoAFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcCF4AACgkQKvCT6d7G
23
- G6CBCgD/aC/WM7bOfQoTZitpluifrEQIjP6RelCpksULK7jcEzkA/iTuessO95fe
24
- 72MtCRiOjFlcVXuXfgaap0PwNmwfMz0GtCpOZXR3b3JrIFBybyBTdHJhdGVnaWVz
25
- IDxnaXRodWJAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/xJzh7zirwk+ne
26
- xhugBQJn5zyiAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMBAh4HAheAAAoJ
27
- ECrwk+nexhug0tsBAKjrZMO7wfGUOiNQQr5IPzSEwOLYy0hkxq4SqOuMuPpVAP9/
28
- b3sZ0BbmTaU/+gnuXyUbMRQHLDqHh7ESRxSgll3WDLQsTmV0d29yayBQcm8gU3Ry
29
- YXRlZ2llcyA8bm8tcmVwbHlAbmV0ZW5nLnBybz6ImQQTFgoAQRYhBGWQuZLi4+/x
30
- Jzh7zirwk+nexhugBQJn5zywAhsDBQkFo5qABQsJCAcCAiICBhUKCQgLAgQWAgMB
31
- Ah4HAheAAAoJECrwk+nexhugjAQA+gNrz3htQtHPTifyIps/p8CuA6LR/5F99jip
32
- 5obARSaLAQDuodGbF3NIZ5b6C98aoNQ7adj/Neg53z6rgVRHkNuiCrQqTmV0d29y
33
- ayBQcm8gU3RyYXRlZ2llcyA8c29jaWFsQG5ldGVuZy5wcm8+iJkEExYKAEEWIQRl
34
- kLmS4uPv8Sc4e84q8JPp3sYboAUCZ+c8vAIbAwUJBaOagAULCQgHAgIiAgYVCgkI
35
- CwIEFgIDAQIeBwIXgAAKCRAq8JPp3sYboE6hAQCLyAl45ty3muvvw7vpkJjhbkyp
36
- daLVTIltW6x+cotifQEAqbXMngGnwAZPxiZH/r/NbopqD57YTT+HXx62thwefw+0
37
- K05ldHdvcmsgUHJvIFN0cmF0ZWdpZXMgPHdlYnNpdGVAbmV0ZW5nLnBybz6ImQQT
38
- FgoAQRYhBGWQuZLi4+/xJzh7zirwk+nexhugBQJn5zzHAhsDBQkFo5qABQsJCAcC
39
- AiICBhUKCQgLAgQWAgMBAh4HAheAAAoJECrwk+nexhugRUcA/RHfApSl1S+APoXN
40
- jmTki5pUk8+AD1kveRymT9g49FIVAQCtX8+cbM+9jLrg9EyyJ6kvE9btGExOOufA
41
- JNY15IdwBbg4BGfnO9cSCisGAQQBl1UBBQEBB0BiSu/MobXZljtB25Inf4cJwdoH
42
- z+gqapJHs+5y9mNPCgMBCAeIfgQYFgoAJhYhBGWQuZLi4+/xJzh7zirwk+nexhug
43
- BQJn5zvXAhsMBQkFo5qAAAoJECrwk+nexhugsXoA+QHr0FAorF0ZEgDA4wL/oZpB
44
- oIARdo9kYzL+cTi/F3g6AQCtbupe/JymVJuwLUcq3AsxXe0DLyoodT7CpOdVpYLV
45
- DQ==
46
- =pBLp
47
- -----END PGP PUBLIC KEY BLOCK-----
Binary file
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes