From 6a098104b48f6b6c4ffa1b71458a3be83b39256d Mon Sep 17 00:00:00 2001 From: HalcyonAzure Date: Wed, 24 Jan 2024 03:32:05 +0000 Subject: [PATCH] :rocket: Deployed by Hexo --- 404.html | 2 + CNAME | 1 + about/index.html | 2 + archives/2021/03/index.html | 2 + archives/2021/03/page/2/index.html | 2 + archives/2021/04/index.html | 2 + archives/2021/05/index.html | 2 + archives/2021/06/index.html | 2 + archives/2021/07/index.html | 2 + archives/2021/08/index.html | 2 + archives/2021/09/index.html | 2 + archives/2021/10/index.html | 2 + archives/2021/12/index.html | 2 + archives/2021/index.html | 2 + archives/2021/page/2/index.html | 2 + archives/2021/page/3/index.html | 2 + archives/2021/page/4/index.html | 2 + archives/2021/page/5/index.html | 2 + archives/2022/01/index.html | 2 + archives/2022/02/index.html | 2 + archives/2022/03/index.html | 2 + archives/2022/04/index.html | 2 + archives/2022/05/index.html | 2 + archives/2022/06/index.html | 2 + archives/2022/07/index.html | 2 + archives/2022/10/index.html | 2 + archives/2022/11/index.html | 2 + archives/2022/12/index.html | 2 + archives/2022/index.html | 2 + archives/2022/page/2/index.html | 2 + archives/2022/page/3/index.html | 2 + archives/2022/page/4/index.html | 2 + archives/2023/04/index.html | 2 + archives/2023/06/index.html | 2 + archives/2023/07/index.html | 2 + archives/2023/10/index.html | 2 + archives/2023/11/index.html | 2 + archives/2023/index.html | 2 + archives/2024/01/index.html | 2 + archives/2024/index.html | 2 + archives/index.html | 2 + archives/page/10/index.html | 2 + archives/page/2/index.html | 2 + archives/page/3/index.html | 2 + archives/page/4/index.html | 2 + archives/page/5/index.html | 2 + archives/page/6/index.html | 2 + archives/page/7/index.html | 2 + archives/page/8/index.html | 2 + archives/page/9/index.html | 2 + atom.xml | 555 ++++ baidu_urls.txt | 1 + baidusitemap.xml | 371 +++ categories/index.html | 2 + .../index.html" | 2 + .../index.html" | 2 + .../page/2/index.html" | 2 + .../index.html" | 2 + .../page/2/index.html" | 2 + .../page/3/index.html" | 2 + .../page/4/index.html" | 2 + .../index.html" | 2 + .../page/2/index.html" | 2 + .../page/3/index.html" | 2 + .../page/4/index.html" | 2 + css/gitalk.css | 1 + css/highlight-dark.css | 1 + css/highlight.css | 1 + css/main.css | 1 + css/round.css | 1 + img/about.png | Bin 0 -> 279332 bytes img/archive.png | Bin 0 -> 331748 bytes img/avatar-pic.png | Bin 0 -> 3848 bytes img/avatar.png | Bin 0 -> 3180 bytes img/category.png | Bin 0 -> 238137 bytes img/default-pic.png | Bin 0 -> 206810 bytes img/default.png | Bin 0 -> 400730 bytes img/favicon-pic.png | Bin 0 -> 2192 bytes img/fluid.png | Bin 0 -> 4650 bytes img/loading.gif | Bin 0 -> 17142 bytes img/main-page.png | Bin 0 -> 203544 bytes img/police_beian.png | Bin 0 -> 1246 bytes img/post.png | Bin 0 -> 66165 bytes img/tags.png | Bin 0 -> 244634 bytes index.html | 2 + js/DynamicLine.js | 1 + js/boot.js | 1 + js/color-schema.js | 1 + js/duration.js | 1 + js/events.js | 15 + js/img-lazyload.js | 1 + js/leancloud.js | 1 + js/local-search.js | 1 + js/plugins.js | 4 + js/utils.js | 1 + links/index.html | 2 + local-search.xml | 2355 +++++++++++++++++ p/10e77bc5.html | 2 + p/1153f279.html | 2 + p/12aa3ef8.html | 2 + p/13271c5f.html | 2 + p/14cd2588.html | 2 + p/15b28479.html | 2 + p/15b685e1.html | 2 + p/1724953e.html | 2 + p/18b05b6b.html | 2 + p/195b5fa9.html | 2 + p/1d3a895d.html | 2 + p/1dcf9daa.html | 2 + p/1e0fb80b.html | 2 + p/20416971.html | 2 + p/20c326f2.html | 13 + p/22453a61.html | 2 + p/2362a8ea.html | 2 + p/23c3db21.html | 2 + p/24f916f9.html | 2 + p/264bf58c.html | 2 + p/28ea7a49.html | 2 + p/2ca0860a.html | 2 + p/2dda2597.html | 2 + p/2f2e6810.html | 2 + p/2f594679.html | 2 + p/3930e42b.html | 2 + p/39b9efc1.html | 2 + p/3d85131.html | 2 + p/3efcbb51.html | 2 + p/41385a4a.html | 2 + p/4416e368.html | 2 + p/4457ea2b.html | 2 + p/447b77e9.html | 2 + p/44838b9c.html | 2 + p/4b65fa48.html | 2 + p/4e68707.html | 2 + p/5a7c7761.html | 2 + p/6088c65c.html | 2 + p/690287f9.html | 2 + p/6a6a7409.html | 2 + p/6d032e05.html | 2 + p/713e2886.html | 2 + p/73e1b791.html | 2 + p/76495b47.html | 2 + p/77f84830.html | 2 + p/783d8b13.html | 2 + p/795cfa1d.html | 2 + p/7bfa5e14.html | 2 + p/80f884dc.html | 2 + p/82bd449c.html | 2 + p/83fa91fc.html | 2 + p/840f43e7.html | 2 + p/87299c69.html | 2 + p/87ec6922.html | 2 + p/897b63ef.html | 2 + p/8d2011c6.html | 2 + p/9130a701.html | 2 + p/9232cf7b.html | 2 + p/92f7b8a.html | 2 + p/98326a13.html | 2 + p/99e48799.html | 2 + p/a126ef4d.html | 2 + p/a2277ea0.html | 2 + p/a9706dff.html | 2 + p/aa5ce7f4.html | 2 + p/abf1d877.html | 2 + p/aeda2510.html | 2 + p/afb272ac.html | 2 + p/afda6ca0.html | 2 + p/b3a8b5ef.html | 2 + p/b9e46cb4.html | 2 + p/ba5740b2.html | 2 + p/bbde595d.html | 2 + p/be72c31c.html | 2 + p/c1161a88.html | 2 + p/c1ec22c4.html | 2 + p/c9774a05.html | 2 + p/c9fc3bb5.html | 2 + p/cc7f9b10.html | 2 + p/cdfd3649.html | 2 + p/cf0fd528.html | 2 + p/cff2e0b5.html | 2 + p/d08cfaf4.html | 2 + p/d26abad0.html | 2 + p/db490294.html | 2 + p/db6cc46f.html | 2 + p/dea4f344.html | 2 + p/e328a303.html | 2 + p/e429c37a.html | 2 + p/e8eb0481.html | 2 + p/f09b73d7.html | 2 + p/f15c20eb.html | 2 + p/f3eca903.html | 2 + page/10/index.html | 2 + page/2/index.html | 2 + page/3/index.html | 2 + page/4/index.html | 2 + page/5/index.html | 2 + page/6/index.html | 2 + page/7/index.html | 2 + page/8/index.html | 2 + page/9/index.html | 2 + placeholder | 0 sitemap.txt | 142 + sitemap.xml | 1190 +++++++++ tags/Algorithm/index.html | 2 + tags/Arch/index.html | 2 + tags/CDN/index.html | 2 + tags/Clash/index.html | 2 + tags/DNS/index.html | 2 + tags/Devc/index.html | 2 + tags/Docker/index.html | 2 + tags/Frp/index.html | 2 + tags/Github/index.html | 2 + tags/Linux/index.html | 2 + tags/Linux/page/2/index.html | 2 + tags/Linux/page/3/index.html | 2 + tags/Markdown/index.html | 2 + tags/Minecraft/index.html | 2 + tags/Nginx/index.html | 2 + tags/OS/index.html | 2 + tags/OS/page/2/index.html | 2 + tags/OpenWRT/index.html | 2 + tags/PowerShell/index.html | 2 + tags/SSH/index.html | 2 + tags/Scoop/index.html | 2 + tags/Ubuntu/index.html | 2 + tags/Vim/index.html | 2 + tags/WSL/index.html | 2 + tags/Windows/index.html | 2 + tags/Wireshark/index.html | 2 + tags/Yadm/index.html | 2 + tags/ZeroTier/index.html | 2 + tags/cloudflare/index.html | 2 + tags/cmd/index.html | 2 + tags/cpp/index.html | 2 + tags/cs144/index.html | 2 + tags/docker/index.html | 2 + tags/hexo/index.html | 2 + tags/index.html | 2 + tags/iommu/index.html | 2 + tags/jellyfin/index.html | 2 + tags/missing-semester/index.html | 2 + tags/network/index.html | 2 + tags/os/index.html | 2 + tags/python/index.html | 2 + tags/qbittorrent/index.html | 2 + tags/rclone/index.html | 2 + tags/shell/index.html | 2 + tags/zsh/index.html | 2 + "tags/\346\200\273\347\273\223/index.html" | 2 + "tags/\347\256\227\346\263\225/index.html" | 2 + xml/local-search.xml | 45 + 250 files changed, 5127 insertions(+) create mode 100644 404.html create mode 100644 CNAME create mode 100644 about/index.html create mode 100644 archives/2021/03/index.html create mode 100644 archives/2021/03/page/2/index.html create mode 100644 archives/2021/04/index.html create mode 100644 archives/2021/05/index.html create mode 100644 archives/2021/06/index.html create mode 100644 archives/2021/07/index.html create mode 100644 archives/2021/08/index.html create mode 100644 archives/2021/09/index.html create mode 100644 archives/2021/10/index.html create mode 100644 archives/2021/12/index.html create mode 100644 archives/2021/index.html create mode 100644 archives/2021/page/2/index.html create mode 100644 archives/2021/page/3/index.html create mode 100644 archives/2021/page/4/index.html create mode 100644 archives/2021/page/5/index.html create mode 100644 archives/2022/01/index.html create mode 100644 archives/2022/02/index.html create mode 100644 archives/2022/03/index.html create mode 100644 archives/2022/04/index.html create mode 100644 archives/2022/05/index.html create mode 100644 archives/2022/06/index.html create mode 100644 archives/2022/07/index.html create mode 100644 archives/2022/10/index.html create mode 100644 archives/2022/11/index.html create mode 100644 archives/2022/12/index.html create mode 100644 archives/2022/index.html create mode 100644 archives/2022/page/2/index.html create mode 100644 archives/2022/page/3/index.html create mode 100644 archives/2022/page/4/index.html create mode 100644 archives/2023/04/index.html create mode 100644 archives/2023/06/index.html create mode 100644 archives/2023/07/index.html create mode 100644 archives/2023/10/index.html create mode 100644 archives/2023/11/index.html create mode 100644 archives/2023/index.html create mode 100644 archives/2024/01/index.html create mode 100644 archives/2024/index.html create mode 100644 archives/index.html create mode 100644 archives/page/10/index.html create mode 100644 archives/page/2/index.html create mode 100644 archives/page/3/index.html create mode 100644 archives/page/4/index.html create mode 100644 archives/page/5/index.html create mode 100644 archives/page/6/index.html create mode 100644 archives/page/7/index.html create mode 100644 archives/page/8/index.html create mode 100644 archives/page/9/index.html create mode 100644 atom.xml create mode 100644 baidu_urls.txt create mode 100644 baidusitemap.xml create mode 100644 categories/index.html create mode 100644 "categories/\344\270\252\344\272\272\346\200\273\347\273\223/index.html" create mode 100644 "categories/\345\256\211\350\243\205\345\274\225\345\257\274/index.html" create mode 100644 "categories/\345\256\211\350\243\205\345\274\225\345\257\274/page/2/index.html" create mode 100644 "categories/\345\260\217\346\212\200\345\267\247/index.html" create mode 100644 "categories/\345\260\217\346\212\200\345\267\247/page/2/index.html" create mode 100644 "categories/\345\260\217\346\212\200\345\267\247/page/3/index.html" create mode 100644 "categories/\345\260\217\346\212\200\345\267\247/page/4/index.html" create mode 100644 "categories/\347\237\245\350\257\206\350\256\260\345\275\225/index.html" create mode 100644 "categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/2/index.html" create mode 100644 "categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/3/index.html" create mode 100644 "categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/4/index.html" create mode 100644 css/gitalk.css create mode 100644 css/highlight-dark.css create mode 100644 css/highlight.css create mode 100644 css/main.css create mode 100644 css/round.css create mode 100644 img/about.png create mode 100644 img/archive.png create mode 100644 img/avatar-pic.png create mode 100644 img/avatar.png create mode 100644 img/category.png create mode 100644 img/default-pic.png create mode 100644 img/default.png create mode 100644 img/favicon-pic.png create mode 100644 img/fluid.png create mode 100644 img/loading.gif create mode 100644 img/main-page.png create mode 100644 img/police_beian.png create mode 100644 img/post.png create mode 100644 img/tags.png create mode 100644 index.html create mode 100644 js/DynamicLine.js create mode 100644 js/boot.js create mode 100644 js/color-schema.js create mode 100644 js/duration.js create mode 100644 js/events.js create mode 100644 js/img-lazyload.js create mode 100644 js/leancloud.js create mode 100644 js/local-search.js create mode 100644 js/plugins.js create mode 100644 js/utils.js create mode 100644 links/index.html create mode 100644 local-search.xml create mode 100644 p/10e77bc5.html create mode 100644 p/1153f279.html create mode 100644 p/12aa3ef8.html create mode 100644 p/13271c5f.html create mode 100644 p/14cd2588.html create mode 100644 p/15b28479.html create mode 100644 p/15b685e1.html create mode 100644 p/1724953e.html create mode 100644 p/18b05b6b.html create mode 100644 p/195b5fa9.html create mode 100644 p/1d3a895d.html create mode 100644 p/1dcf9daa.html create mode 100644 p/1e0fb80b.html create mode 100644 p/20416971.html create mode 100644 p/20c326f2.html create mode 100644 p/22453a61.html create mode 100644 p/2362a8ea.html create mode 100644 p/23c3db21.html create mode 100644 p/24f916f9.html create mode 100644 p/264bf58c.html create mode 100644 p/28ea7a49.html create mode 100644 p/2ca0860a.html create mode 100644 p/2dda2597.html create mode 100644 p/2f2e6810.html create mode 100644 p/2f594679.html create mode 100644 p/3930e42b.html create mode 100644 p/39b9efc1.html create mode 100644 p/3d85131.html create mode 100644 p/3efcbb51.html create mode 100644 p/41385a4a.html create mode 100644 p/4416e368.html create mode 100644 p/4457ea2b.html create mode 100644 p/447b77e9.html create mode 100644 p/44838b9c.html create mode 100644 p/4b65fa48.html create mode 100644 p/4e68707.html create mode 100644 p/5a7c7761.html create mode 100644 p/6088c65c.html create mode 100644 p/690287f9.html create mode 100644 p/6a6a7409.html create mode 100644 p/6d032e05.html create mode 100644 p/713e2886.html create mode 100644 p/73e1b791.html create mode 100644 p/76495b47.html create mode 100644 p/77f84830.html create mode 100644 p/783d8b13.html create mode 100644 p/795cfa1d.html create mode 100644 p/7bfa5e14.html create mode 100644 p/80f884dc.html create mode 100644 p/82bd449c.html create mode 100644 p/83fa91fc.html create mode 100644 p/840f43e7.html create mode 100644 p/87299c69.html create mode 100644 p/87ec6922.html create mode 100644 p/897b63ef.html create mode 100644 p/8d2011c6.html create mode 100644 p/9130a701.html create mode 100644 p/9232cf7b.html create mode 100644 p/92f7b8a.html create mode 100644 p/98326a13.html create mode 100644 p/99e48799.html create mode 100644 p/a126ef4d.html create mode 100644 p/a2277ea0.html create mode 100644 p/a9706dff.html create mode 100644 p/aa5ce7f4.html create mode 100644 p/abf1d877.html create mode 100644 p/aeda2510.html create mode 100644 p/afb272ac.html create mode 100644 p/afda6ca0.html create mode 100644 p/b3a8b5ef.html create mode 100644 p/b9e46cb4.html create mode 100644 p/ba5740b2.html create mode 100644 p/bbde595d.html create mode 100644 p/be72c31c.html create mode 100644 p/c1161a88.html create mode 100644 p/c1ec22c4.html create mode 100644 p/c9774a05.html create mode 100644 p/c9fc3bb5.html create mode 100644 p/cc7f9b10.html create mode 100644 p/cdfd3649.html create mode 100644 p/cf0fd528.html create mode 100644 p/cff2e0b5.html create mode 100644 p/d08cfaf4.html create mode 100644 p/d26abad0.html create mode 100644 p/db490294.html create mode 100644 p/db6cc46f.html create mode 100644 p/dea4f344.html create mode 100644 p/e328a303.html create mode 100644 p/e429c37a.html create mode 100644 p/e8eb0481.html create mode 100644 p/f09b73d7.html create mode 100644 p/f15c20eb.html create mode 100644 p/f3eca903.html create mode 100644 page/10/index.html create mode 100644 page/2/index.html create mode 100644 page/3/index.html create mode 100644 page/4/index.html create mode 100644 page/5/index.html create mode 100644 page/6/index.html create mode 100644 page/7/index.html create mode 100644 page/8/index.html create mode 100644 page/9/index.html delete mode 100644 placeholder create mode 100644 sitemap.txt create mode 100644 sitemap.xml create mode 100644 tags/Algorithm/index.html create mode 100644 tags/Arch/index.html create mode 100644 tags/CDN/index.html create mode 100644 tags/Clash/index.html create mode 100644 tags/DNS/index.html create mode 100644 tags/Devc/index.html create mode 100644 tags/Docker/index.html create mode 100644 tags/Frp/index.html create mode 100644 tags/Github/index.html create mode 100644 tags/Linux/index.html create mode 100644 tags/Linux/page/2/index.html create mode 100644 tags/Linux/page/3/index.html create mode 100644 tags/Markdown/index.html create mode 100644 tags/Minecraft/index.html create mode 100644 tags/Nginx/index.html create mode 100644 tags/OS/index.html create mode 100644 tags/OS/page/2/index.html create mode 100644 tags/OpenWRT/index.html create mode 100644 tags/PowerShell/index.html create mode 100644 tags/SSH/index.html create mode 100644 tags/Scoop/index.html create mode 100644 tags/Ubuntu/index.html create mode 100644 tags/Vim/index.html create mode 100644 tags/WSL/index.html create mode 100644 tags/Windows/index.html create mode 100644 tags/Wireshark/index.html create mode 100644 tags/Yadm/index.html create mode 100644 tags/ZeroTier/index.html create mode 100644 tags/cloudflare/index.html create mode 100644 tags/cmd/index.html create mode 100644 tags/cpp/index.html create mode 100644 tags/cs144/index.html create mode 100644 tags/docker/index.html create mode 100644 tags/hexo/index.html create mode 100644 tags/index.html create mode 100644 tags/iommu/index.html create mode 100644 tags/jellyfin/index.html create mode 100644 tags/missing-semester/index.html create mode 100644 tags/network/index.html create mode 100644 tags/os/index.html create mode 100644 tags/python/index.html create mode 100644 tags/qbittorrent/index.html create mode 100644 tags/rclone/index.html create mode 100644 tags/shell/index.html create mode 100644 tags/zsh/index.html create mode 100644 "tags/\346\200\273\347\273\223/index.html" create mode 100644 "tags/\347\256\227\346\263\225/index.html" create mode 100644 xml/local-search.xml diff --git a/404.html b/404.html new file mode 100644 index 00000000..5f8b5399 --- /dev/null +++ b/404.html @@ -0,0 +1,2 @@ +页面不存在 - Halcyon Zone +
\ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 00000000..72788543 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +halc.top \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 00000000..f39d8beb --- /dev/null +++ b/about/index.html @@ -0,0 +1,2 @@ +关于 - Halcyon Zone +
avatar
HalcyonAzure
一个想自律的肥宅程序员
  • 实践是检验真理的唯一标准
  • 谎言常常被当作关系的润滑剂,但它也往往并不善意
  • 金钱可以使我们兴奋,但并不能让我们持之以恒

个人介绍

  • 乐于交际,喜欢在互联网上和各式各样的人打交道,并通过和不同的人交流来使自己进步。
  • 对新技术很感兴趣,喜欢先尝试再做评价,不盲目跟风评价,遇到问题也乐于主动提问。
  • 脚踏实地,没有百分百把握的事情尽可能做好完全准备再下手。

专业技能

  • 熟悉Linux环境下的开发、调试和部署工具,主要以C++开发为主
  • 熟悉虚拟化和云计算相关理念,有自部署HomeLab的经验
  • 掌握TCP/IP协议栈原理和基础实现,对常用的网络协议有一定了解
  • 了解并使用过Cloudflare等云服务平台,熟悉Github Actions、Docker、Nginx等工具,能解决常见问题
  • 了解操作系统内核设计和实现,对内存管理有基本认知

相关经验

  1. 为Xmake社区通过配置lua脚本,调整CMake的参数以让Mysql在Xmake引入的时候提供了跨平台支持
  2. 修复了VSCode中Xmake插件对应按钮功能映射错误,通过VSCode官方的调试工具,定位到了问题的原因,并通过修改相关函数的返回值修复了问题
  3. 为开源图床Lsky-Pro贡献过通过Github Actions每日更新的Docker容器,并通过提前拉取需要的二进制文件,将镜像文件体积缩小40%
  4. 借助CS144实现了TCP/IP协议栈中关于流处理、TCP连接和IP路由相关部分。通过这个项目,深入了解了TCP/IP协议栈的工作原理和实现细节,并培养了编写和调试复杂系统的能力。

学习中

最近正在学习的内容

  • 《Effective C++》
  • 设计模式
  • 剑指Offer

长期打算

在年度总结里面给自己定下的目标

  • 游戏开发入门
    • 争取参加一次GameJam
  • 额外技能
    • 学习Blender
\ No newline at end of file diff --git a/archives/2021/03/index.html b/archives/2021/03/index.html new file mode 100644 index 00000000..af1a48a9 --- /dev/null +++ b/archives/2021/03/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/03/page/2/index.html b/archives/2021/03/page/2/index.html new file mode 100644 index 00000000..8978febe --- /dev/null +++ b/archives/2021/03/page/2/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/04/index.html b/archives/2021/04/index.html new file mode 100644 index 00000000..77ed7aa6 --- /dev/null +++ b/archives/2021/04/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/05/index.html b/archives/2021/05/index.html new file mode 100644 index 00000000..68564638 --- /dev/null +++ b/archives/2021/05/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/06/index.html b/archives/2021/06/index.html new file mode 100644 index 00000000..7112ff8e --- /dev/null +++ b/archives/2021/06/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/07/index.html b/archives/2021/07/index.html new file mode 100644 index 00000000..577eb331 --- /dev/null +++ b/archives/2021/07/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/08/index.html b/archives/2021/08/index.html new file mode 100644 index 00000000..f74e83e4 --- /dev/null +++ b/archives/2021/08/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/09/index.html b/archives/2021/09/index.html new file mode 100644 index 00000000..914a23e0 --- /dev/null +++ b/archives/2021/09/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/10/index.html b/archives/2021/10/index.html new file mode 100644 index 00000000..63c13448 --- /dev/null +++ b/archives/2021/10/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/12/index.html b/archives/2021/12/index.html new file mode 100644 index 00000000..df01371a --- /dev/null +++ b/archives/2021/12/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +

共计 92 篇文章


2021

快慢指针
链表
\ No newline at end of file diff --git a/archives/2021/index.html b/archives/2021/index.html new file mode 100644 index 00000000..d30be062 --- /dev/null +++ b/archives/2021/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/page/2/index.html b/archives/2021/page/2/index.html new file mode 100644 index 00000000..c31709fe --- /dev/null +++ b/archives/2021/page/2/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/page/3/index.html b/archives/2021/page/3/index.html new file mode 100644 index 00000000..653c104e --- /dev/null +++ b/archives/2021/page/3/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/page/4/index.html b/archives/2021/page/4/index.html new file mode 100644 index 00000000..b3971a25 --- /dev/null +++ b/archives/2021/page/4/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2021/page/5/index.html b/archives/2021/page/5/index.html new file mode 100644 index 00000000..5052fd73 --- /dev/null +++ b/archives/2021/page/5/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/01/index.html b/archives/2022/01/index.html new file mode 100644 index 00000000..ddda2b3b --- /dev/null +++ b/archives/2022/01/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/02/index.html b/archives/2022/02/index.html new file mode 100644 index 00000000..5275d5de --- /dev/null +++ b/archives/2022/02/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/03/index.html b/archives/2022/03/index.html new file mode 100644 index 00000000..75b4542b --- /dev/null +++ b/archives/2022/03/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/04/index.html b/archives/2022/04/index.html new file mode 100644 index 00000000..642ea0b6 --- /dev/null +++ b/archives/2022/04/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/05/index.html b/archives/2022/05/index.html new file mode 100644 index 00000000..f08f9c77 --- /dev/null +++ b/archives/2022/05/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/06/index.html b/archives/2022/06/index.html new file mode 100644 index 00000000..a94caabb --- /dev/null +++ b/archives/2022/06/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/07/index.html b/archives/2022/07/index.html new file mode 100644 index 00000000..7dc32d13 --- /dev/null +++ b/archives/2022/07/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/10/index.html b/archives/2022/10/index.html new file mode 100644 index 00000000..c51be2b7 --- /dev/null +++ b/archives/2022/10/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/11/index.html b/archives/2022/11/index.html new file mode 100644 index 00000000..dc39c79e --- /dev/null +++ b/archives/2022/11/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/12/index.html b/archives/2022/12/index.html new file mode 100644 index 00000000..b80b2c91 --- /dev/null +++ b/archives/2022/12/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/index.html b/archives/2022/index.html new file mode 100644 index 00000000..ec82a31c --- /dev/null +++ b/archives/2022/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/page/2/index.html b/archives/2022/page/2/index.html new file mode 100644 index 00000000..36f4bb7b --- /dev/null +++ b/archives/2022/page/2/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/page/3/index.html b/archives/2022/page/3/index.html new file mode 100644 index 00000000..09a317de --- /dev/null +++ b/archives/2022/page/3/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2022/page/4/index.html b/archives/2022/page/4/index.html new file mode 100644 index 00000000..81fd50dd --- /dev/null +++ b/archives/2022/page/4/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/04/index.html b/archives/2023/04/index.html new file mode 100644 index 00000000..f3d98d8e --- /dev/null +++ b/archives/2023/04/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/06/index.html b/archives/2023/06/index.html new file mode 100644 index 00000000..d4b07f80 --- /dev/null +++ b/archives/2023/06/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/07/index.html b/archives/2023/07/index.html new file mode 100644 index 00000000..1d3c6088 --- /dev/null +++ b/archives/2023/07/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/10/index.html b/archives/2023/10/index.html new file mode 100644 index 00000000..853ab9f1 --- /dev/null +++ b/archives/2023/10/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/11/index.html b/archives/2023/11/index.html new file mode 100644 index 00000000..6692f6ce --- /dev/null +++ b/archives/2023/11/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2023/index.html b/archives/2023/index.html new file mode 100644 index 00000000..ed055c7d --- /dev/null +++ b/archives/2023/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2024/01/index.html b/archives/2024/01/index.html new file mode 100644 index 00000000..93313a9b --- /dev/null +++ b/archives/2024/01/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 00000000..4239f9fc --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 00000000..beceab98 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/10/index.html b/archives/page/10/index.html new file mode 100644 index 00000000..cdade31d --- /dev/null +++ b/archives/page/10/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/2/index.html b/archives/page/2/index.html new file mode 100644 index 00000000..377a58ba --- /dev/null +++ b/archives/page/2/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/3/index.html b/archives/page/3/index.html new file mode 100644 index 00000000..4b6c6ed7 --- /dev/null +++ b/archives/page/3/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/4/index.html b/archives/page/4/index.html new file mode 100644 index 00000000..9032f9a2 --- /dev/null +++ b/archives/page/4/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/5/index.html b/archives/page/5/index.html new file mode 100644 index 00000000..7bd79b92 --- /dev/null +++ b/archives/page/5/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/6/index.html b/archives/page/6/index.html new file mode 100644 index 00000000..be213870 --- /dev/null +++ b/archives/page/6/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/7/index.html b/archives/page/7/index.html new file mode 100644 index 00000000..e01ed258 --- /dev/null +++ b/archives/page/7/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/8/index.html b/archives/page/8/index.html new file mode 100644 index 00000000..6937ec34 --- /dev/null +++ b/archives/page/8/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/archives/page/9/index.html b/archives/page/9/index.html new file mode 100644 index 00000000..5718a954 --- /dev/null +++ b/archives/page/9/index.html @@ -0,0 +1,2 @@ +归档 - Halcyon Zone +
\ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 00000000..0b93a7d5 --- /dev/null +++ b/atom.xml @@ -0,0 +1,555 @@ + + + Halcyon Zone + https://halc.top/icon.png + 青空域 + + + + 2024-01-23T06:10:04.000Z + https://halc.top/ + + + HalcyonAzure + + + + Hexo + + + 获取Cloudflare Tunnel下用户真实IP + + https://halc.top/p/f09b73d7 + 2024-01-23T06:10:04.000Z + 2024-01-23T06:10:04.000Z + + + + + + + <h1 id="cloudflare-tunnel-获取用户真实-ip"><a class="markdownIt-Anchor" href="#cloudflare-tunnel-获取用户真实-ip"></a> Cloudflare Tunnel 获取用户真实 + + + + + + + + + + + + + + 虚拟化:初识IOMMU(TODO) + + https://halc.top/p/4416e368 + 2023-11-28T01:55:52.000Z + 2023-11-28T01:55:52.000Z + + + + + + + <h1 id="初识iommu"><a class="markdownIt-Anchor" href="#初识iommu"></a> + + + + + + + + + + + + + + 知识复盘:操作系统的作用 + + https://halc.top/p/e429c37a + 2023-10-20T18:03:00.000Z + 2023-10-20T18:03:00.000Z + + + + + + + <h1 id="操作系统的作用"><a class="markdownIt-Anchor" href="#操作系统的作用"></a> + + + + + + + + + + + + + + DNS问题排查思路 + + https://halc.top/p/23c3db21 + 2023-07-30T13:18:11.000Z + 2023-07-30T13:18:11.000Z + + + + + + + <h1 id="参考文章"><a class="markdownIt-Anchor" href="#参考文章"></a> 参考文章</h1> +<p>这篇博客主要是在推特中无意翻到了这篇博客,尝试以翻译的形式做一套笔记,分享的同时加强自己的记忆。</p> +<ul> +<li><a + + + + + + + + + + + + + + 网络抓包记录 + + https://halc.top/p/3930e42b + 2023-07-26T18:18:40.000Z + 2023-08-03T11:21:12.000Z + + + + + + + <h1 id="学习记录"><a class="markdownIt-Anchor" href="#学习记录"></a> + + + + + + + + + + + + + + 基础算法(一) + + https://halc.top/p/83fa91fc + 2023-06-19T16:36:32.000Z + 2023-06-19T16:36:32.000Z + + + + + + + <h1 id="基础算法一"><a class="markdownIt-Anchor" href="#基础算法一"></a> 基础算法(一)</h1> +<h2 id="快速排序"><a class="markdownIt-Anchor" href="#快速排序"></a> + + + + + + + + + + + + + + 使用clink优化cmd + + https://halc.top/p/82bd449c + 2023-06-17T13:08:36.000Z + 2023-06-17T13:08:36.000Z + + + + + + + <h2 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h2> +<ul> +<li><a + + + + + + + + + + + + + + + + CS144-Lab6 计算机网络:路由转发 + + https://halc.top/p/195b5fa9 + 2023-04-24T06:55:44.000Z + 2023-04-24T06:55:44.000Z + + + + + + + <h2 id="路由转发"><a class="markdownIt-Anchor" href="#路由转发"></a> + + + + + + + + + + + + + + + + CS144-Lab5 计算机网络:Network Interface的功能 + + https://halc.top/p/db490294 + 2023-04-24T04:37:11.000Z + 2023-04-24T04:37:11.000Z + + + + + + + <h2 id="network-interface"><a class="markdownIt-Anchor" href="#network-interface"></a> Network + + + + + + + + + + + + + + + + CS144-Lab4 计算机网络:TCP Connection的实现 + + https://halc.top/p/10e77bc5 + 2023-04-10T10:27:04.000Z + 2023-04-10T10:27:04.000Z + + + + + + + <h2 id="tcp-connection"><a class="markdownIt-Anchor" href="#tcp-connection"></a> TCP Connection</h2> +<p>TCP + + + + + + + + + + + + + + + + 使用Yadm管理Linux配置文件 + + https://halc.top/p/4457ea2b + 2022-12-12T14:42:10.000Z + 2022-12-12T14:42:10.000Z + + + + + + + <p>今年暑假看<code>Missing-course</code>的时候开始意识到备份<code>Linux</code>配置文件的重要性,以后即使切换机器也可以很容易的恢复自己喜欢的编程环境。在简单搜索了几个方式以后,决定使用<code>yadm</code>作为管理工具, + + + + + + + + + + + + + + + + CS144-Lab3 计算机网络:TCP Sender的实现 + + https://halc.top/p/73e1b791 + 2022-12-03T08:31:47.000Z + 2023-04-10T18:04:14.000Z + + + + + + + <h2 id="tcp-sender"><a class="markdownIt-Anchor" href="#tcp-sender"></a> TCP Sender</h2> +<h3 id="需要实现的主要逻辑"><a class="markdownIt-Anchor" + + + + + + + + + + + + + + + + CS144-Lab2 计算机网络:TCP Receiver的实现 + + https://halc.top/p/4e68707 + 2022-11-22T08:46:46.000Z + 2023-04-10T18:04:14.000Z + + + + + + + <h2 id="tcp-receiver"><a class="markdownIt-Anchor" href="#tcp-receiver"></a> TCP Receiver</h2> +<h3 id="index和seqno的转换"><a + + + + + + + + + + + + + + + + CS144-Lab1 计算机网络:字节流重组器 + + https://halc.top/p/aeda2510 + 2022-11-07T07:43:11.000Z + 2023-04-10T17:44:49.000Z + + + + + + + <h2 id="思路总结"><a class="markdownIt-Anchor" href="#思路总结"></a> 思路总结</h2> +<h3 id="有问题的方案"><a class="markdownIt-Anchor" href="#有问题的方案"></a> + + + + + + + + + + + + + + + + CS144-Lab0 计算机网络:流的输入和读出 + + https://halc.top/p/2ca0860a + 2022-10-29T13:25:30.000Z + 2022-11-30T17:03:43.000Z + + + + + + + <h2 id="热身"><a class="markdownIt-Anchor" href="#热身"></a> + + + + + + + + + + + + + + + + ArchWSL安装及基础配置 + + https://halc.top/p/cdfd3649 + 2022-07-09T15:03:49.000Z + 2022-07-09T15:03:49.000Z + + + + + + + <h2 id="准备工作"><a class="markdownIt-Anchor" href="#准备工作"></a> + + + + + + + + + + + + + + + + Shell:管道符与重定向 + + https://halc.top/p/db6cc46f + 2022-07-04T00:41:26.000Z + 2022-07-04T00:41:26.000Z + + + + + + + <h2 id="前言"><a class="markdownIt-Anchor" href="#前言"></a> + + + + + + + + + + + + + + + + 快速部署rclone为services + + https://halc.top/p/bbde595d + 2022-06-28T17:40:02.000Z + 2022-06-28T17:40:02.000Z + + + + + + + <h2 id="参考链接"><a class="markdownIt-Anchor" href="#参考链接"></a> 参考链接</h2> +<ul> +<li><a + + + + + + + + + + + + + + 总结:2022年5月 + + https://halc.top/p/795cfa1d + 2022-06-07T05:30:45.000Z + 2022-06-07T05:30:45.000Z + + + + + + + <p>这个月算是找回了感觉,还算充实。</p> +<h2 id="做了的事情"><a class="markdownIt-Anchor" href="#做了的事情"></a> 做了的事情</h2> +<h3 id="学习方面"><a + + + + + + + + + + + + + + OSTEP:分页的计算 + + https://halc.top/p/c1ec22c4 + 2022-05-12T13:41:23.000Z + 2022-05-12T13:41:23.000Z + + + + + + + <h2 id="第二十章分页较小的表"><a class="markdownIt-Anchor" href="#第二十章分页较小的表"></a> + + + + + + + + + + + + + diff --git a/baidu_urls.txt b/baidu_urls.txt new file mode 100644 index 00000000..49f5a63f --- /dev/null +++ b/baidu_urls.txt @@ -0,0 +1 @@ +https://halc.top/p/f09b73d7 \ No newline at end of file diff --git a/baidusitemap.xml b/baidusitemap.xml new file mode 100644 index 00000000..f677df72 --- /dev/null +++ b/baidusitemap.xml @@ -0,0 +1,371 @@ + + + + https://halc.top/p/87299c69.html + 2024-01-24 + + + https://halc.top/p/f09b73d7.html + 2024-01-23 + + + https://halc.top/p/4416e368.html + 2023-11-28 + + + https://halc.top/p/e429c37a.html + 2023-10-20 + + + https://halc.top/p/3930e42b.html + 2023-08-03 + + + https://halc.top/p/23c3db21.html + 2023-07-30 + + + https://halc.top/p/83fa91fc.html + 2023-06-19 + + + https://halc.top/p/82bd449c.html + 2023-06-17 + + + https://halc.top/p/195b5fa9.html + 2023-04-24 + + + https://halc.top/p/db490294.html + 2023-04-24 + + + https://halc.top/p/4e68707.html + 2023-04-10 + + + https://halc.top/p/73e1b791.html + 2023-04-10 + + + https://halc.top/p/aeda2510.html + 2023-04-10 + + + https://halc.top/p/10e77bc5.html + 2023-04-10 + + + https://halc.top/p/4457ea2b.html + 2022-12-12 + + + https://halc.top/p/2ca0860a.html + 2022-11-30 + + + https://halc.top/p/cdfd3649.html + 2022-07-09 + + + https://halc.top/p/db6cc46f.html + 2022-07-04 + + + https://halc.top/p/9232cf7b.html + 2022-07-02 + + + https://halc.top/p/92f7b8a.html + 2022-06-29 + + + https://halc.top/p/bbde595d.html + 2022-06-28 + + + https://halc.top/p/795cfa1d.html + 2022-06-07 + + + https://halc.top/p/c1ec22c4.html + 2022-05-12 + + + https://halc.top/p/20416971.html + 2022-05-09 + + + https://halc.top/p/44838b9c.html + 2022-05-08 + + + https://halc.top/p/3d85131.html + 2022-05-07 + + + https://halc.top/p/8d2011c6.html + 2022-05-07 + + + https://halc.top/p/6088c65c.html + 2022-04-30 + + + https://halc.top/p/22453a61.html + 2022-04-28 + + + https://halc.top/p/28ea7a49.html + 2022-04-23 + + + https://halc.top/p/783d8b13.html + 2022-04-20 + + + https://halc.top/p/1724953e.html + 2022-04-19 + + + https://halc.top/p/b3a8b5ef.html + 2022-04-18 + + + https://halc.top/p/7bfa5e14.html + 2022-04-15 + + + https://halc.top/p/20c326f2.html + 2022-04-13 + + + https://halc.top/p/264bf58c.html + 2022-04-10 + + + https://halc.top/p/13271c5f.html + 2022-04-09 + + + https://halc.top/p/80f884dc.html + 2022-04-07 + + + https://halc.top/p/18b05b6b.html + 2022-04-05 + + + https://halc.top/p/4b65fa48.html + 2022-03-25 + + + https://halc.top/p/897b63ef.html + 2022-03-23 + + + https://halc.top/p/840f43e7.html + 2022-03-23 + + + https://halc.top/p/b9e46cb4.html + 2022-03-19 + + + https://halc.top/p/cf0fd528.html + 2022-03-18 + + + https://halc.top/p/a126ef4d.html + 2022-03-15 + + + https://halc.top/p/e328a303.html + 2022-03-12 + + + https://halc.top/p/ba5740b2.html + 2022-03-06 + + + https://halc.top/p/2f2e6810.html + 2022-02-08 + + + https://halc.top/p/9130a701.html + 2022-02-06 + + + https://halc.top/p/afb272ac.html + 2022-01-29 + + + https://halc.top/p/1153f279.html + 2022-01-06 + + + https://halc.top/p/76495b47.html + 2021-12-02 + + + https://halc.top/p/2362a8ea.html + 2021-12-02 + + + https://halc.top/p/98326a13.html + 2021-10-29 + + + https://halc.top/p/d08cfaf4.html + 2021-10-21 + + + https://halc.top/p/f15c20eb.html + 2021-10-04 + + + https://halc.top/p/87ec6922.html + 2021-10-03 + + + https://halc.top/p/d26abad0.html + 2021-09-18 + + + https://halc.top/p/447b77e9.html + 2021-09-09 + + + https://halc.top/p/aa5ce7f4.html + 2021-08-30 + + + https://halc.top/p/690287f9.html + 2021-08-06 + + + https://halc.top/p/6d032e05.html + 2021-08-04 + + + https://halc.top/p/f3eca903.html + 2021-08-04 + + + https://halc.top/p/14cd2588.html + 2021-08-02 + + + https://halc.top/p/abf1d877.html + 2021-07-22 + + + https://halc.top/p/be72c31c.html + 2021-07-22 + + + https://halc.top/p/39b9efc1.html + 2021-06-13 + + + https://halc.top/p/c9fc3bb5.html + 2021-05-22 + + + https://halc.top/p/1dcf9daa.html + 2021-05-11 + + + https://halc.top/p/1e0fb80b.html + 2021-05-10 + + + https://halc.top/p/77f84830.html + 2021-05-07 + + + https://halc.top/p/2f594679.html + 2021-05-07 + + + https://halc.top/p/cc7f9b10.html + 2021-04-30 + + + https://halc.top/p/6a6a7409.html + 2021-04-27 + + + https://halc.top/p/24f916f9.html + 2021-04-24 + + + https://halc.top/p/a2277ea0.html + 2021-04-20 + + + https://halc.top/p/15b685e1.html + 2021-04-20 + + + https://halc.top/p/cff2e0b5.html + 2021-04-19 + + + https://halc.top/p/e8eb0481.html + 2021-04-12 + + + https://halc.top/p/713e2886.html + 2021-04-06 + + + https://halc.top/p/12aa3ef8.html + 2021-04-04 + + + https://halc.top/p/3efcbb51.html + 2021-03-25 + + + https://halc.top/p/5a7c7761.html + 2021-03-25 + + + https://halc.top/p/c1161a88.html + 2021-03-24 + + + https://halc.top/p/99e48799.html + 2021-03-20 + + + https://halc.top/p/2dda2597.html + 2021-03-17 + + + https://halc.top/p/a9706dff.html + 2021-03-17 + + + https://halc.top/p/41385a4a.html + 2021-03-16 + + + https://halc.top/p/c9774a05.html + 2021-03-15 + + + https://halc.top/p/1d3a895d.html + 2021-03-14 + + + https://halc.top/p/dea4f344.html + 2021-03-14 + + + https://halc.top/p/15b28479.html + 2021-03-14 + + \ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 00000000..40501773 --- /dev/null +++ b/categories/index.html @@ -0,0 +1,2 @@ +分类 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\344\270\252\344\272\272\346\200\273\347\273\223/index.html" "b/categories/\344\270\252\344\272\272\346\200\273\347\273\223/index.html" new file mode 100644 index 00000000..067546fd --- /dev/null +++ "b/categories/\344\270\252\344\272\272\346\200\273\347\273\223/index.html" @@ -0,0 +1,2 @@ +分类 - 个人总结 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\256\211\350\243\205\345\274\225\345\257\274/index.html" "b/categories/\345\256\211\350\243\205\345\274\225\345\257\274/index.html" new file mode 100644 index 00000000..f4af6ab3 --- /dev/null +++ "b/categories/\345\256\211\350\243\205\345\274\225\345\257\274/index.html" @@ -0,0 +1,2 @@ +分类 - 安装引导 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\256\211\350\243\205\345\274\225\345\257\274/page/2/index.html" "b/categories/\345\256\211\350\243\205\345\274\225\345\257\274/page/2/index.html" new file mode 100644 index 00000000..ee6dc9d0 --- /dev/null +++ "b/categories/\345\256\211\350\243\205\345\274\225\345\257\274/page/2/index.html" @@ -0,0 +1,2 @@ +分类 - 安装引导 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\260\217\346\212\200\345\267\247/index.html" "b/categories/\345\260\217\346\212\200\345\267\247/index.html" new file mode 100644 index 00000000..b1626fee --- /dev/null +++ "b/categories/\345\260\217\346\212\200\345\267\247/index.html" @@ -0,0 +1,2 @@ +分类 - 小技巧 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\260\217\346\212\200\345\267\247/page/2/index.html" "b/categories/\345\260\217\346\212\200\345\267\247/page/2/index.html" new file mode 100644 index 00000000..f37c809d --- /dev/null +++ "b/categories/\345\260\217\346\212\200\345\267\247/page/2/index.html" @@ -0,0 +1,2 @@ +分类 - 小技巧 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\260\217\346\212\200\345\267\247/page/3/index.html" "b/categories/\345\260\217\346\212\200\345\267\247/page/3/index.html" new file mode 100644 index 00000000..1f9c7726 --- /dev/null +++ "b/categories/\345\260\217\346\212\200\345\267\247/page/3/index.html" @@ -0,0 +1,2 @@ +分类 - 小技巧 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\345\260\217\346\212\200\345\267\247/page/4/index.html" "b/categories/\345\260\217\346\212\200\345\267\247/page/4/index.html" new file mode 100644 index 00000000..f746c8b7 --- /dev/null +++ "b/categories/\345\260\217\346\212\200\345\267\247/page/4/index.html" @@ -0,0 +1,2 @@ +分类 - 小技巧 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\350\256\260\345\275\225/index.html" "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/index.html" new file mode 100644 index 00000000..4c0b1d27 --- /dev/null +++ "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/index.html" @@ -0,0 +1,2 @@ +分类 - 知识记录 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/2/index.html" "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/2/index.html" new file mode 100644 index 00000000..2c2ccc5b --- /dev/null +++ "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/2/index.html" @@ -0,0 +1,2 @@ +分类 - 知识记录 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/3/index.html" "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/3/index.html" new file mode 100644 index 00000000..40966b91 --- /dev/null +++ "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/3/index.html" @@ -0,0 +1,2 @@ +分类 - 知识记录 - Halcyon Zone +
\ No newline at end of file diff --git "a/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/4/index.html" "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/4/index.html" new file mode 100644 index 00000000..cf58fb9f --- /dev/null +++ "b/categories/\347\237\245\350\257\206\350\256\260\345\275\225/page/4/index.html" @@ -0,0 +1,2 @@ +分类 - 知识记录 - Halcyon Zone +
\ No newline at end of file diff --git a/css/gitalk.css b/css/gitalk.css new file mode 100644 index 00000000..d1191ae9 --- /dev/null +++ b/css/gitalk.css @@ -0,0 +1 @@ +@font-face{font-family:octicons-link;src:url(data:font/woff;charset=utf-8;base64,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) format('woff')}.gt-container{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px}.gt-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.gt-container a{color:#6190e8}.gt-container a:hover{color:#81a6ed;border-color:#81a6ed}.gt-container a.is--active{color:#333;cursor:default!important}.gt-container a.is--active:hover{color:#333}.gt-container .hide{display:none!important}.gt-container .gt-svg{display:inline-block;width:1em;height:1em;vertical-align:sub}.gt-container .gt-svg svg{width:100%;height:100%;fill:#6190e8}.gt-container .gt-ico{display:inline-block}.gt-container .gt-ico-text{margin-left:.3125em}.gt-container .gt-ico-github{width:100%;height:100%}.gt-container .gt-ico-github .gt-svg{width:100%;height:100%}.gt-container .gt-ico-github svg{fill:inherit}.gt-container .gt-spinner{position:relative}.gt-container .gt-spinner::before{content:'';-webkit-box-sizing:border-box;box-sizing:border-box;position:absolute;top:3px;width:.75em;height:.75em;margin-top:-.1875em;margin-left:-.375em;border-radius:50%;border:1px solid #fff;border-top-color:#6190e8;-webkit-animation:gt-kf-rotate .6s linear infinite;animation:gt-kf-rotate .6s linear infinite}.gt-container .gt-loader{position:relative;border:1px solid #999;-webkit-animation:ease gt-kf-rotate 1.5s infinite;animation:ease gt-kf-rotate 1.5s infinite;display:inline-block;font-style:normal;width:1.75em;height:1.75em;line-height:1.75em;border-radius:50%}.gt-container .gt-loader:before{content:'';position:absolute;display:block;top:0;left:50%;margin-top:-.1875em;margin-left:-.1875em;width:.375em;height:.375em;background-color:#999;border-radius:50%}.gt-container .gt-avatar{display:inline-block;width:3.125em;height:3.125em}@media (max-width:479px){.gt-container .gt-avatar{width:2em;height:2em}}.gt-container .gt-avatar img{width:100%;height:auto;border-radius:3px}.gt-container .gt-avatar-github{width:3em;height:3em}@media (max-width:479px){.gt-container .gt-avatar-github{width:1.875em;height:1.875em}}.gt-container .gt-btn{padding:.75em 1.25em;display:inline-block;line-height:1;text-decoration:none;white-space:nowrap;cursor:pointer;border:1px solid #6190e8;border-radius:5px;background-color:#6190e8;color:#fff;outline:0;font-size:.75em}.gt-container .gt-btn-text{font-weight:400}.gt-container .gt-btn-loading{position:relative;margin-left:.5em;display:inline-block;width:.75em;height:1em;vertical-align:top}.gt-container .gt-btn.is--disable{cursor:not-allowed;opacity:.5}.gt-container .gt-btn-login{margin-right:0}.gt-container .gt-btn-preview{background-color:#fff;color:#6190e8}.gt-container .gt-btn-preview:hover{background-color:#f2f2f2;border-color:#81a6ed}.gt-container .gt-btn-public:hover{background-color:#81a6ed;border-color:#81a6ed}.gt-container .gt-error{text-align:center;margin:.625em;color:#ff3860}.gt-container .gt-initing{padding:1.25em 0;text-align:center}.gt-container .gt-initing-text{margin:.625em auto;font-size:92%}.gt-container .gt-no-init{padding:1.25em 0;text-align:center}.gt-container .gt-link{border-bottom:1px dotted #6190e8}.gt-container .gt-link-counts,.gt-container .gt-link-project{text-decoration:none}.gt-container .gt-meta{margin:1.25em 0;padding:1em 0;position:relative;border-bottom:1px solid #e9e9e9;font-size:1em;position:relative;z-index:10}.gt-container .gt-meta:after,.gt-container .gt-meta:before{content:" ";display:table}.gt-container .gt-meta:after{clear:both}.gt-container .gt-counts{margin:0 .625em 0 0}.gt-container .gt-user{float:right;margin:0;font-size:92%}.gt-container .gt-user-pic{width:16px;height:16px;vertical-align:top;margin-right:.5em}.gt-container .gt-user-inner{display:inline-block;cursor:pointer}.gt-container .gt-user .gt-ico{margin:0 0 0 .3125em}.gt-container .gt-user .gt-ico svg{fill:inherit}.gt-container .gt-user .is--poping .gt-ico svg{fill:#6190e8}.gt-container .gt-version{color:#a1a1a1;margin-left:.375em}.gt-container .gt-copyright{margin:0 .9375em .5em;border-top:1px solid #e9e9e9;padding-top:.5em}.gt-container .gt-popup{position:absolute;right:0;top:2.375em;background:#fff;display:inline-block;border:1px solid #e9e9e9;padding:.625em 0;font-size:.875em;letter-spacing:.5px}.gt-container .gt-popup .gt-action{cursor:pointer;display:block;margin:.5em 0;padding:0 1.125em;position:relative;text-decoration:none}.gt-container .gt-popup .gt-action.is--active:before{content:'';width:.25em;height:.25em;background:#6190e8;position:absolute;left:.5em;top:.4375em}.gt-container .gt-header{position:relative;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-header-comment{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em}@media (max-width:479px){.gt-container .gt-header-comment{margin-left:.875em}}.gt-container .gt-header-textarea{padding:.75em;display:block;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;min-height:5.125em;max-height:15em;border-radius:5px;border:1px solid rgba(0,0,0,.1);font-size:.875em;word-wrap:break-word;resize:vertical;background-color:#f6f6f6;outline:0;-webkit-transition:all .25s ease;transition:all .25s ease}.gt-container .gt-header-textarea:hover{background-color:#fbfbfb}.gt-container .gt-header-preview{padding:.75em;border-radius:5px;border:1px solid rgba(0,0,0,.1);background-color:#f6f6f6}.gt-container .gt-header-controls{position:relative;margin:.75em 0 0}.gt-container .gt-header-controls:after,.gt-container .gt-header-controls:before{content:" ";display:table}.gt-container .gt-header-controls:after{clear:both}@media (max-width:479px){.gt-container .gt-header-controls{margin:0}}.gt-container .gt-header-controls-tip{font-size:.875em;color:#6190e8;text-decoration:none;vertical-align:sub}@media (max-width:479px){.gt-container .gt-header-controls-tip{display:none}}.gt-container .gt-header-controls .gt-btn{float:right;margin-left:1.25em}@media (max-width:479px){.gt-container .gt-header-controls .gt-btn{float:none;width:100%;margin:.75em 0 0}}.gt-container:after{content:'';position:fixed;bottom:100%;left:0;right:0;top:0;opacity:0}.gt-container.gt-input-focused{position:relative}.gt-container.gt-input-focused:after{content:'';position:fixed;bottom:0;left:0;right:0;top:0;background:#000;opacity:.6;-webkit-transition:opacity .3s,bottom 0s;transition:opacity .3s,bottom 0s;z-index:9999}.gt-container.gt-input-focused .gt-header-comment{z-index:10000}.gt-container .gt-comments{padding-top:1.25em}.gt-container .gt-comments-null{text-align:center}.gt-container .gt-comments-controls{margin:1.25em 0;text-align:center}.gt-container .gt-comment{position:relative;padding:.625em 0;display:-webkit-box;display:-ms-flexbox;display:flex}.gt-container .gt-comment-content{-webkit-box-flex:1;-ms-flex:1;flex:1;margin-left:1.25em;padding:.75em 1em;background-color:#f9f9f9;overflow:auto;-webkit-transition:all ease .25s;transition:all ease .25s}.gt-container .gt-comment-content:hover{-webkit-box-shadow:0 .625em 3.75em 0 #f4f4f4;box-shadow:0 .625em 3.75em 0 #f4f4f4}@media (max-width:479px){.gt-container .gt-comment-content{margin-left:.875em;padding:.625em .75em}}.gt-container .gt-comment-header{margin-bottom:.5em;font-size:.875em;position:relative}.gt-container .gt-comment-block-1{float:right;height:1.375em;width:2em}.gt-container .gt-comment-block-2{float:right;height:1.375em;width:4em}.gt-container .gt-comment-username{font-weight:500;color:#6190e8;text-decoration:none}.gt-container .gt-comment-username:hover{text-decoration:underline}.gt-container .gt-comment-text{margin-left:.5em;color:#a1a1a1}.gt-container .gt-comment-date{margin-left:.5em;color:#a1a1a1}.gt-container .gt-comment-edit,.gt-container .gt-comment-like,.gt-container .gt-comment-reply{position:absolute;height:1.375em}.gt-container .gt-comment-edit:hover,.gt-container .gt-comment-like:hover,.gt-container .gt-comment-reply:hover{cursor:pointer}.gt-container .gt-comment-like{top:0;right:2em}.gt-container .gt-comment-edit,.gt-container .gt-comment-reply{top:0;right:0}.gt-container .gt-comment-body{color:#333!important}.gt-container .gt-comment-body .email-hidden-toggle a{display:inline-block;height:12px;padding:0 9px;font-size:12px;font-weight:600;line-height:6px;color:#444d56;text-decoration:none;vertical-align:middle;background:#dfe2e5;border-radius:1px}.gt-container .gt-comment-body .email-hidden-toggle a:hover{background-color:#c6cbd1}.gt-container .gt-comment-body .email-hidden-reply{display:none;white-space:pre-wrap}.gt-container .gt-comment-body .email-hidden-reply .email-signature-reply{padding:0 15px;margin:15px 0;color:#586069;border-left:4px solid #dfe2e5}.gt-container .gt-comment-body .email-hidden-reply.expanded{display:block}.gt-container .gt-comment-admin .gt-comment-content{background-color:#f6f9fe}@-webkit-keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes gt-kf-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}} \ No newline at end of file diff --git a/css/highlight-dark.css b/css/highlight-dark.css new file mode 100644 index 00000000..9ed546ba --- /dev/null +++ b/css/highlight-dark.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#ddd;background:#303030}.hljs-keyword,.hljs-link,.hljs-literal,.hljs-section,.hljs-selector-tag{color:#fff}.hljs-addition,.hljs-attribute,.hljs-built_in,.hljs-bullet,.hljs-name,.hljs-string,.hljs-symbol,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type,.hljs-variable{color:#d88}.hljs-comment,.hljs-deletion,.hljs-meta,.hljs-quote{color:#979797}.hljs-doctag,.hljs-keyword,.hljs-literal,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-strong,.hljs-title,.hljs-type{font-weight:700}.hljs-emphasis{font-style:italic} \ No newline at end of file diff --git a/css/highlight.css b/css/highlight.css new file mode 100644 index 00000000..52489b6b --- /dev/null +++ b/css/highlight.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{background:#1d1f21;color:#c5c8c6}.hljs span::selection,.hljs::selection{background:#373b41}.hljs span::-moz-selection,.hljs::-moz-selection{background:#373b41}.hljs-name,.hljs-title{color:#f0c674}.hljs-comment,.hljs-meta,.hljs-meta .hljs-keyword{color:#707880}.hljs-deletion,.hljs-link,.hljs-literal,.hljs-number,.hljs-symbol{color:#c66}.hljs-addition,.hljs-doctag,.hljs-regexp,.hljs-selector-attr,.hljs-selector-pseudo,.hljs-string{color:#b5bd68}.hljs-attribute,.hljs-code,.hljs-selector-id{color:#b294bb}.hljs-bullet,.hljs-keyword,.hljs-selector-tag,.hljs-tag{color:#81a2be}.hljs-subst,.hljs-template-tag,.hljs-template-variable,.hljs-variable{color:#8abeb7}.hljs-built_in,.hljs-quote,.hljs-section,.hljs-selector-class,.hljs-type{color:#de935f}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700} \ No newline at end of file diff --git a/css/main.css b/css/main.css new file mode 100644 index 00000000..ce8e5da9 --- /dev/null +++ b/css/main.css @@ -0,0 +1 @@ +.anchorjs-link{text-decoration:none!important;transition:opacity .2s ease-in-out}.markdown-body h1:hover>.anchorjs-link,h2:hover>.anchorjs-link,h3:hover>.anchorjs-link,h4:hover>.anchorjs-link,h5:hover>.anchorjs-link,h6:hover>.anchorjs-link{opacity:1}.banner{height:100%;position:relative;overflow:hidden;cursor:default}.banner .mask{position:absolute;width:100%;height:100%;background-color:rgba(0,0,0,.3)}.banner[parallax=true]{will-change:transform;-webkit-transform-style:preserve-3d;-webkit-backface-visibility:hidden;transition:transform 50ms ease-out}@media (max-width:100vh){.header-inner{max-height:100vw}#board{margin-top:-1rem!important}}@media (max-width:79.99vh){.scroll-down-bar{display:none}}#board{position:relative;margin-top:-2rem;padding:3rem 0;background-color:var(--board-bg-color);transition:background-color .2s ease-in-out;border-radius:.5rem;z-index:3;-webkit-box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19);box-shadow:0 12px 15px 0 rgba(0,0,0,.24),0 17px 50px 0 rgba(0,0,0,.19)}.code-widget{display:inline-block;background-color:transparent;font-size:.75rem;line-height:1;font-weight:700;padding:.3rem .1rem .1rem .1rem;position:absolute;right:.45rem;top:.15rem;z-index:1}.code-widget-light{color:#999}.code-widget-dark{color:#bababa}.copy-btn{cursor:pointer;user-select:none;-webkit-appearance:none;outline:0}.copy-btn>i{font-size:.75rem!important;font-weight:400;margin-right:.15rem;opacity:0;transition:opacity .2s ease-in-out}.markdown-body pre:hover>.copy-btn>i{opacity:.9}.markdown-body pre:hover>.copy-btn,.markdown-body pre:not(:hover)>.copy-btn{outline:0}.license-box{background-color:rgba(27,31,35,.05);transition:background-color .2s ease-in-out;border-radius:4px;font-size:.9rem;overflow:hidden;padding:1.25rem;position:relative;z-index:1}.license-box .license-icon{position:absolute;top:50%;left:100%}.license-box .license-icon::after{content:"\e8e4";font-size:12.5rem;line-height:1;opacity:.1;position:relative;left:-.85em;bottom:.5em;z-index:-1}.license-box .license-title{margin-bottom:1rem}.license-box .license-title div:nth-child(1){line-height:1.2;margin-bottom:.25rem}.license-box .license-title div:nth-child(2){color:var(--sec-text-color);font-size:.8rem}.license-box .license-meta{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.license-box .license-meta .license-meta-item{align-items:center;justify-content:center;margin-right:1.5rem}.license-box .license-meta .license-meta-item div:nth-child(1){color:var(--sec-text-color);font-size:.8rem;font-weight:400}.license-box .license-meta .license-meta-item i.iconfont{font-size:1rem}@media (max-width:575px) and (min-width:425px){.license-box .license-meta .license-meta-item{display:flex;justify-content:flex-start;flex-wrap:wrap;font-size:.8rem;flex:0 0 50%;max-width:50%;margin-right:0}.license-box .license-meta .license-meta-item div:nth-child(1){margin-right:.5rem}.license-box .license-meta .license-meta-date{order:-1}}@media (max-width:424px){.license-box::after{top:-65px}.license-box .license-meta{flex-direction:column;align-items:flex-start}.license-box .license-meta .license-meta-item{display:flex;flex-wrap:wrap;font-size:.8rem}.license-box .license-meta .license-meta-item div:nth-child(1){margin-right:.5rem}}.footer-inner{padding:3rem 0 1rem 0;text-align:center}.footer-inner>div:not(:first-child){margin:.25rem 0;font-size:.85rem}.footer-inner .statistics{display:flex;flex-direction:row;justify-content:center}.footer-inner .statistics>span{flex:1;margin:0 .25rem}.footer-inner .statistics>:nth-last-child(2):first-child{text-align:right}.footer-inner .statistics>:nth-last-child(2):first-child~*{text-align:left}.footer-inner .beian{display:flex;flex-direction:row;justify-content:center}.footer-inner .beian>*{margin:0 .25rem}.footer-inner .beian-police{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:left}.footer-inner .beian-police img{margin-right:3px;width:1rem;height:1rem;margin-bottom:.1rem}@media (max-width:424px){.footer-inner .statistics{flex-direction:column}.footer-inner .statistics>:nth-last-child(2):first-child{text-align:center}.footer-inner .statistics>:nth-last-child(2):first-child~*{text-align:center}.footer-inner .beian{flex-direction:column}.footer-inner .beian .beian-police{justify-content:center}.footer-inner .beian>:nth-last-child(2):first-child{text-align:center}.footer-inner .beian>:nth-last-child(2):first-child~*{text-align:center}}.footnote-text::before,sup>a::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.footnote-text::before,sup>a::before{display:inline-block}.footnote-item::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.footnote-list ol{list-style-type:none;counter-reset:sectioncounter;padding-left:.5rem;font-size:.95rem}.footnote-list ol li:before{font-family:"Helvetica Neue",monospace,Monaco;content:"[" counter(sectioncounter) "]";counter-increment:sectioncounter}.footnote-list ol li+li{margin-top:.5rem}.footnote-text{padding-left:.5em}.navbar{background-color:transparent;font-size:.875rem;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.navbar .navbar-brand{color:var(--navbar-text-color)}.navbar .navbar-toggler .animated-icon span{background-color:var(--navbar-text-color)}.navbar .nav-item .nav-link{display:block;color:var(--navbar-text-color);transition:color .2s ease-in-out,background-color .2s ease-in-out}.navbar .nav-item .nav-link:hover{color:var(--link-hover-color)}.navbar .nav-item .nav-link:focus{color:var(--navbar-text-color)}.navbar .nav-item .nav-link i{font-size:.875rem}.navbar .nav-item .nav-link i:only-child{margin:0 .2rem}.navbar .navbar-toggler{border-width:0;outline:0}.navbar.scrolling-navbar{will-change:background,padding;-webkit-transition:background .5s ease-in-out,padding .5s ease-in-out;transition:background .5s ease-in-out,padding .5s ease-in-out}@media (min-width:600px){.navbar.scrolling-navbar{padding-top:12px;padding-bottom:12px}.navbar.scrolling-navbar .navbar-nav>li{-webkit-transition-duration:1s;transition-duration:1s}}.navbar.scrolling-navbar.top-nav-collapse{padding-top:5px;padding-bottom:5px}.navbar .dropdown-menu{font-size:.875rem;color:var(--navbar-text-color);background-color:rgba(0,0,0,.3);border:none;min-width:8rem;-webkit-transition:background .5s ease-in-out,padding .5s ease-in-out;transition:background .5s ease-in-out,padding .5s ease-in-out}@media (max-width:991.98px){.navbar .dropdown-menu{text-align:center}}.navbar .dropdown-item{color:var(--navbar-text-color)}.navbar .dropdown-item:focus,.navbar .dropdown-item:hover{color:var(--link-hover-color);background-color:rgba(0,0,0,.1)}@media (min-width:992px){.navbar .dropdown:hover>.dropdown-menu{display:block}.navbar .dropdown>.dropdown-toggle:active{pointer-events:none}.navbar .dropdown-menu{top:95%}}.navbar .animated-icon{width:30px;height:20px;position:relative;margin:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);-webkit-transition:.5s ease-in-out;-moz-transition:.5s ease-in-out;-o-transition:.5s ease-in-out;transition:.5s ease-in-out;cursor:pointer}.navbar .animated-icon span{display:block;position:absolute;height:3px;width:100%;border-radius:9px;opacity:1;left:0;-webkit-transform:rotate(0);-moz-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0);-webkit-transition:.25s ease-in-out;-moz-transition:.25s ease-in-out;-o-transition:.25s ease-in-out;transition:.25s ease-in-out;background:#fff}.navbar .animated-icon span:nth-child(1){top:0}.navbar .animated-icon span:nth-child(2){top:10px}.navbar .animated-icon span:nth-child(3){top:20px}.navbar .animated-icon.open span:nth-child(1){top:11px;-webkit-transform:rotate(135deg);-moz-transform:rotate(135deg);-o-transform:rotate(135deg);transform:rotate(135deg)}.navbar .animated-icon.open span:nth-child(2){opacity:0;left:-60px}.navbar .animated-icon.open span:nth-child(3){top:11px;-webkit-transform:rotate(-135deg);-moz-transform:rotate(-135deg);-o-transform:rotate(-135deg);transform:rotate(-135deg)}.navbar .dropdown-collapse,.navbar-col-show,.top-nav-collapse{background-color:var(--navbar-bg-color)}@media (max-width:767px){.navbar{font-size:1rem;line-height:2.5rem}}.banner-text{color:var(--subtitle-color);max-width:calc(960px - 6rem);width:80%;overflow-wrap:break-word}.banner-text .typed-cursor{margin:0 .2rem}@media (max-width:767px){#subtitle,.typed-cursor{font-size:1.5rem}}@media (max-width:575px){.banner-text{font-size:.9rem}#subtitle,.typed-cursor{font-size:1.35rem}}.modal-dialog .modal-content{background-color:var(--board-bg-color);border:0;border-radius:.125rem;-webkit-box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15)}.modal-dialog .modal-content .modal-header{border-bottom-color:var(--line-color);transition:border-bottom-color .2s ease-in-out}.close{color:var(--text-color)}.close:hover{color:var(--link-hover-color)}.close:focus{outline:0}.modal-dialog .modal-content .modal-header{border-top-left-radius:.125rem;border-top-right-radius:.125rem;border-bottom:1px solid #dee2e6}.md-form{position:relative;margin-top:1.5rem;margin-bottom:1.5rem}.md-form input[type]{-webkit-box-sizing:content-box;box-sizing:content-box;background-color:transparent;border:none;border-bottom:1px solid #ced4da;border-radius:0;outline:0;-webkit-box-shadow:none;box-shadow:none;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-box-shadow .15s ease-in-out}.md-form input[type]:focus:not([readonly]){border-bottom:1px solid #4285f4;-webkit-box-shadow:0 1px 0 0 #4285f4;box-shadow:0 1px 0 0 #4285f4}.md-form input[type]:focus:not([readonly])+label{color:#4285f4}.md-form input[type].valid,.md-form input[type]:focus.valid{border-bottom:1px solid #00c851;-webkit-box-shadow:0 1px 0 0 #00c851;box-shadow:0 1px 0 0 #00c851}.md-form input[type].valid+label,.md-form input[type]:focus.valid+label{color:#00c851}.md-form input[type].invalid,.md-form input[type]:focus.invalid{border-bottom:1px solid #f44336;-webkit-box-shadow:0 1px 0 0 #f44336;box-shadow:0 1px 0 0 #f44336}.md-form input[type].invalid+label,.md-form input[type]:focus.invalid+label{color:#f44336}.md-form input[type].validate{margin-bottom:2.5rem}.md-form input[type].form-control{height:auto;padding:.6rem 0 .4rem 0;margin:0 0 .5rem 0;color:var(--text-color);background-color:transparent;border-radius:0}.md-form label{font-size:.8rem;position:absolute;top:-1rem;left:0;color:#757575;cursor:text;transition:color .2s ease-out}.modal-open[style]{padding-right:0!important;overflow:auto}.modal-open[style] #navbar[style]{padding-right:1rem!important}#nprogress .bar{height:3px!important;background-color:#29d!important}#nprogress .peg{box-shadow:0 0 14px #29d,0 0 8px #29d!important}@media (max-width:575px){#nprogress .bar{display:none}}.noscript-warning{background-color:#f55;color:#fff;font-family:sans-serif;font-size:1rem;font-weight:700;position:fixed;left:0;bottom:0;text-align:center;width:100%;z-index:99}.pagination{margin-top:3rem;justify-content:center}.pagination .space{align-self:flex-end}.pagination .current,.pagination .extend,.pagination .page-number{outline:0;border:0;background-color:transparent;font-size:.9rem;padding:.5rem .75rem;line-height:1.25;border-radius:.125rem}.pagination .page-number{margin:0 .05rem}.pagination .current,.pagination .page-number:hover{transition:background-color .2s ease-in-out;background-color:var(--link-hover-bg-color)}.qr-trigger{cursor:pointer;position:relative}.qr-trigger:hover .qr-img{display:block;transition:all .3s}.qr-img{max-width:12rem;position:absolute;right:-5.25rem;z-index:99;display:none;border-radius:.2rem;background-color:transparent;box-shadow:0 0 20px -5px rgba(158,158,158,.2)}.scroll-down-bar{position:absolute;width:100%;height:6rem;text-align:center;cursor:pointer;bottom:0}.scroll-down-bar i.iconfont{font-size:2rem;font-weight:700;display:inline-block;position:relative;padding-top:2rem;color:var(--subtitle-color);transform:translateZ(0);animation:scroll-down 1.5s infinite}#scroll-top-button{position:fixed;z-index:99;background:var(--board-bg-color);transition:background-color .2s ease-in-out,bottom .3s ease;border-radius:4px;min-width:40px;min-height:40px;bottom:-60px;outline:0;display:flex;display:-webkit-flex;align-items:center;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}#scroll-top-button i{font-size:32px;margin:auto;color:var(--sec-text-color)}#scroll-top-button:active i,#scroll-top-button:hover i{animation-name:scroll-top;animation-duration:1s;animation-delay:.1s;animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-fill-mode:forwards;animation-direction:alternate}#local-search-result .search-list-title{border-left:3px solid #0d47a1}#local-search-result .search-list-content{padding:0 1.25rem}#local-search-result .search-word{color:#ff4500}#toc{visibility:hidden}.toc-header{margin-bottom:.5rem;font-weight:700;line-height:1.2}.toc-header,.toc-header>i{font-size:1.25rem}.toc-body{max-height:75vh;overflow-y:auto;overflow:-moz-scrollbars-none;-ms-overflow-style:none}.toc-body ol{list-style:none;padding-inline-start:1rem}.toc-body::-webkit-scrollbar{display:none}.tocbot-list{position:relative}.tocbot-list ol{list-style:none;padding-left:1rem}.tocbot-list a{font-size:.95rem}.tocbot-link{color:var(--text-color)}.tocbot-active-link{font-weight:700;color:var(--link-hover-color)}.tocbot-is-collapsed{max-height:0}.tocbot-is-collapsible{overflow:hidden;transition:all .3s ease-in-out}.toc-list-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toc-list-item.is-active-li::before{height:1rem;margin:.25rem 0;visibility:visible}.toc-list-item::before{width:.15rem;height:.2rem;position:absolute;left:.25rem;content:"";border-radius:2px;margin:.65rem 0;background:var(--link-hover-color);visibility:hidden;transition:height .1s ease-in-out,margin .1s ease-in-out,visibility .1s ease-in-out}.sidebar{position:-webkit-sticky;position:sticky;top:2rem;padding:3rem 0}html{font-size:16px;letter-spacing:.02em}body,html{height:100%;font-family:var(--font-family-sans-serif);overflow-wrap:break-word}body{transition:color .2s ease-in-out,background-color .2s ease-in-out;background-color:var(--body-bg-color);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body a{color:var(--text-color);text-decoration:none;cursor:pointer;transition:color .2s ease-in-out,background-color .2s ease-in-out}body a:hover{color:var(--link-hover-color);text-decoration:none;transition:color .2s ease-in-out,background-color .2s ease-in-out}code{color:inherit}table{font-size:inherit;color:var(--post-text-color)}img[lazyload]{object-fit:cover}[align=left]{text-align:left}[align=center]{text-align:center}[align=right]{text-align:right}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-color);border-radius:6px}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-hover-color)}::-webkit-scrollbar-corner{background-color:transparent}label{margin-bottom:0}i.iconfont{font-size:1em;line-height:1}:root{--color-mode:"light";--body-bg-color:#eee;--board-bg-color:#fff;--text-color:#3c4858;--sec-text-color:#718096;--post-text-color:#2c3e50;--post-heading-color:#1a202c;--post-link-color:#0366d6;--link-hover-color:#30a9de;--link-hover-bg-color:#f8f9fa;--line-color:#eaecef;--navbar-bg-color:#2f4154;--navbar-text-color:#fff;--subtitle-color:#fff;--scrollbar-color:#c4c6c9;--scrollbar-hover-color:#a6a6a6;--button-bg-color:transparent;--button-hover-bg-color:#f2f3f5;--highlight-bg-color:#1d1f21;--inlinecode-bg-color:rgba(175,184,193,0.2);--fold-title-color:#3c4858;--fold-border-color:#eaecef}@media (prefers-color-scheme:dark){:root{--color-mode:"dark"}:root:not([data-user-color-scheme]){--body-bg-color:#181c27;--board-bg-color:#252d38;--text-color:#c4c6c9;--sec-text-color:#a7a9ad;--post-text-color:#c4c6c9;--post-heading-color:#c4c6c9;--post-link-color:#1589e9;--link-hover-color:#30a9de;--link-hover-bg-color:#364151;--line-color:#435266;--navbar-bg-color:#1f3144;--navbar-text-color:#d0d0d0;--subtitle-color:#d0d0d0;--scrollbar-color:#687582;--scrollbar-hover-color:#9da8b3;--button-bg-color:transparent;--button-hover-bg-color:#46647e;--highlight-bg-color:#303030;--inlinecode-bg-color:rgba(99,110,123,0.4);--fold-title-color:#c4c6c9;--fold-border-color:#435266}:root:not([data-user-color-scheme]) img{-webkit-filter:brightness(0.9);filter:brightness(.9);transition:filter .2s ease-in-out}:root:not([data-user-color-scheme]) .license-box{background-color:rgba(62,75,94,.35);transition:background-color .2s ease-in-out}:root:not([data-user-color-scheme]) .gt-comment-admin .gt-comment-content{background-color:transparent;transition:background-color .2s ease-in-out}}@media not print{[data-user-color-scheme=dark]{--body-bg-color:#181c27;--board-bg-color:#252d38;--text-color:#c4c6c9;--sec-text-color:#a7a9ad;--post-text-color:#c4c6c9;--post-heading-color:#c4c6c9;--post-link-color:#1589e9;--link-hover-color:#30a9de;--link-hover-bg-color:#364151;--line-color:#435266;--navbar-bg-color:#1f3144;--navbar-text-color:#d0d0d0;--subtitle-color:#d0d0d0;--scrollbar-color:#687582;--scrollbar-hover-color:#9da8b3;--button-bg-color:transparent;--button-hover-bg-color:#46647e;--highlight-bg-color:#303030;--inlinecode-bg-color:rgba(99,110,123,0.4);--fold-title-color:#c4c6c9;--fold-border-color:#435266}[data-user-color-scheme=dark] img{-webkit-filter:brightness(0.9);filter:brightness(.9);transition:filter .2s ease-in-out}[data-user-color-scheme=dark] .license-box{background-color:rgba(62,75,94,.35);transition:background-color .2s ease-in-out}[data-user-color-scheme=dark] .gt-comment-admin .gt-comment-content{background-color:transparent;transition:background-color .2s ease-in-out}}@media print{:root{--color-mode:"light"}}.fade-in-up{-webkit-animation-name:fade-in-up;animation-name:fade-in-up}.hidden-mobile{display:block}.visible-mobile{display:none}@media (max-width:575px){.hidden-mobile{display:none}.visible-mobile{display:block}}.nomargin-x{margin-left:0!important;margin-right:0!important}.nopadding-x{padding-left:0!important;padding-right:0!important}@media (max-width:767px){.nopadding-x-md{padding-left:0!important;padding-right:0!important}}.flex-center{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;height:100%}.hover-with-bg{display:inline-block;line-height:1}.hover-with-bg:hover{background-color:var(--link-hover-bg-color);transition-duration:.2s;transition-timing-function:ease-in-out;border-radius:.2rem}@-moz-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-webkit-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-o-keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@keyframes fade-in-up{from{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}@-moz-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-webkit-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-o-keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@keyframes scroll-down{0%{opacity:.8;top:0}50%{opacity:.4;top:-1em}100%{opacity:.8;top:0}}@-moz-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@-o-keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes scroll-top{0%{-webkit-transform:translateY(0);transform:translateY(0)}50%{-webkit-transform:translateY(-.35rem);transform:translateY(-.35rem)}100%{-webkit-transform:translateY(0);transform:translateY(0)}}@media print{#comments,#scroll-top-button,.post-prevnext,.side-col,footer,header{display:none!important}.markdown-body a:not([href^='#']):not([href^='javascript:']):not(.print-no-link)::after{content:' (' attr(href) ')';font-size:.8rem;color:var(--post-text-color);opacity:.8}.markdown-body h2,.markdown-body>h1{border-bottom-color:transparent!important}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body>h1{margin-top:1.25em!important;margin-bottom:.25em!important}.markdown-body [data-anchorjs-icon]::after{display:none}.markdown-body figure.highlight table,.markdown-body figure.highlight tbody,.markdown-body figure.highlight td.code,.markdown-body figure.highlight td.code pre,.markdown-body figure.highlight tr{width:100%!important;display:block!important}.markdown-body figure.highlight pre>code{white-space:pre-wrap}.markdown-body figure.highlight .code-widget,.markdown-body figure.highlight .gutter{display:none!important}.post-metas a{text-decoration:none}}@media not print{#seo-header{display:none}}.index-card{margin-bottom:2.5rem}.index-img img{display:block;width:100%;height:10rem;object-fit:cover;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);border-radius:.25rem;background-color:transparent}.index-info{display:flex;flex-direction:column;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.index-header{color:var(--text-color);font-size:1.5rem;font-weight:700;line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:.25rem}.index-header .index-pin{color:var(--text-color);font-size:1.5rem;margin-right:.15rem}.index-btm{color:var(--sec-text-color)}.index-btm a{color:var(--sec-text-color)}.index-excerpt{color:var(--sec-text-color);margin:.5rem 0;height:calc(1.4rem * 3);overflow:hidden;display:flex}.index-excerpt>div{width:100%;line-height:1.4rem;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.index-excerpt__noimg{height:auto;max-height:calc(1.4rem * 3)}@media (max-width:767px){.index-info{padding-top:1.25rem}.index-header{font-size:1.25rem;white-space:normal;overflow:hidden;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.index-header .index-pin{font-size:1.25rem}.index-excerpt{height:auto;max-height:calc(1.4rem * 3);margin:.25rem 0}}#valine.v[data-class=v] .status-bar,#valine.v[data-class=v] .vbtn,#valine.v[data-class=v] .veditor,#valine.v[data-class=v] .vinput,#valine.v[data-class=v] p,#valine.v[data-class=v] pre code{color:var(--text-color)}#valine.v[data-class=v] .vinput::placeholder{color:var(--sec-text-color)}#valine.v[data-class=v] .vicon{fill:var(--text-color)}.gt-container .gt-comment-content:hover{-webkit-box-shadow:none;box-shadow:none}.gt-container .gt-comment-body{color:var(--text-color)!important;transition:color .2s ease-in-out}#remark-km423lmfdslkm34-back{z-index:1030}#remark-km423lmfdslkm34-node{z-index:1031}.markdown-body .highlight pre,.markdown-body pre{padding:1.45rem 1rem}.markdown-body pre code.hljs{padding:0}.markdown-body pre[class*=language-]{padding-top:1.45rem;padding-bottom:1.45rem;padding-right:1rem;line-height:1.5;margin-bottom:1rem}.markdown-body .code-wrapper{position:relative;border-radius:4px;margin-bottom:1rem}.markdown-body .code-wrapper pre,.markdown-body .highlight pre,.markdown-body .hljs,.markdown-body figure.highlight td.gutter{transition:color .2s ease-in-out,background-color .2s ease-in-out;background-color:var(--highlight-bg-color)}pre[class*=language-].line-numbers{position:initial}figure{margin:1rem 0}figure.highlight{position:relative}figure.highlight table{border:0;margin:0;width:auto;border-radius:4px}figure.highlight td{border:0;padding:0}figure.highlight tr{border:0}figure.highlight td.code{width:100%}figure.highlight td.gutter{display:table-cell;position:-webkit-sticky;position:sticky;left:0;z-index:1}figure.highlight td.gutter pre{text-align:right;padding:0 .75rem;border-radius:initial;border-right:1px solid #999}figure.highlight td.gutter pre span.line{color:#999}figure.highlight td.code>pre{border-top-left-radius:0;border-bottom-left-radius:0}.markdown-body{font-size:1rem;line-height:1.6;font-family:var(--font-family-sans-serif);margin-bottom:2rem;color:var(--post-text-color)}.markdown-body h2,.markdown-body>h1{border-bottom-color:var(--line-color)}.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6,.markdown-body>h1{color:var(--post-heading-color);transition:color .2s ease-in-out,border-bottom-color .2s ease-in-out;font-weight:700;margin-bottom:.75em;margin-top:2em}.markdown-body h2::before,.markdown-body h3::before,.markdown-body h4::before,.markdown-body h5::before,.markdown-body h6::before,.markdown-body>h1::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.markdown-body h2:focus,.markdown-body h3:focus,.markdown-body h4:focus,.markdown-body h5:focus,.markdown-body h6:focus,.markdown-body>h1:focus{outline:0}.markdown-body a{color:var(--post-link-color)}.markdown-body strong{font-weight:700}.markdown-body code{tab-size:4;background-color:var(--inlinecode-bg-color);transition:background-color .2s ease-in-out}.markdown-body table tr{background-color:var(--board-bg-color);transition:background-color .2s ease-in-out}.markdown-body table tr:nth-child(2n){background-color:var(--board-bg-color);transition:background-color .2s ease-in-out}.markdown-body table td,.markdown-body table th{border-color:var(--line-color);transition:border-color .2s ease-in-out}.markdown-body pre{font-size:85%!important}.markdown-body pre .mermaid{text-align:center}.markdown-body pre .mermaid>svg{min-width:100%}.markdown-body figure>a>img,.markdown-body figure>img,.markdown-body p>a>img,.markdown-body p>img{max-width:90%;margin:1.5rem auto;display:block;box-shadow:0 5px 11px 0 rgba(0,0,0,.18),0 4px 15px 0 rgba(0,0,0,.15);border-radius:4px;background-color:transparent}.markdown-body blockquote{color:var(--sec-text-color)}.markdown-body details{cursor:pointer}.markdown-body details summary{outline:0}.markdown-body hr,hr{background-color:initial;border-top:1px solid var(--line-color);transition:border-top-color .2s ease-in-out}.markdown-body hr{height:0;margin:2rem 0}.markdown-body figcaption.image-caption{font-size:.8rem;color:var(--post-text-color);opacity:.65;line-height:1;margin:-.75rem auto 2rem;text-align:center}.markdown-body figcaption:not(.image-caption){display:none}.post-content,post-custom{box-sizing:border-box;padding-left:10%;padding-right:10%}@media (max-width:767px){.post-content,post-custom{padding-left:2rem;padding-right:2rem}}@media (max-width:424px){.post-content,post-custom{padding-left:1rem;padding-right:1rem}.anchorjs-link-left{opacity:0!important}}.page-content strong,.post-content strong{font-weight:700}.page-content>:nth-child(2),.post-content>:nth-child(2){margin-top:0}.page-content img,.post-content img{object-fit:cover;max-width:100%}@media (max-width:767px){.page-content,.post-content{overflow-x:hidden}}.post-metas{display:flex;flex-wrap:wrap;font-size:.9rem}.post-meta>:not(.hover-with-bg){margin-right:.2rem}.post-prevnext{display:flex;flex-wrap:wrap;justify-content:space-between;font-size:.9rem;margin-left:-.35rem;margin-right:-.35rem}.post-prevnext .post-next,.post-prevnext .post-prev{display:flex;padding-left:0;padding-right:0}.post-prevnext .post-next i,.post-prevnext .post-prev i{font-size:1.5rem}.post-prevnext .post-next a,.post-prevnext .post-prev a{display:flex;align-items:center}.post-prevnext .post-next .hidden-mobile,.post-prevnext .post-prev .hidden-mobile{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis;overflow:hidden}@media (max-width:575px){.post-prevnext .post-next .hidden-mobile,.post-prevnext .post-prev .hidden-mobile{display:none}}.post-prevnext .post-next:active i,.post-prevnext .post-next:hover i,.post-prevnext .post-prev:active i,.post-prevnext .post-prev:hover i{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-delay:.1s;animation-delay:.1s;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite;-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;-webkit-animation-direction:alternate;animation-direction:alternate}.post-prevnext .post-prev:active i,.post-prevnext .post-prev:hover i{-webkit-animation-name:post-prev-anim;animation-name:post-prev-anim}.post-prevnext .post-next:active i,.post-prevnext .post-next:hover i{-webkit-animation-name:post-next-anim;animation-name:post-next-anim}.post-prevnext .post-next{justify-content:flex-end}.post-prevnext .fa-chevron-left{margin-right:.5rem}.post-prevnext .fa-chevron-right{margin-left:.5rem}#seo-header{color:var(--post-heading-color);font-weight:700;margin-top:.5em;margin-bottom:.75em;border-bottom-color:var(--line-color);border-bottom-style:solid;border-bottom-width:2px;line-height:1.5}#comments,.custom{margin-top:2rem}#comments noscript{display:block;text-align:center;padding:2rem 0}.visitors{font-size:.8em;padding:.45rem;float:right}a.fancybox:hover{text-decoration:none}.mjx-container,mjx-container{overflow-x:auto;overflow-y:hidden!important;padding:.5em 0}.mjx-container svg:focus,.mjx-container:focus,mjx-container svg:focus,mjx-container:focus{outline:0}.mjx-char{line-height:1}.katex-block{overflow-x:auto}.katex,.mjx-mrow{white-space:pre-wrap!important}.footnote-ref [class*=hint--][aria-label]:after{max-width:12rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@-moz-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-o-keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes post-prev-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(-.35rem);transform:translateX(-.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-moz-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-webkit-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@-o-keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes post-next-anim{0%{-webkit-transform:translateX(0);transform:translateX(0)}50%{-webkit-transform:translateX(.35rem);transform:translateX(.35rem)}100%{-webkit-transform:translateX(0);transform:translateX(0)}}.fold{margin:1rem 0;border:.5px solid var(--fold-border-color);position:relative;clear:both;border-radius:.125rem}.fold .fold-title{color:var(--fold-title-color);padding:.5rem .75rem;font-size:.9rem;font-weight:700;border-radius:.125rem}.fold .fold-title:not(.collapsed)>.fold-arrow{transform:rotate(90deg);transform-origin:center center}.fold .fold-title .fold-arrow{display:inline-block;margin-right:.35rem;transition:transform .3s ease-out}.fold .fold-content{padding:1rem 1rem}.fold .fold-content>:last-child{margin-bottom:0}.fold-default,.fold-secondary{background-color:rgba(187,187,187,.25)}.fold-primary{background-color:rgba(183,160,224,.25)}.fold-info{background-color:rgba(160,197,228,.25)}.fold-success{background-color:rgba(174,220,174,.25)}.fold-warning{background-color:rgba(248,214,166,.25)}.fold-danger{background-color:rgba(236,169,167,.25)}.fold-light{background-color:rgba(254,254,254,.25)}.note{padding:.75rem;border-left:.35rem solid;border-radius:.25rem;margin:1.5rem 0;color:var(--text-color);transition:color .2s ease-in-out;font-size:.9rem}.note a{color:var(--text-color);transition:color .2s ease-in-out}.note :last-child{margin-bottom:0}.note-default,.note-secondary{background-color:rgba(187,187,187,.25);border-color:#777}.note-primary{background-color:rgba(183,160,224,.25);border-color:#6f42c1}.note-success{background-color:rgba(174,220,174,.25);border-color:#5cb85c}.note-danger{background-color:rgba(236,169,167,.25);border-color:#d9534f}.note-warning{background-color:rgba(248,214,166,.25);border-color:#f0ad4e}.note-info{background-color:rgba(160,197,228,.25);border-color:#428bca}.note-light{background-color:rgba(254,254,254,.25);border-color:#0f0f0f}.label{display:inline;border-radius:3px;font-size:85%;margin:0;padding:.2em .4em;color:var(--text-color);transition:color .2s ease-in-out}.label-default,.label-secondary{background-color:rgba(187,187,187,.25)}.label-primary{background-color:rgba(183,160,224,.25)}.label-info{background-color:rgba(160,197,228,.25)}.label-success{background-color:rgba(174,220,174,.25)}.label-warning{background-color:rgba(248,214,166,.25)}.label-danger{background-color:rgba(236,169,167,.25)}.markdown-body .btn{border:1px solid var(--line-color);background-color:var(--button-bg-color);color:var(--text-color);transition:color .2s ease-in-out,background .2s ease-in-out,border-color .2s ease-in-out;border-radius:.25rem;display:inline-block;font-size:.875em;line-height:2;padding:0 .75rem;margin-bottom:1rem}.markdown-body .btn:hover{background-color:var(--button-hover-bg-color);text-decoration:none}.group-image-container{margin:1.5rem auto}.group-image-container img{margin:0 auto;border-radius:3px;background-color:transparent;box-shadow:0 3px 9px 0 rgba(0,0,0,.15),0 3px 9px 0 rgba(0,0,0,.15)}.group-image-row{margin-bottom:.5rem;display:flex;justify-content:center}.group-image-wrap{flex:1;display:flex;justify-content:center}.group-image-wrap:not(:last-child){margin-right:.25rem}input[type=checkbox]{margin:0 .2em .2em 0;vertical-align:middle}.list-group a~p.h5{margin-top:1rem}.list-group-item{display:flex;background-color:transparent;border:0}.list-group-item time{flex:0 0 5rem}.list-group-item .list-group-item-title{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media (max-width:575px){.list-group-item{font-size:.95rem;padding:.5rem .75rem}.list-group-item time{flex:0 0 4rem}}.list-group-item-action{color:var(--text-color)}.list-group-item-action:focus,.list-group-item-action:hover{color:var(--link-hover-color);background-color:var(--link-hover-bg-color)}.about-avatar{position:relative;margin:-8rem auto 1rem;width:10rem;height:10rem;z-index:3}.about-avatar img{width:100%;height:100%;border-radius:50%;background-color:transparent;object-fit:cover;box-shadow:0 2px 5px 0 rgba(0,0,0,.16),0 2px 10px 0 rgba(0,0,0,.12)}.about-info>div{margin-bottom:.5rem}.about-name{font-size:1.75rem;font-weight:700}.about-intro{font-size:1rem}.about-icons>a:not(:last-child){margin-right:.5rem}.about-icons>a>i{font-size:1.5rem}.category-bar .category-list{max-height:85vh;overflow-y:auto;overflow-x:hidden}.category-bar .category-list::-webkit-scrollbar{display:none}.category-bar .category-list>.category-sub>a{font-weight:700;font-size:1.2rem}.category-bar .category-list .category-item-action i{margin:0}.category-bar .category-list .category-subitem.list-group-item{padding-left:.5rem;padding-right:0}.category-bar .category-list .category-collapse .category-post-list{margin-top:.25rem;margin-bottom:.5rem}.category-bar .category-list .category-collapse .category-post{font-size:.9rem;line-height:1.75}.category-bar .category-list .category-item-action:hover{background-color:initial}.category-bar .list-group-item{padding:0}.category-bar .list-group-item.active{color:var(--link-hover-color);background-color:initial;font-weight:700;font-family:iconfont;font-style:normal;-webkit-font-smoothing:antialiased}.category-bar .list-group-item.active::before{content:"\e61f";font-weight:initial;margin-right:.25rem}.category-bar .list-group-count{margin-left:.2rem;margin-right:.2rem;font-size:.9em}.category-bar .list-group-item-action:focus,.category-bar .list-group-item-action:hover{background-color:initial}.category-chains{display:flex;flex-wrap:wrap}.category-chains>:not(:last-child){margin-right:1em}.category:not(:last-child){margin-bottom:1rem}.category .category-item,.category .category-subitem{font-weight:700;display:flex;align-items:center}.category .category-item{font-size:1.25rem}.category .category-subitem{font-size:1.1rem}.category .category-collapse{padding-left:1.25rem;width:100%}.category .category-count{font-size:.9rem;font-weight:initial;min-width:1.3em;line-height:1.3em;display:flex;align-items:center}.category .category-count i{padding-right:.25rem}.category .category-count span{width:2rem}.category .category-post{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category .category-item-action:not(.collapsed)>i{transform:rotate(90deg);transform-origin:center center}.category .category-item-action i{transition:transform .3s ease-out;display:inline-block;margin-left:.25rem}.category .category-item-action .category:hover{z-index:1;color:var(--link-hover-color);text-decoration:none;background-color:var(--link-hover-bg-color)}.category .row{margin-left:0;margin-right:0}.tagcloud{padding:1rem 5%}.tagcloud a{display:inline-block;padding:.5rem}.tagcloud a:hover{color:var(--link-hover-color)!important}.links .card{box-shadow:none;min-width:33%;background-color:transparent;border:0}.links .card-body{margin:1rem 0;padding:1rem;border-radius:.3rem;display:block;width:100%;height:100%}.links .card-body:hover .link-avatar{transform:scale(1.1)}.links .card-content{display:flex;flex-wrap:nowrap;width:100%;height:3.5rem}.link-avatar{flex:none;width:3rem;height:3rem;margin-right:.75rem;object-fit:cover;transition-duration:.2s;transition-timing-function:ease-in-out}.link-avatar img{width:100%;height:100%;border-radius:50%;background-color:transparent;object-fit:cover}.link-text{flex:1;display:grid;flex-direction:column;line-height:1.5}.link-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-color);font-weight:700}.link-intro{max-height:2rem;font-size:.85rem;line-height:1.2;color:var(--sec-text-color);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;text-overflow:ellipsis;overflow:hidden}@media (max-width:767px){.links{display:flex;flex-direction:column;justify-content:center;align-items:center}.links .card{padding-left:2rem;padding-right:2rem}}@media (min-width:768px){.link-text:only-child{margin-left:1rem}} \ No newline at end of file diff --git a/css/round.css b/css/round.css new file mode 100644 index 00000000..bcac1e31 --- /dev/null +++ b/css/round.css @@ -0,0 +1 @@ +.category .row{border-radius:1rem}.category .category-item{border-radius:1rem}.category .category-post-list{border-radius:1rem}.list-group{border-radius:1rem}.list-group-item{border-radius:1rem}.links .card-body{border-radius:1rem}.navbar .nav-item .nav-link{border-radius:.5rem}.navbar .dropdown-menu{border-radius:.5rem}.navbar .dropdown-item{border-radius:.25rem}#board{border-radius:1rem}#scroll-top-button{border-radius:.5rem} \ No newline at end of file diff --git a/img/about.png b/img/about.png new file mode 100644 index 0000000000000000000000000000000000000000..aa51bc4a5d18b4b907866278456c1b0ba24c7107 GIT binary patch literal 279332 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%0A%ECX>LrP;GiB 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

{3mkbdzK-eEik*s@_e&fyV16%clV069`u z;SMl&!Q0n#NFanm+DtPXBR43OF8pQ}_Yc4}jv`jLLF64v6jS|(^_#u!5Geluz!962 zBaxQA>=jtfRTXf6%r9cs?=g=!#EhBAM)*m~9G|l)4Dn;m1RE*GnVIct?ATr0$><_e zO4nbiAk=C$5azo70CO3qzI8AGfF?YO>7_5ZGkXmG0D^d?I=Tm#f0(@wUnopKVAbf& zKi($wgfRqQiKf3y`esEJbI;!q^tytN!|tACgZnuGPJJ~JS+bI6kIiW_cUnvfBu90Ow#x|j}fD&BJ(`h^(JPv z!|Zio$W59}6jsz|`PqyceiF?^NkV~EnzNLtdi6a_4BPU3!->LE{dVl4`TYsQ&G_dfA+gdA6SUofIqd=n zW@FjFV0AGo-^BGjii3H8X9gfXzF?MFoNf@F(s&5X>l_JHd)G;@ud16zsgB!+$WHN!J5_gQC!m(u#Q3%S<#qalC#+`j37vf&A!*ZjjNY-piCEk} z3zO@&Jk} zT0ttLgKKj>;XG;@bjndU7Cd4ond~z&BeyVXDBd=0L5C0!K>&legAR?&w2bMG%_A}w zPdP^%a`Ff{5FR~^TZdD;O10>0uM2nnWx9KT-j*TAGLH-CjT(`QhyMV+M7Kq5#e*RF zt;qJ-p?q(8PZa+EXqx&4yFf!eH;(@R{{UwJo9jELr{IEKhtH*imV>+0l?TWth82hF;oX2l)`*xGTl=$6Up?j;v zns{UWC39AR4wFNi8zzszHU9u$n|E`$y<^xFOECZel1ac4{Z0P>z<31>wl?n?qd!ba zTx$FQ{gR1zgK3_ zSITO#$&NQr%`RZc~#{HE&;N{Y)4 z77kgM*eszPcdJUxE&Y&AvB(HK&^N1dF-a?o=hqU}9&>Da#~8J)6nSNi=%agYJ&Llr zxyN(5So~Yc1n-sNRIB9lj?nWmvFj3Ipz{z2&CWAGJ!1geqqGls=p~Kow!*}(bz>*2 zXX1Q^SfN=)kl@ccUv9?VSoCF>A&R>v+2L|w`Ph*=IB$O04EtLtx=^;8LI`_P^w zpTLK&XXq!5;p%fee2gwzu#U}>m@TmTyA@+ul~aZCkJ_`_oaeB^H)Na$Jd0?3x?g3n zh{Wt_vF>pT0q>XkUsAvhdAS$bUBo37h>(r$)%cW z1A=;`iz)DpCrPaX#&SJnnj6YK^**b0?Xy94M*5rANmjm(4~0L>P(30j0j7zzde z?9=!^OmEd$u$;QF=m#@AEB^o%YK=Nk;xsArkMVbpx@kNSM#h+C!|UAsv%rc;FeMGD z)VZ#oxSx8{{?k>fr#iAcM;i3tU_LwE==WG`u;rQ?c8NPRruTkB{{Xk3h0s)^VwE`w z@9KJ<+jTaIs6y}1O)i3?X0(fJUG3dZaO!26+j2(DX}J(^QQ3B-_9(2mj@1hl!vb-; zk%VMg_$!U9a+Qn9(z_@)1L&Ri;|tz1!Ids=dkur#xWz_cQQ91d7>vg(NifGs+O-=y zTu(Smw)+Kip?B#PluO*L_1U>wfL8a-O_#c|A+Z44qi_y7iB)!rsX`c>sBOlhD5LvZ zii^O*AUVwO;8wKZ6yzRqwy?j9IXv+n1o-x2j7tpwINMSDz4+KN`B#xFha4g<($fqi2D+#@tF37#hc1>Ax&aXv#B2fX7tBAv~PZkqvcp@IXm>G&V7)RlNouj}*Y02GC{o;NL=L%A+n&aR zc^2t4DSamnhazdbB%WuPaP_M{(AoPtIl_$1o#&5W`*>OJz@6C5+E3Vt^i*i5H|nhw zpq>=}0En+`7lP_FQTNZg^BJV@NDq%4spo0s?q1z5g0oP?x~ykok`An9zr**9e}-*z zp!$ixk=Sp-m4NkcZ+kYyI<(uAP+n)(|QqiC8XqM{r z4}Hfj^Z1*h~+x}MAonW^xOF1IvkyWHR4CWF9Q zECI3IQN5hYb(Zbfxksv;mR(>BS7A>A+p`?5--&BaEx$Eo`nm#(Qn#(J6bwr$ugBL) zCZw**sNj9^X-^SS@2>H`GfQ1Y%8u52-Ay0=0FuE-s8eY#MtohI$UKbH z>Ipds*Jd%|Nra3Z)O?r52doULwnD5d$Ee*SvzJug&3evmG47UI>W>z^PZ){7Z|ZwM zm8j!9Z>f?x@|ihp@D9aTAV6|qZ@mfO9y@cH@(P@ZfxVQ()mD9ah2we2uiGrQFrfSEHRbO^a7 z7n)l%pTX(^DIIt`P+r|QZxgkFo?b>oQ9j|H*!cQRK=sEpnLb`7M{ClaBJtyBJFt00 z0NtiLbpGq{?RvZ-l<}(n05Q<;VHGttsthP%2Vtz_Kl z`<$2JXN14v8^*W7wmlkdLl`7ma3PK>;Mu-0C6T4f8e|cn{IQn<4|Yl ziAFV^7RA@+Y*bEF4^!T0n3`&~n|m?YL>yf762Ar^*6TpGSz*do$Qgfxwboktu-BdW zVYm)|03+)!-urddHc_#R`{hz0i@O>NJ? z6lBV%#r_h-*YdCKB%{IEqKsXu?s89iO>c%Zk83fq!|Pbw6h)=?($-zc?Db_7Wr*>X zo-WV{rlPAJz^a7hiR%upI&B@T@$dftw5vj!TD)7TZ&snfJ?$CJSmgRP@uK@^FGqWZ z3^(dF^-5mx>*H{+MQ{x@_=?+eZqCHi_|TY8p3{+@4@6yyRO8pV`ul{givhb*JYtXR z-FM`4*%IB0Dy#uZ{l?#e9^XCj<2(I)t)v!v{{TTKa*5)+ZKHP3+zbTefdujgaFzsI zT2duLym^xZR2gOfd*wqr8GLtT)_Ry9p(b4W-N=;#mIcpNIe-X@#iEE5c35~vbCy0* z9z110Wyk_nTNN$`Urr`sFFcsd!*KM#dQ5Sd`)(mTJ2B}5UXXf1Am~Asr#+$Xg7O?D z%kz)cA54DVo$a_!l*AF6&OAFa{=+q(0&g0wNN{QyJmE)$)w%*_bnfz|NA&A88H`G04Pl zUZaD}4=;ydqWbO}Yhch2d`w2aOK?&>vG50_{{y{!MCgHrtc+CL&N~~kUbS4c8~w03*M8)s$$lsn_FEs^g9*hqjFlov+neE3IdQzv7Ki(r8fCr5`MH zbN>K^nqLG{ibmb+F!vrO+&T`_XImK*y?H24DA&1ny34gT94{cUogyCvXik6TZT5}b z_z7mOHx&NGB}IHjl`z~M-e=r82%$k&4tb7~RpD#)G`p%(i!VN^{{Xp~KLk)k0|yzh z=k=T7VSLfxx599JNBS((>v3+YG*EuGl<73VG{_NCegxbI;ClkDOkHAQRGUf4zF(}P zMh=TWh}iigdmXH`nca>{9w*8Hfg>ZN+j7JKonNaxwD{-bPpUsi z$(w86VB(yyCr$00Gr zpz9CajOQ$TqT)AMu-NjCq{L?Qd4tjCunC#53Hxt$6U4wfMsPQn$9;`~)9eG$WcqMF z0t19%F%6H16+j)EA~$qKJcMS1`Yvbfn_JG{CVO%4Gp7$G-8ivTvX(B(2qBs5$Dloc z%uS)P-nWv9pTla@*`_Buy=u=@o-C7Fi)!TS+EC;`!y;sPTPFvE1Y~wqbwfpF6679d zM<3AV%N|NE8J|%}j(Fff2iOVh0s#ys$OE(il5in!P=2O$IX$)2yNh%Z%YDP3guo#` zX95^|81NIl0PNCuCr#sZPrUkwJ!hU3{{V_evhsAE4dlJ~r0``PCr400%=2%F?bCQE zJ+1i4)Iaii3E?mJmhr6D*lW`FztXY(vW*s7`EaeQOMAX&wyFAlqT*R0iGH%K^az&zFg<)nL^_1V4TE2~7?TrM!D|;Iqb^ zgisW6#^DVJS?oZAtPF;_20FY->T*UaKEJwY=t60%A7%NVG&Pm6IsX9ekIB%8>_S>g1*fOh5&N@EzJ zECsh8ws&D}GaaFL{G-3Db`~lORv~UD@OFopCI~+O&uFbN&!28iJuhFjq5(xxJ3DqdI8MMSB5|PtUi}T%8$PO_nr^Z=vu>A zqJ-Qm=EvOy>S)r};&lA`_Iud*danrEv87Cob{)#IMWS(SxzyY_zp6e0E!<40Ic6nn zR;r5;xJxh9ZQGo$1mq&txFaW$4kma*U$uTIC222QTWFbonKbH5D8h z#{IF^GJ}=cFHt#G$EtdKBU!bzguOW)483Jn+l>WhU+Fg6)+1#F{TdB9jpvmTWEYfL))8X5z%{2oGcF5$i$KVBOcpfsq z$82QvG0bxsG3V$IEI=@$CS>Q)f#|Ha9xVxg99?RzKIq%?h@!!?lI>fJr_Ke+``&JHSN23r!_zy1MynApv3_gn=g%21Y zA{E}7$4@|End}{bh78%?S;x8_V+XSv#9Ifx6gWOkcQnV9Wr+i6T&21et|M7c0y z)a#`1o8)k={{ZxF=wfBB!3;H=J~QOz36Chl?J{GtC08a2gd_NZ8Tz{g?FM?27adxlT zcRkB9=rrCC6%A4rTAyqT^O`Dk=UOY;zZgvLtbS1{(u*n4l(O{o>~H1M@iSH7!(ILn z@u{TZcK2DT{XXhNLKzf%PL(sKu79JCS57V0k#qYY>OiU$6e^AY3<2AfB3xaX z(Xq4Y8K~6WP!AM~#PcvvxTi<*ShV_@;3@qx7JZ)>fwi~k;g7lMEKC*O=VviWxSl~~R4S-rV zo(nCu-Mhz&sD05b&{mabc2>6M1+R+o7oWVt8yJok8Qlr;vSX1P4CCz&XR0@ICxolk z!!>Kgj_srF5zX1C<*|(L3L+@;+a?Z2e`~h3A<)YvPnd6}>O0Eu6AbiNHAH=1t; zX@we82)z2S>P#oHx+!a}aFwXZCTsry;$2CjNQS){9xcP-dY^RDcrK3@K+CtUVfCE) zJMPoHG}!d1UGAQ{dzYuiX)C8p`kg8ZDH%$$l|%lg$|PVM9q68&L!0@F1ZmqnaP1QF+)HQ-UT3Xd?z=Ca5ws}UhO|K=c4=!@DYb>D*4}%? z-b#&HMXgeMuf~i`Yt-Ib>`i&U{J#Gn$C2cIp5wZ&>pa)8nymw4b`o`E+Kr=g%F_4h zUR>pjpob~5g%_!oyb{>gofL@Gka&OLNiEL^^9I^A0}B#C$PLWG?(wWLdK&?hVMJ+N z8*6;FgF1%$+q#A1PY?ZQQGw9i^Z=tr4~u<^N6!@wO81vp)(zMLsp~ZSL`ir(`S+bE zrlrzd9;L91f9Ou<8S%L07qdF^yQ2^NGdLYZ8*NptaDI5N$M-< zDK9F&PfHBq=)}}D_a6zD@Cs#7Q``C-ZT%CZU*fN$pJKati;O6FKpCk(>7F$tK*tqI ziMs0djGj&5DU!|s?3{xkDsBIfTuZfnT6VT@6ct!~&$+WFiG1stDEZXV+UgUWz{Ae{$>PYboN*jl(#(dGApBwo^S=7SO zNw~ec3A59;iqX0nHeRq@-%T`Jfi5=3$UJShimsUYkED#PQ1w(i`P(gZ5;i}OVJY;V*cJ}_>ki?QS;LykGLZC=&o*%rptPj|E$5t zyB};mf*oV?RfMpG9bvL*>(LBPi0J@_u8L&JTd)3UWCC##G!Cy!T2bRCMjFJ*!wKj_ znBvNa_?%Gb_LDaEbqjlgtssSER@P(%{}xnV!t{m*1mTM=z9HTEw7uQNX|E=1K%How z`}?3zLeqg7I9a@1xMupiW? z<>jW{^+H$J84+6t&s%Gdf2xi)?Ye!?wT>=3k9iet;M~@q71r4mb)%LjIO>uK(`=8n z>Hbg(ysk(Kpra%@ZI7RRw0rhJN(rcO{wf$UurJn#l4v=I5V#i=8UWKa;K&R%D{1Ta`8h*d; z4OU^U4ry^yQOFmpaEaZ^l{~x1OOpNe@n=aqVPx>b)n7U3VpqZ(rpUm>ptz-b@81uY6@6h{y=TZn2)_X_BN`FWiFf4?K-KQE~(Coex!&3;c1BJOj-KtVSZrW+ zf5SIKmund^?b4w@NO_FS=?pitjcB8mvL>FX?Sq~RhBKheG6^iMQ&?Fdi(PS2ZJ{1j zcW6(n*1Nk*4w;xMHAUr&;>74>D(WER0pAZ|nhqI0zgqINzb@K0WGt>MgqzDooiAbT zloPsHBf<=`{gO0O?-+~O%9O`mjT@)Y4E(YWWPeKT%uq_Z+}E3cO7<5T;#qNAhr^p} zOmG9mv9R{gWN{EGB^4FO&~6X122jOKnj>OB9i`iS>d*$Y0m6{3TG zX&V2pZCQK6x3}rVB3Weq{xwTD!-Eena$YmsgQ--ykXGoV<;-b})&ogeHL$(S_XD3y zy7AhXbYm^*91?H;rzV9tEFay^KAlxryVOlCXPogNw&8f+nk~k^deyjQx zBKYLfJ%Wv7#R=1~SL8jJnVID+=YSuF21DJ>VY1X8!EZUf5e;hOdJbN`BuKU8&zQ$vwo(#zaAnzKV^nXu+ghES!{KLptEFRX6eB*{X|4pbu7Nao(gyOh!Nqri*v+2#%> z+S++G9~OacE2y&*oKZRlyjrq^H(75T7?$Ad9mOWK@i;o(XL~_KCaHEqpohcehlcA* zzXgG8*^d{S`clWhjCB(ST`W~|9=-fz1J+qFP&azNbQz8Aj=YLp?dr8b^H*`Xa-TdE z7cZ#_#(tgFz%!KkR)vrR?((Z%epay|Z9k8QDvzp)A%lwN9!jM*T4vErrtZ# ze}vzV((~iPt_(-p@^^b-F-5Xe*_MY z%N*@?JNWpR_M^$@HYhwRlItdED8bJ@oMJOm=6~NgDIJWrce$*71NxJ9`W&Ck3csCU zQAtHg;B|)4^S~j7qFMOH1c@$s8z^#|QM`CcH-`U!-Pm5zaeW0q3gXEEb^Xn35@lSm zVjljO+K(*s328h}3FcIcBbL58*?GWfIY%9(_S67Jn09RXis{`CGBaGkLcp?g+>+HE zraKH~_v=5BZpX28B;D`LZg-T=@LWVE-&aK1uGUwyeamI%-%R3OYy(Me-H>jy{~nZt zOu5QQ3Cqj+SQ_we=#8fcMr=>`ZP3zsK&V?Sr%G77KO&ZD=||h;z&-LegVGvoZ*HEv zlzeRNVNxAclx&Nc!%$WKdTEVbx|V7DRQ#x;qmY9dLlBv z%_)~3J|rbMsZYuKW3o*iLGkG4S^Q=D`#XQM%9>scs6vRC>XF=LTzjlXjc4rQG8&M>}Sb>dyPBkRh$C}KyU4Dj4T@gc+*&}0_9 zf)n-`1GDvhp8b4bfEj2PNe2;Dg}0lL@N4WJqWaa{{f`n1J(gu`1FR(bvf>xghD>5C zSh$PUP?~M0iv!Cs}2ne6RE+N<@jyx}*W zMtDUW`c-vX_$qna{pBlW!eKx!BG~V>OqcFZF+S`VN0Y37m3PiNccbx9KP|qS?tWjj z%Xu-tLUKp0aO+PxGaJ=q`I5QKqFlhPn-gPtl8PZAvVNmnowSZWacu2R0X_Hn{hQB! zUQ9KsmwPPRol_OqSDe8NUpHo*94*DCLU`}Bzso08KSK5-8eaLkz_1Zuz#mPuM>U&5 zm0`FI6u_7x9*gTW;CM{bWr}sFA8j(Lf?0UZf}&*?z$txZoictT46-H!z%ZnB!UQ{V zk(-^On=sO>puE9_{)};@{AM%f(OF6)!-z=4i`u3@)B_v{L$Tz<)~sF(Cy(!9a_GTl z0Ny@@SSMv0TBQ3&uC?5R%ND(#IOQ-<(F{z`*(CsKL7xx&CtN{ir~t-bhEfjVfy-3c z+QDgz&y%cRhXssnw1=+o{uA9W(L{vARd{#ZGm=n0U=Rt`jP;azOw%=()TXwpba|C} zkV8MAR70-r(xRIo-sZT1ezw-=*cjNF`D^Dqk(^j0T)PF1`ic4TM)%{QchN{ge&H9( zg4g`gU!ZLTtHR>HHn?tQ#->WUwP(8KzhyNg*Br~S813+M`~?mQo4zlTMj4pYbyLv* zGQabrPRX`uL|u$QBh^~G>}KR;qRyH4v^9&A!@(lXa4$b0^YMd97TmzWm;zAA}gAhtYDgEQ#0@=wv)G~)#>Nd<|hN`DeCM8Q+U zu1W8dL14j-<68jDfm-yRmIDAyj53@5;Q{F}`Nf9avi~;AzE;!UAU*S1M(Sj+%SCgP zlFeLGM?s7p1FRdyLt8y%Xv$TLvam^7ADJ=vjaDo*{jg}zJY;_+-OKvYoCk`H_04t= z*}Zef-oF|Ny+}zInq$wB1hKtne z@e!Sz)X!C`Wunv2gGpj^dE61xCzBS>h-p0{uUU?~2|zn~tleQ{8@1snBmyqmGlbmb z3z(A04@AmsI%~y?y+>!PP^dP{a^1TN>B0U=cSMNR9KDC&H+4s&v+r~q5BY=ko zBlD119FzMJ^|h_|rBmdLT24)CnpLTLGe|m%VP_#K&V^;@IAg|G@Tg)+2*Sig_*^eZ%^Y7O|0V&VsegAhP#zdbK0H;`An;ysXtyq%!`4G}FJ-MF_7x5XRx{Cb( zeWTOQk<;8v!dA)X-ft#k(vhs^cfXG?NTMNBymR+!kt!)0>SYMPY9+L4bX>fxcqsCF zp%Su;udvx2)GJJbV;L&l3$tM~qV!h29^r5)(x`wp(b?^O(lenS)EWEv%(NlikMn}> zcZO$nKIv`y`4tAu)bsX086>LDO3_BXM*ki_bS*r@mb)BmA#Ts;$hz^~6RM zXbGcNi9ZFLA|za2=uj+DrTEz&OAN)8JuhG2i%?k?a*d}-RoONAcOj97C|+s#=-JPU z_7a*mnXeM%U0i zo`>=(E|Ro~d8ZLuUM_Y8S&hG^Gsq{22Ea5k&M5}_p-P@Sv8x4646F_PwDjxB)xwJ8 zFgKkLx6w}(TImYV`tqJ<-Vk{rnpAeMv7emfK3$y5fiWnWS2S9sc8bq!gPa=A%clb* zrENO8Q*&FIV($^rXD$s06D}504h$(aO?{T1*&pV~drDa@R-Ym4rFMr`xVGXdru`sZ z59JbXW;3hekzL#_ppBRWMh6r9NsD54ClD_L5SA(c{A};vfzyYcXgYxaWL7aahe}{? z|FY)4x2I-p6g1|t+Cb94A@u0v&+z2a_aExkdH6AOJ&Wh+lIq8u(ThYO&cO;->yG~E zLL$3zTcl5H`l=5cAn{zeHP$^w?d6Q2w!%6E{4!9f#%t`2kH}Cyazo z#>j%tKk3lDplkW@)qH(a{{Z6i)f44Zp*2aGSc>@Pqn3n=%@^pa$zyYHZ;XCHZ zRIk&x`m^!)m}Je`v9;8sI%0kVyb7pQHr=A;4kyUhe7J(WgM5tz!i zbs1f?GYg|{%F(+_^YxlaL&dGe>{h%2M?0`KuVCM|3W@b?S@6#PNJKh`FZ?jf=q?Ri zp0SIua&4?KVBBBzB5s44JrtiAH^atr*`BgPWc@Yh7EwlUvSAib8i>JN zjx_z742^ckoMO*VqB?MeK7HT+?uY&G?JwdSek*_`hvX|#&D~(z?n7aKmnUU=Df2uc z0Y>O0L9h0^m1ku0#AE@K&ct0_o|OchvSf;c z72L&(d(J74#XV~Hb2~_;IUBJu|IpJgLEPyiHv`#Ojth^N)Uq&Z(b?A^-W8Wja8WLV zxO2mGUOiaNEnm8Up^sj>>-B#TG&;W)3rLeXhEzU)0>yL)S> zIXBmp8Ssti)arHBNhVmDZyi9^qqo@XvZg3Q`{CA8>IP5~t~CQML~t;1{N=X*oOCeZ z)zX;>{v-J&2md-#Bi#FafVAX7I-_}7^n?7UNRz{wR7PDmGLKmdl`732rn6Y{XIhkk zvSp*GN2D6$HN}w(VgyQ5^$_?1>4oc!*@7=p0ztsbJ;~4;p0JF5cU{8mv}7Bv^zO<} z0|wp5+YHZfu$&~@$8+#On9SrLq+LYfn+(tmeg)UGB|$Ioj1ri`E7DZ8OHfPi?7GD_ zD|Q`0B~)jOQ-K3;S>ilSt-R_?pxY4@i1m z5rDGct6V9>+y8HGk!+*(GR95z%26*I^f|2f@5aNH(>o!YYnG~MCU@^2pqr8lU^$Fd z%lLw*oWF>|m3k?^|7_}{K6-UF4gfspI9 zkHvPiERK7~Z{*e~T2z8$+VDh>WcFwCU+v4OwjzCGe}-;w&LR!Loje1aO%At$Y9&~J zuDm7)H&cO+b7RQ)aRy^ygXKV^nOpXzQ7M~-je4D&gxp2S#F}!;Kw4C)SnjXQr(?p^ zBOmuHx*-*PuM%~X-Y+QoN7lZ)(w*VD>Zp4C_i=BwdPa#MaEKgGn8f}}n+z!YsN&z~ zk7gxXk-&E76x`0J#qBE3r&k!u1lpD+pYy6vCCA4F^UX3>{doE13Bv;+dzh;&$gF=C zSX)TIe>Gvx6U993A*}FX=q=!+Fw)y;ne7Nwy5(z*zA~!JPDNtqYJwJC73iuu*13Z& zYgBv6eVG%}bQ<1j!nUk=UL4)dUI*+W_B}tCgB(k=n&PL3q zA2+uw`o+3m%FRA*x)vcngxR@HzNP0O$|$D2jvC*dn(~xcaSN@1nu}8~TZP5Nt-MbV zS9%i!c=Rcf5Mvi%-T!pj3iUHz=+6+%_F&3mdGCN5uVmq&cK}yqFS9--j8;#OCSFrl_O2 zsEg8${Jup~(PM|By9_RRu1F;gNRmO~{ZMzjFGfUX03{zdP>hUMUuV`Xyh`~wW?NPd zxo-1Rym)QdMPzUIC1gp8bTSpOF(W*xJQWtyozYFb@fR^&ssI3pDEWmkyp z+kL$mdQxf{xLI<6U)fAH`n46m!teg3cbI%GX|~UR+`^u@zW8Jv1|M&(svZ7;Pwhu3 z|3ov^Jskjn2=-=yS8Rc{4BNTjEVaGe=yj{KE%D=y@~)$@=ahG>8Dl(IbBm(BWkfL8 zl;m8d6jZ;`tiVQhN3PS+P0k^r9VwTfY!kf~mFRCl6c44bg~Tl7JS9G}jMFbI$?GQ@AwvJ3|t%3Qed zHA3En-Ja~QC&m&Nq0_c!gE6*dt%7Rx_r1{fzYQkTcWZ4kWJrFPGsvzE{ML5(Pbiur z*6y7nS&$;ekzCwf z1|Rxu=0O`Il>Xf=MI1Ih$<95M73g6V=3vUq1K>6`bGNYc0ew(rt%1#z?M#DhhueMz z&v+cdKUjZjcjQQ0+nqUGFy2r70G|wfYXt_Isl;R3YtkRld!JHo%Y5#lr+0%R^p8hu zAWcpy%951(IU7+eqGlBIkrpC56g59FDdpCW;`sM#u|LLtx1Na{DXgJLBrIH*m!xh{ zW|eoeZAO=CQMjh8vD@&4rMc6M1VEuj$#dTJb>Kmffd(tjr9{+7hf_4=d`8qb92<)O z7JDd&J?tAp4{E1&_d)JoYOyOz*;8HT)D}yhzgUnrjD5X(60!x&rQW%_p^V26D8bGk zPIQMYvNOv;EUfVXC8Ox)Ug55{cf}t)apL`=5mr2wi4>AlBEiR4-Do9@!a}p1f^Uhb z91u>Dm(&Xb>TT*%wI)sZZ|hgAtq~I;*S8wumV!plkI=_VKV}G)K{018(TmjQ%t8pv zHYeXaolJSpHv8LqL+^*)&2Vofes^xGSYS=3$dQQct(r0`*0%B@`6l~8qe2=|z6WlF zi9TF-E}j1%M^9HC2|a-Ql;*!3HIbmH;UJ^I3C<$(K{xf;{Ey(&bV}KadutD(NqSi3 z{fCY^dC&n*5VFw8CZ5Vwv;M@e`$nB^SbQ)pM$9V~ON~V-JHqe;HaqQ9p2&F$d$L{7 zLq9Gwv%UYF`X@N)w?Ce2p+$>{&O;m-lWXQi@#!Im(`*gH>kI5NA(qM0cc%0geKpA< z>G`cpL5O!|_7a|s70t>E&*e5@b1#vR&qP-x=;O=m+@#TuUc|<>e;+NtNA*`-PA^UF zN-E{L%Y_m@A1{Lgw9L#tNRP;}zKENkYz;y!-KJ1jPnFAJmnX4>QJl%Fn49FDU51>d z5Qz5ghko=tA|kv5*1Ualq$_**34^_5;r`EQ*EHyf06Pna8U^fs@#N_;zw_E*hrxf9rP*Oj$1=P$#$E0-eLLMCKZ^>IULC>XnnP4$T-B3t}Gq2VSz$lwKx2^jI(APGQ&wyrhEh!lgswf_6Lh~)6Ocd8_o(@$XK;>FxF zGC&UR*0fv>@CE+^Vmkc`M#t*cu~k*PSfj5(BcvK$=5)Lv@8RFaHC*f2F&Z}a2xK7w z7p+GA8MGsY{Ed2Y8P^t4+PrvdpZa1{vX(i@y|3uoZ_9zOt;xCbzQLep9*-gc>)2bD zW~15;CER8u+4(YaUD|IM-X{gIr=!OQuA{Z0T@reuvWrB5>Oi5BWs*U@^7|18VwI*$2sx6!W2Z3Oe`0xdH5)b9;T;_mE5;YQYv1iuo z-UJmvVd$3%<|!VHxZ!AqscB`ep@!%E%6r6pVj0tS=-X-QM}zRtE(ng?F6bRtID=+o zk9ZMMwiv>%`U>@BXS0_!&W6e`R6YiuP9I=G-VjpJ#{Ilzru}*u8$k-3UlmpD zZ)wEeJR=c^~N{Xp+$jyn)SMk$muy~-E=i;yID;>ls;ygIN51E zPELE*Lv9=yR^DX69wU5fZu|KmEO^o+IFK~}N%7-n1|3TCUhPBU_L3#!>rS7(FBLIT zp?v|ja>hB(qtl-*J0C88JaI357NjcE8dhK!14)_(@bmOcGZapE<9qlW0W|$49n)&Q z=+RdHR;KZM(@fZrE$=gq?3n%0k(S#r>0-+9WwHv7NxDH90knsz9Z{ejm+1-g{ z3%qc-TDwb)XYa6+p_5+9Z-(8rH)?t=i&~BgpqNiCI@keJ-XF>|#+I5KhJ3!W2Lt)z z3C@$Ijo(bus8;z$^db2Q_6;3pDlp|AEJfi@e_YpS3BDm>Vb7Y|EPsW(`_5!Ex@Eo- zuf-PPHXvtiB@~kQKviMZ4D!8$1&{_YyjU*br`xS`$KfD`NKLBn{r0fE7xc^e)-(1M z;`eLc5R^Wv6~9`3SU3#dUFvijc)*-M`O#2+)oA8?nk}C5sqBfrfsT(^nm^lv6NL4A zS9y1gQ`T_Q4Uc%4-Gki3fUrPSY#3o^q90X%#hhqI#4R}KXVI_BV97%aqeZwYcc{la z3Kl6G8beII*T0lfWz0mnvo+q0)B+pgpd3-xPu9GvG8iK@R!Fa@m2ZnU%&DU2Q&$cp zBRG<+`Xk+S=F*V+7Qhp{#kNb|Z9XJSA(S?;Y0k<6#tVYJf0-`3tVSkU4%X?X1no?ozPFed{rIM4 z2yzh}7ZPqmaKwqsqo+kdWg3Yh_i_hYNi0JNEF*Z~ZcLPr4ug7nJ5RBfGag;-Gi4 zIcu2Qw=5$R5~o5$D4^<1s`{^$p&Pg$>fqpK;5$~$xK)UH`--k!c-0p+E2)P+>VjJE ztyejAVNLZ6S~4RWUDHyk>Kfm(^cTiHx3?(I`1ib?zHnQ9+f0`^?K>5ZnEvs_Xb`B)_PXxhreZ;i%mrhQ+*F^D{Q zItov0y=40dN>i;5GAA=N)tV#?er8PMf1i~0Km8t<~2qdI9Z4;tDdsbSs2 z^3A~s9^$ly3qS*w;lIN3z+8OP3;nx#B8p2bVUG=grFC6DryB1Rl`>$4nxqwEy8Ri- zQ_bQ!+VX+ijBQM?tE<;#=F5l?DdBq&BG_lbbItSow?*g~r-M;xsc!H@;!;yc-*LqR zTIA9G`<_0<$vs+pH?eC*(R>Z*@({c-cAj6t44@v%>3hsHGQ%8azP3!L;voV zhC9x;)EF?mCaw!Mi4TGde|{EMp%2t#iD95+LX zOeeS>?v{5N)@-V$g-=m#9`z4)|7!3TOi!s_QOpE4*&9NyS;6aH=u-+Nj!)hs)7yB@!}5MYAf8%b#NB2$Q1dym&HpYrsY+e+%y z)9{SH8#!>j@53C1rJZj?NQ!@Dcm>Rmj~g`$;I{CL$JKXR#)cknMAZCt)K}&%93%(v z)kF(P+d6G-lKAbX@-Sq!(l6^Aia*6qzFHJ+Zl*9c=xb_IeKmBf!0XN82~(6iEsl)l z1{!2hBjoiIsE%^qZ#CA^Yb}qU-x*Iji*Y}*5WEbvMv)Ni|LvfVt_A(0(@?>itH(qJ&3qlsMmlmA%LM3XjTnu%CsMc| zo{gq~FI}JMr2#@~Xz?hbEdF(g?JB6;cq>oJ|DV`2yMTAqSyqJk#|?*K5&DLYFL-z8 zdg?{bYZi?+cTqGWZmPl72rqBX;;h=|;A6Kpm(K4M3mFz%iEAo((+Gc`53WzO)&p)BW;s&Exz4%f6Yejt9Y~L$O$O1=+)&o z2CHrN_`r6y(n;}zLvO)xLl`(kBdHDx^<-_<;??(AFp8|Quc8m=w>RxFMkmEKyW$kV z9t$sk5^62hG!{-Y%5NEyFDfQeqM@ut%CG+-d3YsFFjIqId#2xYFg!OVSCutsLEg71 zz%!5dL^Ly3PgWy8l-YSNJ$Q-^GBoSFl{jVCoB>_vEXQtGdF(-o9=2uLGi+5FHr*|f zbP-n(uuR^Z5p>PYNjy=qInZ}O9Tb_U6H8%oQ!zI^`Gs_yK|9@p1gng=d%wfmb)!x) z$X}BIa(hWT?VDH&1ZyiBgV7>E=(TmbnAerr!T4e>Cw(r~1rJ4FR^TPRCZdXeDyimo z529Olp~T~91|@NoUE;=fqguF7+2;3)3=>{9QN;6o#4K;VsI9f`X-R&k%g!Z5m+WUA zj`JD5z9iEp%9+($mMY<;<#)5onWlfGqJN!7dtvp0lOA~984ufAe$?Feel^DA`-*~( zM%tP%fm?hDe~EJmW{AQQQixiO4U)irlHI^b`sty(*~wV>!Q~DQ8t;hCn&A^Q)_#Sb z*oUo5wMADL>b7@_dwx4Jwo)HKa$iZr(9@7lV?%jrJC`qzb))Dxc(A^NOK_|RV- z4k)hN%h0+AataL8yS#CBLYN^kYR$wkYWUkU+enXvai~bY9l19rR%-`&P$eDEKao)u z^`gl5M3HgV&rf0BHG1mV6t(t9WyzmKQ6eth=qhaasRFhuK4zo>Ppoum@4tHXsc25t z`$92fi{61+fwl%vCjTk^*j165kA{RiI=xzQKpb{J7cCj3q3KkY2n ztQF;hll0t)YC0j+U^C+(3ZvSO^owD;m$APKDw0~CmA{ec4la5#dS8S=fsQw-H$X`F zB+PigrsO$xB7O1Bk>3T2a2uKVYOoIFH}{TsGVdygNc9T$2^pW;i#?g{R+4adJb+!E ztui!clsMN2L)#t6YoGLqb_tZ+F;@8^7Wq$ggPcJ%7+lntw%$n$--k&q{v&ZZVRS*1 zHxkX$TBytmgU^mgdpFZJ`YL(O|-#7z>Vm$&|Kqz-C{ zZ5U-pQ)#^K%4I%f=4{OzW4P)%Z&6+n5750afdWQvszJhlL6~2QZByu?qxo2# zJMBLIe8Dxz7ylYOPvI9(7dMGkB@v^t%u~9Y%&-oNMs^I*;Z%J(Q)1-8GTX$7gjS#p zibe4o8J&8jQq^qZJ}(=br?2OVMS*6Lx8|Cc3wGhHEO23cu}oI;&c#zal(PF!u7rk2 z*D-fFSurVf6PFvRj@^YpkdeSj39*5+Gc`^png9~27rmLfJlSl=^%W)PuctNDX*@v_ ztm2vNdI@FXvUKvJADyn8=2&Vr12tqI_!>q zBSPdrHR_gjUZ$og8#|^5SY)>ag`cZfjt$r4?X1rX*PPDH^pEg1l$T)cVI3Ym91F0Eip*f|X!rB&qk)A|5cV>E z@pIT$DTqcof3?$}!b;6UCG!=S{C|{oe5BCBo}rE2Mc5+R>&}ekXgq#@^h9(+s+J*B zg5_4z9zBy@=ub1|iLqObO0a`5w8zrp?#V83Q-G}|>;6L2_tkN6meL3ksXIh6*#paP z{~;ZMYqFw59HmuCMkhP@P<{`NysL=q1fxx9+rd zA7W|1A0Mz=bEUG4uF?ZmM2@1yt#>8M0tUA0FP$^EXCtH%)kY|IJA<}oGj$wbMybbs zkD5l}+rYuMbX6&N+!8FkXtuSzygPuByR8_1r?d4tHeU8-DWkee-3Pk8nNB>=p~aJk zS>LCpE2j6p4hXL}Wb7N4gzRH}J;@pT#50~%FEXH=IFdJJl%A>iCJo=DVwjg#q-lV_ zGQ4-lu#h$ZSgQVU{`!kzuEx^VV>GVnmvamE?Ls=3g9y#Eo#}iIrQ+!qJCuA);&frR z$gy{nicAQv&J)=Tq38ifXP7_i>mo_r4jYE1$i&DN>t;AIU z`ST~_-Swo?nFY7*yVCXI5z*rQ%GYl1e-(zi=KTAr*E<5~U+w7_e0#v@N14qs+gAxP zv#2E#77o6FWpW9=8N^XqNg6|)VWV4V26eKccSP{u$6utF*IuShZQ1*z?bei7?lHXI zE_Y2!-K?C7-i#@FP+CloDpjA288;TV#r!^nS&El~#_;3VSb_o_>7-$st#+B}r-(EGmkd5;l}vVLdlV;vgd^1AzffST zE}laR%)_5RYXA2OYVhsLMu^4zzB?ytA$JdILdpr66 zwlx}O6V_nuItj0iUvl`i=%28~+4%r@FJoN z7YwqXYy5pyc=)D+e~XoFiLzVxxPEj)#zXw?0F(!cza6<7BA!ApU%Uq)7+L~(ov+Qm zs>n|0H+!)|;^;cRq?e%QpitO?F97tNukw@U3Y8wBjdnTAPl@)5a={5qJV8#i*M2tk zJz_bJdI^EEzB8ob?MGuCSr-wNiki>%cCY$tdI1P8H*w1!nw9=*4m^<+!|g~di!t_o zh(xo1U?sSWj+|&kpd=+y?S%;) z!BUoEvd7xnM+aHL7CQ8dDPi6^KLRB5I0gm_1~2%mN(ipa`(sM)s$5hltGwI0RgAOB zK<8B_8>r{lXGu(Zb_Zxbs>lJ=$BvkPk!C7#?6ZZqvln&bN`$fuX!-~yOHa~+u@}+h z3cdQ{FVomXl7HcOR;BL*dw9h8L6L`i#rq4M0+sBr76ee_z@-{7Zt)sJLK!VxE~5{tvI&e(alksG--^uUguGUEvhx%JC7ZsNB?e?x2?=Y z5l8qOXvRx8+i&-eQvB}Ud21_*R)Nw++Q1&!P-_&2di1{cw9)k~lz!)~>wksiPyUwZh% zJ~vLH4G~Y*J15UxG0xQ#&$Q)9dU!5Z(sLGYw{GdBuQ(-cM#X$DXQeL=w2P^lcLFsE z-^+W((GykS(RKS@fT}3tGw{>|6jX=NDb^Zm-7p_$rGy-XRlKy&KO|Wrv7__NQoAO> zPxSXsvbBuMKgRI#8kxD=V&!F-X$)C(OJ*P?UU2d;a6XYV+~XTOM2whZsR{o_A}3ro zaD>Y4Y>kWx-Vv%hcAsnV6yc@mPDZ6x@I}-c#Uj_kMiW+C3%6)yXeuJUBud%iQ-b?pJbQj!R!yy8ri|ujv6(hqx!}UySO=OSbuY|NMA;?IZb;*H!JZI~ z!a6Fe>rR;{4AU2(iQP*GvSpJ&u$%lYkNIQC-_)$~;b+S-9fMKfCpp6Un3Y}3$A$W7 zc17OcA{T!lqNE5?S*;skyj%Mcj;+J>l+81vknbC*8RM9H483U#iY?qCKIRs9{mCJt z^+|fzaOs-g`G|)yGyh=z_(_0bA%P4CgCRX$Ay3u`5t*=uU#-92#5 z7)a{FeKUHZ2xeRymD(&$6sCLg0x{PK$;pOn%i?{U?G^SLG($N($E<-KBXm%c0Io@# z_$HklhS&2&Sa6hXyRuZS__QJ1#Tb<;=L+eUR*-)lLvdTIC5`YONx~2~u3d>PILEG? z5Q)PDh#)0i$kcx($q;<&h?!<4KeeWJJEUANfmx|Ke#{P8;$r2gwY2k~OfVVJ#sU)f{)JSisTHbVL+VG<4yQ3!d9AV5L12kdhc{tB9$oAD18m32k0-#P4 zh;%VqsgGE_#cE1|EoRRRQf(uf2{tcSnEEvVc}x%B+~YS;bd<;i(>Pd41Uuwk=QIl6 zhr8ARm<1*++SdhUX&U-of|U~7PY!tsgrBiczwq=1r^IaN&rlX4z%WWem?=%->2Nqg0qR>Q`Tr6{r2G(C;n7oK8C4 zOwF8zGfSy@qGv5nD(2Y)%L0IaQsaRs219>nHBrk5$2 zxOJ7Aou`MHtl z^urT2=2~3*m5TJutl&`{BCW>77bdczv9xo`f3Cx0ZqKRNrKVfSeqCF^;W_p(xjoZ2eYfVH@~HPjhm;$}J`uI{OE=43ryHLiV!0;x_DFKVpdm?$oV zK0>_g`S%tl*{kRI@0*4nj8_jKIbaGDE4C`#_5FTu{sewnjFaqAOH^CPWA)$IujHv6 zkd!v5z*9J&G9J~06wG+zYsniTqfJQwv|A(3GVL>rL74wY{*cBRm$~QMSKedy2J>`I zZXKdVs1bcG7H-S*HtjYiY9`u1Hy$^vURIG|Mj5!`p0ir6ulDTr0ihcj87e4^4cI3r z;Y=k~7L2u(G_f?C_8h6aX6~$P%_bteyqZCXWa`)zB%$0Q6cR-^r7&s009BbU2A(a7Z0Ulm-A*7g&HENS5}T_)&A&L z(Z;g7zwjRkB>2&n$bAVKBd|+>9%yffi5AUU*;31{j&GXJYck!6R=$C&1kHZj(|H?< z3!tMEKCXQf)**kx`mDj^3+F(7@>!VH2Bfz4semt8$?p(`{DS{u>aF9NdjCIeN(Ksy zf#?tzF$G1C5z-701XNOxR2+c4I&F+aDx&JA+}cZmH}X62z*!&70yh zenyDq-N{l$gIq-j0#Da4Kl@}XukLVq!rN+;->x95d@qgP7H(#|ts_bgvk zM;zR)j(8e^&R0K3^8i@XVi$EH0+TYmF$IL~P zaTV>r(bAt(EiVRGozIOFxaXBPsL5-Z6)?^KDyc4NyP$~i5Emww*azFTBYI7sw0A<& zi82m0)Ctmc5e1_iu+@Sb0nL+(~)z6_X``26;c2;H>b9LHo@GT1j* z)>NUSq@gj9%E#!e~g?s-|fH z&^z_9Fah)1le#725PFmAUxf^s6YBO7ZNgD_Q-f_kJyZP#7}H~WxIb|mMn;Bhm9;vk zK#$;-yKrobb9s>VA5mQpgOz3?=$08p z>9qA`_SVO5TQWfZ$!$-CFTlayx@thz)obY!w)@%PQH2An`76_NhGuLfl(yK@z+sMF zKX6*Le~Y}FJX8DC$HwoY{}F{me~A3_?Ze-&JsVc^rKh-)QsM-phAI*h)-{daUQHB; z{NyFVCdGtK`jYnfQz46+gth0+0gHUgiRs@IyR5$svVkp^g@+3DCn-&H@0m@mCRgR( zSs6S>bhop$hQ}8a%?GhTVws+tOY<|pgv<37=SCs5-2Y4)-jR+i`5LzDsYoVBwPz2j&8|W#038rR86y8~fy&WNCwJcwl6noa$F zy4LWLNoa-5K~H~^dc4Lp3%K<=&dzg(}uHA;Vpx!~LYM;3d6$?A4sG-Kt+0=1WgS&6*(w#^8p_2TbfcAy1%EEG~N0Xa|gJz!ltFqVs0m@)z50i~;yC>GE0^^r{Ew`D@n)OL0tu`JSOn z$^>4PD8?CYHnq?g209hjvQdaf?Hg2%=11s%JX!msVbw#j}G*!#|P{}DYdN-Y1QzrGUrmiZJMm{r5_j;m0NF|X3XhUiJ^ zOsw2KTH-^@84VzgQoa3CVs;F(6L-(cg1q1V)-ABqB^mEVEbw37OJKRYjh&R*GJYD0 z*c9A6X`;|QY&o7b^UI2N2-+p{Aies7#O&!Up9TKO^?~fqziA?Pq*wyvd3@j!4re4- z5+acUsnqgSdWj+8fUPngh+@uM#;o#{s(GcGZ7==Iaux31y5bL|4_{mW{{<`?NHIlW=mkQMiF+Ijd2&Bl8<(ilZ3eVaaD zc&Cf^d4M^T!a5R{D;2M!w;0^2(hkqIg+0U035o&!vT{JRHDVA2y&1;teJW_8n&YVd zU3A={(&gbrc@{Ka&%TjIU91CYv#(vKiYWqxN&oJY0{t4E^wa<@LSe?G#mOM86|$^U za~pE}byzpL=Os%AYa>Ow)|An8m=#<+@hPxaoHbbVcHB{-2h^nz@J)57x7OWOP}9Jt zFK)}iz*JX2M8O~R>-)H<>~+_N@(jo6kI@D!(21${TBo3y2>MB&ShP%g0EfZeBZCEj`F{>Q1}yUR ztz;-jATuIrd5HCuC!ETx;_{!TuM)~R$mV^up zQNK2$kzy2#IiiFgyvg`$6eFT+i!NgEa>&)-*MkQ=&uE=CA~hZy!i-V_5d1Hnh0L~( z8}&*FKiUIJMnhLOddO|Qhuk*?KILJdVq4tjAiekd9{)vJTd22klyT)Co}>#GD9Qc+UG*4_b!l1pRHbZxR$7=6>gZ<^h^EhjiLxI$+In) zC@qee@R{xCnaOQalY7t_v|cMm;rbFKx-8LVUP)^H?dV*YZpqR2;()@ki*oWhFNb;~ zO4{8eBrbkF)?iR&&Vlu}qS^f3cWf-(@i{;1fpjmMSeG(pwya=bnzA*>TwsW@iZg+iX1vd8NfS;_Q? z=*4D!bYhwML&EIwl>7Pe(dvdB94$L(bcB;KIskiiMb3v-`Mt6c<~WvEJdmB_^eZ}| z%KN-H2iAz7HNw7$Tp3^_7iT*6xQ)*#-D#eLP_5psGuyj?$!#hQ@wH zz}4Q2$rx$=sfxnTuuAY3LM4W4i)hG6?-JHLNpbaq2tlKYN+U_V`KF&!vK`o%lS!VE zZ)FjM?|15Nj|dsA!NNVF7S%M19s7$OVKsQ4q#G2%9t*!b2>tCT+XRZm$%OVx36^LHgBBYNE$8CQWk7DH#4J*nQ8r~6yg=nyK_1=M&Mf0fiCE}brB`Q_&Q z7wZ*^(tpM}j_Y|ktnusCsFXe$_mq374=zjpf(75bTTXQ)7`F`?GMyOnh3|NU4+{3` zs7`*NtJ@1_h%w{nj2o$nyk(DGzvN|*4 zlw$22GPmeNUrDGXL~pG^h)UZy+G_^1N`F1jzn@0qpriIq%c+WH3$-z9hU^}kJZqt+ zr{@}uYoqbimL|u>{$Z&n+{gi&mp~}iu&CQkD#(-bSRChS`oQsoiFzNdJ+XrA?oJL? zrL?#)p8WceT$7s7^Jx5bXY(!0bUBaX$w?^Fc(4%NR?DA%u3FP3PwubEKehg0^fyT_ z0u-ttboH&*KwWHIgwf9bAFp27dW2+uOLo~Oxrte3WA}azLC?*u+KcdtYtDPmLm~L7 zOm?*&R3dE|_|+1v< z_{Fe>uk9W+3YsA+#ItUUK_N>-jBF``@YrNo+RhDHM}OD+4KnZjRURB(0Z-U#8Fi?oeiQov3xvpK)2_B?ag8uxXgcL%p8Au)>v)U+Q%GvZw_tjKb! zO^8|;O&y4I4r%+M!1Hk4=f#ovZJ!Ei)#la7_ns!71KG^yaR21W88jdvL#iGgUHV;_ zbdS(XgqwG3KCGl4-0ew)j(A|Z?+-DC81`SVu#;Y!PqK`kqE^3wyaWMpjlJEIQpqei zw1h+mW-kZ2yH!rj>%bQT?a;t93#EoIXFA2BQV*&7F(;BJC)uC>5p7ruw0m7a+O-?Du|>Ab z-ez-Na$#RbIeqX~ZBYa#uq(2swe_gJw6CWkX{MkTU3>6jdEN!$w7u55^>UPs?U;S1QR*F!@4ocCw@htp`RasUmHtsw$F1!Zz&-3ijzdn&tC{9lMw4Hr9FCgIIHF>WakRjY&O7SU~ zVI{0=g-5RGI~&ZEL5%L?)KGB0?z_~G1pTxbXV>mqriuL95RGoVheP)h5k)LHlCq(9 z+c`SA6*j3@em5Oc4rnQ31Zg~LpO%=X%{-?>W?;0^7NbauO}jNw_^-7vCOPzx@|U?l zWZzs=-{X4wXn;3T z#Y3#&f=Jn1@D8b;sV?T|$cO*SeGm5|drlvIWbpq=`*d!D3-Iv>NKt+KAms%Ifk*Dreo=@mG;msW zXKlMuV{o0*z8TqSMoxtErt=j$Sk8!EL`hZcK9h7HcQ9LLtxNds)LzPeSC|IheJR(= z!JCTSt%VZ$8*07u8|TftK@<09SD>-qR=Ay}8p%vvuL-+>o8?sx zgK9yDRrcg_tnK^x-O762{kA40f6v$Y!$E7QVurgc=p%b55`_E0fnh@jK3J@e93(-Q zOQGfqY|z`SFQJVZD=Z8TF6!LOpFcVNLhng5Fg9j4F1Je4rKFoPMR#B+rE- z1NzxYZ{c%?=On^1q*ZjUzlq4&{F>N{@fjLI-3q}V3hZ{uAFqFqlJ<3Q_0E)QHpygg zUvm$*f>Bp+8Iv}*Nk3VlrAgqI;42cgpwXZ%V`jB%0D^Xqy^nl;e}a+zDS2n8!z4LWW|(%fLG9(C6j8y{!2tu`t>0$6&^?{>lTi z6q4g!mvvUHh!+2gV!J`-lMIIkw!Xf2;hpCle#_SWo@dZp$|;BTtY8O7xWn>3Sst_> zsU=66APKe?gs%wtn-RT}mV>P&IY>dz zBhQN&)y`;bv1|6w+r%*IiKhFXZ%X+>AkuI37yu&gKTAb5m18B`@(!$ zZMFPL?M?LK(lpV6?i)5|9cC~ISH!q}I#V}i=%81XzHL1qg9y4X0Vo06R#Pw@&?wxm z{^*%Rm9RONihpRJt>eYG%{y8{+loaCGD*u=vhnavrPOC_tHDvLuJ*WgPuM_R5j2=bPE(^;Pe{g z`C65io7Iz#&A9rVZNY%9IYLDs?Snek26JiQ1FA*gznUW-Pz~}-N%lKJ38=|l>5kD> zeUsMl4~J@^{V)C_Vt74>ZwoJ4Qb>tEuhDnco)>S9cKJfqvU{=jdcwSE9eCyX=u~^2 z#_8z99rU8CvbLz#=%B3TU91TBq3WB(2mGIY&`3CKMGye6BgEpad+uJZq%RY#-Ocrz zU)ag$bDt4Y9#s;gkA#vOVkr6BCmFr_xIg_ih){Ch2_yA@Y1J_e3Qo@G$)Vno6KBeZIvrK;udOm{ts>eS3^3a^`9>i};(ZU6mg|o~LDsLL1ac5TG>JHtQ<3~R zsV)Y%k_`#LI?Tsy9@V_tMJ&gk=6@NzUAsr^dfyg0LLj)n@%0U_Bq+pQ$)=TD5@NqrJw$^e+e98j z0Bn7j7$?M$CIO?)9EYC=m|Ii)E>%i>XG?UOkvNHz%3dT9^X`EHnry{knf)vIDfpt3 z)m=XEPl0CDIH;A@8&}=zmG)0WC4C2NHvTPV<*~dx@qL67r;d7G!_)H^uAux^G!-Sk zzq#gy1W*2KEEza*KqVLYtq#8j`s%wY+zb}li*r7BDCVepibN9>zlfl2LO7vVLy&27g-4l_woAT3q|j~E418I@0|&Y z%=2R~)34l?z5=T+UeaVG==#qp+TEVjM@$T;@?V8Vg3rt0iun5`R1J3YkBsko=E1~6 zm|AK7TB7#9@O%sk6a}lwQHkT}qjIxu`EQ$(>7k<=qsX!v!L7=vut!qnZ2J+2fFB1G zK>@grb|G;gh@I}kSCX=4Umpe3ZXYMy zeU;1cB-Lfn#sLxv;vI%TD(I7=?~KN!5i&{Qq`y^ZW%dv}!U`(9UQ!o^#bNWQ5;G%r zn3n9g5dRTvrNpIV!kCI`(0n@{35CQ)+YR&qw_T{`|3)m=$lF~J-3o%Er-D@4d(e9AijOn_bCoUv)8781cU6P*;* zPP9we7#^IK`K;JJU!Y_EtI)TUKk%{Z_O$AzCpIgtvm!CNM2bu1^t>XjeuR+*O)qVM zccIC>Q)-@kG9}1?xS~2+Wp<#qAWl_MTITFC@170{h}2tXFGZA;n-@(`QC}J=nDK^v z2$2mbauB$n2aw5liJaYgrf~2y;LFQvk>{(w!rpgM<%PktGuT7M{p?T96@P`eWt}S9 zNCkGRb+~|D6nvtQrSH&N0UXWzWdZ8`{;F%L)C#Ja*u`r$Q&H9LL5Iw%Rzy!c-K^6K zvHaK}2LUqlrAQIK+8;IPWz6f~UX{wF^iqUQ6HPkUfA7)~GJYva=haf&YUf@r|Ju`!LI zUWgEOGMF`hZF!kXFZ1#1hzB%--se}u4=DFx=e})0>eNBc3B=;?FzQqV^I={%=+{EX z1l*^ENN7FVj;uCr!H5Il^KL2X9f(71*-Oj5j<4RCr#hm%dC6mNcWG>U_<7)x=?Osw!v0 z>u=7CdiRFZ0i-!0no!?XqZX5-{k}Cp;2WF`@|fCS zRo$r$j1n$#XvJ!rHF-Q%*b!XSy)EQV^jR+AhBOEN_sDfR-M3elAd^fK3jrI24u_R{zTN^%j`Rt$oC(m-JSoyBTR|vi zD)#!(tA$tnM`ZJPpK}Ps4ABVQmY`Dc?@K$T%}tUs_pMw_6s6^Ax^$lvO|EK{)|?5r zcUe^Lb4R864W?2It05h7Yo;Q#zk!{57@NQ*Vfz!h&HQ&euJKT^?kIwpvVwp0F187G zQ+n-jlYC7+q4o?r>}baZLPsDZQ=V!zAbB$L(dkqML#|8e`KSWq5mLTkr`pUp zvWA2@bGTQg%6OwhCBbiBF3v2@Um=8Y;6qKYq8O9nu*ie9Xzwn3lc(v4eAvI>dIc48+B4!wwJ)qTPRz&rS)pYV zk|F!a`S23ntNoP9b6Vf>QLn}1SSlxG#eM8PmRXy8S#-c-9%?QvYV>KDZ$9C5*sK=g zo9jT0S-NnU+hcmwY?rBc)Y37)%nOLP=FR(RchWD*h*!|fs94sTZ^?Ri!uj6aawon2 zwVD2(d5V8?DCTpVCqJ2PEXV5zz)XS*d)kr=zyGtiFxjA?-8Lk&|+#B3XfVDxD2yiF2Du_T5U*0J@RJN55!-5mi1c z=+eQg+JMm|x^3a1Rb^M=dv?+`gLcx-N#P3Q$}d)vGpm=U60o^gv*(bQC|r2Jz0#&v z?-@gk4!$BJTK!Q%%ctIX8q_7?p^6e4&*0fUdQEjnCiE^hRzqpf#}l*7s1^gnR;@^-a*@9f zqz`7O)%uU9V}|J+mJv{VLnY3l-)J)CCf*MW5sIiCeL0<`{duupC+rVEVi*g6X!0uL zF*$EY0Aja+(1-i{&kvU2lRClF`>=LWr-=J9?7v@#gclrszqe<%RE6Df5X#p6a%iiN zQ8MGvQ*{gjP3AgZQ_CEXq4yhOxUqKH{h1?tOrLh)#|?MD>O|+S$fO7hLdftSi74;y zvlzM`?PBiL^bxOu&J~X7znh#Q!6sZEgKwN}k&i$FAixh2(n+=>TIL6gn<8knJJQ8csR|N@v_98F@m{zbpTT*HF*}Cv zEV-`w+|N2^x@kpDObOD0kH*`7gp=7S{YM04_Q76)0rb(R;;X>`p?N-BU8OI3i=Pc_ zogT9DipQiZ+ZNh4#hAP&Mo5>+Ycr(2Wxzbt5^*_aEF6ya+G!J{f(2dNE#LEccOa2? z2Ta;KMO(htwnA7C^lm~Eb=(apl9FpSs6+lGjO2zPChPRu1LlWRnQR1zchjXr`2=IM zVt6JL9t{wLC(#RXdQ?(wsSetXb*Bzu%L=*!YFYXzW{oF>cUEvJApyZJ^=cZ&@GL(r zXV-x#*N^4gr#D5FU9HQc*d`y2Zi|41`X?pDyt2u=m)UB5IjsF!Dyq=SYRa}>rh4#n zdRM5vAs|6wip{0>Y}vfb8qpT|oOsrY^taCc;C7ORD})$Om1=xAHuDd`Ri`?TsTn6L z2B;T;JRI58r`wJ?L>&6$br|yH{YTWL7M+xH_&czVRWG6y8?mpV8W4^8lyguDtP!~G z@Od5a;pv3##@%lM%70pGOCF^sH2rY=HuY>&kSTM6c%G_Z`SnXZBWBn8$xDhOesn?$ zs{;_fZ8*a-PmpS+PgcW`?w4QQEVAvhf@We|7JKACSv{r^o!JEB7+r;r-e*@XS3YXA zzfBq0C8yArnl#TxQ-o0rY!*8iE=m-~ z>&wP=-fKDE{^iu-tu5foiS9l@(yrjML5PLEcOa0&)bRm4Ag{dm8um=oB7m6ddGb4Z z;6+A(FCTtVh~-usRn z@{7$i6OAvYx5ddhtTe~RKb;OzmQo{ce=shoT~?k@7LNN#YuaQiV?h!>dFX$H#sn*; zp#d>u8h|I9(vRud1;u%|!j1$nVfeN5Eku-SM%{zSP2>&~5jLJsFJ@~rCR;eNCerNH zAyfk_G?VG+UNw{F?waP$u<9mY*>GS^H3ZgZX;Pck={TV-^zqn#L~8=QQ6j~6Dp9VV zbL>yV)ZCus{oP9~x}7B8Gu(o2S=GDqECl0ivwKbKH*ry-1a%yrB_z^FSbK%Zy^qpI zh+5%JilhAtxrF~UhdsVZolYK9x1I2^%sIgG7Y*?L=#TRDtmUVlQ%PG?n)Q}J8?I{!%J zhu!;CI42WE{sC?;jGx|!M|NODYh%2eXdU7S%4iN6wzn4RKiN;I@J(<0{>eU9y({6B z4ZrBHgFQEUu51UwbTeh`n(ZG{hz7-Albur{4^_)}+D1=!qu7kaI6uCP&4gG*uQ`HLXt*^UX&?NJn{v0`8; z(e07wa^%cSN-Y&dkeD~d-IbVPiAQoJvzfPSNlwW1bby2J&Nntz1Zn7ZFDJ}9;GM*b z&BU7x4T*`jp`c{l#X$CM46dYJ^_yZ7cs2tjDw=#<(P9o#BjJd=W@{7WacFg5scWA` z!lvzn-s1moYB$lo-ee0JhG;a-<)Cr}513Hx9^<>L)4)ow54^zHCI_FK)k5et=DdCP zq_6gMYP#Q;iZtrB|17RprLw%`V0Z9v>I2Ms#subr#_8oP0HIkbwj z-c6K=C#&g0yNj<7B0uT_uyBqOz;{3sw!L0;pW9A7YvfZc9D)l9a%C<=DNbw*U)+I9TgzW+Uf9@{JcGymo@pS3h~u7*HX4=@Nq zp_P^*iSiDhbAjII#w8xPTFt(@#^VE`u(eHMTB&Ebhh1o^O_grlvx^vS*a zhvPoAC~bOb3Ux2Jx$goGEKc7vlhks4>iU%Jtt${36a^TeBSc={NnNkeJ}?vqRe4}m zT=O9P)-k3Fay#x2^r*7Q#O3JyuTCT{uFFpMj8-ye)n|-p`S;oU5U2`4%hzHq3Yv$Q z@kt#+V$NVoKv&;4geM3jolH)+$BO#r<9DekVIEZkvuMPFr)vPhx0li$m(uP&nFqiM zR?+?rU;kz2VhX0{xEf&;kx%r(>PaM14m2rCDicbvLJ&9Q8eA%uozOSojHA?DDaw3u zlTM2?pGp#c4oL6wH8z-+<70J_Cgowaa=7vYkr@WEuaRLV_lN3VF2y!`&IHMiiQu)k z3q|fTt6wn)KXt0eIS@#3uC^4itJOPl+N>lhxE_}Niuo+XN``aL6x!31Gti|Ho6X_r z7_>wA1mCEck@b0igRgkFj1u)#+bTg#i?1f4oeivXpuSJsNX9conZbR+W6{mMCO)++ zb&MhHBve2`mC%01QyWi<@bt;;S(I#|&K~R~^njfEt;M7I=aOl|!xq%U=*U*uRjIXmpC<5* zdLayeD8Gx==&c1!HF}fV@{sGGzq%1>^Q;q8C|ie7=-hqg2}dbP0NdgXp=CuVs@{H1 zq=I@1BeRZ^%3bYyow~z>9e)Egc(Xba_%%tF_}WAa6?6(9FEGW?bwRv`Uv9aSRHhAm zwl}^?hv3g2JykXztg){D7!-tx0@U2d?P{nb*2=#(%a;G<;;(hkR^k261)5~0#Jsp} zyg~Z7Gsl+Ex0!9=z9~vyJ;NKv+q4hS{&&T!j6Y(kkA28RRBBPSy06!d^1333|;Ym*=!F$MOLhk+jVqs z@P@uD)5OWm&x?jfNwU*|0p=b~7Zec$_Z>L0*?Y?Px`P8mPGJ-aK|z`Gpd-9jk4m~- zoatLdG}3K+U$h+2@eBRUs+3)#(@ctdQ@T+w(r@v~t|rFgsbE_R(IMclXR$+cda{|u z*I4ST`LC{Z`G8({k06P=NUQXr&Dj?#<>|0HvwFt@oZa}yD+Q##fHK1iRYBa~BiF%v zDUH7iXB?bfay%?kEkyjQdAc#OWPl{Z=T>s3XUuPV2ZQae7A?oQ45r0r+_Xsf;HwV8sGlJ0jB74wUi zeLhJCK=F)c*F;Ahpn7(J{kKoLM5Jq@_KnYtk4S(fxj^H}%y8Q1{p{;!=7jO>Kcb_> zTf(@!Chfp<`=0gE=s5IN%SZh`qF!Jj>!sQ};XNz&AJMbx_Wy0Js5}%{xjwvgPc6^S zuD2fgv@ygxDy^nx{*K3xrm%1F*hSqV1viYQ zZDlM@nK7evM5o^@qqSLHylUoWcKGkfnS7{MCGQAfy+}yPZa6ouRnbV$HZxuE=81Se zw?5jln32(+%Ju28S+rV_jS6MOUfRLjAJpN8sE?c5JsDKBV~Y8wIw}1Enu{~1ytavH z)%O^@H!ff8#a&T6hg|-XL-;*WoA8_2^$7NSDJd`83#>p7XDj@#`&=FT#VE8JN9w<; z`0;2*mPk@aGNq}=mm&gebUC;IjNZA?KJ7oL++cyd= zwk>by+5zg$8SPNP+Nt3FgnsFMp9En*t8C=iXEb-nKBsbORj#ZXzRnd<^2Hd1K)Rxt zilsKa4$qekx(?(7JGowWR2a-9o|`sL*}09bBYU938*F{RY_W8F_@^kO3uI-V>WH`zV#}~m_d}o>&MT8 zpJQ!NKuLQQ)#T7fjYei>=fJh@+4gVAgMFA2lD=W^B7LCghxZ||kr$cQi;6i4{#>`W{ff5HFP zX8Itkly-Z-KiYGHfFC?y~3GCOicG+thQ8Fz9PBLH+7Z$@PAWxmO4e9h6*!|GUGP zYU!BV-BG`A&0Pa%u~c)_-vEGWkVW_~B?DEe@tu-~e}7etMWB{HijJ);=iYz6OF<%B z@QqVDYez(oBwrmyXy=?mh7du;Qb@TqAe0{;+d^PaE-~(j2EUSQ4jB*-i~7kn_vzR6 zrUITech1%3JVc~eqbaSFg98uXc)Iow2IPZ!>q_vJ*|cz%HeKfiy=zDr_&IQFpR}#O za+ntDM%lRcxGQwGy9gz}-?1-Gc!AT~>FbQ6_i@FZr(!pp{?to<|HZYYAD=KTVwb*L zDIa3$D6{bcU)YZk4dzWClMlq|pB5kFdRA=%`4A{yDR6j~l-PZJat)&7h z$$-j)0G=gL3zoBzBMkGlo|%~CITPx8av zG8>)GI|M@9EEouxknPfqP6!;EX3gJaNQ>6^gM=vw4s^`6k2EV5%Iw76_3Q8ij-EgE z_&{vbjsKoqv8jk!#K`zR*a;hlWTWG^i{=IYBZ}oIbtfM?cc4!Znr2d#+y^Ysh?nxY zeOHEt9g)%dne{0jup(cYcy`Yui}wfV700Nr@oYSA$u1lv%DdiHoRiX-Me?@=stV3D znw}SLH7O8M1zyoGn`tk&5%S`WTQU(Q2VArKf{S}fke)wy*pIG?(Vt}-_o_me{xK_^ z7D^b4C}aMqzg^fjhKZGwnSO=!#67G0po4!|Rs{Fu@|UEKuzXu{Ta%JX`AF(%v0F(> ziQL1n`H%mCtMs!YJs1H2;R@L}nf!LPSMDUp%tnY193@Kzc>`NPJ$W1_Yaed@Z&~ z8LM=rH?gs_d8>%)e}P86)1J9jOthr2Evs#eH>~9F$QuD0ow&0EK8u({%59>slZsYR zRBeXv%OnEeXCUheoVM-pW*g2ypw)UP7t~XH|0Xoq8zN~I@G;b~Qj%r9bWMn5dp+#% zWxwFz zwi2)DvO{bx#5#QBzR&9j!Z^ve2t>?Fg3zg3LN{4dFJNZC3?o4~AxVh56?Vs6m1Rgp zf6l;~cr63HXI?c*phUmwGL~H?t9zH7F5*E+iHhH?{CbUdB)J>)iQEhC<0i_MRZd&zdz|zQO@HkyEz*J0dfXx-O z8o~r5!HE!h-K39`^M_}@jE|h^io`pFhjg!SAM*KIj4b*w{a)~L(qeV1^(8+ZqUwJe zv!Z4zb($ul!>9VhjrsSI(D+udc>F{6xppbeI9WZFC+vb9c&^h(vy|ykCe>i7ULndo z+YKYa3c>eZRkPJ>WvB$C-#R&1P3W^%fs=cwauM^7V zIf2RIVRcI&*~hjC=cYcB>5~-Qv|&c*BYE8?NtwGbv19urUp7B(pEB9(?u1mm+}zgJ zEEOH-OtlE#)#V^-4Ubk-XLN`Ynjf$r)SyBcedj4^rq}&^6)B%hg)(|Ar2c;gx&H6q zm-->KOWcqb>2V6s*eqg-HEsA>@Kojhe$#%QB5foDZ~Gz@JmdwO{~{HB*$*tgS&x{! zJ$}9G=Okpz7KxVKX1crW&+XRkDNgR`f2vZuloE9o*8 zZC~j) zQRDK$fPriKalq7$!Yp8%Id&5uD(a{XWx9{PATbFx>>;YuKu3i^S;kN?`LN3&YXK@?%cb3 z@0@$i_nc|R=VS`5bjR*X{GRSdvyk)qNu8rGiJkT=?u_Uy_Jl;h6t_wKLk*>dDyjqi zw}1-&U!m@6Au6wib5{xNr;BPYnhr|slRGv2TWmkImrMvoEqU^B?GhR}usN{V0lV1B zNF@_u(L%AFK<4B64Xn#wgi;VNb%X+=``QSMCaZ>hS1Isz@Ej(^p2-zevlz6n+Xw|`NLcEBKfPsf z9l2|kV3z~^dxs)?%*s?zah8%H{gU1p>|phZl}i#yDM^kjLKAU1&$2GMTG}Uz?@3!* zC`Min^0#!T{K1-kjJyis+dWi|W5g-zV0}0#p{~}JHfFtS zRY@bv=BB<_|3vjtejrH`N#Qf{x=3dHX-_p{>X(cY+a8pA!I%d(sB+Prk~|T`U^c@j zo##6>m1;kefMUHJHtXtQt@p6%mW?pO2z1>1R9V0>v8K+>(@|`~4)Uli%%zkzCuF_~ z;i+ZMU%zZ+3{^3_S9^;e6sH432KKe@gkIh~&KG*Bu>k#wSB&JK!txcozx*q|SgKbC zqBF&0N*F=XJZw#ApBf-K?=N~mDGOntwd=!o?uO5kstLdSO-o!%@~n+Y(%61X38fOa zKqt9mE&Y(OKOx&i?SMm=mQ3r2Cg>A`P^m<~6c4;q6v<MSl}a9tY=q`i+$9RXi1+c3^|t9Oa(@SZnATUN(IQNqr_lMKO@&W~k~xUi zMc=HieCh|t*>)z zc$;bNT_ozt9`P6X3~29N^fdgz64PC~49h!$$!iW>tupWS3=%anIq?HG?T&{@5yMrK2YcOEaH4dLX(h|K0W|>iVY<+W^}Mmi*Eed^<^)O(Ia+yXz)=*n@)nL_ zm1>n%4Ok$4H`MqumGXbE7_nC)OY$|E-6^!1(@BF3D;w%RTH(`2QZgzl&Zur&Gu^#c zWQ%A68R?h$b--%XbC=_*`@bn&Pz4Z1^3c_-GOIXMl~~cPOKjPEf49q3(}uDk5+$8@ z$1X?#(s3+p6FqmjqG9XqMn8PCy6pAj7T^lD?9|fh(U_`uVQj z5pp`xzc=x^WT)+d5cy1}?Y0bAzzKigEOfiE@-6<)uI#1u_vd}RTqkO~0sNC&i=Av@ ziOY8`GoAfu;X$Ax93nVUu5*wknf-b#NvmbI$THry?*VBY)f|3wxgW)drIjI%N6*;% zLCW@oHWoQMS2(3Ck;FQ$sUDvxTo@)BHD~c4)GJV}-G+&@4Ua@5$bV;ffSd{9mZT^^ zBSvn#co3T^{P{fc(YBZ@T=?w!=dDNhWxPS1{bBA`zTui*d$a}CZxm%(D6q}vHb&LY zf>_xp@k`@j6*v9p-lwt^8k&2mU8_%W_NR5O+UyY@G`?;L-@inIT`W%dKMy+MJN6u( ze13uBr1Oq94h%0+(zTqn!#$ujfmVI|mF)J_pCQ>AVs2}iagzE-#_*n?t3u(;DX->p zt(sQ$TN;ZVk_9_8WL8(qJ`t0K);6-cS`zm_Jn&%gJp3DmRb0o$VO5{ zj_B`zEl!iI2aYu!xRw8~7f=^m7kh1%G)*pe(|oO|;`U0)q4rv79QIH#RZ5fo7AcWU zRHj?7QR{=np(8$Zz8OY8&vwZJuxMao@!5p8b6|Z*U8@Mp1gA$bzM zKnhUZQ;ydA4mh_ zCZE4T8$^I=PP%GHn=%Qk%DF{+j!ZGxBk*jc-w&*36+0z)w3~QA?JbXtT3@mJSNNXw zz(V~tA3A{EnKCQf`WdsrsWrFJ?ud2t-;ZxIx zp{V?e7pE>>-_e+sGN^gb`+ZLl__RKLNvY5NH2C}@@=90+^$|lUb!+Uu(SRjgeLJ0vy|bD$=#X}>4@iz*}?r&sFbCQWBX(;VGC zB+&Af`FA&4talj#PDm4H(PX>6W( zmzeszMP3R1L4zc;0_Jj(V`NpsF{E2P_q4*ZQuoL_L#id=s6 zH+_y1!8K1OH_9 zq<^mO2o2_C_jfU29K|s;hlo}dosjC|aQtLu!X7X$vH9MEgy)b%`_`|MYC9U=4pUo< z`_}9g5l(qPqBnIndPtf0`csJ|mH42AMOLz+)=NK#KXb@c0|C5yyIM{Shm|h?P*#m8 zGk1p5+`<}STzjn4ffVwxXwtyP%!k3>y0_! z^EaK(9f1s6@M9nfVG#LnB8!V#yd;i%#yfmp3zH@Nw@ci;v7-{cTV;vU^;Y9f!`ClWWSpP`=CuDko&~`*COf zRoRh_U%E;Z$jS57N}jcElLOZOXYG4Rm+he=p6Lpar?a~ZHn$j&>y}qNjMIc_(U{p)ut|EcE1WIxg_izsM2s%DwMpJ=w(Gp_iAliXc7-TIPfiSl~KS z5=(!sPM95ly539D&~swu&u92Ow*ih>@k(d%vH8^{gt0AR*F2@q=wbU@?)>rX%SK-m z5EcKlH{$wsx3PqkJJiBrVr;FXCaTlL+}Dfg9s;t2ECBEDjMO;$P=hE``wthPg)cvb zbmf^mCcjkb97z)Hn%94A;~H}^qyHR>VCK9BhUihJjhkJRdw~F2cT_;)&edJ0w5$@vOYC)4!wla!2hu$;>`RGLu;D zy(O4YZ)}howJLYs60GDJX|pFwa$HJbpmkC63TM*$_~t%etSfF_HH#ER0T2Wy@b$*o zk%2T-%ivr15f{5ZCtx~;|Da;slfc3#}}^Q_E<1+fdukDdilIO@N3~Ct!@F z^pFL;#C%KwD1pkq#2{}HSbiK>2XdiDNw$IP+U9uAfc;)ySY1I}#Dsp#j|MHbsRgC{ zF9ASoXZQqI5BT3hP9lKk#&LbkWQPo=wSg(Z-E zfNeP@+j{kSuIbP7p@%QKwi)uhOMtJ9GG57N3B`6s732iR*m6%cK(SH0CcJ$SbE9On z73v1zaN{|SS~R;3J%1w;2g-h*UJZ=HSKGP8EDM-ssQK2Io#_BOQIce+PJ&jleVl;Q z%Qq!`eXJgBEyk+7^+&vkiM~@6g?ft$<%>4@DeJ|ZY`5-2<3tKfy~N3ij%TIxd?V;x zvQ5=zQ{2X<9e@>BQp0hL^-W5Cg2f5t5lEYG!f1#n`nibH5ohfA6r| zaI>Ac(Gi){NI42fEEC`37|FD?D=F;ET%A^94-7s_oh3@3lI6gqjN79@kW9@OLsN%( zC4W@SD2q*lJc~uU^tsHdaWg%>ExtebjNIBaEF3HJ*K~bj{acCh zB`h5RPZ1$tL>8R_!BtqX!Zt`a$qvb*Z}T;<)5*dWjldFEonHJkC@EA|P^hhz*#M(X z$(<$!bRWiY+$L6S^xk^p-&nye;Fm+4n>0TJq#~u{AFYZZ*_}d12%gCRdIDU!?*xo~ z|2G3_gP|9j55EE14a|R&N9J$&zZ6mrf`;LTwM=JnY8%0G09uyKNp3eNWthAcSceTm zB5T~hDER<22ifD7fZ}13>~VfjwlOL2dX8@#N&&p8n92o{>5gcRXb$ywP^rsuUX3&s zaGv!v92R+Hr7K}b92-zN(16Aqf5b|94LUJv*L%$pjjTb~tnZp70ffw5hU|V3$1?#{ z)LPPXzlein9cJ(5MZbvMzkJm<>I!xgoa@fqRpoK8ltk{DMNWIKSv17&0?I(30E@Z| z8$vUmP^F!MYY+?&bmD&t-!T*(fbzEhhN2VGF%&RB0aSf87~LaKU|ute20F5o3_=*0 zvc^w?v39#XpY2@q&)pg-$ zFuU3*NmvbQ;yH*A@cepRM=@cyIWwcY4+QQwGvm6q4ZoKf(`QdgM6U#K1DxCeD9NLD z#;uaqp~*!E*ica+SOc3*?prbJd`D zLGh#b6aF`9wi}Sn`6xKsGr;E~2j0hThVY#^T(-#LMF~0C2I9dRme4cD{e9jxIWkcjdl>!lM;7p!M*p%woI3woBEQ z%LYhA1iUq=5iVpnu<)Z_x3p@5A6RR}d;~f_F!-ZidND5YFfot8q3u9cNMfsOlYjYo zu1PWOjQdi>zFlO*gf?lD?}GW774Sg+gQe0mEm4>9gkf4Ve2(`*c4P;qzBhY6E{#r2 zHUaPj_BQ70IA+%J5yOjpcF1P9y!7H(zm( z(+WSN42|h(=1%z^`KLs!m~zn7t>OPCaMGgO4CPqSg@3wkhFu(o=+7-sR@YS5x9$Xb z4U79OG=*;_k>o=!9^m3&5iS$=0D<85$x`SPC8H)LOjImc^LtJ?i=ZlL>=w(Uo(CvT!T)qmz`xF+Wl&t*VNZ3E$Dtv4G zqi=a>6OkL8ph%|Bn6c%;4Dn{1hNHGsObPLwRC$e}k!&`zectXTZ)K+YJQCcO@eHe9 zi^ye`+NcL=3gxaw-_8k-{=u^J9`K+IwywB8_OyRInLd1v;TRkAfYdnjnV|P~(N#*= z=n6q5&$9a`cUD2$=9j3!Z|!WTU#In78xm2?he3ydi^*37>3lPs`DGqE4h63 zkb`NkC%&ooy&v>Rns`Iq0@bcjV`nzpEhbq_S7*I@crb$>8^kbF+JmCBa2s>n<%{_p z6EQCA-bLpdKr}_qee-or;8xNoqGvZ-|1DHSuDDF}mc<9-Ub7ox+t_UhXlQa2740)J zDm580B*-G5PSv+42R|~eQM{Ekx>ak=qKC_Um_DO~0Lsj%AUYFW9Eh!U8vf?CV+Ea% zi(CIVdG#4%m1%kL6nSW>{ik+l=S)-rq5!5fWmmwdboc3-wC$|A?8tA9S*|nL7h_Xm z!DStaWNDpRH{a`CNCf$rn&M!i-v3V6KO$AvbH|}{uuN@ctZ4OfxSDSTj@zE>;h`jq;~ij?p>8^Ch+Tn-}$p3h6o;|~7zELn-@ zb1^St71({<^!qcxz2<#^D8Ns9@j^6#UJ(LBfztMMtVZlS z-G8m_F&7@)3XAp?_AS1;?^9&f5i&;*8Xi$M)_ej?0IL2ZGUqzDZ2Nt7iHG*nNM<|& zEs}W$dL|-B7LLHVI+%@@z1csR&_LU)e}@!l)#gv$Nit!h(PBClbpqN=ICQXMMS+;f zrF7I-MOa2AMNUlh2e93-rNI(!9qFrm}IwvU7rrd~!QC0i3}r(@j&XrU+j_-D>P zR)@Fi^g!+USnd*l|TQXF=qDu)Q!AN3SadO?(p^(8_Cl+ z?GIzyfzP%5OW}UPUk)?{3@rh9zrUQ_5y?9Dq;*Cwk1%_DD$;F(3WzY7;DfFKofnhQ?G*NZh-bR zk+?Y3ky)FXai{BoFbRD_VO-$y7`>@R!O_+cNGLKhI~nQ$fQR(sqzGr(LRHuUz}(92 zoL8&Y;}^Y`JOc(p%FGIJ%FK?3@MLq+$#Hkn1Kxxlhad2<=gSYj|JoCe9MH`MPuH=p z6;Nkj6Jte)eok45{Z*rO6Ice!xt-4j;&9y~iGCSr9WPwkz|Ze7FYD(rJXay|z)m^P zTImokCBhjj3gnwExd&y42j-2)%a10304D8!plC$k(f4xJ{o--5gZp2N4g1R~Z@vXg z95}b<4LHVqE{*m2?Rbm0@AQx^sce&1Ttsy$a7=xy8Ne^xt+w}1PK=6V_Ii9BlZQv% z$!Ky<7oLpg%lT{IH^ccel)(uY54AunIqGHJX(rBR?8`$(DW{ZJz{p6`9rHHFCI4fl zD*>Os^dl*G(=Er)Pxeh@xnH0TZTSrE2Q7kCYarGA;&$aqk#{L{7fAJ+6|l>y*Pb@_ z=J5J#zY#|to4O&-15!KoKneGq+sx)QgB%K664Ap^WPU3aC$q5H<=F!Ljb()XP2cwy*-KDJPcbC2h<8+F9cGujsq6> zn}qPmxiWa`Y7-`siRlvFoeGx@#PZ~iRdQG z_mrJUowclWT)Q4nhuwd5X`t;bqH?9cw?}$Ad?}bCWjZjdrCp8HDbZhr^2PIZ(bA^* z4?@cn!sNAhxE^OsF~R}R+@&63rM*lG_)kQL}|j)~;SRMbkY? zs%s-k0YS$1?EGmpToG>UWCO?Er!4-9<$p{`5SwX|6#VVN%{5ZxxSot*xhi@tSq+Y&fOE|>oBFEW}I9BSU z5U3R8Zk|?ce!gDD`qp7pT5FH8D}4D_FXlB@zKM=~fu{gL@?dmy^mOdtmvz4c-AG$< z-s|eb*?Ngmg&9>B;s9&7>AmYu_DM?8sZNhiSBy{jQ$~e$s(;_BBp15n>;An(V-d|p zuQ~MF7vVX?!Bn;3J%caie40C!g?rg<69oSK&}sQa_Wq=mo@fr9Wd;4c(S@aekNJW> z?DUdL8AnHe)!<0om4$urC~{s}=LgL(3;8NR_z31%45l;pjo{AI+n=V=?m}`_SmNiP zXTsxgB`%VR$5Tf}$C6>r1nKr{w^%Nr!cZfc_PoZCMzj)ohiflU*R2QL$>!F6d z6aiAX8d|AthhwikYepik@jx<9DUgO*2af$~{ekxZACoz=lU{?0+IwX1Cp$k*B6ciy z{ZL#wS09-|-O9#Hz1QD+z47kf89B#F)_A-%Y6!}W3DbMOQ{ z7T89hFZ|M+_maDfVAf1w@th<<6v@;@g@com%6Ez!W2o0MlqP&x_8vLGH1v*Fl2z}k zapF$%VK+Qkd$A#*WoK@xeOdfF)`-2xrVy@vcYw7cekwt#1a<5mt zDAC-!cjzyPMP(Ct9mGW>w$;BZH}G(Ck(x>h^*W|$3kD0#khwp=vgPRv3j1Gzu^H!BY5w6{14VOYsm4PNn1}_8a#@V59L=}5X$5VYUE9* zPq|=tO-|;wN-u-F-2-c(tY6o7AKdTWzLi_oE?yHRH^^lA4}8?p${kf3|bImfmE$CnRYD7R#o6voLS8PpsPt#^R z`X&+cmD;4zln3L#DL4cu05;I4$7nAey?S`zs`=!sm$_>Ta>93+aDBwk2u%eHek=_a z=H6hhuD!0kUh%_$tFk8UJq3&|9eCP;5 zdTMTg@x|tS8T>`jSs!XTR`s|$>&(T{>HB?4y$a2$RRl~EzPffKWr#0Vo*?28aYsPN zlTuIIRASa~6Xc;N=d1^uEz7Z(AN9~aUw?cGqAQ+Vy}P&+_l05CSwOua>D^~3)F7^J ziM8A_x(U<{-g*AM>Xeli&5wpI>I7VY8~X8cmYku+BvsW8FY6b4P*yjxkT}3K;i2l6 zd%kRbTnuP1p~XGA*569~0u;Y0kw3Lta8)^eTic%~#g4lbxRjn_?Ld;xxbk;rn^ zELCd?qKxcUk@l3~+L4;O?@hCgle}^4=X_*SNxeXe@lD}-Yp)yLwSIs=C|tzMBormo zr-Zp%7R}_qt(kwYv=U?Rfp}N=UlL9J5pSh{#KIs)$jnLx;d&kw;H#^iob^v@gOO zYrKYuU7L*$Wzc*IMD=o>dSxY$U+}0q$vrmfOADv*Pxo;mzQ0ROG^>o%)U>*ywnEKc zCPiNKIVe7DPh}I3^nb3V$ZD8cFp+&GMm8}&F{R$nS2m-6LgisMVJJmWUXrk`>7ov% zH2V=g)1dwbOCOkSb6I@C$NpfQys>(+VD^3Tyav$|VKqLFyi2qn>z(BCMAE=Cq#9>7XDz3Tjm&2CpDG{N$izv^Z)KV zy9}%MsGRcAFYwu$^&*<^>0dZW%>RRh03K<%qrkDne1PAe-`a-Ks!()mO#^z@HUg)f za*qTA`fw^rGZ(n!2=*T_7`4&njHz1CS8!8$qcgmn#_@e5(xjWy?s>l&ud|0A_=+Pg z=g9e)?|wx_ZNE2qekS{f{NwtP*$51dXFWlb3pe)aC&|V$zhr|)($IOco5Ow9e6HkE ziP>;8kK_?g-}ocIAJBmQb3sr5@WbJc{=0dBDJkr>M$k?OBb#XDoe9gqyKx#juQhjcG_ZJPm%7M|*9fI9kbUcu<2CB+FmarHpP zSBws5Y4{Fh_(o5dTBbSjmtp{9cs27r0bz5}15@kiDMl&(1pFAU%F5=@_JPWF+INY1 ztBIu&W8|7=T7*6i2Q!tqA9Zo)I`D7=Da5Dtbx4$92fPDis}vIzH;2iX5@-mRbP@mJ zJ|Rt76nNq~^=7t8nl-~Qga3A8y zCwfOk;!eUGQAJGDTM}lT2YivYZDY!&n|j`@OFj9tWl~sA$^E#uhNxeI>VC9PYRg)I z=w|+f>RSLys=HhZrqR240M*{lW6OKq2s00akUIqoFSq$bAXRLm=9XX$;ipvV{53lZ(JRCg zw978U2cZjKcF7-f8_$CG4nZECzxQP41EYiH08{Av2)I0QhZ(JRGXbs$-(mKAdGjC2 zOTb2YVGih#BNxIK0-HeP$gAk1!9mGCSmu2=`wLEn0gnrHCm!oXd9-ZwVGzG*X>lYXsu*_M7*F z@im^>xW&2lmDNKVmY>9t#y9KT{VIulDDB;Xi)VZq!B$KKtDDI8HlGu?`qg|+_=CP; zM^I{dEs4qiupNf?^we#)awVG@2ZS0xN!BK2amTh!w?nOMS?ZcZksZSE<8}#v|dXPa@9iWNL>=f^rjW{#dI$e1EY?YGX|?lS zDu?HAzM0#XZ#{qNVE=xda`_WQ;x4r5Gze?_PSh*p5#P9=ANkXrQf=0QJEBc>>sqws zi*OZbjD@q%?M`b$E}m2M!?lTKHjvXbwp)!Q5NqP_H;ptJew+ zM)Hs^fQ%&rC|dh8R5Nv*+ONL8zZyQ)Sg{r+%}pK=@gYkIhWJ&z`FQ)~EmiaeIPDbBbxbTwXs) zPbaNcF0*&__I{=kl}%cycbNMjr@aH*1ae`TE$}_=edj>J#B_xF%UDp2;Bp8rLNG`~ z2bmLgrJi|UT`ors#7}-v8Ft4(jBk#eQlt{r>IPQaV#3*_5}3-`GRs`+u4$4Dw!FEx zaX4sg6C!Zc8?}h3kiEs*th^o6a_ zWfnu2or7=6xN(LGQt=t#f@ylcUfn$lS}Ls&JCM#fdFL1l(pptuaO&K6`8l1jw-A@A zUnb#LBQe*BsMZxHC;s}x{{Fq4MkBYM1(hDXA5=nA#vIc6CZo#?!;kiuK9J~i774fc zOR6ho6Fbebgy-@v67>qe-$sTcS|>ix+Et+Ch|imdG^Fm|AdLTR*7J@qKO4{EC4Rtx zkWRIBM%ef=UI0Hj7NsgsZ77;bZoU1zjQ&d1S*z?F<3dot>XwS)JheO|D>6gAjPazti4yDze{juY+3?v%Wu%Il%u?YF*(=f4$d?Gm&JbX4 zV+(7HT^eiD`S>A1U`Hw^ecN_Y5N3V37Mg*4H+06ZEgr z!6y8KDsyAuZy_-gFiGnpY$8woQ}P)+DIdM@DafF+zU%`E`8{Cp1e5`}&5s;BNmKwj z%gVbp)3~@PW8YZNkHIi_h>StON>s*Dw1p4B8We`8~DMCy7RHrOLSW^nrp0K)Gz1 zfWnNn`5TJ>g3e{1TEPirgZcn*CQsA)eHS=j8+Q5!!^T*QOa9r6+W`-`_Du>NMg65x z!0F*HR6??aW0z39O#kKYH$8QJY=1TEq#hVwx{gg;5+^_6FBmal1S2B=>hhr%7{fCL zQ*IA6><6;c>!SBa4xs(NtXqchrZ{7PO#=a{0N}kV6gJGcOQ>t7RQJ!*BIb-mvio0k zE*9APmk%Gr=<|Gu%i{rj2w4&-+ZO>$bVya?(}{N>GX}G9XDoAVPia3`v;{FSJeFA@ zvlEGaI^8=(!E{jElReNyj?45$l+d-b&t+Lwsfe-^ei#y8`=|$gs=RZ;CAwuMvS7PW zrmT=1nwsSvCZfYK;V}RatX!YUQLd73KxBp4FBi0{*SLqw+8`dcKp;Jqsv+B0O4^li zKk&0PkTRL+uu5Na55u^-(t)K8anGCUTWN^3+F!dSNfCAmxncx6rZepi4c!t3@B}EW zgh!IREYQ96yl4GNV)DxOgzac(wgt2Tg>x8fPFyLE!((kxH1UdAGS`_2`sTN`+k*=E zRCR&499jJr{fbLJk(nwC^Rw$$jD+7ck-z)HC)yHjp+Y{<;eOjYP)*b=<3~dAx(VM+ zrpKAN%Afa$(OkcQm)iimZ^YV$fQb8Q#O*4oIN#S0VbtzCtRE6Qk|?4`<$`fBG-o z6GHXMqW@`Qb(6+^dU9?0%FO_HW8e)+7nhE-Cs&(&s-DVXI1V&F4L%{vG8CCS309~o z+9r#%)tz9WpD)T+6}DdnG^+plt5DCioD4s?er^eC@OgzWx`a94`;J^|* zn2}l_#gq;zq#PnGO0(#THHQ*)%hi+fW_Sj40rCGl*0nu*(Lj>2G+6Ov1|zdI5{P5!F^fmev5#0VCR!5nk9H3jl*P( z0}mwUK{+?dPzx<|<$ka?%{`}L6F|S2x(vXGBWL?&ZnpH#G%{{FR_8lzUf*a-jG>u@ zygM?>rX(gj@eqT?BbOC-&NR$^ZjvMPFVkY^g&4l|ivaeO1ENt+&>t*TD8u34rIsm3 z_l5nrHa9wzcnn6a-`i3-NGRI6VPIC3`gId{_lv3h(6sslv3H?tR(JDyFB7Oe{h!)q z;otp0q=f%6Oar9Y$`44ipOk>stYJmm(fH%0xXdzIk6rb1C}C%4>YZ!VM+~b7c$@nB z3H|Hd;B0*F)KSXhx9R2i;~7&*26+-hW7WNdU3KDps{9{uv7{wxkK42MXYwdrIr%CW ztM(@*l0%Q;jDI_#RrQ|FKf*TTs)`PVE%a!V^t81dlYf9!iPI-G2j%z&`|*k#ATq`w zkB-l;H`Q21UHgFI*A3ou;`3A4vwxWKf zODE32an3QmWMGtUNj)Ck)V;8>d$_AgT4FsjnvrXp?eP=)r=`yK*xEqQ+pqu(API2mZIVS|NS^mEp;G;r{C6V4Yz;bM&v1*X0aO&=cmx9~6#t8qI+Fti>;xdN z{=%=s@r|z@0~4DE>1jH(M5zJKM(Itc5FLe;X>GK88OW;T@JI> z0sIETQaObiO2F+M;Ef} zkQJl00id56m?Cfh^mJ5%9_<71pty%L!Ve6MiFvI{#6Qv`Iz~MdNkj~zSj+0v`}%eHfQ`CCQLYubLRA<1kY|lde@^du zn4uO}1;xe>?4&H7$GuTH=w$08`DlaLiR2RdpH}DpcYA6AuuK7B-J>#ZJEnh_MB-sA z((po=<~|@U$LNCOzN0*+jSH1;lhMYSee!Jg!{=1SoDmVnW3H>$7ukFL>fTnKN16)=q@|F-Mebg|uD6x= z$nf@O6P!YAKFSr+Mlq@ZX0)O!7w&k(GQm`Dc!Izu2Z)2EEf>p~&Un&3@$%>31*o^` z#GAwec;^VrIEogPR2j6`W#3h=G#VQBNpxCPRC}LPl-IEh5wM6-il^4qQ$4xn7J3~n0iig^E(r%VSRXFXY95&dAZthg z=#v6=q_o`Ang9um=7By_5W-Loh3|97Utj1k?k(Vo#7AYqq@eqPkrir z%+bA)$UTPXoBcDenUAx`~Xe5UDKPB%KfRASS=AZ$I z`TF0sG&Sh9+3?xGYV%cIR~5tXhiRchEtoX?ZI@C!z+3hR`Q>U6a88Eg@)^!0EHOh}@xBe?t4j(&|7gj(-vB5t}co;e3Irkm{^n*JRTsneX;P z+fY@`{R}8q>ko!iQt{Bk&>;^#@*jo(mc0(&#j}pWiG-eyY0$?c9Hcf%1U3hzw`rst z5xrsn0}o&N8RSewN@f%E(hE*a3B$b4Edh5u@$dkFui9{IN^{hxD`9j>ernX^dk5Y# z*WghmeQy3f8%tA<)xbtU$}V=9ej9~amUQ$B+><1lm>nM8A)eWD+I{~$JPC^>h=hMJ zY%|OmAK!!x+~<2+4a$G8_~xwZX1+0s&NPVP43g_xM6$cq4ZQjZK- z8JD1tsFbmIdMrXu*rxrm37~cL2IMV)=w#1j3LG(#?5?M;gzino6q6?hEyEKn7DuLY zte3I`fagD#?TA@cDq`VBZ_Tjn5acMgQBr!;IbO|?@l?yXx@FVT*K-or%e%Zly&%sz&ck2DO|3_N4YPlk@l6_nZ-vo z@Q_`2Rhmzb-hZ)8L4d1`9>y1YwGAM_eFU@8dwe9ajxd{yuc>iL9{L=+(;ORz=|3-T zUE#W0EY^I6LAh|r(@AOVEX`}dLMb{NiHk(V`?60YGP3Fz5=qV$Pn*i=rvNXvtks7z z38};1J>`QJ+;!bo=?pDvrv;mk>w+mXTL`t45wutqEvLTp&8k$Qda3#kCD>OOlQu@$ z!w8ChDGmQ9D=ZZDxlKP*X$}f4LHHHsW#ceKA;?&1CgS*J`NLwXRrKWO+vC>8(&F<- zMwuCL0IC_=1C?ZvoGREF=~^UmYy+Ie6~l<>1C2rwrI)BJ>jEt6zD8)9X@P5F;gJ;B z2{$X(ysn^8Jdp|SXf6p$29@*_Wp%L-QKSw-#2k6-t0jCm604-r;5k@;8OKW zO%&kpOf1CHqtR0yb69{8aho^{1(pJyp?c7vhZu`;zIg8b+%4xqy82%1pvHYilwL#U zrHbJ;C;=thRPXDZ37t72Ukq0}lQ1JQQG-Gj9jZH5cDm7{+Q9 zaRmI{R`-F}f50HS4*&OrfYblaW&WRQ`hR{P%*Ac|duqVd1Y%Mj^7ol{G>w>SK&o;h zyzfBM!_|)y+Cr*&=mSJ#4+GOKl*IvT!*%Bc;5miaLd?S~Ag(G>(o_-(e7wzK12EZ} zly7v}`dsn3Ao%c#vD&smQ zgOgGh5ICdQ9jBWrIf)X`opKG9w3;uBwq4r`nJz5^(`w$x>raPMWWKG4 zn7e>nw3=cyN}OCn`fh zG5w(9i?(qr1HR7#ozyrj(Q+bd?os`%J2$w#?A*;GpCa85_ms06YlCSC+cPtrAEwD} z`N?nUiO$Gg1{;dRTm&obdbNLhWJK}VeUB_;lr!e@YP}N0#3QaL8%-tg@0MPc*0IwP z@~qMAr4zAt#aHDr>u+afZm$u9R*(662C%07Ui+x@h1P#iB?wUbUk=%i}18~&+=i*^*xm#uTGkIyUE(8oVUZ=gDm>rl5F^L}cZ`;TnQ$zK#(S@R0PhJ9nM z-TQ@a6$m~3e`tH}xF(ji4VZQa9Fc%nK&sL#AcP_ygoq%BfQU#F=>mdmJF z5oOKOZpq9Ji&rRxSk;T8bm9`Wq8|&Q&ouB5 zNt1k;SA_*%nkwhe-C^VI7pG4>DJDICPR2GWMaeOWJtU}h{loc^^L56T5gcYYodG48 zDp-zVH5ur9nAx8q6j%S4G^DTY{}VG!Xf!$fW7E%#ZF({Hw)5+^Pe!{oEN{&YXRAB2 zC`;cyY11%cLH&Ur=9mVUcljRky(doBJP$PJ4$7XA2r`xE_vI3N9erH>%FE5KjAAcU zO_;JG8|>RUS-UQvl=?=skFfk{Dd~S-H(gxAkiuRe3OQfwyExn`D%#4kFRLOZt7+!n z1_+TyyduGK0d9tuS6Bh_7(j^$JhEnZq(6+cV=eZe%ww&}Oa$5U7jF!|PvhVvw!DI) zYtaL_A1`cEn_)Qfb4v8|zeN2oQS{WYdpUT=P2BT6cin8?yG}PEYN%5;Ydc%xdd$$m zpU0KfxUsI>FrBBQ6a!#&^xKa9n&^suAT;m<@9sa+g$P-XXuA?^*2sOmrVXy#!2F_5 zJ>kK-U>a$`+^cU-C{r+zpEba3{J0usA26wVMhS;F@T77O?>g*BE9u#GlKA0*pf0#E^qh8T`7f3l9qAyB}-A+69 zyf*Ke)QR})3xO$Fm!*nsV*gw%yeXA;*V>Ak<8(L+j81SzTBp_ggxED7c+~QEg*mKT!SrK zlIbXL7VB#|q{qU%7g_`W6NXPsBU|h4x%T6PGxY) zic`L9pt-qACD1}0F@y$ZcL+e$8fH`QNPtiS7`4{%A#?$eAN!)2tLP?vypk1Qtysq4 zt|-+9?(a7nEC{Z_o5Hu&i7spsZ^4-Q)2 z0Q51fZDi0>iQY!32GFWXM-gi*E_}x*>!NWA(Jm;}Xtx>*7Es^Br?n~QlxdtCP_0*1 zY6+L6p)NEGU*?10ckZuqmY8Gf4J7Iq>_glE(z9T9+H$%XQK+f+r0}}z)rq>J+HxEkY zEr_7B1?Ka%J)o|9IQ@;p-RkalzlAN*$vs9^*c1Tp5la+je)!8bF2)|`j zGtwie@~yx3>}@BjqK1B+;b@z8>&_qA+VIp*P82rqA|CSfU#6edb9R*-|4E^XsA#q! zlr|6FzU!iwt0Xwc@d`7GcA6wMQnj&A`HxW8)#g(qypM6W2lP{)lDs;Q z>JD|I3qs(}UcioM9^jKV~%hK@!P8_PqW?ka* zwuMmBZ-E8ZDXmx^Al}^##(>r^B(gI2=N2j(Ccr(|IaF zJYAWofdPfJIwlJoNX^0gdrCtZuaX(ow}gEyM0vXC{fArLKDdk07TP&-rDwy&U`D$Q zF355Vhq>#nU%&&0KE$&G!k&LcHJdjD&OT^dVo8H&#mf1;>n^SaJe#EtX{O^@ zIab_wv!W;k@@Qv6v0}iZtzv&u7LsKPv*PFK&_ERdr$Qsd0$5~_y`v^E(Ik*Kl-Gwo zkzi+DtcKUM@qXDUQUJhq^bq18c8ISRO_P8!ja0>-gxJXh3t9eIGROdxQtAZ4hJpor&+ zNOunF1tI3H02126UIC^uxT};Sw2m$SS_Ww$W6TwWV5&+Ci+LSj?|N%mh52-GjXRLh zmcNEgx{9WkU+uNJ<#f_wYBWXkkFhgPI?ys<=Q>>dUi!N&i&Nl5<12x{hhTWvvH^un z5|{S*(TKo>T4fo>*nH7m-dAZE zrZ4GfxS|3^L1VWR;#r!1TvXpZz^li(7O1?cCCFA>mp>sb!}y#eCcgBFcw))9{^L?| z7Ami}F1q@y-pmC-^MR-z%2@|YQ!PwmN)P%^Tz;T0UO2urYDz~@yY*wE`wtebf+T># z<j(<}I(gTEM!{&UW_z9!=)K(3s*0M27HbRNmzJYv3py5?xfK>VOc zv3_zBms%f|Bu*x2s>h~p~6f?<^O#F~>AU8Zuoy7!{^;L}hySmSui#|~Nc zytCZ4N=x=J#Kr=uT0gM~Q+3ZqE5RE#)}Oli3pHwbZZf%yQ_AN3C7rYbuR5+UONZQ? z@QR$+s3Iq7Q**wd5)dzOntfpLu!-6w#`|{4N!F`%KEAbEGSdR|qV&@)dIMvHv9qQ= zRB5XSgMb!?Eq2VQey;g8P0@IA+{&=@*5f=jH|Eoy%xg~+JLU6Ainv$QjiTYTYmHCD z5=DxezjJ@{+2Xc+IDTg7wA778&!UMLH9!iLP6UpVa@;u;CbK0Dh-F%;O>~Yu1DUco z&S2KsPCssV@DdELZ=u>OAwfxCJAn*1hsFlTP(uC-7%;+Ch4vWwowB;q+Px3$5x`th z0jwNsJ_U!t=4Ox?rWuqT)+QanU`2K=d()cWh4&b0hDQHqJ;+>B6#`l%u^-kW(?aGK zhF|R!7B7OGgXSg(y_q#87L3To~WRLyXU&8-mZ7H47o)v_9@Ru!G98bg9iGLYrv zu<)>rYG5>iB1lwYAmh)$iKKfm6k|IKeQvEka#++>P!I!LU3So{ zjUxx=){xlr+{psBrH4sunaw2s)=rTU!AUzQjB6(XqtG(@wjW0`$Bc43*E0yD2D&36`d5Iqa??YecqX7>Q^3%K zxH@4fCrhJ6bN~7>OBGAL-OIK4JQwf$lwGplyOdD&V$L8IfJjOM@Y!2y&mNiN>g#v# z)ic(e>a-k>7}cJTb9wnzim)K}BzRj}Tkvy$`{`Gbx}rtlU-}(=!!Ey0F`T|&-un!* z;n!ZZTfC9+*7M`SL^I2|qJ)nLql*4)H+?^RqoY_O8SXYF2C>V5bEQp9H+L;4eD)`9m-+kYn*hGW$M?yeG?V&G@R@F1?r+%3~+<|2VLDXG?7j+#)13&KSc=M0+F z-#SIR1hvL#QdzWLX;;CC^>pb=2bckCoHwQa%D@cV*n2mcTSxyY&xSfO3$Ubkwe0vA ztS}UhfPSl3_d`JH12Rx056L?rI0R{43J{7ZFN02EoY^va9w01qY6>o4IC38zTnYw; zwkk(f_JRj|I!(6YbLZaGEQ=c_NxF8^r5^12jDX0r1>qFtpA?Bc;R!z}c1u&3cYabx zu+++?o-o5HR?QaZp<*d_I!8~08%NT_Sjwgb?KON3E2E>rVhbDusH933SKt`tS%fK#^Nf{} z+=w+n5r>VAPv&S?In8bRHFCe+s@*h>)xwstG0s2HtAiuH+MYNyyZ&rqlj~N?UlF8j z`Vg0Gx8?3u$QYYi1IKVbv|bQJtEBGd%lue)K{zsYckV7e5O9pJ+~JDn4EVs-_r%kh z?d8I`MCvRv4*HlgZTbz9mLbcstV7M3uY}eLM{(2N&BNoyI^+_#suHy~8*qpU=yKV~ z;m6Pcy58EiQKWf*E>K}Gflq7qV@hu#>Buuj@w6QGn0i& zJNcV2Bv7k*;J}gaa06!xF4JC|Er^}619wbmb?*d8%{$#|u4-qu9latAL(QYSaYj3|f$d6Ns25&MKro`n zxo4Q}Cj~(-**X8BR?KVPbcj3}_Ge@6a2~*LiTuH=c`msJqWcJtJ_ks#Ze)i?#~v*b z1JDAMGjjm|j0~QG1qwed=D%xHb9hm^e^*5=a*;VP3Ny8<0_kau`)43=^&qsjg;g$i zmzUeLvD+r)2Z>GJguse!wrlReRv{Lh=oi?Zv8SJ#!S;%C1pJt=$L)r6C?*9A)s1D{ z6aV6|S6g3D&IUYDn%57@Kew zC8oQCOoYN&SGo)Rr9B%4MVWyv4v4MX!W8VXiSu%%JZ0c4!&^O9{sFUKGg}bed4+pK zQX_r$QGGaFSPnpZz1-x?A%c+P58Kx`UHzV!P{&{Fi0u^{tNTUe$-|`=BI!*#oBY%} zv8@(wbOaq`YJcpqlW8Tt)!YQW5rFGs9k&Q|AoYN$89aaW&A{`O8}KHo5R?x;iW4Cd z{&@&+TBDS06fAvXvb%f9?0V%3M+7#%s<)7%0IB`P8#645`;;=B=@v<8PT1G#|ZB6 zwZo3EgDcF>1Q$zE6#mXj3TwReQP&4(_tojO!Oiaeq?pQ`L;bMbGuzSe7A3MQ`F}1T zDiK{Dv`AL`wW-anl4ZeQ>E5FLW8$bJQ*EPK;R$V@B0nj=?INg zLEIJs4kz+jHVNm14o#B!OYa&A;32zJ1{t> zqva%pI)|%usocUP@8H45pB5d;<~|ZGu+}zU?vf^T8mJG>oa;K>g`ltXBE3=K%Kv^= zq$VR*KP=uDpL=-4Vw@@Ejo^*=4&!T-C+WnSk0z~LRd%Y$ z)`!=li&-)_ec@ihi0*czWl&vfjMOQyuSgG{l9nY&uD%@>t>9SJA8H$plYvf`N${mh z404;Cr9zhW&)TCu2ildR%25vL^6frhq4NJCVQli` z#SFu#KxVtNcPmW(6s3qC=luXVA~3K2N*n6GhMDU#Ensx%z7A+Sx0v_n$TVPai<#U5 zEn;4v6u8sE*jo=fAb=#M$2lwYSjK{^*YqGO{zapyb*$;U`6Ux+%SpuN+OUKtd`{z> zsXRyb6%y@|qqX~$N2PbwrL8Gn7g$j0rTJ1ErwnthlbK*2WIoEKP{}2)PY9^~%6bJz z09G=1J5b1f4k)YJ2n)Zm$ES2Osc`O8eDtQ+TQT+ePX`@IadM^|l9xp(5W-%Omlbk| z&o2jDwfEq9Rb;P{BpqLX<(7$%qQYf-;p>=m0j0$gu0q5qmdh*A zK$z~uy>o&Be=L+g2}u(bP#v!}jFIIgM_LbZ=NptDn#`IfY0pLnq{|#D^~Q_xTb#LP z@mE}wY$Ef%QOYW-JdN zn>aA>soYs8e!D2lj8`V`=-yr&u)xt|@okvX3}R9OQO;3WgC znSi)BC{ivK^}@vPdqL(G#R_Q5jqoY9$mB@f>UWjjsJ~N7%5BvM z92>LilQZ|ecBcP_xYi9Wr$LAHxg(sL)U9_f(S4E2>ibFY$oTeN9&$jyp0en^4$W^2Ub{DW*sBKkCh*^Y%WEs!?@j)@ zLpXgtK+Eg8U)i6#IysVhJHcf;|E-t4hKR5RK;-)XOuss^=OWxjXB+w;K!Aw5URhcf&(p_mH(3^N;9BUrdNM}Fqo^FIIf5wT| zc6%|oGWJ2v3bOBv=-x?@zb4F_o;me5ll6Sh<~ihNOCpM{GIhJBtiwD-Jo)qs6ou;= z*vzJZy8^sOTc%i(HwNY{lhvJ4r3t_-(K^vAy1<^ZwL<47#e1ncp?9;{0Px`+x2F}K z-SE3CMPVkV$8EW^^w-EETRF}@_ghRWYD>6+!h~PNI^XVicY{-X?TgHT_)m&28GIeC z0Xok)lmrU4s^_=+$}Qi&{NQEkQO3NYQB6O1H~3^TuN>W^RftmwP;9WKYne8G4)|JO zQAAh%y}d^c(OsHLz_kDF?_e%~_TB@i>zXqc0mMbu{ms5_E))PJ-waG-zra0xvjCF4 zs|1P#9WX$S4hj;>|6Bx^jVhiMCTCzHlLh9mtJ3hMS{Yv6?DSs-DPXhu z{cItfzdt#HXu=-llomzwo6bC9pLvJ>FeSc7!a zI}OL|{lyPX-QK;je8qyw9VPQx5|%a0q%a!xXWxO{K6h~#NynNnWMYWbU_t!#~Y5-J~a1dxYKC$S46&DQ{2+hF?w^}ezZ{y7-dln#fzGaT32 zYu}|w_z>M`BKg4<9lhVtPkh9p^Cg$%u8gi_V@Lrl|IlR7>i7MrmgLX7rxsiuZEL6$ zo4m92ewDhZG9LAVFtr4?e)*Fkz{R3calcX4^Ii2(_QHcn7VUA>99)!Y&T2+QLf(}< zRM2Y_Q3w9s>c}kT>m3kvais_P4NZ-Q<4AB%(J)~+fK)gzPaKq7>O$0fFn3ZvC^$2s zQ@1Z7U^gLte)VR{yKv|DADfA#49+olOQ(oNK z6rZ~Jo}hCSbF9SWov4X{dU3dcwN9*Kk;#hX*q9o6+MxfYYghHlaNAR8X9u~>c0u`6 zE|xS>_W_a#1ibScyahZL-}(@PP%3m9}?Wca6Du`SbC(TWt`!$ zmF)NU?za{G591P1&KhrXcmo3#ta!lfVUFp)n zvp|*xat+?}m~CSeJa-*Ms^SiA}&9@OOp_;!0ey`mHRGQEBcLd}}>$;#Ur|APYEi8VRh)hh_== z|1(2)0;5DuP=C{R^KAr3o^e&`fD#9U`}}+QeYC(qFc!ER9t$`e5F)gv8eljxq-iB9 z)1mP?#$eZ~TX=1w>x`M74AV|%Vj6z&ENf>tBYSM6BKwB};~(sytJO;j)^X%X>DJa~ zmf;>V0pA5Cl|{!;LVO(6>hDikBj}rl0%V$|S*!L9ASr&s2@E!-e?R((*)(^m6@xOOnb)!0%4H(3OC@>jUw9h&@<982RNwj0~; zP2N3hIZ6A_Dzr%SW&J}$1B((Im1P5?z{G30n#1Q zQ5g;}e*o=gb;;{1;*WBQS_`wfl#3==#hJN?M~wboe{`Zkxr%&d`t)47J~2!=9m^cP zPT?W&cYo**sq~9s<*-){_00d7_J9>dwuc00Sc-pfoBw|UW@cgr|Q%J+)3SB_|Z%OX?;c4dP@o;lFMsWUQC>)Eno|TH}`08M3>D8Z?DdaP6-d#{VY{Tg%@^iqbcEq%vDjC$yl^+ zzuUT`{7|Q+Y)4hqqXaaGh8Z$xt)JfsI;7Wlp)-Nvy||B44eU9BDa zm%Y*!ajIC{R@|jE@8urxjX1XFar)BIM;E;;HBCHj_&(s`b=YE)ztvTS66IYhgprSl z?!gZEbM_90dVoe}S?Je#3m9TO>?wx`>{XT-rlV=>0-!u$T%Pw*Ib%mK)hZ8@3j}yCxtkZ66oaq0;n}+Q{Z!DtWRRV#i!I! z27v$$ksIJVR`CEeszOhQAM;mW78LdiUZfyix2gxGsRVR!Lpm}v8WrrY65SQMre0}F zFonbE#uWt+PoQ}szyBN|a*_HneKUdgtabfyc=yTQMAU$k8aS@N3PeHu%V+h=WA&Sr z`kyRlXCN+&5egcfgI@!iLCn=KV7=x6vBZ%55kwS&m}2nGfVkJ8bxxi|K*A1=VWf(O z$u+bGW(us`KpV|R9hd_TuUMc;fHZ^tu5ooF$Us`AINw)n1FAm@b?PL%+-4HyY41FCl9@G3S# zzwj&o@3-x>?KKjVmQPiIDGxvZ!BGNg1v1~+t-$e@9*_c;RvTRbH0PA1;dE_=`GizkZjfxExJ;US1a zEMNqWoH~&cluuroyuD9vChgJ^{;0N#zrv(rgp*1w(E4Km{M|GA4NZOWlF#@>Nuya7 zZ5+3Hr30YCIca-QJ^cac)uVtf=l3!O-7bpjRz8f`yj^obY+yE(S7hf;jL#!casUYJ zEHrnHZkxV7>*su9EJ{T*g|Aj-kMdL%OASoWzY55@Z0nOxEpV61JAmMd;$bypl#e9` z89;G76_qVm2sjqC0(l&{-eqi^d7?Y{DWShDtgKx@8+Sm5_lq076I)BQLz`DT@Iz-TMq*DJoP4m`W0a0qs<@u33`Dc zE(65e?$$l(uPuE`@%1c(rORU}**&H^9^>(AMv4^?q@NUeTz&9YQ0Egb{|xeP{_{}( zXMxRHPEFfpq^IzJk$I&{^eWM!$Gs?9nx;LvxgjL7Uxk2OW9lz!{p;e$XRl0GhIH(r zx(v^b{FfnVvC&xDT%E$k!LYOU123RYyPrUsL72}d`!yNst`hLh2UdS#4 zL;7X(zMIY%n2P0Dcp#?NO4PCh`=&Ctc!oe%bXO6;v3&Dh8K&!SB5{> z^w}`BAjPKcEBma+|DPrhR^Ag_G* z+2v2#G27U@e$v^o*rMV1*5j~iA2K_${})8p)h-581UzP6*%BKcOYEqrw#=9)!W2VLm_DLFYMBHXqUx6_PIx-o z=O&OiOrN;}g4V+U*}g<|mkl~nZ7jhU3e^DenqcwiY%ftD@v~K8ImSt&r`pkf=bjLj?jHH8ek}`g}5QKiD%`$($H5T=8)d-l-{zL91GqK>S9c#9)9(0%;#0 zwyJ^Id!Mka*@2TruWY8qS37M=bz!V_yE||)yNL@Zaj%61yQF=>W@_?*y<6gUEC6`P zc5Z^1%x(hXCfH79H+a7pV*%4f&ZE0cvFjWMyrq+|$mXMRy5&JK!Y?)7GitGvvBXG^7lFci-PN`weFV$=i*7>&dIbl<^~0KHCJfu>ADZBXuk97ymp(wEGB9s zfoMuxxMNXx3+Y7(ZZmomR}^#RRI!-1DPqpbLGO4gtb zg*FNSMl(`Hi$3~z(oBK+(RwPmAx~xV%QW_JW@6@{2(wv>c4W^UkjBxcl~N(9eCJPD zvMx91SGy8GR`PK!ejDS$yayIBZ%|sGXV$O$o!5mqU6HJ|>i^kn39h=Uj%-d1?{2fM zz<=H_%=iu{EYVq9OaA3%t8r)$%!b5Sj;=k;^!d>-F84I00=>vyz$n02Z9EZL;hlKU zvfi)+-?Hb@g$+?mn{V$k#Gzrll%#2{jZRXW;skYmITPc3>+r_r>0x7KaVO>zUL=ZD z=0S#64iWoJ(aCi`DQeB5N8k7R>9eL5&O=D}r7*{~&^wRyyIr6TQ_tCdCTmsaU895yF4Io;8H zTnS)aw!(Vl9v(94{W2^3q{y7=312f+_=_!k{f^Rl3SD1HQ1J#bpoLF~$-`K@?%Uf{ z>$$}uSya&1bZ#TLmV;Nog4 z34ZR+!Jy053`ZQJa-;KOtd$it4LaTwG;+2scxO^^4usojZUaSVz!PN-g(7Hr-SX4x z$uv5BN47W2t4{=D1H%Ap8mdpiC*{}N$Yd$u5{WE+9cP#IuwrGaliQ;@K9j(f9d(oc zSZK(()ynM88y{xc$cc?Rnk>VWCP4cPJo6>EIy!(Xiy6wk9)m|@N#{|MK7rhBq6T=i zpvL38rT?em;B<8Jk(lue_=SKSKPkL2!+8(^OOr064~E({7n_FKFk8aAimj*4EsDl zQlm8%g$9KXZVaXBXFdS>q8DjlRa+bgJQaswNspA5)w{^7p?IxR{-u?1`fdFkPGN(xQBxsaWJ z)LXrkUv&{I)B{#%*`EJ19hQ^WOaNl|@Kf^(K@67Tk~Lc!mtpD5=3(U^d_9`-6oxkbS?A8lARU!a0adSLms}4Ol+_ z?}uDv7}R-^a+PvL%yCz6R?kXL6s6gdvSMo_fV-Ej?UU6l9+f{=f;U5wV8?Ke-x#d4 z^j$g{#=$=^rq+p8&7tYEmSqBd)f>AS*86SyS)~Uy@_~8m!1APcVDNUqk$h~z4W4yR z`hNCw(KOPTJEM4ndQXKz(=?6+`GUT0?PwT-4B<@)?p^-AV9$(!o!W7!$ZG30Z?QjD z6>S~m8vDNYN$A6MWCNmf#dh8t6eWeHBk5fzT1Y`E%l6`TREUaGkz9R2d5@4|Y3U|0 ztW?4QK;_^kMfPiD{Yf?C$5ex`6~Lc_1O8X77~n1qc4{8n3og9c)FprP5-%+=Y$b0m z*avdmrcB`8Nqs8)?hiOI<0g9R4xG40hc{!;XnDs5;Qns`j$4(TeDL|?twqiy-)TD7 zol6;*NhO#paIAlvL92jvfPd`n?=PJ6!N7q7s0dY7HdrzF9ur2GFjz@J0WiEBR8j6j z@psTXe}JQ~#kyFx?FQj7=9i6p_k-aX(j#8rWOgXi2QFG`pcVDe z#`>d;-6!b#F!>~vj!IOFmeh=@Rppfe_{B%iRu4J19hs|!%xwYw-Vos12Y0-*cY5XZ}l9-wdUc@EH9slaD#1WwO=HA_5MqncVgi{fAkz)F4G~;EFF6|YX^lEM|5zjrYU2zvy)ET?{!Pg3sK2w3>*oo1*`T2wOXN0SuF0(~ zgww)W|AxYdXq|csc<-Pa!ob7}5M1g^9IIZ7cJs}x<~N!;PY}wjE;?kq0qcLadUyy4 zn7uaHb_w!q0%k))%0nRWod#mHQ*=pUVkzr;vARb_pR;QAVzI`qRpLe`N+&^kJVCQv z!swXIsb?Q-YWRBHwC5y}`x9=x6^IJvjFhM~J<-_5Xl_HQx2dSNL4)sU8}zTVEK%J9 z;A4D!Xr(AFMnAoa(QR|)g20>x&^aQ|>;?Q>13M55gKi@!NHz?LPyi3U#loCE!+}3L z!~TpW^m{YPu&}?fxnCQt7_CC+PP7v z>fc2WxUbUANnqXs~JBvd2o5i%rI9jd0S2lP6BZD|Z@^pgYu{YH^bmTgsXs`>!wqI`Vr zj;pu09`J=p8h0LOYeNh2|6^gyC#s*wJtv85+11c=IMCLDGTcB0=eO9f^4^1GwX$3_ zbcpb3Nol&8X9?hVtOAAzK<)Wk^bHJ9zaB~~{x;CfC_`h(&g%~uk4V%m!%Ts}0ndb? zPX6Pvo6w6I2AeS5;oUGEmuEXYChu)KudKD-n$-Cbw=<|SZZ$&P*EVw1O68Tz9<6p1 zAJ-ehtMu>kn?u*eto-$!8`YV7CWUQX?r9um6ROt7W*Fm*QwLx$TAqB103sl%gR9E| zBH|Z-7X{)YZkd$vx!U{XaghwG@blGV{kr~cFC@fc10d!@oohlv}?ZXmT zP@)1#w4iFTGfN4fKlZHBtL5Y065t@C0sNCw8wsK5O9>xxHb8^>Sx}*mmsciveIu6W z-)1twecs32D|37bC@sy6FWI>RELB%gSK&-^ig?{Abbxr1ZBA*Kd1-4sFJ-T8(vvUP zh#2d0&9>b~^fj)hRDJN#Ur0jMG(J2^@TA(MOWF`%luMrVw6|)fqL81tSQO>W^`Xs& zmou}ww*A}gfFI}H53ekrtd?+q&U7ZJ9uEC2z*)0U4qFX7EdjZ(*~`zY1^^^}Ij@@% zWV(ag+&$c%`IDP=+hqaSliNvyF_R?BIj!=du(o9AeWNreC1eAiw6u0*CD7`YEsslw*Ng=*q{HX-^Ty{A z%gqB(A`EddLZaKr_e4Ay`xxY}Zl&X3)!?xPjC1fPGr4*960N2;3PTo(vvFoyv=R@= z4DLWjF=ECUQT|I%QIS0ZtZo6LX1SSMumG1IG$BY?C_uw$CBq6#8r;`cK_5^K`?cE{ z>7Vg*DP;WjFgy+-5d(3g?0j3pgJBqAhw;PEh&FH$+2l*a{{2`Ia$bc3sS< zL*B&73yvAno7(lUKPec$51ed^7%_{pD@gb-{ykOyDkIa(J4X~I+XFJ^ zg2Vj^KsyE8A4v<ax0GBU@YajUoP0VqK3of2;)?fuU%l~}C&hZM<8GT9FqIhX;Tm)s(JSw`}INC|o5lg#$&=xaP2l zQ1_DkK5kDJ_vEGfxfyRAkG*aaIU~NaPQ&B@^~v#{S%+9Q=yz%MUog&cwpO*uhP&~s zUjL6tVGN9Q9U1YQLsdh`XO#de%`E5euJs(tM&PazXAjI-0npK46yPpqt9i&CWWyIG z*O@3HFv)2;bMgSL8ejt+0*p4MtDvEZQ(yulH=r@u;&IrG!+cPs;-t`x2=lgP)yMR2 zvZb9YoK?}QZ!+Gx$aeI9M^F3q@n`eMqU&z5tkeq*ykY%OY6U>`|(AA5mw7cd}=Bon)Tvof#B#R|41o^KNIv z3^6kqu}-46z4 zNO~bF_oO~PoES()D}!zt*RFr189@<>a|eB~GwChMaDAD$DnGa=#sS-; z4~6LNSvnM*Mpe?@1?L8m3ft;BqU-ww>WSXbQ7Qe-S#6_Mm#9P=xvSEsjJLKz2ON>Q zJwqci0a>r+>LY4hw$LC-rYObTj4MPfQ-@v7bX%cr{K98^a5|C06vVkbZ>9!j6CG+q zL)+2Do73CaDj49VjxVn3KxXG5XHc>VAg;|gix0RWng{@Koo8GKxekr9L;$=2Ae0w> zPv*oo&;(%1jD_ePs4g@C#D;Mp(BIfiBQz0MtJDvBg4m#&{xbLVQ70iJKtnG&4X9h* z0?jXjM-GGNo(24d5B<=c&d-#Q7rORvEE+xYv77r@so@?#<`Ur{V7g;Dxdooz+nX2OT*{rTMT8ku*i*<{&(#(UUi5yp=wi@!P65Puy1+ANnap1`?B-}P9@}2g+t3*IHEhuW4tzC=$gf~D z%=dv$;kYAk2wkC*eZx3iH>Qt_3mOX=4;&AIre26G78*3Wia3hcUtguGsyp==xSOEo z$e|Al2!;QhNnd&f58iWq6R|jH zu~_R%E)oArjzPzfb`4M>b~N(3y*mD&vv}lfq}(CVHy(+mVS-mtPBs*z*f%eqe&91i z>BkjOt_;0P@R+3-HwM5X@v0sD3TJ(3$I1jB+>hp!lyAz)9xCZ4olHnI@6*Pgw)Mtp zXcpS!>kL6WP580(ZxjB(0q1}4wqanLhRUOMbGV3xwh!88^&h9E_dA}ai# z5!(3B_;B#cHBAE#(#E&#Jc~WDKT~R*uSMG*>>V6g=+m+rD^yRUA_Jxk2Jd-5u-QYm zHwd)mVE8C4llb7`D$sOYr?q&-pT5f7qIs*~>mCb`?igo4!hxv^c&7@0FQ+RUd^M1b zf$J7T`K9+z!c=#yXH#EcRCfh`&3INdzn~!gwtr?Y$A3$ISNi{Zb^|cW{j+~?G~vX< zJsPZnBfWu+IE*xnAie6sW2Qpz9r7LBU&M)KOYH1124i94fqHVK3PPoUwTnoZeU9tF z?hIaL^Sy=3m(Ag~RmA1h-i}#phtRJS;3Mu`R(8e9#%={F2j6j_TIMc)el4tk>RMTY zBZAcdL<-HuU@IZ~L~$Ob21`hM6Nh4E@>B=7D{%&5cL%_y@Nfd{`mLvh<<0(kzJO+{Toe8=5p!>7vjSK#%&OdixFahfc%d@b(^yJh-!A9Q%Q_GPY1_E#8fRvUQxwcoEu z;oCEV8FzCUvwzc97&BX->9!K^0r8_B@z}}^vM==VVL$-PG?9t#bIr9vt5NufG zRsC`MhJYC{YDQY?f;>GUtICuTIY41H03eR4UckRY+#U=-O_-bKdJqh}jc<5UhJf3! z5b(}HXcT06FL*WY6*K@Bzc-UsBm`E43}L zamYWq#6HT9dHbH5*2z`Z^WYon5}omzCVV^0v(#i79_(Hm)XM^Kv?;57r&-Z7T#-1~ zkYTx{{|h#|8~d$s(_dWx=z$2WKXoV;USMYv;#n|_4y$3ZNBAtVz5p?}Y1bAC)PVpd zMLg;J)-`~=v2Nuuz&8rEvu+r49cK~p-YLlQ>gcf{<&htwmdFDl6Ng$U9c&7iaW(UtixA9yzsJ*Bi=~TaLamu%q@!JfMna ziI%6E4t9=y>iAU;h2Bfz0pj(PZB*`8Wv+T$=Xf*Y3uq^?@_EMLT(_M8tV1q>2DTSi zMn~pt0jK~lKm-r{3?TIaFal5q4qPVk1}ma_EDT7qjc#o?`3Tf?e&ftk*3PXEpgCp5 zXmvh*gMLe?MJ~9o%$x`J$doQ9s;5_cLTqpZs9YiBH)rruO5IT^)a-e+4RjIczSq8* z9--3u7MpZE9{mEzRi43LYrt@S{k+eeEt?c}*px`_z@t->Rymj-cI!e8%L7~SY7Tr# zK040jP1*X}FlGs|QaWpE!sB%o&3+Bhd4Z&LOF-&;rBlk=D%G0( zk;M4aIba0GCIu>hvZEaWsg?Y!wPxoC^vcqKDq82|8q=JPrL08}eX}e1jkXWzNtk8p z1-&i30d^S#;SZFt6S)O(NOJW-x0mSlN=qyuRy#^zAWK&0sw?UD(u6 z;cveQM=h{^mH+?{E%<9}83EBHeF_iWK-qd2||Ao_k zMVkAuMT`AQX*jPaFxkw;*r&%wEy}UX;Oup3iScjC5-)#daJ07~lSuTW)1iFVLaBMJ(Dles4Qr+c zk8uXHkCToZk8ANXG^BrOe>0$k@Rrl`Ho{#nW%bynsT|l=Vo~Yq;B;Zzz@HQyf@;3q z#5Xci<|;cm!aIR%wAbG}{ZeIx|4DI-_W{#S5Ti+Md~Jf11pYh=e4@JW|rG#L0U z(*ad0%9QDv6&gNlP}Sox3n)(u7D|sWrm9#jI2q3Ct<9sIetdo*VsY)vmH>FM6`F@i zi{JG2{`f;fIORh&_cXKNKzUYJ>zRb--!rk3Rv+cb(~nq4^W?i4w|AZhk^0a7kjN+W zneMV>&41E3Gh@bmLj2auMaSz;8Q?R1%wmqTXM#b**i0zw7yzH<6&Vhq#98U)?@7zj zJIsJ6_WAo`_Y5v^%xxUlW*LMGz~f`-y(-dTHm_Qc&TO-}Pv(lO@|At=e}yxb&v7d> zd1ut+8)Hx(j_SNb?fvM|jvB|%hb`*DhOXpuExR)$=4~}K%STj(<1rB-af?#A@>cgA zkMeN4s$*OPJKA?C_#5pg+RMxhgHL}uh-URU(Gs0A!22mBraVtYsE8Hg%UK7LjbxpcT?4Bp@-S?ss!?rxZT$E@b&5_-1jt&&Ufqg`K zsdP$+Qw~3^_5aZI*HLjiPq;X|NRR|4A-F9PNN{%u?iSo3xVu{*z@ow3-Q9wFu;A|Q z?y}@Je7^Ud`~LIpnbR}u&J5i()lccb(WBqT==}Y?v@Q{FHomnklwt%(hlaJh`x+`o&QWscgZR?Z3yTef1*RPg_*2W^ zsxm;yCDrV$8s7+p+1II3g(}f*P8jOIZuiL9)_BulbA8CBf!3dOmHay$`I?fCsm}>L z6cNpzF?x`~!7g9qo)5kojmp4p&lafsE&4d)iM?)o$YGIrv&Kd^Du1Dle#IKs*lB2v zd{uYLaIa~m^|O&|Usd6yq9XQ%Zan?a+}1xO1u6u%w%*~DS4Jd6g^bKF;Hci0HJ&L2 zug^p74y(KvP2!->UP5slr4A&srZ2@P>wiUTv6G%fUZ^cWUr$-!CP*5R1Mr{Asnc-kP;GDUPmc>@#Kk zd;L+SryUuhVvwL83c6Gk^owUW8 z$N5up3R@QCo6IbpA4!sf&m_uaR*K53CH{?NLdKa@DN@MQPB-^sehHcm#}eB-$l7qs za?|BP%ZTk%H^Oxux3TCrel|pY9>TpNHUkU(NzW2czu}JoRVhC=EM)~Zg`)0CvD(c< zvaWiI&h6h{Vc;V5lPSi#==rAv-Z-N_rVYQG7Z2=8YWcE=Yupw0PH^B?$onIhEzL~V z`~yW83KV;zKMv1L%V!tVRJc}-jB47~^6yIeu2wYMW05{xbKYZ^q+QT=yl0VlW{@a9 ztP+6x2a+0)RNs;iD2~hcfcZGY7d4t?g9N&hq5t|_HnSPm7MUR3kl2|9yIH9?n2Qvb z;McQ+5Z?+AcHMK|_BLxuh+d3Ov5NrMLJh3{E5UGNl$1d0@>ka0L#nBuv$Pg z1ED(ZKae|2{FNA1Kwk);Zx$ox$3#?oN^0x&Y{-X)UmkWX+~e#YegSX3EYi|m2volw z7cD=P)`ao0s1z8?Z}TBuC=> zbSXl`bWCE~qWuJ93;D<*pYx)$^U%D-ST()<`3zgZv*yU#^q3qcp=p>rU`FyLxgYn!R04fPf7TIybhiZ z7@H8K&09;?0ucvs6AV3!8+y5sp-O^o@{=np)2XAwqU-lxfHqn-=;c+P5Ff&4(9c{t zdcovqbweeyuSVgeor1RV&uxk* zGZvp&i-eB}MKTED+%*nJv(d**J4{gw*YE~bIlc4O3v>{8P-a|S1E%vkuDjxycr;PA z78Y28DdtK`uTiMd9#gi7_k`)eY&xPH8}8*gKq}|vd)q{{=b>~TT9Mv*Z!K+E!Ka6N zh}lgv3W-k)KZ5xfQ8w#I_e{uYY4JU-sp7{xV=gTs9~6^(H{G?02lt!F#QVIW$4A&Hz^NnQ3lch_U>kMX><(m(3pyccrq%UT?Nu?Oy+|z(}l8tCyBfp!m}? z`oxZ&N2#j0Jc0cMycEGqGx|dyqW?coRaxgpx_-WJtUQX0uex0sx0)968YxsuZ!guN z`GxrWd|>}}eZ%Tqhrw3vP)h{QmAk^tuYd(2!G>}3`<$^3J3PzUg1*Y?3^=P3Nroxy?xk=efRor&pf;GAZcTH9rBk#UpugD@%^~5iAhj0U`GDW5f$~S3L;pNHlS(v%!XiE55$$YFbXW$;+O#buH175zZnp%`&*?)+B#6U2^ zpOCWH_8Y*p`i_ww7UGy%z$5TxpnaNI6p$IE*)jnBxA0@5s_zIXFFMq3m#+}%XVL%# zLGR>&ld1LOPm)!~5$?YCDw*%ow9BXc`S^fEGcR`=+x5+@gP`lfD?}3xc(-9Aqg0gulQ8Dr38jJYa^h~B%Ozm^I zH{$YwM(NX!7QX#WOUs+OhL-@QsW~wcOs39gdR?5>>8Os(5UhzKa@-D&+($g2tp=*} zCQVA~!}-E>Pqh}Nu4Eqs-Hd{qv7+RXJ;RRsIPs@P50dLR?7jV$pcJ@1Tgg0IWmUCj zOH8P&7!dTXNUyUW@EpMwf7R-f_dnU^0J2wvA|*Ixkpuv!qzWnE)d=pBnc{diwHFd~ z_&d}88Ob|66z8o}B=t+?N`-d{!0haoqG@L{I?AexR%12Ko5wn7S_MEF#{-#sU#(ZpNTd)|~UDPq|W=ms&mpJ%paghJbR1Ro8}% zMbqagJ(s4U26<)q2{mt5@0!mrI!nqsi zRmET)q0{1Gy9`w#Cw_P4Rt1*5YAs-Rc6(sf9$K20y zHn@~zQ|`FlJ;{eruCp&wjqgOnZgk{3Z+~#g*qP}0Csvjg0m`3TOtOjqm@A0wT29bE z(3iZ&M@ryEDcJp`Q^1fB3|Kn73yOSTl!>@$PxzPt{MbFErdQI4eqNn2{c^eSLOC*1 z`BCgXujNcl11gbzNN`O$#8n=4p^-1Jy0wWECs1lZ5`Y9)i$xy<1}5wTeeI3*KfYy% z*CyKEzdK>l8KhHkBOR!=td*($#TlxJ!I2_=TEj$3*1`Wf#iRqqNIE-}xFJ33&CEyC{AQf%JB((JUx= z+|s_r>m(a_gy3iytnL~`8J3v@LK_hucl&O10%t1U9Y2if3OPhYULut(w1^9PeZ&@# zT%4NETzAhS(86z%6;E)5)a#yj)16jREgBb%FQYq-GROC?1(e~PYOuQZ_t#`zd@^9& z-f-UU*!oIYCLcO&etge6=aALd2`QG>lQ(?+HewI|l~0vix0TMkh{TIzQsZwulg|zH zHFLl!ww#+LrHn&EHq;ZHlc`nci=OJy$Mt@TM7wDwV(69P2*6A8-Y-f(T=L!~Mfm8T zOz*sIoTS6UOOQoswW3`7zW0CdL{D4-_kxo$)Yg=ew`J*@EHWKQUhrQJ>3y1>r^?I> z*9(=UdAUcA6v=MWDizqpAciNYGV^W|_%?nut$c%=#cP{;h}~5fG41`;jb(9y7sG8q ze1`Yk$<(#`x~&a=^ZKucmrq6orv6$#?}12}b0(d|jyWs&H;!{Zr~{B!HZZ7vFtzCM zV&2vFj=}!}jlFETkt8%h)~zEJx02U0J1R%cZC1~aLA71*s1ZKYKR`Sl&tq>)eFJN# ze>m*4GC_<3jETygRJQU&dIC;G@!>1}C1J%&w2B;^+xh(^7RE`_#3C+y! ztpKZS)^l}EYva+g4`T=d=*ULPN^YD+M%}{uRBkLr0*@K;_f!FAZsI!{DOgLb6j`1} zEL}}28w}|tZUT6=Zz~TJQ((6R0;_WK#oTznM%{WUz@7wfQ^;qHzB_B|mde=B$Us}{ zJWm>E&*deIH|C|nd$ht^-(+6>0Gxv7fF3xG*8XLb$m&PAhdMfTm8&dBITQK&Qwhsg zZ)@L!&G3nnb<3(YFO8Hpm25}1ONF5<5(rS~7s#ixd7pQXLZkLMp)>7K1P;qVffuAv z5H4Z$RL~uW4|Da^Q7*_c{*O> z$)VBN7JTDW*ShXiPv0cJ`9a0!29S&m3Lpt!V7QR%3n3a@YRuDy$1)hi`U?bEEs|D# z7KFb^&|Ihv^TEvfxTT|9Z<>;(KQwOIwTdcYBX@DbdTcQYq?C#Nf!?pSrMi@ST>BcR zDyf_7!mjn*qY0y`8@B!GbJ4>|>+|kbwf`5d-G0W58FjEjAhgmoy643YvvW9crhcGv z)Ph~~)PB}N*m$;Z%pJbyguv-r+Vu)6=bG#vU+^ennOmD~wpOk!rUU`^qt^0Gmyw^v zx%a~9LxDylHzXmY!OJ#t4VH_z0mUnvADjTskH{3s6o6eH{hA3D{U{pI-~}=kooNRd zqq2@-#C^8X4=7IYrpxwckDk;NqZO4jE@bDj?Ixb6TT0+t&37ZZO`)~BqmHy+jW6o< zLlpWTj;F_t8~=%)!HrNW&cW^r65q1nFHwp28DCsu-#K22FUbrnvY-geifISa7)AM~ z^llXSPVZWXx%{-vxReUDTF5DSdKg6(L`#|BQ`rslNIbHHI(~vTQZw?hzzX7-_(J^X zm%_f4N0N)lYTccxynY$=+X^Ze5Pi&etKME(mEzw$o8mu0GO6{qj?ppiB}jQxTZ-Up zQ?J3X8l@P>F_ zeFq{y(yhBnL3(KXSNLr@^pstsBAlS=Wa?LFIw(%Lg^M{Su)Wxl2*>OQSEXSJH5XY> z50bFFP(66U6v!Bj{0#5%-Sh;m>K|wv4&TQHSk?*z1$h-P158$87`G&k$;O2rvW?i( z&YH?;K22Gql$@~t+?7`rGWPJ%Pr&|v21294|dk1c~f~y{2zeuzd5Ci$9 zW&<82Tu7*fGY#v%7?CbbHwn>BR`jRt!p}4fL@-tlJ|lS$iPcQ#X4LGmtW`UnA$pYM zc3u0q(CVg*oVz64)ym5a3zU8BYWVP(niqK)1#mxRJ|laY;?R15mv_>Ki3=ZDZ}(~$ zqmHhCmn9&}Sl%smr-|hU_mR9;>Flh+|>S2C$i=>9Cpa$ zOu*l6@>;hOG0hq~+?zv_c#VE`+tOLyG?{|_fz&<$3Qq(+cK&gJw*yA14ovJ2KFHyU zUbuWT3EUeukIepW%jis};304{5ag$f;>xK)y+P-F>mG2IVsZcD9|%tqg&gJ_tACx5 zT+P;d(e^t=6jv@6>WNtHPJqo)Xn!ofMcJ$(bYcDy zmbC9TU=N>|K24Ddet2&ug7LG@vi5y-%__LN|q8+&B@ z_rjllIhuba)e>e(!H->&pi>|XIYdBWgWqL{W7`eU5DA7ZzZV*p`8q*BT0|kWOnY8r{m`u>h~YK}U42MS=(?ZefKGOB>y0Pd-SRQuM5=ec= znZmlF8qEJ>MSY7KNLY|6BLGzpcu1)b%RbNdUDWKsnJcXF+}99Ybo6$*4^n#XC#iaG z>h@9x%)aJpOkzXPWK1}FYtEFvc=x#eRZTs!t{t~aq2s^RRNjK*R0f=Q#tA`ZNECtG zpdaM@QWCZRF3I{fOTuRv0bBk|#bVBa0`s2;D_?_n<4pJx%JDTd2MD#==n7WCrc9U7 z;NrX~#jWz`+4?(3 zit$Reu=yF$FvDy!cdDzaIJy+Id~JvT{GU`P8kOrK7}qhO5RU$kGI~701li7_vkR36xzShmUQ}-JNDBgp}AlCnWg@f z_`Mobrr~a>eW3bx^;k?!wN3tzs<#Sp?X$otfgSr-^2ZQPbgC1Tpf)~}fw$`Zx2f0Bjr@))z@?ut~G>m8hrHb6`kB*t>)fE>O5Ds$&_vxI3&~i@Qi`W=Wr) zF_DQAOo`Yr___Szsaq-hSiGnH*ot&a_lHtOErGn~GQUID@2dEyp^l?3Ra;+ryZz1S zV$yt<9(((r0V-?&3x$I8Tpkap81a5j%iFE$H&=z+`gH5t7YoQ11@7G7koduxf9C3< zUSmDzmHMpLlw(Ho$6MC7;Qq%NwA^^ERLsj)pTF39y{MZ(h|bHJi`2WRXWpk1dDRZA zix@IaAYWHsRTF1#{8078eTQtB9)|oO5VQ_F-%pdZ%YS8nf%0lxQ+5#Ja@(f*V`7!w*39!s`*Tr|npNWZ%h)Cu zvtIT?tX^5`+A5fIMKfwr_cL|hY@2CBT`fl^5(%yX)6+kY$kk=k!m%8JYolnjgPiwy zB4Z;O(^}v(@$vMX+F{}(^G(L^GuSsQ&xW{`_$^g{yoB&qP50XHQB?Q-gzR&T^&dzz zKlne?og)EMvpKxy%;EXOnC^-y_}0Yv^2|?HU-UE^Nj?NO)GBG-(hPRV8Img38ZwDB;t#(nro#cnrjm__cKhODqoybX3k>& zV*Tw@!WviE)HmV+tw;YRNM+vqm#NI-AU$|OS)Ikt&JbOi(&WAKlzRL&$5Q8N(O&*Tv0vuV=9eZ_lUhyon_-it<{LH@9Q}$ zT@;6>)a z49*xRrvE0;_r~JkJ;83eKN~``JOUyvL`CE4l9|0>ri1{IH+#|nLr$A+EYH_cmR;hk zUR-YZH~ahh67;_A8y{Nv{w7k}6~S7H=GCh(yHf7a$c2_aM{4@^CcLl9orqGj!@gzF zll$?TP3RqVV=Q72d&DywPQEpH) zQ!pvcBo-jv2Ii$s)t{cw=Q{(cdTwVO{iy78G{%J3-UN{6zXdDn4s$uqH4?=u>dyRq zFMXr=Y+mZ|Q!vnEs{;~ptP`fbcbcs8)^ajdC(zcX<}#e^<3}wHLg>8ZXK7<#3`Z&c zj-QH|z@i~riQ@`+Rjq)W@2x-cp|?$r(GO|)Rq%21vjE&51Clb^E_FMmx#Uz{ok0Ex z^j_KM;3CGuAai+4i)U4{w%<|V6TYKrtbX6MGX3Jz(moICc>|F?j=py@KUJHc>v! z|6v4NlVP;pa`_ROQh)Its!uDGzm$H?s=SvPbM?#&vxj8m0)vS;)D|?cm;zv_&{&gn zM~JmheMFfwiz7uJ7X>hvI(`9KCwr2xVKlYx?d?$3m!kF5z7!qI!0qskr-Uny;%jf& zmyGy4lRIg>bjJX^K2N$CPKAlGdae!%u9eO4JeA;PAWYg;3Tb6DJe<@1RQMncLO{%( zQq0722!Z^Ler&D(2kP*>M3HT~H?^s7WFYnTXQOYSGap#E0$pC+8X7p#H4?C;Ig?X* z{uw+pRNMXupP}?ryD3=iIl^q5{dW?9?{aCx;;ii!2HyXocZTJpUZ3%4p?_cNlhsxy zQf0%=t%aU;?2%{Ig^(fyJo6mAY%rfG2tSq&7f5&SLuPdESy8~Tf)-iAU3%-(wQ zI{46y=A~8s4dJmHJK%9S8krCS}2yK zGaSKpSz%N5IukBK$!AQDuHh*?Ybt1Zs5k+ET^x_Wjs8=qn4w9Wu0T-1jPBMMFt6~K z;t)`J8X+6Dg&0XVTg%2Bh+J@PSI%9vcEyBYZRsq;H^{1KeLb#yx9WU(igsv+#D&=Q zfhclt?Wote&-IN12kxPy^)U)^%q^}8lOC~&`aWh-JTNJbAsU8!-4qB6KGUW3Ek2b3 zZfAa~rj3|Ke%gn`%)NV&m-ta?f{OOR^$ZU~A9mJrIy0T?CIz0ekNxePWXyKx5~EG9 zCfOg&i>nxv3Qsbwmds@Rw!e64S@eJL$n3SAzDNJY%2}&yT+%>gCu-z-YLY3ucW-iW zIyv4|<_lTR(I|HwD*raiq(XBz%Nu~#1aO-xL{=MiO?qY@01=E;FBEs2QgOA!AX&-5 zncovn$x?HpOYL&7!*nhMLxR(@%q_fh8eg;8N7;gcc(_nIpLQW%Xw41PA~lt?*hrDb zFR+GF`^HmESJ*s_-eYHuBPAU3m%dy3;Fy9+h03kjb%q(cuZW=I7f-*9ayfPQM$*z_ z78}byu@3q8w$M8{f6rM0!lveN$4h;(E(*bUtrgSWK}FjwP4Tf!C<~jb?JQ@Ow=6GS ze%FQA-jP+Va*=p*n_^(uV+W0n`T`u>FHFbu=!~X#_B+8f+z`h2qI(oE8wUSzsp-A% z*wbhH0i%B5m|wp0)A`wVM)OM7-!+LmZRIsA$r^|$XR7Pe_*Tfr-89VD{P8I6J&y@T zwVqNbn0@E0s^RU{L&Gv}_R^S;K4-2Fu)@-nQV3Hl;B*89lw4Y6%zE3{g)#>y^x8FEg<`_Q z+BL2a(Aly!k$7ax#$Py+%bb?p6J`3qmjqi%xwU+-H`YDPp~}iuZdAh$b}i<=$I4O1 zVrp01j82#=Ps?weSkrFEzK! z8+wFSJ!35WyPkoWPaAhhFnv>@hkS+vuTU37YaMKR@eOKXaeR{rmvfr5Ii!k$6k z@62o_OcK}83qZVmJBBdRzDD45?hO90Uj$Xa{_qhgTU?N7F{Q<#Iz7IGOWVVMRyn8| z<}NvZB8tCrY*1CNsFpUT3ZA~pb^AQYP+*@5rH$r8O7yKOu$aV1yJKDrX)Ln9Y|Yt! z(ya2vT0_U3>&ktU0XDxd;Fyc8W)x3hNDgHx1I>^`b%W5Zn)0~;Wjg9~rzb+5$gMbt zgfcpSrVE4kEe`!37zFpUix4sVK>p`w+Ai2M;ubNLs@y*J9>^lk4w*VWvmB$#--Gp< zLm+*W;O@*4FRE-((TW9TytDiI>2BWBZ6~xEm=*mSro_(yv{W8+pVyzN)_4~=pTbw= zl)+(|~2VRL~-#Hd*5}NX)coZ%{(y5K;NLkHF63*c3rhsk^2XN zVLNr5#$Fu(ubbSAG2*B}Pex2a?8OCe;`fhn6jCXCsv(pRgS!NtpSHL#dWuhLxMJle zT5ump77K;{ME31dGW?h+COzdm!K&XwU)FHE@IrSvh|MHZFph+unCjnQ{&@q={FXT` zD;jg;?THJ#03TG=J~+*^zJO8b%^@Hs3V5tEcfTV4!s|+q=Hs} zEF9NNa{)jGDBN(gEp+v*09;P>7CpEC(2Gt2-1u57)2 z89_kw1>n`Tfeg(*r%C^YxNTEH2VHB;U2A~N79g(%IC1NMt+okR0SpegMhpHlQn+l- z_MZ=S3<>{PCoxqy-;Y)8#U!Qne1$c^j!q*me0C!ra`dI_@%Gp^E?Jxp@T-UD3%Gsl znAtlIv*9dfp_{7GQiFelL$T=#`>^?S?;S8!V)e<+sZ``t*@`+ z4l(OD^eH`&rkP^Zcl5d4nhdyNzOVZ2Z`g=X|<||f(3@3(&3Gm z*jp6&OkmB-ZqBd*|KudruDT*uHcrz>Jm=`SkIwOAx<4~kcLpuu4L{8P$v~CGW#=qZ zXdawj94T3OqZ$Kaz?!`xyEJEy%OYKctI?DO7l82?dUlRArtg!DDqFkB@wBLxHXmLq z|pMZ)f6$>1$xOvFf0l<qI!^nX?TTLdA&z{0@5f^I1v8XveT>ohxGikxh(RvjGBHJnmKgpIl-5yv?cj$Wm6Z%WgQSwy6<0pdQhK8ZLB0Px;EaLTnrw4`B(fhWBZ71~AlL#||A4XllF*LaD`=fAB`6}L5SK;HO6qC-mn07T z23Gx=vN#$BPbR&BN-`*a|Ji%pXX3dxUBuo_{Ht|-vAlvGTtpX<&B<+K;-(EW?7{!n zILe=4LGuGwFSVs%|hE{fH7l+fe9G=B0NUgrMnB-+ zHICv$EoNxbt+Jfvmd3s-JDrUxMLK8c!u+D}5A;=XoVNgJ#v`3xtdK_f`$Y#9TO;kz z7e5&n6ZFdlimu0eIuWzK%q-J}+^EDc3BgntQCJZuWVsF0pSb-M+mL;!yfWzQdHAE& zskHnUsmTgJ#4&lVwCEeEvrsNlC(>A76T;qnir_~G!4D5nNP6KE zi&^(vD>6$*as3U2&-Nfr;hRE{xnH_T%>JR*aMNb~ zMTd&h90C!Qzr0FI8xj4`6^mkX_@tw=b1}Pq1g#54<;_$LJA=DepszfdmVSG*<;5Hv#zIpn5}?cQXbKvZFxcKI_5~AKo~LNAO75VPt_<@BjluRUOZxh+)_Sd zxM^REir_=R?MR3-FNx5x0cO{96ccR$wYcI+;5DM+_&E@~iXPDhGof0q>&J&!wC+ep z9H0pP$tlN}F}u$feBN~)fth_tAFxEugBG*?_FKp~Wigfq9QNPc#qewfe_&Waf;0hc zxzDV+(J}7jWabW!j11hN&lMIt^oYA5Dz80{+60U2JNxPrKbTn%;zk!GpFhDOu`Gjv zYnh&-oqTS3ZqS8Jot!b)h>@}ayJm9vv9|FdB0|I3HUJrem8?8rtf({jx2rUM4ecvDNE6V|& z$j)FJQPsL{_{d2{&nzGMG^hR}LR7AcA|YC!J!uG58u&Lwe+YiucXAi8?FLuGi{v9) z#d|%~n8V*_2$}6lRoiyxSa1P3NThy3gfYlR`%|~ny@QaR zY>kg+G&I7z5dV&lg5@UY2=|T+3GPSi7SD3#{xwto3D%eq1zh0dzQhvLe|O%5rY4l# zwRLH9-;zr&Yg13+X$^=ya`8W)x#M1$on1CM zB((h_M?L8iz3fEc#GTL(GBJfU5wfYt6xhgdLxhbbwz>|?kRa+%fae2fPA2)Q`*&9x zqELwCay+7bxlm!P{}P(1liOItPlQK?n8kihhx;?0kjp7Uve2SC+jbU9uifmhGn&e8 z-4g}|JW-735wns;hpmL8Ck;tR zZ*9!bs6Pd{k`*FT% zBXDCfs(`vE;w{Lel;ZL&Ukh`o*?LSrDAGM~2qPmt5jt2aI%sVf5sLzX-8C@|d^RFF zEpc&)YFJ@1@{H)IL^hhHsi@ZaXch%9DK48NDPklk-U#9|hEsedBBJ1wRISGhSCY6U zO0=`K)SRs^x8y&&R#C#o=jP=)MeaG&CXS^sgLh`>9N!?SZJ@+kKA3FaUYT)fbT<1X zlCc~-s25LB`rmaxQ6l|YlA;;^O~V+|#FQ8Nl64CY@a>sbGPvzk+Q!2%FXMcH0f$oB zdY5EGg5C_plca|jymI3HJ^1)AL}{Em*a%c^L93^Jfv%hw5JEWAE;@lpio|!zK&Ah; zMgLTql%yz?QUz+NIUAQx1IPq8f{H5={{T$@0+?=SWM_|Rdql}^a&6e`+K5HkkCEKu zB`b;qky;c`VJ}V)C_Wd#DK;{6_UXPy!Y3th{|9<&BsD|%^z)D~10iZ!lEV7LnUO%B zn8FS8cHhj7i^)*wN5cH#;M6-yrLM*e3k)7?{DABn3eR#(x#}j5Zc$Zp4j1Xxb z#7#sD!k8?A6BaHGz{by*T{guVvrRd*mT=LJ7|C@ZNJP**h$!|=v0j|5g(__S;O?-e z=p{E`M2E|3;sqhXWu0+`bP~IY{axePc_hJH9;^pvY26TM+wKu8)b3?&KL}suHk+*N zFIhMC07_=N<=ZGgHd)cgVO%7L<{*I6cb+ql2!^OBhis-ZEY)O5Y zOLl!xjFxR{J)h=m6Sroh-_%CKlJ7~d@Kr3$Nk19)WN#pdNtL$h5g?4`S4IE>fO(k zfLV{C(0w;J;b3q+_M!<3qU^yoL381Q<8$_d(G~BXv-IPuqy(8{k%hDSflFbRXYUTV zV-%&ynMzO1Zr8zIa<6)*0o=K9-0SZs)Vk4jiXkrJCftqNL(;+sCo-Yo&+#A31GWpqx!Fm2YQ#<<(F)Ag1hUC5K&!du_dt&F3 zZR!5w5|wshyLL0P@o+4aOyXe7UE7K0>H{-mjY_%ImBIcu$JGO|n5*R~&nkcqrem4x zUJqA$345e1>Jk|dE$r0xJiytgYlAZl;*l-z>{&o2$-**rHrx`3DmvxKK5Pw|0#O^?+*n1 z7p=Agujjq@;h^h%q%8Ik2;01GXLv2BA+JY3vC0v(MHJ4-xG6}RM<$g&vH1GHfgZ8b z0A)&WZw~ITTaIkSmhDIe zcyNPe2|4XH`(6`v9lQc8JdFw#WpfK4u4V>L%~|V)HPLQK+Sy|IupLQCK#j_oBBJlN zE?VWWd(WRGeK_a;U(-vpBe5jSDOxCEuJiML=OJ!dy3xCMfD#%hn|~+fQ!1jkT@aNS zSt6j5{3oUUi)Y{e$!h>O0=_%f??Nrr9+tZU8uoWrJDI_A^$xIGV4Ll059`O8?Lp7A z|2=y^Tg%o^p9TOioG-bw%OpE&*H^xt+*VAFB`sZ|U2)Q|v~@AI9r+E>d$rgj^?!{& z1Jtzb3^?z9f4(B9uc2@Q9+B`PJ7l=*ovB^$IQfGQ|S zGR&Ysz*!(n%%TWO&7|orip0VTwEKe^k8}yI(N~Oly!bP^XeiE=OF(uN{(&O=# z+UoX7aRX8RC*>^87fySC+Y)&(U+HN8ToekIvqMC$bnV0RoIPTUJu7DV3|J+~lF2xX ztiY^dsqDVgS{IvFoqjccug~R_^1ny<|B6_CuLXzi0ETKTG%R`ebRFUoC&!7pTC_?6fQnS@4L7dGdhr@Xm5CjSj6z`26kk(TDSrr1=!V^ zjQ(FNqWqsanam@r7SpHx>IwTV@7+LT(g9$iOSE9bjrvGJ1n?Pe6Nu#nFb9vg4K4_E;}8%!m6D*xF#+`L|0v5?Hr)v-SzqvD>9LbthdU z836ZTO$5i)#k`sWV6gHSV_lyYBOUaL8tn6=QN;`q3mtyK#N4Q@oYkoQ_ZRbe#J4L- zB3`tw;>s&k1UxI4*hoEsl>4N;w?5V54xAu#NDFYQ6U$e%_0*huJrU?(mg*8R(l>Aa zyDZ)UPjRGQ&{deCc|DJx4 zS95p7~2F(5oZlVA1Ppzr?(HUI$ymr=jx zf4i<=v@hy_VG;s;JSN!x74G5(1)nzR3n6<10iWP<+6js}RxaJC_lUDGy79--(=pIX zOdu3Mcsx;U*8Z0Y(BFTfqKWwvZyU;%+jEYs>nQ^eicI^ea{v;UtJddR{HA=G2A|k2 z@=%^K@`zg!b1MbmR_B56K_cSoOg!dfMVT`IGN2)ftsO5t#apy@f0P)IeU_w@0ZbGj zZm&gKZuNUXn8%&`7ai4lZHD4Ugnarzip1V{b19`_uXo3qlJr=T6dir-qYV#|4C4Yy zP;N=u$@mhzeCvkQRPPUJ50u?da-C`T{FjumTiK3khIu6LQ()q^j#1j#4ymWX`=A_@ zGAMN}bO_*nOWglBD2P0HSGiW1{|^+Tmy0Q;M`)CL!i!e;{PiAT+coIcYN2L#H1R*v zggqGZ;P7gsrB_FWMmx@n*S0W1C`JaK#2-Z3-a*&>a9C>ZgRiFB4e()IQ926!RWR0E zk1;VR5+Cd85-<9`9UEVfVWMKmABw9L4nYHej18cWpJ>Sff*}!3ve85zkF+){mBz>kr3(6fki$)Hg!FxA4=+9)QJSHfw6?t>sf%r z>P!BCXk(5vmEv_Ee_ZJ)y67E0uBP^yO z1{oG9qo9EulLDNOJ~^`=*wEg;^Z$4u;RFEp;+5iDgB}!lLp5rU(i}Z#K7U*@+uUc( zxf%$iOo#}@KEC%6Wr(s~_l^l&R*s0oT1c~i)>M8|Gw2V>iRGyER}xdi6EIgkJwZbk z7B$WL9<Z-%H)AFnJQSbAq;HLOjl9k2#&?=-R)-@Fv?OH8&7hSgik|J#S~q6xGVgC>Hs*7G zp8v6Q3)Nx{#nkjk_9-(GK2>@kxM$W)teL5%kCAY2x%QHz|5?tND}E5F2QI13sh7zX zP_4eCBREz~{Ii7hQE8mGXr?LLR5{FAJuXr)T8e7wup zw?wPV!B5Py#qsByJbJJ(bv&C z4Qc!6kSTXlA;n;N%zcKBeK_Hv_~?_R^PZtpI{Rx(eSy^OY9?KrZd`xh%%gW@ji#Ph zyn`C;uQ@gx%}*OX;}sqZ4hz!t(1S;x@y>@&ZJ*lbu2mCjZ|f}$PgLV;vF~In#OlpD zY>ldOGHXk#pvVVWEP>jgp|cNPD(x0z-H)HfkF!T_!lt z!KcaBVx9`1*`IE!*RH#%{h2tv`OQn3fH@PVqwt`Q(tE~RxTd#1BjT<0t<7_qeK|)t zorfa71(pg)i}lsnQ0U6X+8uir-Tl=_1d0a1y*8_I{Ds8dgf4~_ zv&CsxIpd2pbI8qF1ak%PHarXClWWzh?HR#+wxyzx0R+a%nk_v-@bFl zS&fT95q(hUXC`? zTyb+!Bo(BTGgvc7IYCJnUOdn@KW$My8kIkmDCV*FL{w(w*?*pG#`ZY29yEejYJOz< zm=|q%iV;YL^!2sSq*M4+2ON=8NJNv9nT14SVo`{YQ;3$3i-crOv)?C-bYx^Adwi}_ zt{;yt2#WWHbBdO#Z_E+vsi~{`=5A$gXiU~_K||-ehKgzvcS{E`v?c@Jx1EnF9$jWSMq$kwur^oF1u2K!+aRx&n zWM;3t7oXpJbKZ-sJ<_t&od1h$BdPUK_eO|5n3*$TA_yh|v?6;}3AGZYGop3HZS~G5ZiXu3UsH>m{5h7z(QySSh8*LI%jDkr^k=5m-MbHj4NNjP9)+-HdrU!S6i@KvVTrDIekq`O>tiI z*sF)0?d?hZWkM#Ok$%lrOK=a@aVtyC+Sv-6DxTbK@;uxGj)m9H=W|Dp>aU7IY%^^Q zRG%J+MO9GZjnq)>AeU{8g`dVi4bvQYepVT5*5SiJk+EiR8 zVHBmlEu{T=ZeCI2Y5C0~U0WQa!leEyWoDwQYL}ksJnq#dx@#meT6-Z5%N@mYwMfUr zl=-WAG>^qHK*2;HgbNu+-L&#Du&IlC$EWB8eqpG}_@d5Z4q7A=b?x8kU;+h5ggv>z zs6AF=O4Ae(^As(ug4UP{hh)YPWr$?3Bvy&#Mp)K2Z!g8qI)qEvLX`P6SJJ6)sC!p=GPcNx)mu0}e$&F_5+ewapln zgc*Pq(_x zYET(v&Qnv$Vq^H7C&ZGoYJsSboL(&nh0ax}Xxj%G1Y|TpoY(>|chnYCU0MZPFB;Dc zzB7bBka~4J8f3uRM)1PXQqjo-RCqj8C||UFl~FXfYy@18Xv($jqv+{i)tu6oNw2@`BhIdnn1Djo%nt3&6aP%WH09M~G0=28ix zd!`&9Yph1astVdo{Xc>@p@r}NJCqlwc4lY}+5VRj{&4z^pIoGUqXH2I3wTSh%-X-jVRev7p?1?UfHnuiQIs>=xj;}9?Er~+ zb2Z8ln}JB7BS3yGLaF?O{YEJg-Is|l6mAO7wJH~lr#w^#8R7`*JY1tPBM4Fb6DA

zjY`&o_n^#e7shDv5~_HD_f0I@(KvI1M3+)QYh0#Z!VR?PFiJb22Pv@01B?G)=D z$tgGsWuoN#-=e6>`I2ZnXqZ&APn+OooFVddqttxUaFK`9{MMsY9J&;TUe!gfN)cNC z4*rDAf|~p!d6U-2Yb?uK0A{nG2(G4oCJ6pLRRB`a-UzjWX2+>-#Le?d_xj`cJwlP9 zxp&f06W4gci=AgPfoX&*?@zjo`w=|-IU7iC$Tjrn3^8@Y9?QlL&MbaZGq4k2>f%h) zm=$9QTw2mo=W=D%ur6iRDxIzPe_W$#ZlsgjV72oqBq+=xNp;iS$_CPteOM-^)!td- zDZj!xD|wk3BG#KE4S5dN9{&QaWnhrl2y5ViKsZoPZKKq0s$*7!;|kcciQ9eB=A~1E z`x3K27hVYZ5EDTVg2!4#Z2y*Hp;_Y8UjtYchMKP?_m7M~iA1!I(l!s8T*V zZ>pvm=?YV<$D6fMMryO|Ks1nic*wIQYe)txkSC{c)bd>m?<^Gha$cgp7$0Lm9R2;e zv1Kng1j~O(m~hbDr^xodMXX_&tf3MX)r=IEg?#|2v8gREvMd2@M^KK_fs0is!(a^8 z)U$X%|A^H9w*No_@+!arsy{+4^X34eRf>ho0yqx_81x}aNmE1)l?$7E()bdT+q~5e zq)U;PkCqif!WR2+Moes@oMF5F#ZIYP*CK&$MJWZ-tfWWps!u9%lRFxL#i3X$8<0$d zf4u2CCbB7RjG{=XggQAkw5ngypsVwSXpCZwl}2?PgEFUn36XaTZupiX>Rk;MTo6=2 z8Ve?cq`ibgK<$JyQpDMWLu^}!LQoX}my;1ZNG6EG(KuSjb;m=MoK}t6#N=4yHQffV zeCyao(Y~#N5%B6T*jXe~@qcY1^zGjdqYoZUA4o(hI?%1LJ;MKCR_{hkE&CnyF<XVFyUj);vNX>g?)-tRqj7d!~ z3olY-RI%$@+knLp1Zez+5D|e4jS6a@+&ix=X8qgHQttY3V+OI`GU0{QcqMP|?8ISZUe8Ju%?p1jW-)ZiNA1 zhni~ReQ6-Er0Mt+(dsk(W-o4^=T7=&cFktzZ>nLI{m;((p8~hQ%zz6GKkZ5N36@#? z$n?AU zH;(#KpJR=H zVq8pA#j&XFxtuQ+vmHGmaT6a-`rp4lCOB(x27^6T(2@T>;F(5ZU_^NEuMqzq+q85E zTvn-DwQ;$8Tn>qf598`!Qe)fjb%yZkysnXXQRRPAPnRl$^T1mTc7^v#1%4hs)%K-| zwSt$rCnAyddc(~_B23by5|$;heq%K=%GsK~f|*b$Pd{Q8g9*~FPvK~IN6xibb=8rP zXI#F;sG-{%*`kGP9jq13JB`eS@7SOfAB9ioJ`%tB?1mk~AqyZibA2eVx3}V`mCP_nRs`aN@Y&5^h+4N8mx{;nJ0u^K}I-q0Y?W zthZfTrIq3Z13KeY-)qAVy^Eoz)ItSeM-n5JX&yC(Kf_;06F|y-o@ROgd)ypvXEUYf z^qVSQ(-k4rCw7CW_J|PaZ#9{g=M2l5r10fvO&5gg$>!E9DOn=Jvzs(*+dubAGU~_l zrk0~!zWzmG>OXntBtAH?h;e)K^v%;$@r7%W0=vm;rX$&p~G2>kE7>K-%)DXqPC=ph)CJyEMxdWNXDipsK>9% zwq6-fj?VUuI~r-D{@_@fZD6w16#bXAFfG#>stdwFqLBgCHHX@s=~82j^pX~=TACt~ zb;r(%KDHDfda>&s+olsh(2ILDs-X>qJz94U|E3yw>G$pOu6iARINdbEqt2iQV!>)h zLa!KvKf8I`b^D3)-fV_)_-V^qf-8qUtSV3;@P}vAGk?$&l84Q+3^D514r@#jz0 zGz9Ns5&ZOn#Ek}DrJ0jntweoTHhzrQ;7wx?_R6@>ANMKn8CBdq2EqrUs*tb~m|?EGXF+ z7H;N4q2r=MRn~E$UNo&a`>vRtv&R%~Pr2-K-EUUV8++Oi8goQS@0lD!qW5c$=iDDL zxQKnpLu-~Q{Z;q-n1vgz^CZ$8ks0TQGhDrsbtGvht6zj|-+w>jnFzT!oNhLNte?Na zecynCY>8!6tyBv(9{<74xX<%moh7lFm1=`uX^r|E3j2mu`}05yLn~8|7gpJ1eJ#JY z*|%xA#F#!fLo0$zWf-(Uqu%Z#pwA|iHFgqvLl}-1@yeuYyL;R%Mn|!s-B0Q5*yTgm zT`Iq$51iRP;vWpg z$k-KbYUa}^W!5i*u5v3iTP5X_^t3j0Osd|^NOTABJJ=Ik4%nl)v@N(rOk&Iq1&KlImLu&gU}z8ceOn1Z~roH&@R1(F>u%xbELx%(S*qeG$hN z`tj{&P9!$q^d4=E3AG;zn=8WD^ku7rQ6JG+H|C;y_+j~gaQmw0eV)_$gpk)>A%d)` zpAw@_{U}vvAe972e{>^i5j8Qvn4CB^y|DXE~@6RfrG8)e@61bEI z7Yx`hyyf-07)9S66d+iOaA?7}8Ip)O3%D^&44P<#?!eTh9V$xPFsh1$Sq9GqG9a)u zNIlf69O{O4azt%w-<5_eZp*oL^)6+0Y69;yGN{v6An zTet7IzGz6?I>D$T$2N1QJi}{PNq@QG$}ZDY0p$#C0@q+FKIY9xwg?X#=HU4oQjGX%tBs`Co!U_zl$sFU;?PlfYsNX_}Y(+?A~nQhfeB`OLsj2D{(1u@W)qO#Pe(T&!vu20TzBCw5<&f=xb z9XCFuEOyAPb;xbrO!NMp=AAOEu<>C_J>yh#So3faOzWXgp_Zq@gjWz%15IsSsD0=7 zZDoU}chqLj-j)vFCFq>K!GrPnSw;gp<;e&Yt8$fdnkz{%x zT@h-pmx6*7Tur)kE;{(|ktvqQUraGIUK#aH5q6-i$)LKXH`6Xx^SXn%KeAL4d)9{} ztPRm*GScLwYtvDwrlY4hHg2Ws4tb1}$MD>9*bWl-LU$V9c;f8z6;eM7>?rKYqlsa4 z+GYC$Vcwz5Mr8*os?@ft0-|PTZ=Uo*c}%lcA6f|+3IG$Jl-WfvH)d*=tSg>%SNw@n z`6?te@mB}3a~!Gwf&}8*6ETc?2DjJCysY-4D0BH&u~M`I(|OyZBT5#jhhVUVH@3~) z(zIWd^;0W*jt#7n7}^{aw|TK-_*3mi1opkGj{)TPH1G4e8|t(>>W3fpP*Dw6s?=(a z2+1iiGYWQQ)lF&WhYB6N!&~vo!Ij>UG|6Nd7fO%oqBH z@rq}ap4nYIo&+bepE}3Gu9+$qan_#PIChwsvq+0ARMJiO&Y~Rgw($dC7I`Vi;u&{d3%D$9XicO78E@f_L%Folv~(W7+Rsm3{*+W_GV} z)c$>446oU8{ZRt|3#dxyd=TLyEyRttnkE`j&)461@{Ch5!<1X9cI-%EUKceiS3U7i zFguC*TZYYv6V-|9{v=zU>((Zrb|-u`cx_IyNanfcAenQ&=e9Qt<(Bk8uED5K?He@M zzaA?)2|}c%KZv%wOvcF_UqpOrX`1z(X7^{O>10UcT`{JQRGMyvl{%_Fmk~g4%W8>e zuwlOw(#&O?&U-TLeQYZ)`X%4zd12c|BS-5YQ{CTgZ2)EBr7aK!M?ZhNyhj7xV%#)l zND3Kudyl0ny!d*dyTGzg`E#M!>-pYd%PJeL>p>5y%(PGUW}C#kKixY7yp^N4xXTA4 z-+vlSALjdOjoBY~r#Ne2YH_#bra(VE77J4Vo-!Kn~8)3g+}!Y}TbPAo_)b z6a8?rUrFy&9;vUioHpX{UPa{m)CE*WNGfeEwNUN&UA7WcgXSR0%~p)$>WGz|*;` zo?ofoy}x;;jzSS7_1$~q*R>w!pQAN*t;^dtZFh|zY(OB1%qD932qT8gpI)-;E3do} z#=rz5zzTy=DJdO6*pxIdq|?RnY%KJGTat_SZubU3z->C_^ZIsQtSCUQ;H;(CmET~H|4g=Qb$40b;^D)iY{=mY3B zE5Vr{GzCAb_7(uBe=9WGfItsSPgGFTF9Mx!pos_IFPrNThy}n}=zDV(LCvb=8H)`v8msXK$qeCwk{LjlKX z#_!jakH~y8wH@-rJvSbo<{G>Ybtluwpf7=f9I$L~cC`(3D({~-?U>(rk~=C(^L?lLK)c^S>c?f6F~V;;Zq}W6vYZBo65}X0l8NlLSFxZF(o0z3Um&d z1+;Sv0P^3B1BwNQfq}dp4*@xWg;-8bkq*ZRgkDh6dv@yx;z?GP!imeph`3)v?mF5y zAsxrg1e@@U^W$(yU_)q9hz4D&1=N)GJL&hw(=1J;^&e2njz1`|SAkPev6vP;B5T0L zyLCz1m&xy(1?rueyZu7;CQ8}({|36E$P1Dhq%>z>94(Oe@v$OQaCX~Sy$lu7EaDng zj?R3Z#d!EfMc{%{O(9x6f@#vzjm^@afl}DaXa-krI)g6G+ugsR5&Jj#DRDKfE$u={cE>@!za_Nl>X=>Pg^WRjL zlD#iF&(nOlT!3q-NFbZr_@3#ITMdi{;}|G7?}lg!jtvD0AhO>ED9`SC40(fF5XFxG zCV&rXm#hO6^P5Uua7}@KLT1-g9{bXCw`oVVxEt5(_hZl0&$cc9{B?a&j@x_Ec+J|_ z6tn5f{$aA8%zhUYIigC|G$zLMwA@3{K*7Ku%}4x*9g@VLuPVci6__fIx0-+Md&x*a z*kiTqu6|s$ix=PheZ1jIUY@hJpm79bpxHy9gGr@~Nh}NPRgSvic9D<5|EB+-{Vu8k z&tMW0?Mn02-X*X_Q6&KLfE-YP5eVm zCdE$voD|*=Pg|70RMo3Wh0N1oB`j^t8qK=GyN=D@KHZ8*T4j5>)RC8`JW|}Ez(jLY zG~x!!Oj$hGo9d=mQ~vo0)i)}$sdJ;>#_i2Hk&5(N;kC6_T867HmiTE!uSdzWa`3;xl(Iwf3o_dTz8r3NG)x*Q?vC87FKMLq|*8N@UuFoewdrR~5xe4>1kN z*zT{LxbdZe%LSip8dkg#cfpEuO|n$p_FXJhOt`z=oa)~Sew%5T{uV_p0=5j{{y!H? zw6X%?|4Bnunkv+y<#THi#rwj1_*t3^J&=#8BbUV zudojcl3CYjaQa@RD>O<#nR4@HF4ej4uf~b5-APkhnfFcT;T=fPe1;m_v{}VAat0B_L8w?OJSIiE>|B?I^VN!|5)n_Urvp}pmTa$y z&o10e-;IT5_z-3u(p%ao1jc+HOSNybTz{uX?teO@`a*H_l4HH_@#*~IN*?Vf++g(GQUpCb_*jM9`pSC-o4vWqRROtqe|2=CRSN1 z{*Al#t?mm27u*$BRY>l}DK=J*&3j{{ztf%(?ye?D8wJNyVL4;Ipek zss53(E}6f4vm!6n=%^Na?YQCFw63)%<&LS^Bk*#D;D!j#*9CyQX5wKY`ihEhB z-ifJ=91(l;=Jvx8zUB2Xe5(FO9=uNcqy*-1-$2xRt-xHtAvgGf>Z(l~`cz*M`vUGe zEZ5cH<||D4oKu9Gx#(hbOj04YY;uu&tfXD?n@mx+N0Xm8OxomAmLhjc7^9x`lY;t5 zcj<0fe9J$!{)GLi1SgYohOQ2`Nzs?deq(nb%R)YtsNL60_)ZL6qF!64>an

nmt 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 Z*o<|@iiUD0@ViZ!y-e!ge^dP)_#YC) literal 0 HcmV?d00001 diff --git a/img/archive.png b/img/archive.png new file mode 100644 index 0000000000000000000000000000000000000000..bbebbbfd3f7b04bcc24c926665d12e494f5aea78 GIT binary patch literal 331748 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

HId-=9jfO}7G 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 z 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ⅇt(pjNVy5m((hH? zhSQ&OzR8&%p#$whPFJ={#>AI*dq&eLGUQfQS8p^%UO;SeH>W?HoH<>g@_}84Nk;u% zL|7=oDtA2$%K~M){iR9RD1LHWM-#bj{ry;u15pyU_><^83col3I~`2SKFRX5Zbg)g zZXf*Zzl23{DZJ+(od6w9+zSF09ZW-*`-$1YmcO%``wBd;5N3Q*t7Z$P1hD| zhgc6w|6^NPADX1Sm3;cL2_bj;5!eZ0TP;vt?6^^C$-DfJc=Vto%} z$HnsXK&ym(;rtEtHHKDw*MZi+`4m!ZQbARWy*MRdDs^)35p^)o) z6eRL)gLZTMxsnXxj7#lt?4{k%6zGcUhqq{h9Sl!+V^ayF4wLIo5IHc)P-uWn9RVEU z(FWXJHS6*2tEar$(nH(23Yrkdo*NA@!&xD8-+yf) z@`n5;V7@#g1a5rMRHv!M7<63MYQzrx$Gug+oOQd^@bK`A-u~s;fbFo|6flL@`5`PU zEGEEr19PnLLS$on4OMEnEV)Ai8dp%)_p`ZxFK%ftfr3O%?u(!P$ka#DTwFn;qq$Jb zAzN$wnJ}1eR2D759Q%NxKs@#8y8>9M^eu1Oj;RjE-X*NbkWpd1?Xd?tQgE!57U zU@?P@6Lv`@`U9adYd0EyG7N6Sbj;v8Jsf&RaKa8&CGP;hw;B~Lmym8Kyaut$R60Kp zH8rs-%n1$=K?}!CwKZ`=ITq*z;!su!lQBf%`7t@~3758>WbPrHi;7p4)}G*!?d)LB zcGHLVNnlo_u@zhu58%6m;WRtDB+t(O)_6PFaKX1L9KR9s^K6DBU8$bn_d9WQW#tzG z@DUzbb<-yoGmB0yv1)Q!sqhMNh%iNXO0;mo`8%O)r_Tn{UZtCrrd9L*n6BIki?QfN8CWKAlMna*c??+5doQZ{rDDcz#M1C)AAySoWi1%rs{s!{4`cS=1c;p zh_@d=X>9!O=ZCi+8mt*{dOlBLG8k)fC&#dp`^`1$WL4{?;G)leQv>GZ?x|luW3;?J zfW}>0TX-hIrP}-UWNEf_hwDkzCsT*Tvvd{T7XCQ8+s*8(O6#D`!5pyXxwyn(tnH}+ z|Ego=qxihe_8`^V!RbBLFt(n*XJGtFvsW6KO9?Y57gl6VO|x0$xT9 zT?3yy=im7h*UiTHTD7-g#a{oh@2lq>DA(aECBfJWXBub3?o`^8+;fFV<2ua0Dwf3! zs=cfFEm88+TP*7WbLo~{rXz#5x6A7EOYb893&SDe=yO|`V)_yA=kF1qM>_&OGca3V z1&Drl;-a&&qp$06f@J-KFR2fV!Tt-f^}aANw=rdh;^5o$pI9{Lb?dCQqP4%GZLmRa zT)}ytXPh~Nj*<8AHOgx}ZNyyMFUuKAF@Tkpsq&co#Fr~_=iKm*FWp;NU0YlA9x)n`;DLLljTiv*jxDglwhWfdrooUyi`F`f{--+T zknn=krwR6iJpg@T|DoN`u&~Vko=xYldGhefz6-}H#pI;6c|}1kiF_CU+3{RZMNCP$ z;R2ss=e%_zEM+4REX?2~QK&^fHPCc~B;SY;+-1U=n>zT{!yb>m^?&OORNt3(=K)t| z^5Vsd&IZD)T#npZ+uXx?+UeY6iPJn^Fi$b(Uws0TreidoD8NkncI zUx^G|+k7BSVnHL3Ka<-!xK9a6=aObbo-4?dXBXM0md!acAtqxu_{>~IJWokwTR1Rn@A)nyH>aIfLXHZdB<*;zI(k%&Uaf zg!G$?N{^TdyLaoeajB>A$9+kwEbkg_I|ySIkL$+h(FSELF7qakXJ(3>&+o@O8|v0! z(E}^$!VJL8t!u?guk27_7{Aca{9$DZEHS0HJLr?S-*o4GDmsXa)S4zY#_IwfOa6KvX$C| zTMB}6e#3)&o#ajcl5RlP8v^Ira&Gu3`Od!k=C~7b;}$I-dbb6lj=5u8Yfo{F%1xRJ zFoVi08pz!)Xl!k;JdS_;z?M@oaHd_Q_W7cqO#?Zvptd3cu@QyWOw*WNCyT&V&-7nP}W0~N>|8l%)Q zw#lUZvC8}^d-rYe_UG(aA-Hsb!Vc|}?2dnkd#zyR2y%6bSF0OMksN4h{K<2iJAIf;Xn8y0sQck?Y z8tt|h;cY7)<9!*C{IJo|^9Xoy#_J@6mh@-o>*F)Rz#Ha!jtIC_z{(O<=KAia&kXDIr zoxf^WHsc7{l4(}mO}s9GugUndY=jkMp4*ONxY0V9l$#YvY)_xo5#`T@oUSFChO>B| zSt%)QPFZ+b3>&Zl%qgcfv&#+i>n^cDAHCr+ZCD=FzmVJAn_33L>LqJOU7Pac&m573 zEm`|Srzcvqoysmw#e*=1(MlS=0g)WYrIJ>6*xdZWRt_Cq{qSw*IvTRkDjXJ`@@^%# zRb`ZlP*W@SxPnOW=rechVsC^O1!W2iT5+TKaW{zYxvfil`ob{5%P&zu6M|;4H{)h_ zxRlUHa9d4~6t%&Wj_7E&cQN)8{L_B?13M_n>G>aCc&uBxvGC9|bM9IPY-MHI|3GWZ zlBpH@$T-1+k)L2+J(Ia519%paJ_rR;R3om-xF`CV=jkZOEjlQ?wb8NR>;a>jw$8p8 zK{HAHDh?28%BwJV;^plcs<8vH*8S3Y6bO!Z8+>=2I+D1L;;nh)@L~K!Lu&&nQNE=B zEZ|Na9!|C$u3!U)zn-a`rQ2gU0HN6OsCWlE*>vur?tUmMpzS`8Bp}a31OTvf{Rp2@ zo7K{J1hh4dTb?|Y&K_l`4-e!Yv5R3#!wktSP!%c`)ygr8*IPRD z_T58g*Pn(g^V+7rbe9y46Xb>p$tEk8M&&E1$|JeBHS_}mDM1Yo)~+`^QUZm_{cP_NHUnqnzW0z{=v-<_{DqS`*|vR2)iggIUm+ zw*4>kC)u6Ox2Rb2GVA6E#yy(e0K*l;j^@%mHZnW)5cJ!kZ{isidZ(GqX99#jJ{ml^ zy865CXB;@qyikg#3Jt(si~_=BWNq*KGx;Y@Fi+A`H+@Rah?~M^M(%#=H^%FQ{F8Am z`VP#@V6A17APrDQKaFjoPv-CNfl~@^~zXOEFPfJ>@P8;4~9UyAU0pwvYMN zY;$k_61_cnKkw2x3fDwHJ&As&35D{q1EhI&;M-s(!>8Yi+|Tyq3nKvZRSILS(d;*q zKN9i@Y*aIG{di*?XNqdnS2gNnL~{sRo9;4Xviv{a1@`w$C|!`3R~w;|UM2H^BZ+BZ z*z2LP#avrln;bx{ieq(rA4~Z8^JhyZ80Ez#d#*GSMwoP;J$o9H=gKp&CZjB~GL1I9 z*QK{z{<|Wp>mCxTp$Z{u*)bd1eZ zw9&ywz?&as(3cX|_grB3m*yCGB%`}+(Tps58u_%ehq*2~=d7_cl$EolN7q!DQ}#E$ z-1ZwI2v>$wMW|b7>6&r(hD3jaa?Xh{wNC%2eqbJ(SXa$$kcw{tu}`V^*_KhHr7Yjw z~# zA-m8xWL7=9m6^c&dH~gd3*H@LBLf^F&)~ zW$nf(D`{x1;y8i~UmIWsB_8xyANN61j`Sx1&4$qsUm)C{_ zpl452+n?g5*>CND>3_XJ%(B_}*l4fv@w)9DS z-EN)#q&Ms-r>Pz~PgMq@t5v{XuT*G&D0i%eW2hU zrNqn^OpNdvI8BXp`PMYqT{9iY+s_onv_%+P_C6gB1PT~R{QLKBY3Yj_cvFMU+u!vy zFqhQ%!ewYZzhj?cw!gK+e2XofREPM~@AWDqpIf?$JokLNoIFnurE-3B_$`4VgGSjq zl95Q3s(5JL7Pk+%fl5S*U+~zVZ-n#Kp#s&FKHXPiUY55@eRooCwsnTsORKQ9$jHA{ z{O-y$D8FTMtliFYKIqoz?Y>5N*f==1t(bFbm0gXPmxm2`-rUO@s4pgcDjt3O1@-sm zDOs844-bc>aEqIXTq=t&+N@O>jMn;@5tD(Vb?O;jqKcKKqsdY|@prDhHWn6DDelL! zyZdne@nrBAd^%W>9Z=H+)7GcVSS}l|7hM<}kV)C*l)Xg?TiFWA*SDp+oHFF% zg0y#4;}F_N2Qhh-?2Q^={@~~Hubp3LH(>uPI-+XUiRP}+1QA_@*JaXH#B+^}O)X%| zxd$R~Zuz9zQ`%jGGN~}(u$6m`@4_J&r3C|u?fPBzu5%6|=h!oP+0C`3ami!6$ko{* zH8XbY)3|8xzW6(<(w=f_o}gyPTwW@c%aKTN>i3#hh;W%ncQ;$gaL#WvY2<9gjhe+K zs_Sl;br^mDBg?krvMuppiqxFGd#WYDFH!bpzWA(#XF=BGFa11K!60O&(-X-fJX$^? z;>kj_?+xTGOE?sK*;Q2D^y2aBB{i8l#YxlA140Lhx~2Mn-IjDfNF1}fSOzF@w9G{w zW^x=n{v}F4Rcq06Ur{Lzc*BBG?J^#oq!$kGzn>Zli<%(y(Kk$9Twsau!6ow7f(#ZEbX{{`WYo}D4!mD+TXUFS96AtdH6e2XDJ?e z`r1Th_lrzX+!__QxHOgblq;KhFYx%JR6I4EzM_sL3;O@%IK#&IDrSQ*4D8{&$|PY$`I_dSzi z0(B>!7N>K0gwPbrNpmI@xf{%vMAO9s?<+_vhEW`TzzQxV467$I)tz$u-!iL+?&lnNZ(f25dBi%*P=$K zX+FkmAM<767H2Wlz}@BZYu{}^za%PKNUR_M%{y`>Jm(B9ZXxNnUP53X#w360T(dcU#7l#}_{jRTcz+?kJyjR+~D z+8C9`3(p%q|E!i(Q168<2*3h=<0?9LbZ3O@Km3f&^4?hpgu+TuJ+ zrsn_&C#lydxq^@;82Z3D&qQo(bA9oiA4g}MNLmytccIHuUx4_JKr?lXKGS`w@wO7BdMq&999Vc#!OZJtS`BGuAo3`LY{lI=Rewy}=JI2?BKK zr+8U7PtzvA0%5OYRoVm@t_`cMYvMGsW5w1Ni6`cjpEJSDz7CgACQS=Dwza;b%7Fgy z#VTjR-6S#;)7oY{LQvQ5tKF`7 zpRWqpmYul68}dQIhBOAA6c^<6nQ|qkC&xbF!7%fyVA_=c-yKXRLRGrWD*&*X6~J3-(}T-5(fJKL&(|A% zEj;A)%)pyLo+z;AjuF_6;5^Z1Q^qET?%Z(eY+kaBD$*LCx%jlXx%j6e1uu0sWK1d& zU)7@US|WLlm}Tk7CBuF9d0^--(v|^}PaqokYo=|;Goty4?a=DeSu6HO+ZU&yV$w_< z#8B z@#+WR7{6n8<_065=D9hlFJm98%<{pUNLiGY5F7j0igv$iI$z|XEniJ0s zi`%r}kuWpq0?}*T+0PYg2yCgg3EpuDd2%p~uT5uGM2F%i60mk$2;_z9U@}uTjAajy zv&eXzzFe|vor5X0$*i8rG}(2`ayRAl;o=Sy4m04(< z%DdX>0ut=CIFkplbLX;@D`J<^nEM2Lc@V)Ud}p3FD`oRD&M*@u&+VCithOU9wFC`+ zl07Qig$n%ly=O>kxUzQ_H_RzL^2fE*HUCM1xqbnYuYr(6iBoE=jElUYVJ$ZR>19Fc zV7gf!j|m$1E~+<_yn)-O_b9DO*p$z`)s#f^XK(4mC<>v9-6s>;6BukfiekWZvI1T4 zXSWU|xHHydA(WkZY=2|T#T&tPKT6`7jm#Q~BxsUo6%zS)@6 z7X8HU83q$0?UEJ+%8*<%>AfpF6NE*{lLLd-*5@METW@(U(0@dHHY!OMmO>^ zb2qvX_n;`qa&7m5T%rAvae7i?_ISyr;&mAf0PU1EeG)Z~1|g^40o>W|kRcyf>Eq>> z4*(GP{Qa1(?>LKH@O75%=uAOxo0PhPONbEu?NRr@{!!S>(u zOB~6lebfV`3io?9@3G7r`d&FqmF8dBv|VHoFU12_=Hrrzx7FWVE!J2v?-^O3yvY$A zNFo72M5Q(Jwv~u;uVLALk11j`2+~YT9*Xl(mI{S-8cF5tMEY{v(8?JXGvPd^xQWTh zx}iybUNKfqe6^4ACm()-;k#5_lowSdhW7kU4(Q|5vs597R+zOgig_z3Sh@~3e63^ef3!S z_DXx-S?Hvb6M?AJCMK+@bE=KB@#=9M711EaQl{u~+VpXr3~#Z2%j;*|fQc8#%lWl7 zY|6^Cjw-Rd4i%N>va$z5MS#Vwx>vFzU2Lf`_8e-VVM2ggA;3K ziSpawP=(ZguO8cLg<%Y^IhAn_4HpVHZ~78f>OG=v^`Wc2ipf>#NhI z=N8u$ABK>A;o>LZBkFQU3cQafYyr@w>(Pyv)p zdkM1y&-8IJT4J#&hxMiT0O=CC3q4lfR=RO34&XI~VE7 zVhDNER`AA+Hza-!g)b58@>*H<)&1=%4fr(`DsZPIrQ>6kRWDMTKr&v&-8L2?T79cHu}_j#vOK6p+<_@H|C3%AoM$=1IU)AS>l{TB z+eM9`oKC7)4M9@iS$*@V9p7@i4K)sQ4t4-O=-*p zZlORfpG++@vUKqyBG64+TdDzRXS2A@3ULA|PQS9&w0gaY{+#&H4DfqWt|AYo! z8H4baFS1R=idSEm2WvpS2*(a7S){5yJbUKs-aiAeM{ktD*jHV65xeJlo*+!JA--&y zcYpCt{hhojzOq_Ty+)>qckMMq*j_+1@L<&g_IO__yEnjS_{VM~r98+(Fx*|0Q#*J^ z&M2O)@9x-bdiQpahl6D@_IrchnW6$FA%tx%#5R73CqJ9*(cs`ikr)n4X{!Y$xm))- zGa+kNR}f72O9SQ)1jW>7tsocl^nYAXusIvpm+k+i=z?TWULFZaRW*GBD4(s3l$$!5 z|7xIN5Ht4wIH6EIkQ4fkqoeep8wTWCfxUM$FHtbvm_y#$WWx-bcu5Q-(@;t>W+B}} z{0KN>D0D;JGZCDb4mT7||EbdM`kWpOH<>wh>|tPS4x(FcSyQVixsC093WF<}#((E; z&Q5i&VJn#BCv(FM-M1}rgzF7>jNvI9sLfXLXtExSC+2f{dT@%RczD_3p14$Nx3iE+ z+r`&4Z|^1>3ZGeJsQ$!I>=SABd^`#9rYAYYSp8BAO-N;`JI8gnWNFp7`|Y;>~ocoe9q>y>`j6ZI5$nhy0>$$Lb zND%)+zZ5IIv5Q&QzS^;uaJsMrY;jkvccSc&$J3$pUk29~wihbn1%A}I6=&lQQLXbE zB6mO6EPsC9>;F^b;kWkqQ)wXKxbdI#5g-ur+Rsa%~voXRk%*Uc?A*sITP@vJG%LumYxiZFt-lcE+dFXJ%jJ)*M}YLB2e&@& zyt95Iy;76hYAo!BG1E4Wfyx|;OK(Tz$nIa-KFn%X1Izq0?n0XFCc$ig#h)*2IRh;i(Oo{*E*=$rI4ZJ`{MJLADGP>^gG!gud`2Fbk~rh?pkP{fyTjr+*g?%s>K62 zYP6QSF!zr`kDr^nJuB43oL-vy_Z^wh*`vjtBqaFYt_h&bJ*E_%G-S)dDYi^7B__^lo_I z-@^IT<*Ue$2Gb+JM7ZH`Lwc=puW>+)@V1GNLfvF7W<=hw3*55CeFWoHZHFHEgZW3F z%mzT6dmCPql$3-!c#LdjjsM&?y~xIP-^w8e*^s-k$M^1c%=;9Rub$sSS7_pO)*re= z`imR|S07DHZ=ddzi%(<7y75X=jVRP30ItC}XI-mQs+RfL!zm|PTqg6dXrpJOzyF`V)d+PaSD8rd%UEzZXBe6s^Gn>G#{K)V zx?)`R3E4Vt@;p9k>`cV_3e54%Ze5ms>Ng(Z7!$)tMCGfaL$}&eijZ+~!akBdgfX#5Q?wsg#h$Cq$JDPwRkeH{Id@yVE9m-GP};pnQgfzv|n zNpi`*xc2vfJ>N~KYwj6N&gog>^kc+|Z^#q6=XD1R`B23szJ9)!q6O3*mR6Li>8LGs zH-UOe4=AdtAkjzFX5g0zvzC!{JYP&c8CjK^>?H709wiD>auR|Dt#;0nsq_U zzuDA&yFxIj{IZ^{;U)BT`+nkN^I4rzxXT@$l)-%Y zJonCzSueD{s08pz?T1&yocLR#Ff!V`Fk@lscxt1oXE{|&_getTQ7M%_!bP#)F<{W+ zI0Cf3=eFZNWR;CxH#=Qov3~1sfg^^wQ7Ua&u)DYCE@etoAn-|)+(~)rL*cXsr-MLd zb7~x>!(*OsqWGSq;GvvyN^ksy-fobx%qb2z;I;T#?w zp8I~T`?~JudRF?{(AE|k?t#dKcGhW(rA58NjjQ-;cWQoJ`?k7ecMIbVipjKL#oc!4U1Sw;)qN}^F8qRe4I46G zRiIBZvwrS?uGoZEwKsNA*XUs)~y8Pazr_#p`6cY#lsIcXm?fSd6N$flb?7l~r?2jFE7z z!Bp%v?=if@H~p8Z>gy6|r72c)8|j{;bl+rX@>H6vYkM!7`juV@3zKyk2aP;1VW&4M zy(cY9UrtQ#h=@JK8?lVWnhJ zSR@iXD=nlPlIKRx6(x&>SaKfRM%DP%BbVgVci>x4vSW>ql*zLn8#5lL(Uwg5@W0ba z@1c>U{Gnul#>-VJz1tjRi_ICdgt9AiX(SCO4f@b zAZ=xywOxwF$AK7yGNGll(DCuK{c>|C1OE_k2q)68Ggt?X--l}N;HbrPd1Sa{2BtPv z^IhLx3ZCzPpOx;*rQ+Y`KKxQ_44Sg1)_}Sa6cQippzmlGVBQl@0 z+Nsimh~wNXo0G!(_4Xh}!iO9Brm*p&y&5>as$)myCA#aqo~N_xvs#@!CrYwAIXDnz zZI_$ie9i}j!Go4XdA&a0msO=%Sqer+#}m8Bz;LKKyMw`*@r92kwdbR+gf9%1-u-?u zHlza{d8x!Blu6?aTM#!!jh=IdG4-p|&`qb3?^I1n);BaD^ zSP6K<)|7g~vfSaS)$0g@6cViZrbtYo9tI(Wy4)T7H{#Q(KeUqUA_gbkvoRcu=YgH7 zWU#rzdXf_DEbDYh3dCQb2`MO9hqXyn&TzK0(!eV{*@&RW1*P0A!87pEBZj$QAO zXwSZbVk7T#^3U;zlU5BUe=`%wtn?jKKpC~hI3$IPuZW#YA@V3mR>g+_O2u;4&pbcI zgsjdUv2X92&kHR*3RVs-e>}3U^-^loF$~P=vXwX8X*m-g@8Td;%e*nOmdB)i50;%o zwDRbqJYWIs(gbx^sfdhwHwAMK9p_*cNk>e9zs7tVil}sarhXd^rV5w!rTBHt@j05) zptW7S*vi_6=NDO;IsKE@4wBMaj#hnY3{Viyl+hWX#oB9)xzc_eB@~b64=Z@*CO$7d z1G7w}Ph=%Rdb-I8L~Kuvr6^?I`q!=KTCx$lzhSndI_E^MkY_`)oxzUGJv>!)l!{|s zyaqvG!Oos_L>jF(MUIxALGzoPmb0`|Eb=wQfe5&WtnmoE7x3(E})GmFd+Iz6nZwO6t z>hJFJ!OEJYfhGj`k!*0i+dW$ z@zob`#cqYanys#Jl3dX!z>iunN&!$nLC^aI zBmc3R%cT}t-m@onu2F9vxQ%&_kwCofOavEO&%zuZi{=l>3w`l@Ji;F#8dd*S*4YS- zQ7MfpUN+$b&B)n@lR-12hWEaE#t=94_!CbEiwggs>o#2ZzC4#6uC~8W;0Cg^AbHb! zoQ9Vo$t3?EX>Xeyhl6l$>p98I{<`?x<<#4`w+Q!Ke*4?(_9kcsQ;R6jGppZ~bWpK~x+A|3b$M=@ZIW2i0a=kz7MsPapFXYt#}2=|anu)0KhXwo-) zt7FH`j8@0n(!oLAbW}!U?SVvehFWm$0L*d+i{u>+J)y9Cu{kFg8(nIkH6?<<-L`-y z?WP>L5lXHi6VtB>knI!pj`E3>iz7xt{s5^usG_cK4Sf^c9A>0e%ud=8juSKN_~%Cu ze#S|e_-mY@aCTeho!{fo7vewvzSI9<3K2*Jt=)v#HMA<|#P3i9=SB;=4Q>j1d*ooB zxuP#2*}=zuzmgPzwGGmy`&dgo5XhJute0WOW^0?+Ll=Y%&EEdGoXV4p z@z##Br|!NAdkIRmemP{jHL}ot7z9QfDgX_K>0-WnsO=-OJ+B2$u!;`NV+Kgrp6A+f z+Vd%};XY8sn|!C(%}I9`n8%8ttx0rJb9~Nu;Zw(aP%+bC|JDt;>b~`YcaUPUu(v>F zfhRm6%&mjLu8{G0 z`Smc1u0Gbj4-6Fgd_qg+W}%{PYHy7$2vEiFSnw=~ z2U8hCj`v|CPG+a&PW!Qij?jXSg;HuYCjyteU^F`*JCDHM=ReMH8Do2U?CTIDbUyTs z3F*e#qAq(jyZps-$gMmr8h^*(m}`l~6dK5az666KJ1lo59qs=>FaL2WcI*)vdMvD4 zTW2SH(%HWVrt#4XG{dc64dxx%onKjE3LO*tUBkKz9v)$4rnWcd5@pJljehG$dX_jR zNUkIo9aREJMoEaZyEIiZ4*ru5aa3(H?t5E!A&8H%md4w!vS`$=AjiC^d`-@MWEaDx z10onT4EjYDWiuR!d4g;)HW}98fT_z@$yy$Y_|G+KDL*bJOj<64DZ?osdeXUv^%2Zq zUIHAzWj~se4}EBMmj>IH!eEXY*W$dckA)IyS}x?e#Y^+Va99YQ0NUNmM|>=C+qMRA zO^s(;0eOY?bmjAfyuJ~v<7*1rK`|%1b}v+T;6$wRjflJ!6L&otvX!L z95jznzKU_jc#nG%iK-7-*ej2AvPyc$>6hUfUp)M!y>+rXl1Rk%Rt%$VIGp0-l|PpB zj1J}%Uw7SD%jPF%degIz0Lb~*2J{Ythv}LL%o9^2kk?pBB0{}WJ57q^R=*KpnP-FT zH%#nt2Ujq9gj-GxHv74MInE)=LBYLIAaMhD7O-$l z$V#QVre6m9GjUEUeSY{s6;bRF?3;XP0BchqfOzm^>u|QZ$2-n;{K51!tvtovu~#d4 z3VwsX2 zFh|{80D^VMv$JYr&^~3oVl(yW(FN#FF4?O^tGh&1Gvf*HC}A%?y2#8`S^NZV@_@rZ zcAo6^=5Wb(2GKNe)p^C%<=tZv<-~XZM_|Lo)GGB@xbU}Z!)r%Aq({0`WDjNEc7H+- z#W&qkcoiEtJXp3Z7>>uHc}FDxJ_NWL`2YVnCUNOsb2En-Qm$;QR0nBAoZK6s4s1kj zB^tM=Ad#F5Hyt_k85S+68Hw_Z&l+VybNM~=rM=G&4*w z6=yYXE!b`%FyXt5snmfk8l1~bLMB1toIW%XMP~5Kl*BU^dTJnU{!n?54mOJ>*Uu0- z1g{U5uIeaDZer9UPWCRd4 zR=^uq{55%SM;`C!@X~rzpdwMMG+nyQpRu%gb+JC_ZNQL z!^DvGjH_y)&vl+(UoYD`#G`NB!H1W|=n9830QaLj$);<9rv{!{-bg(pj_3;v0X!i7 zU3OTTuFs_dbviI2pU4vo;S(HrusUaap2kc1^xlgMyEDQD!~7b)kMq!*d@9cAeX2;> z0{>rfB%X%AbQUJgaSY{FtvILg(n=8d`dq97oLxyg1(j2ptNrkWHI~OLNV}e--CAm~ zVZ*I-pLs0qY=Pg97s`r6D;wYVbrj|8xTP;@LvQ(o5KV(y00B#6aL5%EO$RVVXHpXQ z(Wg!onO2_dW)rrrCUJsv_5eeCm(qfyKg*PL@PAM2@TYQu_%9m_5|^=2O(JA_ag*9| z>A`|3M5!QR9a^u_OSkJ+6TmQYxD&!Sh%ZfFs{8M zyjFTwQ@u$yEO=&0hh4rb6rb>w*LC4iD1(;=-U#WCBZ%9RzbEbL10)Tt1eiI*Ax>na zKT!-T0%8Qx<1|_`y`4cGgqgt-8o$Cyw8_-pgibnOR+fOgn0mEBboC&jE4wtcUj+8)}RQhW=vWxfunvFXeEWO#>)6lJ2x|M`kjZk@O)rK7r9;d(R_W z0==?wty%4yM7jj<|1)kc;2k^%j}#n@%+-zu!9I(KW<*^LHV5(lD(5`C*HRaYQa!wT za`M>JTCKu*^^H9c$K;!hTv_{|#L2+@H@@FPLW#8mp5>VXF*!Rf0b9J8U?LdN;HM3; z?tFbwa=jM@zg`tjEal?KQT8Jz-xFq)VUd*#8hTgSGZQLk<2W#CERH_QG{yXcNAcW3O_{Ucj@M@BdR9 z2LX=`FOh2a%dFZ-)LQ-t>=hevexID}31rnxc!3lnVH5(4!UJ}|%O_cO9|>m&Hq-&P zWm|FRSW0!FqU0w#^Pc@z6Y=~hY%ata+KRej3ev6t$e%4xXEss;f16-8Fi)DRzcogI zsa^bA52xQFCD2G}Q*+cB;^{a6l!UQ2|Ay!7(u$lK&T;?wWc|eB zwi7*}<|^o{laWox{<@>e+0tl^vk}u1R7l$5rm3u$f(5^MzD^rd< z55t!i=7QoG9)s#m+vc0-lRAS7z`$yOS;Bwn2 zv!ok&pimk<;fp2YiE|9m30 zpV)6GU-{*5nct_$;HyueOq_ye8qCJuem#1t^siEd^$&q?lsZeAu(E54`w`1mT1C)Y zT;^0|FeTc0JF(a-Kqa2W)_G##=deT8ZhXaN8Y2N zN_6(^>_(Qf>t5}+)7(Ilwn|C!J2Lcl!x*YCD=E=Y<(wHArIkk{+qFHH_Pn4^fT6Ht z>-=r_LWRo40Y0FVq^Rkxj^(B!Nb_6Tm722i-2R4lC~rleaZj700!$r*wJ3y#nY1P) zK0{~eSWwrSI4ZUu)kTP=vy#mUOVdI68~eZa8PTcc>YPYGG$U?_{`o{}o=~Bx!{?M9 z;XCs7IP&{T@dC&H*tFkhbepd?xaTkMfA1=Ea34<$#S56nE~w#3=IP#MTzS@#%n*~= zjC|EH8z<%EmH+bz0x!IcQ4!NtBlDj!FLM0w983}2=|iZ)M@JGcfnNC~&#>MX0%n?| z*|db3%s-|op6pCMNlA|?S$5$hRXb{gcYU=ei()rE zm&xEXWEPRO+@L=`q~56kxdC2emF9@-hF5p3F+OYr8ZSO6(4D`3fyyad5={G~Wo9hJ zy#6Vp@@(XXU$xQ#5C-2qab@T)z1&FE)w}q-4KoO5q1~ZZ$dOo@GqQt-C1ZP@d0FuP zPlw!9WEK{2*_e7uKlF|q0J{^ci;rQLN(C!Z;2`yu;Tzs~-zij+jxBHUH6D55bm2&%WBWaP*a#FCn74#11Y@`TS2Bx6=!a~3fj%v&P}HLzJgYx4scZS|#D z0AX*Z0B-<~+I@;b_uJzrLfI2)MoRZ4WN}yJv?Fi^tVY?JCF1T~eieyJ>5sA$GpGoT z@JJ|-Cy{va=9wT3oXBvvW1o8JjQaF|IOxw<=QVD~04Z}eAo7f~TXOrb3seb8Kc=kp zh`XVm4&pz+bB|kwr!9&1IPd7P!~Jy!D&#UX76TXC2-r+{!<qg$l2J?AG1kvp@z z{;(?xhbC9y8H$~rcOEw|Q`ebxQ~~&X>|8?UawaX?ZxE)!*t8#Mnr!L$famm=_QI?J zIS-_)Od=Kp?cTBB?iwc?Gq7t~Bw9HSocF;aVrP|q3a&5@f4qg!>GNXrwy>_X=d3pE z#O)96f|qpl4>37DhTAbT-23w9DkV1idoorU(mD$8a(!lyqh6ptJIi8B{aSmcHKhKv zn;}g-UH)48R^x#&Y;xK?*?xFl=RgfHvX0Y+4vY(QDAtogkHNAaV-J8Mo>$B$i>{e` z9+u2%8DevcUE7Ar($*u`?spG(T?n_%Jau|CZ}=1|U7j{o1FQ20Uyv2iz0w3B9jVdB zbI)lK(yh;PP}fn@8>elu#qp@ zATL=Zb{9h08d1%@pSuol^H1^o+PwaFeQ-Yan6FdAvIIA3oc?sQar7oK%2lL!Q}q)B z*#XWZU45V9wM*j>4y>4Og;qL8ppt7LDB{5_Ujh9P+vfJ|eK$jqDJH&}?Nsmf2<-Lu zKh(HS!3#g#}vaWYi{Rp%0m4=jGDGp%W zqN1xTHbjMf@>7qn?sGFC3yv4+Z=wOeLKWJ_qNOLdTw`R;&h9m&sct$imKxZw9ccwt zSX=KRJYfyK2E84%>kp``SDSSm&R+&Y^u*FGjeQ$f&thRm#dJ~m&3hEdTQS!-u(LMCVApSKLW9M_MsT)0m1a&6vhTkcApHSqOSHfVJxCYYZ~Be_R}X- za%u#@8W8Q6(t#(j5Lfh#jGD*%@u`8I`EYiD+p8hFiFMTK0Hu>1dT+VgMq9qR)IMk}p(Ts1_85hd+&RRd2lM^` zf=sz!to?jVdXmDc;%Dj{j1g!?WXbYj6Y=M8-=|lTWuayjsi(F^_vN@# zUw~qflq_rvsF?+nw3oz;=Qr;Z$dx!c(*)3jU?wKu5>{PY6j>~~QXOUhP_|$E-2-U* z;B21UNZ3xYAjwo}@cXQ3{Y00a6cMCQ#sD?)X8`x(0DO8IVtY4`-;7b`26w4*byz0T zC#X*==M157&;nc!(~7XmLRlC6WX>=;NGw?*azzCj5$M8<2QO6azRQv6$){8J<`=F5 z;!qGg8oK);17x~*9b`Z60Z%K4L)~dSr{e#(C_h>>5mP!tq{TkAWU#dyB?X=VYjc ztPFy2?j8Y?zuR*T0N}t+eRr6FM2SzY^m7%DAmF8VC6U(C4a%V=eE^Pus}+lX z9-IWLC^pJ%ey_cXGgD6R-(6O^jmK)%;xv%I=3;?WQ`0R)GAdIB=&m-EPV4BS-pZm* zhcY+|=$U{*821diApNQnpa_I{R;JcDy)3Y2WkB@lD$I;L*2OiRl@zd1 z{6NGB3_1Q(^X;kL1&tFb%WbKsOlCvna@UqP>ocl{U>ogwLirPH&TzL9swyl!8A#wi{ATIf*WI2Cn;T9^&Ad@U164jwRXM35#|;Qvi4 zIHXM$$wyh~Ad@)m%~tdilGkGGxWJ|yEV+FUeKu?Bi$8y>FUw88+L8qc9w3&`=}x*e zcm8f3F=mYI5%2j5b$$V3zK~ZYJx~qESR&E%Kc94?YM&PiRkvQtn$nU)H&NCK!E|?q z3!1U7RlOK)_S-sNb*JXZY2p3aKb6sC9lwx@t%}d;nljOrnZHZ(cxlA+TSjt+NHoQn zQWK~&uFMZ!()0u?E#3&YkUc>?n*Tq3jfXyHHBHibiw;9)&C33F;@T9>iVe*}7Z2$_DFXQlDFaL}nE`>c-Y z-o}VY8UPe*(rm1c{l+=5>7q;@U&bH1>EarTzy0PFi`I=xqY>ECpFQW)X{23VVSqRWL)jj*M~6`okxk4>3q=dzhI!HoK#}(<3OU z>py7O4{PZoLXKe~*lj65!<1P}=Y!S1j`m?JidG%KHmZJ;ypo>M+p!{EJVWVOppO;I z@2{rvuUc-^1esde4jD0o1O`XZ{CX(Qh5>e! zT)ymc=mooFcLVcy`{&)Gm3h8vK`Uw9N}0XfY!}_oa2hg{^HFwuxSNbk@=A^5j<3pQ zWin-m`krCf2(x?NvfpVV+dBr`5m0u`R`&z`CmXi1MbLGn31$^_X3wmw<9kJ1v(M^% zta`ClmT{o*Lq}wqWtj{^TSYmtgI-W=#OVPwZU$CrYExeyK0&vE&H{w8qO9B zMc-U=|LSbo@SPffYAfKIh_tLUj`0cfr%X~H+GWTAY&dk2pO79PZ$3p+aUTh$076mU)M9HR>1m}Tlv0^D9eyUTV?O5^cHp>mD)N2 z7GrS`Lu^kL%e2vZW4rH72qNS^Bl=opxjLmgF85+GZEL?NLSNELmrjO8Kat;94VZzq zymIS6{Jlr-kaa;dR^Ij71WZ;Uga=HjF~Wg@(<>7mMzqJ!=oI^#)?^Sr^oyZMN#nQP5#K$SM|dC*2i2fqxpa

yQaWPheIBw%f{yq^{snVoxNL&6hmd5=66R`U00R4Tv?RGKf3=1uGZ8m literal 0 HcmV?d00001 diff --git a/img/avatar-pic.png b/img/avatar-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..4b4255ce3d893f6d9afa1ad8365bcdd3d35e80c1 GIT binary patch literal 3848 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 KMNUMnLSTXzP*BAH literal 0 HcmV?d00001 diff --git a/img/avatar.png b/img/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..d2eec00d790ae2863d92a3cc0a6818b1eab074ee GIT binary patch literal 3180 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 Q^@{*$!F1Kj)U3n*4YA`hqW}N^ literal 0 HcmV?d00001 diff --git a/img/category.png b/img/category.png new file mode 100644 index 0000000000000000000000000000000000000000..007a5748e74d9ee6a8be16deaceb4746aee39e6a GIT binary patch literal 238137 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 EH(7+?p8x;= literal 0 HcmV?d00001 diff --git a/img/default-pic.png b/img/default-pic.png new file mode 100644 index 0000000000000000000000000000000000000000..11ea3dd867455ac72b7df7c9981d9f2f9275bcfe GIT binary patch literal 206810 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

5e#ff5CiaMHmUC4#pPok97ONGaqv@5eb=f3 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

VV?)PS8QnPB1Ck)4&j5*`^;$f zZ#n)a))92M?$=?fc&Vf~Sa{)Z1Wz zlFfgb6EJ%sju_T2FxGw%?|GHi=a^i@>G~H(Ge72zI=0xBZ@oF`H~}`n`(2XX|G9to zD`=$SBKelt+qrQv*eBmGs%BslZ2ytE8ep2p0jk@3aAH{Uwn9^lF%gV#82CicufMPV zK`;14>(#+EftbPdTD6+D>B*Ok$~+P;FBXrJ-9QEW_Ikn`1sm=6?M1gZANBhd1U6R5 zqQc{5?|D6czkpSMLsfBb=xOiZe*40A&As&c;r+w!I6s%+b|(?SyQwkzY$=l>i#ei( z_g&skxm=EvUbko{OT_>EYjsSnoJVg*M`d)T{(&D*C%k{z@BL}f>nag{axX7t*a0&L zS{iEh7AG|O7futU2=2IfeSN(6r&x>DtKa0ZH)bHRQadvia-9R6=s< zUkf8X(}73cMO}#xGCbfujR514iulfU++(bIt{7~2iTwl6r!k%|N?ds6e{1o7BfmXL z+fD)4^cshWoyr&9{`tV@Yw$U%zXHQwM zd?=+CoUwf6dbDSw@TM#Vks3xsOoDAiHhVkRt5^id&0esjd=+eebt;-Si_!nNDiHQ9 zX4}>l@jb63XGFVK!r57=H6!Av22D3T@I(rJi;Q8SgabdI?<%V=fJV6K59keL@C3L% zKCw0NHsb$Y$5cXu%-u*Rl3t)*0f7g7qD-QvD$CWm*5+OYG z_5jomtZqr|v7-tX#_ss~$C2dLuvOHA`pk~P`c&WbU!}^X+^h+h(L%OKwVdK^=zIg{ zd7V*|5@H>GIrdeVN)qib*-fFO|KGzaMhXVU-++y&V1Qtb4ZBpUS=?C(>KGJ_Jv#Mr zndN-Oeod~-g?1mV{72;S<+uvPmJ2t}f*r9vP7A<p6Tx%E-uZZVtxP5RamkFU;jv1&uBcJ zdI#7whgbif*SS4#5Fz{>_+(0aIlQMD7(OXri@qXv<)?gkzPLVh_}quw>dECNvzCK@ zY8U+L+T!xcZ1iH&N$S`5g}}o`1%pAfWc`m>DkFXWm8=)r6GijA-mE7cztkUoiS*}W zKovgB?CD_<;F9-ZcA$TA3n_9)B_o7?f<3iuvnN0_0=z-*1GAk*yC0I>w1EF{ZvieF z7F9@GI)u4@{cr8vvCj>QY<;flmNG7WkC>Ujkm39PnqD=StgS>HM}^#WC!Xwi6{>Jj zW5Oq^=x#Ct3+1(^nU6*ww)XdNB71hK&8lh~rnhL7U7I?49?P}zMA|R%O0Z(+MBsfj zf%OILSn{$vi?tX9&D%bsb9p-Ikq?ko4qCOjgnA6e(V3Q)9X=D z(6?tuf^C+{%d$&lF4cp!+Pe?_ag`ig_a?=t+{j?}FRaILuK5JHSf%`MFoyYYIFopZLEQKw>_mtf$6o1cWm0x8s=GIs1pj zH4*E$@pAY&V*P-#tFbb2M}V`dnX|-N@>H-OHByw>;i7(Vu1^@))9HU&_xnH}>Ht@V z`FnrJ{%1vP3$`P!4~eZc9kNcl?OHWMME;tV_>frXPniuxq)nH%tF`=&8%Cr?K?~c) zq8d1?|FsFsD)4QOLF@PZUu)gl;XhlM=T!5Xr|QR>qx(V3iP+K;`QIl1?C|GMAhws_ z_Ug1>w-4L9E)hgHes*8O(FexeL%Y+4_Er}y*N#|=yLLsOo5v0u`FGUL;MQ~cA@vAo zzcPHmrQ*zs)@~g7?LEqtZ7kVj*M8vpMZH`f1*E$7h3#!K10x2uE^t%-*UW7XV-JRK z+dH&^*WUbW!*<99+FFtX{&`@N_>0&Zxv#GG1Hg}2yCNI#O!fVCpr={>HMgnvEIXih zOB;m9ed|X@+glpOb7!t}w;c5G)IBfXd5t{yR5R#UY2quc=W!7(;?~rQmL9z~YwzHf z8ynBWezyd>C3#Y7S>oTy?BD($OIIBhRrhs4Qjij)Q@W*V=dg@2?Bvw@jy8GBo&QlWK-HbID@F=f7uv5^uL)%&X-qtNp4J6~<6l5}4y^T6v;Ky0 zk+yNsQyK98CQ|g2;}My(uaM1fDALx2to%31y&pC5zra=kboH_WC5|ax}D&@exJhCkac- zCV|#6Hq6k^2vjf6>bRfcYqaU{-LpePXt?JfpTg5#*hnT{n|y`ZLSnpALhC-1505IV z_XE&*#Ej*?Q+EZ9fgwO;cSjSbuRsrmrE`u~pZ_MLoms@HVr zTQ;}^;8zvV*v3)cf^l?^4Nk4t-Y(DeswSdJ+OoeZUc%=~vG>oNXKn0Iy?Z0bb6H!I zVbn2c01Td@J{`|GKZ$MdSBpE@n;tg5i7RfXJdHk1CxYyhd2Pd2~Q(UoTay;IF z^VAk@kIuR7QwFynUHwga!dcfpjkCzbl{FXBV)bAYv4 z;hfS{i9D*#dZY4PyMr0_yIpT-*0f^@dgVl(Yz#L_-aqScquTZh??;a9BwMr(=P5S1 ze6+h?1Y#}%(=nUMkX7q>EdH`EPqa<9+J>fR6JD@6l%+CG^;$gAi618{t?tsK*H3Ra znhwdlua8~Tegm{3GhN9jqz3Gxro1bU?vMa7voCbl$CkeUiYnv{Bb1SLyZjTs! zNpPa(^$$stQ}&B`Nxa@3x5ri1MQ&!s!!HeijqX` zNr+&o5~Mv!?ZwWo+y}aig#*85Q4bHlfiumda{1P_5(f^n6Z6Ri5)=%G-haN$sQKWj zp{6BN5sxg8ANRthxL#}Hc_MX{UP%UrcQ(hQpzzYnC_gdr3WcUE=9_e_HzX29A|(Hi zSk{Y_&;SQB4phYqAKxdw&v;RY-U=jrKY%Ru^l9S^sMw5u{8zZVUn$?BLjo$Xm zF(~)*S2v;{L^uW^%_~@^Z2CItT&w`u<&k)5(MU|kjpLZE(^ZlQ?PqPL#bSbz`kU;5 z04%_F7D}N1XDrnl|J9~I9c*`t3wRq0kEdk*C15#T_2su|tx}bQGDBmFT_)bU2ba4^ z_T~D)`UKw6e|>e2eK|>Z46ey(Qv++T8Hthw&^kNtp zB5KrfB}c>!lAl|T8zgNkB~RuiB&<7o&jX7{*rh5@n|`m!A3R)N>C&8$)V1_bu-EyN z!eD`=w3Eldib#~pNO#=%i1c-#H+(u&tH6|NDQ4;BC#P{_eMmiiH=o?e zY`Hl?*Ob=x14zC83l3gHz{y%Yy%Ip?cS^-}a?(s^u*qL$;00Xp+EN`_uZgaqW;nc- zI&*%(E@rEmYEL})2pXF)doGImG7yt)1^pYj4Z}TJTrFdA)#bk(kytqkjGGXB3qe#g%Lg62h-ks?`B*N%=lbF=MV9e1UnlH`2 zx2F&0(i26^AN7;lM~?91w~3j(S^uCcCdFj~!%H_x_aUnztF_{ld_dmgzgFa8ZB%oP zjGtvkEAGYa8s*9J=poTPfVp3bG2`KD+^v$aug>yKui@YR`u{II z`SpO~Eu8)7>%-|j&z!~CodG`)3;$h*8gyCO9O&KA#d0~kN^G$5Q#C{hw8<2Npq1-a zz9V0306)W*4dc%VnUxrZW~Rk9bW|BGk(1sHsYTwS&iA1Im9n|S`f9=1x*Dz4YymT~ z1_DK<{FJ%0)cj}`E0_|S#y@1_LgE|WaQoJo`1^mj0Dy=ASxILEtHG84994oc<$c#3dAB2* zeTi7I4_X@aEXD~r>m-d%mN(!ae8WG_l;6@u1QE>xJ;>O~TJ{xD{!KEW=KUf==iBI% z_}=t3dS#ZDwYZgjW7`(WYykyn_Of4g@C+)_U9FfK6L+`A*{ZuKW|X%?ANXoui+tB7 zjA>_L=@%}Sn6|2mMy)uBLgo8WgZqbv&jOmFe;<@M&EL6g(u5QLcuKhcKhgn7puy%e z@InNfO;(4Z+{XGdmQPNIN*FF|dOu&7Kl;nAx1_@ZjaGXQk}JsgheZ4As~2?Bl?&K( zz{i~~c7{EVb^C=nh;&9_c=#oIb@1i)Zo6MU(Qx@)EZ@{>~C!&oDZ zhGITMszgs>qeY6?0nw>4$`6G(oN|LRhlAp6y198H6Bp(fD5PHCdNE+|L*(=~W(vI` z{0N?!NRpZMf#G|k_B4T}n!pmoz!^DEiT@A%0$u_Y1YVI@tU+&_?Gtk5@eXej`7~_Y ztWmbJ+4NbUi8}S0cz^COa9WA2#FGHu}H8lm{ZIP0^Y51F>DTr{jt_NIVVz&?RDqj{Z^eatM z&teZs&i)=MD19>dNz=g*_{Hw1w^~evC5AOF7T;SC^*2>R#Klwt%KiC&dBiWo3&7P@ z_x=s(Aab7b0@6^Rnt2Q7z`x~)EzP68Xu0ReF0{P&MPu0BCc~=7YOqOBX?J*8eTuos zr54L?t0L+Ce!|elfnz1Li(otjx*^VJ{-~?O;*z4TAIK%d%H)919GN5wJ8jh1dXq&74bJ{Yr% zuoTCuS#Oh5(fdRzD2di|_grcVD^plHDe~h(aNrI=jeX3%ULM~WV*BK6Y|XwrJ^Vdr zU;SrUW*BBY8r~mjwX%fIjh3`(x4t~8Bw2%!lo^5K?pY-X`;+;A@rZO(j^^i0PNX_l z?!f0J@x)61kQo158x0r^k)~r5YRF=+{6k8D2?lBdJ@*gch@&C+mvxO%$Bz)wHB}ai zFPZJEE0<2`a%+P&<3J(7j)zu3aUQpO?}JLZCY9EIPm8}f2n{7`of;Y(7_R8FrL$@x z=VOHrBp4YR@Uiu5b2@EX(+!xBkN(ge(W!j1?M~)AywnIH`b{~$F&<;OygiL?4(U)` zyClyJ$jH5p3;*&D>CH&by{qC`#%yOaE3oEH+)7)3UD%X*+XI;6?GWM_)v><4aL<~T zq*Te0t5}LU4(8GGtiNuRViG!&$Sd-5l}`=}cz?|LYL3kto9p4xQ7yH%elp@JF>D zJDm3{&WmHbTL)TEo;C_OA7hP|XCXSaRt_9&oORsi1@*ZbAxr~-0V))uVq*X>q@zo2 zx;`7jD1>St@EQF*m}@SVA1 ziJ7_O+I+P&EWIZTZU_(}9)Kq)KOF-8yay@h?W#_7RFMgNNari6!;3x?p>6LEcNHtm zyGuL~d+>oD{#8DVy-C%o|MMN?x1}GxI@QLF-GvG2YaftG6!BTA`MdIz+It4rzG#Tvao1Gzi%DR!+({hE=?lveOU@+xT3N(81g~s zlUJb~`=SZZD%me1S*ANCDBDz$I!SXyu^DP@1@or$@NG>nTtdS2;az}N=-MmL)F!)t zn+rP|KZ+3?q5kqj0u7~xh*0*of$-W^Be&9LlsDHy7di9eqK9p$DD6Mw$%<54U6`fU zy_kZwT{lMxS5|&?YfQPL)&RF&o^JvdZj6b?+nYk{nl(?=y{_QQ{{`G8IN_!C zhi%o3;D1QEQ281w&~|FY9kOjJIr64|xMJ;@q5aR+0|$UKWwBLtFVU564kBt*d@0rv z+M&KvwB+y)iS1>eBisA3Z;aEyp%eKcCq7Nh&G3-}j*MqRk%Xg~dq58t5z(6t>nX5K zUU)*2M`ziU6jPis4zW5K*KA*OkBJriIrzM`JwNL_JQlL!lbZZZLb;{b4RJgyZeZ6q6cP@!&uI{U@PUup9>SC;EA%OfKE5c z-13x6Usu*do-arCb5B(OQQe5p;^6M1=0MXAa7^Ta-mhcg4g44P0&(%T7#-f1B%=&#f5pC_oPzm7xD)$EB`i;IINt#= zEl~uTAcxWEsAaJQWwEyKx?pW(rZ@+?3w{DT5?%S@N(}J$@?oo~kl-JZ+X<|Q5&v>jp% zmt+g|XJKIbX_HEmEY4_r*CzrZb z5~lj(YfQn?W=QHTPI9i+uVc>*iqGB`{6iA!{88(h+ieWkAc&4iqoWIDX`ALUxIF6_ zL+-uxlb?uZI~*539Kc!I^>Vlf1`Y*3MA|@Oebv^EUzLchM?UAz zSU+>1jo&`8x99f3v6D~IYYk|FEB1-=#6Z4uZypNscQnK5<{Fbf0 z3dnK;F`oW!kY42aB~Y!fztbz%KH~={q0{;xDVOadkclyFAaJV@tz3`^z8Um!+O9(wn z_zF}#kz-ZJ^^!8AAL@_Wc;S?(4?4{L+H*y15pQJl;*;X9j0wxiqI$EeqY3*kcc<#% za`L{+RFV)MjK80$n!b)v!*aD%I9my}8MvLMGGc5up%YhE>Z$R2>$*i2Xf0i+!(S{< zRi^IC$#K|KQOcx%sU$=HVKi@x{5^nL_dh?QvQf!?>U)d-%0)97SKM<_;M?S^#zOQP zIZj@&-9eVdSzW8uz^(MV&tE@HKnHzVu#I4|aNxoicT6e&A$td>uMyJj<0gTsa4-|{ z6$|t$Xz-p{ImurWd?lSk9mmK=$Oz9wjl9%8^q+g|8ryNDz+gt$o2^(J(o(toX_I7^ zXPKX$C+&}@cSmVi^oi^4^)Kn02%Y|}8s!$(oXLEPoUQxojEGcLf?rdHAbv(H=l{%jaES!7Ffg3!t0CsiEtkzSq=SEUgSs}OP;s9<9=c5_5}%> z(b9p3L;h3=HGq4#A~xxUocX}F!he!A>4Lhfkl@4oqzDy7XqruUR2sC8##2+B^Ie18 zB1h#cFU8;CGA5T_uvaO=kxkWYgv=Hlia{cZiS!_DI!PuYkS3#`3=xI;X}qUiYoPWz zus{|7oC0V~<_3CCR) z(CGmSzJlbUD+XO$vJ8!LWMH$~^-(p_Es8y`cusVlrD5K&Tz}=r-HCulTTVdN{oY?n zUdsGOfdhzt&{K{K#x`&VNEo!q$4)~3x+bfz$@h}@u`8p$sX*$)_55RR@RZtt4WjTKEjOFX|FJMD zLqs4q#cRW0lS2bE4q`;J$@WxJa43(WsTlr;^sC53u+j`=H!drtrLwhNL$5vT(|2pL zbg9biwoLYn%s1>5wwibmI>6m44)1?h|30)ZxAltSm6Z zX064~Ulh^0wG!AnHkWN`D~`PS7-P2%MR;ypI@9qgC~-pU21BC)ybR z1<=5RlgP+D9A`3I%H(Thx<_g0L&PMxx`P}Q`{zDN_fFfCAzbpiTZRLY-!08^`O4|t z;GE2RU#9SIrn0x7IX{G#C}iKU(25-{&pYSy4xi**xES3{S&uBL*cNn+F~#4q!PVP! z;mTQxk>m!_$wb5aJ0Rh}a0RdVx%haJN;WzA3Lt?yQM#__sN$~^L~sbwwyd1PW)d4O ztU;@!;^gs;vf-XpMW1h_>7JVqaCoIsksrwTAQd+U)zn#quc&73V8w_&m$=@)WV^Ji zwho4IfUboxi#`7y2aDro`f*>|lL!>&ayLt!Yq8xT7nsYP(Q}WD#ZocY%v2Ro9J1?I zzk6H$JKpHE5XExOIXjJm)c_QxBJr8C6Ynmuz5MYpX7AGTl3Ja`VIIupxb)@mcTL@g z!Bdb~K9CgF1Dp82U{FZ@AJ+i<+JT-5em)7r9qf@LC|VYzN|uha}YAa9qO=m-fjvox(;FNi};~-<9IAHK|vxU8pOr;(f*`Ua_?!t zRGwJV2qDOoKR^W+)liUVK}%{W;}hS3?ll6%SLEbgK=X)#t!CXtqS}b>Pb%wI>u;^? zm~^)V|LuGj2lsN`Kcw@ee@K=p?Ito`_4zV$knU2G8$W)TR_D##BWg9{)sPO@q7!S}i^J zE5vey2}0jv^S$p^jBbX)*U&+2SW6g%p`V{Ky2j+$foO$8K~(aPNH{`w5b)cg|6^?a z+ix%lV87gBy>Uxb*+GwbOR6uK7E;7uGpUV*Nxighm|*~sN)+!kU3qC5(;<*30@U(p z{Xbo&nUwb681A`}JcVzR#cm9_cVWa_4BkiEBM8UiU)TWbfT~aKr|6$@H>K)%Kpm`{ z-K=DREK#JI`;E4MFJn#N{Jnaz^)wt4{x)0pzWA&)xLr3O4{G@$F7Cq%8?5)88NN!L zYetU;Aboz+ zqbGPAysP-W>3bjyys8SP*K1eD3}3|3U|NY2RC6)UkEo2s_okGqrOJ(=T_OS}*0L7k z#Trv{iL*212KgGF=|jd{dlu7$+cF-n0}U$PH^s4(Ig>f5ODKyS(*M_gsPcqr3W02%b9a;-fA zgVG8xq>S+iDd(+^9f9F_{zH+UdRLvAiUk0Ao?INm`HqaVshQt@`oR?45VCf6i4{;o zf9RPXIuUhO*;?{4-uC>XND_5$zWA|E69odxNe@s!J#SNtz^ijYI#w>6q~!22C}JBI zF-?i_pyX-mci`#X9B|%=#G;cR;mh=ila?M7f5&!dmo*yxyt>qQgN($cRgM~~9g99p zG}$!c9OL!R+O;U*)F7JIL=tM6ZdpR08KeGcO&yDsKnYPx|y zEsv(&Vzck)wJZ?6G~*jPh+Z+Aep% z1^3)H2(NF}|B!0HofqvE|B&W8*Y4I3B#2(|ys^v3e@GwyA>BlZP0~z6t2gDGy)Si| z$X8D0FJ7YuO#h|ksh?=cZGvp(iFzwHrVD7fm?eo&Ckx5WLkJFS1LbAm)=!t><+anNEW~viMFT%hM0C zOyK&2xe}?E>eEkhyYLWuPN(5LQ(!>+5hjd=Hg-(Hra7lX7tXu-WUI0|)w12Ojs)k^ zH^^NpHtNl}8F5PxjE;KhidVm0y$UR~ecxkZyuqI?x%0dVml)3_k-})$tE;#(sByv? zEe|%A=S?>}7}?D?Fmxo{#AMBCI0yOmI&X2l_9}4W()E)G?mnO7kCzI858xk1q@wL* z3u(iD#V`)OLn9ouhvsNPf#^aGq&%Hr`vzwWcW*3WGW7XiD$u2~#-%tiANVMYSYvz$ zy3J7B$?k(@liQt%JqG0^ZrbrkG1dkNM%`}QZuyqP+c>x2a_~Wq?$%syBCuJ<-0m+g zr6%30M0<~JyAhp8Sh&X+_zZ67$<|)E{7mK-g_Kj{ajF@sRnPBeT|dNy;`n>6T@!5dUi(YMq}$5pI${EMvVJn`uITZI|ebDL*rK3c);`I=S_y3kYXPd8Xw7ry!A` zfEK~{7)V`J+@ia>_Sjq%)AbEvaWVr?K15uj6Qrf;U&V|mpPI(uupVd(0{ z9tA0+#KMs6!e8%Q43Aw-BQcO6T2elFMY>E~@`H;@a8vn;g~+5J{ZMcYUr$Wm)4Oa# zy1@kodx(WkQP0KL1=Dcd1Jc7(e|13pX?AJV%WwPzWv6J-u*M@r>`wQ3nZ8hyHvTERk&bPh0;Z&yH7ghPA zGu;TEH15jD&DZp6X!K8Q2j`H24%)x`gdfFCOK~?@3&WP3IPW~)9he-`U^Gp=HL*6u^WGHJ>`{;eDzhD%c!H6F% zm6F;?R@s&O56+G*%x$C@{+4T06G$xfTFEr;oDfmX>3FBzbdUH8Mx*<&mx2=GKqP(q zEk*$XKRviX9(}%^xE8)!sz8&ne4U%ssfFr&he&TxJzC^%LDxy~oz*gIYt# zKRp^6OcNC4Ih_qjG2wpJq;baIun+zzusiY6L=}=@QM&k8Fi|>qY=mPZOk|bj?{Ih;^+@9&nUA|*2b1x2Y2Du+ zz3%;6PnArf>4TWW&Ctr#?Q(2b3SQ6%1S~rxF*_-o_naGMek@Cu>6{g160f##Q=+|t z^s&D~AU|m_uba!yly{@iodDp!wy`^)5&74ePGRa8LvxY}0AB<3ADATIfsQ#deouPh zr>=H(aNy(wOs}pTK!gBkwqpvt%id%rgzjAS6~Ypghhk?lf?pQO6K5Ts$22HINHiQm zBvJ{=NvEge5GI;_Mv1JesUH%i4gO<&iTyKt#oYYynI}3$pBOp!W4`9$Dp6JAN#CX7 zf?->&Y4%}BvF6q1KKfrg(B@V@bGSZ*YYA2}q z+)@@sSm(Mj$7J?b38v;d0*ET}$A)5h_&RkzQ?-cs+XJDuHqv3UGbQ*e_khUA@FE~< z*b5B!)yaKoa*T8%KYO=NES*=W47F(Cw-D?2i&weFXEcZRnNO z$6BsHX5VZ+hQkekndJu2N#u`X3!;#qvl0B%6urc>W!cuo7;W>~O8Ahay>)ny7oO)| zWw`}r!w=N}yq9;&rll#!*YrKW7s41`zm)@!dajx>p`D}vnGvmwWW-ObF*gv=!)4(A zi=(n6IoW}0*?QZtVF1@rP2zbDM*a?wn5+4a;UX}1`E~vhDddbq5#FuH?-~<#C>M4D?ZDIr(q)L z`0WnF1%k5cA(TL+0(r@Vn>nx(W{=*Z=ze{|AGRSE5}qt&q$S;QBH4FZR8DC72aVS_ zF?X4Tk1o9tihSo&y=YEl_2E&^b$~he2$;1gWY+5jla1#xLebY)Iv=n;*p|?{$UU>- zy7TcmVl3{ay$`1z{{!g}`-fy|N8<=w6#oJJeSmPz)4DV{hH;Q@4BrHmh z)YbQwTgpb{*xnX@A|i_`qtG~aJ|GVKllyYzeW6))=N%k30jt@;427^wF$hiR6qhHT z9N7ko62mZy{6QRFkUMU<2LX?9A1!UU&|OQ>EH8BBR)F|WFc@KmTH!Sge+!5<{S*7S z6dMY5^d2mTxzw0+5vhrdyjC?-a%B=o(rfKH^I z$JBRRz1Jz75tE+A1O1H;>i$RT*BjP(RNl4*WX@Dd*o}~jru(Wz?z=ceCIZ9i7(j|aC-<{Pud)^ogr2*A(Lnl(s5D>29DF62)n{mZq? ze`&ZrR9;@FSy%wYCer%v%%%Zc2|DOv*!1cyo6$$&!JZHbxx2nctl>pobQ2Do`wO+D zmk>&I@c1OeZc8k=XX`#*MdW*$iH^WOB$-_E!k}#aLK^2+nJ5c<5X*OyZ~eUiVfnib zK@W{H7lJPQP4Y<#Tf)4}elK2u=Rq8i#(O@W1t2}E$z53O=0pDekhU4nj#bxkLuc3iGJq`#+>Z!YmWjEc={YEL>>j=vixo5XR=48 zYmaX1erAqr9B}p)FkrgX?phCq{Et_>ZVOE;1Fs1rDiwEYfcdlBrSG6$X@ zX-}+gImV$bvO4-IxD+ciwj)lIe&>2y0v;#FOxm(cz7pSt;~)fxMZAPupU2su36Su6 z(22bkygLaXJkRl`MeSGR5xmifAeP^->Ezq(F((7A$svz7p&!o8Q{)er9}=mhjt3N89G?HxwFPgR zTHG5EFDlt#-`Gbg4|ymqxrLBXqO@S`ze7Xu&9?CT8$8XfX^WBZY{J1=dYJh8>cIra z6X4@N&+MBZoqqV^z(d1jZn;fpA3J^_K1(Eayym5FmLm1~i_YfVz#{=#G30fy){vot zz{ci4S900sWxWtIGi0ph;DQemS`Hk|zA7f-G$T)kqX`_&56WR5#OSBi?cIM!vW#Da z4bA9#WQLY-1(!X?;iEcGhSAm3?cLoouUo`JCy)Fnd?2`1yq!|!XdC{w>DxsCsN^Jd zQTcA=QQHk-Aa)NYm6j(;CXZ{nIM-UQY1&S@cNB+;7i+h^-K$ zxPQotV%ADKn#7HFIK>O28g}Gxc0M2gLA5M^`P1rGY#^I7kkAEt4dh(tp6fUF;IvD= zq%-#d9lZQnDM0dsDR+;ZbxNG3?J;5V-A-g;AHI_4Om@8Gl>9ku1- zv-nScHZTnO=i<%9UUfYbPgpF>6v;jQPCGq5ZALZCxR>s#D8q>eolrR1K>;My7$J#N zqfFz2{Stp~7Ix-1)XU-$)wvD};Z;*Y5**s5BA^UnuKA`}St*PYAt=vLB9OefX{G^9 zfz+Krj2SG(0Jvr85Il(!B2WKKTw7Lk+i-UbXIuYYcowlfNAuWnVy7%jpIGs*_FLLbH&K8d*&7&k z+&Ucc8sdGsKwDB%MZ@#iAu*i$&Ny-=;;Tk?VqO{}?wz=5R5He5*ERfL01asSFae|q zo&Ze2#kU$K^p;Ilwp44#E7ZiE2%lV?=`MdtyHxAf!sW!sZBQhpG!G=<_@|MUc|#WL zCVK@GG^x_TQtYnqTLf}$C-X@!&SUlTl8tQZTLS-yY!TN;PE;N)HlY7W(Y&>CDl zFX~Wfmo9oEHmlEH@AZEC#xpcgd>o5)H`cM%y59HMQvvTD;q$@sQj=41zJjv?%9=dw zcy%s$iSA$O(l>Z2p~`GG_+ZbuOkE^?oY*(!;v!+){8ab=ePiGHz&!%J$ZlnMNqN67 zQr7NeY;cIsQ1QjDM{|EdNjAW*L-#RIR(1z6$#`Y?{)mnr0Q~ryG6uK5Gdlf2V{dE% zH{f$4JejdLwFeiH$o08(o3=-r7HhECc-u=8RpVcv@D&$8!*N=vc}5e4=|b3rgRdp6 zaZgbY%kp0H{@@xe1=2>^McR^nsJ}mXBGexF`7KlhKY-?KbhoDf4HMevta_hwm5}KvC6pEza^v7rl z1EP+mvDst>%aHl?jRV}TQ9xtGJ4P$>KJjM1>MLv}GM*77iAbmjd{%HO2UkP9Kpd-Y zIFhxAqUEmsik$kn=T}M{(ls%s(UwUFH@PP2S?krt9!Eu7WfWQvVg?awBxe2E&i*ZS zpve$JvSpHH`Z}^s)%im|^KA!_m-qSC?5Xh*5dS-uS{14usZaIt2;>UuT%L$Kos7Z}Hmc>?164`_7Gov`RESU_s62waHGFe20X&C-WP5jJH zP+Gd6^8VXGi2@7)x79>@=BMEMD&`xmuA`9Kg;N?rn5!r?XWob3NyPG#rcm7Fn)IKL z+4GKr&LB>+jkxq9$31=mhD;EF%3ij`6&5Q6y+aYosaoP$_Kq;1Op3I#iU7eLrYoiEQf3h~$fhXI%c&TyOJ`*oMfwxVHt!^Mw87Xe+- z5t!k>Iv7_jj$xxT6OsH5^j*)d*Yo=9tt-olwL&6>o{ zQQ>9pcg^IKL8F;{iei~_X=;9^oJCd=8Dz`6iUNY4a@rCfBg?>mdKS?->Ig1l(hx<~pm5N&UVa zGkgC3h{w|d?m2^CnIq1${ht5lJo&yDBy30@A)X#bkCK_wV~&#y+09rxELadWb^G=Y z=_+g`Jxt;V_@Vm7kp`X+KimVTIv$4x=g))*Q8TM9U49lvD4813+x8f5MBCB{QT)*} ze!G=YfqMs38OgYSAOHvch^MD*i*)@7a;>|wy%kWXR;@ijRVM`dNa3g{Oj?q5#EN1R zOToQ^_F;pMAU8vHW^wlj(>Zf&E#dNmk%$r56wZUoLxq!6-n{PMQu-!$s*&u%ZO66j z+(R-J(}^OA*0M7o}z&~ozXi@KJ|0V&w)fw*f_u^j=4jzRqQh9br)0# zuCejHc>uEl-pvN%9z5R;ewYB&SG@l@=bGJGa)Cy%KrfpHxB$s;SYpka_MHsTq~ay5 zAV1=71&y@4-tp1Xi}Y<=QD<-eoN2aZr$ zucHw4v4MLzD(?P5bFszo9}-XHJwNl#wq(VLMv~%f&TfE-U#9%u05hC_NYB=`kU#dc zo}AEp$A}fauiOp%n5OKEE;Dh^iU}wK0-^-w0AlJ<=%@?$&D5;o zT?Gf`n8pJq#CHdj+1xyi(#d1CH9r#Q!UrJW-ljEU8W^cidlS9%d1 zS}vdcyb_7gT^bj*PxGD=2U#8T!pHp1xy=WzrKR@K@VmW5oj<~2kRz+5R(+QB6m`MWMJ8m0j?$L)p$)>lO zjJUe*p{x5+H$vT37{U~|bkYq>A6}$A-`bP?Rm$t>o=5s1NTV2pwHyv$C_;h3>UBI; z51ElO#mS!f^nn{*(-mz_Rk z^P|MFe92K+mn`0piY@UT{NpLw1Zd*09dnui;|jduG|#+7>GG0cjeZZxR>>Ds3{u52 z%#FXze@42xn-`SMd~ud>2%UCaXNg`1t{e9Jdh!hu+xhhnRft94U}8r5+((h?#w;zn#LK#Sk0=O|$yd@xb@PL~=KOS?94zH@^Sk zBxYw#CO3rV1PbIG~!s1cSD4oFji3-G`YIw8FU=N;3im~4k>!%@y z2oY<(IFuf7{wWPNWB+VnF^^FXF3{JQg=X|9MRml2^8#^d;?r|B#7hOA_;o-dqLXBE+LOvJX-!AN&4@eayv@$N zGlOo==gmN}=fk<(R%zv+#Bd#j8KO`wzfcjRR zb`j`nTU5Fy*WR^K+yFiAR`ToJZ-|CaHK^Ooau`PM6;6nMwtr!nGVN%=MV@;KXhnKF1i0% zr7~Q9rW}DD$vO->@n(Yc20qf!gWo9F3>bvDZc=-8+FNhClEuQS%o+wR%o-Fg)CVo% z+>Vb_F5h=aVmrNMj)|rA7-&$ut(3^OU$&Md;3nF2E6VV4VU*mTvbG8w5pV4}){qK8 zM(>`fu;X@rdxnw^;$Wf6lNJhLHntmfAub{QX&jyO{vT4p6v+vWtoQ0FoURQ1dL~aR zakWU6F@t%1$d5g3D=r@zi*rmjl0$=i=qr{%VQM}T%N9@s>T$>KK0iK*zFpw2I2}5> zbWtA}a#CJRZ*X0jIr5q*%lxd_iLE(4`Dr2ScFRv|u{k$;Z35h0BPoLT;-JQda0rlA z8}0{3c+$)Wbg#a|>yKmbqj$W7;Lz~aUiVNq^i%9!XVsyiLI9>5mQ6ji>7-TQ?OoHuq)Kk%ru|DKU_&lWu;4E~WLRp> z+B(Z(;m;@_-R*mZ`O}^{GWLcOgp7+$HRqx(xcdu(f78T1bDYCX=TXs9-m4o&b3+;x zEBs-zZJ;}4Lor%NyI$;myx{dqt{F0{BdUW|gZtuP|GRuXt;CX%m$8Ftpx-ZrX2{-w zrl_g9HrK;SmGHgS?PApH69S}*r~^#`n3(TcO0S1|1_)^`VFgQXS_dc=9;f|eUuq=R z2lz0xR1wdiTuS2KG{i9;A0O$A0KrN~A!6_`l>Y_)_+ z&m4ASG#q29;M1Nxlm4kB$uQjZ)!Q1#rXAFZue_hk@RMdI;gcE8#@-e{bb~N1Wj!LP!<^eS-5Z^ zvy>Rdj3s^qC>@(p%Wr?a0ygx*ofC~%Kj@vE6#3B5P2{P-o^U#us|AWX>&{h?iQEk> z+pV!dxo_3v5UxS_D(Qgua>j&}(gjC+;);obeVJ;3yXESM28EF&ALG_eiAROvOht*4 za!;+B*eB1I6p5jUSLDE6MPhr9<4DUYhH{cs;G?ss8Nk8gHHuK3teKByPKir~CInSF>RuIeArxUsINQ16c`e@c8GQNYtH{ zaFV1~9~IfMhU~0=6`9!B!^-8j8mkbxglVX67U9{A=Y}!lXFvjVbHYe z6AUaPqj;avW!V6IE*~piM+f+-xnLFt1xCK{yU#X3)Yh5xA=cfrev&0W`m@ssPWS); zwvL^8$#eS}2o>QHJ&s86@BZu-{6>Ylt2^rT)B00Xf%?hdN#^r{ z!lZ`Kj3lp4m~j5-9#+-@hMK4GOh3{Hv7OT6`C*o;;Z66xYX}C(};GQE@uBai5cL;BBFM z?uCtiNGUT9Aj$LeM-p>9crjSc1^DRe+Fk@m_867kW{=?67f`pcBFeRqQ0BGcUKT(3 zV!aBZnYRSKb8dgNbdN0r<157RR9&n})>y-aPNb+4$LvcO;cMn}Ddb*+*zplSvLpFL zu!5{ie_D;iPtJ<1T)y5H?>pvlsr863=%Mw)0YDCFsck62LDaz(XtSfXT>PEe6lNCJ z7CpvETD|rt@k@GB$9s(U&(I;$vI`(*dF5|KO`JJRSDB~9BI2auUL_IG%lsAc%`0K& zZIXSl0%mO_o%A~=g5zTP@7SadFn{4`NI0g=gl%k;$A!Dd~#>CPpK#>tzoqYE@aeHwmD)(M}m37O_EsLXHTUc&@fhLEM# z%gObFQ3){wh$m7jad52gk{qX#N8)5{QD&lAhF$HCB zFquQS7cHI8^&?MhF;KT zBq=JL-()fh06l2{@{_#n2Y2GS|39M6GAhb9-1>B#lbeD8WODF?Khvd*L3@y$7eLUx^^?u+RYq7YWJFjc+-_90Vc>Y_-%bGL6<^!EX zz00-~4RwgTznWf&!MOWNv>Jo6Q(O+6^Ohs;=U1ZRl z=Ce>%XfYW)o=WJjS2um%DN5j+irzXRp>4|q^9Q{2QwLKk)`Sx9sA}4hg3?Ob#t6j< zwHRf7B;)Z8nIeG)Al{V#c2Q8$ATt}Yj`P_^nOzscbTVe|lF_N(z4oDPED{aFJksuY z?lKgjupZx7|E}l$*tVpMAuugh`$RDHq%KU}mP%h=LyH?LJWrHc-C?iE687^cG*;&+ zzPKz(WJJR#7nU%=h^jmoD9%VEbGXhyfvPX zWW}@7iO^%|=}S^zb_F)veZ1ixTV_V$WM>8U4O(u$)Adr#QNgyb7Nj*yf6PaJYyXxw zbJ|%tR2rhzNfPih>;}e!V(OcNjqDn*Ja^4s0cAn8&K0nIK zi=(`)4&j|dhgt15g-;Tb`bIoQP20Pke*?FTCUrCkt@R=)p-D$Q@+B`$b^>4VvRH_# z=8E}9o`;3w*IrO(zEd--m6oSc#8%7*A)p3@Ci*x;r?B0xhhVGE?YP^0lpc@h7&j+s z=roOo`R<89-4j`;pLalBNWFX(|K|v_q zJpacvwtkN3tbBA{B^RLP{8iw#r(3wJ*}Z6YDsMID{~z@M$p+Na%6usU@9<$wXa?k415AEf@n=;z!ma?4rYNnZCGt#J%f z0GU6Es%A1gwjdJ@r1~BTXseb9kGie`g!?78GpLOYZA6Ao=rD5mWFQ<)hSXZA5SZcW z;ePQ+&i1n=r)mD9TBx)%pe!mFxb?cU}7f5kcoz@g3eV?GtV{ zh^K5dD>>NIr2l5f#R)!u{{G3fDCMnj36xW9g(dO)F&R#Ht&X4* zrQW9OrZNuFrj4qJB5+~t2PEL3gvyjlE5{N8;JTVjU{L-wUdVWd@RfI{W<$W2tvNAD ziV>m5zxn+9I76N_*#P5*LiIIte7xa%ms5Ou-V{$@nfTBMR zgk5|rnt+-JUoYQQCA-_PM7Tw@nwAKZs9q?qM$#g{MiJcDq1p0zMe zZvMvG)#7l9NPN%PZW*ipmSE14O{IYc+zl#RAy1MZ(T=pFElkltLuQ624H+g^V7$sFogn)Qn_$0t=2 zyyqv}`1)Af?3Fd)Xafpy&fcqc=geM&xGJoAU?*Yq2CDaH-oVcU1Qb}lgXm|+5f?A7 z#@rJA9^6zOp;mx7;B>?5=5lk#bM$26$8i6LCzy#6?s~++feWstyq{I?X@`CtSRJtV zBXi6+`=u)_2fj^prmwi$K^SdALRjf+sV5_ua-8k2azMBfrn)Kc9kxW855{*DiSf|WoClfFYD6;QXTqH<21Ag6!UA*b7i(~A>77Y7!)6i zF7vVTX}@9l+P4#lI5ICb;e=XOZr8z9PWR|Loo+{Nw?Z`#Se8{-3_^NvF-#o_+leo9G<2h7QZU zB~rFHc=iOQ^rBv)piiq>!(!)mkzvFexI?nA5#Oq7H37Ha@I3x!vjPh;%A6^q*l7`Rmq_xSG znyS4&Ln(NqHo=3T)S1Rz-_#H1_=skK;}mXeo0q%xm{qK9=RhR=10a@kzC`Q>OAR>= zd2a+~j>#!(8yLJwfBMbUDFwc=EQWJd2H=eU2@%6Y!6(7X82`|O?hhD{w;p6B$T-nd z6?=7@xsIWOjCP84ntAHEJ)p#r$hawmYQM6le+SD~LokgjjX7U4juxw*p23C%ux`62 z;{!lHpCu@)jXQ7Lx64-8`bYlhi~KiQeP?{joIl3sZ^E-TShWR1!i$eE!0e<29xiVL z+xSQkYF}38A07R$ka;t;8;PMUvn{m!=Fc!pbn{VvK(XjlUxJ7&(?*8rsM61+#);ZO z&s)rmA4l(Z}GMH`?Ov zn1&1>rI!f=@^-!@2>gV2?5IMNP-yw2!k8|#L$yuJKf{$__V46`wWMy-k);rOB^Atm zb*#Z+9+gv@3+3fxbu%;eZU~IVJ^D_j^HrBf-f=b-i2i?8&e#s-&GEW><~2kJipx?O z#sf#r*uarfacs3NmkeD;l=72)Rp#Fy7}<@Mco~zM_jx+usl`c?ZZ1te8^gOi4ppZQ zYpQ<-nXCXjhtaA_UIzO3(IiMJ?47j0NhRI9_*KbgXWbK;eI5EqJnY#KJUj%nZzTUc zqc=<82H-~W`pMd(h}X+ksu;Dwh|{Oe^jkinG&+Np?WcOoI9pKjqNxvG?Xq2Q zuvG9fLtfpQJOjKd8Y*tfA=IzJs^^aQ_Hn(c=Sq^Fj5A-hpjXa|w7VAN~_vz24POSbdu+n-Y z1{d2oIb83Ko|#d1qOZ*kS8PG9fWUqHM8c3w4=ZURYbm0gh>FJvwnfj|#uMT~iaW}N zo8BZnV+-}c;Sb!mjg{3_t7@v`f|z>rIxN;wuof7 zcBQDUvwXOP_?Y`f$9fH&=SSn6?u4Xp zAZ*h0jg`q{z~Dhe0-xbM3*NneV&VYnuJS(&rhx1|;PwBQpd@p+=_}|%qb?DIfmIOq zPYQ8CYKSC@d8wV)+*JWAu7)Vw9?_Prk5F7`qy~bNX%LnX3?uL@1ZxpS|t+4 z8I49t=vb=PQm1^Ect6WO`}G->t_qh47Zt0Ac}7Rs^L)IMA?MTWD**IpF^p-&*6$T@!wzP zZa7V~^oBO22$tTRsJ*U zNOoqskQm-y@5SkKcb-$ps;iS-ekm9V(Iw_`ni>lp)oZ(UZds609-UbA_RjAUYFIW$ zCvQWrx2cTr77Q7LL4kG8q%DrQ@V<~0`_837(nCJY+poU>wc`3xnM7@*pS1J zEK$?}B)3(h)Y5}yZ7V%;vnuY44Q$9TJaqegL@5TkbbJOnldt$&B?7K|X7P?BqZgzO&cp zysWR!O-B1=NRiQ7y4Q<~!?R$rMzwW8zIU7#Pl#+b6|La~JGQj5HjvGm#y_zsJffKg z;^YRoVzf%aoa8{2Kn$7mhc<3uuJ-TgSuxqo?N)Nc`=gFneWC`q%vb6)srBEIYm<=F%$?2)9mCDepKL=w z{R5M;K?_O)lvuh=Fx!2_ube(2d+|UvMO@A{KKYc$n-E^vA<+!rCI*#(t3dJDdk& zLMf4Pr&f;Ua%(KqT0HORh19&>0GA^IveMPP*8QNx+tvNq)wFK{@W8GuJX#D>`jxI_ zRE_%L!(#lB{{bIUEQ?*b75_Vd9|m6yU$PlzQBA}1`Qhai`VHvq@%i<)AoddNp&vP; zJ68W;7`VPM;RKQx@g2rKo9$JENWCn=i&R>|p_o|jt&-OQIYBv%H^8}Jq;COAA%IL? zJ&Z^1Qn6uY#^+&BOJC(tU|^s2cC-PP@00i}0X>W?p-3gK%f&AZC-A1v?N zgr8WU0@ilXgwZZbPNLhi9!GV>hXrJ3yB=xlkfpP6j^|nL(8Us}nYL1`WeCBFc2ea4 zHpZYTatv)C)Zz!l6-Eeg?o#F-7)b_Qqhzss$)yVt-z3GUb$WcRk{T3dAZYk z;-Qa_Grqc}PW}S%jrvD^|_yET-AwZ zn=+7Rt@h93ak}YexIPaA2m>_%hAGy|H;|3};$vq7vDjOOlW+SCcaAsCxWrzYq!)Z= zLLsq1m<+kn-z+wvORxA#W>U_;Vjqul6o-Zv*g~mU74Na;_264_Ly&iW`;jszM*eau z_j)Nc50_5od@5~5bZ9R2@^8`B{-8H0o@Ynj5_hn4@%Q+0Nt8j z^RSyk*% ze3lqLh`o>hMS6HL0N@{}s;F1S_=Wq)J3)Cn38|TeV_g0cC2y+(c!2{6l%5;JrtQwa zRuE#v+aXr$o!+@&zTZsBXhZFzmjvDe2uf8!-Dtd^itwJ7U)N$d9&8e|Y;E%(hjQ#y zd&8x}m)GMDfJOp%isGXuT^fFr>~%}`|9df9EuOFT2Vaw;Z1(+W#YLTkGh~6^_7?st zD61nV>F+V`_VIHfD~(?&S~8VQ7Lf)!~RhxwlNGI zB4E#7Wu9C8krIHnVqEl=X+|rRe$loGI7fe<`QT8yUQ6PFng*AczNXoUfe~ylQV@y{ zFK=2=E;Nh+?3|7DxIKu1AddpXyVgsiu^kfJ?3Ey2&t zaPaHBX=kW6$=eL%djoOph8+k1`9*#hXd*9QtPHzp3IdrBkG$IxXV@}!0K%5jtJDh0|<#963>cQ+co;fDD>~Jfk{@C z4;&mumhO{yqHmrs;`LBi2I?1IQVkC8&1ptVFfXK0yRd`6KH?NR^Q`f$&TCGuIW>aEbWS4MqR|%v=ab`}VH~23V(gT? z`r5^1LI%}WL|1vQk6Ez$sZ>)dqEW}_3|QIXQW4ztU~$}IBGe-f7Akkp>hKwjlHP@5 zG52ja#0&T;MdrVeCL?tCAK9MuK}VK7cjoZj$ac9Qt_ur>^k>c=QXGLn#>DZW#xZQ8 zHtARIZ8;nkV3^YidUCSGIjzqzt~5>trK)`5x)$2lgE97oDUU5k8Y#t^^-?3`33Avv!k{T;`}Py z)U4Uhh$U<`Ei#injg3k@17eu{(#Y)h3BKvO5k-@Jhs=_tnwMVrk#2scPRCDt%GJ8u&4IG^ znq*^eu_L(l+HIQet_w?!DInjGoGBo~Vc4<%Zw<@I-s!C8jGa4d*1eH28i`n&bF?i6gx zN`AXp=mqDGob^jO$h@qN!jrsI^_6L#Fy#N}S6@ImSMxp3a4&$;$hdZeSl$$KW@W=p zFAMZmr%n?Y{;2786IKKmV z1!E*o>mB7LV_+(^yM?Nx?tEsFsyCF_PUkdT(j=4_aFJi>p;B*kvS*S=7$ha`1`YWE z5^%|%C>L8+xGY<{pdUAF zV#(l<0&ileu}AoqnsNfqD{>BaiY;rL5J8Ts`epV zA$efqVB7N`ZqxAaYU7CNhJPt{fd#clVn>*%XhSjn+bu6-*eY3GSv89^Ji4*(@_icO z(8rb0x}OK>OVDKi5%-k0IC$sH;s~amvJ9Eo_uXZFX_(SD;33|^9wn89-joCi@}%)k zqQcaO;W>~67^R;AP5_r35pNr*yqC>)=1uJ7RhR%<0;e67izsRi7qblPm7)R~=1&Vg z1gr`U!U9(%$W7N|-XH7p^u}sQuYahyXr^&YEAn&GN>AVc4t}kVyH)(0oQj8vk8nFg z`C%&YDmjrY#b%*R)bNbcX#f`$%17aC?f<1S1KWejb{hUxzAhcc;f1gPHq z7o3I+c-KA*944bJ#7lTL}Zs(31d?RzNC#Cc& z@eJ_dQ+!9iI!$LjeZaH(_gV}(rp1aSP)fERQ_R9FGExg@)>T zn>b}}_5Fc+M9#ajTS=>|_fCR!NU0?xLX!>g6>w1g_7u#{Jh)Z;55uLW;k~fVg8%Qp z6$91o`}>K`Kk8}rQY`&$@95k>^bB|gw9@@6XzGuJy`oJ%*r?xeo@dyph!t-rg=}`4 z56do3TVfIxSz526z^WaH8{*P59o5C=E*H`S)SQ7+W_2I#$&YHLQp*ZhlYhL*d~mEH zZKsOQ-x+VP3rOFK$~oOX3c!I+lh2qVwAA^-ooHFtaxC36<+IhMC1>@gj8i(>*eWx6 zqVL$4cwd#-LU`N%>Glj!NOn+6lidWAi*gT0yS^Amaw{i~z zbppAdXo-sle7nTO(YRX)dmkpE1$0Hjxj1!>IyBtDOHUoS>(u$LG?5{nYWyPx8@~lR z6>iT_BYM_a^p!o5r@MOnKfKgIv5*Wf(4H4 zo23%$d7&D+lZEz|#4ru=4~tzG@Qg{r_wA3uG^VAV7zDGcv3YUMws7i3QW7AYU`CHRV6YU8s%PL6{&Sk4*Uq^ZhG=;{5m|njwc3%d1$h?oi#aW zysE&gfR6OM{8T-&T+!(D^=a1u4qnj%1{SHjt#*)YfUtzO7w$mLMKx!^Biyc)S1jZi z%S7jHVCLvN=Au zc2|mwhvq%W#5%$&zENNQD|f;>W7k zi5M_D4X4C)t0Gr0AQ#+VHwcX?gr=D{anhJVWCwf#`)BAk+B_?LMTo6Xk?+Njsi512v zbry~+S)$)3CRhTlfYbbynTNqbk~LdO2Kkz zxH3X#6rW^s+~Vh*&xZCI6D8V$6fZUT-}aKfnv5lP9-}Z(I%GPZ{jix{$nX8F;WnNp zOWydM43csA90;r+BQ1>RW7@GTMcC~0PcN0fx3DBN2K4{)QkEhO!Exsx6K&IB|1pUS z6CS+KfeIS+d9`KgfDTG1lJlKZ<3jvlQt;ufz7B4Mi82)?=inP%_3K(LTeo)g z>wCrdsn0}DdE?jshibbnR*<{$_U_ZNG5D?iw!x>D*oY!nzDJp zKIC|1hHl?A{NN%&Odgh_B09Iu_^znrOevI6GhlD`)%%HP$s(_OH33&Jixe8P$lMK< z#96ISxOxIt#BXH>+D9$q0Vu2wRZ^l=vFU1mVdSSQl*Px!P5#5<^>DyEM17B#bWD&_ zY+&ryzSO{0{^3=4BOjl*0am zLB#|M#@TjNG5rjL?V@e=N{dx7ifw}0-TCrg(XKf%{<}8DbFB~sz&_Wm(TB=%A|Iw= z8Dw%~9|6<$F6@pyOD1q>ZBKBM<6|ciKNHQLpJ@8V{?z3m`2DY2aSi-F-)eoEAUmNz z;k*&cYuSt~KPG)v4^+Dki}p<=$!PCJAY|~Tda+A5Y`epICOAo#DEGWiU(Qs!D){*pEe_NdCV z0HR4Qeo<`9PFz#;?Wgq&TN_G-g0)de% zmif;1BMlD&6eD7cbWeue*){*R8A=941&$o#y-6x(H*>FYqyNvCg8S=#PW$%90g67R4% zpWd)x=y>30JqZ76lTALWO^KMv)8C!Nz0{)BQ%Vi}pE8vTE_HQ$Pml87U-ZsvBMFU2 z=QB`mgiZG!i+gBHs4!pVNDt!t2~4JDsF{hWV2qZnRdGRAoL6Y%wl9~Ah4|Fi%(v=| zQL-iF<-&%1I8KAb)CU-4?m@=tb|kj>pT_r(HmJ5oEfs#yEh*n-F$q=W@SWsNbVK+G z+=c0vCBqx)FS{d@j>riwlp?+9sAr7~s>s#}CFakV^;z1LcS59VUpX<0`eG;HfQ!1+ z^!KUWG9v-cqsDM;&g4}0WEDm^<(14ng_5E!*bCWd$A~Ymu5YR-fzKA&IM-^L)fw7B zzIXb#>rtS0ab*5}c6bb~r+|qeh2?ZoN{g1>sX-Oaj1L)phLa!Ow>wEc+A1>&E}jl% z*h>Mm=&Glp)c=FK#B>G?S@u;ox|AeG*Xsm=yoPu6k?D7^e~sB9GxG<*93QWVc;>;? z%4lE16^bdWkE2?BYhHh$`V9@~2j^0j=CazZzVQ!RAP9+XaN60Ke(x1)+sV1CS}5`1 zLi2a^@9#iH?I2IJZG5?}ZoUrPvYXJcGnzES(wAS%1J^W>BrON-t`sVZ>MwlF+&{MM zWoGdm_sc40Cqs;dcWSr;80|ZuLAce0KK-q{iZp?)#?*$DZ3j0I!NaC#w3MDnrMOT z)YdTAAo52;G7}SJb^|$U=Iq$B?-j}1ys3wrY}|hw53|<1bRvs)46Mys1;}Fh?Xz{C^?8f ztR0xT#*AQRSzSpo+m;k-)f+`UI~b-T*#qQm3u*> z+E(D@TMiUmhUd0TVY3n-$p?vB^i4L=Nc_0EFo*QF!5&NN`j2X;z=EM43GCn2QU*#z zn|>DQ;WdJ|^OVWI-c|sjl#V1WnUt}v(OkiL3##7jYrtGiA{>dxSKJ<$;FO}KIl+P8 z#gX!4slSNf^-fM_;uQZqix;5LAF-%{78S4A)Ni9)7W>&r#f_izia^K04xz(q z_ZOc>-N?)IUibIyXHkgWOTpUxX$bl1>Ym*M*vo4r%*S?GlwAxBVC_QG#QQ$o_GsBJ z7lbvkVIiZ(ym-LoLf_$xdn-)9?y52nXVg&I;P@t*ckZs|AWTn<{xfRbQUCDgoP3Rb^v-$@ihH+1-0 ze5mhHpX?enxvs~;Q(Gk41@EU8){isIP)dJI#)AQ0uvbF#AEA{dYqh9lM;ytUG=4?f zT!z~oifw4<;D~5l!@#BWwv55^&>i1MML6m&yZ5uF6op)fVwPfu@3nI8I1Em0gq9TV z=kfD5bypXXowhz+t3J6fVPD>izh3bnvI;M+w(s=|un<;URx7}vwA5g*5ZWqFAOnO4 zt^YgEb#>(*XzXToiO5WbX7b>N#$8wJeZ<-B)BxQL)kMZQNDJnv%X`h%e}hAX#k{uu zHZ;`TW$=WjJspp3W^j7!ohyBrTP3DBZRtMLB(INU{R-&CNP|6=+tLv%P2UN*m7O#Z}@u=XVVMLe1G zB;8Rzd2TLFg0SZ0gUzF61;Bx-u#X=AQnXsmm#j)Okt%`K{<9=as(Ob}ad&CYHezD? z_bq_HrM0!Y(=-)^#j|T`*u4R`WlvOwem~`!S6iYUlgNo>!lTF6I@{N0#Fvi<7D9N* zr;~bs1%Zg^mWa~u(Y)s0_O84roA9hENukSMYB=N3hASA+D*qC#udE-hV&Vz>FsfKn zBYnUnhK`Yxe(qIW1lwI+lOs)LUhpB?0zdoGm&8BLQVe`2RLxKs!G8irZYmPfvGv-X zy|)a_0Fj0SuMYIZd<>ww35PzChi!aLiBzh9DmW(K7$Z3go!zu3iqodl-#u8Xd?taA zII|@#ke)R)FrvGM{=)!OKb4{}$I{5l&5RYld&=t`vs|qn!^J9qS64SV@LM9?C9lNB zhBJNFUM&Dkw?zCaIwFQIBJ2OUTX3?>pZKX$@2@J*+8Lmj5%%c{h;`ubihpOYQoc~6 z2&%^K5R+V7!NK|}TIfhBAagko0A2p7_YvHn`KluP!SsM@#a)dTivOm zGg++{pHzpe$UU$3w}KP*HZJd!x^QWYn)iH+t-{MFj&r~z?e24`S-*%RW&gBn{`uMH z>Pt`tM@=Z#ZmtA(6(#`^tT_;M>}y+5&bJP{ni9F_Z?|bALcM(PHM!|}B_%jmh(~Cf z#1}x{CAJ*nY!*d8bfj5L4l7;ivwG($cS}mHg;`h_>8*|<-FL-g6e|BJ7E`6j77Hs$ zO*K}F=7&m{+WH90OL?FVp3BYQv>IaX#bi^iNBSoK0Vil_KOsI^oKctAR1{G87X<#p zNU>N`@AdhSmnn8;=fsUn@L-?&EQL~tP9R0DfqldFp~aFcPvHDZ)S8&;jdx`VWm-SG z){7JJum3&-TZqO=D}8+|ci$Jf`l#(^1^o-}FKuWZ^6JII^vIo~3D1q3+=~Vts-JM? zDCZ8t7X-R}(sG{gZ2(c<=i5M_q}ruw!Ugy`(q9bQfcOc+S~|b1p~ivzg7KPpd7+@> zL~a?-)v#Hyh+gJ#zeYTMm08Ai+<(T@2dFZbY3EaXAA`ShK2P{lGGs~ebCeTKrleJ# zcqP<1s?uL0-|UcCkGY99J=R-r!=AwLShbJR_Si$9t6sXgBFuPQsI18dxg7Lb(V~o{ z=~F{iUbzap)XzVpEXZ`d4vYxH$26!3!@;K{$O|cMt36>*R69Foq{GPH{z9b~g^`)3 zw0d8V+cdU>pQ=?&n+;mtWs}~xB5*8ePFyWA3aZ9y9;aD?20R|GML-dQgg46h1f;Xx*axO^1oqkLUYVXN zDOA3LAv1nvHz>~?5|pTb7xkt!k{0iJXl;P6z9b9t$z_uT3ac%gB*bXpWLtW>C2UY( zKZ=a-CuYvXZ%Nw};{0~&7|QcXp>|e(lRX8Fzts%yQ5d-r?7(EmIr|z# z$RsW4F0>Z8_JJA~_0Er7{Zjo>rvF!b4n+h4WPyW^yJtFhb)4}7-&H%f%!`Wy{J_;u zSGGZVox`z8wW+qcZk;JZh4}OOjQh=<;%%luO*}wd=FFc=bME{U#o1>2l)Z{pGlZQ) zA@pKOf_`{>+chm~A@H~$&~`jx8oJkSmCF&0C{U>jlJ67pwaE*W>?C;3Tnt}AIQM(06 zvqnwEu?8odbOmKrK1wkN#yUO={t>^4(&cBE+(X9L7Qxjk7CL{5wb*>^eO)dd$!!iV zM5Y8^es=7Lp<-NJ;~QVK{Y+7vJx-nd+%z12E7np`@i^{j?1~wc6zZBK`^r3s{F(@! z&{!M0+B&bQOeNff7PC!%_Ufi9c-MtO9OI=Ntgl2^=5Qap2sd*M$E#u)r3UiCc;7=1R@y_PEMSh+dbQpX} zHhkfvQ@XlFh7C{>ACLQx;X-yto~M#DbiA%)XeV6Q7(WFwjq_w^Nxdu7N6|F>Ej`e& za|};{Y0&oYLcQLcPB2O$?BD*173% z+=mnSm+8x9QO4gx|M~o5TGSh_?jcViZIpgB$tm{qw-@3 znqUe+I>@_|H_o1qT#s|25XKH0M>1XcRz&F=JC(xpMdSq5j15dt7X;S50Vk}wVG}IL zV)*2`wTw6ofnu;GOQyJ#9gQ5J3lp0@I(kLZfmnut_8&(gr)a@=t2#%aH>@Qo|6%M^ zJ{Z(+;|Bv=Pu=M~x(qMO?m0AgF*aahTxx9usp0psedLxC3 zDsTJV4z|<3JrdP$;mYJyB?iM9ivFkx3{A3rvaI=w}{fcXl~CgjV{)m^#Q^>fJ}k0UiY%Bw7xu)9)f-NQiUpInaj5oV zo(R?7#3XjZ?HY=0*B z=^2Slg^#}+5Pk_XE%M;%ilP`qjqt+aJ;ZXgk}2XQ`{d!n%DDp0G!Y}_%AsF=d?;tn zWfY3_WkeWfH$=b;gVC7#T~HN(CIM`G#}uK7Xu_Go?}-8Q;~IGaYWSHmF4XJMSMmZv zjiPBwURUYpMIbay8F$!k=3hMOIFKyH`*V9*0rVoZNkw8yv@j9!@6}BFmLI5i<@tL! zC5^+Fyq1~vvqlaE3YqC85DB)v&vg{}o-@R6MV0~9tavZXybi}#y8?BVXwOiE-ryZ79CJyMA%P#>{G777V zrdY26PrOyt{4;&{tSJRM9)g|dk~b7D0(qGg^xCsw4c7LSzHj9VVKw&QP2H8zi#RIi zd;G7KD6VSX_}2c>mU_=b(d%=W1J_SAp7Oa2PA*gjdfLvfnh`b!Bb3Nd!$9-srvMRM z=cPy7#Kb5mt$ucw!}-e(l-!u;CeILgkQB28=ujEB)*yBN_lP|PNM2ic=xv2xx&@ol zM2(VFX;Jql(yioNjG?sqMHEMyo21xvG);Ze zCaa>{!-TD-u(XvqnEcaCYrnaDVS@tJ=6FeZKYU4fnpC>oT&l{<`ya-X$z9bXQ2Hjk zumcIfHGw^jnJ6$WKYz`l8GE1lN}DQRBJOxl_E?q<{Na&_`chIC4@;q5$#`0S9^!Bb z^)5>57Ru>~KU@BCQ_3r3bE@*|gaZCcSo4D0H98F08j5ludh_<7npl-N|#7Xa5c+fM?`_6`JUZ9~P!URY;|4nuXZyH5i$XOif8B)HlY+3sS(< zY#$F&9@ig|Jlkxr7O{TLTan`72ZyKQK~*<)I?^6!1%i4;0sUMQr#&C1Pkc)Q+fABP|C2-G+8m2e}wx$njs zu_H$>cV}?b@q3LR9^-YdoGTh@!OW6j(&=98`w(3+R$b&NdmnjFDIAgL{#b`WDZy%F zVI41*I$+OGKG_ymTz_*&r1sN;S;5Z*{^ZPOEdY}Eb%i$Ek~qs2H>~&cE;8mBG%`=e z%@`?p&WM|-4R=R4Qxn!wv1(M~J}TY?atIi>g;P~4Q}>_|Nm6OMlg17nL=w^TAn0vJ z<)`<(R!PbyT#oSFHA@3^vgxonlQo2lvK)=cm(az4g(>t^ zT(Tc{&F)H8nx=^i2qQ+mqg04Ffm4SkF9@weq4Z*~kI^5azW#4&%AyInj#|t!@9`P| zMeKy!Bm7<*#!wHS!6)6m&UYV(kI^ztThL$a^pM?cnLSZdnmtCxb@@2}EX&i90H0x( z9<13YZi`yC9CsdXl++=P6y$d{HE-YEpPbpJ1p|$rV4xw%$}_k(Q0buBf#0z*z}t-! z@%-k`CzBBJuD$xy`3&H7pAW)nE>30o)gqE&y-5tbOD$CW2422@&MJPpu{9%F2Y_93 zslGfbyI>5HT=SB=JKm7e82ga0Njw;s1Vmj$lE`9ZuS+>xg~j<-mUz0gmf6BxT&;e3 z`*{rO;TPn>th51NK}1d?#fu0H#<%@+nA2s##i5DfD~fr;F$VL_uru68ZZ?!62PPxP z8CQFM3}OkvO-NHmA?u2&bT*H&|7+>r)1j!zbE26N+ZoQi9sq~Z|K-t{5NjFwZ%6yJ zOl}JPr4in7LCvqXq@tmH;nZq)FHn`}8f=+~i?c~5hP4a@rU08fLr?9@9WT#o`=}f4 z+_Fg#ZN{IR>z-%i(>`U(EZryLv6CAGqP;*NL}#73qx`7 z2BU&KHDj$U5g)C~3J~miwW59z`C>SbA*eau-&DaZ3D)vkxFyNQOtYZy*AgJ)I+0DdxvD*_+ z3`CXi4*V16m{~O9!{zW}*;8Z3iAH=%C)@6kc2+NkN$h+G58t)59!1WYF(M`Q?Y%LO~CP? zDEeW4{cY*7dM;&Yb60?|{4;9A&Xb%`o4vyDgB3srPWS(adJC^8zc=ce?i3u58HSXQ z4#}arK@=%b7*aq|xKdQyL$lXW(bjT==8n6zvq3{^B=Gl*O~jAYw!Kp2>@-! zp9eGvHyP#Vp2d{5QE@%3 zkg1^Q_60B!FY&Csb2C_fkYJNFxN#Jvl8Iu2F^!BFc$cPXP0I_8B5Kx!Qu2Ut3EQ+@587n} zvbsG)er}|;a0vP7#~@PUugAG==~m3N-}4-*X|_aN+k31=k$R$pbt;Fcyp0XFppF*L z&{g(m$iRNG>w@V46tsY5yp)B_y?yZsp-OzSGkQhwlTK^GhDtHJ+hXoCP`O`X5q%R} zrF*cp9N@JWf`1{h+!%nR5M`6Gy_zv2TS{8r*1Kqjq z#jdQxior|`1GQt`)HHK~ijWo&1t@FYRZKiy42x{4B{}z;xV*QyjgoXd$_v;CyLgF& zMoa!(ak_N}zi0LP)ZGF4e3Qj%eps{Zo_w4$A1VIwOv|Z#94;ypvAB4g^$?Z6st2K1 zTUgj@n=#}}j!!yljtWauVriVRaiy%KN~fjNTJd17z|wy;ve2JxHN>d4V(gW@O?<8f z(kY#T4d7$mxAnk*g~H5-{lRZwoCv=u3|4}xbF;3rGMDsine~8ZSqQT`uN-qlv0!po z%}M4DY6GDDrHLIaSl1gEugNh>X66LpNtTeawm)L3c%Hz&8+(YD3z#N(M)8d4yXv(s z3I8=a27@+?zVea?JBDCX?EfXfC%;E8e~t%z?Qw3GgzZ=z8#hCvYDqX5-Tgh4kCdES z{R@kSK1O|fB1rs`k}pulVx($Nrt}Dw>h$u*T{qwqd=-Wy?5@cbxRSN z!>b!V=b{M)o7!cyhR_LO0IFn#k59zXWA~ofN-EDYyYu~vI~)gVvxfvH`h(S8QxMq| z-$sxq+3SV369TuC*Xz$p>SBb?7K0TZH>B?CkzossH@Yp^v?&|$QUiW1c9k6smCFLV zzoIY4wQGH+OPnPZ*qr3zFl`QG3BzfE^VqWVcQ6+hza=VyY$0KA^koCAs_!sbZw&^9gPVmD*hWMEt*ttZ9&Ip$3D8)v%k1RF}uexWyM;NWVzC-G+|< zB~YxXbdcGYrYOTZ?suuDgKWzc*Yo0@1Uc4sLVk+dtyCWGHW9l)Ea%bKwL9ER!!5hw z^I3DEYe7@je5D%%@epm)uPB$_Iuy;>uE{AE+CzIPD;imicyYPp1T!{m=+d| zA+h0d+?UA*QPq1}JqZ{E40&uM`W@?Iq81%0#QZ}1=V83`drXJ)6rVX$rb2p!=sX>i342=uS|1uq3g4bmi#9y0s2|8}}^rUc|cWa!v zC-nA2f_Udh{H(_E`p9Ik#5XIZvugL$cQdGD6i+Rf)Ek|NG(!<}Q~Wg>xyTMukP(LwaQk-*k`DOrW5b?FrW2V+m2_cOJp$~yiaFuU@~Fv zWAdrjd-)Gt$5$V%d_t&%0$H`&<7_`Tddz$AwE=6#`f)97aE?O?5nSWu?>*~5Pf>S# z=C-$m!)UzXf=yTBpDxP1w6}^qgOfY0Qja@X%&%mHO&|`#reZZT=`z3jB{_9J+tX?1 zK(6^6>QF#2!kgIC#T&gpb8zJ$--E&Cn1%#`uH{-8Sv96vPTEGS4Wp&@pGyb}9MdlQ zDDe~bak%+pIBy2@tpfeo#|6K6IX*kEYMy^mr(>Bx4h3dj;;IDO!V9iqFV)eTdbwnx z4t(4xl#%zsJ#o20hP+r zv`w`+;<^o?^tp7prRBrk8oV!!s0v$*&G(NwJ**`9{wQ!UV}22D?@$-JuQx%JASqp@ z1^I_IR@1D0EEKq#`3EUVf|DeIo*yG_GJdUb8=^oXv7zzenJ_dJHIEzn91HAZpQ+3ixnjj+4+M##27SKFPWtAjl?a|zWTJK z=7q;sy$nDj+y02ha4PN~e5uY4zD&3)SLpxgv07&1{{952peVOT;;xYNIBkT2d}*j` zf@nf;w*cd8SQizeE1uI5(D8xi2xTY;4e{d_$pm;NI(>7FgWw$xb9-(l6rnTG`?~MD z_W^g&w>d9iD9u0K70qa(I1fN-vVCW-XVu|t!_4n?Pxg`!XJ%1l!!0!hcbADV55OlQ zcb6P5j`igcNQI#q|0~frj^AC|HvdBvt+oyOkgF{hK)IN?o^CfT;Ymv<%lXS*2@ zk)3Df+q7@H&fojc<0lD1ggndr;wIvIiBantz9?`Oq84#-F4i+~NoCz_1+uPDDhV7F zu-e@atNCjgyt|8f{N5#^gWfGgBCy%Ox~)3NwTYTyH-Tt4N`JKU)lZ?^!^aY0Wy{F6CJxBWU3}c<(?wEBpxLH^5LW)et;Eb^ag$ z>R-MFThwEYvYrLrX9@;$TQ}o6kjkc|;m8pQ@YQW9#DWNx9(xY&M^mh%F4=v>1{ym0 zmc(fy3j~_O&J;u2=ZZcipgQyIXB;|ma~+cDLmluhzy&;8})2@@u@duKIz~}-JMy5 z>ee5N&9PrpS(g59N@m7dlYW5pq&3k)cF};5U7R%?-U8fl(qf`6`Dmm(@>PU1vhejN z)<0fjRM7v7VzXKSSL{bNW*TcVg9)EFaky)-#t^Yzr8S*UXvddAw?C>3$3K<;j)5Kc z18H}Nh%8ML8*gDs+Ldh2Vs%aCrcF7TwhRe9nKZp5_5?9j(-dUbNSAkaS5jsJ`bRS2 zHH8xT+Z8O4p{d-<6w%yBTBTm}F2OodPn#8V5`jKa^kZ{MKXxD%D#*4$ynAdxLe0Cf zdzsK$^YydSs~w!W{)icfpVf)@f$KoO>)Kg4Kz?YkH5~X-rwtLXg!gVIz0ci!-THon zt@ABA$|7@l^_JwydI$1-obGgSxbuF0LdNcQtGbtj!O$aq<4$Qo*cn)=I8crwFS(}n zr$*`8BK3UTvN5MM*|ETxCPNesZpypR$Yc^D!hCm4VEbimcHG0|RLa)MR-kBo)6N-}$b+&NS(h^~&{{j+0qnIS0e);fOS;_6js@mTMk zTD-zfKoiT&R@SKQdwRH6uO5^;RyE05=JVCr>`6D1x#^irJ9G|c8bBYHkO6_FE|uVW z24oN$DHyD?QK7E=%M!2ADbmtN0!C^e(oCH|jrx#4bt_TGIxu*hPT)saoBrz?H?FceIMl3-2sL`~|#=Q}~X&A^MjYBsTd3(3M>Q z3=w%EKV{0B?3(ucp(!Qvx0%g-Lwy$DZ+hlNv?z&Qb!6S5+BgrdO}4_)Q9O zehhp;gr^_{BJu-iM6LtxR zVEp5EF6Xm=hvXDX63?;jTZWO8up^;R?>sUP=&L7~9C|3AkKb@$IbFh^;1=4plGUAj z?!$nE;Zcs0Ykf?fCnv3@OphQ0)2lDRvR?wY=TOdLpcStfzJD@RX57sY{B9^4mKJi> zd?bVzqGjU3T?gS6g$dh}N>O-188@bkHPFY(?Dm}@hSP>8^gef0K@~WsrhFACYg97u z?yJmnGROz|bTZl_$2+BL_0DQ}n}W=od+Xh$3XF(~>y~e~IOiNB8b<{QKAF~jIRqkH zhHF!lq|SR>JJ#7aAtIBsKrlzNfjp|b=lk0pbjzSvy7Aw@Dct-*HD(j26ip%^t|GAo z(o{py?jxpb!XnJSGoN~rn&8*|&8spek&Fgfc8_8C5gng&EwqGVUMb}w#UCou76v|; zUag7Ve+lF*&*I*dhH5>%{X=5>s;#;t^@L~BZ7i$UB`gu`Q=Xm5u`oQle0Mz`ztsI1 zXXqG?WnF-$;TOC-=0R#x3FR|6Bl(}(35xQoH&9^lqo=qS-au~}cblzYAS$p!_qVVb zi5RjCt7jRoHvRq#NvfUJ$Z$8+=F3)|SC^A=%)dxglJ=|hEmzg0_cjtGny>P_FF}i6 z3qofNkP`PPA?5mS`=*uTlvPjSHIkrh_1GWmVeL7rHj&~5lJKDiAUd-wBcV`dNbkP~ z#ip#Dq)uS1Ka>ET<-b$1?{P6XNqtz$qV77i3;b|?1vKOjnI6m&0-F-9jO0&!-hb&H z^lKj?mOW}-YZDcFiZM29r+FmGoOxS23ipBhqdP~tLGsmL+i0(+L`Mm{fP|DF zLumm34}{W=e0RNbxPJ&YDB@OyVHUeeMD4b5?}{HqA8}7FQVy*zOG^#M+r9tT@ab3S z)gAui&8vTC8)f$p-#ql-7rd7@bVBz%%NcY`@TT^8A)ch(Q6zG{erst%F%B?06J+LS zr)?5S6k15_di=j5;J3Oy(hygcQ)`{Vb6?IW&Lh^3#Is=y@gds^(xrG* zipR6)fVs=h*f}D7MFQnyb%e4#okA#<;Q=iB$7Eq7+#Fw@v>nGXv&Q;6if6|tV3X@7 zhHw8v)Bn?ZL}Cyf-5)iB+}(l&g=fUqX9vH_0cOM@vEQ%F$i#O}2>sXnBmzUWXZQ$? zeh(~!{C?-5eScLB?ymX3lUOH7mQIGp&_ky25p$#A8{E-}mT&hs3R*-Zdd%b52xL7= z+agBRNOz)V4dR1;<+wQoRjmf?0xSzqwJIrzJ*)7<7C0>Ws|qg;n7y}=_!mh9n(tU8!r4tk(h<e!?QyqSmTl$W+UC*!gGuLZ8+9%GBpFSu_l7_MkdNRpn6&q7FMC% zSmM!*&j*Ga(uDLNs|^CoXN(e^{w%tr2Cb|0&b zx_QTF{jJ$Wz1s-(=Qey*9WB%JbqK7dwU@OfY zPfLs5+OMDKv}ISfCU)lO9xA_MwU4-hj~?`6HBS+bm4@W{r_nvi#^@7)Wx!V@K`=NG@kwdLKhH>!dz$z}$mL|Hz8ZKT81WbI zJp3RX=FvF^!em-CZnff6Fgd1B>JlUOh3Os_A)a4T{->$$#w%@8FVkI&*@E)-^=9rI z5W=~-eZ%;q)-Q}nMY3)wFU173>}lQJ{@6(&D~>@|aJ7r|5qf z%b=ytN|M@HKCY&!`He_@&XLM)Zbrb(WzdCgV$Y#Jew|WuiAV2rgwHb8t}kwm0ZkZB zgETjxrgHS(SlT>eqY5cJGH(^;2S6xnL+&ECKme25K_BL*cNxO8&KLRsWCAXBwIL$c zHRg1#&cM@opvN3DuF)%*sUS#z`AdL-f!45ZwgxS@kS98J&D;GCa0V20_t$fE%>h*L zlkm|Gc(a z6o;w2+n*M}AT*sY63CT+aQbR*<29kF7zl`Yt}>kMH^ADEA^*^T-^a<%%u&%rlaAI< z3v>IgT}-q^duLD?<*O0Y4a9hRHYW&U);J>7`yh@W**(gw;H#+J_dCcOxVY)KS%t{C zA$y?7r)PB0W8BpH{o>nmt-<){^;Pk(g0>VnTg;_*)q%2*--Ng;iR*-z5BVdaRv)T? zwT}j;l${%ih4J3Ae`t?vMbU{kYVI4^q8SH+m<8$cb@k&UHb@x|!LtA19o(KHks5;k zV0P+PZsf2~USEB*OS+Uxx7$-QUc-~<;RvIMJ$KyN6JuB$b%^?}YXH4cym%Suhih>s zS1)9WK~w@FMXisQ9+k%*;bBSyTUoh&lHTpTA3l|$vFc^{&2?tFW^)tNkh4s>qp?q! z&BYv@AXvZElk-G5oZg{!UL$!k`F{(<2?M!(y*bE&9&lw8-mmg(@!vC8Z-c`8fXQ}? zw&IXDowfFk3!ZY^BtWq5rI2A2SL;=RUVf0aexwhg5tl|n4DE{}`p1s&%z>I-pNN-+ zydfZvmbp9ahSc(VYm^$?lEd#GTH8)-0Dt>haG0fvQwz`Nn4{)L+>E;-zRb|PV#Q3{hyAvn? zU2fUiRSJ&!y|XVyDom#UNkC5A4@VDe!*||czNl9AwZGx<_68v#+>HbOeygI zecX(>v4o}T2jbWW{Jd9%WH6G?Oskk`-kTV>vNpJY_hcr^rd@}vwH+-xLIk!FEd8b% z;t;=FX7k+aaG-H5V@)akV|X<3S;O%s)W?zGME1K$SX;UnF=4!O{5pP}x9Fyi zRGkvI*1@_9v?7ex0>%d)SO#tc(l7q<+4>K#lhV_~Tr3hevj)akJ;b957qrD)CK_qF2u$PeEuM{Suz%CJy zFRZ=92J`frIfop$HE9j2`2B}HA9ago#*TL4W8o^c5A(sus`sr@!##=2w&7^2j0Z9Y zb3_?{F<2>nW68kM;0`3d;=ptU6L|vI&(656v`D5#sH>g#nA(^CL$SzeqQ!^tMa^F1 ziR%?w8F7xJO#?CDj}!fU%PEl(9j;k1tu=PMFN(SH53SDUPYM`4`z^=pD@oP{h zL{8?6e@Fr4DAeq*Jn6ksU1JlaSX(+EpS3+=dKiM=q;Njr`eVgc9_Bs1PD!@y@|^-8 zqF`fWm6so3uxfvQ>o^n%K;Hv{6ADFm8(fJq+(0F?v+|f0MshG{1C61DnDQp2eCEv;BC^p!22}G&9*H9G)gf z$0C(-ZbW5ov1R{lCo^kp@j`s473)mD^{v&8?-$o6>pO8=)m1_!D-pHT1`Me9woJ(o zuExi40s3aQ*W1r?5;V08Qa$x4sQEV%@Nri?iXx5{NyiJB{*sSek5~7x7rE~F{_>@O zG3^)qb!;5hh=#N)&}kR-#AhyR(XHBT8pzmxiZ4%|exKj#thVhuQV+3I zV=kxwjx@OXdbfm8ZFz{Sohlh^(~g&U-V~Is8os5R`u8e8%pO*`=oF5-?$1)HF|xeb zHDsqS?wNb+mVVi0q%1bhLH~7_As6Up_k726e@iM;XuM5GVzT@!_Uwn0$&-TUGi9dm z&=UzXeK3|#;h2z50j<<)G;3mOG?D=KfZ}Enu7WhsWOoKPTs^#KaBm;<$-Mc-c}Me; z%DXn#OHvz%#?L#Z$4S-{#C8c~0zca-bIdASA)(=$%NdF&ED@JQc*^!ja_W$8fLXC9 zr62VX-R>V+t@|&#z3LbjmHcCd0YRrJrk^@9ORQ@yMmPG^(UP;yA}+RH^-*qB_4lH> zc#J$}D18GJ6G2w}VztJ>Q^ANYnW{$Mj67EXv`fUz~(CT7~Mwp^H1BZ1K6 z;;The6yd9*CjA$9Dz_*?9wDDbMEKvz;MwM&zv0}3xljD*^rSGpK zrX{9f%RnbOOI~ki@=KwZi3;`?_HXxD;M_aYb|4Ca_*tOK}Z$}agSlrHIT~^OzgyZHdM;9${Zd8UI ze43z_1Jip=f~5SlLW6o{|IkjPuJI>a)=aLbnl4yd2wIB|CaHCWMt)2|nO3lRS8#{K zV5KPKzmW>tKFw{3{J2WR%@zBu5)@XPpFe*zkM?NDV*eBxTx*oA2F}2G;wfZn|3IoB zRnz(j9ga6L$=bJZTHG@>aA#*w@Mt}xZBMiUceI$KLMh7*Ty}oyo)H;FCE>ES*MJpC z7aKZ821X-y>^ZE>?6!_)ti(LJfo}MZFV7v7o~_wTi7;|(R&Tf-7e5wR_Azq7fzv>I z%W5usSt9RY^izLrN-{LGj={AIoIk{2#apF}SD}XHl5z7*nXV43)$aiwD`}i%oF~Z* zL1&X;-|xFN|4=h%6T4eF2sr(45_?+P>RMm5{xFTlh8Ze=0P?R+*wq5%!Wkg2B(QpDw6zxSIcbA)St zND@Cjcf6t3U0GN%J_ByGmKNeKjP|=XX|TzPv1^!jn3a&5z_SrD(z8%IshN4nd4AV# zwj~n|MG_HTNLn3uUxwfm=9S#ZFKwx$)#SknO2#ixG}zU5bXQR%IUJYP3#X6M72i!Q zdNZQNzCxjco-uURwRZ;o@UM4KLjTax&gVRdv^%7GP;&`1usL~@h33tU&{YQ8OVj9u z*s)w2ppUR;-Z5r#P$v&j`n!Ryv(EB{jDnz#xvD(vIaQxuLD)wXXCWR<3k8PgBM+3i zql;Xa-06qhosK}n_NzB}e=o}^R?yPdFuR5#TTuAX#FT<~A2EJxdiP=jOhEr3AHg#L zD3uyRalOTk6pJp$KQx(rGIug{A+pV`krj!guvL^~ra?_AUk?2N?(=6&{TFBY{Fm{c zC{6_8kL?Zd+_BB=E_)-HhS&U!W*w!#q?aC7EBaeg?qM%$2^HDG6T;;MqDfU&64VMrx8*mT5sIPTf zn_4XX>ul0}BUb;x+viMuvY&)5`z2P#r2T+%Fpcgmqzh8h9t;A8U|vc&TGW zArX6{I$~flY~N~2od7HTTMT~E{4M-gF_gD`CfS)ZuI)_m>UAw`(TZ+xZ@%|01% zpie02r)<`zM4u70yyO2%rPlb-X@TR?(`m(kLrpcM%Nx=4vSPytORy%@!?x37H^Ase zsne4%{s5&GIAL$>4ppJms`PL42CT7^?ds*^PrB+i_&iQdbI*vZkb3krSB{M=mb`qG zxgZnWb)Dv&`BL@M&|p@Jq(O?IyON7}LK3@0VMa>CmghbQG!aaMF>oR^zE{~*<%nLq zy5w{ioxyE%8>sHE>mH}8!6J{+;)pDa@1Kw?%&V-TdfX85pLEArUXrSU>xxdYviNk^ z=J0DI*k!q;)alA(8+@fUpkmc;ePMt#)A6or{H(oYE%4_2A2dPJ7!nBDqJbb zwr=wq=dgMdy#zAMlM?i-sq;;gayI|^crVADfeE0;X&VV?>_?L7`Ecdx-E!AkXW>4* zC%y-NuJ;PGiAVoMj1#~zppuLKf;cge%Sagg%z0>$35v;(q^}8kGD6Mf!rs@kcx@$G zX5;dem{v8><^$+khh7^rKiq)SG31e2Wr^%?F_$y1oX0NSa_lBfs|zN zv)S99Js~Ll88`m08&@`W>0A%Z<}{7|FyEf>DMB8b@wnb+#R6l1R2P&#V(XZNZqbyj zgsiT4AI%n@Q+i?0YUmkg{(hr&B39t1tJUjmWOKa`khXocDALtW(Pbk%{aez2MSOZ_ zFDGrgg6t*i^-t+9)gH4YYnymb%&wP3hPd?Jm*<;bJQ+NE901FL>_W%fJGs<{K~Jfn zQnzoXIK5%<_-Xde!*-%N)Vn}s=LHD}v~(%xl3|g45xRc;!uom8TLr;SF^U(qp_Ci1 zt6n~cib@Le&V+Rz_Uh8*FZq95&$n7^+^?1LO8iqSDHE2guVdcNs-$x+hWXPg->&rj zF%sO%dX~(oo}?R;@C28!e$S*g^(dEMHdQq}-LN zg?3THZ9f3o#!(*+X?6D>x7bz-=Znxopd{se@UErP|7_J;Lk}B%F?6Y}DJ%)RCD|j8 zI)!SjBfsX$pwwaCF6dwL9|ut;h~B>PR)fgQ5YM6{WbHb)=i@hqQspNvpn>xCI}@;r z0Vbci3qXuzY7EPXZp&==gn4Fu{?#Kh_lpPMr^(-K+3+4E(Q+ z!1aziq8-TZ9*BkvhBMg?%8CeW-zd<{mS!nGt=+3$Xe~Xxa#m)vyle3+ZW6&D4g%U` z^(r-583byiSQ-#AB&ANGwCIKNh9B~*gWJ78Xxc8X&!y?lfiogo=z&WuXDAoMLz6P# z(fzhhM0wV|QE`T!+LJ;7gA~LvHPR+}GZL)i* z`jh#fxrd3UXs2vLXRW6`6|;Lh?k;AAU!G|AxPuaV^^cVa_*eG~@g(5+xb)t7JwNtv z`P`thU8Ng>QbG*06ATPJp`95zSo=9vdOs%xgqy}bf5Y2>^wVi)5iRU_hI#lT8RT9M z9#9|$lasD62o?=QPWu=95b)!Zrwy49vwTv<28R=buj*)jBsT?R!M>8Vuk2WF2FAxY zT;b!^;UV~7!s?;!E6<+e&b%{uGBxFVSge~M?f$X7VBUAJpmc|p!Z+4B&K)=(H_ILC zsK{_%rLT>be?U>zK5GUXu{nZ0nYyIU+tuo1=7L9y&Ed0#V-9U}e?}G4g`Q^A1I1&I zz*j?z7D-nrZOub0Lx!!dbWIF5PIy!0((%q_%-hQ*!z*7xVu;)ia>L^Wn49G2b z9P0d!^`Bv3oUwo=6-nO+P9xQCN|L8X&OUiZC*;MSjx3sanny8=J01{R!k5?@W+gI{ zp>W)e$?-E9Z<_}HRU^(p^0LefxTM_J!OQwXk|oEChZ(*G$uT;nUBTsLc};(d(0OXf zyY|l$qmj7JX2xs^ZWH%Gb4yG%6D)^VuUFTz1En)&q#ImY5!C+`_I%o)C3SDyJ**6?1#7gndu1 z?nR=Z@6GQM2f_K{Yg{cP&+CoKLP>aHr!??YcbmW8YV&d>@GVG;^Sz2&A6b);*jb`b zIrDr;;j1HsxA!ud+mqP(K(&75XReoq2!sZy)kxWkYIKp;iErvmWYr7O%;Dzw# zD{cC7`qM$CZJ|L>PD1~(OTWzHwZ6Ag!g)$gL88!C3BB2c>%~T)mvX|XcNGRA{jsjE zs_M7n3G8eP#zUHzPDM0{GYuz&HVWo_9rn=-nTpjbxJZea!f$AyADCkk~LzL^DMdgU)>6e{twJDp7# zQ{CbcB-@Bm2c{{A1N7uZcO(M=CDU7&S`gc;K@?(mKKCVp=8!9YwWv0Y=O+4!85(oV z&Ju%{!&ylb9kjANg?+>_{}0XAUQS#Ac+NQazKl?zPp;`@DgZWbyEF`>b`9Iuehai0 z(Lb$^h}uh}98&m_FW%D&#@_|+hD=^)k9K~zn1^~gm6)HlIxDY0X7*)+9gz0=Tr;4Y zPHN=$SIb~Ow;gInlc@n`o}V?fE-05#P4(8hc5H2$(3o_I)emv~^d6}H|9gN@*}9y@ z;xpa75xGkDUcxlejfp2GA#exbASxI}h%@UfDPZSBpq^IvX?uMX$q`ssw;-r1P-3$y z7l10FjQ+-Zc`ngK7aGmeNju7!4p=DY;5dRBNnC5{=eK1?KV!q}9Ig}m^vcHWqk12i zes`!tf*=%<<4i+7+T7$I`4MuqiZ1mb+wfN`Z#Ei$|sq4A-tTe`2o18YfNzKxmco+^#TcVdZdSx-?@$-V-_UIa^uGsc|en0fXY&UT8~ zzKU(=Q=Wi>Ve=0Rm5#Wj9m-E=KOhJ%qdXT4_`Z$qaQgX=y@b;;6bm-pV*O_muBy8w zR|B)3VvIbI_t9z1Qv$&P-iN3#rG>6BoL|W6&_^(RdBkJr_xUi5`}N~h@n;#e%`F;Y zQc87x81Ls7LU;?*V%T*MZ$7dERLyo7PUCn8B^e$|q+qa|Z0hgY-P%R*y#4Ie!Ed(= zg`s9rUi1j1_~H@Fc339JUr#4509{K?P!bWi1`wOVpnvDp^=JIB1XZK}@hNVjH5Syal{ zos&A7O{8d$+FePhh9h9w#Z?&}XSi_EHkYUpBlD!NGFIQ)rV+ZnAI$$^y=Qr^NkXIg zIKkTXFs14w5jF-C;dY50Y!|Apvquq8;!++pyf4nfBKS}ffY{UN@c{Q|R$tF{2=vV; zyzJWlt0dD!>Pm|3G&~b@5&8V^Y>niZzN+5CE>b_m6qHMEm@<+m+mI2%h zkMH#GK~?s@k^=Jj8qbUSgYt6xS3L?28miE0e<^c?HT_q1j<_J;`p&&)C2k}x0gciZ zeGg|J^xsL$@c)rR#Y7e+QB-i;Ufg|4_T{w!y)dWuD%SX)+t`-!FLwXm2leQ8ljx0tu+T4a%7lWLPYrC$_lzMtny( zd)})eu&_dsYGQw(CYQIGS5OYs$Bnbmgj6AsMnkqN=rRY5=7=__Z1(EzeGh(?p0P~K z8ZB+vs}5EN!7|Sbn0N2K;{PZTu!x1l0&BYkXTKZDzx$g*<+Tl`z}(%CHfC#tw*eso zc>@mwQu_3|5Hu}5`bu@Ez%>EJ7Y#DjK%=UcobLSCwzZWo#_(Vvr#YQy4B=!iq{XPC zZOPo)whDfFA4$3&h%22_$M2N8YALsbn8JolBbCj+DM_qV2={gD|Xk9$%J@X2D1_cKV|y?TwBp*E`R~FrbfYR&bv_3Sc)h( z<+y(Ly^iRLi1nUF*w2EH4dC|knjwjZ`}(`Oagd|=W#r|d zMlyM@Wuu?mcGlWQ1M{>UR9pMt7=V_k_tJPyK!;sdyBJD*5x<7>-NFYYrUEfOo4sl} z+VM(y)D-Jyw;E$noUX_)z=Do zZMi0FEI~FX6(Q}I!4st+Ff>#yX;_rb^@^Fj+VIgHsk_N3sK7Wa-iwgA1hTUV)Osa~H z%nG&~7#nqQUuL+@%Ft|%FN{z294oy&f(!-7wLZ?FUxZ)h{_SUuj&AU%|DK!hffOU`R%1E@;MFhrjDo}_gM zIj>yQI+4cj3(1lu9$T-ZoBNDYgS1mK0?)?mXj(ltmC+&ocoS(al3U!mh_heEt2Xj$ zxfOj9d51D6rTJ8KM{hfJ6Y5!w|8DY z&65kM!+YvO0&y>tTh+a8!Z43G;L`V{v>zXlXbaiu3uI2<`2zAmEs zz%omMl$kl>iz;Z5zTtmUNb^0cSzQxEWbv3*r!hMSgmqqtO9#qO$f+WNCK5<|dtG7D zPa1seiFkf~o}W=~I7W)^P0F5dL99Q5ux5{kS4kCA7LFu1SuybO>e!eMooP-Ot@klp z3;JmrOPA3gY1XbF`i zU+2UP?GQy&b|uLh;vq^8mzLO+<-uIrm1o4 z`kjr(v7sXhhDb0@XA}&1tPgZc=v-M<&-UJ9+X~qAqH}(At9?O$wh`;_0MG74K8Fr`)+rR`S_ zdB=t}f=iC|EjkW(O3m0WhaV_N3GafIsCt35%hba83)lcu3%lfwUIs)QLqv2)p?$|#6(X0M7#A;@PyH{Y0`q1h7xy)Lp(w@*Ql3}bL~bfb3bg@i#;09I zo*_m6*FkALVXqdpqKv-31LMe@hHS8yhbOLsFse0G7bLnfX1O8duI|tl zyb8%X65OzRS`94QPe9>C+;$x&Qg76FaEO{lpIZU^^|}VwwH{zO2&dXTzrEVlDZQ?7 z#Sg`1l}CIczTo&M&p5n;7^hKWv;JFgLg)(9=X=*yEKrjfxEZH^8!cd9TKPbVIfzJXacKntXVQ6icga@ z@71GYzvlRMSeTjjr$s~MN!DUy;34UnUflo9v7|xv|CwVG#L4nb+hj?L8+gwYYzUeHAyuOk8<4AL6cEb6BF7-%^15S|!V*zuI!@oznQZ&r#O;w-@bynDHw) z<$KllbgnbX;9py@T@KFW=o<{=eY00awlSh~%U^Nm<7VvFq|1n)4ZP#_2HhaI^<=EqghEZ-Isj2CY zSk^i^A+qjxFd2L>CiM)8KrcmUv~Q+ub{^<1X(t$SJCu3_m_N6AQfj}&hTg}7r53@A zD(PJnCFV+ZTs7A|4kl?pfr!ngM#s+*e&IDFLsBE(j050_H*svGJ$Ni&8tg;OUok9F z817#d*P@b$|1d3r36YL)qp=hkbW)p3*E^La?Y36$!ggxa=jO=XNX)%#>7fPArb=tK z^JSBF1I8ZZu(X>FD+3GSr@P_p=z6IK3bW+GU4jxD>eg^frMNl1V!_p@)^%4DoBN&L zhcW2ngwosJy`1BHA6Vp$kHmghxl8ggwxxpX3*^YWE&!1gE@sSUhC0hc91hM3Qp7W2VqmkdDd5#Z71QZCP?Yo-x=dJUo3fXdRKCFxS+rvpN52DEt-*X4POCvps)0XqP)FtjSGW-!Ae$8thE{9bRCp3 zxLP-jbMCQos`292fh%JZ_?e~^_bz*3WRIuUQxaWfgy#^`bV1iY-!#f^weH{GMV%>?=ggBi`G5YxrD$rNlsKeY^ke_Zm}4twBB{F`A)RZ3ej$UBx;&V0V4i z^XIO(n~)W54>5J<_jLFvu~XAfxXf*4C|n>Z60zJdVApB=SJ7{@Ol3_n%72#YXRUyn zqCx*;;MC|tri9GdNe={W!019V4~?NZ-T0{?UV)3S9EEC<`+UNRV7Bg6dMh-eKup*3 z^t5aI#&8zAZ25LIHl6U$V&yJYXg&Vipt4yGmQMcSE=r|UfB$-UUVZR&oy60n_|Ouh zY=36YyM5g?ldY|&io+|Ogl}e-FG~uvHSqJWCJ4_!NsZXfl1!e0$8pm8CUIc|dt+Wdm}z3a#(0 zt9h50#uR>Kxb^?Bbe2(3z3dZW6tI#flUXO<cx zs4He)TtfY{K84(4sT1`Z`ZGRR`nM$W6@v*#g zIEAa9q}<4m*Ii3^Yvx0#OfNzOmPOk8c;AZ0s_@#rR;(Y6y_@flmusD*o#X}AbOw{A zd2?D03MINf*3~`8Y3K{;wMx}-?S9|ikJbQ~ds57%1ht*yBumSrB9{0&2R(0LBM%LK zgE~uZ-$;C2yZ@dMdL-)jEblizz&8}#m?|({raybuqi{6kPe`Pmyd6WL1VfCMrr$U@ zIHk`08MfM^L^tdnut}Mn85BDiBp`U@9Xq2TG{?QMK35o{(AQUDoyHpc_wV0)?-aq> z)k$966XzHIV}iFsqngsTf6JCNG>>@EHPV9sxQ>fm@XBPvFA?1JEM^7$vy#?n@9eub zokME}6hI%UbI+0XKJn;lbvNRC?==B|dK!<88_c%aK_DESPsmMrD53?yEvKh_z-woR zoHzf6@K)+&jl+Ov#t2bgypcZ*OwSou`aV6y&+0gT zLUC|sZp8Sy{o04j;aqu@-)8hY#X5YROslD0u$y?~ID|~q@8_`W$M>%aytArK=*sihoP9F(0%R{^f@c{?ST#8kNvO#g4ay*Wf(`$Sj-dWAI~Cp8 z-2rhd&z<3zQJ#KslKB;GOYzV;g4yhDo`Ns89-j=a#Rgwq;Y*-mLz|DnQL2a)kW}$_ zhr;-S=oZi0b`vsA9^%l_nH>o8-E}o5WEsieo4*`<&8%UL3Vw~uHYMIoQ zhemx|=S|6g=I4)BY54=Jux(p@zGV?3R&()f+6!tTwL_hO>48<73TQAB()z2+%$&gZ z%~pS@x*9YYIkrr@pW&mEjXB3EdvO^ShQpcMuFqKMEHr5|lN9;MVVT2Gv|_OyB?uo< zLp*Ro3=AMq?<7dI(NmpNqU z2eO;c)z8DsI|Zh5zv!$IXFu%9Xt8M^&G<0BGM&+lV0K z3Z#s2#j73Qtn4ex#9O;pQp#5-7i)F*o1!DiphN-%Gt1X8#)gXmiqf$I#&(v7SR|-qZlH<-WBiOG*)NcxHJ!%dCBG)W{nmEq zm2leMBzU)}DXjzO>QA*}v~TrW2qPcRx03kofktO4r-JEdgS|bimHN0s{A#cp{xj-N z^zTsBz{*Fs8uLemdg~Wkt{`qa&l%NQzpZNSTzg$m zNt|v9ifRT}W_>4H;Ik6?<@!RWL4&%3Na~Z75!pSb?gzAzE&94>TTV?{95W(&ebZM_ z^mo~q&wP}6m#I1a?i0We!e^R8vC3f2=B?TY9A}2etIdNNw$a|AbrefCSeV_9@U+t83l-mcyO-5iUi!an&tnDqD}$W_ns3&V=#4ukd-s+Yl^(WSF?B;oDX! zN&*z+@DIgC*u(DBQus&S5l^#o$Q#}~gs%uAO)lfS9V};Usq)eqxz*HMPP4W5 zeZq4=U~i_AIEx-SOb#Dv!H(rCt7Qr!bepd+F=PW3S5%bK3FNkwk%7%zxZ*xY;5(z) zV+p#>AGZP$#)O<571S)lIzHKg0Sy$2Yo_7olq$-b+g3zEI6N8pO#6uUvFSZedHyb6 zGGsH->>p-l=x(}PF^3*YS6g~EB@2X!_QPvxuIZxK+259w@_Ov_`NWfPz~beTV>v^o z)>)7zLQ_}2eItaiOF<<|x{^MD0S!7dS3{V}$w|02r|e#j#$`Hh#`PV|5bk8QfyHnu zUtHXqao-7J*DAV3r+72}>M+i)3hUcfqPh38LzU=P1 zV92ZWLxuT_PW3mo?DKZFs`U42n&(X*X4r`8ZUp$hZ zqwl{-^@GFHsMBnoHr6{cGYhHL9FwF*bAgpd{g1_VcA@tRoC7Inwgvu4NN3xTQ2GaM&uU_khOgc^&J?FR2#e0_R{i~FiSWaB z00FTRq)ZQHnRV2R8c6=kPns=DsuJ z#h%*?blZBz@Y=B}z|nAjLw@3K*<`WwCOHPBOPePN2xC!0w$@tYZx1C30|iME=P>9K z&=at9QML%ECVX|%PU+>#PC0olZ|xLD`?JoKL|1fr{zHJ`t7_P$U{KFDTLywf^$GYP zZ_R4kGrsg2m+)0XO?&>utk{T8!fQaH&tcOU7yg$6Tl=E5C&1E~BwL0GQ8hncrjg(i zxNF-TK`(|&axr1zirF68kfCnc_3?uAvW-l7g)L;>7A2~&aapVOrLsD3*y3rzep(I( zH$zHnSthvP@3Tiu?n&W>dtjUS4kn_vkf^^eC*8V9{EfS+;h3c_QtGEajPyhyo}LaN z)L=q$REl7PZeA=@`>Gkb+n*~rjJ?(p+UM)7X1BU~A6?e8AAj>|y4#f3m1B&wzNF z%|kQwa(h9Wug=OC{#VlBxG&Pb57v!E`K9LX8cgr5Y+ULD3;lMnzp3LvM3I%|k?EVG zvUcr_dYx{&_{GAqf4;=(w_feH+{P7qa&-#oZ741dGgDHL&g9FMOXjoDQxWasYoh`l zsD!Z@75H{3tA+W02nn<=QXbp~r03%5;=xB1*=EZuan6*K^J-|ldTH#V5rR$*@a;nn z9%qxjIJo%5d5!Bk35f7*>VF7IPSY#e`Z*949>ej7b<0L;N4!&-E z_F9S#$FKcOwuHT>F%~jj)s%k;2lgsxjq7UmZSJaIE~y94lvOt>bvIE7Y>upDgigBGs*Q4JZ|7*0>uC1IS=;B>L2Z?lqk z;7aeuF+c6He4C2=!kD3*C0EQ!8C?wKj#g8}J3#+Yhev9)@BC9rg@dh_BI)t$rHjoz zXBNV+TXWgw%=)-TmVx6|2h)`Oox(ar^XJ~!ZzdFlhDu=;D(rEc>_FC(wu+&%0&#di zh>Cw|<|Nb6L}EMmEa5ILk85=T_XdNSFDvo5BAC7_xXm^QLu*>Ew|`)(*5AXD#3qZL zTC28@{Tm*A4?dVc3G*{bkQ{(4`JXgIB7w;GEyIWm#)gu9b!jLK8Bg4qIfBhN@-j9B zrKPOu!AeN}9^TnS%fd4>6+1_A!$Lu_Vvm)YW0Zk&ipZM$8ekl$*vIBko2PotWB5f} z_>#OWnPK8V&6+Q=j-AO^o?#_u{n( zMb?Q#(azH&_3cSsLeFmbI3F-VlvqE7IYNZ&k8d`c%veN%2lgV11eP%htL1ar_AI$A zGip%ievrM)uH`l`*SwE;5)=mA6GLHDROi`XECHe1u=K`oYAAbqDn!2m$q*4gh;o){ zz^RMJ_8kzj8hNbR`eo=ZVKV-Le77YoNWCqgF4aWcAV^`yI+WyOvK#o6&F3r~XdOUv zgK7)hU2?}-Z_U91nesh*4Naf!wNttCTwcSNfTU?6I-eGOjOTeQ_{=x^cHHXtU5vzS zrsj)G_dTnzw@IDb9yd$-s~o|%aGkm3mJDs;U#&I#kSw@vL(cJ;07{o{vZsTede_3D z5Dd^TKjGlZ67*;i_hXdyIg}7okr28g?~$lWhG+(k#=b=KlRd_2n}jQ1dkReQqBS7S zu;(oYtz7)6UqjBGzY7{A=IO$-Y<7Pwk=mf+^Z8qQe;+{7x)2wTH|(#bkZnOte)A-V zd}b|~~^OaX4Nu0Okl^Ps9(LcKna<0}0YvH-onmrduFtik{Edddpi41JR@wW!Q=UDj5 zCNaY07cQyR7%<7zxvYF_FKi?vYX{X<;owS4@{ZGn#O&w0?=&B@Fwr>>f;#!39U5Yo z)YyUFjw>s9L;pkAj*jEHJ~g5zWk18A=27x3k0w-=XmGf+%CXv;bYibMTpEN^JLLa=aL$Mm`)^c z6L+8MpfEVH6k<4p1j*|$D6qxdKG}d`{6^Rt)G3UJGfh=Vn3P#=q>wfMTp3tczccB# zOfSlOEVuj6w+i?-(D~445cH5z?|gn+L?e#Gl3Gg-@rJWZz<~r&8O(aH;n&Y9XCPfb zB39g=4hd>fZ>CVkN=wt9d3q4DfkEBAEajnWCsALT!=K&aCI?m=NO@>%Djxpv_Rebc z^#u4)_j>oIyA~XFQ{(&F&LNF!-|n>rl)v=NUjg5+g7aaR@uO=Kzp5;d53misR9*0; zYptcCk<@6yyS=d=3-D4fXfdea}@e6ieALK|J0 zW0zUU9iT8?pN6T#v=-rZ9nqR!ylJUkLQNUW4gjhJ2k@%;$@yZ9OyC25()dO^0)GpG zAJ6Lmt)X=Q0X4C3MP`f&hcw(s7hp#L`}Kxs@)MPW=wOB%kJ!a$r2%_OZ04&!*62*l zaap@|Ro;5+QwTm|8CE;8FBT8i_PlOa*uQJiZ{C`pc&;3UUZf-}pfb)(Bn`#`^y@_D zNPb18{f~Dv%%NOV++^e4p)fXnLIym_ELj(D-p>&C8;PGUL+)Im;uS#d!U4AO|Z$ zU{Hpy{7hx@%ak2_*?F^2o4ug6zR9dJ+k$6X;)oJ9Q#DGW+pqOXjkvc?tY~Ew6vk*c zVER<@IHCWtXyUCLz}ZxROyZUi=W)_Q{5_DL^MpM~(n}S)IqmOXzYe|v*^zZ7$}`m* zigo^b_+t4?^voNKaGAHUn5Y@&^`%9K5!L?r&0<+>zQ19Dd~tTN)+^} zD1EtqcJVkkuO4Ras}tL@-x7!*wrCvWPD6-UOjFqm+$hLF(5v(9FV|QiUdy4*pn7gd z4pJD`1biF*9Rl(VVxc8@>QK{Ybym*p|T zW;u#hx;Ag z+Os>lwo)l}0w5f>7UK#lt222l5x@T$-hRmW7)j$S;L|t!PfU9Lu&Tp6oc7MQHt~@l zzNaW%QFW9)>qhj=8dpl@$_HSk9I=uOA`CQ**ak*JA}4fMdL!!{%=t|O>jDT{wl{yw zJ37lBjZiz3XvLvW*2h?Nc3sd~5{k0FLf3+XnIDcV?;v}r$~SV}y4?wEJc4wWE9prt z%EP;0Jm<53Dlp{722}#8I7zZuHB!&$`zSOUyijSH1R-)UGIXr%!3_0D4~_poU>V!X z-lhT;65izQJU_c+ZD6)r*=d$M!AP>h}1JB1LL2&9(HWkEk$WlBK}y^d&y%H#z!`Y4Zk&`Gj2` zO~rbHTTXO=>2_>@d5rU$J?8pfK{=tj-V9nI{%^`HW9h1{#{jET41AsV-H@- zMi+I<%fqL{5X17urUa`~W5!Ck87XVcryF>I6ermnp_lh;iry?>pg1RwqzG2$o$Awq zSY-kf_jYqF&;-F)VBekpQW?ItOjz;MNB>>1Q|Q#_dyCO}Hbdo{ww-h>oQ;rce)Tyk zlxE!%GYw*!_J*eJ7?Gpa6{tEUf&EtDO(a(JHF@U-FhBR=&)K*oDA zx$ZWQgY+t+8@c=3qj)q7uQ56H;dN8?uT3;cZOIz|^%P4>Oz4+RRrH;JZL={Ufo&h| z>6SWFY?Zvjzv3Jnn^+w-Phs1IpSr#iAlnqpA|(b_N0YX(cL&6?*dL(ewCs9AnqKlju^ft`0-2lcv*zS9f8(~FeTxY_zEJ{LN`i}n{n0aH? z44<|tJL7+s{b)XEC zSHR;Y?4=8GQNyTvM+{fSX=hG?YY6&QcovA#3D`_us?ygm4B1kT0eU z&aPJE+t?Y0yyL_|4_6Bzyba!KiZ8p<^N}!ToQC+Crf=~|3}&z(qiM3Dda>H%03Km3 z9*O=Uj}SdBUJ8}vLeJE zMQvV;yDd+)PTVo;h-o?dayo~BBD>YJxzc1)>9oMpMy-dXBoo&9dyd^A410D zq05RE+5r8P+qYT@=Vo{%p*bHeV&8%w+P60HQzS|b)6WYmJFiM`qag02R0YF*U&RJU zeg>38`@I3|Xc6u;ipxq%KxI^0ly+l9a&OqMBT6xuK==_+U2xn%!zH~!p^M!HR7>eM zPEKGfAPCuOWTcVVw%~ubYWpIc9vL!7%~2#RQsA3pdj$qKK@glM6JW#My}VNx*_U4Wm%xE$%7>6&Z-y zV`;7`Lbcn+6>>UQ2*Dz0!r5HIpin)C?7)*Y9y=vFl0hcoeQvnZ#X*6TD53zs?9%ph zVs;!;unkeIaCc_k{+4JRgvSG{0K@(#{G8Kouh`2A$dxZyy2k&`o>KMy-D^Ow+51g@ z^lA79K>P?cjbbq(XiARF(n4>X3e%iD=511MB9zs%Y*3kIDY(EZ)zfcTp1EzQ=hyLx z7gmpiiE>2g>D`KyD}0%Ge8Yx#bv&N(UeKp+q#q?6wTdzVXbm9S7wHKnINdgP7XCW; zV)86#X#+#7ZFigQ@Kem?YnTP&VCEMaCvyKpp=0!!{;15}-ik*pvNLFDj!d?Xv~qE2 zR`8&XZgo`kO4K=l(|qPgDVu$Cg6$@^z&MV-#sz{10>5FoOhdItvQ?+emS)TlCXlnl zOVZhjau>Ox(>7>hJjW#f%7U42eMe@_#qv(r#UY(=H~G?cdJ`5={=EY;cLCbujYEKK1r}lUV!8Q9S~78@QT~6BOtR(xCi%4uXz~5JdzFz$-gRL z1LBcsaasjsP8B;h_YNeP?QsgnUYVp)R^UENz%SIS^~AC*H*M0t!-hB!IbRr{g{7A$qa6j%}Yp;1~^UFu*cJ zMimGtY1>eX<+T;No8OW$p6Mj?e?#`Omx7vTb`tjxmoqF6$GXL%DWL%O4^YwlR``nx zzE*Scxr`@-*W(@nm}|(MXc$|mq*E>%>*en`+{+ur>1${%T000NACNOq`SM4_*0j3l zZ6)%<+{S?%xZ}va3o9N(ITjG8jb3F}vYL5AaO4~GFHZ{oLm1I(bub@zJDiqS^8j3l zfN*==FYhmV_V;AsT70%yk!f{>YZKvX;$()CRoW(=Lz#2^YAB#{0AlcU_hr6oW(zcH zi$2MNGZ`_?^zITYH8p#)cd&*7V#jfdwlY4`EIwo13g_2TRS@W#P8X^PPW{u2iv~Cy z*Ox4(L4wI=f4&?o&!*K;i9B_mRto;mmR!D*ZbP=Nh1GMN#x8tyNF6-rRE#00;dDVt zTI~S995@%Wtk zidV@z>~Ux+?PB&dp1AxjIFLCTMO)J; z275~;Bf6p(gd8sRbs5O00$jtvDPFsUE1cUGX$bV&y=>0iUcvA4zKHu*YQVB8l}G~y zhsyNLLp!wEQoYl+0dol5SuAE%Cl>P)%@$@i3O+MrGx1vo?X^E}y05E}i)mec;bR{h$q+5wfl&b`Ys zR3Ln>Vg9`AFHbuNtpn^w{VO~GZa|u6+kfArDDb4%<^%WF=(k-3Yfb~V@oqzII&lF;8E#)IPXF~?a*ALJwttuHfdtP$yDB&uQ>ymaNy1ox*|fN zSDN`z;6psHVH%TXUP$0bJ*6Geu$4luNJ8RZ+6}Z5W6XOqA~0*x(rF)`Q8=o)NLBGA^SJ zh0YaD7GGzW-*&{G@?>H(PsGc+7xkRL?Wz=$ih}Hs4AT{xn2xIthT_+k?uF&&IIx&;3*SHsOhi`&^%3w> zKt;gFZW1|{{h6>9?V!yw#I=*b)Cfc3EupLdT`#IoQ5DS*COI$0#W+lR!<6&;W;~ec z%ky0NACgLC_Dd?_(yWew1K@bMY~7^258Q3^e}#XFM72zbqjIJMzm1P5FhH3d)$-VP z#gf3o?jn(R{e8$EZ=h;D=d+U{j9KIg_50__xDX>uj3}1kKH9He$=2=mNRR61sp~pp ziI6>UUxcVAn$thW zr|&0aOAe3Y+O4V*Q_BEnqd$Z7DvIsB&ds_Css-?ojPnX`-U!U(4V_cYZEED(isYmu z3aC&5Z07>Qh2q)-k##s#@l4==H%>$_NgU8P=bwT^*nL?TV5SAm` zci^R()rt5Sh^E7gC5A1)%SQv)^438%wC(r8vhAk zEOa)(IX9RW;u5L4KE&%JKR(pb*s+19bMF{i1Pv8vk+O$I=70hTp}<^SaF65NrOcFT z7|gXTTZ?v0X>xS)N}wRNeP8>WD{m$c2FLS({N(Wanar^tX3b>z_+G3L@`6h;2 z{2yGAFUnanP|~~s?}RmE`2eU=0+DqKIf#XnA$CH-Ln|K#RG>rdpf5SE?nmU@TF8jM z|7)I`ed#PN?mvX?K2s&S#Az7}XJ4@P@bZXZ0oqlteEOsX9F7NG3o#r8oiqRa=EC$s z-sPhrI^Xu2P+)^R06}980Ngf|I>udWQU*Z)0yt{U=lHJX@i6o+tjqg^s&aT!4bIX* z2^l3{R&rla?R`d>m1<#f7ydv#J*05&Rz`7pjti$GJa&)DJcL(FTreQI7Xl;(!g&I%i~s0Mr9ipQA| z06umHm>K@sdoli{w=Cf#eJwV=LCSWm67LGtoWNsZ6q<1GrZm{H5h{)_q*!G!E_F-g zt{*em!KR?65JqHs%?-)g7Yc29j_jRkt(iVfdg?&6wGGdyGtzg^7A>^rPiCOGqKu-6 zlkc`{J3ngE8hiMpybk@}#HEA1&cfjwSx7*_0+MS?)TTn{gHK*fUW-f1<3ezEEbSF` zi#W#pbOf#haojTHSTf?LbjMzxt4bFSSl{!m{~i*e;+Q}QLdY|Qnda*OprjS)-G)lP87@5?;+2=Pg&MlOS7tV@1;Bj-gaZvcbw9E6H&; z_AX0IxaW-4ekTqg1oMO^c(Vp*_ej|MQV$WA_O$(kclP_KlgF085!mCB@k4A&l96W< z1F8t;D|L3eP6Q>>SN*%(tN8r+hN(|}2auV!15ra^tK#e1K>c>zpell(i!`~@$t+=|=>TnHMSE_3 zyx6pThAP{N%^tedSM~@6pJ^1Ejd)bj;>C>5-?15_kTnZMc(%K?O3Xk686$71k*QK5ZZRArn8=!E)HS0dl&+MxF&HCQ8h? zl0bOhFpGH{@V1k98)fC@t26KX$pEqKRN6i7Fa0J@j00+fP)pfyAca@Q93&UL1VNI8 zE>4{SQ5%en=n6t8u$7{?)JT8ZMiNvQL2|i8HBP96Yj_P{NrCdf^4;!1>uqDosPFwf z_@`(ofxDj4I!!aNh~=3`-jN#hS=j>V&}~E3=Uc97w$qMu;X~ zFt{L{ES}-gA-|rgQzWWkE>$2CDVsH*!4rkA*L>{rA^tp9RxxkvgOMLf*g&3v?<5D^U*DSMvdeY$^>1>(@usocebHNlCB= zkS8q9kkw}EMCXfW*MA6^YVh-VhuZo)&OND7J)caH^;?|d)+WQd;V*-K-oO3?RnZ=} zFSOTb(UfgGC$--UEV*We?9WOA_5~~6N~&3Nkpd5z;M+)dVS)0l$VwatUb@dWWIKL6=cp~Rg%rDbjC+I4 zb3FW0`h{O)`*Bia;@(Hki1*vn$AyXx3;C#>*$LS?58 z-oUP95WT$a8&A4}cW=4h3%I}jOUD|-)uTBFDgpO0B|PK{`Ou608|DOvK27|Ml}i-x zY^XEPr$v{nk$dXjE1XzMo?JpMzb03uHfLQv^ggt1wEg=#^_}z8n;uNyb(TM#(2;c( zN^~(gyWoq5NW!8@7P(h)EgS@{$(`^PF6GvLpTqnA7a2m~$TIBFC*Nj1h^UYiT&8-2 z|1{a#wdi3SOiLW{SBv*VYe#7W?WgbQ*Fs%qG}I|X|^SN8~I&mEdBKP z#Yui#Ruqw0wacoyqhQ$YwjFbBa#pz+lJfIZy%usNebDQ{~-jB zt}m8xw9@x1h%`|tmmx#4@qu>0*ElR_fomh|W!HvRTQN>sPQuc;Ti<&EYcj=g{x_-- z@x`uI)ntgqJ`T#9+@gDh@U1w`;63v#&yvV?d3CGYy7(Wu_8b9P9=Lcust^xk+J*5M zTYskz`rtS$nsDt3lPVZDZ599JUq>Vx?4?X$ZujR~3|B|(8V-=^*WvfHXDZ#Z30lzs zeNlV0-o7U#-2&C(LQGikYDzfN)+1$xCUVeU z9-M2W7n9w}3eOgg>)%@b z-wVrBXLKxu-^gsekB!;fCTOT#V}XAEgbw0U2|ZL$B`!SK4DH3?6bD+>bLYj{XN>aH zh`iTcd5e{|;YNfuptlVB{LveiF56krzEHK7IoSftS41A9ck)|~SfagiU?a}-{SHIb zid1jC2aj;BL89uIRi)t-9MM8}{aZp+<4dG4z#?K7`@K<(@~q-h_uv7j7ue^&FgbI-xMUv2KB@qAmIPtQn`2z);EXZZH(Ue^fnuo(5>XzTOB!=V@1VMZ}`BPzkDcqt* zD@=!a5yES#D4MKU*b62wA&`lCZQt5x_4CcMI3UXvk})xps2K)=+Vxln?A{Fm85~Q1AiTVsl|K{j!2jlzwlSVqQr2Fo+|$Vs~e8 z_yO-6f=|Q}uH6bNaAE6Yw18LJ=gp%RT$8J;-)D;}f&1{mKN74e5%hW@3^1w`Dz+Vb z@zD6e(Mhe1;(`aZH`la&lPyOMO@Bifc`_!u&gB#GF@6?J@XsqzPP3r;EPj$cNt-OG z#+R1Vt?ybnFy@K}yc&Z&Vm`Kp^tM~J9@VcMJ|B?5FK)0`s=qqA_4uj1HMQ`EikCx< zpDNS70dme~qRLBAkBPO=+=^8OHi7wZyzE3yg}%8k)^xiE)VRsTjUofvZ$uj?Q)oX7 zW&A_>4_%k91*X%s)9Eg{`rGNfh#C5PERh7v>~(%)+m7Z5=0j*~*N_7{q`RyeIB-Z* z*)Phr8@;lmH5PtzmiW4O(CA&NAt}sS3D)yg$^6$*kY7w+H2xpxEy^!eFm#0&vugFDtL-}y<5QS5I)kJpE zQL6tb`~sr$Bl(}BaT}i;wm)*QB9Cv@p`^XkKjft~Z|zJ9z1oh_9k4CA z)_`+=kzaSu`>1$PyOTMieeO^H;6?NVO&1lo)@x5hm${e*a59}K`;R9tzY|G<$ZbFc zksbJoEr5umG0wov59kf{(56;k&Ol#nr7PvH;pQ20bA6Ut5fL%>)~<)7sP%89i&wC& zytk;oMY$1q6;F+Fa;UKd*k~*5(h?gB9GqFIXo7@82?1;vueE#DC5DxYab98muMaSq z%XgTRs;>i?X^TzWYjZ9Ss@S{}1Qz1hMmY8?BV0iR3K%~Y?GZI=*0UvP>~-RFdp3~I z#flGauC@9e$ZZ}s6qA&($3IWC1?9yntU_z^sCv7$els`u3gs0=tnGusQ?(H!J?<$5 z)?~xW{g3Mnx7~kNn-kTZ@oK6ODQv?|C~gcDQx-@6g03(Ym3dcAN``=cn>>`wFah{s z`rP==Q=+~8dY6N#OjGGFr$gd@)s`7Ehmatw;{w_p65mfQ*dQ?Z7(#=>Mz}`s1I;B4 zz@yVsw|j(sBp1aY?-P5bWWz5oc5YUbL||qCe3X+P$=}V2jfx`g^kKjP$yd6zXos=O z{zLf8qWFf@uJ+?BWt0!d_Mq|z&x_~_2)(NnwL|AZ6Wg6Y6rtcJLMpSPVxb@I>&Sb( zC$RFa*!>d<8%sM&pg7^k?}qSu>Z(+Bj!`J+)9Zn^L^@`6!{0m`uJxSIdoX5bi+w(9 zGbO;aL-Sc|4tQ$U?U``Pt?o^KmV{$oD{FuDvNRPWWc7rJ3p!;^so$j+c$<;To9YfM z2}%@%r_TB4D4q$dd3jS)G=E_}M-g<~?53V@61F)hNULW&sVVW{xT=c#8(QDlJTMuu zV_TttJScQR(tm?(|A;&KRYZPyRPF)iHE8|9ie&?@!y! zVdZAucl*>nnG<99!ZS#?O>V2R!Rfx|ut?i+E~YaRS8Mtp+$F+v=jN9+#rq5x43U@M z6(8eFNQBkNieEGjZayI7GNS_35d=T~haw&I0xU!hiIY<#8XsQkwLznz#~O zId9eN8^AfT_95xbrB$}ruk;&=BwVIg$lNY`Q`(y_Hf!}k2w;z+KcO}2s} z<=V$dra2gA2JAeE?+Yoj|LRt-7jF`5)AHd`sLys0gx&Y zT`%J$`6>Qn3U@_IQq8U1-EP zH&$NRQ3HCs`u=pt-Pp57^i1sSLn3ZE1g zklR^`qF2EP{)$&+x6Kl)RZpRYd!wgzAs`v#|BjhuwN*5Db{yr?;N~~Ri#?J^lD%kX zBU#gL`sQqxkcD(!!+@DfrZztZ!WojOkX-wAhqr~e4YkFtsf8D?)4IarT{z_1L!p1< zDXV2YNUlTC@JQZGh+*gq6F{nxiFi7>XLy_ioa4TU^AgJI399v-yPwucef)koUYl;9Zm)Qu!DrQ+eC z#aX)$WD&ZMZY!P3pRH`5K$3mAYsX4L-L-vIbINK z0Ept{(Gky?rcaeG=RDJ}PJ&9?86knQ|*H&W$^Q{;TKjq7tW~n*hQF zg0CgY73X+~bvk-A_wG33GmEXjrxQ@@7BoL-*wqPh;&okS`V0aFL`U1*2_){dM5NXA z9&_*T0~uRV!rkZI?<7y&{R8WA1p&o^K(?L8>C3HM2U6a+j}NTlC*dlqK&s6cH+MVVp9tz+UuI9cD)uHW$C3J8;F zf85(&REhO4o8bKqfwL%WE<+edXDC8ZizD>Xd~4SHWBh#;7ifnB%@#G6Cq_G9ZD&tx z#cTdt{q=Nj_l;;rEu+TVedDYw$|yR91s0&Oco3U=smZ8c49F$)#na|;Mh{V}e2q*? zZI%(fuH`6nb4w&IT5<_UW)LbHmZ9s{cse<8qt7eir$T11o*kk@VQoA9AMck>r>*^q z82b)tS|B0;P@&c1f(6LDLi;RVmpKZRlE4`a^yW|TE@s`V7m@61BCcClk*IIRp^GT$ z>mcfYxHtS=pm?eQD%?1TLw+juTkQs&^M#r)oQ*up2)I=8i9feV2(q;{AeJX#Nboy<3%(vvcA&<_$_c^xxXI6`DU&# ztd!7$zz4lV)sd?cd`F^D7BkeoQDpj@O+*{gx(NFz*&%Ffjxe$}c1&ptR)U|1RF5yE z{k&=y`BtQ#7~3bvU&?_q)uhWZjTyrC&cn=@k=q@Qd!}4()8-*WHPOYoS+y8{+XPvL ziV<|ao8qwp->JLw)*zo!olBmBan?5K)YhRazKh~OR=o|D?IC76j&SDpMRKVgb+8O= zo?*=XP-L9K-M=5LtcYI9H$-I5=HYQfq=iWe5+?roTT5itzbt3%pSvCZ6#Z4f`p-!` zsL7$uW13@kmQ#Z~8k&sbF8-Y+sw$H;YtEl?uw&kOuv}k?MZ_`43>pRwKm3;=RZo=- z5p16NEi*I3S1TV<>}xUnd!>)V$>UU6$DC>6kpRh^#7rb^(>`>>J%;=Zs|E#g1E_-=D`E3v1n$E- zH~Rr!d9I$FGQ6JE9-)x^rM?i6)KyhveR;sgBnt+ZkonBsJeTxl5v-y7TE$CXxN* zy-;~jW}k*-E^B@V%r<-Bnk?+OF5L?Q@F$73p$EK6murKZEXo?%sW zJ%{gp?&7*350a}u9SVwV&rbq7<_2Yy5W&_=vknO}zbM1B3p|rsTl#buC9IY~r?He> zZ8BGsfxYJHE8Xk7v$Lk=&!g(IC{wUWtot+hn-&;Q%;)XUONL{&Hk_-h?q{+Fi7FPtd<4FuO;hY*B`i2uzbgUyD?r+nd6^vvY48+q}$n zef@1Kw$vq*ww=&sqI92qG8AkAruFvSLe$4uABp!beWE#adg<-l|6Q(kc}gyZ1-t+_ zYuB+-1Y|CU{c7>~S|dD`vCk4RbG(WNW#5OFwc2 zj=+6`V~Y%dC>4S+tG4{|co^NVY^o4V(cybM9^W>(5Xl%;Lso-4bq)M zBV9uaC@^$42uO)^BhrmDzQ^zHy52wG%VGO~Cp!ensj0>OIfUJIS*XtqsGmHJOmEZvW_>Ll^P$xt+g!)VtW}CW#EXzi z?D;U$^u%I+W98C-)#Oj7dcmdr=Zh&-*E<440W7^FAp_xP5xdl-IbgxJ7+Ukt^%rBb zc-C=FY8QMP^CtZ`7@>yuv1qv*3^p8lZy^p?fn_S4>MZW#*XbAy3TcErUdC{{aVz@| zdu(Tb)v&DhP~ox}llHIqempypR&&^sULT@4Pa-`O-_was9G7Z_=&e_wRixo-y%sm zXKXpQp;4X>HdL~mh~CP?w&hR7lYaX$IS$Y850wa`q~h4YeuXS8TKZh?-t#4fT*PA7PNC@rPM<5a>=9WQzs$r zV{69jyj3O~!O>u}<*h*{!{t(9EL_(%Pr0KVzn(X)pD#Bgt z$bZ*O{Cu0rX@^ha)QsdKqXed}d>y`r|JO)P*P-~yX* z*&UHKTlDLnh{IY{oLH^Xb9}WA=erLB6)^1rJ@6U1Gc?m05Bu(Qy>PjNXJun_F{Yqr z)_3&f)5V!I6eb`+`d;;yBMFRJyD7xt!Z1l*=pBcUj~5)65e(kF z^y3Bo)~+3$B4baAdNm=FG9!6CqxN9!JR^zQ*-k%QWBx56*z!cc3}Ct94Gs=qoR#Rk zicQtJ{qm9qTMo_$9rJt8h5#c{ogO;%%gW#7h%PXtF-T!s?5F=6&*UXuoB*Kr%Wn_F z&3Hj~7xAMJhvXQhzX~Fe84oekg1*)(;ChowW+&1?5XSc4Y#4`FD!B0>Tn7au|zQCKg+xg#UaB~UmXdqP8yf5|B zi^a@~=Qe%Gg}7blH!DkgqWA-DbQ2_(*RFE0za|cFbR)vNod82B#jJ$ZJ7nWrYI6)Bln}x}D;u1c3!53M zL3;2}+LUdav#`&eUjJ0Yj^wc?1D1G1Xe;+vEyG*Jh+p0TX&f9&M|rjBI{4QjY$DZN zqfpr}Z7x8?N&!gr*Ji)4R5)ldo*(ANp?%qSd7WvR4Sm^Ryat*d3#I-Lvf+_sfb5dH z*FoTjFWvgC@jmoUq!gcV1u2zOrWXXJ)wWs}+^mZOPXTTN{!-nN?4aew1H6NNP%biq zUPgNNOin8wvd)ny^_U@2c|$6A1^3y@&u>26X8IMqf3d=FV=Fl42*lX8Ub)B6$Mp4d zKKRRi6(D{^c?W?{kZ$5;EiIPZUGKy)*l|GQ(zUglx2u;nY+zj)+9|2R`CO#pIe#%; zNMNO87iw6QPMp4GtmK`fNj`x~2mIJxm>$KI_eNg>3l;m+>^X)_%@5hJ^Q05OD>U!k zrBZN>GBDOhvPtKqPh=8OXR_FTAi?}$>uRMzfTC2?_m_>}`Cu1HZhf-)_BK4l7WgvM zfD&kke}5`_za40xxD2MgT$D7V{~-AzPA^$DgJ;Flb=4|{JFZSl=FbUG*+z1gbAGKn z8hgNAg+Cj=*?0S1f)X-EL)QZgvT&Y6;_XmcPOu*1)><}>z(0G1Y?W>77rRJlpHDrq zbJ&REn^KM2qIIwLW<(XNwlaq3Ve!XE|Uu=m5o0g3Vh04 zd++=;t`kYoPo5g&GK`LT^x&{bxq+EH9<8)XzSqM=^p=&OJiV<@NDS$XBoFr^UjuQi z;R^0fea~0qjDq_Z|8J^JX?ta-{(oh_u)I<#rwIFBVRnBzs6BXq6QG_=! z2nnZqlucpDuyK)f&)n3-N&MLmv`*GCxP+!g5`JdOZv|ooKs{8-oZVHI0E*_dlOeF+may|Lcq4g!0^58FqTs|12 zL0cG$03X-*O({t(OKlNZKU_c0qiMtPcza5ai(Q#p3XEar#Ch7_+B^A&0#D4mKKhXD zU91N`=~(t)E6p>FhY|8jNvvJdg@YTA;H>nyDQOW*r6KbrIpInwjk`@h|AK zGzGlmxv?Gt8EK~^(qAtWGcHC(aMvHb`zAH1LZd)i2<K+mZqL=Biz$Vo=KHJKV zSLs~q1y4Er;dywCUCeN}f5TXx`GP$6o6MxJ&WfO3wE#0hT$Ds-UNkltPyWbbq=LH# zyKHeoY7Rdba;wDi`D+cJBwzL*QfG7>rW+W|e+?BOv?-|IS&jaAt>(lziq>MKrHjxv zz-GhPSf|TgB*9DS97@;N+ti)iUe-U%$LUcJPHQu!guq!v^LkG!u`20V))+;=IiY|u z3~9DI)mJ+ZvsWkOL3$431`aAgh9{qws$amKxaiwz-#i0J3BHGaH6jJPO3Dt3(KiL@ zfAFQVXOtLSj}{$^3OEvaF(vTvIGxgq%Brdt+kzCq;{S|#!(@6Ht344CzrKU<5?rUG zXg#UZM3E@{9R1^y%_fQVyown2u>W|q>96#U7SkA5hM@DKjvc-u2)9@U9<2F_# z@d`oKFGm*HnyJ9hg$>uMpwX(%3Xf)v0lT3RAod6+wHqYS&shc^OHKTa&&KSXm=`g0 zB%LSAKM1# zr?YV?Txq^#EVimFxsv{%=-gQ!B&oSgRUs&a>6ACld;$OXYW{KDxSK0r$2I8dscHTQEGKGIX zHPo{iNQ&7x%RJ!xmS&Zp@-V_CC5GLaC22r5YoOoepl~|Mfuc->GO&1}CbX!RCP zauMOdPU^2+JRUXw6k;3)77%8#zSn4xf6MalYJj+I@UskGXf^CQAI-LM0`$ zNbXOdx#xNC!N!9r0DALHP+fiZOzNu`&SA5CM}x;{nU~66j4wF6b+f=Ojvjh!c3aTU zoI?y=3|$VyAuS28$;D)^cbu5-iTds0-z))}dh%r6I=|5GaXSxgIvIkG!S&1`Np?1v z=uIo#bU2SO{Cv{V-5GqjTFUwrY}(ibM}m)3y3WSgXo>hGr@)HHIx{nh`M5M0dE4#} zdAfbDSRu1k$9yC0hS;`iWAXfz?|;%z*1~eqVU0Ng=LY^Bp*f5h_SU)?bQ~pevfXyk z#vt8IcO+dCF6)% zE!~74H|e!Mh(Rz{kOvu!hRkT7`B+c?=P_Ofwg7w=T-Lc)0}oMGL6Y>+=ruzI(ncNk zv;$#tLYR|`LCqtHpJxo^G$X=KKl;)sCWJXQppRFeo#W$AFdS2y-gC5YmuTeyF#8W! zY3si+cV&keR>glA8ZH~nx9AT%#{#|;r_49q2K=Y9ziVtB@(T90wO)HYMp{q=3OdH| z{Vv1ojzI5Q$1N36z2lRUE(05KGXdfCg@PbEn8iVT_Dn;j%0QM1h{av;)I}R}lt+Rv zAvDfKGhvmWR#kj{IR8|x$OcXFPO8y7^fSagQsG?leRZc-$PWDkKKV<>Wg3+QGi}fA z!IK^Qg@L;+tA}gmPo2HGlAYT>fHL^f;4z{3=hUC?2ei}d`@+|; z+dc1poO3w6O>y>_RRuvCbiW5QT{*G8KWYjv{$l9$+E^?jg#o;lsoW-67dIY7nxHN`4VO1(5 zNgF%^;rNUR-`qH%AC)%}3Ptm%jSl!@kgjt!;8NKANx0S?>}W1<`siqo-FjBY^YpGY z0Rw4s%+MUcdm&P9dBZYgTAC8$bggY_b35YTpVghLHX`%bk9hSr`h^o1&bZsP zL=D>vUHt+{so@y}RXk2E>LRp6v`n?#tj%{T%r*5%M)u*$Qkg^c`wi}WiLKcHn|CiC zOyZ{TZ3r>=VvFPzhX4a()%T^-XQFh+9%+W@b3#4Vwj1iK8AaiV{4D2AKrAn0BY)LV zgLrTllpU4@7Sgq(t-3V1kDIWnFYeIpiDQiXqialLPXSlka$HwFZ{GuwEV?mIgcCN~7{b(PaVvlE!~i0}*Wnp=9W>9-E}^{ojx*QPuUSyMD)Ys`(zyYH!(WUo zvB1MeK(6_RPfE0HfhKQcE%2bE0i3_`n;3+f6ovKi^L`ws*aCvM3?9rXfShy$k)KsN zCd)HYB%Opzw6poo@i+8e$`(Xc*jVYMun;?POTM|Y%*yvY1-x!0qV3^vn03@1Wk1+5 ziER0!*%)NgJTk~iwUH_osroxSk!`XOdBs*%0(0Bz;_SV zJ`&I$^3E{x?>QYYRx@%a5jFT+WN6d+*%8WKH_$nH3FhIf4Tq(0|NIDSaZb#R8#@DB zlM|>b5%IjQ80~EmmyudZPn3YIY}s5Ruuw|sCJV%6bL?C184EnkV?Tf~ zx2ViQ@cVHY)Mc6b*wHm`-V2*5o}BMfLVP<8M%sn)pdD8?Tb^;M1B6@Dn$uUe8cd9M zvNs0kA_@o5{DGn2|E$r9@|Uf!?!nCZl*w0yh+%pFc=Aci2KSBcO zx<*7&)c>%p`;FO}eWXA*!_cSOMU@VqaW0qVxp*5i$k$pUcMOD=0}iN#fOFq|9< z98vs~oY!samOgvNVZ^{Ra-GzvNw8s75Z2_m?(Qw(s7rk> zki-@NzTU-QI9U7;&<2p5XpV|}Kxl=c0z)ka<~JnT-OS9yPUeB^Ga!=-+B3+`H@Z7X zPADmj1D>=z)b>aUkQjehr9*Vd*9nf@9{-XIyuMh=po5XUZhRu# zMn(*ofJa9XR!Qji+!s$Hjz_{MC&$N;|J>{V*uV@C{pN=c=i@7kE5?i&*px!)Nsm`Y zx|{)Z<2p1jr~z3c;2XlsiD4eqx&XwKo!g3!XV@6F(Lw3hLjWDK_|=`6`i4}5;hcX{ z!>%6u=n)X)y;`J%1Lk@GvC3sqF5U4qy}e3o2*3@Ghjh+lILSrW)S*^-pP!lG;(!HC zQMcek3D9OPx+LOo2%|1CaWSo-vw(y=EYpyF=vI5;FUIBioDQBP(QS9?q>}^7myrNL z2PB9}6WiiK=HPWjP@MaWD3Z*kL^w^qHYP%D;BAOE)gK{gxxNr5Vi$CrxA+#Un+_1n z(_u{7v=f(xRKH%P>lPvdQ!``Lu)2n6CoS25r-j{zl{@D@L?EH& zJ(u&6&4IlG4vjQ*x618V@c=rSG~EEh*dBKGy@k7JQlhUnV2OSJCadRj7bS)Fgwf%) zul34kyJ~bN8VM0znHuCS4F zn%6pO{2S8ah#WP67y>{a;sT=oVN{LNd@q;^|0E{E2XQDd=oFO3_m|a+DRaW>jfP;HcCb{!@78!G9 z%_;3#O1^q@HhIg(j)b2DV?&|S?V6w8*3{0W#5Qh$+xNX63T8cWCo`6R^dArs@4JM2jgkQyC>~1a57ElQ1yRk>IZgK`n6n){5RDF`& zWmA$s#Gwe0qkT2g>e%&;!Kb3Vay@XZN>|wt$BRweE5Bz{8GIh=2~|v_LBtJVD`~7w zlJVuyB=yB{*nvI(IrQ=i2E)I*0!0Aod-s}xdkkA};8XD+<2+G;^b7rU+4ajDxbdLf zoy^T0u{JfC7CFU6(B85~V!|OnB&ninZQ(C8O$aRlFpOl{Csd!;utGCq0qS(7as{&r zj1`Nc7?@r%ls>a`>^pPx7LV4;@CXV|!EHp=@2Gv4zCDmCOB46JfI2!_3?fRIHSG|BYmmmuL6pPTsZZ)Wl&&7OzHV=}cn-@<`MdDdw2aQ9k8$ zM+I7PDInHL@4Xi$34egI3wcgHgbeEk6W4a^^f7S?H+4dqahAdZ{;- ziH`oT%;xV@t8aoG?0vF+8j!0~1E9bY15DD9sI((ZFl$>@vd{BXu_oNq@j3m!7%YRu z=ab64zMnbh58rHP!B=@7#w)&89`ddXe!Z9Vd|KS}7^hnUo)q-WeP7-y+fL_Wa8DqM zfpFXJLFQKhxrzO!kQ2?6(~O5MIVA1q-55^nO6=$bO;{oUcKlI*M?BYuzZl8KrfA*l z-^F$qP99%+$wEWxPZkNEqeaTh;s4qiAR{@PWLu?;#yY>7!U+V~yzE(J`Ue9$q5pLI zW%uP@j8^5lfyPeZK*{i6bI%fn2WoiPIO8UvYkpb_AVbzZOXzr&0&+D+>jupohY6r1 zSx}+qkdY?lr&Yg=ODnu^s_|n5mf8R~)u*R58%qI$-T;`_fu}O&;m3E}n$Q#bFkSPc z->Noh)TFB?5;zlbaB=B$%1uNTZWz*PUFQGVWZZWe{AOfl+W?r7$FR<(nI7W}xj*== zu&wai2E&r{{Y*u|ha+#BNPOEpj}Rtlt#PV9NBvtjQ8I|||6-T;$Jk6zg58+ljNFj!}kgcKPCEH zU!sCq7NyWq3hC>PA83ambg(2k2sdZgesR+B@2fbH;}vH@vwD0l3R|xcWbqZ2ooXyD z4l|#xaX6{*$Hdv~Lz{v@LJ`BkORg`kxPXTG{IHWfUVqFnu=8z`_QVQJ4_AR(2>-IW zkoZ&cPl?!nF^FR``xIpEdsAne)zVx&hzjjUsD|{<0P2nnH3X4%gjZi_$R1h}k|94I zaqYq02C^34ZdCy~U%17?-c5?s!Vpj#b1O~eI4bR+O`neo$j?-sGKJR-C#V=NH??1k za%t*R9Cm0X)O=jNzE?~b&p=So{Bs!Uz0Wr{fYOo~6@$mi>qYoFZ+f2$0obP%RC=i5 zfE`5@9Y{@ol$1)7zrK*Ix2Hr7^)|YZ*D5wGv3ej~UYljz-Toe_v2(0Ec>gi%SdgB& zFST=S{x1gmsnjdId3gW;xS99O+@6^GnSITl)UU6uOE=@Q`yE9ptWD^f;YQhog+j06 zG6rI5Bz-l~NtcuFnw-`%Lpz?U@?=h!q)jTC@D))F9+hLEFja0vB#KhqQ~? z`bJqqAR*#gl8VjGpYBgEM#cW5u^ec@?31C25^^&WSKUs`ohRi}8f=)l)1(I$%so`r}({>xAolY4-u&H>3woRJjcyGO2^)tRi~ z0WS1}<(nTnUu{2TSvI@Rzu_LE{Ftir$5Z9Qb0JT{jsSsr0BBFt(RA#}S=uX_L zQ?D-wa`w8;#jI*GO>Q8E!l|?b`%s4QQg*V-H$(G)5Dt9~pei&`H}qHo#CEnq3vDVn zj8BX=9PYR|=CnB;rW$h+8o-CoNdvv(b%;%&Pghl+W41X6gpjD-dYXa2=_#Sk8BGo)RY z;~@MQ07{(ePpJwFeodRhj`Tv4uP$i4jLmZOVE6SD(i2J5WeKgzT`b7y`~w!zXO7BY zAx6erf3UBx6fL$Q5|-x4ywk&jACMcIG$f(FXIA$=hp-HCd(B>Dc!W;2{NP&0 zOT8qO_bq(2EhA%5pF_Wgdh&LcUg9MmKiiaIctJ3w+m?ZP^EDYjrzBm>Ud{WHD`Ci8 z%E2GxL`qfUXnERG7?hQ^x=8^Yj}vUBM3E{|ZfYYwDY=Q+kMaNCwbJmfwe45ui@Rgk z*80K0`lz2yN~@-5e>3J9dlVaCP(w{0-Qdj*YfLOinGp9Xr#9je&b*0rE+BS4-qvG@ z74a)on*?n0^3HT7esaLFySqPclI=$vPu|akC{w1^o8n}3M!6uQiBAuE^zglmrOfPz z^l=VC&GCfA)oK?ku1XD8(KP)?qzQCd@!r9Py`zJ{{^g!aUXJ+_F&{1iHo-~CTKAD)3-kkGL)Q0yYiZ*ul~8Cc<> zme&5&T6^W;K=*2UA-4owB`K`&(!6?N2C@|;{7k&y@GdXu!b#9pczlKe1DqT#MVCkBCE6Z;N6zR-7^!`KujRX@C zCGa3j4W(SN(z2e_Zj@*!{Ek^yEMC^vuAtP#LZtG4*X~-N%&;fBco2(X<2Q*_xegkj z?BaaN?<|RvsQBS}bdhcNA5^#_nPd8=)Fotb5#Q8Io3OGJ9!DlLZxDxHtBfR}2S1$B zh2u~@u^?k8)m9lwZ|yN7rMqgeSEl`~Cy5HS>Y064UDE6O+pdnOo&c_QDy6}b%U}`y zM8fvl{K?@a{x!@;59dBiiS-t_xoJGk9gj8d#gn609X305sB0|q^=r*#|K1psH1pe3 z5%FHXi0m+|Q~#=1ru9r+RtRtWJyYlD8Y69MTu%CUc)$6XL*RFMLi>SHvu@UCpN#e> zkse&^Vgy0j(evSnUUoq5QoiJLD)UQLE%udiuiz%*+LuH=^!4-MaTINWjgfeg=CrwQ z%R_Tq4Hxa@e-F)whb_NQQjmqKMtw>f|poiUOiV2kIk1jsfkpuRAWLmjIni?vbA^E9m(-9Wvs|?wH^d2)@a&Q^8g7Rn? zvY;fc-ik#NFe%SJOhESfRQg!`%n+?LnqOF#jj8P~8wPS>wod$-Erg0Xw5s#S#J?Yh z9NW3&%Z~OtK+IIWe}@Z9wf3?0a?tdT0XCyaz z)qcis7wOFi@y}jC=jqI#~tZShKZXvgi!&Ml*};YIZS#I7{^1zfsjQqUuXaf@BLxY~I(T3S#vD$DhUIpz4e(PX)N#j2dQ4;|#V z`IT%;y?(rmsDJE;pbjb!uCY~UIr3L&vj}sBHb*v%omQNx+HiJICa0YBrf`{Edp^95 ziTf`GIapLKYi?+NJs$15yIDN%xo@-Re%l5p5HBVAhhwvaVB+!3i0R*-#%=YcLI~rX z_WKvNG9H!-Kp_fUu>;Jl04rgxM7|lt#n$Y>6~MY7a}+QB}BY$3A9-ZykH@1 zvl5Oi#El3Wl?djl=Ox;7|BQC~5IiWZOMNdQl*xJEUy4G}Z4X;u=Wi-)R`X{j4wpOa z3MK?8E%t12s&-&Em@~*yn%gzgzXNS=ryb^t;gb=dfzTu_txGcKQ;#%U0@)tMwiN~T z`Ht)O$t3s{DZzN=W&y+TdCojL^2H*n*gTpv^N@!GXma1zm{g3sFk6DIP4MfGz&N;E z?{xzhg9u2m6PjXa+%}=#y ztuS>EZ{l@Bxs@7d+r6_vg=7*+IOM=w?8&mePyALcWg7QMb?8<`PWOPew&D)Gy4uqK z!L55j^bX4LHO^i2MC^0UlVQdcCyWYN10F~y&O#hVToYsU1&z7c7&p@Eqh{XGk@Tx= zS2|40@V|R2sq3;XOaAuaa{Ft_ETF(ym1+ zb#`Tnod;QOtLIg7?@FX|*XV%EsymwfMUmf4tU@$)ZlWnfX`T4Z(wH)}CGoc#HP*Yo z*$L^-kk>M^cTbw@I1HRGo~@*7}Pk0CAG8|*QjSNYCViV=TMmF3}3tB;O* zF*XpTHo`XQXw|}gKhrv({Z%$jGJy15G(Y}%JodI1(}?~Ls^4twsmB^ZuCC&fd@IQ% zB78*ydHPfCMSn4P-q2=q`p!tIE?>y0qo{qObp2us63y$>^w z*N|t3CUj}>%H`W0x}5h?S7Ha^)Rs5oT#9X@+q#w)ge-?RoAY%hpohU4ez)Hxi`IE9E$fjTKygzKzeIg|Bw0op3Ol+GpXrL^1Gza zo-4sKuO;r5&Uo52AYQ6*$%7OBQsez`6M(T}Nzj#l=VfzGh9}AA-}<0_egW9y2>*Bu`0y*i+0)*4eAqf~;(gBNUo7^dbYANa zA>=I1a$mT$zHqXjoXR&+Ast|RcLQ`9~2!GV2(h7tl@YhN9RR2v|h1n&2F=N;Ff#2kt^+PjOwLWVa^a}yY zFucP}@Mq=Q5G;;pf~$?sBt8i?HYJ2pR=%IZhs?QTEV>A%-45nssrT1vDGl!CAZ9ZDtd$oc z0Q$xMiB9{wWwn!Z%*FGjHN}>(O0jpw44bt98CyB6UshnJ-)m)!m(*IdR*wsXZq$FuF#cIMyT( z)Q9v8+l(W#-hM>_S)hxh8khcEX*k-=ycuEgSzGK~zeRS;_3nSKRFd%0QFp4RVnT4J zGiRYhz%|wSJ0NHnF=D(v^P%0c8*Vcce&j_~)x`Iw@l;^C)F#4?DY9o-Ol9;B#TF_t zlnS!)l8`1fh$C7@!FayjvyA>+=l*kha~xJ&Dp3^KGi=XaL$&Br4svhWwM3$=X)3Ef zz`hdwfyU^^ypKiP66c7EcMue#oTZdWP?LHDm_m>a^&v-9t!LLbv1;|e1C_R(0Cc1nQAQ41 zhS~Rz$b!u7&*wh`gOWx|)?`79;l3gExCx+~{}g?07-X{mKUJe{AnF7=FwTVz(j(6) zkUr}eNByh0`qZ2Zb%d44wdBU|;#GoZ@?jikHE=DihFo2)iNinaernA_9kYSH~zp*wXtxF*-f z)h~@N-Pv&B2FR}2z;6OlzvvLtQGLKUS}RfuRWh5eeb;If(G;csnf(HEP6`1#Y}ckI@tq{*;rW=xI# zi2HfDC(s3z#dfrIzvCy?{&Zl3nsef1xJOxBa+s;zBs9YYKXA z>TzIi(yvN(xG!afY`hKCVcZrKzmVR7<`1V$0d#23hzp2@F%;Tuje8aNyC;$s^c*&Z z4U`ptKvNlzy!B>W?=mx zUN+a-ou7nu1U%R{g2TaemS;ZiA2ynSnJ$ikQ&4yxE@i_kX*y4RP?-)Usfyw>#rP%r zs`Se;(rqe9Iu9Um7LYs!p8Ul)w~=~PtI%w+DK_+n#Yn63I_)>Fvn?~)KajE~m^_@i z@@yAqRKyPSm$&8S+Nxi;BQnnVBawG_FQ3}O4?M^zQ@nX%*)r{4{Q1}MH#>%r4_Gqe%`92q4S#B4fWUOkky>0@6 zS`nY|!3#p+aM^WWctiT^W%{3tp6S0BBSEJVCw%vCDXlE?kc+RGiDEDvyWnQp@qh?S zWpYmqGrQ8z$caVWp4LgDA8gfQ(D7`XSg>K*>41?sl?&@Rpv9SlRrdq~E-5QAmJuhx zqW&NkRTA>*Wdp`@Sfe?@+{`WsP-q%%&Y9bMUC&Qe8K(F7@%;3sCZ_&@9lHOu?Kn7H&GVCb3xwQ^CfFb+ zZjbE<6ueOi1B>Q0Xv485M7-GZU*B(iRpEaR)||HQpvxW9ZH4a@=9(_a&e<>ZE=zeP z7CE^r!mAQbBU^c(GWup4^w}ls6vgiP{c)c}$wJs3=@aa!h(0&a_pXn)p*QBH_)NDY zA{tWHlTS!ePV~%@9tfToFLe*BA+mo|BXBFEZy}PO!s&Ng=p4>lqqT1DRrX|Vjpx+q zUsS}KA2e4Z#_4>yfDA?N`f+p$SoM8amKgeijts$SgP5nAtQA6_niv~uPp^>}Htwg_ zz${`{_i6T4NX;YvA9{2eQRFkNZA;29b7wBPenUjE3!$+N-kE4DV^VEA1Iyqp#m^mV zZ>zO>y>xxfjoTd{bv;IAcN+ZXS4Y|Fd`9kK-OD!5wDl>|3IpM95*p~tKVneQ!8-9L z*W@w$WKZX$P77v8^NywcSAR+IrpLoyQ3W16#qRHV;QaZ##$PDB=W~ElK{oy`F1M3R zFqOk|i)0W-w6sn_tY<+%ME}P3t_=jX@jC3>hd8P9_b%lJ7PZiXGdoWKmgN``H%A=H zEJ9EF(d){|nZUF4(JyZD*x%QnKJf>9E9M-4)89q&X?sRQwW@F4VJ@9Rbupl5QNMX9}F5bf0y?aWtf?if121~JL<|0U_6%$RWZQ!BcT?GcbKdi6DzD+hx; zezh;!^9T~C7J)($*nBPc5FPIBDCI4|rHVkcz!5)2U+otk1jxyTMI(LS@KdjYY@_ zLw*5wizv5mUT!qv8n%P)MC6(s|5-Z1Lj5W6A7a^e>ow=4t_l4k?p=NS|6-8Z=k8U3 z4CcD~y)nQqeN*LQu4kny27{f}oz~_=Mivhid1ln7UT~&W&uwk2IhOa44UeqEFVS-3 zdM8(MduDgI>V}umZAcQx|If(7I#$L7Xd)2+S?s3K*fXBrmvT1{7 z*JnsWxFw2*Y?5>t_BLG;6%~1a*l_YS(;%`mgC^azR&c=fVo9>b8QZFvg!I}#Qf*4r z`7?HWUh$bQ<#Yyih&8!1i(2XBn|3j(p+YM-dt>X|6xhgeZTE40HwhKx-BS_W2>qCq zq)pKsL$%SXL3&+_7nU10NEpk52qa&b%ZLe=K;LJa@p_wHokjEcBm6Xt2r5I_2>&jX zpgyTJ_0#voDu2$MEng>fo5%QvF1|2zlz6ubXz!*DkuthO- zh}YjxbGjrOn@|~0yyWYSR`*fbFh@GdHXP_Isz>tWmr~IM9_rsDIb9@@IxD~iLI5MH7XSOL?JQvzXHbKv53o228@+(kcavSC(P>jq|1Z= zC@bbUDcipoo170U7n7RzOdVrY0>Zyz+p7qAiCD)C&In3aUFpzc0PPGRr9q#-OQAGC zLn8j|eVP29_tm>EJ*R#v&kuSST*p0Ng*`c$Yob+=sQ+_pTDU{HRzFch-=4l%-9`SD z0q{F0(nYdJ!aq$l_NVo6aEUIgbaY?P)@Wr zPf^4cQlly-)V`+kazkTW=9J6Y{-Jv_uB&S2oC6D%`aN+KwORDdP95sVChi*us7P24 z;0+by67eL7iDJ&i@L^>d`oS_&AD@BNB^f6CMp~TW%|WsFmj)zB37c9PJB5W|j^4ED zLfkfK7(?-7ucAi#ea0{iC}{bizOPP9AI|%v7CLrOF@rXBHWNx?lpvWydOEEP&5ZJu`>DsMZq zX_XB?VHswYIH;)F>Hk-oGLVcJ;)(yn=BdWX4NVJivlrvlHrU#%|oKnw7x-> zeX^o5WP6&Y$&=5#q;=>tO+6XQ3i!lYTcZX{?d&haAfbwi+iFe+*E#S69W>u2=_*tI z$223ypIV^l;@IL$Ld(~!R61Vb%CybvB8+E~+V(JL8O1UVUVY#Zeh=~>=bzQFr<;D% zWBf11_LvbzAS-a|Ht(=M#E)&wJdy#+LAU)V=tqFm8W7^TK-+$L^+>02Q zkJo5EgV>Q-PAeyjTnh~Px)!Ml>GgLnTxR8eG+_L&P4%cozh~BqxxSb7ByvE{SxN&O zy=q_L;&jFkh|svRk&n5DmuKj*9ww7aZuq2Iy-FiQOj z*$4SV2l{BZ$?|@^|M4MnQwdJL zk&g=&akB;9H*jv7OXQ9&5EAzN^@R-fV(1$n=z}-K{Uzlezr9ut5en1KtFCIE1>;3l zmZ!^XDp!5bQ_X~<6RIu;Ok8gD1oX>TfXV)YErnD$Mth5V$SzGKWnqlHgK&Bm3sXm; zC)cpw5Hfj0a%MnmsUeCzIqx>N8IziD&N)U5Rwr@Kw=S2w-j$?dS^_*e7~0wW%RaA%b?%>LCO8Lj8%y@DY7^eV~z~KRwk}_KC_3!s3o)ScO>y;J^X4rOXnJ zBqP((zfd&lJL$*1qt6bx0@Jk{ECCehQ!K?Ve=#Ph@8;JwveH#$@^BNYzxE0^esUxS zPgwq;%YE)`>AwSvGtQ3{D7QQjxQSoC&PBcGW7<8$9yBnZbe|G^c&h>$`EE!1qcm+6 zMQoY}{fIrgC5{Sx%xcLAXz9>1I3^*airqj$t!~ab6faq~t|z@95Fbe#<*+ve5Rqu7 z7;jT{QOM>p#L||S4IO6C%1n^{0=xE2so{2(p?XkI9T#?Y`OlxXfCR#vwwO0Jo3kN$ z$WzD_4ctbUMGmDMJt<$#pIJG6`|X|0XN;34p05^JxwWih7xw}Ia}Eo45D|Ah7u@{% z=TmKqdpb8cKjOi71mhu;!J?kJWp088wU0NN^PRN@!LU1>z7PHxkkiZW?p?jdJ~vtt z{oS5(?rf1`Jz?1E2?SQ@(CCJXFnM>e0M1~ZvW#7JyI6I#_ty&qOi7IQNVvQnG*aIe;e;6mSKLw*MEGf5>d( z5_a^8_A+zZr$3!-%LBJ^)A;3w=GP8i4Ri-)Tlx2=bFLW4LEHE)Hb+)_l!a^Ds~A4$`z^oPiPyB#S1h?4+@gy?jo_lglnPD+|+1HECC2mTy; zHqeW;farM)?XvzQ=Lv+LdN2p!$8iGe1%jYOENgX|Y-3`^rq+e+qCtMba_M4muYeuK zGqo*{29GOlc<&UV8DvW?Bc2q8`%EqjOYWhpKj=d{h(TjX;(rVoAag_EKS#1$46P1N z?On=HG;+0kq6p>`YM8W)WI7IRj_xly$)SCH^#%~L8ny!l->61_F;pmgT{p*jh;R?D z2m=60kflGOC8*G6JWy|>g8A7T@r`h>g%UNV&23M(%`d^PX=$s*4|SW5D^m#U6<@pg zYnI^6h85cPpqdz}@;K(>nEi=+J@}VbMUY`h<{#DP@AJee7|SQT3fG`nx40r+r6E4s)OQ&B#b!WC({vf%j*zwH&K7v=QuOkN*AZ!3dDVz z`QLoSL8kUM4L#vs{t*C!{i7AYU_Y^Jxb8pHq}j61&d$93PRGxnvutbf&Ye4~S7+cn zK@%uR|JhBTRI=*(J2MfMwUl-C_l=hzgIii*qRR?{ch^m=9p(3FjZ?ns-neYgV=1=- zAB}TZe4?cr?NAfkVfJQ zJSl0MM`tgkUNAvNw!uxLO$PHDEIeSVa;7(N9 zS`BWBTtZpYYk?XofG^~;iS2W0)nvyvXR?yj2iRE++W-+zP z(a;?9+`_{bUTi&?`uqnAb?VmCGSTDfp8#c{mXJc*)(E zv0FEbYSzB)22cd9=4(@WsBh8{%IxW8Hf^lR8OX!G#F0*=GyeYux#WAu`ql8>vjO7)4Nd`#c zWuZNNvHM9{1tgj_wv2{4*+woVL{fUHjn<^|U-!=HbsTtj|ZoEo#p_ zJ~g=4i!n<2{~;W@VZOov0?MYSB^28MT^%ya(ntRZbW;kl71onfz>BL@R30Md!OpN1 z=RvKl;)MkJS3z11aV^ zD!DBi2~{`-8iza$n)LxTM)w!#yTe~;MuqG>-7wg`(uXi%9hWcm+I~D)o$K-jNn~UE zDoLV@E&SHL=D?_!P!=_*5Z@j$uhVH@*ZLRXoJPYDf)S;bjkpP+l>?t~a0QI4(kONQ zRua~BWNZPpplwPHSGSIc&YkMxvsXaydp8`l)TuYF#-D(Hq%3?te}}bfaUrH_{Y;-1 zA|C5qkeWJCT0Pk|;{HD4x+)OsnQ|=EddS@f`kr70-w{-O^PP9R-tmeVwLURcrd(!Z z{{WxY+3Q}#bJ))s*X$O+`#j!^MHgBZh~1Ow@s}`S9r|A@5EezLisd=enld?uY0tky zvU$(H{ElQQe2tR0Q|$Dluvt`TkmT)N`kbTyTTwl{^bZ@ zZ83vf8UA(QsKl}9THX5+e=^Bw1w}s{lfmvF?-?ktbKoHdG`;CAEw+$*@ojc}bbfOk1CblXr@49G?+{ZkqddI~tX8Uw{;(Go(h(n{j94Zcl%Q1)L6rYz{Ktpm!&80y^98F! zJDewDxF=K-$QJCV~m^P%}nVB<#e1bVnuI!h?xv?~lszH2Zi_G9c? z8(I((dp&Z^qpZ2YN!nI`6yvuXef{Z`W{CS^)68zB;ly93A?mRZL!%KV$%sTzmgB}t z+HzXu?f&Em0c=cTBbj152?g)&ACn19Q80xmj0?5w(NkRP|Dy7sN<3meye-0Vc@MHC z6o@`^+ASzqT7$V?k@8cFuAD05-7t6ew|Jl{1mZk|fvb7lOuX-BPDQbefJSO6Qm02L zQ}Z38oY7GxY=5b9VxRSv#w5&l=_@`mo~F++NoD-?p8rNDi|WH%nHgf9GU|@)jdvVR zZIG9nc!{vEo(!Io8L{k+=M9@oF7=zM%`5Q5nG~v6mH*6@TAE<;$7#N2cU=O3oHVK# zJPQA!Zv_B6SDRIGwb1N9o|e4jw>Ch{gDXJTdAdDVHY)Wo)LzLKsO)rsP&?9}A$T-{ z_r$b%w#>p34I~L+jXQC#$+MeI-UiOgE;p>C{EF!L@L4ROS2%2q=zqonT$*e3nQxk3 zC(TiS){!9skTS6u)REfKv~w)%&iK65d|_K~d_gN5cda>X+52kPT7v4>;Skn%CdNA@ zsdNz9kax;*J?5X1iR)T>bJX@Gj_DKq;7wdNDvnT!Xm@oG5L3=uah;?UANT3Sel=4(bcb5+*!8cyA6v{+vYZH_JMvXJ|J;q-&*tZ) zmN3GJvPR(531RoAJ*s4&b^Jz_Lf6a=qgi^J*0Y>0c`d zHOx0otq0j*aTd}XP&gF(0{!^2PjT2XZJOy%t1SF z5B)nO%+Cnw)p@6av^1kZTAO)qYW2d@RDAR2+1c>|m$?Z1v5Yb5bF*Acs`u{IR8Yzh z2F`{jP~PNYi1~*3hL|%8tscQGT*+ZqSA_#wTLa4;I3z&oYa#h4PiUda)fP$VC^45# zK`3!z(Kg$jXSm!%*GE#RyEE2P26iQpu_i|vTU*ybk4m#{I{ofx9oCoj0z(;_@{{s< z1x4X?XFG&dJ|v#zP97Z@wj+K@9PcYFY_H5!_t682HDd%YicHb|4hOOta~(lCNmXM) zj_|NIlISENzWs|DGrbV)`a^#q*MjoFch^6r8IL27b(v$4O0=oM+f90O?p)GJt^cFK zik*gYi3bid);uMlT*~4x2J((9cjGL5|WL(=m^Lj{vA+(=w$}n!enR-|v0l=K- z2eA=g{K{0|DJEURC&yK>b9~3Jp~AGlfv-hi>3vI=H39U5BRc=nu`0;lk+?8)C-RN0 zp`&6k2QM?(F=x|C;sN|=vP0@t@kxlv24GaXA7GlBR@M|nvBu*La{tg5z>1&TTht%%(t^`nv|k(SOdv>hVAVUEs*R2)kgm?=1)=l zTlV8UXi@YvEx&q04b=Y9h{@JK4mC9j7RVjYr+wFi()T-)vx43e0&377nu1TDC8Y`2 z8>+*wi62w=+P>lLbacY|pz_G+T%VWLl&X2c4mpf}Vg`yQA6&<3QSiuYNNI*W4_pbB z?Q#Op%=*7I1Y=ORhXp)==I<@akJF~Mx@1rT-e;2IbBiyzq~MB;JZ6!fV-9FYp6Hqz zHSk}u7M2JsSNI*!Xz5ohXL=27DzCOL^I;KXZWf_pp`)SzD8djlWfI@lEJspXk=`s0 z-w5AFC6~}{_xuKjDE#;6f5gPXr_0Og{)am4Tp&qjP)lzceYp9cyR_?1{pB}HH?o)M zm&+;kM|v0OyPpsb%=yQRSek^*q?@<7pO1e~8ek;&*3VwoeW z)pjggo%`CJ0rgju-6vFfU9!3*YAqg=Fk%vp+ zOyN(U%A(JBR2Y%K2#O`Nis7Fkmzv};R zFbePYxh_QOvHi?b9iKpEfEW9|3?|M6$QzC&!zN1WM?9e+A|-L_>P#-$L*Br6Q)^Di zUOWd^+CWr}K4QJ+66jj2oz(+tDLS6r)U8B2+Ek*M%}l1F0!|YWJp;~I!a(2*q6Hil z=xQsq(;ze(KBQ?ki5p~R#@)R9e2GQN@&0$P(mEsXf(MML_e8LQS%z8FCf;2amf6xW z-Rk@+iUwL!ndaB5R@!ghroF0sRr0SHY$loAKX|7imHY-O7}fm~REMkj@KbhJB4 z+ick2_q-G|9iAA*(QpbS~P?TkYkI_>Ec?j3|_6p2R$fM&WU9j-I8FU zYdVYL7gHaJXGv)V)Jbzdz0`AS_Jbd%F}LE+!Ln68)eHLKCER^}MM0^TI1~jryi9z2 zinOt&)yozL1m~o_Ui|2}7YYZfjgm|hAdWQ||`u)fgXkCh; ztL3ywb^QG$xFp4;9$yC2^$GMhRQE`1uUc}_0x$zgH9wPwMaeu-&~w10fkM*i*cz}wN6rlNxh;r z^>i!tUsftfj!XSiTh>>ChinpL6@N~)m#L1w12W*=2s30ZLp96|3h~Kd%9{W^qxay{$hn#uFDdi>O zqJWEtF#EgC71VbJGk(PXjg@lOQck9R0tN@}75fWq)dfR4z-&Y3Z0WYQr46Hwqk@8u zHZFvbO0k;TfY#};R6UA~Sd^QA%d*odxQY-bg{AxKZ=_TxgkeWdp6IV4@7Nx3p|fig zU99E~5DGS+&Jx*%yf~i|`jV+=82~#M`NN=>VXwT!we{6ncID^qmn?j5t35*^4;)R; zb!&b3#0NA3@#(Q8v>Zgk2!p5aiRO2js8)6 zH}Qhi<>e<1o-O=ab6RMhMYP_Ue%pL=!@T`KpmF?Aac((kl|5LC6z=Rp8d8l>^nfoJ z{tN|*w|YA6e7SI{tMA!*OHMHFJN^85PQn=6@!aA})XTX_3|r%GuZ8>*XoX_WPZSBZ z=@5E3ulsx3-%zuhB)&#Q)0(3?Mbcq-_^c!C@%sXOR*e~N+~~&VQKXl-9o;9B*zwh< z#Bn4AqBbnakL~@J0XVtP;zp~`d7YsvG;6?61$K#j2GRIpCv`3~ejwm2Rvi{ry^;qs zs(IXYEvW^zasEeAY1$)0BKT#MYbBDKDd4yZ-G`{h5P?tpnCUpypoPaf*a!s2i@KZB zl~mHy^fL2Cuz`OMaYEqi5*~qOSQ;>Hg8uR!&K?Va0KY#av%ku2k9>l27K(%KST$n!jn;`sFb}P(EHgL z%;={5y$;Mlqo^MJJy-Z26bhoGFBxfE?>Dm_z-^IA75Ap_c0WCGDSYn?;0jhtk{z`= z5Jb}~@g0E^ub61dWG7s`WmXxorlytDU_u)Ed#)K01Kx2OSe+}ilUmMpLW!7)$_6cF z*~}+J11XGbqQB{OG125XbOj(EQ2w2m_a#>AQW_d=~nHt1a)^WfKyI?=2Nd!SM};n9O3@(3cDC!s$mjn z*?l0W^MJyPIE8*wV(4y6|xOs}H%3kJUNyz8PXkD%ywE<7`lGzv5ut zQ{Wqt(d@8*+bGJVHM(>#Mx^*X!F$n;gCZ~M8!(v7HKl45;5Xu4#a0Ne!XS(5UoOz& z+7(<%Aqx%qsLVLsJ(7URgb|y@9(DV#2PC@nK)(op8--l|DCZL0c#`Z2Uy6zhI4<3% zkcC$iYBigHHpvEA1VoC9^f<&wd+`{CBAaLlzOhZ%<==xP+>{1Tp{@- zPtXTdmI!icfq$mxGlV+*3s6pX+2WXqL8!Y{gTr9$!kOtm8%ahY^HK4m2n}av$MT}n zbMOJpnw)^lNrj0Idn8Deh~ z*?%P7b$+tBBR}*u(gBMIQhe6Im~aN2Jj&+e`ai<=Lg-(T4oeXl9)N@PA1mpIq3x*k16GnL7W5_q28OgP=ixQYue>z`RP z1e;%)dJd-E$W}rghvIAzSJFp1_>NL%&0cKT%%8@D7sP8$#-aSa+4zYYee}Nz4+y(m zlkJ z!}V{Pg~=~i=mVD73daxLk0K#3NBP=qtekZ_Ydil^q?C1SmQI(@<>$fqOkMCm5ce#Q zNBWRd8C>64cPp$d8yQEBc)0-<;DdUU)=lcvI;V+^NYE6vzB2WQ93sPgjIts`SK2PI zT@DtrHW56Q@L(%HEg_pP#KRvlfUs-8pd$I^OC4SA>Nv0FV-bf)@;Pbf0 z-%{FkFU2|zgvm*VYgo7=cC<){mncOFSzl40ItKt1x}W6ecim(i-bo!B^c?(>qOd45 z!xcI#%DP3MBOp>2UgVWfVONQzq}?m^%qrr|rWBzRRXgb$Mo|&rFsdJG9Z#Upsh<)_ za|%N6j(>#)AFFEd#nA0Z`<|bUaK&P(T^roH6K`?S(s{v;1CGfzdQ8f8@NZtig+@`a zGrDS0E%vX45e_y2U;aZUE_2x1(cF0CvS0^8c2J_^_5*SC zuDxDXqmgUV@m_w{V7w6q!3XXu7k{VB+)34u3g0j2jWf*KgA&x48RBqVzD)@lW%D>K zt-)v5GKQmXr=loZc(kJ?3c5vqynM?hlOQS3RzW;W++!^gN9SL-cxNV=smXHbQ(>+!?jlYQ zDRezgUD`R2gH4x^N*%)mgf4n1Arz+;sLo96x7WN|ZEr)Wc1;I(UA$DPsy;Dyg}!&j zH<^f^P@zNFQ5{_rWBtRB9Fv`@;k(9#g^-9!>*C<0=Wh27{_-%T&hUMsHe3Jbu2SAtPZQ)RocunM!ZV?00L84jzrU`91xeOEywkOahETiqN zHkFdT;EgQIF73DPXbIEamS#JkDR$d5E`HY5*eq6!rxehi$?e%Z4f(ICJ+su|tesHn zo~9;Ys8g7Z+_V2|dM|j2XWE}F2^d;1>EU?cxsADfll@vvc~>QlRn_2T57(n#Lr6cqxHc!-^Q5urj5OrB zqB$VBuIbsZi_ zLFj7xEu@oPK=26s%ZMe_DP)XER;YQ0?QgB*K;6&Ly4l&uMp}M~8$k7xp=-LVNZUjL zTZVE^8h*1wI?2i%!S1XkH+%8>*wl(s>;h+kT!lEX>MaM4hFmwruN7(X8qZ=^BJSsp z=!8{{cna|yJ4*8CF~a$gs2qKO%L|BuA7uWDXKtsK<{0*z+kD>ThaTcQ*#p=LONBf%npb# zmkodOSo;zFx3bJ#pW1A0*(x`9Tdoe=vfTgOvY$9IxG!WbGS*y!*e0qcy!F+cS`@Y>a@8!^Zq_9lF#rShm7sar*3Q$U@+$O|6Nk zwY71L$^nso-K0ivl|EMR-sH<=)Zkz`<00_`Fqvpj46D(gai0_-$wJ% zwwG!!lj78Ah^bktUM7dm3A6~Cd~G_ChJ+N^X*OP22Y$zd{Lk!*tPRMt8r;XM}FsifTyis-a}u{d0R$XlL~ii zS4qcz@o&Qfh8IV`D_j`V{=$$7$EVkKqpHCqJM4 zDm3_>)8F20jzl5ee_i1XRZ!H1+df0~C!1HHLdmV~Zw$A|vh_S7c6a;Be5-;;O zuXVd2f&p>a3I%SKYlIB9HS2X4{#2BkHr?H3?yS-)p8j=P@qZJyu^|8BsykC)UK8`pyK$x*v!9pek2Q7w{&9<9TTzI7uOsB;@_lB*jXFQa}lZ^n4 z+OV)Czjr`~_}LIDARSWf+*Kik&vL6x1)Yo+EBAWK# z$zigW3oJ?VT|2uKnr7#vq40s`UPJGUs^!-h&TH8rvG_|~nhAPdxMH7e_iL(#-8Urv z5!^)0<9)aENf)eMORfKTK%j(&E2Bu)mLJGlRl6$NFAm6BWUHSIPPBErM8tCcQT}@; zM%GAi9`TRg3Tmkc%^_7@ReDx05&DmLH1!EIt6UJ%!>pGh^a=c1DWCeAV*}*KKhoiC zjbrf0&G&Wh*IZsO-d_pp33bf_c{mdB?ypsR&bLI_c6(xt4etVJ-c=w--bas{LR5!e@|Oj@Y^y%Bboo?0;+ z_96CJlP+8Sy|v4rt>#KkS4YS$)7mX8%Y2FVO6M6kIA%uo0tEw|%AiS)F_3cV{mls| z$d%Pvlkonv)PL;nV4K$VP0CNbO}CNn%(JP76^htrYZ%twd^gPc=J;EmidbBOt!aZ5 z-tS_qKY`TE0Mgk>f1Q*83xe=g8Wc@a3);L3aY(w@;yIQ`ZB@W5rYQeWhW3`=Qtsf1 z5=Z(uc4GCtZr~NhGdfNI-I)8g6w?ZW*~r_M_%1K-zbr|bd`AXz!Jc1@Q!B)Ha9dtu z3|<=Y+jxPKi76z}g`I9Ca&K^GauKZw6i{F0-Lhm;b;Jy0(5V`8PJ#3jbzs3Tum?~< zk;ZhPdmw~iy=ZuRKh?W1KDbaIq(at;Y&B{eOA)%0%ksSppn7y{PvLHCVfduW=OI~9 zRe(%2Qyx97TLX_A7$1^ZBbF;A!3e&Hl4xO(bvvM%F4R0k_U7I{&Paan)0sctk!N`mkM_?iqawNG)(5vh8-NvXhc*9ffFaZ|c1aYg#a$KpiJ+>3TCaO5ZAR zEq4a$9Oy>Fy7=Wn+o$}HUNFB0&Rir1?x8^kocjr6Zt?^=FEmE1<}BL-DPot(&sg!1 zI`0jeVtmCX=S>~D_0kvV4oBvAyyA2aS{pNO4url7uS1F3N;v7Zkafr zp)WqA-N3s0@HhS-ol1$DaY&sgQg-^*oqS|9b&F_=6s2+WQh#LCKNpgDod<-fqyBoM zExM=-V}uQaLoX!;^el1=%wnD6k1_-W`UX=c<%|3fd&>7|m2Hq}@ z>ItEJMlTt0NyT~sVwQ1|LxnyN zzAEV|+C4s(aEY~2I;V{kp`zP<5C+)SyQYBo=S-ZSsbuAh-Q6wjl@6o9yHj@xYPf-q zj9#^w_}e(KVQ%aRJS5HagKKZq=3cq7(^=jwseJVlh+|M~F;l+{lA`$ps$*-PJWRQO z^Orr8FTPXa@H^-%$*x7~2&1C;M-zt#r&JV4ms0%h?99~X#!*wkBl?r?%ZGZmmyzXK=CSaws6elz!=$ zv>NjHl9e@H!}VF)X9_VPIG63@!`l&OCN6jFuFn&4ZCw`fMh7l`f*KPD-z_>wgL!wfn(njy~H`CiITz^?BAn<^* zaxvvMUm;b8`%vJAd_x5=r(*nS+YP?}SI?_Gx-co&E6En=C(z@}*S#G$gm_hD%(P57ge_#Ex{!r}+39w~FZ+tM$TT#P^bYN}V8(~u8(IO9ln4pM$jds~FP z0f}O)UGUCalJroBu=Az9@L2edYk%QQflA?(06CHH`xF!N$%uvRp+NvUf^r1JXeJ2$ zfOuv@LM3Pyf)Y+0Q7pqUtnmQG67P(4DQG9&Gce5veLL?Qqw)A4Lo|(+>xdqfSusF6khSDami9W3sKz{=WgKlE87217`h|M7)qjy}hzrSNGDa?I~ zLIqgJ?Y#s1LyrNo78|u55F(8Wy?NWP^sCi_oVBhmbd1dWqcl@Br=4H!y%*2q-&c}m z!Oz((p`1#WJSq%vmD`*N? zgSf)*btjT+*-mQ|NeBDeN{0Z zsgbT}Af4;E^Tu90Ut$7uyK6ER4Do8PSD=ji*D>pW?(TGQRN(EM`{yj|)77*aMsE#M z0#F9ytZi9v644%6y`k+c0?YBaSSU-wQd{&$7#d7Ye5-+H0QEg&VWAmpk&SX=KdBZk zmZ{7*!|Hi><$Vq)-0mVTJxFrM8tzo)smN;>bKG%fmH9@IXjZgMiupt@?cu(MMm9TL2 zA*aW|UmUi{lpAYcFU{pNJm5lbX}b5$5$qq5d5p*IhA}YsL2~V-H=c8*39Zr(){~%4 z*CJG|cP0EnJ807x*rAIhhCPm}zGh9;hHX4IFh-$ygXTb)7OejBW9_YyQ{#SgVFMT@ z!=<;Ql*@fxdWQ!fIIsa}n6O4(Lo(D(zhh!;P}76^82-xuy3UwAoqCQ{MWXjk2M24U zRxoI!;*274U2cMF#w+u~wSZYn*_BNFjE?gg4gc~F`D>B7;1Ook0Rl2C!HE)$^`WJ1 zo3xW?H7QqWx3BTBB4_Nv)`kf+?n?4|lv_Kb8SM359`uODCs6-uykEaN)}-#u8TyjD zswwPuRThOG7Np8FI@4UZoPZ6DTmWVea;}DmnsfQ)=fd6MV*kXrhlLi)tP0~6G$qC0bafm;W2}AO)qwuM&WcvTJ>w7QTxpQxxd5lom(X$(kj*Qx3Xc&ZN6l zt@df1clOv$A=r(PX>5?xT(IMWUV30R3;#MXmpv}*&LzfWdOIP*ea`bT8IjUG^e=Gm z(Q)zZO6U6W#`ZAT(3*((9Yvk~8li@yl1oKQKyK97M+)gn)NX|TRt@752vz1Wv4MNB zW3S;aC--AsgJ$YkA(hc=UYU6&c^Gt*iOE+_ zBoFSP`;hYS^{qJFnnLh}>=Ov)yfW1rG?YLFEU4NtQ<1i<{9Efyep+QQKul?RNLtBhG4J6aX~^Mr2pqrz_ZXJGx`_dktPAkdFT+8H~@fbg@tgM`6YFiQo_-^w8JZ)r_6_p$Lp@~-ox$WB0?W+eV;&o_P)EBYn+IT z=pYcG&UWJ7Nf|qoUT-uCBJ+v%p zIeqI%xf9LSe|urLHepHx+QshI#$RfEdwpEm^rp^b)H*xiN6H)2AUa_fvGf_kIedA}pbto0`6vK|7fZ1?Y*t*Y^vdpQ`Dk?-!-Eb zFd^ShM-=BE@;(Xuf1XXyn#5M;YUPanZ9;3slog)^Y&xyocNW=5@Xtaud&)m2jlUV2 z@T46#YJE-5c7lkDp@iZTX%E45;`lqul(<=R=};|e-{9L**s###MW)L*B1_ol$Is1NxowvI8h1G^GM zdZn&B+L2F*Ki{aO4fP>^CE$5nA_d-g-9p+|5k4#Y&}k>k6`aj@md%9G(CMP*0*?xq zK@%}J4BcKf8<>oy{QUIUuUP(#QtywiY9GGvS(v9K;f_`OXioZ_E>c@Z5l7gtb^ROg zw7Lm~CgecCWjlmNS)MN=CLZ2vKY>t&X<@uY<`aW^TlSDPfc8zhY-i1?K|gFiqML%* zxG3tYAO9xm{Is5$CZd7iFr9=L?P_DoujUVupW^=1sVHjew3Xy>=upoa6<9zdAJ~P| z(?_>m>u6mR#BtD?l7Si)gNmZ|T&~D<(q!9ky4+Xlwz^6(hqedAAvfjRQ6ETb#6YYeJ587e)P0D z=c(wpdOh=!bArrMTpaURDq^X!ab2BOR|3u7DV0{wsD)D#+D1*P!N_9w!oWv1*UDVM zB2RfW^zGK!U9-1`0m``4-~evtl# z?Ifw#g=B~dRe>k;HW(Ybrq#t!!_l#(dZB|A{KNjOsy$zAUIVi7K=cZ_j!JW(7{h`K zqvV;NsRJ`1KLDdFiA9BPf-I*^{~eb{J^%x!`m3j08isZ<>XkWBveo2Dnl46=&8+5~ zRf77-LKNpD*{OCE;>W_#9v-C$v+t`uGHnp9E3q;cIu7%ZwVb{`^{r&5NaqJ|^elWV z9zUk@B=p<^8JbSoqQx}HHEZ2U1RnDOr)HB7%*&AnSUZnOrFVi2)wWWW=8w_!nQ`KH zOF7tPEJFw`=`+fW?JYC$7Fw%b%}g3quD1I8B%k#2)lnqrC?FMQXSej_$@2BM5wY!n zxoJ%0<7=6BBpSO8!w{T!#bef=HQ5-qw(Hs=#w@bf7KHDAZf!TXefdJG74;gk`*w>u zzYn@Zd6lx75ocwKbWZUsx)Dr%0y&ji@?rLl2nDVi9?`|;3@DxrxZ;|rYbFx!2nF(q zT()jlYt=*z`=cjf()WunTs3KXg*5R)BRNSge}tVCvJjSL+K{ko$w2SKQyO7>MK_mg3?% zBx?H-ZNm;Z0U{>RvJS9L`;7KGc*#zRix2zxR<)i!nPh2@5V$dRanoL1w%ZPMYev0+~8V|*?lHyI(4;dsl)p)6xPCANVg$`oG$4 z6Wf7SP4yXq7|J~bSGhH*RU&(Sh47MOTOa_4ZyBJ`Go zxAA@5OJ;S5}u=$EQZ^9upvE) zb5?g^=RI(#q7nVaLAwen7IKZQUF^EG9pU=U`kn-IZA#P8$iH*%g<#-xXw*kiNauWu zdcd{*vFUxHHiwmoT{M9+6%3ndo4Nt$Ilb(tjaS_ahm}_SkDnc;c)9g21f+E>6+Q<= zzUr+2Thfg!*4nN!rt#8Ys3>KH*cn?uO2!(oI$&YvJx`#Ng3^E_NcLcC2#?eYH)Wvu zig$Y*=GC2X)cftQix?ebikxHDp#BP+JNeKFg`Fw#s(Q;Vyn)ZMLT}XmJb|<{yI8U` z@v%=O`88pb0Q1HFl}ZE$MY}=yM}D2$f{{DkOBrmid+S?*RTFl`qq#Wfr~mSlcv8IL zb}*H=iu68l^zE+v^^9UA?YXs{vu_`l>8o?RqP8@-GTOMIK@A3VDZ^~|oFqEK1znf% zG`r9RZB(RD3Kw?7LdEMP7U6<>&7WeWo)bE)D6Gc*|Mzc_ib5AYH0}ygo&K~_fb7`P zik4^)Ek#}Rf2Krj|BnkSOW2E9c<4LuSbRrzJAF#KVwP11r9S*C<#7A*j?s_TxcXMY zxBm$=M${MYQqY3!$Br<+FLu-Mm2Cvy&^(Z7II zmOTxSRyH&dStHei85w#zMtU5$i9F^&#_R(xY$0oYsV55ie`Iz@foRu!T%XB9OZo4y`Z#{2&#n?XJx%leROm3 zyTrA`Ufg<<%dWR#}Uj|)IJaTwI_)P0WtlK5lP0*jU#5U)p3uoEZp?xjcxmu64XQEvD z<^#z@1OsROnY=a~5OeB4D5snEHts8-G~|I#ocUc@tgk1*7Qs~J`G+_?=!)t_aMr8G;qjUCRlh)MBV4lSB) zsi55t6Bz%Pr=8cVS(UO!vmzdb4{iN36oNm*1{yc-_1J~MX?<>!=Ibi+RExdufer>!&O&JVnmVpDq0mgs)-uQE7H{gTU=_5Ha%b?5rKOO3$y&RiT+^mF8=egf8!;xkR!nJ&KT z7iWr?Jkx1}j&TP~Vazb3rP(@+6I+J&|4*1+J=t1)pS8?u#@PrK(6e$|6C^(c zzwHkd5G?TjYpu}y8em!Pkr03;u0~zyxrf{eCow0hg1V$viv3G@g2l>}PEfAve0hpb zfpCMn>(In$n|hlNaTY}a;U$9MO$zboy^RhVPZFeH&knH#6tAxXeES7nI1Jl*H0H_J zX);unIMQ6;{Gj(sHq1Ss-Ys-gC@h_m@oc&Ami7(WL%w-Us4o@srMF@vGSjB(P|_Ej z+-nWeMetI?5to(}+C@ziX>N;WKf!J9h7G^tG~al92y;?6r?u0|88`LPtTKaV@>TP* z7l$2@#datp#X*>k2L>Z1ReKbEP6?;8UKwj#IPt3EWlvvHlE#Ywy!Y5YF$>y)lS3MN z-WRE)h<@u^7QqpLHCdc)^Pka+ZviavqMuf?0p*c^=QAeyrNzNg`+m=mB#{soL`_J%N*Oy2*`V19UyRIitR zKrwMp8kTkrC*sRO{^4okU4?RUD$xkL`c`POHnJ*VM}Y&TENAh;midK z|D*dg;k|wi@ORI>)%JO~r@8m29-(AQe^GmEPmp10Ll9H^JrTG*al4Lc+6OB%>!job zUl)#|EyWgv)HXcMEzI!N7XJchA3hxum6?wdnrinPPoR(B`Q=ocOr5fzbS}? z4(T2Ybom(FIk+TaNdlw8E>Lvg5bn(hAZKb9&$oZd4zz5nxCJWhoMBYRBQ*3qMr^Ku@3kf$u}= z9I!w)rjA;6;(YJ7Q`)3?=N&j zB!zuj)!Wvxg)szF?cRwF4f~A-8aO4HAYf91@FuHW+H2iAp`b?%ctkGSCZ~>f0`qgz zG3dxJR2(mW@8l8-`z_d8BAhU;n4CbE!XQ4t^PSYG{e%QROzS(*$y}vDM;GQ=;TrV+ zhFxpQPhX6_bDIhJK}#W8s6ZzLE{vsC|E|A%~6X}=4IO$ zR`452L>I?fX!@Dw;d!J09njmClKOuqlfMGED3R z{v2LuP|oBPt`Kbl#@wGp-qbC`B>E@K76KjH5$yJ9e9Q+Z_9B`EZCYmT;FZv0pE{!C zPinap5DPHIZf^>4Jkd<-24tif9+Da%)I$R9F*j z{Rw~Ty*m$x#@~->HnR>%WevJR`HpWIB5xP;i=1>j&}mRU4AYIOaPTsAj~ii{i2MvQ z#tQwm)aYr$D7Ohi$o(^WE1>@IU*@XTGrjCjjcl!uMjRukBpW=?1hZ||FS6CW*7x+M zwfV$3*%ravD!~#9;o~?SRmPux>SM2S5HWt{U;ehbykZ&q$74Mzwtjcy*LqYi``{26 z(Oxxu>Q9EzD^5NsgRC7TT?)?5kav&=IwL0GJp6IJJj-blKTy@gVlK z;C_w0<~&iBc;t)K4>i8L#Z#aAFka~3rUX1r|Ek^%?pni8?JJAu-3eDQPKa zfU)XeCrxd*JR1AG{nNM}FjD{=fW@zW; zMw_1iZ2gy0GCvlg4$%Ld_@>@-xToj1m9@&X5}UVg4)JF-dxLs9*RuBLH+l`*U>U~U zh8v^RVB0&3nmUPy`%8=23Vf4}%-Ei+YU0m~{F;ciH0%D3i+deW>saCXFfpaS`uLlN zT$-Nl28#GRkahV1{!&m|164m1e-uIRG;;Il{BRG5sUOHyR=aJ>S^Rh6bsVkIpdKJn zk^1+n&){MHZy9zqdxH^)w?GlT6&|bM{aN~o@xDLHPu?oWX5>h5(=N{Rbf1}eJ0IRb z6+JXnKdb&YOiae?4gwMX=#L2ee9-A9e-2{YVgsXO{((Lqe{_+b&lJPGWjRF|Xr3%i zy_Bu%bmi3(Bh&AvxR&?_4*%Ref4kH9pI^D|-GI;Ee?#n>GK)uNc#yjTRQGJ%TJNNB zSLev-fb39^z+=OojCS_DGSoeqs)|#L#cqzbm`7i{A9r!=o&;(_cjDfhmE@Y%T_W-` z->Kz4*N&3&9Am;yAKTq{_<4Z-7N>sWZSI}$548^8ivOM(=-tix+Re{wEuGT*bS-~l zSyt=j+G3cN75Q|#8R5y)$7{Xe@`cAJ@n_rZ1d9)F&Sr8nI_K})$=Ivh{yo)@+K4!I z-nSI-S91Y})B8Q!f&gq?@U`BSCqDB1nva>vmp-S;o!D&yehVgvDY9XIQ z4Yaoa&J_s6QpCMY$@hnZE3PCcys2?e#jpi;v-x8xZtT2AacaE8qp3F~jX`!2wkO4o zBX&o;zQ;>;4E`@C`zt_bSz&*>I8woDK%T`9*d=lLvadCir(HA@OUv}7;>H{q+POS@69<8W^>FN^iGFU{@EaXjfU zeS61UuluYmSog!KR@A`+ZEqYE>$Cdm_`S#6jsH%Jk$Pm3?gXmMjTQ;z)Ncp>Hu<(? zoDtTfn(r-kLlEwye(M^*K;fv?KYpO0x04HZ)5|UcOzGN)C;w!;gZ}sM*T|ux2k1re14^?oh)fYv0~>XC@Ek5>AHl{i}z% zuXAlGFY{mUjMW-nt;ivZ*?8<9Z56$mXr*~=fvs0A`BAZu6~LrlbM*~3XYQS;-;Zv? zq)-2i*9r2DmfmWyb-I{3%W@8BTNz1igV}Pf3|YW&m%w)u6CpR^X|;MM!%s@aOGew* z1B{B?|4Xi$<2l5phyR+Rza+mnV5?3&NebknNxiF5l1p&R@lPC z;en)hzRPe%_ri zsB3NGv1ttM<0=L-qWwt;_B8Wwju^< zfm!XjDLrOa+k6cwFdhuuV?VvNCIV|$PM33~qZQsfC{X$9(cjouE;Z<|*b-HjCw z6H)JNR(Nm~HBV?9e*WH7Q*;sZ>Df)Ycvu{l@uqc9ngd z{qV@?KV6nxE{R{)x>WSjfp%Et-&jnVSn$s)SvbC1GS3cQR(t)4cLz)rok2eXc;dhP z)wpC^lmGd2>6Rg)B>aQ#wNR2u!Qw!SbH#ZP^B-p}#L@DkWcZBExW4?v6Qszt#}Fdw zwb;vIpF|qc!TqW8w`S+Aqp!_sziJ#r%g928_YsLfU}9tcV(NmM?yAL!y)Qzn&{+*v^2X}vAja*FYicbA<#X7H_c{a}%Vw&;w)2* zp_(L>yOQB0i@iGMMW!qD)vt~4#~4^H%|ktxzEn9iR#n(loq72gJ@NaV6wf&`Nz`BW zmwxO&n|+e8dGYe=6Iiq0Aa$$F zP8JACj>tc~w1396=T|AxKPK}JWXvS~-2RqNzfLaYF@nep*tiMQe%pZ1eiwWy4v&`6 z5O-K!zZLi8jD73bhU!1~2`BiT)JJf_-49j&w+-X0Y&6XkJI8+Lw4Zk9J(zT$`#s-v z_@mF27a!;b$FRs4EgqL|EEx=i=9LPP2gDeWik26}aU^`)BgpXobRS*x2%wd0$TpHj38?!l^L&)hS-WsydRmYe(!{Qe>OY=XkELI|Jw4er+YbI8X1~jO_k3M7r{c@Wn{OnJGrktCH&i*# z1pS3l{Lb_EDF5bsGwj%=k?ZUEXN}mepRT^l-np1~RlEF>=k&UDZx6ce@Wf4ye;U+b zCE}domuga1=P3P>$Wr3SF}#{9`!@JHs(({`_Wbo0CydvZyk z5?A%_2R$p`kGidNBkS!0Nn!Naw6U?juFh6@zhq={UJAI}e(kvR|6k6py6So$fQ&xI zfBpIKZ}lyW=@s8S0gY!gCoiYRU5yhTolEZMCUZi3&weD44Nc8|pQ{;{tU$8I<* z_@_?_0f(0VEB`c;0f6=6lD#ec{?f1IfBo4I1sC@s8uEK#OIJbYKZYTE)2NVh(-wWY zzC7FQKY^^AZ&7a)Fy_a3n7rw<{NE1C7z(f2R)439pj0o7{&AldKyLhs?|%I2uP?<- zjkm9UH?8iF**NpR1R(qNC-qVBcEm_PLrvRF4}EfYPJ4Y3pfJ>g2Eom)9Q3@hJm|0M zd3qchR~ITH79sFAbvw8)UZBh9QeooOxUqJ|+|+0^&OCW-y;VbguB`53iKI|Hpthp_ z*}+z~7n`OsJdGp=3V-WRy#H0z+t=?o`g!`*Z=G>J918(1(Ye#430i@w)6jJrfQjrA zg2Pr*(ofqrT6InW&w9*FF>z^^nI0;_@mVL{F#TPI=dtojxt?p+wM!P>Xj_~C_FNUl z7H{JBo-G#Wf)p>kPo+HanU4A3d*z2?OF>rfCUVlL-7{1~>BmV8DWK59huEMi6?UKa z<1OSXPud{3y5fzyFfO+$zP!H4368!jZ&PfnsyI+?*L_+O80=7|20+ET#=P|ZVpzY< z{NMf$)c&N{S=ejz5a5nKF;r}CcjoGD4z|i)2#~F47pJ;%n`&x()a46ZzoT*b^7(&~ zRHXGnxG#ljKN_K;lph24LjfB43fE1}xdIp%3PAQq-+p)r*6fqShX)dP>_bU^#vdkk z{R~`{+;n_$Y}~cI<<%;3tvj#8{6je9954~d@iJV7r}D&NGcWBbuQybi0Sk~_8C=L~ zbYrq@u}wU{zWr}nm+*h=6AA(+PMtb=`qZz#-%g$c2mnu${bECV<75 zh*IxEmH_PeQM)=Bc=vqsP3`wGZ|d-2z=^*uU&Om-W&r7^?f|eG@1B7V0e)^D1im@- ziS2#()j-4}){e6ya4qnk`KtY+vqk1{vitEgz^m!L3bZiiyox-!+K1f6I`_0@{;yR; zd#dy9nd7cw-b^Z@tpWgMj`+0Y{Qo-&QzzUroR7pZ{ef%EdF=ez2td^Uc%&$d&%z9WP_?IT$cM`1yY#Wp9vH#>Z|s`!oP*V zF(8OAN)V~;glKKtsD|L9b{}T0`>=jQnBdZV7&X1{$_bzyd0`6YTU!otak}rn6aQ4Q z`gVoaWq7o0pi&MBO%yP$kSb1EHLrcM3G}xgxH-^?DpubT3+PYg@st1G>;LQf|30J6 z9-pVW{h1*$3t#L*x_`s?SSx_7lMUnB8h{7IM_v3i&YWMTIvxCP2;NKgefqy-V*wew$SM*Bdjn|Xv+#*GH=D_w7hhCL< zdBKql!?eRp+1Wls%dbg`s%XJSeYHEdfk2VbV2r_^vW}pq(@3s5ntCMuqHit}oqvk* zK2yh595o&c0tOloOH9-<)(I(ma04mugkW+vrY5OLw&6XD6nz#hJ015v zw||0fb9W3+Y#(zz7$RTdCXgtX7_!6K_<39^;V(v;ILMzj-su<+$f!!7xsUJ?qO#|C zKxmAOtI|K1ee-n|6C~sa>z!B1hbrru0aDujVIr!D{s)5sHlTo3H;q!Xljo_p+!TG! zwZt64V`q?n=LLU(t>aG-jR(bNIbaH$K~Z4#$ZQ&fmi^EoJaG#uGm*A07=Dy~mQ#FG zRvZhZsmjCF3+2?c^~Z#d&j8Z=n$@?bJj}d__~1H%+1X3pi>;6g=~Es$9s#}Q%1M>a zN7zSAQt-jV&-JI_bR>z1&>w?LEdl+X@YmRPK(=kBx&gCa4{rMIniBUfY`MeyzPFE1 zYv%rGGyW}-B3YeyQPJfllT%gmBnhZv?6iTR-kZBO=b8}p0+@|9DpEOt!eydV(FPc zy+;MmBt`%CMjkjITBHojSeta3+>xo5LRNpDuglG(=*U9Ti%#u4dKaP@oKh4SHJ`-~h%w3A_9 zem}?G%|%{d;CRw($holUzZ0DB)}4mFrCj;d_?3_L9&|RHBLO4N_R^JIy1GwR@8pc9 zLUO=1yO>1Wj9jGpuR{^JW(a3}{~09PTEL0g{6rXuO4)fq_WWE5VdWUW!u>rwnA+B} z7{_2|fSaZo-k_+rb~F4sIKch*MXkF~K#``=P!w zo4~^mj}2|p$~sfE%$TJI?i6!dLP~_)acq<{1x`0GD_`)ZOR)~BAXG(2O+ink)0EgJ z9V^vjk(c{6?ZI-^ALL>MCt${bkslrDD*Ja*q%>d|mO<*%QVNj&PC#irf;|^&<*moJ z%j@J}2P?Z@5$pHJR>cO!jA&4sTIL}78YdqZG73C2AbI!Pxy$iCQuGkfRZ`wOHqt3k zS9dC5=p<)iL9N9|M!(4qgNedO?HL{jUcN~2=GQ2TiBeGqHJ9z01TCkorO>|Rp4N&% zdA^csg6&)9nV#+Sr=2WgXv^Kx}|9j#$$p!36DA>hB{jL_H6A*637a zthx+_d$`sz(sV=12A+Hv^1uNR$T<&Z*n3h=C%HO9~*b396P0} z((lGFLl-12u>0Q$AZ7TZSBbrLCJN8$`xYk1cw^dc9(DOTdyeQ4-{NK%W_Ry#vjoFv z@z-Hc?`sp_eqJ$`ajn|7M03o^RgjHguHzRdLJXA&bQGgZ8QOq%rxiy&?n9QNnKu=y z4Pjpl7{gVABgfwpwZ?P6^NJYYb`$P9Mb_J85RkJNlyeEA0fu@+kq5B4I*|AOyw_TO?!Cve7A4L1IN-^GysDPG^zVU}yW^_l z047HvD$-qOeMo@MonQ?*cRKgoq#=$_I*ZjlkT$9PUOnVm zPrmV{B7~|Rb%VVjAaz~(J8zoxdUPyl$#U#+!aB@KgM{8_wa_q|d#4`5YW%~dvmb0L zLPSx(nAsQxQRcM-*L_zDt_^V~pVkl54%FY5UWZvkXy_;9fE~aP#HRRr7>lxGwg^0g zvayA7FHH^>C9yq-dqGi9cV;tc*am>=nypo{5`ahqE!=ToS&0U`oTw1JgZeI?9Cq(2 z^)BGUFX+idcvdQ|<5I@+Vc(Uv5!SPsbq=U3w_>7Ar4AWPl(@ji|0)B6XoYa&3eiO& z`3_}_b~`A{pe8Ta8J(F8XEY^cxNRn7e1*T*7YK7fR;9jm^1;=G!R!)5K6;G!W@8fU zQ{D!D?W3sfX0H(<%mZcLVaGYltDRWQu{WuvthgKfE*#}$`fGY=+EREW@M>ghW4_P? zIYLaH$JYw`TaX_n+-KLvK%z1YeVoh*bZ`+u1I=7`^rHCHdGySTi*md<>peo&O_(gR zySW`h`|Tf0RcgA_rv71b!KqArw_=)yH~+j>tq|chiw3sQwocK(n;6PjqS*%2modWGv_t1RREE`!wp=rHy0$dp?3%75 z(N`a@cbk>$ zEAvwm1?e{cm%`r43t$Uz%gzhWT2I=*Im^22s5GF|WpS=McXL|`!-}u!r_)50K0Fj6 zZO&^j`343hBt++pO_PJv$J3cEZ>j!4g>h{fCIKuJgg#k6cB{1X&MT=31uyO7k{N&n z#8UDOpP}N$u46$$iS_JLM&=5FNe(C3d7Zj_)OVR_f48_ULHymVn(nxDL*q>uXutD@YU`ty z2}1QeGrI`_lcR~yh!hY+LWmsi6WOS5(HG4td%2o-pzS=;`)!y*|9M%Vj1>XNs&&+E zxsQLKQT5Z!24#O&qGbcxMsCoR;1(h(B&VhE-6Uc$yhX*_jE8$r-d@#NZQaA05Z5My zbMV*@1x?ICF&eQlEA_V}{4iyXs8nLc6jD_+D@Bu}7fu@&fH zMk0Sc#LbhXBG^{32hrkDm{rwGeY`Qj>uE6jA)d6kgG@*JGAQsDG4|p~TW6=Hps|sy(+ssX>RzH$BhFa?MRpKaAB2EJ#em)9EX1g(X;8-#Q7hRB6j%rS zg$63{Nj={J^1v`4lkwjPXZa#6jj?p8X{>nPWKCQpu)uDCu?jry3ocC`8{MO zb|x=|P@KzzL5(w()du%@B-Itee@dlXMTK-dMQo;LUbG^>2`%itW^;YR&x)QYf zTW+@YydpNFwkOR7P=L^5(f)jgTw85{-N9eS7gB{1ccQ8_6&#(7mg?%tp5mH;IQ;}L zA13n%CLyK)5g3CV%@!)rFe5BAV5OI+4T=i$IVKn>{@`i|E<@ZWz*~OcDTk!kxPjY# zv0UAvYj;Pj_%}00D_7`RdYVD;#=rzYUpOdz6_8Zg>BwuZDLlSl?SZ7v%c)?h#0Nok zRf1n4RyIvnVm^ja%f2t}VVNb;!?29`E~;WFn}JwdeMUiIcaG@?vqxo@f9Q&vbV z?sxMU1@vC>`@iM7Qg9e;kxL(Zx2+2)yAtpX?fd!LctV&@OL5G;_rHkgK4cia(un8k z#B59jPr9Q-K0Jw}=879ApjN_~^i955LFC;Jv80;g-=KEEByDMRtAX^~o1pY0?6D$& zvS$gk(~lblH0;M@T!g&!=auZ)dJpX49)i!Za>K<%bs&_a{zgB{vQ`*kh=*J}D_c6Dwu zysC~^DLbB&&YQ66TzMe+Nz(b^wx?CE%#5i2aRe_|b5P(Psonub<$>o)1;X3 z1AmA*K5VGbfWRp8pjjLit0~Hn&3O^LAYtDu_?O-{J)T z$xsc`p8lR}n@xx5I|dk>LBu^Q*3+z4?{W)NHe-X}iU^btTN$)dBp-f|dc!ns28lPI z59^w-;?$$x3^HxQrX~Dn4BaOFZI$Su#g8CimTh1c>G|z}fqah&Q96%k%52)_a~q{w z2_`l&3U(U`JiM9N{OhyYx@DZ6p`qb*z?e@PUtmf}^#w-BHMd44q*%H8hTsVurdw@ad9i_U;YGI2| zcva8OX`r}!9Z=`K1u;I&2JSD+Zjz|9-ij8ML!H-?vrN6W@u_<*M4Hm!d!FDqb2rq> z`0yI7TJB}WXwyZSRI_N5nLTEv(*`utiu{`0d1-TFXT6m_Gv!@f)!3D9vV&S7#?Wg6iwIhceK9+yz9DDfN?)%Bz+RQ=iLA#Y0pjXeQssZhZ0hvnE?s^nlf9ot^Y;Z~1?gU@inrwDOwXI< z{DgGn;apv_EsmvGmySu&E%1Q?d;^Tml968$I`wxY)9&2sk;J#cQdM*h{u+t zM+QrS1-TD&Ox@gys(e`M8(NS4J0WKJId!Gd+cY=KgI+~GuN6XpTZF{K}`l;RV&3{f-G%@4PO@@WH z%e8W)UU|jIWW`W=eFa9emjX!L&pzz-SsFJ)>#g0Gn%iyyd8hrmAnFruONOgzM|?v+ z97MYxYBC%0vh68eJ$)R!hQA~y&$L#@(t_7n5}gjEKKU07KW?rx&8j< zg!_3F%auS<{-$SNul#mH2p?cOIEccHU&H{e5rpFMU3&_&URJ}*%&a?Olp-IxoZFTx zEx3`MGUDfCWrne^|CUJ2;bA$w+)~dT4u`Td1 zdx^;bfSeM@4`0&!(z3UU3cR}tc4q@_X{ttibBqHlG%&Vrd}n|n{ZZE2)~=5TqvWg`H*N{!npqvN`dtnjdfuVKm{4&0B&EZ)41rMXa`+=N?h1y&u zH1DDEjDcwz4+<^B)FIz}kXcp*lpjzX;XytREXF5o(Dg(fWI|iFysnd_=5~L)9FtWO z@{4-oANNWtY_K4{R`J$L8$YKdA|qM=QT3+9Np!qupomkZ1%Nt6+Fb+pLldGhGtyei zUhjwcSIr6*Tik#x8Dt*DlvCOcF}pp6(c?@4F-&5I(u>1~xJp%7Gc5Of2`T}>nVYss zduk#@YrKPs&R@U3Fyru2CA)^&_pV_*vsqt`l}h7RLZ@VVxQXwtrvNErNtr2arC=gA zc3NM?AeyK;r9$-|sJGDTTi2FJz z=EGnruzCof=2+h);F2Vo2s^ddw;cheDwoi zB7(<@b6)lW6>x`3?{T==3@cMWSISt1xrcc9y`b8@WYK^FwTKH;)w++L1Wd1H6fL{n zvdk*ggO`qcQjk=dW|ZFB*b;yFAYIxpowzZ!O@HW&c5&%3`dFX)k`yHNNHyhF^@~AI zPvo&xf__4Bf_pM2{1!)D zzBCg|jJj3Oc(xJ2yn8)9aK70sf?#c)YcD;ibb$2^9cR^aQ{O&ib;o!fyv-0cOQ18j z3|_%RyEpC@3))1P%-Kn@a{vjfvg?AbB{$E0o&x7acv|)QwAD#H^74W!1f-#)lTG{P59D^>T;>un|GKk z?s9}#awWz9E7lQoa}px=X4TbA<#V^WEz)#Gf8yLvP6Z4kd1I-Xf_bVPaK@bu4 zd_szVqyEbm>zd9$@>)|qUy8ray!tksfhk0r?jn5hrd4mXj0SzZ;VNsfaV8@{(dw++ z(_&i>e;%GHn9VCGw^TOZ_&dpd5_M`VFC%!T znEB#scM}h&tsow};>;ifgC z`EWC#m`V&h4aYE4+CX#jAW)L@mQr&o&`zAo8-Fk1e_qrptM;I}7X-XuYh6cbnXT?~ zJ=S}7sX~#-nG*|^a(w91#Z zOjXk6nA}ET*%uFQJq@B?@@4x1=%*HqhS=4(Zn;(uuaNG1PR`_fvQ`5p!7!hHgIlxN zI@_ze8f>)3_a0!?D@&RRLwbGp>g8`V(=gudPLuv2&;t1A7^Ib$EVz7Fekz&Q2qe0Z z`N|OC%@fuyXCqtcR0tC=(OI7L%aB^a`4?|#qZeFSjKcAYWq#vLcs27Uby~n4P(T*~ z0u||s(98c7x0tAWj`j4CNA-yzLE-#9EqVkI8B4#5BhaF%hl*=OX14ocf@-oPIqlbV zWyFCoV0{)Vc6*pzkPOML(<-vE*>yDgf@|zk&6?A{oo0xQpb^kQ>zN%EjB8e+*&4l` zjO&Tg*%9Bk6P2L%UJ-1t_E$C{;69F^Uc#ejiQhL)A*xoYZPafLi`JoTEtz}ucn)3~ z=sD0!D4)3=m^q|2SnLVW$UtYH$qwuy4ce^5XWAWTas5}Qj@8%i*9fi+SpKA0IN4|T z!(3(s%vFzhsOrQ9l|AY21oq2uCNhL#9`C_iRQQQ-n7b~>d~NozopxlZgnZgh zw@`khDJKihWP-NRmVYY7$MA3Wxfxe#(*=TKUn%CB=&WYsF{Qn-iq^P@Iq%}vAm$Ek z%iNn#iZoMIEkT6%?v3}y<%HtzcN+?w>K04I)Z|iBx5S}3IGV$LXo@0}u;DiTlp+c@ z<1&tH=uns4#7;bSQ>leD_GG%^D2*A`No}S}geA*XL(dtG+S~t5(2g`U4{SW*SKDJX zSQo+|W9kzZ6!V#CtV=#&(v{IAW&}_#yEQqO)#zokI+U)>GVPsDQOz;mLK4|!<5(^8kokqOl2*Y=5?s#Z56OfTw=OhTR&75wAxD!t^ljSR!RsWftn z+m~hW*-0{=9B&oz@HcRvrWEN&RtrJJYtCJ1s5gj7M*p|COK$s=hQBD(lX zlaL7kqPdS-h`0~w{$@sxk}=!Nb(tXSHKqT>a@%4RM^<~2loU%s($GR9Z`N7|(*;sO z0?hMcCqo0#FO#z#jen9>tka3d;pY^16Eb821R0xy0yKE6W;XqT{tQ2Q)q%eYJuIwq zz3fS8Y&{PHMFeU{YFj7k4}%!SPfE$5qSEDlDRbO$#K%);9`{Fe*3H;O(nnmrlLSO2 zjbx_qGkJ18bvjQVZ)T{u#)XT}`Bu+J%|N}~&GAK?SAFK+$fjw~#bG$znicM+bLeu9s%;&w* zW)s3O&eFj#m0q?V|j*XdnXY{JRp6uUTW3-{}?Hw0y$UKbxFXrd5AT!5&| zDs_LdVeo39W%k^c&!^q+FgHa7;s_h|b02~%M#eR@?MMl~YJr+8@Q;(Us|Q%7F*kpZ zb&Z?#f2v$8Fo;;Npj&90szpm%$9FS^#Wn<6e>ekX$5u?&%~>${2GOWa)lr&5>Qa)p zG{)Ah>>S_e1__HN{hPeyr9furP+v(gl+`ZFmr;Y#VVAWGblX|Rr&*ul z8%w7NbQh;d#rv3>yU!xyO>YRm(w`n&+QB`YR-KR+XzB;pJQ_`gRGkmoL=`WZ2xg|L z+G)hDGU9qk-+kh~v)IjwX%qjcJLjiuOb}&mkhBBv!_aQh(mqnT(~TAT)J$b2A%NI|K&bE} zZ%LOYB!!RNXfL#M28xzwJl(IvoMh>;#wQ39m#x-ru+w#zBi^60!}Yq_N-DV5 zHT-!Lo-XpGSS9z#-&d8IA>iVDykgT|3wvK+V5%yvdxOT0cnBQ6m=Nny5C0VHs-}*a zxY1cNI!{#vSe{Jd;pI^z*v=-%IjiM>R;y^-)G8?hS9XDPxBygk6ix8!1sgwikbrQa z_vIzjqd~?f3F$7x8zPOd4KsMC_iET-BwJ0ExUD)i-eR4{CqF3cip2mSdZ-~pR^OHU zWhvf7)ZewY<6ZU_R+#8yO|q&nwJT?Ts%nW89v7-c_{M2<@ehL_c@)5AW1^~`l>3rz z=!166agHVg2LX_e72qYjI)y+~Rr~}=D_0)fF>rsjXrq8pUP05Cpdkl#tELO5b zhf0!{2l*>8lWy}V4#yGLxg9=W&o9FuC@|17%3TV(kHv72Y@NjJOKvEJXmaG82 zC^()M4pyd1frOXqBLucGm|P$%mb02k*EOWbC#`0zbmFS2xd&=`1j1Kc`B|-7n9`LC zZcc7S)0gtu-5GH=97LXb>g{HiBx~77uQ~BIXd_yfF0-J0m?TR*x(A&w!&7;bHlJ>5zg{$U z5EXII6>tfk*!^ zWSK>#k2+X`uE8Xfvm@{9dh~RL14Kgh9+j<=@>5m|H|I;L=Dp~BT4nuvdx%8$AOvCTMwpZo@lWnD0BFi&OKfJ3b1o~2SREJtML%{gX2vD6GRI_GRO%u=opbo5>VQyPfirl1O zZdI^#Qq8pW515&9P)`dC{o@sn`&#v&Gq#$cOX=O_kY2g-`lP5HrG(GEX~swHSCmjb zL!|vh`6z0|{fe3&Lqa`rwQ+@BV#&&WL zChTtG!?t8RoEnU#K=8_zVhg_rz;8TQ%HD#%${+-x$oE$$XEtq9>YszJ= z#6r4-ir<8&N2n_mm1D5@(b(%MbofeY?JyzbZD8EKC<`MULnL!cJ%6k9<;6MiKfD^+ zjF$mIGpJXKM}M12G@yAY9R-IgRSCB2XG68U8^S1JS_8^|IJE_4AnQHT0F_Q^sP`~l zccfND#_WtOQ(aNAVyGu9yd@K1#4NgRub<&69is}1I}kSjP+80i*DTR9%b&}iquBUw zU1jmviYhl`mMpuN#?Slh#l87wGOk}1GAQ<-)@NMx=S>NIQ(>4|?(Xi-U^+k#AD$VT zeM(33S(J7@0T62jPq(E4)#5Cl<{iSa&fkK)q8)(}XVzCW8 zQc7+P%NyRQs$g|33r1S@Lss&~mdq6SygK1SsXw)#h9--9yFziHAW=wHlkj&a(v_V> z=>**z-J!dLG|#}^OGD(MU9w0 z(T5^bVq&nWM>JJL3p&LueHOE6Qsx-Q%5)`;rW(hWC#6I-dxK>GA0Mu%LlJ2)an9Vb zt52|ZnjJ&Fe>2S_Q0eq{-hrZg=g?JWND~D9A}fxV)XLwfM1AX6O*Rg=Oux|`_sm9L zkglzkE!a)QN0N5+WKd%=&$H&=%Z2=RB7olUzN^=jB2zM15BbdZPgT6fb2vjgfxuoT zvo{2VWhk)H$U5Kqo6TZkstfa83TRP{g>?ZmuT;0fd3EA$B6?9+fXwaV0B6Kiddb~< zkYHexZlHLb-O8h?Mj3CD-c`lmUy%Bi=@p%wZd|ig+`QN;$3V&3M8QeY29ZHBRZK(} z!R=Y7F=ua^Q(iAOJ?grWOOIt@C(}yezLu^sVnJ5yACPCSIJwH41!ZO}`!6=xtUFrl zh3TrlV7iQ1M%S`~#SO!F&(Hrjz;jjN*8458Z}lK#-;HJ!JKEPK`!k zK6n|`>8QV=X6kJodfn;zNQ{(ER1`=xxHtbw5Ne$XxY^&^!@tSFfuo)#xwo{3X%fFO#EXH3Ov5k)i!k~iy1l-2)3(|Mj z@%8K|mBu19)MuO*0NwVp@g8|NAAK0TBj4o_xJVOndsr+X{*cjCcx}V3G%8X#v-(u1 zvnOwy<%+;|&re*#*eBzw^^E0NPdt2B^`2z`L0F%RRuQO5z|GEbdb^WqVzi}6O6@8Z z%J-f4pH2{5ozEUy92&4U^z~7()_s_$t$}=hOb)i{@OJoHt1INSX2y^d11ZzJ$+2aRA z=1Vu%QB=Q#McC$(9eaNOXMNoZ__z_7Pa1^3%;=LbxACOfqdqu${azq1?N%5RDHkWW z9MZapWl9iCFp$~R1D47PbuoYByDQESBux=7BUR0sfkO$a9+-bY3CRz;d+?4AHw}6g7c|i<3o>7lnrY1c<#o61A?KlAzQAu-)fSQlL;)7 z7|~#Pfl-eKHdy&j%Bt+;=G;MU0L+YNaI%rudw!StC51^B^J`tQ&B{}Xc+nGJe3u_k%65&QUqggOdkeW@vGerIHU2!E6N1Ng{p_JPaM*dsnc_jQSe@MCJnf!TOhwinj1kTzyip`z)#Evp!H+6QMaV3)GH& zQGGg(JUvzZ?F9wwL8o&sG=VECt5)d?pap@M?a%fQ|A#_N6or2=j$jNvsfy=c>?Rr9poMw?`wf+#pgjF-DSd&A(jAQnaRwMWh zYj>DD5w7;?m5=A+Q@6<10VkMa^%Il>G+K(Ot=IsIi5_YA+|xcX=upX`bjDSG|98-l zd)Bj_4d8~GroTk>^VlB5l#7&Ri(CKvv-{A08HKsiaMTWGU8R_Z%EW?+e1EHM>)X5( z7H3dC0+@Nd5TYX=$uhXy;U~&T=}q0}Y=XYYA_;|+5o3?HpE89dY~v6EH{xt)OA zgxHzSY?tH*Jw(RzaF?|OZD}_!xieb<0L=uq4}-Gj9g6nHxr4FnKBTHzLrqqM_rna> zdRf(neS-r4X09Ertoj3e*LmLh=jR*K`ApZqa$S1TA@LJ3R--gjbO-wY9=Yb9yL`P=Sst5UG#uU+h?vjc^$RKpw{KI=Aw zEy{B>5TH7IvH$Bas{UV1X9CVaXoH%>zBfv1DO|vR0QxxGcs2uZZ}?3Jkbny5fz2CO|Jsa1-O*2SU?!o zE(UNlHXy8rK1mJnz0ghorSlMIi4DLyOG-nHD7_cmuuzlVm+e&YKRccpkT)Mhnp!7c zP}fTbTk-BPGerNyssR24@HG!bHN`#tWRiC3l7WW@rIJwJUXl!KM1b3V`Hmwzgx0pg z+UZ=e`pZv>p9KVcfB&(IdS(^kLnVzsfpYM%fT|180+fCL);=rLt_$!~io*W@0ICZ= z{ST%38>jj~DD+3I|NH?ERkv>c`|+Q`{|8d>8vSq`rM&6U3n z)_`k}_W16D2Sys#O;cVA9NhW!Ep{V!py2SWF8Sv!wEmKOjP;L4LhY6xVx*o|Jal;% zuuasz?lzHl`N!%z4@g>!=XOBZVSlq=|Ge;z3;+Db55VvLXTd~(qJL+>v~OcCfd3r| zx@K(hcO3v;>^lrri$#x+fJ7UBd7Q#YU)TS33$<_YuH`e(_Z@cx)0xI=eJJyF z3ls~A9`;B9Jo=jeice`Q2+fJTwvi{v%ELEi_d`pAbYA#1%mn@Kt7=*vnRRTZ<*fr6 zoA}+?)=+Vm05=0SmF!HORH_|V6vX}bKPM!qQ9btP&}yf(fOkNwU5vB>^aKyazb$|N z_ZdZO`+MV|LK*TXX{;IZHSMT>+v%thT6gCm2zql@x|5$hJ(Cf$EOW+ShcjS;$nv_QgfG5K zl1`pg>8QU>k-xZ1NVY?sRZ`bRq2-hV;iwEHHd|}&L};b`_Xkn8O=#V%7MUXm;XgEQ z@nD%&2{vg^45;TrG2p~D2Do+Xd%1DUR_%4&Xe`Kf#d{x^Sj}IKs{JhXO}69h5EDv* zM6Oq3UCV0+q7v3IDvXWdAhp+?bd!SRMBz$F^n{%njX(mbA7}i(THOKa6c_im)qvW3 zFXeZGfB!HRs8i%;R(lS@x>mi4LZ8UYerztjd8_X`c@+;9oBVE*2ibt647m6y@OSCE zc|cg;YPA=}DNI|y(!dQGEC9!>{r(XD?~RXjJ50P3Xcq1vGn9!UG|iZdnPkP-20Ggk zhR$oQ6yaUv5acs4;Ok_K6P zq}hpiwEws95+!x9gCbA}Nw(6k=BQb_P;hNFKvgN7JoeiGJSWfm4#-vo!~%-#kFuEcKn>_1^|3YfDtg>pMbmyQZk~3*(lKSRZ3Tues&OG*6hVHsSqpf5Eb`L<737e zdMVni<+}+yR@4Ak#UshgqJ3V146_mVLeM}IbY*>P^c@><(FggVX;S@*=l(JnAjJo6 zEl-oD{#0wN>D9)TPSH?8v(P$_GRBm)IsCVsozB8w_$Hv6OZ-x!@Gur6YEgH!{aNvS zG|6|^Eie@l<{QA{J|F*#*#SP!7eC14>ewy1^B=tVcY$y+|pEPyM?)g4Xp9F(Gv6kNx+SXLTT7(U;xjFN$^V`-bfG znjSc>2aBRtgVC$_7&V?Wx_H^nsN1y?)eW{;m?((y#?I!E3BGO*c&(WoT0mRifJS(Q z&!)=EvTc^7)Ia+<@mfQ3TI0ZZTbi80tBg{`avswD_hm**&b2zkQx+D0ANz7Q&-0Dv*ZZEjMQsHi&HDI1K zT3bbpP`W(z0ep131tf#lH*eaSaE>zGc=g+>r;jTKiqL${wsvb3Sv+9b6({ zMvckAsa<|on)Ts}e^e#4=h@t^rKJmm+4_8Ow_{#wV{*rw!&C(1H&E1(fOB4gQ(C<;#IY>TWuchAYqrJ~0RHc+tFWoCDTmFQZq9pp6%TMSy$T4; zE5_aXS7##X%^IvC>R+^ihqEdbqZg^YYTk@fMp>e&W;9 zO?-VZncd`n%iI$qr)P{%u*`qBo+h%QQbJ~DA$^AE-rkonsy)?QI0vIc0ieu-gKn2? zy>A^xG0<7AL>{cZ`yh8&BU$O}rVipS6I&XhN^}$1hC5-JGeyLMyc?1cdx}unu8p}a zfh}BFj)brMAdt@$KA1KY zBqAImcch|bLdL&z(PirQ$sO}d3z&w*cgM>eeR8w9ZWWP5A;Ei8#f&ukqQXN!PW+lJ z$GYcKjYP#`1FSKgUY3g9FB4O-n;gbErd0WG^cw%dcw8BywS0)(QE`13gxisxeogYV zwe-{K`fNib6GmjoGK#M!uT?=w-ou}T=n|^jJTfQuNJ_PDW71(T04RdC#KF`5{y%_|LkK@ESn_6yd zN*^NjDZ0A~O1?LFnJ1L+dm})xfs%P%Z2ap4Ye+IA8)j3eI=yAcibNNi$f zl|91xc_k-R4PV`NH#E%gJofrdY>i1k6+s;KB3vBboHtd>Rmqz%1oG1MZUX)J)w5W% zN?9@w3%I#aUFp#BB;Sf>_)*ybjRcYJlOF_TD#+?-@7zIP{qY0kk(DqdPfWmRX%_T^ zg$ieAjK9BTc~ZHaRpRAs%>m-|7fv$X%Bxpf9~o#kvyP!@X4U?f;*nu$aQ;@Xvtm_x z{(VfwYTd>*J3^_DK*7fl1RnuG(~YN5{e-+K(5O!7O&#cG1wIbL8!J^SuvEkt+UW1D zPV)^;R_YI&g4SB);F@0%HUC5-Y0N8Bo4uN$HR7#^LCQh>0NeXZ&GI#-GpQxkI$Qqu zZT41?sEwf3nAM~zC#3sRQxIAM(ZNm6+Q*fU!{p+*Et8xI2G3KhaHqxLe9TYu1T@h9KPNDR`;qTnI* z$^5d`3x9>A(=Udj4k^))4@5-3n|tar)_w3q#X)mN_=f;KzZM*mq>LZ;G6J3>lAb#>72FtRhAF>fL=H>(a z>pJg58Jm5T@VH&u*k38WyQABF<_^+9pJTBItFMmGFsa2N0^SR)Tlv-4c~#5wn*Jso1BGRZ*-n-#{VlxsGiCYB6`S76<}0Rf1mLzwmrwsd71`6(vdm z$RYBZcko%c-A+m?)*Tr`A{T zLHHBJNTL7K;{vdTDh?~rXw2IJW+%{ZNDXo0%hox?I-w(@$9}v#^oH(=_ri1Q`H?NV zO1Q#1Bx{ApgQU?VpZ6-11*mp6!Zo6>TM6|}aWCoJ9aWvxubQ#6_@^NQU6pK%_dK=~ArI-t07@-_lkj|5^F4?k)h_(yYMR&06?+9x}Ci$g*< zdB>uR098X~Kyf(tAF5ZK+*GYfYEK*^7=gw@sa5tiR@^)n87a8L7sR*SlgEX+8wz3K z=3!*!HOS)c%1@3}w18duO-^#Z9rn{rCk-G_W0>!80cM~9(%=`jXa&LWDq$oRIL_=? z6tzDV@!D}jW_F2Z+SNtB{&mF}@M>zw_#MkS%^b-iQ}u#P-Z;qjm5oTH)?TwZRJbT7 zb>M!jxWWhAU3A2i3M-A5kFXhL848?Kq)ts8ITp+y-640gd)`u{;$DBmFn8fnfKtgAa7wR+RMoHOmZqV}2cHN}o5Bz6 zF;a_9j%&N~%WVXI9(3H18%O>Dq;Kb2b7vc;%uCGFE(Zx0TC;)%hz&*H2ioa@u7QAreS9Vu`y|M~Rc}Z;RXc6a;5*IUpB> z3qd9$=jzG_%pAyKb-zQWnu6fMQpu9H$hKzVvM|eA0@)}Q0dKUmAGL}={E_Q$xjGf% zPtkp8KgrwiyP%LO0`k&I%65(gRjCYKT(@n|Vy3j|O<>W($bd29$Is*xNos=4r2|_& zxp>?$hR^-Cv-|tdro$K~MNKwZAd{34)JiDHP5BekDsnH?LRFn4ml`LI)nK3E#R&E= zW_-Zgg6nF2oij#{&%k_{5}s62z3nTX?60uC5ss;uO~wI$XbqPsi_1%WvMod@QMPSy zrNrASw4CI@`?sHZ#@LE1p7JNIpdz|HKr15de!F>(?C?Ry0|bNW0DCCu0uM1d25gD( zNy)c~<-?L??ECmRu9mqLq%+i$E?sZK_akX_o_{Z+=O>_1M9s*Ji78ng<7+}WYu0zO z^+mF>UX{+@bAN#FrIsPR8>c0m+YmluP-;rkTUBh4wcHd5@hb3Jn<#-Q?#fpUYaA48 z_1-5*NJdJiYrYbEaZ_*L&7stOzmTPKm@L(huA_(#d^c38)3m_MWM#W)@L9=W3myLV zLwV;36wuxE_M*Y8uJ$$Gw5*lu?vf1_`DG^w$MM8C@!O~TJA_$9hforSrdx1*RN0o& zR25|$E8t!i3HNrp?!?=Y3e4y+*}A%3Xlo7a0A5gX${l$XD6l z)GJkl1#l}qGqjJCk;;3YT%{JDPnNR?z`kc>rr`D1=ALlogJ4;+?q0uEX)~)=!t8QwiyI?9nit<$7GVrdt-ce1mo$f!Mu~Q}>7w^m`c=8gaw-c_-NRjKQB)sC6;3Ucp zct$EhJRZd`4Y8+^ypyJ>ZV~rmJ%{NFVd7a^k`zXix>Nj<$hjr6ELjUL;g~nf_XMc>vFM)F{>?ZH$O5s@Sk!eDS@|BQo*{~ALw8rL$$_W4SsnL8_zfH%FTgrYKa%WO;k}@3P z7g1Wnm=9f@&+lM7A#I1(QK^;BL!jp~dBZpY?Pw&K(9PtCu__OTp6@-*vAe>GcFnys zqO3k`>EHdjxH?TwN7sv>p>2Pjv>x7844FCLz>NOXcq7v4N5R83IP_A}-m^^dZ?;oq zjrX!_X*C|L&)d5!y5yfM9SQB1+#Glmkvc!SOiRD1Mx_ZTuKE-s}05F9=-U@%pSAm0sm>w{X+SSYg{d+@H2& z79i}{-@llO-pi^w96Dk<8CYN4ztnzwDB65G|N_CD8F}B zRhx+$3~Pe~o`ftpe|pm5<@F4qe@|vdxFcoIFfA}&pyXQlQ%(M)!X&>Ky2tg=)8y6o z6E1gCr+kE-@pRyB`@LLQUKgp2Csk5qNCy~P<7ZsB`_&7ty(lpXZ0( z9Wm-KB#?`amdRIKw3!8&O^Bjytpi+;F0tBK+bcffv=MaOqrQz^S+Zrf)9qrlALr`S zZC9%F)aXYtfg;~Yvc7p0f884%3qP|~=lx)_I(!UoH>GGc#n}L1Kc3jlfj8n(Whs>? zwf1Gjn!8~ovpBN=twfT_{d*8B`~hO38R`yk}@4r91H)TUUKm*#wNr=QjjWv<&S8ThyAPSnoonx9z4p5C6=cm z4vfVMi^R;()qV?C^_ne;YftvmfIMxNp%_w|mSD>ejbsfT^HB9I?h%}D@dHmas@pf0 zp;yl~&?O^sca=vhEk_Tu;B=R=7L z`PmLsVCqm(*2E+>zl%5%u-h$$k}un1g7z%ubiMc6N|k`}X5;}Y*k8jHcsgCi#^#5S zFVDUZo+s7t!OOD)+S`_-NGm-@K*L4Z*Cl|Aq6x0Bkk;q`-UfBYSY!|A3_f&rA6W2@ zM$RG(KTvchg->~okZtc}t!xYv2vLk`4Y5hV=ld=x#`WXX#zxnvWhqq(ol2ZmD{|7y z(l6*61wsx(`TnTLrN#WXyViA$!guZkL*t|mUhw|Zg*Jecx(uVxw47@jw`j`V0f`}`A6ilk>L6Fs?&-}y1TYOzMqek znml-K-ck7c%f9nB)j^>6a=-~gpO&qTecDuVw;Nm&{Y2}*h;J9#Phfu<<~CX91Q}2jKDj0?IJ9x-KO>$L?=Z|XkE4toLZR`4wPNnAZ(>?nT88?_HnQ3dr)`;n z7#lmxapI}B6&2!Gfi$qsrszTaJt^cqy)hSb-dw(m{Q;R_kr#y(SssZCXX)3zeiFr& z<3;Z~iKq!qh20}KqT$xMla%t~>^YV((sSA(KMaOqXKr@r9awfP)eF;q!IpDJg;Bnu4SV{8y>RwN=k)gky|Ao0~LQb0R^)J%NPJ z574H0qq!i+GovZ`ibB_eU24>x78giN|A< zyKS0iy?pyru9GDsFgsW;VPm$que-1^i$L-AzEj*+7GY|hVIH(yKJ}Wo^`f*s=lH4! z_><;UyoaJ2qahV@z9}xJ#FB&?`%x1fAI^vdG|C*QXBMOb^1{2-kYw8Qa4c_SX3X%< z0qAiuuM4DPWK67HsSZbR(%+eCVi5NAMme5HQ>lC0pK*9(k+1)2Rgh7XR}`$FmYdqO z#(SBs-2ZtNC_ZjH5gdegg$+8(7FufjnhLQby~OAMnKGqs=R#&&UA`{&^z)NO zEiuG>U9;n^GZD^IlKcVCW1BjCp~nG_3AfMzhn9`-rS`1x>OeE4+LY&F zTcyu_TsKq+Z_rs=)?yBtFWdrkCm)HW-XjdWpRlJZRGnIBb@%YgIPVw^X6_-n!Cxxc2_sEK^gggQp^$rMzJHfhG6~V1+Mlro1!q8@TQ4~ zaiDu(tCgoRF^MUq(=S($%cENq=v?sv_o}4sTN` z!F{*P1^9)?ZE$~6eg4&~+3^4?i*ERc#UrH+9?Mvau-wI=f)BPjDa`fYckl&U>r6T2 zY=kw@LL63>a?Ms(u2X)AC#v1IgTsyZ$hGYvyeUB+nwR!gBHIX(h3R6XuP|Kw-f56n z_U$}?g9=tPdE}NjL~aN$U1fk(b9`!kGhVMkW?9qW<8825>!yiw37oC$FZ(}D)Q@LU zMD2l&$oNrrwZE}4NnA2Qh0nh4{H0Y)-JkOB^#TsCrw@nCmwJi%vu~?jr7Wc-r`0zp z?+!J|AMK8)@xIsgbxvidbDi`o7V{dg7dxr;?|!N9bc&HEV z!W{4YF6VfDp3yxWj<$tBShc*={)QLWO7VoyQK!4!)3s!5Z^5q~hSZnJo`f9TG-?(7 zG)Ig>CyQu2d2!vP>z5WEceA4buYzy9-h^Wye*lRI=M zaL-RqQRY~|Eto(2DQ~c&zdp|UF0sCaDN+$6sZj?d*1@U`O1OEWiEu0Bs{_2iN;}H! z=qRR&9~wZsJ*-5PyYW%J4#PXYf>peAPZ`t-wYt6fc+H3Y>S=$DXf;ghSX{bT_Xv@s z0nKr`(*t#t!T7%W7JLMgmsKwC9vV4~vJME7oY~M+%6NqTEOg3aXMdfV=ktwtujXD1 ze8L^_L4d$FHEsy4mzzuN6_b|+RVGxY#uczJYj*_sJLCk1Mi1~{ zq|;|cWgPSHcAJ2xBLy-PYSTm<7b%d4aSSM@iO@9JwS!+g$HUtNS>BH`o9Y891Z5z8 z&Ue#RY=p;rgQsO0y`?-t_gd+;nmqpdFu(q%2+Lt~Wm$C8BepS(-Vy95w3i!a6tE3$ zX2Yw0*O$^{Xd2QrWpC^|_8uY&MCft9w0L6ec0CZOW*M0+((NN(CJ~+F)uY&I9HvhdP?x$M4jbpW@tCX)hHb=F16)BCaIU*0$Y&C(^<(&% z_WLFS1NkF0mDDsmJ|_2q3U&feV}#9>`!^|@+$Zh}DzLA#zd>-l!Lr&E-_bUR*S|B% zYX~BZNaji>!{;UzVMCIXJ&Q3=u<0{uePkTda3(rdOA?O1J9izIlzfEqn{=djj|^US zhGo+~GLwl0ZgE#5opiXJ+DBSq?B|J{gdd}EEfJrKtWR~^aqXQM!UqQCw#fMjdD(>i z2P^=-ydpFM+#vl72FHLLsA%&I1#bf zxMJk?M1Y^5;)=XSoF4UzunTU|7yuu9a?KR&Y<^q-fM^Yv$b9d_8N%r$1Cw5k4I8pV zP;VUO2g&c{2MIVA*%X!OjlNI4k?NWwbYwUJKg;?=n;NBL_uVYF4dOBL4cKEn$`r#; zyw2$NV|i=p8%{TJjJUPSYccQa6Xic|Ghta9DJ`OnUCt8Yh(z)>;ylpf-#sbOS5l9V zXJFOoJxGRROrzKh>3JEy?rDe(DfXx77`YIeUF8od??+c8;jt)WNpniN;)K+8`GT#@ zXQ}$IvaOA-yCR(NN_Y_46 z(1$Os2(>dGYfLc-9byE`B+sRu&z}}qskQ<8HC%q% zmh1KtYGpNLa#UG8t6BN-Wo4flrC8uJ&7aB3uNw=lFIe{35!Os#^?bvSF-HBM@_Eup zN+HpP&5lsFF8*KvgkNXCHB*Zu>c$m+_@>P@H+A$)6a`s5LUoh%Lk4jQCN_hJXrNa;4 z%9eJPFR+JfD-sZczEyc|CXTs3mo{fw5x|=gB4k08;uOWvX#(%y^ZMZlRH-u8$)hic zABO8W$E6taN;zYg8C@RKcdJ(DK*{<>4uB>U4{J7OdVS+Pa)oG+;Yz`ZCz)4@m6KAU zIDb6VYkCZ9E)yawD%&IFPs(H0(R~(6Ak^pzO4t)e7Xh;W-FV>fN6Hbx$%W&0xZKgD zG5#R+i^g7tvOTH-o#*gD=m3&BKEp9wwHV;6`CSeI)DYCY6>FAPZpB;2 ziz&E)pw;po5CHQV-MaIDU)ayEX6kVhm=$Rrq4Ux~#F2Gn8W@{*^MmM_Wxk`q$z$2h z9ETRjPcn6TWd1C+`wS%y1NF5geiV=>&^ucmL|K0lY!*4_*U1L9SXu2U4H2SV5+yP#3G-z?ZMc$xNusN53cu0uPRErGUXU{hwRKG5@fTfhpno>lJXaIYhFpge*oAveFpG6=S zwI66e_{7!0<{TV8H-WEbL!LZkqcMD0*5*nsLRiGLPX9rkdCl;;8$G<#zqTzmHq4Us z?fTsr&0wzTb{lG#WsZk7eL{Ctf~Ldb9O*~Xnu)KY!)y-@g$|2JQ5l)#{yqNbM7wXJ z!;kFSwDl`0saBesjRD2q^1UZ?mN&Si7?pHscj1eEOXuaopJm16s#&H91Jd<^i;tf| zVyHqVhI2lXJU4r@14uBpubpB?1A_QhQ;wJ~R0|JTW@HK!*PO&!~-b;SrnXOCD^3M;*50pp0U!LI_fI7PGy0$+ zdlb2w^D0ePWG(-N#yqC)FLj(=ihg&x>*6 zq-7N)y`g2a1D!zdnpnNfOsaZiS*rB*Ni*MF@mARu@dlLQNhOpS>T>(=@u4DRG$YsY zcL_(8QX4irx6ta&@n1cQ@Imx&Bw8RV5q4|2yC$-NmeS%?HY${dJo&usp{M~@gmnzK zJ2ew>cj`t6_fq2-_w!Ah|I*b-Og1q zdNUm((Lgs~HmTe$SmKn*Gbtta--(fhKdUX zxXgXCu6-1->ILcc(<@B1ioP z{hUnh>b}^NPRi2B!>q}jhX`wy+|O}-W4bP1ZMT@pFGv!V^CJ+O4Ky^LA7SwUl%+7{ zYgM)BI<}Gv%Be>kcE{~KCw%_@_YN9ehfsQO7#$pa%>xMgkosOZ>;WoG*wv&a(D z>Jdxn*hpFWN;pC!CRMeQ>VG{iww6=VQ33+HD6#H64s6;p+PF)4#e0uQT5KNnSQ+=g z--@}f0?67mwe~4*f;lQIe|nHP^=bf10`<9jmLAc?ol zwE(*O`XUgAcP{Ku{E`wd<_en&hT#a}E}BpaO%?!vcxNO;)qjd7b-amy*7Eo09a@nB zPg0NlVc&Yayq06J{_<7(tXz03I@VD|C7N10f?AX3RLdK@2z@4XSaUK4d)2L$nByS^ zq`052>som42YL=@&-=NDOWu37z9(tv)d7`Lf0c>HUMWP$Ay1TtA0HNHY!gQT?~0Y1 z9QGt;M%xI0f(&@~aPbM%SX5XD6)08Au=hSg^G+OaRLdtozA)0No2b;LekTCwoT;l2 zgBIxymdwckPP&wpKCRs zW_#fZoc$8T8W9>6zvj!d?aBbo-tj1H-oVkSZ-Ju_w)QBX zQ*n2|km-pEAxlFqP@&cD0^7%PX8@)J@}0-|2hTq){*ANzjkJXRAoR9+Fj#v{i?+cm1Wmd6urpdDNXn){ zbB?cJhZ{a2F6zhm-fIT0Vc~i~aj|nBTf1FMM`thpr)NhjRPqnb#BY9oj?mQueUksN jZ~C-LE&Rz$pmI#<%kZd$=t)01Jy;k2ym4LSztjH@bC_Y8 literal 0 HcmV?d00001 diff --git a/img/default.png b/img/default.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc2cd744cb49e00c98f17dba523970ff1b7f476 GIT binary patch literal 400730 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
0MKM6xp`925_<0xFq=fO^q&Xlb49^?* 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�_FvhxaV1ye*|4Q|J_a8IY!Qshi)un;sFDf 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≪N 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 +%{~t&;0E9}ixs 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%0ATVk4yXSqzN%jigIQV$~Rd>NNPO6x?NS9xg)i# z?w+Uv2}lArRQn5=<~jI_u^h`|G=VvJiEkCAM)!&seyxGy)DUXsA~AI($4OzQ^FlC` z?cZ-;mZ$=nfll=Uo?;Rid2K@b+KQbnSqSWUy4*GH0iIqmbJLVA*JIK*89HN6DxY^4 zvK(kbW_#xD+`WkrNRVfX%X!@nj2XU=RON8d`+44@8%bm@enw>5XQ(aiflHkQKG-m^ zWHR9RX$SmG1y7EC?(j2&e#=$^W(K)y1FD3ts7&4G&7^K22F5)^%|@?F*Bposn~DF5 znZs&~^Gk+UXZ@U>E14uR1#7%z@FFbnD@t*wAVL(N;Wh3OlPct+6lTv%&iFRc6p||~ z{F$;pC#H628c*Zvr1#(R&a$ZNg;(w8;B<{>MjZr}$YHjTO|Jzi6P`kIG|9p(o9A)c z*Wdp^+qvyV&fH)yH(3c9CxGwf{hu`5g=!QAMB+FHdelvRWNWW&v9T=n!F0P*4ppRZnZUKUN!Mm!VbTdib_0OU11O>j=)_OM#q03 z$3DB_YDegf@zQ!7e`h_64i>eJ_>-$QxCVqf<0MP_-o8x@L*tjnm1gE+ud9#|yKq{~ z=sazW@|&yiKv?k0)<@*9fB7X#MfVLt>xxjI

Dx;zQE(4^L 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�@V>9Y*2kdK8 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 literal 0 HcmV?d00001 diff --git a/img/loading.gif b/img/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..c5126ed9c993a540f00d7580819096de15cd02a7 GIT binary patch literal 17142 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 literal 0 HcmV?d00001 diff --git a/img/main-page.png b/img/main-page.png new file mode 100644 index 0000000000000000000000000000000000000000..ab23176818e5e27d123daa75cd75091f7dbbdaf0 GIT binary patch literal 203544 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

%RFG8IvAOm?-amYk-e2Yg4Lrf7M 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 U%y-4C>;lKKmK>Ss70Bwl z_tA{1nm-NRcU@}ba@(IDHsn9)p_)_6)KpR|GsfzyoYL^k?{hBNGH%{6pRqbG{_4?j z6eVL)gV_7k5^Iiu^f=FH8AO@GN&Lo57zT_-ZnwTv_Ht9abDW@tIj^$6|Cd0~TB>XG z@&Lbv4#xW0o^-&^&#P_b4a1jMpo5Z0t9)H;trX>7T)LAx)|u}VPJL~RC#oFGG0^8o zS3Dm4OQ4i8%E=6i(0%@OY5{t(-SEMPhUdnI_W2xm`^rK3SF&JyeF`}Zb%gdd5F?M7XJ?4h12QxPxOy9N>Hh?Q0zO9_|4g2 z>UCJiWmLn1J5i+6wOcMr3U(JkR;B!_SX*l}<7k~MXI8nT z*O#CFu+mbSoZ#Z2uI*=r4Xli_$vVbURGaB;92aE%XbrTKW4q?M(5C*;=litj9xF7y zZe&GW;YF~=%XG~r+JA__{#-SFCnO<%2R&(^Q>Z9NMoPBYk_+4H>Oi=YO~u!1&OSF< zw&jJOV&BU_P!N%L%yWc0^Zo0Fs)DX)vhEqfx^QrY-aos1$NZX^(KwLohtWE*=8_lX zDIwUb+wVK-x{Y%${Gg8c4hvK|(X+#WBEwqjl4W4XN!tP4WGF>>aO(+Wf+P{8l3iAb#5Go1C%=7}tx7^%ZhOWP1(F)}@}pV7?rt47Bs8nu z#|A{}%^8*I5lf7?_U2ReTzA`hA>d-|^Uei>oH7;}8`zecib$vH@D;%lS5soU+$(Wn zI*B6)JtxW*^MdK!O0?E_vw?D&=$Gv$;MCH;dkTwBPI;p$xcojQl3V|snw-2eZ7CO4 zH$h{5K~x-Du_xf5ZQFrp&7@oAexmrOydjjQw^Ueh!!T?yq2a*@HsLs;7B9+6gz z)RIFW>Jkq)kK`ezq3`egC@O`v{CEzxZ8o0&;aM(M`)Lb8p6XhAKW`$undw*METS~C z%3F7dYats$i&q;^jlpdGQDnTae{9mfo@p;RHQqg3mXQ@ z#_?0m%g^~H@G*Ijy1$iZ0A=kbWsYD zFyb0f$+m&I3RBmzFU9H9AWM-IQJOlJS5cNkFGceqopxn~in3Xrm8ZzB`akJ5I@O;y zX^1+Cs=N!yRO!>APqYbB!M?JxZfOX!(jko`XHS@$H;j4!XQd%JiPT6aaR#%VpZuo~ z1&t?CfRmK+-LAqSu;k0N&n%wjYfifpwJ4e*bJOH*_3NO~dn-`UDTtbu^%#ter{~g8 z*3{@!lvpyzC`JG|Q$mtac>Oev&e_mFK|)K?4=0}7qP&HM&kL)+qI*y&Ysq|*1ho*r zqvLxk+%ZyZD`NWa{8{KmM6r1qxlyKYq*le+K=wH%>Ctxk=JaSnb1Y8Bb;+{e6{20_ z=nWJ1zIqCpg-K8b!%Wx4bRWv@^p~LD)leap6%2t1PB2i*mCbszU< zb>QltK4y3z7t4r*0bWu*-#%eL(!X`_;+|-#de|-s-&jw;P zeNaqhrk1Upe!=jD$z`yfY1Cx=lN*e*9dJrlGU!Jh>TM&&T52pAI6U#e{({;U!m1ES z;wuwKO04EIj&Ps`)DTbU&*avMmt;9x?4HUuUn%SJ^aZT;bm}D1QO7PisJdfz$taaG zGpRW0ZWZc=kUv>0kIEO}ii%zgNiMa;zWRFDJ1cuTUf)K(XNzoHi7EfQ)ErJ_WJGCqK8u5yE+KW;_rLmuKD(omtg_!{17JvTrJ#HV-U^rs#Ndh+tg6E9NJMnyyf6 z;!A5;%Ub#}BVTV;DD<7|_;C=G6`U&IRmJ;=Vv~49mndEc1b=t0MllC72eSmTR+7EC zaX^^7fR#9u(IyULCe}0||LUx46HISB4>e6nc1)`8h~ldj<$tDMFhqF+o3YWu-*t|$ z!&<|GFp8#%dbN;fC-|P1tl}lbVjE5G(7`N{mRt!K(Cw1l-)_u4% zS9Q55&DU+`AOT>?-(g7MbWp52`b*WcboqKJS%_Xbm6kp#2%}YJAx~t-*)%;GD=@J) zm{lyA6Kt8uG$OMqJ{09vnzKPvAyQG$C}Ug=`JL%A(TT1}XSg0bEh@oT$sT+jouJiF z)D@t2P5)v0?2%AXL{8gbT~LhPssuT*ynw?tHp5U|#)VC!n$_aTsI#FS_c9MN@sEjK zlko_A0!wKMLjRXG$(Yr~D{s`t0VdY#Vny{To^0<=y+(NrWn zX~>{1mXup#oDMFDx^T?b#6NkJTL+AB+aU=){n;07Rr2=wMLjU0Stcx2_P&wZj?%ia zOWuz1T>V(i&-Hxvk?+$-IfFf%)WKz`rpBK?1kCYHoYN4&Nqm`2;Z&bWN(`lmBT;GP z*5$E<>87%<0_@7seljW7uhqE2(R}(vR}s!9N(WBM<^?9-TSXgx_Z!d;vG{N{p9{TD z5eggvY2Tqkvmvu;E(QI*`CkHbn(AE^XANdMQBdUN>P#0*mYax}XS4fo_1egPtJjG# zjvUMx*h_p+@xni9DR!>hd$*^Nmnkv4Wvr!CBWEbJoR{$12J1*(@-FdbA0Y(gbB`C_ z4O?Cw2FITIoNh^kQjbepXcf~j_ZCW!ztFQ#lBIR$Y$M&{kS>;B_n{kCp(Unduh5R# z>!p_4v*e~!_q&*UHIpU~G^*l8`cwQ-zSin99931=>43v7iZpV;O7@YL0ym~?Gp7|9 z4lXxSR1`tEwQtjQ6bVN)^2hr76^+vq1vgV~17E!F=O0mHu~v~`ZW>~nTZEd)oiARz ztS?BCcg12)(2;=@KN<;zRaC9i)sUUj`k+Ll%x=j3bQkr8V3@UYMgW zSgdk!joyz?$#%<7n6l@MtX|kVo8#JbzEuro(g(ifbVBb?0VPb=RJ2JV7B7?4?6Yx%ZxC^yMcbCS}_g7m1kh52Fi0YmW3%Iy8vM z^s|ukU?1-77(q@0*kzX5-35aQ*_Q_^SW6wf;2M$n0vDJ2D~$O&?q=V8_n0kn0^@qv zYvxf04=1!@mj$c}jp20k9W$>R0`-ze9~$Z3LN_i@RAzLldfeix39@r2fet%^40XKz za3a!4z#JCoRS+VEj?1+k<&v+-LMBb9eBE|Uzgx~TX-*P17 zlxf|5@n(7qa{@m{T>{N&y3_optpvnqkrQ3qkSz%c!bMd@oV&p7D5G2k-k02^N~@vl z*2bN~e6FZT=kXq`IIO zSz2OQT3o_O(Jc{elAWWkm4rQs8Pol({%C7+%85OKTG8+c#*LF~KD#W)*_N3;5vZF@ z6&ti~!s2wxD2g)b+I8KOQ7Z@{8HGrQG}+@wk~+qdW7uLtP3^GpcSf4x6j?oP?512) zy}Yvz+2q8TfPrY#$)XB{`o*oJh2XS|yh@@ee(#RNGeM}H8(G|CEn`=l0b6JKp{+b7 zdpHw-7y4*{dl8^NTHszZ{v$n?{077oCgph}8=>h!Ox>o5ZU~L#NmnfvVfU4b$!&T@ z7FCz%MY`n0J`S$V^Nw4hrf@9Z8+hCaSMC#tx}K6z+!EY!?c48AB8x8fNxh5beve9` z*co;_1xS3$ZIb7udl={ndNo5Lb#H3KIGR=TDO99c_PkQd+~U;l@~}ms1|QS}hK7?C zvCOgK_;Qi%X&Zq`DJQ1IJ}gW-&-jFuJS{}_Wt9fXAB%bh41^`?XsW*?=UB&b=I6AD zVVf)Ej26~%@@Vcw$Fe_IG9@t@=p#Am9jK_NiVCt7SaMcqMI^tUn$T{4v?AFney6ac z=MBfi*`x6#2wMBCadMLdYuDKY`n%%8~+(5iEnQ-NWk);ea4jhIhD<^ zin^YK%8>#gpN+DDcQ4}H+L=@7{_^-mZZ%q`+7Fm84CjkrxQ5qqnyZN z1{>UK@7^mlCz(UGlGDi7il*^hDhj-H&el@A=-iB1({W9pH^lPJ9YA;c*(arc>~^PG zd8oTb4Af06?ZHDu#LyUW3$gP1**At%3;FtvLdSLV4@cn3e@-du z9YjQCr+Z=UG@ovR+9em#it#!ZF#^^}?tNS7y;hiX6l$lt)2eYx)2Yc?#^}dOk|t7A zda>vMGpA={bXRry5o^Uzu?m~&-Se!DZC$LXwQDA<-@221vT`znVr|s-o*8n6Q`6*@ z_bgU>D*ky**uyhOp-R0X;%ELSj&DPn#!ld#sh(PRW9RK`?wVW)Y6oe<4dT+_F0Mx^ zo&0Ocn{tZOdac9g>4g`*47oq0jMXz8+pj6k>@l5jU}{dOEGQ_f_cKR75^bc5+*s(0 z92d%5D%A_je`Ig>sYLBRYMQYA}aXCih~+A{M5-b4M~-O(l+Q}q~q zkt2;0qw$2_JT#1hDk+%!N*fNPU2fwOjXcM65!a{cemQJ)3!=gcn=?!B80xZD{mx-q zRGwU4*QY|MahiqinXR%O4e)fx$N&V&8hT?}F)e*cBbR7BHxp8*Q~gWZ+De@DNH)gn zRsGGKW3Rb+?#Neyov298x7EDDfwGRpkcV2nV8aY4Bu>$}VytsgvvrlC`J*6HIqFHO zZNrf$_fY?Dkui&^XF|rKf@48Kl*tCs8w(#1Y{CA|;6kI~)14>Ji(#AzQVR*;=xN?X z8pJQ#j-1m$wU^IG!-*Rubj$T}e9XP; z{!0Kevu643Gn>%Lv6b+krX)JBzCT2<%OlyXbXDCLU9a==KSk9-Q4KGJ?0Y-LYg>@o z$sw-_D9x=TM==j%uy|Np5vmma1mxj1FpPO zU#&xpa*QsQuj{H!)Wt0~UB|@2CqNSZ<}H0yJfq4Maxj^)I$BdJlR}9J>+BZgV5p~r z*y3-foBAI1lXQw4CC;U>+8X6dt|P=rJu4E4upSQ`i%m0Je%T(6W|bTo z7b|^{O~pwrAO`F(_;MOrE!UspFi8zdl9=B~+3{2|`UNv$6#Ut{mH)n>%5 zrCAjeao+pHxZ)%?94V=VhzSSIF>Yw%&hU?#+g!Ub+V)X;qX~pm_N014JjBVn6)ha_ zE^+rLE<~+ebuS;Bbc(^)_sE7maL6eH#nJCn2opW80_kN;TCD1AimyTMarU7LN7xP5 zSyeOLmykkbbgZwdp@Z~+k*6s%SEPnDdACrxT?_LhVz$OB@vGOv>%*PaZ$X|Skc zDO*TqKN{1HB{_qruXQ4Ok$NwMwYQ*5wVdi}Ljx`{zGBgyO2zN`^`+gXPU&3KO_YLF zDi3oFkK!d2Zy+A{L|65GROiUw;_mq+TZ(HP;2YCklF75FkL2LacFgl-CKihGgBd^D zlDXc^`^J!&l;tBm(Qo-HuX(Qfu=r43CHW3HY9&$G34%8f6F%Dt;*{J7p?Ne}RoiF& zAvVq9dT!?T7brqsi$F_c)`n;XTT#-8rTtiP)Gj+Ls2?hUf$|o3Yk@C`|MJMmePntu zB>JXt$nTN4EYEg!eSQp=qdKCm^_2A0Bbq=lFwhvDQ12EbsgQ~|7mD&2VAn2Wwi9Dn6*q}+Ao(tImief{mIJ$T!0e>@-i8c0joY!T*4R)Hf86yk z@=RdDV7mAxM{$gItk!2Dd3%TPeKl{&?~A$in4bm-2!sU%!*Xas4aMPmi`Z=;W+zr= zGx!Lcq=XV;2=5`~>2C=rf5p&GXG1@2lAg==Zo5`*gPe1vQz7ZUd4>`X8nG$UnMkdy zkuojIx4-}J-0X7ie+kZ;pbEFQPTF6;2kK@WZO;2l%ZbNK^F3MGpsvtxHyu*oz4Jwu zN;?W8Aa-x5mryfWFCqJC2cRS+1 zMA5#)o4QWoQuktthw;!u^3Q|t+N=tTAQ5Mq`i&i-a-PrZUO%zaCB&)ll@xe-iH*r2 z_A8{Ilp_@z2C8>hA8rqJoVT8XuK`IRGQq~k@tm|mkF6`SdA>YHS;=niHCI*I>r{m1 zO@euoV+Sp0`h3&LlYB)M{202#>T?T4&hO`5Dq1gwwQ%Iiq6DMHinQ{}3n`Y6{^R=A zYFZ&0?_Q)ba1Dm2!O>oG+`!dVBH*ZU;OnX@ET9k;q2{xz4HdzcO!aa{Y@KNBm~SPf z%7{V{wcmaW(H3%y9*VuiZ0Dpzx*9{q>xDG+u*J;ylF07%1PG;*Ld4FHXQ(W|EY2Pn zb}hYlS%RGkbJy<(lqcHfwe5J(YvOuSoEbB9t-FTe0~V=ewwo|nS`6e3T$rKS}n|2Si<@MBv&_e zUS(FOcTQqPTXd=5$D2V$MjC0Xt(h;ciWb*FI)@?dIhD9~9%L+vR_x3H+;|EkPVDAc zouT@f-|D*2v4^V)7P_I22id`$>Z-s)k-TzXuG}2uOzG8&Yl*uo*Ue2GoMbq? zIPd4ykCO(CmGWSzO&g3G#d(=2yMxyXjd{BqA(qh%isyysG082tQp9r!8F1@ay%7C^BPCxjhrhBaOij{Jp}= zyUr+jV#Y#a!&*~(=q3(%bSQ==UR7XpMoguCX`S;oP0`)p)Z1T%lYGG>tkT6EcBB1Q zExKrKn&zra@JF4oaO9U4J2MHgb|4)Yzh0m&Zs&7P*0=I4MqAkQ*S1Cm^+Xv9>Afnd z$16yG$Za10E-IJBY@;@lT)BOFZobl)pTxu%4v9YVj$(lRXq2+}Z*1RpD zb&G4nIajT#eKC4e;q~9j0=o(}7W_|3szpXDp<+sh z7cYy=VeAW9DUlGFh%+%VI@B$pq(3{oS2LC4%HHavGtSv{M{hWn*dnqjTLn&bSnhPL zJ2=}32YSkS${!r;K@aHYSbO;mSy7tAg4BBw&N*%T$8sTKoiTc;RLt(JJZZfhScjL> zw)_Gi`6fi}2_AbWgK_eedTtBlt*;dr{+`G)vE*bOeW7jC!evLX?)IS#ll{F!HGO@* zS81jB(V9uR#q}c2xyaIT4pGufh9{UZi-OxxY+6_ji>_ojHG^Vt-k0kJPbZUACUYGV z%CQM#(Zn&-#v7TVSIA$B3wJmNvXe&D^d7d%DSVK;J$^Y(^<0NIJV zYuQ!bijLw&5yo<7WTd2?ug4+{pBtTehQM{#y`S=VnzdjvW6VuBAKAolB6DWZg99EV za(dCVzmVDV4+_ttS0vbqB`s{oW$!~fIL^9@Fj-ZGm!N)|PAN^@WZp9^7FNpC(a0Co z$c60z4&a!DtDtBux0xonr=t-o58_-yI^ADRT7lkp}gTxiE}0lGrO3V7O1>V?l=mMztI|rFoKQiO9_=rErg|&As7b7_HEv$bz~2v`Kjk2Mwb_nFFnu z!=K3LMUkU&y=tx2oc8^zCH9T}bd-=F41H2sQR|&@{mI+JSXrB>VQVYo8ANzjLxN2>VG&uh#Lkr=y=CS|3+ z7S;orTvt(Lsiag2GlMIhM)o0|xlU~oF2z=AnZnU*>pCwnc0K~H61K56`k0G=;@FX+ zYGrxRw@se0ZYS#Hv^GT`KX?yK8zlVO-(x>ta@NzFxcZNeitiROQnPB}PGYNq=Bl zLOj+rWW8ny4&-u2kk+g{(YvCHke0=2vaMSX*;}5jX=fa2(RI_!+$k_2IMY&RCVOWP z;`}{s&v>!s=6$15JSFS8lT&5MVyTBoCDG*V6!CWpbyQ&=mh8ikbGu~rAN zcIbXoL<%+ks*=jkythbI!$i2^UxKR$Lo#ine0J*EXOuI=nL?oyne-d^70>J@bVCwf`ytY@-b-Gp*zwak6nk-2Q%24T4sQWMT z4CJi)S1NlZa1N`^9=%%%n|seyrJ?2VH%#S#GEUh}C)b30pQ~-{MD{sa+na&C#uewJSaHM(kCwR9 zdql)L>zImepKAUxpzU1Sq9&9ax?UBRodzVrNCyHbHMBY9QXv$OuR?6+}0P+wW7ZhY@}Q}fkeYBE*P`i0NFfJHBy zVx{_ZW}h6lHTn$W>%ADLd^D4)yc5YJ;iA45N0g?H(;Rn5uh^6& zNwUa6e)^h12oL4+-cagHdNe8Y=0XaSy2%MkaGDTR?6m1rb+_F(WDV%@VfhfJ$mE(; zYdhJOUBB_e!a!cuaNJK+!Pjknp`k|*`ZGHfjcDY!m@^*NOV6f)*4R6lN3*6H?5ErS z^W@`|cm))*>-iUs^5u5ZTkSupb0+&iJq!qqr@Q<^wCg){#P$Y@#b+6b7GzS#!E4&QI=4O*4AC9$Hq+ocG;;^RCybcesp*Zq*nf4hLNxjF+ z(;qa^6>Xs>dxqWp;Zp~VUiP}hMBb=lE3*l-SgEwC$#yE%oeuFH?~>$99y!CiDAhA7 zIg6>2ds3_2+e3@sTtm4pbIuN-(|H}z@4k-5s2a287DF-?U5BDm5(VOIkT1dnoEQ~p zRu*a9Uh$QX>>AE0mu&l7=&04g$b@Y37Vn;yOpA8SA`vv=r88O~LVO;(##oq+#<98W zANNMMP_YeWp1E^tSv=6ikZRQ05K=?Pmo4z*)40V?#y#$s&5(3hes;9Vv8=6LWQ7h+ z$3@sryqdMdFeEXnEVH{4?QFZKvlT`6YbYwXw3T936x4 z1S5%{=x@lTD;(mhY zl=Y-j@$s^cSbb}5pZB$rBp)sq5>uecHJ&jm9a`CY+2O~*p&k^XWdji*8!AH?;nJ(^ z1$3!iq%qf5cwCf=Qy*ja5l(jaNn$ zN?iAq!`?Pdc4jPUs&v9J3|QM3C`2bk$443mpB-%RDu`n;t(w_CS7olTpZ-agI|>_} zCZBhKva0&ts`Jx_yHKZ+`r2Z(obxvBN}HsYkOtLV+)(>n#ay4J_c2_cC7_YL-;Or$ zJ|Tbj8h4mLX^&%qU7pBD6qsv1z{(t_M?bPg(Rc+#?M9|&0f`nHlv52B@GwY?k^~yW z&U=?KFa9u32FGn{E`>f?EDzJO=v3_qUE}|OFj}o&4pZ5m7gu+mQ_>DoDX5;g_$in7h_qFAPeaWm4tyC)#fTd#sZz?J>-8|RS9-lw z{7&*kYIyQHRYTGN0#j6Oa!O7`qY&=+65f4wtNSt=spVQwIu=KSak&pIHiW>V_~M!0 zYID8qmvuTShNq#B)H^aItgnn*2d9JVKFPQ!hOw}#z1Eo3q|xBBLacZ8d(#6Q(~=Rt zj7+dCwV&a-j5aB(<7*AEcp6ti-K#7u+nqAC$bwIk?#TVTK7VYcqd<|K&hm@PQ3o=! zGSAaOxti3+n@4IT8wHtAb-t8oPDq^q5%PW6ZgjzFg?3kt0jHmcnN^$NSMu0DDbr_i zG}muhe=8P$SAva~L{uPVG*RhIo}J?wTS#y7!VXWE|53xovvRIbcnWbX4NU5Ud}dag z^T?tjRm~|gg-Ahi)EjV1~ii8GS;ZUAuP4pFSKHJDkoT3M)QonFU1ob2pDT`{^S=3gq6}wZyiY6_G`l`tV1-@f)D>w zh-BX9PBj7o9VTOClBgP6kYrERu(qVgVDC_Nx7CPa9H|axL00H05xpwgv!#Zr5l$K` zZ#lmw;qI@;-X6Aj}d2X!*cF) zw00t=e6c>8Qst1t84DXKU0A)}l6>PpJgQ8yquEB=+2^sWj??u)oYtI4%4b}S*ZuAA z2yeaCvuLX|$jvojsy5+JwS;KWM4eJ=R%;u_y`{B`;)u^u8r~V~V-$nAl((=*p zu|_MsyVGGVX)bB{dO#z*^NSm!k)lP$UB4oeeQ$RZv2Ofg3A~ka9U;l}{3bc5j$KaM z(FLc+=(?>+zcx9=YKNk3Lcd;Q2;j`q>zeMWY_+OSgU5f({bk?Cr5^@qAuBw+5N^LS zTnc8XemYZWVWuM7&%`mw_`=LYIa)>7*3sJ5eM%LtijLKrH$|wVS;wD=i}LPm|MvvD zzX`F*ZnSC&{{|FlQfb4rv~-h+0)d+uz!KS1&HcI zQAfXjB0@QuW6D6qql8;qODmh6rLIpqx$W3~<6ef*vcP!>Czsb!)E1C-lti9Ef(wxr zJ+N|9c=?LjfJQxipf&~*qP1MmB}lhT*wQ}mI7shNEjM+0LHp;vtt_kWqK@h&u1ByV z&Ow}hozX&we+p6{udM=^PDHV4mj{H>hMSvP?HAM1TKZZ-D~~01mdR;f9^&33Q#47k zinZWMLotDhQ;lSZmO_R^EaDR#FodDQI10CsSz##*&fo2GRoXd2GK<9_xQJYtsF)R` zBh&5MMU5w197P(&@nZEJ>2^Gn12=KdwA>zj9hNB73bn$!sH!l||X<^WJr1P9^aw_GSbwxDQo#OJb=2QnK1vOnwy$E#w|MB!5 zP)#M=7w?SYj1&vK3quGkBp{I@)z3g^p%{9oBZS@r=|x5bg-{ccAYGbtkkGq@7K(Hv z^e(-3#Cg~Md+Whkkg!;+B;0#*&e?naPA)I>mj&$14VFRAsI*=#JVkcOLRv`Z82GS~ zGn@*f7FUy%oLRF%`Vp|k(}29DW< zCD_h|X!t!)poPU{Ici`wGV|Wig5o(JumM>)55yKE$CvXN^WxYvk+zm z$l>Ikuu59)n<$K9vw*9YNkUys22|fN}IlO<7{u=Ii_~r}DiKI^FZ=*n%}#Is7tDseTOLpweUfBcm&X-w|%4)@pb zJQe{u&ed2+^0)Vwn?--jV%JLn&syb9>%r&6ohs+dML(zx5v ziCq})UcsRBiScpb2c`(iTptqN0)=(2#Op8|Z$6Kr0`98#_%sQs1%u2tykbUBL)aY3 z8?I*i$OX$|MKE|+-y1eMlWpm=`Nd>K!FOfm%@DeASlRrHM$ZMBxm#Rc+D`~^JVJ9F3td$1-_>>=iAnp! z>UwMut&w>guE17QB6<-@mkvDWMm<#QC~BqgBu;O6g0-g1)2?A=Zoof|1$u zLdWC9mzkah%R04AGgPI!7-x*uTGe2rly^bB##v|IDb9K#86(q&&R9w1zR5!uEE~Vf zQb~cyLW97hpDjR2A!%X}FKM-a5Rrxb;yn9<8px}^dH?whPm(u`0?w0fd&2(tA|VnV zvj)pRiDkZN-+8vhLZf?2l0a$1$;Y<=2LoCKvzkaGITln8^1EATnxW32t5~rdVTLqy!FR;~etCNWK*Nu}cJO~{GaI~Pt*~u-1$#n*X6PR8W@4je> z-A{h%KPb}GpW;oA6dnqRWsX;Krr?+7mWy^pU-Fn{BawDJHQ`jbANBs?C?EI2ACa>G zpnB-w8ylU6{*R7@#INusJ1-Mvri)_|1D{;qnO4I#nIUP^$MJGAr&@8WndjY=<+CM z&^}PMWqa_r^rl*xR}~Z$1U;f96^vWIG$u!yrBsjRse8x~Q#gJG`G zE+=lZYC!po`0$**r6|k&9?=I%o%-wF+bGKouFAvNXbo}c(fDY{m_3~bF$2$+CKAcz z`LfRLnZLSNiKZK0mgbwmsSxA^xF$!qVt>=(W{p?{%!*n5rE~zx8X468NS+%eS1+Vj z$K_ml-?(_2PEN_D%=~{;@{e~^)gZ!@L->4kM#gx6Y0k^po(7m6L(Dt-EoW=iuNQ!K z*lvHKl`iTGj=FQZ(zNbuz3%%*v<1e*n9S&OfDMAw>Y?<_D=t&?JpcQxDV_<~HH1ih zWEf@+H>d!mht#o5;PnYD+MN&m(U#&sgtHWPu+e$%rw&Q+*hy-+ey2OHE$u{-G{$YnCO7%abJ9Za1q$6h z_+5CNjkN{JY32k5qfA7y=jyg0-#A7k59@YB;rcFw(d!!e(2`G`NWbZyI@2!F`w@dF zH@rljXBu2bWhBooKVs{SdN&o!i_uTBF!Oez2qqOSV`L4&JD=gvTO(U4GkNi>*la;3`UD9ml z!<$7i8JNN#*eVhagOu5FH?=)#Nl{UfboqZx$JNt6FB|{rU~X|G%<%GU72Fy^Xi&porm6^aV`>z`3gsE(9Sx(O3>76@UFVSAFtZEHtzBZ) zW~vEmmD;PSpe0$ysL?q2Fm}6_v+1o{5$xG)(Vv@qrZ^jp*qy8)0d>qKZ<-=}L$@@t zFjn!`U>WFF7R+88k+7qppF=2Lw&%3!u_;OTX9PMpDu#2UP%D%fy$^J`hl2hx(9Noq z`*Fn4(8b!gI?({AO>WRc2j5rB)O2+B%T1;PQ*pL+jbl-+3OVdPO;4xfz*GaRLR?~S z8%qK%&PiD_DVpc;@?Hwf^(-5@dc6rN8RY-!{ zcZiLklw8()-VZ&Cdigogl)E}h5oP{Qg(V=K*hm@ax=DbQ(mKk{_ErI~HbV z7GU#p;Hy~Ab6?wayE3VRGE@`mhxx736DOdbqO(P|{gr+S%8+bo`q;W1^N^d-@JmqI zw7wM-=~s)7U&i^8N!nti7!6*rP7{F~cxu!8qAoff{e$LA*j!aM9irX*$W#afb^Bbj zf{`g4H#0a3B*7JTNCrcTHFCa+_YJM?4g?-mnn{Vk6p#0GBx-8qK+@amdx9@mKo6PD zJ38H83id=a(y49;#c)8)EA3PKc_oMEUiLQP75s{OCN!VupVrL6<`l6#C>MB53` z!Q8>z-s+dyV$pBvwctPW(H@)DoCs*VmhbElyFBy{lu}d;Q@y6gx*B_kqOLJpXUgBQ zZ}>GZXlXN$EEgk^K5XdhqQ&2L=kG~WQh}(kP;qaQSN)uYP2|n2vRZR*Q5F1|&`Y4} zKCet3bx*Hn45e{-V%{g8tT(i^B)AyU?)Yg3DOE`jD-;lhoks9dmx~lrrf?T--GGrJ z2Zz=)2y73Jt3yQLKfZwo_5igsU(_3r_yH)nHyX9lHJE#lgFb&O_M`BE?YVIn!$XK_ zC;U!ULKk4d-MvRV#`qA!arGVmyGejWXf9*omPlWd9Bu}q3NM%KZ7ohbTqK87!Y z4X0M+5$Pi#!cG?_oT-x)`RXCRLbS0#nI(I&^B+uji-dVS8xXt|^2;WLrDggLG{eh7 z$WuZ$`*8~Sux_u??sk--x)gQ?lqG%J?g3uik^>aR!1<)=sWor>;?BTF-u_SYuFlJ2 zJS+Au2mhTIoaVC`8(u5w*dYML@m?yEl~g#o=6T1Hx(tf+J%MEes7g-X5-(lJY(e(a9OA&~PDKqOB5tny(C z@NiV9WaAia@!W|BJxzSMYKIumC!DR={VI+1d%2U+S}fwuVNs7wabskm?aI{Z#LV?- zgACU1>J8trjT#qw5;s3hF-xn;iPYQ5b}C^`R(oBaVvY*+>{*_c9$m6#YSNWEI(JBR z(xSQIe*O=P++X8xC2X{(Hy-?rbMt-tCUu5^wcoSLS7xi1JiVoHAzNrv*gQlSFX8$k zQsv>91os_tjn>PrWP^<5KN1dn)W8&*T3@e%JzT5Qc5@NBX3qMN{6}A8X;54Luv371(8<6rEtDulQ(xRdZCUsXEGd&+%Oig&ve;ccr!kCk< zvS-%eu4)CukJ+7%bA~%SkcuU)W*r>U#{#ZCEU=<{3UB3DjOXS8`TGk9ylS#u^^2Dy zBDDX6fjz7Uipy9Y4#;9$B}V0t7(Aa5VoeX;RKpvq#X3=sthM)lyoi;9l@dF(y`kG6 z1p>2zXN<69a|>OU&sJH&yVejlv0Xth2Jb!DWf=YkE!s#pwSX?4y|b&@2kENE?PzWK ztVB3p-oNvB%i3wkj_`HX8PB{5R*#BkDvH4~;u(LZLx4aRMIB$ik+yJEmWC30m4*p6 zv%kGLLOGC@tugMH^jIy;7YvVwi-dvx2r#k!sic{iKYTQcZ2Fc~BBe6>5;r-lkv5cl z1HJUI#LN?IGDYB}GmMXWP*`RLL$bMecn+;Iv-}B9(aJLvXTu?(%$g*&J)|=8?~b}w z!eUo%zx^P9>*s7(rrhA@LyIEv){bs%-V;u7C6I}7?(6rl!cg`emr3K4r14iVu{d~) zfh%bFDCDmMijUu!)JQ2IiAr&?X(pvve~vv!JuLDH&LL{47u-rbi$vV^bIAFidF<;e z=xZ?dwWW;F`AWc2vd4snxoLLpI&R>($#s(xhd_jfKCA8ZA=7F?Eb5cuSm~Ztz5zGe zLSyot(UOj8q}ZTOq)h4>xSxH}BSl4BUP8p3?^$I6+=ealNVN9$ta{GY;A(}u!;8Bt zX|D`tqcpB0)M7Z<9woZ5@V#cVPEg|N$~1TZy-_%G1Dy<^s&G&AWc!m-g*jbBGVfGX zeplxZe)te^(;yqMe=4YEH)|Ut-h{NOrQskzRJHS1*qxK}f?Lls&xG!o9$;{JfYLWB zGRpMaijxgeVg+JISLPc^<4IY`zdyoAxY<6>iFeV9_VCI(bb7nb@2Hi9S7ugbRz+A5 z`0w1uWag2_s`aMgdA?4`j_}z!4rS)KXdGN|fQwN&23sG-e6Lb4rLfJE6M+p%pBXtZPZKwTi(7(M_Pfel+Oa4<^8a` z8F>iTeS4957B#Szm!jj%04BiFh6n7fe`drb;aaMS6@($)3+x$)v?O2~DrN6RN*H6O zP0Dwbs%ASxx(B=6z1f{Tovkue)eTiZ`1i;U@+M}`7(&1&EmRNpvWFLLWB8Vf0nQXj z+@;WF>T*3Wu#|h(+}%Obxe{6@S39+hrpy08@eA2F8yLc8qyAC5c3lhqF=8zBu6$j< z4VwFo==E_2J&XtWdV#38Qj2@87}Z2ML$r3A+ude5)zOGO=y9s8-OQ_*Z?Suh>8353 z5E!6w$K(oBnhBGoKMubP8oQb5cTcUz)F{-(<0fg$zKKe4@(dDe9y=(_VHdiwvjmc>W^-+*M_>4Mcv4=kX(L&G-1_25Kv9JSbVig`9v9M*iQtXVpix z^_*&uY5G~IE(BAO${Czpilf@GsTBL}=iLaWFfrQV>#WZ^4`AXYw#pJ7wm0|H*L22A zzdlhZ^sj=-&%42)&P^S(bAj7&etB^`jN;i6!(LvAv!}y7X^n!iull)}Lg_4vqp}_C z`%)Ywg|EGw$60~Yu7Nm;r8p87RElY3`V!X#=|{Zn(x+lejdHec6etIRp3T$5{F?sY z`4+BTYbRDItphPiUc&)H6aU4-PWq|Q0v-AEQU`8LlaSQF-ckU;vT z{H^t>>v}XQh_0kNm4+a-u}bvMn&HjxNtW|e)obym3plhlq0u3e8Y*PHtanFg+#al( zd3{er%lWA(HnmzqEAWm|-+@Ims7%Kb(%t0s!2*%5?M)D0kwUm3Fh$tCkuq7j6qvRJ zyQHm*sX?yfq1!e8 zT0idQ-(^@Wc=y2n?t^gB?euA3x6_;UZ2uU zt$FomKFqJrJJL_>G1Uhf(Mp|?y_J`x?|Hl&I+C%h1r8xDkIv)dQmgc7)gFXzAxd#E zm$KtOOZp1%jiLV>E}!#R5Q)W>SZ32QP4WJwCY<4@F~yA3AL=KkNqw$1UE9*@NE^y| zfNzfn+ca|iZwWk7rGb7h>4)t+v^C7z(0}TRPHM?KazM}MZ&FjN{2N&%y27|C2Hk=` z96OKYW)qF7znPZGU!^W$HetfgL^6aSF4}Ami3gTnl^7aim)jap>@8vKkG#bX+4lc_ z#CDFAWSiUQNf%@@3tOw8NVFVd(8mR$gFw=~xZ+Po@K2d3UbED}HxRMG=c^GaD>ho} zZY|0bTi3@k7mH#g2sxB&dzH(cR9Ng_!@Fayt_(Uv*dI{QBi{%h`e1RKZ0%!jKYGB@;eWQ#(-Q2P+vcOHrqlh9yB+oCEH zI?A7cs(6WFBK(l1pyOIEJhm!jeAfNL=F~n>%K!-+S|sUZ`j6IeGNwT1YWCQ{q`aLtTc{ z_Q07#pkGm2Bc#sbFP*#YYv$R~Enmp{V)0V%h$lPo;P-8HjFOIMs{O8nQrk+3hFRsD zXzt6+woA4(HH}!70lE@u+*YpsPcJ)BsRQFHW<9oVeoV2}TTwb2N+{}T!@JteR=V`M zN2|^TIl-m&{Kfn7@<5^s=ERu`giH=G)*KtAJDqN? z_gY@w&ju8&p*BY;2ISB4G~ouql6L|J{PU*^#v5xv_o-*a=@^|1Z8Tax|D?CFhc{(c zIKOnI&34vdr-DJcZQ~~a2x$Nb99YPS{K8hUnh$!mEY;6Cr`#m9Dc$bTz-0|zY^tT* zcUH|JlEE>~!QjX6RphTP5%nu>CoJ9YI)tGS%@16bxoeVuV--TXAny5Cfot!JRD}D? z>X{Kj?0)u@B^eKv{q-S~-^GXqF5u%PIQUi|3kPEP4{{0@W+CXzIP>}zO}1ozG5Ui5AV^kHifqko zBe1c*Bbs7`8*TAq*nIs*NnLvDMr9ibLA=HeT&JF5euiqMhT8a4FL+Q2 z#M|pp&xF9}C6bEl&`^{MDz)DH454D!S}oufxZ(V@EuE(|H?s@(;`9o8D9GSZhund? zg%NcZNw)0rdCj<^(&A8UyT=upGY-Z_xj%A9yNH~kn-6k~%yPkV5|9!93aVogmo*xJ_^=nX`2!)6_V+m_xmzLC}Y8Q~RFXK3C% z%onu}s#9VM9%-IS(f1yT0|GI}dEK8Z#G(B=x+v{_4AJWD_*`zaUyJ5{^%%9pny z)kO0(l!`huM?R4$oDo(*Z!fQHX(5=J^x9!4Uw8ppN3x$Soqe_32ul}lAY*zGIU_Q& z;~*oPuTz>N%I;qLI&1L-VXxrva<(secQEzub=jm5SMzSa)$iz8gQ!KTsx{*LVzL9`X6~bnjvKHqN7@leGE+^i%Rj*ik&RaY9adv$f0A==1}nLT~m?1o`G`BQIz$0Bc1)$4NjtuP1+lW zyf0(^`bSQ2csLpDRJG3QI(Y%vIxRzqO?ix-Nwq2vg@Tj>dmY5KRf0kVK>=gbDg*Dx-FF?LP~k-B!b z%52x>Z)?BcC^jO4Sq=pnvBjn?kGvWT#CjnHq6OJ{JBX3zf4Zl(Ja-Y3qN^KUk3Kr} z2O39G&w?Z@dtbFG-=d}Prp-rzIzFo7WCzR}#<2`k^kaGIGF?v4!4(<9j(QWq_o*^lU= zpT|k_+Y5MT+0ZTEi_mw{braULb zmLv`66H9wGD|A?X-gFKZ*1@~pd(4;Sh0ab6OGB73HKJ5ZxEi!+pmJ-Hf`@U=HXW(3 zXP8X9=b-qsS)AJ2*9-40GWLE0)mGV#H`!FBhgn%i*qR(c$=5%CrRSw%i_q2*paL14 zxrnl5lh!F7rkaRI*jbuhS;U5Aub)AE(#iSU0eCS(lJ5Ibd%IybG-amB zVDji*%Yc*|0J0y{rq(;h&0XE7g0tDc*fY9zuI-kUkwz}B> z*sx3~cY$waYCK}BfL(YsHuLoH&?TICMw}H_*PM10;)(Vp?lkvh?Mfb4E#1bJakFf!W^Hu3r@_L+^}pXdlMnjd%s4x1tGeM&eAk?fiA$!J zXXedpA$}#Jmz-e|dz@2qFS310YUSXw@L!x45HOw;bUILe4M!vhb+8~E@=#8; z#mPC0w2|Kuw__cBW`{{*YP?P!_MzR0w9`0EZr`_K0RsNhrSjwMsDC5W>-1?}f5a{> zJt%_myBdotlHOa_D|;#BpRBCH+7r|eeDDg zg3_DWfo@#;{H=rus^q6t>N9u+Jv%NYnEx85JpiEm6^#ZI3@)~A=8m_z$#4}l<-ap z@B*RgOT}NvQ@|}6GIZNmjl}qgY-A%N-ZYZ`qwQLdh-tR`RZ0_T?a$1avhq|A|2pOz zA2Rexn7@OWG2edFP4?KF%JS(BDO1;6Iw(d7GsJRTxDg>!;9PkW=P5iaoQj)BnMeIY}8lu#6xPYMara zeSn$qUqC>y@9WfZvlyt=i4=IIJ!v$%XG4GGsJ&Ah4y@>~*o8CI@CS3t$ZU>9K3Ed9 zi&W|Yz2E4~3;{XNET3PBWi;4rwJ@8eok8@%@_LA6JQcH={o8Oznda=8_FjsgAB_`> zNsOFKf|Z3*qwK#~N74fc#{aJi{nd#Ao?g!XW&I9A0ZzM%zx4KmUx3v2uzT1K_JFqV z1p_$e&7&O~L>nl9l$j1veoJa)I$r*FEDWML7iA}G|M!;cD7_)q3%X(f zY@pf+G21RY`n$5pkqyVQeb-5Zu}W>PR0X@9q`4wH2SoPcViO2ELnH!A1-vU-24-IF z7#mCZ8-bb&3IEQJW**4un*r`Cx7mK9gc5k@OL8RLc9=`c?mKm@O>7FNC3q--v~xw@ zv)BFPUBjwL1^R3Cih?RUV8G5iX|bax&Zw5I#n~=4C9ngL24|oMGX3|C84oNX=iYKUu-=f z8r-HQHqZ%E@a+Hn_WK=z+6pCYeu#c2BMvskjXrkMDy^^8SDJnk!w)8}_LTT(n4QN~ z9CBNxmwh!|m4JsDO0}?k!{lK%Lo{@ISY}vQHb|fo(EICq5T7J$=80`IKiq+9n;1)0 zK|*3zs7nG(BB#~OIT4RMachfp)rJXyD@aVh>(ko9Eg8qbDf^&|BeZA(Yw{n{EB8D~ z3c_5Yis(K5EvtLN5yvf?VJH77)_cukNaUYhCw1HFn%8Djx?}G1tR=sssK1Umk%4J- z*yws;*_-=CgX9Hay;biY9Jx_0iv>o|;d~bZf6hw+q{I^LQA;Mm`V!r&2l#Qe-<^03 zGn}Jw&aHUaCA>d&$;Qe~7TxrK_BvcP z2&~-g(``kNYD|y*QEPBbEmX6wD~3aAw05;K#tRe`lqk+-^CxEqTjr|f{ZP%QD16`i z&f7YzXuV@RVgE%Eb;~E3e`|2upUU#F=oN%DWF~6=@20}|Yac_oRqd?4zl~zD%+Wg* zXBV(=eP~BNQzq2}@VOXS9^^cTVR=BzZFSDR4ZFf$-`05-Nj0z3>;^=wAYEW3*7G__**>!1 zqqS=EG7>m+__WG~P^tuHH;ePq3uMNsDO1z6(Zwc3tIT3)EO z%gufLBL1mRE7@rC4@kuB&0=Yl7J}uB!(M5FYl?B9Ei9kG?`cGN)3v>eu+<)D-YJOj zg@)xkdcjvSQbTsEXd`+!oMk;t

2Osjp%D(TxIJ*qLfzoaNP0?%l6;a`*~y%yuj7 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 DZ-SHW literal 0 HcmV?d00001 diff --git a/img/police_beian.png b/img/police_beian.png new file mode 100644 index 0000000000000000000000000000000000000000..60190da03c7ffbc39d90b68bb675902eb4f3ca72 GIT binary patch literal 1246 zcmV<41R?v0P)xN#0008qP)t-s0002~ z{NVHGs{jAv-l$jDu6^;>uH?{_=*E1SXbyjkhUUhmm|qwQLT%5w3L42wu0-)dHugs_|AI&?}q2RZ1mrY z{@9P?wt(~LlH|dU!+$>8x`*w}hU(aZ>(ZF)-LmiKqtUK*%7k0{^w9Y8$^ZG#*{_1} z-^c&?!TbzS2(pcoM zPT!+S)*l#ac834}fB*z{_2YB$%Wm-0Yz6~p?aE>4!C>meU+T$RlXzO|z*ptKQ{u8y z{>4)1uu9vRN7ax<@~}kSnMCP=KGTIg*L65K6gb_5HP&S?+Ds|COeWJfBG*13{VWgA z77f$`3C;lngpZjVK9_QZl&Q3l00@z3evSYeju$YA#l45qyoaNigq4tka(aSuc7naS zev*xT#jbn+5PE!idGgqJ*1&kmws>4$c-YK$jfQvb*mabQb*!Ru&BAf}(r;EyZvX*r z|L<+-%5B}YY5&q@=fq~Tqh?-NX8g=#|Kelq!eVY>V*lG<|Gr>(WMI9JUjN!%3;P<;EqT8pGMb;M*74=LL@}ppF-S`LA8KC z=%78+mObN>J=0}9){Z>RcshYtI`^bG;FUQ{06E)jH}--y~Ss3J}vx?EXi3a)krGqUn%o^DAjZ**+(eTKqkdfB;{Zu*F7Q2Jt5XH zAMjot;zl0EJ{`|28qy&e)*2VgClkge6VVJ2zW@=o01&Yb4#5ly#25chy;M>yC%g4mS!M?n@vaze5 zoS2o9jDvh{U0hmBNI^k0FexV?92D))h!g+-0dq-2K~xyiVt@i>HW_I)W(H(n#>##9 z*tXT2ti}j2##xDHFW$e>*PghD5w2BXL&&YHw3O_f`O8(HqLy4+CS7~(@$63K`x%~l zgss4W=51c{9%nsz@jC6(%_@f$3y_$Ne6{!fCm%f?q%p#f@Zpur*~Cd#6uV*(Ze0QcsGKri{E7XSbN07*qo IM6N<$f_veL&j0`b literal 0 HcmV?d00001 diff --git a/img/post.png b/img/post.png new file mode 100644 index 0000000000000000000000000000000000000000..e7d936c1eab7a603a60b8f64ab54a8d41776e0f4 GIT binary patch literal 66165 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%0A)st(+T-ucL(RjCNz0nzq=Efd$Pc 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

hl$}*#(c5!W4~3_A+9f}JTra5CjG19I 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 00000000..859c17c9 --- /dev/null +++ b/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +

\ No newline at end of file diff --git a/js/DynamicLine.js b/js/DynamicLine.js new file mode 100644 index 00000000..4e0029f2 --- /dev/null +++ b/js/DynamicLine.js @@ -0,0 +1 @@ +!function(){var o,s,h,u,n,b,t;"object"==typeof window&&(window.Ribbons=(o=window,s=document.body,h=document.documentElement,u=function(){var t;return 1===arguments.length?Array.isArray(arguments[0])?(t=Math.round(u(0,arguments[0].length-1)),arguments[0][t]):u(0,arguments[0]):2===arguments.length?Math.random()*(arguments[1]-arguments[0])+arguments[0]:0},n=function(t){var i=Math.max(0,o.innerWidth||h.clientWidth||s.clientWidth||0),n=Math.max(0,o.innerHeight||h.clientHeight||s.clientHeight||0);return{width:i,height:n,ratio:i/n,centerx:i/2,centery:n/2,scrollx:Math.max(0,o.pageXOffset||h.scrollLeft||s.scrollLeft||0)-(h.clientLeft||0),scrolly:Math.max(0,o.pageYOffset||h.scrollTop||s.scrollTop||0)-(h.clientTop||0)}},(b=function(t,i){this.x=0,this.y=0,this.set(t,i)}).prototype={constructor:b,set:function(t,i){this.x=t||0,this.y=i||0},copy:function(t){return this.x=t.x||0,this.y=t.y||0,this},multiply:function(t,i){return this.x*=t||1,this.y*=i||1,this},divide:function(t,i){return this.x/=t||1,this.y/=i||1,this},add:function(t,i){return this.x+=t||0,this.y+=i||0,this},subtract:function(t,i){return this.x-=t||0,this.y-=i||0,this},clampX:function(t,i){return this.x=Math.max(t,Math.min(this.x,i)),this},clampY:function(t,i){return this.y=Math.max(t,Math.min(this.y,i)),this},flipX:function(){return this.x*=-1,this},flipY:function(){return this.y*=-1,this}},(t=function(t){this._canvas=null,this._context=null,this._sto=null,this._width=0,this._height=0,this._scroll=0,this._ribbons=[],this._options={colorSaturation:"80%",colorBrightness:"60%",colorAlpha:.65,colorCycleSpeed:6,verticalPosition:"center",horizontalSpeed:150,ribbonCount:5,strokeSize:5,parallaxAmount:-.5,animateSections:!0},this._onDraw=this._onDraw.bind(this),this._onResize=this._onResize.bind(this),this._onScroll=this._onScroll.bind(this),this.setOptions(t),this.init()}).prototype={constructor:t,setOptions:function(t){if("object"==typeof t)for(var i in t)t.hasOwnProperty(i)&&(this._options[i]=t[i])},init:function(){try{this._canvas=document.createElement("canvas"),this._canvas.style.display="block",this._canvas.style.position="fixed",this._canvas.style.margin="0",this._canvas.style.padding="0",this._canvas.style.border="0",this._canvas.style.outline="0",this._canvas.style.left="0",this._canvas.style.top="0",this._canvas.style.width="100%",this._canvas.style.height="100%",this._canvas.style["z-index"]="-1",this._onResize(),this._context=this._canvas.getContext("2d"),this._context.clearRect(0,0,this._width,this._height),this._context.globalAlpha=this._options.colorAlpha,window.addEventListener("resize",this._onResize),window.addEventListener("scroll",this._onScroll),document.body.appendChild(this._canvas)}catch(t){return void console.warn("Canvas Context Error: "+t.toString())}this._onDraw()},addRibbon:function(){for(var t,i,n=5=h)break}else if("left"==n&&(p.subtract(t,i),c.x<=-200))break;r.push({point1:new b(l.x,l.y),point2:new b(c.x,c.y),point3:p,color:_,delay:d,dir:n,alpha:0,phase:0}),l.copy(c),c.copy(p),d+=4,_+=this._options.colorCycleSpeed}this._ribbons.push(r)},_drawRibbonSection:function(t){if(t){if(1<=t.phase&&t.alpha<=0)return!0;t.delay<=0?(t.phase+=.02,t.alpha=+Math.sin(t.phase),t.alpha=t.alpha<=0?0:t.alpha,t.alpha=1<=t.alpha?1:t.alpha,this._options.animateSections&&(i=.1*Math.sin(1+t.phase*Math.PI/2),"right"===t.dir?(t.point1.add(i,0),t.point2.add(i,0),t.point3.add(i,0)):(t.point1.subtract(i,0),t.point2.subtract(i,0),t.point3.subtract(i,0)),t.point1.add(0,i),t.point2.add(0,i),t.point3.add(0,i))):t.delay-=.5;var i=this._options.colorSaturation,n=this._options.colorBrightness,i="hsla("+t.color+", "+i+", "+n+", "+t.alpha+" )";this._context.save(),0!==this._options.parallaxAmount&&this._context.translate(0,this._scroll*this._options.parallaxAmount),this._context.beginPath(),this._context.moveTo(t.point1.x,t.point1.y),this._context.lineTo(t.point2.x,t.point2.y),this._context.lineTo(t.point3.x,t.point3.y),this._context.fillStyle=i,this._context.fill(),0{var t=0<=Fluid.utils.getBackgroundLightness(e)?"code-widget-light":"code-widget-dark",e=e.querySelector(".code-widget-light, .code-widget-dark");e&&(e.classList.remove("code-widget-light","code-widget-dark"),e.classList.add(t))})},200),e),n=(c.REMARK42&&c.REMARK42.changeTheme(i),c.CUSDIS&&c.CUSDIS.setTheme(i),l.querySelector(".utterances-frame"));n&&(r={type:"set-theme",theme:"dark"===i?c.UtterancesThemeDark:c.UtterancesThemeLight},n.contentWindow.postMessage(r,"https://utteranc.es")),(n=l.querySelector("iframe.giscus-frame"))&&(r={setConfig:{theme:"dark"===i?c.GiscusThemeDark:c.GiscusThemeLight}},n.style.cssText+="color-scheme: normal;",n.contentWindow.postMessage({giscus:r},"https://giscus.app"))}var b={dark:"light",light:"dark"};function y(e){return"icon-"+e}function i(){var e=m(u);if(f[e])e=b[e];else{if(null!==e)return;var t=l.querySelector(g);t&&(e=t.getAttribute("data")),t&&f[e]||(e=b[a()])}var t=u,r=e;try{localStorage.setItem(t,r)}catch(e){}return e}o(),Fluid.utils.waitElementLoaded(g,function(){o();var t,e=l.querySelector("#color-toggle-btn");e&&(e.addEventListener("click",function(){o(i())}),(t=l.querySelector(g))&&(e.addEventListener("mouseenter",function(){var e=t.getAttribute("data");t.classList.replace(y(b[e]),y(e))}),e.addEventListener("mouseleave",function(){var e=t.getAttribute("data");t.classList.replace(y(e),y(b[e]))})))}),Fluid.utils.waitElementLoaded("iframe",function(){o()})}(window,document); \ No newline at end of file diff --git a/js/duration.js b/js/duration.js new file mode 100644 index 00000000..7afe80e9 --- /dev/null +++ b/js/duration.js @@ -0,0 +1 @@ +var now=new Date;function createtime(){var n=new Date("03/13/2021 15:00:00");now.setTime(now.getTime()+250),days=(now-n)/1e3/60/60/24,dnum=Math.floor(days),hours=(now-n)/1e3/60/60-24*dnum,hnum=Math.floor(hours),1==String(hnum).length&&(hnum="0"+hnum),minutes=(now-n)/1e3/60-1440*dnum-60*hnum,mnum=Math.floor(minutes),1==String(mnum).length&&(mnum="0"+mnum),seconds=(now-n)/1e3-86400*dnum-3600*hnum-60*mnum,snum=Math.round(seconds),1==String(snum).length&&(snum="0"+snum),document.getElementById("timeDate").innerHTML="本站已安全运行 "+dnum+" 天 ",document.getElementById("times").innerHTML=hnum+" 小时 "+mnum+" 分 "+snum+" 秒"}setInterval("createtime()",250); \ No newline at end of file diff --git a/js/events.js b/js/events.js new file mode 100644 index 00000000..8fab6b4c --- /dev/null +++ b/js/events.js @@ -0,0 +1,15 @@ +HTMLElement.prototype.wrap=function(e){this.parentNode.insertBefore(e,this),this.parentNode.removeChild(this),e.appendChild(this)},Fluid.events={registerNavbarEvent:function(){var e,o=jQuery("#navbar");0!==o.length&&(e=jQuery("#navbar .dropdown-menu"),0e.json()).then((e,t)=>{if(t)throw t;n(e)}).catch(e=>{console.error("Failed to create: ",e),o(e)})}).catch(e=>{console.error("LeanCloud Counter Error: ",e),o(e)})})}function increment(e,n){new Promise(function(t,r){e("post","/batch",{requests:n}).then(e=>{if((e=e.json()).error)throw e.error;t(e)}).catch(e=>{console.error("Failed to save visitor count: ",e),r(e)})})}function buildIncrement(e){return{method:"PUT",path:"/1.1/classes/Counter/"+e,body:{time:{__op:"Increment",amount:1}}}}function validHost(){if(CONFIG.web_analytics.leancloud.ignore_local){var e=window.location.hostname;if("localhost"===e||"127.0.0.1"===e)return!1}return!0}function validUV(){var e="LeanCloud_UV_Flag",t=localStorage.getItem(e);return!(t&&(new Date).getTime()-parseInt(t,10)<=864e5)&&(localStorage.setItem(e,(new Date).getTime().toString()),!0)}function addCount(Counter){var enableIncr=CONFIG.web_analytics.enable&&!Fluid.ctx.dnt&&validHost(),getterArr=[],incrArr=[],pvCtn=document.querySelector("#leancloud-site-pv-container"),pvGetter,uvCtn=(pvCtn&&(pvGetter=getRecord(Counter,"site-pv").then(e=>{enableIncr&&incrArr.push(buildIncrement(e.objectId));var t=document.querySelector("#leancloud-site-pv");t&&(t.innerText=(e.time||0)+(enableIncr?1:0),pvCtn.style.display="inline")}),getterArr.push(pvGetter)),document.querySelector("#leancloud-site-uv-container")),uvGetter,viewCtn=(uvCtn&&(uvGetter=getRecord(Counter,"site-uv").then(e=>{var t=validUV()&&enableIncr,r=(t&&incrArr.push(buildIncrement(e.objectId)),document.querySelector("#leancloud-site-uv"));r&&(r.innerText=(e.time||0)+(t?1:0),uvCtn.style.display="inline")}),getterArr.push(uvGetter)),document.querySelector("#leancloud-page-views-container")),path,target,viewGetter;viewCtn&&(path=eval(CONFIG.web_analytics.leancloud.path||"window.location.pathname"),target=decodeURI(path.replace(/\/*(index.html)?$/,"/")),viewGetter=getRecord(Counter,target).then(e=>{enableIncr&&incrArr.push(buildIncrement(e.objectId));var t=document.querySelector("#leancloud-page-views");t&&(t.innerText=(e.time||0)+(enableIncr?1:0),viewCtn.style.display="inline")}),getterArr.push(viewGetter)),enableIncr&&Promise.all(getterArr).then(()=>{0fetch(n+"/1.1"+t,{method:e,headers:{"X-LC-Id":appId,"X-LC-Key":appKey,"Content-Type":"application/json"},body:JSON.stringify(r)}))}var apiServer=serverUrl||`https://${appId.slice(0,8).toLowerCase()}.api.lncldglobal.com`;apiServer?fetchData(apiServer):fetch("https://app-router.leancloud.cn/2/route?appId="+appId).then(e=>e.json()).then(e=>{e.api_server&&fetchData("https://"+e.api_server)})}(window,document); \ No newline at end of file diff --git a/js/local-search.js b/js/local-search.js new file mode 100644 index 00000000..fcac252b --- /dev/null +++ b/js/local-search.js @@ -0,0 +1 @@ +!function(){var e=jQuery("#modalSearch"),t="#local-search-input",r="#local-search-result";e.on("show.bs.modal",function(){!function(e,t,r){"use strict";var l=jQuery(t),s=jQuery(r);if(0===l.length)throw Error("No element selected by the searchSelector");if(0===s.length)throw Error("No element selected by the resultSelector");-1===s.attr("class").indexOf("list-group-item")&&s.html('
Loading...

Loading...
'),jQuery.ajax({url:e,dataType:"xml",success:function(e){var t=jQuery("entry",e).map(function(){return{title:jQuery("title",this).text(),content:jQuery("content",this).text(),url:jQuery("url",this).text()}}).get();-1===s.html().indexOf("list-group-item")&&s.html(""),l.on("input",function(){var e=l.val(),u="",h=e.trim().toLowerCase().split(/[\s-]+/);return s.html(""),e.trim().length<=0?l.removeClass("invalid").removeClass("valid"):(t.forEach(function(e){var r,l,s=!0,t=(e.title&&""!==e.title.trim()||(e.title="Untitled"),e.title.trim()),n=t.toLowerCase(),i=e.content.trim().replace(/<[^>]+>/g,""),a=i.toLowerCase(),e=e.url,o=-1,c=-1;CONFIG.include_content_in_search&&""===a?s=!1:h.forEach(function(e,t){r=n.indexOf(e),o=a.indexOf(e),r<0&&o<0?s=!1:(o<0&&(o=0),0===t&&(c=o))}),s&&(u+=""+t+"",0<=c&&(e=c+80,(e=0===(t=(t=c-20)<0?0:t)?100:e)>i.length&&(e=i.length),l=i.substring(t,e),h.forEach(function(e){var t=new RegExp(e,"gi");l=l.replace(t,''+e+"")}),u+="

"+l+"...

"))}),-1===u.indexOf("list-group-item")?l.addClass("invalid").removeClass("valid"):(l.addClass("valid").removeClass("invalid"),void s.html(u)))})}})}(CONFIG.search_path||"/local-search.xml",t,r)}),e.on("shown.bs.modal",function(){jQuery("#local-search-input").focus()}),e.on("hidden.bs.modal",function(){!function(e,t){"use strict";if(e=jQuery(e),t=jQuery(t),0===e.length)throw Error("No element selected by the searchSelector");if(0===t.length)throw Error("No element selected by the resultSelector");e.val("").removeClass("invalid").removeClass("valid"),t.html("")}(t,r)})}(); \ No newline at end of file diff --git a/js/plugins.js b/js/plugins.js new file mode 100644 index 00000000..d482983b --- /dev/null +++ b/js/plugins.js @@ -0,0 +1,4 @@ +HTMLElement.prototype.wrap=function(e){this.parentNode.insertBefore(e,this),this.parentNode.removeChild(this),e.appendChild(this)},Fluid.plugins={typing:function(e){var a;"Typed"in window&&((a=new window.Typed("#subtitle",{strings:[" ",e],cursorChar:CONFIG.typing.cursorChar,typeSpeed:CONFIG.typing.typeSpeed,loop:CONFIG.typing.loop})).stop(),(e=document.getElementById("subtitle"))&&(e.innerText=""),jQuery(document).ready(function(){a.start()}))},fancyBox:function(e){CONFIG.image_zoom.enable&&"fancybox"in jQuery&&(jQuery(e||".markdown-body :not(a) > img, .markdown-body > img").each(function(){var e,a,t=jQuery(this),n=t.attr("data-src")||t.attr("src")||"",i=(CONFIG.image_zoom.img_url_replace&&(a=(e=CONFIG.image_zoom.img_url_replace)[0]||"",e=e[1]||"",a&&(n=/^re:/.test(a)?(a=a.replace(/^re:/,""),i=new RegExp(a,"gi"),n.replace(i,e)):n.replace(a,e))),t.wrap(` + `).parent("a"));0!==i.length&&(t.is(".group-image-container img")?i.attr("data-fancybox","group").attr("rel","group"):i.attr("data-fancybox","default").attr("rel","default"),(a=t.attr("title")||t.attr("alt"))&&i.attr("title",a).attr("data-caption",a))}),jQuery.fancybox.defaults.hash=!1,jQuery(".fancybox").fancybox({loop:!0,helpers:{overlay:{locked:!1}}}))},imageCaption:function(e){CONFIG.image_caption.enable&&jQuery(e||`.markdown-body > p > img, .markdown-body > figure > img, + .markdown-body > p > a.fancybox, .markdown-body > figure > a.fancybox`).each(function(){var e=jQuery(this),a=e.next("figcaption");0!==a.length?a.addClass("image-caption"):(a=e.attr("title")||e.attr("alt"))&&e.after(``)})},codeWidget(){var t,n=CONFIG.code_language.enable&&CONFIG.code_language.default,i=CONFIG.copy_btn&&"ClipboardJS"in window;(n||i)&&(t="",t+='
LANG
',jQuery(".markdown-body pre").each(function(){var e,a=jQuery(this);0'),e=e.toUpperCase().replace("NONE",CONFIG.code_language.default)),a.append(t.replace("LANG",e).replace('code-widget">',(e=a[0],(0<=Fluid.utils.getBackgroundLightness(e)?"code-widget-light":"code-widget-dark")+(i?' code-widget copy-btn" data-clipboard-snippet>':' code-widget">')))),i&&new ClipboardJS(".copy-btn",{target:function(e){for(var a=e.parentNode.childNodes,t=0;t友链 - Halcyon Zone +

在下方留言申请加入我的友链,按如下格式提供信息:

  • 博客名:Fluid
  • 简介:Fluid 主题官方博客
  • 链接:https://hexo.fluid-dev.com
  • 图片:https://hexo.fluid-dev.com/img/favicon-pic.png
\ No newline at end of file diff --git a/local-search.xml b/local-search.xml new file mode 100644 index 00000000..0c9545dd --- /dev/null +++ b/local-search.xml @@ -0,0 +1,2355 @@ + + + + + + + 获取Cloudflare Tunnel下用户真实IP + + /p/f09b73d7.html + + Cloudflare Tunnel 获取用户真实 IP

参考资料

问题分析

  1. 部署在内网中,在80端口部署了PHP的服务器一台。
  2. 使用了Cloudflare Tunnel对内网http://127.0.0.1进行了转发,并提供https支持

SSPanel需要拥有https的情况下才可以正常使用,但是使用Cloudflare Tunnel默认的设置的情况下,所有的用户登入请求都会被记录为Tunnel的转发地址(在这种情况下即127.0.0.1)。

在这种情况下,当用户通过Tunnel访问我的网站时,Cloudflare会通过CF-Connecting-IP这个HTTP请求头传递原始访问者的IP地址。因此也就可以通过修改Nginx配置的方法来获取到对应用户的真实IP地址了。

解决方案

先在这里贴上修改了的配置文件和注释

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 server {
listen 80;
listen [::]:80;

root /path/to/site/public;
index index.php;
server_name your.domain.com;

+ # 设置 Cloudflare 的真实 IP 地址
+ set_real_ip_from 127.0.0.1/32; # Cloudflare Tunnel 的 IP 地址
+ real_ip_header CF-Connecting-IP;

location / {
try_files $uri /index.php$is_args$args;
}

location ~ \.php$ {
try_files $fastcgi_script_name =404;
include fastcgi_params;
fastcgi_index index.php;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param DOCUMENT_ROOT $realpath_root;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
+ fastcgi_param REMOTE_ADDR $remote_addr; # 传递真实 IP 地址给 PHP
}
}

对于上面修改的不同配置项的作用如下

  1. set_real_ip_from 127.0.0.1/32;

    • set_real_ip_from指令用于指定哪些IP地址可以设置真实IP地址。
    • 在这种情况下,127.0.0.1/32表示本地地址。这是因为Cloudflare Tunnel将流量转发到您的本地服务器,通常表现为来自127.0.0.1(即本地主机)的请求。
    • 这条指令告诉Nginx,如果请求来自本地主机(127.0.0.1/32),则应该考虑使用另一个HTTP头中的IP地址作为访问者的真实IP地址。
  2. real_ip_header CF-Connecting-IP;

    • real_ip_header指令用于指定包含真实客户端IP地址的HTTP头。
    • CF-Connecting-IP是由Cloudflare设置的一个特殊的HTTP头,它包含了发起请求的原始访问者的IP地址。
    • 通过这个配置,Nginx将使用CF-Connecting-IP头中的值来重写访问者的IP地址,这样PHP应用程序就可以获取到访问者的真实IP,而不是Cloudflare Tunnel的本地地址。
  3. 在PHP FastCGI 配置块中添加的指令:

    • fastcgi_param REMOTE_ADDR $remote_addr;
      • 这一行将Nginx内部变量$remote_addr的值传递给FastCGI进程。由于我们已经使用set_real_ip_fromreal_ip_header配置了Nginx,$remote_addr将包含经过Cloudflare处理的真实客户端IP。
      • 通过将此参数传递给FastCGI(在这种情况下是PHP-FPM),在PHP应用程序中的$_SERVER['REMOTE_ADDR']将包含正确的客户端IP地址。
]]>
+ + + + + 小技巧 + + + + + + + cloudflare + + + +
+ + + + + 虚拟化:初识IOMMU(TODO) + + /p/4416e368.html + + 初识IOMMU

最近在尝试给朋友的小主机安装ZStack作为虚拟化管理平台的时候,遇到了一个需求:通过HDMI直接将Windows虚拟机的画面输出到外界显示器。需要解决这个问题自然而然的就需要使用直通的方法将显卡直通给虚拟机。不过之前直通都是直接找别人的博客一步一步傻瓜式执行下去,对于每个指令发生了什么,以及iommu是如何工作的都不清楚。刚好趁着这个机会了解并记录下自己的学习历程

问题来源

我自己现在有一台基于Proxmox VEAll in one小主机了,这里就叫做主机A,而我朋友的主机则称为主机B。在安装ZStack之前,我原以为直通的过程依旧可以无脑用脚本来实现,但是实际执行过程中却发现在PVE中应该成功的ACS的改动在ZStack中却并没有成功。这便引起我了从ACSIOMMU作用的好奇。

启用IOMMU和ACS

首先,在主机A和主机B的BIOS上都启用IOMMU的功能,可以发现原本的iommu分组都十分混乱,大部分设备杂糅在一起。为了解决这个问题,便有了叫做ACS的技术。

ACS的主要功能

  1. 设备隔离:ACS允许对PCIe设备进行更细粒度的控制,增强了设备间的隔离。这在虚拟化环境中尤为重要,因为它可以帮助确保虚拟机之间的安全隔离,防止一个虚拟机访问另一个虚拟机的PCIe设备。
  2. 控制I/O访问:ACS可以控制PCIe设备的I/O访问,例如控制哪些设备可以发起对其他设备或内存的直接内存访问(DMA)。
  3. 提高安全性:通过对设备间访问的更严格控制,ACS有助于提高系统的整体安全性,尤其是在多租户或需要高安全性的环境中。

通过启用iommu的同时启用acs,就可以将系统中iommugroup分成更细的设备单位,具体修改的操作实现参数可能不尽相同,但是基本上都是先对/etc/default/grub中的GRUB_CMDLINE_LINUX进行修改,添加amd_iommu=onpcie_acs_override=downstream,multifunction即可

查看分组情况

对于分组情况的查看,在PCI passthrough via OVMF - ArchWiki (archlinux.org)可以找到一个脚本来列出当前的IOMMU Groups的情况

1
2
3
4
5
6
7
8
#!/bin/bash
shopt -s nullglob
for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
echo "IOMMU Group ${g##*/}:"
for d in $g/devices/*; do
echo -e "\t$(lspci -nns ${d##*/})"
done;
done;

当我在自己的PVE主机上执行这个脚本之后,可以发现显卡是单独在一个Groups中的

IOMMU分组

但是在ZStack平台上执行以后可以发现核显并不是单独在一个Groups里面的

当时的log没有保存,这里假象一个其他的例子代替,是一个GTX 970显卡的例子,一般来说独显是会有单独的Groups的

1
2
3
4
5
6
7
......
IOMMU Group 13:
06:00.0 VGA compatible controller: NVIDIA Corporation GM204 [GeForce GTX 970] [10de:13c2] (rev a1)
06:00.1 Audio device: NVIDIA Corporation GM204 High Definition Audio Controller [10de:0fbb] (rev a1)
00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
......

具体问题的产生原因还不清楚(找到问题以后会来更新博客),不过就IOMMU的分组情况大概是这样。

IOMMU

对于什么是iommu,找到这样一个简单扼要的概括

大家知道,I/O设备可以直接存取内存,称为DMA(Direct Memory Access);DMA要存取的内存地址称为DMA地址(也可称为BUS address)。在DMA技术刚出现的时候,DMA地址都是物理内存地址,简单直接,但缺点是不灵活,比如要求物理内存必须是连续的一整块而且不能是高位地址等等,也不能充分满足虚拟机的需要。后来dmar就出现了。 dmar意为DMA remapping,是Intel为支持虚拟机而设计的I/O虚拟化技术,I/O设备访问的DMA地址不再是物理内存地址,而要通过DMA remapping硬件进行转译,DMA remapping硬件会把DMA地址翻译成物理内存地址,并检查访问权限等等。负责DMA remapping操作的硬件称为IOMMU。做个类比:大家都知道MMU是支持内存地址虚拟化的硬件,MMU是为CPU服务的;而IOMMU是为I/O设备服务的,是将DMA地址进行虚拟化的硬件。

而在这其中,IOMMU分组则是实现设备直通的关键,每个分组都包含了可以共享一同一个虚拟内存映射的设备集合。如果一个设备独占一个IOMMU分组,直通它是很简单的。但是如果多个设备共享同一个分组,比如显卡和USB接口,那么就无法只直通其中一个设备。

TODO

后续就是找时间尝试研究为什么ACSZStack中没有正常被启用,并将结论补充到这篇博客当中。

]]>
+ + + + + 知识记录 + + + + + + + iommu + + + +
+ + + + + 知识复盘:操作系统的作用 + + /p/e429c37a.html + + 操作系统的作用

该部分博客为自己在学习《程序员的自我修养:链接、装载与库》的时候对于过去零碎知识点的一个整理和复盘,并非照搬原文,其中会加入一些自己的联想与理解,如有错误还请指出。

操作系统在计算机中主要有两个功能:

  • 对硬件资源进行管理,让硬件尽可能高效的解决问题或执行操作

  • 提供抽象的接口,以便于程序对计算机的硬件资源进行调用

CPU的调度

在计算机的使用过程中,需要消耗时间的任务部分大致可以分为两种情况:

  • 消耗CPU算力的计算密集型操作
  • 需要等待设备响应处理的I/O密集型操作

我们知道在计算机中有南桥和北桥两个概念,北桥连同了CPU等高速芯片,而南桥则负责了磁盘、鼠标、键盘等低速设备。因此我们可以抽象出一个结论:计算密集型操作I/O密集型操作 是由不同的设备分别处理的。接下来对于操作系统调度分析则会都以这一前提条件进行分析。

第一阶段:多道程序 Multiprogramming

假设我们现在需要完成一个很复杂的数学问题,且假设完成这个数学问题分为两个步骤:

  1. 在草稿纸上"随意"的打草稿并推演计算过程,最终计算出答案(计算密集型操作)
  2. 将整个推演过程有条理并工整的誊抄在答卷上,便于他人阅读自己的答案(I/O密集型操作)

那么如果我们有很多个这样的题目需要完成。那么最高效的方法自然是分配两个同学A和B。假设同学A的计算能力很强,同学B的书写则十分端正,同时可以看懂同学A的草稿,那么我们便可以让同学A只需要负责计算和打草稿,只要做完了第一题就直接开始写第二题,而同学B则在同学A开始计算第二题的过程中开始誊抄第一题的答案。这样便可以让同学A和同学B的时间都统筹利用起来,以此提升效率。

在计算机中也是同样的道理。在计算机刚刚发展的时候,每次执行一个任务都需要先让CPU计算完后,CPU还要等待诸如打印机等设备输出了结果以后,再进行下一个问题的计算。

为了解决这个问题,人们便想到使用一个监控程序来监管CPU的运算,当监控程序发现在CPU进行完毕某一次运算以后,如果后续还有其他问题需要使用CPU进行计算的话,则让CPU直接进行下一个问题的计算,而不是等待第一个问题的I/O操作进行完毕以后再进行第二个问题的计算。这就是多道程序的雏形

第二阶段:分时系统 Time-Sharing System

但是随着计算机功能的逐步发展,多道程序则体现出了一个弊端:那就是任务的执行需要所有人都依次排队,前面的人如果没有解决他的问题就轮不到下一个人。

假设在银行中有一个人的业务处理需要花费特别特别长的时间,从而导致后面所有人直到银行下班都没完成自己的业务,这无疑是非常令人恼火的一件事情。但是如果这个人将自己的一个任务拆分成多个不同的部分,每完成一个部分就让后面的人先处理下,这样相对而言就能顾及他人的感受,有利于提高处理问题数量的效率。

因此,我们就了分时系统的概念,在分时系统中,程序可以通过在编写的时候主动调用某个“系统调用”来实现通知操作系统我现在这部分的工作已经完成了一部分,如果后面有其他任务需要执行的话可以先执行其他的任务,再来执行我的任务。从而在一定程度上解决了阻塞问题。

第三阶段: 多任务系统 Multi-tasking

但是分时系统在计算机的衍变过程中也展现出了自己的弊端。

依据以下两个分时系统的特点:

  • 是否让出CPU是由程序自身决定的。程序需要主动调用特定的系统调用来通知操作系统它愿意让出CPU。
  • 这种机制的问题是,如果一个程序不主动让出CPU(例如,由于编程错误或恶意行为),那么操作系统不能强制地从该程序中夺回CPU控制权。因此,其他程序可能会被迫等待,导致整个系统的响应性下降。

假设我们遇到一个程序员在程序中忘记调用分时的“系统调用”,还写了一个死循环的错误代码。那么整个操作系统都将会因为这个问题而出现宕机。

由此我们就需要一个更高端的操作系统来解决我们的问题,即现代操作系统的解决方案:多任务系统。

多任务系统的基础是建立在此时操作系统对所有硬件资源进行了直接的接管。而所有的应用程序都以进程(Process)的方式运行在操作系统这个大Boss之下。所有进程的调度都需要受到操作系统的管理,并且每个进程和进程之间就像是一个小房间,他们的地址空间也都是相互隔离且独立的。

在这种情况下,CPU就变成了操作系统大Boss来进行管理的一个资源,而不是和之前分时系统一样由应用自己直接对CPU进行管理了。这样的好处是可以让所有程序都听操作系统这个领导的话,而不是和之前一样我想一直占用CPU就一直占用,如果我不调用接口主动释放CPU你们谁都别想用上CPU。

对于操作系统来说,每个进程就是一个任务,每个任务则又有自己的任务优先级。对于优先级高的任务,操作系统会先进行;对优先级低的任务则后执行。如果一个进程的运行时间超过了某个限制,则会将该程序暂停以分配给其他同时间内也许更需要CPU资源的线程任务。

在此基础上还会牵扯到一些诸如多级反馈队列、上下文切换开销等问题。这里就不做过多的展开。

这里放一个之前写OSTEP课后实验相关的博客链接,便于自己查阅

设备驱动

有关于设备驱动的内容直接概述过于枯燥无味,因此下面这段解释为使用 GPT-4 生成的一个概述,觉得生动有趣就搬上来了

想象一下,你正在玩一个超级复杂的电子游戏,但你只需要按下一个按钮,就能完成一个复杂的动作,比如打怪兽或跳跃。这个按钮就像是操作系统,而那些复杂的动作就是硬件的操作。你不需要知道每一个细节,只需要按下按钮,游戏就会为你完成所有的事情。

操作系统就是这样的“神奇按钮”。它位于硬件之上,为上层的应用程序提供了一个统一的方式来访问硬件。想象一下,如果每次你想在屏幕上画一条线,都需要知道你的电脑使用的是什么显卡、屏幕的大小和分辨率,然后写一大堆复杂的代码。这听起来很麻烦,对吧?但是,有了操作系统,你只需要调用一个简单的函数,比如LineTo(),然后操作系统会为你处理所有的细节。

在操作系统的早期,程序员确实需要直接与硬件交互,这是一件非常繁琐和复杂的事情。但随着时间的发展,操作系统逐渐成熟,它开始为程序员提供了一系列的“抽象”概念,使得程序员可以更加轻松地开发应用程序,而不需要关心硬件的细节。比如,在UNIX系统中,访问硬件设备就像访问普通文件一样简单;在Windows系统中,图形和声音设备被抽象成了特定的对象。

但是,谁来处理这些复杂的硬件操作呢?答案是:硬件驱动程序。它们是操作系统的一部分,专门负责与特定的硬件设备交互。这些驱动程序通常由硬件制造商开发,而操作系统提供了一系列的接口和框架,使得这些驱动程序可以在操作系统上运行。

最后,让我们以读取文件为例。当你想读取一个文件时,你不需要知道这个文件在硬盘上的具体位置。你只需要告诉操作系统你想读取的文件名,然后操作系统会找到这个文件在硬盘上的位置,读取它,并将数据返回给你。这一切都是由文件系统和硬盘驱动程序共同完成的。

总之,操作系统就像是一个超级英雄,它为我们处理了所有复杂的硬件操作,使得我们可以更加轻松地开发和使用计算机程序。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + DNS问题排查思路 + + /p/23c3db21.html + + 参考文章

这篇博客主要是在推特中无意翻到了这篇博客,尝试以翻译的形式做一套笔记,分享的同时加强自己的记忆。

系统背后做的事情

当我们发起一个DNS请求的时候,基本上发生的就是下面两件事

  1. 电脑向一个被标记为resolver的服务器发送一个DNS请求。
  2. resolver服务器首先会检查缓存,并且在必要的时候再向authoritative nameservers发送查询请求。

但是在这两件事情背后,我们有几个问题需要思考

  • 解析服务器(即上面提到的resolver)的缓存中存放了一些什么东西?

  • 在计算机中,在发起一个DNS请求的时候调用的是哪一部分的库?

    举个例子,一个请求有可能是由libc中提供的getaddrinfo发起的,这部分代码或是来自glibc,或是musl,又或者是apple提供的库文件;这个请求也有可能是在浏览器中发起,由浏览器进行处理;当然也有可能是某些特定的自定义实现。

    在不同的阶段和方法进行DNS请求做的事情都会略有不同,他们或多或少会有不一样的配置、缓存以及功能。举个例子来说,直到今年(2023)muslDNS才开始支持TCP询问

  • 解析器和权威域名服务器(即上文中提到的authoritative nameservers)之间是如何进行通话的?

    在这里我们如果能知道在DNS请求期间询问了哪些下游的权威域名服务器,以及他们提供了哪些信息,则很多东西都会非常好理解。

了解系统背后发生的事情

获取更详细的DNS信息

为了让我们可以在获取DNS请求的时候,获取到更多的调试信息,我们可以尝试用dig工具来获取一些信息。一个例子如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ dig @223.5.5.5 whatdontexist.lol                                                ] 8:26 PM

; <<>> DiG 9.18.12-0ubuntu0.22.04.2-Ubuntu <<>> @223.5.5.5 whatdontexist.lol
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 19819
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;whatdontexist.lol. IN A

;; AUTHORITY SECTION:
lol. 3593 IN SOA ns0.centralnic.net. hostmaster.centralnic.net. 1690719195 900 1800 6048000 3600

;; Query time: 0 msec
;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP)
;; WHEN: Sun Jul 30 20:26:45 CST 2023
;; MSG SIZE rcvd: 100

在上面这个示例中,我通过向一个不存在的域名:whatdontexist.lol发起了一个DNS请求。我们可以在这里看到许多有意思的信息,比如我们是对223.5.5.5这个DNS服务器,通过UDP发起的请求等等。

奇妙的调试信息

通过使用dig,我们可以知道很多额外的信息。举个例子,我们可以使用dig +norecurse指令来弄清楚DNS解析服务器目前有没有针对某个特定记录的缓存。对于某个特定的记录,如果不存在缓存,则会返回一个SERVFAIL的状态

举个例子,我们首先可以向223.5.5.5这个阿里的DNS请求www.baidu.comDNS条目(大概率来说应该是缓存了百度的域名解析的)

阿里解析百度域名

我们可以看到上图中获取到的statusNOERROR,也就意味着百度在阿里云的DNS服务器中可以正常返回需要的结果。

现在我们再尝试请求一个不是很常见的域名homestarrunner.com,我们可以发现status变成了SERVFAIL

请求一个不常见的域名

这里的SERVFAIL并不代表不存在对于homestarrunner.com的域名解析,只是在阿里云的服务器中并没有缓存这个域名而已。

不过对于上面这一长串由dig提供的调试信息,如果我们不是经常和它打交道的话看着还是会有点迷惑。比如:

  1. ->>HEADER<<-flags:OPT PSEUDOSECTION:QUESTION SECTION:MSG SIZE rcvd: 59这些都是啥玩意?
  2. 为什么有的地方看起来是新内容但没换行(比如OPT PSEUDOSECTION:QUESTION SECTION:)?
  3. 为什么有的返回报文中MSG SIZE rcvd: 59这里是59,而有的报文又是90?不同的报文之间是有啥不同的字段吗?

总之,从上面的一些问题中,我们可以发现dig的一些输出内容有点像是某些人临时写的一个用于获取这些信息的脚本,而并非有意为了可读性进行一些刻意的设计,为此我们有的时候需要查阅文档来搞懂发生了什么。

一些小工具

  1. 这里有一篇文章是原博客作者介绍了如何使用dig的:How to use dig (jvns.ca)

  2. 还有三个工具可以用于更友好的进行一些简单的调试:

    不过对于这些工具有的时候会缺少一些高级功能,比如在原博客发布的时候dogdoggo都还不支持+norecurse这样的功能。所以有的时候学会dig还是有用的

  3. 通过添加一个+yaml的参数,可以让dig的输出信息更加格式化。不过这样的缺点是返回的信息有点太多了。

小心踩坑

DNS请求中,总是会出现一些奇奇怪怪但是容易不小心就掉进去的陷进。

一些更常见的问题可以翻阅这篇博客:Some ways DNS can break (jvns.ca)

  • 被动缓存:由于DNS会记录不存在的域名,因此假设你在类似cloudflare一类的平台添加自己的DNS解析之前,如果先在自己电脑上访问并被系统缓存了"该域名不存在解析条目"这个结果,即使你后面为这个域名添加了有效的记录,但也要等到之前那条缓存失效了,新的有效结果才能被识别到。

  • 在不同平台上对于getaddrinfo的实现并不相同,比如在今年之前,你是没法通过tcp来在musl平台上发起一个dns请求的。

  • 有的解析服务器并不尊重解析本应该有的TTL,比如原本你设置了一个域名abc.comTTL为一分钟或者两分钟。但是路由器认为大部分网络服务都是稳定的(对于非开发人员来说其实倒也是),有可能就会忽略这一点,而硬给你设置一个比如一两个小时的TTL。结果就会导致本来两分钟就应该生效的修改过了一两个小时都没好

  • Nginx中,如果你按下面的方式配置了一个反向代理

    1
    2
    3
    location / {
    proxy_pass https://some.domain.com;
    }

    那么Nginx只会在第一次启动的时候尝试解析这个域名,之后则再也不会进行解析。如果你在这个过程中修改了some.domain.com域名指向的IP,就很有可能会出现一些不应该出现的问题。

    这个问题实际上也有一些解决方案,不过不是这篇博客的重点

  • ndonts会使得k8s中的DNS请求变慢:Kubernetes pods /etc/resolv.conf ndots:5 option and why it may negatively affect your application performances (pracucci.com)

    由于我自己对k8s目前接触不多,因此这里只是贴了一个链接。等以后有接触以后再回过头来研究研究

DNS上踩坑往往可能是一件不起眼,但是遇到了就挺难排查的问题。也许最好的解决方案还是尽可能的去见识下别人遇到的问题。再放一次作者记录的常见问题:Some ways DNS can break (jvns.ca)

]]>
+ + + + + 知识记录 + + + + + + + DNS + + + +
+ + + + + 网络抓包记录 + + /p/3930e42b.html + + 学习记录

这个博客主要记录了自己尝试通过抓包分析并解决一些问题的心路历程,从结果上来说很可能问题并没有解决,但是尝试解决这个问题的过程中遇到的一些问题以及自己的思考想通过写博客的方式先记录下来,在以后自己知识储备扩充的时候也许就可以回过头来看看解决下。

第一次抓包

遇到的问题

今天在尝试部署zerotierzeronsd私有DNS服务的时候遇到了一个问题:无论是在我之前国内的服务器A上还是香港的服务器B上,zeronsd的部署都是只需要无脑复制粘贴指令就能成功,但是今天尝试在新租赁的国内服务器C上部署的时候则遇到了一个报错:Error Response

不明所以的报错

在翻阅zeronsd源码的时候发现这块逻辑本来应该是对应请求zerotier那边获取到局域网内所有设备的IP以便于创建私有的DNS条目。

zeronsd源码

可以看见这部分错误处理里面并没有Error Response的产生原因,而且同时我在香港的服务器上依旧可以正常使用zeronsd。因此也产生了想尝试通过抓包找到问题所在的想法。

解决过程

通过lsof获取目标IP

既然知道了问题是来自于zeronsd,而且应该是一个和网络Response有关系的问题,那么通过抓包应该是最通用的排查方法。在这里首先通过lsof工具查询zeronsd打开的连接

最开始找到的指令是先通过pidof zeronsd找到进程的pid,然后通过pid来用lsof查询,指令大概是lsof -p $(pidof zeronsd),结果后面翻了下lsof的手册,发现可以直接用-c来找进程,不过pidof以后也感觉会用到,姑且做个记录。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
[root@Aliyun:~]
# lsof -c zeronsd
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
zeronsd 18437 root cwd DIR 254,1 4096 2 /
zeronsd 18437 root rtd DIR 254,1 4096 2 /
zeronsd 18437 root txt REG 254,1 8752136 804251 /usr/bin/zeronsd
zeronsd 18437 root mem REG 254,1 93000 787112 /usr/lib/x86_64-linux-gnu/libresolv-2.31.so
zeronsd 18437 root mem REG 254,1 26952 787106 /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
zeronsd 18437 root mem REG 254,1 51696 787107 /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so
zeronsd 18437 root mem REG 254,1 1901536 786465 /usr/lib/x86_64-linux-gnu/libc-2.31.so
zeronsd 18437 root mem REG 254,1 18688 787097 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
zeronsd 18437 root mem REG 254,1 1321344 787098 /usr/lib/x86_64-linux-gnu/libm-2.31.so
zeronsd 18437 root mem REG 254,1 149520 787110 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
zeronsd 18437 root mem REG 254,1 100736 786450 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
zeronsd 18437 root mem REG 254,1 3076992 802235 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
zeronsd 18437 root mem REG 254,1 597792 802236 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
zeronsd 18437 root mem REG 254,1 177928 786460 /usr/lib/x86_64-linux-gnu/ld-2.31.so
zeronsd 18437 root 0r CHR 1,3 0t0 4 /dev/null
zeronsd 18437 root 1u unix 0x0000000070328a2d 0t0 105666 type=STREAM
zeronsd 18437 root 2u unix 0x0000000070328a2d 0t0 105666 type=STREAM
zeronsd 18437 root 3u a_inode 0,13 0 8321 [eventpoll]
zeronsd 18437 root 4u a_inode 0,13 0 8321 [eventfd]
zeronsd 18437 root 5u a_inode 0,13 0 8321 [eventpoll]
zeronsd 18437 root 6u unix 0x000000008c202115 0t0 105669 type=STREAM
zeronsd 18437 root 7u unix 0x0000000072325ef6 0t0 105670 type=STREAM
zeronsd 18437 root 8u unix 0x000000008c202115 0t0 105669 type=STREAM
zeronsd 18437 root 9u IPv4 104709 0t0 TCP iZf8zgk9dawv2exr28bz0oZ:57136->151.101.109.91:https (SYN_SENT)

可以发现下面有创建一个TCP连接,并且是处于SYN_SENT的状态。同时在我短时间内重复输入lsof的指令(蠢但有效.jpg),发现返回的依旧是SYN_SENT。一般来说SYN握手的速度应该是很快的,这里很长时间内都处于SYN_SENT的状态就明显很不对劲,所以接下来就需要通过抓包来分析。

在我多次尝试了lsof之后,发现即使有的时候能让连接处于ESTABLISHED的状态,但是过了一会以后依旧会被掐断,并且返回Error Response。通过分析不同的lsof建立TCP连接的目标ip,发现服务器总是向151.101.109.91146.75.113.91建立连接,应该是请求的域名有做CDN所以解析到了不同的IP。接下来知道了目标IP,抓包就很容易了。这里采取的是通过tshark在配置较弱的服务器上获取到了数据包以后再导出到本地计算机的Wireshark的方法进行分析。

tshark抓包分析

首先使用下面的指令对所有http请求进行抓取,并将抓包的内容保存在data.cap文件中

1
tshark -d tcp.port==443,http -w data.cap

之后再将这个文件下载到本地电脑使用Wireshark过滤选定目标IP追踪TCP流,可以发现数据流如下图

数据流

可以发现就这一次的数据来说SYN握手的部分是成功了的,TLS的四次握手也能成功建立,但是在发送了一些应用数据之后,云的服务器就开始向远端服务器发送RST报文来请求强制终止连接了。重新抓包以后又发现出现了多次TCP数据包的重传。

对于在TCP连接中,先发送了FIN,然后发送RST的一个可能性的原因如下:

您的流中的FIN和RST数据包并不直接相关。通过发送FIN,表示没有更多要发送的数据。它仍然可以从连接的另一端接收更多数据。然而,当有更多数据到达时,发送RST来表示应用程序将不再从套接字读取任何数据。

如果一个应用程序想要干净地关闭TCP连接而不引发任何RST数据包,则必须首先使用shutdown系统调用关闭写入套接字,同时保持读取套接字处于打开状态。在关闭写入套接字之后,它仍然需要读取所有对方要发送的数据,然后才能完全关闭套接字。

但是zeronsd对于这次连接的重置是返回了Error的,所以基本上可以判断并不是zeronsd本身发送的rst阻断连接。

在这里为了让后续抓包更容易复现,首先对于TLS建立握手的第一个数据包,我们可以直接查询到域名

检查TLS握手的域名

之后我就尝试通过curl -vL my.zerotier.com的方法来通过抓取curl包分析问题。为了区分成功和失败的区别,我在这里也使用了curl -vL www.baidu.com作为对照组。

百度请求

返回的抓包内容大致如下:

使用curl请求百度

可以发现整个连接没有大问题,只是在连接结束以后百度那边发送了一个rst包给我们,但是tcp的四次挥手是正常完成了的。

Zerotier请求

使用curl请求zerotier

可以发现在想要结束连接的时候并没有正常挥手,在客户端这边接收到服务器那边的FIN之前就开始给服务器发送RST报文尝试断开连接

总述

这次抓包本身没有获取到啥决定性的信息可以确定问题产生的原因,因此目前自己也只能借由Zerotier和百度请求的对比,怀疑是因为Zerotier是国外网站,被服务商阻断了(但是在FIN之后再阻断也很奇怪,虽然会在FIN之后发送RST报文,但是curl还是可以读取到my.zerotier.com的网页信息),暂时对进一步的排查没有头绪。

第二次遇到问题

我尝试在同一台服务器上部署一个VOIP服务器。也是一样使用别的服务器的时候一点问题都没有,但是在这台国内的服务器上就遇到问题了。这次遇到问题就想尽可能的搞懂原因,因此做了以下实验

分情况尝试连接

  • 实验设备:一台香港服务器(对照组),一台阿里云国内服务器(样本组),以及自己的Windows设备

  • 实验情景:在香港和国内服务器上都部署Mumble的服务器(一个VOIP程序),然后使用Windows对这两台服务器进行连接,其中Mumble连接采取了TLS加密的方式,加密证书均为自签。

  • 实验步骤:

    1. 使用IP直连香港服务器上在端口64738部署的murmurMumble服务端的别称)
    2. 使用域名voice1.abc.com连接香港服务器在端口64738部署的murmur
    3. 使用IP直连国内服务器上在端口64738部署的murmur
    4. 使用域名voice2.abc.com连接国内服务器在端口64738部署的murmur
  • 实验期望:四种不同的方式连接murmur都能成功,且不会有明显区别

  • 实验结果:方法1-3都可以正常访问,但是方法4连接被服务器阻断

抓包分析问题

在对以上四种情况进行抓包以后,获取到的Wireshark图像大致如下

  1. 香港服务器使用域名连接

    香港 - 域名连接

  2. 香港服务器使用IP直连

    香港 - IP直连

  3. 国内服务器使用IP直连

    国内 - IP直连

  4. 国内服务器使用域名连接

    国内 - 域名连接

到这里基本上很明显可以发现只有在国内服务器使用域名连接的时候,服务器那边会在进行TLS握手的时候直接进行阻断,让你无法成功建立TLS连接

总述

这次抓包也没获得啥特别有用的信息。不过由于这个问题是在用阿里云的时候才遇到,之前用同样在国内的腾讯云没有遇到,则初步怀疑是阿里云对任意端口(非443)现在都做了备案检测,只要是没备案的域名/网站,无论是TLS还是明文,只要检测到你用了域名就禁封。相比之下腾讯那边就要宽松一些,至少murmur在腾讯云上是可以正常使用域名进行连接通讯的。

]]>
+ + + + + 小技巧 + + + + + + + Wireshark + + + +
+ + + + + 基础算法(一) + + /p/83fa91fc.html + + 基础算法(一)

快速排序

快排

题目链接:785. 快速排序 - AcWing题库

快排的主要思想是基于分治

找到分界点

对于一整串数组,首先找到一个值作为分界点。分界点的取值有三种取值方法:

  • 取区间的左边界
  • 取区间的中间位置的值
  • 随机取一个位置

调整区间

让分界点(设为x)前面的区间部分全都是小于等于x的值,数组后面的部分则都是大于等于x的部分。

递归处理左右两段

再对区间的左和右分别进行排序,只要两侧都成功排序那么整个区间就完成了排序。


该问题在处理的过程中主要的操作就是调整区间。并且最后的效果是让区间处于了两种互斥的不同状态。因此可以用双指针的做法,同时从前和末端向中间进行扫描,当他们一方扫描到需要进行交换的异端分子的时候,就等待另一端也扫描出同样的异端分子。当双方都扫描到对方的异端分子的时候,只需要将这两个异端分子同时交换,当两个指针相遇的时候,也就是处理好了所有异端分子的时候。

模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void quick_sort(int q[], int l, int r) {
if (l >= r)
return;
int x = q[(l + r) / 2], i = l - 1, j = r + 1;
while (i < j) {
do
i++;
while (q[i] < x);
do
j--;
while (q[j] > x);
if (i < j)
swap(q[i], q[j]);
}
quick_sort(q, l, j), quick_sort(q, j + 1, r);
}

第k个数

题目链接:786. 第k个数 - AcWing题库

找到分界点、选取区间

分界点的选取和快排相同。不同的是由于我们这里只需要第k小的数,因此在此时对划分出来的区间长度进行判断。如果k的大小小于左区间长度l,那么说明k在左区间,继续从左区间寻找第k小的数。如果k的大小大于l,说明k在右区间,在右区间寻找第(k - l)小的数。


代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int k_sort(int l, int r, int k) {
if (l >= r)
return q[l];
int x = q[(l + r) >> 1], i = l - 1, j = r + 1;
while (i < j) {
do
i++;
while (q[i] < x);
do
j--;
while (q[j] > x);
if (i < j)
swap(q[i], q[j]);
}

int sl = j - l + 1;
if (k <= sl)
return k_sort(l, j, k);
else
return k_sort(j + 1, r, k - sl);
}

归并排序

题目链接:787. 归并排序 - AcWing题库

  1. 确定分界点:mid = (l + r) / 2
  2. 分别递归排序左区间和右区间
  3. 将两个数组合并

双指针合并

归并排序的主要思路就是将原本一个大数组,使用分治的思想,从单个数字的小数组进行不断的归并,最后获得的就是一个有序的新数组。因此主要的操作也就是在合并的这个操作上。

我们需要合并的数组有两个,因此这部分只需要用两个数组分别指向这两个数组的开头。然后再创建一个临时数组用于存放归并的结果。归并的过程中只需要每次都将两个指针中最小的那个输入加入临时数组中,然后将存入的指针后移,直到两个数组中其中一个被归并完毕,再将另外一个数组后面所有的结果合入答案的临时数组,最后将临时数组的结果写入原数组中即可。


模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void merge_sort(int q[], int l, int r) {
if (l >= r)
return;
// 将区间分成左右两边,归并合并
int mid = (l + r) >> 1;
merge_sort(q, l, mid), merge_sort(q, mid + 1, r);
int merged = 0, i = l, j = mid + 1;
// 使用一个tmp的临时数组来存储归并后的结果
while (i <= mid && j <= r) {
if (q[i] <= q[j]) {
tmp[merged++] = q[i++];
} else {
tmp[merged++] = q[j++];
}
}
// 将多余结尾的部分插入tmp当中
while (i <= mid) {
tmp[merged++] = q[i++];
}
while (j <= r) {
tmp[merged++] = q[j++];
}
// 将tmp合并好的数组返回输入给q[]中
for (i = l, j = 0; i <= r; i++, j++) {
q[i] = tmp[j];
}
}

求逆序对的数量

题目链接:788. 逆序对的数量 - AcWing题库

逆序对:5 2 2 1 4,只要前面一个数比后面一个数字大,即为一个逆序对,因此有[5, 2], [5, 2], [2, 1], [5, 1], [5, 4]。这五个逆序对

首先,这个问题可以在对一个区间对半切割以后分为三种情况

区间分类

  • 在左区间中存在两个数字是逆序对
  • 在右区间中存在两个数字是逆序对
  • 在中间的两个黄色中,左区间存在一个数字是右区间的逆序对

其次,在这里引入归并排序的思想。在归并排序中,对于整个区间的排序本质上是对于最小区间(两个数字)之间的大小比较和扶正,最后扩展为整个区间的大小比较和扶正(分治)。带入到这个问题中,其实就是首先视 第三种情况 为最小的情况,然后最后的所有结果其实都是第三种情况的总和,所谓的第一种情况和第二种情况将会在最小区间的过程中被直接统计进入结果当中,也就是说我们只需要求出所有第三种情况逆序对的数量再加起来就是最后答案。

对于左右区间逆序对数量的判断

逆序对的数量计算

目前我们只考虑黄色的情况,因此对于一个区间,我们可以分成pq两个部分来考虑。假设在pq上有符合归并排序的两个指针i和j,且当前的情况符合了逆序对的p[i] > q[j]的定义。此时我们可以很容易就知道从i到mid这整个区间的数字都是大于q[j]的,而这个区间内数字的数量为mid - i + 1。通过这个规律,我们就可以知道如果我们想要统计所有的黄色情况中逆序对的数量,我们只需要将所有符合p[i] > q[j]情况的mid - i + 1数量加起来,就是最后答案。


代码实现:

关于计算逆序对的数量问题,假设总共有n个数据,由于每两个数据是一组,从nn-1可以为一组的情况下来考虑,最后总共可以有(n(n - 1))/2大小的答案,如果数据集到达了类似100000量级的时候,最后答案会超过int的范围,因此有可能需要使用long long

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const int N = 100010;
int tmp[N], q[N], n;

long long count_pair(int l, int r) {
if (l >= r)
return 0;
int mid = (l + r) >> 1;
// 将左区间和右区间分治的结果加起来
long long res = merge_sort(l, mid) + merge_sort(mid + 1, r);
int merged = 0, i = l, j = mid + 1;
while (i <= mid && j <= r) {
if (q[i] <= q[j]) {
// 不符合逆序对,直接归并
tmp[merged++] = q[i++];
} else {
// 符合逆序对的定义,归并的同时统计结果数量
tmp[merged++] = q[j++];
res += mid - i + 1;
}
}
// 将归并以后长的部分合并
while (i <= mid) {
tmp[merged++] = q[i++];
}
while (j <= r) {
tmp[merged++] = q[j++];
}
// 将排序以后的数组恢复到q[]内
for (i = l, j = 0; i <= r; i++, j++) {
q[i] = tmp[j];
}
return res;
}

二分

二分算法的本质为在一个区间中,存在一个位置使得区间的性质发生了变化,进而来寻找这个变化的点。

二分示意图

以上面这个图为例,对于红色区间和绿色区间,假设他们有不同的性质,且一个以A作为分界点,一个以B作为分界点。那么在使用二分的时候就有两种考虑

二分的分类讨论

在分类之前,首先对于所有的二分情况都有一个check()函数,用于判断某个点是否符合某个状态。在这里我们假设为某个点是否符合某个颜色(红/绿)区间的范围内

红色区间

区间左边界右移

如果我们需要使用二分法来取得A点的位置,那么假设我们先设了中点mid=(l + r)/2,那么就有两种情况。第一种情况是mid处于红色范围内,那么我们便很容易可以知道点A一定在midr之间

分类一

此时我们只需要有新的l = mid,然后从lr中再次进行二分,直到lr不为l < r的关系即可

区间右边界左移

和上图相反,如果我们是mid处于了绿色范围中,那么我们首先可以知道的是,mid这个点自身是不符合红色区间的范围的。因此我们也只需要有新的r = mid - 1即可。


模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
int bsearch_left(int l, int r) {
while (l < r) {
// 由于r是以mid - 1来进行更新移动,因此如果没有+ 1的话将会出现死循环
int mid = (l + r + 1) >> 1;
if (check(mid)) {
l = mid;
} else {
r = mid - 1;
}
}
return l;
}

绿色区间

绿色区间和红色区间主要思路完全相同,只有区间在移动边界的时候条件不同。当需要右移区间的时候,有l = mid + 1,而区间如果要左移,只需要r = mid即可。因为这里这里不存在mid当区间长度为2的时候,如果右移区间会死循环的问题,因此mid直接取(l + r) >> 1即可。


模板实现:

1
2
3
4
5
6
7
8
9
10
11
int binary_search(int l, int r) {
while (l < r) {
int mid = (l + r) >> 1;
if (check(mid)) {
r = mid;
} else {
l = mid + 1;
}
}
return l;
}

数的范围

题目链接:789. 数的范围 - AcWing题库

首先对于二分的题目,首先找出区分***红色区间***和***绿色区间*check()函数。在这个题目中,主要目的是找到针对某个数字target,求出在数组中target最小的区间边界和最大的区间边界。因此可以通过大于等于target小于等于target**来写出两个二分的函数,分别用于寻找左边界和右边界的位置


代码实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// 获取区间左边界
int bsearch_left(int l, int r, int value) {
while (l < r) {
int mid = (l + r) >> 1;
if (numbers[mid] >= value) {
r = mid;
} else {
l = mid + 1;
}
}
return l;
}

// 获取区间右边界
int bsearch_right(int l, int r, int value) {
while (l < r) {
int mid = (l + r + 1) >> 1;
if (numbers[mid] <= value) {
l = mid;
} else {
r = mid - 1;
}
}
return l;
}

高精度问题

高精度加法

题目链接:791. 高精度加法 - AcWing题库

高精度加法本质就是以字符串将数字读入以后,代码模拟手动计算十进制的过程,大于十就进一位。


模板实现:

这里一定要注意A[i]或者B[i]是否为数字,如果是字符的话还需要进行- '0'来让结果变成数字

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<int> add(const vector<int> &A, const vector<int> &B) {
vector<int> C;
int t = 0; // 是否进位
for (int i = 0; i < A.size() || i < B.size(); i++) {
if (i < A.size())
t += A[i]; // 记得确保这里加入的是数字,而不是字符
if (i < B.size())
t += B[i];
C.push_back(t % 10);
t /= 10;
}
if (t)
C.push_back(1);
return C;
}

高精度减法

题目链接:792. 高精度减法 - AcWing题库

高精度减法在实现之前,首先要确定被减项比减去的值要大,如果小的话则要提前分类讨论输出一个负号。


判断大小的一个简单实现:

1
2
3
4
5
6
7
8
9
10
11
bool operator>(const vector<int> &rhs, const vector<int> &lhs) {
// 如果是"987",读入的则是"789"。所以只需要从后向前逐步判断
if (rhs.size() != lhs.size())
return rhs.size() > lhs.size();
for (int i = rhs.size() - 1; i >= 0; i--) {
if (rhs[i] != lhs[i]) {
return rhs[i] > lhs[i];
}
}
return false;
}

对于减法的模拟流程,和加法主要的不同就是借位的操作。借位主要体现在计算第i位的A[i]B[i]的运算的时候,如果有A[i] - B[i]结果是负数的话,那么A[i]就需要向A[i + 1]进行借位。这个时候我们只需要单独使用一个变量t,如果当前运算结果为负数需要借位了则让t1,并且在每次运算前让A[i]减去t来实现借位的操作。

同时在执行完了减法的逻辑之后,由于减法和加法不同,可能会出现"0001"这种数字,我们还需要将所有除了最后一位(因为答案可能为"0")的所有0给去掉。因为通过vector存储的数字是倒序,也就是说"0001"在数组里面是[1, 0, 0, 0]。因此我们只需要每次都把答案的末尾给剔除即可。

模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
vector<int> sub(const vector<int> &A, const vector<int> &B) {
// 执行函数前需要先确保传入的A比B大
vector<int> ans;
// 减法的流程
for (int i = 0, t = 0; i < A.size(); i++) {
// 判断之前是否进行了借位操作,然后将A[i]的值给t
t = A[i] - t;
if (i < B.size())
// 使用借位以后的A[i]减去B[i]
t -= B[i];
// (t + 10) % 10 让答案处于0-9绝对值的状态
ans.push_back((t + 10) % 10);
// 如果相减以后的数字是负数代表需要在下一次操作进行借位
if (t < 0) {
t = 1;
} else {
t = 0;
}
}
// 去掉多余的0
while (ans.size() > 1 && ans.back() == 0)
ans.pop_back();
return ans;
}

高精度乘法

题目链接:793. 高精度乘法 - AcWing题库

高精度乘法的主要思路和高精度加法差不多,这类题目通常为一个大整数乘以一个小整数。对于这种情况下的乘法,我们只需要先将大整数和之前一样序列化成一个vector<int>的变量,然后和加法一样让容器每一位都和小整数相乘,大于10的部分留给下一位用于进位即可。


模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
vector<int> mul(const vector<int> &A, int b) {
// 如果为0的话,最后答案可能会为"00000"这种需要删除多余字符的vector
if (b == 0) {
return {0};
}
vector<int> ans;
for (int i = 0, t = 0; i < A.size() || t; i++) {
if (i < A.size())
t += A[i] * b;
ans.push_back(t % 10);
t /= 10;
}
return ans;
}

高精度除法

题目链接:794. 高精度除法 - AcWing题库

高精度除法的题目一般形式为一个大数除以一个小数。此时假设大数是123456789,小数是11。这种情况下按照正常计算逻辑大致如下:

除法

由于在加减乘法中,我们都是将数字以[9, 8, 7, 6, 5, 4, 3, 2, 1]的顺序存储的,因此我们在计算除法的时候需要从A[A.size() - 1]的位置开始正常除法的计算逻辑,直到A[0]。其中在每次除的过程中,假设经过上次运算(默认的r = 0)的rr',那么在下一次计算的时候用于计算的余数则是r = r' + A[i],然后只需要将除数放入ans的数组中,然后余数继续留给下一次计算即可。


模板实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vector<int> div(const vector<int> &A, int diver, int &reminder) {
vector<int> ans;
reminder = 0;
for (int i = A.size() - 1; i >= 0; i--) {
reminder = reminder * 10 + A[i];
ans.push_back(reminder / diver);
reminder = reminder % diver;
}
// 由于除法是正常顺序进行计算,因此需要将答案反转以后去掉前导0
reverse(ans.begin(), ans.end());
while (ans.size() > 1 && ans.back() == 0) {
ans.pop_back();
}
return ans;
}
]]>
+ + + + + 知识记录 + + + + + + + 算法 + + + +
+ + + + + 使用clink优化cmd + + /p/82bd449c.html + + 参考链接

预先准备

苦于powershell每次都要一秒多的启动速度,偶然这两天发现了clink这个用于提升cmd体验的工具,尝试了下发现经过简单的配置以后可以替代平时绝大部分ps的需求。因此在这里记录一下基本配置流程。

clinkclink-flex-prompt都可以使用scoop在Windows中完成安装。其中clink的大致效果就是在启动cmd的时候进行注入,来实现一些额外功能的扩展。clink-flex-prompt提供的功能则是类似oh-my-zshprompt自定义,让交互界面不至于太苍白

1
scoop install clink clink-flex-prompt

这两个组件都是在scoop默认的main仓库就有,不需要添加额外的bucket就能直接安装。

在使用scoop安装了clink之后,还需要使用

1
clink autorun install

指令来实现每次启动cmd之前都自动启用clink,也可以使用clink inject来在当前的cmd当中暂时体验一下clink的效果

依据Clink官方文档中的提及,原本是会有一个Use enhanced default settings的选项来默认实现一些自动填充或快捷键的功能。但在使用scoop安装clink的情况下,至少可以发现自动显示suggestions补全的功能是没有被配置好的。

自动补全

对于autosuggest的功能,只需要执行下面的指令就可以实现

1
clink set autosuggest.enable true

创建.inputrc文件

类似zsh有一个.zshrc,对于clink来说也有一个.inputrc的文件用于初始化clink的配置文件。

使用CMD输入下面的指令来在Windows的用户目录创建inputrc

1
notepad %userprofile%\.inputrc

创建好了以后可以在其中粘贴以下内容来实现一些基本的功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Some common Readline config settings.

set colored-stats on # Turn on completion colors.
set colored-completion-prefix on # Color the typed completion prefix.

# Some config settings that only work in Clink.

$if clink
set search-ignore-case on # Case insensitive history searches.
set completion-auto-query-items on # Prompt before showing completions if they'll exceed half the screen.
$endif

# Add your keybindings here...

对于具体inputrc的配置写法可以看这里:Init File

使用scoop安装了flex-prompt以后的使用方式也很简单。只需要在cmd里面执行flexprompt configure以后,就可以像p10k那样来自定义一个自己需要的,较为美观的终端提示了。这一块都是有可视化交互的,就不做过多的赘述。

实现Linux中的一些基础指令

平时写代码的时候因为也主要是用Linux系统,对lsrm这种指令已经敲出肌肉记忆了。Powershell里面对这些指令做了兼容,因此用的时候没有什么额外的感觉,但是切换到cmd的时候就会发现这些指令都不一样了,dirdel一类的指令用的很不顺手。这个时候就有两种解决方法。一种方法算是曲线救国,通过调用git-bash里面提供的工具来实现类似原生Linux的指令,这也是比较推荐的一种方式。

配置Git可执行文件的目录

Windows中安装好了Git之后,往往都会有一个git-bash,而我们则可以通过git-bash来实现一些本来在Linux才能执行的指令。而之所以能达到这种效果,是因为Git在安装好了以后在安装目录下有一个/usr/bin的文件夹,里面已经预先放好了可以使用的类似Linux中的一些基本指令,诸如lscat这种常用工具都已经有了。因此我们只需要在系统的环境变量中,将<Git的安装路径>\usr\bin添加到PATH中即可。

比如我是使用scoop安装了git,因此我的git安装路径如下:

1
C:\Users\Halc\scoop\apps\git\current\usr\bin

然后我就只需要在环境变量中把这个路径添加到PATH中,我就可以使用我需要的基础工具了:

修改环境变量

使用cmd脚本预先配置好alias

还有一种方式是创建alias,以替代原生cmd的一些指令。这种方法是我最先使用的方法,后面发现了git-bash中的工具是需要额外配置环境变量以后就没有使用这种方法了。

Windows上创建alias的方法是使用doskey来执行创建,clink则支持在启动的时候自动执行一个cmd脚本,来实现doskey的读入。为此clink默认会从以下路径来寻找clink_start.cmd文件,用以初始化cmd控制台

  • Windows XP: C:\Documents and Settings\<username>\Local Settings\Application Data\clink
  • Windows Vista以及更高的版本:C:\Users\<username>\AppData\Local\clink

如果需要修改clink_start.cmd的位置,可以参考这部分文档:File Locations

在这里我的操作系统目前是Windows 10,因此我只需要在C:\Users\<username>\AppData\Local\clink目录下创建clink_start.cmd文件,并写入以下内容

1
2
3
4
5
6
@echo off
doskey code=code-insiders $1
doskey rm=del
doskey cp=copy
doskey mv=move
doskey of=explorer.exe .

然后保存以后,就会在下一次启动cmd之前执行这些doskey指令,来实现alias的效果了。

使用cmd作为Windows Terminal的默认应用

最后的最后,只需要在Windows Terminal里面设置cmd为默认的应用,就可以实现每次启动wt的时候,都是秒开cmd的效果了,再也不用每次都等powershell启动才能输入指令了。

修改Windows Terminal默认配置文件]]>
+ + + + + 安装引导 + + + + + + + Windows + + cmd + + + +
+ + + + + CS144-Lab6 计算机网络:路由转发 + + /p/195b5fa9.html + + 路由转发

这个实验就是最后一个需要写代码的实验了。主要需要解决的问题是一个IP数据包传入之后,如何通过已有的路由表确定下一跳的IP地址

这个实验中主要的问题点就是CIDR的匹配。解决这个问题,我们只需要先将CIDR转为子网掩码,也就是以0为基数,左移(32 - 前缀)位,最后得到的也是子网掩码的值。但是这里有一个问题就是,当mask是uint32_t的时候,如果前缀的长度为0,那么子网掩码会变成255.255.255.255,但是实际上应该是0,因此我们需要对前缀是否为0进行判断。

在判断完毕之后,只需要将网关的IP地址和子网掩码按位与运算,然后将目标IP地址也和子网掩码按位与运算,如果最后的结果相同,那么就说明子网匹配

1
2
3
4
5
6
7
8
9
10
11
auto path = _route_table.end();
const auto &dst_ip = dgram.header().dst;
for (auto entry = _route_table.begin(); entry != _route_table.end(); entry++) {
// CIDR的子网位数是多少,相当于就是在0的基础上补多少个1,但是当prefix_length == 0的时候,
// 由于位运算的特性,子网掩码会全部变成1,也就相当于是/32的情况。因此当检测到子网掩码是0的时候要直接跳过
const uint32_t &mask = entry->prefix_length ? (~0U) << (32 - entry->prefix_length) : 0;
const auto network_address = entry->route_prefix & mask;
if ((dst_ip & mask) == network_address) {
path = entry;
}
}

如果没有匹配到对应的路由规则,或者这个数据包已经经过了太多次转发都没有找到目的地,那么就将这个数据包丢弃掉。

1
2
3
4
// 检查是否存在对应的路由规则,或者TTL可否生存,如果不符合则丢弃
if (path == _route_table.end() || dgram.header().ttl-- <= 1) {
return;
}

如果没有丢弃的话,那么就只需要按照正确的接口将数据包发送出去就行,如果没有下一跳的IP地址,说明数据包已经到达了对应的目的地,只需要直接发送给目标IP即可

1
2
3
4
5
6
7
// 将数据包发送给正确的接口
AsyncNetworkInterface &interface = _interfaces[path->interface_num];
if (path->next_hop.has_value()) {
interface.send_datagram(dgram, path->next_hop.value());
} else {
interface.send_datagram(dgram, Address::from_ipv4_numeric(dgram.header().dst));
}

终于也是写完了Lab0-6的所有博客总结😭,Lab7的部分不需要写代码,只需要直接运行程序聊天就行,就不写博客总结了

]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + CS144-Lab5 计算机网络:Network Interface的功能 + + /p/db490294.html + + Network Interface

在通过TCP协议将数据包进行封装准备好以后,就需要“快递公司”来对这些数据包进行分发了。这个过程可以划分为两个部分,一个是数据包在中转转发的过程中需要经过的“中转”设备有哪些,其次就是如何选择“中转”的线路。

在网络接口的部分,主要实现的逻辑是作为发送的某一个节点,在知道了下一个中转站的IP地址以后,如何将数据包进行交付。

需要实现的逻辑

首先对目前的知识进行一个梳理。首先在前面四个Lab里面,主要完成的是TCP数据包从一串简单的字符串,到最后封装成一个完整的,可以用于建立连接沟通的TCP数据包。TCP数据包本身并不关心数据包是如何从源IP到目标IP的,这一部分的主要实现是由网络层的IP路由和数据链路层进行沟通。

在数据链路层中,我们假设已经通过网络层的路由知道了下一条的IP地址,但是要知道一个网口今天可以是192.168.1.1,明天就可以是10.0.0.1,因此我们只知道IP地址是不足以让我们从硬件层面将数据包进行中转发送的,我们还需要针对每一个特定网口本身的硬件地址,也就是MAC地址,来硬件和硬件之间可以正确的发送数据。

由于硬件地址和IP地址的映射关系有可能是动态的,而每次发送数据都向所有设备广播询问一次MAC和IP的映射关系的话在交流频繁的网络情况下资源利用率十分低下,因此我们也需要在中转设备中动态维护一个缓存用的映射表,同时为这个映射表中每一个条目设定对应的TTL来保证数据的实时性,在超过一定时间以后就删除该缓存。

1
2
3
4
5
6
7
8
9
10
11
12
//! 构造Arp条目
struct ArpEntry {
uint32_t raw_ip_addr;
EthernetAddress eth_addr;
bool operator<(const ArpEntry &rhs) const { return raw_ip_addr < rhs.raw_ip_addr; }
};

//! 记录最大的ttl时间
const size_t arp_max_ttl = 30000;

//! 用于记录arp表
std::map<ArpEntry, size_t> _arp_table{};

而获取IP和MAC地址对应关系的这个步骤则是由ARP协议实现,在硬件自己不知道要发送的下一个网口的MAC地址的时候,他就会给所有的网口广播ARP,正确的设备识别到了这个ARP是发送给自己的以后就返回自己的MAC地址,如果不是发送给自己的则丢弃不处理。同时和TCP中的超时重传一样,ARP探针自己也有可能会因为硬件链路的问题而导致对方没有收到自己的报文,所以也需要有一个超时重传的逻辑,来让自己尽可能的收到对方的回复。

1
2
3
4
5
6
7
8
9
10
11
12
//! 构造Arp条目
struct ArpEntry {
uint32_t raw_ip_addr;
EthernetAddress eth_addr;
bool operator<(const ArpEntry &rhs) const { return raw_ip_addr < rhs.raw_ip_addr; }
};

//! 记录最大的探针时间
const size_t arp_probe_ttl = 5000;

//! 用于记录探针表
std::map<ArpProbe, size_t> _probe_table{};

在有了以上两个大体部分以后,我们就只需要实现

  • 发送(IPV4/ARP)报文
  • 接受(IPV4/ARP)报文
  • 超时重传探针,以及管理ARP映射的TTL

两个部分即可。

实现细节

发送报文

在发送报文之前,我们首先需要将IP地址转换为uint_32,以用于报文的封装,然后检查这个IP地址我们是否已经缓存了它对应的MAC地址

1
2
3
4
5
6
7
8
9
10
11
// convert IP address of next hop to raw 32-bit representation (used in ARP header)
const uint32_t next_hop_ip = next_hop.ipv4_numeric();
optional<EthernetAddress> next_eth;

// 检查next_hop的IP地址是否在ARP里面有
for (const auto &entry : _arp_table) {
if (entry.first.raw_ip_addr == next_hop_ip) {
next_eth = entry.first.eth_addr;
break;
}
}

如果这个IP地址对应的MAC地址我们已经缓存了,那么就只需要将这个IP报文封装成网络帧进行发送

1
2
3
4
5
6
7
8
// 如果在ARP里面有则直接发送并短路
if (next_eth.has_value()) {
EthernetFrame eth_frame;
eth_frame.header() = {next_eth.value(), _ethernet_address, EthernetHeader::TYPE_IPv4};
eth_frame.payload() = dgram.serialize();
_frames_out.push(eth_frame);
return;
}

如果这个IP地址在我们维护的ARP映射表中并不存在对应的映射关系,那么我们首先要判断我们是否就这个IP发送过ARP探针,如果发送过探针了那么我们也没必要再发送一次,只要等待之前的探针让对方返回正确的MAC地址给我们即可。

1
2
3
4
5
6
// ARP内没有,先判断之前是否已经发送过探针,如果发送过就不发送了
for (auto &probe : _probe_table) {
if (probe.first.raw_ip_addr == next_hop_ip) {
return;
}
}

如果没有发送的话,那么我们就需要封装一个ARP探针,用于检测目标IP对应的MAC地址,探针目标的IP地址就是IP数据包下一跳的IP,MAC地址则是广播地址(在该实验中直接将目标MAC设置为空即可)。

1
2
3
4
5
6
7
8
9
10
11
// 如果没发送就发送,并且将这个探针加入探针表
ARPMessage arp_probe;
arp_probe.opcode = ARPMessage::OPCODE_REQUEST;
arp_probe.sender_ethernet_address = _ethernet_address;
arp_probe.sender_ip_address = _ip_address.ipv4_numeric();
arp_probe.target_ethernet_address = {};
arp_probe.target_ip_address = next_hop_ip;
EthernetFrame probe_frame;
probe_frame.header() = {ETHERNET_BROADCAST, _ethernet_address, EthernetHeader::TYPE_ARP};
probe_frame.payload() = arp_probe.serialize();
_frames_out.push(probe_frame);

同时由于探针有超时重传的机制,因此对于这个新发送的报文,我们也需要将其加入缓存表中并设定TTL

1
2
3
// 加入缓存表
ArpProbe _arp = {next_hop_ip, dgram};
_probe_table[_arp] = arp_probe_ttl;

所有的代码

接受报文

在接受报文的部分,我们无非会收到两种报文,一种是包含IP数据的报文,一种是对方给我们发过来的ARP报文

对于这两种报文,首先我们判断它是不是要发送给我们的或是否是一个广播的网络帧

1
2
3
4
// 丢弃目标MAC地址不是我自己的数据帧
if (frame.header().dst != _ethernet_address && frame.header().dst != ETHERNET_BROADCAST) {
return {};
}

如果这是一个确定源MAC和目标MAC的IP数据包,那么我们只需要接受这个数据包然后返回对应的数据即可

1
2
3
4
5
6
// 接受到IP数据段的时候(代表对方和自己都有了互相的ARP信息,不需要对ARP表进行操作),对这个数据段进行处理
if (frame.header().type == EthernetHeader::TYPE_IPv4) {
InternetDatagram datagram;
datagram.parse(frame.payload());
return datagram;
}

但是如果这是一个ARP探针,我们首先对其进行分析

1
2
3
4
5
6
7
// 接受到的是一个ARP包,先将这个包的内容序列化,并将其中包含的ARP信息尝试更新到自己的ARP表中
ARPMessage arp_msg;
arp_msg.parse(frame.payload());
ArpEntry src = {arp_msg.sender_ip_address, arp_msg.sender_ethernet_address},
dst = {arp_msg.target_ip_address, arp_msg.target_ethernet_address};

_update_arp_table({src, dst});

其中_update_arp_table用于更新arp表,具体代码如下

1
2
3
4
5
6
//! 更新ARP条目
void NetworkInterface::_update_arp_table(initializer_list<ArpEntry> arp_entry) {
for (auto &entry : arp_entry) {
_arp_table[entry] = arp_max_ttl;
}
}

在解析了网络帧之后,我们大致可以得到以下三种分类

广播报文,请求某个IP对应的MAC地址,但这个IP不是我们的

丢弃过滤

1
2
3
4
// 过滤掉不是发给自己的IP地址的包
if (dst.raw_ip_addr != _ip_address.ipv4_numeric()) {
return {};
}
广播报文,请求某个IP对应的MAC地址,但这个IP是我们的

返回我们的MAC地址

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 接受到ARP请求的时候,返回一个包含自己信息的ARP响应报文,同时利用这个frame更新自己的ARP表
if (arp_msg.opcode == ARPMessage::OPCODE_REQUEST) {
ARPMessage reply;
reply.opcode = ARPMessage::OPCODE_REPLY;
reply.sender_ip_address = _ip_address.ipv4_numeric();
reply.sender_ethernet_address = _ethernet_address;
reply.target_ip_address = src.raw_ip_addr;
reply.target_ethernet_address = src.eth_addr;

EthernetFrame reply_frame;
reply_frame.header() = {src.eth_addr, _ethernet_address, EthernetHeader::TYPE_ARP};
reply_frame.payload() = reply.serialize();
_frames_out.push(reply_frame);
return {};
}
我们发出的ARP探针得到了别人的回复,知道了别人的MAC地址

更新自己的ARP映射表,同时检查是否有对应目标MAC地址的报文等待发送

1
2
3
4
5
6
7
8
9
// 收到别人传送回来的ARP的时候,如果缓存中有等待的对应条目,则删除,并发送对应的数据
for (auto entry = _probe_table.begin(); entry != _probe_table.end();) {
if (entry->first.raw_ip_addr == src.raw_ip_addr) {
send_datagram(entry->first.datagram, Address::from_ipv4_numeric(entry->first.raw_ip_addr));
entry = _probe_table.erase(entry);
} else {
entry++;
}
}

超时处理

在这里我们只需要做两件事

  • 删除超时的ARP条目
  • 重新发送超时的探针

对于正常的条目和探针,我们只需要让其TTL减少即可,代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//! \param[in] ms_since_last_tick the number of milliseconds since the last call to this method
void NetworkInterface::tick(const size_t ms_since_last_tick) {
// 将检测是否有超时的ARP条目
for (auto entry = _arp_table.begin(); entry != _arp_table.end();) {
if (entry->second < ms_since_last_tick) {
// 删除多余的ARP条目
entry = _arp_table.erase(entry);
} else {
entry->second -= ms_since_last_tick;
entry++;
}
}
// 检测是否有超时的探针
for (auto entry = _probe_table.begin(); entry != _probe_table.end(); entry++) {
if (entry->second < ms_since_last_tick) {
// 重新发送超时的探针
ARPMessage re_probe_arp;
re_probe_arp.opcode = ARPMessage::OPCODE_REQUEST;
re_probe_arp.sender_ip_address = _ip_address.ipv4_numeric();
re_probe_arp.sender_ethernet_address = _ethernet_address;
re_probe_arp.target_ip_address = entry->first.raw_ip_addr;
re_probe_arp.target_ethernet_address = {};

EthernetFrame re_probe_frame;
re_probe_frame.header() = {ETHERNET_BROADCAST, _ethernet_address, EthernetHeader::TYPE_ARP};
re_probe_frame.payload() = re_probe_arp.serialize();
_frames_out.push(re_probe_frame);

// 重置探针条目对应的时间
entry->second = arp_probe_ttl;
} else {
entry->second -= ms_since_last_tick;
}
}
}

总结

这个实验主要实现的逻辑都是数据链路层的,和之前几个Lab没有直接的关系。不过值得一提的就是在Lab4测试的时候运行的TUNTAP很有意思。这两个词之前好奇还是在使用Clash的时候既可以是TUN也可以是TAP模式,而且通常来说TUN模式的性能要比TAP要好。当时还不知道为什么,在写完这个实验以后搜了一些资料,目前浅显的理解大致认为是TAP的网络代理模拟是有处理到数据链路层的,也就是MAC地址也进行了模拟,而TUN则只是模拟到了IP层,并没有自己的MAC地址,因此损耗也要少一些。

]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + CS144-Lab4 计算机网络:TCP Connection的实现 + + /p/10e77bc5.html + + TCP Connection

TCP Connection的部分本身并不难,这个实验的主要核心是学习使用tsharkwireshark一类的工具对TCP的网络状况进行分析,找出正确或错误的数据包。

需要实现的逻辑

在这个实验中我们需要将前面写的TCP SenderTCP Receiver两个部分的逻辑进行合并,使得两者之间可以进行数据的传输。

除了几个可以直接调用前面实验函数的函数以外,我们主要需要完成的我认为是收到某个报文以后的处理函数segment_received(const TCPSegment &seg)和时间函数tick()

实现细节

接受报文

对于接受报文这个函数,首先通过对实验报告的分析,我们可以知道我们主要要做的事情可以分为以下三个大逻辑:

对报文本身合法性的分析
  • 记录收到这个报文的时间,无论对错
  • 检查这个报文是否是带RST标志的报文,如果是的话则直接断开连接
  • 如果是在LISTEN状态的时候接受到这个报文的,则要判断对方是否连接

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 首先无论如何,刷新收到报文的时间
_time_since_last_segment_received = 0;

// 然后先检查这个报文是否出错,如果出错则直接返回
if (seg.header().rst) {
_receiver.stream_out().set_error();
_sender.stream_in().set_error();
_is_active = false;
return;
}

// 如果TCP连接处于LISTEN状态,只接受SYN报文,并且返回一个SYN + ACK的报文
if (not _receiver.ackno().has_value()) {
if (seg.header().syn) {
_sender.fill_window();
} else {
return;
}
}
对报文进行处理

接受这个报文,如果带有ACK信息则更新对方已经确认了的ackno和对方当前的window_size

1
2
3
4
5
6
7
// 接受这个报文
_receiver.segment_received(seg);

// 对ACK报文进行确认更新,用于下一次更新的确认
if (seg.header().ack) {
_sender.ack_received(seg.header().ackno, seg.header().win);
}
正确的处理连接的关闭

这部分是我认为Lab4里面在理解上较难的部分。其中,TCP的断开分为三种不同的情况:

  1. 由于RST标志导致的强制退出(unclean shutdown)
  2. 正常的通讯结束而导致的关闭(clean shutdown)

但是对于第二种情况,我们可以进一步分为两种情况:

首先是最简单的四次挥手报文:

  1. Client发送完毕数据,告诉Server我结束(FIN)了
    Client客户端在给Server发送完毕了所有数据以后,主动发送FIN数据包,表示自己的数据已经发送完毕了。然后Server在收到ClientFIN报文并处理完毕以后则会返回一个FIN ACK报文,来告诉Client他发过来的数据已经在服务端被处理完成了。

  2. Server也发送完毕了数据,告诉Client我结束(FIN)了
    这个时候Server也会给Client发送一个FIN的报文,同样等待Client那边确认,如果Client发送了确认报文来确认这个ACK,则代表客户端那边也处理完了,这个时候按理来说首先提出数据发送完毕的Client就可以断开链接了。

Client:主动关闭

但是,服务端有可能收不到这最后一个ACK确认报文,从而导致自己一直在等待客户端向自己发送ACK确认报文。

为了避免这种情况,最简单的处理方法就是让ClientServer发送了FIN ACK报文以后不要急着断开连接,而是设置一个计时器,等待看看Server会不会重传FIN报文。

如果重传了FIN则代表Server并没有收到先前发送的FIN ACK,这个时候Client就需要重新发送一个ACK回去,告知Server可以断开连接了。

如果超过了计时器的时间,Client也没有收到Server的重传报文,那么我们就假设Server已经收到了FIN ACK,并且已经关闭了他那边的连接,这个时候Client就可以断开连接了。而这段计时器的等待时间,就是实验中的linger_time = 10 *_cfg.rt_timeout,这个时间往往是比Server超时重传的时间大很多的,也就留给了Server足够多的时间来重传FIN报文。

Server:被动关闭

服务端这边就很简单了,在发送完自己的FIN之后,只需要正常等待ClientACK确认报文,如果没有等到则重传FIN,如果等到了则直接断开连接。

连接关闭的代码实现

知道了上面的区分以后,我们实现起来就很简单了,只需要通过添加一个变量_linger_after_streams_finish来判断到底是对方先结束还是自己先结束。如果是对方先结束,则我们不需要等待linger_time,在后面收到了FIN报文以后直接断开连接即可。否则则需要在后面tick()函数的部分添加超时断开连接的逻辑。

1
2
3
4
5
6
7
8
9
10
11
12
// 接收到正确的EOF报文,代表对方发送过来的数据流已经结束了,但是自己还有数据要发送
// 因此需要等待自己的数据流发送完毕后才能关闭连接
if (_receiver.stream_out().eof() && not _sender.stream_in().eof()) {
_linger_after_streams_finish = false;
}

// _linger_after_streams_finish是false说明对方发送给我们的数据流已经全部被接受了
// 此时有_sender的eof和bytes_in_flight都为0,说明自己的数据流也已经全部发送完毕
// 因此可以关闭连接了
if (_sender.stream_in().eof() && bytes_in_flight() == 0 && not _linger_after_streams_finish) {
_is_active = false;
}
发送确认报文

这部分逻辑就很简单了,如果在接受了对方传来的有序列号消耗数据包以后,我们并没有数据要传输(即无法告知对方我们接受到了数据),那么我们就需要单独传输一个ACK数据包给对方,告知我们已经接收到了对方的数据。(如果对方发送给我们的是一个ACK数据包,我们则不需要回复,也就是收到了占用序号为零的包)

1
2
3
4
if (_sender.segments_out().empty() &&
(seg.length_in_sequence_space() || seg.header().seqno != _receiver.ackno())) {
_sender.send_empty_segment();
}

其中seg.header().seqno != _receiver.ackno()代表的是一种特殊情况,在TCP连接中,有的时候为了确认当前连接是否依旧有效,对方有可能会随机发送一个错误的序列号给我们,这个时候我们就需要回复一个ACK报文给对方,以此告知对方这个连接依旧是有效的,同时也可以让对方更新我们的窗口大小。

接受报文的代码实现
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
void TCPConnection::segment_received(const TCPSegment &seg) {
// 首先无论如何,刷新收到报文的时间
_time_since_last_segment_received = 0;

// 然后先检查这个报文是否出错,如果出错则直接返回
if (seg.header().rst) {
_receiver.stream_out().set_error();
_sender.stream_in().set_error();
_is_active = false;
return;
}

// 如果TCP连接处于LISTEN状态,只接受SYN报文,并且返回一个SYN + ACK的报文
if (not _receiver.ackno().has_value()) {
if (seg.header().syn) {
_sender.fill_window();
} else {
return;
}
}

// 接受这个报文
_receiver.segment_received(seg);

// 对ACK报文进行确认更新,用于下一次更新的确认
if (seg.header().ack) {
_sender.ack_received(seg.header().ackno, seg.header().win);
}

// 接收到正确的EOF报文,代表对方发送过来的数据流已经结束了,但是自己还有数据要发送
// 因此需要等待自己的数据流发送完毕后才能关闭连接
if (_receiver.stream_out().eof() && not _sender.stream_in().eof()) {
_linger_after_streams_finish = false;
}

// _linger_after_streams_finish是false说明对方发送给我们的数据流已经全部被接受了
// 此时有_sender的eof和bytes_in_flight都为0,说明自己的数据流也已经全部发送完毕
// 因此可以关闭连接了
if (_sender.stream_in().eof() && bytes_in_flight() == 0 && not _linger_after_streams_finish) {
_is_active = false;
}

if (_sender.segments_out().empty() && (seg.length_in_sequence_space() || seg.header().seqno != _receiver.ackno())) {
_sender.send_empty_segment();
}

// 填装需要发送的报文
_push_out();
}

时间流动

另外一个需要注意的函数就是tick()函数了。其实这一部分的重要也主要是连带了前面接受报文部分的关闭连接,主要要注意的就是添加一个对linger_time的判断。整个tick()函数的代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//! \param[in] ms_since_last_tick number of milliseconds since the last call to this method
void TCPConnection::tick(const size_t ms_since_last_tick) {
_time_since_last_segment_received += ms_since_last_tick;
_sender.tick(ms_since_last_tick);
// 如果超时重传次数超过了最大重传次数,那么就直接关闭连接
if (_sender.consecutive_retransmissions() > TCPConfig::MAX_RETX_ATTEMPTS) {
_send_rst();
return;
}
// 在我方的数据包全部发送并且处理完毕以后,如果接受到了对方传来的EOF报文,并且等待了十倍的RTT时间都没有新的报文传来,则代表连接已经关闭
if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof() &&
_receiver.stream_out().input_ended()) {
_is_active = false;
}
_push_out();
}

问题和难点

Lab4实验主要的难点感觉还是在即使跑通了前面大部分的基本测试,也还是有可能因为Lab2Lab3里面的疏忽,而导致后面模拟真实通讯的时候很容易难以下手。但是在掌握了Wireshark抓包一类的工具用法以后还是很容易发现问题所在并加以纠正的。

比如我在Lab3中,对于TCPSender在填充窗口大小的时候,一开始并不是设置了一个额外的变量fill_space来控制可以发送的空闲空间的大小,而是直接使用了ack_received方法中收到的最新窗口大小,忽略了bytes_in_flight()也需要考虑在窗口占用里面的问题。在使用Wireshark抓包的时候就明显发现了发送数据包的序号要远超于接收方的确认序号

空闲窗口判断错误

而这个问题也在我通过修改Lab3对应空闲窗口大小的逻辑之后得到了解决。

我还遇到过的第二个问题就是在小窗口的情况下,没有正确处理链接的关闭。在通过Wireshark抓包以后可以看到

没有正确处理关闭

在发送方还没有给接收方发送完所有数据的时候,接收方就提前终止了自己的连接,这个问题主要出在tick()函数里面关于linger_time的逻辑错误,我并没有等到接收方接受到EOF就直接关闭了链接。错误代码如下:

1
2
3
if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof()) {
_is_active = false;
}

修改后的代码如下:

1
2
3
4
if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof()
+ && _receiver.stream_out().input_ended()) {
_is_active = false;
}

整个Lab4的代码可以在Github的仓库查看:

tcp_connection.cc
tcp_connection.hh

]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + 使用Yadm管理Linux配置文件 + + /p/4457ea2b.html + + 今年暑假看Missing-course的时候开始意识到备份Linux配置文件的重要性,以后即使切换机器也可以很容易的恢复自己喜欢的编程环境。在简单搜索了几个方式以后,决定使用yadm作为管理工具,并且写了一个模板,便于分享和使用。

使用说明

该仓库的主要用途为使用yadm作为管理工具,通过Github来同步自己的Dotfiles

  1. 先在自己当前环境下安装yadm,具体安装说明参照Installation

  2. 通过Use this template或者下载源码的方式,创建并上传到自己的一个仓库中,最好是Private类型

  3. 在本身没有经过配置Dotfiles的环境下(或提前备份好自己的Dotfiles)输入以下指令拉取模板到本地进行管理

    1
    yadm clone https://github.com/<your id>/<your repository> --bootstrap
  4. 在附带--boostrap的情况下执行完毕上述指令以后将会按默认模板文件使用git来对自己的Dotfiles进行管理


模板介绍

Bootstrap

clone仓库的时候如果附带了bootstrap将会自动执行以下三件事

  • 在以 apt/yum/pacman 作为包管理器的情况下安装zsh vim tmux curl wget openssl
  • 安装 oh-my-zsh,并以p10k为主题。安装zsh-autosuggestions,zsh-syntax-highlightingzsh-proxy三个插件
  • 切换 zsh 为当前用户的默认终端

配置文件

.ssh/config

  • 取消了域名指纹检查,不需要输入yes同意首次链接

.zshrc

  • 配置了rust国内镜像
  • 添加了transfer用于分享文件(输入transfer /path/to/file即可)
  • 使用pws作为powershell.exealias,便于wsl环境下使用powershell
  • 启用了vi的normal模式,在输入命令的时候按Esc即可

.vimrc

  • 参考missing-semster
  • 为了便于作为wsl环境使用,在Windows Terminal下复制粘贴,关闭了鼠标功能

.cargo

  • 配置好了cargo镜像库

gitconfig

  • 配置默认使用~/.gitignore作为全局ignore`文件
  • 在使用https时的验证交由.git-credentials文件纯文本保存密码(有风险,可加密)

加密使用

对于类似.ssh/id_rsa或者.git-credentials文件可以通过yadm自带的encrypt工具进行加密,使用步骤如下

  1. .config/yadm/encrypt文件内写入需要加密的文件路径,支持正则匹配

  2. 假设在.ssh/目录下所有文件(例如config, id_rsa)都需要进行加密,则在.config/yadm/encrypt写入.ssh/*后输入以下指令(安装openssl为前提)

    1
    yadm encrypt

    则会要求输入一个密码来进行加密

  3. 加密完则会在.local/share/yadm目录下产生一个archive作为加密打包后的文件,将该文件添加并上传到Github

    虽然加密文件本身有一定安全性,但为了保险起见还是推荐使用Private仓库来存储自己的Dotfiles

    1
    2
    3
    yadm add ~/.local/share/yadm/archive
    yadm commit -m "add encrypt archive"
    yadm push

    原本的文件此时将会依旧本地存在于(例如config, id_rsa),但不需要上传到Github当中

  4. 在下次重装系统/更换环境的时候,如果需要通过yadm对环境进行复原并解密加密文件,则只需要输入以下指令

    1
    yadm decrypt

    就会将加密打包的文件解密到对应的文件目录,保证一定的安全性

]]>
+ + + + + 小技巧 + + + + + + + Linux + + Yadm + + + +
+ + + + + CS144-Lab3 计算机网络:TCP Sender的实现 + + /p/73e1b791.html + + TCP Sender

需要实现的主要逻辑

  1. 追踪Receiver返回的windows_size(可接受的剩余容量)和ackno(已经确认接收的字符位置)
  2. 只要数据来了就直接对数据进行封装并发送,只有在窗口被消耗为零的情况下才停止发送
  3. 将没有被acknowledge的数据包存储起来,在超时的时候进行发送

实现细节

  1. 对于超时重传的时间判断,使用已经提供的tick()函数,每次调用的时候传入多少时间就消耗了多少时间
  2. 超时重传的默认基准值会以成员变量的形式在TCPSender中进行初始化
  3. TCPSegment中有一个_segments_out的成员,只需要向这个queuepush一个TCPSegment就相当于将这个数据段发送了

代码实现

额外定义成员

对于计时器的部分,为了方便抽象管理,我这里选择直接创建一个类来进行封装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
class TCPTimer {
private:
size_t _tick_passed = 0; // 记录实时的时间戳
size_t _rto_timeout = 0; // 记录超过多久时间没有收到ACK就重传
unsigned int _rto_count = 0; // 记录重传的次数

bool _is_running{false}; // 记录计时器是否启动

public:
// 重置计时器
void reset(const uint16_t retx_timeout) {
_rto_count = 0;
_rto_timeout = retx_timeout;
_tick_passed = 0;
}

// 启动计时器
void run() { _is_running = true; }

// 暂停计时器
void stop() { _is_running = false; }

// 计时器是否启动
bool is_running() const { return _is_running; }

// 重传次数
unsigned int rto_count() const { return _rto_count; }

// 慢启动
void slow_start() {
_rto_count++;
_rto_timeout *= 2;
}

// 更新当前时间
void update(const size_t ms_since_last_tick) { _tick_passed += ms_since_last_tick; }

// 检测是否超时
bool is_timeout() const { return _is_running && _tick_passed >= _rto_timeout; }

// 重新计时
void restart() { _tick_passed = 0; }
};

private的部分定义则如下:

1
2
3
4
5
6
7
8
9
10
11
// 超时重传计时器
TCPTimer _rto_timer{};

// 记录确认的_ackno
size_t _ackno = 0;

// 记录窗口大小,并标记是否为空窗口
size_t _window_size = 1;

// 缓存队列
std::queue<TCPSegment> _cache{};

额外定义函数

额外定义的函数主要作用为将已经封装好的TCP报文进行发送,如果在发送的时候检测到RTO重传计时器并没有工作,则发送的同时激活重传计时器。同时在发送了报文后对seqno序号进行消耗,移动_next_seqno指针

1
2
3
4
5
6
7
8
9
10
11
12
void TCPSender::_send_segment(const TCPSegment &seg) {
// 当前报文需要占用的长度
const size_t seg_len = seg.length_in_sequence_space();
_next_seqno += seg_len;
_cache.push(seg);
_segments_out.push(seg);
// 如果没启动计时器,就启动计时器
if (not _rto_timer.is_running()) {
_rto_timer.run();
_rto_timer.reset(_initial_retransmission_timeout);
}
}

fill_window()

对于需要封装的报文,大致可以分为三类,一类是最开始用于建立连接的SYN报文,一类是携带数据的PAYLOAD报文,最后一类是用于发送结束连接的挥手FIN报文。在该方法中主要的难点就是通过对目前已经确认的acknonext_seqno等数据来判断当前需要封装的报文具体是哪一类,以及根据还未接收到的数据以及零窗口本身的机制来判断空闲的窗口大小

fill_space窗口大小

首先,为了防止出现对方当前空闲窗口已满,而sender就一直啥也不发的情况出现,因此在接受到的窗口大小是0的时候,要将其改为1,来避免零窗口堵塞。同时由于部分数据还在传输的路上,这一部分的数据也需要被减掉,从而得到最后的空闲大小fill_space。

1
2
size_t fill_space = _window_size ? _window_size : 1;
fill_space -= bytes_in_flight();
SYN报文

SYN报文的判断很简单,因为发送SYN的话无非是打开连接的建立者A自己,又或者是收到了A发来报文的B返回一个携带ACKSYN报文进行确认。而对于A和B来说,由于SYN报文都是他们自己发送的第一个报文,因此在封装的过程中,他们的“下一个发送序列号”_next_seqno显而易见的应该为零。大致逻辑代码如下

1
2
// _next_seqno == 0 代表还没有开始发送数据,此时需要发送SYN报文
section.header().syn = (_next_seqno == 0);
PAYLOAD报文

对于含有内容的报文,主要的工作就是对payload长度的合理切割,对此只需要在TCPConfig::MAX_PAYLOAD_SIZE和当前剩余``中取最小值并从_stream当中读入。

1
2
3
// 将数据进行封装
size_t segment_payload_size = min(TCPConfig::MAX_PAYLOAD_SIZE, fill_space);
section.payload() = _stream.read(segment_payload_size);
FIN报文

_stream发送完毕,并且被我方全部接受了的时候发送一个携带FIN的报文,告知对方我方已经发送完毕。由于FIN本身需要消耗一个序列号,因此发送前需检查当前数据段是否还有一个空位来放FIN

1
2
3
4
// 如果要发送FIN的话,窗口内至少还要剩余一个字符(bytes_in_flight的也会占用窗口)
if (_stream.eof() && fill_space > section.length_in_sequence_space()) {
section.header().fin = true;
}
发送过滤

在标记完了FIN之后,如果这个报文依旧不占用序列号,则说明这个报文不是TCP Sender处理的部分;又或者此时在FIN已经发送的基础上,重复发送了一个FIN,这时多的FIN应该被抛弃

1
2
3
4
// 空字符报的报文或错误溢出的报文不应该由`TCP Sender`进行发送
if (section.length_in_sequence_space() == 0 || _next_seqno == _stream.bytes_written() + 2) {
return;
}
最后总的代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
void TCPSender::fill_window() {
size_t fill_space = _window_size ? _window_size : 1;
fill_space -= bytes_in_flight();
while (fill_space > 0) {
TCPSegment section;

// 发送的数据包的序号是将要写入的下一个序号
section.header().seqno = next_seqno();

// _next_seqno == 0 代表还没有开始发送数据,此时需要发送SYN报文
section.header().syn = (_next_seqno == 0);

// 将数据进行封装
size_t segment_payload_size = min(TCPConfig::MAX_PAYLOAD_SIZE, fill_space);
section.payload() = _stream.read(segment_payload_size);

// 空闲窗口中至少要留有一位序号的位置才能将当前数据包添加FIN(bytes_in_flight的也会占用窗口)
if (_stream.eof() && fill_space > section.length_in_sequence_space()) {
section.header().fin = true;
}

// 如果这个报文啥都没有,或者FIN报文已经发送了,就没必要发送新的数据段了
if (section.length_in_sequence_space() == 0 || _next_seqno == _stream.bytes_written() + 2) {
return;
}

fill_space -= section.length_in_sequence_space();

_send_segment(section);
}
}

bytes_in_flight()

这个感觉可能是看起来最简单的一个函数了,因为用了_ackno来记录已经确认过的报文,同时_next_seqno又代表的是将要发送的数据流位置,因此只需要将_next_seqno - _ackno返回的就是正在发送中的数据长度了。(最开始想实现的时候还在考虑要不要在每次fill_windowack_received的时候添加计数器。。)

1
uint64_t TCPSender::bytes_in_flight() const { return _next_seqno - _ackno; }

ack_received()

确认报文主要需要的逻辑有以下四个部分:

  1. 只处理有效并且正确的ackno。如果ackno有效,记录acknowindow_size用以fill_window()来进行报文的封装
  2. 记录ack报文中包含的窗口大小
  3. 如果曾经的报文已经确认过,则报文已经送达,将送达的报文从缓冲区中弹出,如果所有的报文都被弹出了,则关闭RTO计时器
  4. 如果接受到了对方这时的窗口又有了空闲大小,则使用fill_window()来填充新的空报文
对于第一个逻辑

对于判断ackno是否是正确的ackno,只需要判断ackno是否处于已经记录的_ackno_next_seqno之间,如果在这个区间之外,意味着要么是老的ackno,要么是确认了不存在的数据,需要进行短路丢弃,逻辑如下

1
2
3
4
5
uint64_t abs_ackno = unwrap(ackno, _isn, _next_seqno);
// 如果接收到对方发送的确认序号大于自己的下一个序号或者小于自己的已经被确认序号,说明接收到的确认序号是错误的
if (abs_ackno < _ackno || abs_ackno > _next_seqno) {
return;
}
对于第二个逻辑

在接受到了窗口大小之后只需要直接将其记录

1
2
// 记录窗口大小
_window_size = window_size;
对于第三、四个逻辑

这部分都是属于对于超时重传的处理,其中主要需要实现的是对缓冲区确认后的报文进行弹出,同时弹出所有报文后取消对RTO的占用,初始化超时重传的等待时间并记录当前的时间。

其中弹出操作只有在_ackno确认的是第一个报文对应的seqnolength的时候才进行

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 用于判断是否重置计时器
bool has_reset = false;

// 当缓冲区内的报文已经被ackno确认,则将已经确认的报文进行丢弃
while (not _cache.empty() &&
_cache.front().header().seqno.raw_value() + _cache.front().length_in_sequence_space() <= ackno.raw_value()) {
if (not has_reset) {
// 有效的确认报文到达,重置计时器
_rto_timer.reset(_initial_retransmission_timeout);
has_reset = true;
}
_cache.pop();
}

if (_cache.empty()) {
// 所有数据包都被确认了,所以暂停计时器
_rto_timer.stop();
}

// 如果剩余的窗口还有空间,就填入内容
fill_window();
最后总的代码如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//! \param ackno The remote receiver's ackno (acknowledgment number)
//! \param window_size The remote receiver's advertised window size
void TCPSender::ack_received(const WrappingInt32 ackno, const uint16_t window_size) {
uint64_t abs_ackno = unwrap(ackno, _isn, _next_seqno);
// 如果接收到对方发送的确认序号大于自己的下一个序号或者小于自己的已经被确认序号,说明接收到的确认序号是错误的
if (abs_ackno < _ackno || abs_ackno > _next_seqno) {
return;
}
_ackno = abs_ackno;

// 记录窗口大小
_window_size = window_size;

// 用于判断是否重置计时器
bool has_reset = false;

// 当缓冲区内的报文已经被ackno确认,则将已经确认的报文进行丢弃
while (not _cache.empty() &&
_cache.front().header().seqno.raw_value() + _cache.front().length_in_sequence_space() <= ackno.raw_value()) {
if (not has_reset) {
// 有效的确认报文到达,重置计时器
_rto_timer.reset(_initial_retransmission_timeout);
has_reset = true;
}
_cache.pop();
}

if (_cache.empty()) {
// 所有数据包都被确认了,所以暂停计时器
_rto_timer.stop();
}

// 如果剩余的窗口还有空间,就填入内容
fill_window();
}

tick()

该函数主要的作用是推动时间流动,并且判断是否触发超时重传,如果触发了超时重传首先将计时器更新到当前时间。然后当对方窗口不繁忙的情况下(window_size非零)触发了重传就把下次重传的等待时间翻倍,并且记录一次重连;如果对方窗口正处于繁忙期(window_size为零),则不翻倍连接时间。然后再将缓冲区内第一个发送的报文进行重新发送。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//! \param[in] ms_since_last_tick the number of milliseconds since the last call to this method
void TCPSender::tick(const size_t ms_since_last_tick) {
// 更新当前时间
_rto_timer.update(ms_since_last_tick);

// 检测是否超时
if ((not _rto_timer.is_timeout())) {
return;
}
// 如果上一个收到的报文中,窗口大小不是零,但是依旧超时,说明是网络堵塞,执行慢启动
if (_window_size != 0) {
_rto_timer.slow_start();
}

// 重传次数小于最大重传次数,就重传
if (_rto_timer.rto_count() <= TCPConfig::MAX_RETX_ATTEMPTS) {
// 发送缓冲区中的第一个报文段
_segments_out.push(_cache.front());
_rto_timer.restart();
}
}

consecutive_retransmissions()

这个函数就是直接返回次数的,直接返回_rto_timer.rto_count();的大小即可。

]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + CS144-Lab2 计算机网络:TCP Receiver的实现 + + /p/4e68707.html + + TCP Receiver

Index和Seqno的转换

为了节省在TCP Header当中的空间,在StreamReassembler里面写的index虽然是一个uint64_t的类型,但是在实际的Header中是使用一个uint32_tseqno来进行标记位置的。对于uint32_tseqnouint64_tindex的相互转换则是通过以4GiB (2^32 bytes)为一个长度进行取模来实现。

同时为了提高TCP本身的安全性,并且确保每次获得的segments数据段都是来自于本次连接的,因此提出了ISN(Initial Sequence Number)的概念,即本次链接是从序号为isn开始作为seqno进行通信,大于isnseqno所代表的index是本次链接所需要的数据段,早于isnseqno则是来自于上一次连接的老数据段,并不需要处理。

如果想要将uint32_tseqno转为一个uint64_t则需要一个checkpoint作为定位,防止seqno被定位到错误的位置上。这个checkpoint在实现中就是最后一个重新组装后的字符位置

按lab2的原文:In your TCP implementation, you’ll use the index of the last reassembled byte as the checkpoint.

通过寻找距离checkpoint最近的seqno就可以定位到本来需要插入的seqno位置了

代码思路

对于将uint32_t转为uint64_t的代码实现很简单,只需要将uint64_tindex加上isn的值之后对2^32进行取模就行了,具体代码实现如下

1
2
3
4
WrappingInt32 wrap(uint64_t n, WrappingInt32 isn) {
uint64_t result = (n + isn.raw_value()) % (static_cast<uint64_t>(UINT32_MAX) + 1);
return WrappingInt32(static_cast<uint32_t>(result));
}

而对于将wrap后的seqno转回index,我直接通过类似分类讨论的枚举找到了四个临界点,只需要判断checkpoint相对于临界点的位置就可以得到答案。代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
uint64_t unwrap(WrappingInt32 n, WrappingInt32 isn, uint64_t checkpoint) {
const uint64_t L = (1ul << 32);
const uint64_t a = (checkpoint / L) * L - isn.raw_value() + n.raw_value();
if (checkpoint > a + (L * 3) / 2) {
return a + 2 * L;
} else if (checkpoint > a + L / 2) {
return a + L;
} else if (checkpoint < L) {
return n.raw_value() < isn.raw_value() ? a + L : a;
} else {
return checkpoint < a - L / 2 ? a - L : a;
}
}
详细思路点这里(硬分类,感觉好蠢,但是有效.jpg)
通解推导
checkpoint > L

由以下公式

(index+isn)modL=seqno\left ( index+isn \right )\mod{ L } = seqno

通过推导可以得到

index=seqno+kLisnindex = seqno + k * L - isn

因此如果需要得到离checkpoint最近的index就只需要找到合适的k即可,在这里不妨设

m=checkpoint/Lm = checkpoint / L

m作为一个附近值,通过画图可以知道,在一般情况下,答案一定在checkpoint附近的三个区间内

k的范围

seqno - isn > 0

在这种情况下,checkpoint的前中后三个区间都存在,只要列举并讨论范围就很简单了

seqno - isn为正数的时候,index可能的一个取值会落在第②个区间上,有

index=mL+seqnoisnindex'' = m * L + seqno - isn

此时第①区间和第③区间上的index可以分别表示为

index=indexLindex=index+Lindex' = index'' - L \\\\index''' = index'' + L

index'index''index'''的中间值进行判断,很容易得到以下规律

a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<aL/2index=a-LaL/2checkpoint<a+L/2index=aa+L/2checkpointindex=a+L\begin{array}{l} a = m*L+seqno-isn \\\\ L = UINT32\_MAX+1 \\\\ \left \{\begin{matrix} checkpoint < a - L/2 & \text{index=a-L}\\\\ a-L/2\leq checkpoint< a+L/2 & \text{index=a}\\\\ a+L/2\leq checkpoint & \text{index=a+L}\end{matrix}\right.\end{array}

注:此时checkpoint一定小于 a+L,因为a+L属于第③区间,而checkpoint在第②区间内

seqno - isn < 0

此时因为是从m*L的位置向前移动,所以相比于上面,三个可能是答案的index的分布则改为了

index=mL+seqnoisnindex=index+Lindex=index+2Lindex' = m * L + seqno - isn\\index'' = index' + L\\index''' = index' + 2 * L

所以很容易得到以下结果

a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<a+L/2index=aa+L/2checkpoint<a+(3L)/2index=a + La+(3L)/2checkpointindex=a+2*L\begin{array}{l} a = m*L+seqno-isn\\ L = UINT32\_MAX+1\\ \left \{\begin{matrix} checkpoint < a + L/2 & \text{index=a}\\ a+L/2\leq checkpoint< a+(3*L)/2 & \text{index=a + L}\\ a+(3*L)/2\leq checkpoint & \text{index=a+2*L}\end{matrix}\right.\end{array}

将以上两种规律整合,我们很容易可以得到以下通解

a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<aL/2index=a-LaL/2checkpoint<a+L/2index=aa+L/2checkpoint<a+(3L)/2index=a + La+(3L)/2checkpointindex=a+2*L\begin{array}{l} a = m*L+seqno-isn\\ L = UINT32\_MAX+1\\ \left \{\begin{matrix} checkpoint < a - L/2 & \text{index=a-L}\\ a-L/2\leq checkpoint< a+L/2 & \text{index=a}\\ a+L/2\leq checkpoint< a+(3*L)/2 & \text{index=a + L}\\ a+(3*L)/2\leq checkpoint & \text{index=a+2*L}\end{matrix}\right.\end{array}

特殊情况
checkpoint < L

checkpoint < L的时候,通解中对于a - L的一部分(即checkpoint < a + L)就不适用了,不过分析起来也很简单,由于有

(index+isn)modL=seqno\left ( index+isn \right )\mod{ L } = seqno

所以当seqno小于isn的时候,答案一定在下一个区间,因此答案即L - isn + seqno,当seqno大于isncheckpoint < a + L,所以答案一定为a

所以就可以得到上述代码了。

TCP 段接收处理

这部分代码逻辑完成的是tcp握手中对于tcp段的接受处理。

我自己增加的私有成员和用途大致为:

  • _is_syn: 判断链接是否建立
  • _isn: 存入第一次建立连接时接受的seqno来初始化
  • _is_fin: 用于判断结束输入的报文是否传入

对于acknocheckpoint的实现机制是:

  • ackno: 本质上就是返回已经整合好的数据量,也就是bytes_streambytes_written(),同时建立连接后一定存在syn所以可以直接加一,之后只需要判断fin是否到达并且整合完毕,然后再次加一即可。
  • checkpoint: 和ackno差别不大,只需要直接返回已经写入完成的字符个数即可

知道了上述几个逻辑以后就只需要通过调整简单的逻辑flag加上lab1里面的push_substring来对payload()进行整合就可以通过了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
void TCPReceiver::segment_received(const TCPSegment &seg) {
// 等待并处理第一个syn链接
if ((_is_syn == 0) && seg.header().syn) {
_is_syn = 1;
_isn = seg.header().seqno;
} else if (_is_syn == 0) {
return;
}

// checkpoint的位置就是已经写入完成的字符的数量
// In your TCP implementation, you’ll use the index of the last reassembled byte as the checkpoint.
const uint64_t checkpoint = _reassembler.stream_out().bytes_written() + 1;

// 将内容写入reassembler,其中之所以要有(- 1 + seg.header().syn)这个部分,是因为当握手成功以后
// seqno是从1开始的,而没有握手的时候stream_index应该将包含syn的报文写在index为0的位置上
uint64_t stream_index = unwrap(seg.header().seqno, _isn, checkpoint) - 1 + seg.header().syn;
_reassembler.push_substring(seg.payload().copy(), stream_index, seg.header().fin);

// 标志结尾的TCP段是否送达
if (seg.header().fin) {
_is_fin = 1;
}
}

optional<WrappingInt32> TCPReceiver::ackno() const {
// 返回已经消耗的index长度,也就是ackno确认了的长度
WrappingInt32 result = _isn + _is_syn + _reassembler.stream_out().bytes_written();
if ((_is_fin != 0) && _reassembler.unassembled_bytes() == 0) {
// 判断是否包含结束的报文
result = result + _is_fin;
}
// 如果建立了链接才返回ackno,在建立报文之前是没有ackno的,因为没有对方的信息可以让自己确认
return _is_syn ? optional<WrappingInt32>(result) : nullopt;
}

size_t TCPReceiver::window_size() const { return _capacity - _reassembler.stream_out().buffer_size(); }

这里有一个让我感觉很疑惑的点就是在单元测试中存在两种测试样例,这里做个记录,后面如果知道了原因就来解决一下

  • 存在同时携带SYNFIN报文,按照正常的TCP握手感觉这是不合理的
  • 在接受SYN的同时会接受一部分的Data进行处理,按正常的TCP也是不会这么做的
]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + CS144-Lab1 计算机网络:字节流重组器 + + /p/aeda2510.html + + 思路总结

有问题的方案

这个方案是采用了一个无限长的字符串cache,所有的TCP段中的部分数据先寄存在cache当中。之后通过创建一个在cache上滑动的写入位指针write_p来将能够顺序写入的内容写入_output当中,其中write_p每次滑动的距离len受限于_output还剩下的可容纳空间。

cache_slide

添加的私有成员:

1
2
3
4
5
6
7
8
// 用于存放缓存
std::string cache;
// 用于标记缓存对应字节上是否写入内容
std::string dirty_check;
// 标记写入指针
size_t write_p;
// 标记EOF位
size_t end_p;

对于push_string方法的实现:

  1. 检查传入的index是否在可写入范围,如果超出可写入范围则直接退出,保证程序的鲁棒性

  2. 因为写入的数据长度不能超过capacity,因此需要将扩容的长度设置为index + data.length()write_p + _output.remaining_capacity()中较小的那个

  3. 将传入的数据(包括可能超过范围的部分)写入cache中,同时将dirty_check中对应的位置标记为1

  4. cache的长度缩回到正确扩容后应该的长度,这样可以将多余的内容丢弃

  5. 检查write_p的位置上是否有数据可以被写入,如果有则通过滑动len来将内容写入_output,否则跳过

  6. 检查write_pend_p是否相同,如果相同则代表写入结束,调用_output.end_input()

具体代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//! \details This function accepts a substring (aka a segment) of bytes,
//! possibly out-of-order, from the logical stream, and assembles any newly
//! contiguous substrings and writes them into the output stream in order.
void StreamReassembler::push_substring(const string &data, const size_t index, const bool eof) {
// extend_size: 按照index和data.length()扩容后的大小,只会按扩大的来扩容
size_t extend_size = index + data.length();

// 记录EOF的位置
if (eof) {
end_p = extend_size;
}

// 扩容只会变大,不会缩小
if (extend_size > cache.length()) {
cache.resize(extend_size);
dirty_check.resize(extend_size);
}

// 将要排序的内容写入cache当中
cache.replace(index, data.length(), data);
dirty_check.replace(index, data.length(), data.length(), '1');

// 缩回原来的大小,将缓冲区外多余的内容丢弃
if (expand_size > cache_raw_length) {
cache.resize(expand_size);
dirty_check.resize(expand_size);
}

// 检查写入位上是否有字符,有字符则通过滑动len来写入_output,否则跳过
if (dirty_check[write_p]) {
size_t len = 0;
size_t output_remaining = _output.remaining_capacity();
while (dirty_check[write_p + len] && len < output_remaining) {
len++;
}
_output.write(cache.substr(write_p, len));
write_p += len;
}

// 写入位和EOF位相同,代表写入结束
if (write_p == end_p) {
_output.end_input();
}
}

对于没有统计的字符数量,直接使用一个循环进行统计即可

1
2
3
4
5
6
7
8
9
// 返回缓冲区内还没有处理的内容
size_t StreamReassembler::unassembled_bytes() const {
size_t n = write_p;
// 检查缓存区有多少字符
for (size_t i = write_p; n != cache.length() && not dirty_check[i]; i++) {
n++;
}
return cache.length() - n;
}

对于判断缓冲区是否使用完毕则是

1
2
// 当不再写入新的TCP段并且已有的字段全部排序结束的时候缓冲区不再需要排序
bool StreamReassembler::empty() const { return _output.eof() && not unassembled_bytes(); }

测试案例的补充

使用上面这种写法的话虽然可以达到100% tests passed,并且时间也都能控制在0.5s以内,但是在复习了真实情况下的重组过程发现这个思路存在一些BUG是测试案例没有检测出来的。

不会抛弃本来应该抛弃的数据,同时产生错误的EOF位置标记

以如下的test为例

1
2
3
4
5
6
7
8
9
10
{
ReassemblerTestHarness test{6};
test.execute(SubmitSegment{"defg", 3});
test.execute(BytesAssembled(0));
test.execute(SubmitSegment{"abc", 0});
test.execute(BytesAvailable("abcdef"));
test.execute(BytesAssembled(6));
test.execute(SubmitSegment{"kmg", 7});
test.execute(BytesAvailable(""));
}

运行后可以发现有报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Test Failure on expectation:
Expectation: stream_out().buffer_size() returned 0, and stream_out().read(0) returned the string ""

Failure message:
The reassembler was expected to have `0` bytes available, but there were `4`

List of steps that executed successfully:
Initialized (capacity = 6)
Action: substring submitted with data "defg", index `3`, eof `0`
Expectation: net bytes assembled = 0
Action: substring submitted with data "abc", index `0`, eof `0`
Expectation: stream_out().buffer_size() returned 6, and stream_out().read(6) returned the string "abcdef"
Expectation: net bytes assembled = 6
Action: substring submitted with data "kmg", index `7`, eof `0`

Exception: The reassembler was expected to have `0` bytes available, but there were `4`

可以发现,本来在传入第一个defg的时候,字符g应该因为超出capacity而被抛弃,但是是将并没有,导致g停留在了index6的位置上。读取了_output的所有内容之后,_output的窗口应该是从index6的位置上开始准备写入,但是由于这个位置上的g在上一个窗口期中并没有被抛弃,结果导致了index7kmg写入的时候,连带前面存在的g一起将gkmg写入了_output的窗口当中,从而出现了以下报错。

The reassembler was expected to have 0 bytes available, but there were 4

同时对于EOF的位置判断也有类似的BUG,测试样例如下

1
2
3
4
5
6
7
8
9
10
11
{
ReassemblerTestHarness test{6};
test.execute(SubmitSegment{"defx", 3}.with_eof(true));
test.execute(BytesAssembled(0));
test.execute(SubmitSegment{"abc", 0});
test.execute(BytesAvailable("abcdef"));
test.execute(BytesAssembled(6));
test.execute(SubmitSegment{"g", 6});
test.execute(BytesAvailable("g"));
test.execute(NotAtEof{});
}

运行后得到如下结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Test Failure on expectation:
Expectation: not at EOF

Failure message:
The reassembler was expected to **not** be at EOF, but was

List of steps that executed successfully:
Initialized (capacity = 6)
Action: substring submitted with data "defx", index `3`, eof `1`
Expectation: net bytes assembled = 0
Action: substring submitted with data "abc", index `0`, eof `0`
Expectation: stream_out().buffer_size() returned 6, and stream_out().read(6) returned the string "abcdef"
Expectation: net bytes assembled = 6
Action: substring submitted with data "g", index `6`, eof `0`
Expectation: stream_out().buffer_size() returned 1, and stream_out().read(1) returned the string "g"

Exception: The reassembler was expected to **not** be at EOF, but was

本来在第一个操作的时候作为eofx应该是被抛弃掉并不读取的,但是在最后这个位置的eof_p还是触发了EOF判断,导致产生了不应该出现的EOF

修正方案

本质的问题就是没有丢弃掉unacceptable的字节,这里采取了一个比较省事但是很不优雅的操作,我是选择在最后扩容后重新再用resize()函数将不需要的那部分丢弃掉,来达到限制容量的目的,最后修正完毕的实现如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
void StreamReassembler::push_substring(const string &data, const size_t index, const bool eof) {
bool eof_flag = false;
size_t expand_size = index + data.length();

// 短路错误index
if (index > write_p + _output.remaining_capacity()) {
return;
}

// 取 index + data.length() 和
// write_p + _output.remaining_capacity() 中更小的那个作为扩容后的大小
if (index + data.length() <= write_p + _output.remaining_capacity()) {
// 用于判断EOF是否是在capacity当中的有效字符
eof_flag = true;
expand_size = index + data.length();
} else {
expand_size = write_p + _output.remaining_capacity();
}

// 记录EOF的位置
if (eof && eof_flag) {
end_p = expand_size;
}

const size_t cache_raw_length = cache.length();

// 先扩大一次容量,用于写入多余的内容
if (expand_size > cache_raw_length) {
cache.resize(expand_size);
dirty_check.resize(expand_size);
}

// 将要排序的内容先写入cache当中
cache.replace(index, data.length(), data);
dirty_check.replace(index, data.length(), data.length(), '1');

// 缩回原来的大小,将缓冲区外多余的内容丢弃
if (expand_size > cache_raw_length) {
cache.resize(expand_size);
dirty_check.resize(expand_size);
}

// 检查写入位上是否有字符,有字符则通过滑动len来写入_output,否则跳过
if (dirty_check[write_p]) {
size_t len = 0;
size_t output_remaining = _output.remaining_capacity();
while (dirty_check[write_p + len] && len < output_remaining) {
len++;
}
_output.write(cache.substr(write_p, len));
write_p += len;
}

// 写入位和EOF位相同,代表写入结束
if (write_p == end_p) {
_output.end_input();
}
}
]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + CS144-Lab0 计算机网络:流的输入和读出 + + /p/2ca0860a.html + + 热身

lab0前后分为两个较为简单的小任务,第一个任务是写一个类似telnet中通信的webget小应用,第二个任务是实现一个简单的ByteStream的类,只需要在单线程的情况下能正常运行即可

任务一

第一个任务的参考主要是从项目文件本身的doctests开始着手,其中在提示中已经说了我们将会使用到TCPSocketAddress,在对应的doctests/socket_example_2.ccdoctests/address_example_1.cc中,我们可以得到对于他们的使用例子,只需要创建一个以目标Address初始化并连接的TCPSocket,然后以这个socket向目标服务器发送类似telnet的请求即可获得我们需要的内容

1
2
3
4
5
TCPSocket socket;
socket.connect(Address(host, "http"));
socket.write("GET " + path + " HTTP/1.1\r\n");
socket.write("Host: " + host + "\r\n");
socket.write("Connection: close\r\n\r\n");

由于最后在输入完Connection: close之后,我们本来也要输入一个回车将请求发送,因此在这里需要两个换行符

在处理socket.read()的时候,起初没有仔细考虑pdf中提到的a single call to read is not enough的具体含义,以为是首先会接受所有的文本信息,然后对于结果需要将最后的EOF也打印出来,所以第一次写的时候只是简单的调用了两次read()

1
cout << socket.read() << socket.read();

然而在make check_webget的时候并没有通过,为了找到问题所在,首先找到check_webget的脚本,发现测试的内容为对cs144.keithw.org下的接口/nph-hasher/xyzzy发送请求,并获取最后一行的内容,而这行内容应该是一串正确的HASH。但是在这个时候尝试以上文的方式运行webget的时候则发现输出的只有以下两行

1
2
HTTP/1.1 200 OK
Content-type: text/plain

但是通过telnet的情况下,正常的输入应该是以下的内容

1
2
3
4
HTTP/1.1 200 OK
Content-type: text/plain

7SmXqWkrLKzVBCEalbSPqBcvs11Pw263K7x4Wv3JckI

这个时候就懂了多次调用read()的含义直到遇到eof的含义应该是一直读取到所有缓冲区内的内容都被读取完毕,将代码修改如下就可以通过测试了

1
2
3
4
5
6
7
8
9
10
11
void get_URL(const string &host, const string &path) {
TCPSocket socket;
socket.connect(Address(host, "http"));
socket.write("GET " + path + " HTTP/1.1\r\n");
socket.write("Host: " + host + "\r\n");
socket.write("Connection: close\r\n\r\n");
while (!socket.eof()) {
cout << socket.read();
}
socket.close();
}

任务二

第二个任务主要是要我们自己根据头文件的内容来实现一个简单的ByteStream,并且只需要考虑单线程的情况,不用考虑并发等情况。

最后完成的答案先直接贴上来,这块难度也不会很大,在写的时候先大致按要求写出一个逻辑,即使不是很清楚具体实现对不对也问题不大,只需要通过调试逐步修改即可

首先添加的成员变量如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class ByteStream {
private:
// buffer capacity
const size_t buffer_max_size;

// buffer string
std::string buffer;

// input ending flag
bool is_input_end = false;

// counter
size_t write_count, read_count;

// Hint: This doesn't need to be a sophisticated data structure at
// all, but if any of your tests are taking longer than a second,
// that's a sign that you probably want to keep exploring
// different approaches.

bool _error{}; //!< Flag indicating that the stream suffered an error.

public:
...

最后接口的实现如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ByteStream::ByteStream(const size_t capacity) : buffer_max_size(capacity), buffer(), write_count(0), read_count(0) {}

size_t ByteStream::write(const string &data) {
// 不需要在这里判断input_ended,因为写入过程都是单线程,如果要ended肯定是在write之后进行的
size_t cnt = min(remaining_capacity(), data.length());
buffer += data.substr(0, cnt);
write_count += cnt;
return cnt;
}

//! \param[in] len bytes will be copied from the output side of the buffer
string ByteStream::peek_output(const size_t len) const { return buffer.substr(0, len); }

//! \param[in] len bytes will be removed from the output side of the buffer
void ByteStream::pop_output(const size_t len) {
buffer.erase(0, len);
read_count += len;
}

//! Read (i.e., copy and then pop) the next "len" bytes of the stream
//! \param[in] len bytes will be popped and returned
//! \returns a string
std::string ByteStream::read(const size_t len) {
string output = buffer.substr(0, len);
pop_output(len);
// 在pop_output的时候会计算读取,这里不需要再+=len
return output;
}

void ByteStream::end_input() { is_input_end = true; }

bool ByteStream::input_ended() const { return is_input_end; }

size_t ByteStream::buffer_size() const { return buffer.length(); }

bool ByteStream::buffer_empty() const { return buffer.empty(); }

bool ByteStream::eof() const { return input_ended() && buffer.empty(); }

size_t ByteStream::bytes_written() const { return write_count; }

size_t ByteStream::bytes_read() const { return read_count; }

size_t ByteStream::remaining_capacity() const { return buffer_max_size - buffer.length(); }

调试

接口的逻辑实现都不难,不过写这个lab的时候的第一次在vscode的环境下使用cmake来进行调试,在这里简单记录一下调试的步骤和需求。

相关code插件: CMake, CMake Tools, C/C++(Cpptools)

在这里以write()函数中缺少了write_count += cnt这一行为例,使用make check_lab0可以发现在最后有报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
56% tests passed, 4 tests failed out of 9

Total Test time (real) = 1.49 sec

The following tests FAILED:
27 - t_byte_stream_one_write (Failed)
28 - t_byte_stream_two_writes (Failed)
29 - t_byte_stream_capacity (Failed)
30 - t_byte_stream_many_writes (Failed)
Errors while running CTest
make[3]: *** [CMakeFiles/check_lab0.dir/build.make:71: CMakeFiles/check_lab0] Error 8
make[2]: *** [CMakeFiles/Makefile2:228: CMakeFiles/check_lab0.dir/all] Error 2
make[1]: *** [CMakeFiles/Makefile2:235: CMakeFiles/check_lab0.dir/rule] Error 2
make: *** [Makefile:160: check_lab0] Error 2

此时可以将注意力先集中在最上面的t_byte_stream_one_write上,cmake中将byte_stream_one_write作为target编译并运行,可以得到以下报错

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Test Failure on expectation:
Expectation: bytes_written: 3

Failure message:
The ByteStream should have had bytes_written equal to 3 but instead it was 0

List of steps that executed successfully:
Initialized with (capacity=15)
Action: write "cat" to the stream
Expectation: input_ended: 0
Expectation: buffer_empty: 0
Expectation: eof: 0
Expectation: bytes_read: 0

Exception: The test "write-end-pop" failed

从这里可以知道是测试"write-end-pop"中的第五个执行中,bytes_written并没有返回预期希望的数字3。因此只需要在tests/byte_stream_one_write.cc内"write-end-pop"的test.execute(BytesWritten{3});的位置打上断点,然后直接使用vscode下方栏中cmakedebug图标(需要安装C/C++插件才可以使用快速调试,具体参考这里)就可以逐步找到自己逻辑中出错的地方并修改即可。

热身的两个lab提供的成就感很足,希望自己能尽快完成下一个lab

]]>
+ + + + + 知识记录 + + + + + + + cs144 + + network + + + +
+ + + + + ArchWSL安装及基础配置 + + /p/cdfd3649.html + + 准备工作

Windows上安装ArchWSL直接使用scoop来安装是比较便捷的一种方案,具体如何在Windows上配置·scoop`可以参考这篇教程:

在配置好了scoop以后,首先通过以下指令安装ArchWSL

1
scoop install archwsl

只要按正常流程,按win+s,通过Windows搜索找“Turn Windows features on or off”或“启用或关闭Windows功能”,然后在里面将 Virtual Machine PlatformWindows Subsystem for Linux 勾选上,重启电脑即可。

重启电脑之后只需要在命令行中输入arch即可启动,如果出现报错或无法使用 WSL2 的情况可以通过搜索引擎或在这里下载Linux内核更新包来解决

配置镜像源并创建非root用户

启用mirrorlist包含镜像

/etc/pacman.d/mirrorlist内已经有Arch预置好的部分国内镜像源,我们只需要将我们对应需要的镜像前面的注释取消即可使用。

或者也可以通过下面这个脚本来一键启用所有China部分的镜像源

1
sed -E '/China/,/##/s/^#S(.)/S\1/g' /etc/pacman.d/mirrorlist~ > /etc/pacman.d/mirrorlist

添加archlinuxcn源

通过以下指令将archlinuxcn相关源直接写入/etc/pacman.conf当中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
cat >> /etc/pacman.conf << EOF


# 国内archlinuxcn镜像源
[archlinuxcn]
Server = https://mirrors.aliyun.com/archlinuxcn/\$arch
Server = https://repo.archlinuxcn.org/\$arch
Server = https://mirrors.bfsu.edu.cn/archlinuxcn/\$arch
Server = https://mirrors.cloud.tencent.com/archlinuxcn/\$arch
Server = https://mirrors.163.com/archlinux-cn/\$arch
Server = https://repo.huaweicloud.com/archlinuxcn/\$arch
Server = https://mirrors.zju.edu.cn/archlinuxcn/\$arch
Server = https://mirrors.cqupt.edu.cn/archlinuxcn/\$arch
Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/\$arch
Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
EOF

安装yay和基础环境

首先通过以下指令,来更新软件源、安装archlinuxcn证书、yay和部分基础工具(其中yadm是一个用来备份dotfiles的工具,用于恢复自己常用的Linux环境下的自定义文件)

1
2
pacman -Syyu --noconfirm ;
pacman -S archlinuxcn-keyring --noconfirm && pacman -S yay wget curl zsh yadm --noconfirm

创建非root用户

  1. 创建用户 (注意替换下文的用户名

    1
    useradd -m -G wheel -s /bin/zsh 用户名
  2. wheel组内的成员给予sudo的权限

    如果希望安全考虑,在sudo之前要输入密码的话,可以输入下面的指令来配置visudo

    1
    echo '%wheel ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo

    如果偷懒,不希望每次都输入密码的话可以用下面的指令来配置visudo

    1
    echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo

    2.5. 以上所有操作全部可以自动完成,只需要将以下脚本内的用户名替换为自己的用户名即可(默认sudo不需要密码)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    sed -E '/China/,/##/s/^#S(.)/S\1/g' /etc/pacman.d/mirrorlist~ > /etc/pacman.d/mirrorlist
    cat >> /etc/pacman.conf << EOF


    # 国内archlinuxcn镜像源
    [archlinuxcn]
    Server = https://mirrors.aliyun.com/archlinuxcn/\$arch
    Server = https://repo.archlinuxcn.org/\$arch
    Server = https://mirrors.bfsu.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.cloud.tencent.com/archlinuxcn/\$arch
    Server = https://mirrors.163.com/archlinux-cn/\$arch
    Server = https://repo.huaweicloud.com/archlinuxcn/\$arch
    Server = https://mirrors.zju.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.cqupt.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/\$arch
    Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
    EOF
    pacman -Syyu --noconfirm ;
    pacman -S archlinuxcn-keyring --noconfirm && pacman -S yay wget curl zsh yadm --noconfirm
    echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
    useradd -m -G wheel -s /bin/zsh 用户名
  3. 给root用户和自定义用户设置密码(自行操作)

    修改root用户密码

    1
    passwd root

    修改自定义用户密码

    1
    passwd 用户名
  4. (可选)切换到自定义用户下并配置oh-my-zsh

    通过以下指令切换用户

    1
    su 用户名

    配置zshoh-my-zsh可以参考这篇教程(Ubuntu配置和Arch大同小异,可以选择性参考)

    Ubuntu下安装Oh My Zsh引导

设置自定义用户和ArchWSL为默认

如果希望设置ArchWSLWSL的默认发行版,并将刚刚自己创建的用户作为默认用户的话只需要分别在Powershell下执行这两条指令

1
wsl -s Arch
1
Arch config --default-user 用户名
]]>
+ + + + + 安装引导 + + + + + + + WSL + + Arch + + + +
+ + + + + Shell:管道符与重定向 + + /p/db6cc46f.html + + 前言

到目前位置自己还没专门花时间研究过Linux上那些日日都在用的工具(如ShellVim)他们本来的用法和含义,本来觉得没必要,不过在看了missing-semester之后顿时感觉效率提高了不少。因此做一个笔记,把一些很实用但是自己并不会去关注的简单用法给记录一下。

参考文章

Shell

prompt

在使用最基础的bash作为命令行的时候,常常能发现用户后面有的时候是$二有的时候是#

1
2
[halc@Zephyrus blog]$ su
[root@Zephyrus blog]#

这里$代表了当前用户为普通用户,而#的含义则代表当前是在root用户下

重定向

输出重定向

shell程序中,程序的执行主要分为 输入流输出流 两种不同的流,程序会从输入流中读取信息,然后在通过处理之后打印到输出流当中。

cat为例,其作用为将一个文件的内容打印到输出流当中,通过使用 > file< file 来对流进行重定向,可以覆写或者创建对应内容的文件

1
2
3
4
5
6
7
8
# 将我存于github的pubkey打印输出成id_rsa.pub文件
curl https://github.com/HalcyonAzure.keys > id_rsa.pub

# 将id_rsa.pub的内容重定向 **追加** 到authorized_keys当中
cat id_rsa.pub >> authorized_keys

# 将id_rsa.pub的内容先重定向给cat,再由cat输出到pubkey当中
cat < id_rsa.pub > pubkey

拓展补充 1:所有的Linux进程都包含3个文件描述符,分别是 标准输入标准输出错误输出
标准输入(stdin):对应的文件标识符为0,使用<<<来操作
标准输出(stdout):对应的文件标识符为1,使用>>>来操作
错误输出(stderr): 对应的文件标识符为2,使用2>2>>来操作
默认情况下,标准输出和错误输出都默认为使用者的屏幕,通过使用输出重定向可以做到控制日志的效果

补充拓展 2:>/dev/null 2>&12>&1 >/dev/null的区别

  • 对于>/dev/null 2>&1是指先将标准输出指向黑洞设备,然后再将错误输出指向标准输出的指向内容(此时是黑洞),因此标准输出和错误输出都将不输出
  • 对于2>&1 >/dev/null是先将错误输出指向标准输出(此时为屏幕),然后将标准输出指向黑洞,因此此时错误输出将打印到屏幕,而标准输出将不输出
1
2
# 运行example.sh,并将标准输出重定向至stdout.log,将错误输出重定向至stderr.log
bash example.sh 1>stdout.log 2>stderr.log

以一个简单的test.cpp程序为例

1
2
3
4
5
6
7
8
#include<iostream>
using namespace std;

int main() {
cout << "This is stand output" << endl;
cerr << "This is error output" << endl;
return 0;
}

通过编译并重定向运行

1
2
3
4
5
6
7
8
[halc@Zephyrus ~]$ g++ test.cpp -o test
[halc@Zephyrus ~]$ ./test 1>stand.log 2>err.log
[halc@Zephyrus ~]$ rg output *.log
stand.log
1:This is stand output

err.log
1:This is error output

如果希望将对应的文件描述符关闭的话有两种方法

1
2
3
4
# $-指关闭对应的文件操作符
[halc@Zephyrus ~]$ ./test 1>$- 2>$-
# /dev/null为linux内的黑洞设备
[halc@Zephyrus ~]$ ./test 1>/dev/null 2>/dev/null
  • 对于>操作符,首先会判断右侧的文件是否存在,如果存在就删除再创建,如果不存在则直接创建,并且右侧的文件一定会置空。
  • 一条命令执行前会检查0,1,2三个I/O设备是否正常,如果异常则不会进行命令执行

输入重定向

如果想要将内容输出重定向到某个文件,以cat举例有两种不同的办法

1
2
3
4
# 将read.md的内容重定向至write.md
cat > write.md < read.md
# "<< EOF"指对流进行重定向输入,直到遇到"EOF"(可修改)作为末尾则结束
cat > input.md << EOF

摘自:How does “<<” operator work in linux shell?

<< 操作符主要有以下三个操作逻辑

  1. 首先执行该操作符左侧的程序,在上面的例子中就是cat
  2. 抓取用户包括换行等所有的输入内容,直到输入的内容为用户指定的EOF结尾内容(在上面的例子中则恰好也是EOF)则停止
  3. 将所有除了EOF的内容都作为(1)程序的标准输入执行

实例:通过bash脚本创建一个test.cpp文件

1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash
cat > test.cpp << EOF
#include<iostream>
using namespace std;

int main() {
cout << "This is stand output" << endl;
cerr << "This is error output" << endl;
return 0;
}
EOF

管道和重定向的使用区别

1、文件类型上
左边的命令应该有标准输出 | 右边的命令应该能接受标准输入;
左边的命令应该有标准输出 > 右边只能是文件;
左边的命令应该需要标准输入 < 右边只能是文件;

2、管道触发两个子进程执行 “|” 两边的程序,而重定向是在一个进程内执行。

结合管道的输入重定向

1
2
3
4
5
$ (sed -n '1,$p' | grep -n 'output') < test.cpp
5: cout << "This is stand output" << endl;
6: cerr << "This is error output" << endl;
# 等价于 sed -n '1,$p' < test.cpp | grep -n 'output'
# 对于管道运算符,如果希望将`test.cpp`传递给前面的第一个可执行文件`sed`,则需要使用单括号将整个管道传输看作一个单独的指令,否则`test.cpp`将传入`grep`内

由于标准输入和标准输出在管道运算符中的重定向是发生在"内容输出"之前的,因此可以通过重定向来修改管道中传输的数据

Because pipeline assignment of standard input or standard output or both takes place before redirection, it can be modified by redirection.

举个例子来说,本来管道传输默认只传输标准输出的内容,并不会传输错误输出

1
[halc@Zephyrus ~]$ command1 2>&1 | command2

通过上面的指令,首先command1错误输出 会在执行前被重定向至标准输入,然后command1执行,将 标准输出错误输出 一并通过管道进行传输,作为command2的标准输入

结合管道的输出重定向

1
2
3
4
# 首先将test.sh的内容通过cat打印到标准输出, 然后管道传输该输出给tee
# tee执行之前通过&>将tee的标准输入和错误输出都重定向至/dev/null中,
# 然后执行tee将管道获取的内容写入text.txt,并且将相同的内容写入null设备当中
cat test.sh | tee text.txt &> /dev/null

> 输出重定向,往往在命令最右边(也可以用到命令中间),接收左边命令的输出结果,重定向到指定文件。

1
2
3
4
5
6
7
8
# 如果管道符左侧的程序已经将标准重定向指向了其他文件,那么在bash中管道传输的数据将为空
[halc@Zephyrus ~]$ rg Word dict &>log | cat
# 此时无输出
[halc@Zephyrus ~]$ cat log
Word1
Word2
Word3
# 但是log内应该是有内容匹配的
zsh下的重定向与管道传输

在自己实验的时候发现zsh下即使重定向了标准输出和错误输出依旧可以通过管道读取内容,这主要是zsh有一个可以将输出重定向给多个文件的特性,对于管道也会进行二次传递

参考 Redirection and pipe behavior in bash vs. zsh

Read the MULTIOS documentation in the zshmisc man page. It’s a feature of zsh which causes it to redirect the output to multiple files at the same time, and it can also be a pipe.

具体举例

1
ls >a >b

上面这个命令在bash当中只有文件a会有内容,而b中并没有获取到标准输出。但是在zsh下执行上面的命令,则ab中都会拥有相同的输出内容。

]]>
+ + + + + 知识记录 + + + + + + + missing-semester + + shell + + + +
+ + + + + 快速部署rclone为services + + /p/bbde595d.html + + 参考链接

安装Rclone

在Linux上安装rclone可以直接使用默认发行版仓库的版本,也可以官方脚本安装

1
curl https://rclone.org/install.sh | sudo bash

配置Rclone

安装完成了之后通过输入以下指令可以在交互式页面当中添加、修改或删除连接信息

1
rclone config

挂载和关闭挂载

在配置完成之后,如果需要将rclone的内容挂载到本地,执行类似以下格式的指令

1
rclone mount remote_name:path/to/directory path/to/mount_point

其中可以添加以下参数来对本地的文件进行缓存设置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--transfers:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文档同时传输的速度。
--buffer-size:该参数为读取每个文档时的内存缓冲区大小,控制rclone上传和挂载的时候的内存占用,调低点可以防止内存占用过高而崩溃,但太低可能会影响部分文档的传输速度。
--low-level-retries:该参数为传输文档没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文档上传进度。

下列参数主要是上传用的
--umask 0000
--default-permissions
--allow-non-empty
--allow-other
--transfers 4
--buffer-size 32M
--low-level-retries 200

如果你还涉及到读取使用,比如使用H5ai等在线播放,就还建议加3个参数,添加格式参考上面
--dir-cache-time 12h
--vfs-read-chunk-size 32M
--vfs-read-chunk-size-limit 1G
1. --vfs-cache-mode off
- 所有文件操作全部直接进行
- 失败无法自动重试
2. --vfs-cache-mode minimal
- 读写模式打开的文件将会首先缓冲到磁盘
- 其他模式打开文件直接进行操作
- 失败无法自动重试
3. --vfs-cache-mode writes
- 读写模式打开的文件将会首先缓冲到磁盘
- 只写模式打开的文件将会首先缓冲到磁盘
- 只读取模式打开的文件将会直接进行操作
- 支持自动重试
4. --vfs-cache-mode full
- 所有文件操作全部缓存
- 读取会下载整个文件

在挂载的时候可以添加--deamon参数来让rclone后台临时挂载,如果要取消挂载则输入以下指令

1
fusermount -u path/to/mount_point

通过systemd自启动挂载

如果需要配置开机自启动挂载对应的Rclone服务,只需要创建以下文件(以onedrive为例,参数和名字可自定义):~/.config/systemd/user/rclone-onedrive.service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[Unit]
Description=OneDrive (rclone)
# 挂载在当前用户的~目录的OneDrive文件夹内,需要提前创建好~/OneDrive
AssertPathIsDirectory=%h/OneDrive 、
# Make sure we have network enabled
After=network.target

[Service]
Type=simple

# 启用vfs模式,将onedrive挂载给/home/xxx/OneDrive文件夹
ExecStart=/usr/bin/rclone mount onedrive:/ OneDrive --vfs-cache-mode full
# 取消挂载
ExecStop=/usr/bin/fusermount -zu %h/OneDrive

# Restart the service whenever rclone exists with non-zero exit code
Restart=on-failure
RestartSec=15

[Install]
# Autostart after reboot
WantedBy=default.target

写入完成之后,通过执行以下两个指令在当前用户下生效该服务

1
2
systemctl --user daemon-reload
systemctl --user enable --now rclone-onedrive
]]>
+ + + + + 小技巧 + + + + + + + rclone + + + +
+ + + + + 总结:2022年5月 + + /p/795cfa1d.html + + 这个月算是找回了感觉,还算充实。

做了的事情

学习方面

这个月应该算是最平常的一个月了,整个人谈不上有动力,也谈不上完全摆烂。月初刚开始的时候把OSTEP上操作系统虚拟化的部分基本上写完了,然后就开始关注开源之夏项目申请相关的内容。在之前某个学长的推荐下看过一篇xmake-clangd配置vscode写cpp环境的知乎的帖子,当时对于cpp编译和链接相关的知识还完全没有概念,在开源之夏的时候模模糊糊搜了下xmake发现居然有项目能申请,就怂恿和gofaquan一起报了相关的项目。在五月底到六月初花了大概一百多RMB学习了cpp常见的一些项目管理会遇到的问题,感觉还蛮值的,希望最后项目申请能成功中标,给暑假的自己找点事情做。

学校也快到期末了,这学期的大作业还算应付的过来,大部分大作业都能组队解决,不能组队的也不算麻烦,基本上1-2天的时间也都能搞定,希望下个月的期末考试能一切顺利,别挂科。

生活方面

这个月主要的学习部分应该也就是上半个月和六月份初了。五月中旬的时候学校终于有了解封相关的信息,于是开始到处想办法出去吃,报复性消费了好几顿过度饮食,体重直接涨了十多斤。现在期末考试临近,也没有什么减肥的想法,打算在考试前可能就通过不断的摄入碳水来缓解压力了,减肥啥的还是等考完期末考试再说了XD。

然后就是每次考试前都日常想要有的报复性消费。这学期把自己之前Niz那个108键的键盘换成了68配位的。目前过渡到日常使用已经没什么问题了,后面看看能不能开发点新功能,再提高提高效率(其实就是差生文具多)

六月份要做的事情

学习计划

  • 希望期末考试算顺利复习完,不挂科
  • 能熟悉xmake要导入的包相关源码

生活计划

在期末考试结束以前是不指望有什么生活质量了,只能寄托希望给暑假的自己了

  • 减肥!至少恢复160-以下
  • 调整自己的作息,打破在家必摆烂的心态(感觉不太可能)
]]>
+ + + + + 个人总结 + + + + + + + 总结 + + + +
+ + + + + OSTEP:分页的计算 + + /p/c1ec22c4.html + + 第二十章:分页:较小的表
  1. 对于线性页表,只要知道第一个Page的地址,存于寄存器当中,就可以通过这个地址依次陆续推算下一个或后面任意一个有效的地址范围。对于多级页表,通过多次搜索,依旧可以在只有最初的页表的地址的情况下,通过多次的偏移查询来定位到最后需要的特定地址。

  2. 这里取例子说明算法,具体答案通过-c参数可直接输出

    这里以seed0的时候为例

    首先,在README.md中可以得到以下信息

    • Page Size: 32 bytes
    • Virtual Address Space:32 KB(1024个分页 2^15)
      • 虚拟地址需要 15 bits (VPN 占 10 bit,offset 占 5 bit)
    • Physical Memory: 128个分页(2^12)
      • 物理地址需要 12 bits (PFN 占 7bit, offset 占 5 bit )
    • Virtual Address Space 的前五位对应了Page Directory的索引

    通过seed生成0对应的地址数据,用于PDE查表,内容如下

    Page Content
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    page   0:1b1d05051d0b19001e00121c1909190c0f0b0a1218151700100a061c06050514
    page 1:0000000000000000000000000000000000000000000000000000000000000000
    page 2:121b0c06001e04130f0b10021e0f000c17091717071e001a0f0408120819060b
    page 3:7f7f7f7fcd7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f887f7f7f7f7f7f7f7fb9
    page 4:0b041004051c13071b131d0e1b150107080507071b0e1b0411001c000c181e00
    page 5:17131d0a1202111906081507081d1e041b1101121301171902140e070e040a14
    page 6:0000000000000000000000000000000000000000000000000000000000000000
    page 7:0000000000000000000000000000000000000000000000000000000000000000
    page 8:11101a120f10180a11151e151d0c12170a081e0a1e1a06191e08141702190915
    page 9:0000000000000000000000000000000000000000000000000000000000000000
    page 10:0000000000000000000000000000000000000000000000000000000000000000
    page 11:0910141d04011a18170e150c050c18181d1b151016051c16120d13131b11060d
    page 12:060b16191c05141d01141a0a07120d050e0c110f090b19071100160a0108071d
    page 13:19100b0e000614140f1d0e091a08121519180b0101161d0a0d16140814090b10
    page 14:1218140b000d1c0a07040f10020c141d0d0d0e060c140c12191e1b0b00120e07
    page 15:0000000000000000000000000000000000000000000000000000000000000000
    page 16:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fea7f7f7f
    page 17:0000000000000000000000000000000000000000000000000000000000000000
    page 18:7f7f7f7f7f7fab7f7f7f8e7f7f7fdd7f7f7f7f7f7f7f8b7f7f7f7f7f7f7f7f7f
    page 19:00130001061402011e0d1b060d0b050a1e170b0c081016150e011c0c0c00041a
    page 20:1a190402020c1d110807030419041a190411001a11170f151c111b0a03000719
    page 21:0b081b0e1c151e121e050d111e111a130f0c0b09061d101a1b1d070a13090417
    page 22:1212150f081b0a0e130f1d1d1c1c120f150608010500140418151e0c1c0e0a03
    page 23:1d0f030b0c0f1e1e1113140f0f091502091b071d1e110102060a03180b07010b
    page 24:0000000000000000000000000000000000000000000000000000000000000000
    page 25:03031c031b0e0e0a0c0b110a1907070e1c0016000c170d0d070e070814121c1e
    page 26:090e1d18081115180d0c170d070e1d040e130e06001513000917131004150e15
    page 27:0000000000000000000000000000000000000000000000000000000000000000
    page 28:0f1d0f0a0211070b0b17071d170e1b0b0b04180c0f0e140b1c0d0b0c171e1a0e
    page 29:17081e031b010710120c030708171c120118090a10071c050c08101113100c13
    page 30:7f7f7f7f7f847f7f7f7f977fbd7f7ff47f7f7f7f7f7f7f7f7f7f7f7f7f7f9c7f
    page 31:7f7f7f7f7f7fd07f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 32:0000000000000000000000000000000000000000000000000000000000000000
    page 33:7f7f7f7f7f7f7f7fb57f9d7f7f7f7f7f7f7f7f7f7f7f7f7f7f7ff6b17f7f7f7f
    page 34:0413050d0c02161518101105060710190b1b16160a031d1a0c1a1b0a0f0a151c
    page 35:0000000000000000000000000000000000000000000000000000000000000000
    page 36:1d1313160c0c1400050a07130b1b110c0c150c14010d0804100f11171b0f090e
    page 37:1e0f0a0d0c100c021e1e05070d15001913081a1409101e01151a150412180c12
    page 38:0000000000000000000000000000000000000000000000000000000000000000
    page 39:1b111e171108150e160c0f001601151218081506100a1e1e06110a1e1c121615
    page 40:0d030b1007190b0709191c1d0017100307080c0e1d01151a0b07060904110700
    page 41:7f7f7f7f7f7f7f7fe57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8d7f7f7f7f7f
    page 42:03041501111c1015001312110c0b1e01001d050306181d000d030806140a050f
    page 43:190802041311011e0e0916000d141d171b030d00080b0a0b180519100a11050f
    page 44:7f7f7f7f7f7fcc7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fa27f7f7f7f7f7f
    page 45:7fb27fef7f7f7f7fa4f57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 46:0000000000000000000000000000000000000000000000000000000000000000
    page 47:070a0f1002090b0c0e0d020613190f0402040b111410110a14160c19171c0e0a
    page 48:0000000000000000000000000000000000000000000000000000000000000000
    page 49:1e0a0f0702030d13101003010b1d05080e1c1d00140714171b151a1804011610
    page 50:161b040706011a0f020d0d181704130f0004140b1d0f15040e1619060c0e0d0e
    page 51:14000f1a070a1a0511071d180d02090f1c0311151019101d12120d120b110905
    page 52:0000000000000000000000000000000000000000000000000000000000000000
    page 53:0f0c18090e121c0f081713071c1e191b09161b150e030d121c1d0e1a08181100
    page 54:1901050f031b1c090d11081006090d121008070318031607081614160f1a0314
    page 55:0000000000000000000000000000000000000000000000000000000000000000
    page 56:0000000000000000000000000000000000000000000000000000000000000000
    page 57:1c1d1602020b000a001e19021b0606141d03000b00121a05030a1d041d0b0e09
    page 58:0000000000000000000000000000000000000000000000000000000000000000
    page 59:0000000000000000000000000000000000000000000000000000000000000000
    page 60:0000000000000000000000000000000000000000000000000000000000000000
    page 61:010510020c0a0c031c0e1a1e0a0e150d09161b1c130b1e1302021701000c100d
    page 62:7f7f7fa87f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 63:0612060a1d1b19010407181a12161902021a010601001a0a0404141e0f1b0f11
    page 64:18121708080d1e161d10111e0518181a1704141c110b1d110c13180700101d15
    page 65:7f7f7f7f7f7f7f7f7f7f997f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 66:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fd77f7f
    page 67:0000000000000000000000000000000000000000000000000000000000000000
    page 68:121216020f060c0f0a0c16011d120511020f150d09141c1b0b1a03011e171311
    page 69:190a19020d0a0d190f1e1a03090016001b050c01090c0117160b1902010b1b17
    page 70:0000000000000000000000000000000000000000000000000000000000000000
    page 71:7f7f7f7f7f7f7f7f7f7f7f857f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 72:180c0018050c0b030a051314000e111b0f02011a181a081402190a1d0e011c13
    page 73:0000000000000000000000000000000000000000000000000000000000000000
    page 74:0d0b1e08180d0b011a151b0d14030c06011d0604060b10041e1e040c151b0f1c
    page 75:1a1c011b00141c0f0c0a1c1c13160a041e14081e120a1b021804030816120d04
    page 76:0c11150c1b1d1e01191b041d03061d191108070c0013011702000817190f1d03
    page 77:1c061606001b1a0205071c0b190d0b171308121519141312021d16081513140b
    page 78:0e02171b1c1a1b1c100c1508191a1b121d110d141e1c1802120f131a07160306
    page 79:1e1b1516071708030e0a050d1b0d0d1510041c0d180c190c06061d12010c0702
    page 80:1b081d1c020d170d0f19151d051c1c131d071b171202000007170b18130c1b01
    page 81:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fe27f7f7f7f7f7f7f7f7f7f7f7f7ffa
    page 82:0000000000000000000000000000000000000000000000000000000000000000
    page 83:0000000000000000000000000000000000000000000000000000000000000000
    page 84:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f947f7f7f7f7fce
    page 85:7f7f7f7f7f7f7f7f9a7fbf7f7f7f7f7f7f7f7f7faf7f7f7f7f7f7f7f7f7f7f7f
    page 86:7f7f7f7f7f7f7fc57f7f7f7f7f7f7f7f7f7f7f7fca7f7fee7f7f7f7f7f7f7f7f
    page 87:1805180d170e1802011c0f1b1d14110602191b18150d09030d111c1d0c031716
    page 88:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc47f7f7f7f7f7f7f7f7f7f7f7f
    page 89:0000000000000000000000000000000000000000000000000000000000000000
    page 90:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc07f7f7f7f7f7f7f7fde7f7f7f7f7f7f
    page 91:7f7f7f7f7f7f7f7f7f7f7f7fa57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 92:0000000000000000000000000000000000000000000000000000000000000000
    page 93:0a1a1907001905181505021c12130e0412071816001c01020904070b160c080f
    page 94:1406190710140713080519110a1200040c1e0f021718181115061619170a1213
    page 95:0a1d0f1d1e1915040012151d10151406131e0315130b18001b190e030e12070f
    page 96:7f7f7f7f7f7f7f7f7f7f7f7f7f7fb67f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 97:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc87f7f7f7f7fe77f7f7f7f7f7f7f7f7f
    page 98:15191803171a170e1503170818130f100201001804030b1e1b0919020c111e01
    page 99:090b1304150b1204140a0e0c0e1509140109170113000e1b0010021a15171400
    page 100:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fa77f7f7f7f7f7f7f7f7f7fe37f7f
    page 101:0e0a00010b061005061416091a070a16011c020e1601191e0e030203170c1c0d
    page 102:1d031b0116000d1a0c1c1612050a0c121e080f1c0a13171317061d0512091309
    page 103:1e171c061012190e180c121a181400050f07021a1d090c19011303081901010c
    page 104:7f7f7f7f7f7f7f7f7f7f7f7f80aa7f7f7f7f7f7f7f7f7f7f7f7f7f7ff07f7f7f
    page 105:b37f7f7f7f7f7f7f7f7f7f7f7f937f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 106:160a000e1001110a00050310011c1a1d091c1e170814120c090103040e131701
    page 107:7f7f7f7f7f7f7f7f7f7f7f7f7f7ff17f7f7f7f7f7f7f7f7ff37f7f7f7f7f7f7f
    page 108:83fee0da7fd47febbe9ed5ade4ac90d692d8c1f89fe1ede9a1e8c7c2a9d1dbff
    page 109:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f827f7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 110:1614041e0c120b010e0401131303110a0b180f1b120e130a03151318031c181c
    page 111:08000115111d1d1c01171514161b130b10061200040a18160a1301051e080c11
    page 112:19051e1302161e0c150906160019100303141b081e031a0c02080e181a041014
    page 113:1d07111b1205071e091a181716181a01050f06100f03020019021d1e170d080c
    page 114:0000000000000000000000000000000000000000000000000000000000000000
    page 115:110601040d1406151a170d141e1b0a1505110b0d0d141a0e0417171d0c0e101b
    page 116:0a130b11150f14171a05060f0f19101b180f190e0a0d0e1401161e0e02060307
    page 117:1b0a170019111d0b130a18121e000401031c1d0e1d19181705110d1d05051404
    page 118:1119021a1c05191a1b101206150c00040c1b111c1c02120a0f0e0e03190f130e
    page 119:0000000000000000000000000000000000000000000000000000000000000000
    page 120:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fcb7f7f7f7f7f7f7f7f7f7f7f7f7f
    page 121:0000000000000000000000000000000000000000000000000000000000000000
    page 122:051e0312041b1d18090717090d01040002020d1116040d13020d0b1d010c0c16
    page 123:0000000000000000000000000000000000000000000000000000000000000000
    page 124:0000000000000000000000000000000000000000000000000000000000000000
    page 125:0000000000000000000000000000000000000000000000000000000000000000
    page 126:7f7f7f7f7f7f7f7f8ce6cf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f967f7f7f7f7f
    page 127:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fdf7f7f7f7f7f7f7f7f7f7f7f7f957f7f

    并且根据模拟生成的PDBR: 108可以知道Page 108对应的内容即是第一级PDE的映射

    接下来就可以进行计算了,这里取一个vaildinvaild的答案分析计算过程

    1
    2
    3
    4
    5
    6
    7
    8
    Virtual Address 611c:
    --> pde index:0x18 [decimal 24] pde contents:0xa1 (valid 1, pfn 0x21 [decimal 33])
    --> pte index:0x8 [decimal 8] pte contents:0xb5 (valid 1, pfn 0x35 [decimal 53])
    --> Translates to Physical Address 0x6bc --> Value: 08
    Virtual Address 3da8:
    --> pde index:0xf [decimal 15] pde contents:0xd6 (valid 1, pfn 0x56 [decimal 86])
    --> pte index:0xd [decimal 13] pte contents:0x7f (valid 0, pfn 0x7f [decimal 127])
    --> Fault (page table entry not valid)

    Virtual Address 611c

    1. 将611c按二进制转换为Virtual Address Space对应的 15 bits 为 11000 01000 11100。对PDE分割前五位有11000(decimal 24)

    2. 这个时候对最顶层的PDTR对应的Page 108进行查表操作

    首先可以通过Page Content得到Page 108内容如下

    1
    2
    Page 108: 83 fe e0 da 7f d4 7f eb be 9e d5 ad e4 ac 90 d6 92 d8 c1 f8 9f e1 ed e9 a1 e8 c7 c2 a9 d1 db ff
    Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    通过查表找到对应Index的内容可以知道24(11000)对应位置的内容是a1,转换为二进制为1010 0001,读取最高位为1可以知道是vaild。再通过后面的0010 0001转换为十进制为33,因此再继续查询Page 33的内容

    1
    2
    Page 33:7f 7f 7f 7f 7f 7f 7f 7f b5 7f 9d 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f f6 b1 7f 7f 7f 7f
    Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

    611c的[1-5]位为PDE,这时我们则需要通过[6-10]位来通过PTE寻找VPN对应的PFN地址。由611c11000 01000 11100可以知道这次为01000(decmial 8),对照上面page 33可以发现第八个对应的内容为53,因此可以知道最终VPN对应上了PFNPage 53。最后再通过offset11100,配合Page 53对应的二进制PFN地址11 0101结合offset11100110101 11100,也就是最后答案的0x6bc,其中通过offsetPage 53中查表可以找到对应的 Value08

    Virtual Address 3da8

    1. 611c同理,将3da8转为二进制01111 01101 01000,得到pde index01111(15),对应的Value0xd6(1101 0110),通过1101 0110最高位可以知道目标分页为vaild,去掉vaild bit可以得到索引的pte0x56(0101 0110 | 86)

    2. 检索Page 86,由PTE index01101可以找到对应的Value0x7f(0111 1111)由于最高位为0,因此是invaild,也就是说pte无效,无法访问

    其他的情况也是依次类推,即可算出结果是否有效

  3. 根据个人理解,具体缓存hitmiss的概率主要由对应内存上的数据决定。对于访问次数较多的内容hit缓存加快速度的概率自然更高;而对于不重复的多次查询(比如上面的练习),自然miss的概率会更高。因此对于进程来说,如果能将数据尽量集中在某一块分页上则能有效提高内存访问和处理的速度。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:TLB缓存命中和非命中的开销差距 + + /p/20416971.html + + 第十九章:实际操作系统的TLB表项

本章为测量实验,主要要求为写一份tlb.c来测试在TLB missTLB hit的情况下性能开销的变化,以感受TLB的重要性

对于题中问题的回答

  1. 由于gettimeofday()的函数只能精确到微秒,不足以测试较为精确的时间,因此使用CLOCK_PROCESS_CPUTIME_IDclock_gettime();搭配即可获得纳秒级的时间测量,具体代码实现如下

  2. 具体代码实现如下

    tlb.c
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    #define _GNU_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/time.h>
    #include <pthread.h>

    // 将进程锁定在某个固定CPU上
    void lockCpu(int cpuId)
    {
    cpu_set_t mask;
    CPU_ZERO(&mask);
    CPU_SET(cpuId, &mask);
    if (sched_setaffinity(0, sizeof(mask), &mask) < 0)
    {
    fprintf(stderr, "set thread affinity failed\n");
    }
    }

    int main(int argc, char *argv[])
    {
    if (argc != 3)
    {
    fprintf(stderr, "Usage: ./tlb pages trials");
    exit(EXIT_FAILURE);
    }

    // 将进程锁定在CPU0上
    lockCpu(0);

    // 申请页的数量
    int page_numebr = atoi(argv[1]);
    int trials = atoi(argv[2]);

    if (page_numebr <= 0)
    {
    fprintf(stderr, "Invaild Input");
    exit(EXIT_FAILURE);
    }

    int jump = sysconf(_SC_PAGE_SIZE) / sizeof(int);

    struct timespec start, end;
    struct timespec start_hit, end_hit;

    int sum_miss = 0;
    int sum_hit = 0;

    int cnt = 0;

    while (trials--)
    {
    for (int step = 0; step < page_numebr * jump; step += jump)
    {
    cnt++;
    int *array = calloc(page_numebr, getpagesize());

    // 计算TLB miss的时间
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);
    array[step] += 0;
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end);
    sum_miss += end.tv_nsec - start.tv_nsec;

    // 计算TLB hit的时间
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start_hit);
    array[step + 1] += 0;
    clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end_hit);
    sum_hit += end_hit.tv_nsec - start_hit.tv_nsec;
    free(array);
    }
    }
    int miss_average = sum_miss / cnt;
    int hit_average = sum_hit / cnt;

    printf("Time per access(TLS miss): %d\n", miss_average);
    printf("Time per access(TLS hit): %d\n", hit_average);

    return 0;
    }

    该程序主要思路为

    1. 统计访问内存需要的总时间
    2. 首先统计TLB miss的情况,在miss之后TLB被激活
    3. 统计对应分页内存的后一位,此时TLB hit,能够成功快速定位
    4. 将总时间除以操作的总次数,得到最后的平均每次时间(单位为ns

    大致结果如下

    1
    2
    3
    > ./tlb 1000 10
    Time per access(TLS miss): 2105
    Time per access(TLS hit): 223

    可以明显发现未命中的时候访问时间要远高于TLB hit时的时间

  3. 通过Pythontlb进行调用,大致结果为4.的效果

  4. 统计结果如下

    TLB统计

    其中蓝色对应TLB miss的时间,橙色对应了TLB hit的开销时间

    Python画图代码如下

    Matplotlib
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    import os
    import sys
    import re
    import matplotlib.pyplot as plt


    def execRelocation(page_number, trival):
    r = os.popen(
    './tlb %d %d' % (page_number, trival))
    text = r.read()
    pattern = r"(\d+)"
    tlb = re.findall(pattern, text)
    r.close()
    return tlb


    page_number = sys.argv[1]
    trival = sys.argv[2]

    hit_time_access = []
    miss_time_access = []
    vpn_n = []

    for vpn in range(1, int(page_number), 128):
    print(str(vpn) + "/" + str(page_number))
    tlb = execRelocation(vpn, int(trival))
    hit_time_access.append(int(tlb[0]))
    miss_time_access.append(int(tlb[1]))
    vpn_n.append(vpn)

    plt.xlabel("Virtual Page Number")
    plt.ylabel("Time Per Access")

    plt.scatter(vpn_n, hit_time_access, label="Hit")
    plt.scatter(vpn_n, miss_time_access, label="Miss")

    plt.savefig("./paging.png")
  5. 添加-O0的参数可以防止gcc在编译的时候不进行优化

    示例如下

    1
    gcc -O0 tlb.c -o tlb
  6. 上下文切换时,解决方案为使用Docker创建一个单核的虚拟机来进行实验操作,这次实验中,使用sched_setaffinity函数来设置进程对CPU亲和力,以让程序在某一单一CPU上运行。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #define _GNU_SOURCE
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/time.h>
    #include <pthread.h>

    // 将进程锁定在某个固定CPU上
    void lockCpu(int cpuId)
    {
    cpu_set_t mask;
    CPU_ZERO(&mask);
    CPU_SET(cpuId, &mask);
    if (sched_setaffinity(0, sizeof(mask), &mask) < 0)
    {
    fprintf(stderr, "set thread affinity failed\n");
    }
    }
  7. 通过使用calloc()函数,可以在对堆内的变量进行分配内存的同时进行初始化操作,并且在每一次循环进行之前都销毁数组重新创建,可以减少对实验测试的影响

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:分页的原理 + + /p/44838b9c.html + + 第十八章:分页介绍
  1. 在虚拟地址中,vpn=address space size/page size. 所以在分页大小不变的情况下增加址空间大小会增加分页数量,在地址空间大小不变的情况下增加分页大小会减少分页数量。

    如果使用了很大的分页,当程序只需要很小一部分内存的时候依旧会申请过大的内存,造成不必要的内存浪费

  2. 每次当某个分页被地址空间使用后,PTE中对应的Vaild Bit就会置为1。当提高used paged数量后,操作系统总是能找到vpn对应的pfn

  3. 在这三种分配来说,前两种分页的大小相对于地址空间本身来说太大了,而在第三个例子当中,相对于256m,修改分页大小1m为更小的值将更加有助于提高空间的利用效率。

  4. 首先,地址空间和物理空间的大小都要是分页大小的倍数,其次,物理空间必须要比地址空间更大,否则会无法访问对应的地址空间。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:内存碎片的管理 + + /p/3d85131.html + + 第十七章:空闲空间管理
  1. 执行题目给出的参数可以得到以下内容

    answer
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    seed 0
    size 100
    baseAddr 1000
    headerSize 0
    alignment -1
    policy BEST
    listOrder ADDRSORT
    coalesce False
    numOps 10
    range 10
    percentAlloc 50
    allocList
    compute True

    ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
    Free List [ Size 1 ]: [ addr:1003 sz:97 ]

    Free(ptr[0])
    returned 0
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

    ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

    Free(ptr[1])
    returned 0
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

    ptr[2] = Alloc(8) returned 1008 (searched 3 elements)
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

    Free(ptr[2])
    returned 0
    Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    ptr[3] = Alloc(8) returned 1008 (searched 4 elements)
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

    Free(ptr[3])
    returned 0
    Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    ptr[4] = Alloc(2) returned 1000 (searched 4 elements)
    Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    ptr[5] = Alloc(7) returned 1008 (searched 4 elements)
    Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1015 sz:1 ][ addr:1016 sz:84 ]

    这里以开头两段为例子分析,后面的算法相同

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
    Free List [ Size 1 ]: [ addr:1003 sz:97 ]

    Free(ptr[0])
    returned 0
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

    ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

    Free(ptr[1])
    returned 0
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

    首先,根据开头参数可以知道目前分配方式不考虑Header头指针,并且不考虑内存合并

    ptr[0] = Alloc(3)会从1000开始分配大小为3的内存(此时空间足够,分配成功),并返回1000的地址作为开头。此时空闲空间Free List只有一块,从1003开始,总大小为97

    之后的Free(ptr[0])则将刚刚分配的内存释放,释放后由于并未合并,因此出现了[3]->[97]的空闲空间表,之后再进行ptr[1] = Alloc(5)。由于第一个空闲空间为[3]不足以容纳[5]的分配,因此第二个空间是从1003作为内存开始的地址,并使用了5的内存空间

    然后再进行Free(ptr[1])的操作释放内存并且不合并,则有了[3]->[5]->[92]的空闲可用空间。后面的运算以此类推

    如果出现了在空闲的大内存中分配了新的小内存

    1
    2
    ptr[4] = Alloc(2) returned 1000 (searched 4 elements)
    Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    则占用部分内存后,新的剩余内存将被作为新的内存段保留使用,并且已分配内存也会产生新的内存碎片

  2. 使用最差匹配有如下输出

    answer
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    seed 0
    size 100
    baseAddr 1000
    headerSize 0
    alignment -1
    policy WORST
    listOrder ADDRSORT
    coalesce False
    numOps 10
    range 10
    percentAlloc 50
    allocList
    compute True

    ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
    Free List [ Size 1 ]: [ addr:1003 sz:97 ]

    Free(ptr[0])
    returned 0
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

    ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
    Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

    Free(ptr[1])
    returned 0
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

    ptr[2] = Alloc(8) returned 1008 (searched 3 elements)
    Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

    Free(ptr[2])
    returned 0
    Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    ptr[3] = Alloc(8) returned 1016 (searched 4 elements)
    Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1024 sz:76 ]

    Free(ptr[3])
    returned 0
    Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1024 sz:76 ]

    ptr[4] = Alloc(2) returned 1024 (searched 5 elements)
    Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1026 sz:74 ]

    ptr[5] = Alloc(7) returned 1026 (searched 5 elements)
    Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1033 sz:67 ]

    比对可以发现,在最差匹配的情况下,第二次重复分配8大小的空间时不会重复利用本身空闲的长度为8的空间,而是依旧从后面的最大空闲空间中分配8大小的空间出来,此时地址从1024开始分配,并且1008开头的地址不会被复用

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Free(ptr[2])
    returned 0
    Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

    --- BEST
    - ptr[3] = Alloc(8) returned 1008 (searched 4 elements)
    - Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

    +++ WORSE
    + ptr[3] = Alloc(8) returned 1016 (searched 4 elements)
    + Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1024 sz:76 ]
  3. 在使用FIRST进行匹配的情况下,空间分配的情况与BEST无异,在本例题示范当中,由于FIRST是找到可以用的内容后直接进行匹配,而示例当中恰好所有可用空间最小的情况匹配了FIRST的情况,因此只有搜索的次数变少,效率变快,其他差异不大。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    + policy FIRST
    ---
    - policy BEST

    + ptr[3] = Alloc(8) returned 1008 (searched 3 elements)
    ---
    - ptr[3] = Alloc(8) returned 1008 (searched 4 elements)

    + ptr[4] = Alloc(2) returned 1000 (searched 1 elements)
    ---
    - ptr[4] = Alloc(2) returned 1000 (searched 4 elements)

    + ptr[5] = Alloc(7) returned 1008 (searched 3 elements)
    ---
    - ptr[5] = Alloc(7) returned 1008 (searched 4 elements)
  4. 三种不同的参数分别对应了以下三种不同的内存分配方式

    • ADDSORT: 空闲的地址在搜索的时候是按地址的顺序进行排序搜索
    • SIZESORT-: 空闲的地址在搜索的时候按地址块的大小,先搜索大的,后搜索小的
    • SIZESORT+: 空闲的地址在搜索的时候按地址快的大小,先搜索小的,后搜索大的

    由于BESTWORSE分配的方法都需要把所有内存段全部搜索后再分配,因此在根据这两种不同的调度之后产生的内存碎片的数量是相同的。在三种不同的调度中采取FIRST控制空闲变量则将会造成比较大的影响。对于SIZESORT-的情况来说,由于未分配的大块内存一直在最前面,因此很容易在反复删除小内存段的过程中不断积累内存碎片;优点是每次直接扫描的第一个就将是可以直接使用的内存,搜索的次数明显减少。采用SIZESORT+的情况下,由于小碎片都积累在前面,因此如果此时遇到比较大块的内存需要分配时,则会增加需要搜索的内存段数量,时间会增加;优点是每次分配的时候都尽量先匹配比较小的内存段,对于多次分配小内存的情况来说,不会那么容易产生浪费。

  5. 首先,如果对内存段不采用合并处理的话,随着时间推移,内存碎片将会越来越多,并且后面能够成功分配内存需要的搜索次数以及成功概率都会升高。其次,由于内存合并是在地址连续的基础上才会进行合并,因此如果采用了SIZESORT的分配方法,打乱了地址的顺序,虽然依旧有成功合并的可能,但是效率还是要低于以ADDRSORT方法对空闲内存段进行排序。

  6. 如果-P设置的太高,模拟的则是在平时写程序的过程中一直不对申请的内存空间进行Free释放,则会导致空间过早的就被使用完毕,后续无法再继续分配,设置的低的情况下则代表了内存每次使用分配完毕以后都立即释放,这样就能够一直有空闲的内存等待分配。

  7. 如果要生成高度碎片化的空间,只要让空闲的空间碎片始终不被合并,并且分配的时候根据上述中第四题得到的规律增加搜索次数,让即使被Free的内存块也无法被使用或增加使用次数即可。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + qBittorrent与jellyfin搭建自动追番引导 + + /p/8d2011c6.html + + 环境
  • Docker Engine: 20.10.15
  • Ubuntu: 20.04.4 LTS
  • X86平台

部署教程

部署使用的是老电脑上的Ubuntu 20.04.4 LTS,为了便于备份配置以及轻量上手,采用了Docker-Compose的一件式部署方式,该方案主要倾向解决追番问题,目前基本解决刮削问题。

Docker安装

请在百度等搜索引擎直接搜索对应自己平台的"Docker 安装 教程"

Docker-Compose部署

推荐的qBittorrent+Jellyfin部署配置文件如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
version: '3'
services:
jellyfin:
image: nyanmisaka/jellyfin:latest
restart: unless-stopped
container_name: jellyfin
volumes:
- $PWD/conf/jellyfin:/config # 对应Jellyfin的配置文件
- $PWD/cache:/cache # 对应Jellyfin的缓存文件
- $PWD/downloads/media:/media # 对应Jellyfin的媒体文件夹
ports:
- "8096:8096"
environment:
- TZ=Asia/Shanghai
- UID=1000
- GID=1000
devices:
- /dev/dri:/dev/dri # 如果要使用硬解配置

qbittorrent:
image: johngong/qbittorrent:latest
restart: unless-stopped
hostname: qbittorrent
container_name: qbittorrent
volumes:
- $PWD/conf/qbit:/config
- $PWD/downloads:/Downloads
network_mode: "host"
environment:
- UID=0
- GID=0
- TRACKERSAUTO=YES
- WEBUIPORT=8995 # 网页端口
- TRACKERS_LIST_URL=https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all.txt # 自动更新种子文件
- UMASK=022

如果出现了qBittorrent配置有可能随着更新有变化,如果使用过程中出现问题,或需要自己额外配置,具体参考johngong/qbittorrent内的介绍进行修改即可。

配置自动改名工具

下载 EpisodeReName.zip 并且解压在qbittorrent挂载的Downloads目录下,用于下文中设置自动改名

使用效果

RSS订阅

  1. 在诸如蜜柑计划的网站,找到自己想要看的番剧或电视剧对应的RSS链接

  2. qbittorrent当中添加RSS规则,示例如下

    RSS订阅

  3. 添加完毕RSS规则以后,则需要设置下载路径。由于Jellyfin刮削为识别文件夹名字进行刮削,因此这里的命名必须要符合规范来提高成功率

    下载路径设置
    注意文件夹命名要为"番剧名/S+季度数"即可

  4. qbittorrent设置内开启自动下载,后续只要识别到了RSS更新,就能自动下载到目标文件夹下

自动修改剧集名

自动修改剧集名字使用的为Episode-ReName工具

  1. 下载并将Episode-ReName放于Docker挂载后的downloads目录下

  2. 配置下载完毕自动运行EpisodeRename来对番剧重命名

    自动重命名

    配置参数如下

    1
    2
    3
    /Downloads/EpisodeReName "%D/%N" 10 
    # 10指下载完毕10s后执行
    # "%D/%N"指对下载完毕后单文件执行
  3. 由于重命名后的文件无法直接继续做种,因此在qbittorrent内同样要设置自动取消做种上传

    取消做种

    秉承BT分享的精神,或者使用PT站的朋友可以学习如何设置硬链接等方式对文件实现共享,本文不做解释

Jellyfin元数据插件

元数据刮削主要用的是TheMovieDb, AniDB, AniSearchAniList这几个插件,不过依旧存在抓取的时候抓到英文介绍为多的问题,不过暂且算是能使用,海报和宣传图也基本上都有,日常使用没有很大问题

]]>
+ + + + + 安装引导 + + + + + + + qbittorrent + + jellyfin + + docker + + + +
+ + + + + WSL配置Proxy代理引导 + + /p/6088c65c.html + + 前言

在三番五次被wslproxy问题折腾的心态爆炸,并重装了好几次系统以后,总算理清楚了WSL如果想要搭配windowns上的clash for windows的正确使用方法。把之前无论是需要脚本还是各种复杂操作的博客都删了,在这里记录一个完全不需要任何脚本,也不需要额外配置防火墙的合理方案。

工具环境

  • WSL 2 ArchLinux(理论上来说其他发行版应该相同)
  • Windows 11(win10应该同理)
  • Clash For Windows

Clash的配置

改方案为WSL继承System Proxy来达到代理上网的目的,使用TUN Mode直接用就行,不需要额外设置

  1. 正常配置好Clash For Windows,并且启用Allow LAN的设置

  2. 允许应用或功能通过 Windows Defender防火墙中寻找是否有clash-win64.exe的规则配置,注意不是 Clash For WindowsCFW本身只是clash的一个前端,在启动CFW的时候有概率防火墙只添加CFW本身,而不添加作为核心的clash的防火墙规则,这个时候则需要我们手动修改

  3. 如果已经有了clash-win64.exe的规则,则只需要配置专有和公共网络同时允许即可。如果没有clash-win64.exe的规则,可以通过下方的允许其他应用手动添加规则,具体clash核心文件的路径可以通过任务管理器后台或Clash for Windows\resources\static\files\win\x64\clash-win64.exe类似的路径查询到。添加规则的时候同时允许专用和公共即可

之前经常折腾好了防火墙但过了三四个月或者一段时间后wslwindows之间就因为防火墙断开,但总找不到原因,现在想想很有可能是当时clash for windows升级安装的时候规则被覆盖或路径变化导致的。WSL2的网络对Windows来说也是一个Public的公开网络,在设置了单独程序允许通信之后,虽然wsl有可能无法pingwindows的主机,但正常访问clash的代理端口是没有问题的

WSL的配置

到这里为止防火墙的问题就解决了,只需要通过合理的方法配置好WSL下的代理变量就可以正常使用。其中主机名.local这个域名是会直接在wsl内映射到作为dns服务器的宿主机上,因此并不需要写额外的脚本来添加映射

较为简单的方法即通过zsh终端下oh my zsh+ zsh-proxy 插件,通过设置proxy来实现全局基本功能的代理配置,而在config_proxy步骤中的代理IP填入类似Zephyrus.local:7890格式的地址即可。

Zephyrus为我Windows的设备名,可在Windows设置中重命名,一般来说默认设置应该为类似DESKTOP-XXXX.local:7890,修改和查看的方法可通过搜索引擎自己解决

通过以上方式配置后的WSL就可以正常通过Windows上的Clash代理了。每次WSL出网络问题总是感觉莫名其妙没头绪,之前也试过通过New-NetFireWallRule一类的方法放行防火墙,但都不是很好用或者后面偶尔突然就出问题,现在总算弄清楚了原因而且能很舒服的使用win里面的代理了。

]]>
+ + + + + 小技巧 + + + + + + + zsh + + WSL + + Clash + + + +
+ + + + + OSTEP:通过分段管理内存 + + /p/783d8b13.html + + 第十六章:分段
  1. 这里记录一个样例作为例子,其他的答案则跳过重复的计算步骤

    运行第一个seed可以得到以下输出

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ARG seed 0
    ARG address space size 128
    ARG phys mem size 512

    Segment register information:

    Segment 0 base (grows positive) : 0x00000000 (decimal 0)
    Segment 0 limit : 20

    Segment 1 base (grows negative) : 0x00000200 (decimal 512)
    Segment 1 limit : 20

    Virtual Address Trace
    VA 0: 0x0000006c (decimal: 108) --> PA or segmentation violation?
    VA 1: 0x00000061 (decimal: 97) --> PA or segmentation violation?
    VA 2: 0x00000035 (decimal: 53) --> PA or segmentation violation?
    VA 3: 0x00000021 (decimal: 33) --> PA or segmentation violation?
    VA 4: 0x00000041 (decimal: 65) --> PA or segmentation violation?

    对于VA 0: 0x0000006c (decimal: 108)的情况计算如下

    1. Address Size为128(2^7)得到高位为第7位
    2. VA0x6c(108)转为二进制,按7位来算则是1 101100,因此可以知道这是SEG 1的地址
    3. 栈是从最下方的内存反方向增加,VA最底部内存位为0x80(128),因此0x6c(108)VA对应偏移量为108 - 128 = -20
    4. VA0x80(128)的地址对应PA为0x200(512),因此按偏移量-20算可以得到VA中0x6c(108)对应的PA0x1ec(492)

    计算过程(字丑.jpg)

    答案
    1
    2
    3
    4
    5
    6
    Virtual Address Trace
    VA 0: 0x0000006c (decimal: 108) --> VALID in SEG1: 0x000001ec (decimal: 492)
    VA 1: 0x00000061 (decimal: 97) --> SEGMENTATION VIOLATION (SEG1)
    VA 2: 0x00000035 (decimal: 53) --> SEGMENTATION VIOLATION (SEG0)
    VA 3: 0x00000021 (decimal: 33) --> SEGMENTATION VIOLATION (SEG0)
    VA 4: 0x00000041 (decimal: 65) --> SEGMENTATION VIOLATION (SEG1)
  2. 以第一题为参考;在虚拟地址中SEG 0的范围是0-19SEG 1的范围是108-127,非法地址为20-107

    以下为通过运行-A标志对分界点进行分别测试有如下结果

    1
    2
    3
    4
    5
    6
    7
    Virtual Address Trace
    VA 0: 0x00000000 (decimal: 0) --> VALID in SEG0: 0x00000000 (decimal: 0)
    VA 1: 0x00000013 (decimal: 19) --> VALID in SEG0: 0x00000013 (decimal: 19)
    VA 2: 0x00000014 (decimal: 20) --> SEGMENTATION VIOLATION (SEG0)
    VA 3: 0x0000006b (decimal: 107) --> SEGMENTATION VIOLATION (SEG1)
    VA 4: 0x0000006c (decimal: 108) --> VALID in SEG1: 0x000001ec (decimal: 492)
    VA 5: 0x0000007f (decimal: 127) --> VALID in SEG1: 0x000001ff (decimal: 511)
  3. 设置为以下指令即可

    1
    ./segmentation.py -a 16 -p 128 -A  0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 --b0 0 --l0 2 --b1 16 --l1 1 -c

    输出结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Virtual Address Trace
    VA 0: 0x00000000 (decimal: 0) --> VALID in SEG0: 0x00000000 (decimal: 0)
    VA 1: 0x00000001 (decimal: 1) --> VALID in SEG0: 0x00000001 (decimal: 1)
    VA 2: 0x00000002 (decimal: 2) --> SEGMENTATION VIOLATION (SEG0)
    VA 3: 0x00000003 (decimal: 3) --> SEGMENTATION VIOLATION (SEG0)
    VA 4: 0x00000004 (decimal: 4) --> SEGMENTATION VIOLATION (SEG0)
    VA 5: 0x00000005 (decimal: 5) --> SEGMENTATION VIOLATION (SEG0)
    VA 6: 0x00000006 (decimal: 6) --> SEGMENTATION VIOLATION (SEG0)
    VA 7: 0x00000007 (decimal: 7) --> SEGMENTATION VIOLATION (SEG0)
    VA 8: 0x00000008 (decimal: 8) --> SEGMENTATION VIOLATION (SEG1)
    VA 9: 0x00000009 (decimal: 9) --> SEGMENTATION VIOLATION (SEG1)
    VA 10: 0x0000000a (decimal: 10) --> SEGMENTATION VIOLATION (SEG1)
    VA 11: 0x0000000b (decimal: 11) --> SEGMENTATION VIOLATION (SEG1)
    VA 12: 0x0000000c (decimal: 12) --> SEGMENTATION VIOLATION (SEG1)
    VA 13: 0x0000000d (decimal: 13) --> SEGMENTATION VIOLATION (SEG1)
    VA 14: 0x0000000e (decimal: 14) --> SEGMENTATION VIOLATION (SEG1)
    VA 15: 0x0000000f (decimal: 15) --> VALID in SEG1: 0x0000000f (decimal: 15)
  4. 要让90%的地址可以被访问,则对于SEG 0的界限寄存器到SEG 1的界限寄存器中间地址差要为总虚拟地址的10%即可。

    (b1l1(b0+l0))AddressSize<10% \frac{(b1 - l1 - (b0 + l0))}{Address Size} < 10\%

  5. 所以地址都失效代表没有可以访问的地址,因此l0l1界限寄存器都设置为0即可

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:虚拟内存和物理内存地址转换 + + /p/1724953e.html + + 第十五章:机制:地址转换

该章节主要引出了基址寄存器和界限寄存器的概念,表述了在操作系统内程序执行的时候虚拟内存的分布和物理内存的地址转换关系

  1. 判断是否越界只需要将访问内存地址大小和Limit进行比较,在小于Limit的情况下直接做加法即可

  2. 获取到所有访问的数据后,可以发现访问的地址中最大的为

    1
    VA  9: 0x000003a1 (decimal:  929)

    因此只需要将-l设置为930即可

    补充为什么不是929

    界限寄存器是在基址寄存器的基础上开始limit个单位的内存可被使用,就好比数组中的limit为10个空间的情况下,只有0-9可以被使用。对应到该题,如果想要让(0x000003a1)的地址不越界,则需要设置930个可用空间

  3. 题目默认的物理地址为16k,也就是16,384,只需要设置-b16384 - 100 = 16284即可

  4. 和上文实验差别不大,其中-a参数是设置随即生成的取地址的大小范围,-p为设置物理内存的最大范围,实际内存主要是否越界只和-b的基址寄存器、-l的界限寄存器以及-p的物理内存有关系,-a作为一个随机数范围没有实际含义

  5. 通过PyPlot画图,在默认的-n情况下,当limit从0逐渐增加到asize的时候,可以得到大致如下的图片

    limit

    附画图代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import os
    import re
    import matplotlib.pyplot as plt

    def execRelocation(seed, limit, num):
    r = os.popen('python3 relocation.py -s %d -l %d -c' % (seed, limit))
    pass_num = r.read().count("VALID")
    r.close()
    return pass_num / num

    if __name__ == '__main__':
    limitTop = 1024
    limit_list = []
    case_list = []
    # 从 0 - limitTop开始以50为公差测试对应通过的概率
    for i in range(0, limitTop, 50):
    sum = 0
    # 对于每个limit重复实验20次,取平均值
    for j in range(0, 20):
    sum += execRelocation(j, i, 10)
    # 结果存入list
    case_list.append(sum / 10)
    limit_list.append(i)
    # 画图
    plt.xlabel("limit")
    plt.ylabel("pass rate")
    plt.plot(limit_list, case_list)
    plt.savefig("limit.png")
]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + 修复WSL中env:'bash\r'的冲突问题 + + /p/b3a8b5ef.html + + 前言

由于之前C/C++环境配置出问题,近期把WSL重装了一次,结果在配置zsh-proxy的时候出现了报错

1
/usr/bin/env: ‘bash\r’: No such file or directory

直接搜索的方案要么是直接屏蔽掉Windows的Path继承,要么是说重启下wsl就好,但都比较模棱两可

问题原因

后面在查看了proxy相关的报错后,发现只有配置gitproxy时会出现这个问题,同时根据Stack Overflow上别人类似情况的提问,发现npm同样也无法使用。检查后发现是在Windows对应的Path内,gitnpm本身没有.exe的后缀就能启动,而wsl内是可以执行Windows下的部分可执行文件的,因此wsl调用了基于Windows的环境变量,从而导致了换行符与wsllinux格式不兼容。

解决方案

本来想的是怎么处理屏蔽Windows的相关Path,后面发现只需要在WSL上重新安装好gitnpm后重启wsl

1
2
3
wsl --shudown
# 或者仅关闭指定发行版,例如`Arch`
wsl -t Arch

就可以解决问题了。之前在Stack Overflow上其他人能直接通过重启wsl解决问题,应该也是无意中自己已经覆盖安装过了对应的工具,然后重启才取得了效果,在这里做个记录以做备忘。

]]>
+ + + + + 小技巧 + + + + + + + WSL + + + +
+ + + + + 使用Github Actions自动部署Hexo + + /p/7bfa5e14.html + + 前言

之前博客一直用的都是Jekyll框架,在使用Github Pages进行部署的时候并不需要自己手动配置,不过在换了Hexo主题之后,每次写完了博客除了要push一次commit到博客的内容分支上,还需要自己手动deploy一次。虽然也不会很麻烦,不过用Github Actions来完成这个过程也要更顺畅一些。原本觉得这个需求应该很简单,直接在Actions上执行一次hexo g -d的指令就好,结果因为GithubHTTPS上对Token的验证,以及Hexo自带的one-command-deployment存在BUG,折腾到凌晨两三点才发现,并且通过issues里面提供的修改链接使用oauth进行url验证的方法还是失败了,最后花了半小时改成了ssh密钥验证很轻松就完成了。。下面为对HexoActions的脚本的一个备份

脚本备份

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
name: Hexo Deploy

on:
push:
branches:
- hexo

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
ref: hexo

# Caching dependencies to speed up workflows. (GitHub will remove any cache entries that have not been accessed in over 7 days.)
- name: Cache node modules
uses: actions/cache@v1
id: cache
with:
path: node_modules
key: ${{ runner.os }}-node-v2-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-v2

- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: |
npm ci

# Deploy hexo blog website.
- name: Build and Deploy
run: |
mkdir -p ~/.ssh/
echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan github.com >> ~/.ssh/known_hosts
git config --global user.email "halc-days@outlook.com"
git config --global user.name "HalcyonAzure"
npx hexo g -d
rm -rf ~/.ssh/id_rsa

整个脚本大致流程为

  1. 检测到hexo的内容分支有push之后,checkout到内容分支。

  2. 判断是否有nodejsmodules缓存。

    • 如果检测到有效缓存则跳过安装步骤,直接进行下一步。
    • 如果没有检测到有效缓存则对模块进行部署
  3. 创建id_rsa密钥文件,并将仓库中DEPLOY_KEYsecret写入密钥文件,并且配置github.com的信任和全局帐号邮箱

  4. hexo进行generate & deploy操作

  5. 删除写入的密钥文件

]]>
+ + + + + 小技巧 + + + + + + + hexo + + + +
+ + + + + 解决Windows未使用端口被占用问题 + + /p/22453a61.html + + 参考文章
  1. Hortonworks Docker Sandbox environment cannot start
  2. default-dynamic-port-range-tcpip-chang

问题产生

在无脑跟着网上教材开启Windows的SandBox的时候开启了Hyper-V的功能,结果尝试在6800端口运行和往常一样的Aria2Docker容器的时候出现了端口报错的情况,通过netstat排查也没发现6800端口被占用了,后面发现应该是Windows的动态端口在开了Hyper-V之后被修改了

通过以下指令可以分别查看ipv4/ipv6tcp/udp起始端口

1
2
3
4
netsh int ipv4 show dynamicport tcp
netsh int ipv4 show dynamicport udp
netsh int ipv6 show dynamicport tcp
netsh int ipv6 show dynamicport udp

在我的情况下,起始端口从原本默认的49152被修改成了从1024开始,因此6800端口无法使用

问题解决

在参考问题中找到了对应的解决方案

如果需要继续使用windows Virtual platform form windows feature(不确定这里是不是指Hyper-V,所以不翻译了)则

  1. 关闭Windows服务上对应的功能,关闭后系统会请求重启

  2. 通过以下指令修改动态起始端口 (49152是Windows默认设置) 在使用adbWSA的调试时,发现默认端口为58526,所以还是用100000

    1
    2
    3
    4
    netsh int ipv4 set dynamicport tcp start=64536 num=1000
    netsh int ipv4 set dynamicport udp start=64536 num=1000
    netsh int ipv6 set dynamicport tcp start=64536 num=1000
    netsh int ipv6 set dynamicport udp start=64536 num=1000
  3. 重新启用对应的功能

如果没有Hyper-V使用需求的情况下,可以尝试直接关闭Hyper-V,然后检查起始端口是否恢复,如果没有恢复的再通过上面的指令手动重新设置起始端口即可

]]>
+ + + + + 小技巧 + + + + + + + Windows + + + +
+ + + + + OSTEP:系统API的调用 + + /p/264bf58c.html + + 第十四章:插叙:内存操作API
  1. 执行null文件后并没有提示或报错,代码如下

    1
    2
    3
    4
    5
    6
    int main()
    {
    int *pt = NULL;
    free(pt); // 释放空指针
    return 0;
    }
  2. 在执行完gdb null后的run后,提示了以下信息

    log
    1
    2
    3
    (gdb) run
    Starting program: /home/halc/code/cpp/null
    [Inferior 1 (process 9285) exited normally]
  3. 在使用valgrind检查后,可以得到以下输出信息

    log
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ==9579== Memcheck, a memory error detector
    ==9579== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==9579== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
    ==9579== Command: ./null
    ==9579==
    ==9579==
    ==9579== HEAP SUMMARY:
    ==9579== in use at exit: 0 bytes in 0 blocks
    ==9579== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
    ==9579==
    ==9579== All heap blocks were freed -- no leaks are possible
    ==9579==
    ==9579== For lists of detected and suppressed errors, rerun with: -s
    ==9579== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

    根据C/C++ Preferencefree()的介绍如下

    If is a null pointer, the function does nothing. ptr
    当指针是空指针的时候,啥都不会发生,因此也理所当然的没有发生任何的内存泄露

  4. 首先使用malloc()函数对内存空间进行分配,但是不使用free()对内存进行释放

    1
    2
    3
    4
    5
    6
    int main()
    {
    int *pt = (int *)malloc(sizeof(int));
    // free(pt);
    return 0;
    }

    使用gdb对可执行文件进行调试如下

    gdb log
    1
    2
    Starting program: /home/halc/code/cpp/null 
    [Inferior 1 (process 9978) exited normally]

    使用valgrind对可执行文件调试入如下

    valgrind log
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    $ valgrind --leak-check=yes ./null
    ==9930== Memcheck, a memory error detector
    ==9930== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==9930== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
    ==9930== Command: ./null
    ==9930==
    ==9930==
    ==9930== HEAP SUMMARY:
    ==9930== in use at exit: 4 bytes in 1 blocks
    ==9930== total heap usage: 1 allocs, 0 frees, 4 bytes allocated
    ==9930==
    ==9930== 4 bytes in 1 blocks are definitely lost in loss record 1 of 1
    ==9930== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==9930== by 0x10915E: main (null.cpp:6)
    ==9930==
    ==9930== LEAK SUMMARY:
    ==9930== definitely lost: 4 bytes in 1 blocks
    ==9930== indirectly lost: 0 bytes in 0 blocks
    ==9930== possibly lost: 0 bytes in 0 blocks
    ==9930== still reachable: 0 bytes in 0 blocks
    ==9930== suppressed: 0 bytes in 0 blocks
    ==9930==
    ==9930== For lists of detected and suppressed errors, rerun with: -s
    ==9930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

    这个时候通过valgrind工具即可检查出,在堆空间中有definitely lost(确定的内存泄露)4 bytes in 1 blocks,正好对应了代码中sizeof(int)的大小和数量

  5. 首先使用malloc()函数分配100个int的空间给指针data,然后在data[100]的位置赋值

    1
    2
    3
    4
    5
    6
    7
    int main()
    {
    int *data = (int *)malloc(sizeof(int) * 100);
    data[100] = 0;
    free(data);
    return 0;
    }

    程序直接运行的时候不会报错,没有任何提示。但是使用valgrind进行检查的时候有如下日志

    log
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    $ valgrind --leak-check=yes ./null
    ==10500== Memcheck, a memory error detector
    ==10500== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==10500== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
    ==10500== Command: ./null
    ==10500==
    ==10500== Invalid write of size 4
    ==10500== at 0x10918D: main (null.cpp:7)
    ==10500== Address 0x4a4c1d0 is 0 bytes after a block of size 400 alloc'd
    ==10500== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==10500== by 0x10917E: main (null.cpp:6)
    ==10500==
    ==10500==
    ==10500== HEAP SUMMARY:
    ==10500== in use at exit: 0 bytes in 0 blocks
    ==10500== total heap usage: 1 allocs, 1 frees, 400 bytes allocated
    ==10500==
    ==10500== All heap blocks were freed -- no leaks are possible
    ==10500==
    ==10500== For lists of detected and suppressed errors, rerun with: -s
    ==10500== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

    可以看到valgrind成功检测出一个无效的写入,在内存分配之后,只有data[0] - data[99]是可以正常写入的,data[100]并不存在,因此出现了无效写入的错误

  6. 用和第五题相似的方法创建一个数组,然后通过free()函数对内存释放,然后对已经释放的空间进行读取

    1
    2
    3
    4
    5
    6
    7
    int main()
    {
    int *data = (int *)malloc(sizeof(int) * 100);
    free(data);
    printf("%d\n", data[0]);
    return 0;
    }

    在本地电脑上直接运行的时候输出了0,使用valgrind工具进行检查的时候输出了如下日志

    log
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    ==10682== Memcheck, a memory error detector
    ==10682== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
    ==10682== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
    ==10682== Command: ./null
    ==10682==
    ==10682== Invalid read of size 4
    ==10682== at 0x1091B3: main (null.cpp:8)
    ==10682== Address 0x4a4c040 is 0 bytes inside a block of size 400 free'd
    ==10682== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==10682== by 0x1091AE: main (null.cpp:7)
    ==10682== Block was alloc'd at
    ==10682== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
    ==10682== by 0x10919E: main (null.cpp:6)
    ==10682==
    0
    ==10682==
    ==10682== HEAP SUMMARY:
    ==10682== in use at exit: 0 bytes in 0 blocks
    ==10682== total heap usage: 2 allocs, 2 frees, 1,424 bytes allocated
    ==10682==
    ==10682== All heap blocks were freed -- no leaks are possible
    ==10682==
    ==10682== For lists of detected and suppressed errors, rerun with: -s
    ==10682== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

    可以看见检测出了无效的读写Invalid read of size 4

  7. data数组中的data[50]进行内存释放,然后输出data[0]

    1
    2
    3
    4
    5
    6
    7
    8
    int main()
    {
    int *data = (int *)malloc(sizeof(int) * 100);
    // free(data);
    free(data + 50);
    printf("%d\n", data[0]);
    return 0;
    }

    在直接运行的时候会直接报错

    1
    2
    3
    $ ./null
    free(): invalid pointer
    [1] 10986 abort ./null

    不需要用valgrind也可以检查出此处有free()的问题

    根据 c-free-invalid-pointer 的回答,可以知道

    When you have in fact allocated a block of memory, you can only free it from the pointer returned by. That is to say, only from the beginning of the block.

    当我们分配了一块内存的时候,我们只能从返回的指针开始对这块内存进行释放,也就是说我们只能从内存块的开头对某一处内存进行释放

  8. 通过realloc()函数实现一个类似vector的操作

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    int main()
    {
    int *pt = (int *)malloc(sizeof(int)); // 给指针pt分配1个int大小空间的内存
    *pt = 10; // 对对应内存位置进行赋值
    pt = (int *)realloc(pt, sizeof(int) * 2); // 将原本的变量扩容为2个int大小空间
    pt[1] = 20; // 对新扩大的内存位置进行赋值
    printf("%d, %d\n", pt[0], pt[1]); // 输出pt对应的两个内存位置的结果
    free(pt); // 释放堆内存中的pt
    return 0;
    }

    程序编译可以成功通过,使用valgrind也正常通过,没有无效读写错误

    通过这种操作实现的vector可以在访问的时候直接通过index进行访问,时间复杂度为O(1),并且他并不需要和链表一样创建一个指向next的指针,不过在向后添加内容的时候依旧需要O(n)的时间复杂度来向后添加元素。

    顺便记录一个Tips, 在C中是允许void *类型进行任意转换的,因此即使没有(int *)也不会出现报错,而在C++中对类型转换的限制更多,并不允许直接进行这样的操作,必须要进行类型转换(通过static_cast转换运算符)才能分配空间给对应的指针。

  9. 偷懒,懒得写

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:比例份额的调度策略 + + /p/13271c5f.html + + 第八章:调度:比例份额

在CPU资源进行调度的时候,有的时候我们很难让每个程序都尽量公平的分配到资源。“彩票调度(lottery scheduling)”通过给不同的任务分配不同的彩票数,再通过随机数和期望分布来对资源进行调度,实现一个类似于平均分配的调度方法

本章中文译本内缺少对Linux系统的CFS调度的说明,不过不影响课后练习

  1. 完成随机种子1、2和3对应的习题计算

    该题目的主要思路即判断随机数取模后的数字和tickets的数量比较,然后依次逐步执行判断即可

  2. 当彩票分布设计的十分极端的情况下,由于第一个Job0 10:1获得的票数太少,几乎不可能在Job1 10:100前完成任务,将会在结果上滞后Job0的完成

  3. 通过设立不同的seed,可以得到不同的情况如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $ ./lottery.py -l 100:100,100:100 -s 1 -c
    ...
    --> JOB 1 DONE at time 196
    ...
    --> JOB 0 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -s 2 -c
    ...
    --> JOB 1 DONE at time 190
    ...
    --> JOB 0 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -s 3 -c
    ...
    --> JOB 0 DONE at time 196
    ...
    --> JOB 1 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -s 4 -c
    ...
    --> JOB 1 DONE at time 199
    ...
    --> JOB 0 DONE at time 200

    可以大致看出在任务的长度足够大的情况下,调度分布基本公平,最后的结果趋紧于类似RR切换任务的平均期望

  4. 在修改了quantum大小之后,由于时间片变大,相当于任务本身的长度缩短,整个任务的公平性会偏向不稳定和不公平,大致结果如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 1
    ...
    --> JOB 0 DONE at time 180
    ...
    --> JOB 1 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 2
    ...
    --> JOB 1 DONE at time 180
    ...
    --> JOB 0 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 3
    ...
    --> JOB 1 DONE at time 120
    ...
    --> JOB 0 DONE at time 200

    $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 4
    ...
    --> JOB 1 DONE at time 140
    ...
    --> JOB 0 DONE at time 200
  5. 这题主要用来当Python练习了,模拟生成图像的代码如下(和lottery.py实验代码放于同一目录下)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    import os
    import re
    import matplotlib.pyplot as plt
    import numpy as np

    # 执行彩票概率检查,返回概率结果

    def countLottery(length, seed):
    r = os.popen(
    "./lottery.py -l " + length + ":100," + length + ":100 -c" + " -s " + seed)
    text = r.read()
    r.close()
    lottery_time = re.findall(r"^--> .*(\d*)", text, re.M)
    return int(lottery_time[0])/int(lottery_time[1])

    def average(length):
    sum = 0
    # 调整重复
    time = 20
    for i in range(1, time):
    sum += countLottery(length, str(i))
    return sum / (time - 1)

    length = []
    chance = []

    # 设定工作长度和间隔

    length_start = 1
    length_end = 100
    step = 5
    for i in np.arange(length_start, length_end, step):
    length.append(i)
    chance.append(average(str(int(i))))

    plt.ylabel("Fairness")
    plt.xlabel("Job Length")

    plt.plot(length, chance, 'b-')

    plt.savefig("./lottery.png")

    最后生成的图片效果

    模拟图像

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + 总结:2022年3月 + + /p/18b05b6b.html + + 做了的事情

学习方面

这个月直接写出的可以用的贡献不是很多,主要成就感应该就是来自Python的抓包和发包写一些打卡脚本的目标完成了,实现了学校的打卡自由和机场的签到流量自由。

Rust的学习和CS144的学习在这个月成功被我换成了C++的学习和OSTEP的学习,写lab完成之后带来的快感感觉完全不亚于玩老头环成功挑战Boss后的成就感,OSTEP的学习笔记和答案也有一直在博客里面更新,希望自己这个学期能全部做完加深对操作系统的了解

这个学期也第一次写了一个能用的repo出来:HalcyonAzure/lsky-pro-docker。虽然整个Dockerfile还是抄袭了issues里面别人的劳动成果,但是在调试的过程中遇到的许多问题也加深了自己对container的了解,而且学会了用dev container来做一些临时开发,同时自己写yamlgithub actions来自动部署一些项目(白嫖服务器的感觉是真的爽),总的来说成就感可以说是非常强了。

喔,对了,这个月还把博客重构了一下,改成了用HexoFluid的主题,看着比原来JekyllTeXt花里胡哨了不少😉

生活方面

这个月由于都忙着Coding,没什么游戏时间。不过让我没想到的是南昌居然也会受到疫情的波及,连续上了近一整个月的网课,伙食方面不能吃烧烤或火锅来释放自己的多巴胺果然感觉还是很难受啊😢,希望能早点解封然后出去吃餐好的

核酸检测虽然说做的次数也满多,不过学校后面几次安排的时间都蛮合适的,整个流程下来不超过30min,因此也没什么怨言,同时托网课的福,自己也才有了那么多时间能做自己想做的事情,写自己想写的东西,这种无忧无虑不用考虑绩点和平时作业的时候如果多一些就好啦😣

四月份要做的事情

学习计划

  • 参加计算机设计大赛,看看能不能摸个奖回来,丰富下经历
  • OSTEP的Lab每个礼拜写两篇

生活计划

  • 绝对、绝对绝对开始跑步或打排球,调整自己的生活质量
  • 早睡早起!!!
  • 水果封校已经不做指望了,就希望能控制住自己的饮食😥
]]>
+ + + + + 个人总结 + + + + + + + 总结 + + + +
+ + + + + OSTEP:进程的调度策略 + + /p/28ea7a49.html + + 第七章:进程调度/介绍

参数介绍:

Response:响应时间,即任务第一次运行的时间

Turnaround: 完成时刻(周转时间),即任务完成那一刻对应的时间

Wait: 等待中时间,即任务处于Ready状态,但当前CPU在执行其他任务的等待时间

  1. 执行结果如下

    FIFO:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ARG policy FIFO
    ARG jlist 200,200,200

    Here is the job list, with the run time of each job:
    Job 0 ( length = 200.0 )
    Job 1 ( length = 200.0 )
    Job 2 ( length = 200.0 )

    **Solutions**

    Execution trace:
    [ time 0 ] Run job 0 for 200.00 secs ( DONE at 200.00 )
    [ time 200 ] Run job 1 for 200.00 secs ( DONE at 400.00 )
    [ time 400 ] Run job 2 for 200.00 secs ( DONE at 600.00 )

    Final statistics:
    Job 0 -- Response: 0.00 Turnaround 200.00 Wait 0.00
    Job 1 -- Response: 200.00 Turnaround 400.00 Wait 200.00
    Job 2 -- Response: 400.00 Turnaround 600.00 Wait 400.00

    Average -- Response: 200.00 Turnaround 400.00 Wait 200.00

    同时,对于SJF(Short Job First),由于每个任务的执行时间相同,所以策略上的处理结果和FIFO相同,不额外列出

  2. 在按照300,200100的顺序一次执行任务的时候,对于FIFO策略依次执行,而依据SJF策略,则会先执行时间短的100,依次到最常的300。具体结果如下

    FIFO

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ARG policy FIFO
    ARG jlist 300,200,100

    Here is the job list, with the run time of each job:
    Job 0 ( length = 300.0 )
    Job 1 ( length = 200.0 )
    Job 2 ( length = 100.0 )

    **Solutions**

    Execution trace:
    [ time 0 ] Run job 0 for 300.00 secs ( DONE at 300.00 )
    [ time 300 ] Run job 1 for 200.00 secs ( DONE at 500.00 )
    [ time 500 ] Run job 2 for 100.00 secs ( DONE at 600.00 )

    Final statistics:
    Job 0 -- Response: 0.00 Turnaround 300.00 Wait 0.00
    Job 1 -- Response: 300.00 Turnaround 500.00 Wait 300.00
    Job 2 -- Response: 500.00 Turnaround 600.00 Wait 500.00

    Average -- Response: 266.67 Turnaround 466.67 Wait 266.67

    SJF

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ARG policy SJF
    ARG jlist 300,200,100

    Here is the job list, with the run time of each job:
    Job 0 ( length = 300.0 )
    Job 1 ( length = 200.0 )
    Job 2 ( length = 100.0 )

    **Solutions**

    Execution trace:
    [ time 0 ] Run job 2 for 100.00 secs ( DONE at 100.00 )
    [ time 100 ] Run job 1 for 200.00 secs ( DONE at 300.00 )
    [ time 300 ] Run job 0 for 300.00 secs ( DONE at 600.00 )

    Final statistics:
    Job 2 -- Response: 0.00 Turnaround 100.00 Wait 0.00
    Job 1 -- Response: 100.00 Turnaround 300.00 Wait 100.00
    Job 0 -- Response: 300.00 Turnaround 600.00 Wait 300.00

    Average -- Response: 133.33 Turnaround 333.33 Wait 133.33

    SJF的好处在于可以先执行时间短的程序,后执行时间长的程序,同时优化了程序的响应、完成和等待时间。缺点在于因为必须先完整的运行某个任务,后执行下一个任务。如果此时需要高频率执行某任务则无能为力(比如高频率的io输出)

  3. 采用RR策略,时间片设置为1,依次执行102030有以下结果

    RR策略
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    ARG policy RR
    ARG jlist 10,20,30

    Here is the job list, with the run time of each job:
    Job 0 ( length = 10.0 )
    Job 1 ( length = 20.0 )
    Job 2 ( length = 30.0 )


    ** Solutions **

    Execution trace:
    [ time 0 ] Run job 0 for 1.00 secs
    [ time 1 ] Run job 1 for 1.00 secs
    [ time 2 ] Run job 2 for 1.00 secs
    [ time 3 ] Run job 0 for 1.00 secs
    [ time 4 ] Run job 1 for 1.00 secs
    [ time 5 ] Run job 2 for 1.00 secs
    [ time 6 ] Run job 0 for 1.00 secs
    [ time 7 ] Run job 1 for 1.00 secs
    [ time 8 ] Run job 2 for 1.00 secs
    [ time 9 ] Run job 0 for 1.00 secs
    [ time 10 ] Run job 1 for 1.00 secs
    [ time 11 ] Run job 2 for 1.00 secs
    [ time 12 ] Run job 0 for 1.00 secs
    [ time 13 ] Run job 1 for 1.00 secs
    [ time 14 ] Run job 2 for 1.00 secs
    [ time 15 ] Run job 0 for 1.00 secs
    [ time 16 ] Run job 1 for 1.00 secs
    [ time 17 ] Run job 2 for 1.00 secs
    [ time 18 ] Run job 0 for 1.00 secs
    [ time 19 ] Run job 1 for 1.00 secs
    [ time 20 ] Run job 2 for 1.00 secs
    [ time 21 ] Run job 0 for 1.00 secs
    [ time 22 ] Run job 1 for 1.00 secs
    [ time 23 ] Run job 2 for 1.00 secs
    [ time 24 ] Run job 0 for 1.00 secs
    [ time 25 ] Run job 1 for 1.00 secs
    [ time 26 ] Run job 2 for 1.00 secs
    [ time 27 ] Run job 0 for 1.00 secs ( DONE at 28.00 )
    [ time 28 ] Run job 1 for 1.00 secs
    [ time 29 ] Run job 2 for 1.00 secs
    [ time 30 ] Run job 1 for 1.00 secs
    [ time 31 ] Run job 2 for 1.00 secs
    [ time 32 ] Run job 1 for 1.00 secs
    [ time 33 ] Run job 2 for 1.00 secs
    [ time 34 ] Run job 1 for 1.00 secs
    [ time 35 ] Run job 2 for 1.00 secs
    [ time 36 ] Run job 1 for 1.00 secs
    [ time 37 ] Run job 2 for 1.00 secs
    [ time 38 ] Run job 1 for 1.00 secs
    [ time 39 ] Run job 2 for 1.00 secs
    [ time 40 ] Run job 1 for 1.00 secs
    [ time 41 ] Run job 2 for 1.00 secs
    [ time 42 ] Run job 1 for 1.00 secs
    [ time 43 ] Run job 2 for 1.00 secs
    [ time 44 ] Run job 1 for 1.00 secs
    [ time 45 ] Run job 2 for 1.00 secs
    [ time 46 ] Run job 1 for 1.00 secs
    [ time 47 ] Run job 2 for 1.00 secs
    [ time 48 ] Run job 1 for 1.00 secs ( DONE at 49.00 )
    [ time 49 ] Run job 2 for 1.00 secs
    [ time 50 ] Run job 2 for 1.00 secs
    [ time 51 ] Run job 2 for 1.00 secs
    [ time 52 ] Run job 2 for 1.00 secs
    [ time 53 ] Run job 2 for 1.00 secs
    [ time 54 ] Run job 2 for 1.00 secs
    [ time 55 ] Run job 2 for 1.00 secs
    [ time 56 ] Run job 2 for 1.00 secs
    [ time 57 ] Run job 2 for 1.00 secs
    [ time 58 ] Run job 2 for 1.00 secs
    [ time 59 ] Run job 2 for 1.00 secs ( DONE at 60.00 )

    Final statistics:
    Job 0 -- Response: 0.00 Turnaround 28.00 Wait 18.00
    Job 1 -- Response: 1.00 Turnaround 49.00 Wait 29.00
    Job 2 -- Response: 2.00 Turnaround 60.00 Wait 30.00

    Average -- Response: 1.00 Turnaround 45.67 Wait 25.67

    采用RR策略的时候通过轮转运行三个程序,达到类似"同时"运行程序的效果,缩短了任务的反应时间。缺点是由于轮询过程会同时运行其他任务,因此总体的完成时刻和等待时间都会延长。

  4. 由于SJF是“短任务优先”的调度策略,因此当到达的任务顺序为先短时间的任务,后长时间任务的时候,SJF和FIFO的周转时间是相同的

  5. 当RR策略的量子时间大于等于SJF的单个任务最长工作时间时,SJF和RR可以提供相同的响应时间

  6. 当工作长度逐渐增加的时候,SJF的响应时间会逐渐增加,因为SJF必须要完成一个完整的任务才会运行下一个任务,因此后面的任务响应时间必须等待前一个任务的完成,模拟省略。

  7. 假定所有任务的长度都大于量子长度,且完成任务的时间都为量子长度的倍数,则可推得以下公式

i=1N1iQN=Qi=1N1iN=QN(N1)2N=Q(N1)2\frac{\sum_{i=1}^{N-1} iQ}{N}=\frac{Q \sum_{i=1}^{N-1} i}{N}=\frac{Q * \frac{N(N-1)}{2}}{N}=\frac{Q(N-1)}{2}

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:程序上下文切换的开销 + + /p/4b65fa48.html + + 第六章:受限制直接执行/上下文切换

实验环境

由于该实验要求在单个CPU上运行两个进程并在他们两个UNIX管道,而书中介绍的sche_affinity()函数的具体调用不是很清楚,所以这里通过Docker的参数限制,创建了一个只使用宿主机一个CPU资源的容器进行实验。

单核Docker容器的创建

1
docker run -it -d --cpuset-cpus="0" --name=os ubuntu:latest

注:在以上环境中如果使用函数查询CPU核心数依旧可以发现为16或其他多核,但是在通过指令stress -c 4实际测试后,性能只会在宿主机的单一CPU核心上运行,不影响实验。但是如果在创建Docker容器的时候使用的是--cpus=1,由于负载均衡,并不能达到单核进行实验的目的。

测量思路

  1. 通过gettimeofday()增加时间戳函数,获取执行时间

  2. 创建10个管道,循环5次,每次循环的时候分别在两个管道之间反复通信,并输出上下文切换时间差

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <stdint.h>
#include <sys/time.h>

// 标记时间戳
uint64_t getTimeTick()
{
struct timeval tv;
gettimeofday(&tv, NULL);
return tv.tv_usec;
}

int main()
{
// 创建十个管道用于读写测试
int fd[10][2];
for (int i = 0; i < 10; i++)
{
if (pipe(fd[i]) < 0)
{
perror("pipe");
exit(1);
}
}
char timeWrite[256], timeRead[256];
// 创建子进程
for (int i = 0; i < 9; i += 2)
{
int rc = fork();
switch (rc)
{
case -1: // error
perror("fork");
exit(EXIT_FAILURE);
case 0:
// 从管道一中读取数据,如果管道一中没有数据,则阻塞等待
read(fd[i][0], timeRead, sizeof(timeRead));
printf("Read - Write %d: %lu\n", i, getTimeTick() - atol(timeRead));
// 将时间写入管道二
sprintf(timeWrite, "%lu", getTimeTick());
write(fd[i + 1][1], timeWrite, sizeof(timeWrite));
// 从管道一中读取数据,并计算进程切换的总时间
exit(0);
default:
// 将时间写入管道一
sprintf(timeWrite, "%lu", getTimeTick());
write(fd[i][1], timeWrite, sizeof(timeWrite));
// 由于在执行完write之后会继续执行主进程,下方的read也会运行,因此最后结果中奇数进程的结果时间会比偶数进程的时间长,正确答案应该靠近偶数
// 从管道二读取数据,如果管道二中没有数据,则阻塞等待
read(fd[i + 1][0], timeRead, sizeof(timeRead));
printf("Read - Write %d: %lu\n", i + 1, getTimeTick() - atol(timeRead));
break;
}
}
return 0;
}

测量结果

1
2
3
4
5
6
7
8
9
10
Read - Write 0: 24
Read - Write 1: 7
Read - Write 2: 16
Read - Write 3: 6
Read - Write 4: 17
Read - Write 5: 7
Read - Write 6: 17
Read - Write 7: 6
Read - Write 8: 18
Read - Write 9: 9

结果差错

由于在执行完write之后会继续执行主进程,下方的read也会运行,因此最后结果中奇数进程的结果时间会比偶数进程的时间长,正确答案应该靠近偶数(已经在代码中用注释写明)。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + OSTEP:进程的简单使用 + + /p/897b63ef.html + + 第五章:进程API
  1. 子进程和父进程的变量x的值内容相互独立。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <string.h>
    #include <fcntl.h>
    #include <sys/wait.h>

    int main(int argc, char *argv[])
    {
    int x = 100;
    int rc = fork();
    if (rc < 0)
    {
    printf("fork failed\n");
    exit(1);
    }
    else if (rc == 0)
    {
    // child process
    printf("Child: %d\n", x);
    // 子进程变量增加100
    x += 100;
    printf("Child + 100: %d\n", x);
    }
    else
    {
    // 父进程在子进程执行完毕后执行
    int wc = wait(NULL);
    // parent process
    printf("Parent: %d\n", x);
    // 父进程变量增加100
    x += 100;
    printf("Parent + 100: %d\n", x);
    }
    // 分别再次输入最后的值
    printf("Final Address: %d\n", x);
    return 0;
    }

    测试结果如下:

    1
    2
    3
    4
    5
    6
    Child: 100
    Child + 100: 200
    Final Address: 200
    Parent: 100
    Parent + 100: 200
    Final Address: 200
  2. 同时打开文件p4.output并且分别写入Child processParent Process,可以正常并发写入。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #include <stdio.h>
    # include <stdlib.h>
    # include <unistd.h>
    # include <fcntl.h>

    int main()
    {
    // close stdout and open output file
    close(STDOUT_FILENO);
    open("./p4.output", O_CREAT | O_WRONLY | O_TRUNC, 0700);

    int rc = fork();
    if (rc < 0)
    {
    fprintf(stderr, "fork failed\n");
    exit(1);
    }
    else if (rc == 0)
    {
    printf("Child process\n");
    }
    else
    {
    printf("Parent process\n");
    }
    return 0;
    }

    结果(p4.output文件)

    1
    2
    Child process
    Parent process

    或(并发输出的先后顺序不同)

    1
    2
    Parent process
    Child process
  3. 题目要求的是在不适用wait()函数下实现子进程和父进程的先后,通过vfork()函数可以实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    # include <stdio.h>
    # include <stdlib.h>
    # include <unistd.h>
    # include <fcntl.h>

    int main()
    {
    // close stdout and open output file
    close(STDOUT_FILENO);
    open("./p4.output", O_CREAT | O_WRONLY | O_TRUNC, 0700);
    int rc = vfork();
    if (rc < 0)
    {
    fprintf(stderr, "fork failed\n");
    exit(1);
    }
    else if (rc == 0)
    {
    printf("Child process\n");
    }
    else
    {
    printf("Parent process\n");
    }
    return 0;
    }

    数据结果可以参考题目2的第一个情况。不过这里插入Stack Overflow上书原作者的话作为备注:

    Without calling wait() is hard, and not really the main point. What you did – learning about signals on your own – is a good sign, showing you will seek out deeper knowledge. Good for you!

    Later, you’ll be able to use a shared memory segment, and either condition variables or semaphores, to solve this problem.

  4. 针对不同的调用和变种,写了一篇详细的博客进行解析:区分不同exec()形式

  5. 在父进程使用wait(),等待子进程完成后,wait()会返回子进程的pid

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    int main()
    {
    int rc = fork();
    if (rc < 0)
    {
    cout << "fork failed" << endl;
    exit(1);
    }
    else if (rc == 0)
    {
    printf("I am child process %d\n", getpid());
    }
    else
    {
    int ws = wait(NULL);
    printf("I am parent process %d\n", getpid());
    printf("Return Value of wait() is %d\n", ws);
    }
    return 0;
    }

    运行结果

    1
    2
    3
    I am child process 4878
    I am parent process 4873
    Return Value of wait() is 4878

    在子进程中使用wait()则会返回-1,并且在失败后依旧会执行当前子进程

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    int main()
    {
    int rc = fork();
    if (rc < 0)
    {
    cout << "fork failed" << endl;
    exit(1);
    }
    else if (rc == 0)
    {
    int fake_ws = wait(NULL);
    printf("I am child process %d\n", getpid());
    printf("fake_ws = %d\n", fake_ws);
    printf("Test\n");
    }
    else
    {
    int ws = wait(NULL);
    printf("I am parent process %d\n", getpid());
    printf("Return Value of wait() is %d\n", ws);
    }
    return 0;
    }

    运行结果

    1
    2
    3
    4
    5
    I am child process 5011
    fake_ws = -1
    Test
    I am parent process 5006
    Return Value of wait() is 5011
  6. 针对waitpid()的使用,总结了笔记:waitpid()调用

  7. 子进程中关闭标准输出,父进程输出子进程和本身pid

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    int main()
    {
    int rc = fork();
    if (rc < 0)
    {
    printf("fork failed\n");
    exit(1);
    }
    else if (rc == 0)
    {
    close(STDOUT_FILENO);
    printf("Hello from child\n");
    }
    else
    {
    int ws = wait(NULL);
    printf("Hello from parent, child exited with status %d\n", ws);
    }
    return 0;
    }

    运行结果,子进程中的输出被关闭,只有父进程输出。

    1
    Hello from parent, child exited with status 1326
  8. 通过pipe()管道进行传输数据

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    int main()
    {
    int fd[2]; // 创建两个文件标示符
    int rc_pipe = pipe(fd); // 创建管道

    char msg[] = "Hello_World!"; // 用于输出的字符串
    char buff[100]; // 用于输出的缓冲区

    int rc_1 = fork(); // 创建第一个进程

    if (rc_1 == 0)
    {
    for (int i = 0; i < 5; i++)
    {
    printf("Child Process 1: %d\n", i);
    sleep(1);
    }
    close(fd[0]); // 为防止文件读写出现问题,关闭读取端,只允许写入
    dup2(fd[1], STDOUT_FILENO); // 将标准输出重定向到管道的写入端
    printf("%s", msg); // 输出字符串到标准输出,然后重定向至管道的写入端
    close(fd[1]); // 关闭管道的写入端
    exit(0); // 结束当前进程
    }

    int rc_2 = fork();

    if (rc_2 == 0)
    {
    // 即使通过sleep()让第二个进程等待,由于第一个进程的输入管道没有内容,所以第二个进程的scanf会等待至第一个进程将数据写入缓冲区
    for (int i = 0; i < 3; i++)
    {
    printf("Child Process 2: %d\n", i);
    sleep(1);
    }
    close(fd[1]); // 为防止文件读写出现问题,关闭写入端,只允许读取
    dup2(fd[0], STDIN_FILENO); // 将标准输入重定向到管道的读取端
    scanf("%s", buff); // 从标准输入读取字符串,然后重定向至管道的读取端
    close(fd[0]); // 关闭管道的读取端
    printf("%s", buff); // 输出由管道传输的字符串
    exit(0); // 结束当前进程
    }
    return 0;
    }

    输出结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    Child Process 1: 0
    Child Process 2: 0
    Child Process 2: 1
    Child Process 1: 1
    Child Process 2: 2
    Child Process 1: 2
    Child Process 1: 3 # 从这个时候开始,rc_2在等待rc_1通过管道传入"Hello World!"
    Child Process 1: 4
    Hello_World! # rc_2通过管道读取到了内容,进行输出
]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + Linux系统中waitpid函数的使用实例 + + /p/840f43e7.html + + 在写完OSTEP第五章课后习题之后,通过第八题的答案记录一下自己目前对waitpid()的尝试结果,目前的尝试仅限于进程执行的阻塞和等待,轮询和非阻塞的状态暂时没有遇到,日后补充。

进程等待

waitpid()不能用于子进程等待更早的另外一个子进程,如果尝试运行则会返回-1。(在父进程中则等待并返回子进程对应的pid)

这里举例说明,以下为一个不包含任何waitpid()的原始代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int main()
{
// 创建第一个子进程
int rc_1 = fork();
if (rc_1 == 0)
{
exit(0);
}

// 创建第二个子进程
int rc_2 = fork();
if (rc_2 == 0)
{
exit(0)
}
return 0;
}

该代码通过waitpid()函数可以实现在rc_1rc_2都执行完毕之后,再执行主进程的内容,修改如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
// 创建第一个子进程
int rc_1 = fork();
...

// 创建第二个子进程
int rc_2 = fork();
...

waitpid(rc_1, NULL, 0); // 等待第一个进程(pid为rc_1的进程)结束
waitpid(rc_2, NULL, 0); // 等待第二个进程(pid为rc_2的进程)结束
return 0;
}

但是在子进程中调用waitpid()是不能做到让rc_2等待rc_1的。参考:stackoverflow

比如修改rc_2的代码如下

1
2
3
4
5
6
int rc_2 = fork();
if (rc_2 == 0)
{
int wr = waitpid(rc_1, NULL, 0);
exit(0)
}

通过以上的代码并不能让rc_2等待rc_1,如果尝试输出wr会得到wr == -1(在父进程中则应该是等待进程的pid)

]]>
+ + + + + 知识记录 + + + + + + + os + + + +
+ + + + + Linux中不同版本exec函数区分 + + /p/b9e46cb4.html + + 该问题为OSTEP第五章进程API上的一个问题,在搜Stack overflow的时候发现一个很好记的答案,单独写一个博客记录一下

参考回答

  1. what-are-the-different-versions-of-exec-used-for-in-c-and-c

翻译摘抄

对于exec()函数,在C/C++中有以下几个不同的版本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <unistd.h>

extern char **environ;

int execl(const char *pathname, const char *arg, ...
/* (char *) NULL */);
int execlp(const char *file, const char *arg, ...
/* (char *) NULL */);
int execle(const char *pathname, const char *arg, ...
/*, (char *) NULL, char *const envp[] */);
int execv(const char *pathname, char *const argv[]);
int execvp(const char *file, char *const argv[]);
int execvpe(const char *file, char *const argv[],
char *const envp[]);

其中不同版本的区别通过函数名可以分为以下几个大类:

L和V

  • L:L在这里指的是list,执行的时候的将参数以类似如下方式传入:

    1
    execl(const char *pathname, const char *arg, ...)

    其中省略号代表了后续分别独立传入的参数,其中,第一个参数应是正在执行的文件关联的文件名,并且参数以空字符NULL作为结尾的判定。

  • V: V在这里指的是vector,执行的时候以char*的形式传入执行指令

    1
    int execv(const char *pathname, char *const argv[]);

    对于不确定传入参数的个数的时候,可以使用vector来执行程序。使用带v的函数的时候,首先传入的第一个pathname是指向可执行文件的路径,后面传入的argv[]中,第一个argv的位置上按习惯为可执行文件的名字,后面argv+1等参数则是实际需要调用的可执行文件的参数、

有的命令执行的时候,我们并不知道要传入的参数有几个,而有的命令则必须要一定数量的参数才能运行。通过分别调用带l或带v的函数,在不同的情况下执行某些特定命令很有用

E

E在这里指代的是Environment,在结尾带eexec()调用的时候的环境变量env与父进程的env并非一定相同,通过带e的函数即可在调用exec()的同时传入一个env供子进程使用

P

P在这里指的是系统环境变量中的PATH,含有pexec()在调用的时候会在系统变量的PATH当中寻找对应的可执行文件,而缺少pexec()在执行的时候,如果在当前目录下没有对应的文件名字,则需要传入目标可执行文件的绝对或相对路径。

]]>
+ + + + + 知识记录 + + + + + + + os + + + +
+ + + + + 通过Python提交ncu每日健康信息 + + /p/cf0fd528.html + + 声明
  1. 该方法目前稳定性尚不确定,Token有概率会不定时失效,如果使用后果自负
  2. 该方法仅作Python学习使用,了解原理后使用后果自负
  3. 疫情期间请以实际情况打卡汇报,切勿身体有状况而依旧以无状况打卡。

参考文章

  1. 简单三步,用 Python 发邮件 - 知乎 (zhihu.com)
  2. github action获取仓库secrets

实现的效果

​通过Github Actions,在每天通过cron设定的时间实现企业微信打卡

运行环境

Github Actions

需要准备的东西

QQ号以及QQ的SMTP密码

获取Token

  1. 在打卡界面中"复制链接",并在电脑上打开

    企业微信

  2. 电脑浏览器打开链接,按F12,此时可能是电子ID,不用管,在右上角找到Network,并打开。

    (如果提示要按Ctrl+R,按就行)

    Network

  3. Network下方找到loginByToken,并且找到右边的Token信息,复制保存。

    TokenGet

获取QQ邮箱的SMTP密码

百度搜索:获取QQ邮箱的SMTP密码

编辑Python脚本

大致思路就是通过对应接口抓包后发包即可,更新Token通过接口LoginByToken实现,打卡通过SignIn接口实现。
参考脚本:Scripts/ncu.py

运行脚本并测试

为了仓库的信息安全,所有的密码通过Github仓库下secrets来进行设置,然后参考 github action获取仓库secrets 中提及的方法修改设置即可。

备注

每个人都有义务在疫情大环境下对自己的真实信息负责

]]>
+ + + + + 小技巧 + + + + + + + python + + + +
+ + + + + Github的PAT口令的密码记录和保存方案 + + /p/a126ef4d.html + + 参考链接

简单方案

最简单的方案是讲自己的配置文件用明文保存,在文档中查询可知道指令如下

1
git config --global credential.helper store

在设置credential.helper为全局store之后,下一次的验证会出现提示并保存,之后则会使用存在~/.git-credentials的明文帐号密码进行登入

加密方案

为了更好的管理Github的Token,需要一个Git凭证助手来帮我们记忆用户名和对应的PAT,以下为Git-Credential-Manager-Core引导

安装

安装Lateset Release的GCM,并初始化设置

1
2
sudo dpkg -i <path-to-package>
git-credential-manager-core configure

配置

在Linux上使用GCM需要额外设置credential.credentialStore,其中包含的设置方法如下:

通过Secret Service API来存储

该方法需要系统有GUI显示功能

1
2
3
export GCM_CREDENTIAL_STORE=secretservice
# or
git config --global credential.credentialStore secretservice

这个办法通过libsecret库来和Secret Service进行交互,所有的凭证都存储在“collections”当中。如果要查看的话,可以通过secret-toolseahorse来进行查看。注:在请求用户帐号信息的时候会通过GUI来进行交互。

通过Git自带的凭证缓存机制来存储

1
2
3
export GCM_CREDENTIAL_STORE=cache
# or
git config --global credential.credentialStore cache

这种方法保存的密码不会以可长期读取的文件形式存在硬盘上,如果是需要链接一些临时性的服务可以用这个方法。默认来说git credential-cache会储凭证900s,可以通过如下指令修改:

1
2
3
export GCM_CREDENTIAL_CACHE_OPTIONS="--timeout 300"
# or
git config --global credential.cacheOptions "--timeout 300"

通过纯文本的形式进行保存

这办法不安全

1
2
3
export GCM_CREDENTIAL_STORE=plaintext
# or
git config --global credential.credentialStore plaintext

这种办法保存的密码默认会存在~/.gcm/store目录下,目录可通过GCM_PLAINTEXT_STORE_PATH环境变量来进行修改,如果文件不存在则会被创建新创建的文件权限为700.

通过GPG/pass进行存储

这种方法需要有一对GPG密钥

1
2
3
export GCM_CREDENTIAL_STORE=gpg
# or
git config --global credential.credentialStore gpg

这种办法主要使用了pass工具,默认情况下文件会保存在~/.password-store文件下,该目录可以通PASSWORD_STORE_DIR来进行修改。在使用这种办法进行凭证管理之前,首先需要通过一对GPG密钥对pass进行初始化操作。

1
pass init <gpg-id>

这里的<gpg-id>指的是当前使用gpg密钥对的用户的系统id。通过以下指令可以创建一个自己的gpg密钥对:

1
2
gpg --gen-key
# and follow prompts
]]>
+ + + + + 小技巧 + + + + + + + Github + + + +
+ + + + + OSTEP:进程的概念理解 + + /p/e328a303.html + + 第四章:进程

作业来自: ostep-homework

  1. 两个程序都只使用CPU,所以CPU的利用率是100%,测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Time        PID: 0        PID: 1           CPU           IOs
    1 RUN:cpu READY 1
    2 RUN:cpu READY 1
    3 RUN:cpu READY 1
    4 RUN:cpu READY 1
    5 RUN:cpu READY 1
    6 DONE RUN:cpu 1
    7 DONE RUN:cpu 1
    8 DONE RUN:cpu 1
    9 DONE RUN:cpu 1
    10 DONE RUN:cpu 1

    Stats: Total Time 10
    Stats: CPU Busy 10 (100.00%)
    Stats: IO Busy 0 (0.00%)
  2. 总共使用了11 ticks的时间,测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Time        PID: 0        PID: 1           CPU           IOs
    1 RUN:cpu READY 1
    2 RUN:cpu READY 1
    3 RUN:cpu READY 1
    4 RUN:cpu READY 1
    5 DONE RUN:io 1
    6 DONE WAITING 1
    7 DONE WAITING 1
    8 DONE WAITING 1
    9 DONE WAITING 1
    10 DONE WAITING 1
    11* DONE RUN:io_done 1
  3. 交换顺序后,在PID0进行io操作的时候,PID1会切换成RUNNING的状态,提高了CPU的利用效率,所以交换顺序重要。测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    Time        PID: 0        PID: 1           CPU           IOs
    1 RUN:io READY 1
    2 WAITING RUN:cpu 1 1
    3 WAITING RUN:cpu 1 1
    4 WAITING RUN:cpu 1 1
    5 WAITING RUN:cpu 1 1
    6 WAITING DONE 1
    7* RUN:io_done DONE 1
  4. 由于加上了SWITCH_ON_END的标签,此时PID0进行IO操作的时候CPU会空闲等待至IO操作完成,浪费了一定的时间。测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Time        PID: 0        PID: 1           CPU           IOs
    1 RUN:io READY 1
    2 WAITING READY 1
    3 WAITING READY 1
    4 WAITING READY 1
    5 WAITING READY 1
    6 WAITING READY 1
    7* RUN:io_done READY 1
    8 DONE RUN:cpu 1
    9 DONE RUN:cpu 1
    10 DONE RUN:cpu 1
    11 DONE RUN:cpu 1
  5. 由于这次会在等待IO的时候进行进程的切换,所以在io操作时,CPU没有等待,而是切换到了另外一个进程上继续工作,提高了利用率。测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    Time        PID: 0        PID: 1           CPU           IOs
    1 RUN:io READY 1
    2 WAITING RUN:cpu 1 1
    3 WAITING RUN:cpu 1 1
    4 WAITING RUN:cpu 1 1
    5 WAITING RUN:cpu 1 1
    6 WAITING DONE 1
    7* RUN:io_done DONE 1
  6. 由于IO操作的优先级不是最高的,即使io操作的WAITING结束了,也会等待CPU先将其他进程执行之后,再对IO进行切换,由于IO操作需要消耗比较多的额外时间,而这部分时间没有被CPU利用,所以系统资源没有得到有效利用。测试可得:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Time        PID: 0        PID: 1        PID: 2        PID: 3           CPU           IOs
    1 RUN:io READY READY READY 1
    2 WAITING RUN:cpu READY READY 1 1
    3 WAITING RUN:cpu READY READY 1 1
    4 WAITING RUN:cpu READY READY 1 1
    5 WAITING RUN:cpu READY READY 1 1
    6 WAITING RUN:cpu READY READY 1 1
    7* READY DONE RUN:cpu READY 1
    8 READY DONE RUN:cpu READY 1
    9 READY DONE RUN:cpu READY 1
    10 READY DONE RUN:cpu READY 1
    11 READY DONE RUN:cpu READY 1
    12 READY DONE DONE RUN:cpu 1
    13 READY DONE DONE RUN:cpu 1
    14 READY DONE DONE RUN:cpu 1
    15 READY DONE DONE RUN:cpu 1
    16 READY DONE DONE RUN:cpu 1
    17 RUN:io_done DONE DONE DONE 1
    18 RUN:io DONE DONE DONE 1
    19 WAITING DONE DONE DONE 1
    20 WAITING DONE DONE DONE 1
    21 WAITING DONE DONE DONE 1
    22 WAITING DONE DONE DONE 1
    23 WAITING DONE DONE DONE 1
    24* RUN:io_done DONE DONE DONE 1
    25 RUN:io DONE DONE DONE 1
    26 WAITING DONE DONE DONE 1
    27 WAITING DONE DONE DONE 1
    28 WAITING DONE DONE DONE 1
    29 WAITING DONE DONE DONE 1
    30 WAITING DONE DONE DONE 1
    31* RUN:io_done DONE DONE DONE 1
  7. 在使用了IMMEDIATE标签后,每次io_done之后CPU都会先切换io操作,然后用io处理的时间来处理其他进程,提高了系统资源的利用率。测试如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Time        PID: 0        PID: 1        PID: 2        PID: 3           CPU           IOs
    1 RUN:io READY READY READY 1
    2 WAITING RUN:cpu READY READY 1 1
    3 WAITING RUN:cpu READY READY 1 1
    4 WAITING RUN:cpu READY READY 1 1
    5 WAITING RUN:cpu READY READY 1 1
    6 WAITING RUN:cpu READY READY 1 1
    7* RUN:io_done DONE READY READY 1
    8 RUN:io DONE READY READY 1
    9 WAITING DONE RUN:cpu READY 1 1
    10 WAITING DONE RUN:cpu READY 1 1
    11 WAITING DONE RUN:cpu READY 1 1
    12 WAITING DONE RUN:cpu READY 1 1
    13 WAITING DONE RUN:cpu READY 1 1
    14* RUN:io_done DONE DONE READY 1
    15 RUN:io DONE DONE READY 1
    16 WAITING DONE DONE RUN:cpu 1 1
    17 WAITING DONE DONE RUN:cpu 1 1
    18 WAITING DONE DONE RUN:cpu 1 1
    19 WAITING DONE DONE RUN:cpu 1 1
    20 WAITING DONE DONE RUN:cpu 1 1
    21* RUN:io_done DONE DONE DONE 1
  8. 开放题随机,和前七题大致相同。

]]>
+ + + + + 知识记录 + + + + + + + OS + + + +
+ + + + + 总结:2022年2月 + + /p/ba5740b2.html + + 这个月因为游戏的问题,我又犯了拖延症的老毛病,导致计划中的学习任务没有一个完成。玩起游戏的时候总会高估自己的效率,导致就想着一直玩到通关为止。规划的二月份的学习计划没有一个完成的事实,让我感到挺沮丧的。但我还是觉得要写一篇总结来记录这个月的所做所为。

做了的事情

学习方面

尝试了用Postman工具进行抓包,不过由于自己偷懒没仔细看文档以及对代理设置的不当配置,前前后后断断续续折腾了四五天还是换回Wireshark进行数据抓包,Python抓包发包本身学习倒是简单不少,一到两个小时就完成了学习,Appium目前也还没有开始接触。Rust相关的课程完全搁置没有进度。CS144的lab搭建好环境并在别人现成已有的Blog下完成了第一个实验,但是由于照葫芦画瓢,成就感很低并且了解不彻底,需要重新完成。力扣打卡断断续续持续了半个月,在2.25艾尔登法环发售到3.6通关群星结局过程没有其他进度。

游戏方面

虽然二月份就学习内容上来说摆烂几乎没有进度,但是用了一个礼拜的高强度游戏来感悟宫崎老贼的“魂系”游戏也完全不会让我觉得是在浪费时间。超大的世界观框架+完全自由的探索+五花八门的怪物+永远可以带来惊喜的各种武器,在初高中的时候总幻想一个所有人都可以一起探索的世界,这个世界在玩艾尔登法环的时候完全能够切身体验。在目前的开荒时期,除了自己推图可以发现各种各样的东西,同时最让人流连于其中的则是在目前世界观巨大的情况下,还没有完备的攻略来引导玩家“必须/流水线”的一套教程,同时全网玩家又在一起对这个世界进行发掘,让这个本来“单机”的游戏在某种意义上又变成了全网大家一起探索的异次元,这种开荒的乐趣加上老头环本身庞大的世界观绝对能称为我心中的“年度游戏”。

三月份要做的事情

学习内容

  • 无,完成之前二月份的任务就算成功

生活方面

  • 在不下雨的天气每天跑至少1.2km,同时保持良好的作息习惯
  • 饮食上一个礼拜只吃一次非常规饮食,同时定期吃水果,改掉只吃维生素药片的习惯

这几天玩游戏的时候一直觉得这个月做的事情太少了,心里很不舒服。看到知乎一些“焦虑推送文”的时候也总觉得自己不务正业。造成这种情况的主要原因还是对玩艾尔登法环的时候一心想着开荒,对时间分配及其不合理导致状态的失衡,不过就取舍来说,作为几年难得一遇的优质游戏,和好兄弟一起联机攻克boss和开荒的快感不知下次得等几年,并不觉得这一个礼拜的时间有所亏欠,只是需要在这个月加把劲,把二月欠的任务完成!

]]>
+ + + + + 个人总结 + + + + + + + 总结 + + + +
+ + + + + Ubuntu上开启内核BBR算法来提高TCP吞吐性能 + + /p/2f2e6810.html + + 参考文章:How to enable BBR on Ubuntu 20.04

拥塞控制算法

默认情况下Linux 使用 Reno 和 CUBIC 拥塞控制算法,Linux kernal 4.9以上版本的内核已经自带该功能,由于Ubuntu 20.04的为5.4.0 kernel,我们可以直接启用

通过以下指令检查目前可选择的拥塞控制算法:

1
sysctl net.ipv4.tcp_available_congestion_control

输出大致为(可用的算法有reno和cubic两种):

1
2
root@vps:~## sysctl net.ipv4.tcp_available_congestion_control
net.ipv4.tcp_available_congestion_control = reno cubic

通过以下指令检查目前的拥塞控制算法:

1
sysctl net.ipv4.tcp_congestion_control

输出大致为(目前是cubic):

1
2
root@vps:~## sysctl net.ipv4.tcp_congestion_control
net.ipv4.tcp_congestion_control = cubic

在Ubuntu中启用TCP BBR

  1. 在文件etc/sysctl.conf中写入以下内容:

    1
    2
    net.core.default_qdisc=fq
    net.ipv4.tcp_congestion_control=bbr

    保存并退出

  2. 重置sysctl设置

    1
    sudo sysctl -p

    此时会有大致输出:

    1
    2
    3
    root@vps:~## sysctl -p
    net.core.default_qdisc = fq
    net.ipv4.tcp_congestion_control = bbr
  3. 检查BBR是否在系统中正确启用:

    1
    sysctl net.ipv4.tcp_congestion_control

    大致输出:

    1
    2
    root@vps:~## sysctl net.ipv4.tcp_congestion_control
    net.ipv4.tcp_congestion_control = bbr

完成

]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + 总结: 2022年1月 + + /p/9130a701.html + + 当我回顾这个月的所做所为时,我发现自己虽然有些困难和拖延,但还是完成了一些有意义的事情。学习了 Rust 的初级语法。虽然考完试后完全松懈没有进度,但我对 Rust 的学习充满了信心,希望在未来能够深入学习。

另外,也把家里的 Homelab 更换迁移成了 ESXi 基础的虚拟机,并在此之上将之前服务器上的服务器重新分开部署,每次折腾家里的HomeLab总能让我感觉成就感很足。此外,我还尝试了自己投稿文章,虽然初次尝试,但在机核的反馈中感觉有希望继续写下去。

做了的事情

虽然说是说这个月没有为本来的计划和目标努力,但还算是折腾了一些有意思的东西:

  • 学习了Rust的初级语法,在期末考试前完成了Microsoft Learning上入门Rust的40%内容,考完试后完全松懈没有进度。
  • 把家里的Homelab更换迁移成了EXSi基础的虚拟机,并在此之上将之前服务器上的服务器重新分开部署
  • 第一次尝试自己投稿文章,在机核的反馈感觉有希望继续写下去

在之外就是通宵熬夜生死存亡的期末考试复习了。

二月份要做的事情

学习内容

  • 学习一下Python对于网页抓包数据的一些模拟,和对于Appium的使用
  • 完成Rust整个的入门课程
  • CS144的6个lab至少完成2个(考虑拖延的情况下),有时间充裕就完成3-4个
  • 力扣每天题库非困难题打卡

折腾着自己玩玩

  • 完成家里面Homelab关于流媒体服务器的部署
  • 通过Python+Appium的组合,看看能不能全自动化学校企业微信打卡内容

生活方面

  • 找2-3部电影看完,内容随意
  • 开学前每天锻炼半小时,睡眠作息开始调整为十一点睡觉,六点到七点起床

整个流程下来还是感觉和记流水帐一样吧,不过这样记录了以后感觉负罪感也强了一些,也算是最自己的一个监督。希望能离年初的目标越来越近。

]]>
+ + + + + 个人总结 + + + + + + + 总结 + + + +
+ + + + + Linux通过alternatives切换程序版本环境 + + /p/afb272ac.html + + 参考帖子
  1. How to install and switch between different python versions in ubuntu 16.04

具体操作

在切换Java版本的时候,通过update-alternatives可以很方便的进行版本之间的切换,而在Python里面,如果用Ubuntu自己的apt包管理器同时下载了多个版本的Python的话,则需要自己手动对Python的版本进行切换设定(切换版本还有alias等方法,这里不提及)。指令如下:

  1. 在安装了多个版本的Python之后(其他语言同理),通过类似以下指令的格式添加对应的程序优先级:

    1
    2
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
  2. 由上面设置的程序指令为python,接下来通过以下指令对python的版本进行切换:

    1
    sudo update-alternatives --config python

    输入之后可以见到类似如下的选择:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    There are 2 choices for the alternative python (providing /usr/bin/python).

    Selection Path Priority Status
    ------------------------------------------------------------
    * 0 /usr/bin/python3.8 2 auto mode
    1 /usr/bin/python2.7 1 manual mode
    2 /usr/bin/python3.8 2 manual mode

    Press <enter> to keep the current choice[*], or type selection number:

    只需要在number后面输入对应需要的优先级,即可对python的版本进行切换。

每次都会忘记是update alternatives还是alternatives-update,所以写一篇博客记录一下…自己还是太Native了。

]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + 2021年度总结 + + /p/1153f279.html + + 开头

往年本来都没有在年初或者年末的时候写一个一年总结的习惯,今年也算是突发奇想,打算写一篇博客稍微记录下自己的学习和生活。希望能在2022年里面养成时不时记录一下自己生活的习惯,养成正视自己的一个态度。

性格变化

从2020年高三高考结束,到2021年大一升大二,也算是对大学生活有了一些认知和了解。整个大一的时间不能说浑浑噩噩,但总觉得自己心里缺了点什么。

现在仔细想想感觉就是缺少对自己的一个自视,总觉得心里空空的,不自在。刚上大学的时候就对“信息差”这个词很敏感,整个大一的过程也感觉一直在忙忙碌碌的处理各种各样的“信息”。无论是平时上课、考试还是处理一些生活中的问题,也总是把能搜罗到的各种信息的优先级置于自己“能力”的优先级之上,对外界环境的信任远高于对自己的信任。

这种自己信任上的缺乏感在最近听Daniel SlossJigsaw(拼图)Live Show之后,感觉悟到自己经常总是忽视自己,一直感觉空虚因而不断的向外界索取信息,大抵也就是自己尚且不能适应孤独的感觉。上了大学以后本来觉得能聊的人多了,孤独的感觉应该弱化了,但现在想想过去一年里面反而应该是越来越强了。想过也许是不是谈恋爱就能让自己生活不那么孤独,但现在想想,问题应该还是出在自己对自己的不信任上。

连自己都不能做到100%爱自己的话,也很难爱其他人

总之,希望在将来到的2022年里面,能增加自己正视自己的态度。争取每个月写一个总结,来达到”给自己泼一盆冷水醒一醒“的作用。

有的话,说出来了才有力量警醒自己

能力技能

这个学期除了学校本身的内容,学习密度最大的时候应该是年初倒腾软路由的时候开始的。从最初依赖带有GUI界面的openwrtluci界面,到现在已经习惯了terminal的方式进行各种操作,这种对Linux一类命令行态度的转变有一种拿到了普罗米修斯的火把的感觉,一切原来觉得”麻烦“或者难以折腾的东西,突然都明朗了起来,即使遇到了问题,相比原来无脑cp各路解决方案的脚本指令,现在会下意识的思考和提前验证其中的原理和造成的影响了。

对于项目而言,去年算是或多或少接触或者熟悉了Nginx、Docker、MySQL等等零零碎碎的知识和技术,也搭建了一台以家里电脑为处理服务器,香港云服务器作为跳板的公网服务器,在上门也尝试部署过许多不同的demo或者项目,其中也通过对ZeroTier一类的工具的深入研究,也算是对计算机网络的学习和经验埋下了兴趣。

不过去年一年中,也和性格相关,大部分时候只是在通过搜刮各种”信息“,来搭建各种别人的项目然后进行一些很小的改动,一直在重复着”遇到问题“->”寻找别人的解决方案“->”不断选择最优解并且排错“->”解决问题“的过程,而总是不会把**”自己创造解决方案“排在首要位置。今年的博客内容也能体现我目前”知识密度“低下的严重不足,大部分时候只是写个机械性的总结草草了事,缺少很多思考和加工的过程。

生活

平时在学校一个人虽然自在,但也还是和在家里一样一直倾向于变化越少越好,很少出门,出门吃饭也都只是找平时能难得线下面对面聊的比较多的同学,线上聊的比较多的同学和学长就经常”社恐“了。

在今年年末的时候,高考那会的储蓄也算是消耗殆尽了,钱的概念也越来越深刻了。不过还算幸运的是有需要的东西基本上也都备齐了,之后需要的东西开销应该也不会很大,目前的电子产品和设备就足够我把玩好一阵子了。

今年上半年的时候一直在忙忙碌碌的在不同的互联网上”冲浪”,一直在到处寻找已有的工具和服务然后不断上手和试验。看上去很忙但实际上也都学的是一些花时间,而不用花精力就能学会的“三脚猫”功夫。下半年的话反而玩了好几款3A大作而觉得整一年都充实了不少(手柄玩游戏是真的闲适),总的效率上虽然没做什么事情,但情绪要比上半年积极快乐多了。

目标和计划

2022年也到了,之前也没做过啥新年计划,今年也算是第一年尝试看看了,姑且列出以下几个目标,看看年末的时候能实现多少吧:

  • 每个月写一篇总结,大致总结一下这个月发生了什么,就当是自己对自己态度的一个正视,也算是自己和自己对话了。
  • 减肥,希望能减到BMI标准的水平。
  • 接触至少三种不同的编程语言,了解相关的项目,并提交出自己的第一个PR
  • 游戏开发入门,制作自己的一个游戏demo
  • 学习一门额外的技能,目前的计划包括但不限于:
    • 日语入门(问就是二次元)
    • 拾回Adobe全家桶
    • 系统性学习建模软件
  • 争取能参加一次GameJam

以上应该算是对2021年的一个缺胳膊少腿的总结吧,其中也发生了很多值得纪念和回味的细节事情,包括和不同的人相识又或者和第一次和同学去旅游,在旅游的时候又和曾经的同学见面…写博客的目的还是希望能把那些原来不会对别人,也不会对自己说的话记录下来,也是对自己的一个警示了。

2022年1月7号 - 凌晨3:14

(感冒还没好全 & 期末预习备战中… 希望这学期别挂XD)

]]>
+ + + + + 个人总结 + + + + + + + 总结 + + + +
+ + + + + 快慢指针 + + /p/76495b47.html + +

以下内容仅为刷题总结,只记录目前遇到过的情况,如果后面遇到了更多可能性再做记录。

快慢指针

快慢指针的主要思想有点类似追击问题,通过让两个不同的小人以不同的速度在线性路径上行进,来招到某个特殊的相对位置。通常可以用来解决大致一下两类问题:

  1. 线性路径上某特殊点的位置和对应的操作
  2. 判断链表中是否存在循环(以及循环的点位置)

思路

一般的思路是让两个不同的小人先以某一个相对的路径进行移动,之后再以一定倍率的相对速度进行继续移动,如果发生了『追击』、『相遇』或者『触底』等特殊事件的时候,就可以作为解题需要的特殊位置来进行处理。

举例一:回文链表

如何判断出链表的中点位置?

答:通过两个速度分别为v2v的指针同时从表头开始出发,当2v速度的指针『触底』的时候,以速度v前进的指针指向的位置理应为中点。

如果链表的长度为偶数的话,具体是停留在中间位置的左边还是右边要结合具体情况进行判断

举例二:环形链表

如何判断链表内是否有循环?

答:让两个不同速度的指针分别出发,如果有环存在的话,则必然会有两个指针在环内相遇。

举例三:环形链表 II

如何判断链表内开始进入环的位置?

答:让两个指针分别以速度v2v出发,相遇则说明环存在。这个时候假入环前的长度为D,设环的长度为C,入环点到相遇点的距离为S1,相遇点重新回到入环点的距离则为S2。

  • 此时快指针比慢指针多走n圈,所以走的距离必然为D+S1+nC
  • 慢指针走一圈的时候,快指针能走两圈。所以相遇必然发声在第一个环内,所以慢指针走的距离为D+S1
  • 由于2 * (D + S1) == D + S1 + nCC = S1 + S2,所以不难得出D = (n - 1)(S1 + S2) + S2,即D = (n - 1)C + S2的结论,翻译一下则为,入环点前面的长度D即为慢指针再走S2,到达入环点之后,再走n-1圈的长度
  • 所以这个时候只需要再设定一个指针,让它从头开始走,当走到入环点D的时候,理论上来说慢指针也将走完第n-1圈,所以他们会相遇,同时慢指针的步数即为进入环的长度!

举例四:倒数第N个节点

如何删除链表中的倒数第N个节点?

答:让两个起始位置相差n的指针以同样的速度运动,当前面的指针『触底』的时候,后面的指针自己就是「倒数第n个」节点了。

实际操作的时候,由于单向链表需要知道前一个节点才能对后一个节点进行操作,所以通常会让走的快的节点比自己先走一步。

]]>
+ + + + + 知识记录 + + + + + + + 算法 + + + +
+ + + + + 链表 + + /p/2362a8ea.html + +

以下内容仅为刷题总结,只记录目前遇到过的情况,如果后面遇到了更多可能性再总结

链表定义

在链式存储当中,对于节点是使用指针指向的方式进行数据的存储,其结点定义类似如下形式:

1
2
3
4
5
6
struct LinkNode {
int val;
LinkNode *next;
LinkNode() {}
LinkNode(int x) : val(x), next(NULL) {}
};

链表的好处是在添加或者删除特定节点的时候时间复杂度比顺序存储要小。在经常需要删除和添加操作节点的时候,通过直接修改节点的指针,可以快捷的对节点进行对应操作。

结构

链表划分为三个部分,头+中间的数据节点+尾。

头结点

其中头节点有两种常见的处理方式,一种是通过一个虚拟的dummyhead来当作头结点,之后才是真实的数据节点。这样的好处是可以在对实际含有意义的头节点进行操作的时候,不需要有额外的特判就可以完成,通过增加一个头结点在部分题目中有的时候可以有很好的效果。

尾节点

尾节点和头结点一样,也有实际意义上存在的数据节点和最后指向的一个尾巴节点,不过根据节点的定义来看,可以知道尾节点后面通常都跟有一个无意义的nullptr。在有的时候需要对尾节点进行处理的时候,增加一个虚拟的dummytail也许也能起到很好的效果。(p.s. 比如在写双向链表的时候)

指针

创建链表的时候,通常会创建一个指针节点来表示整个链表的头节点。

1
LinkNode *ListA = new LinkNode();

以上代码的含义即为创建一个LinkNode的节点,同时创建一个叫做List

A的指针,指向的是这个节点的内存。

而在对单向链表的进行操作的时候,如果我们移动了链头,很多时候意味着操作都是不可逆的。因此如果需要对链表中某个特定节点进行操作的时候,往往都会创建一个指向需要节点的指针来进行单独操作,操作完毕后将指针释放即可。

以下举例,阐明节点和节点指针之间的关系:(感觉有点废话)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
LinkNode *cur = new LinkNode();  // 创建一个cur指针
LinkNode *A = new LinkNode(114); // 创建节点A
LinkNode *B = new LinkNode(115); // 创建节点B
cout<<"cur addr:"<<cur<<" "<<"A addr:"<<A<<" "<<"B addr:"<<B<<endl;
// 此时cur、A和B表示的内存地址
cur = A;
LinkNode *tmp = A;
cout<<tmp<<endl;
// 让cur指向A之后cur的内存地址
A = B; // 让A指向B
// delete tmp; // 是否删除原本A代表的节点对应内存
cout<<"cur addr:"<<cur<<" "<<"A addr:"<<A<<" "<<"B addr:"<<B<<endl;
cout<<cur->val<<endl;
return 0;

在注释了delete tmp的时候,最后输出的cur->val会依旧是114这个A曾经的值,而如果执行了对应的delete操作,由于原本A对应内存上的结构体被释放了,所以这个时候cur就没有指向一个有效的节点。

算法题

链表的终止条件

常用的终止条件有三种:

  1. cur != nullptr 指针会停留在nullptr的尾节点上
  2. cur->next != nullptr 指针会停留在最后一个有效节点上
  3. cur != nullptr && cur->next != nullptr多用于快慢指针,用于判断快指针是否到队尾。之所以两种情况都判断为循环跳出的条件原因:由于nullptr本身相当于最后一个有效节点的附加尾巴。类比于线段上有区间(a, b)和区间[a,b],快指针的目的是为了判断长度,而这两种区间长度都是b - a,只是对于第一种情况(a, b)如果不将b节点本身纳入有效节点则会出现区间长度变为a -> (b - 1)的情况。

对于第三种终止条件,还可以类比为:

  • cur == nullptr终止的情况就是区间(a, b),此时cur在走到b的时候快指针已经越界,刚好碰壁
  • cur->next == nullptr终止的情况就是区间[a, b],此时cur在走到b时,刚好到达边界,也同样碰壁。
]]>
+ + + + + 知识记录 + + + + + + + 算法 + + + +
+ + + + + 程序main函数入口arg参数的用处 + + /p/98326a13.html + + 参考文章

前言

今天在看一些代码的时候偶然看到自己刚开始学C的时候,main()函数中都会有一个(int argc,char* argv[],char **env)的传参。但是到现在依旧不理解这几个参数的意义和它们代表的作用,在稍微查阅了一下以后,浅显的总结一下。

具体意义

如果要使用argcargv的话(char **env暂时没遇到,不做记录),只需要在main函数当中添加这两个参数即可,大致参考写法类似如下:

1
2
3
4
5
int main(int argc, char** argv)
{
...
return 0;
}

解释

argc是一个整形的参数,代表了程序运行的时候发送给main()函数的参数个数。

argv则是一个字符串的数组,用来指向存放对应参数的字符串。

其中,argv[]数组中的元素有argc个,并且有:

  • argv[0]包含的是程序运行的路径名字
  • argv[1]包含的是程序命名后的第一个字符串
  • argv[2]包含的是程序命名后的第二个字符串
  • argv[argc]为NULL

演示方法

为让以上解释更加形象,这里引入示例代码进行解释:

1
2
3
4
5
6
7
8
9
10
11
#include<iostream>
using namespace std;

int main(int argc, char* argv[])
{
for(int i = 0; i < argc; i++)
{
cout<<"Argument"<<i<<" is "<<argv[i]<<endl;
}
return 0;
}

假设代码文件存放于./b.cpp文件当中,通过编译器编译后的可执行文件为b。在执行如下指令:

1
./b

返回的内容为:

1
Argument0 is ./b

在执行如下指令:

1
./b oneString twoString threeString

返回的内容为:

1
2
3
4
Argument0 is ./b
Argument1 is oneString
Argument2 is twoString
Argument3 is threeString

对应了上文中的argc的元素个数和argv的字符串内容,即./b后面的oneStringtwoStringthreeString

]]>
+ + + + + 知识记录 + + + + + + + cpp + + + +
+ + + + + Ubuntu下安装Oh My Zsh引导 + + /p/80f884dc.html + + 参考文章

安装Oh My Zsh

安装Zsh

1
2
3
sudo apt install zsh -y
chsh -s /bin/zsh
echo $SHELL ## 如果输出bash则需要重启SHELL

脚本安装

1
wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

Zsh的配置

字体

字体安装(Hack NF)

1
apt install fonts-hack

其他字体:ryanoasis/nerd-fonts

主题切换

  1. 编辑zsh配置文件

    1
    vim ~/.zshrc
  2. 修改主题(以powerlevel10k为例)

    1. 拉取主题仓库

      1
      git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
    2. ~/.zshrc下修改主题内容

      1
      ZSH_THEME="powerlevel10k/powerlevel10k"

插件配置

  1. 安装zsh-autosuggestionszsh-syntax-highlightingzsh-proxyz

    1
    2
    3
    git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
    git clone https://github.com/sukkaw/zsh-proxy.git ~/.oh-my-zsh/custom/plugins/zsh-proxy
  2. 配置插件,编辑.zshrc文件,在plugins处添加,类似效果如下:

    1
    2
    3
    4
    ## 根据官方文档,zsh-syntax-highlighting 插件需放在最后
    plugins=(
    git extract zsh-autosuggestions z zsh-proxy zsh-syntax-highlighting
    )
  3. zshrc完整文件配置帮助

    1
    2
    3
    4
    5
    6
    ## 以下内容去掉注释即可生效:
    ## 启动错误命令自动更正
    ENABLE_CORRECTION="true"

    ## 在命令执行的过程中,使用小红点进行提示
    COMPLETION_WAITING_DOTS="true"
]]>
+ + + + + 安装引导 + + + + + + + Linux + + zsh + + + +
+ + + + + C++学习记录 - const限定符 + + /p/d08cfaf4.html + + 指针和引用

总结自C++ Primer,仅供自己学习参考

引用

  1. 引用本身只是目标对象的一个别名,自己本身并不是对象

  2. 变量引用可以间接对变量进行修改

  3. 常量别名代表的只能是常量,如果常量别名一个变量,也是先通过创建一个临时量,然后对这个临时量创建别名

  4. 变量别名不能指向一个常量,也不能指向运算后的值后的结果,e.g.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int pi = 3;
    const int PI = 3;

    //当对象为变量时
    int &revPI = pi; //正确,变量的别名代表的是一个变量
    int &revPIt = pi *2; //错误,不能指向变量运算后的结果(即返回的是一个常量值)
    const int &cRevPI = pi; //正确,常量别名可以指向一个变量,通过临时量代替

    //当对象为常量时
    int &cstRevPI = PI; //错误,变量别名必须指向一个变量
    const int &cstcRevPI = PI;//正确,常量别名可以指向一个常量
  5. 引用在decltype出并非是对象的同义词,而表示的是对应类型的引用

    1
    2
    3
    4
    const int ci = 0, &cj = ci;
    decltype(ci) x = 0; //x的类型是const int
    decltype(cj) y = x; //y的类型是const int&,必须要设定为一个const int的引用
    decltype(cj) z; //错误,缺少引用代表的对象

    而对于表达式,在使用decltype关键词的时候,由于表达式本身可以返回一个值,所以会被识别为一个引用类型

    1
    2
    3
    int i = 0;
    decltype((i)) d; //错误,d是一个int&,需要初始化
    decltype(i) e; //正确,e是一个int,没有初始化

指针

  1. 指针本身是一个对象,其含义为指向目标对象的地址
  2. void指针可以指向任意一种变量代表的地址
  3. 常量指针必须初始化,其中通过const关键词有两种表达意思:
    • int *const ptr指的是常量指针,地址不可改变,指向一个int类型的变量
    • const int *ptr指的是常量的指针是常量类型,地址可改变,指向的是const int类型的常量
  4. 对于*const关键词修改的指针,虽然地址不能改变,但是依旧可以通过这个指针修改对应变量的值

对于const限定符

顶层const:指针本身是一个常量

底层const:指针所指的对象是一个常量

  • 对于顶层const中,在常量对象中的拷贝操作几乎不受什么影响

  • 对于底层const中,只有两个对象有相同的底层const才能进行拷贝操作,举例如下:

    1
    2
    3
    4
    5
    const ci = 42;
    const int *const cptr = &i;

    const int *cptr2 = cptr //正确,因为*cptr2和*cptr指向的都是常量的指针
    int *p = p3; //错误,因为*p不是指向常量的指针,所以不能拷贝p3

    其中对于引用也同样成立:

    1
    2
    3
    4
    const int ci = 42;

    int &r = ci; //由于ci本身是常量,和&r代表的底层const不同,所以错误
    const int &r2 = ci; //正确,底层const相同
]]>
+ + + + + 知识记录 + + + + + + + cpp + + + +
+ + + + + Windows上通过Scoop管理和安装软件 + + /p/f15c20eb.html + + 参考文章
  1. 「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件
  2. Scoop - 最好用的 Windows 包管理器 - P3TERX ZONE

前言

在知道并安装Scoop的时候只是稍微听说过winget-cli一类的工具,不过由于一直对Windows系统的软件管理早就绝望,下意识的认为对Windows来说,这种终端的程序管理应该几乎没什么用。但在前几天偶然希望在Windows Terminal上寻找一个类似Linuxsudo的程序,发现了Scoop这个神器,并且在使用了一两天尝到甜头后,决定写一篇博客把大概的使用功能都记录一下。

Scoop的安装

前置条件

安装在联网的情况下有直接的指令,但是安装之前需要保证环境满足以下要求:

  • Windows 的版本不低于 Windows 7
  • Windows 的 PowerShell 版本不低于 PowerShell 3
  • 拥有能自由前往Github,保证传输稳定的网络环境
  • Windows的用户名为英文或者数字(非中文)用户名

装前须知

默认安装路径

Scoop默认情况下和Linux中一样,只有普通用户的权限,其中Scoop本身和他默认安装的软件,会安装在%USERPROFILE\scoop目录下,使用管理员权限进行全局安装的软件会在C:\ProgramData\scoop目录下。

修改路径

  1. 打开PowerShell

  2. 设置用户的安装路径

    1
    2
    $env:SCOOP='\PathTo\'  ## 这里填需要设置的路径
    [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
  3. 设置全局安装的路径

    1
    2
    $env:SCOOP_GLOBAL='\PathToGlobal\'  ## 这里填需要设置的全局安装路径
    [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

然后就可以开始愉快的安装了。

开始安装

  1. 在PowerShell中输入以下内容,来保证本地脚本的执行:

    1
    set-executionpolicy remotesigned -scope currentuser
  2. 用下面的命令来安装Scoop

    1
    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
  3. 安装完成,可以通过以下指令来查询帮助

    1
    scoop help

网络设置

由于网络可能有的时候不稳定,大部分Scoop的软件在安装的时候可能会出现安装失败的情况,就需要我们自己手动进行代理的设置,设置代理的命令如下:

1
scoop config proxy [IP/DNS]:[端口]

使用手册

常用需安装软件

  1. aria2

    常用的强力下载工具,设置好aria2conf文件并创建session文件,配合以下vbs脚本,创建快捷方式以后,在Win+R后运行Shell:Common Startup,将快捷方式放于其中,就可以当日用的下载工具了。

    VBScript:

    1
    CreateObject("WScript.Shell").Run "aria2c.exe --conf-path=aria2.conf",0

    在安装完毕aria2后,scoop会默认用aria2来下载所有其他的软件,如果有的时候发现aria2下载不好使了,可以通过下面的指令来禁用aria2下载

    1
    scoop config aria2-enabled false

    另外参考P3TERX大佬的博客中,其他选项可以按如下设置:

    单任务最大连接数设置为 32,单服务器最大连接数设置为 16,最小文件分片大小设置为 1M

    1
    2
    3
    >scoop config aria2-split 32
    >scoop config aria2-max-connection-per-server 16
    >scoop config aria2-min-split-size 1M
  2. sudo

    一个提权工具,可以让Windows下实现和Linux类似的提权效果

  3. git

    应该没啥好说的,必备安装。

  4. nerd-fonts字体

    在终端美化中常见的一种Powerline字体,使用以下指令添加库然后就能安装

    1
    scoop bucket add nerd-fonts

    查询可以用的所有字体

    1
    scoop search "-NF"

    因为安装字体需要管理员权限,所以需要添加sudo,指令如下(以Hack NF为例)

    1
    sudo scoop install Hack-NF
  5. LANDrop 局域网文件分享

    一个很好用的局域网文件共享工具,可以高速在不同系统平台之间分享文件。

查阅手册

大部分的使用帮助通过scoop help命令都可以直接列出并查看,常见的searchinstallupdateuninstall等指令不多做赘述。这里提供一些常见自己需要查阅的指令,以供日后使用参考。

清理安装包缓存

Scoop 会保留下载的安装包,对于卸载后又想再安装的情况,不需要重复下载。但长期累积会占用大量的磁盘空间,如果用不到就成了垃圾。这时可以使用 scoop cache 命令来清理。

  • scoop cache show - 显示安装包缓存
  • scoop cache rm <app> - 删除指定应用的安装包缓存
  • scoop cache rm * - 删除所有的安装包缓存

如果你不希望安装和更新软件时保留安装包缓存,可以加上 -k--no-cache 选项来禁用缓存:

  • scoop install -k <app>
  • scoop update -k *

删除旧版本软件

当软件被更新后 Scoop 还会保留软件的旧版本,更新软件后可以通过 scoop cleanup 命令进行删除。

  • scoop cleanup <app> - 删除指定软件的旧版本
  • scoop cleanup * - 删除所有软件的旧版本

与安装软件一样,删除旧版本软件的同时也可以清理安装包缓存,同样是加上 -k 选项。

  • scoop cleanup -k <app> - 删除指定软件的旧版本并清除安装包缓存
  • scoop cleanup -k * - 删除所有软件的旧版本并清除安装包缓存

全局安装

全局安装就是给系统中的所有用户都安装,且环境变量是系统变量,对于需要设置系统变量的一些软件就需要全局安装,比如 Node.js、Python ,否则某些情况会出现无法找到命令的问题。

使用 scoop install <app> 命令加上 -g--global 选项可对软件进行全局安装,全局安装需要管理员权限,所以需要提前以管理员权限运行的 Pow­er­Shell 。更简单的方式是先安装 sudo,然后用 sudo 命令来提权执行:

1
2
scoop install sudo
sudo scoop install -g <app>

达成在 Win­dows 上使用sudo的成就

使用 scoop list 命令查看已装软件时,全局安装的软件末尾会有 *global* 标志。

此外对于全局软件的更新和卸载等其它操作,都需要加上 -g 选项:

  • sudo scoop update -g * - 更新所有软件(且包含全局软件)
  • sudo scoop uninstall -g <app> - 卸载全局软件
  • sudo scoop uninstall -gp <app> - 卸载全局软件(并删除配置文件)
  • sudo scoop cleanup -g * - 删除所有全局软件的旧版本
  • sudo scoop cleanup -gk * - 删除所有全局软件的旧版本(并清除安装包包缓存)
]]>
+ + + + + 安装引导 + + + + + + + Windows + + Scoop + + + +
+ + + + + Windows字体切换的两种方法 + + /p/87ec6922.html + + 参考链接
  1. Tatsu-syo/noMeiryoUI
  2. 如何更换win10系统的字体

方法一

通过noMeiryoUI进行修改(推荐)

  1. 在网站上找到自己喜欢的字体,通常为ttfotffnt等文件。
  2. noMeiryoUI的repo中下载该工具:Tatsu-syo/noMeiryoUI
  3. 解压后启动其中的noMeiryoUI.exe程序
  4. 选择自己想要的字体并更改,应用的时候可能会较为卡顿,耐心等待生效即可。

方法二

通过命令行替换Windows官方字体达到应用自己字体的效果

该方法存在一定风险,在替换Windows原本字体之前,请务必备份

  1. 下载自己想要用于替换的日用字体,并根据类型分别命名为msyh.ttcmsyhbd.ttcmsyhl.ttc

  2. 在C盘根目录新建文件夹TempFonts用于临时存放需要替换的字体

  3. 打开Windows的设置,找到"更新与安全"->“恢复”->“高级启动”,在高级启动之后,选择"高级选项",选择"命令提示符",选择自己的帐号登入

  4. 输入以下指令,将C盘下TempFonts文件夹内的字体替换为系统默认字体。

    1
    xcopy C:\TempFonts\* C:\Windows\Fonts\

    回车后按下A来全部覆盖替换(一定要备份好之前的系统文件再执行这一步

  5. 输入exit回车后进入Windows系统,即可看到自己的字体应用生效,同理,如果想要将字体恢复,只需要用备份的字体文件进行覆盖操作即可。

]]>
+ + + + + 小技巧 + + + + + + + Windows + + + +
+ + + + + Oh My Posh美化Windows Terminal引导 + + /p/d26abad0.html + +

参考文章

更新PowerShell

​ 更新PowerShell本身和Windows Terminal没啥直接关系,单纯做个提醒放一个一键更新指令在这里:

1
iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

这条命令的作用是安装最新版本的PowerShell,截至发博客为止可用于安装PowerShell 7

Windows Terminal的安装&美化

Windows Terminal安装

  1. 打开Microsoft Store
  2. 搜索Windows Terminal
  3. 安装

Windows Terminal的配置和使用

Windows Terminal的使用

  • Win+R中输入wt回车即可呼出Windows Terminal
  • Windows Terminal中链接了一些Linux下可用的指令,诸如ls
  • 如果要在Windows Terminal下使用vim编辑器,只需要在安装了Git的前提下将C:\Program Files\Git\usr\bin设置为环境变量即可。(如果Git安装在其他目录下进行相对应的调整就好,设置好了以后重启一次Windows Terminal即可)

Windows Terminal的个性化配置

如未特别说明,接下来将用wt作为Windows Terminal的简写

注:本文个性化配置包括:

  • 修改Windows Terminal的配色

  • 安装posh-gitoh-my-posh

  • 安装Nerd Font字体

  • 配置oh-my-posh来修改wt的配色和样式

不包括(以下设置在最新版的wt设置中已经包含):

  • 毛玻璃和背景设置
  • 光标形状、大小修改等

配色修改

  1. mbadolato/iTerm2-Color-Schemes下滑,找到自己喜欢的配色的截图,在截图的左上方会有该配色的代号。

  2. iTerm2-Color-Schemes/windowsterminal上找到配色对应的json文件并复制所有的内容。

  3. wt中打开设置,以下图为例:

    打开设置.png
  4. 打开JSON设置,以图下为例:

    打开JSON文件.png
  5. 将刚刚复制的代码粘贴到有scheme字样的配置目录下,以下图为例:

    添加主题.png
  6. 保存后,回到wt的设置,选择平时主要使用的窗口界面(e.g.PowerShell)然后选择外观,然后选择自己添加的主题,以下图为例:

    修改config

安装 Nerd-Fonts 字体

教程以Hack NF字体为例,如果需要使用其他字体请自行选择。

  1. 在这个页面下载的Hack.zip

    ryanoasis/nerd-fonts

  2. 解压Hack.zip,然后全选所有文件,右键点击安装

  3. wt中需要的终端,按配色修改第6步修改字体为Hack NF即可。

安装post-git和oh-my-posh

以下教程需要电脑上安装了Git才能使用

  1. 使用PowerShell安装post-gitoh-my-posh

    指给当前用户(非Administrator)安装:

    1
    2
    Install-Module posh-git -Scope CurrentUser
    Install-Module oh-my-posh -Scope CurrentUser

    给所有用户安装:

    1
    2
    Install-Module posh-git -Scope AllUsers
    Install-Module oh-my-posh -Scope AllUsers
  2. 列出所有可用主题

    1
    Get-PoshThemes
  3. 找到自己喜欢的主题,然后使用指令预览(这里以spaceship为例):

    1
    Set-PoshPrompt -Theme spaceship
  4. 在预览结束以后,为了让主题每次启动都生效,需要创建一个脚本。

    1. 输入以下指令:

      1
      2
      cd ~
      vim $profile
    2. 按下按键i,进入插入模式,然后填入以下内容:

      1
      2
      3
      Import-Module posh-git
      Import-Module oh-my-posh
      Set-PoshPrompt -Theme spaceship #[这里填你选的主题名字,用spaceship做示范]
    3. 键盘键入:wq然后回车,代表保存并退出。

  5. 重新启动wt即可看到自己个性化配置的Windows Terminal界面了。

]]>
+ + + + + 小技巧 + + + + + + + Windows + + PowerShell + + + +
+ + + + + ZeroTier的私有DNS服务器ZeroNSD搭建引导 + + /p/447b77e9.html + + 翻译来源

翻译的时间为2021-9-9,其中部分内容有删改,只提取了主观认为有用的信息,仅供参考

安装步骤

注意事项

  1. 这个功能目前还在Beta测试当中
  2. 这个功能将会内嵌在未来将出现的ZeroTier 2.0当中,不过目前它是一个独立的软件
  3. 接下来的步骤将会有一定困难

概念须知

  1. ZeroTier加入了一个网络后,它将会创建一个虚拟网口
  2. ZeroTier加入了多个网络后,也会有多个虚拟网口
  3. ZeroNSD启动了之后,它将绑定在某一个特定的网口上
  4. 如果你需要对多个网络都使用ZeroNSD,那你也需要创建多个ZeroNSD服务绑定在它对应的网口上

安装环境

​ 该教程使用了两台不同的机器,一台是在云上的Ubuntu虚拟机,另外一台为Windows笔记本,如果要跟着来完成这个快速上手,最好使用相同的平台,如果使用了不同的平台,你最好要有能力弄清楚自己要做什么。

搭建教程

ZeroTier 网络创建

  1. 按正常流程创建、链接并授权一个以在ZeroTier官网创建的network

  2. 在自己的帐号的Account页面下创见一个新的API TokenZeroNSD将会利用这个token来获取对应网络下设备的不同名字,来达到自动分配dns的效果。

  3. 创建一个文件来让ZeroNSD能够以文件的方式读取token,参考指令如下 需要修改token为自己的token

    1
    2
    3
    sudo bash -c "echo ZEROTIER_CENTRAL_TOKEN > /var/lib/zerotier-one/token"
    sudo chown zerotier-one:zerotier-one /var/lib/zerotier-one/token
    sudo chmod 600 /var/lib/zerotier-one/token
  4. 安装ZeroTier的进程管理应用

    zerotier-systemd-managerrpmdeb安装包发布在这个网站:https://github.com/zerotier/zerotier-systemd-manager/releases,请自行替换下面指令为最新的安装包。

    1
    2
    wget https://github.com/zerotier/zerotier-systemd-manager/releases/download/v0.2.1/zerotier-systemd-manager_0.2.1_linux_amd64.deb
    sudo dpkg -i zerotier-systemd-manager_0.2.1_linux_amd64.deb
  5. 重启所有的ZeroTier服务

    1
    2
    3
    4
    sudo systemctl daemon-reload
    sudo systemctl restart zerotier-one
    sudo systemctl enable zerotier-systemd-manager.timer
    sudo systemctl start zerotier-systemd-manager.timer

安装ZeroNSD

ZeroNSD针对每一个网络需要都创建一个独立的服务,对DNS来说延迟是很敏感的,所以最好让客户端和服务端尽可能接近

  1. 安装ZeroNSD,它的安装包发布在这里,请自行替换下面指令为最新的安装包。

    1
    2
    wget https://github.com/zerotier/zeronsd/releases/download/v0.1.7/zeronsd_0.1.7_amd64.deb
    sudo dpkg -i zeronsd_0.1.7_amd64.deb

    如果默认发布的地方没有对应平台的安装包,可以通过Cargo自行编译安装

    1
    2
    >sudo /usr/bin/apt-get -y install net-tools librust-openssl-dev pkg-config cargo
    >sudo /usr/bin/cargo install zeronsd --root /usr/local
  2. 对于你希望启用DNS服务的网络,执行类似以下的命令:

    /var/lib/zerotier-one/token为token文件所在路径 (在上文设置token中有提及)

    beyond.corp为你希望的域名后缀

    af78bf94364e2035为你自己的网络ID

    1
    2
    3
    sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d beyond.corp af78bf94364e2035
    sudo systemctl start zeronsd-af78bf94364e2035
    sudo systemctl enable zeronsd-af78bf94364e2035

检查可用性

网络需求

  • 服务器需要开放53端口,让客户端可以请求到DNS
  • 客户端需要启用Allow DNS的选项(安卓等平台默认启用,可以无视)

连通性检查

​ 假设笔记本的设备名为laptop,那么此时就可以通过设备名和dns后缀ping通设备了(不考虑防火墙)

1
2
3
4
5
6
7
PS C:\Users\AzureBird> ping laptop.beyond.corp

正在 Ping zephy.sak [172.28.120.138] 具有 32 字节的数据:
来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128

指令更新

​ 如果后续需要更新配置(比如TLD),使用类似如下指令即可。(记得修改为自己设置的ID等参数):

1
2
3
sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d beyond.corp af78bf94364e2035
sudo systemctl daemon-reload
sudo systemctl enable zeronsd-af78bf94364e2035

额外说明

ZeroNSD还可以添加本地的hosts作为私有的DNS服务,不过由于该部分内容并不复杂,且属于进阶内容,故不做教程,此贴仅作入门参考使用的快速手册。

]]>
+ + + + + 安装引导 + + + + + + + ZeroTier + + + +
+ + + + + Windows下修改网络优先级广播ZeroTier进行游戏 + + /p/aa5ce7f4.html + + 前言

​ 经常能遇到需要和朋友联机玩一些P2P的联机游戏,但游戏服务器总是因为各种原因延迟很高或者连不上的情况。在使用诸如ZeroTier等一类软件进行组网的时候,在此给出能够让Windows提高虚拟网卡的优先级,让游戏能够在一些无法输入IP的游戏中扫描到同一虚拟局域网下用户的方法。

步骤

创建ZeroTier网络

在谷歌搜索“创建ZeroTier网络”关键词即可找到许多对应教程,在此不多赘述

在有条件的情况下,可以自己搭建Moon中转节点来加速(非必须),教程:ZeroTier下Moon服务器的搭建

修改Windows设置

该教程以Windows10为例,其他版本的Windows可参考设置

  1. 在电脑右下角打开“网络和Internet”选项

    网络和Internet

  2. 打开"更改适配器选项"

    更改适配器选项

  3. 打开对应ZeroTier的ID的网络属性

    网络属性

  4. 打开"Internet 协议版本 4"下的"属性"

    IPv4的属性

  5. 打开属性中的“高级

    高级

  6. 修改自动跃点

    ​ 自动跃点的修改就笔者目前看来对日常使用影响不大,介意的可以在和好友联机结束以后重新勾选即可。并且由测试来看,只要重新连接了网络,Windows都会设置回为“自动跃点”

    自动跃点

    将优先级设置为1如果不放心的话可以设置为小一点的数字,不过也许有概率无法自动扫描局域网内其他游戏玩家。

游戏内

​ 在进行了上面的操作,并且两个用户都处于同一ZeroTier的网络下之后,直接打开游戏存档并进入,应该就能在局域网联机中自动扫描到对方。目前已经测试的游戏有:无主之地3、GTFO等,理论上所有可以使用局域网加入的游戏应该都能用相同的方法进行操作。

]]>
+ + + + + 小技巧 + + + + + + + ZeroTier + + Windows + + + +
+ + + + + 将OpenClash设置为Adguard Home的上级DNS + + /p/690287f9.html + + 设置步骤

参考结合adguard home 使用 DNS 设置求教 · Issue #99中hankclc和icyleaf的回答,总结一下设置步骤作为参考

  1. 将AdGuard Home的上游DNS设置为OpenClash的DNS地址

    OpenClash的DNS地址可以在全局设置中看到,一般为127.0.0.1:7874

  2. 关闭OpenClash的本地DNS劫持

  3. AdGuard Home的重定向模式选择使用53端口替换dnsmasq

OpenClash不要用TUN或TUN混合模式(还未自己测试)

]]>
+ + + + + 小技巧 + + + + + + + OpenWRT + + + +
+ + + + + Rsync使用方法摘抄 + + /p/6d032e05.html + + 参考文章
  1. rsync 用法教程
  2. RSYNC备份服务

Rsync介绍

​ Remote-Sync,意味远程动态同步,可以在不同的主机之间进行同步操作,相比一般将文件一次性全部备份而不同的好处是,Rsync可以做到每次增量同步,只对部分文件进行修改,目前个人主要用来和WebDAV挂载的本地目录进行配合使用,对服务器进行备份处理

常见用法

本地使用

  • 增量同步

    1
    2
    3
    4
    5
    6
    rsync -avz [SRC] [DEST]
    ## [SRC]为源目录
    ## [DEST]为目标目录
    ## -a:优于-r的递归参数,会同步文件的元信息(时间和权限等,在增量更新中有重要作用)
    ## -v:将结果或过程打印在控制台内
    ## -z 同步时压缩数据
  • 镜像同步

    1
    2
    rsync -avz --delete [SRC] [DEST]
    ## --delete:当检测到源文件中某个文件被删除的同时,将删除操作也同样进行同步,变成目标镜像
  • 排除文件

    这里以排除掉所有带.log字样的文件为例

    1
    2
    rsync -avz --delete --exclude '*.log' [SRC] [DEST]
    ## --exclude为字符过滤,其中这个过滤也包括了隐藏文件

    当有多个排除模式的时候,可以使用多个--exclude参数,也可以使用Bash的大括号

    1
    2
    3
    4
    ## 使用多个--exclude参数
    rsync -avz --delete --exclude '*.log' '*.txt' [SRC] [DEST]
    ## 使用Bash
    rsync -avz --delete --exclude={'*.log','*.txt'} [SRC] [DEST]

    排除隐藏文件,以及排除目录中所有文件的同时保存目录本身

    1
    2
    3
    4
    5
    6
    ## 排除隐藏文件,在Linux中即类似`.ssh`一类以'.'开头的文件,这个时候忽略'.*'即可
    rsync -avz --delete --exclude '.*' [SRC] [DEST]

    ## 排除目录中所有文件的同时保存目录本身
    rsync -avz --delete --exclude 'dir/*' [SRC] [DEST]
    ## 可以做到保存dir目录的同时,不保存dir下的所有文件

    排除的同时又强制锁定

    如果需要排除所有"*.log"的同时,又希望保存所有demo.log的文件,则可以配合--include参数一起使用,以下为例子

    1
    rsync -avz --delete --include="demo.log" --exclude="*.log" [SRC] [DEST]

远程使用

TODO

基准目录备份

TODO

]]>
+ + + + + 知识记录 + + + + + + + Linux + + + +
+ + + + + Linux通过修改init.d脚本自启动脚本 + + /p/f3eca903.html + + 流程
  1. 创建脚本文件,这里以startup.sh示例

  2. 给脚本添加可执行权限,并移动脚本位置

    1
    2
    chmod +x startup.sh
    sudo mv startup.sh /etc/init.d/
  3. 设置为开机脚本

    1
    2
    sudo update-rc.d /etc/init.d/startup.sh defaults 100
    ## 这里的100指的是脚本的优先级,数字越大执行越晚,可以为0

    如果需要删除脚本,用remove即可

    1
    2
    sudo update-rc.d /etc/init.d/startup.sh remove
    sudo rm /etc/init.d/startup.sh
]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Docker传递操作进容器内的不同方式 + + /p/14cd2588.html + + 进入容器
  1. 使用docker exec -it命令进入容器(推荐)

    假设操作的容器ID为icontainer,如果想要进入icontainer执行指令,只需要输入以下指令:

    1
    docker exec -it icontainer /bin/bash

    如果需要退出容器,输入exit或者Ctrl+C即可

  2. 使用docker attach命令进入

    同样以icontainer举例,则需要输入以下指令来进入容器终端

    1
    docker attach icontainer

    但这样有缺点,即退出终端的同时,该容器也会同样退出,所以推荐使用exec的方法进入容器

文件传递

​ 先直接上指令,以容器icontainer为例,我需要将该容器下的/opt/demo/demo.zip拷贝到宿主机的/opt/Backup/下,那么我的指令如下:

1
docker cp icontainer:/opt/demo/demo.zip /opt/Backup/

​ 同理,如果我需要将Backup下的demo.zip传递到容器内,我也可以使用如下指令传输到容器的recover文件夹内:

1
docker cp /opt/Backup/demo.zip icontainer:/opt/recover/

备注:文件传递和容器是否启动无关,都会直接对文件进行修改

]]>
+ + + + + 小技巧 + + + + + + + Docker + + + +
+ + + + + Samba使用说明 + + /p/87299c69.html + + Linux 服务端部署

安装服务

  1. 更新软件

    1
    2
    3
    sudo apt-gets upgrade 
    sudo apt-get update
    sudo apt-get dist-upgrade
  2. 安装samba服务器

    1
    sudo apt-get install samba samba-common -y
  3. 创建Samba共享文件夹,如共享已存在文件夹则可忽略

    1
    sudo mkdir /mnt/Files
  4. 按需设置文件夹的访问权限

    1
    sudo chmod 777 /mnt/Files
  5. 创建名为[username]的Samba用户

    1
    sudo smbpasswd -a [username]
  6. 创建或修改Samba服务端配置文件

    1
    sudo vi /etc/samba/smb.conf

    在配置文件最后添加类似以下模板

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [shareFolderName]
    comment = Commit
    #是否能浏览
    browseable = yes
    #路径
    path = /mnt/Files
    create mask = 0777
    directory mask = 0777
    valid users = [username]
    force user = root
    #是否以root操作路径内的文件
    force group = root
    #是否公开
    public = yes
    available = yes
    writable = yes
    ## 不允许guest
    guest ok = no
  7. 关闭Ubuntu 防火墙

    1
    2
    sudo ufw disable 
    sudo ufw status //查看ufw状态
  8. 重启Samba服务器

    1
    sudo service smbd restart
  9. 安装完毕,在Windows+R下连接

    按Windows+R,然后输入"\\IP地址"检查是否能连接

Linux 客户端连接

  1. 安装必要的软件包(如果尚未安装):

    1
    sudo apt-get install cifs-utils
  2. 创建一个本地挂载点(如果尚不存在):

    1
    sudo mkdir -p /root/samba
  3. 创建凭证文件(如果您尚未创建): 为了安全起见,最好使用一个凭证文件而不是直接在fstab中存储用户名和密码。创建一个文件(例如/root/.smbcredentials),并添加您的用户名和密码:

    1
    2
    username=username
    password=password

    然后修改该文件的权限:

    1
    sudo chmod 600 /root/.smbcredentials
  4. 编辑/etc/fstab文件: 打开/etc/fstab文件进行编辑:

    1
    sudo nano /etc/fstab

    在文件的末尾添加以下行:

    1
    //path/to/smb /root/samba cifs credentials=/root/.smbcredentials,iocharset=utf8 0 0

    这里,iocharset=utf8确保了正确的字符编码,特别是对于非英文文件名。

  5. 挂载测试:可以通过以下命令手动挂载:

    1
    sudo mount -a

补充说明

  • Samba客户端无法访问软链接,提示没有权限:

    和权限没有关系,需要修改的是[global]当中的设置,添加以下三行代码即可

    1
    2
    3
    wide links = yes
    symlinks = yes
    unix extensions = no
]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Docker指令和配置手册 + + /p/abf1d877.html + + 参考链接:

  1. CSDN-Ubuntu 18.04 DOCKER的安装
  2. 停止、删除所有的docker容器和镜像
  3. Docker官网文档

Docker用户组配置

设置用户组docker,让用户不需要sudo也可以使用docker相关命令

1
2
3
4
sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker
docker ps
  • 查看当前所有在运行的Docker容器

    docker ps -a

  • 在库内搜索需要的docker容器运行

    docker search [name]

  • 获取需要的容器

    docker pull [name]

  • 停止所有的容器

    docker stop $(docker ps -aq)

  • 删除所有的容器

    docker rm $(docker ps -aq)

    • 删除所有目前没有在运行的容器

      docker container prune

  • 删除所有的镜像

    docker rmi $(docker images -q)

    • 删除所有未被使用的镜像

      docker image prune

  • 删除所有未被引用的容器,镜像和各种cache

    docker system prune

  • 重命名容器

    1
    docker rename [Docker的Name] [修改后的Name]

运行Docker的指令

Docker在运行的过程中有许多额外设置,其中包括不同的网络结构,不同的运行模式,交互方法等,目前在这里只记录一些简单用得上的,后续如果还有比较常用的指令再进行补充添加。

例子

docker run -d --restart=always --network host --name CloudMusic nondanee/unblockneteasemusic

  1. docker run

    运行docker容器

  2. -d

    以后台模式运行

  3. --restart-always

    每次docker如果重启了的话也总是自动运行

  4. --network host

    host网络模式运行docker容器,而不是以默认的NAT分布

  5. --name CloudMusic

    给这个容器命名为CloudMusic

  • 进入容器
    1. docker attach <ID>
    2. docker -it <ID> /bin/bash或者docker -it <ID> /bin/sh

Docker设置开机自启动

  1. 通过systemctl设置docker开机自启动

    systemctl enable docker.service

  2. docker容器使用--restart=always参数启动

    • 如果已经启动了可以通过docker update --restart=always <ID>添加参数
  3. 重启系统以后通过docker ps -a可以看到服务已经在正常运行了

Docker容器参数配置

  1. 用命令修改

    1
    docker container update --help

    使用这个指令可以在不停止容器的情况下更新部分内容,比如容器的启动方式

  2. 配置文件修改

    • 首先要停止容器,才能对容器的配置文件进行修改
    • 配置路径为/var/lib/docker/containers/容器ID下的hostconfig.json就是配置文件
]]>
+ + + + + 知识记录 + + + + + + + Docker + + + +
+ + + + + Linux下有关用户和组的文件权限变动 + + /p/be72c31c.html + + 参考文章

1.Ubuntu群组管理

Linux用户和群组

​ Linux下拥有着不同的用户和群组,群组可以是一个用户的集群,通过修改Linux的用户和对应的群的权限可以较为安全的对文件进行操作。

群组管理

接下来所有的内容都是基于Ubuntu 20.04 LTS

新增群组

在我们需要对多个用户进行相同的权限管理的时候,可以通过创建对应群组来进行管理,这里以demog为例

1
addgroup demog

用户和组的关系

修改用户账户

demo用户为例,在有root权限的情况下输入以下指令来设置demo的初始组为demog

1
usermod -g demog demo

首先是然后才是用户

查看用户当前的组

要查询当前用户所在的组信息,可以使用类似如下指令

1
groups demo

如果要把一个用户添加到多个群组可以用如下指令(先去除后添加,请勿直接尝试指令)

1
groups -G demog1 demog2 demog3 demo

配合-g或者-G参数的时候,会把用户从原本的组里面剔除,然后加入到新的组里面,如果需要的是-a的参数,表示的是“追加”

删除群组

指令很简单,如下格式

1
delgroup demog
]]>
+ + + + + 知识记录 + + + + + + + Linux + + + +
+ + + + + Linux通过davfs2挂载WebDav网盘 + + /p/39b9efc1.html + +

注:已改用rclone作为较优方案

参考

  1. davfs挂载与使用缺陷

安装

  1. 输入以下指令安装

    1
    sudo apt install davfs2

连接

  1. 创建需要挂载的硬盘,这里以/opt/Backup为例,挂载网址为http://localhost:8080/dav/,账号为admin,密码为123456

    1
    mkdir /opt/Backup/
  2. 将硬盘挂载到对应路径

    1
    sudo mount.davfs http://locaohost:8080/dav/ /opt/Backup/
  3. 输入账号密码并手动连接

保存密码

  1. 编辑/etc/davfs2/davfs2.conf,找到其中的use_lock取消注释,并修改值为0

  2. 修改/etc/davfs2/secrets,在末尾添加

    1
    http://localhost:8080/dav/ admin 123456

自动挂载

  1. 编辑/etc/fstab,在最后一行添加以下内容

    1
    http://localhost:8080/dav/ /opt/Backup/ davfs defaults 0 0

以上的http://localhost:8080/dav/和用户名密码均为示例,请在了解WebDav之后替换为自己需要的值

]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Linux下通过硬盘UUID进行挂载 + + /p/c9fc3bb5.html + + 参考链接
  1. 重启后盘符发生变化解决办法

步骤

  1. 将硬盘接入系统

  2. 使用以下指令查询目前磁盘分区的盘符

    1
    df -h
  3. 使用以下指令查询特定盘符的UUID

    1
    blkid /dev/sda1  ## 这里的sda1要看具体情况填
  4. /etc/fstab/内编辑类似以下内容挂载磁盘

    1
    UUID=c26cfce4-xxxx-xxxx-xxxx-403439946c8c    /opt    ext4    defaults 0 0  ## /opt为具体挂载的目录,ext4为磁盘格式
  5. 使用以下指令检查是否设置成功,如果成功则不会返回任何异常信息

    1
    mount -a
]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Minecraft服务器配置域名SRV记录隐藏端口 + + /p/1dcf9daa.html + + 记录

​ 目前对于SRV记录了解还不清楚,没有查询具体可以使用的服务等。目前需要的也只是达到转发MC的端口,达到隐藏端口的目的,所以只是一个无脑式记录。

步骤

  1. 拥有一个域名,并且指向了一个带有端口的MC服务器,比如rpg.vastl.icu:25566

  2. 在DNS控制台添加解析记录。

    1
    2
    3
    主机记录:_minecraft._tcp.xx  ## xx为子域名
    记录类型:SRV
    记录值:5 0 端口号 域名 ## 举例:5 0 25566 rpg2.vastl.icu.
  3. 最后应用即可。

]]>
+ + + + + 小技巧 + + + + + + + Minecraft + + + +
+ + + + + ZeroTier搭建Planet服务器引导 + + /p/1e0fb80b.html + + 参考文章
  1. Running MPLS over ZeroTier Part 1 · Gotz Networks

步骤

  1. 把ZeroTier的项目在本地克隆一份

    1
    git clone https://github.com/zerotier/ZeroTierOne.git
  2. 打开在attic文件夹下的world文件夹

    1
    cd ZeroTierOne/attic/world
  3. 编辑mkworld.cpp文件,把ZeroTier Controller默认的IP删除,添加自己的IP上去。

  4. 编译文件

    1
    source ./build.sh
  5. 运行mkworld文件

    1
    ./mkworld
  6. 应该会产生一个新的world.bin文件,这个文件需要在所有自己的客户端添加

  7. 将这个world.bin文件复制到ZeroTier的文件夹下,在Linux中的指令为

    1
    cp world.bin /var/lib/zerotier-one/planet
  8. 重启ZeroTier

    1
    sudo systemctl restart zerotier-one.service
  9. 重复第七步和第八步,在所有希望使用自己Planet服务器的客户端中添加这个节点

实现的效果

​ 完全使用自己的服务器,数据等不通过ZeroTier自己的官网。

]]>
+ + + + + 安装引导 + + + + + + + ZeroTier + + + +
+ + + + + Ubuntu删除无用的包和垃圾文件 + + /p/77f84830.html + + 参考网站
  1. Ubuntu删除无用缓存及垃圾文件

常用的清理指令

1
2
3
sudo apt-get autoclean  ## 清理旧版本的软件缓存
sudo apt-get clean ## 清理所有软件缓存
sudo apt-get autoremove ## 删除系统不再使用的孤立软件

这三个指令主要是用于清理升级时候产生的缓存和无用的包

包管理的临时文件目录

  • 包在/var/cache/apt/archives
  • 没有下载完毕的在/var/cache/apt/archives/partial

卸载软件

1
2
sudo apt-get remove --purge [软件名字]  ## 卸载某个软件
dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P ## 删除系统上多余的配置文件

删除孤立的包

1
sudo apt-get install deborphan -y

删除内核

​ 见博客:删除多余的Ubuntu内核,解决因grub无法正常启动的问题

]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Ubuntu通过systemd禁用系统睡眠 + + /p/2f594679.html + + 参考网址
  1. How To: Disable Sleep on Ubuntu Server (unixtutorial.org)

查看系统休眠的记录

1
sudo systemctl status sleep.target

理论上会返回类似如下的内容,里面会注明系统休眠的时间等信息

1
2
3
4
5
6
7
8
9
10
root@azhal:~## systemctl status sleep.target
● sleep.target - Sleep
Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
Active: inactive (dead)
Docs: man:systemd.special(7)

May 07 18:54:58 azhal systemd[1]: Reached target Sleep.
May 07 20:19:14 azhal systemd[1]: Stopped target Sleep.
May 07 20:39:14 azhal systemd[1]: Reached target Sleep.
May 07 20:52:35 azhal systemd[1]: Stopped target Sleep.

关闭系统休眠

1
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

[引用文章原话] This is obviously a very simple way of disabling power management, but I like it because it’s standard and logical enough – there’s no need to edit config files or create cronjobs manually controlling sleep functionality.

大概翻译过来就是指这样的操作标准且合理,因为这样省去了编辑任何文件的麻烦,并且也达到了禁用休眠的目的。

禁用以后大致会变成这样:

1
2
3
4
5
6
7
8
9
root@azhal:~## systemctl status sleep.target
● sleep.target
Loaded: masked (Reason: Unit sleep.target is masked.)
Active: inactive (dead)

May 07 18:54:58 azhal systemd[1]: Reached target Sleep.
May 07 20:19:14 azhal systemd[1]: Stopped target Sleep.
May 07 20:39:14 azhal systemd[1]: Reached target Sleep.
May 07 20:52:35 azhal systemd[1]: Stopped target Sleep.

恢复系统休眠服务器

1
sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Linux下7zip的使用手册 + + /p/cc7f9b10.html + + 安装
  1. 直接使用apt安装即可

    1
    sudo apt install p7zip

基础命令

  1. 压缩文件/文件夹

    1
    7za a -t7z -r MyTest.7z FolderToZip/*

    FolderToZip文件夹下所有文件压缩到当前目录的MyTest.7z文件中

    a 代表添加文件/文件夹到压缩包
    -t(7z) -t参数是指定压缩类型,这里是7z,也可以不指定,因为7za默认的压缩类型就是7z
    -r 表示递归所有的子文件夹

  2. 解压缩文件夹

    1
    7za x MyTest.7z -r -o./

    MyTest.7z解压到当前目录

    x 代表解压缩文件,并且是以原本文件夹的方式解压(还有一个参数是e,会直接把所有文件从根目录解压)
    -r 递归解压缩的所有子文件夹
    -o 指定解压缩的目录,并且-o后面是没有空格的,这一点需要注意。

参考文章:

  1. linux下安装7z命令及7z命令的使用
]]>
+ + + + + 知识记录 + + + + + + + Linux + + + +
+ + + + + Cloudflare Partner的CDN配置 + + /p/6a6a7409.html + + 通过Dnspod解析域名

​ 由于服务器本身搭建使用的是香港的服务器,建站不需要域名备案。为了不使用Cloudflare默认的海外CDN,而使用我们需求的自定义CDN,需要把域名托管到一个非Cloudflare的平台下,这里直接托管到腾讯云Dnspod的解析下。

  1. 备份Cloudflare下的解析信息

  2. 在控制台下修改Name Server为Dnspod控制台提供的NS服务器

  3. 将之前备份的解析信息再次添入

    (这里没找到Dnspod的导入域名信息,所以手动添入)

  4. 开启"域名设置"下的CNAME加速,减少CNAME的解析次数

设置CloudFlare CNAME

  1. 注册Cloudflare邮箱,这里不做解释

  2. 楠格(或者类似Cloudflare Partner网站) 登入自己的Cloudflare账号

  3. 将自己需要使用CDN的域名添加到控制台下,TTL设置两分钟,CDN设置为开启

    域名添加

  4. 添加完毕以后在CNAME接入处可以看到主机名对应的CNAME信息,在Dnspod设置对应的解析就可以使用CDN的解析服务。

    域名添加

    CNAME信息

    Dnspod设置

    Dnspod设置

自定义CDN节点

​ 通过参考网上的IP表,在Dnspod的控制台中再次添加域名对应的A记录解析,可以设置不同的运营商解析不同的IP,来达到让流量走自定义加速的目的。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
172.64.32.1/24 (推荐移动,走香港)
104.28.14.0/24 (推荐移动,走新加坡)
104.23.240.0-104.23.243.254 (推荐联通、移动,线路未知)
108.162.236.1/24 (推荐联通,走美国)
104.20.157.0/24 (推荐联通,走日本)
104.16.160.1/24 (推荐电信,走洛杉矶)
172.64.0.0/24 (推荐电信,走旧金山)
172.64.32.* (走欧洲)

108.162.236.1/24 联通 走美国
172.64.32.1/24 移动 走香港
104.16.160.1/24 电信 走美国洛杉矶
172.64.0.0/24 电信 美国旧金山
104.20.157.0/24 联通 走日本
104.28.14.0/24 移动 走新加坡

104.18.62.1/24 香港hkix.net
104.16.35.1/24 香港hkix.net
104.16.36.1/24 香港hkix.net
104.18.35.1/24 香港hkix.net
104.18.36.1/24 香港hkix.net
104.16.54.1/24 香港
104.16.55.1/24 香港
104.18.128.1/24 香港
104.18.129.1/24 香港
104.18.130.1/24 香港
104.18.131.1/24 香港
104.18.132.1/24 香港
104.19.195.1/24 香港
104.19.196.1/24 香港
104.19.197.1/24 香港
104.19.198.1/24 香港
104.19.199.1/24 香港
#适合电信的节点
104.23.240.*
#走欧洲各国出口 英国德国荷兰等 延迟比美国高一些 适合源站在欧洲的网站
172.64.32.*
#虽然去程走新加坡,但是回程线路的绕路的,实际效果不好,不推荐
104.16.160.*
#圣何塞的线路,比洛杉矶要快一点,推荐
108.162.236.*
#亚特兰大线路,延迟稳定,但是延迟较高
#适合移动的节点
162.158.133.*
#走的丹麦,这一段ip只有部分能用,可以自己试一下,绕美国
198.41.214.*
198.41.212.*
198.41.208.*
198.41.209.*
172.64.32.*
141.101.115.*
#移动走香港的IP段有很多,以上并不是全部。CF移动走香港的分直连和走ntt的效果都挺不错的,不过部分地区晚上还是会丢包。
172.64.0. *
#这是走圣何塞的,一般用香港的就行
172.64.16.*
#欧洲线路.绕
#1.0.0.1效果较好
电信部分
大多数省直接使用1.0.0.0即可,延迟低,丢包少,
## 移动部分
#新加坡
104.18.48.0-104.18.63.255
104.24.112.0-104.24.127.255
104.27.128.0-104.27.143.255
104.28.0.0-104.28.15.255
## 移动部分
#圣何塞
104.28.16.0-31.255
104.27.144.0-243.254
104.23.240.0-243.254
#香港cloudflare1-100g.hkix.net
1.0.0.0-254
1.1.1.0-254
#香港直连
104.16.0.0-79.255
104.16.96.0-175.254
104.16.192.0-207.255

设置了对应的A记录后保存退出,可通过ping example.com来测试是否设置成功。

参考网站:

  1. 针对使用Cloudflare CDN国内网站的速度优化方案 - 闪电博 (wbolt.com)
]]>
+ + + + + 小技巧 + + + + + + + CDN + + + +
+ + + + + Linux多个不同版本内核卸载管理 + + /p/24f916f9.html + + Ubuntu删除多余的内核
  1. 查看当前的内核

    1
    2
    root@azhal:~## uname -a
    Linux azhal 5.11.16-xanmod1-cacule #0~git20210421.d9591de SMP PREEMPT Wed Apr 21 17:44:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
  2. 查看当前系统中所有的内核

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    root@azhal:~## dpkg --get-selections |grep linux
    binutils-x86-64-linux-gnu install
    console-setup-linux install
    libselinux1:amd64 install
    libselinux1-dev:amd64 install
    linux-base install
    linux-firmware install
    linux-headers-5.11.16-xanmod1-cacule install
    linux-image-5.11.16-xanmod1-cacule install
    linux-image-5.4.0-72-generic install
    linux-image-generic install
    linux-libc-dev:amd64 install
    linux-modules-5.4.0-72-generic install
    linux-modules-extra-5.4.0-72-generic install
    linux-xanmod-cacule install
    util-linux install
  3. 移除多余的内核

    1
    sudo apt-get remove <name of kernel>
  4. 再次检查内核是否为deinstall状态

    1
    dpkg --get-selections |grep linux
  5. 更新系统引导

    1
    sudo update-grub

参考文章

  1. Ubuntu删除多余的内核 - 阳光与叶子 - 博客园 (cnblogs.com)
]]>
+ + + + + 小技巧 + + + + + + + Linux + + + +
+ + + + + Nginx配置CDN回源重定向导致的无法访问问题 + + /p/a2277ea0.html + + 前言

​ 在部署好了CloudReve和Nginx以后,想通过Cloudflare的免费的CDN服务来达到一个节省流量的目的,但是在直接开启CDN代理之后发现原本的网站一直出现Network Error的问题,在此记录一下解决方案。

​ 首先记录一下现状:

  • CloudReve部署在自己家的服务器上,通过ZeroTier和香港的服务器虚拟局域网相连,并且通过Nginx反代
  • Nginx配置好了SSL证书,开启了强制使用HTTPS链接

​ 测试的现状:

  • 在开启强制HTTPS链接的时候使用CDN加速,连接CloudReve的时候会出现Network Error,网页控制台报错重定向次数过多。
  • 关闭强制HTTPS链接使用CDN加速并且通过HTTPS进行链接的时候正常。

参考了的可能有帮助的解决方案

  1. 踩坑记录:CDN开启强制https之后返回重定向次数过多的问题

尝试了的解决办法

  1. 由于CDN是先到香港的服务器,是https访问,然后香港的服务器到自己的网盘是http访问,根据上方参考的"踩坑记录"方案一,给家里的服务器的cloudreve加了一个ssl证书再次尝试代理,问题依旧。

  2. 同根据“踩坑记录”,在nginx的配置文件中添加以下配置

    proxy_set_header X-Forwarded-Proto $scheme;

    附上解释原因:

    设置http头部X-Forwarded-Proto,这个头部的作用是用于识别协议(HTTP 或 HTTPS),主要针对内部访问重定向时的协议。因此,只要在反向代理时添加以上配置就好了

    $scheme是nginx的内部变量,表明当前访问的协议,当前如果是https,那么转发到后台服务的时候就是https。这样问题就解决了。

    但是问题依旧

    之后认为问题不出在香港服务器到家中服务器,寻找其他的解决方案。

在非Cloudflare的CDN上的解决方案

​ 在查询和强制HTTPS有关词条的时候查询到这是CDN云加速很容易遇到的一个问题,解决方案主要有三种。

  1. 设置CDN的回源端口为443端口,让CDN回源的时候以HTTPS请求源站,这样就不会触发源站的强制跳转的逻辑了。
  2. 在CDN的控制台中设置回源设置为“跟随”(一般会有三个选项,分别是“回源”,“HTTP”和“HTTPS”。)
  3. 放弃强制跳转HTTPS,在Nginx关闭强制。

最后在Cloudflare上的解决方案

​ 由于没有找到Cloudflare上有类似CDN控制台的地方(感觉毕竟是免费的,没有正常。不过也可能是我太菜了不知道在哪里),于是上面的三种办法都不得不作罢,只能另寻其他办法。

  1. 香港的服务器上关闭Nginx的强制https
  2. 在cloudflare的"Rules"里面添加Page Rules,设置里面添加对应的域名,然后开启始终使用HTTPS

有一说一,结果是启用了免费的CDN以后速度还是比较慢,而且多线程下载也没有缓存很多文件,后期还是试试Cloudflare Partner或者其他的项目比较好。

]]>
+ + + + + 小技巧 + + + + + + + Nginx + + CDN + + + +
+ + + + + Google镜像站创建引导 + + /p/15b685e1.html + + 步骤如下:

  1. 在Nginx中创建Google的Nginx反代www.google.com.hk

  2. 配置SSL证书并保存,启用HTTPS

  3. 配置upstream设置

    • 通过如下方式获取google的不同ip

      dig www.google.com @8.8.8.8 +short

    • 将类似如下配置文件配置好

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      upstream www.google.com.hk {
      ip_hash;
      server 108.177.125.199:443;
      server 64.233.189.199:443;
      server 74.125.23.199:443;
      server 172.217.24.35:443;
      }

      server
      {...}
  4. 在server中配置防爬虫和禁止IP访问

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    server
    {

    ...

    # 防止网络爬虫
    #forbid spider
    if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
    {
    return 403;
    }

    # 禁止用其他域名或直接用IP访问,只允许指定的域名访问
    #forbid illegal domain
    if ( $host != "yourdomain.com" ) {
    return 403;
    }

    ...

    }
  5. 检查并重启配置文件

    nginx -t && nginx -s reload

  6. 在宝塔防火墙中关闭’GET’过滤,否则会导致搜索某些关键词的时候被误判封锁IP

参考文章:

  1. (´∇`) 被你发现啦~ 搭建google镜像网站(适用最新版nginx)Module for Google Mirror – 深海 (oyi.me)
]]>
+ + + + + 安装引导 + + + + + + + Nginx + + + +
+ + + + + SSH技巧总结 + + /p/cff2e0b5.html + + 通过密钥连接服务器

生成密钥

  1. 在客户端电脑上输入以下指令生成rsa私钥和公钥

    ssh-keygen -t rsa -C "your@email.com"

    生成一对以你的邮箱为标签的密钥

  2. /.ssh/文件夹下的id_rsa为密钥文件,id_rsa.pub为公钥文件

在Linux服务器下添加密钥

  1. 在当前用户的主目录中的/.ssh/中添加或者修改authorized_keys文件,将刚刚客户端的id_rsa.pub内容复制到authorized_keys

关闭密码登入,并且只用RSA登入

  1. 编辑sshd_config文件

    vi /etc/ssh/sshd_config

  2. 禁用密码验证

    PasswordAuthentication的注释取消,并修改为

    PasswordAuthentication no

  3. 重启SSH服务

    注意,重启SSH服务之前建议保留一个会话,以免出现密码登入失败的情况

    • RHEL/CentOS系统

      sudo service sshd restart

    • Ubuntu系统

      sudo service ssh restart

常用的ssh config参数

建立前的配置

在建立连接的时候,如果是第一次对一个服务器建立连接,经常会问到我们是否信任对方,并且在第一次建立连接之后,如果同一个IP地址后的服务器有过重装,还会因为之前保存的证书而出现连接失败的情况。

因此可以在~/.ssh/config文件中添加以下配置

1
2
StrictHostKeyChecking no # 关闭主机公钥的确认信息,去掉了连接时候的提问,不过也因此有安全隐患,需要自己权衡
UserKnownHostsFile /dev/null # 在和某个主机建立连接以后,ssh就会将密钥存储在本地的一个known_hosts文件中,配置为/dev/null相当于不保存

连接服务器

同时,有的时候我们需要频繁访问同一个服务器,反复输入ssh root@xxx.xxx.xxx.xxx是很令人恼火的一件事(即使有的域名或历史记录)。这个时候我们就可以通过在config中添加一个Host来给我们需要的服务器添加一个简单易懂的别名来建立连接

1
2
3
Host router
User root
HostName 192.168.100.123

假设我们路由器的IP地址是192.168.100.123,那么我们就可以将原本的

1
ssh root@192.168.100.123

改为

1
ssh router

这样ssh就会使用root用户来登入192.168.100.123

X11窗口转发

对于一些有GUI的Linux系统来说,有的时候我们并不希望远程整个桌面,而是通过SSH来运行部分图形化的程序。在Windows当中,我们可以通过安装VcXsrv来提供一个SSH的转发接口,然后在~/.ssh/config中对应的服务器添加如下参数

1
2
3
4
5
Host study
User halc
HostName 192.168.100.101
ForwardX11 yes
ForwardX11Trusted yes

这样我们在和对应服务器建立连接以后,就可以通过在自己电脑上的cli运行远程服务器中带有GUI

多文件配置

在有的时候ssh需要连接的主机可能很多,放在一个文件里面可能会不便于管理。这个时候我们就可以通过Include关键字,来添加其他的config合并进来。

假设当前我们的.ssh目录的结构如下

1
2
3
4
5
6
7
8
~ [ tree .ssh                                                                                                          ] 1:40 PM
.ssh
├── authorized_keys
├── conf.d
│   └── home
├── config
├── id_rsa
└── id_rsa.pub

那么我们就可以在config当中添加Include conf.d/home来实现对于home文件的多文件配置涵盖。参考如下

1
2
3
4
5
6
7
8
9
10
11
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
GSSAPIAuthentication=no

Include conf.d/home

Host node1
User root
HostName xxx.xxx.xxx.xx

...

home当中就可以添加正常的ssh配置了

]]>
+ + + + + 小技巧 + + + + + + + Linux + + SSH + + + +
+ + + + + 二分查找 + + /p/e8eb0481.html + + 代码模板
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int bsl(int l, int r) //返回左边界
{
while (l < r)
{
int mid = l + r >> 1;
if (check(mid)) //每次正确右边界都向左缩小
r = mid;
else
l = mid + 1; //mid不正确,弃用mid并且缩小区间
}
return l;
}

int bsr(int l, int r) //返回右边界
{
while (l < r)
{
int mid = l + r + 1 >> 1;
if (check(mid)) //每次左边界都向右缩小,由于存在向下取整,避免死循环mid需要l+r+1
l = mid;
else
r = mid - 1; //mid不正确,弃用mid并缩小区间
}
}

代码原理

bsl为例

​ 二分的主要的作用,是取得一个“分界点”。采取的思路为测试中间点是否符合条件,如果不符合则对区间进行缩小操作,重新测试区间,直到区间为一个数字。在模板一中,首先确定中间点mid,然后测试中间点mid是否符合条件,如果符合条件,则每次都会将区间的右端点进行左移的操作,直到不能左移为止,所以返回的最后位置为最接近答案的最左边的端点。如果不符合条件,由于**确定了mid的位置为无效位置,所以下一次刷新区间的时候将mid剔除掉。**剔除的操作可以达到防止死循环的效果

时间复杂度

​ 由于二分是每次都将一个区间一分为二,并且对整个区间进行一次操作,所以最后的时间复杂度为O(logN)

需要注意的点

  1. bsr中,由于在每次正确的时候修改的都是左边界l,但是在计算除2的时候会存在mid/2取整为l的情况,这样会导致最后结果的死循环。所以需要定义mid为mid = l+r+1>>1来避免死循环。可以记为 返回右边界的时候需要+1,因为右边比左边大(bushi
]]>
+ + + + + 知识记录 + + + + + + + Algorithm + + + +
+ + + + + CloudReve个人网盘引导 + + /p/713e2886.html + + 预先准备
  1. 安装好宝塔面板,并且预先安装好LNMP环境
  2. Aria2离线下载配置
  3. FreeSSL上获取SSL证书和密钥

CloudReve部署

安装CloudReve

  1. 前往官方库下载最新版的对应系统的可执行文件

  2. 在BT面板内添加网站CloudReve,并且设置对应的域名和根目录(下图为示例)

    BT面板创建新网站

  3. 将可执行文件上传到在宝塔面板设置的根目录中,并cd到当前目录

  4. 运行CloudReve,并记录初始的账号密码

    1
    2
    chmod +x ./cloudreve
    ./cloudreve
  5. 登入http://ip:5212,在控制面板中修改默认的管理员账号和密码

修改数据库为MySql

自带的数据库是SQLite,这里需要修改为MySql

  1. 在宝塔面板创建一个MySql数据库

  2. 在运行一次CloudReve后,根目录会有一个conf.ini的文件,根据自己情况加入以下配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    ; 数据库相关,如果你只想使用内置的 SQLite数据库,这一部分直接删去即可
    [Database]
    ; 数据库类型,目前支持 sqlite | mysql
    Type = mysql
    ; MySQL 端口
    Port = 3306
    ; 用户名
    User = root
    ; 密码
    Password = root
    ; 数据库地址
    Host = 127.0.0.1
    ; 数据库名称
    Name = v3
    ; 数据表前缀
    TablePrefix = cd_
    ; SQLite 数据库文件路径
    DBFile = cloudreve.db

添加进程守护

这里使用Ubuntu自带的systemd进行进程守护

  1. 编辑配置文件

    vim /usr/lib/systemd/system/cloudreve.service

  2. 将下文的PATH_TO_CLOUDREVE更改为宝塔面板中设置的根目录

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    [Unit]
    Description=Cloudreve
    Documentation=https://docs.cloudreve.org
    After=network.target
    After=mysqld.service
    Wants=network.target

    [Service]
    WorkingDirectory=/PATH_TO_CLOUDREVE
    ExecStart=/PATH_TO_CLOUDREVE/cloudreve
    Restart=on-abnormal
    RestartSec=5s
    KillMode=mixed

    StandardOutput=null
    StandardError=syslog

    [Install]
    WantedBy=multi-user.target
  3. 载入进程守护并运行

    1
    2
    3
    systemctl daemon-reload
    systemctl start cloudreve
    systemctl enable cloudreve

设置Nginx反代

  1. 在宝塔面板的站点设置中,添加反向代理,配置按下图类比设置(主要还是第二步)

    BT设置反向代理

  2. 点击配置文件,将原本的location /{}的内容替换如下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://127.0.0.1:5212;

    ## 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
    ## client_max_body_size 20000m;
    }
  3. 保存配置文件,通过宝塔中设置的网站域名即可直接访问网盘地址

配置SSL证书

  1. 在FreeSSL获取证书以后,在KeyManager中导出证书和私钥,分别为.crt.key文件
  2. 在站点设置中找到SSL,使用其他证书,然后通过编辑器打开crt证书文件和key文件,分别将其中的内容复制到密钥(KEY)证书(PEM格式)
  3. 保存并开启强制HTTPS,即可通过SSL访问云盘并且进行配置了。

参考网站:

  1. Cloudreve对接onedrive搭建属于自己的网盘系统 (lanhui.co)
  2. CloudReve官方文档
]]>
+ + + + + 安装引导 + + + + + + + Linux + + + +
+ + + + + Linux配置局域网下网络唤醒 + + /p/12aa3ef8.html + +
  • 安装网络管理工具

    sudo apt install ethtool

  • 查询网口信息

    ip a

    记录需要启动的网口名字

  • 通过指令手动启动wol服务

    ethtool -s [INTERFACE] wol g

  • 查询是否成功

    ethtool [INTERFACE]

    输出信息中如果显示wol:g则代表开启成功

  • 创建开机进程

    sudo vi /etc/systemd/system/wol.service

  • 写入以下内容

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [Unit]
    Description=Configure Wake On LAN

    [Service]
    Type=oneshot
    ExecStart=/sbin/ethtool -s [INTERFACE] wol g

    [Install]
    WantedBy=basic.target
  • 载入systemd并启动

    1
    2
    3
    sudo systemctl daemon-reload
    sudo systemctl enable wol.service
    sudo systemctl start wol.service
  • 参考博客

    1.WOL持久化设置

    ]]>
    + + + + + 小技巧 + + + + + + + Linux + + + +
    + + + + + Docker的安装和镜像设置 + + /p/92f7b8a.html + + 参考资料:
    1.Docker-从入门到实践

    在挂载网易云音乐灰色代理的时候终于还是发现了screen后台运行的坏处,经常会出现不小心重启以后忘记开启服务的情况,由于之前一直听说过docker容器,并且灰色代理有现成的docker容器可以使用,在简单查询和操作了一下以后记录一下docker启动网易云音乐并且进行网易云音乐代理的实战

    Docker部署和安装

    1. (可选) 通过一键脚本进行安装,安装完成后可跳过以下所有步骤

      1
      2
      curl -fsSL get.docker.com -o get-docker.sh
      sudo sh get-docker.sh --mirror Aliyun

      如果要安装测试版的Docker,则用以下脚本

      1
      2
      curl -fsSL test.docker.com -o get-docker.sh
      sudo sh get-docker.sh --mirror AzureChinaCloud
    2. 使用apt进行安装

      1
      2
      3
      4
      5
      6
      7
      8
      sudo apt-get update

      sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    3. 替换国内软件源

      1
      2
      3
      4
      5
      curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

      echo \
      "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    4. 安装Docker

      1
      2
      sudo apt update
      sudo apt install docker-ce docker-ce-cli containerd.io
    5. 启动Docker

      1
      2
      sudo systemctl enable docker
      sudo systemctl start docker
    6. 检测是否已经设置镜像

      请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址。

      1
      $ systemctl cat docker | grep '\-\-registry\-mirror'

      如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。

    7. 设置镜像

      创建并编辑/etc/docker/daemon.json

      写入以下内容

      1
      2
      3
      4
      5
      6
      {
      "registry-mirrors": [
      "https://hub-mirror.c.163.com",
      "https://mirror.baidubce.com"
      ]
      }
    8. 重启服务

      1
      2
      sudo systemctl daemon-reload
      sudo systemctl restart docker
    9. 检测是否正常

      docker run --rm hello-world

      通过检查返回信息检查是否成功安装并且部署Docker环境

    ]]>
    + + + + + 安装引导 + + + + + + + Docker + + + +
    + + + + + Linux通过fdisk分区引导 + + /p/3efcbb51.html + + 参考地址:
    CSDN-树莓派Openwrt SD卡扩展问题

    ​ 在给自己的R2S使用64G的SD卡的时候,安装完毕系统启动发现内存卡中有将近50多G的空间没有得到合理的使用,记录一下通过网上树莓派磁盘扩展分区的步骤来在R2S上同样对SD卡进行分区拓展

    fdisk磁盘拓展

    1. 磁盘检查

      df -h 检查已经使用的磁盘容量

      fdisk /dev/mmcblk0 查看磁盘分区,并进行部分操作

    2. 检查磁盘分区情况并且进行分区

      fdisk后的Command( m for help):后输入p来查看分区情况

      fdiskp

      其中可以看到最后分区的End3817471

    3. 新建磁盘

      输入n进行新建磁盘,之后会有几个询问,分别对应以下几点

      • 输入磁盘编码,一般按Default的设置即可
      • 输入扇区的起始位置,这里输入最后一个分区+1的数值大小,比如上图中End后为3817471,那我这里就输入3817472
      • 输入终止扇区,这里可以填入Default设置,就会设置最大可用扇区
      • 输入w进行保存
    4. 把新建的分区格式化为ext4格式

      mkfs.ext4 /dev/mmcblk0p3

    5. 分区挂载

      • 方法一
        • 在Openwrt的管理界面的挂载点中,直接使用"自动挂载"进行磁盘的挂载
      • 方法二
        • mount -v -t ext4 -o rw /dev/mmcblk0p3 [pathToMount]
    6. 通过df -h命令查看,可以发现已经挂载成功

    ]]>
    + + + + + 小技巧 + + + + + + + Linux + + OpenWRT + + + +
    + + + + + Linux下通过swap或zram管理内存 + + /p/5a7c7761.html + + 参考网址:
    1.Ubuntu开启zram和zswap~
    2.使用zram进行内存压缩
    3.Ubuntu添加swap分区

    创建Swap分区

    Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

    Swap分区虽然可以达到扩大内存的作用,但缺点依旧很明显,相比直接使用物理内存,Swap必然速度上会出现一定的取舍。

    1. 新建一个文件夹来作为swap的文件

      1
      2
      3
      mkdir swap
      cd swap
      sudo dd if=/dev/zero of=sfile bs=1024 count=2000000

      其中sfile是文件的名字,可以自己设置,count=2000000是Swap分区的大小,这里指2G

    2. 转化为swap文件

      sudo mkswap sfile

    3. 激活swap文件

      sudo swapon sfile

    4. 查看效果

      free -m

      1
      2
      3
                    total        used        free      shared  buff/cache   available
      Mem: 478 61 184 3 233 379
      Swap: 2704 0 2704

      已经成功挂载了

    5. 添加开机加载

      1
      vi /etc/fstab

      修改配置文件,添加Swap文件(Swap文件的路径为/root/swap/sfile)

      /root/swap/sfile none swap sw 0 0

      类似如下

      1
      2
      3
      4
      /dev/vda1           /               ext4    defaults  1 1
      /dev/vda2 swap swap defaults 0 0
      /root/swap/sfile none swap sw 0 0
      none /dev/shm tmpfs defaults 0 0

    使用zram进行内存压缩

    swap空间在机械硬盘的设备上往往不一定是个好选择,这个时候牺牲一定的CPU性能来使用zram则会比较好

    zram 是在 Linux Kernel 3.2 加入的一个模块,其功能是在内存中开辟一块空间,用来存储压缩后的内存数据,这样可以在牺牲一定的 CPU Cycle 的情况下,在内存中存储尽量多的数据而不需要写入到磁盘。

    1. 安装zram-config,并重启系统

      1
      2
      sudo apt install zram-config
      sudo reboot
    2. 通过zramctl查看zram的情况(默认情况下ALGORITHM为lzo)

      1
      2
      NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
      /dev/zram0 lz4 239.4M 4K 63B 4K 1 [SWAP]

      注意到这里的压缩算法,有两种算法 lzo 和 lz4 可选,默认是 lzo。根据 Benchmark,lz4 的压缩和解压性能在压缩率和 lzo 持平的情况下显著高于后者,因此我们应该采用 lz4 而非 lzo 以获得更高的系统效率。

    3. 修改配置文件来使用lz4算法

      usr/bin/init-zram-swapping

      将源文件的以下部分

      1
      2
      3
      4
      5
      6
      7
      ## initialize the devices
      for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
      done

      替换为

      1
      2
      3
      4
      5
      6
      7
      8
      ## initialize the devices
      for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
      done
    4. 载入新的配置

      systemctl restart zram-config

    开启ZSwap

    1. 编辑grub文件

      sudo vi /etc/default/grub

    2. 在文件末尾加上

      1
      GRUB_CMDLINE_LINUX=”zswap.enabled=1″

      保存退出

    3. 在终端输入命令

      sudo update-grub

    4. 重启系统

    zswap是一种新的轻量化后端构架,将进程中正交换出的页面压缩,并存储在一个基于RAM的内存缓冲池中。除一些为低内存环境预留的一小部分外,zswap缓冲池不预先分配,按需增加,最大尺寸可用户自定义。

    Zswap启动存在于主线程中的一个前端,称为frontswap,zswap/frontswap进程在页面真正交换出之前监听正常交换路径,所以现有的交换页面选择机理不变。

    Zswap也引入重要功能,当zswap缓冲池满时自动驱除页面从zswap缓冲池到swap设备。防止陈旧页面填满缓冲池。

    ]]>
    + + + + + 小技巧 + + + + + + + Linux + + + +
    + + + + + ZeroTier配置Moon服务器 + + /p/c1161a88.html + + 参考链接:
    1.什么值得买-ZeroTier配置Moon节点

    2.ZeroTier官方手册

    安装Moon服务器的作用

    ​ ZeroTier本身的PLANET服务器位于国外,并且由于免费的性质以至于在一些高峰时期经常出现无法打通隧道的情况,这个时候通过自己搭建国内的Moon节点并且进行配置可以达到国内中转加速的作用。

    Moon服务器在VPS上的搭建

    1. 将需要设置moon节点的VPS加入到需要加速的局域网内

      zerotier-cli join <network id>

    2. 生成moon模板

      1
      2
      cd /var/lib/zerotier-one
      zerotier-idtool initmoon identity.public > moon.json
    3. 修改moon.json

      vi moon.json

      修改stableEndpoints为VPS的公网IP,可以添加ipv6地址,例如:

      "stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]

      完整的文件内容示例如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      {
      "id": "deadbeef00",
      "objtype": "world",
      "roots": [
      {
      "identity": "deadbeef00:0:34031483094...",
      "stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]
      },
      {
      "identity": "feedbeef11:0:83588158384...",
      "stableEndpoints": [ "10.0.0.3/9993","2001:abcd:abcd::3/9993" ]
      }
      ],
      "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
      "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
      "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
      "worldType": "moon"
      }
    4. 生成moon签名文件

      zerotier-idtool genmoon moon.json

    5. 通过winscp等工具将000000xxxx.moon的签名文件拷贝下来,或者记住moon.json"id": "idtoremember"id

    6. 将moon节点加入网络

      1
      2
      mkdir moons.d
      mv ./*.moon ./moons.d
    7. 重启ZeroTier,到此Moon服务器的配置结束。

    在客户端启用配置好的节点

    方法一:通过ID直接加入

    1. 在搭建moon服务器的第五步中,记录下moon节点的id,然后在客户端上运行命令

      zerotier-cli orbit idtoremeber idtoremeber

    方法二:通过添加签名文件加入

    1. 在不同设备的ZeroTier根目录下添加moons.d文件夹

      1
      2
      3
      4
      5
      其中,不同系统对应的ZeroTier的位置如下:
      Windows: C:\ProgramData\ZeroTier\One
      Macintosh: /Library/Application Support/ZeroTier/One)
      Linux: /var/lib/zerotier-one
      FreeBSD/OpenBSD: /var/db/zerotier-one
    2. 将生成的0000xxx.moon文件放置于moons.d文件夹下

    Openwrt下ZeroTier配置Moon服务器

    OpenWrt需要修改一个脚本,因为其var目录是一个内存虚拟的临时目录,重启后原有配置不会保留。

    1. 通过ssh连接到Openwrt并修改zerotier的启动脚本

      1
      vi /etc/init.d/zerotier
    2. add_join(){}上方插入两行代码

      1
      2
      mkdir -p $CONFIG_PATH/moons.d
      cp /home/moons.d/* $CONFIG_PATH/moons.d/

      如下图所示:

      ZeroTier的Moon节点

    3. 在/home文件夹下创建moons.d文件夹(修改cp /home/moons.d可以修改需要设置的路径)

    4. 把moon的签名文件00000xxx.moon放于该文件夹内,并重启ZeroTier即可

    补充:解决Openwrt重启后ZeroTier的ID重新分配的问题
    1. 启动Openwrt上的ZeroTier

    2. 输入以下指令

      1
      cp -a /var/lib/zerotier-one /etc/zerotier
    3. 修改/etc/config/zerotier的配置文件,添加以下内容

      option config_path '/etc/zerotier'

    ]]>
    + + + + + 安装引导 + + + + + + + ZeroTier + + + +
    + + + + + Openwrt系统内配置Frpc自启动 + + /p/99e48799.html + +

    Frpc在Openwrt上的客户端多多少少有点问题,为了方便自己使用,在这里记录一下如果用命令行启动和编辑Frpc的流程

    1. 首先,在 fatedier/frp中下载最新版的frp打包程序,以下以0.35.1版本为例

      1
      2
      3
      wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
      tar -xvf frp_0.35.1_linux_amd64.tar.gz
      rm frp_0.35.1_linux_amd64.tar.gz
    2. 首先切换到frp的目录下,把frpc和配置文件放于service对应的目录下

      1
      2
      3
      4
      5
      cd frp_0.35.1_linux_amd64
      sudo mv frpc /usr/bin
      sudo chmod 755 /usr/bin/frpc
      sudo mkdir /etc/frp
      sudo mv frpc.ini /etc/frp
    3. 之后通过指令编辑frpc.ini

      sudo vi /etc/frp/frpc.ini

    4. 之后,编辑/etc/init.d/frpc

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      #!/bin/sh /etc/rc.common

      START=90
      STOP=90
      SERVICE=frpc
      USE_PROCD=1
      PROC="/usr/bin/frpc -c /etc/frp/frpc.ini"

      start_service()

      {
      procd_open_instance
      procd_set_param command $PROC
      procd_set_param respawn
      procd_close_instance

      }

      service_triggers()
      {
      procd_add_reload_trigger "rpcd"
      }

      脚本来自OpenWRT/LEDE下开机脚本

    5. 配置文件就结束了之后只需要直接启用和启动frpc即可

      1
      2
      /etc/init.d/frp start
      /etc/init.d/frp enable && echo on
    6. 另外由于不需要配置frps服务,可以回到上级目录并把下载的文件全部删除

      1
      2
      cd ~
      rm -rf frp_0.35.1_linux_amd64
    ]]>
    + + + + + 安装引导 + + + + + + + Frp + + + +
    + + + + + 拓展Ubuntu服务器内LVM分区容量引导 + + /p/2dda2597.html + +

    参考文章:解决 Linux /dev/mapper/ubuntu–vg-ubuntu–lv 磁盘空间不足的问题

    1. 通过命令查看LVM卷组的信息

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      root@azhal:/mnt/Ar2D# vgdisplay
      --- Volume group ---
      VG Name ubuntu-vg
      System ID
      Format lvm2
      Metadata Areas 1
      Metadata Sequence No 2
      VG Access read/write
      VG Status resizable
      MAX LV 0
      Cur LV 1
      Open LV 1
      Max PV 0
      Cur PV 1
      Act PV 1
      VG Size <930.01 GiB
      PE Size 4.00 MiB
      Total PE 238082
      Alloc PE / Size 51200 / 200.00 GiB
      Free PE / Size 186882 / <730.01 GiB
    2. 可以看到可扩容大小

      Free PE / Size 186882 / <730.01 GiB

    3. 使用命令进行扩容

      按不同需求有以下命令:

      1
      2
      3
      4
      5
      6
      lvextend -L 10G /dev/mapper/ubuntu--vg-ubuntu--lv      //增大或减小至19G
      lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv //增加10G
      lvreduce -L -10G /dev/mapper/ubuntu--vg-ubuntu--lv //减小10G
      lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv //按百分比扩容

      resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv //执行调整

      具体操作:

      1
      2
      3
      4
      5
      6
      7
      8
      root@azhal:/mnt/Ar2D# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
      Size of logical volume ubuntu-vg/ubuntu-lv changed from 200.00 GiB (51200 extents) to <930.01 GiB (238082 extents).
      Logical volume ubuntu-vg/ubuntu-lv successfully resized.
      root@azhal:/mnt/Ar2D# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
      resize2fs 1.45.5 (07-Jan-2020)
      Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
      old_desc_blocks = 25, new_desc_blocks = 117
      The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 243795968 (4k) blocks long.
    4. 检查是否扩容成功

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      root@azhal:/mnt/Ar2D# vgdisplay
      --- Volume group ---
      VG Name ubuntu-vg
      System ID
      Format lvm2
      Metadata Areas 1
      Metadata Sequence No 3
      VG Access read/write
      VG Status resizable
      MAX LV 0
      Cur LV 1
      Open LV 1
      Max PV 0
      Cur PV 1
      Act PV 1
      VG Size <930.01 GiB
      PE Size 4.00 MiB
      Total PE 238082
      Alloc PE / Size 238082 / <930.01 GiB
      Free PE / Size 0 / 0

      可以看到Free Size已经变成0,即扩容成功。

    ]]>
    + + + + + 小技巧 + + + + + + + Linux + + + +
    + + + + + Windows系统中校验文件哈希值 + + /p/a9706dff.html + + ​ 每次要查询一个文件的hash值的时候总要打开一个hash校验工具,觉得有些麻烦了,加上也不是所有文件都会经常需要校验,就常常并不想单独下载一个工具,查询到Windows有自带的hash校验指令,于是记录一下,以下内容摘自知乎

    1. 使用certutil

      Windows从Win7开始,包含了一个CertUtil命令,可以通过这个命令来计算指定文件的杂凑值(Hash Value)

      使用的指令为:

      certutil -hashfile [fileName] [algorithm]

      其中[algorithm]指不同的hash算法,可以取的值有:MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512

      例子:

      certutil -hashfile D:\test.txt MD5

    2. 使用Get-FileHash

      Get-FileHash [fileName] -Algorithm [algorithm]

      其中,支持的算法有MACTripleDES、MD5、RIPEMD160、SHA1、SHA256、SHA384、SHA512

      显示效果:

      Hash_1

      其中,为了方便观察可以通过管道使用Format-List

      Get-FileHash .\test.txt -Algorithm SHA512 | Format-List

      显示效果:

      Hash_2

    ]]>
    + + + + + 小技巧 + + + + + + + Windows + + + +
    + + + + + 搭建ZeroTier Controller管理网络引导 + + /p/41385a4a.html + +

    本来的理解: 在使用ZeroTier的时候经常会出现穿透失败,或者穿透延迟过大但是中转服务器不好用的情况,之前有参考过网上的教程来通过一台国内的VPS搭建自己的MOON节点来达到加速的目的,但是最后的效果不尽人意,而且还存在安卓端添加mood节点并不轻松的问题,所以在这里采取直接通过key-networks/ztncui: ZeroTier network controller UI搭建自己的ZeroTier根服务器

    ​ 最近在使用zerotier-cli listpeers指令的时候发现设置的控制器是一个LEAF而不是本来预期的PLANT,在查阅了一部分资料之后发现如果想要加速网络的话目前比较好的方便还是MOON服务器进行中转,详情参考另外一篇ZeroTier下Moon服务器的搭建

    安装准备

    1. 准备好一台在国内,至少开放端口3443端口的服务器(暂未测试对其他端口是否有需求)

    2. 在服务器内安装ZeroTier,以下为一键安装脚本

      curl -s https://install.zerotier.com | sudo bash

      如果服务器有安装GPG,则需要多几个步骤

      1
      2
      curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
      if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

    部署ztncui

    RPM installation on EL7

    1. sudo yum install https://download.key-networks.com/el7/ztncui/1/ztncui-release-1-1.noarch.rpm -y

    2. sudo yum install ztncui -y

    3. (可选择):添加服务器自己的TLS/SSL证书,或者添加服务器自认证的证书 - 后文有教程

    4. 开放服务器的3443端口(已开放可忽略)

    5. sudo sh -c "echo 'HTTPS_PORT=3443' > /opt/key-networks/ztncui/.env"

    6. sudo sh -c "echo 'NODE_ENV=production' >> /opt/key-networks/ztncui/.env"

    7. sudo systemctl restart ztncui

    8. 通过HTTPS来在服务器的3443端口访问控制界面,比如

      e.g. https://my.network.controller:3443

    9. 通过默认的账号admin和密码password.

    DEB installation on Debian/Ubuntu

    1. curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.7.1_amd64.deb

    2. sudo apt-get install ./ztncui_0.7.1_amd64.deb

    3. (可选择):添加服务器自己的TLS/SSL证书,或者添加服务器自认证的证书 - 后文有教程

    4. 开放服务器的3443端口(已开放可忽略)

    5. sudo sh -c "echo 'HTTPS_PORT=3443' > /opt/key-networks/ztncui/.env"

    6. sudo sh -c "echo 'NODE_ENV=production' >> /opt/key-networks/ztncui/.env"

    7. sudo systemctl restart ztncui

    8. 通过HTTPS来在服务器的3443端口访问控制界面,比如

      e.g. https://my.network.controller:3443

    9. 通过默认的账号admin和密码password.

    笔记

    1. 如果要添加额外的监听端口,只需要在/opt/key-network/ztncui下面添加一个.env文件,其中附带一行

      HTTPS_PORT=3443

      或者任意一个大于1024的端口即可。

    2. 如果存在.env文件来指向特定的一个端口,那么ztncui将会在所有的端口监听网络,如果希望限制一个特定的IP进行监听的话,只需要在.env文件中再添加一行

      HTTPS_HOST=12.34.56.78

      来设置自己制定的IP或者域名即可。

    添加Self-signed Certificate

    这种方法添加的证书会存在浏览器警告的问题,不过由于是自己使用,平时也不会一直盯着控制界面,所以影响应该不会很大,如果有共用或者对安全有需求建议自行添加

    以下为无脑脚本

    1
    2
    3
    4
    5
    6
    sudo -i
    cd /opt/key-networks/ztncui/etc/tls
    rm -f privkey.pem fullchain.pem
    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privkey.pem -out fullchain.pem
    chown ztncui.ztncui *.pem
    chmod 600 privkey.pem

    配置ztnui

    由于ztnui是自己搭建的一个ZeroTier服务器,所以并没有预先设置好的DHCP分配,需要自己设置分配范围。如果需要添加一个新的网络,在使用账号密码登入以后,点击Add network就可以添加一个自己的虚拟局域网络

    1. 点击Add network

    2. 设置好network的名字并create

    3. 如果需要设置"隐私"与否,在Private中设置即可,这里稍作翻译即可看懂,所以不多解释

    4. 点击如下图所示的Easy Setup来快速完成一个IPv4的DHCP分配

      ESETUP

    5. 如下图所示填入对应信息

      IPPOOL

      以下为一个例子:

      1
      2
      3
      网关:192.168.192.0/24
      起始IP:192.168.192.1
      终止IP:192.168.192.254
    6. 然后点submit即可快速创建,也可以通过generate network address的方式自动随机填入。

    7. 如果需要设置NAT路由,则只需要在Routes下进行配置和添加即可。

    ]]>
    + + + + + 安装引导 + + + + + + + ZeroTier + + + +
    + + + + + Devc++调试相关选项配置 + + /p/c9774a05.html + +

    由于蓝桥杯比赛需要使用Devc作为IDE工具,平时用习惯了vscode的snap和其他功能以后觉得如果不提前适应一下Devc的编译环境的话在比赛的时候会吃很大的亏,于是决定之后的学习都用Devc进行,在此记录一下Devc启用调试之前需要的一些基本设置

    启用调试信息(选做)

    貌似在按F5准备进行调试的时候,即使自己没有进行以下设置,Devc++依旧会询问并且可以直接打开进行设置,这里只做一个提前设置的记录,并非必须

    1. 首先,打开devc++之后,找到上方的Tools(工具),如下图所示,打开其中的Compiler options(编译选项)

      工具

    2. 然后按下图开启调试信息(设置为yes)

      调试信息

    显示鼠标所指变量

    1. 再次打开Tools,并且打开Enviroment options

    2. 启用下图黄线部分的选项,开启显示指针所指变量的值

      指针调试

    ]]>
    + + + + + 小技巧 + + + + + + + Devc++ + + + +
    + + + + + Ubuntu下创建拥有sudo权限的用户 + + /p/9232cf7b.html + +
  • 添加用户

    1
    sudo adduser username
  • 添加sudo权限

    1
    2
    # 表示将username追加到sudo权限组当中
    sudo usermod -aG sudo username
  • 检查是否拥有sudo权限

    1
    2
    # 更新ubuntu软件源
    sudo apt update
  • ]]>
    + + + + + 小技巧 + + + + + + + Ubuntu + + Linux + + + +
    + + + + + 手动在服务器上安装Frp + + /p/1d3a895d.html + +
    1. 首先,在 fatedier/frp中下载最新版的frp打包程序,以下以0.35.1版本为例

      1
      2
      3
      wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
      tar -xvf frp_0.35.1_linux_amd64.tar.gz
      rm frp_0.35.1_linux_amd64.tar.gz
    2. 首先切换到frp的目录下,把frpc和配置文件放于service对应的目录下

      1
      2
      3
      4
      5
      cd frp_0.35.1_linux_amd64
      sudo mv frpc /usr/bin
      sudo chmod 755 /usr/bin/frpc
      sudo mkdir /etc/frp
      sudo mv frpc.ini /etc/frp
    3. 之后通过指令编辑frpc.ini

      sudo vi /etc/frp/frpc.ini

    4. 之后,切换到services的目录下,将frpc.service移动到系统的systemctl进程守护下,并启用权限

      1
      2
      3
      4
      5
      cd ./systemd
      sudo mv frpc.service /usr/lib/systemd/system
      sudo chmod 644 /usr/lib/systemd/system/frpc.service
      sudo mv frpc@.service /usr/lib/systemd/system
      sudo chmod 644 /usr/lib/systemd/system/frpc@.service
    5. 配置文件就结束了之后只需要直接启用和启动frpc即可

      1
      2
      sudo systemctl enable frpc
      sudo systemctl start frpc
    6. 另外由于不需要配置frps服务,可以回到上级目录并把下载的文件全部删除

      1
      2
      cd ~
      rm -rf frp_0.35.1_linux_amd64

    对于Frps的安装,可以使用该仓库下的一键安装脚本进行配置:frps-onekey

    ]]>
    + + + + + 安装引导 + + + + + + + Frp + + + +
    + + + + + Ubuntu禁用系统休眠 + + /p/dea4f344.html + + 前言

    由于用笔记本做服务器的时候并不需要屏幕显示,并且屏幕显示会带来多余的耗电,于是就想试着把笔记本屏幕关上的同时能让Ubuntu Server正常运行,而不是进入休眠模式,索性在网上查阅资料以后发现并不是很困难,以此在这里记录需要修改的操作以便以后查阅

    1. 修改logind.conf文件

      sudo vim /etc/systemd/logind.conf

    2. 修改logind.conf中的选项,使得笔记本忽略关闭屏幕对系统的影响

      将原本的

      1
      2
      #HandleLidSwitch=suspend
      #HandleLidSwitchExternalPower=suspend

      改为

      1
      2
      HandleLidSwitch=ignore
      HandleLidSwitchExternalPower=ignore
    3. 使用reboot指令来重启电脑即可。

    ]]>
    + + + + + 小技巧 + + + + + + + Ubuntu + + + +
    + + + + + 修复Vim的光标兼容问题 + + /p/15b28479.html + +

    参考:

    1. Ubuntu的Vi/Vim编辑器的方向键变成ABCD问题_colorfulshark-CSDN博客
    2. Vim入门基本设置

    在终端输入如下指令:

    1
    2
    echo "set nocp" >> ~/.vimrc
    source ~/.vimrc

    出现问题的原因:

    set nocp

    该命令指定让 VIM 工作在不兼容模式下。在 VIM 之前,出现过一个非常流行的编辑器叫 vi。VIM 许多操作与 vi 很相似,但也有许多操作与 vi 是不一样的。如果使用“:set cp”命令打开了兼容模式开关的话,VIM 将尽可能地模仿 vi 的操作模式。

    也许有许多人喜欢“最正统的 vi”的操作模式,对于初学者来说,vi 里许多操作是比较不方便的。

    举一个例子,VIM 里允许在 Insert 模式下使用方向键移动光标,而 vi 里在 Insert 模式下是不能移动光标的,必须使用 ESC 退回到 Normal 模式下才行。

    ]]>
    + + + + + 小技巧 + + + + + + + Linux + + Vim + + + +
    + + + + + Markdown基本语法记录笔记 + + /p/20c326f2.html + +

    ​ 通过使用Github Pages + jekyll 的方法也算是搭建了自己的第一篇博客,由于之后post主要都以markdown的文章发布,所以第一篇blog就留给markdown的语法了。

    ​ 本篇文章参考自Markdown基本语法 - 简书 (jianshu.com),在学习之后做一个汇总,以便自己后续查看和回忆。


    一、标题

    1
    2
    3
    4
    5
    6
    ## 这是一级标题,也就是字最大的
    ## 这是二级标题
    ### 这是三级标题
    #### 这是四级标题
    ##### 这是五级标题
    ###### 这是六级标题

    其中,不同的效果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    ---

    ## 一级标题

    ## 二级标题

    ### 三级标题

    #### 四级标题

    ##### 五级标题

    ###### 六级标题

    ---

    ## 二、字体

    字体总共有四种排布:

    - **加粗**

    `**这里是要加粗的字体**`

    - *斜体*

    ``*这里是要倾斜的字体*``

    - ***斜体加粗*** ~~(就是粗体+斜体啦)~~

    ``***这里是要斜体并且加粗的字体***``

    - ~~删除线~~

    ``~~这里是要打删除线的字体~~``

    ## 三、引用

    通过使用引用,可以较为美观的引用别人的内容。

    使用示例:

    ```markdown
    > 引用
    >> 引用的引用
    >>> 引用的引用的引用

    引用

    引用的引用

    引用的引用的引用

    四、分割线

    分割线有两种实现方式,只要三个,或者三个以上的 ‘-’ 或者 ‘*’ 就可以达到目的,以下为示例

    1
    2
    3
    4
    ---
    ----
    ***
    ****

    效果如下




    五、图片

    Markdown中的图片分为三个部分,分别是“图片介绍”,“图床地址”和“图片信息title”

    • 图片介绍是在图片如果加载失败的时候,将会显示的文字内容
    • 图床地址用于填写图片存放的位置
    • 图片信息显示的title,为鼠标移动到图片上面的时候显示的小字内容(可有可无)
    1
    ![图片介绍](图片url "图片信息显示")

    以下为一个示例

    1
    ![背景](https://lsky.halc.top/LY53bA.jpg)

    示例: 背景


    六、超链接

    超链接的语法和图片的语法很像,唯一的区别就是前面是否有那个感叹号,示例如下:

    1
    2
    [超链接的内容](超链接地址 "超链接的title")
    [百度](http://baidu.com)

    百度

    HalcyonAzure的Blog

    其中Markdown本身的语法目前并不支持超链接打开,需要使用html语言进行修改,由于目前暂时并未学习html有关内容,所以这部分内容直接引用简书中的内容,暂时不研究。

    注:Markdown本身语法不支持链接在新页面中打开,貌似简书做了处理,是可以的。别的平台可能就不行了,如果想要在新页面中打开的话可以用html语言的a标签代替。

    1
    2
    3
    4
    <a href="超链接地址" target="_blank">超链接名</a>

    示例
    <a href="https://www.jianshu.com/u/1f5ac0cf6a8b" target="_blank">简书</a>

    七、代码

    直接贴语法:

    1
    2
    3
    4
    5
    `单行代码内容`

    ​```
    多行代码内容
    ​```

    示例的话上面的很多内容都采用了代码块的方法,所以就不多做展示了

    代码折叠

    记录一个实现代码折叠的小技巧

    1
    2
    3
    4
    <details>
    <summary>bottom</summary>
    `code here`
    </details>

    效果

    bottom`code here`

    八、列表

    无序列表

    语法:无序列表使用’-/+/*'的任意一种符号都可以达到效果

    1
    2
    3
    - 内容
    + 内容
    * 内容

    显示效果:

    • 内容
    • 内容
    • 内容

    如果需要列表嵌套,只需要在回车后重复输入列表(快捷键Tab)即可,示例如下:

    1
    2
    3
    - 内容
    - 内容1
    - 内容2
    • 内容
      • 内容1
      • 内容2

    Ps: 在使用Typora编辑列表的时候,如果下一行不再需要列表,只需要通过方向键直接移动光标到下一行即可,如果使用回车来换行的话只会进行列表嵌套的操作

    有序列表

    通过从无序列表进行引申,可以得到有序列表的语法内容:

    1
    2
    1. 内容1
    2. 内容2

    示例:

    1. 内容1
    2. 内容2

    表格和流程图

    由于这两部分内容目前还没有遇到使用需求,所以这里同样引用简书内的介绍,等真正有需要和使用的时候再返回这条Blog进行更新和整理

    表格

    语法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >表头|表头|表头
    >---|:--:|---:
    >内容|内容|内容
    >内容|内容|内容

    >第二行分割表头和内容。
    >- 有一个就行,为了对齐,多加了几个
    >文字默认居左
    >-两边加:表示文字居中
    >-右边加:表示文字居右
    >注:原生的语法两边都要用 | 包起来。此处省略

    示例:

    1
    2
    3
    4
    5
    >姓名|技能|排行
    >--|:--:|--:
    >刘备||大哥
    >关羽||二哥
    >张飞||三弟

    效果如下:

    姓名技能排行
    刘备大哥
    关羽二哥
    张飞三弟

    流程图

    出于Blog的排版问题,只有一个示例

    st=>start: 开始op=>operation: My Operationcond=>condition: Yes or No?e=>endst->op->condcond(yes)->econd(no)->op&```~~~

    第一篇Blog就是把别人的东西抄了一遍.jpg

    ]]>
    + + + + + 知识记录 + + + + + + + Markdown + + + +
    + + + + +
    diff --git a/p/10e77bc5.html b/p/10e77bc5.html new file mode 100644 index 00000000..2e71bdb5 --- /dev/null +++ b/p/10e77bc5.html @@ -0,0 +1,2 @@ +CS144-Lab4 计算机网络:TCP Connection的实现 - Halcyon Zone +

    CS144-Lab4 计算机网络:TCP Connection的实现

    TCP Connection

    TCP Connection的部分本身并不难,这个实验的主要核心是学习使用tsharkwireshark一类的工具对TCP的网络状况进行分析,找出正确或错误的数据包。

    需要实现的逻辑

    在这个实验中我们需要将前面写的TCP SenderTCP Receiver两个部分的逻辑进行合并,使得两者之间可以进行数据的传输。

    除了几个可以直接调用前面实验函数的函数以外,我们主要需要完成的我认为是收到某个报文以后的处理函数segment_received(const TCPSegment &seg)和时间函数tick()

    实现细节

    接受报文

    对于接受报文这个函数,首先通过对实验报告的分析,我们可以知道我们主要要做的事情可以分为以下三个大逻辑:

    对报文本身合法性的分析
    • 记录收到这个报文的时间,无论对错
    • 检查这个报文是否是带RST标志的报文,如果是的话则直接断开连接
    • 如果是在LISTEN状态的时候接受到这个报文的,则要判断对方是否连接

    代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    // 首先无论如何,刷新收到报文的时间
    _time_since_last_segment_received = 0;

    // 然后先检查这个报文是否出错,如果出错则直接返回
    if (seg.header().rst) {
    _receiver.stream_out().set_error();
    _sender.stream_in().set_error();
    _is_active = false;
    return;
    }

    // 如果TCP连接处于LISTEN状态,只接受SYN报文,并且返回一个SYN + ACK的报文
    if (not _receiver.ackno().has_value()) {
    if (seg.header().syn) {
    _sender.fill_window();
    } else {
    return;
    }
    }
    对报文进行处理

    接受这个报文,如果带有ACK信息则更新对方已经确认了的ackno和对方当前的window_size

    1
    2
    3
    4
    5
    6
    7
    // 接受这个报文
    _receiver.segment_received(seg);

    // 对ACK报文进行确认更新,用于下一次更新的确认
    if (seg.header().ack) {
    _sender.ack_received(seg.header().ackno, seg.header().win);
    }
    正确的处理连接的关闭

    这部分是我认为Lab4里面在理解上较难的部分。其中,TCP的断开分为三种不同的情况:

    1. 由于RST标志导致的强制退出(unclean shutdown)
    2. 正常的通讯结束而导致的关闭(clean shutdown)

    但是对于第二种情况,我们可以进一步分为两种情况:

    首先是最简单的四次挥手报文:

    1. Client发送完毕数据,告诉Server我结束(FIN)了
      Client客户端在给Server发送完毕了所有数据以后,主动发送FIN数据包,表示自己的数据已经发送完毕了。然后Server在收到ClientFIN报文并处理完毕以后则会返回一个FIN ACK报文,来告诉Client他发过来的数据已经在服务端被处理完成了。

    2. Server也发送完毕了数据,告诉Client我结束(FIN)了
      这个时候Server也会给Client发送一个FIN的报文,同样等待Client那边确认,如果Client发送了确认报文来确认这个ACK,则代表客户端那边也处理完了,这个时候按理来说首先提出数据发送完毕的Client就可以断开链接了。

    Client:主动关闭

    但是,服务端有可能收不到这最后一个ACK确认报文,从而导致自己一直在等待客户端向自己发送ACK确认报文。

    为了避免这种情况,最简单的处理方法就是让ClientServer发送了FIN ACK报文以后不要急着断开连接,而是设置一个计时器,等待看看Server会不会重传FIN报文。

    如果重传了FIN则代表Server并没有收到先前发送的FIN ACK,这个时候Client就需要重新发送一个ACK回去,告知Server可以断开连接了。

    如果超过了计时器的时间,Client也没有收到Server的重传报文,那么我们就假设Server已经收到了FIN ACK,并且已经关闭了他那边的连接,这个时候Client就可以断开连接了。而这段计时器的等待时间,就是实验中的linger_time = 10 *_cfg.rt_timeout,这个时间往往是比Server超时重传的时间大很多的,也就留给了Server足够多的时间来重传FIN报文。

    Server:被动关闭

    服务端这边就很简单了,在发送完自己的FIN之后,只需要正常等待ClientACK确认报文,如果没有等到则重传FIN,如果等到了则直接断开连接。

    连接关闭的代码实现

    知道了上面的区分以后,我们实现起来就很简单了,只需要通过添加一个变量_linger_after_streams_finish来判断到底是对方先结束还是自己先结束。如果是对方先结束,则我们不需要等待linger_time,在后面收到了FIN报文以后直接断开连接即可。否则则需要在后面tick()函数的部分添加超时断开连接的逻辑。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 接收到正确的EOF报文,代表对方发送过来的数据流已经结束了,但是自己还有数据要发送
    // 因此需要等待自己的数据流发送完毕后才能关闭连接
    if (_receiver.stream_out().eof() && not _sender.stream_in().eof()) {
    _linger_after_streams_finish = false;
    }

    // _linger_after_streams_finish是false说明对方发送给我们的数据流已经全部被接受了
    // 此时有_sender的eof和bytes_in_flight都为0,说明自己的数据流也已经全部发送完毕
    // 因此可以关闭连接了
    if (_sender.stream_in().eof() && bytes_in_flight() == 0 && not _linger_after_streams_finish) {
    _is_active = false;
    }
    发送确认报文

    这部分逻辑就很简单了,如果在接受了对方传来的有序列号消耗数据包以后,我们并没有数据要传输(即无法告知对方我们接受到了数据),那么我们就需要单独传输一个ACK数据包给对方,告知我们已经接收到了对方的数据。(如果对方发送给我们的是一个ACK数据包,我们则不需要回复,也就是收到了占用序号为零的包)

    1
    2
    3
    4
    if (_sender.segments_out().empty() &&
    (seg.length_in_sequence_space() || seg.header().seqno != _receiver.ackno())) {
    _sender.send_empty_segment();
    }

    其中seg.header().seqno != _receiver.ackno()代表的是一种特殊情况,在TCP连接中,有的时候为了确认当前连接是否依旧有效,对方有可能会随机发送一个错误的序列号给我们,这个时候我们就需要回复一个ACK报文给对方,以此告知对方这个连接依旧是有效的,同时也可以让对方更新我们的窗口大小。

    接受报文的代码实现
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    void TCPConnection::segment_received(const TCPSegment &seg) {
    // 首先无论如何,刷新收到报文的时间
    _time_since_last_segment_received = 0;

    // 然后先检查这个报文是否出错,如果出错则直接返回
    if (seg.header().rst) {
    _receiver.stream_out().set_error();
    _sender.stream_in().set_error();
    _is_active = false;
    return;
    }

    // 如果TCP连接处于LISTEN状态,只接受SYN报文,并且返回一个SYN + ACK的报文
    if (not _receiver.ackno().has_value()) {
    if (seg.header().syn) {
    _sender.fill_window();
    } else {
    return;
    }
    }

    // 接受这个报文
    _receiver.segment_received(seg);

    // 对ACK报文进行确认更新,用于下一次更新的确认
    if (seg.header().ack) {
    _sender.ack_received(seg.header().ackno, seg.header().win);
    }

    // 接收到正确的EOF报文,代表对方发送过来的数据流已经结束了,但是自己还有数据要发送
    // 因此需要等待自己的数据流发送完毕后才能关闭连接
    if (_receiver.stream_out().eof() && not _sender.stream_in().eof()) {
    _linger_after_streams_finish = false;
    }

    // _linger_after_streams_finish是false说明对方发送给我们的数据流已经全部被接受了
    // 此时有_sender的eof和bytes_in_flight都为0,说明自己的数据流也已经全部发送完毕
    // 因此可以关闭连接了
    if (_sender.stream_in().eof() && bytes_in_flight() == 0 && not _linger_after_streams_finish) {
    _is_active = false;
    }

    if (_sender.segments_out().empty() && (seg.length_in_sequence_space() || seg.header().seqno != _receiver.ackno())) {
    _sender.send_empty_segment();
    }

    // 填装需要发送的报文
    _push_out();
    }

    时间流动

    另外一个需要注意的函数就是tick()函数了。其实这一部分的重要也主要是连带了前面接受报文部分的关闭连接,主要要注意的就是添加一个对linger_time的判断。整个tick()函数的代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //! \param[in] ms_since_last_tick number of milliseconds since the last call to this method
    void TCPConnection::tick(const size_t ms_since_last_tick) {
    _time_since_last_segment_received += ms_since_last_tick;
    _sender.tick(ms_since_last_tick);
    // 如果超时重传次数超过了最大重传次数,那么就直接关闭连接
    if (_sender.consecutive_retransmissions() > TCPConfig::MAX_RETX_ATTEMPTS) {
    _send_rst();
    return;
    }
    // 在我方的数据包全部发送并且处理完毕以后,如果接受到了对方传来的EOF报文,并且等待了十倍的RTT时间都没有新的报文传来,则代表连接已经关闭
    if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof() &&
    _receiver.stream_out().input_ended()) {
    _is_active = false;
    }
    _push_out();
    }

    问题和难点

    Lab4实验主要的难点感觉还是在即使跑通了前面大部分的基本测试,也还是有可能因为Lab2Lab3里面的疏忽,而导致后面模拟真实通讯的时候很容易难以下手。但是在掌握了Wireshark抓包一类的工具用法以后还是很容易发现问题所在并加以纠正的。

    比如我在Lab3中,对于TCPSender在填充窗口大小的时候,一开始并不是设置了一个额外的变量fill_space来控制可以发送的空闲空间的大小,而是直接使用了ack_received方法中收到的最新窗口大小,忽略了bytes_in_flight()也需要考虑在窗口占用里面的问题。在使用Wireshark抓包的时候就明显发现了发送数据包的序号要远超于接收方的确认序号

    空闲窗口判断错误

    而这个问题也在我通过修改Lab3对应空闲窗口大小的逻辑之后得到了解决。

    我还遇到过的第二个问题就是在小窗口的情况下,没有正确处理链接的关闭。在通过Wireshark抓包以后可以看到

    没有正确处理关闭

    在发送方还没有给接收方发送完所有数据的时候,接收方就提前终止了自己的连接,这个问题主要出在tick()函数里面关于linger_time的逻辑错误,我并没有等到接收方接受到EOF就直接关闭了链接。错误代码如下:

    1
    2
    3
    if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof()) {
    _is_active = false;
    }

    修改后的代码如下:

    1
    2
    3
    4
    if (time_since_last_segment_received() >= _linger_time && _sender.stream_in().eof()
    + && _receiver.stream_out().input_ended()) {
    _is_active = false;
    }

    整个Lab4的代码可以在Github的仓库查看:

    tcp_connection.cc
    tcp_connection.hh


    CS144-Lab4 计算机网络:TCP Connection的实现
    https://halc.top/p/10e77bc5
    作者
    HalcyonAzure
    发布于
    2023年4月10日
    许可协议
    \ No newline at end of file diff --git a/p/1153f279.html b/p/1153f279.html new file mode 100644 index 00000000..b965d7b8 --- /dev/null +++ b/p/1153f279.html @@ -0,0 +1,2 @@ +2021年度总结 - Halcyon Zone +

    2021年度总结

    开头

    往年本来都没有在年初或者年末的时候写一个一年总结的习惯,今年也算是突发奇想,打算写一篇博客稍微记录下自己的学习和生活。希望能在2022年里面养成时不时记录一下自己生活的习惯,养成正视自己的一个态度。

    性格变化

    从2020年高三高考结束,到2021年大一升大二,也算是对大学生活有了一些认知和了解。整个大一的时间不能说浑浑噩噩,但总觉得自己心里缺了点什么。

    现在仔细想想感觉就是缺少对自己的一个自视,总觉得心里空空的,不自在。刚上大学的时候就对“信息差”这个词很敏感,整个大一的过程也感觉一直在忙忙碌碌的处理各种各样的“信息”。无论是平时上课、考试还是处理一些生活中的问题,也总是把能搜罗到的各种信息的优先级置于自己“能力”的优先级之上,对外界环境的信任远高于对自己的信任。

    这种自己信任上的缺乏感在最近听Daniel SlossJigsaw(拼图)Live Show之后,感觉悟到自己经常总是忽视自己,一直感觉空虚因而不断的向外界索取信息,大抵也就是自己尚且不能适应孤独的感觉。上了大学以后本来觉得能聊的人多了,孤独的感觉应该弱化了,但现在想想过去一年里面反而应该是越来越强了。想过也许是不是谈恋爱就能让自己生活不那么孤独,但现在想想,问题应该还是出在自己对自己的不信任上。

    连自己都不能做到100%爱自己的话,也很难爱其他人

    总之,希望在将来到的2022年里面,能增加自己正视自己的态度。争取每个月写一个总结,来达到”给自己泼一盆冷水醒一醒“的作用。

    有的话,说出来了才有力量警醒自己

    能力技能

    这个学期除了学校本身的内容,学习密度最大的时候应该是年初倒腾软路由的时候开始的。从最初依赖带有GUI界面的openwrtluci界面,到现在已经习惯了terminal的方式进行各种操作,这种对Linux一类命令行态度的转变有一种拿到了普罗米修斯的火把的感觉,一切原来觉得”麻烦“或者难以折腾的东西,突然都明朗了起来,即使遇到了问题,相比原来无脑cp各路解决方案的脚本指令,现在会下意识的思考和提前验证其中的原理和造成的影响了。

    对于项目而言,去年算是或多或少接触或者熟悉了Nginx、Docker、MySQL等等零零碎碎的知识和技术,也搭建了一台以家里电脑为处理服务器,香港云服务器作为跳板的公网服务器,在上门也尝试部署过许多不同的demo或者项目,其中也通过对ZeroTier一类的工具的深入研究,也算是对计算机网络的学习和经验埋下了兴趣。

    不过去年一年中,也和性格相关,大部分时候只是在通过搜刮各种”信息“,来搭建各种别人的项目然后进行一些很小的改动,一直在重复着”遇到问题“->”寻找别人的解决方案“->”不断选择最优解并且排错“->”解决问题“的过程,而总是不会把**”自己创造解决方案“排在首要位置。今年的博客内容也能体现我目前”知识密度“低下的严重不足,大部分时候只是写个机械性的总结草草了事,缺少很多思考和加工的过程。

    生活

    平时在学校一个人虽然自在,但也还是和在家里一样一直倾向于变化越少越好,很少出门,出门吃饭也都只是找平时能难得线下面对面聊的比较多的同学,线上聊的比较多的同学和学长就经常”社恐“了。

    在今年年末的时候,高考那会的储蓄也算是消耗殆尽了,钱的概念也越来越深刻了。不过还算幸运的是有需要的东西基本上也都备齐了,之后需要的东西开销应该也不会很大,目前的电子产品和设备就足够我把玩好一阵子了。

    今年上半年的时候一直在忙忙碌碌的在不同的互联网上”冲浪”,一直在到处寻找已有的工具和服务然后不断上手和试验。看上去很忙但实际上也都学的是一些花时间,而不用花精力就能学会的“三脚猫”功夫。下半年的话反而玩了好几款3A大作而觉得整一年都充实了不少(手柄玩游戏是真的闲适),总的效率上虽然没做什么事情,但情绪要比上半年积极快乐多了。

    目标和计划

    2022年也到了,之前也没做过啥新年计划,今年也算是第一年尝试看看了,姑且列出以下几个目标,看看年末的时候能实现多少吧:

    • 每个月写一篇总结,大致总结一下这个月发生了什么,就当是自己对自己态度的一个正视,也算是自己和自己对话了。
    • 减肥,希望能减到BMI标准的水平。
    • 接触至少三种不同的编程语言,了解相关的项目,并提交出自己的第一个PR
    • 游戏开发入门,制作自己的一个游戏demo
    • 学习一门额外的技能,目前的计划包括但不限于:
      • 日语入门(问就是二次元)
      • 拾回Adobe全家桶
      • 系统性学习建模软件
    • 争取能参加一次GameJam

    以上应该算是对2021年的一个缺胳膊少腿的总结吧,其中也发生了很多值得纪念和回味的细节事情,包括和不同的人相识又或者和第一次和同学去旅游,在旅游的时候又和曾经的同学见面…写博客的目的还是希望能把那些原来不会对别人,也不会对自己说的话记录下来,也是对自己的一个警示了。

    2022年1月7号 - 凌晨3:14

    (感冒还没好全 & 期末预习备战中… 希望这学期别挂XD)


    2021年度总结
    https://halc.top/p/1153f279
    作者
    HalcyonAzure
    发布于
    2022年1月7日
    许可协议
    \ No newline at end of file diff --git a/p/12aa3ef8.html b/p/12aa3ef8.html new file mode 100644 index 00000000..a4d87b8f --- /dev/null +++ b/p/12aa3ef8.html @@ -0,0 +1,2 @@ +Linux配置局域网下网络唤醒 - Halcyon Zone +

    Linux配置局域网下网络唤醒

    1. 安装网络管理工具

      sudo apt install ethtool

    2. 查询网口信息

      ip a

      记录需要启动的网口名字

    3. 通过指令手动启动wol服务

      ethtool -s [INTERFACE] wol g

    4. 查询是否成功

      ethtool [INTERFACE]

      输出信息中如果显示wol:g则代表开启成功

    5. 创建开机进程

      sudo vi /etc/systemd/system/wol.service

    6. 写入以下内容

      1
      2
      3
      4
      5
      6
      7
      8
      9
      [Unit]
      Description=Configure Wake On LAN

      [Service]
      Type=oneshot
      ExecStart=/sbin/ethtool -s [INTERFACE] wol g

      [Install]
      WantedBy=basic.target
    7. 载入systemd并启动

      1
      2
      3
      sudo systemctl daemon-reload
      sudo systemctl enable wol.service
      sudo systemctl start wol.service

    参考博客

    1.WOL持久化设置


    Linux配置局域网下网络唤醒
    https://halc.top/p/12aa3ef8
    作者
    HalcyonAzure
    发布于
    2021年4月4日
    许可协议
    \ No newline at end of file diff --git a/p/13271c5f.html b/p/13271c5f.html new file mode 100644 index 00000000..7912343c --- /dev/null +++ b/p/13271c5f.html @@ -0,0 +1,2 @@ +OSTEP:比例份额的调度策略 - Halcyon Zone +

    OSTEP:比例份额的调度策略

    第八章:调度:比例份额

    在CPU资源进行调度的时候,有的时候我们很难让每个程序都尽量公平的分配到资源。“彩票调度(lottery scheduling)”通过给不同的任务分配不同的彩票数,再通过随机数和期望分布来对资源进行调度,实现一个类似于平均分配的调度方法

    本章中文译本内缺少对Linux系统的CFS调度的说明,不过不影响课后练习

    1. 完成随机种子1、2和3对应的习题计算

      该题目的主要思路即判断随机数取模后的数字和tickets的数量比较,然后依次逐步执行判断即可

    2. 当彩票分布设计的十分极端的情况下,由于第一个Job0 10:1获得的票数太少,几乎不可能在Job1 10:100前完成任务,将会在结果上滞后Job0的完成

    3. 通过设立不同的seed,可以得到不同的情况如下

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      $ ./lottery.py -l 100:100,100:100 -s 1 -c
      ...
      --> JOB 1 DONE at time 196
      ...
      --> JOB 0 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -s 2 -c
      ...
      --> JOB 1 DONE at time 190
      ...
      --> JOB 0 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -s 3 -c
      ...
      --> JOB 0 DONE at time 196
      ...
      --> JOB 1 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -s 4 -c
      ...
      --> JOB 1 DONE at time 199
      ...
      --> JOB 0 DONE at time 200

      可以大致看出在任务的长度足够大的情况下,调度分布基本公平,最后的结果趋紧于类似RR切换任务的平均期望

    4. 在修改了quantum大小之后,由于时间片变大,相当于任务本身的长度缩短,整个任务的公平性会偏向不稳定和不公平,大致结果如下

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 1
      ...
      --> JOB 0 DONE at time 180
      ...
      --> JOB 1 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 2
      ...
      --> JOB 1 DONE at time 180
      ...
      --> JOB 0 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 3
      ...
      --> JOB 1 DONE at time 120
      ...
      --> JOB 0 DONE at time 200

      $ ./lottery.py -l 100:100,100:100 -q 20 -c -s 4
      ...
      --> JOB 1 DONE at time 140
      ...
      --> JOB 0 DONE at time 200
    5. 这题主要用来当Python练习了,模拟生成图像的代码如下(和lottery.py实验代码放于同一目录下)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      import os
      import re
      import matplotlib.pyplot as plt
      import numpy as np

      # 执行彩票概率检查,返回概率结果

      def countLottery(length, seed):
      r = os.popen(
      "./lottery.py -l " + length + ":100," + length + ":100 -c" + " -s " + seed)
      text = r.read()
      r.close()
      lottery_time = re.findall(r"^--> .*(\d*)", text, re.M)
      return int(lottery_time[0])/int(lottery_time[1])

      def average(length):
      sum = 0
      # 调整重复
      time = 20
      for i in range(1, time):
      sum += countLottery(length, str(i))
      return sum / (time - 1)

      length = []
      chance = []

      # 设定工作长度和间隔

      length_start = 1
      length_end = 100
      step = 5
      for i in np.arange(length_start, length_end, step):
      length.append(i)
      chance.append(average(str(int(i))))

      plt.ylabel("Fairness")
      plt.xlabel("Job Length")

      plt.plot(length, chance, 'b-')

      plt.savefig("./lottery.png")

      最后生成的图片效果

      模拟图像


    OSTEP:比例份额的调度策略
    https://halc.top/p/13271c5f
    作者
    HalcyonAzure
    发布于
    2022年4月9日
    许可协议
    \ No newline at end of file diff --git a/p/14cd2588.html b/p/14cd2588.html new file mode 100644 index 00000000..a413fe58 --- /dev/null +++ b/p/14cd2588.html @@ -0,0 +1,2 @@ +Docker传递操作进容器内的不同方式 - Halcyon Zone +

    Docker传递操作进容器内的不同方式

    进入容器

    1. 使用docker exec -it命令进入容器(推荐)

      假设操作的容器ID为icontainer,如果想要进入icontainer执行指令,只需要输入以下指令:

      1
      docker exec -it icontainer /bin/bash

      如果需要退出容器,输入exit或者Ctrl+C即可

    2. 使用docker attach命令进入

      同样以icontainer举例,则需要输入以下指令来进入容器终端

      1
      docker attach icontainer

      但这样有缺点,即退出终端的同时,该容器也会同样退出,所以推荐使用exec的方法进入容器

    文件传递

    ​ 先直接上指令,以容器icontainer为例,我需要将该容器下的/opt/demo/demo.zip拷贝到宿主机的/opt/Backup/下,那么我的指令如下:

    1
    docker cp icontainer:/opt/demo/demo.zip /opt/Backup/

    ​ 同理,如果我需要将Backup下的demo.zip传递到容器内,我也可以使用如下指令传输到容器的recover文件夹内:

    1
    docker cp /opt/Backup/demo.zip icontainer:/opt/recover/

    备注:文件传递和容器是否启动无关,都会直接对文件进行修改


    Docker传递操作进容器内的不同方式
    https://halc.top/p/14cd2588
    作者
    HalcyonAzure
    发布于
    2021年8月2日
    许可协议
    \ No newline at end of file diff --git a/p/15b28479.html b/p/15b28479.html new file mode 100644 index 00000000..022bf7b2 --- /dev/null +++ b/p/15b28479.html @@ -0,0 +1,2 @@ +修复Vim的光标兼容问题 - Halcyon Zone +

    修复Vim的光标兼容问题


    参考:

    1. Ubuntu的Vi/Vim编辑器的方向键变成ABCD问题_colorfulshark-CSDN博客
    2. Vim入门基本设置

    在终端输入如下指令:

    1
    2
    echo "set nocp" >> ~/.vimrc
    source ~/.vimrc

    出现问题的原因:

    set nocp

    该命令指定让 VIM 工作在不兼容模式下。在 VIM 之前,出现过一个非常流行的编辑器叫 vi。VIM 许多操作与 vi 很相似,但也有许多操作与 vi 是不一样的。如果使用“:set cp”命令打开了兼容模式开关的话,VIM 将尽可能地模仿 vi 的操作模式。

    也许有许多人喜欢“最正统的 vi”的操作模式,对于初学者来说,vi 里许多操作是比较不方便的。

    举一个例子,VIM 里允许在 Insert 模式下使用方向键移动光标,而 vi 里在 Insert 模式下是不能移动光标的,必须使用 ESC 退回到 Normal 模式下才行。


    修复Vim的光标兼容问题
    https://halc.top/p/15b28479
    作者
    HalcyonAzure
    发布于
    2021年3月14日
    许可协议
    \ No newline at end of file diff --git a/p/15b685e1.html b/p/15b685e1.html new file mode 100644 index 00000000..a127305c --- /dev/null +++ b/p/15b685e1.html @@ -0,0 +1,2 @@ +Google镜像站创建引导 - Halcyon Zone +

    Google镜像站创建引导

    步骤如下:

    1. 在Nginx中创建Google的Nginx反代www.google.com.hk

    2. 配置SSL证书并保存,启用HTTPS

    3. 配置upstream设置

      • 通过如下方式获取google的不同ip

        dig www.google.com @8.8.8.8 +short

      • 将类似如下配置文件配置好

        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        upstream www.google.com.hk {
        ip_hash;
        server 108.177.125.199:443;
        server 64.233.189.199:443;
        server 74.125.23.199:443;
        server 172.217.24.35:443;
        }

        server
        {...}
    4. 在server中配置防爬虫和禁止IP访问

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      server
      {

      ...

      # 防止网络爬虫
      #forbid spider
      if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
      {
      return 403;
      }

      # 禁止用其他域名或直接用IP访问,只允许指定的域名访问
      #forbid illegal domain
      if ( $host != "yourdomain.com" ) {
      return 403;
      }

      ...

      }
    5. 检查并重启配置文件

      nginx -t && nginx -s reload

    6. 在宝塔防火墙中关闭’GET’过滤,否则会导致搜索某些关键词的时候被误判封锁IP

    参考文章:

    1. (´∇`) 被你发现啦~ 搭建google镜像网站(适用最新版nginx)Module for Google Mirror – 深海 (oyi.me)

    Google镜像站创建引导
    https://halc.top/p/15b685e1
    作者
    HalcyonAzure
    发布于
    2021年4月20日
    许可协议
    \ No newline at end of file diff --git a/p/1724953e.html b/p/1724953e.html new file mode 100644 index 00000000..9a7614bf --- /dev/null +++ b/p/1724953e.html @@ -0,0 +1,2 @@ +OSTEP:虚拟内存和物理内存地址转换 - Halcyon Zone +

    OSTEP:虚拟内存和物理内存地址转换

    第十五章:机制:地址转换

    该章节主要引出了基址寄存器和界限寄存器的概念,表述了在操作系统内程序执行的时候虚拟内存的分布和物理内存的地址转换关系

    1. 判断是否越界只需要将访问内存地址大小和Limit进行比较,在小于Limit的情况下直接做加法即可

    2. 获取到所有访问的数据后,可以发现访问的地址中最大的为

      1
      VA  9: 0x000003a1 (decimal:  929)

      因此只需要将-l设置为930即可

      补充为什么不是929

      界限寄存器是在基址寄存器的基础上开始limit个单位的内存可被使用,就好比数组中的limit为10个空间的情况下,只有0-9可以被使用。对应到该题,如果想要让(0x000003a1)的地址不越界,则需要设置930个可用空间

    3. 题目默认的物理地址为16k,也就是16,384,只需要设置-b16384 - 100 = 16284即可

    4. 和上文实验差别不大,其中-a参数是设置随即生成的取地址的大小范围,-p为设置物理内存的最大范围,实际内存主要是否越界只和-b的基址寄存器、-l的界限寄存器以及-p的物理内存有关系,-a作为一个随机数范围没有实际含义

    5. 通过PyPlot画图,在默认的-n情况下,当limit从0逐渐增加到asize的时候,可以得到大致如下的图片

      limit

      附画图代码

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      import os
      import re
      import matplotlib.pyplot as plt

      def execRelocation(seed, limit, num):
      r = os.popen('python3 relocation.py -s %d -l %d -c' % (seed, limit))
      pass_num = r.read().count("VALID")
      r.close()
      return pass_num / num

      if __name__ == '__main__':
      limitTop = 1024
      limit_list = []
      case_list = []
      # 从 0 - limitTop开始以50为公差测试对应通过的概率
      for i in range(0, limitTop, 50):
      sum = 0
      # 对于每个limit重复实验20次,取平均值
      for j in range(0, 20):
      sum += execRelocation(j, i, 10)
      # 结果存入list
      case_list.append(sum / 10)
      limit_list.append(i)
      # 画图
      plt.xlabel("limit")
      plt.ylabel("pass rate")
      plt.plot(limit_list, case_list)
      plt.savefig("limit.png")

    OSTEP:虚拟内存和物理内存地址转换
    https://halc.top/p/1724953e
    作者
    HalcyonAzure
    发布于
    2022年4月19日
    许可协议
    \ No newline at end of file diff --git a/p/18b05b6b.html b/p/18b05b6b.html new file mode 100644 index 00000000..c2748fbf --- /dev/null +++ b/p/18b05b6b.html @@ -0,0 +1,2 @@ +总结:2022年3月 - Halcyon Zone +

    总结:2022年3月

    做了的事情

    学习方面

    这个月直接写出的可以用的贡献不是很多,主要成就感应该就是来自Python的抓包和发包写一些打卡脚本的目标完成了,实现了学校的打卡自由和机场的签到流量自由。

    Rust的学习和CS144的学习在这个月成功被我换成了C++的学习和OSTEP的学习,写lab完成之后带来的快感感觉完全不亚于玩老头环成功挑战Boss后的成就感,OSTEP的学习笔记和答案也有一直在博客里面更新,希望自己这个学期能全部做完加深对操作系统的了解

    这个学期也第一次写了一个能用的repo出来:HalcyonAzure/lsky-pro-docker。虽然整个Dockerfile还是抄袭了issues里面别人的劳动成果,但是在调试的过程中遇到的许多问题也加深了自己对container的了解,而且学会了用dev container来做一些临时开发,同时自己写yamlgithub actions来自动部署一些项目(白嫖服务器的感觉是真的爽),总的来说成就感可以说是非常强了。

    喔,对了,这个月还把博客重构了一下,改成了用HexoFluid的主题,看着比原来JekyllTeXt花里胡哨了不少😉

    生活方面

    这个月由于都忙着Coding,没什么游戏时间。不过让我没想到的是南昌居然也会受到疫情的波及,连续上了近一整个月的网课,伙食方面不能吃烧烤或火锅来释放自己的多巴胺果然感觉还是很难受啊😢,希望能早点解封然后出去吃餐好的

    核酸检测虽然说做的次数也满多,不过学校后面几次安排的时间都蛮合适的,整个流程下来不超过30min,因此也没什么怨言,同时托网课的福,自己也才有了那么多时间能做自己想做的事情,写自己想写的东西,这种无忧无虑不用考虑绩点和平时作业的时候如果多一些就好啦😣

    四月份要做的事情

    学习计划

    • 参加计算机设计大赛,看看能不能摸个奖回来,丰富下经历
    • OSTEP的Lab每个礼拜写两篇

    生活计划

    • 绝对、绝对绝对开始跑步或打排球,调整自己的生活质量
    • 早睡早起!!!
    • 水果封校已经不做指望了,就希望能控制住自己的饮食😥

    总结:2022年3月
    https://halc.top/p/18b05b6b
    作者
    HalcyonAzure
    发布于
    2022年4月6日
    许可协议
    \ No newline at end of file diff --git a/p/195b5fa9.html b/p/195b5fa9.html new file mode 100644 index 00000000..df6ff624 --- /dev/null +++ b/p/195b5fa9.html @@ -0,0 +1,2 @@ +CS144-Lab6 计算机网络:路由转发 - Halcyon Zone +

    CS144-Lab6 计算机网络:路由转发

    路由转发

    这个实验就是最后一个需要写代码的实验了。主要需要解决的问题是一个IP数据包传入之后,如何通过已有的路由表确定下一跳的IP地址

    这个实验中主要的问题点就是CIDR的匹配。解决这个问题,我们只需要先将CIDR转为子网掩码,也就是以0为基数,左移(32 - 前缀)位,最后得到的也是子网掩码的值。但是这里有一个问题就是,当mask是uint32_t的时候,如果前缀的长度为0,那么子网掩码会变成255.255.255.255,但是实际上应该是0,因此我们需要对前缀是否为0进行判断。

    在判断完毕之后,只需要将网关的IP地址和子网掩码按位与运算,然后将目标IP地址也和子网掩码按位与运算,如果最后的结果相同,那么就说明子网匹配

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    auto path = _route_table.end();
    const auto &dst_ip = dgram.header().dst;
    for (auto entry = _route_table.begin(); entry != _route_table.end(); entry++) {
    // CIDR的子网位数是多少,相当于就是在0的基础上补多少个1,但是当prefix_length == 0的时候,
    // 由于位运算的特性,子网掩码会全部变成1,也就相当于是/32的情况。因此当检测到子网掩码是0的时候要直接跳过
    const uint32_t &mask = entry->prefix_length ? (~0U) << (32 - entry->prefix_length) : 0;
    const auto network_address = entry->route_prefix & mask;
    if ((dst_ip & mask) == network_address) {
    path = entry;
    }
    }

    如果没有匹配到对应的路由规则,或者这个数据包已经经过了太多次转发都没有找到目的地,那么就将这个数据包丢弃掉。

    1
    2
    3
    4
    // 检查是否存在对应的路由规则,或者TTL可否生存,如果不符合则丢弃
    if (path == _route_table.end() || dgram.header().ttl-- <= 1) {
    return;
    }

    如果没有丢弃的话,那么就只需要按照正确的接口将数据包发送出去就行,如果没有下一跳的IP地址,说明数据包已经到达了对应的目的地,只需要直接发送给目标IP即可

    1
    2
    3
    4
    5
    6
    7
    // 将数据包发送给正确的接口
    AsyncNetworkInterface &interface = _interfaces[path->interface_num];
    if (path->next_hop.has_value()) {
    interface.send_datagram(dgram, path->next_hop.value());
    } else {
    interface.send_datagram(dgram, Address::from_ipv4_numeric(dgram.header().dst));
    }

    终于也是写完了Lab0-6的所有博客总结😭,Lab7的部分不需要写代码,只需要直接运行程序聊天就行,就不写博客总结了


    CS144-Lab6 计算机网络:路由转发
    https://halc.top/p/195b5fa9
    作者
    HalcyonAzure
    发布于
    2023年4月24日
    许可协议
    \ No newline at end of file diff --git a/p/1d3a895d.html b/p/1d3a895d.html new file mode 100644 index 00000000..3a1157cc --- /dev/null +++ b/p/1d3a895d.html @@ -0,0 +1,2 @@ +手动在服务器上安装Frp - Halcyon Zone +

    手动在服务器上安装Frp


    1. 首先,在 fatedier/frp中下载最新版的frp打包程序,以下以0.35.1版本为例

      1
      2
      3
      wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
      tar -xvf frp_0.35.1_linux_amd64.tar.gz
      rm frp_0.35.1_linux_amd64.tar.gz
    2. 首先切换到frp的目录下,把frpc和配置文件放于service对应的目录下

      1
      2
      3
      4
      5
      cd frp_0.35.1_linux_amd64
      sudo mv frpc /usr/bin
      sudo chmod 755 /usr/bin/frpc
      sudo mkdir /etc/frp
      sudo mv frpc.ini /etc/frp
    3. 之后通过指令编辑frpc.ini

      sudo vi /etc/frp/frpc.ini

    4. 之后,切换到services的目录下,将frpc.service移动到系统的systemctl进程守护下,并启用权限

      1
      2
      3
      4
      5
      cd ./systemd
      sudo mv frpc.service /usr/lib/systemd/system
      sudo chmod 644 /usr/lib/systemd/system/frpc.service
      sudo mv frpc@.service /usr/lib/systemd/system
      sudo chmod 644 /usr/lib/systemd/system/frpc@.service
    5. 配置文件就结束了之后只需要直接启用和启动frpc即可

      1
      2
      sudo systemctl enable frpc
      sudo systemctl start frpc
    6. 另外由于不需要配置frps服务,可以回到上级目录并把下载的文件全部删除

      1
      2
      cd ~
      rm -rf frp_0.35.1_linux_amd64

    对于Frps的安装,可以使用该仓库下的一键安装脚本进行配置:frps-onekey


    手动在服务器上安装Frp
    https://halc.top/p/1d3a895d
    作者
    HalcyonAzure
    发布于
    2021年3月14日
    许可协议
    \ No newline at end of file diff --git a/p/1dcf9daa.html b/p/1dcf9daa.html new file mode 100644 index 00000000..cde90d9e --- /dev/null +++ b/p/1dcf9daa.html @@ -0,0 +1,2 @@ +Minecraft服务器配置域名SRV记录隐藏端口 - Halcyon Zone +

    Minecraft服务器配置域名SRV记录隐藏端口

    记录

    ​ 目前对于SRV记录了解还不清楚,没有查询具体可以使用的服务等。目前需要的也只是达到转发MC的端口,达到隐藏端口的目的,所以只是一个无脑式记录。

    步骤

    1. 拥有一个域名,并且指向了一个带有端口的MC服务器,比如rpg.vastl.icu:25566

    2. 在DNS控制台添加解析记录。

      1
      2
      3
      主机记录:_minecraft._tcp.xx  ## xx为子域名
      记录类型:SRV
      记录值:5 0 端口号 域名 ## 举例:5 0 25566 rpg2.vastl.icu.
    3. 最后应用即可。


    Minecraft服务器配置域名SRV记录隐藏端口
    https://halc.top/p/1dcf9daa
    作者
    HalcyonAzure
    发布于
    2021年5月11日
    许可协议
    \ No newline at end of file diff --git a/p/1e0fb80b.html b/p/1e0fb80b.html new file mode 100644 index 00000000..dbc3908f --- /dev/null +++ b/p/1e0fb80b.html @@ -0,0 +1,2 @@ +ZeroTier搭建Planet服务器引导 - Halcyon Zone +

    ZeroTier搭建Planet服务器引导

    参考文章

    1. Running MPLS over ZeroTier Part 1 · Gotz Networks

    步骤

    1. 把ZeroTier的项目在本地克隆一份

      1
      git clone https://github.com/zerotier/ZeroTierOne.git
    2. 打开在attic文件夹下的world文件夹

      1
      cd ZeroTierOne/attic/world
    3. 编辑mkworld.cpp文件,把ZeroTier Controller默认的IP删除,添加自己的IP上去。

    4. 编译文件

      1
      source ./build.sh
    5. 运行mkworld文件

      1
      ./mkworld
    6. 应该会产生一个新的world.bin文件,这个文件需要在所有自己的客户端添加

    7. 将这个world.bin文件复制到ZeroTier的文件夹下,在Linux中的指令为

      1
      cp world.bin /var/lib/zerotier-one/planet
    8. 重启ZeroTier

      1
      sudo systemctl restart zerotier-one.service
    9. 重复第七步和第八步,在所有希望使用自己Planet服务器的客户端中添加这个节点

    实现的效果

    ​ 完全使用自己的服务器,数据等不通过ZeroTier自己的官网。


    ZeroTier搭建Planet服务器引导
    https://halc.top/p/1e0fb80b
    作者
    HalcyonAzure
    发布于
    2021年5月10日
    许可协议
    \ No newline at end of file diff --git a/p/20416971.html b/p/20416971.html new file mode 100644 index 00000000..7759fdc6 --- /dev/null +++ b/p/20416971.html @@ -0,0 +1,2 @@ +OSTEP:TLB缓存命中和非命中的开销差距 - Halcyon Zone +

    OSTEP:TLB缓存命中和非命中的开销差距

    第十九章:实际操作系统的TLB表项

    本章为测量实验,主要要求为写一份tlb.c来测试在TLB missTLB hit的情况下性能开销的变化,以感受TLB的重要性

    对于题中问题的回答

    1. 由于gettimeofday()的函数只能精确到微秒,不足以测试较为精确的时间,因此使用CLOCK_PROCESS_CPUTIME_IDclock_gettime();搭配即可获得纳秒级的时间测量,具体代码实现如下

    2. 具体代码实现如下

      tlb.c
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      #define _GNU_SOURCE
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/time.h>
      #include <pthread.h>

      // 将进程锁定在某个固定CPU上
      void lockCpu(int cpuId)
      {
      cpu_set_t mask;
      CPU_ZERO(&mask);
      CPU_SET(cpuId, &mask);
      if (sched_setaffinity(0, sizeof(mask), &mask) < 0)
      {
      fprintf(stderr, "set thread affinity failed\n");
      }
      }

      int main(int argc, char *argv[])
      {
      if (argc != 3)
      {
      fprintf(stderr, "Usage: ./tlb pages trials");
      exit(EXIT_FAILURE);
      }

      // 将进程锁定在CPU0上
      lockCpu(0);

      // 申请页的数量
      int page_numebr = atoi(argv[1]);
      int trials = atoi(argv[2]);

      if (page_numebr <= 0)
      {
      fprintf(stderr, "Invaild Input");
      exit(EXIT_FAILURE);
      }

      int jump = sysconf(_SC_PAGE_SIZE) / sizeof(int);

      struct timespec start, end;
      struct timespec start_hit, end_hit;

      int sum_miss = 0;
      int sum_hit = 0;

      int cnt = 0;

      while (trials--)
      {
      for (int step = 0; step < page_numebr * jump; step += jump)
      {
      cnt++;
      int *array = calloc(page_numebr, getpagesize());

      // 计算TLB miss的时间
      clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start);
      array[step] += 0;
      clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end);
      sum_miss += end.tv_nsec - start.tv_nsec;

      // 计算TLB hit的时间
      clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start_hit);
      array[step + 1] += 0;
      clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end_hit);
      sum_hit += end_hit.tv_nsec - start_hit.tv_nsec;
      free(array);
      }
      }
      int miss_average = sum_miss / cnt;
      int hit_average = sum_hit / cnt;

      printf("Time per access(TLS miss): %d\n", miss_average);
      printf("Time per access(TLS hit): %d\n", hit_average);

      return 0;
      }

      该程序主要思路为

      1. 统计访问内存需要的总时间
      2. 首先统计TLB miss的情况,在miss之后TLB被激活
      3. 统计对应分页内存的后一位,此时TLB hit,能够成功快速定位
      4. 将总时间除以操作的总次数,得到最后的平均每次时间(单位为ns

      大致结果如下

      1
      2
      3
      > ./tlb 1000 10
      Time per access(TLS miss): 2105
      Time per access(TLS hit): 223

      可以明显发现未命中的时候访问时间要远高于TLB hit时的时间

    3. 通过Pythontlb进行调用,大致结果为4.的效果

    4. 统计结果如下

      TLB统计

      其中蓝色对应TLB miss的时间,橙色对应了TLB hit的开销时间

      Python画图代码如下

      Matplotlib
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      import os
      import sys
      import re
      import matplotlib.pyplot as plt


      def execRelocation(page_number, trival):
      r = os.popen(
      './tlb %d %d' % (page_number, trival))
      text = r.read()
      pattern = r"(\d+)"
      tlb = re.findall(pattern, text)
      r.close()
      return tlb


      page_number = sys.argv[1]
      trival = sys.argv[2]

      hit_time_access = []
      miss_time_access = []
      vpn_n = []

      for vpn in range(1, int(page_number), 128):
      print(str(vpn) + "/" + str(page_number))
      tlb = execRelocation(vpn, int(trival))
      hit_time_access.append(int(tlb[0]))
      miss_time_access.append(int(tlb[1]))
      vpn_n.append(vpn)

      plt.xlabel("Virtual Page Number")
      plt.ylabel("Time Per Access")

      plt.scatter(vpn_n, hit_time_access, label="Hit")
      plt.scatter(vpn_n, miss_time_access, label="Miss")

      plt.savefig("./paging.png")
    5. 添加-O0的参数可以防止gcc在编译的时候不进行优化

      示例如下

      1
      gcc -O0 tlb.c -o tlb
    6. 上下文切换时,解决方案为使用Docker创建一个单核的虚拟机来进行实验操作,这次实验中,使用sched_setaffinity函数来设置进程对CPU亲和力,以让程序在某一单一CPU上运行。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      #define _GNU_SOURCE
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <sys/time.h>
      #include <pthread.h>

      // 将进程锁定在某个固定CPU上
      void lockCpu(int cpuId)
      {
      cpu_set_t mask;
      CPU_ZERO(&mask);
      CPU_SET(cpuId, &mask);
      if (sched_setaffinity(0, sizeof(mask), &mask) < 0)
      {
      fprintf(stderr, "set thread affinity failed\n");
      }
      }
    7. 通过使用calloc()函数,可以在对堆内的变量进行分配内存的同时进行初始化操作,并且在每一次循环进行之前都销毁数组重新创建,可以减少对实验测试的影响


    OSTEP:TLB缓存命中和非命中的开销差距
    https://halc.top/p/20416971
    作者
    HalcyonAzure
    发布于
    2022年5月9日
    许可协议
    \ No newline at end of file diff --git a/p/20c326f2.html b/p/20c326f2.html new file mode 100644 index 00000000..3e37f35a --- /dev/null +++ b/p/20c326f2.html @@ -0,0 +1,13 @@ +Markdown基本语法记录笔记 - Halcyon Zone +

    Markdown基本语法记录笔记

    本文最后更新于:2022年4月13日 下午


    ​ 通过使用Github Pages + jekyll 的方法也算是搭建了自己的第一篇博客,由于之后post主要都以markdown的文章发布,所以第一篇blog就留给markdown的语法了。

    ​ 本篇文章参考自Markdown基本语法 - 简书 (jianshu.com),在学习之后做一个汇总,以便自己后续查看和回忆。


    一、标题

    1
    2
    3
    4
    5
    6
    ## 这是一级标题,也就是字最大的
    ## 这是二级标题
    ### 这是三级标题
    #### 这是四级标题
    ##### 这是五级标题
    ###### 这是六级标题

    其中,不同的效果如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    ---

    ## 一级标题

    ## 二级标题

    ### 三级标题

    #### 四级标题

    ##### 五级标题

    ###### 六级标题

    ---

    ## 二、字体

    字体总共有四种排布:

    - **加粗**

    `**这里是要加粗的字体**`

    - *斜体*

    ``*这里是要倾斜的字体*``

    - ***斜体加粗*** ~~(就是粗体+斜体啦)~~

    ``***这里是要斜体并且加粗的字体***``

    - ~~删除线~~

    ``~~这里是要打删除线的字体~~``

    ## 三、引用

    通过使用引用,可以较为美观的引用别人的内容。

    使用示例:

    ```markdown
    > 引用
    >> 引用的引用
    >>> 引用的引用的引用

    引用

    引用的引用

    引用的引用的引用

    四、分割线

    分割线有两种实现方式,只要三个,或者三个以上的 ‘-’ 或者 ‘*’ 就可以达到目的,以下为示例

    1
    2
    3
    4
    ---
    ----
    ***
    ****

    效果如下




    五、图片

    Markdown中的图片分为三个部分,分别是“图片介绍”,“图床地址”和“图片信息title”

    • 图片介绍是在图片如果加载失败的时候,将会显示的文字内容
    • 图床地址用于填写图片存放的位置
    • 图片信息显示的title,为鼠标移动到图片上面的时候显示的小字内容(可有可无)
    1
    ![图片介绍](图片url "图片信息显示")

    以下为一个示例

    1
    ![背景](https://lsky.halc.top/LY53bA.jpg)

    示例: 背景


    六、超链接

    超链接的语法和图片的语法很像,唯一的区别就是前面是否有那个感叹号,示例如下:

    1
    2
    [超链接的内容](超链接地址 "超链接的title")
    [百度](http://baidu.com)

    百度

    HalcyonAzure的Blog

    其中Markdown本身的语法目前并不支持超链接打开,需要使用html语言进行修改,由于目前暂时并未学习html有关内容,所以这部分内容直接引用简书中的内容,暂时不研究。

    注:Markdown本身语法不支持链接在新页面中打开,貌似简书做了处理,是可以的。别的平台可能就不行了,如果想要在新页面中打开的话可以用html语言的a标签代替。

    1
    2
    3
    4
    <a href="超链接地址" target="_blank">超链接名</a>

    示例
    <a href="https://www.jianshu.com/u/1f5ac0cf6a8b" target="_blank">简书</a>

    七、代码

    直接贴语法:

    1
    2
    3
    4
    5
    `单行代码内容`

    ​```
    多行代码内容
    ​```

    示例的话上面的很多内容都采用了代码块的方法,所以就不多做展示了

    代码折叠

    记录一个实现代码折叠的小技巧

    1
    2
    3
    4
    <details>
    <summary>bottom</summary>
    `code here`
    </details>

    效果

    bottom`code here`

    八、列表

    无序列表

    语法:无序列表使用’-/+/*'的任意一种符号都可以达到效果

    1
    2
    3
    - 内容
    + 内容
    * 内容

    显示效果:

    • 内容
    • 内容
    • 内容

    如果需要列表嵌套,只需要在回车后重复输入列表(快捷键Tab)即可,示例如下:

    1
    2
    3
    - 内容
    - 内容1
    - 内容2
    • 内容
      • 内容1
      • 内容2

    Ps: 在使用Typora编辑列表的时候,如果下一行不再需要列表,只需要通过方向键直接移动光标到下一行即可,如果使用回车来换行的话只会进行列表嵌套的操作

    有序列表

    通过从无序列表进行引申,可以得到有序列表的语法内容:

    1
    2
    1. 内容1
    2. 内容2

    示例:

    1. 内容1
    2. 内容2

    表格和流程图

    由于这两部分内容目前还没有遇到使用需求,所以这里同样引用简书内的介绍,等真正有需要和使用的时候再返回这条Blog进行更新和整理

    表格

    语法:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    >表头|表头|表头
    >---|:--:|---:
    >内容|内容|内容
    >内容|内容|内容

    >第二行分割表头和内容。
    >- 有一个就行,为了对齐,多加了几个
    >文字默认居左
    >-两边加:表示文字居中
    >-右边加:表示文字居右
    >注:原生的语法两边都要用 | 包起来。此处省略

    示例:

    1
    2
    3
    4
    5
    >姓名|技能|排行
    >--|:--:|--:
    >刘备||大哥
    >关羽||二哥
    >张飞||三弟

    效果如下:

    姓名技能排行
    刘备大哥
    关羽二哥
    张飞三弟

    流程图

    出于Blog的排版问题,只有一个示例

    st=>start: 开始
    +op=>operation: My Operation
    +cond=>condition: Yes or No?
    +e=>end
    +st->op->cond
    +cond(yes)->e
    +cond(no)->op
    +&```
    +~~~
    +
    +
    +

    第一篇Blog就是把别人的东西抄了一遍.jpg


    Markdown基本语法记录笔记
    https://halc.top/p/20c326f2
    作者
    HalcyonAzure
    发布于
    2021年3月13日
    许可协议
    \ No newline at end of file diff --git a/p/22453a61.html b/p/22453a61.html new file mode 100644 index 00000000..88c53a9d --- /dev/null +++ b/p/22453a61.html @@ -0,0 +1,2 @@ +解决Windows未使用端口被占用问题 - Halcyon Zone +

    解决Windows未使用端口被占用问题

    本文最后更新于:2022年4月28日 中午

    参考文章

    1. Hortonworks Docker Sandbox environment cannot start
    2. default-dynamic-port-range-tcpip-chang

    问题产生

    在无脑跟着网上教材开启Windows的SandBox的时候开启了Hyper-V的功能,结果尝试在6800端口运行和往常一样的Aria2Docker容器的时候出现了端口报错的情况,通过netstat排查也没发现6800端口被占用了,后面发现应该是Windows的动态端口在开了Hyper-V之后被修改了

    通过以下指令可以分别查看ipv4/ipv6tcp/udp起始端口

    1
    2
    3
    4
    netsh int ipv4 show dynamicport tcp
    netsh int ipv4 show dynamicport udp
    netsh int ipv6 show dynamicport tcp
    netsh int ipv6 show dynamicport udp

    在我的情况下,起始端口从原本默认的49152被修改成了从1024开始,因此6800端口无法使用

    问题解决

    在参考问题中找到了对应的解决方案

    如果需要继续使用windows Virtual platform form windows feature(不确定这里是不是指Hyper-V,所以不翻译了)则

    1. 关闭Windows服务上对应的功能,关闭后系统会请求重启

    2. 通过以下指令修改动态起始端口 (49152是Windows默认设置) 在使用adbWSA的调试时,发现默认端口为58526,所以还是用100000

      1
      2
      3
      4
      netsh int ipv4 set dynamicport tcp start=64536 num=1000
      netsh int ipv4 set dynamicport udp start=64536 num=1000
      netsh int ipv6 set dynamicport tcp start=64536 num=1000
      netsh int ipv6 set dynamicport udp start=64536 num=1000
    3. 重新启用对应的功能

    如果没有Hyper-V使用需求的情况下,可以尝试直接关闭Hyper-V,然后检查起始端口是否恢复,如果没有恢复的再通过上面的指令手动重新设置起始端口即可


    解决Windows未使用端口被占用问题
    https://halc.top/p/22453a61
    作者
    HalcyonAzure
    发布于
    2022年4月14日
    许可协议
    \ No newline at end of file diff --git a/p/2362a8ea.html b/p/2362a8ea.html new file mode 100644 index 00000000..f6af4160 --- /dev/null +++ b/p/2362a8ea.html @@ -0,0 +1,2 @@ +链表 - Halcyon Zone +

    链表

    以下内容仅为刷题总结,只记录目前遇到过的情况,如果后面遇到了更多可能性再总结

    链表定义

    在链式存储当中,对于节点是使用指针指向的方式进行数据的存储,其结点定义类似如下形式:

    1
    2
    3
    4
    5
    6
    struct LinkNode {
    int val;
    LinkNode *next;
    LinkNode() {}
    LinkNode(int x) : val(x), next(NULL) {}
    };

    链表的好处是在添加或者删除特定节点的时候时间复杂度比顺序存储要小。在经常需要删除和添加操作节点的时候,通过直接修改节点的指针,可以快捷的对节点进行对应操作。

    结构

    链表划分为三个部分,头+中间的数据节点+尾。

    头结点

    其中头节点有两种常见的处理方式,一种是通过一个虚拟的dummyhead来当作头结点,之后才是真实的数据节点。这样的好处是可以在对实际含有意义的头节点进行操作的时候,不需要有额外的特判就可以完成,通过增加一个头结点在部分题目中有的时候可以有很好的效果。

    尾节点

    尾节点和头结点一样,也有实际意义上存在的数据节点和最后指向的一个尾巴节点,不过根据节点的定义来看,可以知道尾节点后面通常都跟有一个无意义的nullptr。在有的时候需要对尾节点进行处理的时候,增加一个虚拟的dummytail也许也能起到很好的效果。(p.s. 比如在写双向链表的时候)

    指针

    创建链表的时候,通常会创建一个指针节点来表示整个链表的头节点。

    1
    LinkNode *ListA = new LinkNode();

    以上代码的含义即为创建一个LinkNode的节点,同时创建一个叫做List

    A的指针,指向的是这个节点的内存。

    而在对单向链表的进行操作的时候,如果我们移动了链头,很多时候意味着操作都是不可逆的。因此如果需要对链表中某个特定节点进行操作的时候,往往都会创建一个指向需要节点的指针来进行单独操作,操作完毕后将指针释放即可。

    以下举例,阐明节点和节点指针之间的关系:(感觉有点废话)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    LinkNode *cur = new LinkNode();  // 创建一个cur指针
    LinkNode *A = new LinkNode(114); // 创建节点A
    LinkNode *B = new LinkNode(115); // 创建节点B
    cout<<"cur addr:"<<cur<<" "<<"A addr:"<<A<<" "<<"B addr:"<<B<<endl;
    // 此时cur、A和B表示的内存地址
    cur = A;
    LinkNode *tmp = A;
    cout<<tmp<<endl;
    // 让cur指向A之后cur的内存地址
    A = B; // 让A指向B
    // delete tmp; // 是否删除原本A代表的节点对应内存
    cout<<"cur addr:"<<cur<<" "<<"A addr:"<<A<<" "<<"B addr:"<<B<<endl;
    cout<<cur->val<<endl;
    return 0;

    在注释了delete tmp的时候,最后输出的cur->val会依旧是114这个A曾经的值,而如果执行了对应的delete操作,由于原本A对应内存上的结构体被释放了,所以这个时候cur就没有指向一个有效的节点。

    算法题

    链表的终止条件

    常用的终止条件有三种:

    1. cur != nullptr 指针会停留在nullptr的尾节点上
    2. cur->next != nullptr 指针会停留在最后一个有效节点上
    3. cur != nullptr && cur->next != nullptr多用于快慢指针,用于判断快指针是否到队尾。之所以两种情况都判断为循环跳出的条件原因:由于nullptr本身相当于最后一个有效节点的附加尾巴。类比于线段上有区间(a, b)和区间[a,b],快指针的目的是为了判断长度,而这两种区间长度都是b - a,只是对于第一种情况(a, b)如果不将b节点本身纳入有效节点则会出现区间长度变为a -> (b - 1)的情况。

    对于第三种终止条件,还可以类比为:

    • cur == nullptr终止的情况就是区间(a, b),此时cur在走到b的时候快指针已经越界,刚好碰壁
    • cur->next == nullptr终止的情况就是区间[a, b],此时cur在走到b时,刚好到达边界,也同样碰壁。

    链表
    https://halc.top/p/2362a8ea
    作者
    HalcyonAzure
    发布于
    2021年12月2日
    许可协议
    \ No newline at end of file diff --git a/p/23c3db21.html b/p/23c3db21.html new file mode 100644 index 00000000..79e8fed8 --- /dev/null +++ b/p/23c3db21.html @@ -0,0 +1,2 @@ +DNS问题排查思路 - Halcyon Zone +

    DNS问题排查思路

    参考文章

    这篇博客主要是在推特中无意翻到了这篇博客,尝试以翻译的形式做一套笔记,分享的同时加强自己的记忆。

    系统背后做的事情

    当我们发起一个DNS请求的时候,基本上发生的就是下面两件事

    1. 电脑向一个被标记为resolver的服务器发送一个DNS请求。
    2. resolver服务器首先会检查缓存,并且在必要的时候再向authoritative nameservers发送查询请求。

    但是在这两件事情背后,我们有几个问题需要思考

    • 解析服务器(即上面提到的resolver)的缓存中存放了一些什么东西?

    • 在计算机中,在发起一个DNS请求的时候调用的是哪一部分的库?

      举个例子,一个请求有可能是由libc中提供的getaddrinfo发起的,这部分代码或是来自glibc,或是musl,又或者是apple提供的库文件;这个请求也有可能是在浏览器中发起,由浏览器进行处理;当然也有可能是某些特定的自定义实现。

      在不同的阶段和方法进行DNS请求做的事情都会略有不同,他们或多或少会有不一样的配置、缓存以及功能。举个例子来说,直到今年(2023)muslDNS才开始支持TCP询问

    • 解析器和权威域名服务器(即上文中提到的authoritative nameservers)之间是如何进行通话的?

      在这里我们如果能知道在DNS请求期间询问了哪些下游的权威域名服务器,以及他们提供了哪些信息,则很多东西都会非常好理解。

    了解系统背后发生的事情

    获取更详细的DNS信息

    为了让我们可以在获取DNS请求的时候,获取到更多的调试信息,我们可以尝试用dig工具来获取一些信息。一个例子如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    $ dig @223.5.5.5 whatdontexist.lol                                                ] 8:26 PM

    ; <<>> DiG 9.18.12-0ubuntu0.22.04.2-Ubuntu <<>> @223.5.5.5 whatdontexist.lol
    ; (1 server found)
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 19819
    ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

    ;; QUESTION SECTION:
    ;whatdontexist.lol. IN A

    ;; AUTHORITY SECTION:
    lol. 3593 IN SOA ns0.centralnic.net. hostmaster.centralnic.net. 1690719195 900 1800 6048000 3600

    ;; Query time: 0 msec
    ;; SERVER: 223.5.5.5#53(223.5.5.5) (UDP)
    ;; WHEN: Sun Jul 30 20:26:45 CST 2023
    ;; MSG SIZE rcvd: 100

    在上面这个示例中,我通过向一个不存在的域名:whatdontexist.lol发起了一个DNS请求。我们可以在这里看到许多有意思的信息,比如我们是对223.5.5.5这个DNS服务器,通过UDP发起的请求等等。

    奇妙的调试信息

    通过使用dig,我们可以知道很多额外的信息。举个例子,我们可以使用dig +norecurse指令来弄清楚DNS解析服务器目前有没有针对某个特定记录的缓存。对于某个特定的记录,如果不存在缓存,则会返回一个SERVFAIL的状态

    举个例子,我们首先可以向223.5.5.5这个阿里的DNS请求www.baidu.comDNS条目(大概率来说应该是缓存了百度的域名解析的)

    阿里解析百度域名

    我们可以看到上图中获取到的statusNOERROR,也就意味着百度在阿里云的DNS服务器中可以正常返回需要的结果。

    现在我们再尝试请求一个不是很常见的域名homestarrunner.com,我们可以发现status变成了SERVFAIL

    请求一个不常见的域名

    这里的SERVFAIL并不代表不存在对于homestarrunner.com的域名解析,只是在阿里云的服务器中并没有缓存这个域名而已。

    不过对于上面这一长串由dig提供的调试信息,如果我们不是经常和它打交道的话看着还是会有点迷惑。比如:

    1. ->>HEADER<<-flags:OPT PSEUDOSECTION:QUESTION SECTION:MSG SIZE rcvd: 59这些都是啥玩意?
    2. 为什么有的地方看起来是新内容但没换行(比如OPT PSEUDOSECTION:QUESTION SECTION:)?
    3. 为什么有的返回报文中MSG SIZE rcvd: 59这里是59,而有的报文又是90?不同的报文之间是有啥不同的字段吗?

    总之,从上面的一些问题中,我们可以发现dig的一些输出内容有点像是某些人临时写的一个用于获取这些信息的脚本,而并非有意为了可读性进行一些刻意的设计,为此我们有的时候需要查阅文档来搞懂发生了什么。

    一些小工具

    1. 这里有一篇文章是原博客作者介绍了如何使用dig的:How to use dig (jvns.ca)

    2. 还有三个工具可以用于更友好的进行一些简单的调试:

      不过对于这些工具有的时候会缺少一些高级功能,比如在原博客发布的时候dogdoggo都还不支持+norecurse这样的功能。所以有的时候学会dig还是有用的

    3. 通过添加一个+yaml的参数,可以让dig的输出信息更加格式化。不过这样的缺点是返回的信息有点太多了。

    小心踩坑

    DNS请求中,总是会出现一些奇奇怪怪但是容易不小心就掉进去的陷进。

    一些更常见的问题可以翻阅这篇博客:Some ways DNS can break (jvns.ca)

    • 被动缓存:由于DNS会记录不存在的域名,因此假设你在类似cloudflare一类的平台添加自己的DNS解析之前,如果先在自己电脑上访问并被系统缓存了"该域名不存在解析条目"这个结果,即使你后面为这个域名添加了有效的记录,但也要等到之前那条缓存失效了,新的有效结果才能被识别到。

    • 在不同平台上对于getaddrinfo的实现并不相同,比如在今年之前,你是没法通过tcp来在musl平台上发起一个dns请求的。

    • 有的解析服务器并不尊重解析本应该有的TTL,比如原本你设置了一个域名abc.comTTL为一分钟或者两分钟。但是路由器认为大部分网络服务都是稳定的(对于非开发人员来说其实倒也是),有可能就会忽略这一点,而硬给你设置一个比如一两个小时的TTL。结果就会导致本来两分钟就应该生效的修改过了一两个小时都没好

    • Nginx中,如果你按下面的方式配置了一个反向代理

      1
      2
      3
      location / {
      proxy_pass https://some.domain.com;
      }

      那么Nginx只会在第一次启动的时候尝试解析这个域名,之后则再也不会进行解析。如果你在这个过程中修改了some.domain.com域名指向的IP,就很有可能会出现一些不应该出现的问题。

      这个问题实际上也有一些解决方案,不过不是这篇博客的重点

    • ndonts会使得k8s中的DNS请求变慢:Kubernetes pods /etc/resolv.conf ndots:5 option and why it may negatively affect your application performances (pracucci.com)

      由于我自己对k8s目前接触不多,因此这里只是贴了一个链接。等以后有接触以后再回过头来研究研究

    DNS上踩坑往往可能是一件不起眼,但是遇到了就挺难排查的问题。也许最好的解决方案还是尽可能的去见识下别人遇到的问题。再放一次作者记录的常见问题:Some ways DNS can break (jvns.ca)


    DNS问题排查思路
    https://halc.top/p/23c3db21
    作者
    HalcyonAzure
    发布于
    2023年7月30日
    许可协议
    \ No newline at end of file diff --git a/p/24f916f9.html b/p/24f916f9.html new file mode 100644 index 00000000..50f88e70 --- /dev/null +++ b/p/24f916f9.html @@ -0,0 +1,2 @@ +Linux多个不同版本内核卸载管理 - Halcyon Zone +

    Linux多个不同版本内核卸载管理

    Ubuntu删除多余的内核

    1. 查看当前的内核

      1
      2
      root@azhal:~## uname -a
      Linux azhal 5.11.16-xanmod1-cacule #0~git20210421.d9591de SMP PREEMPT Wed Apr 21 17:44:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
    2. 查看当前系统中所有的内核

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      root@azhal:~## dpkg --get-selections |grep linux
      binutils-x86-64-linux-gnu install
      console-setup-linux install
      libselinux1:amd64 install
      libselinux1-dev:amd64 install
      linux-base install
      linux-firmware install
      linux-headers-5.11.16-xanmod1-cacule install
      linux-image-5.11.16-xanmod1-cacule install
      linux-image-5.4.0-72-generic install
      linux-image-generic install
      linux-libc-dev:amd64 install
      linux-modules-5.4.0-72-generic install
      linux-modules-extra-5.4.0-72-generic install
      linux-xanmod-cacule install
      util-linux install
    3. 移除多余的内核

      1
      sudo apt-get remove <name of kernel>
    4. 再次检查内核是否为deinstall状态

      1
      dpkg --get-selections |grep linux
    5. 更新系统引导

      1
      sudo update-grub

    参考文章

    1. Ubuntu删除多余的内核 - 阳光与叶子 - 博客园 (cnblogs.com)

    Linux多个不同版本内核卸载管理
    https://halc.top/p/24f916f9
    作者
    HalcyonAzure
    发布于
    2021年4月24日
    许可协议
    \ No newline at end of file diff --git a/p/264bf58c.html b/p/264bf58c.html new file mode 100644 index 00000000..cbdf49af --- /dev/null +++ b/p/264bf58c.html @@ -0,0 +1,2 @@ +OSTEP:系统API的调用 - Halcyon Zone +

    OSTEP:系统API的调用

    第十四章:插叙:内存操作API

    1. 执行null文件后并没有提示或报错,代码如下

      1
      2
      3
      4
      5
      6
      int main()
      {
      int *pt = NULL;
      free(pt); // 释放空指针
      return 0;
      }
    2. 在执行完gdb null后的run后,提示了以下信息

      log
      1
      2
      3
      (gdb) run
      Starting program: /home/halc/code/cpp/null
      [Inferior 1 (process 9285) exited normally]
    3. 在使用valgrind检查后,可以得到以下输出信息

      log
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      ==9579== Memcheck, a memory error detector
      ==9579== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==9579== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
      ==9579== Command: ./null
      ==9579==
      ==9579==
      ==9579== HEAP SUMMARY:
      ==9579== in use at exit: 0 bytes in 0 blocks
      ==9579== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
      ==9579==
      ==9579== All heap blocks were freed -- no leaks are possible
      ==9579==
      ==9579== For lists of detected and suppressed errors, rerun with: -s
      ==9579== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

      根据C/C++ Preferencefree()的介绍如下

      If is a null pointer, the function does nothing. ptr
      当指针是空指针的时候,啥都不会发生,因此也理所当然的没有发生任何的内存泄露

    4. 首先使用malloc()函数对内存空间进行分配,但是不使用free()对内存进行释放

      1
      2
      3
      4
      5
      6
      int main()
      {
      int *pt = (int *)malloc(sizeof(int));
      // free(pt);
      return 0;
      }

      使用gdb对可执行文件进行调试如下

      gdb log
      1
      2
      Starting program: /home/halc/code/cpp/null 
      [Inferior 1 (process 9978) exited normally]

      使用valgrind对可执行文件调试入如下

      valgrind log
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      $ valgrind --leak-check=yes ./null
      ==9930== Memcheck, a memory error detector
      ==9930== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==9930== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
      ==9930== Command: ./null
      ==9930==
      ==9930==
      ==9930== HEAP SUMMARY:
      ==9930== in use at exit: 4 bytes in 1 blocks
      ==9930== total heap usage: 1 allocs, 0 frees, 4 bytes allocated
      ==9930==
      ==9930== 4 bytes in 1 blocks are definitely lost in loss record 1 of 1
      ==9930== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==9930== by 0x10915E: main (null.cpp:6)
      ==9930==
      ==9930== LEAK SUMMARY:
      ==9930== definitely lost: 4 bytes in 1 blocks
      ==9930== indirectly lost: 0 bytes in 0 blocks
      ==9930== possibly lost: 0 bytes in 0 blocks
      ==9930== still reachable: 0 bytes in 0 blocks
      ==9930== suppressed: 0 bytes in 0 blocks
      ==9930==
      ==9930== For lists of detected and suppressed errors, rerun with: -s
      ==9930== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

      这个时候通过valgrind工具即可检查出,在堆空间中有definitely lost(确定的内存泄露)4 bytes in 1 blocks,正好对应了代码中sizeof(int)的大小和数量

    5. 首先使用malloc()函数分配100个int的空间给指针data,然后在data[100]的位置赋值

      1
      2
      3
      4
      5
      6
      7
      int main()
      {
      int *data = (int *)malloc(sizeof(int) * 100);
      data[100] = 0;
      free(data);
      return 0;
      }

      程序直接运行的时候不会报错,没有任何提示。但是使用valgrind进行检查的时候有如下日志

      log
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      $ valgrind --leak-check=yes ./null
      ==10500== Memcheck, a memory error detector
      ==10500== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==10500== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
      ==10500== Command: ./null
      ==10500==
      ==10500== Invalid write of size 4
      ==10500== at 0x10918D: main (null.cpp:7)
      ==10500== Address 0x4a4c1d0 is 0 bytes after a block of size 400 alloc'd
      ==10500== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==10500== by 0x10917E: main (null.cpp:6)
      ==10500==
      ==10500==
      ==10500== HEAP SUMMARY:
      ==10500== in use at exit: 0 bytes in 0 blocks
      ==10500== total heap usage: 1 allocs, 1 frees, 400 bytes allocated
      ==10500==
      ==10500== All heap blocks were freed -- no leaks are possible
      ==10500==
      ==10500== For lists of detected and suppressed errors, rerun with: -s
      ==10500== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

      可以看到valgrind成功检测出一个无效的写入,在内存分配之后,只有data[0] - data[99]是可以正常写入的,data[100]并不存在,因此出现了无效写入的错误

    6. 用和第五题相似的方法创建一个数组,然后通过free()函数对内存释放,然后对已经释放的空间进行读取

      1
      2
      3
      4
      5
      6
      7
      int main()
      {
      int *data = (int *)malloc(sizeof(int) * 100);
      free(data);
      printf("%d\n", data[0]);
      return 0;
      }

      在本地电脑上直接运行的时候输出了0,使用valgrind工具进行检查的时候输出了如下日志

      log
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      ==10682== Memcheck, a memory error detector
      ==10682== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
      ==10682== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info
      ==10682== Command: ./null
      ==10682==
      ==10682== Invalid read of size 4
      ==10682== at 0x1091B3: main (null.cpp:8)
      ==10682== Address 0x4a4c040 is 0 bytes inside a block of size 400 free'd
      ==10682== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==10682== by 0x1091AE: main (null.cpp:7)
      ==10682== Block was alloc'd at
      ==10682== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==10682== by 0x10919E: main (null.cpp:6)
      ==10682==
      0
      ==10682==
      ==10682== HEAP SUMMARY:
      ==10682== in use at exit: 0 bytes in 0 blocks
      ==10682== total heap usage: 2 allocs, 2 frees, 1,424 bytes allocated
      ==10682==
      ==10682== All heap blocks were freed -- no leaks are possible
      ==10682==
      ==10682== For lists of detected and suppressed errors, rerun with: -s
      ==10682== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)

      可以看见检测出了无效的读写Invalid read of size 4

    7. data数组中的data[50]进行内存释放,然后输出data[0]

      1
      2
      3
      4
      5
      6
      7
      8
      int main()
      {
      int *data = (int *)malloc(sizeof(int) * 100);
      // free(data);
      free(data + 50);
      printf("%d\n", data[0]);
      return 0;
      }

      在直接运行的时候会直接报错

      1
      2
      3
      $ ./null
      free(): invalid pointer
      [1] 10986 abort ./null

      不需要用valgrind也可以检查出此处有free()的问题

      根据 c-free-invalid-pointer 的回答,可以知道

      When you have in fact allocated a block of memory, you can only free it from the pointer returned by. That is to say, only from the beginning of the block.

      当我们分配了一块内存的时候,我们只能从返回的指针开始对这块内存进行释放,也就是说我们只能从内存块的开头对某一处内存进行释放

    8. 通过realloc()函数实现一个类似vector的操作

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      int main()
      {
      int *pt = (int *)malloc(sizeof(int)); // 给指针pt分配1个int大小空间的内存
      *pt = 10; // 对对应内存位置进行赋值
      pt = (int *)realloc(pt, sizeof(int) * 2); // 将原本的变量扩容为2个int大小空间
      pt[1] = 20; // 对新扩大的内存位置进行赋值
      printf("%d, %d\n", pt[0], pt[1]); // 输出pt对应的两个内存位置的结果
      free(pt); // 释放堆内存中的pt
      return 0;
      }

      程序编译可以成功通过,使用valgrind也正常通过,没有无效读写错误

      通过这种操作实现的vector可以在访问的时候直接通过index进行访问,时间复杂度为O(1),并且他并不需要和链表一样创建一个指向next的指针,不过在向后添加内容的时候依旧需要O(n)的时间复杂度来向后添加元素。

      顺便记录一个Tips, 在C中是允许void *类型进行任意转换的,因此即使没有(int *)也不会出现报错,而在C++中对类型转换的限制更多,并不允许直接进行这样的操作,必须要进行类型转换(通过static_cast转换运算符)才能分配空间给对应的指针。

    9. 偷懒,懒得写


    OSTEP:系统API的调用
    https://halc.top/p/264bf58c
    作者
    HalcyonAzure
    发布于
    2022年4月10日
    许可协议
    \ No newline at end of file diff --git a/p/28ea7a49.html b/p/28ea7a49.html new file mode 100644 index 00000000..62730f0e --- /dev/null +++ b/p/28ea7a49.html @@ -0,0 +1,2 @@ +OSTEP:进程的调度策略 - Halcyon Zone +

    OSTEP:进程的调度策略

    本文最后更新于:2022年4月23日 下午

    第七章:进程调度/介绍

    参数介绍:

    Response:响应时间,即任务第一次运行的时间

    Turnaround: 完成时刻(周转时间),即任务完成那一刻对应的时间

    Wait: 等待中时间,即任务处于Ready状态,但当前CPU在执行其他任务的等待时间

    1. 执行结果如下

      FIFO:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      ARG policy FIFO
      ARG jlist 200,200,200

      Here is the job list, with the run time of each job:
      Job 0 ( length = 200.0 )
      Job 1 ( length = 200.0 )
      Job 2 ( length = 200.0 )

      **Solutions**

      Execution trace:
      [ time 0 ] Run job 0 for 200.00 secs ( DONE at 200.00 )
      [ time 200 ] Run job 1 for 200.00 secs ( DONE at 400.00 )
      [ time 400 ] Run job 2 for 200.00 secs ( DONE at 600.00 )

      Final statistics:
      Job 0 -- Response: 0.00 Turnaround 200.00 Wait 0.00
      Job 1 -- Response: 200.00 Turnaround 400.00 Wait 200.00
      Job 2 -- Response: 400.00 Turnaround 600.00 Wait 400.00

      Average -- Response: 200.00 Turnaround 400.00 Wait 200.00

      同时,对于SJF(Short Job First),由于每个任务的执行时间相同,所以策略上的处理结果和FIFO相同,不额外列出

    2. 在按照300,200100的顺序一次执行任务的时候,对于FIFO策略依次执行,而依据SJF策略,则会先执行时间短的100,依次到最常的300。具体结果如下

      FIFO

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      ARG policy FIFO
      ARG jlist 300,200,100

      Here is the job list, with the run time of each job:
      Job 0 ( length = 300.0 )
      Job 1 ( length = 200.0 )
      Job 2 ( length = 100.0 )

      **Solutions**

      Execution trace:
      [ time 0 ] Run job 0 for 300.00 secs ( DONE at 300.00 )
      [ time 300 ] Run job 1 for 200.00 secs ( DONE at 500.00 )
      [ time 500 ] Run job 2 for 100.00 secs ( DONE at 600.00 )

      Final statistics:
      Job 0 -- Response: 0.00 Turnaround 300.00 Wait 0.00
      Job 1 -- Response: 300.00 Turnaround 500.00 Wait 300.00
      Job 2 -- Response: 500.00 Turnaround 600.00 Wait 500.00

      Average -- Response: 266.67 Turnaround 466.67 Wait 266.67

      SJF

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      ARG policy SJF
      ARG jlist 300,200,100

      Here is the job list, with the run time of each job:
      Job 0 ( length = 300.0 )
      Job 1 ( length = 200.0 )
      Job 2 ( length = 100.0 )

      **Solutions**

      Execution trace:
      [ time 0 ] Run job 2 for 100.00 secs ( DONE at 100.00 )
      [ time 100 ] Run job 1 for 200.00 secs ( DONE at 300.00 )
      [ time 300 ] Run job 0 for 300.00 secs ( DONE at 600.00 )

      Final statistics:
      Job 2 -- Response: 0.00 Turnaround 100.00 Wait 0.00
      Job 1 -- Response: 100.00 Turnaround 300.00 Wait 100.00
      Job 0 -- Response: 300.00 Turnaround 600.00 Wait 300.00

      Average -- Response: 133.33 Turnaround 333.33 Wait 133.33

      SJF的好处在于可以先执行时间短的程序,后执行时间长的程序,同时优化了程序的响应、完成和等待时间。缺点在于因为必须先完整的运行某个任务,后执行下一个任务。如果此时需要高频率执行某任务则无能为力(比如高频率的io输出)

    3. 采用RR策略,时间片设置为1,依次执行102030有以下结果

      RR策略
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      ARG policy RR
      ARG jlist 10,20,30

      Here is the job list, with the run time of each job:
      Job 0 ( length = 10.0 )
      Job 1 ( length = 20.0 )
      Job 2 ( length = 30.0 )


      ** Solutions **

      Execution trace:
      [ time 0 ] Run job 0 for 1.00 secs
      [ time 1 ] Run job 1 for 1.00 secs
      [ time 2 ] Run job 2 for 1.00 secs
      [ time 3 ] Run job 0 for 1.00 secs
      [ time 4 ] Run job 1 for 1.00 secs
      [ time 5 ] Run job 2 for 1.00 secs
      [ time 6 ] Run job 0 for 1.00 secs
      [ time 7 ] Run job 1 for 1.00 secs
      [ time 8 ] Run job 2 for 1.00 secs
      [ time 9 ] Run job 0 for 1.00 secs
      [ time 10 ] Run job 1 for 1.00 secs
      [ time 11 ] Run job 2 for 1.00 secs
      [ time 12 ] Run job 0 for 1.00 secs
      [ time 13 ] Run job 1 for 1.00 secs
      [ time 14 ] Run job 2 for 1.00 secs
      [ time 15 ] Run job 0 for 1.00 secs
      [ time 16 ] Run job 1 for 1.00 secs
      [ time 17 ] Run job 2 for 1.00 secs
      [ time 18 ] Run job 0 for 1.00 secs
      [ time 19 ] Run job 1 for 1.00 secs
      [ time 20 ] Run job 2 for 1.00 secs
      [ time 21 ] Run job 0 for 1.00 secs
      [ time 22 ] Run job 1 for 1.00 secs
      [ time 23 ] Run job 2 for 1.00 secs
      [ time 24 ] Run job 0 for 1.00 secs
      [ time 25 ] Run job 1 for 1.00 secs
      [ time 26 ] Run job 2 for 1.00 secs
      [ time 27 ] Run job 0 for 1.00 secs ( DONE at 28.00 )
      [ time 28 ] Run job 1 for 1.00 secs
      [ time 29 ] Run job 2 for 1.00 secs
      [ time 30 ] Run job 1 for 1.00 secs
      [ time 31 ] Run job 2 for 1.00 secs
      [ time 32 ] Run job 1 for 1.00 secs
      [ time 33 ] Run job 2 for 1.00 secs
      [ time 34 ] Run job 1 for 1.00 secs
      [ time 35 ] Run job 2 for 1.00 secs
      [ time 36 ] Run job 1 for 1.00 secs
      [ time 37 ] Run job 2 for 1.00 secs
      [ time 38 ] Run job 1 for 1.00 secs
      [ time 39 ] Run job 2 for 1.00 secs
      [ time 40 ] Run job 1 for 1.00 secs
      [ time 41 ] Run job 2 for 1.00 secs
      [ time 42 ] Run job 1 for 1.00 secs
      [ time 43 ] Run job 2 for 1.00 secs
      [ time 44 ] Run job 1 for 1.00 secs
      [ time 45 ] Run job 2 for 1.00 secs
      [ time 46 ] Run job 1 for 1.00 secs
      [ time 47 ] Run job 2 for 1.00 secs
      [ time 48 ] Run job 1 for 1.00 secs ( DONE at 49.00 )
      [ time 49 ] Run job 2 for 1.00 secs
      [ time 50 ] Run job 2 for 1.00 secs
      [ time 51 ] Run job 2 for 1.00 secs
      [ time 52 ] Run job 2 for 1.00 secs
      [ time 53 ] Run job 2 for 1.00 secs
      [ time 54 ] Run job 2 for 1.00 secs
      [ time 55 ] Run job 2 for 1.00 secs
      [ time 56 ] Run job 2 for 1.00 secs
      [ time 57 ] Run job 2 for 1.00 secs
      [ time 58 ] Run job 2 for 1.00 secs
      [ time 59 ] Run job 2 for 1.00 secs ( DONE at 60.00 )

      Final statistics:
      Job 0 -- Response: 0.00 Turnaround 28.00 Wait 18.00
      Job 1 -- Response: 1.00 Turnaround 49.00 Wait 29.00
      Job 2 -- Response: 2.00 Turnaround 60.00 Wait 30.00

      Average -- Response: 1.00 Turnaround 45.67 Wait 25.67

      采用RR策略的时候通过轮转运行三个程序,达到类似"同时"运行程序的效果,缩短了任务的反应时间。缺点是由于轮询过程会同时运行其他任务,因此总体的完成时刻和等待时间都会延长。

    4. 由于SJF是“短任务优先”的调度策略,因此当到达的任务顺序为先短时间的任务,后长时间任务的时候,SJF和FIFO的周转时间是相同的

    5. 当RR策略的量子时间大于等于SJF的单个任务最长工作时间时,SJF和RR可以提供相同的响应时间

    6. 当工作长度逐渐增加的时候,SJF的响应时间会逐渐增加,因为SJF必须要完成一个完整的任务才会运行下一个任务,因此后面的任务响应时间必须等待前一个任务的完成,模拟省略。

    7. 假定所有任务的长度都大于量子长度,且完成任务的时间都为量子长度的倍数,则可推得以下公式

    i=1N1iQN=Qi=1N1iN=QN(N1)2N=Q(N1)2\frac{\sum_{i=1}^{N-1} iQ}{N}=\frac{Q \sum_{i=1}^{N-1} i}{N}=\frac{Q * \frac{N(N-1)}{2}}{N}=\frac{Q(N-1)}{2}


    OSTEP:进程的调度策略
    https://halc.top/p/28ea7a49
    作者
    HalcyonAzure
    发布于
    2022年3月28日
    许可协议
    \ No newline at end of file diff --git a/p/2ca0860a.html b/p/2ca0860a.html new file mode 100644 index 00000000..9dc4c3c4 --- /dev/null +++ b/p/2ca0860a.html @@ -0,0 +1,2 @@ +CS144-Lab0 计算机网络:流的输入和读出 - Halcyon Zone +

    CS144-Lab0 计算机网络:流的输入和读出

    本文最后更新于:2022年12月1日 凌晨

    热身

    lab0前后分为两个较为简单的小任务,第一个任务是写一个类似telnet中通信的webget小应用,第二个任务是实现一个简单的ByteStream的类,只需要在单线程的情况下能正常运行即可

    任务一

    第一个任务的参考主要是从项目文件本身的doctests开始着手,其中在提示中已经说了我们将会使用到TCPSocketAddress,在对应的doctests/socket_example_2.ccdoctests/address_example_1.cc中,我们可以得到对于他们的使用例子,只需要创建一个以目标Address初始化并连接的TCPSocket,然后以这个socket向目标服务器发送类似telnet的请求即可获得我们需要的内容

    1
    2
    3
    4
    5
    TCPSocket socket;
    socket.connect(Address(host, "http"));
    socket.write("GET " + path + " HTTP/1.1\r\n");
    socket.write("Host: " + host + "\r\n");
    socket.write("Connection: close\r\n\r\n");

    由于最后在输入完Connection: close之后,我们本来也要输入一个回车将请求发送,因此在这里需要两个换行符

    在处理socket.read()的时候,起初没有仔细考虑pdf中提到的a single call to read is not enough的具体含义,以为是首先会接受所有的文本信息,然后对于结果需要将最后的EOF也打印出来,所以第一次写的时候只是简单的调用了两次read()

    1
    cout << socket.read() << socket.read();

    然而在make check_webget的时候并没有通过,为了找到问题所在,首先找到check_webget的脚本,发现测试的内容为对cs144.keithw.org下的接口/nph-hasher/xyzzy发送请求,并获取最后一行的内容,而这行内容应该是一串正确的HASH。但是在这个时候尝试以上文的方式运行webget的时候则发现输出的只有以下两行

    1
    2
    HTTP/1.1 200 OK
    Content-type: text/plain

    但是通过telnet的情况下,正常的输入应该是以下的内容

    1
    2
    3
    4
    HTTP/1.1 200 OK
    Content-type: text/plain

    7SmXqWkrLKzVBCEalbSPqBcvs11Pw263K7x4Wv3JckI

    这个时候就懂了多次调用read()的含义直到遇到eof的含义应该是一直读取到所有缓冲区内的内容都被读取完毕,将代码修改如下就可以通过测试了

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void get_URL(const string &host, const string &path) {
    TCPSocket socket;
    socket.connect(Address(host, "http"));
    socket.write("GET " + path + " HTTP/1.1\r\n");
    socket.write("Host: " + host + "\r\n");
    socket.write("Connection: close\r\n\r\n");
    while (!socket.eof()) {
    cout << socket.read();
    }
    socket.close();
    }

    任务二

    第二个任务主要是要我们自己根据头文件的内容来实现一个简单的ByteStream,并且只需要考虑单线程的情况,不用考虑并发等情况。

    最后完成的答案先直接贴上来,这块难度也不会很大,在写的时候先大致按要求写出一个逻辑,即使不是很清楚具体实现对不对也问题不大,只需要通过调试逐步修改即可

    首先添加的成员变量如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    class ByteStream {
    private:
    // buffer capacity
    const size_t buffer_max_size;

    // buffer string
    std::string buffer;

    // input ending flag
    bool is_input_end = false;

    // counter
    size_t write_count, read_count;

    // Hint: This doesn't need to be a sophisticated data structure at
    // all, but if any of your tests are taking longer than a second,
    // that's a sign that you probably want to keep exploring
    // different approaches.

    bool _error{}; //!< Flag indicating that the stream suffered an error.

    public:
    ...

    最后接口的实现如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    ByteStream::ByteStream(const size_t capacity) : buffer_max_size(capacity), buffer(), write_count(0), read_count(0) {}

    size_t ByteStream::write(const string &data) {
    // 不需要在这里判断input_ended,因为写入过程都是单线程,如果要ended肯定是在write之后进行的
    size_t cnt = min(remaining_capacity(), data.length());
    buffer += data.substr(0, cnt);
    write_count += cnt;
    return cnt;
    }

    //! \param[in] len bytes will be copied from the output side of the buffer
    string ByteStream::peek_output(const size_t len) const { return buffer.substr(0, len); }

    //! \param[in] len bytes will be removed from the output side of the buffer
    void ByteStream::pop_output(const size_t len) {
    buffer.erase(0, len);
    read_count += len;
    }

    //! Read (i.e., copy and then pop) the next "len" bytes of the stream
    //! \param[in] len bytes will be popped and returned
    //! \returns a string
    std::string ByteStream::read(const size_t len) {
    string output = buffer.substr(0, len);
    pop_output(len);
    // 在pop_output的时候会计算读取,这里不需要再+=len
    return output;
    }

    void ByteStream::end_input() { is_input_end = true; }

    bool ByteStream::input_ended() const { return is_input_end; }

    size_t ByteStream::buffer_size() const { return buffer.length(); }

    bool ByteStream::buffer_empty() const { return buffer.empty(); }

    bool ByteStream::eof() const { return input_ended() && buffer.empty(); }

    size_t ByteStream::bytes_written() const { return write_count; }

    size_t ByteStream::bytes_read() const { return read_count; }

    size_t ByteStream::remaining_capacity() const { return buffer_max_size - buffer.length(); }

    调试

    接口的逻辑实现都不难,不过写这个lab的时候的第一次在vscode的环境下使用cmake来进行调试,在这里简单记录一下调试的步骤和需求。

    相关code插件: CMake, CMake Tools, C/C++(Cpptools)

    在这里以write()函数中缺少了write_count += cnt这一行为例,使用make check_lab0可以发现在最后有报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    56% tests passed, 4 tests failed out of 9

    Total Test time (real) = 1.49 sec

    The following tests FAILED:
    27 - t_byte_stream_one_write (Failed)
    28 - t_byte_stream_two_writes (Failed)
    29 - t_byte_stream_capacity (Failed)
    30 - t_byte_stream_many_writes (Failed)
    Errors while running CTest
    make[3]: *** [CMakeFiles/check_lab0.dir/build.make:71: CMakeFiles/check_lab0] Error 8
    make[2]: *** [CMakeFiles/Makefile2:228: CMakeFiles/check_lab0.dir/all] Error 2
    make[1]: *** [CMakeFiles/Makefile2:235: CMakeFiles/check_lab0.dir/rule] Error 2
    make: *** [Makefile:160: check_lab0] Error 2

    此时可以将注意力先集中在最上面的t_byte_stream_one_write上,cmake中将byte_stream_one_write作为target编译并运行,可以得到以下报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Test Failure on expectation:
    Expectation: bytes_written: 3

    Failure message:
    The ByteStream should have had bytes_written equal to 3 but instead it was 0

    List of steps that executed successfully:
    Initialized with (capacity=15)
    Action: write "cat" to the stream
    Expectation: input_ended: 0
    Expectation: buffer_empty: 0
    Expectation: eof: 0
    Expectation: bytes_read: 0

    Exception: The test "write-end-pop" failed

    从这里可以知道是测试"write-end-pop"中的第五个执行中,bytes_written并没有返回预期希望的数字3。因此只需要在tests/byte_stream_one_write.cc内"write-end-pop"的test.execute(BytesWritten{3});的位置打上断点,然后直接使用vscode下方栏中cmakedebug图标(需要安装C/C++插件才可以使用快速调试,具体参考这里)就可以逐步找到自己逻辑中出错的地方并修改即可。

    热身的两个lab提供的成就感很足,希望自己能尽快完成下一个lab


    CS144-Lab0 计算机网络:流的输入和读出
    https://halc.top/p/2ca0860a
    作者
    HalcyonAzure
    发布于
    2022年10月29日
    许可协议
    \ No newline at end of file diff --git a/p/2dda2597.html b/p/2dda2597.html new file mode 100644 index 00000000..93cc8aae --- /dev/null +++ b/p/2dda2597.html @@ -0,0 +1,2 @@ +拓展Ubuntu服务器内LVM分区容量引导 - Halcyon Zone +

    拓展Ubuntu服务器内LVM分区容量引导

    参考文章:解决 Linux /dev/mapper/ubuntu–vg-ubuntu–lv 磁盘空间不足的问题

    1. 通过命令查看LVM卷组的信息

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      root@azhal:/mnt/Ar2D# vgdisplay
      --- Volume group ---
      VG Name ubuntu-vg
      System ID
      Format lvm2
      Metadata Areas 1
      Metadata Sequence No 2
      VG Access read/write
      VG Status resizable
      MAX LV 0
      Cur LV 1
      Open LV 1
      Max PV 0
      Cur PV 1
      Act PV 1
      VG Size <930.01 GiB
      PE Size 4.00 MiB
      Total PE 238082
      Alloc PE / Size 51200 / 200.00 GiB
      Free PE / Size 186882 / <730.01 GiB
    2. 可以看到可扩容大小

      Free PE / Size 186882 / <730.01 GiB

    3. 使用命令进行扩容

      按不同需求有以下命令:

      1
      2
      3
      4
      5
      6
      lvextend -L 10G /dev/mapper/ubuntu--vg-ubuntu--lv      //增大或减小至19G
      lvextend -L +10G /dev/mapper/ubuntu--vg-ubuntu--lv //增加10G
      lvreduce -L -10G /dev/mapper/ubuntu--vg-ubuntu--lv //减小10G
      lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv //按百分比扩容

      resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv //执行调整

      具体操作:

      1
      2
      3
      4
      5
      6
      7
      8
      root@azhal:/mnt/Ar2D# lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv
      Size of logical volume ubuntu-vg/ubuntu-lv changed from 200.00 GiB (51200 extents) to <930.01 GiB (238082 extents).
      Logical volume ubuntu-vg/ubuntu-lv successfully resized.
      root@azhal:/mnt/Ar2D# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
      resize2fs 1.45.5 (07-Jan-2020)
      Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
      old_desc_blocks = 25, new_desc_blocks = 117
      The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 243795968 (4k) blocks long.
    4. 检查是否扩容成功

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      root@azhal:/mnt/Ar2D# vgdisplay
      --- Volume group ---
      VG Name ubuntu-vg
      System ID
      Format lvm2
      Metadata Areas 1
      Metadata Sequence No 3
      VG Access read/write
      VG Status resizable
      MAX LV 0
      Cur LV 1
      Open LV 1
      Max PV 0
      Cur PV 1
      Act PV 1
      VG Size <930.01 GiB
      PE Size 4.00 MiB
      Total PE 238082
      Alloc PE / Size 238082 / <930.01 GiB
      Free PE / Size 0 / 0

      可以看到Free Size已经变成0,即扩容成功。


    拓展Ubuntu服务器内LVM分区容量引导
    https://halc.top/p/2dda2597
    作者
    HalcyonAzure
    发布于
    2021年3月17日
    许可协议
    \ No newline at end of file diff --git a/p/2f2e6810.html b/p/2f2e6810.html new file mode 100644 index 00000000..b82c994b --- /dev/null +++ b/p/2f2e6810.html @@ -0,0 +1,2 @@ +Ubuntu上开启内核BBR算法来提高TCP吞吐性能 - Halcyon Zone +

    Ubuntu上开启内核BBR算法来提高TCP吞吐性能

    参考文章:How to enable BBR on Ubuntu 20.04

    拥塞控制算法

    默认情况下Linux 使用 Reno 和 CUBIC 拥塞控制算法,Linux kernal 4.9以上版本的内核已经自带该功能,由于Ubuntu 20.04的为5.4.0 kernel,我们可以直接启用

    通过以下指令检查目前可选择的拥塞控制算法:

    1
    sysctl net.ipv4.tcp_available_congestion_control

    输出大致为(可用的算法有reno和cubic两种):

    1
    2
    root@vps:~## sysctl net.ipv4.tcp_available_congestion_control
    net.ipv4.tcp_available_congestion_control = reno cubic

    通过以下指令检查目前的拥塞控制算法:

    1
    sysctl net.ipv4.tcp_congestion_control

    输出大致为(目前是cubic):

    1
    2
    root@vps:~## sysctl net.ipv4.tcp_congestion_control
    net.ipv4.tcp_congestion_control = cubic

    在Ubuntu中启用TCP BBR

    1. 在文件etc/sysctl.conf中写入以下内容:

      1
      2
      net.core.default_qdisc=fq
      net.ipv4.tcp_congestion_control=bbr

      保存并退出

    2. 重置sysctl设置

      1
      sudo sysctl -p

      此时会有大致输出:

      1
      2
      3
      root@vps:~## sysctl -p
      net.core.default_qdisc = fq
      net.ipv4.tcp_congestion_control = bbr
    3. 检查BBR是否在系统中正确启用:

      1
      sysctl net.ipv4.tcp_congestion_control

      大致输出:

      1
      2
      root@vps:~## sysctl net.ipv4.tcp_congestion_control
      net.ipv4.tcp_congestion_control = bbr

    完成


    Ubuntu上开启内核BBR算法来提高TCP吞吐性能
    https://halc.top/p/2f2e6810
    作者
    HalcyonAzure
    发布于
    2022年2月8日
    许可协议
    \ No newline at end of file diff --git a/p/2f594679.html b/p/2f594679.html new file mode 100644 index 00000000..7a1a15cd --- /dev/null +++ b/p/2f594679.html @@ -0,0 +1,2 @@ +Ubuntu通过systemd禁用系统睡眠 - Halcyon Zone +

    Ubuntu通过systemd禁用系统睡眠

    参考网址

    1. How To: Disable Sleep on Ubuntu Server (unixtutorial.org)

    查看系统休眠的记录

    1
    sudo systemctl status sleep.target

    理论上会返回类似如下的内容,里面会注明系统休眠的时间等信息

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    root@azhal:~## systemctl status sleep.target
    ● sleep.target - Sleep
    Loaded: loaded (/lib/systemd/system/sleep.target; static; vendor preset: enabled)
    Active: inactive (dead)
    Docs: man:systemd.special(7)

    May 07 18:54:58 azhal systemd[1]: Reached target Sleep.
    May 07 20:19:14 azhal systemd[1]: Stopped target Sleep.
    May 07 20:39:14 azhal systemd[1]: Reached target Sleep.
    May 07 20:52:35 azhal systemd[1]: Stopped target Sleep.

    关闭系统休眠

    1
    sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

    [引用文章原话] This is obviously a very simple way of disabling power management, but I like it because it’s standard and logical enough – there’s no need to edit config files or create cronjobs manually controlling sleep functionality.

    大概翻译过来就是指这样的操作标准且合理,因为这样省去了编辑任何文件的麻烦,并且也达到了禁用休眠的目的。

    禁用以后大致会变成这样:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    root@azhal:~## systemctl status sleep.target
    ● sleep.target
    Loaded: masked (Reason: Unit sleep.target is masked.)
    Active: inactive (dead)

    May 07 18:54:58 azhal systemd[1]: Reached target Sleep.
    May 07 20:19:14 azhal systemd[1]: Stopped target Sleep.
    May 07 20:39:14 azhal systemd[1]: Reached target Sleep.
    May 07 20:52:35 azhal systemd[1]: Stopped target Sleep.

    恢复系统休眠服务器

    1
    sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

    Ubuntu通过systemd禁用系统睡眠
    https://halc.top/p/2f594679
    作者
    HalcyonAzure
    发布于
    2021年5月7日
    许可协议
    \ No newline at end of file diff --git a/p/3930e42b.html b/p/3930e42b.html new file mode 100644 index 00000000..436df52b --- /dev/null +++ b/p/3930e42b.html @@ -0,0 +1,2 @@ +网络抓包记录 - Halcyon Zone +

    网络抓包记录

    本文最后更新于:2023年8月3日 晚上

    学习记录

    这个博客主要记录了自己尝试通过抓包分析并解决一些问题的心路历程,从结果上来说很可能问题并没有解决,但是尝试解决这个问题的过程中遇到的一些问题以及自己的思考想通过写博客的方式先记录下来,在以后自己知识储备扩充的时候也许就可以回过头来看看解决下。

    第一次抓包

    遇到的问题

    今天在尝试部署zerotierzeronsd私有DNS服务的时候遇到了一个问题:无论是在我之前国内的服务器A上还是香港的服务器B上,zeronsd的部署都是只需要无脑复制粘贴指令就能成功,但是今天尝试在新租赁的国内服务器C上部署的时候则遇到了一个报错:Error Response

    不明所以的报错

    在翻阅zeronsd源码的时候发现这块逻辑本来应该是对应请求zerotier那边获取到局域网内所有设备的IP以便于创建私有的DNS条目。

    zeronsd源码

    可以看见这部分错误处理里面并没有Error Response的产生原因,而且同时我在香港的服务器上依旧可以正常使用zeronsd。因此也产生了想尝试通过抓包找到问题所在的想法。

    解决过程

    通过lsof获取目标IP

    既然知道了问题是来自于zeronsd,而且应该是一个和网络Response有关系的问题,那么通过抓包应该是最通用的排查方法。在这里首先通过lsof工具查询zeronsd打开的连接

    最开始找到的指令是先通过pidof zeronsd找到进程的pid,然后通过pid来用lsof查询,指令大概是lsof -p $(pidof zeronsd),结果后面翻了下lsof的手册,发现可以直接用-c来找进程,不过pidof以后也感觉会用到,姑且做个记录。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    [root@Aliyun:~]
    # lsof -c zeronsd
    COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
    zeronsd 18437 root cwd DIR 254,1 4096 2 /
    zeronsd 18437 root rtd DIR 254,1 4096 2 /
    zeronsd 18437 root txt REG 254,1 8752136 804251 /usr/bin/zeronsd
    zeronsd 18437 root mem REG 254,1 93000 787112 /usr/lib/x86_64-linux-gnu/libresolv-2.31.so
    zeronsd 18437 root mem REG 254,1 26952 787106 /usr/lib/x86_64-linux-gnu/libnss_dns-2.31.so
    zeronsd 18437 root mem REG 254,1 51696 787107 /usr/lib/x86_64-linux-gnu/libnss_files-2.31.so
    zeronsd 18437 root mem REG 254,1 1901536 786465 /usr/lib/x86_64-linux-gnu/libc-2.31.so
    zeronsd 18437 root mem REG 254,1 18688 787097 /usr/lib/x86_64-linux-gnu/libdl-2.31.so
    zeronsd 18437 root mem REG 254,1 1321344 787098 /usr/lib/x86_64-linux-gnu/libm-2.31.so
    zeronsd 18437 root mem REG 254,1 149520 787110 /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
    zeronsd 18437 root mem REG 254,1 100736 786450 /usr/lib/x86_64-linux-gnu/libgcc_s.so.1
    zeronsd 18437 root mem REG 254,1 3076992 802235 /usr/lib/x86_64-linux-gnu/libcrypto.so.1.1
    zeronsd 18437 root mem REG 254,1 597792 802236 /usr/lib/x86_64-linux-gnu/libssl.so.1.1
    zeronsd 18437 root mem REG 254,1 177928 786460 /usr/lib/x86_64-linux-gnu/ld-2.31.so
    zeronsd 18437 root 0r CHR 1,3 0t0 4 /dev/null
    zeronsd 18437 root 1u unix 0x0000000070328a2d 0t0 105666 type=STREAM
    zeronsd 18437 root 2u unix 0x0000000070328a2d 0t0 105666 type=STREAM
    zeronsd 18437 root 3u a_inode 0,13 0 8321 [eventpoll]
    zeronsd 18437 root 4u a_inode 0,13 0 8321 [eventfd]
    zeronsd 18437 root 5u a_inode 0,13 0 8321 [eventpoll]
    zeronsd 18437 root 6u unix 0x000000008c202115 0t0 105669 type=STREAM
    zeronsd 18437 root 7u unix 0x0000000072325ef6 0t0 105670 type=STREAM
    zeronsd 18437 root 8u unix 0x000000008c202115 0t0 105669 type=STREAM
    zeronsd 18437 root 9u IPv4 104709 0t0 TCP iZf8zgk9dawv2exr28bz0oZ:57136->151.101.109.91:https (SYN_SENT)

    可以发现下面有创建一个TCP连接,并且是处于SYN_SENT的状态。同时在我短时间内重复输入lsof的指令(蠢但有效.jpg),发现返回的依旧是SYN_SENT。一般来说SYN握手的速度应该是很快的,这里很长时间内都处于SYN_SENT的状态就明显很不对劲,所以接下来就需要通过抓包来分析。

    在我多次尝试了lsof之后,发现即使有的时候能让连接处于ESTABLISHED的状态,但是过了一会以后依旧会被掐断,并且返回Error Response。通过分析不同的lsof建立TCP连接的目标ip,发现服务器总是向151.101.109.91146.75.113.91建立连接,应该是请求的域名有做CDN所以解析到了不同的IP。接下来知道了目标IP,抓包就很容易了。这里采取的是通过tshark在配置较弱的服务器上获取到了数据包以后再导出到本地计算机的Wireshark的方法进行分析。

    tshark抓包分析

    首先使用下面的指令对所有http请求进行抓取,并将抓包的内容保存在data.cap文件中

    1
    tshark -d tcp.port==443,http -w data.cap

    之后再将这个文件下载到本地电脑使用Wireshark过滤选定目标IP追踪TCP流,可以发现数据流如下图

    数据流

    可以发现就这一次的数据来说SYN握手的部分是成功了的,TLS的四次握手也能成功建立,但是在发送了一些应用数据之后,云的服务器就开始向远端服务器发送RST报文来请求强制终止连接了。重新抓包以后又发现出现了多次TCP数据包的重传。

    对于在TCP连接中,先发送了FIN,然后发送RST的一个可能性的原因如下:

    您的流中的FIN和RST数据包并不直接相关。通过发送FIN,表示没有更多要发送的数据。它仍然可以从连接的另一端接收更多数据。然而,当有更多数据到达时,发送RST来表示应用程序将不再从套接字读取任何数据。

    如果一个应用程序想要干净地关闭TCP连接而不引发任何RST数据包,则必须首先使用shutdown系统调用关闭写入套接字,同时保持读取套接字处于打开状态。在关闭写入套接字之后,它仍然需要读取所有对方要发送的数据,然后才能完全关闭套接字。

    但是zeronsd对于这次连接的重置是返回了Error的,所以基本上可以判断并不是zeronsd本身发送的rst阻断连接。

    在这里为了让后续抓包更容易复现,首先对于TLS建立握手的第一个数据包,我们可以直接查询到域名

    检查TLS握手的域名

    之后我就尝试通过curl -vL my.zerotier.com的方法来通过抓取curl包分析问题。为了区分成功和失败的区别,我在这里也使用了curl -vL www.baidu.com作为对照组。

    百度请求

    返回的抓包内容大致如下:

    使用curl请求百度

    可以发现整个连接没有大问题,只是在连接结束以后百度那边发送了一个rst包给我们,但是tcp的四次挥手是正常完成了的。

    Zerotier请求

    使用curl请求zerotier

    可以发现在想要结束连接的时候并没有正常挥手,在客户端这边接收到服务器那边的FIN之前就开始给服务器发送RST报文尝试断开连接

    总述

    这次抓包本身没有获取到啥决定性的信息可以确定问题产生的原因,因此目前自己也只能借由Zerotier和百度请求的对比,怀疑是因为Zerotier是国外网站,被服务商阻断了(但是在FIN之后再阻断也很奇怪,虽然会在FIN之后发送RST报文,但是curl还是可以读取到my.zerotier.com的网页信息),暂时对进一步的排查没有头绪。

    第二次遇到问题

    我尝试在同一台服务器上部署一个VOIP服务器。也是一样使用别的服务器的时候一点问题都没有,但是在这台国内的服务器上就遇到问题了。这次遇到问题就想尽可能的搞懂原因,因此做了以下实验

    分情况尝试连接

    • 实验设备:一台香港服务器(对照组),一台阿里云国内服务器(样本组),以及自己的Windows设备

    • 实验情景:在香港和国内服务器上都部署Mumble的服务器(一个VOIP程序),然后使用Windows对这两台服务器进行连接,其中Mumble连接采取了TLS加密的方式,加密证书均为自签。

    • 实验步骤:

      1. 使用IP直连香港服务器上在端口64738部署的murmurMumble服务端的别称)
      2. 使用域名voice1.abc.com连接香港服务器在端口64738部署的murmur
      3. 使用IP直连国内服务器上在端口64738部署的murmur
      4. 使用域名voice2.abc.com连接国内服务器在端口64738部署的murmur
    • 实验期望:四种不同的方式连接murmur都能成功,且不会有明显区别

    • 实验结果:方法1-3都可以正常访问,但是方法4连接被服务器阻断

    抓包分析问题

    在对以上四种情况进行抓包以后,获取到的Wireshark图像大致如下

    1. 香港服务器使用域名连接

      香港 - 域名连接

    2. 香港服务器使用IP直连

      香港 - IP直连

    3. 国内服务器使用IP直连

      国内 - IP直连

    4. 国内服务器使用域名连接

      国内 - 域名连接

    到这里基本上很明显可以发现只有在国内服务器使用域名连接的时候,服务器那边会在进行TLS握手的时候直接进行阻断,让你无法成功建立TLS连接

    总述

    这次抓包也没获得啥特别有用的信息。不过由于这个问题是在用阿里云的时候才遇到,之前用同样在国内的腾讯云没有遇到,则初步怀疑是阿里云对任意端口(非443)现在都做了备案检测,只要是没备案的域名/网站,无论是TLS还是明文,只要检测到你用了域名就禁封。相比之下腾讯那边就要宽松一些,至少murmur在腾讯云上是可以正常使用域名进行连接通讯的。


    网络抓包记录
    https://halc.top/p/3930e42b
    作者
    HalcyonAzure
    发布于
    2023年7月27日
    许可协议
    \ No newline at end of file diff --git a/p/39b9efc1.html b/p/39b9efc1.html new file mode 100644 index 00000000..1f025ebf --- /dev/null +++ b/p/39b9efc1.html @@ -0,0 +1,2 @@ +Linux通过davfs2挂载WebDav网盘 - Halcyon Zone +

    Linux通过davfs2挂载WebDav网盘

    注:已改用rclone作为较优方案

    参考

    1. davfs挂载与使用缺陷

    安装

    1. 输入以下指令安装

      1
      sudo apt install davfs2

    连接

    1. 创建需要挂载的硬盘,这里以/opt/Backup为例,挂载网址为http://localhost:8080/dav/,账号为admin,密码为123456

      1
      mkdir /opt/Backup/
    2. 将硬盘挂载到对应路径

      1
      sudo mount.davfs http://locaohost:8080/dav/ /opt/Backup/
    3. 输入账号密码并手动连接

    保存密码

    1. 编辑/etc/davfs2/davfs2.conf,找到其中的use_lock取消注释,并修改值为0

    2. 修改/etc/davfs2/secrets,在末尾添加

      1
      http://localhost:8080/dav/ admin 123456

    自动挂载

    1. 编辑/etc/fstab,在最后一行添加以下内容

      1
      http://localhost:8080/dav/ /opt/Backup/ davfs defaults 0 0

    以上的http://localhost:8080/dav/和用户名密码均为示例,请在了解WebDav之后替换为自己需要的值


    Linux通过davfs2挂载WebDav网盘
    https://halc.top/p/39b9efc1
    作者
    HalcyonAzure
    发布于
    2021年6月13日
    许可协议
    \ No newline at end of file diff --git a/p/3d85131.html b/p/3d85131.html new file mode 100644 index 00000000..7ec93162 --- /dev/null +++ b/p/3d85131.html @@ -0,0 +1,2 @@ +OSTEP:内存碎片的管理 - Halcyon Zone +

    OSTEP:内存碎片的管理

    第十七章:空闲空间管理

    1. 执行题目给出的参数可以得到以下内容

      answer
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      seed 0
      size 100
      baseAddr 1000
      headerSize 0
      alignment -1
      policy BEST
      listOrder ADDRSORT
      coalesce False
      numOps 10
      range 10
      percentAlloc 50
      allocList
      compute True

      ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
      Free List [ Size 1 ]: [ addr:1003 sz:97 ]

      Free(ptr[0])
      returned 0
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

      ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

      Free(ptr[1])
      returned 0
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

      ptr[2] = Alloc(8) returned 1008 (searched 3 elements)
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

      Free(ptr[2])
      returned 0
      Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      ptr[3] = Alloc(8) returned 1008 (searched 4 elements)
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

      Free(ptr[3])
      returned 0
      Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      ptr[4] = Alloc(2) returned 1000 (searched 4 elements)
      Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      ptr[5] = Alloc(7) returned 1008 (searched 4 elements)
      Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1015 sz:1 ][ addr:1016 sz:84 ]

      这里以开头两段为例子分析,后面的算法相同

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
      Free List [ Size 1 ]: [ addr:1003 sz:97 ]

      Free(ptr[0])
      returned 0
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

      ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

      Free(ptr[1])
      returned 0
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

      首先,根据开头参数可以知道目前分配方式不考虑Header头指针,并且不考虑内存合并

      ptr[0] = Alloc(3)会从1000开始分配大小为3的内存(此时空间足够,分配成功),并返回1000的地址作为开头。此时空闲空间Free List只有一块,从1003开始,总大小为97

      之后的Free(ptr[0])则将刚刚分配的内存释放,释放后由于并未合并,因此出现了[3]->[97]的空闲空间表,之后再进行ptr[1] = Alloc(5)。由于第一个空闲空间为[3]不足以容纳[5]的分配,因此第二个空间是从1003作为内存开始的地址,并使用了5的内存空间

      然后再进行Free(ptr[1])的操作释放内存并且不合并,则有了[3]->[5]->[92]的空闲可用空间。后面的运算以此类推

      如果出现了在空闲的大内存中分配了新的小内存

      1
      2
      ptr[4] = Alloc(2) returned 1000 (searched 4 elements)
      Free List [ Size 4 ]: [ addr:1002 sz:1 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      则占用部分内存后,新的剩余内存将被作为新的内存段保留使用,并且已分配内存也会产生新的内存碎片

    2. 使用最差匹配有如下输出

      answer
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      seed 0
      size 100
      baseAddr 1000
      headerSize 0
      alignment -1
      policy WORST
      listOrder ADDRSORT
      coalesce False
      numOps 10
      range 10
      percentAlloc 50
      allocList
      compute True

      ptr[0] = Alloc(3) returned 1000 (searched 1 elements)
      Free List [ Size 1 ]: [ addr:1003 sz:97 ]

      Free(ptr[0])
      returned 0
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1003 sz:97 ]

      ptr[1] = Alloc(5) returned 1003 (searched 2 elements)
      Free List [ Size 2 ]: [ addr:1000 sz:3 ][ addr:1008 sz:92 ]

      Free(ptr[1])
      returned 0
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:92 ]

      ptr[2] = Alloc(8) returned 1008 (searched 3 elements)
      Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

      Free(ptr[2])
      returned 0
      Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      ptr[3] = Alloc(8) returned 1016 (searched 4 elements)
      Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1024 sz:76 ]

      Free(ptr[3])
      returned 0
      Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1024 sz:76 ]

      ptr[4] = Alloc(2) returned 1024 (searched 5 elements)
      Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1026 sz:74 ]

      ptr[5] = Alloc(7) returned 1026 (searched 5 elements)
      Free List [ Size 5 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:8 ][ addr:1033 sz:67 ]

      比对可以发现,在最差匹配的情况下,第二次重复分配8大小的空间时不会重复利用本身空闲的长度为8的空间,而是依旧从后面的最大空闲空间中分配8大小的空间出来,此时地址从1024开始分配,并且1008开头的地址不会被复用

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      Free(ptr[2])
      returned 0
      Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1016 sz:84 ]

      --- BEST
      - ptr[3] = Alloc(8) returned 1008 (searched 4 elements)
      - Free List [ Size 3 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1016 sz:84 ]

      +++ WORSE
      + ptr[3] = Alloc(8) returned 1016 (searched 4 elements)
      + Free List [ Size 4 ]: [ addr:1000 sz:3 ][ addr:1003 sz:5 ][ addr:1008 sz:8 ][ addr:1024 sz:76 ]
    3. 在使用FIRST进行匹配的情况下,空间分配的情况与BEST无异,在本例题示范当中,由于FIRST是找到可以用的内容后直接进行匹配,而示例当中恰好所有可用空间最小的情况匹配了FIRST的情况,因此只有搜索的次数变少,效率变快,其他差异不大。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      + policy FIRST
      ---
      - policy BEST

      + ptr[3] = Alloc(8) returned 1008 (searched 3 elements)
      ---
      - ptr[3] = Alloc(8) returned 1008 (searched 4 elements)

      + ptr[4] = Alloc(2) returned 1000 (searched 1 elements)
      ---
      - ptr[4] = Alloc(2) returned 1000 (searched 4 elements)

      + ptr[5] = Alloc(7) returned 1008 (searched 3 elements)
      ---
      - ptr[5] = Alloc(7) returned 1008 (searched 4 elements)
    4. 三种不同的参数分别对应了以下三种不同的内存分配方式

      • ADDSORT: 空闲的地址在搜索的时候是按地址的顺序进行排序搜索
      • SIZESORT-: 空闲的地址在搜索的时候按地址块的大小,先搜索大的,后搜索小的
      • SIZESORT+: 空闲的地址在搜索的时候按地址快的大小,先搜索小的,后搜索大的

      由于BESTWORSE分配的方法都需要把所有内存段全部搜索后再分配,因此在根据这两种不同的调度之后产生的内存碎片的数量是相同的。在三种不同的调度中采取FIRST控制空闲变量则将会造成比较大的影响。对于SIZESORT-的情况来说,由于未分配的大块内存一直在最前面,因此很容易在反复删除小内存段的过程中不断积累内存碎片;优点是每次直接扫描的第一个就将是可以直接使用的内存,搜索的次数明显减少。采用SIZESORT+的情况下,由于小碎片都积累在前面,因此如果此时遇到比较大块的内存需要分配时,则会增加需要搜索的内存段数量,时间会增加;优点是每次分配的时候都尽量先匹配比较小的内存段,对于多次分配小内存的情况来说,不会那么容易产生浪费。

    5. 首先,如果对内存段不采用合并处理的话,随着时间推移,内存碎片将会越来越多,并且后面能够成功分配内存需要的搜索次数以及成功概率都会升高。其次,由于内存合并是在地址连续的基础上才会进行合并,因此如果采用了SIZESORT的分配方法,打乱了地址的顺序,虽然依旧有成功合并的可能,但是效率还是要低于以ADDRSORT方法对空闲内存段进行排序。

    6. 如果-P设置的太高,模拟的则是在平时写程序的过程中一直不对申请的内存空间进行Free释放,则会导致空间过早的就被使用完毕,后续无法再继续分配,设置的低的情况下则代表了内存每次使用分配完毕以后都立即释放,这样就能够一直有空闲的内存等待分配。

    7. 如果要生成高度碎片化的空间,只要让空闲的空间碎片始终不被合并,并且分配的时候根据上述中第四题得到的规律增加搜索次数,让即使被Free的内存块也无法被使用或增加使用次数即可。


    OSTEP:内存碎片的管理
    https://halc.top/p/3d85131
    作者
    HalcyonAzure
    发布于
    2022年5月7日
    许可协议
    \ No newline at end of file diff --git a/p/3efcbb51.html b/p/3efcbb51.html new file mode 100644 index 00000000..f0aee058 --- /dev/null +++ b/p/3efcbb51.html @@ -0,0 +1,2 @@ +Linux通过fdisk分区引导 - Halcyon Zone +

    Linux通过fdisk分区引导

    参考地址:
    CSDN-树莓派Openwrt SD卡扩展问题

    ​ 在给自己的R2S使用64G的SD卡的时候,安装完毕系统启动发现内存卡中有将近50多G的空间没有得到合理的使用,记录一下通过网上树莓派磁盘扩展分区的步骤来在R2S上同样对SD卡进行分区拓展

    fdisk磁盘拓展

    1. 磁盘检查

      df -h 检查已经使用的磁盘容量

      fdisk /dev/mmcblk0 查看磁盘分区,并进行部分操作

    2. 检查磁盘分区情况并且进行分区

      fdisk后的Command( m for help):后输入p来查看分区情况

      fdiskp

      其中可以看到最后分区的End3817471

    3. 新建磁盘

      输入n进行新建磁盘,之后会有几个询问,分别对应以下几点

      • 输入磁盘编码,一般按Default的设置即可
      • 输入扇区的起始位置,这里输入最后一个分区+1的数值大小,比如上图中End后为3817471,那我这里就输入3817472
      • 输入终止扇区,这里可以填入Default设置,就会设置最大可用扇区
      • 输入w进行保存
    4. 把新建的分区格式化为ext4格式

      mkfs.ext4 /dev/mmcblk0p3

    5. 分区挂载

      • 方法一
        • 在Openwrt的管理界面的挂载点中,直接使用"自动挂载"进行磁盘的挂载
      • 方法二
        • mount -v -t ext4 -o rw /dev/mmcblk0p3 [pathToMount]
    6. 通过df -h命令查看,可以发现已经挂载成功


    Linux通过fdisk分区引导
    https://halc.top/p/3efcbb51
    作者
    HalcyonAzure
    发布于
    2021年3月25日
    许可协议
    \ No newline at end of file diff --git a/p/41385a4a.html b/p/41385a4a.html new file mode 100644 index 00000000..deb81667 --- /dev/null +++ b/p/41385a4a.html @@ -0,0 +1,2 @@ +搭建ZeroTier Controller管理网络引导 - Halcyon Zone +

    搭建ZeroTier Controller管理网络引导

    本来的理解: 在使用ZeroTier的时候经常会出现穿透失败,或者穿透延迟过大但是中转服务器不好用的情况,之前有参考过网上的教程来通过一台国内的VPS搭建自己的MOON节点来达到加速的目的,但是最后的效果不尽人意,而且还存在安卓端添加mood节点并不轻松的问题,所以在这里采取直接通过key-networks/ztncui: ZeroTier network controller UI搭建自己的ZeroTier根服务器

    ​ 最近在使用zerotier-cli listpeers指令的时候发现设置的控制器是一个LEAF而不是本来预期的PLANT,在查阅了一部分资料之后发现如果想要加速网络的话目前比较好的方便还是MOON服务器进行中转,详情参考另外一篇ZeroTier下Moon服务器的搭建

    安装准备

    1. 准备好一台在国内,至少开放端口3443端口的服务器(暂未测试对其他端口是否有需求)

    2. 在服务器内安装ZeroTier,以下为一键安装脚本

      curl -s https://install.zerotier.com | sudo bash

      如果服务器有安装GPG,则需要多几个步骤

      1
      2
      curl -s 'https://raw.githubusercontent.com/zerotier/ZeroTierOne/master/doc/contact%40zerotier.com.gpg' | gpg --import && \
      if z=$(curl -s 'https://install.zerotier.com/' | gpg); then echo "$z" | sudo bash; fi

    部署ztncui

    RPM installation on EL7

    1. sudo yum install https://download.key-networks.com/el7/ztncui/1/ztncui-release-1-1.noarch.rpm -y

    2. sudo yum install ztncui -y

    3. (可选择):添加服务器自己的TLS/SSL证书,或者添加服务器自认证的证书 - 后文有教程

    4. 开放服务器的3443端口(已开放可忽略)

    5. sudo sh -c "echo 'HTTPS_PORT=3443' > /opt/key-networks/ztncui/.env"

    6. sudo sh -c "echo 'NODE_ENV=production' >> /opt/key-networks/ztncui/.env"

    7. sudo systemctl restart ztncui

    8. 通过HTTPS来在服务器的3443端口访问控制界面,比如

      e.g. https://my.network.controller:3443

    9. 通过默认的账号admin和密码password.

    DEB installation on Debian/Ubuntu

    1. curl -O https://s3-us-west-1.amazonaws.com/key-networks/deb/ztncui/1/x86_64/ztncui_0.7.1_amd64.deb

    2. sudo apt-get install ./ztncui_0.7.1_amd64.deb

    3. (可选择):添加服务器自己的TLS/SSL证书,或者添加服务器自认证的证书 - 后文有教程

    4. 开放服务器的3443端口(已开放可忽略)

    5. sudo sh -c "echo 'HTTPS_PORT=3443' > /opt/key-networks/ztncui/.env"

    6. sudo sh -c "echo 'NODE_ENV=production' >> /opt/key-networks/ztncui/.env"

    7. sudo systemctl restart ztncui

    8. 通过HTTPS来在服务器的3443端口访问控制界面,比如

      e.g. https://my.network.controller:3443

    9. 通过默认的账号admin和密码password.

    笔记

    1. 如果要添加额外的监听端口,只需要在/opt/key-network/ztncui下面添加一个.env文件,其中附带一行

      HTTPS_PORT=3443

      或者任意一个大于1024的端口即可。

    2. 如果存在.env文件来指向特定的一个端口,那么ztncui将会在所有的端口监听网络,如果希望限制一个特定的IP进行监听的话,只需要在.env文件中再添加一行

      HTTPS_HOST=12.34.56.78

      来设置自己制定的IP或者域名即可。

    添加Self-signed Certificate

    这种方法添加的证书会存在浏览器警告的问题,不过由于是自己使用,平时也不会一直盯着控制界面,所以影响应该不会很大,如果有共用或者对安全有需求建议自行添加

    以下为无脑脚本

    1
    2
    3
    4
    5
    6
    sudo -i
    cd /opt/key-networks/ztncui/etc/tls
    rm -f privkey.pem fullchain.pem
    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privkey.pem -out fullchain.pem
    chown ztncui.ztncui *.pem
    chmod 600 privkey.pem

    配置ztnui

    由于ztnui是自己搭建的一个ZeroTier服务器,所以并没有预先设置好的DHCP分配,需要自己设置分配范围。如果需要添加一个新的网络,在使用账号密码登入以后,点击Add network就可以添加一个自己的虚拟局域网络

    1. 点击Add network

    2. 设置好network的名字并create

    3. 如果需要设置"隐私"与否,在Private中设置即可,这里稍作翻译即可看懂,所以不多解释

    4. 点击如下图所示的Easy Setup来快速完成一个IPv4的DHCP分配

      ESETUP

    5. 如下图所示填入对应信息

      IPPOOL

      以下为一个例子:

      1
      2
      3
      网关:192.168.192.0/24
      起始IP:192.168.192.1
      终止IP:192.168.192.254
    6. 然后点submit即可快速创建,也可以通过generate network address的方式自动随机填入。

    7. 如果需要设置NAT路由,则只需要在Routes下进行配置和添加即可。


    搭建ZeroTier Controller管理网络引导
    https://halc.top/p/41385a4a
    作者
    HalcyonAzure
    发布于
    2021年3月16日
    许可协议
    \ No newline at end of file diff --git a/p/4416e368.html b/p/4416e368.html new file mode 100644 index 00000000..638087af --- /dev/null +++ b/p/4416e368.html @@ -0,0 +1,2 @@ +虚拟化:初识IOMMU(TODO) - Halcyon Zone +

    虚拟化:初识IOMMU(TODO)

    初识IOMMU

    最近在尝试给朋友的小主机安装ZStack作为虚拟化管理平台的时候,遇到了一个需求:通过HDMI直接将Windows虚拟机的画面输出到外界显示器。需要解决这个问题自然而然的就需要使用直通的方法将显卡直通给虚拟机。不过之前直通都是直接找别人的博客一步一步傻瓜式执行下去,对于每个指令发生了什么,以及iommu是如何工作的都不清楚。刚好趁着这个机会了解并记录下自己的学习历程

    问题来源

    我自己现在有一台基于Proxmox VEAll in one小主机了,这里就叫做主机A,而我朋友的主机则称为主机B。在安装ZStack之前,我原以为直通的过程依旧可以无脑用脚本来实现,但是实际执行过程中却发现在PVE中应该成功的ACS的改动在ZStack中却并没有成功。这便引起我了从ACSIOMMU作用的好奇。

    启用IOMMU和ACS

    首先,在主机A和主机B的BIOS上都启用IOMMU的功能,可以发现原本的iommu分组都十分混乱,大部分设备杂糅在一起。为了解决这个问题,便有了叫做ACS的技术。

    ACS的主要功能

    1. 设备隔离:ACS允许对PCIe设备进行更细粒度的控制,增强了设备间的隔离。这在虚拟化环境中尤为重要,因为它可以帮助确保虚拟机之间的安全隔离,防止一个虚拟机访问另一个虚拟机的PCIe设备。
    2. 控制I/O访问:ACS可以控制PCIe设备的I/O访问,例如控制哪些设备可以发起对其他设备或内存的直接内存访问(DMA)。
    3. 提高安全性:通过对设备间访问的更严格控制,ACS有助于提高系统的整体安全性,尤其是在多租户或需要高安全性的环境中。

    通过启用iommu的同时启用acs,就可以将系统中iommugroup分成更细的设备单位,具体修改的操作实现参数可能不尽相同,但是基本上都是先对/etc/default/grub中的GRUB_CMDLINE_LINUX进行修改,添加amd_iommu=onpcie_acs_override=downstream,multifunction即可

    查看分组情况

    对于分组情况的查看,在PCI passthrough via OVMF - ArchWiki (archlinux.org)可以找到一个脚本来列出当前的IOMMU Groups的情况

    1
    2
    3
    4
    5
    6
    7
    8
    #!/bin/bash
    shopt -s nullglob
    for g in $(find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V); do
    echo "IOMMU Group ${g##*/}:"
    for d in $g/devices/*; do
    echo -e "\t$(lspci -nns ${d##*/})"
    done;
    done;

    当我在自己的PVE主机上执行这个脚本之后,可以发现显卡是单独在一个Groups中的

    IOMMU分组

    但是在ZStack平台上执行以后可以发现核显并不是单独在一个Groups里面的

    当时的log没有保存,这里假象一个其他的例子代替,是一个GTX 970显卡的例子,一般来说独显是会有单独的Groups的

    1
    2
    3
    4
    5
    6
    7
    ......
    IOMMU Group 13:
    06:00.0 VGA compatible controller: NVIDIA Corporation GM204 [GeForce GTX 970] [10de:13c2] (rev a1)
    06:00.1 Audio device: NVIDIA Corporation GM204 High Definition Audio Controller [10de:0fbb] (rev a1)
    00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1
    00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2
    ......

    具体问题的产生原因还不清楚(找到问题以后会来更新博客),不过就IOMMU的分组情况大概是这样。

    IOMMU

    对于什么是iommu,找到这样一个简单扼要的概括

    大家知道,I/O设备可以直接存取内存,称为DMA(Direct Memory Access);DMA要存取的内存地址称为DMA地址(也可称为BUS address)。在DMA技术刚出现的时候,DMA地址都是物理内存地址,简单直接,但缺点是不灵活,比如要求物理内存必须是连续的一整块而且不能是高位地址等等,也不能充分满足虚拟机的需要。后来dmar就出现了。 dmar意为DMA remapping,是Intel为支持虚拟机而设计的I/O虚拟化技术,I/O设备访问的DMA地址不再是物理内存地址,而要通过DMA remapping硬件进行转译,DMA remapping硬件会把DMA地址翻译成物理内存地址,并检查访问权限等等。负责DMA remapping操作的硬件称为IOMMU。做个类比:大家都知道MMU是支持内存地址虚拟化的硬件,MMU是为CPU服务的;而IOMMU是为I/O设备服务的,是将DMA地址进行虚拟化的硬件。

    而在这其中,IOMMU分组则是实现设备直通的关键,每个分组都包含了可以共享一同一个虚拟内存映射的设备集合。如果一个设备独占一个IOMMU分组,直通它是很简单的。但是如果多个设备共享同一个分组,比如显卡和USB接口,那么就无法只直通其中一个设备。

    TODO

    后续就是找时间尝试研究为什么ACSZStack中没有正常被启用,并将结论补充到这篇博客当中。


    虚拟化:初识IOMMU(TODO)
    https://halc.top/p/4416e368
    作者
    HalcyonAzure
    发布于
    2023年11月28日
    许可协议
    \ No newline at end of file diff --git a/p/4457ea2b.html b/p/4457ea2b.html new file mode 100644 index 00000000..ca27a712 --- /dev/null +++ b/p/4457ea2b.html @@ -0,0 +1,2 @@ +使用Yadm管理Linux配置文件 - Halcyon Zone +

    使用Yadm管理Linux配置文件

    今年暑假看Missing-course的时候开始意识到备份Linux配置文件的重要性,以后即使切换机器也可以很容易的恢复自己喜欢的编程环境。在简单搜索了几个方式以后,决定使用yadm作为管理工具,并且写了一个模板,便于分享和使用。

    使用说明

    该仓库的主要用途为使用yadm作为管理工具,通过Github来同步自己的Dotfiles

    1. 先在自己当前环境下安装yadm,具体安装说明参照Installation

    2. 通过Use this template或者下载源码的方式,创建并上传到自己的一个仓库中,最好是Private类型

    3. 在本身没有经过配置Dotfiles的环境下(或提前备份好自己的Dotfiles)输入以下指令拉取模板到本地进行管理

      1
      yadm clone https://github.com/<your id>/<your repository> --bootstrap
    4. 在附带--boostrap的情况下执行完毕上述指令以后将会按默认模板文件使用git来对自己的Dotfiles进行管理


    模板介绍

    Bootstrap

    clone仓库的时候如果附带了bootstrap将会自动执行以下三件事

    • 在以 apt/yum/pacman 作为包管理器的情况下安装zsh vim tmux curl wget openssl
    • 安装 oh-my-zsh,并以p10k为主题。安装zsh-autosuggestions,zsh-syntax-highlightingzsh-proxy三个插件
    • 切换 zsh 为当前用户的默认终端

    配置文件

    .ssh/config

    • 取消了域名指纹检查,不需要输入yes同意首次链接

    .zshrc

    • 配置了rust国内镜像
    • 添加了transfer用于分享文件(输入transfer /path/to/file即可)
    • 使用pws作为powershell.exealias,便于wsl环境下使用powershell
    • 启用了vi的normal模式,在输入命令的时候按Esc即可

    .vimrc

    • 参考missing-semster
    • 为了便于作为wsl环境使用,在Windows Terminal下复制粘贴,关闭了鼠标功能

    .cargo

    • 配置好了cargo镜像库

    gitconfig

    • 配置默认使用~/.gitignore作为全局ignore`文件
    • 在使用https时的验证交由.git-credentials文件纯文本保存密码(有风险,可加密)

    加密使用

    对于类似.ssh/id_rsa或者.git-credentials文件可以通过yadm自带的encrypt工具进行加密,使用步骤如下

    1. .config/yadm/encrypt文件内写入需要加密的文件路径,支持正则匹配

    2. 假设在.ssh/目录下所有文件(例如config, id_rsa)都需要进行加密,则在.config/yadm/encrypt写入.ssh/*后输入以下指令(安装openssl为前提)

      1
      yadm encrypt

      则会要求输入一个密码来进行加密

    3. 加密完则会在.local/share/yadm目录下产生一个archive作为加密打包后的文件,将该文件添加并上传到Github

      虽然加密文件本身有一定安全性,但为了保险起见还是推荐使用Private仓库来存储自己的Dotfiles

      1
      2
      3
      yadm add ~/.local/share/yadm/archive
      yadm commit -m "add encrypt archive"
      yadm push

      原本的文件此时将会依旧本地存在于(例如config, id_rsa),但不需要上传到Github当中

    4. 在下次重装系统/更换环境的时候,如果需要通过yadm对环境进行复原并解密加密文件,则只需要输入以下指令

      1
      yadm decrypt

      就会将加密打包的文件解密到对应的文件目录,保证一定的安全性


    使用Yadm管理Linux配置文件
    https://halc.top/p/4457ea2b
    作者
    HalcyonAzure
    发布于
    2022年12月12日
    许可协议
    \ No newline at end of file diff --git a/p/447b77e9.html b/p/447b77e9.html new file mode 100644 index 00000000..fc01edb8 --- /dev/null +++ b/p/447b77e9.html @@ -0,0 +1,2 @@ +ZeroTier的私有DNS服务器ZeroNSD搭建引导 - Halcyon Zone +

    ZeroTier的私有DNS服务器ZeroNSD搭建引导

    翻译来源

    翻译的时间为2021-9-9,其中部分内容有删改,只提取了主观认为有用的信息,仅供参考

    安装步骤

    注意事项

    1. 这个功能目前还在Beta测试当中
    2. 这个功能将会内嵌在未来将出现的ZeroTier 2.0当中,不过目前它是一个独立的软件
    3. 接下来的步骤将会有一定困难

    概念须知

    1. ZeroTier加入了一个网络后,它将会创建一个虚拟网口
    2. ZeroTier加入了多个网络后,也会有多个虚拟网口
    3. ZeroNSD启动了之后,它将绑定在某一个特定的网口上
    4. 如果你需要对多个网络都使用ZeroNSD,那你也需要创建多个ZeroNSD服务绑定在它对应的网口上

    安装环境

    ​ 该教程使用了两台不同的机器,一台是在云上的Ubuntu虚拟机,另外一台为Windows笔记本,如果要跟着来完成这个快速上手,最好使用相同的平台,如果使用了不同的平台,你最好要有能力弄清楚自己要做什么。

    搭建教程

    ZeroTier 网络创建

    1. 按正常流程创建、链接并授权一个以在ZeroTier官网创建的network

    2. 在自己的帐号的Account页面下创见一个新的API TokenZeroNSD将会利用这个token来获取对应网络下设备的不同名字,来达到自动分配dns的效果。

    3. 创建一个文件来让ZeroNSD能够以文件的方式读取token,参考指令如下 需要修改token为自己的token

      1
      2
      3
      sudo bash -c "echo ZEROTIER_CENTRAL_TOKEN > /var/lib/zerotier-one/token"
      sudo chown zerotier-one:zerotier-one /var/lib/zerotier-one/token
      sudo chmod 600 /var/lib/zerotier-one/token
    4. 安装ZeroTier的进程管理应用

      zerotier-systemd-managerrpmdeb安装包发布在这个网站:https://github.com/zerotier/zerotier-systemd-manager/releases,请自行替换下面指令为最新的安装包。

      1
      2
      wget https://github.com/zerotier/zerotier-systemd-manager/releases/download/v0.2.1/zerotier-systemd-manager_0.2.1_linux_amd64.deb
      sudo dpkg -i zerotier-systemd-manager_0.2.1_linux_amd64.deb
    5. 重启所有的ZeroTier服务

      1
      2
      3
      4
      sudo systemctl daemon-reload
      sudo systemctl restart zerotier-one
      sudo systemctl enable zerotier-systemd-manager.timer
      sudo systemctl start zerotier-systemd-manager.timer

    安装ZeroNSD

    ZeroNSD针对每一个网络需要都创建一个独立的服务,对DNS来说延迟是很敏感的,所以最好让客户端和服务端尽可能接近

    1. 安装ZeroNSD,它的安装包发布在这里,请自行替换下面指令为最新的安装包。

      1
      2
      wget https://github.com/zerotier/zeronsd/releases/download/v0.1.7/zeronsd_0.1.7_amd64.deb
      sudo dpkg -i zeronsd_0.1.7_amd64.deb

      如果默认发布的地方没有对应平台的安装包,可以通过Cargo自行编译安装

      1
      2
      >sudo /usr/bin/apt-get -y install net-tools librust-openssl-dev pkg-config cargo
      >sudo /usr/bin/cargo install zeronsd --root /usr/local
    2. 对于你希望启用DNS服务的网络,执行类似以下的命令:

      /var/lib/zerotier-one/token为token文件所在路径 (在上文设置token中有提及)

      beyond.corp为你希望的域名后缀

      af78bf94364e2035为你自己的网络ID

      1
      2
      3
      sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d beyond.corp af78bf94364e2035
      sudo systemctl start zeronsd-af78bf94364e2035
      sudo systemctl enable zeronsd-af78bf94364e2035

    检查可用性

    网络需求

    • 服务器需要开放53端口,让客户端可以请求到DNS
    • 客户端需要启用Allow DNS的选项(安卓等平台默认启用,可以无视)

    连通性检查

    ​ 假设笔记本的设备名为laptop,那么此时就可以通过设备名和dns后缀ping通设备了(不考虑防火墙)

    1
    2
    3
    4
    5
    6
    7
    PS C:\Users\AzureBird> ping laptop.beyond.corp

    正在 Ping zephy.sak [172.28.120.138] 具有 32 字节的数据:
    来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
    来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
    来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128
    来自 172.28.120.138 的回复: 字节=32 时间<1ms TTL=128

    指令更新

    ​ 如果后续需要更新配置(比如TLD),使用类似如下指令即可。(记得修改为自己设置的ID等参数):

    1
    2
    3
    sudo zeronsd supervise -t /var/lib/zerotier-one/token -w -d beyond.corp af78bf94364e2035
    sudo systemctl daemon-reload
    sudo systemctl enable zeronsd-af78bf94364e2035

    额外说明

    ZeroNSD还可以添加本地的hosts作为私有的DNS服务,不过由于该部分内容并不复杂,且属于进阶内容,故不做教程,此贴仅作入门参考使用的快速手册。


    ZeroTier的私有DNS服务器ZeroNSD搭建引导
    https://halc.top/p/447b77e9
    作者
    HalcyonAzure
    发布于
    2021年9月9日
    许可协议
    \ No newline at end of file diff --git a/p/44838b9c.html b/p/44838b9c.html new file mode 100644 index 00000000..0bce85c2 --- /dev/null +++ b/p/44838b9c.html @@ -0,0 +1,2 @@ +OSTEP:分页的原理 - Halcyon Zone +

    OSTEP:分页的原理

    第十八章:分页介绍

    1. 在虚拟地址中,vpn=address space size/page size. 所以在分页大小不变的情况下增加址空间大小会增加分页数量,在地址空间大小不变的情况下增加分页大小会减少分页数量。

      如果使用了很大的分页,当程序只需要很小一部分内存的时候依旧会申请过大的内存,造成不必要的内存浪费

    2. 每次当某个分页被地址空间使用后,PTE中对应的Vaild Bit就会置为1。当提高used paged数量后,操作系统总是能找到vpn对应的pfn

    3. 在这三种分配来说,前两种分页的大小相对于地址空间本身来说太大了,而在第三个例子当中,相对于256m,修改分页大小1m为更小的值将更加有助于提高空间的利用效率。

    4. 首先,地址空间和物理空间的大小都要是分页大小的倍数,其次,物理空间必须要比地址空间更大,否则会无法访问对应的地址空间。


    OSTEP:分页的原理
    https://halc.top/p/44838b9c
    作者
    HalcyonAzure
    发布于
    2022年5月8日
    许可协议
    \ No newline at end of file diff --git a/p/4b65fa48.html b/p/4b65fa48.html new file mode 100644 index 00000000..d098b51e --- /dev/null +++ b/p/4b65fa48.html @@ -0,0 +1,2 @@ +OSTEP:程序上下文切换的开销 - Halcyon Zone +

    OSTEP:程序上下文切换的开销

    第六章:受限制直接执行/上下文切换

    实验环境

    由于该实验要求在单个CPU上运行两个进程并在他们两个UNIX管道,而书中介绍的sche_affinity()函数的具体调用不是很清楚,所以这里通过Docker的参数限制,创建了一个只使用宿主机一个CPU资源的容器进行实验。

    单核Docker容器的创建

    1
    docker run -it -d --cpuset-cpus="0" --name=os ubuntu:latest

    注:在以上环境中如果使用函数查询CPU核心数依旧可以发现为16或其他多核,但是在通过指令stress -c 4实际测试后,性能只会在宿主机的单一CPU核心上运行,不影响实验。但是如果在创建Docker容器的时候使用的是--cpus=1,由于负载均衡,并不能达到单核进行实验的目的。

    测量思路

    1. 通过gettimeofday()增加时间戳函数,获取执行时间

    2. 创建10个管道,循环5次,每次循环的时候分别在两个管道之间反复通信,并输出上下文切换时间差

    代码实现

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <stdint.h>
    #include <sys/time.h>

    // 标记时间戳
    uint64_t getTimeTick()
    {
    struct timeval tv;
    gettimeofday(&tv, NULL);
    return tv.tv_usec;
    }

    int main()
    {
    // 创建十个管道用于读写测试
    int fd[10][2];
    for (int i = 0; i < 10; i++)
    {
    if (pipe(fd[i]) < 0)
    {
    perror("pipe");
    exit(1);
    }
    }
    char timeWrite[256], timeRead[256];
    // 创建子进程
    for (int i = 0; i < 9; i += 2)
    {
    int rc = fork();
    switch (rc)
    {
    case -1: // error
    perror("fork");
    exit(EXIT_FAILURE);
    case 0:
    // 从管道一中读取数据,如果管道一中没有数据,则阻塞等待
    read(fd[i][0], timeRead, sizeof(timeRead));
    printf("Read - Write %d: %lu\n", i, getTimeTick() - atol(timeRead));
    // 将时间写入管道二
    sprintf(timeWrite, "%lu", getTimeTick());
    write(fd[i + 1][1], timeWrite, sizeof(timeWrite));
    // 从管道一中读取数据,并计算进程切换的总时间
    exit(0);
    default:
    // 将时间写入管道一
    sprintf(timeWrite, "%lu", getTimeTick());
    write(fd[i][1], timeWrite, sizeof(timeWrite));
    // 由于在执行完write之后会继续执行主进程,下方的read也会运行,因此最后结果中奇数进程的结果时间会比偶数进程的时间长,正确答案应该靠近偶数
    // 从管道二读取数据,如果管道二中没有数据,则阻塞等待
    read(fd[i + 1][0], timeRead, sizeof(timeRead));
    printf("Read - Write %d: %lu\n", i + 1, getTimeTick() - atol(timeRead));
    break;
    }
    }
    return 0;
    }

    测量结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Read - Write 0: 24
    Read - Write 1: 7
    Read - Write 2: 16
    Read - Write 3: 6
    Read - Write 4: 17
    Read - Write 5: 7
    Read - Write 6: 17
    Read - Write 7: 6
    Read - Write 8: 18
    Read - Write 9: 9

    结果差错

    由于在执行完write之后会继续执行主进程,下方的read也会运行,因此最后结果中奇数进程的结果时间会比偶数进程的时间长,正确答案应该靠近偶数(已经在代码中用注释写明)。


    OSTEP:程序上下文切换的开销
    https://halc.top/p/4b65fa48
    作者
    HalcyonAzure
    发布于
    2022年3月25日
    许可协议
    \ No newline at end of file diff --git a/p/4e68707.html b/p/4e68707.html new file mode 100644 index 00000000..69aefa36 --- /dev/null +++ b/p/4e68707.html @@ -0,0 +1,2 @@ +CS144-Lab2 计算机网络:TCP Receiver的实现 - Halcyon Zone +

    CS144-Lab2 计算机网络:TCP Receiver的实现

    本文最后更新于:2023年4月11日 凌晨

    TCP Receiver

    Index和Seqno的转换

    为了节省在TCP Header当中的空间,在StreamReassembler里面写的index虽然是一个uint64_t的类型,但是在实际的Header中是使用一个uint32_tseqno来进行标记位置的。对于uint32_tseqnouint64_tindex的相互转换则是通过以4GiB (2^32 bytes)为一个长度进行取模来实现。

    同时为了提高TCP本身的安全性,并且确保每次获得的segments数据段都是来自于本次连接的,因此提出了ISN(Initial Sequence Number)的概念,即本次链接是从序号为isn开始作为seqno进行通信,大于isnseqno所代表的index是本次链接所需要的数据段,早于isnseqno则是来自于上一次连接的老数据段,并不需要处理。

    如果想要将uint32_tseqno转为一个uint64_t则需要一个checkpoint作为定位,防止seqno被定位到错误的位置上。这个checkpoint在实现中就是最后一个重新组装后的字符位置

    按lab2的原文:In your TCP implementation, you’ll use the index of the last reassembled byte as the checkpoint.

    通过寻找距离checkpoint最近的seqno就可以定位到本来需要插入的seqno位置了

    代码思路

    对于将uint32_t转为uint64_t的代码实现很简单,只需要将uint64_tindex加上isn的值之后对2^32进行取模就行了,具体代码实现如下

    1
    2
    3
    4
    WrappingInt32 wrap(uint64_t n, WrappingInt32 isn) {
    uint64_t result = (n + isn.raw_value()) % (static_cast<uint64_t>(UINT32_MAX) + 1);
    return WrappingInt32(static_cast<uint32_t>(result));
    }

    而对于将wrap后的seqno转回index,我直接通过类似分类讨论的枚举找到了四个临界点,只需要判断checkpoint相对于临界点的位置就可以得到答案。代码如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    uint64_t unwrap(WrappingInt32 n, WrappingInt32 isn, uint64_t checkpoint) {
    const uint64_t L = (1ul << 32);
    const uint64_t a = (checkpoint / L) * L - isn.raw_value() + n.raw_value();
    if (checkpoint > a + (L * 3) / 2) {
    return a + 2 * L;
    } else if (checkpoint > a + L / 2) {
    return a + L;
    } else if (checkpoint < L) {
    return n.raw_value() < isn.raw_value() ? a + L : a;
    } else {
    return checkpoint < a - L / 2 ? a - L : a;
    }
    }
    详细思路点这里(硬分类,感觉好蠢,但是有效.jpg)
    通解推导
    checkpoint > L

    由以下公式

    (index+isn)modL=seqno\left ( index+isn \right )\mod{ L } = seqno

    通过推导可以得到

    index=seqno+kLisnindex = seqno + k * L - isn

    因此如果需要得到离checkpoint最近的index就只需要找到合适的k即可,在这里不妨设

    m=checkpoint/Lm = checkpoint / L

    m作为一个附近值,通过画图可以知道,在一般情况下,答案一定在checkpoint附近的三个区间内

    k的范围

    seqno - isn > 0

    在这种情况下,checkpoint的前中后三个区间都存在,只要列举并讨论范围就很简单了

    seqno - isn为正数的时候,index可能的一个取值会落在第②个区间上,有

    index=mL+seqnoisnindex'' = m * L + seqno - isn

    此时第①区间和第③区间上的index可以分别表示为

    index=indexLindex=index+Lindex' = index'' - L \\\\ index''' = index'' + L

    index'index''index'''的中间值进行判断,很容易得到以下规律

    a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<aL/2index=a-LaL/2checkpoint<a+L/2index=aa+L/2checkpointindex=a+L\begin{array}{l} a = m*L+seqno-isn \\\\ L = UINT32\_MAX+1 \\\\ \left \{\begin{matrix} checkpoint < a - L/2 & \text{index=a-L}\\\\ a-L/2\leq checkpoint< a+L/2 & \text{index=a}\\\\ a+L/2\leq checkpoint & \text{index=a+L} \end{matrix}\right. \end{array}

    注:此时checkpoint一定小于 a+L,因为a+L属于第③区间,而checkpoint在第②区间内

    seqno - isn < 0

    此时因为是从m*L的位置向前移动,所以相比于上面,三个可能是答案的index的分布则改为了

    index=mL+seqnoisnindex=index+Lindex=index+2Lindex' = m * L + seqno - isn\\ index'' = index' + L\\ index''' = index' + 2 * L

    所以很容易得到以下结果

    a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<a+L/2index=aa+L/2checkpoint<a+(3L)/2index=a + La+(3L)/2checkpointindex=a+2*L\begin{array}{l} a = m*L+seqno-isn\\ L = UINT32\_MAX+1\\ \left \{\begin{matrix} checkpoint < a + L/2 & \text{index=a}\\ a+L/2\leq checkpoint< a+(3*L)/2 & \text{index=a + L}\\ a+(3*L)/2\leq checkpoint & \text{index=a+2*L} \end{matrix}\right. \end{array}

    将以上两种规律整合,我们很容易可以得到以下通解

    a=mL+seqnoisnL=UINT32_MAX+1{checkpoint<aL/2index=a-LaL/2checkpoint<a+L/2index=aa+L/2checkpoint<a+(3L)/2index=a + La+(3L)/2checkpointindex=a+2*L\begin{array}{l} a = m*L+seqno-isn\\ L = UINT32\_MAX+1\\ \left \{\begin{matrix} checkpoint < a - L/2 & \text{index=a-L}\\ a-L/2\leq checkpoint< a+L/2 & \text{index=a}\\ a+L/2\leq checkpoint< a+(3*L)/2 & \text{index=a + L}\\ a+(3*L)/2\leq checkpoint & \text{index=a+2*L} \end{matrix}\right. \end{array}

    特殊情况
    checkpoint < L

    checkpoint < L的时候,通解中对于a - L的一部分(即checkpoint < a + L)就不适用了,不过分析起来也很简单,由于有

    (index+isn)modL=seqno\left ( index+isn \right )\mod{ L } = seqno

    所以当seqno小于isn的时候,答案一定在下一个区间,因此答案即L - isn + seqno,当seqno大于isncheckpoint < a + L,所以答案一定为a

    所以就可以得到上述代码了。

    TCP 段接收处理

    这部分代码逻辑完成的是tcp握手中对于tcp段的接受处理。

    我自己增加的私有成员和用途大致为:

    • _is_syn: 判断链接是否建立
    • _isn: 存入第一次建立连接时接受的seqno来初始化
    • _is_fin: 用于判断结束输入的报文是否传入

    对于acknocheckpoint的实现机制是:

    • ackno: 本质上就是返回已经整合好的数据量,也就是bytes_streambytes_written(),同时建立连接后一定存在syn所以可以直接加一,之后只需要判断fin是否到达并且整合完毕,然后再次加一即可。
    • checkpoint: 和ackno差别不大,只需要直接返回已经写入完成的字符个数即可

    知道了上述几个逻辑以后就只需要通过调整简单的逻辑flag加上lab1里面的push_substring来对payload()进行整合就可以通过了。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    void TCPReceiver::segment_received(const TCPSegment &seg) {
    // 等待并处理第一个syn链接
    if ((_is_syn == 0) && seg.header().syn) {
    _is_syn = 1;
    _isn = seg.header().seqno;
    } else if (_is_syn == 0) {
    return;
    }

    // checkpoint的位置就是已经写入完成的字符的数量
    // In your TCP implementation, you’ll use the index of the last reassembled byte as the checkpoint.
    const uint64_t checkpoint = _reassembler.stream_out().bytes_written() + 1;

    // 将内容写入reassembler,其中之所以要有(- 1 + seg.header().syn)这个部分,是因为当握手成功以后
    // seqno是从1开始的,而没有握手的时候stream_index应该将包含syn的报文写在index为0的位置上
    uint64_t stream_index = unwrap(seg.header().seqno, _isn, checkpoint) - 1 + seg.header().syn;
    _reassembler.push_substring(seg.payload().copy(), stream_index, seg.header().fin);

    // 标志结尾的TCP段是否送达
    if (seg.header().fin) {
    _is_fin = 1;
    }
    }

    optional<WrappingInt32> TCPReceiver::ackno() const {
    // 返回已经消耗的index长度,也就是ackno确认了的长度
    WrappingInt32 result = _isn + _is_syn + _reassembler.stream_out().bytes_written();
    if ((_is_fin != 0) && _reassembler.unassembled_bytes() == 0) {
    // 判断是否包含结束的报文
    result = result + _is_fin;
    }
    // 如果建立了链接才返回ackno,在建立报文之前是没有ackno的,因为没有对方的信息可以让自己确认
    return _is_syn ? optional<WrappingInt32>(result) : nullopt;
    }

    size_t TCPReceiver::window_size() const { return _capacity - _reassembler.stream_out().buffer_size(); }

    这里有一个让我感觉很疑惑的点就是在单元测试中存在两种测试样例,这里做个记录,后面如果知道了原因就来解决一下

    • 存在同时携带SYNFIN报文,按照正常的TCP握手感觉这是不合理的
    • 在接受SYN的同时会接受一部分的Data进行处理,按正常的TCP也是不会这么做的

    CS144-Lab2 计算机网络:TCP Receiver的实现
    https://halc.top/p/4e68707
    作者
    HalcyonAzure
    发布于
    2022年11月22日
    许可协议
    \ No newline at end of file diff --git a/p/5a7c7761.html b/p/5a7c7761.html new file mode 100644 index 00000000..b5dd5e8d --- /dev/null +++ b/p/5a7c7761.html @@ -0,0 +1,2 @@ +Linux下通过swap或zram管理内存 - Halcyon Zone +

    Linux下通过swap或zram管理内存

    参考网址:
    1.Ubuntu开启zram和zswap~
    2.使用zram进行内存压缩
    3.Ubuntu添加swap分区

    创建Swap分区

    Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

    Swap分区虽然可以达到扩大内存的作用,但缺点依旧很明显,相比直接使用物理内存,Swap必然速度上会出现一定的取舍。

    1. 新建一个文件夹来作为swap的文件

      1
      2
      3
      mkdir swap
      cd swap
      sudo dd if=/dev/zero of=sfile bs=1024 count=2000000

      其中sfile是文件的名字,可以自己设置,count=2000000是Swap分区的大小,这里指2G

    2. 转化为swap文件

      sudo mkswap sfile

    3. 激活swap文件

      sudo swapon sfile

    4. 查看效果

      free -m

      1
      2
      3
                    total        used        free      shared  buff/cache   available
      Mem: 478 61 184 3 233 379
      Swap: 2704 0 2704

      已经成功挂载了

    5. 添加开机加载

      1
      vi /etc/fstab

      修改配置文件,添加Swap文件(Swap文件的路径为/root/swap/sfile)

      /root/swap/sfile none swap sw 0 0

      类似如下

      1
      2
      3
      4
      /dev/vda1           /               ext4    defaults  1 1
      /dev/vda2 swap swap defaults 0 0
      /root/swap/sfile none swap sw 0 0
      none /dev/shm tmpfs defaults 0 0

    使用zram进行内存压缩

    swap空间在机械硬盘的设备上往往不一定是个好选择,这个时候牺牲一定的CPU性能来使用zram则会比较好

    zram 是在 Linux Kernel 3.2 加入的一个模块,其功能是在内存中开辟一块空间,用来存储压缩后的内存数据,这样可以在牺牲一定的 CPU Cycle 的情况下,在内存中存储尽量多的数据而不需要写入到磁盘。

    1. 安装zram-config,并重启系统

      1
      2
      sudo apt install zram-config
      sudo reboot
    2. 通过zramctl查看zram的情况(默认情况下ALGORITHM为lzo)

      1
      2
      NAME       ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
      /dev/zram0 lz4 239.4M 4K 63B 4K 1 [SWAP]

      注意到这里的压缩算法,有两种算法 lzo 和 lz4 可选,默认是 lzo。根据 Benchmark,lz4 的压缩和解压性能在压缩率和 lzo 持平的情况下显著高于后者,因此我们应该采用 lz4 而非 lzo 以获得更高的系统效率。

    3. 修改配置文件来使用lz4算法

      usr/bin/init-zram-swapping

      将源文件的以下部分

      1
      2
      3
      4
      5
      6
      7
      ## initialize the devices
      for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
      done

      替换为

      1
      2
      3
      4
      5
      6
      7
      8
      ## initialize the devices
      for i in $(seq ${NRDEVICES}); do
      DEVNUMBER=$((i - 1))
      echo lz4 > /sys/block/zram${DEVNUMBER}/comp_algorithm
      echo $mem > /sys/block/zram${DEVNUMBER}/disksize
      mkswap /dev/zram${DEVNUMBER}
      swapon -p 5 /dev/zram${DEVNUMBER}
      done
    4. 载入新的配置

      systemctl restart zram-config

    开启ZSwap

    1. 编辑grub文件

      sudo vi /etc/default/grub

    2. 在文件末尾加上

      1
      GRUB_CMDLINE_LINUX=”zswap.enabled=1″

      保存退出

    3. 在终端输入命令

      sudo update-grub

    4. 重启系统

    zswap是一种新的轻量化后端构架,将进程中正交换出的页面压缩,并存储在一个基于RAM的内存缓冲池中。除一些为低内存环境预留的一小部分外,zswap缓冲池不预先分配,按需增加,最大尺寸可用户自定义。

    Zswap启动存在于主线程中的一个前端,称为frontswap,zswap/frontswap进程在页面真正交换出之前监听正常交换路径,所以现有的交换页面选择机理不变。

    Zswap也引入重要功能,当zswap缓冲池满时自动驱除页面从zswap缓冲池到swap设备。防止陈旧页面填满缓冲池。


    Linux下通过swap或zram管理内存
    https://halc.top/p/5a7c7761
    作者
    HalcyonAzure
    发布于
    2021年3月25日
    许可协议
    \ No newline at end of file diff --git a/p/6088c65c.html b/p/6088c65c.html new file mode 100644 index 00000000..4995ea92 --- /dev/null +++ b/p/6088c65c.html @@ -0,0 +1,2 @@ +WSL配置Proxy代理引导 - Halcyon Zone +

    WSL配置Proxy代理引导

    前言

    在三番五次被wslproxy问题折腾的心态爆炸,并重装了好几次系统以后,总算理清楚了WSL如果想要搭配windowns上的clash for windows的正确使用方法。把之前无论是需要脚本还是各种复杂操作的博客都删了,在这里记录一个完全不需要任何脚本,也不需要额外配置防火墙的合理方案。

    工具环境

    • WSL 2 ArchLinux(理论上来说其他发行版应该相同)
    • Windows 11(win10应该同理)
    • Clash For Windows

    Clash的配置

    改方案为WSL继承System Proxy来达到代理上网的目的,使用TUN Mode直接用就行,不需要额外设置

    1. 正常配置好Clash For Windows,并且启用Allow LAN的设置

    2. 允许应用或功能通过 Windows Defender防火墙中寻找是否有clash-win64.exe的规则配置,注意不是 Clash For WindowsCFW本身只是clash的一个前端,在启动CFW的时候有概率防火墙只添加CFW本身,而不添加作为核心的clash的防火墙规则,这个时候则需要我们手动修改

    3. 如果已经有了clash-win64.exe的规则,则只需要配置专有和公共网络同时允许即可。如果没有clash-win64.exe的规则,可以通过下方的允许其他应用手动添加规则,具体clash核心文件的路径可以通过任务管理器后台或Clash for Windows\resources\static\files\win\x64\clash-win64.exe类似的路径查询到。添加规则的时候同时允许专用和公共即可

    之前经常折腾好了防火墙但过了三四个月或者一段时间后wslwindows之间就因为防火墙断开,但总找不到原因,现在想想很有可能是当时clash for windows升级安装的时候规则被覆盖或路径变化导致的。WSL2的网络对Windows来说也是一个Public的公开网络,在设置了单独程序允许通信之后,虽然wsl有可能无法pingwindows的主机,但正常访问clash的代理端口是没有问题的

    WSL的配置

    到这里为止防火墙的问题就解决了,只需要通过合理的方法配置好WSL下的代理变量就可以正常使用。其中主机名.local这个域名是会直接在wsl内映射到作为dns服务器的宿主机上,因此并不需要写额外的脚本来添加映射

    较为简单的方法即通过zsh终端下oh my zsh+ zsh-proxy 插件,通过设置proxy来实现全局基本功能的代理配置,而在config_proxy步骤中的代理IP填入类似Zephyrus.local:7890格式的地址即可。

    Zephyrus为我Windows的设备名,可在Windows设置中重命名,一般来说默认设置应该为类似DESKTOP-XXXX.local:7890,修改和查看的方法可通过搜索引擎自己解决

    通过以上方式配置后的WSL就可以正常通过Windows上的Clash代理了。每次WSL出网络问题总是感觉莫名其妙没头绪,之前也试过通过New-NetFireWallRule一类的方法放行防火墙,但都不是很好用或者后面偶尔突然就出问题,现在总算弄清楚了原因而且能很舒服的使用win里面的代理了。


    WSL配置Proxy代理引导
    https://halc.top/p/6088c65c
    作者
    HalcyonAzure
    发布于
    2022年5月1日
    许可协议
    \ No newline at end of file diff --git a/p/690287f9.html b/p/690287f9.html new file mode 100644 index 00000000..5fce6011 --- /dev/null +++ b/p/690287f9.html @@ -0,0 +1,2 @@ +将OpenClash设置为Adguard Home的上级DNS - Halcyon Zone +

    将OpenClash设置为Adguard Home的上级DNS

    设置步骤

    参考结合adguard home 使用 DNS 设置求教 · Issue #99中hankclc和icyleaf的回答,总结一下设置步骤作为参考

    1. 将AdGuard Home的上游DNS设置为OpenClash的DNS地址

      OpenClash的DNS地址可以在全局设置中看到,一般为127.0.0.1:7874

    2. 关闭OpenClash的本地DNS劫持

    3. AdGuard Home的重定向模式选择使用53端口替换dnsmasq

    OpenClash不要用TUN或TUN混合模式(还未自己测试)


    将OpenClash设置为Adguard Home的上级DNS
    https://halc.top/p/690287f9
    作者
    HalcyonAzure
    发布于
    2021年8月6日
    许可协议
    \ No newline at end of file diff --git a/p/6a6a7409.html b/p/6a6a7409.html new file mode 100644 index 00000000..a62e015e --- /dev/null +++ b/p/6a6a7409.html @@ -0,0 +1,2 @@ +Cloudflare Partner的CDN配置 - Halcyon Zone +

    Cloudflare Partner的CDN配置

    通过Dnspod解析域名

    ​ 由于服务器本身搭建使用的是香港的服务器,建站不需要域名备案。为了不使用Cloudflare默认的海外CDN,而使用我们需求的自定义CDN,需要把域名托管到一个非Cloudflare的平台下,这里直接托管到腾讯云Dnspod的解析下。

    1. 备份Cloudflare下的解析信息

    2. 在控制台下修改Name Server为Dnspod控制台提供的NS服务器

    3. 将之前备份的解析信息再次添入

      (这里没找到Dnspod的导入域名信息,所以手动添入)

    4. 开启"域名设置"下的CNAME加速,减少CNAME的解析次数

    设置CloudFlare CNAME

    1. 注册Cloudflare邮箱,这里不做解释

    2. 楠格(或者类似Cloudflare Partner网站) 登入自己的Cloudflare账号

    3. 将自己需要使用CDN的域名添加到控制台下,TTL设置两分钟,CDN设置为开启

      域名添加

    4. 添加完毕以后在CNAME接入处可以看到主机名对应的CNAME信息,在Dnspod设置对应的解析就可以使用CDN的解析服务。

      域名添加

      CNAME信息

      Dnspod设置

      Dnspod设置

    自定义CDN节点

    ​ 通过参考网上的IP表,在Dnspod的控制台中再次添加域名对应的A记录解析,可以设置不同的运营商解析不同的IP,来达到让流量走自定义加速的目的。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    172.64.32.1/24 (推荐移动,走香港)
    104.28.14.0/24 (推荐移动,走新加坡)
    104.23.240.0-104.23.243.254 (推荐联通、移动,线路未知)
    108.162.236.1/24 (推荐联通,走美国)
    104.20.157.0/24 (推荐联通,走日本)
    104.16.160.1/24 (推荐电信,走洛杉矶)
    172.64.0.0/24 (推荐电信,走旧金山)
    172.64.32.* (走欧洲)

    108.162.236.1/24 联通 走美国
    172.64.32.1/24 移动 走香港
    104.16.160.1/24 电信 走美国洛杉矶
    172.64.0.0/24 电信 美国旧金山
    104.20.157.0/24 联通 走日本
    104.28.14.0/24 移动 走新加坡

    104.18.62.1/24 香港hkix.net
    104.16.35.1/24 香港hkix.net
    104.16.36.1/24 香港hkix.net
    104.18.35.1/24 香港hkix.net
    104.18.36.1/24 香港hkix.net
    104.16.54.1/24 香港
    104.16.55.1/24 香港
    104.18.128.1/24 香港
    104.18.129.1/24 香港
    104.18.130.1/24 香港
    104.18.131.1/24 香港
    104.18.132.1/24 香港
    104.19.195.1/24 香港
    104.19.196.1/24 香港
    104.19.197.1/24 香港
    104.19.198.1/24 香港
    104.19.199.1/24 香港
    #适合电信的节点
    104.23.240.*
    #走欧洲各国出口 英国德国荷兰等 延迟比美国高一些 适合源站在欧洲的网站
    172.64.32.*
    #虽然去程走新加坡,但是回程线路的绕路的,实际效果不好,不推荐
    104.16.160.*
    #圣何塞的线路,比洛杉矶要快一点,推荐
    108.162.236.*
    #亚特兰大线路,延迟稳定,但是延迟较高
    #适合移动的节点
    162.158.133.*
    #走的丹麦,这一段ip只有部分能用,可以自己试一下,绕美国
    198.41.214.*
    198.41.212.*
    198.41.208.*
    198.41.209.*
    172.64.32.*
    141.101.115.*
    #移动走香港的IP段有很多,以上并不是全部。CF移动走香港的分直连和走ntt的效果都挺不错的,不过部分地区晚上还是会丢包。
    172.64.0. *
    #这是走圣何塞的,一般用香港的就行
    172.64.16.*
    #欧洲线路.绕
    #1.0.0.1效果较好
    电信部分
    大多数省直接使用1.0.0.0即可,延迟低,丢包少,
    ## 移动部分
    #新加坡
    104.18.48.0-104.18.63.255
    104.24.112.0-104.24.127.255
    104.27.128.0-104.27.143.255
    104.28.0.0-104.28.15.255
    ## 移动部分
    #圣何塞
    104.28.16.0-31.255
    104.27.144.0-243.254
    104.23.240.0-243.254
    #香港cloudflare1-100g.hkix.net
    1.0.0.0-254
    1.1.1.0-254
    #香港直连
    104.16.0.0-79.255
    104.16.96.0-175.254
    104.16.192.0-207.255

    设置了对应的A记录后保存退出,可通过ping example.com来测试是否设置成功。

    参考网站:

    1. 针对使用Cloudflare CDN国内网站的速度优化方案 - 闪电博 (wbolt.com)

    Cloudflare Partner的CDN配置
    https://halc.top/p/6a6a7409
    作者
    HalcyonAzure
    发布于
    2021年4月27日
    许可协议
    \ No newline at end of file diff --git a/p/6d032e05.html b/p/6d032e05.html new file mode 100644 index 00000000..b887052a --- /dev/null +++ b/p/6d032e05.html @@ -0,0 +1,2 @@ +Rsync使用方法摘抄 - Halcyon Zone +

    Rsync使用方法摘抄

    参考文章

    1. rsync 用法教程
    2. RSYNC备份服务

    Rsync介绍

    ​ Remote-Sync,意味远程动态同步,可以在不同的主机之间进行同步操作,相比一般将文件一次性全部备份而不同的好处是,Rsync可以做到每次增量同步,只对部分文件进行修改,目前个人主要用来和WebDAV挂载的本地目录进行配合使用,对服务器进行备份处理

    常见用法

    本地使用

    • 增量同步

      1
      2
      3
      4
      5
      6
      rsync -avz [SRC] [DEST]
      ## [SRC]为源目录
      ## [DEST]为目标目录
      ## -a:优于-r的递归参数,会同步文件的元信息(时间和权限等,在增量更新中有重要作用)
      ## -v:将结果或过程打印在控制台内
      ## -z 同步时压缩数据
    • 镜像同步

      1
      2
      rsync -avz --delete [SRC] [DEST]
      ## --delete:当检测到源文件中某个文件被删除的同时,将删除操作也同样进行同步,变成目标镜像
    • 排除文件

      这里以排除掉所有带.log字样的文件为例

      1
      2
      rsync -avz --delete --exclude '*.log' [SRC] [DEST]
      ## --exclude为字符过滤,其中这个过滤也包括了隐藏文件

      当有多个排除模式的时候,可以使用多个--exclude参数,也可以使用Bash的大括号

      1
      2
      3
      4
      ## 使用多个--exclude参数
      rsync -avz --delete --exclude '*.log' '*.txt' [SRC] [DEST]
      ## 使用Bash
      rsync -avz --delete --exclude={'*.log','*.txt'} [SRC] [DEST]

      排除隐藏文件,以及排除目录中所有文件的同时保存目录本身

      1
      2
      3
      4
      5
      6
      ## 排除隐藏文件,在Linux中即类似`.ssh`一类以'.'开头的文件,这个时候忽略'.*'即可
      rsync -avz --delete --exclude '.*' [SRC] [DEST]

      ## 排除目录中所有文件的同时保存目录本身
      rsync -avz --delete --exclude 'dir/*' [SRC] [DEST]
      ## 可以做到保存dir目录的同时,不保存dir下的所有文件

      排除的同时又强制锁定

      如果需要排除所有"*.log"的同时,又希望保存所有demo.log的文件,则可以配合--include参数一起使用,以下为例子

      1
      rsync -avz --delete --include="demo.log" --exclude="*.log" [SRC] [DEST]

    远程使用

    TODO

    基准目录备份

    TODO


    Rsync使用方法摘抄
    https://halc.top/p/6d032e05
    作者
    HalcyonAzure
    发布于
    2021年8月4日
    许可协议
    \ No newline at end of file diff --git a/p/713e2886.html b/p/713e2886.html new file mode 100644 index 00000000..c77f9305 --- /dev/null +++ b/p/713e2886.html @@ -0,0 +1,2 @@ +CloudReve个人网盘引导 - Halcyon Zone +

    CloudReve个人网盘引导

    预先准备

    1. 安装好宝塔面板,并且预先安装好LNMP环境
    2. Aria2离线下载配置
    3. FreeSSL上获取SSL证书和密钥

    CloudReve部署

    安装CloudReve

    1. 前往官方库下载最新版的对应系统的可执行文件

    2. 在BT面板内添加网站CloudReve,并且设置对应的域名和根目录(下图为示例)

      BT面板创建新网站

    3. 将可执行文件上传到在宝塔面板设置的根目录中,并cd到当前目录

    4. 运行CloudReve,并记录初始的账号密码

      1
      2
      chmod +x ./cloudreve
      ./cloudreve
    5. 登入http://ip:5212,在控制面板中修改默认的管理员账号和密码

    修改数据库为MySql

    自带的数据库是SQLite,这里需要修改为MySql

    1. 在宝塔面板创建一个MySql数据库

    2. 在运行一次CloudReve后,根目录会有一个conf.ini的文件,根据自己情况加入以下配置文件

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      ; 数据库相关,如果你只想使用内置的 SQLite数据库,这一部分直接删去即可
      [Database]
      ; 数据库类型,目前支持 sqlite | mysql
      Type = mysql
      ; MySQL 端口
      Port = 3306
      ; 用户名
      User = root
      ; 密码
      Password = root
      ; 数据库地址
      Host = 127.0.0.1
      ; 数据库名称
      Name = v3
      ; 数据表前缀
      TablePrefix = cd_
      ; SQLite 数据库文件路径
      DBFile = cloudreve.db

    添加进程守护

    这里使用Ubuntu自带的systemd进行进程守护

    1. 编辑配置文件

      vim /usr/lib/systemd/system/cloudreve.service

    2. 将下文的PATH_TO_CLOUDREVE更改为宝塔面板中设置的根目录

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      [Unit]
      Description=Cloudreve
      Documentation=https://docs.cloudreve.org
      After=network.target
      After=mysqld.service
      Wants=network.target

      [Service]
      WorkingDirectory=/PATH_TO_CLOUDREVE
      ExecStart=/PATH_TO_CLOUDREVE/cloudreve
      Restart=on-abnormal
      RestartSec=5s
      KillMode=mixed

      StandardOutput=null
      StandardError=syslog

      [Install]
      WantedBy=multi-user.target
    3. 载入进程守护并运行

      1
      2
      3
      systemctl daemon-reload
      systemctl start cloudreve
      systemctl enable cloudreve

    设置Nginx反代

    1. 在宝塔面板的站点设置中,添加反向代理,配置按下图类比设置(主要还是第二步)

      BT设置反向代理

    2. 点击配置文件,将原本的location /{}的内容替换如下内容

      1
      2
      3
      4
      5
      6
      7
      8
      9
      location / {
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_pass http://127.0.0.1:5212;

      ## 如果您要使用本地存储策略,请将下一行注释符删除,并更改大小为理论最大文件尺寸
      ## client_max_body_size 20000m;
      }
    3. 保存配置文件,通过宝塔中设置的网站域名即可直接访问网盘地址

    配置SSL证书

    1. 在FreeSSL获取证书以后,在KeyManager中导出证书和私钥,分别为.crt.key文件
    2. 在站点设置中找到SSL,使用其他证书,然后通过编辑器打开crt证书文件和key文件,分别将其中的内容复制到密钥(KEY)证书(PEM格式)
    3. 保存并开启强制HTTPS,即可通过SSL访问云盘并且进行配置了。

    参考网站:

    1. Cloudreve对接onedrive搭建属于自己的网盘系统 (lanhui.co)
    2. CloudReve官方文档

    CloudReve个人网盘引导
    https://halc.top/p/713e2886
    作者
    HalcyonAzure
    发布于
    2021年4月6日
    许可协议
    \ No newline at end of file diff --git a/p/73e1b791.html b/p/73e1b791.html new file mode 100644 index 00000000..851b1bc4 --- /dev/null +++ b/p/73e1b791.html @@ -0,0 +1,2 @@ +CS144-Lab3 计算机网络:TCP Sender的实现 - Halcyon Zone +

    CS144-Lab3 计算机网络:TCP Sender的实现

    本文最后更新于:2023年4月11日 凌晨

    TCP Sender

    需要实现的主要逻辑

    1. 追踪Receiver返回的windows_size(可接受的剩余容量)和ackno(已经确认接收的字符位置)
    2. 只要数据来了就直接对数据进行封装并发送,只有在窗口被消耗为零的情况下才停止发送
    3. 将没有被acknowledge的数据包存储起来,在超时的时候进行发送

    实现细节

    1. 对于超时重传的时间判断,使用已经提供的tick()函数,每次调用的时候传入多少时间就消耗了多少时间
    2. 超时重传的默认基准值会以成员变量的形式在TCPSender中进行初始化
    3. TCPSegment中有一个_segments_out的成员,只需要向这个queuepush一个TCPSegment就相当于将这个数据段发送了

    代码实现

    额外定义成员

    对于计时器的部分,为了方便抽象管理,我这里选择直接创建一个类来进行封装

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    class TCPTimer {
    private:
    size_t _tick_passed = 0; // 记录实时的时间戳
    size_t _rto_timeout = 0; // 记录超过多久时间没有收到ACK就重传
    unsigned int _rto_count = 0; // 记录重传的次数

    bool _is_running{false}; // 记录计时器是否启动

    public:
    // 重置计时器
    void reset(const uint16_t retx_timeout) {
    _rto_count = 0;
    _rto_timeout = retx_timeout;
    _tick_passed = 0;
    }

    // 启动计时器
    void run() { _is_running = true; }

    // 暂停计时器
    void stop() { _is_running = false; }

    // 计时器是否启动
    bool is_running() const { return _is_running; }

    // 重传次数
    unsigned int rto_count() const { return _rto_count; }

    // 慢启动
    void slow_start() {
    _rto_count++;
    _rto_timeout *= 2;
    }

    // 更新当前时间
    void update(const size_t ms_since_last_tick) { _tick_passed += ms_since_last_tick; }

    // 检测是否超时
    bool is_timeout() const { return _is_running && _tick_passed >= _rto_timeout; }

    // 重新计时
    void restart() { _tick_passed = 0; }
    };

    private的部分定义则如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 超时重传计时器
    TCPTimer _rto_timer{};

    // 记录确认的_ackno
    size_t _ackno = 0;

    // 记录窗口大小,并标记是否为空窗口
    size_t _window_size = 1;

    // 缓存队列
    std::queue<TCPSegment> _cache{};

    额外定义函数

    额外定义的函数主要作用为将已经封装好的TCP报文进行发送,如果在发送的时候检测到RTO重传计时器并没有工作,则发送的同时激活重传计时器。同时在发送了报文后对seqno序号进行消耗,移动_next_seqno指针

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void TCPSender::_send_segment(const TCPSegment &seg) {
    // 当前报文需要占用的长度
    const size_t seg_len = seg.length_in_sequence_space();
    _next_seqno += seg_len;
    _cache.push(seg);
    _segments_out.push(seg);
    // 如果没启动计时器,就启动计时器
    if (not _rto_timer.is_running()) {
    _rto_timer.run();
    _rto_timer.reset(_initial_retransmission_timeout);
    }
    }

    fill_window()

    对于需要封装的报文,大致可以分为三类,一类是最开始用于建立连接的SYN报文,一类是携带数据的PAYLOAD报文,最后一类是用于发送结束连接的挥手FIN报文。在该方法中主要的难点就是通过对目前已经确认的acknonext_seqno等数据来判断当前需要封装的报文具体是哪一类,以及根据还未接收到的数据以及零窗口本身的机制来判断空闲的窗口大小

    fill_space窗口大小

    首先,为了防止出现对方当前空闲窗口已满,而sender就一直啥也不发的情况出现,因此在接受到的窗口大小是0的时候,要将其改为1,来避免零窗口堵塞。同时由于部分数据还在传输的路上,这一部分的数据也需要被减掉,从而得到最后的空闲大小fill_space。

    1
    2
    size_t fill_space = _window_size ? _window_size : 1;
    fill_space -= bytes_in_flight();
    SYN报文

    SYN报文的判断很简单,因为发送SYN的话无非是打开连接的建立者A自己,又或者是收到了A发来报文的B返回一个携带ACKSYN报文进行确认。而对于A和B来说,由于SYN报文都是他们自己发送的第一个报文,因此在封装的过程中,他们的“下一个发送序列号”_next_seqno显而易见的应该为零。大致逻辑代码如下

    1
    2
    // _next_seqno == 0 代表还没有开始发送数据,此时需要发送SYN报文
    section.header().syn = (_next_seqno == 0);
    PAYLOAD报文

    对于含有内容的报文,主要的工作就是对payload长度的合理切割,对此只需要在TCPConfig::MAX_PAYLOAD_SIZE和当前剩余``中取最小值并从_stream当中读入。

    1
    2
    3
    // 将数据进行封装
    size_t segment_payload_size = min(TCPConfig::MAX_PAYLOAD_SIZE, fill_space);
    section.payload() = _stream.read(segment_payload_size);
    FIN报文

    _stream发送完毕,并且被我方全部接受了的时候发送一个携带FIN的报文,告知对方我方已经发送完毕。由于FIN本身需要消耗一个序列号,因此发送前需检查当前数据段是否还有一个空位来放FIN

    1
    2
    3
    4
    // 如果要发送FIN的话,窗口内至少还要剩余一个字符(bytes_in_flight的也会占用窗口)
    if (_stream.eof() && fill_space > section.length_in_sequence_space()) {
    section.header().fin = true;
    }
    发送过滤

    在标记完了FIN之后,如果这个报文依旧不占用序列号,则说明这个报文不是TCP Sender处理的部分;又或者此时在FIN已经发送的基础上,重复发送了一个FIN,这时多的FIN应该被抛弃

    1
    2
    3
    4
    // 空字符报的报文或错误溢出的报文不应该由`TCP Sender`进行发送
    if (section.length_in_sequence_space() == 0 || _next_seqno == _stream.bytes_written() + 2) {
    return;
    }
    最后总的代码如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    void TCPSender::fill_window() {
    size_t fill_space = _window_size ? _window_size : 1;
    fill_space -= bytes_in_flight();
    while (fill_space > 0) {
    TCPSegment section;

    // 发送的数据包的序号是将要写入的下一个序号
    section.header().seqno = next_seqno();

    // _next_seqno == 0 代表还没有开始发送数据,此时需要发送SYN报文
    section.header().syn = (_next_seqno == 0);

    // 将数据进行封装
    size_t segment_payload_size = min(TCPConfig::MAX_PAYLOAD_SIZE, fill_space);
    section.payload() = _stream.read(segment_payload_size);

    // 空闲窗口中至少要留有一位序号的位置才能将当前数据包添加FIN(bytes_in_flight的也会占用窗口)
    if (_stream.eof() && fill_space > section.length_in_sequence_space()) {
    section.header().fin = true;
    }

    // 如果这个报文啥都没有,或者FIN报文已经发送了,就没必要发送新的数据段了
    if (section.length_in_sequence_space() == 0 || _next_seqno == _stream.bytes_written() + 2) {
    return;
    }

    fill_space -= section.length_in_sequence_space();

    _send_segment(section);
    }
    }

    bytes_in_flight()

    这个感觉可能是看起来最简单的一个函数了,因为用了_ackno来记录已经确认过的报文,同时_next_seqno又代表的是将要发送的数据流位置,因此只需要将_next_seqno - _ackno返回的就是正在发送中的数据长度了。(最开始想实现的时候还在考虑要不要在每次fill_windowack_received的时候添加计数器。。)

    1
    uint64_t TCPSender::bytes_in_flight() const { return _next_seqno - _ackno; }

    ack_received()

    确认报文主要需要的逻辑有以下四个部分:

    1. 只处理有效并且正确的ackno。如果ackno有效,记录acknowindow_size用以fill_window()来进行报文的封装
    2. 记录ack报文中包含的窗口大小
    3. 如果曾经的报文已经确认过,则报文已经送达,将送达的报文从缓冲区中弹出,如果所有的报文都被弹出了,则关闭RTO计时器
    4. 如果接受到了对方这时的窗口又有了空闲大小,则使用fill_window()来填充新的空报文
    对于第一个逻辑

    对于判断ackno是否是正确的ackno,只需要判断ackno是否处于已经记录的_ackno_next_seqno之间,如果在这个区间之外,意味着要么是老的ackno,要么是确认了不存在的数据,需要进行短路丢弃,逻辑如下

    1
    2
    3
    4
    5
    uint64_t abs_ackno = unwrap(ackno, _isn, _next_seqno);
    // 如果接收到对方发送的确认序号大于自己的下一个序号或者小于自己的已经被确认序号,说明接收到的确认序号是错误的
    if (abs_ackno < _ackno || abs_ackno > _next_seqno) {
    return;
    }
    对于第二个逻辑

    在接受到了窗口大小之后只需要直接将其记录

    1
    2
    // 记录窗口大小
    _window_size = window_size;
    对于第三、四个逻辑

    这部分都是属于对于超时重传的处理,其中主要需要实现的是对缓冲区确认后的报文进行弹出,同时弹出所有报文后取消对RTO的占用,初始化超时重传的等待时间并记录当前的时间。

    其中弹出操作只有在_ackno确认的是第一个报文对应的seqnolength的时候才进行

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    // 用于判断是否重置计时器
    bool has_reset = false;

    // 当缓冲区内的报文已经被ackno确认,则将已经确认的报文进行丢弃
    while (not _cache.empty() &&
    _cache.front().header().seqno.raw_value() + _cache.front().length_in_sequence_space() <= ackno.raw_value()) {
    if (not has_reset) {
    // 有效的确认报文到达,重置计时器
    _rto_timer.reset(_initial_retransmission_timeout);
    has_reset = true;
    }
    _cache.pop();
    }

    if (_cache.empty()) {
    // 所有数据包都被确认了,所以暂停计时器
    _rto_timer.stop();
    }

    // 如果剩余的窗口还有空间,就填入内容
    fill_window();
    最后总的代码如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    //! \param ackno The remote receiver's ackno (acknowledgment number)
    //! \param window_size The remote receiver's advertised window size
    void TCPSender::ack_received(const WrappingInt32 ackno, const uint16_t window_size) {
    uint64_t abs_ackno = unwrap(ackno, _isn, _next_seqno);
    // 如果接收到对方发送的确认序号大于自己的下一个序号或者小于自己的已经被确认序号,说明接收到的确认序号是错误的
    if (abs_ackno < _ackno || abs_ackno > _next_seqno) {
    return;
    }
    _ackno = abs_ackno;

    // 记录窗口大小
    _window_size = window_size;

    // 用于判断是否重置计时器
    bool has_reset = false;

    // 当缓冲区内的报文已经被ackno确认,则将已经确认的报文进行丢弃
    while (not _cache.empty() &&
    _cache.front().header().seqno.raw_value() + _cache.front().length_in_sequence_space() <= ackno.raw_value()) {
    if (not has_reset) {
    // 有效的确认报文到达,重置计时器
    _rto_timer.reset(_initial_retransmission_timeout);
    has_reset = true;
    }
    _cache.pop();
    }

    if (_cache.empty()) {
    // 所有数据包都被确认了,所以暂停计时器
    _rto_timer.stop();
    }

    // 如果剩余的窗口还有空间,就填入内容
    fill_window();
    }

    tick()

    该函数主要的作用是推动时间流动,并且判断是否触发超时重传,如果触发了超时重传首先将计时器更新到当前时间。然后当对方窗口不繁忙的情况下(window_size非零)触发了重传就把下次重传的等待时间翻倍,并且记录一次重连;如果对方窗口正处于繁忙期(window_size为零),则不翻倍连接时间。然后再将缓冲区内第一个发送的报文进行重新发送。代码如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    //! \param[in] ms_since_last_tick the number of milliseconds since the last call to this method
    void TCPSender::tick(const size_t ms_since_last_tick) {
    // 更新当前时间
    _rto_timer.update(ms_since_last_tick);

    // 检测是否超时
    if ((not _rto_timer.is_timeout())) {
    return;
    }
    // 如果上一个收到的报文中,窗口大小不是零,但是依旧超时,说明是网络堵塞,执行慢启动
    if (_window_size != 0) {
    _rto_timer.slow_start();
    }

    // 重传次数小于最大重传次数,就重传
    if (_rto_timer.rto_count() <= TCPConfig::MAX_RETX_ATTEMPTS) {
    // 发送缓冲区中的第一个报文段
    _segments_out.push(_cache.front());
    _rto_timer.restart();
    }
    }

    consecutive_retransmissions()

    这个函数就是直接返回次数的,直接返回_rto_timer.rto_count();的大小即可。


    CS144-Lab3 计算机网络:TCP Sender的实现
    https://halc.top/p/73e1b791
    作者
    HalcyonAzure
    发布于
    2022年12月3日
    许可协议
    \ No newline at end of file diff --git a/p/76495b47.html b/p/76495b47.html new file mode 100644 index 00000000..b0f1520f --- /dev/null +++ b/p/76495b47.html @@ -0,0 +1,2 @@ +快慢指针 - Halcyon Zone +

    快慢指针

    以下内容仅为刷题总结,只记录目前遇到过的情况,如果后面遇到了更多可能性再做记录。

    快慢指针

    快慢指针的主要思想有点类似追击问题,通过让两个不同的小人以不同的速度在线性路径上行进,来招到某个特殊的相对位置。通常可以用来解决大致一下两类问题:

    1. 线性路径上某特殊点的位置和对应的操作
    2. 判断链表中是否存在循环(以及循环的点位置)

    思路

    一般的思路是让两个不同的小人先以某一个相对的路径进行移动,之后再以一定倍率的相对速度进行继续移动,如果发生了『追击』、『相遇』或者『触底』等特殊事件的时候,就可以作为解题需要的特殊位置来进行处理。

    举例一:回文链表

    如何判断出链表的中点位置?

    答:通过两个速度分别为v2v的指针同时从表头开始出发,当2v速度的指针『触底』的时候,以速度v前进的指针指向的位置理应为中点。

    如果链表的长度为偶数的话,具体是停留在中间位置的左边还是右边要结合具体情况进行判断

    举例二:环形链表

    如何判断链表内是否有循环?

    答:让两个不同速度的指针分别出发,如果有环存在的话,则必然会有两个指针在环内相遇。

    举例三:环形链表 II

    如何判断链表内开始进入环的位置?

    答:让两个指针分别以速度v2v出发,相遇则说明环存在。这个时候假入环前的长度为D,设环的长度为C,入环点到相遇点的距离为S1,相遇点重新回到入环点的距离则为S2。

    • 此时快指针比慢指针多走n圈,所以走的距离必然为D+S1+nC
    • 慢指针走一圈的时候,快指针能走两圈。所以相遇必然发声在第一个环内,所以慢指针走的距离为D+S1
    • 由于2 * (D + S1) == D + S1 + nCC = S1 + S2,所以不难得出D = (n - 1)(S1 + S2) + S2,即D = (n - 1)C + S2的结论,翻译一下则为,入环点前面的长度D即为慢指针再走S2,到达入环点之后,再走n-1圈的长度
    • 所以这个时候只需要再设定一个指针,让它从头开始走,当走到入环点D的时候,理论上来说慢指针也将走完第n-1圈,所以他们会相遇,同时慢指针的步数即为进入环的长度!

    举例四:倒数第N个节点

    如何删除链表中的倒数第N个节点?

    答:让两个起始位置相差n的指针以同样的速度运动,当前面的指针『触底』的时候,后面的指针自己就是「倒数第n个」节点了。

    实际操作的时候,由于单向链表需要知道前一个节点才能对后一个节点进行操作,所以通常会让走的快的节点比自己先走一步。


    快慢指针
    https://halc.top/p/76495b47
    作者
    HalcyonAzure
    发布于
    2021年12月2日
    许可协议
    \ No newline at end of file diff --git a/p/77f84830.html b/p/77f84830.html new file mode 100644 index 00000000..9d326783 --- /dev/null +++ b/p/77f84830.html @@ -0,0 +1,2 @@ +Ubuntu删除无用的包和垃圾文件 - Halcyon Zone +

    Ubuntu删除无用的包和垃圾文件

    参考网站

    1. Ubuntu删除无用缓存及垃圾文件

    常用的清理指令

    1
    2
    3
    sudo apt-get autoclean  ## 清理旧版本的软件缓存
    sudo apt-get clean ## 清理所有软件缓存
    sudo apt-get autoremove ## 删除系统不再使用的孤立软件

    这三个指令主要是用于清理升级时候产生的缓存和无用的包

    包管理的临时文件目录

    • 包在/var/cache/apt/archives
    • 没有下载完毕的在/var/cache/apt/archives/partial

    卸载软件

    1
    2
    sudo apt-get remove --purge [软件名字]  ## 卸载某个软件
    dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P ## 删除系统上多余的配置文件

    删除孤立的包

    1
    sudo apt-get install deborphan -y

    删除内核

    ​ 见博客:删除多余的Ubuntu内核,解决因grub无法正常启动的问题


    Ubuntu删除无用的包和垃圾文件
    https://halc.top/p/77f84830
    作者
    HalcyonAzure
    发布于
    2021年5月7日
    许可协议
    \ No newline at end of file diff --git a/p/783d8b13.html b/p/783d8b13.html new file mode 100644 index 00000000..b975b17c --- /dev/null +++ b/p/783d8b13.html @@ -0,0 +1,2 @@ +OSTEP:通过分段管理内存 - Halcyon Zone +

    OSTEP:通过分段管理内存

    第十六章:分段

    1. 这里记录一个样例作为例子,其他的答案则跳过重复的计算步骤

      运行第一个seed可以得到以下输出

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      ARG seed 0
      ARG address space size 128
      ARG phys mem size 512

      Segment register information:

      Segment 0 base (grows positive) : 0x00000000 (decimal 0)
      Segment 0 limit : 20

      Segment 1 base (grows negative) : 0x00000200 (decimal 512)
      Segment 1 limit : 20

      Virtual Address Trace
      VA 0: 0x0000006c (decimal: 108) --> PA or segmentation violation?
      VA 1: 0x00000061 (decimal: 97) --> PA or segmentation violation?
      VA 2: 0x00000035 (decimal: 53) --> PA or segmentation violation?
      VA 3: 0x00000021 (decimal: 33) --> PA or segmentation violation?
      VA 4: 0x00000041 (decimal: 65) --> PA or segmentation violation?

      对于VA 0: 0x0000006c (decimal: 108)的情况计算如下

      1. Address Size为128(2^7)得到高位为第7位
      2. VA0x6c(108)转为二进制,按7位来算则是1 101100,因此可以知道这是SEG 1的地址
      3. 栈是从最下方的内存反方向增加,VA最底部内存位为0x80(128),因此0x6c(108)VA对应偏移量为108 - 128 = -20
      4. VA0x80(128)的地址对应PA为0x200(512),因此按偏移量-20算可以得到VA中0x6c(108)对应的PA0x1ec(492)

      计算过程(字丑.jpg)

      答案
      1
      2
      3
      4
      5
      6
      Virtual Address Trace
      VA 0: 0x0000006c (decimal: 108) --> VALID in SEG1: 0x000001ec (decimal: 492)
      VA 1: 0x00000061 (decimal: 97) --> SEGMENTATION VIOLATION (SEG1)
      VA 2: 0x00000035 (decimal: 53) --> SEGMENTATION VIOLATION (SEG0)
      VA 3: 0x00000021 (decimal: 33) --> SEGMENTATION VIOLATION (SEG0)
      VA 4: 0x00000041 (decimal: 65) --> SEGMENTATION VIOLATION (SEG1)
    2. 以第一题为参考;在虚拟地址中SEG 0的范围是0-19SEG 1的范围是108-127,非法地址为20-107

      以下为通过运行-A标志对分界点进行分别测试有如下结果

      1
      2
      3
      4
      5
      6
      7
      Virtual Address Trace
      VA 0: 0x00000000 (decimal: 0) --> VALID in SEG0: 0x00000000 (decimal: 0)
      VA 1: 0x00000013 (decimal: 19) --> VALID in SEG0: 0x00000013 (decimal: 19)
      VA 2: 0x00000014 (decimal: 20) --> SEGMENTATION VIOLATION (SEG0)
      VA 3: 0x0000006b (decimal: 107) --> SEGMENTATION VIOLATION (SEG1)
      VA 4: 0x0000006c (decimal: 108) --> VALID in SEG1: 0x000001ec (decimal: 492)
      VA 5: 0x0000007f (decimal: 127) --> VALID in SEG1: 0x000001ff (decimal: 511)
    3. 设置为以下指令即可

      1
      ./segmentation.py -a 16 -p 128 -A  0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 --b0 0 --l0 2 --b1 16 --l1 1 -c

      输出结果

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      Virtual Address Trace
      VA 0: 0x00000000 (decimal: 0) --> VALID in SEG0: 0x00000000 (decimal: 0)
      VA 1: 0x00000001 (decimal: 1) --> VALID in SEG0: 0x00000001 (decimal: 1)
      VA 2: 0x00000002 (decimal: 2) --> SEGMENTATION VIOLATION (SEG0)
      VA 3: 0x00000003 (decimal: 3) --> SEGMENTATION VIOLATION (SEG0)
      VA 4: 0x00000004 (decimal: 4) --> SEGMENTATION VIOLATION (SEG0)
      VA 5: 0x00000005 (decimal: 5) --> SEGMENTATION VIOLATION (SEG0)
      VA 6: 0x00000006 (decimal: 6) --> SEGMENTATION VIOLATION (SEG0)
      VA 7: 0x00000007 (decimal: 7) --> SEGMENTATION VIOLATION (SEG0)
      VA 8: 0x00000008 (decimal: 8) --> SEGMENTATION VIOLATION (SEG1)
      VA 9: 0x00000009 (decimal: 9) --> SEGMENTATION VIOLATION (SEG1)
      VA 10: 0x0000000a (decimal: 10) --> SEGMENTATION VIOLATION (SEG1)
      VA 11: 0x0000000b (decimal: 11) --> SEGMENTATION VIOLATION (SEG1)
      VA 12: 0x0000000c (decimal: 12) --> SEGMENTATION VIOLATION (SEG1)
      VA 13: 0x0000000d (decimal: 13) --> SEGMENTATION VIOLATION (SEG1)
      VA 14: 0x0000000e (decimal: 14) --> SEGMENTATION VIOLATION (SEG1)
      VA 15: 0x0000000f (decimal: 15) --> VALID in SEG1: 0x0000000f (decimal: 15)
    4. 要让90%的地址可以被访问,则对于SEG 0的界限寄存器到SEG 1的界限寄存器中间地址差要为总虚拟地址的10%即可。

      (b1l1(b0+l0))AddressSize<10%\frac{(b1 - l1 - (b0 + l0))}{Address Size} < 10\%

    5. 所以地址都失效代表没有可以访问的地址,因此l0l1界限寄存器都设置为0即可


    OSTEP:通过分段管理内存
    https://halc.top/p/783d8b13
    作者
    HalcyonAzure
    发布于
    2022年4月20日
    许可协议
    \ No newline at end of file diff --git a/p/795cfa1d.html b/p/795cfa1d.html new file mode 100644 index 00000000..90be1ed1 --- /dev/null +++ b/p/795cfa1d.html @@ -0,0 +1,2 @@ +总结:2022年5月 - Halcyon Zone +

    总结:2022年5月

    这个月算是找回了感觉,还算充实。

    做了的事情

    学习方面

    这个月应该算是最平常的一个月了,整个人谈不上有动力,也谈不上完全摆烂。月初刚开始的时候把OSTEP上操作系统虚拟化的部分基本上写完了,然后就开始关注开源之夏项目申请相关的内容。在之前某个学长的推荐下看过一篇xmake-clangd配置vscode写cpp环境的知乎的帖子,当时对于cpp编译和链接相关的知识还完全没有概念,在开源之夏的时候模模糊糊搜了下xmake发现居然有项目能申请,就怂恿和gofaquan一起报了相关的项目。在五月底到六月初花了大概一百多RMB学习了cpp常见的一些项目管理会遇到的问题,感觉还蛮值的,希望最后项目申请能成功中标,给暑假的自己找点事情做。

    学校也快到期末了,这学期的大作业还算应付的过来,大部分大作业都能组队解决,不能组队的也不算麻烦,基本上1-2天的时间也都能搞定,希望下个月的期末考试能一切顺利,别挂科。

    生活方面

    这个月主要的学习部分应该也就是上半个月和六月份初了。五月中旬的时候学校终于有了解封相关的信息,于是开始到处想办法出去吃,报复性消费了好几顿过度饮食,体重直接涨了十多斤。现在期末考试临近,也没有什么减肥的想法,打算在考试前可能就通过不断的摄入碳水来缓解压力了,减肥啥的还是等考完期末考试再说了XD。

    然后就是每次考试前都日常想要有的报复性消费。这学期把自己之前Niz那个108键的键盘换成了68配位的。目前过渡到日常使用已经没什么问题了,后面看看能不能开发点新功能,再提高提高效率(其实就是差生文具多)

    六月份要做的事情

    学习计划

    • 希望期末考试算顺利复习完,不挂科
    • 能熟悉xmake要导入的包相关源码

    生活计划

    在期末考试结束以前是不指望有什么生活质量了,只能寄托希望给暑假的自己了

    • 减肥!至少恢复160-以下
    • 调整自己的作息,打破在家必摆烂的心态(感觉不太可能)

    总结:2022年5月
    https://halc.top/p/795cfa1d
    作者
    HalcyonAzure
    发布于
    2022年6月7日
    许可协议
    \ No newline at end of file diff --git a/p/7bfa5e14.html b/p/7bfa5e14.html new file mode 100644 index 00000000..b960d01e --- /dev/null +++ b/p/7bfa5e14.html @@ -0,0 +1,2 @@ +使用Github Actions自动部署Hexo - Halcyon Zone +

    使用Github Actions自动部署Hexo

    前言

    之前博客一直用的都是Jekyll框架,在使用Github Pages进行部署的时候并不需要自己手动配置,不过在换了Hexo主题之后,每次写完了博客除了要push一次commit到博客的内容分支上,还需要自己手动deploy一次。虽然也不会很麻烦,不过用Github Actions来完成这个过程也要更顺畅一些。原本觉得这个需求应该很简单,直接在Actions上执行一次hexo g -d的指令就好,结果因为GithubHTTPS上对Token的验证,以及Hexo自带的one-command-deployment存在BUG,折腾到凌晨两三点才发现,并且通过issues里面提供的修改链接使用oauth进行url验证的方法还是失败了,最后花了半小时改成了ssh密钥验证很轻松就完成了。。下面为对HexoActions的脚本的一个备份

    脚本备份

    配置文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    name: Hexo Deploy

    on:
    push:
    branches:
    - hexo

    jobs:
    deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
    uses: actions/checkout@v2
    with:
    ref: hexo

    # Caching dependencies to speed up workflows. (GitHub will remove any cache entries that have not been accessed in over 7 days.)
    - name: Cache node modules
    uses: actions/cache@v1
    id: cache
    with:
    path: node_modules
    key: ${{ runner.os }}-node-v2-${{ hashFiles('**/package-lock.json') }}
    restore-keys: |
    ${{ runner.os }}-node-v2

    - name: Install Dependencies
    if: steps.cache.outputs.cache-hit != 'true'
    run: |
    npm ci

    # Deploy hexo blog website.
    - name: Build and Deploy
    run: |
    mkdir -p ~/.ssh/
    echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_rsa
    chmod 600 ~/.ssh/id_rsa
    ssh-keyscan github.com >> ~/.ssh/known_hosts
    git config --global user.email "halc-days@outlook.com"
    git config --global user.name "HalcyonAzure"
    npx hexo g -d
    rm -rf ~/.ssh/id_rsa

    整个脚本大致流程为

    1. 检测到hexo的内容分支有push之后,checkout到内容分支。

    2. 判断是否有nodejsmodules缓存。

      • 如果检测到有效缓存则跳过安装步骤,直接进行下一步。
      • 如果没有检测到有效缓存则对模块进行部署
    3. 创建id_rsa密钥文件,并将仓库中DEPLOY_KEYsecret写入密钥文件,并且配置github.com的信任和全局帐号邮箱

    4. hexo进行generate & deploy操作

    5. 删除写入的密钥文件


    使用Github Actions自动部署Hexo
    https://halc.top/p/7bfa5e14
    作者
    HalcyonAzure
    发布于
    2022年4月15日
    许可协议
    \ No newline at end of file diff --git a/p/80f884dc.html b/p/80f884dc.html new file mode 100644 index 00000000..438f01fe --- /dev/null +++ b/p/80f884dc.html @@ -0,0 +1,2 @@ +Ubuntu下安装Oh My Zsh引导 - Halcyon Zone +

    Ubuntu下安装Oh My Zsh引导

    本文最后更新于:2022年4月7日 下午

    参考文章

    安装Oh My Zsh

    安装Zsh

    1
    2
    3
    sudo apt install zsh -y
    chsh -s /bin/zsh
    echo $SHELL ## 如果输出bash则需要重启SHELL

    脚本安装

    1
    wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh

    Zsh的配置

    字体

    字体安装(Hack NF)

    1
    apt install fonts-hack

    其他字体:ryanoasis/nerd-fonts

    主题切换

    1. 编辑zsh配置文件

      1
      vim ~/.zshrc
    2. 修改主题(以powerlevel10k为例)

      1. 拉取主题仓库

        1
        git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
      2. ~/.zshrc下修改主题内容

        1
        ZSH_THEME="powerlevel10k/powerlevel10k"

    插件配置

    1. 安装zsh-autosuggestionszsh-syntax-highlightingzsh-proxyz

      1
      2
      3
      git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
      git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
      git clone https://github.com/sukkaw/zsh-proxy.git ~/.oh-my-zsh/custom/plugins/zsh-proxy
    2. 配置插件,编辑.zshrc文件,在plugins处添加,类似效果如下:

      1
      2
      3
      4
      ## 根据官方文档,zsh-syntax-highlighting 插件需放在最后
      plugins=(
      git extract zsh-autosuggestions z zsh-proxy zsh-syntax-highlighting
      )
    3. zshrc完整文件配置帮助

      1
      2
      3
      4
      5
      6
      ## 以下内容去掉注释即可生效:
      ## 启动错误命令自动更正
      ENABLE_CORRECTION="true"

      ## 在命令执行的过程中,使用小红点进行提示
      COMPLETION_WAITING_DOTS="true"

    Ubuntu下安装Oh My Zsh引导
    https://halc.top/p/80f884dc
    作者
    HalcyonAzure
    发布于
    2021年10月22日
    许可协议
    \ No newline at end of file diff --git a/p/82bd449c.html b/p/82bd449c.html new file mode 100644 index 00000000..f7977f32 --- /dev/null +++ b/p/82bd449c.html @@ -0,0 +1,2 @@ +使用clink优化cmd - Halcyon Zone +

    使用clink优化cmd

    参考链接

    预先准备

    苦于powershell每次都要一秒多的启动速度,偶然这两天发现了clink这个用于提升cmd体验的工具,尝试了下发现经过简单的配置以后可以替代平时绝大部分ps的需求。因此在这里记录一下基本配置流程。

    clinkclink-flex-prompt都可以使用scoop在Windows中完成安装。其中clink的大致效果就是在启动cmd的时候进行注入,来实现一些额外功能的扩展。clink-flex-prompt提供的功能则是类似oh-my-zshprompt自定义,让交互界面不至于太苍白

    1
    scoop install clink clink-flex-prompt

    这两个组件都是在scoop默认的main仓库就有,不需要添加额外的bucket就能直接安装。

    在使用scoop安装了clink之后,还需要使用

    1
    clink autorun install

    指令来实现每次启动cmd之前都自动启用clink,也可以使用clink inject来在当前的cmd当中暂时体验一下clink的效果

    依据Clink官方文档中的提及,原本是会有一个Use enhanced default settings的选项来默认实现一些自动填充或快捷键的功能。但在使用scoop安装clink的情况下,至少可以发现自动显示suggestions补全的功能是没有被配置好的。

    自动补全

    对于autosuggest的功能,只需要执行下面的指令就可以实现

    1
    clink set autosuggest.enable true

    创建.inputrc文件

    类似zsh有一个.zshrc,对于clink来说也有一个.inputrc的文件用于初始化clink的配置文件。

    使用CMD输入下面的指令来在Windows的用户目录创建inputrc

    1
    notepad %userprofile%\.inputrc

    创建好了以后可以在其中粘贴以下内容来实现一些基本的功能:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # Some common Readline config settings.

    set colored-stats on # Turn on completion colors.
    set colored-completion-prefix on # Color the typed completion prefix.

    # Some config settings that only work in Clink.

    $if clink
    set search-ignore-case on # Case insensitive history searches.
    set completion-auto-query-items on # Prompt before showing completions if they'll exceed half the screen.
    $endif

    # Add your keybindings here...

    对于具体inputrc的配置写法可以看这里:Init File

    使用scoop安装了flex-prompt以后的使用方式也很简单。只需要在cmd里面执行flexprompt configure以后,就可以像p10k那样来自定义一个自己需要的,较为美观的终端提示了。这一块都是有可视化交互的,就不做过多的赘述。

    实现Linux中的一些基础指令

    平时写代码的时候因为也主要是用Linux系统,对lsrm这种指令已经敲出肌肉记忆了。Powershell里面对这些指令做了兼容,因此用的时候没有什么额外的感觉,但是切换到cmd的时候就会发现这些指令都不一样了,dirdel一类的指令用的很不顺手。这个时候就有两种解决方法。一种方法算是曲线救国,通过调用git-bash里面提供的工具来实现类似原生Linux的指令,这也是比较推荐的一种方式。

    配置Git可执行文件的目录

    Windows中安装好了Git之后,往往都会有一个git-bash,而我们则可以通过git-bash来实现一些本来在Linux才能执行的指令。而之所以能达到这种效果,是因为Git在安装好了以后在安装目录下有一个/usr/bin的文件夹,里面已经预先放好了可以使用的类似Linux中的一些基本指令,诸如lscat这种常用工具都已经有了。因此我们只需要在系统的环境变量中,将<Git的安装路径>\usr\bin添加到PATH中即可。

    比如我是使用scoop安装了git,因此我的git安装路径如下:

    1
    C:\Users\Halc\scoop\apps\git\current\usr\bin

    然后我就只需要在环境变量中把这个路径添加到PATH中,我就可以使用我需要的基础工具了:

    修改环境变量

    使用cmd脚本预先配置好alias

    还有一种方式是创建alias,以替代原生cmd的一些指令。这种方法是我最先使用的方法,后面发现了git-bash中的工具是需要额外配置环境变量以后就没有使用这种方法了。

    Windows上创建alias的方法是使用doskey来执行创建,clink则支持在启动的时候自动执行一个cmd脚本,来实现doskey的读入。为此clink默认会从以下路径来寻找clink_start.cmd文件,用以初始化cmd控制台

    • Windows XP: C:\Documents and Settings\<username>\Local Settings\Application Data\clink
    • Windows Vista以及更高的版本:C:\Users\<username>\AppData\Local\clink

    如果需要修改clink_start.cmd的位置,可以参考这部分文档:File Locations

    在这里我的操作系统目前是Windows 10,因此我只需要在C:\Users\<username>\AppData\Local\clink目录下创建clink_start.cmd文件,并写入以下内容

    1
    2
    3
    4
    5
    6
    @echo off
    doskey code=code-insiders $1
    doskey rm=del
    doskey cp=copy
    doskey mv=move
    doskey of=explorer.exe .

    然后保存以后,就会在下一次启动cmd之前执行这些doskey指令,来实现alias的效果了。

    使用cmd作为Windows Terminal的默认应用

    最后的最后,只需要在Windows Terminal里面设置cmd为默认的应用,就可以实现每次启动wt的时候,都是秒开cmd的效果了,再也不用每次都等powershell启动才能输入指令了。

    修改Windows Terminal默认配置文件

    使用clink优化cmd
    https://halc.top/p/82bd449c
    作者
    HalcyonAzure
    发布于
    2023年6月17日
    许可协议
    \ No newline at end of file diff --git a/p/83fa91fc.html b/p/83fa91fc.html new file mode 100644 index 00000000..c1f76146 --- /dev/null +++ b/p/83fa91fc.html @@ -0,0 +1,2 @@ +基础算法(一) - Halcyon Zone +

    基础算法(一)

    基础算法(一)

    快速排序

    快排

    题目链接:785. 快速排序 - AcWing题库

    快排的主要思想是基于分治

    找到分界点

    对于一整串数组,首先找到一个值作为分界点。分界点的取值有三种取值方法:

    • 取区间的左边界
    • 取区间的中间位置的值
    • 随机取一个位置

    调整区间

    让分界点(设为x)前面的区间部分全都是小于等于x的值,数组后面的部分则都是大于等于x的部分。

    递归处理左右两段

    再对区间的左和右分别进行排序,只要两侧都成功排序那么整个区间就完成了排序。


    该问题在处理的过程中主要的操作就是调整区间。并且最后的效果是让区间处于了两种互斥的不同状态。因此可以用双指针的做法,同时从前和末端向中间进行扫描,当他们一方扫描到需要进行交换的异端分子的时候,就等待另一端也扫描出同样的异端分子。当双方都扫描到对方的异端分子的时候,只需要将这两个异端分子同时交换,当两个指针相遇的时候,也就是处理好了所有异端分子的时候。

    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    void quick_sort(int q[], int l, int r) {
    if (l >= r)
    return;
    int x = q[(l + r) / 2], i = l - 1, j = r + 1;
    while (i < j) {
    do
    i++;
    while (q[i] < x);
    do
    j--;
    while (q[j] > x);
    if (i < j)
    swap(q[i], q[j]);
    }
    quick_sort(q, l, j), quick_sort(q, j + 1, r);
    }

    第k个数

    题目链接:786. 第k个数 - AcWing题库

    找到分界点、选取区间

    分界点的选取和快排相同。不同的是由于我们这里只需要第k小的数,因此在此时对划分出来的区间长度进行判断。如果k的大小小于左区间长度l,那么说明k在左区间,继续从左区间寻找第k小的数。如果k的大小大于l,说明k在右区间,在右区间寻找第(k - l)小的数。


    代码实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    int k_sort(int l, int r, int k) {
    if (l >= r)
    return q[l];
    int x = q[(l + r) >> 1], i = l - 1, j = r + 1;
    while (i < j) {
    do
    i++;
    while (q[i] < x);
    do
    j--;
    while (q[j] > x);
    if (i < j)
    swap(q[i], q[j]);
    }

    int sl = j - l + 1;
    if (k <= sl)
    return k_sort(l, j, k);
    else
    return k_sort(j + 1, r, k - sl);
    }

    归并排序

    题目链接:787. 归并排序 - AcWing题库

    1. 确定分界点:mid = (l + r) / 2
    2. 分别递归排序左区间和右区间
    3. 将两个数组合并

    双指针合并

    归并排序的主要思路就是将原本一个大数组,使用分治的思想,从单个数字的小数组进行不断的归并,最后获得的就是一个有序的新数组。因此主要的操作也就是在合并的这个操作上。

    我们需要合并的数组有两个,因此这部分只需要用两个数组分别指向这两个数组的开头。然后再创建一个临时数组用于存放归并的结果。归并的过程中只需要每次都将两个指针中最小的那个输入加入临时数组中,然后将存入的指针后移,直到两个数组中其中一个被归并完毕,再将另外一个数组后面所有的结果合入答案的临时数组,最后将临时数组的结果写入原数组中即可。


    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    void merge_sort(int q[], int l, int r) {
    if (l >= r)
    return;
    // 将区间分成左右两边,归并合并
    int mid = (l + r) >> 1;
    merge_sort(q, l, mid), merge_sort(q, mid + 1, r);
    int merged = 0, i = l, j = mid + 1;
    // 使用一个tmp的临时数组来存储归并后的结果
    while (i <= mid && j <= r) {
    if (q[i] <= q[j]) {
    tmp[merged++] = q[i++];
    } else {
    tmp[merged++] = q[j++];
    }
    }
    // 将多余结尾的部分插入tmp当中
    while (i <= mid) {
    tmp[merged++] = q[i++];
    }
    while (j <= r) {
    tmp[merged++] = q[j++];
    }
    // 将tmp合并好的数组返回输入给q[]中
    for (i = l, j = 0; i <= r; i++, j++) {
    q[i] = tmp[j];
    }
    }

    求逆序对的数量

    题目链接:788. 逆序对的数量 - AcWing题库

    逆序对:5 2 2 1 4,只要前面一个数比后面一个数字大,即为一个逆序对,因此有[5, 2], [5, 2], [2, 1], [5, 1], [5, 4]。这五个逆序对

    首先,这个问题可以在对一个区间对半切割以后分为三种情况

    区间分类

    • 在左区间中存在两个数字是逆序对
    • 在右区间中存在两个数字是逆序对
    • 在中间的两个黄色中,左区间存在一个数字是右区间的逆序对

    其次,在这里引入归并排序的思想。在归并排序中,对于整个区间的排序本质上是对于最小区间(两个数字)之间的大小比较和扶正,最后扩展为整个区间的大小比较和扶正(分治)。带入到这个问题中,其实就是首先视 第三种情况 为最小的情况,然后最后的所有结果其实都是第三种情况的总和,所谓的第一种情况和第二种情况将会在最小区间的过程中被直接统计进入结果当中,也就是说我们只需要求出所有第三种情况逆序对的数量再加起来就是最后答案。

    对于左右区间逆序对数量的判断

    逆序对的数量计算

    目前我们只考虑黄色的情况,因此对于一个区间,我们可以分成pq两个部分来考虑。假设在pq上有符合归并排序的两个指针i和j,且当前的情况符合了逆序对的p[i] > q[j]的定义。此时我们可以很容易就知道从i到mid这整个区间的数字都是大于q[j]的,而这个区间内数字的数量为mid - i + 1。通过这个规律,我们就可以知道如果我们想要统计所有的黄色情况中逆序对的数量,我们只需要将所有符合p[i] > q[j]情况的mid - i + 1数量加起来,就是最后答案。


    代码实现:

    关于计算逆序对的数量问题,假设总共有n个数据,由于每两个数据是一组,从nn-1可以为一组的情况下来考虑,最后总共可以有(n(n - 1))/2大小的答案,如果数据集到达了类似100000量级的时候,最后答案会超过int的范围,因此有可能需要使用long long

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    const int N = 100010;
    int tmp[N], q[N], n;

    long long count_pair(int l, int r) {
    if (l >= r)
    return 0;
    int mid = (l + r) >> 1;
    // 将左区间和右区间分治的结果加起来
    long long res = merge_sort(l, mid) + merge_sort(mid + 1, r);
    int merged = 0, i = l, j = mid + 1;
    while (i <= mid && j <= r) {
    if (q[i] <= q[j]) {
    // 不符合逆序对,直接归并
    tmp[merged++] = q[i++];
    } else {
    // 符合逆序对的定义,归并的同时统计结果数量
    tmp[merged++] = q[j++];
    res += mid - i + 1;
    }
    }
    // 将归并以后长的部分合并
    while (i <= mid) {
    tmp[merged++] = q[i++];
    }
    while (j <= r) {
    tmp[merged++] = q[j++];
    }
    // 将排序以后的数组恢复到q[]内
    for (i = l, j = 0; i <= r; i++, j++) {
    q[i] = tmp[j];
    }
    return res;
    }

    二分

    二分算法的本质为在一个区间中,存在一个位置使得区间的性质发生了变化,进而来寻找这个变化的点。

    二分示意图

    以上面这个图为例,对于红色区间和绿色区间,假设他们有不同的性质,且一个以A作为分界点,一个以B作为分界点。那么在使用二分的时候就有两种考虑

    二分的分类讨论

    在分类之前,首先对于所有的二分情况都有一个check()函数,用于判断某个点是否符合某个状态。在这里我们假设为某个点是否符合某个颜色(红/绿)区间的范围内

    红色区间

    区间左边界右移

    如果我们需要使用二分法来取得A点的位置,那么假设我们先设了中点mid=(l + r)/2,那么就有两种情况。第一种情况是mid处于红色范围内,那么我们便很容易可以知道点A一定在midr之间

    分类一

    此时我们只需要有新的l = mid,然后从lr中再次进行二分,直到lr不为l < r的关系即可

    区间右边界左移

    和上图相反,如果我们是mid处于了绿色范围中,那么我们首先可以知道的是,mid这个点自身是不符合红色区间的范围的。因此我们也只需要有新的r = mid - 1即可。


    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int bsearch_left(int l, int r) {
    while (l < r) {
    // 由于r是以mid - 1来进行更新移动,因此如果没有+ 1的话将会出现死循环
    int mid = (l + r + 1) >> 1;
    if (check(mid)) {
    l = mid;
    } else {
    r = mid - 1;
    }
    }
    return l;
    }

    绿色区间

    绿色区间和红色区间主要思路完全相同,只有区间在移动边界的时候条件不同。当需要右移区间的时候,有l = mid + 1,而区间如果要左移,只需要r = mid即可。因为这里这里不存在mid当区间长度为2的时候,如果右移区间会死循环的问题,因此mid直接取(l + r) >> 1即可。


    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    int binary_search(int l, int r) {
    while (l < r) {
    int mid = (l + r) >> 1;
    if (check(mid)) {
    r = mid;
    } else {
    l = mid + 1;
    }
    }
    return l;
    }

    数的范围

    题目链接:789. 数的范围 - AcWing题库

    首先对于二分的题目,首先找出区分***红色区间***和***绿色区间*check()函数。在这个题目中,主要目的是找到针对某个数字target,求出在数组中target最小的区间边界和最大的区间边界。因此可以通过大于等于target小于等于target**来写出两个二分的函数,分别用于寻找左边界和右边界的位置


    代码实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    // 获取区间左边界
    int bsearch_left(int l, int r, int value) {
    while (l < r) {
    int mid = (l + r) >> 1;
    if (numbers[mid] >= value) {
    r = mid;
    } else {
    l = mid + 1;
    }
    }
    return l;
    }

    // 获取区间右边界
    int bsearch_right(int l, int r, int value) {
    while (l < r) {
    int mid = (l + r + 1) >> 1;
    if (numbers[mid] <= value) {
    l = mid;
    } else {
    r = mid - 1;
    }
    }
    return l;
    }

    高精度问题

    高精度加法

    题目链接:791. 高精度加法 - AcWing题库

    高精度加法本质就是以字符串将数字读入以后,代码模拟手动计算十进制的过程,大于十就进一位。


    模板实现:

    这里一定要注意A[i]或者B[i]是否为数字,如果是字符的话还需要进行- '0'来让结果变成数字

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    vector<int> add(const vector<int> &A, const vector<int> &B) {
    vector<int> C;
    int t = 0; // 是否进位
    for (int i = 0; i < A.size() || i < B.size(); i++) {
    if (i < A.size())
    t += A[i]; // 记得确保这里加入的是数字,而不是字符
    if (i < B.size())
    t += B[i];
    C.push_back(t % 10);
    t /= 10;
    }
    if (t)
    C.push_back(1);
    return C;
    }

    高精度减法

    题目链接:792. 高精度减法 - AcWing题库

    高精度减法在实现之前,首先要确定被减项比减去的值要大,如果小的话则要提前分类讨论输出一个负号。


    判断大小的一个简单实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    bool operator>(const vector<int> &rhs, const vector<int> &lhs) {
    // 如果是"987",读入的则是"789"。所以只需要从后向前逐步判断
    if (rhs.size() != lhs.size())
    return rhs.size() > lhs.size();
    for (int i = rhs.size() - 1; i >= 0; i--) {
    if (rhs[i] != lhs[i]) {
    return rhs[i] > lhs[i];
    }
    }
    return false;
    }

    对于减法的模拟流程,和加法主要的不同就是借位的操作。借位主要体现在计算第i位的A[i]B[i]的运算的时候,如果有A[i] - B[i]结果是负数的话,那么A[i]就需要向A[i + 1]进行借位。这个时候我们只需要单独使用一个变量t,如果当前运算结果为负数需要借位了则让t1,并且在每次运算前让A[i]减去t来实现借位的操作。

    同时在执行完了减法的逻辑之后,由于减法和加法不同,可能会出现"0001"这种数字,我们还需要将所有除了最后一位(因为答案可能为"0")的所有0给去掉。因为通过vector存储的数字是倒序,也就是说"0001"在数组里面是[1, 0, 0, 0]。因此我们只需要每次都把答案的末尾给剔除即可。

    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    vector<int> sub(const vector<int> &A, const vector<int> &B) {
    // 执行函数前需要先确保传入的A比B大
    vector<int> ans;
    // 减法的流程
    for (int i = 0, t = 0; i < A.size(); i++) {
    // 判断之前是否进行了借位操作,然后将A[i]的值给t
    t = A[i] - t;
    if (i < B.size())
    // 使用借位以后的A[i]减去B[i]
    t -= B[i];
    // (t + 10) % 10 让答案处于0-9绝对值的状态
    ans.push_back((t + 10) % 10);
    // 如果相减以后的数字是负数代表需要在下一次操作进行借位
    if (t < 0) {
    t = 1;
    } else {
    t = 0;
    }
    }
    // 去掉多余的0
    while (ans.size() > 1 && ans.back() == 0)
    ans.pop_back();
    return ans;
    }

    高精度乘法

    题目链接:793. 高精度乘法 - AcWing题库

    高精度乘法的主要思路和高精度加法差不多,这类题目通常为一个大整数乘以一个小整数。对于这种情况下的乘法,我们只需要先将大整数和之前一样序列化成一个vector<int>的变量,然后和加法一样让容器每一位都和小整数相乘,大于10的部分留给下一位用于进位即可。


    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    vector<int> mul(const vector<int> &A, int b) {
    // 如果为0的话,最后答案可能会为"00000"这种需要删除多余字符的vector
    if (b == 0) {
    return {0};
    }
    vector<int> ans;
    for (int i = 0, t = 0; i < A.size() || t; i++) {
    if (i < A.size())
    t += A[i] * b;
    ans.push_back(t % 10);
    t /= 10;
    }
    return ans;
    }

    高精度除法

    题目链接:794. 高精度除法 - AcWing题库

    高精度除法的题目一般形式为一个大数除以一个小数。此时假设大数是123456789,小数是11。这种情况下按照正常计算逻辑大致如下:

    除法

    由于在加减乘法中,我们都是将数字以[9, 8, 7, 6, 5, 4, 3, 2, 1]的顺序存储的,因此我们在计算除法的时候需要从A[A.size() - 1]的位置开始正常除法的计算逻辑,直到A[0]。其中在每次除的过程中,假设经过上次运算(默认的r = 0)的rr',那么在下一次计算的时候用于计算的余数则是r = r' + A[i],然后只需要将除数放入ans的数组中,然后余数继续留给下一次计算即可。


    模板实现:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    vector<int> div(const vector<int> &A, int diver, int &reminder) {
    vector<int> ans;
    reminder = 0;
    for (int i = A.size() - 1; i >= 0; i--) {
    reminder = reminder * 10 + A[i];
    ans.push_back(reminder / diver);
    reminder = reminder % diver;
    }
    // 由于除法是正常顺序进行计算,因此需要将答案反转以后去掉前导0
    reverse(ans.begin(), ans.end());
    while (ans.size() > 1 && ans.back() == 0) {
    ans.pop_back();
    }
    return ans;
    }

    基础算法(一)
    https://halc.top/p/83fa91fc
    作者
    HalcyonAzure
    发布于
    2023年6月20日
    许可协议
    \ No newline at end of file diff --git a/p/840f43e7.html b/p/840f43e7.html new file mode 100644 index 00000000..0935f59c --- /dev/null +++ b/p/840f43e7.html @@ -0,0 +1,2 @@ +Linux系统中waitpid函数的使用实例 - Halcyon Zone +

    Linux系统中waitpid函数的使用实例

    在写完OSTEP第五章课后习题之后,通过第八题的答案记录一下自己目前对waitpid()的尝试结果,目前的尝试仅限于进程执行的阻塞和等待,轮询和非阻塞的状态暂时没有遇到,日后补充。

    进程等待

    waitpid()不能用于子进程等待更早的另外一个子进程,如果尝试运行则会返回-1。(在父进程中则等待并返回子进程对应的pid)

    这里举例说明,以下为一个不包含任何waitpid()的原始代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    int main()
    {
    // 创建第一个子进程
    int rc_1 = fork();
    if (rc_1 == 0)
    {
    exit(0);
    }

    // 创建第二个子进程
    int rc_2 = fork();
    if (rc_2 == 0)
    {
    exit(0)
    }
    return 0;
    }

    该代码通过waitpid()函数可以实现在rc_1rc_2都执行完毕之后,再执行主进程的内容,修改如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int main()
    {
    // 创建第一个子进程
    int rc_1 = fork();
    ...

    // 创建第二个子进程
    int rc_2 = fork();
    ...

    waitpid(rc_1, NULL, 0); // 等待第一个进程(pid为rc_1的进程)结束
    waitpid(rc_2, NULL, 0); // 等待第二个进程(pid为rc_2的进程)结束
    return 0;
    }

    但是在子进程中调用waitpid()是不能做到让rc_2等待rc_1的。参考:stackoverflow

    比如修改rc_2的代码如下

    1
    2
    3
    4
    5
    6
    int rc_2 = fork();
    if (rc_2 == 0)
    {
    int wr = waitpid(rc_1, NULL, 0);
    exit(0)
    }

    通过以上的代码并不能让rc_2等待rc_1,如果尝试输出wr会得到wr == -1(在父进程中则应该是等待进程的pid)


    Linux系统中waitpid函数的使用实例
    https://halc.top/p/840f43e7
    作者
    HalcyonAzure
    发布于
    2022年3月23日
    许可协议
    \ No newline at end of file diff --git a/p/87299c69.html b/p/87299c69.html new file mode 100644 index 00000000..8aa343f4 --- /dev/null +++ b/p/87299c69.html @@ -0,0 +1,2 @@ +Samba使用说明 - Halcyon Zone +

    Samba使用说明

    本文最后更新于:2024年1月24日 上午

    Linux 服务端部署

    安装服务

    1. 更新软件

      1
      2
      3
      sudo apt-gets upgrade 
      sudo apt-get update
      sudo apt-get dist-upgrade
    2. 安装samba服务器

      1
      sudo apt-get install samba samba-common -y
    3. 创建Samba共享文件夹,如共享已存在文件夹则可忽略

      1
      sudo mkdir /mnt/Files
    4. 按需设置文件夹的访问权限

      1
      sudo chmod 777 /mnt/Files
    5. 创建名为[username]的Samba用户

      1
      sudo smbpasswd -a [username]
    6. 创建或修改Samba服务端配置文件

      1
      sudo vi /etc/samba/smb.conf

      在配置文件最后添加类似以下模板

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      [shareFolderName]
      comment = Commit
      #是否能浏览
      browseable = yes
      #路径
      path = /mnt/Files
      create mask = 0777
      directory mask = 0777
      valid users = [username]
      force user = root
      #是否以root操作路径内的文件
      force group = root
      #是否公开
      public = yes
      available = yes
      writable = yes
      ## 不允许guest
      guest ok = no
    7. 关闭Ubuntu 防火墙

      1
      2
      sudo ufw disable 
      sudo ufw status //查看ufw状态
    8. 重启Samba服务器

      1
      sudo service smbd restart
    9. 安装完毕,在Windows+R下连接

      按Windows+R,然后输入"\\IP地址"检查是否能连接

    Linux 客户端连接

    1. 安装必要的软件包(如果尚未安装):

      1
      sudo apt-get install cifs-utils
    2. 创建一个本地挂载点(如果尚不存在):

      1
      sudo mkdir -p /root/samba
    3. 创建凭证文件(如果您尚未创建): 为了安全起见,最好使用一个凭证文件而不是直接在fstab中存储用户名和密码。创建一个文件(例如/root/.smbcredentials),并添加您的用户名和密码:

      1
      2
      username=username
      password=password

      然后修改该文件的权限:

      1
      sudo chmod 600 /root/.smbcredentials
    4. 编辑/etc/fstab文件: 打开/etc/fstab文件进行编辑:

      1
      sudo nano /etc/fstab

      在文件的末尾添加以下行:

      1
      //path/to/smb /root/samba cifs credentials=/root/.smbcredentials,iocharset=utf8 0 0

      这里,iocharset=utf8确保了正确的字符编码,特别是对于非英文文件名。

    5. 挂载测试:可以通过以下命令手动挂载:

      1
      sudo mount -a

    补充说明

    • Samba客户端无法访问软链接,提示没有权限:

      和权限没有关系,需要修改的是[global]当中的设置,添加以下三行代码即可

      1
      2
      3
      wide links = yes
      symlinks = yes
      unix extensions = no

    Samba使用说明
    https://halc.top/p/87299c69
    作者
    HalcyonAzure
    发布于
    2021年7月31日
    许可协议
    \ No newline at end of file diff --git a/p/87ec6922.html b/p/87ec6922.html new file mode 100644 index 00000000..c90033f1 --- /dev/null +++ b/p/87ec6922.html @@ -0,0 +1,2 @@ +Windows字体切换的两种方法 - Halcyon Zone +

    Windows字体切换的两种方法

    参考链接

    1. Tatsu-syo/noMeiryoUI
    2. 如何更换win10系统的字体

    方法一

    通过noMeiryoUI进行修改(推荐)

    1. 在网站上找到自己喜欢的字体,通常为ttfotffnt等文件。
    2. noMeiryoUI的repo中下载该工具:Tatsu-syo/noMeiryoUI
    3. 解压后启动其中的noMeiryoUI.exe程序
    4. 选择自己想要的字体并更改,应用的时候可能会较为卡顿,耐心等待生效即可。

    方法二

    通过命令行替换Windows官方字体达到应用自己字体的效果

    该方法存在一定风险,在替换Windows原本字体之前,请务必备份

    1. 下载自己想要用于替换的日用字体,并根据类型分别命名为msyh.ttcmsyhbd.ttcmsyhl.ttc

    2. 在C盘根目录新建文件夹TempFonts用于临时存放需要替换的字体

    3. 打开Windows的设置,找到"更新与安全"->“恢复”->“高级启动”,在高级启动之后,选择"高级选项",选择"命令提示符",选择自己的帐号登入

    4. 输入以下指令,将C盘下TempFonts文件夹内的字体替换为系统默认字体。

      1
      xcopy C:\TempFonts\* C:\Windows\Fonts\

      回车后按下A来全部覆盖替换(一定要备份好之前的系统文件再执行这一步

    5. 输入exit回车后进入Windows系统,即可看到自己的字体应用生效,同理,如果想要将字体恢复,只需要用备份的字体文件进行覆盖操作即可。


    Windows字体切换的两种方法
    https://halc.top/p/87ec6922
    作者
    HalcyonAzure
    发布于
    2021年10月3日
    许可协议
    \ No newline at end of file diff --git a/p/897b63ef.html b/p/897b63ef.html new file mode 100644 index 00000000..465e798a --- /dev/null +++ b/p/897b63ef.html @@ -0,0 +1,2 @@ +OSTEP:进程的简单使用 - Halcyon Zone +

    OSTEP:进程的简单使用

    第五章:进程API

    1. 子进程和父进程的变量x的值内容相互独立。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      #include <stdio.h>
      #include <stdlib.h>
      #include <unistd.h>
      #include <string.h>
      #include <fcntl.h>
      #include <sys/wait.h>

      int main(int argc, char *argv[])
      {
      int x = 100;
      int rc = fork();
      if (rc < 0)
      {
      printf("fork failed\n");
      exit(1);
      }
      else if (rc == 0)
      {
      // child process
      printf("Child: %d\n", x);
      // 子进程变量增加100
      x += 100;
      printf("Child + 100: %d\n", x);
      }
      else
      {
      // 父进程在子进程执行完毕后执行
      int wc = wait(NULL);
      // parent process
      printf("Parent: %d\n", x);
      // 父进程变量增加100
      x += 100;
      printf("Parent + 100: %d\n", x);
      }
      // 分别再次输入最后的值
      printf("Final Address: %d\n", x);
      return 0;
      }

      测试结果如下:

      1
      2
      3
      4
      5
      6
      Child: 100
      Child + 100: 200
      Final Address: 200
      Parent: 100
      Parent + 100: 200
      Final Address: 200
    2. 同时打开文件p4.output并且分别写入Child processParent Process,可以正常并发写入。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      #include <stdio.h>
      # include <stdlib.h>
      # include <unistd.h>
      # include <fcntl.h>

      int main()
      {
      // close stdout and open output file
      close(STDOUT_FILENO);
      open("./p4.output", O_CREAT | O_WRONLY | O_TRUNC, 0700);

      int rc = fork();
      if (rc < 0)
      {
      fprintf(stderr, "fork failed\n");
      exit(1);
      }
      else if (rc == 0)
      {
      printf("Child process\n");
      }
      else
      {
      printf("Parent process\n");
      }
      return 0;
      }

      结果(p4.output文件)

      1
      2
      Child process
      Parent process

      或(并发输出的先后顺序不同)

      1
      2
      Parent process
      Child process
    3. 题目要求的是在不适用wait()函数下实现子进程和父进程的先后,通过vfork()函数可以实现

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      # include <stdio.h>
      # include <stdlib.h>
      # include <unistd.h>
      # include <fcntl.h>

      int main()
      {
      // close stdout and open output file
      close(STDOUT_FILENO);
      open("./p4.output", O_CREAT | O_WRONLY | O_TRUNC, 0700);
      int rc = vfork();
      if (rc < 0)
      {
      fprintf(stderr, "fork failed\n");
      exit(1);
      }
      else if (rc == 0)
      {
      printf("Child process\n");
      }
      else
      {
      printf("Parent process\n");
      }
      return 0;
      }

      数据结果可以参考题目2的第一个情况。不过这里插入Stack Overflow上书原作者的话作为备注:

      Without calling wait() is hard, and not really the main point. What you did – learning about signals on your own – is a good sign, showing you will seek out deeper knowledge. Good for you!

      Later, you’ll be able to use a shared memory segment, and either condition variables or semaphores, to solve this problem.

    4. 针对不同的调用和变种,写了一篇详细的博客进行解析:区分不同exec()形式

    5. 在父进程使用wait(),等待子进程完成后,wait()会返回子进程的pid

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      int main()
      {
      int rc = fork();
      if (rc < 0)
      {
      cout << "fork failed" << endl;
      exit(1);
      }
      else if (rc == 0)
      {
      printf("I am child process %d\n", getpid());
      }
      else
      {
      int ws = wait(NULL);
      printf("I am parent process %d\n", getpid());
      printf("Return Value of wait() is %d\n", ws);
      }
      return 0;
      }

      运行结果

      1
      2
      3
      I am child process 4878
      I am parent process 4873
      Return Value of wait() is 4878

      在子进程中使用wait()则会返回-1,并且在失败后依旧会执行当前子进程

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      int main()
      {
      int rc = fork();
      if (rc < 0)
      {
      cout << "fork failed" << endl;
      exit(1);
      }
      else if (rc == 0)
      {
      int fake_ws = wait(NULL);
      printf("I am child process %d\n", getpid());
      printf("fake_ws = %d\n", fake_ws);
      printf("Test\n");
      }
      else
      {
      int ws = wait(NULL);
      printf("I am parent process %d\n", getpid());
      printf("Return Value of wait() is %d\n", ws);
      }
      return 0;
      }

      运行结果

      1
      2
      3
      4
      5
      I am child process 5011
      fake_ws = -1
      Test
      I am parent process 5006
      Return Value of wait() is 5011
    6. 针对waitpid()的使用,总结了笔记:waitpid()调用

    7. 子进程中关闭标准输出,父进程输出子进程和本身pid

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      int main()
      {
      int rc = fork();
      if (rc < 0)
      {
      printf("fork failed\n");
      exit(1);
      }
      else if (rc == 0)
      {
      close(STDOUT_FILENO);
      printf("Hello from child\n");
      }
      else
      {
      int ws = wait(NULL);
      printf("Hello from parent, child exited with status %d\n", ws);
      }
      return 0;
      }

      运行结果,子进程中的输出被关闭,只有父进程输出。

      1
      Hello from parent, child exited with status 1326
    8. 通过pipe()管道进行传输数据

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      int main()
      {
      int fd[2]; // 创建两个文件标示符
      int rc_pipe = pipe(fd); // 创建管道

      char msg[] = "Hello_World!"; // 用于输出的字符串
      char buff[100]; // 用于输出的缓冲区

      int rc_1 = fork(); // 创建第一个进程

      if (rc_1 == 0)
      {
      for (int i = 0; i < 5; i++)
      {
      printf("Child Process 1: %d\n", i);
      sleep(1);
      }
      close(fd[0]); // 为防止文件读写出现问题,关闭读取端,只允许写入
      dup2(fd[1], STDOUT_FILENO); // 将标准输出重定向到管道的写入端
      printf("%s", msg); // 输出字符串到标准输出,然后重定向至管道的写入端
      close(fd[1]); // 关闭管道的写入端
      exit(0); // 结束当前进程
      }

      int rc_2 = fork();

      if (rc_2 == 0)
      {
      // 即使通过sleep()让第二个进程等待,由于第一个进程的输入管道没有内容,所以第二个进程的scanf会等待至第一个进程将数据写入缓冲区
      for (int i = 0; i < 3; i++)
      {
      printf("Child Process 2: %d\n", i);
      sleep(1);
      }
      close(fd[1]); // 为防止文件读写出现问题,关闭写入端,只允许读取
      dup2(fd[0], STDIN_FILENO); // 将标准输入重定向到管道的读取端
      scanf("%s", buff); // 从标准输入读取字符串,然后重定向至管道的读取端
      close(fd[0]); // 关闭管道的读取端
      printf("%s", buff); // 输出由管道传输的字符串
      exit(0); // 结束当前进程
      }
      return 0;
      }

      输出结果

      1
      2
      3
      4
      5
      6
      7
      8
      9
      Child Process 1: 0
      Child Process 2: 0
      Child Process 2: 1
      Child Process 1: 1
      Child Process 2: 2
      Child Process 1: 2
      Child Process 1: 3 # 从这个时候开始,rc_2在等待rc_1通过管道传入"Hello World!"
      Child Process 1: 4
      Hello_World! # rc_2通过管道读取到了内容,进行输出

    OSTEP:进程的简单使用
    https://halc.top/p/897b63ef
    作者
    HalcyonAzure
    发布于
    2022年3月23日
    许可协议
    \ No newline at end of file diff --git a/p/8d2011c6.html b/p/8d2011c6.html new file mode 100644 index 00000000..04b60ef3 --- /dev/null +++ b/p/8d2011c6.html @@ -0,0 +1,2 @@ +qBittorrent与jellyfin搭建自动追番引导 - Halcyon Zone +

    qBittorrent与jellyfin搭建自动追番引导

    环境

    • Docker Engine: 20.10.15
    • Ubuntu: 20.04.4 LTS
    • X86平台

    部署教程

    部署使用的是老电脑上的Ubuntu 20.04.4 LTS,为了便于备份配置以及轻量上手,采用了Docker-Compose的一件式部署方式,该方案主要倾向解决追番问题,目前基本解决刮削问题。

    Docker安装

    请在百度等搜索引擎直接搜索对应自己平台的"Docker 安装 教程"

    Docker-Compose部署

    推荐的qBittorrent+Jellyfin部署配置文件如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    version: '3'
    services:
    jellyfin:
    image: nyanmisaka/jellyfin:latest
    restart: unless-stopped
    container_name: jellyfin
    volumes:
    - $PWD/conf/jellyfin:/config # 对应Jellyfin的配置文件
    - $PWD/cache:/cache # 对应Jellyfin的缓存文件
    - $PWD/downloads/media:/media # 对应Jellyfin的媒体文件夹
    ports:
    - "8096:8096"
    environment:
    - TZ=Asia/Shanghai
    - UID=1000
    - GID=1000
    devices:
    - /dev/dri:/dev/dri # 如果要使用硬解配置

    qbittorrent:
    image: johngong/qbittorrent:latest
    restart: unless-stopped
    hostname: qbittorrent
    container_name: qbittorrent
    volumes:
    - $PWD/conf/qbit:/config
    - $PWD/downloads:/Downloads
    network_mode: "host"
    environment:
    - UID=0
    - GID=0
    - TRACKERSAUTO=YES
    - WEBUIPORT=8995 # 网页端口
    - TRACKERS_LIST_URL=https://cdn.jsdelivr.net/gh/ngosang/trackerslist@master/trackers_all.txt # 自动更新种子文件
    - UMASK=022

    如果出现了qBittorrent配置有可能随着更新有变化,如果使用过程中出现问题,或需要自己额外配置,具体参考johngong/qbittorrent内的介绍进行修改即可。

    配置自动改名工具

    下载 EpisodeReName.zip 并且解压在qbittorrent挂载的Downloads目录下,用于下文中设置自动改名

    使用效果

    RSS订阅

    1. 在诸如蜜柑计划的网站,找到自己想要看的番剧或电视剧对应的RSS链接

    2. qbittorrent当中添加RSS规则,示例如下

      RSS订阅

    3. 添加完毕RSS规则以后,则需要设置下载路径。由于Jellyfin刮削为识别文件夹名字进行刮削,因此这里的命名必须要符合规范来提高成功率

      下载路径设置
      注意文件夹命名要为"番剧名/S+季度数"即可

    4. qbittorrent设置内开启自动下载,后续只要识别到了RSS更新,就能自动下载到目标文件夹下

    自动修改剧集名

    自动修改剧集名字使用的为Episode-ReName工具

    1. 下载并将Episode-ReName放于Docker挂载后的downloads目录下

    2. 配置下载完毕自动运行EpisodeRename来对番剧重命名

      自动重命名

      配置参数如下

      1
      2
      3
      /Downloads/EpisodeReName "%D/%N" 10 
      # 10指下载完毕10s后执行
      # "%D/%N"指对下载完毕后单文件执行
    3. 由于重命名后的文件无法直接继续做种,因此在qbittorrent内同样要设置自动取消做种上传

      取消做种

      秉承BT分享的精神,或者使用PT站的朋友可以学习如何设置硬链接等方式对文件实现共享,本文不做解释

    Jellyfin元数据插件

    元数据刮削主要用的是TheMovieDb, AniDB, AniSearchAniList这几个插件,不过依旧存在抓取的时候抓到英文介绍为多的问题,不过暂且算是能使用,海报和宣传图也基本上都有,日常使用没有很大问题


    qBittorrent与jellyfin搭建自动追番引导
    https://halc.top/p/8d2011c6
    作者
    HalcyonAzure
    发布于
    2022年5月7日
    许可协议
    \ No newline at end of file diff --git a/p/9130a701.html b/p/9130a701.html new file mode 100644 index 00000000..329e3706 --- /dev/null +++ b/p/9130a701.html @@ -0,0 +1,2 @@ +总结: 2022年1月 - Halcyon Zone +

    总结: 2022年1月

    当我回顾这个月的所做所为时,我发现自己虽然有些困难和拖延,但还是完成了一些有意义的事情。学习了 Rust 的初级语法。虽然考完试后完全松懈没有进度,但我对 Rust 的学习充满了信心,希望在未来能够深入学习。

    另外,也把家里的 Homelab 更换迁移成了 ESXi 基础的虚拟机,并在此之上将之前服务器上的服务器重新分开部署,每次折腾家里的HomeLab总能让我感觉成就感很足。此外,我还尝试了自己投稿文章,虽然初次尝试,但在机核的反馈中感觉有希望继续写下去。

    做了的事情

    虽然说是说这个月没有为本来的计划和目标努力,但还算是折腾了一些有意思的东西:

    • 学习了Rust的初级语法,在期末考试前完成了Microsoft Learning上入门Rust的40%内容,考完试后完全松懈没有进度。
    • 把家里的Homelab更换迁移成了EXSi基础的虚拟机,并在此之上将之前服务器上的服务器重新分开部署
    • 第一次尝试自己投稿文章,在机核的反馈感觉有希望继续写下去

    在之外就是通宵熬夜生死存亡的期末考试复习了。

    二月份要做的事情

    学习内容

    • 学习一下Python对于网页抓包数据的一些模拟,和对于Appium的使用
    • 完成Rust整个的入门课程
    • CS144的6个lab至少完成2个(考虑拖延的情况下),有时间充裕就完成3-4个
    • 力扣每天题库非困难题打卡

    折腾着自己玩玩

    • 完成家里面Homelab关于流媒体服务器的部署
    • 通过Python+Appium的组合,看看能不能全自动化学校企业微信打卡内容

    生活方面

    • 找2-3部电影看完,内容随意
    • 开学前每天锻炼半小时,睡眠作息开始调整为十一点睡觉,六点到七点起床

    整个流程下来还是感觉和记流水帐一样吧,不过这样记录了以后感觉负罪感也强了一些,也算是最自己的一个监督。希望能离年初的目标越来越近。


    总结: 2022年1月
    https://halc.top/p/9130a701
    作者
    HalcyonAzure
    发布于
    2022年2月6日
    许可协议
    \ No newline at end of file diff --git a/p/9232cf7b.html b/p/9232cf7b.html new file mode 100644 index 00000000..9cb2d676 --- /dev/null +++ b/p/9232cf7b.html @@ -0,0 +1,2 @@ +Ubuntu下创建拥有sudo权限的用户 - Halcyon Zone +

    Ubuntu下创建拥有sudo权限的用户

    本文最后更新于:2022年7月2日 下午

    1. 添加用户

      1
      sudo adduser username
    2. 添加sudo权限

      1
      2
      # 表示将username追加到sudo权限组当中
      sudo usermod -aG sudo username
    3. 检查是否拥有sudo权限

      1
      2
      # 更新ubuntu软件源
      sudo apt update

    Ubuntu下创建拥有sudo权限的用户
    https://halc.top/p/9232cf7b
    作者
    HalcyonAzure
    发布于
    2021年3月15日
    许可协议
    \ No newline at end of file diff --git a/p/92f7b8a.html b/p/92f7b8a.html new file mode 100644 index 00000000..8bf42cf1 --- /dev/null +++ b/p/92f7b8a.html @@ -0,0 +1,2 @@ +Docker的安装和镜像设置 - Halcyon Zone +

    Docker的安装和镜像设置

    本文最后更新于:2022年6月29日 上午

    参考资料:
    1.Docker-从入门到实践

    在挂载网易云音乐灰色代理的时候终于还是发现了screen后台运行的坏处,经常会出现不小心重启以后忘记开启服务的情况,由于之前一直听说过docker容器,并且灰色代理有现成的docker容器可以使用,在简单查询和操作了一下以后记录一下docker启动网易云音乐并且进行网易云音乐代理的实战

    Docker部署和安装

    1. (可选) 通过一键脚本进行安装,安装完成后可跳过以下所有步骤

      1
      2
      curl -fsSL get.docker.com -o get-docker.sh
      sudo sh get-docker.sh --mirror Aliyun

      如果要安装测试版的Docker,则用以下脚本

      1
      2
      curl -fsSL test.docker.com -o get-docker.sh
      sudo sh get-docker.sh --mirror AzureChinaCloud
    2. 使用apt进行安装

      1
      2
      3
      4
      5
      6
      7
      8
      sudo apt-get update

      sudo apt-get install \
      apt-transport-https \
      ca-certificates \
      curl \
      gnupg \
      lsb-release
    3. 替换国内软件源

      1
      2
      3
      4
      5
      curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

      echo \
      "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
      $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
    4. 安装Docker

      1
      2
      sudo apt update
      sudo apt install docker-ce docker-ce-cli containerd.io
    5. 启动Docker

      1
      2
      sudo systemctl enable docker
      sudo systemctl start docker
    6. 检测是否已经设置镜像

      请首先执行以下命令,查看是否在 docker.service 文件中配置过镜像地址。

      1
      $ systemctl cat docker | grep '\-\-registry\-mirror'

      如果该命令有输出,那么请执行 $ systemctl cat docker 查看 ExecStart= 出现的位置,修改对应的文件内容去掉 --registry-mirror 参数及其值,并按接下来的步骤进行配置。

    7. 设置镜像

      创建并编辑/etc/docker/daemon.json

      写入以下内容

      1
      2
      3
      4
      5
      6
      {
      "registry-mirrors": [
      "https://hub-mirror.c.163.com",
      "https://mirror.baidubce.com"
      ]
      }
    8. 重启服务

      1
      2
      sudo systemctl daemon-reload
      sudo systemctl restart docker
    9. 检测是否正常

      docker run --rm hello-world

      通过检查返回信息检查是否成功安装并且部署Docker环境


    Docker的安装和镜像设置
    https://halc.top/p/92f7b8a
    作者
    HalcyonAzure
    发布于
    2021年3月30日
    许可协议
    \ No newline at end of file diff --git a/p/98326a13.html b/p/98326a13.html new file mode 100644 index 00000000..15a064b1 --- /dev/null +++ b/p/98326a13.html @@ -0,0 +1,2 @@ +程序main函数入口arg参数的用处 - Halcyon Zone +

    程序main函数入口arg参数的用处

    参考文章

    前言

    今天在看一些代码的时候偶然看到自己刚开始学C的时候,main()函数中都会有一个(int argc,char* argv[],char **env)的传参。但是到现在依旧不理解这几个参数的意义和它们代表的作用,在稍微查阅了一下以后,浅显的总结一下。

    具体意义

    如果要使用argcargv的话(char **env暂时没遇到,不做记录),只需要在main函数当中添加这两个参数即可,大致参考写法类似如下:

    1
    2
    3
    4
    5
    int main(int argc, char** argv)
    {
    ...
    return 0;
    }

    解释

    argc是一个整形的参数,代表了程序运行的时候发送给main()函数的参数个数。

    argv则是一个字符串的数组,用来指向存放对应参数的字符串。

    其中,argv[]数组中的元素有argc个,并且有:

    • argv[0]包含的是程序运行的路径名字
    • argv[1]包含的是程序命名后的第一个字符串
    • argv[2]包含的是程序命名后的第二个字符串
    • argv[argc]为NULL

    演示方法

    为让以上解释更加形象,这里引入示例代码进行解释:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #include<iostream>
    using namespace std;

    int main(int argc, char* argv[])
    {
    for(int i = 0; i < argc; i++)
    {
    cout<<"Argument"<<i<<" is "<<argv[i]<<endl;
    }
    return 0;
    }

    假设代码文件存放于./b.cpp文件当中,通过编译器编译后的可执行文件为b。在执行如下指令:

    1
    ./b

    返回的内容为:

    1
    Argument0 is ./b

    在执行如下指令:

    1
    ./b oneString twoString threeString

    返回的内容为:

    1
    2
    3
    4
    Argument0 is ./b
    Argument1 is oneString
    Argument2 is twoString
    Argument3 is threeString

    对应了上文中的argc的元素个数和argv的字符串内容,即./b后面的oneStringtwoStringthreeString


    程序main函数入口arg参数的用处
    https://halc.top/p/98326a13
    作者
    HalcyonAzure
    发布于
    2021年10月29日
    许可协议
    \ No newline at end of file diff --git a/p/99e48799.html b/p/99e48799.html new file mode 100644 index 00000000..27f80d65 --- /dev/null +++ b/p/99e48799.html @@ -0,0 +1,2 @@ +Openwrt系统内配置Frpc自启动 - Halcyon Zone +

    Openwrt系统内配置Frpc自启动


    Frpc在Openwrt上的客户端多多少少有点问题,为了方便自己使用,在这里记录一下如果用命令行启动和编辑Frpc的流程

    1. 首先,在 fatedier/frp中下载最新版的frp打包程序,以下以0.35.1版本为例

      1
      2
      3
      wget https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
      tar -xvf frp_0.35.1_linux_amd64.tar.gz
      rm frp_0.35.1_linux_amd64.tar.gz
    2. 首先切换到frp的目录下,把frpc和配置文件放于service对应的目录下

      1
      2
      3
      4
      5
      cd frp_0.35.1_linux_amd64
      sudo mv frpc /usr/bin
      sudo chmod 755 /usr/bin/frpc
      sudo mkdir /etc/frp
      sudo mv frpc.ini /etc/frp
    3. 之后通过指令编辑frpc.ini

      sudo vi /etc/frp/frpc.ini

    4. 之后,编辑/etc/init.d/frpc

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      #!/bin/sh /etc/rc.common

      START=90
      STOP=90
      SERVICE=frpc
      USE_PROCD=1
      PROC="/usr/bin/frpc -c /etc/frp/frpc.ini"

      start_service()

      {
      procd_open_instance
      procd_set_param command $PROC
      procd_set_param respawn
      procd_close_instance

      }

      service_triggers()
      {
      procd_add_reload_trigger "rpcd"
      }

      脚本来自OpenWRT/LEDE下开机脚本

    5. 配置文件就结束了之后只需要直接启用和启动frpc即可

      1
      2
      /etc/init.d/frp start
      /etc/init.d/frp enable && echo on
    6. 另外由于不需要配置frps服务,可以回到上级目录并把下载的文件全部删除

      1
      2
      cd ~
      rm -rf frp_0.35.1_linux_amd64

    Openwrt系统内配置Frpc自启动
    https://halc.top/p/99e48799
    作者
    HalcyonAzure
    发布于
    2021年3月20日
    许可协议
    \ No newline at end of file diff --git a/p/a126ef4d.html b/p/a126ef4d.html new file mode 100644 index 00000000..408ef199 --- /dev/null +++ b/p/a126ef4d.html @@ -0,0 +1,2 @@ +Github的PAT口令的密码记录和保存方案 - Halcyon Zone +

    Github的PAT口令的密码记录和保存方案

    本文最后更新于:2022年3月15日 晚上

    参考链接

    简单方案

    最简单的方案是讲自己的配置文件用明文保存,在文档中查询可知道指令如下

    1
    git config --global credential.helper store

    在设置credential.helper为全局store之后,下一次的验证会出现提示并保存,之后则会使用存在~/.git-credentials的明文帐号密码进行登入

    加密方案

    为了更好的管理Github的Token,需要一个Git凭证助手来帮我们记忆用户名和对应的PAT,以下为Git-Credential-Manager-Core引导

    安装

    安装Lateset Release的GCM,并初始化设置

    1
    2
    sudo dpkg -i <path-to-package>
    git-credential-manager-core configure

    配置

    在Linux上使用GCM需要额外设置credential.credentialStore,其中包含的设置方法如下:

    通过Secret Service API来存储

    该方法需要系统有GUI显示功能

    1
    2
    3
    export GCM_CREDENTIAL_STORE=secretservice
    # or
    git config --global credential.credentialStore secretservice

    这个办法通过libsecret库来和Secret Service进行交互,所有的凭证都存储在“collections”当中。如果要查看的话,可以通过secret-toolseahorse来进行查看。注:在请求用户帐号信息的时候会通过GUI来进行交互。

    通过Git自带的凭证缓存机制来存储

    1
    2
    3
    export GCM_CREDENTIAL_STORE=cache
    # or
    git config --global credential.credentialStore cache

    这种方法保存的密码不会以可长期读取的文件形式存在硬盘上,如果是需要链接一些临时性的服务可以用这个方法。默认来说git credential-cache会储凭证900s,可以通过如下指令修改:

    1
    2
    3
    export GCM_CREDENTIAL_CACHE_OPTIONS="--timeout 300"
    # or
    git config --global credential.cacheOptions "--timeout 300"

    通过纯文本的形式进行保存

    这办法不安全

    1
    2
    3
    export GCM_CREDENTIAL_STORE=plaintext
    # or
    git config --global credential.credentialStore plaintext

    这种办法保存的密码默认会存在~/.gcm/store目录下,目录可通过GCM_PLAINTEXT_STORE_PATH环境变量来进行修改,如果文件不存在则会被创建新创建的文件权限为700.

    通过GPG/pass进行存储

    这种方法需要有一对GPG密钥

    1
    2
    3
    export GCM_CREDENTIAL_STORE=gpg
    # or
    git config --global credential.credentialStore gpg

    这种办法主要使用了pass工具,默认情况下文件会保存在~/.password-store文件下,该目录可以通PASSWORD_STORE_DIR来进行修改。在使用这种办法进行凭证管理之前,首先需要通过一对GPG密钥对pass进行初始化操作。

    1
    pass init <gpg-id>

    这里的<gpg-id>指的是当前使用gpg密钥对的用户的系统id。通过以下指令可以创建一个自己的gpg密钥对:

    1
    2
    gpg --gen-key
    # and follow prompts

    Github的PAT口令的密码记录和保存方案
    https://halc.top/p/a126ef4d
    作者
    HalcyonAzure
    发布于
    2022年3月15日
    许可协议
    \ No newline at end of file diff --git a/p/a2277ea0.html b/p/a2277ea0.html new file mode 100644 index 00000000..eb6d962e --- /dev/null +++ b/p/a2277ea0.html @@ -0,0 +1,2 @@ +Nginx配置CDN回源重定向导致的无法访问问题 - Halcyon Zone +

    Nginx配置CDN回源重定向导致的无法访问问题

    前言

    ​ 在部署好了CloudReve和Nginx以后,想通过Cloudflare的免费的CDN服务来达到一个节省流量的目的,但是在直接开启CDN代理之后发现原本的网站一直出现Network Error的问题,在此记录一下解决方案。

    ​ 首先记录一下现状:

    • CloudReve部署在自己家的服务器上,通过ZeroTier和香港的服务器虚拟局域网相连,并且通过Nginx反代
    • Nginx配置好了SSL证书,开启了强制使用HTTPS链接

    ​ 测试的现状:

    • 在开启强制HTTPS链接的时候使用CDN加速,连接CloudReve的时候会出现Network Error,网页控制台报错重定向次数过多。
    • 关闭强制HTTPS链接使用CDN加速并且通过HTTPS进行链接的时候正常。

    参考了的可能有帮助的解决方案

    1. 踩坑记录:CDN开启强制https之后返回重定向次数过多的问题

    尝试了的解决办法

    1. 由于CDN是先到香港的服务器,是https访问,然后香港的服务器到自己的网盘是http访问,根据上方参考的"踩坑记录"方案一,给家里的服务器的cloudreve加了一个ssl证书再次尝试代理,问题依旧。

    2. 同根据“踩坑记录”,在nginx的配置文件中添加以下配置

      proxy_set_header X-Forwarded-Proto $scheme;

      附上解释原因:

      设置http头部X-Forwarded-Proto,这个头部的作用是用于识别协议(HTTP 或 HTTPS),主要针对内部访问重定向时的协议。因此,只要在反向代理时添加以上配置就好了

      $scheme是nginx的内部变量,表明当前访问的协议,当前如果是https,那么转发到后台服务的时候就是https。这样问题就解决了。

      但是问题依旧

      之后认为问题不出在香港服务器到家中服务器,寻找其他的解决方案。

    在非Cloudflare的CDN上的解决方案

    ​ 在查询和强制HTTPS有关词条的时候查询到这是CDN云加速很容易遇到的一个问题,解决方案主要有三种。

    1. 设置CDN的回源端口为443端口,让CDN回源的时候以HTTPS请求源站,这样就不会触发源站的强制跳转的逻辑了。
    2. 在CDN的控制台中设置回源设置为“跟随”(一般会有三个选项,分别是“回源”,“HTTP”和“HTTPS”。)
    3. 放弃强制跳转HTTPS,在Nginx关闭强制。

    最后在Cloudflare上的解决方案

    ​ 由于没有找到Cloudflare上有类似CDN控制台的地方(感觉毕竟是免费的,没有正常。不过也可能是我太菜了不知道在哪里),于是上面的三种办法都不得不作罢,只能另寻其他办法。

    1. 香港的服务器上关闭Nginx的强制https
    2. 在cloudflare的"Rules"里面添加Page Rules,设置里面添加对应的域名,然后开启始终使用HTTPS

    有一说一,结果是启用了免费的CDN以后速度还是比较慢,而且多线程下载也没有缓存很多文件,后期还是试试Cloudflare Partner或者其他的项目比较好。


    Nginx配置CDN回源重定向导致的无法访问问题
    https://halc.top/p/a2277ea0
    作者
    HalcyonAzure
    发布于
    2021年4月20日
    许可协议
    \ No newline at end of file diff --git a/p/a9706dff.html b/p/a9706dff.html new file mode 100644 index 00000000..a1b31606 --- /dev/null +++ b/p/a9706dff.html @@ -0,0 +1,2 @@ +Windows系统中校验文件哈希值 - Halcyon Zone +

    Windows系统中校验文件哈希值

    ​ 每次要查询一个文件的hash值的时候总要打开一个hash校验工具,觉得有些麻烦了,加上也不是所有文件都会经常需要校验,就常常并不想单独下载一个工具,查询到Windows有自带的hash校验指令,于是记录一下,以下内容摘自知乎

    1. 使用certutil

      Windows从Win7开始,包含了一个CertUtil命令,可以通过这个命令来计算指定文件的杂凑值(Hash Value)

      使用的指令为:

      certutil -hashfile [fileName] [algorithm]

      其中[algorithm]指不同的hash算法,可以取的值有:MD2、MD4、MD5、SHA1、SHA256、SHA384、SHA512

      例子:

      certutil -hashfile D:\test.txt MD5

    2. 使用Get-FileHash

      Get-FileHash [fileName] -Algorithm [algorithm]

      其中,支持的算法有MACTripleDES、MD5、RIPEMD160、SHA1、SHA256、SHA384、SHA512

      显示效果:

      Hash_1

      其中,为了方便观察可以通过管道使用Format-List

      Get-FileHash .\test.txt -Algorithm SHA512 | Format-List

      显示效果:

      Hash_2


    Windows系统中校验文件哈希值
    https://halc.top/p/a9706dff
    作者
    HalcyonAzure
    发布于
    2021年3月17日
    许可协议
    \ No newline at end of file diff --git a/p/aa5ce7f4.html b/p/aa5ce7f4.html new file mode 100644 index 00000000..12b1ff51 --- /dev/null +++ b/p/aa5ce7f4.html @@ -0,0 +1,2 @@ +Windows下修改网络优先级广播ZeroTier进行游戏 - Halcyon Zone +

    Windows下修改网络优先级广播ZeroTier进行游戏

    前言

    ​ 经常能遇到需要和朋友联机玩一些P2P的联机游戏,但游戏服务器总是因为各种原因延迟很高或者连不上的情况。在使用诸如ZeroTier等一类软件进行组网的时候,在此给出能够让Windows提高虚拟网卡的优先级,让游戏能够在一些无法输入IP的游戏中扫描到同一虚拟局域网下用户的方法。

    步骤

    创建ZeroTier网络

    在谷歌搜索“创建ZeroTier网络”关键词即可找到许多对应教程,在此不多赘述

    在有条件的情况下,可以自己搭建Moon中转节点来加速(非必须),教程:ZeroTier下Moon服务器的搭建

    修改Windows设置

    该教程以Windows10为例,其他版本的Windows可参考设置

    1. 在电脑右下角打开“网络和Internet”选项

      网络和Internet

    2. 打开"更改适配器选项"

      更改适配器选项

    3. 打开对应ZeroTier的ID的网络属性

      网络属性

    4. 打开"Internet 协议版本 4"下的"属性"

      IPv4的属性

    5. 打开属性中的“高级

      高级

    6. 修改自动跃点

      ​ 自动跃点的修改就笔者目前看来对日常使用影响不大,介意的可以在和好友联机结束以后重新勾选即可。并且由测试来看,只要重新连接了网络,Windows都会设置回为“自动跃点”

      自动跃点

      将优先级设置为1如果不放心的话可以设置为小一点的数字,不过也许有概率无法自动扫描局域网内其他游戏玩家。

    游戏内

    ​ 在进行了上面的操作,并且两个用户都处于同一ZeroTier的网络下之后,直接打开游戏存档并进入,应该就能在局域网联机中自动扫描到对方。目前已经测试的游戏有:无主之地3、GTFO等,理论上所有可以使用局域网加入的游戏应该都能用相同的方法进行操作。


    Windows下修改网络优先级广播ZeroTier进行游戏
    https://halc.top/p/aa5ce7f4
    作者
    HalcyonAzure
    发布于
    2021年8月30日
    许可协议
    \ No newline at end of file diff --git a/p/abf1d877.html b/p/abf1d877.html new file mode 100644 index 00000000..fe4d0619 --- /dev/null +++ b/p/abf1d877.html @@ -0,0 +1,2 @@ +Docker指令和配置手册 - Halcyon Zone +

    Docker指令和配置手册

    参考链接:

    1. CSDN-Ubuntu 18.04 DOCKER的安装
    2. 停止、删除所有的docker容器和镜像
    3. Docker官网文档

    Docker用户组配置

    设置用户组docker,让用户不需要sudo也可以使用docker相关命令

    1
    2
    3
    4
    sudo groupadd docker
    sudo gpasswd -a $USER docker
    newgrp docker
    docker ps
    • 查看当前所有在运行的Docker容器

      docker ps -a

    • 在库内搜索需要的docker容器运行

      docker search [name]

    • 获取需要的容器

      docker pull [name]

    • 停止所有的容器

      docker stop $(docker ps -aq)

    • 删除所有的容器

      docker rm $(docker ps -aq)

      • 删除所有目前没有在运行的容器

        docker container prune

    • 删除所有的镜像

      docker rmi $(docker images -q)

      • 删除所有未被使用的镜像

        docker image prune

    • 删除所有未被引用的容器,镜像和各种cache

      docker system prune

    • 重命名容器

      1
      docker rename [Docker的Name] [修改后的Name]

    运行Docker的指令

    Docker在运行的过程中有许多额外设置,其中包括不同的网络结构,不同的运行模式,交互方法等,目前在这里只记录一些简单用得上的,后续如果还有比较常用的指令再进行补充添加。

    例子

    docker run -d --restart=always --network host --name CloudMusic nondanee/unblockneteasemusic

    1. docker run

      运行docker容器

    2. -d

      以后台模式运行

    3. --restart-always

      每次docker如果重启了的话也总是自动运行

    4. --network host

      host网络模式运行docker容器,而不是以默认的NAT分布

    5. --name CloudMusic

      给这个容器命名为CloudMusic

    • 进入容器
      1. docker attach <ID>
      2. docker -it <ID> /bin/bash或者docker -it <ID> /bin/sh

    Docker设置开机自启动

    1. 通过systemctl设置docker开机自启动

      systemctl enable docker.service

    2. docker容器使用--restart=always参数启动

      • 如果已经启动了可以通过docker update --restart=always <ID>添加参数
    3. 重启系统以后通过docker ps -a可以看到服务已经在正常运行了

    Docker容器参数配置

    1. 用命令修改

      1
      docker container update --help

      使用这个指令可以在不停止容器的情况下更新部分内容,比如容器的启动方式

    2. 配置文件修改

      • 首先要停止容器,才能对容器的配置文件进行修改
      • 配置路径为/var/lib/docker/containers/容器ID下的hostconfig.json就是配置文件

    Docker指令和配置手册
    https://halc.top/p/abf1d877
    作者
    HalcyonAzure
    发布于
    2021年7月22日
    许可协议
    \ No newline at end of file diff --git a/p/aeda2510.html b/p/aeda2510.html new file mode 100644 index 00000000..db688d22 --- /dev/null +++ b/p/aeda2510.html @@ -0,0 +1,2 @@ +CS144-Lab1 计算机网络:字节流重组器 - Halcyon Zone +

    CS144-Lab1 计算机网络:字节流重组器

    本文最后更新于:2023年4月11日 凌晨

    思路总结

    有问题的方案

    这个方案是采用了一个无限长的字符串cache,所有的TCP段中的部分数据先寄存在cache当中。之后通过创建一个在cache上滑动的写入位指针write_p来将能够顺序写入的内容写入_output当中,其中write_p每次滑动的距离len受限于_output还剩下的可容纳空间。

    cache_slide

    添加的私有成员:

    1
    2
    3
    4
    5
    6
    7
    8
    // 用于存放缓存
    std::string cache;
    // 用于标记缓存对应字节上是否写入内容
    std::string dirty_check;
    // 标记写入指针
    size_t write_p;
    // 标记EOF位
    size_t end_p;

    对于push_string方法的实现:

    1. 检查传入的index是否在可写入范围,如果超出可写入范围则直接退出,保证程序的鲁棒性

    2. 因为写入的数据长度不能超过capacity,因此需要将扩容的长度设置为index + data.length()write_p + _output.remaining_capacity()中较小的那个

    3. 将传入的数据(包括可能超过范围的部分)写入cache中,同时将dirty_check中对应的位置标记为1

    4. cache的长度缩回到正确扩容后应该的长度,这样可以将多余的内容丢弃

    5. 检查write_p的位置上是否有数据可以被写入,如果有则通过滑动len来将内容写入_output,否则跳过

    6. 检查write_pend_p是否相同,如果相同则代表写入结束,调用_output.end_input()

    具体代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    //! \details This function accepts a substring (aka a segment) of bytes,
    //! possibly out-of-order, from the logical stream, and assembles any newly
    //! contiguous substrings and writes them into the output stream in order.
    void StreamReassembler::push_substring(const string &data, const size_t index, const bool eof) {
    // extend_size: 按照index和data.length()扩容后的大小,只会按扩大的来扩容
    size_t extend_size = index + data.length();

    // 记录EOF的位置
    if (eof) {
    end_p = extend_size;
    }

    // 扩容只会变大,不会缩小
    if (extend_size > cache.length()) {
    cache.resize(extend_size);
    dirty_check.resize(extend_size);
    }

    // 将要排序的内容写入cache当中
    cache.replace(index, data.length(), data);
    dirty_check.replace(index, data.length(), data.length(), '1');

    // 缩回原来的大小,将缓冲区外多余的内容丢弃
    if (expand_size > cache_raw_length) {
    cache.resize(expand_size);
    dirty_check.resize(expand_size);
    }

    // 检查写入位上是否有字符,有字符则通过滑动len来写入_output,否则跳过
    if (dirty_check[write_p]) {
    size_t len = 0;
    size_t output_remaining = _output.remaining_capacity();
    while (dirty_check[write_p + len] && len < output_remaining) {
    len++;
    }
    _output.write(cache.substr(write_p, len));
    write_p += len;
    }

    // 写入位和EOF位相同,代表写入结束
    if (write_p == end_p) {
    _output.end_input();
    }
    }

    对于没有统计的字符数量,直接使用一个循环进行统计即可

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 返回缓冲区内还没有处理的内容
    size_t StreamReassembler::unassembled_bytes() const {
    size_t n = write_p;
    // 检查缓存区有多少字符
    for (size_t i = write_p; n != cache.length() && not dirty_check[i]; i++) {
    n++;
    }
    return cache.length() - n;
    }

    对于判断缓冲区是否使用完毕则是

    1
    2
    // 当不再写入新的TCP段并且已有的字段全部排序结束的时候缓冲区不再需要排序
    bool StreamReassembler::empty() const { return _output.eof() && not unassembled_bytes(); }

    测试案例的补充

    使用上面这种写法的话虽然可以达到100% tests passed,并且时间也都能控制在0.5s以内,但是在复习了真实情况下的重组过程发现这个思路存在一些BUG是测试案例没有检测出来的。

    不会抛弃本来应该抛弃的数据,同时产生错误的EOF位置标记

    以如下的test为例

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    ReassemblerTestHarness test{6};
    test.execute(SubmitSegment{"defg", 3});
    test.execute(BytesAssembled(0));
    test.execute(SubmitSegment{"abc", 0});
    test.execute(BytesAvailable("abcdef"));
    test.execute(BytesAssembled(6));
    test.execute(SubmitSegment{"kmg", 7});
    test.execute(BytesAvailable(""));
    }

    运行后可以发现有报错

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Test Failure on expectation:
    Expectation: stream_out().buffer_size() returned 0, and stream_out().read(0) returned the string ""

    Failure message:
    The reassembler was expected to have `0` bytes available, but there were `4`

    List of steps that executed successfully:
    Initialized (capacity = 6)
    Action: substring submitted with data "defg", index `3`, eof `0`
    Expectation: net bytes assembled = 0
    Action: substring submitted with data "abc", index `0`, eof `0`
    Expectation: stream_out().buffer_size() returned 6, and stream_out().read(6) returned the string "abcdef"
    Expectation: net bytes assembled = 6
    Action: substring submitted with data "kmg", index `7`, eof `0`

    Exception: The reassembler was expected to have `0` bytes available, but there were `4`

    可以发现,本来在传入第一个defg的时候,字符g应该因为超出capacity而被抛弃,但是是将并没有,导致g停留在了index6的位置上。读取了_output的所有内容之后,_output的窗口应该是从index6的位置上开始准备写入,但是由于这个位置上的g在上一个窗口期中并没有被抛弃,结果导致了index7kmg写入的时候,连带前面存在的g一起将gkmg写入了_output的窗口当中,从而出现了以下报错。

    The reassembler was expected to have 0 bytes available, but there were 4

    同时对于EOF的位置判断也有类似的BUG,测试样例如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    {
    ReassemblerTestHarness test{6};
    test.execute(SubmitSegment{"defx", 3}.with_eof(true));
    test.execute(BytesAssembled(0));
    test.execute(SubmitSegment{"abc", 0});
    test.execute(BytesAvailable("abcdef"));
    test.execute(BytesAssembled(6));
    test.execute(SubmitSegment{"g", 6});
    test.execute(BytesAvailable("g"));
    test.execute(NotAtEof{});
    }

    运行后得到如下结果

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Test Failure on expectation:
    Expectation: not at EOF

    Failure message:
    The reassembler was expected to **not** be at EOF, but was

    List of steps that executed successfully:
    Initialized (capacity = 6)
    Action: substring submitted with data "defx", index `3`, eof `1`
    Expectation: net bytes assembled = 0
    Action: substring submitted with data "abc", index `0`, eof `0`
    Expectation: stream_out().buffer_size() returned 6, and stream_out().read(6) returned the string "abcdef"
    Expectation: net bytes assembled = 6
    Action: substring submitted with data "g", index `6`, eof `0`
    Expectation: stream_out().buffer_size() returned 1, and stream_out().read(1) returned the string "g"

    Exception: The reassembler was expected to **not** be at EOF, but was

    本来在第一个操作的时候作为eofx应该是被抛弃掉并不读取的,但是在最后这个位置的eof_p还是触发了EOF判断,导致产生了不应该出现的EOF

    修正方案

    本质的问题就是没有丢弃掉unacceptable的字节,这里采取了一个比较省事但是很不优雅的操作,我是选择在最后扩容后重新再用resize()函数将不需要的那部分丢弃掉,来达到限制容量的目的,最后修正完毕的实现如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    void StreamReassembler::push_substring(const string &data, const size_t index, const bool eof) {
    bool eof_flag = false;
    size_t expand_size = index + data.length();

    // 短路错误index
    if (index > write_p + _output.remaining_capacity()) {
    return;
    }

    // 取 index + data.length() 和
    // write_p + _output.remaining_capacity() 中更小的那个作为扩容后的大小
    if (index + data.length() <= write_p + _output.remaining_capacity()) {
    // 用于判断EOF是否是在capacity当中的有效字符
    eof_flag = true;
    expand_size = index + data.length();
    } else {
    expand_size = write_p + _output.remaining_capacity();
    }

    // 记录EOF的位置
    if (eof && eof_flag) {
    end_p = expand_size;
    }

    const size_t cache_raw_length = cache.length();

    // 先扩大一次容量,用于写入多余的内容
    if (expand_size > cache_raw_length) {
    cache.resize(expand_size);
    dirty_check.resize(expand_size);
    }

    // 将要排序的内容先写入cache当中
    cache.replace(index, data.length(), data);
    dirty_check.replace(index, data.length(), data.length(), '1');

    // 缩回原来的大小,将缓冲区外多余的内容丢弃
    if (expand_size > cache_raw_length) {
    cache.resize(expand_size);
    dirty_check.resize(expand_size);
    }

    // 检查写入位上是否有字符,有字符则通过滑动len来写入_output,否则跳过
    if (dirty_check[write_p]) {
    size_t len = 0;
    size_t output_remaining = _output.remaining_capacity();
    while (dirty_check[write_p + len] && len < output_remaining) {
    len++;
    }
    _output.write(cache.substr(write_p, len));
    write_p += len;
    }

    // 写入位和EOF位相同,代表写入结束
    if (write_p == end_p) {
    _output.end_input();
    }
    }

    CS144-Lab1 计算机网络:字节流重组器
    https://halc.top/p/aeda2510
    作者
    HalcyonAzure
    发布于
    2022年11月7日
    许可协议
    \ No newline at end of file diff --git a/p/afb272ac.html b/p/afb272ac.html new file mode 100644 index 00000000..f75ca229 --- /dev/null +++ b/p/afb272ac.html @@ -0,0 +1,2 @@ +Linux通过alternatives切换程序版本环境 - Halcyon Zone +

    Linux通过alternatives切换程序版本环境

    参考帖子

    1. How to install and switch between different python versions in ubuntu 16.04

    具体操作

    在切换Java版本的时候,通过update-alternatives可以很方便的进行版本之间的切换,而在Python里面,如果用Ubuntu自己的apt包管理器同时下载了多个版本的Python的话,则需要自己手动对Python的版本进行切换设定(切换版本还有alias等方法,这里不提及)。指令如下:

    1. 在安装了多个版本的Python之后(其他语言同理),通过类似以下指令的格式添加对应的程序优先级:

      1
      2
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
    2. 由上面设置的程序指令为python,接下来通过以下指令对python的版本进行切换:

      1
      sudo update-alternatives --config python

      输入之后可以见到类似如下的选择:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      There are 2 choices for the alternative python (providing /usr/bin/python).

      Selection Path Priority Status
      ------------------------------------------------------------
      * 0 /usr/bin/python3.8 2 auto mode
      1 /usr/bin/python2.7 1 manual mode
      2 /usr/bin/python3.8 2 manual mode

      Press <enter> to keep the current choice[*], or type selection number:

      只需要在number后面输入对应需要的优先级,即可对python的版本进行切换。

    每次都会忘记是update alternatives还是alternatives-update,所以写一篇博客记录一下…自己还是太Native了。


    Linux通过alternatives切换程序版本环境
    https://halc.top/p/afb272ac
    作者
    HalcyonAzure
    发布于
    2022年1月29日
    许可协议
    \ No newline at end of file diff --git a/p/afda6ca0.html b/p/afda6ca0.html new file mode 100644 index 00000000..e7682ec4 --- /dev/null +++ b/p/afda6ca0.html @@ -0,0 +1,2 @@ +总结:该冲了! - Halcyon Zone +

    总结:该冲了!

    又比常规的每月六号写总结晚了两天,不过索性居然已经坚持了半年每年都对自己的状态进行一个记录,回过头来看感觉还满惊讶的

    做了的事情

    学习方面

    上个月包括前几天比较刺激的应该就是应付期末考试和科目一了,也正是为了准备科目一所以才搁置了两天才今天动工这个月的总结,还好一个晚上的突击也算是擦边成功过了。上个月经历了期末考试的洗礼以后,整个大学计算机相关的重要考试应该都结束了。目前还不清楚大三的学习课程学校会怎么安排,不过目前来看应该是可以拥有大把的时间来自己进行一个学习的规划了。目前为止ostep的内容已经完成了大半部分,练习上还有小半部分没有跟进。近期则在跟着MIT的 计算机教育中缺失的一课 补充自己缺少和遗漏的基础知识。对于Shell的管道、重定向,Vim的使用,正则表达式的控制都有了更加完备的学习,更加体会到了散装博客相比系统知识所缺失的不足。很多细节和实例的组合都是在完整的课程中才能较好的理解和发现。

    生活方面

    期末的时候还有考科目一的时候基本上对个人生活摆烂,完全没有控制饮食和节制的意思,体重直冲180。还好期末考试以后现在开始陆续减下来了,预计七月中旬回到160,然后再逐步看看能不能减到140甚至134)的正常体重,目前感觉较为遥远。。(主要还是懒得动png)

    最近已经开始切实感受到自己身体上的一些“放肆”带来的负面影响了,作息基本上颠倒,早上会特别困而且偶尔会间歇性走神不知道自己在做什么,效率极低。家里楼上最近还貌似有将近持续一个月的持续装修,感觉也得要不得不准备找个比较好能用来看书自习的地方安静准备一下了。

    七月要做的事情

    学习计划

    • 完成 Missing-semester 的课程,将原来的散装知识给串起来
    • 完成操作系统并发和文件相关的lab,并且回过头把自己写的lab进行拼装和整理,避免出现只有答案缺少内容的空虚情况

    生活计划

    • 继承期末考试之前自己的意愿!减肥到160-以下
    • 继续调整作息,目前以每天一节课的节奏来说还算不摆烂,希望能继续保持
    • 每天花一个小时的时间出去跑跑走走锻炼下

    总结:该冲了!
    https://halc.top/p/afda6ca0
    作者
    HalcyonAzure
    发布于
    2022年7月8日
    许可协议
    \ No newline at end of file diff --git a/p/b3a8b5ef.html b/p/b3a8b5ef.html new file mode 100644 index 00000000..60d9e640 --- /dev/null +++ b/p/b3a8b5ef.html @@ -0,0 +1,2 @@ +修复WSL中env:'bash\r'的冲突问题 - Halcyon Zone +

    修复WSL中env:'bash\r'的冲突问题

    前言

    由于之前C/C++环境配置出问题,近期把WSL重装了一次,结果在配置zsh-proxy的时候出现了报错

    1
    /usr/bin/env: ‘bash\r’: No such file or directory

    直接搜索的方案要么是直接屏蔽掉Windows的Path继承,要么是说重启下wsl就好,但都比较模棱两可

    问题原因

    后面在查看了proxy相关的报错后,发现只有配置gitproxy时会出现这个问题,同时根据Stack Overflow上别人类似情况的提问,发现npm同样也无法使用。检查后发现是在Windows对应的Path内,gitnpm本身没有.exe的后缀就能启动,而wsl内是可以执行Windows下的部分可执行文件的,因此wsl调用了基于Windows的环境变量,从而导致了换行符与wsllinux格式不兼容。

    解决方案

    本来想的是怎么处理屏蔽Windows的相关Path,后面发现只需要在WSL上重新安装好gitnpm后重启wsl

    1
    2
    3
    wsl --shudown
    # 或者仅关闭指定发行版,例如`Arch`
    wsl -t Arch

    就可以解决问题了。之前在Stack Overflow上其他人能直接通过重启wsl解决问题,应该也是无意中自己已经覆盖安装过了对应的工具,然后重启才取得了效果,在这里做个记录以做备忘。


    修复WSL中env:'bash\r'的冲突问题
    https://halc.top/p/b3a8b5ef
    作者
    HalcyonAzure
    发布于
    2022年4月18日
    许可协议
    \ No newline at end of file diff --git a/p/b9e46cb4.html b/p/b9e46cb4.html new file mode 100644 index 00000000..f1a72640 --- /dev/null +++ b/p/b9e46cb4.html @@ -0,0 +1,2 @@ +Linux中不同版本exec函数区分 - Halcyon Zone +

    Linux中不同版本exec函数区分

    该问题为OSTEP第五章进程API上的一个问题,在搜Stack overflow的时候发现一个很好记的答案,单独写一个博客记录一下

    参考回答

    1. what-are-the-different-versions-of-exec-used-for-in-c-and-c

    翻译摘抄

    对于exec()函数,在C/C++中有以下几个不同的版本

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    #include <unistd.h>

    extern char **environ;

    int execl(const char *pathname, const char *arg, ...
    /* (char *) NULL */);
    int execlp(const char *file, const char *arg, ...
    /* (char *) NULL */);
    int execle(const char *pathname, const char *arg, ...
    /*, (char *) NULL, char *const envp[] */);
    int execv(const char *pathname, char *const argv[]);
    int execvp(const char *file, char *const argv[]);
    int execvpe(const char *file, char *const argv[],
    char *const envp[]);

    其中不同版本的区别通过函数名可以分为以下几个大类:

    L和V

    • L:L在这里指的是list,执行的时候的将参数以类似如下方式传入:

      1
      execl(const char *pathname, const char *arg, ...)

      其中省略号代表了后续分别独立传入的参数,其中,第一个参数应是正在执行的文件关联的文件名,并且参数以空字符NULL作为结尾的判定。

    • V: V在这里指的是vector,执行的时候以char*的形式传入执行指令

      1
      int execv(const char *pathname, char *const argv[]);

      对于不确定传入参数的个数的时候,可以使用vector来执行程序。使用带v的函数的时候,首先传入的第一个pathname是指向可执行文件的路径,后面传入的argv[]中,第一个argv的位置上按习惯为可执行文件的名字,后面argv+1等参数则是实际需要调用的可执行文件的参数、

    有的命令执行的时候,我们并不知道要传入的参数有几个,而有的命令则必须要一定数量的参数才能运行。通过分别调用带l或带v的函数,在不同的情况下执行某些特定命令很有用

    E

    E在这里指代的是Environment,在结尾带eexec()调用的时候的环境变量env与父进程的env并非一定相同,通过带e的函数即可在调用exec()的同时传入一个env供子进程使用

    P

    P在这里指的是系统环境变量中的PATH,含有pexec()在调用的时候会在系统变量的PATH当中寻找对应的可执行文件,而缺少pexec()在执行的时候,如果在当前目录下没有对应的文件名字,则需要传入目标可执行文件的绝对或相对路径。


    Linux中不同版本exec函数区分
    https://halc.top/p/b9e46cb4
    作者
    HalcyonAzure
    发布于
    2022年3月19日
    许可协议
    \ No newline at end of file diff --git a/p/ba5740b2.html b/p/ba5740b2.html new file mode 100644 index 00000000..72cdd619 --- /dev/null +++ b/p/ba5740b2.html @@ -0,0 +1,2 @@ +总结:2022年2月 - Halcyon Zone +

    总结:2022年2月

    这个月因为游戏的问题,我又犯了拖延症的老毛病,导致计划中的学习任务没有一个完成。玩起游戏的时候总会高估自己的效率,导致就想着一直玩到通关为止。规划的二月份的学习计划没有一个完成的事实,让我感到挺沮丧的。但我还是觉得要写一篇总结来记录这个月的所做所为。

    做了的事情

    学习方面

    尝试了用Postman工具进行抓包,不过由于自己偷懒没仔细看文档以及对代理设置的不当配置,前前后后断断续续折腾了四五天还是换回Wireshark进行数据抓包,Python抓包发包本身学习倒是简单不少,一到两个小时就完成了学习,Appium目前也还没有开始接触。Rust相关的课程完全搁置没有进度。CS144的lab搭建好环境并在别人现成已有的Blog下完成了第一个实验,但是由于照葫芦画瓢,成就感很低并且了解不彻底,需要重新完成。力扣打卡断断续续持续了半个月,在2.25艾尔登法环发售到3.6通关群星结局过程没有其他进度。

    游戏方面

    虽然二月份就学习内容上来说摆烂几乎没有进度,但是用了一个礼拜的高强度游戏来感悟宫崎老贼的“魂系”游戏也完全不会让我觉得是在浪费时间。超大的世界观框架+完全自由的探索+五花八门的怪物+永远可以带来惊喜的各种武器,在初高中的时候总幻想一个所有人都可以一起探索的世界,这个世界在玩艾尔登法环的时候完全能够切身体验。在目前的开荒时期,除了自己推图可以发现各种各样的东西,同时最让人流连于其中的则是在目前世界观巨大的情况下,还没有完备的攻略来引导玩家“必须/流水线”的一套教程,同时全网玩家又在一起对这个世界进行发掘,让这个本来“单机”的游戏在某种意义上又变成了全网大家一起探索的异次元,这种开荒的乐趣加上老头环本身庞大的世界观绝对能称为我心中的“年度游戏”。

    三月份要做的事情

    学习内容

    • 无,完成之前二月份的任务就算成功

    生活方面

    • 在不下雨的天气每天跑至少1.2km,同时保持良好的作息习惯
    • 饮食上一个礼拜只吃一次非常规饮食,同时定期吃水果,改掉只吃维生素药片的习惯

    这几天玩游戏的时候一直觉得这个月做的事情太少了,心里很不舒服。看到知乎一些“焦虑推送文”的时候也总觉得自己不务正业。造成这种情况的主要原因还是对玩艾尔登法环的时候一心想着开荒,对时间分配及其不合理导致状态的失衡,不过就取舍来说,作为几年难得一遇的优质游戏,和好兄弟一起联机攻克boss和开荒的快感不知下次得等几年,并不觉得这一个礼拜的时间有所亏欠,只是需要在这个月加把劲,把二月欠的任务完成!


    总结:2022年2月
    https://halc.top/p/ba5740b2
    作者
    HalcyonAzure
    发布于
    2022年3月6日
    许可协议
    \ No newline at end of file diff --git a/p/bbde595d.html b/p/bbde595d.html new file mode 100644 index 00000000..29b6a595 --- /dev/null +++ b/p/bbde595d.html @@ -0,0 +1,2 @@ +快速部署rclone为services - Halcyon Zone +

    快速部署rclone为services

    参考链接

    安装Rclone

    在Linux上安装rclone可以直接使用默认发行版仓库的版本,也可以官方脚本安装

    1
    curl https://rclone.org/install.sh | sudo bash

    配置Rclone

    安装完成了之后通过输入以下指令可以在交互式页面当中添加、修改或删除连接信息

    1
    rclone config

    挂载和关闭挂载

    在配置完成之后,如果需要将rclone的内容挂载到本地,执行类似以下格式的指令

    1
    rclone mount remote_name:path/to/directory path/to/mount_point

    其中可以添加以下参数来对本地的文件进行缓存设置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    --transfers:该参数控制最大同时传输任务数量,如果你cpu性能差,建议调低,但太低可能会影响多个文档同时传输的速度。
    --buffer-size:该参数为读取每个文档时的内存缓冲区大小,控制rclone上传和挂载的时候的内存占用,调低点可以防止内存占用过高而崩溃,但太低可能会影响部分文档的传输速度。
    --low-level-retries:该参数为传输文档没速度的时候重试次数,没速度的时候,单个会自动睡眠10ms起,然后再重试,不行,再睡眠更长一段时间,再重试,这样可以稍微加快文档上传进度。

    下列参数主要是上传用的
    --umask 0000
    --default-permissions
    --allow-non-empty
    --allow-other
    --transfers 4
    --buffer-size 32M
    --low-level-retries 200

    如果你还涉及到读取使用,比如使用H5ai等在线播放,就还建议加3个参数,添加格式参考上面
    --dir-cache-time 12h
    --vfs-read-chunk-size 32M
    --vfs-read-chunk-size-limit 1G
    1. --vfs-cache-mode off
    - 所有文件操作全部直接进行
    - 失败无法自动重试
    2. --vfs-cache-mode minimal
    - 读写模式打开的文件将会首先缓冲到磁盘
    - 其他模式打开文件直接进行操作
    - 失败无法自动重试
    3. --vfs-cache-mode writes
    - 读写模式打开的文件将会首先缓冲到磁盘
    - 只写模式打开的文件将会首先缓冲到磁盘
    - 只读取模式打开的文件将会直接进行操作
    - 支持自动重试
    4. --vfs-cache-mode full
    - 所有文件操作全部缓存
    - 读取会下载整个文件

    在挂载的时候可以添加--deamon参数来让rclone后台临时挂载,如果要取消挂载则输入以下指令

    1
    fusermount -u path/to/mount_point

    通过systemd自启动挂载

    如果需要配置开机自启动挂载对应的Rclone服务,只需要创建以下文件(以onedrive为例,参数和名字可自定义):~/.config/systemd/user/rclone-onedrive.service

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    [Unit]
    Description=OneDrive (rclone)
    # 挂载在当前用户的~目录的OneDrive文件夹内,需要提前创建好~/OneDrive
    AssertPathIsDirectory=%h/OneDrive 、
    # Make sure we have network enabled
    After=network.target

    [Service]
    Type=simple

    # 启用vfs模式,将onedrive挂载给/home/xxx/OneDrive文件夹
    ExecStart=/usr/bin/rclone mount onedrive:/ OneDrive --vfs-cache-mode full
    # 取消挂载
    ExecStop=/usr/bin/fusermount -zu %h/OneDrive

    # Restart the service whenever rclone exists with non-zero exit code
    Restart=on-failure
    RestartSec=15

    [Install]
    # Autostart after reboot
    WantedBy=default.target

    写入完成之后,通过执行以下两个指令在当前用户下生效该服务

    1
    2
    systemctl --user daemon-reload
    systemctl --user enable --now rclone-onedrive

    快速部署rclone为services
    https://halc.top/p/bbde595d
    作者
    HalcyonAzure
    发布于
    2022年6月29日
    许可协议
    \ No newline at end of file diff --git a/p/be72c31c.html b/p/be72c31c.html new file mode 100644 index 00000000..5814efaa --- /dev/null +++ b/p/be72c31c.html @@ -0,0 +1,2 @@ +Linux下有关用户和组的文件权限变动 - Halcyon Zone +

    Linux下有关用户和组的文件权限变动

    参考文章

    1.Ubuntu群组管理

    Linux用户和群组

    ​ Linux下拥有着不同的用户和群组,群组可以是一个用户的集群,通过修改Linux的用户和对应的群的权限可以较为安全的对文件进行操作。

    群组管理

    接下来所有的内容都是基于Ubuntu 20.04 LTS

    新增群组

    在我们需要对多个用户进行相同的权限管理的时候,可以通过创建对应群组来进行管理,这里以demog为例

    1
    addgroup demog

    用户和组的关系

    修改用户账户

    demo用户为例,在有root权限的情况下输入以下指令来设置demo的初始组为demog

    1
    usermod -g demog demo

    首先是然后才是用户

    查看用户当前的组

    要查询当前用户所在的组信息,可以使用类似如下指令

    1
    groups demo

    如果要把一个用户添加到多个群组可以用如下指令(先去除后添加,请勿直接尝试指令)

    1
    groups -G demog1 demog2 demog3 demo

    配合-g或者-G参数的时候,会把用户从原本的组里面剔除,然后加入到新的组里面,如果需要的是-a的参数,表示的是“追加”

    删除群组

    指令很简单,如下格式

    1
    delgroup demog

    Linux下有关用户和组的文件权限变动
    https://halc.top/p/be72c31c
    作者
    HalcyonAzure
    发布于
    2021年7月22日
    许可协议
    \ No newline at end of file diff --git a/p/c1161a88.html b/p/c1161a88.html new file mode 100644 index 00000000..3dd64aed --- /dev/null +++ b/p/c1161a88.html @@ -0,0 +1,2 @@ +ZeroTier配置Moon服务器 - Halcyon Zone +

    ZeroTier配置Moon服务器

    参考链接:
    1.什么值得买-ZeroTier配置Moon节点

    2.ZeroTier官方手册

    安装Moon服务器的作用

    ​ ZeroTier本身的PLANET服务器位于国外,并且由于免费的性质以至于在一些高峰时期经常出现无法打通隧道的情况,这个时候通过自己搭建国内的Moon节点并且进行配置可以达到国内中转加速的作用。

    Moon服务器在VPS上的搭建

    1. 将需要设置moon节点的VPS加入到需要加速的局域网内

      zerotier-cli join <network id>

    2. 生成moon模板

      1
      2
      cd /var/lib/zerotier-one
      zerotier-idtool initmoon identity.public > moon.json
    3. 修改moon.json

      vi moon.json

      修改stableEndpoints为VPS的公网IP,可以添加ipv6地址,例如:

      "stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]

      完整的文件内容示例如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      {
      "id": "deadbeef00",
      "objtype": "world",
      "roots": [
      {
      "identity": "deadbeef00:0:34031483094...",
      "stableEndpoints": [ "10.0.0.2/9993","2001:abcd:abcd::1/9993" ]
      },
      {
      "identity": "feedbeef11:0:83588158384...",
      "stableEndpoints": [ "10.0.0.3/9993","2001:abcd:abcd::3/9993" ]
      }
      ],
      "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
      "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
      "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
      "worldType": "moon"
      }
    4. 生成moon签名文件

      zerotier-idtool genmoon moon.json

    5. 通过winscp等工具将000000xxxx.moon的签名文件拷贝下来,或者记住moon.json"id": "idtoremember"id

    6. 将moon节点加入网络

      1
      2
      mkdir moons.d
      mv ./*.moon ./moons.d
    7. 重启ZeroTier,到此Moon服务器的配置结束。

    在客户端启用配置好的节点

    方法一:通过ID直接加入

    1. 在搭建moon服务器的第五步中,记录下moon节点的id,然后在客户端上运行命令

      zerotier-cli orbit idtoremeber idtoremeber

    方法二:通过添加签名文件加入

    1. 在不同设备的ZeroTier根目录下添加moons.d文件夹

      1
      2
      3
      4
      5
      其中,不同系统对应的ZeroTier的位置如下:
      Windows: C:\ProgramData\ZeroTier\One
      Macintosh: /Library/Application Support/ZeroTier/One)
      Linux: /var/lib/zerotier-one
      FreeBSD/OpenBSD: /var/db/zerotier-one
    2. 将生成的0000xxx.moon文件放置于moons.d文件夹下

    Openwrt下ZeroTier配置Moon服务器

    OpenWrt需要修改一个脚本,因为其var目录是一个内存虚拟的临时目录,重启后原有配置不会保留。

    1. 通过ssh连接到Openwrt并修改zerotier的启动脚本

      1
      vi /etc/init.d/zerotier
    2. add_join(){}上方插入两行代码

      1
      2
      mkdir -p $CONFIG_PATH/moons.d
      cp /home/moons.d/* $CONFIG_PATH/moons.d/

      如下图所示:

      ZeroTier的Moon节点

    3. 在/home文件夹下创建moons.d文件夹(修改cp /home/moons.d可以修改需要设置的路径)

    4. 把moon的签名文件00000xxx.moon放于该文件夹内,并重启ZeroTier即可

    补充:解决Openwrt重启后ZeroTier的ID重新分配的问题
    1. 启动Openwrt上的ZeroTier

    2. 输入以下指令

      1
      cp -a /var/lib/zerotier-one /etc/zerotier
    3. 修改/etc/config/zerotier的配置文件,添加以下内容

      option config_path '/etc/zerotier'


    ZeroTier配置Moon服务器
    https://halc.top/p/c1161a88
    作者
    HalcyonAzure
    发布于
    2021年3月24日
    许可协议
    \ No newline at end of file diff --git a/p/c1ec22c4.html b/p/c1ec22c4.html new file mode 100644 index 00000000..612b6ae5 --- /dev/null +++ b/p/c1ec22c4.html @@ -0,0 +1,2 @@ +OSTEP:分页的计算 - Halcyon Zone +

    OSTEP:分页的计算

    第二十章:分页:较小的表

    1. 对于线性页表,只要知道第一个Page的地址,存于寄存器当中,就可以通过这个地址依次陆续推算下一个或后面任意一个有效的地址范围。对于多级页表,通过多次搜索,依旧可以在只有最初的页表的地址的情况下,通过多次的偏移查询来定位到最后需要的特定地址。

    2. 这里取例子说明算法,具体答案通过-c参数可直接输出

      这里以seed0的时候为例

      首先,在README.md中可以得到以下信息

      • Page Size: 32 bytes
      • Virtual Address Space:32 KB(1024个分页 2^15)
        • 虚拟地址需要 15 bits (VPN 占 10 bit,offset 占 5 bit)
      • Physical Memory: 128个分页(2^12)
        • 物理地址需要 12 bits (PFN 占 7bit, offset 占 5 bit )
      • Virtual Address Space 的前五位对应了Page Directory的索引

      通过seed生成0对应的地址数据,用于PDE查表,内容如下

      Page Content
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      80
      81
      82
      83
      84
      85
      86
      87
      88
      89
      90
      91
      92
      93
      94
      95
      96
      97
      98
      99
      100
      101
      102
      103
      104
      105
      106
      107
      108
      109
      110
      111
      112
      113
      114
      115
      116
      117
      118
      119
      120
      121
      122
      123
      124
      125
      126
      127
      128
      page   0:1b1d05051d0b19001e00121c1909190c0f0b0a1218151700100a061c06050514
      page 1:0000000000000000000000000000000000000000000000000000000000000000
      page 2:121b0c06001e04130f0b10021e0f000c17091717071e001a0f0408120819060b
      page 3:7f7f7f7fcd7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f887f7f7f7f7f7f7f7fb9
      page 4:0b041004051c13071b131d0e1b150107080507071b0e1b0411001c000c181e00
      page 5:17131d0a1202111906081507081d1e041b1101121301171902140e070e040a14
      page 6:0000000000000000000000000000000000000000000000000000000000000000
      page 7:0000000000000000000000000000000000000000000000000000000000000000
      page 8:11101a120f10180a11151e151d0c12170a081e0a1e1a06191e08141702190915
      page 9:0000000000000000000000000000000000000000000000000000000000000000
      page 10:0000000000000000000000000000000000000000000000000000000000000000
      page 11:0910141d04011a18170e150c050c18181d1b151016051c16120d13131b11060d
      page 12:060b16191c05141d01141a0a07120d050e0c110f090b19071100160a0108071d
      page 13:19100b0e000614140f1d0e091a08121519180b0101161d0a0d16140814090b10
      page 14:1218140b000d1c0a07040f10020c141d0d0d0e060c140c12191e1b0b00120e07
      page 15:0000000000000000000000000000000000000000000000000000000000000000
      page 16:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fea7f7f7f
      page 17:0000000000000000000000000000000000000000000000000000000000000000
      page 18:7f7f7f7f7f7fab7f7f7f8e7f7f7fdd7f7f7f7f7f7f7f8b7f7f7f7f7f7f7f7f7f
      page 19:00130001061402011e0d1b060d0b050a1e170b0c081016150e011c0c0c00041a
      page 20:1a190402020c1d110807030419041a190411001a11170f151c111b0a03000719
      page 21:0b081b0e1c151e121e050d111e111a130f0c0b09061d101a1b1d070a13090417
      page 22:1212150f081b0a0e130f1d1d1c1c120f150608010500140418151e0c1c0e0a03
      page 23:1d0f030b0c0f1e1e1113140f0f091502091b071d1e110102060a03180b07010b
      page 24:0000000000000000000000000000000000000000000000000000000000000000
      page 25:03031c031b0e0e0a0c0b110a1907070e1c0016000c170d0d070e070814121c1e
      page 26:090e1d18081115180d0c170d070e1d040e130e06001513000917131004150e15
      page 27:0000000000000000000000000000000000000000000000000000000000000000
      page 28:0f1d0f0a0211070b0b17071d170e1b0b0b04180c0f0e140b1c0d0b0c171e1a0e
      page 29:17081e031b010710120c030708171c120118090a10071c050c08101113100c13
      page 30:7f7f7f7f7f847f7f7f7f977fbd7f7ff47f7f7f7f7f7f7f7f7f7f7f7f7f7f9c7f
      page 31:7f7f7f7f7f7fd07f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 32:0000000000000000000000000000000000000000000000000000000000000000
      page 33:7f7f7f7f7f7f7f7fb57f9d7f7f7f7f7f7f7f7f7f7f7f7f7f7f7ff6b17f7f7f7f
      page 34:0413050d0c02161518101105060710190b1b16160a031d1a0c1a1b0a0f0a151c
      page 35:0000000000000000000000000000000000000000000000000000000000000000
      page 36:1d1313160c0c1400050a07130b1b110c0c150c14010d0804100f11171b0f090e
      page 37:1e0f0a0d0c100c021e1e05070d15001913081a1409101e01151a150412180c12
      page 38:0000000000000000000000000000000000000000000000000000000000000000
      page 39:1b111e171108150e160c0f001601151218081506100a1e1e06110a1e1c121615
      page 40:0d030b1007190b0709191c1d0017100307080c0e1d01151a0b07060904110700
      page 41:7f7f7f7f7f7f7f7fe57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f8d7f7f7f7f7f
      page 42:03041501111c1015001312110c0b1e01001d050306181d000d030806140a050f
      page 43:190802041311011e0e0916000d141d171b030d00080b0a0b180519100a11050f
      page 44:7f7f7f7f7f7fcc7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fa27f7f7f7f7f7f
      page 45:7fb27fef7f7f7f7fa4f57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 46:0000000000000000000000000000000000000000000000000000000000000000
      page 47:070a0f1002090b0c0e0d020613190f0402040b111410110a14160c19171c0e0a
      page 48:0000000000000000000000000000000000000000000000000000000000000000
      page 49:1e0a0f0702030d13101003010b1d05080e1c1d00140714171b151a1804011610
      page 50:161b040706011a0f020d0d181704130f0004140b1d0f15040e1619060c0e0d0e
      page 51:14000f1a070a1a0511071d180d02090f1c0311151019101d12120d120b110905
      page 52:0000000000000000000000000000000000000000000000000000000000000000
      page 53:0f0c18090e121c0f081713071c1e191b09161b150e030d121c1d0e1a08181100
      page 54:1901050f031b1c090d11081006090d121008070318031607081614160f1a0314
      page 55:0000000000000000000000000000000000000000000000000000000000000000
      page 56:0000000000000000000000000000000000000000000000000000000000000000
      page 57:1c1d1602020b000a001e19021b0606141d03000b00121a05030a1d041d0b0e09
      page 58:0000000000000000000000000000000000000000000000000000000000000000
      page 59:0000000000000000000000000000000000000000000000000000000000000000
      page 60:0000000000000000000000000000000000000000000000000000000000000000
      page 61:010510020c0a0c031c0e1a1e0a0e150d09161b1c130b1e1302021701000c100d
      page 62:7f7f7fa87f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 63:0612060a1d1b19010407181a12161902021a010601001a0a0404141e0f1b0f11
      page 64:18121708080d1e161d10111e0518181a1704141c110b1d110c13180700101d15
      page 65:7f7f7f7f7f7f7f7f7f7f997f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 66:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fd77f7f
      page 67:0000000000000000000000000000000000000000000000000000000000000000
      page 68:121216020f060c0f0a0c16011d120511020f150d09141c1b0b1a03011e171311
      page 69:190a19020d0a0d190f1e1a03090016001b050c01090c0117160b1902010b1b17
      page 70:0000000000000000000000000000000000000000000000000000000000000000
      page 71:7f7f7f7f7f7f7f7f7f7f7f857f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 72:180c0018050c0b030a051314000e111b0f02011a181a081402190a1d0e011c13
      page 73:0000000000000000000000000000000000000000000000000000000000000000
      page 74:0d0b1e08180d0b011a151b0d14030c06011d0604060b10041e1e040c151b0f1c
      page 75:1a1c011b00141c0f0c0a1c1c13160a041e14081e120a1b021804030816120d04
      page 76:0c11150c1b1d1e01191b041d03061d191108070c0013011702000817190f1d03
      page 77:1c061606001b1a0205071c0b190d0b171308121519141312021d16081513140b
      page 78:0e02171b1c1a1b1c100c1508191a1b121d110d141e1c1802120f131a07160306
      page 79:1e1b1516071708030e0a050d1b0d0d1510041c0d180c190c06061d12010c0702
      page 80:1b081d1c020d170d0f19151d051c1c131d071b171202000007170b18130c1b01
      page 81:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fe27f7f7f7f7f7f7f7f7f7f7f7f7ffa
      page 82:0000000000000000000000000000000000000000000000000000000000000000
      page 83:0000000000000000000000000000000000000000000000000000000000000000
      page 84:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f947f7f7f7f7fce
      page 85:7f7f7f7f7f7f7f7f9a7fbf7f7f7f7f7f7f7f7f7faf7f7f7f7f7f7f7f7f7f7f7f
      page 86:7f7f7f7f7f7f7fc57f7f7f7f7f7f7f7f7f7f7f7fca7f7fee7f7f7f7f7f7f7f7f
      page 87:1805180d170e1802011c0f1b1d14110602191b18150d09030d111c1d0c031716
      page 88:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc47f7f7f7f7f7f7f7f7f7f7f7f
      page 89:0000000000000000000000000000000000000000000000000000000000000000
      page 90:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc07f7f7f7f7f7f7f7fde7f7f7f7f7f7f
      page 91:7f7f7f7f7f7f7f7f7f7f7f7fa57f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 92:0000000000000000000000000000000000000000000000000000000000000000
      page 93:0a1a1907001905181505021c12130e0412071816001c01020904070b160c080f
      page 94:1406190710140713080519110a1200040c1e0f021718181115061619170a1213
      page 95:0a1d0f1d1e1915040012151d10151406131e0315130b18001b190e030e12070f
      page 96:7f7f7f7f7f7f7f7f7f7f7f7f7f7fb67f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 97:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fc87f7f7f7f7fe77f7f7f7f7f7f7f7f7f
      page 98:15191803171a170e1503170818130f100201001804030b1e1b0919020c111e01
      page 99:090b1304150b1204140a0e0c0e1509140109170113000e1b0010021a15171400
      page 100:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fa77f7f7f7f7f7f7f7f7f7fe37f7f
      page 101:0e0a00010b061005061416091a070a16011c020e1601191e0e030203170c1c0d
      page 102:1d031b0116000d1a0c1c1612050a0c121e080f1c0a13171317061d0512091309
      page 103:1e171c061012190e180c121a181400050f07021a1d090c19011303081901010c
      page 104:7f7f7f7f7f7f7f7f7f7f7f7f80aa7f7f7f7f7f7f7f7f7f7f7f7f7f7ff07f7f7f
      page 105:b37f7f7f7f7f7f7f7f7f7f7f7f937f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 106:160a000e1001110a00050310011c1a1d091c1e170814120c090103040e131701
      page 107:7f7f7f7f7f7f7f7f7f7f7f7f7f7ff17f7f7f7f7f7f7f7f7ff37f7f7f7f7f7f7f
      page 108:83fee0da7fd47febbe9ed5ade4ac90d692d8c1f89fe1ede9a1e8c7c2a9d1dbff
      page 109:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f827f7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 110:1614041e0c120b010e0401131303110a0b180f1b120e130a03151318031c181c
      page 111:08000115111d1d1c01171514161b130b10061200040a18160a1301051e080c11
      page 112:19051e1302161e0c150906160019100303141b081e031a0c02080e181a041014
      page 113:1d07111b1205071e091a181716181a01050f06100f03020019021d1e170d080c
      page 114:0000000000000000000000000000000000000000000000000000000000000000
      page 115:110601040d1406151a170d141e1b0a1505110b0d0d141a0e0417171d0c0e101b
      page 116:0a130b11150f14171a05060f0f19101b180f190e0a0d0e1401161e0e02060307
      page 117:1b0a170019111d0b130a18121e000401031c1d0e1d19181705110d1d05051404
      page 118:1119021a1c05191a1b101206150c00040c1b111c1c02120a0f0e0e03190f130e
      page 119:0000000000000000000000000000000000000000000000000000000000000000
      page 120:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fcb7f7f7f7f7f7f7f7f7f7f7f7f7f
      page 121:0000000000000000000000000000000000000000000000000000000000000000
      page 122:051e0312041b1d18090717090d01040002020d1116040d13020d0b1d010c0c16
      page 123:0000000000000000000000000000000000000000000000000000000000000000
      page 124:0000000000000000000000000000000000000000000000000000000000000000
      page 125:0000000000000000000000000000000000000000000000000000000000000000
      page 126:7f7f7f7f7f7f7f7f8ce6cf7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f967f7f7f7f7f
      page 127:7f7f7f7f7f7f7f7f7f7f7f7f7f7f7f7fdf7f7f7f7f7f7f7f7f7f7f7f7f957f7f

      并且根据模拟生成的PDBR: 108可以知道Page 108对应的内容即是第一级PDE的映射

      接下来就可以进行计算了,这里取一个vaildinvaild的答案分析计算过程

      1
      2
      3
      4
      5
      6
      7
      8
      Virtual Address 611c:
      --> pde index:0x18 [decimal 24] pde contents:0xa1 (valid 1, pfn 0x21 [decimal 33])
      --> pte index:0x8 [decimal 8] pte contents:0xb5 (valid 1, pfn 0x35 [decimal 53])
      --> Translates to Physical Address 0x6bc --> Value: 08
      Virtual Address 3da8:
      --> pde index:0xf [decimal 15] pde contents:0xd6 (valid 1, pfn 0x56 [decimal 86])
      --> pte index:0xd [decimal 13] pte contents:0x7f (valid 0, pfn 0x7f [decimal 127])
      --> Fault (page table entry not valid)

      Virtual Address 611c

      1. 将611c按二进制转换为Virtual Address Space对应的 15 bits 为 11000 01000 11100。对PDE分割前五位有11000(decimal 24)

      2. 这个时候对最顶层的PDTR对应的Page 108进行查表操作

      首先可以通过Page Content得到Page 108内容如下

      1
      2
      Page 108: 83 fe e0 da 7f d4 7f eb be 9e d5 ad e4 ac 90 d6 92 d8 c1 f8 9f e1 ed e9 a1 e8 c7 c2 a9 d1 db ff
      Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

      通过查表找到对应Index的内容可以知道24(11000)对应位置的内容是a1,转换为二进制为1010 0001,读取最高位为1可以知道是vaild。再通过后面的0010 0001转换为十进制为33,因此再继续查询Page 33的内容

      1
      2
      Page 33:7f 7f 7f 7f 7f 7f 7f 7f b5 7f 9d 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f f6 b1 7f 7f 7f 7f
      Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

      611c的[1-5]位为PDE,这时我们则需要通过[6-10]位来通过PTE寻找VPN对应的PFN地址。由611c11000 01000 11100可以知道这次为01000(decmial 8),对照上面page 33可以发现第八个对应的内容为53,因此可以知道最终VPN对应上了PFNPage 53。最后再通过offset11100,配合Page 53对应的二进制PFN地址11 0101结合offset11100110101 11100,也就是最后答案的0x6bc,其中通过offsetPage 53中查表可以找到对应的 Value08

      Virtual Address 3da8

      1. 611c同理,将3da8转为二进制01111 01101 01000,得到pde index01111(15),对应的Value0xd6(1101 0110),通过1101 0110最高位可以知道目标分页为vaild,去掉vaild bit可以得到索引的pte0x56(0101 0110 | 86)

      2. 检索Page 86,由PTE index01101可以找到对应的Value0x7f(0111 1111)由于最高位为0,因此是invaild,也就是说pte无效,无法访问

      其他的情况也是依次类推,即可算出结果是否有效

    3. 根据个人理解,具体缓存hitmiss的概率主要由对应内存上的数据决定。对于访问次数较多的内容hit缓存加快速度的概率自然更高;而对于不重复的多次查询(比如上面的练习),自然miss的概率会更高。因此对于进程来说,如果能将数据尽量集中在某一块分页上则能有效提高内存访问和处理的速度。


    OSTEP:分页的计算
    https://halc.top/p/c1ec22c4
    作者
    HalcyonAzure
    发布于
    2022年5月12日
    许可协议
    \ No newline at end of file diff --git a/p/c9774a05.html b/p/c9774a05.html new file mode 100644 index 00000000..7863d35d --- /dev/null +++ b/p/c9774a05.html @@ -0,0 +1,2 @@ +Devc++调试相关选项配置 - Halcyon Zone +

    Devc++调试相关选项配置

    由于蓝桥杯比赛需要使用Devc作为IDE工具,平时用习惯了vscode的snap和其他功能以后觉得如果不提前适应一下Devc的编译环境的话在比赛的时候会吃很大的亏,于是决定之后的学习都用Devc进行,在此记录一下Devc启用调试之前需要的一些基本设置

    启用调试信息(选做)

    貌似在按F5准备进行调试的时候,即使自己没有进行以下设置,Devc++依旧会询问并且可以直接打开进行设置,这里只做一个提前设置的记录,并非必须

    1. 首先,打开devc++之后,找到上方的Tools(工具),如下图所示,打开其中的Compiler options(编译选项)

      工具

    2. 然后按下图开启调试信息(设置为yes)

      调试信息

    显示鼠标所指变量

    1. 再次打开Tools,并且打开Enviroment options

    2. 启用下图黄线部分的选项,开启显示指针所指变量的值

      指针调试


    Devc++调试相关选项配置
    https://halc.top/p/c9774a05
    作者
    HalcyonAzure
    发布于
    2021年3月15日
    许可协议
    \ No newline at end of file diff --git a/p/c9fc3bb5.html b/p/c9fc3bb5.html new file mode 100644 index 00000000..3a36f331 --- /dev/null +++ b/p/c9fc3bb5.html @@ -0,0 +1,2 @@ +Linux下通过硬盘UUID进行挂载 - Halcyon Zone +

    Linux下通过硬盘UUID进行挂载

    参考链接

    1. 重启后盘符发生变化解决办法

    步骤

    1. 将硬盘接入系统

    2. 使用以下指令查询目前磁盘分区的盘符

      1
      df -h
    3. 使用以下指令查询特定盘符的UUID

      1
      blkid /dev/sda1  ## 这里的sda1要看具体情况填
    4. /etc/fstab/内编辑类似以下内容挂载磁盘

      1
      UUID=c26cfce4-xxxx-xxxx-xxxx-403439946c8c    /opt    ext4    defaults 0 0  ## /opt为具体挂载的目录,ext4为磁盘格式
    5. 使用以下指令检查是否设置成功,如果成功则不会返回任何异常信息

      1
      mount -a

    Linux下通过硬盘UUID进行挂载
    https://halc.top/p/c9fc3bb5
    作者
    HalcyonAzure
    发布于
    2021年5月22日
    许可协议
    \ No newline at end of file diff --git a/p/cc7f9b10.html b/p/cc7f9b10.html new file mode 100644 index 00000000..f9bf9014 --- /dev/null +++ b/p/cc7f9b10.html @@ -0,0 +1,2 @@ +Linux下7zip的使用手册 - Halcyon Zone +

    Linux下7zip的使用手册

    安装

    1. 直接使用apt安装即可

      1
      sudo apt install p7zip

    基础命令

    1. 压缩文件/文件夹

      1
      7za a -t7z -r MyTest.7z FolderToZip/*

      FolderToZip文件夹下所有文件压缩到当前目录的MyTest.7z文件中

      a 代表添加文件/文件夹到压缩包
      -t(7z) -t参数是指定压缩类型,这里是7z,也可以不指定,因为7za默认的压缩类型就是7z
      -r 表示递归所有的子文件夹

    2. 解压缩文件夹

      1
      7za x MyTest.7z -r -o./

      MyTest.7z解压到当前目录

      x 代表解压缩文件,并且是以原本文件夹的方式解压(还有一个参数是e,会直接把所有文件从根目录解压)
      -r 递归解压缩的所有子文件夹
      -o 指定解压缩的目录,并且-o后面是没有空格的,这一点需要注意。

    参考文章:

    1. linux下安装7z命令及7z命令的使用

    Linux下7zip的使用手册
    https://halc.top/p/cc7f9b10
    作者
    HalcyonAzure
    发布于
    2021年4月30日
    许可协议
    \ No newline at end of file diff --git a/p/cdfd3649.html b/p/cdfd3649.html new file mode 100644 index 00000000..f5b752da --- /dev/null +++ b/p/cdfd3649.html @@ -0,0 +1,2 @@ +ArchWSL安装及基础配置 - Halcyon Zone +

    ArchWSL安装及基础配置

    准备工作

    Windows上安装ArchWSL直接使用scoop来安装是比较便捷的一种方案,具体如何在Windows上配置·scoop`可以参考这篇教程:

    在配置好了scoop以后,首先通过以下指令安装ArchWSL

    1
    scoop install archwsl

    只要按正常流程,按win+s,通过Windows搜索找“Turn Windows features on or off”或“启用或关闭Windows功能”,然后在里面将 Virtual Machine PlatformWindows Subsystem for Linux 勾选上,重启电脑即可。

    重启电脑之后只需要在命令行中输入arch即可启动,如果出现报错或无法使用 WSL2 的情况可以通过搜索引擎或在这里下载Linux内核更新包来解决

    配置镜像源并创建非root用户

    启用mirrorlist包含镜像

    /etc/pacman.d/mirrorlist内已经有Arch预置好的部分国内镜像源,我们只需要将我们对应需要的镜像前面的注释取消即可使用。

    或者也可以通过下面这个脚本来一键启用所有China部分的镜像源

    1
    sed -E '/China/,/##/s/^#S(.)/S\1/g' /etc/pacman.d/mirrorlist~ > /etc/pacman.d/mirrorlist

    添加archlinuxcn源

    通过以下指令将archlinuxcn相关源直接写入/etc/pacman.conf当中

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    cat >> /etc/pacman.conf << EOF


    # 国内archlinuxcn镜像源
    [archlinuxcn]
    Server = https://mirrors.aliyun.com/archlinuxcn/\$arch
    Server = https://repo.archlinuxcn.org/\$arch
    Server = https://mirrors.bfsu.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.cloud.tencent.com/archlinuxcn/\$arch
    Server = https://mirrors.163.com/archlinux-cn/\$arch
    Server = https://repo.huaweicloud.com/archlinuxcn/\$arch
    Server = https://mirrors.zju.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.cqupt.edu.cn/archlinuxcn/\$arch
    Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/\$arch
    Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
    EOF

    安装yay和基础环境

    首先通过以下指令,来更新软件源、安装archlinuxcn证书、yay和部分基础工具(其中yadm是一个用来备份dotfiles的工具,用于恢复自己常用的Linux环境下的自定义文件)

    1
    2
    pacman -Syyu --noconfirm ;
    pacman -S archlinuxcn-keyring --noconfirm && pacman -S yay wget curl zsh yadm --noconfirm

    创建非root用户

    1. 创建用户 (注意替换下文的用户名

      1
      useradd -m -G wheel -s /bin/zsh 用户名
    2. wheel组内的成员给予sudo的权限

      如果希望安全考虑,在sudo之前要输入密码的话,可以输入下面的指令来配置visudo

      1
      echo '%wheel ALL=(ALL:ALL) ALL' | sudo EDITOR='tee -a' visudo

      如果偷懒,不希望每次都输入密码的话可以用下面的指令来配置visudo

      1
      echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo

      2.5. 以上所有操作全部可以自动完成,只需要将以下脚本内的用户名替换为自己的用户名即可(默认sudo不需要密码)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      sed -E '/China/,/##/s/^#S(.)/S\1/g' /etc/pacman.d/mirrorlist~ > /etc/pacman.d/mirrorlist
      cat >> /etc/pacman.conf << EOF


      # 国内archlinuxcn镜像源
      [archlinuxcn]
      Server = https://mirrors.aliyun.com/archlinuxcn/\$arch
      Server = https://repo.archlinuxcn.org/\$arch
      Server = https://mirrors.bfsu.edu.cn/archlinuxcn/\$arch
      Server = https://mirrors.cloud.tencent.com/archlinuxcn/\$arch
      Server = https://mirrors.163.com/archlinux-cn/\$arch
      Server = https://repo.huaweicloud.com/archlinuxcn/\$arch
      Server = https://mirrors.zju.edu.cn/archlinuxcn/\$arch
      Server = https://mirrors.cqupt.edu.cn/archlinuxcn/\$arch
      Server = https://mirrors.sjtug.sjtu.edu.cn/archlinux-cn/\$arch
      Server = https://mirrors.tuna.tsinghua.edu.cn/archlinuxcn/\$arch
      EOF
      pacman -Syyu --noconfirm ;
      pacman -S archlinuxcn-keyring --noconfirm && pacman -S yay wget curl zsh yadm --noconfirm
      echo '%wheel ALL=(ALL:ALL) NOPASSWD: ALL' | sudo EDITOR='tee -a' visudo
      useradd -m -G wheel -s /bin/zsh 用户名
    3. 给root用户和自定义用户设置密码(自行操作)

      修改root用户密码

      1
      passwd root

      修改自定义用户密码

      1
      passwd 用户名
    4. (可选)切换到自定义用户下并配置oh-my-zsh

      通过以下指令切换用户

      1
      su 用户名

      配置zshoh-my-zsh可以参考这篇教程(Ubuntu配置和Arch大同小异,可以选择性参考)

      Ubuntu下安装Oh My Zsh引导

    设置自定义用户和ArchWSL为默认

    如果希望设置ArchWSLWSL的默认发行版,并将刚刚自己创建的用户作为默认用户的话只需要分别在Powershell下执行这两条指令

    1
    wsl -s Arch
    1
    Arch config --default-user 用户名

    ArchWSL安装及基础配置
    https://halc.top/p/cdfd3649
    作者
    HalcyonAzure
    发布于
    2022年7月9日
    许可协议
    \ No newline at end of file diff --git a/p/cf0fd528.html b/p/cf0fd528.html new file mode 100644 index 00000000..4c6cd5a8 --- /dev/null +++ b/p/cf0fd528.html @@ -0,0 +1,2 @@ +通过Python提交ncu每日健康信息 - Halcyon Zone +

    通过Python提交ncu每日健康信息

    声明

    1. 该方法目前稳定性尚不确定,Token有概率会不定时失效,如果使用后果自负
    2. 该方法仅作Python学习使用,了解原理后使用后果自负
    3. 疫情期间请以实际情况打卡汇报,切勿身体有状况而依旧以无状况打卡。

    参考文章

    1. 简单三步,用 Python 发邮件 - 知乎 (zhihu.com)
    2. github action获取仓库secrets

    实现的效果

    ​通过Github Actions,在每天通过cron设定的时间实现企业微信打卡

    运行环境

    Github Actions

    需要准备的东西

    QQ号以及QQ的SMTP密码

    获取Token

    1. 在打卡界面中"复制链接",并在电脑上打开

      企业微信

    2. 电脑浏览器打开链接,按F12,此时可能是电子ID,不用管,在右上角找到Network,并打开。

      (如果提示要按Ctrl+R,按就行)

      Network

    3. Network下方找到loginByToken,并且找到右边的Token信息,复制保存。

      TokenGet

    获取QQ邮箱的SMTP密码

    百度搜索:获取QQ邮箱的SMTP密码

    编辑Python脚本

    大致思路就是通过对应接口抓包后发包即可,更新Token通过接口LoginByToken实现,打卡通过SignIn接口实现。
    参考脚本:Scripts/ncu.py

    运行脚本并测试

    为了仓库的信息安全,所有的密码通过Github仓库下secrets来进行设置,然后参考 github action获取仓库secrets 中提及的方法修改设置即可。

    备注

    每个人都有义务在疫情大环境下对自己的真实信息负责


    通过Python提交ncu每日健康信息
    https://halc.top/p/cf0fd528
    作者
    HalcyonAzure
    发布于
    2022年3月18日
    许可协议
    \ No newline at end of file diff --git a/p/cff2e0b5.html b/p/cff2e0b5.html new file mode 100644 index 00000000..28814432 --- /dev/null +++ b/p/cff2e0b5.html @@ -0,0 +1,2 @@ +SSH技巧总结 - Halcyon Zone +

    SSH技巧总结

    通过密钥连接服务器

    生成密钥

    1. 在客户端电脑上输入以下指令生成rsa私钥和公钥

      ssh-keygen -t rsa -C "your@email.com"

      生成一对以你的邮箱为标签的密钥

    2. /.ssh/文件夹下的id_rsa为密钥文件,id_rsa.pub为公钥文件

    在Linux服务器下添加密钥

    1. 在当前用户的主目录中的/.ssh/中添加或者修改authorized_keys文件,将刚刚客户端的id_rsa.pub内容复制到authorized_keys

    关闭密码登入,并且只用RSA登入

    1. 编辑sshd_config文件

      vi /etc/ssh/sshd_config

    2. 禁用密码验证

      PasswordAuthentication的注释取消,并修改为

      PasswordAuthentication no

    3. 重启SSH服务

      注意,重启SSH服务之前建议保留一个会话,以免出现密码登入失败的情况

      • RHEL/CentOS系统

        sudo service sshd restart

      • Ubuntu系统

        sudo service ssh restart

    常用的ssh config参数

    建立前的配置

    在建立连接的时候,如果是第一次对一个服务器建立连接,经常会问到我们是否信任对方,并且在第一次建立连接之后,如果同一个IP地址后的服务器有过重装,还会因为之前保存的证书而出现连接失败的情况。

    因此可以在~/.ssh/config文件中添加以下配置

    1
    2
    StrictHostKeyChecking no # 关闭主机公钥的确认信息,去掉了连接时候的提问,不过也因此有安全隐患,需要自己权衡
    UserKnownHostsFile /dev/null # 在和某个主机建立连接以后,ssh就会将密钥存储在本地的一个known_hosts文件中,配置为/dev/null相当于不保存

    连接服务器

    同时,有的时候我们需要频繁访问同一个服务器,反复输入ssh root@xxx.xxx.xxx.xxx是很令人恼火的一件事(即使有的域名或历史记录)。这个时候我们就可以通过在config中添加一个Host来给我们需要的服务器添加一个简单易懂的别名来建立连接

    1
    2
    3
    Host router
    User root
    HostName 192.168.100.123

    假设我们路由器的IP地址是192.168.100.123,那么我们就可以将原本的

    1
    ssh root@192.168.100.123

    改为

    1
    ssh router

    这样ssh就会使用root用户来登入192.168.100.123

    X11窗口转发

    对于一些有GUI的Linux系统来说,有的时候我们并不希望远程整个桌面,而是通过SSH来运行部分图形化的程序。在Windows当中,我们可以通过安装VcXsrv来提供一个SSH的转发接口,然后在~/.ssh/config中对应的服务器添加如下参数

    1
    2
    3
    4
    5
    Host study
    User halc
    HostName 192.168.100.101
    ForwardX11 yes
    ForwardX11Trusted yes

    这样我们在和对应服务器建立连接以后,就可以通过在自己电脑上的cli运行远程服务器中带有GUI

    多文件配置

    在有的时候ssh需要连接的主机可能很多,放在一个文件里面可能会不便于管理。这个时候我们就可以通过Include关键字,来添加其他的config合并进来。

    假设当前我们的.ssh目录的结构如下

    1
    2
    3
    4
    5
    6
    7
    8
    ~ [ tree .ssh                                                                                                          ] 1:40 PM
    .ssh
    ├── authorized_keys
    ├── conf.d
    │   └── home
    ├── config
    ├── id_rsa
    └── id_rsa.pub

    那么我们就可以在config当中添加Include conf.d/home来实现对于home文件的多文件配置涵盖。参考如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    StrictHostKeyChecking no
    UserKnownHostsFile /dev/null
    GSSAPIAuthentication=no

    Include conf.d/home

    Host node1
    User root
    HostName xxx.xxx.xxx.xx

    ...

    home当中就可以添加正常的ssh配置了


    SSH技巧总结
    https://halc.top/p/cff2e0b5
    作者
    HalcyonAzure
    发布于
    2021年4月19日
    许可协议
    \ No newline at end of file diff --git a/p/d08cfaf4.html b/p/d08cfaf4.html new file mode 100644 index 00000000..239eb035 --- /dev/null +++ b/p/d08cfaf4.html @@ -0,0 +1,2 @@ +C++学习记录 - const限定符 - Halcyon Zone +

    C++学习记录 - const限定符

    指针和引用

    总结自C++ Primer,仅供自己学习参考

    引用

    1. 引用本身只是目标对象的一个别名,自己本身并不是对象

    2. 变量引用可以间接对变量进行修改

    3. 常量别名代表的只能是常量,如果常量别名一个变量,也是先通过创建一个临时量,然后对这个临时量创建别名

    4. 变量别名不能指向一个常量,也不能指向运算后的值后的结果,e.g.

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      int pi = 3;
      const int PI = 3;

      //当对象为变量时
      int &revPI = pi; //正确,变量的别名代表的是一个变量
      int &revPIt = pi *2; //错误,不能指向变量运算后的结果(即返回的是一个常量值)
      const int &cRevPI = pi; //正确,常量别名可以指向一个变量,通过临时量代替

      //当对象为常量时
      int &cstRevPI = PI; //错误,变量别名必须指向一个变量
      const int &cstcRevPI = PI;//正确,常量别名可以指向一个常量
    5. 引用在decltype出并非是对象的同义词,而表示的是对应类型的引用

      1
      2
      3
      4
      const int ci = 0, &cj = ci;
      decltype(ci) x = 0; //x的类型是const int
      decltype(cj) y = x; //y的类型是const int&,必须要设定为一个const int的引用
      decltype(cj) z; //错误,缺少引用代表的对象

      而对于表达式,在使用decltype关键词的时候,由于表达式本身可以返回一个值,所以会被识别为一个引用类型

      1
      2
      3
      int i = 0;
      decltype((i)) d; //错误,d是一个int&,需要初始化
      decltype(i) e; //正确,e是一个int,没有初始化

    指针

    1. 指针本身是一个对象,其含义为指向目标对象的地址
    2. void指针可以指向任意一种变量代表的地址
    3. 常量指针必须初始化,其中通过const关键词有两种表达意思:
      • int *const ptr指的是常量指针,地址不可改变,指向一个int类型的变量
      • const int *ptr指的是常量的指针是常量类型,地址可改变,指向的是const int类型的常量
    4. 对于*const关键词修改的指针,虽然地址不能改变,但是依旧可以通过这个指针修改对应变量的值

    对于const限定符

    顶层const:指针本身是一个常量

    底层const:指针所指的对象是一个常量

    • 对于顶层const中,在常量对象中的拷贝操作几乎不受什么影响

    • 对于底层const中,只有两个对象有相同的底层const才能进行拷贝操作,举例如下:

      1
      2
      3
      4
      5
      const ci = 42;
      const int *const cptr = &i;

      const int *cptr2 = cptr //正确,因为*cptr2和*cptr指向的都是常量的指针
      int *p = p3; //错误,因为*p不是指向常量的指针,所以不能拷贝p3

      其中对于引用也同样成立:

      1
      2
      3
      4
      const int ci = 42;

      int &r = ci; //由于ci本身是常量,和&r代表的底层const不同,所以错误
      const int &r2 = ci; //正确,底层const相同

    C++学习记录 - const限定符
    https://halc.top/p/d08cfaf4
    作者
    HalcyonAzure
    发布于
    2021年10月21日
    许可协议
    \ No newline at end of file diff --git a/p/d26abad0.html b/p/d26abad0.html new file mode 100644 index 00000000..debfcf2c --- /dev/null +++ b/p/d26abad0.html @@ -0,0 +1,2 @@ +Oh My Posh美化Windows Terminal引导 - Halcyon Zone +

    Oh My Posh美化Windows Terminal引导

    参考文章

    更新PowerShell

    ​ 更新PowerShell本身和Windows Terminal没啥直接关系,单纯做个提醒放一个一键更新指令在这里:

    1
    iex "& { $(irm https://aka.ms/install-powershell.ps1) } -UseMSI"

    这条命令的作用是安装最新版本的PowerShell,截至发博客为止可用于安装PowerShell 7

    Windows Terminal的安装&美化

    Windows Terminal安装

    1. 打开Microsoft Store
    2. 搜索Windows Terminal
    3. 安装

    Windows Terminal的配置和使用

    Windows Terminal的使用

    • Win+R中输入wt回车即可呼出Windows Terminal
    • Windows Terminal中链接了一些Linux下可用的指令,诸如ls
    • 如果要在Windows Terminal下使用vim编辑器,只需要在安装了Git的前提下将C:\Program Files\Git\usr\bin设置为环境变量即可。(如果Git安装在其他目录下进行相对应的调整就好,设置好了以后重启一次Windows Terminal即可)

    Windows Terminal的个性化配置

    如未特别说明,接下来将用wt作为Windows Terminal的简写

    注:本文个性化配置包括:

    • 修改Windows Terminal的配色

    • 安装posh-gitoh-my-posh

    • 安装Nerd Font字体

    • 配置oh-my-posh来修改wt的配色和样式

    不包括(以下设置在最新版的wt设置中已经包含):

    • 毛玻璃和背景设置
    • 光标形状、大小修改等

    配色修改

    1. mbadolato/iTerm2-Color-Schemes下滑,找到自己喜欢的配色的截图,在截图的左上方会有该配色的代号。

    2. iTerm2-Color-Schemes/windowsterminal上找到配色对应的json文件并复制所有的内容。

    3. wt中打开设置,以下图为例:

      打开设置.png
    4. 打开JSON设置,以图下为例:

      打开JSON文件.png
    5. 将刚刚复制的代码粘贴到有scheme字样的配置目录下,以下图为例:

      添加主题.png
    6. 保存后,回到wt的设置,选择平时主要使用的窗口界面(e.g.PowerShell)然后选择外观,然后选择自己添加的主题,以下图为例:

      修改config

    安装 Nerd-Fonts 字体

    教程以Hack NF字体为例,如果需要使用其他字体请自行选择。

    1. 在这个页面下载的Hack.zip

      ryanoasis/nerd-fonts

    2. 解压Hack.zip,然后全选所有文件,右键点击安装

    3. wt中需要的终端,按配色修改第6步修改字体为Hack NF即可。

    安装post-git和oh-my-posh

    以下教程需要电脑上安装了Git才能使用

    1. 使用PowerShell安装post-gitoh-my-posh

      指给当前用户(非Administrator)安装:

      1
      2
      Install-Module posh-git -Scope CurrentUser
      Install-Module oh-my-posh -Scope CurrentUser

      给所有用户安装:

      1
      2
      Install-Module posh-git -Scope AllUsers
      Install-Module oh-my-posh -Scope AllUsers
    2. 列出所有可用主题

      1
      Get-PoshThemes
    3. 找到自己喜欢的主题,然后使用指令预览(这里以spaceship为例):

      1
      Set-PoshPrompt -Theme spaceship
    4. 在预览结束以后,为了让主题每次启动都生效,需要创建一个脚本。

      1. 输入以下指令:

        1
        2
        cd ~
        vim $profile
      2. 按下按键i,进入插入模式,然后填入以下内容:

        1
        2
        3
        Import-Module posh-git
        Import-Module oh-my-posh
        Set-PoshPrompt -Theme spaceship #[这里填你选的主题名字,用spaceship做示范]
      3. 键盘键入:wq然后回车,代表保存并退出。

    5. 重新启动wt即可看到自己个性化配置的Windows Terminal界面了。


    Oh My Posh美化Windows Terminal引导
    https://halc.top/p/d26abad0
    作者
    HalcyonAzure
    发布于
    2021年9月18日
    许可协议
    \ No newline at end of file diff --git a/p/db490294.html b/p/db490294.html new file mode 100644 index 00000000..d7deb966 --- /dev/null +++ b/p/db490294.html @@ -0,0 +1,2 @@ +CS144-Lab5 计算机网络:Network Interface的功能 - Halcyon Zone +

    CS144-Lab5 计算机网络:Network Interface的功能

    Network Interface

    在通过TCP协议将数据包进行封装准备好以后,就需要“快递公司”来对这些数据包进行分发了。这个过程可以划分为两个部分,一个是数据包在中转转发的过程中需要经过的“中转”设备有哪些,其次就是如何选择“中转”的线路。

    在网络接口的部分,主要实现的逻辑是作为发送的某一个节点,在知道了下一个中转站的IP地址以后,如何将数据包进行交付。

    需要实现的逻辑

    首先对目前的知识进行一个梳理。首先在前面四个Lab里面,主要完成的是TCP数据包从一串简单的字符串,到最后封装成一个完整的,可以用于建立连接沟通的TCP数据包。TCP数据包本身并不关心数据包是如何从源IP到目标IP的,这一部分的主要实现是由网络层的IP路由和数据链路层进行沟通。

    在数据链路层中,我们假设已经通过网络层的路由知道了下一条的IP地址,但是要知道一个网口今天可以是192.168.1.1,明天就可以是10.0.0.1,因此我们只知道IP地址是不足以让我们从硬件层面将数据包进行中转发送的,我们还需要针对每一个特定网口本身的硬件地址,也就是MAC地址,来硬件和硬件之间可以正确的发送数据。

    由于硬件地址和IP地址的映射关系有可能是动态的,而每次发送数据都向所有设备广播询问一次MAC和IP的映射关系的话在交流频繁的网络情况下资源利用率十分低下,因此我们也需要在中转设备中动态维护一个缓存用的映射表,同时为这个映射表中每一个条目设定对应的TTL来保证数据的实时性,在超过一定时间以后就删除该缓存。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //! 构造Arp条目
    struct ArpEntry {
    uint32_t raw_ip_addr;
    EthernetAddress eth_addr;
    bool operator<(const ArpEntry &rhs) const { return raw_ip_addr < rhs.raw_ip_addr; }
    };

    //! 记录最大的ttl时间
    const size_t arp_max_ttl = 30000;

    //! 用于记录arp表
    std::map<ArpEntry, size_t> _arp_table{};

    而获取IP和MAC地址对应关系的这个步骤则是由ARP协议实现,在硬件自己不知道要发送的下一个网口的MAC地址的时候,他就会给所有的网口广播ARP,正确的设备识别到了这个ARP是发送给自己的以后就返回自己的MAC地址,如果不是发送给自己的则丢弃不处理。同时和TCP中的超时重传一样,ARP探针自己也有可能会因为硬件链路的问题而导致对方没有收到自己的报文,所以也需要有一个超时重传的逻辑,来让自己尽可能的收到对方的回复。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    //! 构造Arp条目
    struct ArpEntry {
    uint32_t raw_ip_addr;
    EthernetAddress eth_addr;
    bool operator<(const ArpEntry &rhs) const { return raw_ip_addr < rhs.raw_ip_addr; }
    };

    //! 记录最大的探针时间
    const size_t arp_probe_ttl = 5000;

    //! 用于记录探针表
    std::map<ArpProbe, size_t> _probe_table{};

    在有了以上两个大体部分以后,我们就只需要实现

    • 发送(IPV4/ARP)报文
    • 接受(IPV4/ARP)报文
    • 超时重传探针,以及管理ARP映射的TTL

    两个部分即可。

    实现细节

    发送报文

    在发送报文之前,我们首先需要将IP地址转换为uint_32,以用于报文的封装,然后检查这个IP地址我们是否已经缓存了它对应的MAC地址

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // convert IP address of next hop to raw 32-bit representation (used in ARP header)
    const uint32_t next_hop_ip = next_hop.ipv4_numeric();
    optional<EthernetAddress> next_eth;

    // 检查next_hop的IP地址是否在ARP里面有
    for (const auto &entry : _arp_table) {
    if (entry.first.raw_ip_addr == next_hop_ip) {
    next_eth = entry.first.eth_addr;
    break;
    }
    }

    如果这个IP地址对应的MAC地址我们已经缓存了,那么就只需要将这个IP报文封装成网络帧进行发送

    1
    2
    3
    4
    5
    6
    7
    8
    // 如果在ARP里面有则直接发送并短路
    if (next_eth.has_value()) {
    EthernetFrame eth_frame;
    eth_frame.header() = {next_eth.value(), _ethernet_address, EthernetHeader::TYPE_IPv4};
    eth_frame.payload() = dgram.serialize();
    _frames_out.push(eth_frame);
    return;
    }

    如果这个IP地址在我们维护的ARP映射表中并不存在对应的映射关系,那么我们首先要判断我们是否就这个IP发送过ARP探针,如果发送过探针了那么我们也没必要再发送一次,只要等待之前的探针让对方返回正确的MAC地址给我们即可。

    1
    2
    3
    4
    5
    6
    // ARP内没有,先判断之前是否已经发送过探针,如果发送过就不发送了
    for (auto &probe : _probe_table) {
    if (probe.first.raw_ip_addr == next_hop_ip) {
    return;
    }
    }

    如果没有发送的话,那么我们就需要封装一个ARP探针,用于检测目标IP对应的MAC地址,探针目标的IP地址就是IP数据包下一跳的IP,MAC地址则是广播地址(在该实验中直接将目标MAC设置为空即可)。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // 如果没发送就发送,并且将这个探针加入探针表
    ARPMessage arp_probe;
    arp_probe.opcode = ARPMessage::OPCODE_REQUEST;
    arp_probe.sender_ethernet_address = _ethernet_address;
    arp_probe.sender_ip_address = _ip_address.ipv4_numeric();
    arp_probe.target_ethernet_address = {};
    arp_probe.target_ip_address = next_hop_ip;
    EthernetFrame probe_frame;
    probe_frame.header() = {ETHERNET_BROADCAST, _ethernet_address, EthernetHeader::TYPE_ARP};
    probe_frame.payload() = arp_probe.serialize();
    _frames_out.push(probe_frame);

    同时由于探针有超时重传的机制,因此对于这个新发送的报文,我们也需要将其加入缓存表中并设定TTL

    1
    2
    3
    // 加入缓存表
    ArpProbe _arp = {next_hop_ip, dgram};
    _probe_table[_arp] = arp_probe_ttl;

    所有的代码

    接受报文

    在接受报文的部分,我们无非会收到两种报文,一种是包含IP数据的报文,一种是对方给我们发过来的ARP报文

    对于这两种报文,首先我们判断它是不是要发送给我们的或是否是一个广播的网络帧

    1
    2
    3
    4
    // 丢弃目标MAC地址不是我自己的数据帧
    if (frame.header().dst != _ethernet_address && frame.header().dst != ETHERNET_BROADCAST) {
    return {};
    }

    如果这是一个确定源MAC和目标MAC的IP数据包,那么我们只需要接受这个数据包然后返回对应的数据即可

    1
    2
    3
    4
    5
    6
    // 接受到IP数据段的时候(代表对方和自己都有了互相的ARP信息,不需要对ARP表进行操作),对这个数据段进行处理
    if (frame.header().type == EthernetHeader::TYPE_IPv4) {
    InternetDatagram datagram;
    datagram.parse(frame.payload());
    return datagram;
    }

    但是如果这是一个ARP探针,我们首先对其进行分析

    1
    2
    3
    4
    5
    6
    7
    // 接受到的是一个ARP包,先将这个包的内容序列化,并将其中包含的ARP信息尝试更新到自己的ARP表中
    ARPMessage arp_msg;
    arp_msg.parse(frame.payload());
    ArpEntry src = {arp_msg.sender_ip_address, arp_msg.sender_ethernet_address},
    dst = {arp_msg.target_ip_address, arp_msg.target_ethernet_address};

    _update_arp_table({src, dst});

    其中_update_arp_table用于更新arp表,具体代码如下

    1
    2
    3
    4
    5
    6
    //! 更新ARP条目
    void NetworkInterface::_update_arp_table(initializer_list<ArpEntry> arp_entry) {
    for (auto &entry : arp_entry) {
    _arp_table[entry] = arp_max_ttl;
    }
    }

    在解析了网络帧之后,我们大致可以得到以下三种分类

    广播报文,请求某个IP对应的MAC地址,但这个IP不是我们的

    丢弃过滤

    1
    2
    3
    4
    // 过滤掉不是发给自己的IP地址的包
    if (dst.raw_ip_addr != _ip_address.ipv4_numeric()) {
    return {};
    }
    广播报文,请求某个IP对应的MAC地址,但这个IP是我们的

    返回我们的MAC地址

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // 接受到ARP请求的时候,返回一个包含自己信息的ARP响应报文,同时利用这个frame更新自己的ARP表
    if (arp_msg.opcode == ARPMessage::OPCODE_REQUEST) {
    ARPMessage reply;
    reply.opcode = ARPMessage::OPCODE_REPLY;
    reply.sender_ip_address = _ip_address.ipv4_numeric();
    reply.sender_ethernet_address = _ethernet_address;
    reply.target_ip_address = src.raw_ip_addr;
    reply.target_ethernet_address = src.eth_addr;

    EthernetFrame reply_frame;
    reply_frame.header() = {src.eth_addr, _ethernet_address, EthernetHeader::TYPE_ARP};
    reply_frame.payload() = reply.serialize();
    _frames_out.push(reply_frame);
    return {};
    }
    我们发出的ARP探针得到了别人的回复,知道了别人的MAC地址

    更新自己的ARP映射表,同时检查是否有对应目标MAC地址的报文等待发送

    1
    2
    3
    4
    5
    6
    7
    8
    9
    // 收到别人传送回来的ARP的时候,如果缓存中有等待的对应条目,则删除,并发送对应的数据
    for (auto entry = _probe_table.begin(); entry != _probe_table.end();) {
    if (entry->first.raw_ip_addr == src.raw_ip_addr) {
    send_datagram(entry->first.datagram, Address::from_ipv4_numeric(entry->first.raw_ip_addr));
    entry = _probe_table.erase(entry);
    } else {
    entry++;
    }
    }

    超时处理

    在这里我们只需要做两件事

    • 删除超时的ARP条目
    • 重新发送超时的探针

    对于正常的条目和探针,我们只需要让其TTL减少即可,代码如下

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    //! \param[in] ms_since_last_tick the number of milliseconds since the last call to this method
    void NetworkInterface::tick(const size_t ms_since_last_tick) {
    // 将检测是否有超时的ARP条目
    for (auto entry = _arp_table.begin(); entry != _arp_table.end();) {
    if (entry->second < ms_since_last_tick) {
    // 删除多余的ARP条目
    entry = _arp_table.erase(entry);
    } else {
    entry->second -= ms_since_last_tick;
    entry++;
    }
    }
    // 检测是否有超时的探针
    for (auto entry = _probe_table.begin(); entry != _probe_table.end(); entry++) {
    if (entry->second < ms_since_last_tick) {
    // 重新发送超时的探针
    ARPMessage re_probe_arp;
    re_probe_arp.opcode = ARPMessage::OPCODE_REQUEST;
    re_probe_arp.sender_ip_address = _ip_address.ipv4_numeric();
    re_probe_arp.sender_ethernet_address = _ethernet_address;
    re_probe_arp.target_ip_address = entry->first.raw_ip_addr;
    re_probe_arp.target_ethernet_address = {};

    EthernetFrame re_probe_frame;
    re_probe_frame.header() = {ETHERNET_BROADCAST, _ethernet_address, EthernetHeader::TYPE_ARP};
    re_probe_frame.payload() = re_probe_arp.serialize();
    _frames_out.push(re_probe_frame);

    // 重置探针条目对应的时间
    entry->second = arp_probe_ttl;
    } else {
    entry->second -= ms_since_last_tick;
    }
    }
    }

    总结

    这个实验主要实现的逻辑都是数据链路层的,和之前几个Lab没有直接的关系。不过值得一提的就是在Lab4测试的时候运行的TUNTAP很有意思。这两个词之前好奇还是在使用Clash的时候既可以是TUN也可以是TAP模式,而且通常来说TUN模式的性能要比TAP要好。当时还不知道为什么,在写完这个实验以后搜了一些资料,目前浅显的理解大致认为是TAP的网络代理模拟是有处理到数据链路层的,也就是MAC地址也进行了模拟,而TUN则只是模拟到了IP层,并没有自己的MAC地址,因此损耗也要少一些。


    CS144-Lab5 计算机网络:Network Interface的功能
    https://halc.top/p/db490294
    作者
    HalcyonAzure
    发布于
    2023年4月24日
    许可协议
    \ No newline at end of file diff --git a/p/db6cc46f.html b/p/db6cc46f.html new file mode 100644 index 00000000..0cbb5ba7 --- /dev/null +++ b/p/db6cc46f.html @@ -0,0 +1,2 @@ +Shell:管道符与重定向 - Halcyon Zone +

    Shell:管道符与重定向

    前言

    到目前位置自己还没专门花时间研究过Linux上那些日日都在用的工具(如ShellVim)他们本来的用法和含义,本来觉得没必要,不过在看了missing-semester之后顿时感觉效率提高了不少。因此做一个笔记,把一些很实用但是自己并不会去关注的简单用法给记录一下。

    参考文章

    Shell

    prompt

    在使用最基础的bash作为命令行的时候,常常能发现用户后面有的时候是$二有的时候是#

    1
    2
    [halc@Zephyrus blog]$ su
    [root@Zephyrus blog]#

    这里$代表了当前用户为普通用户,而#的含义则代表当前是在root用户下

    重定向

    输出重定向

    shell程序中,程序的执行主要分为 输入流输出流 两种不同的流,程序会从输入流中读取信息,然后在通过处理之后打印到输出流当中。

    cat为例,其作用为将一个文件的内容打印到输出流当中,通过使用 > file< file 来对流进行重定向,可以覆写或者创建对应内容的文件

    1
    2
    3
    4
    5
    6
    7
    8
    # 将我存于github的pubkey打印输出成id_rsa.pub文件
    curl https://github.com/HalcyonAzure.keys > id_rsa.pub

    # 将id_rsa.pub的内容重定向 **追加** 到authorized_keys当中
    cat id_rsa.pub >> authorized_keys

    # 将id_rsa.pub的内容先重定向给cat,再由cat输出到pubkey当中
    cat < id_rsa.pub > pubkey

    拓展补充 1:所有的Linux进程都包含3个文件描述符,分别是 标准输入标准输出错误输出
    标准输入(stdin):对应的文件标识符为0,使用<<<来操作
    标准输出(stdout):对应的文件标识符为1,使用>>>来操作
    错误输出(stderr): 对应的文件标识符为2,使用2>2>>来操作
    默认情况下,标准输出和错误输出都默认为使用者的屏幕,通过使用输出重定向可以做到控制日志的效果

    补充拓展 2:>/dev/null 2>&12>&1 >/dev/null的区别

    • 对于>/dev/null 2>&1是指先将标准输出指向黑洞设备,然后再将错误输出指向标准输出的指向内容(此时是黑洞),因此标准输出和错误输出都将不输出
    • 对于2>&1 >/dev/null是先将错误输出指向标准输出(此时为屏幕),然后将标准输出指向黑洞,因此此时错误输出将打印到屏幕,而标准输出将不输出
    1
    2
    # 运行example.sh,并将标准输出重定向至stdout.log,将错误输出重定向至stderr.log
    bash example.sh 1>stdout.log 2>stderr.log

    以一个简单的test.cpp程序为例

    1
    2
    3
    4
    5
    6
    7
    8
    #include<iostream>
    using namespace std;

    int main() {
    cout << "This is stand output" << endl;
    cerr << "This is error output" << endl;
    return 0;
    }

    通过编译并重定向运行

    1
    2
    3
    4
    5
    6
    7
    8
    [halc@Zephyrus ~]$ g++ test.cpp -o test
    [halc@Zephyrus ~]$ ./test 1>stand.log 2>err.log
    [halc@Zephyrus ~]$ rg output *.log
    stand.log
    1:This is stand output

    err.log
    1:This is error output

    如果希望将对应的文件描述符关闭的话有两种方法

    1
    2
    3
    4
    # $-指关闭对应的文件操作符
    [halc@Zephyrus ~]$ ./test 1>$- 2>$-
    # /dev/null为linux内的黑洞设备
    [halc@Zephyrus ~]$ ./test 1>/dev/null 2>/dev/null
    • 对于>操作符,首先会判断右侧的文件是否存在,如果存在就删除再创建,如果不存在则直接创建,并且右侧的文件一定会置空。
    • 一条命令执行前会检查0,1,2三个I/O设备是否正常,如果异常则不会进行命令执行

    输入重定向

    如果想要将内容输出重定向到某个文件,以cat举例有两种不同的办法

    1
    2
    3
    4
    # 将read.md的内容重定向至write.md
    cat > write.md < read.md
    # "<< EOF"指对流进行重定向输入,直到遇到"EOF"(可修改)作为末尾则结束
    cat > input.md << EOF

    摘自:How does “<<” operator work in linux shell?

    << 操作符主要有以下三个操作逻辑

    1. 首先执行该操作符左侧的程序,在上面的例子中就是cat
    2. 抓取用户包括换行等所有的输入内容,直到输入的内容为用户指定的EOF结尾内容(在上面的例子中则恰好也是EOF)则停止
    3. 将所有除了EOF的内容都作为(1)程序的标准输入执行

    实例:通过bash脚本创建一个test.cpp文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    #!/bin/bash
    cat > test.cpp << EOF
    #include<iostream>
    using namespace std;

    int main() {
    cout << "This is stand output" << endl;
    cerr << "This is error output" << endl;
    return 0;
    }
    EOF

    管道和重定向的使用区别

    1、文件类型上
    左边的命令应该有标准输出 | 右边的命令应该能接受标准输入;
    左边的命令应该有标准输出 > 右边只能是文件;
    左边的命令应该需要标准输入 < 右边只能是文件;

    2、管道触发两个子进程执行 “|” 两边的程序,而重定向是在一个进程内执行。

    结合管道的输入重定向

    1
    2
    3
    4
    5
    $ (sed -n '1,$p' | grep -n 'output') < test.cpp
    5: cout << "This is stand output" << endl;
    6: cerr << "This is error output" << endl;
    # 等价于 sed -n '1,$p' < test.cpp | grep -n 'output'
    # 对于管道运算符,如果希望将`test.cpp`传递给前面的第一个可执行文件`sed`,则需要使用单括号将整个管道传输看作一个单独的指令,否则`test.cpp`将传入`grep`内

    由于标准输入和标准输出在管道运算符中的重定向是发生在"内容输出"之前的,因此可以通过重定向来修改管道中传输的数据

    Because pipeline assignment of standard input or standard output or both takes place before redirection, it can be modified by redirection.

    举个例子来说,本来管道传输默认只传输标准输出的内容,并不会传输错误输出

    1
    [halc@Zephyrus ~]$ command1 2>&1 | command2

    通过上面的指令,首先command1错误输出 会在执行前被重定向至标准输入,然后command1执行,将 标准输出错误输出 一并通过管道进行传输,作为command2的标准输入

    结合管道的输出重定向

    1
    2
    3
    4
    # 首先将test.sh的内容通过cat打印到标准输出, 然后管道传输该输出给tee
    # tee执行之前通过&>将tee的标准输入和错误输出都重定向至/dev/null中,
    # 然后执行tee将管道获取的内容写入text.txt,并且将相同的内容写入null设备当中
    cat test.sh | tee text.txt &> /dev/null

    > 输出重定向,往往在命令最右边(也可以用到命令中间),接收左边命令的输出结果,重定向到指定文件。

    1
    2
    3
    4
    5
    6
    7
    8
    # 如果管道符左侧的程序已经将标准重定向指向了其他文件,那么在bash中管道传输的数据将为空
    [halc@Zephyrus ~]$ rg Word dict &>log | cat
    # 此时无输出
    [halc@Zephyrus ~]$ cat log
    Word1
    Word2
    Word3
    # 但是log内应该是有内容匹配的
    zsh下的重定向与管道传输

    在自己实验的时候发现zsh下即使重定向了标准输出和错误输出依旧可以通过管道读取内容,这主要是zsh有一个可以将输出重定向给多个文件的特性,对于管道也会进行二次传递

    参考 Redirection and pipe behavior in bash vs. zsh

    Read the MULTIOS documentation in the zshmisc man page. It’s a feature of zsh which causes it to redirect the output to multiple files at the same time, and it can also be a pipe.

    具体举例

    1
    ls >a >b

    上面这个命令在bash当中只有文件a会有内容,而b中并没有获取到标准输出。但是在zsh下执行上面的命令,则ab中都会拥有相同的输出内容。


    Shell:管道符与重定向
    https://halc.top/p/db6cc46f
    作者
    HalcyonAzure
    发布于
    2022年7月4日
    许可协议
    \ No newline at end of file diff --git a/p/dea4f344.html b/p/dea4f344.html new file mode 100644 index 00000000..ff9e2730 --- /dev/null +++ b/p/dea4f344.html @@ -0,0 +1,2 @@ +Ubuntu禁用系统休眠 - Halcyon Zone +

    Ubuntu禁用系统休眠

    前言

    由于用笔记本做服务器的时候并不需要屏幕显示,并且屏幕显示会带来多余的耗电,于是就想试着把笔记本屏幕关上的同时能让Ubuntu Server正常运行,而不是进入休眠模式,索性在网上查阅资料以后发现并不是很困难,以此在这里记录需要修改的操作以便以后查阅

    1. 修改logind.conf文件

      sudo vim /etc/systemd/logind.conf

    2. 修改logind.conf中的选项,使得笔记本忽略关闭屏幕对系统的影响

      将原本的

      1
      2
      #HandleLidSwitch=suspend
      #HandleLidSwitchExternalPower=suspend

      改为

      1
      2
      HandleLidSwitch=ignore
      HandleLidSwitchExternalPower=ignore
    3. 使用reboot指令来重启电脑即可。


    Ubuntu禁用系统休眠
    https://halc.top/p/dea4f344
    作者
    HalcyonAzure
    发布于
    2021年3月14日
    许可协议
    \ No newline at end of file diff --git a/p/e328a303.html b/p/e328a303.html new file mode 100644 index 00000000..a685519b --- /dev/null +++ b/p/e328a303.html @@ -0,0 +1,2 @@ +OSTEP:进程的概念理解 - Halcyon Zone +

    OSTEP:进程的概念理解

    第四章:进程

    作业来自: ostep-homework

    1. 两个程序都只使用CPU,所以CPU的利用率是100%,测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      Time        PID: 0        PID: 1           CPU           IOs
      1 RUN:cpu READY 1
      2 RUN:cpu READY 1
      3 RUN:cpu READY 1
      4 RUN:cpu READY 1
      5 RUN:cpu READY 1
      6 DONE RUN:cpu 1
      7 DONE RUN:cpu 1
      8 DONE RUN:cpu 1
      9 DONE RUN:cpu 1
      10 DONE RUN:cpu 1

      Stats: Total Time 10
      Stats: CPU Busy 10 (100.00%)
      Stats: IO Busy 0 (0.00%)
    2. 总共使用了11 ticks的时间,测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      Time        PID: 0        PID: 1           CPU           IOs
      1 RUN:cpu READY 1
      2 RUN:cpu READY 1
      3 RUN:cpu READY 1
      4 RUN:cpu READY 1
      5 DONE RUN:io 1
      6 DONE WAITING 1
      7 DONE WAITING 1
      8 DONE WAITING 1
      9 DONE WAITING 1
      10 DONE WAITING 1
      11* DONE RUN:io_done 1
    3. 交换顺序后,在PID0进行io操作的时候,PID1会切换成RUNNING的状态,提高了CPU的利用效率,所以交换顺序重要。测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      Time        PID: 0        PID: 1           CPU           IOs
      1 RUN:io READY 1
      2 WAITING RUN:cpu 1 1
      3 WAITING RUN:cpu 1 1
      4 WAITING RUN:cpu 1 1
      5 WAITING RUN:cpu 1 1
      6 WAITING DONE 1
      7* RUN:io_done DONE 1
    4. 由于加上了SWITCH_ON_END的标签,此时PID0进行IO操作的时候CPU会空闲等待至IO操作完成,浪费了一定的时间。测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      Time        PID: 0        PID: 1           CPU           IOs
      1 RUN:io READY 1
      2 WAITING READY 1
      3 WAITING READY 1
      4 WAITING READY 1
      5 WAITING READY 1
      6 WAITING READY 1
      7* RUN:io_done READY 1
      8 DONE RUN:cpu 1
      9 DONE RUN:cpu 1
      10 DONE RUN:cpu 1
      11 DONE RUN:cpu 1
    5. 由于这次会在等待IO的时候进行进程的切换,所以在io操作时,CPU没有等待,而是切换到了另外一个进程上继续工作,提高了利用率。测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      Time        PID: 0        PID: 1           CPU           IOs
      1 RUN:io READY 1
      2 WAITING RUN:cpu 1 1
      3 WAITING RUN:cpu 1 1
      4 WAITING RUN:cpu 1 1
      5 WAITING RUN:cpu 1 1
      6 WAITING DONE 1
      7* RUN:io_done DONE 1
    6. 由于IO操作的优先级不是最高的,即使io操作的WAITING结束了,也会等待CPU先将其他进程执行之后,再对IO进行切换,由于IO操作需要消耗比较多的额外时间,而这部分时间没有被CPU利用,所以系统资源没有得到有效利用。测试可得:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      Time        PID: 0        PID: 1        PID: 2        PID: 3           CPU           IOs
      1 RUN:io READY READY READY 1
      2 WAITING RUN:cpu READY READY 1 1
      3 WAITING RUN:cpu READY READY 1 1
      4 WAITING RUN:cpu READY READY 1 1
      5 WAITING RUN:cpu READY READY 1 1
      6 WAITING RUN:cpu READY READY 1 1
      7* READY DONE RUN:cpu READY 1
      8 READY DONE RUN:cpu READY 1
      9 READY DONE RUN:cpu READY 1
      10 READY DONE RUN:cpu READY 1
      11 READY DONE RUN:cpu READY 1
      12 READY DONE DONE RUN:cpu 1
      13 READY DONE DONE RUN:cpu 1
      14 READY DONE DONE RUN:cpu 1
      15 READY DONE DONE RUN:cpu 1
      16 READY DONE DONE RUN:cpu 1
      17 RUN:io_done DONE DONE DONE 1
      18 RUN:io DONE DONE DONE 1
      19 WAITING DONE DONE DONE 1
      20 WAITING DONE DONE DONE 1
      21 WAITING DONE DONE DONE 1
      22 WAITING DONE DONE DONE 1
      23 WAITING DONE DONE DONE 1
      24* RUN:io_done DONE DONE DONE 1
      25 RUN:io DONE DONE DONE 1
      26 WAITING DONE DONE DONE 1
      27 WAITING DONE DONE DONE 1
      28 WAITING DONE DONE DONE 1
      29 WAITING DONE DONE DONE 1
      30 WAITING DONE DONE DONE 1
      31* RUN:io_done DONE DONE DONE 1
    7. 在使用了IMMEDIATE标签后,每次io_done之后CPU都会先切换io操作,然后用io处理的时间来处理其他进程,提高了系统资源的利用率。测试如下:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      Time        PID: 0        PID: 1        PID: 2        PID: 3           CPU           IOs
      1 RUN:io READY READY READY 1
      2 WAITING RUN:cpu READY READY 1 1
      3 WAITING RUN:cpu READY READY 1 1
      4 WAITING RUN:cpu READY READY 1 1
      5 WAITING RUN:cpu READY READY 1 1
      6 WAITING RUN:cpu READY READY 1 1
      7* RUN:io_done DONE READY READY 1
      8 RUN:io DONE READY READY 1
      9 WAITING DONE RUN:cpu READY 1 1
      10 WAITING DONE RUN:cpu READY 1 1
      11 WAITING DONE RUN:cpu READY 1 1
      12 WAITING DONE RUN:cpu READY 1 1
      13 WAITING DONE RUN:cpu READY 1 1
      14* RUN:io_done DONE DONE READY 1
      15 RUN:io DONE DONE READY 1
      16 WAITING DONE DONE RUN:cpu 1 1
      17 WAITING DONE DONE RUN:cpu 1 1
      18 WAITING DONE DONE RUN:cpu 1 1
      19 WAITING DONE DONE RUN:cpu 1 1
      20 WAITING DONE DONE RUN:cpu 1 1
      21* RUN:io_done DONE DONE DONE 1
    8. 开放题随机,和前七题大致相同。


    OSTEP:进程的概念理解
    https://halc.top/p/e328a303
    作者
    HalcyonAzure
    发布于
    2022年3月12日
    许可协议
    \ No newline at end of file diff --git a/p/e429c37a.html b/p/e429c37a.html new file mode 100644 index 00000000..7ec2756a --- /dev/null +++ b/p/e429c37a.html @@ -0,0 +1,2 @@ +知识复盘:操作系统的作用 - Halcyon Zone +

    知识复盘:操作系统的作用

    操作系统的作用

    该部分博客为自己在学习《程序员的自我修养:链接、装载与库》的时候对于过去零碎知识点的一个整理和复盘,并非照搬原文,其中会加入一些自己的联想与理解,如有错误还请指出。

    操作系统在计算机中主要有两个功能:

    • 对硬件资源进行管理,让硬件尽可能高效的解决问题或执行操作

    • 提供抽象的接口,以便于程序对计算机的硬件资源进行调用

    CPU的调度

    在计算机的使用过程中,需要消耗时间的任务部分大致可以分为两种情况:

    • 消耗CPU算力的计算密集型操作
    • 需要等待设备响应处理的I/O密集型操作

    我们知道在计算机中有南桥和北桥两个概念,北桥连同了CPU等高速芯片,而南桥则负责了磁盘、鼠标、键盘等低速设备。因此我们可以抽象出一个结论:计算密集型操作I/O密集型操作 是由不同的设备分别处理的。接下来对于操作系统调度分析则会都以这一前提条件进行分析。

    第一阶段:多道程序 Multiprogramming

    假设我们现在需要完成一个很复杂的数学问题,且假设完成这个数学问题分为两个步骤:

    1. 在草稿纸上"随意"的打草稿并推演计算过程,最终计算出答案(计算密集型操作)
    2. 将整个推演过程有条理并工整的誊抄在答卷上,便于他人阅读自己的答案(I/O密集型操作)

    那么如果我们有很多个这样的题目需要完成。那么最高效的方法自然是分配两个同学A和B。假设同学A的计算能力很强,同学B的书写则十分端正,同时可以看懂同学A的草稿,那么我们便可以让同学A只需要负责计算和打草稿,只要做完了第一题就直接开始写第二题,而同学B则在同学A开始计算第二题的过程中开始誊抄第一题的答案。这样便可以让同学A和同学B的时间都统筹利用起来,以此提升效率。

    在计算机中也是同样的道理。在计算机刚刚发展的时候,每次执行一个任务都需要先让CPU计算完后,CPU还要等待诸如打印机等设备输出了结果以后,再进行下一个问题的计算。

    为了解决这个问题,人们便想到使用一个监控程序来监管CPU的运算,当监控程序发现在CPU进行完毕某一次运算以后,如果后续还有其他问题需要使用CPU进行计算的话,则让CPU直接进行下一个问题的计算,而不是等待第一个问题的I/O操作进行完毕以后再进行第二个问题的计算。这就是多道程序的雏形

    第二阶段:分时系统 Time-Sharing System

    但是随着计算机功能的逐步发展,多道程序则体现出了一个弊端:那就是任务的执行需要所有人都依次排队,前面的人如果没有解决他的问题就轮不到下一个人。

    假设在银行中有一个人的业务处理需要花费特别特别长的时间,从而导致后面所有人直到银行下班都没完成自己的业务,这无疑是非常令人恼火的一件事情。但是如果这个人将自己的一个任务拆分成多个不同的部分,每完成一个部分就让后面的人先处理下,这样相对而言就能顾及他人的感受,有利于提高处理问题数量的效率。

    因此,我们就了分时系统的概念,在分时系统中,程序可以通过在编写的时候主动调用某个“系统调用”来实现通知操作系统我现在这部分的工作已经完成了一部分,如果后面有其他任务需要执行的话可以先执行其他的任务,再来执行我的任务。从而在一定程度上解决了阻塞问题。

    第三阶段: 多任务系统 Multi-tasking

    但是分时系统在计算机的衍变过程中也展现出了自己的弊端。

    依据以下两个分时系统的特点:

    • 是否让出CPU是由程序自身决定的。程序需要主动调用特定的系统调用来通知操作系统它愿意让出CPU。
    • 这种机制的问题是,如果一个程序不主动让出CPU(例如,由于编程错误或恶意行为),那么操作系统不能强制地从该程序中夺回CPU控制权。因此,其他程序可能会被迫等待,导致整个系统的响应性下降。

    假设我们遇到一个程序员在程序中忘记调用分时的“系统调用”,还写了一个死循环的错误代码。那么整个操作系统都将会因为这个问题而出现宕机。

    由此我们就需要一个更高端的操作系统来解决我们的问题,即现代操作系统的解决方案:多任务系统。

    多任务系统的基础是建立在此时操作系统对所有硬件资源进行了直接的接管。而所有的应用程序都以进程(Process)的方式运行在操作系统这个大Boss之下。所有进程的调度都需要受到操作系统的管理,并且每个进程和进程之间就像是一个小房间,他们的地址空间也都是相互隔离且独立的。

    在这种情况下,CPU就变成了操作系统大Boss来进行管理的一个资源,而不是和之前分时系统一样由应用自己直接对CPU进行管理了。这样的好处是可以让所有程序都听操作系统这个领导的话,而不是和之前一样我想一直占用CPU就一直占用,如果我不调用接口主动释放CPU你们谁都别想用上CPU。

    对于操作系统来说,每个进程就是一个任务,每个任务则又有自己的任务优先级。对于优先级高的任务,操作系统会先进行;对优先级低的任务则后执行。如果一个进程的运行时间超过了某个限制,则会将该程序暂停以分配给其他同时间内也许更需要CPU资源的线程任务。

    在此基础上还会牵扯到一些诸如多级反馈队列、上下文切换开销等问题。这里就不做过多的展开。

    这里放一个之前写OSTEP课后实验相关的博客链接,便于自己查阅

    设备驱动

    有关于设备驱动的内容直接概述过于枯燥无味,因此下面这段解释为使用 GPT-4 生成的一个概述,觉得生动有趣就搬上来了

    想象一下,你正在玩一个超级复杂的电子游戏,但你只需要按下一个按钮,就能完成一个复杂的动作,比如打怪兽或跳跃。这个按钮就像是操作系统,而那些复杂的动作就是硬件的操作。你不需要知道每一个细节,只需要按下按钮,游戏就会为你完成所有的事情。

    操作系统就是这样的“神奇按钮”。它位于硬件之上,为上层的应用程序提供了一个统一的方式来访问硬件。想象一下,如果每次你想在屏幕上画一条线,都需要知道你的电脑使用的是什么显卡、屏幕的大小和分辨率,然后写一大堆复杂的代码。这听起来很麻烦,对吧?但是,有了操作系统,你只需要调用一个简单的函数,比如LineTo(),然后操作系统会为你处理所有的细节。

    在操作系统的早期,程序员确实需要直接与硬件交互,这是一件非常繁琐和复杂的事情。但随着时间的发展,操作系统逐渐成熟,它开始为程序员提供了一系列的“抽象”概念,使得程序员可以更加轻松地开发应用程序,而不需要关心硬件的细节。比如,在UNIX系统中,访问硬件设备就像访问普通文件一样简单;在Windows系统中,图形和声音设备被抽象成了特定的对象。

    但是,谁来处理这些复杂的硬件操作呢?答案是:硬件驱动程序。它们是操作系统的一部分,专门负责与特定的硬件设备交互。这些驱动程序通常由硬件制造商开发,而操作系统提供了一系列的接口和框架,使得这些驱动程序可以在操作系统上运行。

    最后,让我们以读取文件为例。当你想读取一个文件时,你不需要知道这个文件在硬盘上的具体位置。你只需要告诉操作系统你想读取的文件名,然后操作系统会找到这个文件在硬盘上的位置,读取它,并将数据返回给你。这一切都是由文件系统和硬盘驱动程序共同完成的。

    总之,操作系统就像是一个超级英雄,它为我们处理了所有复杂的硬件操作,使得我们可以更加轻松地开发和使用计算机程序。


    知识复盘:操作系统的作用
    https://halc.top/p/e429c37a
    作者
    HalcyonAzure
    发布于
    2023年10月21日
    许可协议
    \ No newline at end of file diff --git a/p/e8eb0481.html b/p/e8eb0481.html new file mode 100644 index 00000000..976b07c2 --- /dev/null +++ b/p/e8eb0481.html @@ -0,0 +1,2 @@ +二分查找 - Halcyon Zone +

    二分查找

    代码模板

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    int bsl(int l, int r) //返回左边界
    {
    while (l < r)
    {
    int mid = l + r >> 1;
    if (check(mid)) //每次正确右边界都向左缩小
    r = mid;
    else
    l = mid + 1; //mid不正确,弃用mid并且缩小区间
    }
    return l;
    }

    int bsr(int l, int r) //返回右边界
    {
    while (l < r)
    {
    int mid = l + r + 1 >> 1;
    if (check(mid)) //每次左边界都向右缩小,由于存在向下取整,避免死循环mid需要l+r+1
    l = mid;
    else
    r = mid - 1; //mid不正确,弃用mid并缩小区间
    }
    }

    代码原理

    bsl为例

    ​ 二分的主要的作用,是取得一个“分界点”。采取的思路为测试中间点是否符合条件,如果不符合则对区间进行缩小操作,重新测试区间,直到区间为一个数字。在模板一中,首先确定中间点mid,然后测试中间点mid是否符合条件,如果符合条件,则每次都会将区间的右端点进行左移的操作,直到不能左移为止,所以返回的最后位置为最接近答案的最左边的端点。如果不符合条件,由于**确定了mid的位置为无效位置,所以下一次刷新区间的时候将mid剔除掉。**剔除的操作可以达到防止死循环的效果

    时间复杂度

    ​ 由于二分是每次都将一个区间一分为二,并且对整个区间进行一次操作,所以最后的时间复杂度为O(logN)

    需要注意的点

    1. bsr中,由于在每次正确的时候修改的都是左边界l,但是在计算除2的时候会存在mid/2取整为l的情况,这样会导致最后结果的死循环。所以需要定义mid为mid = l+r+1>>1来避免死循环。可以记为 返回右边界的时候需要+1,因为右边比左边大(bushi

    二分查找
    https://halc.top/p/e8eb0481
    作者
    HalcyonAzure
    发布于
    2021年4月12日
    许可协议
    \ No newline at end of file diff --git a/p/f09b73d7.html b/p/f09b73d7.html new file mode 100644 index 00000000..e691a434 --- /dev/null +++ b/p/f09b73d7.html @@ -0,0 +1,2 @@ +获取Cloudflare Tunnel下用户真实IP - Halcyon Zone +

    获取Cloudflare Tunnel下用户真实IP

    Cloudflare Tunnel 获取用户真实 IP

    参考资料

    问题分析

    1. 部署在内网中,在80端口部署了PHP的服务器一台。
    2. 使用了Cloudflare Tunnel对内网http://127.0.0.1进行了转发,并提供https支持

    SSPanel需要拥有https的情况下才可以正常使用,但是使用Cloudflare Tunnel默认的设置的情况下,所有的用户登入请求都会被记录为Tunnel的转发地址(在这种情况下即127.0.0.1)。

    在这种情况下,当用户通过Tunnel访问我的网站时,Cloudflare会通过CF-Connecting-IP这个HTTP请求头传递原始访问者的IP地址。因此也就可以通过修改Nginx配置的方法来获取到对应用户的真实IP地址了。

    解决方案

    先在这里贴上修改了的配置文件和注释

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     server {
    listen 80;
    listen [::]:80;

    root /path/to/site/public;
    index index.php;
    server_name your.domain.com;

    + # 设置 Cloudflare 的真实 IP 地址
    + set_real_ip_from 127.0.0.1/32; # Cloudflare Tunnel 的 IP 地址
    + real_ip_header CF-Connecting-IP;

    location / {
    try_files $uri /index.php$is_args$args;
    }

    location ~ \.php$ {
    try_files $fastcgi_script_name =404;
    include fastcgi_params;
    fastcgi_index index.php;
    fastcgi_buffers 8 16k;
    fastcgi_buffer_size 32k;
    fastcgi_pass unix:/run/php/php-fpm.sock;
    fastcgi_param DOCUMENT_ROOT $realpath_root;
    fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    + fastcgi_param REMOTE_ADDR $remote_addr; # 传递真实 IP 地址给 PHP
    }
    }

    对于上面修改的不同配置项的作用如下

    1. set_real_ip_from 127.0.0.1/32;

      • set_real_ip_from指令用于指定哪些IP地址可以设置真实IP地址。
      • 在这种情况下,127.0.0.1/32表示本地地址。这是因为Cloudflare Tunnel将流量转发到您的本地服务器,通常表现为来自127.0.0.1(即本地主机)的请求。
      • 这条指令告诉Nginx,如果请求来自本地主机(127.0.0.1/32),则应该考虑使用另一个HTTP头中的IP地址作为访问者的真实IP地址。
    2. real_ip_header CF-Connecting-IP;

      • real_ip_header指令用于指定包含真实客户端IP地址的HTTP头。
      • CF-Connecting-IP是由Cloudflare设置的一个特殊的HTTP头,它包含了发起请求的原始访问者的IP地址。
      • 通过这个配置,Nginx将使用CF-Connecting-IP头中的值来重写访问者的IP地址,这样PHP应用程序就可以获取到访问者的真实IP,而不是Cloudflare Tunnel的本地地址。
    3. 在PHP FastCGI 配置块中添加的指令:

      • fastcgi_param REMOTE_ADDR $remote_addr;
        • 这一行将Nginx内部变量$remote_addr的值传递给FastCGI进程。由于我们已经使用set_real_ip_fromreal_ip_header配置了Nginx,$remote_addr将包含经过Cloudflare处理的真实客户端IP。
        • 通过将此参数传递给FastCGI(在这种情况下是PHP-FPM),在PHP应用程序中的$_SERVER['REMOTE_ADDR']将包含正确的客户端IP地址。

    获取Cloudflare Tunnel下用户真实IP
    https://halc.top/p/f09b73d7
    作者
    HalcyonAzure
    发布于
    2024年1月23日
    许可协议
    \ No newline at end of file diff --git a/p/f15c20eb.html b/p/f15c20eb.html new file mode 100644 index 00000000..66c0a628 --- /dev/null +++ b/p/f15c20eb.html @@ -0,0 +1,2 @@ +Windows上通过Scoop管理和安装软件 - Halcyon Zone +

    Windows上通过Scoop管理和安装软件

    参考文章

    1. 「一行代码」搞定软件安装卸载,用 Scoop 管理你的 Windows 软件
    2. Scoop - 最好用的 Windows 包管理器 - P3TERX ZONE

    前言

    在知道并安装Scoop的时候只是稍微听说过winget-cli一类的工具,不过由于一直对Windows系统的软件管理早就绝望,下意识的认为对Windows来说,这种终端的程序管理应该几乎没什么用。但在前几天偶然希望在Windows Terminal上寻找一个类似Linuxsudo的程序,发现了Scoop这个神器,并且在使用了一两天尝到甜头后,决定写一篇博客把大概的使用功能都记录一下。

    Scoop的安装

    前置条件

    安装在联网的情况下有直接的指令,但是安装之前需要保证环境满足以下要求:

    • Windows 的版本不低于 Windows 7
    • Windows 的 PowerShell 版本不低于 PowerShell 3
    • 拥有能自由前往Github,保证传输稳定的网络环境
    • Windows的用户名为英文或者数字(非中文)用户名

    装前须知

    默认安装路径

    Scoop默认情况下和Linux中一样,只有普通用户的权限,其中Scoop本身和他默认安装的软件,会安装在%USERPROFILE\scoop目录下,使用管理员权限进行全局安装的软件会在C:\ProgramData\scoop目录下。

    修改路径

    1. 打开PowerShell

    2. 设置用户的安装路径

      1
      2
      $env:SCOOP='\PathTo\'  ## 这里填需要设置的路径
      [Environment]::SetEnvironmentVariable('SCOOP', $env:SCOOP, 'User')
    3. 设置全局安装的路径

      1
      2
      $env:SCOOP_GLOBAL='\PathToGlobal\'  ## 这里填需要设置的全局安装路径
      [Environment]::SetEnvironmentVariable('SCOOP_GLOBAL', $env:SCOOP_GLOBAL, 'Machine')

    然后就可以开始愉快的安装了。

    开始安装

    1. 在PowerShell中输入以下内容,来保证本地脚本的执行:

      1
      set-executionpolicy remotesigned -scope currentuser
    2. 用下面的命令来安装Scoop

      1
      iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    3. 安装完成,可以通过以下指令来查询帮助

      1
      scoop help

    网络设置

    由于网络可能有的时候不稳定,大部分Scoop的软件在安装的时候可能会出现安装失败的情况,就需要我们自己手动进行代理的设置,设置代理的命令如下:

    1
    scoop config proxy [IP/DNS]:[端口]

    使用手册

    常用需安装软件

    1. aria2

      常用的强力下载工具,设置好aria2conf文件并创建session文件,配合以下vbs脚本,创建快捷方式以后,在Win+R后运行Shell:Common Startup,将快捷方式放于其中,就可以当日用的下载工具了。

      VBScript:

      1
      CreateObject("WScript.Shell").Run "aria2c.exe --conf-path=aria2.conf",0

      在安装完毕aria2后,scoop会默认用aria2来下载所有其他的软件,如果有的时候发现aria2下载不好使了,可以通过下面的指令来禁用aria2下载

      1
      scoop config aria2-enabled false

      另外参考P3TERX大佬的博客中,其他选项可以按如下设置:

      单任务最大连接数设置为 32,单服务器最大连接数设置为 16,最小文件分片大小设置为 1M

      1
      2
      3
      >scoop config aria2-split 32
      >scoop config aria2-max-connection-per-server 16
      >scoop config aria2-min-split-size 1M
    2. sudo

      一个提权工具,可以让Windows下实现和Linux类似的提权效果

    3. git

      应该没啥好说的,必备安装。

    4. nerd-fonts字体

      在终端美化中常见的一种Powerline字体,使用以下指令添加库然后就能安装

      1
      scoop bucket add nerd-fonts

      查询可以用的所有字体

      1
      scoop search "-NF"

      因为安装字体需要管理员权限,所以需要添加sudo,指令如下(以Hack NF为例)

      1
      sudo scoop install Hack-NF
    5. LANDrop 局域网文件分享

      一个很好用的局域网文件共享工具,可以高速在不同系统平台之间分享文件。

    查阅手册

    大部分的使用帮助通过scoop help命令都可以直接列出并查看,常见的searchinstallupdateuninstall等指令不多做赘述。这里提供一些常见自己需要查阅的指令,以供日后使用参考。

    清理安装包缓存

    Scoop 会保留下载的安装包,对于卸载后又想再安装的情况,不需要重复下载。但长期累积会占用大量的磁盘空间,如果用不到就成了垃圾。这时可以使用 scoop cache 命令来清理。

    • scoop cache show - 显示安装包缓存
    • scoop cache rm <app> - 删除指定应用的安装包缓存
    • scoop cache rm * - 删除所有的安装包缓存

    如果你不希望安装和更新软件时保留安装包缓存,可以加上 -k--no-cache 选项来禁用缓存:

    • scoop install -k <app>
    • scoop update -k *

    删除旧版本软件

    当软件被更新后 Scoop 还会保留软件的旧版本,更新软件后可以通过 scoop cleanup 命令进行删除。

    • scoop cleanup <app> - 删除指定软件的旧版本
    • scoop cleanup * - 删除所有软件的旧版本

    与安装软件一样,删除旧版本软件的同时也可以清理安装包缓存,同样是加上 -k 选项。

    • scoop cleanup -k <app> - 删除指定软件的旧版本并清除安装包缓存
    • scoop cleanup -k * - 删除所有软件的旧版本并清除安装包缓存

    全局安装

    全局安装就是给系统中的所有用户都安装,且环境变量是系统变量,对于需要设置系统变量的一些软件就需要全局安装,比如 Node.js、Python ,否则某些情况会出现无法找到命令的问题。

    使用 scoop install <app> 命令加上 -g--global 选项可对软件进行全局安装,全局安装需要管理员权限,所以需要提前以管理员权限运行的 Pow­er­Shell 。更简单的方式是先安装 sudo,然后用 sudo 命令来提权执行:

    1
    2
    scoop install sudo
    sudo scoop install -g <app>

    达成在 Win­dows 上使用sudo的成就

    使用 scoop list 命令查看已装软件时,全局安装的软件末尾会有 *global* 标志。

    此外对于全局软件的更新和卸载等其它操作,都需要加上 -g 选项:

    • sudo scoop update -g * - 更新所有软件(且包含全局软件)
    • sudo scoop uninstall -g <app> - 卸载全局软件
    • sudo scoop uninstall -gp <app> - 卸载全局软件(并删除配置文件)
    • sudo scoop cleanup -g * - 删除所有全局软件的旧版本
    • sudo scoop cleanup -gk * - 删除所有全局软件的旧版本(并清除安装包包缓存)

    Windows上通过Scoop管理和安装软件
    https://halc.top/p/f15c20eb
    作者
    HalcyonAzure
    发布于
    2021年10月4日
    许可协议
    \ No newline at end of file diff --git a/p/f3eca903.html b/p/f3eca903.html new file mode 100644 index 00000000..9e7ba76a --- /dev/null +++ b/p/f3eca903.html @@ -0,0 +1,2 @@ +Linux通过修改init.d脚本自启动脚本 - Halcyon Zone +

    Linux通过修改init.d脚本自启动脚本

    流程

    1. 创建脚本文件,这里以startup.sh示例

    2. 给脚本添加可执行权限,并移动脚本位置

      1
      2
      chmod +x startup.sh
      sudo mv startup.sh /etc/init.d/
    3. 设置为开机脚本

      1
      2
      sudo update-rc.d /etc/init.d/startup.sh defaults 100
      ## 这里的100指的是脚本的优先级,数字越大执行越晚,可以为0

      如果需要删除脚本,用remove即可

      1
      2
      sudo update-rc.d /etc/init.d/startup.sh remove
      sudo rm /etc/init.d/startup.sh

    Linux通过修改init.d脚本自启动脚本
    https://halc.top/p/f3eca903
    作者
    HalcyonAzure
    发布于
    2021年8月4日
    许可协议
    \ No newline at end of file diff --git a/page/10/index.html b/page/10/index.html new file mode 100644 index 00000000..6c0cd8f7 --- /dev/null +++ b/page/10/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 00000000..80fe249b --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 00000000..9f8a87a7 --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 00000000..d337d2f6 --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html new file mode 100644 index 00000000..b54c04e2 --- /dev/null +++ b/page/5/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/6/index.html b/page/6/index.html new file mode 100644 index 00000000..7c26a433 --- /dev/null +++ b/page/6/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/7/index.html b/page/7/index.html new file mode 100644 index 00000000..921749d4 --- /dev/null +++ b/page/7/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/8/index.html b/page/8/index.html new file mode 100644 index 00000000..5568a357 --- /dev/null +++ b/page/8/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/page/9/index.html b/page/9/index.html new file mode 100644 index 00000000..12dda4e8 --- /dev/null +++ b/page/9/index.html @@ -0,0 +1,2 @@ +Halcyon Zone +
    \ No newline at end of file diff --git a/placeholder b/placeholder deleted file mode 100644 index e69de29b..00000000 diff --git a/sitemap.txt b/sitemap.txt new file mode 100644 index 00000000..3e03d003 --- /dev/null +++ b/sitemap.txt @@ -0,0 +1,142 @@ +https://halc.top/about/index.html +https://halc.top/css/round.css +https://halc.top/p/87299c69 +https://halc.top/p/f09b73d7 +https://halc.top/p/4416e368 +https://halc.top/p/e429c37a +https://halc.top/p/3930e42b +https://halc.top/p/23c3db21 +https://halc.top/p/83fa91fc +https://halc.top/p/82bd449c +https://halc.top/p/195b5fa9 +https://halc.top/p/db490294 +https://halc.top/p/4e68707 +https://halc.top/p/73e1b791 +https://halc.top/p/aeda2510 +https://halc.top/p/10e77bc5 +https://halc.top/p/4457ea2b +https://halc.top/p/2ca0860a +https://halc.top/p/cdfd3649 +https://halc.top/p/db6cc46f +https://halc.top/p/9232cf7b +https://halc.top/p/92f7b8a +https://halc.top/p/bbde595d +https://halc.top/p/795cfa1d +https://halc.top/p/c1ec22c4 +https://halc.top/p/20416971 +https://halc.top/p/44838b9c +https://halc.top/p/3d85131 +https://halc.top/p/8d2011c6 +https://halc.top/p/6088c65c +https://halc.top/p/22453a61 +https://halc.top/p/28ea7a49 +https://halc.top/p/783d8b13 +https://halc.top/p/1724953e +https://halc.top/p/b3a8b5ef +https://halc.top/p/7bfa5e14 +https://halc.top/p/20c326f2 +https://halc.top/p/264bf58c +https://halc.top/p/13271c5f +https://halc.top/p/80f884dc +https://halc.top/p/18b05b6b +https://halc.top/p/4b65fa48 +https://halc.top/p/897b63ef +https://halc.top/p/840f43e7 +https://halc.top/p/b9e46cb4 +https://halc.top/p/cf0fd528 +https://halc.top/p/a126ef4d +https://halc.top/p/e328a303 +https://halc.top/p/ba5740b2 +https://halc.top/p/2f2e6810 +https://halc.top/p/9130a701 +https://halc.top/p/afb272ac +https://halc.top/p/1153f279 +https://halc.top/p/76495b47 +https://halc.top/p/2362a8ea +https://halc.top/p/98326a13 +https://halc.top/p/d08cfaf4 +https://halc.top/p/f15c20eb +https://halc.top/p/87ec6922 +https://halc.top/p/d26abad0 +https://halc.top/p/447b77e9 +https://halc.top/p/aa5ce7f4 +https://halc.top/p/690287f9 +https://halc.top/p/6d032e05 +https://halc.top/p/f3eca903 +https://halc.top/p/14cd2588 +https://halc.top/p/abf1d877 +https://halc.top/p/be72c31c +https://halc.top/p/39b9efc1 +https://halc.top/p/c9fc3bb5 +https://halc.top/p/1dcf9daa +https://halc.top/p/1e0fb80b +https://halc.top/p/77f84830 +https://halc.top/p/2f594679 +https://halc.top/p/cc7f9b10 +https://halc.top/p/6a6a7409 +https://halc.top/p/24f916f9 +https://halc.top/p/a2277ea0 +https://halc.top/p/15b685e1 +https://halc.top/p/cff2e0b5 +https://halc.top/p/e8eb0481 +https://halc.top/p/713e2886 +https://halc.top/p/12aa3ef8 +https://halc.top/p/3efcbb51 +https://halc.top/p/5a7c7761 +https://halc.top/p/c1161a88 +https://halc.top/p/99e48799 +https://halc.top/p/2dda2597 +https://halc.top/p/a9706dff +https://halc.top/p/41385a4a +https://halc.top/p/c9774a05 +https://halc.top/p/1d3a895d +https://halc.top/p/dea4f344 +https://halc.top/p/15b28479 +https://halc.top/ +https://halc.top/tags/Markdown/ +https://halc.top/tags/Frp/ +https://halc.top/tags/Ubuntu/ +https://halc.top/tags/Linux/ +https://halc.top/tags/Vim/ +https://halc.top/tags/Devc/ +https://halc.top/tags/ZeroTier/ +https://halc.top/tags/Windows/ +https://halc.top/tags/OpenWRT/ +https://halc.top/tags/Docker/ +https://halc.top/tags/Algorithm/ +https://halc.top/tags/SSH/ +https://halc.top/tags/Nginx/ +https://halc.top/tags/CDN/ +https://halc.top/tags/Minecraft/ +https://halc.top/tags/PowerShell/ +https://halc.top/tags/Scoop/ +https://halc.top/tags/cpp/ +https://halc.top/tags/zsh/ +https://halc.top/tags/%E7%AE%97%E6%B3%95/ +https://halc.top/tags/%E6%80%BB%E7%BB%93/ +https://halc.top/tags/OS/ +https://halc.top/tags/Github/ +https://halc.top/tags/python/ +https://halc.top/tags/os/ +https://halc.top/tags/hexo/ +https://halc.top/tags/WSL/ +https://halc.top/tags/Clash/ +https://halc.top/tags/qbittorrent/ +https://halc.top/tags/jellyfin/ +https://halc.top/tags/docker/ +https://halc.top/tags/rclone/ +https://halc.top/tags/missing-semester/ +https://halc.top/tags/shell/ +https://halc.top/tags/Arch/ +https://halc.top/tags/cs144/ +https://halc.top/tags/network/ +https://halc.top/tags/Yadm/ +https://halc.top/tags/cmd/ +https://halc.top/tags/Wireshark/ +https://halc.top/tags/DNS/ +https://halc.top/tags/iommu/ +https://halc.top/tags/cloudflare/ +https://halc.top/categories/%E7%9F%A5%E8%AF%86%E8%AE%B0%E5%BD%95/ +https://halc.top/categories/%E5%AE%89%E8%A3%85%E5%BC%95%E5%AF%BC/ +https://halc.top/categories/%E5%B0%8F%E6%8A%80%E5%B7%A7/ +https://halc.top/categories/%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/ diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 00000000..2eae2234 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,1190 @@ + + + + + https://halc.top/about/index.html + + 2024-01-24 + + monthly + 0.6 + + + + https://halc.top/css/round.css + + 2024-01-24 + + monthly + 0.6 + + + + https://halc.top/p/87299c69 + + 2024-01-24 + + monthly + 0.6 + + + + https://halc.top/p/f09b73d7 + + 2024-01-23 + + monthly + 0.6 + + + + https://halc.top/p/4416e368 + + 2023-11-28 + + monthly + 0.6 + + + + https://halc.top/p/e429c37a + + 2023-10-20 + + monthly + 0.6 + + + + https://halc.top/p/3930e42b + + 2023-08-03 + + monthly + 0.6 + + + + https://halc.top/p/23c3db21 + + 2023-07-30 + + monthly + 0.6 + + + + https://halc.top/p/83fa91fc + + 2023-06-19 + + monthly + 0.6 + + + + https://halc.top/p/82bd449c + + 2023-06-17 + + monthly + 0.6 + + + + https://halc.top/p/195b5fa9 + + 2023-04-24 + + monthly + 0.6 + + + + https://halc.top/p/db490294 + + 2023-04-24 + + monthly + 0.6 + + + + https://halc.top/p/4e68707 + + 2023-04-10 + + monthly + 0.6 + + + + https://halc.top/p/73e1b791 + + 2023-04-10 + + monthly + 0.6 + + + + https://halc.top/p/aeda2510 + + 2023-04-10 + + monthly + 0.6 + + + + https://halc.top/p/10e77bc5 + + 2023-04-10 + + monthly + 0.6 + + + + https://halc.top/p/4457ea2b + + 2022-12-12 + + monthly + 0.6 + + + + https://halc.top/p/2ca0860a + + 2022-11-30 + + monthly + 0.6 + + + + https://halc.top/p/cdfd3649 + + 2022-07-09 + + monthly + 0.6 + + + + https://halc.top/p/db6cc46f + + 2022-07-04 + + monthly + 0.6 + + + + https://halc.top/p/9232cf7b + + 2022-07-02 + + monthly + 0.6 + + + + https://halc.top/p/92f7b8a + + 2022-06-29 + + monthly + 0.6 + + + + https://halc.top/p/bbde595d + + 2022-06-28 + + monthly + 0.6 + + + + https://halc.top/p/795cfa1d + + 2022-06-07 + + monthly + 0.6 + + + + https://halc.top/p/c1ec22c4 + + 2022-05-12 + + monthly + 0.6 + + + + https://halc.top/p/20416971 + + 2022-05-09 + + monthly + 0.6 + + + + https://halc.top/p/44838b9c + + 2022-05-08 + + monthly + 0.6 + + + + https://halc.top/p/3d85131 + + 2022-05-07 + + monthly + 0.6 + + + + https://halc.top/p/8d2011c6 + + 2022-05-07 + + monthly + 0.6 + + + + https://halc.top/p/6088c65c + + 2022-04-30 + + monthly + 0.6 + + + + https://halc.top/p/22453a61 + + 2022-04-28 + + monthly + 0.6 + + + + https://halc.top/p/28ea7a49 + + 2022-04-23 + + monthly + 0.6 + + + + https://halc.top/p/783d8b13 + + 2022-04-20 + + monthly + 0.6 + + + + https://halc.top/p/1724953e + + 2022-04-19 + + monthly + 0.6 + + + + https://halc.top/p/b3a8b5ef + + 2022-04-18 + + monthly + 0.6 + + + + https://halc.top/p/7bfa5e14 + + 2022-04-15 + + monthly + 0.6 + + + + https://halc.top/p/20c326f2 + + 2022-04-13 + + monthly + 0.6 + + + + https://halc.top/p/264bf58c + + 2022-04-10 + + monthly + 0.6 + + + + https://halc.top/p/13271c5f + + 2022-04-09 + + monthly + 0.6 + + + + https://halc.top/p/80f884dc + + 2022-04-07 + + monthly + 0.6 + + + + https://halc.top/p/18b05b6b + + 2022-04-05 + + monthly + 0.6 + + + + https://halc.top/p/4b65fa48 + + 2022-03-25 + + monthly + 0.6 + + + + https://halc.top/p/897b63ef + + 2022-03-23 + + monthly + 0.6 + + + + https://halc.top/p/840f43e7 + + 2022-03-23 + + monthly + 0.6 + + + + https://halc.top/p/b9e46cb4 + + 2022-03-19 + + monthly + 0.6 + + + + https://halc.top/p/cf0fd528 + + 2022-03-18 + + monthly + 0.6 + + + + https://halc.top/p/a126ef4d + + 2022-03-15 + + monthly + 0.6 + + + + https://halc.top/p/e328a303 + + 2022-03-12 + + monthly + 0.6 + + + + https://halc.top/p/ba5740b2 + + 2022-03-06 + + monthly + 0.6 + + + + https://halc.top/p/2f2e6810 + + 2022-02-08 + + monthly + 0.6 + + + + https://halc.top/p/9130a701 + + 2022-02-06 + + monthly + 0.6 + + + + https://halc.top/p/afb272ac + + 2022-01-29 + + monthly + 0.6 + + + + https://halc.top/p/1153f279 + + 2022-01-06 + + monthly + 0.6 + + + + https://halc.top/p/76495b47 + + 2021-12-02 + + monthly + 0.6 + + + + https://halc.top/p/2362a8ea + + 2021-12-02 + + monthly + 0.6 + + + + https://halc.top/p/98326a13 + + 2021-10-29 + + monthly + 0.6 + + + + https://halc.top/p/d08cfaf4 + + 2021-10-21 + + monthly + 0.6 + + + + https://halc.top/p/f15c20eb + + 2021-10-04 + + monthly + 0.6 + + + + https://halc.top/p/87ec6922 + + 2021-10-03 + + monthly + 0.6 + + + + https://halc.top/p/d26abad0 + + 2021-09-18 + + monthly + 0.6 + + + + https://halc.top/p/447b77e9 + + 2021-09-09 + + monthly + 0.6 + + + + https://halc.top/p/aa5ce7f4 + + 2021-08-30 + + monthly + 0.6 + + + + https://halc.top/p/690287f9 + + 2021-08-06 + + monthly + 0.6 + + + + https://halc.top/p/6d032e05 + + 2021-08-04 + + monthly + 0.6 + + + + https://halc.top/p/f3eca903 + + 2021-08-04 + + monthly + 0.6 + + + + https://halc.top/p/14cd2588 + + 2021-08-02 + + monthly + 0.6 + + + + https://halc.top/p/abf1d877 + + 2021-07-22 + + monthly + 0.6 + + + + https://halc.top/p/be72c31c + + 2021-07-22 + + monthly + 0.6 + + + + https://halc.top/p/39b9efc1 + + 2021-06-13 + + monthly + 0.6 + + + + https://halc.top/p/c9fc3bb5 + + 2021-05-22 + + monthly + 0.6 + + + + https://halc.top/p/1dcf9daa + + 2021-05-11 + + monthly + 0.6 + + + + https://halc.top/p/1e0fb80b + + 2021-05-10 + + monthly + 0.6 + + + + https://halc.top/p/77f84830 + + 2021-05-07 + + monthly + 0.6 + + + + https://halc.top/p/2f594679 + + 2021-05-07 + + monthly + 0.6 + + + + https://halc.top/p/cc7f9b10 + + 2021-04-30 + + monthly + 0.6 + + + + https://halc.top/p/6a6a7409 + + 2021-04-27 + + monthly + 0.6 + + + + https://halc.top/p/24f916f9 + + 2021-04-24 + + monthly + 0.6 + + + + https://halc.top/p/a2277ea0 + + 2021-04-20 + + monthly + 0.6 + + + + https://halc.top/p/15b685e1 + + 2021-04-20 + + monthly + 0.6 + + + + https://halc.top/p/cff2e0b5 + + 2021-04-19 + + monthly + 0.6 + + + + https://halc.top/p/e8eb0481 + + 2021-04-12 + + monthly + 0.6 + + + + https://halc.top/p/713e2886 + + 2021-04-06 + + monthly + 0.6 + + + + https://halc.top/p/12aa3ef8 + + 2021-04-04 + + monthly + 0.6 + + + + https://halc.top/p/3efcbb51 + + 2021-03-25 + + monthly + 0.6 + + + + https://halc.top/p/5a7c7761 + + 2021-03-25 + + monthly + 0.6 + + + + https://halc.top/p/c1161a88 + + 2021-03-24 + + monthly + 0.6 + + + + https://halc.top/p/99e48799 + + 2021-03-20 + + monthly + 0.6 + + + + https://halc.top/p/2dda2597 + + 2021-03-17 + + monthly + 0.6 + + + + https://halc.top/p/a9706dff + + 2021-03-17 + + monthly + 0.6 + + + + https://halc.top/p/41385a4a + + 2021-03-16 + + monthly + 0.6 + + + + https://halc.top/p/c9774a05 + + 2021-03-15 + + monthly + 0.6 + + + + https://halc.top/p/1d3a895d + + 2021-03-14 + + monthly + 0.6 + + + + https://halc.top/p/dea4f344 + + 2021-03-14 + + monthly + 0.6 + + + + https://halc.top/p/15b28479 + + 2021-03-14 + + monthly + 0.6 + + + + + https://halc.top/ + 2024-01-24 + daily + 1.0 + + + + + https://halc.top/tags/Markdown/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Frp/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Ubuntu/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Linux/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Vim/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Devc/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/ZeroTier/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Windows/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/OpenWRT/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Docker/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Algorithm/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/SSH/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Nginx/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/CDN/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Minecraft/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/PowerShell/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Scoop/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/cpp/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/zsh/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/%E7%AE%97%E6%B3%95/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/%E6%80%BB%E7%BB%93/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/OS/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Github/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/python/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/os/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/hexo/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/WSL/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Clash/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/qbittorrent/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/jellyfin/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/docker/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/rclone/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/missing-semester/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/shell/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Arch/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/cs144/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/network/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Yadm/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/cmd/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/Wireshark/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/DNS/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/iommu/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/tags/cloudflare/ + 2024-01-24 + weekly + 0.2 + + + + + + https://halc.top/categories/%E7%9F%A5%E8%AF%86%E8%AE%B0%E5%BD%95/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/categories/%E5%AE%89%E8%A3%85%E5%BC%95%E5%AF%BC/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/categories/%E5%B0%8F%E6%8A%80%E5%B7%A7/ + 2024-01-24 + weekly + 0.2 + + + + https://halc.top/categories/%E4%B8%AA%E4%BA%BA%E6%80%BB%E7%BB%93/ + 2024-01-24 + weekly + 0.2 + + + diff --git a/tags/Algorithm/index.html b/tags/Algorithm/index.html new file mode 100644 index 00000000..365ae2a7 --- /dev/null +++ b/tags/Algorithm/index.html @@ -0,0 +1,2 @@ +标签 - Algorithm - Halcyon Zone +

    共计 1 篇文章


    2021

    二分查找
    \ No newline at end of file diff --git a/tags/Arch/index.html b/tags/Arch/index.html new file mode 100644 index 00000000..5935ecc3 --- /dev/null +++ b/tags/Arch/index.html @@ -0,0 +1,2 @@ +标签 - Arch - Halcyon Zone +

    共计 1 篇文章


    2022

    ArchWSL安装及基础配置
    \ No newline at end of file diff --git a/tags/CDN/index.html b/tags/CDN/index.html new file mode 100644 index 00000000..bc86fc75 --- /dev/null +++ b/tags/CDN/index.html @@ -0,0 +1,2 @@ +标签 - CDN - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Clash/index.html b/tags/Clash/index.html new file mode 100644 index 00000000..9b7e7ab9 --- /dev/null +++ b/tags/Clash/index.html @@ -0,0 +1,2 @@ +标签 - Clash - Halcyon Zone +

    共计 1 篇文章


    2022

    WSL配置Proxy代理引导
    \ No newline at end of file diff --git a/tags/DNS/index.html b/tags/DNS/index.html new file mode 100644 index 00000000..092326ee --- /dev/null +++ b/tags/DNS/index.html @@ -0,0 +1,2 @@ +标签 - DNS - Halcyon Zone +

    共计 1 篇文章


    2023

    DNS问题排查思路
    \ No newline at end of file diff --git a/tags/Devc/index.html b/tags/Devc/index.html new file mode 100644 index 00000000..b0e5c131 --- /dev/null +++ b/tags/Devc/index.html @@ -0,0 +1,2 @@ +标签 - Devc++ - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Docker/index.html b/tags/Docker/index.html new file mode 100644 index 00000000..9534bbbf --- /dev/null +++ b/tags/Docker/index.html @@ -0,0 +1,2 @@ +标签 - Docker - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Frp/index.html b/tags/Frp/index.html new file mode 100644 index 00000000..77fb74ca --- /dev/null +++ b/tags/Frp/index.html @@ -0,0 +1,2 @@ +标签 - Frp - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Github/index.html b/tags/Github/index.html new file mode 100644 index 00000000..08e0a00e --- /dev/null +++ b/tags/Github/index.html @@ -0,0 +1,2 @@ +标签 - Github - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Linux/index.html b/tags/Linux/index.html new file mode 100644 index 00000000..5f95a683 --- /dev/null +++ b/tags/Linux/index.html @@ -0,0 +1,2 @@ +标签 - Linux - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Linux/page/2/index.html b/tags/Linux/page/2/index.html new file mode 100644 index 00000000..3f55a728 --- /dev/null +++ b/tags/Linux/page/2/index.html @@ -0,0 +1,2 @@ +标签 - Linux - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Linux/page/3/index.html b/tags/Linux/page/3/index.html new file mode 100644 index 00000000..a3e76d8f --- /dev/null +++ b/tags/Linux/page/3/index.html @@ -0,0 +1,2 @@ +标签 - Linux - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Markdown/index.html b/tags/Markdown/index.html new file mode 100644 index 00000000..47232ab1 --- /dev/null +++ b/tags/Markdown/index.html @@ -0,0 +1,2 @@ +标签 - Markdown - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Minecraft/index.html b/tags/Minecraft/index.html new file mode 100644 index 00000000..61603b09 --- /dev/null +++ b/tags/Minecraft/index.html @@ -0,0 +1,2 @@ +标签 - Minecraft - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Nginx/index.html b/tags/Nginx/index.html new file mode 100644 index 00000000..27ff1937 --- /dev/null +++ b/tags/Nginx/index.html @@ -0,0 +1,2 @@ +标签 - Nginx - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/OS/index.html b/tags/OS/index.html new file mode 100644 index 00000000..ff953b6f --- /dev/null +++ b/tags/OS/index.html @@ -0,0 +1,2 @@ +标签 - OS - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/OS/page/2/index.html b/tags/OS/page/2/index.html new file mode 100644 index 00000000..b2aa548a --- /dev/null +++ b/tags/OS/page/2/index.html @@ -0,0 +1,2 @@ +标签 - OS - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/OpenWRT/index.html b/tags/OpenWRT/index.html new file mode 100644 index 00000000..e01cb137 --- /dev/null +++ b/tags/OpenWRT/index.html @@ -0,0 +1,2 @@ +标签 - OpenWRT - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/PowerShell/index.html b/tags/PowerShell/index.html new file mode 100644 index 00000000..522acfee --- /dev/null +++ b/tags/PowerShell/index.html @@ -0,0 +1,2 @@ +标签 - PowerShell - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/SSH/index.html b/tags/SSH/index.html new file mode 100644 index 00000000..1bed1cfa --- /dev/null +++ b/tags/SSH/index.html @@ -0,0 +1,2 @@ +标签 - SSH - Halcyon Zone +

    共计 1 篇文章


    2021

    SSH技巧总结
    \ No newline at end of file diff --git a/tags/Scoop/index.html b/tags/Scoop/index.html new file mode 100644 index 00000000..825fa4f7 --- /dev/null +++ b/tags/Scoop/index.html @@ -0,0 +1,2 @@ +标签 - Scoop - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Ubuntu/index.html b/tags/Ubuntu/index.html new file mode 100644 index 00000000..39142030 --- /dev/null +++ b/tags/Ubuntu/index.html @@ -0,0 +1,2 @@ +标签 - Ubuntu - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Vim/index.html b/tags/Vim/index.html new file mode 100644 index 00000000..dcb04ade --- /dev/null +++ b/tags/Vim/index.html @@ -0,0 +1,2 @@ +标签 - Vim - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/WSL/index.html b/tags/WSL/index.html new file mode 100644 index 00000000..af4524fc --- /dev/null +++ b/tags/WSL/index.html @@ -0,0 +1,2 @@ +标签 - WSL - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Windows/index.html b/tags/Windows/index.html new file mode 100644 index 00000000..5e4bc3a7 --- /dev/null +++ b/tags/Windows/index.html @@ -0,0 +1,2 @@ +标签 - Windows - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/Wireshark/index.html b/tags/Wireshark/index.html new file mode 100644 index 00000000..18823a2a --- /dev/null +++ b/tags/Wireshark/index.html @@ -0,0 +1,2 @@ +标签 - Wireshark - Halcyon Zone +

    共计 1 篇文章


    2023

    网络抓包记录
    \ No newline at end of file diff --git a/tags/Yadm/index.html b/tags/Yadm/index.html new file mode 100644 index 00000000..81315ade --- /dev/null +++ b/tags/Yadm/index.html @@ -0,0 +1,2 @@ +标签 - Yadm - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/ZeroTier/index.html b/tags/ZeroTier/index.html new file mode 100644 index 00000000..fb2abaab --- /dev/null +++ b/tags/ZeroTier/index.html @@ -0,0 +1,2 @@ +标签 - ZeroTier - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/cloudflare/index.html b/tags/cloudflare/index.html new file mode 100644 index 00000000..d9179c88 --- /dev/null +++ b/tags/cloudflare/index.html @@ -0,0 +1,2 @@ +标签 - cloudflare - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/cmd/index.html b/tags/cmd/index.html new file mode 100644 index 00000000..3ee7c5e8 --- /dev/null +++ b/tags/cmd/index.html @@ -0,0 +1,2 @@ +标签 - cmd - Halcyon Zone +

    共计 1 篇文章


    2023

    使用clink优化cmd
    \ No newline at end of file diff --git a/tags/cpp/index.html b/tags/cpp/index.html new file mode 100644 index 00000000..5820f292 --- /dev/null +++ b/tags/cpp/index.html @@ -0,0 +1,2 @@ +标签 - cpp - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/cs144/index.html b/tags/cs144/index.html new file mode 100644 index 00000000..4b2f5264 --- /dev/null +++ b/tags/cs144/index.html @@ -0,0 +1,2 @@ +标签 - cs144 - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/docker/index.html b/tags/docker/index.html new file mode 100644 index 00000000..f7676fff --- /dev/null +++ b/tags/docker/index.html @@ -0,0 +1,2 @@ +标签 - docker - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/hexo/index.html b/tags/hexo/index.html new file mode 100644 index 00000000..55c8058e --- /dev/null +++ b/tags/hexo/index.html @@ -0,0 +1,2 @@ +标签 - hexo - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 00000000..8c82363c --- /dev/null +++ b/tags/index.html @@ -0,0 +1,2 @@ +标签 - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/iommu/index.html b/tags/iommu/index.html new file mode 100644 index 00000000..ca2e5ac8 --- /dev/null +++ b/tags/iommu/index.html @@ -0,0 +1,2 @@ +标签 - iommu - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/jellyfin/index.html b/tags/jellyfin/index.html new file mode 100644 index 00000000..b806f8df --- /dev/null +++ b/tags/jellyfin/index.html @@ -0,0 +1,2 @@ +标签 - jellyfin - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/missing-semester/index.html b/tags/missing-semester/index.html new file mode 100644 index 00000000..64434129 --- /dev/null +++ b/tags/missing-semester/index.html @@ -0,0 +1,2 @@ +标签 - missing-semester - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/network/index.html b/tags/network/index.html new file mode 100644 index 00000000..8a7c1ca0 --- /dev/null +++ b/tags/network/index.html @@ -0,0 +1,2 @@ +标签 - network - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/os/index.html b/tags/os/index.html new file mode 100644 index 00000000..f0fdffd6 --- /dev/null +++ b/tags/os/index.html @@ -0,0 +1,2 @@ +标签 - os - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/python/index.html b/tags/python/index.html new file mode 100644 index 00000000..01c6c507 --- /dev/null +++ b/tags/python/index.html @@ -0,0 +1,2 @@ +标签 - python - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/qbittorrent/index.html b/tags/qbittorrent/index.html new file mode 100644 index 00000000..019a9b11 --- /dev/null +++ b/tags/qbittorrent/index.html @@ -0,0 +1,2 @@ +标签 - qbittorrent - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/rclone/index.html b/tags/rclone/index.html new file mode 100644 index 00000000..7ae90da1 --- /dev/null +++ b/tags/rclone/index.html @@ -0,0 +1,2 @@ +标签 - rclone - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/shell/index.html b/tags/shell/index.html new file mode 100644 index 00000000..77a20e6c --- /dev/null +++ b/tags/shell/index.html @@ -0,0 +1,2 @@ +标签 - shell - Halcyon Zone +
    \ No newline at end of file diff --git a/tags/zsh/index.html b/tags/zsh/index.html new file mode 100644 index 00000000..f00041ea --- /dev/null +++ b/tags/zsh/index.html @@ -0,0 +1,2 @@ +标签 - zsh - Halcyon Zone +
    \ No newline at end of file diff --git "a/tags/\346\200\273\347\273\223/index.html" "b/tags/\346\200\273\347\273\223/index.html" new file mode 100644 index 00000000..1496e9d8 --- /dev/null +++ "b/tags/\346\200\273\347\273\223/index.html" @@ -0,0 +1,2 @@ +标签 - 总结 - Halcyon Zone +
    \ No newline at end of file diff --git "a/tags/\347\256\227\346\263\225/index.html" "b/tags/\347\256\227\346\263\225/index.html" new file mode 100644 index 00000000..5a97ee4a --- /dev/null +++ "b/tags/\347\256\227\346\263\225/index.html" @@ -0,0 +1,2 @@ +标签 - 算法 - Halcyon Zone +
    \ No newline at end of file diff --git a/xml/local-search.xml b/xml/local-search.xml new file mode 100644 index 00000000..d7d0c01c --- /dev/null +++ b/xml/local-search.xml @@ -0,0 +1,45 @@ + + + {% if posts %} + {% for post in posts.toArray() %} + {% if post.indexing == undefined or post.indexing %} + + {{ post.title }} + + {{ [url, post.path] | urlJoin | uriencode }} + {% if content %} + + {% endif %} + {% if post.categories and post.categories.length>0 %} + + {% for cate in post.categories.toArray() %} + {{ cate.name }} + {% endfor %} + + {% endif %} + {% if post.tags and post.tags.length>0 %} + + {% for tag in post.tags.toArray() %} + {{ tag.name }} + {% endfor %} + + {% endif %} + + {% endif %} + {% endfor %} + {% endif %} + {% if pages %} + {% for page in pages.toArray() %} + {% if post.indexing == undefined or post.indexing %} + + {{ page.title }} + + {{ [url, post.path] | urlJoin | uriencode }} + {% if content %} + + {% endif %} + + {% endif %} + {% endfor %} + {% endif %} +