From 2aa989d40a16f850ca288275ade87e6d1b1994b6 Mon Sep 17 00:00:00 2001 From: OrdChaos Date: Mon, 12 Feb 2024 12:11:44 +0000 Subject: [PATCH] Site updated: 2024-02-12 12:11:44 --- 404.html | 3 + a56dbb5fb9eece42c64a6a1dc726c83f.txt | 1 + about/index.html | 3 + archives/2020/12/index.html | 3 + archives/2020/index.html | 3 + archives/2021/03/index.html | 3 + archives/2021/04/index.html | 3 + archives/2021/06/index.html | 3 + archives/2021/07/index.html | 3 + archives/2021/12/index.html | 3 + archives/2021/index.html | 3 + archives/2022/01/index.html | 3 + archives/2022/04/index.html | 3 + archives/2022/05/index.html | 3 + archives/2022/06/index.html | 3 + archives/2022/07/index.html | 3 + archives/2022/08/index.html | 3 + archives/2022/09/index.html | 3 + archives/2022/11/index.html | 3 + archives/2022/index.html | 3 + archives/2022/page/2/index.html | 3 + archives/2023/01/index.html | 3 + archives/2023/03/index.html | 3 + archives/2023/04/index.html | 3 + archives/2023/07/index.html | 3 + archives/2023/08/index.html | 3 + archives/2023/index.html | 3 + archives/2024/02/index.html | 3 + archives/2024/index.html | 3 + archives/index.html | 3 + archives/page/2/index.html | 3 + archives/page/3/index.html | 3 + atom.xml | 597 +++++++ baidu_urls.txt | 44 + baidusitemap.xml | 179 +++ bangumis/index.html | 3 + categories/Phigros/index.html | 3 + categories/index.html | 3 + .../\344\270\252\344\272\272/index.html" | 3 + .../\345\214\226\345\255\246/index.html" | 3 + .../\346\225\231\347\250\213/index.html" | 3 + .../\346\225\260\345\255\246/index.html" | 3 + .../\346\226\207\345\255\246/index.html" | 3 + .../\346\227\245\345\270\270/index.html" | 3 + .../\347\237\255\346\226\207/index.html" | 3 + .../\347\241\254\344\273\266/index.html" | 3 + .../\347\274\226\347\250\213/index.html" | 3 + .../\347\276\216\346\234\257/index.html" | 3 + .../\350\213\261\350\257\255/index.html" | 3 + .../\350\276\251\350\256\272/index.html" | 3 + .../\351\237\263\344\271\220/index.html" | 3 + css/custom.css | 1 + css/fcircle-ext.css | 1 + css/gitalk.css | 1 + placeholder => css/highlight-dark.css | 0 css/highlight.css | 10 + css/links.css | 1 + css/main.css | 1 + css/navbar.css | 1 + css/notice.css | 1 + fcircle/index.html | 3 + ...Written-By-Human-Not-By-AI-Badge-white.svg | 1 + img/avatar-circle.png | Bin 0 -> 169112 bytes img/avatar.jpg | Bin 0 -> 32217 bytes img/avatar.png | Bin 0 -> 3180 bytes img/back.jpg | Bin 0 -> 148011 bytes img/default.png | Bin 0 -> 400730 bytes img/fluid.png | Bin 0 -> 4650 bytes img/icons/apple-touch-icon.png | Bin 0 -> 1049 bytes img/icons/icon-128x128.png | Bin 0 -> 778 bytes img/icons/icon-144x144.png | Bin 0 -> 1121 bytes img/icons/icon-152x152.png | Bin 0 -> 1166 bytes img/icons/icon-180x180.png | Bin 0 -> 1049 bytes img/icons/icon-192x192.png | Bin 0 -> 1216 bytes img/icons/icon-384x384.png | Bin 0 -> 2791 bytes img/icons/icon-512x512-alpha.png | Bin 0 -> 1071 bytes img/icons/icon-512x512.png | Bin 0 -> 3620 bytes img/icons/icon-72x72.png | Bin 0 -> 584 bytes img/icons/icon-96x96.png | Bin 0 -> 650 bytes img/icons/maskable_icon.png | Bin 0 -> 3620 bytes img/icons/svg.svg | 1 + img/loading.gif | Bin 0 -> 17142 bytes img/police_beian.png | Bin 0 -> 1246 bytes index.html | 3 + js/aisummary.js | 1 + js/boot.js | 1 + js/color-schema.js | 1 + js/duration.js | 1 + js/events.js | 1 + js/img-lazyload.js | 1 + js/jquery.min.js | 1 + js/jump.js | 1 + js/lately.min.js | 6 + js/leancloud.js | 1 + js/local-search.js | 1 + js/moment.min.js | 1 + js/plugins.js | 4 + js/rand.js | 1 + js/sharethis.js | 1 + js/talk.js | 1 + js/timeago.min.js | 1 + js/tw_cn_tran.js | 1 + js/utils.js | 1 + leave/index.html | 3 + links/index.html | 3 + loaderio-01ad4407e9cb8d9fedb0c01f2b850924.txt | 1 + local-search.xml | 1411 +++++++++++++++++ manifest.json | 1 + owo.json | 1 + page/2/index.html | 3 + page/3/index.html | 3 + page/4/index.html | 3 + page/5/index.html | 3 + posts/10824f12/index.html | 3 + posts/1e44a102/index.html | 3 + posts/1e617f9e/index.html | 3 + posts/23e22de2/index.html | 3 + posts/28b74a2d/index.html | 3 + posts/2f728g0f/index.html | 3 + posts/3386e07f/index.html | 3 + posts/340b325e/index.html | 3 + posts/3b90dbec/index.html | 3 + posts/46d2370f/index.html | 3 + posts/4996fe6c/index.html | 3 + posts/53c0d957/index.html | 3 + posts/618137f7/index.html | 3 + posts/6270475f/index.html | 3 + posts/6a062b97/index.html | 3 + posts/774674fe/index.html | 3 + posts/79cc3297/index.html | 3 + posts/7b015599/index.html | 3 + posts/7e535678/index.html | 3 + posts/7e920bb4/index.html | 3 + posts/7eb4319/index.html | 3 + posts/8ad10849/index.html | 3 + posts/8e1b39a3/index.html | 3 + posts/8f132c87/index.html | 3 + posts/92674965/index.html | 3 + posts/95bd9bb8/index.html | 3 + posts/97a1a73e/index.html | 3 + posts/ab8676cc/index.html | 3 + posts/b3d3143c/index.html | 3 + posts/bb5ce830/index.html | 3 + posts/bff2b1a/index.html | 3 + posts/c2e7460a/index.html | 3 + posts/c9c6cb4f/index.html | 3 + posts/d29e300c/index.html | 3 + posts/d4140423/index.html | 3 + posts/d9bb8734/index.html | 3 + posts/da7075f0/index.html | 3 + posts/e84bad58/index.html | 3 + posts/e8587b82/index.html | 3 + posts/e8ce405d/index.html | 3 + posts/e9c784c5/index.html | 3 + posts/ec8c9790/index.html | 3 + posts/f0f71147/index.html | 3 + posts/fab451a5/index.html | 3 + robots.txt | 16 + rss2.xml | 634 ++++++++ sitemap.xml | 1025 ++++++++++++ sw.js | 1 + sw.origin.js | 244 +++ tags/AI/index.html | 3 + tags/English/index.html | 3 + tags/GitHub-Action/index.html | 3 + tags/GitHub/index.html | 3 + tags/Hexo/index.html | 3 + tags/Picgo/index.html | 3 + "tags/U\347\233\230/index.html" | 3 + tags/adb/index.html | 3 + tags/awtrix/index.html | 3 + tags/c/index.html | 3 + tags/css/index.html | 3 + tags/github/index.html | 3 + tags/html/index.html | 3 + tags/index.html | 3 + tags/javascript/index.html | 3 + tags/memos/index.html | 3 + tags/phigros/index.html | 3 + "tags/s3\346\241\266/index.html" | 3 + tags/sai/index.html | 3 + tags/vps/index.html | 3 + "tags/\344\270\252\344\272\272/index.html" | 3 + "tags/\344\274\230\345\214\226/index.html" | 3 + "tags/\344\275\234\346\226\207/index.html" | 3 + "tags/\345\211\215\347\253\257/index.html" | 3 + "tags/\345\214\226\345\255\246/index.html" | 3 + "tags/\345\220\210\345\224\261/index.html" | 3 + "tags/\345\221\250\350\276\271/index.html" | 3 + "tags/\345\244\215\347\216\260/index.html" | 3 + "tags/\345\255\246\344\271\240/index.html" | 3 + "tags/\345\255\246\347\224\237/index.html" | 3 + "tags/\345\256\211\345\215\223/index.html" | 3 + .../index.html" | 3 + "tags/\345\274\200\347\256\261/index.html" | 3 + "tags/\346\200\273\347\273\223/index.html" | 3 + "tags/\346\211\213\346\234\272/index.html" | 3 + "tags/\346\211\213\347\273\230/index.html" | 3 + "tags/\346\225\231\347\250\213/index.html" | 3 + "tags/\346\225\260\345\255\246/index.html" | 3 + "tags/\346\226\207\345\255\246/index.html" | 3 + "tags/\346\227\205\350\241\214/index.html" | 3 + "tags/\346\227\245\345\270\270/index.html" | 3 + .../index.html" | 3 + "tags/\347\211\272\347\211\262/index.html" | 3 + "tags/\347\224\237\346\227\245/index.html" | 3 + .../index.html" | 3 + "tags/\347\224\265\345\275\261/index.html" | 3 + "tags/\347\224\273\347\224\273/index.html" | 3 + "tags/\347\231\275\345\253\226/index.html" | 3 + "tags/\347\237\255\346\226\207/index.html" | 3 + "tags/\347\241\254\344\273\266/index.html" | 3 + "tags/\347\246\217\345\210\251/index.html" | 3 + "tags/\347\247\221\346\212\200/index.html" | 3 + "tags/\347\256\227\346\263\225/index.html" | 3 + "tags/\347\264\240\346\235\220/index.html" | 3 + .../index.html" | 3 + "tags/\347\274\226\347\250\213/index.html" | 3 + .../page/2/index.html" | 3 + "tags/\347\275\221\347\253\231/index.html" | 3 + "tags/\350\200\203\350\257\225/index.html" | 3 + .../index.html" | 3 + .../index.html" | 3 + .../index.html" | 3 + .../page/2/index.html" | 3 + .../index.html" | 3 + "tags/\350\257\264\350\257\264/index.html" | 3 + .../index.html" | 3 + "tags/\350\276\251\350\256\272/index.html" | 3 + "tags/\351\237\263\344\271\220/index.html" | 3 + "tags/\351\270\277\350\222\231/index.html" | 3 + talk/index.html | 3 + xml/local-search.xml | 45 + 233 files changed, 4753 insertions(+) create mode 100644 404.html create mode 100644 a56dbb5fb9eece42c64a6a1dc726c83f.txt create mode 100644 about/index.html create mode 100644 archives/2020/12/index.html create mode 100644 archives/2020/index.html create mode 100644 archives/2021/03/index.html create mode 100644 archives/2021/04/index.html create mode 100644 archives/2021/06/index.html create mode 100644 archives/2021/07/index.html create mode 100644 archives/2021/12/index.html create mode 100644 archives/2021/index.html create mode 100644 archives/2022/01/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/08/index.html create mode 100644 archives/2022/09/index.html create mode 100644 archives/2022/11/index.html create mode 100644 archives/2022/index.html create mode 100644 archives/2022/page/2/index.html create mode 100644 archives/2023/01/index.html create mode 100644 archives/2023/03/index.html create mode 100644 archives/2023/04/index.html create mode 100644 archives/2023/07/index.html create mode 100644 archives/2023/08/index.html create mode 100644 archives/2023/index.html create mode 100644 archives/2024/02/index.html create mode 100644 archives/2024/index.html create mode 100644 archives/index.html create mode 100644 archives/page/2/index.html create mode 100644 archives/page/3/index.html create mode 100644 atom.xml create mode 100644 baidu_urls.txt create mode 100644 baidusitemap.xml create mode 100644 bangumis/index.html create mode 100644 categories/Phigros/index.html create mode 100644 categories/index.html create mode 100644 "categories/\344\270\252\344\272\272/index.html" create mode 100644 "categories/\345\214\226\345\255\246/index.html" create mode 100644 "categories/\346\225\231\347\250\213/index.html" create mode 100644 "categories/\346\225\260\345\255\246/index.html" create mode 100644 "categories/\346\226\207\345\255\246/index.html" create mode 100644 "categories/\346\227\245\345\270\270/index.html" create mode 100644 "categories/\347\237\255\346\226\207/index.html" create mode 100644 "categories/\347\241\254\344\273\266/index.html" create mode 100644 "categories/\347\274\226\347\250\213/index.html" create mode 100644 "categories/\347\276\216\346\234\257/index.html" create mode 100644 "categories/\350\213\261\350\257\255/index.html" create mode 100644 "categories/\350\276\251\350\256\272/index.html" create mode 100644 "categories/\351\237\263\344\271\220/index.html" create mode 100644 css/custom.css create mode 100644 css/fcircle-ext.css create mode 100644 css/gitalk.css rename placeholder => css/highlight-dark.css (100%) create mode 100644 css/highlight.css create mode 100644 css/links.css create mode 100644 css/main.css create mode 100644 css/navbar.css create mode 100644 css/notice.css create mode 100644 fcircle/index.html create mode 100644 img/Written-By-Human-Not-By-AI-Badge-white.svg create mode 100644 img/avatar-circle.png create mode 100644 img/avatar.jpg create mode 100644 img/avatar.png create mode 100644 img/back.jpg create mode 100644 img/default.png create mode 100644 img/fluid.png create mode 100644 img/icons/apple-touch-icon.png create mode 100644 img/icons/icon-128x128.png create mode 100644 img/icons/icon-144x144.png create mode 100644 img/icons/icon-152x152.png create mode 100644 img/icons/icon-180x180.png create mode 100644 img/icons/icon-192x192.png create mode 100644 img/icons/icon-384x384.png create mode 100644 img/icons/icon-512x512-alpha.png create mode 100644 img/icons/icon-512x512.png create mode 100644 img/icons/icon-72x72.png create mode 100644 img/icons/icon-96x96.png create mode 100644 img/icons/maskable_icon.png create mode 100644 img/icons/svg.svg create mode 100644 img/loading.gif create mode 100644 img/police_beian.png create mode 100644 index.html create mode 100644 js/aisummary.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/jquery.min.js create mode 100644 js/jump.js create mode 100644 js/lately.min.js create mode 100644 js/leancloud.js create mode 100644 js/local-search.js create mode 100644 js/moment.min.js create mode 100644 js/plugins.js create mode 100644 js/rand.js create mode 100644 js/sharethis.js create mode 100644 js/talk.js create mode 100644 js/timeago.min.js create mode 100644 js/tw_cn_tran.js create mode 100644 js/utils.js create mode 100644 leave/index.html create mode 100644 links/index.html create mode 100644 loaderio-01ad4407e9cb8d9fedb0c01f2b850924.txt create mode 100644 local-search.xml create mode 100644 manifest.json create mode 100644 owo.json 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 posts/10824f12/index.html create mode 100644 posts/1e44a102/index.html create mode 100644 posts/1e617f9e/index.html create mode 100644 posts/23e22de2/index.html create mode 100644 posts/28b74a2d/index.html create mode 100644 posts/2f728g0f/index.html create mode 100644 posts/3386e07f/index.html create mode 100644 posts/340b325e/index.html create mode 100644 posts/3b90dbec/index.html create mode 100644 posts/46d2370f/index.html create mode 100644 posts/4996fe6c/index.html create mode 100644 posts/53c0d957/index.html create mode 100644 posts/618137f7/index.html create mode 100644 posts/6270475f/index.html create mode 100644 posts/6a062b97/index.html create mode 100644 posts/774674fe/index.html create mode 100644 posts/79cc3297/index.html create mode 100644 posts/7b015599/index.html create mode 100644 posts/7e535678/index.html create mode 100644 posts/7e920bb4/index.html create mode 100644 posts/7eb4319/index.html create mode 100644 posts/8ad10849/index.html create mode 100644 posts/8e1b39a3/index.html create mode 100644 posts/8f132c87/index.html create mode 100644 posts/92674965/index.html create mode 100644 posts/95bd9bb8/index.html create mode 100644 posts/97a1a73e/index.html create mode 100644 posts/ab8676cc/index.html create mode 100644 posts/b3d3143c/index.html create mode 100644 posts/bb5ce830/index.html create mode 100644 posts/bff2b1a/index.html create mode 100644 posts/c2e7460a/index.html create mode 100644 posts/c9c6cb4f/index.html create mode 100644 posts/d29e300c/index.html create mode 100644 posts/d4140423/index.html create mode 100644 posts/d9bb8734/index.html create mode 100644 posts/da7075f0/index.html create mode 100644 posts/e84bad58/index.html create mode 100644 posts/e8587b82/index.html create mode 100644 posts/e8ce405d/index.html create mode 100644 posts/e9c784c5/index.html create mode 100644 posts/ec8c9790/index.html create mode 100644 posts/f0f71147/index.html create mode 100644 posts/fab451a5/index.html create mode 100644 robots.txt create mode 100644 rss2.xml create mode 100644 sitemap.xml create mode 100644 sw.js create mode 100644 sw.origin.js create mode 100644 tags/AI/index.html create mode 100644 tags/English/index.html create mode 100644 tags/GitHub-Action/index.html create mode 100644 tags/GitHub/index.html create mode 100644 tags/Hexo/index.html create mode 100644 tags/Picgo/index.html create mode 100644 "tags/U\347\233\230/index.html" create mode 100644 tags/adb/index.html create mode 100644 tags/awtrix/index.html create mode 100644 tags/c/index.html create mode 100644 tags/css/index.html create mode 100644 tags/github/index.html create mode 100644 tags/html/index.html create mode 100644 tags/index.html create mode 100644 tags/javascript/index.html create mode 100644 tags/memos/index.html create mode 100644 tags/phigros/index.html create mode 100644 "tags/s3\346\241\266/index.html" create mode 100644 tags/sai/index.html create mode 100644 tags/vps/index.html create mode 100644 "tags/\344\270\252\344\272\272/index.html" create mode 100644 "tags/\344\274\230\345\214\226/index.html" create mode 100644 "tags/\344\275\234\346\226\207/index.html" create mode 100644 "tags/\345\211\215\347\253\257/index.html" create mode 100644 "tags/\345\214\226\345\255\246/index.html" create mode 100644 "tags/\345\220\210\345\224\261/index.html" create mode 100644 "tags/\345\221\250\350\276\271/index.html" create mode 100644 "tags/\345\244\215\347\216\260/index.html" create mode 100644 "tags/\345\255\246\344\271\240/index.html" create mode 100644 "tags/\345\255\246\347\224\237/index.html" create mode 100644 "tags/\345\256\211\345\215\223/index.html" create mode 100644 "tags/\345\274\200\346\272\220\350\275\257\344\273\266/index.html" create mode 100644 "tags/\345\274\200\347\256\261/index.html" create mode 100644 "tags/\346\200\273\347\273\223/index.html" create mode 100644 "tags/\346\211\213\346\234\272/index.html" create mode 100644 "tags/\346\211\213\347\273\230/index.html" create mode 100644 "tags/\346\225\231\347\250\213/index.html" create mode 100644 "tags/\346\225\260\345\255\246/index.html" create mode 100644 "tags/\346\226\207\345\255\246/index.html" create mode 100644 "tags/\346\227\205\350\241\214/index.html" create mode 100644 "tags/\346\227\245\345\270\270/index.html" create mode 100644 "tags/\346\274\224\350\256\262\347\250\277/index.html" create mode 100644 "tags/\347\211\272\347\211\262/index.html" create mode 100644 "tags/\347\224\237\346\227\245/index.html" create mode 100644 "tags/\347\224\265\345\255\220\351\202\256\344\273\266/index.html" create mode 100644 "tags/\347\224\265\345\275\261/index.html" create mode 100644 "tags/\347\224\273\347\224\273/index.html" create mode 100644 "tags/\347\231\275\345\253\226/index.html" create mode 100644 "tags/\347\237\255\346\226\207/index.html" create mode 100644 "tags/\347\241\254\344\273\266/index.html" create mode 100644 "tags/\347\246\217\345\210\251/index.html" create mode 100644 "tags/\347\247\221\346\212\200/index.html" create mode 100644 "tags/\347\256\227\346\263\225/index.html" create mode 100644 "tags/\347\264\240\346\235\220/index.html" create mode 100644 "tags/\347\272\257\350\213\261\346\226\207/index.html" create mode 100644 "tags/\347\274\226\347\250\213/index.html" create mode 100644 "tags/\347\274\226\347\250\213/page/2/index.html" create mode 100644 "tags/\347\275\221\347\253\231/index.html" create mode 100644 "tags/\350\200\203\350\257\225/index.html" create mode 100644 "tags/\350\207\252\345\212\250\345\214\226/index.html" create mode 100644 "tags/\350\231\232\346\213\237\344\270\273\346\234\272/index.html" create mode 100644 "tags/\350\256\241\347\256\227\346\234\272/index.html" create mode 100644 "tags/\350\256\241\347\256\227\346\234\272/page/2/index.html" create mode 100644 "tags/\350\256\256\350\256\272\346\226\207/index.html" create mode 100644 "tags/\350\257\264\350\257\264/index.html" create mode 100644 "tags/\350\257\273\345\220\216\346\204\237/index.html" create mode 100644 "tags/\350\276\251\350\256\272/index.html" create mode 100644 "tags/\351\237\263\344\271\220/index.html" create mode 100644 "tags/\351\270\277\350\222\231/index.html" create mode 100644 talk/index.html create mode 100644 xml/local-search.xml diff --git a/404.html b/404.html new file mode 100644 index 000000000..a3255a951 --- /dev/null +++ b/404.html @@ -0,0 +1,3 @@ +页面不存在 - 序炁的博客 + +
\ No newline at end of file diff --git a/a56dbb5fb9eece42c64a6a1dc726c83f.txt b/a56dbb5fb9eece42c64a6a1dc726c83f.txt new file mode 100644 index 000000000..d8f16c1be --- /dev/null +++ b/a56dbb5fb9eece42c64a6a1dc726c83f.txt @@ -0,0 +1 @@ +e84e0493c17b89890d57ee09c01e2a4f51e9c6fc \ No newline at end of file diff --git a/about/index.html b/about/index.html new file mode 100644 index 000000000..378f1f298 --- /dev/null +++ b/about/index.html @@ -0,0 +1,3 @@ +关于 - 序炁的博客 + +
avatar
序炁
苦逼高一学生,热爱编程,正在努力备战高考与CSP-S
Or......
A dragon that born in the Order and Chaos.

👨‍💻 关于我

  • ⚧️性别:男
  • 🕯️年龄:猜 15 岁
  • 🏡常住地:武汉
  • 💕爱好:编程, 音game
  • 🏆成就:CSP-J2022一轮(二轮未举行)湖北省前25名等
  • 🚩阵营:绝对中立[24倾向]

💬 状态

  • 🔭现阶段目标:高一啦!还是要继续加油呀!
  • 🌱课外学习:正在学习C++,争取在CSP-S中取得好成绩!
  • 🎮游戏:玩Minecraft, Phigros, Arcaea, 原神Adofai等.
  • 🤔交流:如果你在信奥方面有经验,一起欢迎探讨!

📫 联系方式

关于博客

以上未列举全部信息,仅为主要部分
本站所有言论均与国家、政治、人民无关,且全部为个人观点。本站只是个人博客,故而请部分有心人绕道而行,谢谢。

© 版权

本博客所有文章除特别声明外,均采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议 ,转载请注明出处!

鸣谢

感谢以上所有 项目/公司/个人 的奉献!
本站的建设成就来源于许多项目的支持,难以统计,故定然会有些许疏漏,请各位见谅。

1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>

int watch() {
std::cout<<"看完了吗?看完就滚!"<<std::endl; //滑稽护体
std::cout<<"什么?你还在看?!"<<std::endl;
return 0; //强行结束 //滑稽
}

int main() {
watch();
std::cout<<"See you NEXT TIME!"<<std::endl;
return 0; //886
}
\ No newline at end of file diff --git a/archives/2020/12/index.html b/archives/2020/12/index.html new file mode 100644 index 000000000..64288804e --- /dev/null +++ b/archives/2020/12/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2020/index.html b/archives/2020/index.html new file mode 100644 index 000000000..41d262c55 --- /dev/null +++ b/archives/2020/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..608a9558a --- /dev/null +++ b/archives/2021/03/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +

共计 44 篇文章


2021

About Food
\ 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 000000000..d5d1af242 --- /dev/null +++ b/archives/2021/04/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..c40833a7e --- /dev/null +++ b/archives/2021/06/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..379a17470 --- /dev/null +++ b/archives/2021/07/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +

共计 44 篇文章


2021

《四世同堂》读后感
\ 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 000000000..2b16624e0 --- /dev/null +++ b/archives/2021/12/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2021/index.html b/archives/2021/index.html new file mode 100644 index 000000000..b680547ae --- /dev/null +++ b/archives/2021/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..7811fb37a --- /dev/null +++ b/archives/2022/01/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +

共计 44 篇文章


2022

自主学习
\ 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 000000000..a6ed6b8fc --- /dev/null +++ b/archives/2022/04/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +

共计 44 篇文章


2022

C++ 数组实现队列
\ 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 000000000..cfefcc9d9 --- /dev/null +++ b/archives/2022/05/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..bed859214 --- /dev/null +++ b/archives/2022/06/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..8232be637 --- /dev/null +++ b/archives/2022/07/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2022/08/index.html b/archives/2022/08/index.html new file mode 100644 index 000000000..a1c6ad903 --- /dev/null +++ b/archives/2022/08/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2022/09/index.html b/archives/2022/09/index.html new file mode 100644 index 000000000..3a5d5c2f2 --- /dev/null +++ b/archives/2022/09/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..70e2c3ed6 --- /dev/null +++ b/archives/2022/11/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2022/index.html b/archives/2022/index.html new file mode 100644 index 000000000..bbd4fe8e6 --- /dev/null +++ b/archives/2022/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..d581d7a32 --- /dev/null +++ b/archives/2022/page/2/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2023/01/index.html b/archives/2023/01/index.html new file mode 100644 index 000000000..a739ac95e --- /dev/null +++ b/archives/2023/01/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2023/03/index.html b/archives/2023/03/index.html new file mode 100644 index 000000000..f837d5f7d --- /dev/null +++ b/archives/2023/03/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +

共计 44 篇文章


2023

迟来的二月调考总结
\ 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 000000000..4f6d700b7 --- /dev/null +++ b/archives/2023/04/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..a6959ee01 --- /dev/null +++ b/archives/2023/07/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2023/08/index.html b/archives/2023/08/index.html new file mode 100644 index 000000000..7ed44ffbf --- /dev/null +++ b/archives/2023/08/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2023/index.html b/archives/2023/index.html new file mode 100644 index 000000000..81f072d67 --- /dev/null +++ b/archives/2023/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2024/02/index.html b/archives/2024/02/index.html new file mode 100644 index 000000000..f03e15110 --- /dev/null +++ b/archives/2024/02/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 000000000..23c87ed7f --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 000000000..f104055d1 --- /dev/null +++ b/archives/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..812893ebc --- /dev/null +++ b/archives/page/2/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ 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 000000000..a11f74d01 --- /dev/null +++ b/archives/page/3/index.html @@ -0,0 +1,3 @@ +归档 - 序炁的博客 + +
\ No newline at end of file diff --git a/atom.xml b/atom.xml new file mode 100644 index 000000000..d1640c1de --- /dev/null +++ b/atom.xml @@ -0,0 +1,597 @@ + + + 序炁的博客 + + + + + + 2024-02-09T18:52:38.000Z + https://www.ordchaos.com/ + + + 序炁 + + + + Hexo + + + 使用Github Action定时重启邮件服务 + + https://www.ordchaos.com/posts/e9c784c5/ + 2024-02-09T18:52:38.000Z + 2024-02-09T18:52:38.000Z + + 主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。

情景引入

邮件服务器性能羸弱,无法胜任设置定时任务这样的重担,所以只能用一些盘外招试试了。

设置 Action

那么首先,本着轻量化的原则,新建一个仓库拿来干这种事:

然后切到Action页面:

选择新建一个空白模板:

修改Action名称、内容并设置定时,参考我的:

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
# This is a basic workflow to help you get started with Actions

name: REMX

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
schedule:
- cron: "0 20 * * *"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout Codes
uses: actions/checkout@v3

- name: Restart MX Service
uses: garygrossgarten/github-action-ssh@release
with:
command: ./restart.sh
host: ${{ secrets.HOST }}
username: root
password: ${{ secrets.PASSWORD }}

- name: Finish
run: echo "Action Finish"

SSH相关配置自行查看官方文档

保存,然后去设置Secret:

分别设置服务器地址、密码等即可:

大功告成!

结语

上高中之后就没写博文了……

除夕赶出一篇博文,祝新年快乐!!!

也迟来的祝博客两周年快乐!!!

]]>
+ + + <p>主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。</p> + + + + + + + + + + + + + + +
+ + + 年中总结,及进16岁生贺 + + https://www.ordchaos.com/posts/95bd9bb8/ + 2023-08-24T17:28:53.000Z + 2023-08-24T17:28:53.000Z + + 又是一年生日了,回想上次生日,好像还是在上次一样,那时还是在初三开学前的补课。补课放学的很早,五点就回家了。当时在超市里买了一根价值14块大洋的钟薛糕……

说起来真的像是发生在昨天。

1~2月

经过了疫情的洗礼,九年级下学期的开学总算是如期而至,但紧随而来便是对二月调考的紧张。原本武汉是只有元调、四调的,不过由于众所周知的疫情因素,元调从原定的1月4号挪到了2月21号。让我们过了一个安心的元旦和一个安心的寒假。

但该来的还是要来,二调总归也是调考,压迫感并未消失,只是转移到了一个月后。故而新学期伊始,我们就全身心投入到了复习之中。那时我的心里总会浮现出七年级刚开学时班主任在班里说的话,她告诉我们三年很短,元调很重要。初听不知话中意,而现在,已为语中人。

二调的成绩中规中矩吧,523分(523/600),随后便立下了四调要进步15分的目标。但那时我还不知道,这个目标永远没有机会达成了。

3~4月

二调完了就是四调,没什么可说的,该复习复习,该上新课上新课。伴随着一本又一本教材被翻至最后一课、最后一面,初中即将毕业的感受才开始从心中滋生。不论是Graduation还是“从这里出发”,课本中的一句句话,一段段文章都正提醒着我们即将分别的事实。

四调成绩说实话,很不好,只有508。以至于我的母亲对我这个分数不抱什么期望了,也便没有如同二调结束后那样跑前跑后地签各种约。也正因如此,已然退休的她只能在家里独自心焦,这是我的问题。

5~6月

五月有各个区自己的五调,六月便是全武汉市的中考。志愿早在五月九日便截至提交,在此之前,我终于说服了我的父母为我填写武钢三中为第一志愿。“说服”,无奈的选择,毕竟要说二调成绩勉强足够的话,四调成绩面对钢三简直就是依托答辩。但我仍然坚定的选择了这条路,算是对自己的压迫吧,同时也伴随着一股气,一股不服输的精神。

五调前举行了理化生实验考试,和八年级的地理生物一样,采用机考的形式。没什么难度,几乎全班满分通过,只有3人被扣了1分。加上由于疫情取消的体育中考,近乎就是给每个人送了80分。

六月初,抽了一个上午,我们全班在学校里拍了毕业照。学校不大,很快就走遍了整个校园。伴随着感慨,拍完室外照后回班,我们齐心协力在十分钟内办好了一面黑板报。站在黑板报前,我们拍了最后的几张照片。

中考日以前,最后一个在校日,是一个周六。老师在上午或看自习,或做最后的查漏补缺。而下午,老师开了一场动员会,给每个人发了一块粽子玩偶。既代表端午将临,亦有一举高中之意。一场班会结束,打扫完教室,离开学校,颇有一种或解脱、或不舍的情愫。

中考前一天,周一,下午我便前往了考点处。每个文化课老师都在考点门口,为我们一张张派发着准考证。面对那一句句叮嘱,我明白,不能当做是像以前那样的老生常谈了。

中考结束的那一天,考完历史道法的上午。连续更改了两道选择题的我放下了手中的笔,一根根地把中性笔、2B铅笔、涂卡笔以及橡皮擦、垫板、准考证装入了文具袋。走回休息室,再和全班同学及老师走出了考场。此时此刻,心中只有解脱,无暇再顾及其它。

随后就是毕业旅行了,很愉快的出行经历,也为初中三年画上了一个圆满的句号。

7~8月

七月一号一早,昨天刚从青岛回到家的我点进了武汉招考网,惊心动魄的输入姓名、报名号和身份证号。按下蓝色按钮的那一刻,时间仿佛凝滞。好在接下来引入眼帘的数字令我终于放下了心,614分(614/680),是我最高的一次了。

毫无疑问的被钢三录取,之后是钢三的夏令营,一直到七月二十一。食堂很美味,与同学相处得很愉快,校园环境很好,近乎无可挑剔了。

八月,很放松的一个月,这个月一直在玩master duel和原神,开始了摆烂状态(笑)

直到今天,我的生日为止,一切都很放松。

未来……

马上就是钢三的军训了,再之后就是开学,祝我一路顺利吧!

也希望三年后的暑假能像现在一样无忧无虑。

Happy Birthday for Me!

顺便晒一下毕业纪念册!

]]>
+ + + 与初中生活告别,迈入新的人生阶段 + + + + + + + + + + + + +
+ + + 数字生命卡开箱——来自《流浪地球II》 + + https://www.ordchaos.com/posts/b3d3143c/ + 2023-07-23T16:00:58.000Z + 2023-07-23T16:00:58.000Z + + 过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!

《流浪地球II》的官方周边产品大部分都是赛凡做的。怎么说呢……我买的数字生命卡是第二批,看到很多第一批的都有程度不一的瑕疵。不过我这个就还好,没有什么大问题,看来还是有在改进运输和包装质量。

到手差不多就是这么些东西:

其它周边什么的就不多说了,重头戏还是数字生命卡。

数字生命卡

只说外观的话,看起来金属感不是很强,喷个漆观感应该会好一些,但我不会(

别的道具倒是挺还原的,比如说袋子。

别的也没什么可说的了,毕竟这也就是一个128G的U盘和一个读卡器而已。

其它

不说什么了,放几张图吧。

题外话

不是很好评价赛凡的产品了……

我只能说我能接受这个做工,但的确,赛凡的破事很难让我提起好感。

就这样,886!

]]>
+ + + <p>过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!</p> + + + + + + + + + + + + + + + + +
+ + + 文章AI摘要?太酷啦! + + https://www.ordchaos.com/posts/ec8c9790/ + 2023-07-06T16:05:00.000Z + 2023-07-06T16:05:00.000Z + + 看了HEO的如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要,甚是手痒……整一个!

前情提要

的确,我可以直接把HEO现成的部署方案拿来用,但我是一个有追求的人(雾。事实上,直接使用这种解决方案得到的摘要栏与我博客的设计风格并不是很搭,这就要求我自己写一个前端后端是不可能的,这辈子也不可能的

好,开干!但首先,第一个问题出现了:我博客的设计风格本身就不太统一。首页的说说轮播和说说页面的数量统计用了fluid主题自带的info,而友链朋友圈页面又没有,直接使用了圆角矩形承载统计信息。

为了解决这个问题,我需要用一样东西代替info标签。经过再三深思熟虑,我选用圆角矩形统一替换info.

而后便有了枯燥的漫长(?)css编写时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
div.ocxqntcontainer {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
}

div.ocxqnt {
    border: 1px solid #e9e9e9;
    border-radius: 1rem;
    padding: 1rem;
    text-align: left;
    width: 100%;
}

span.memos-t {
    margin: 0 1rem;
}

就这样,圆角矩形大功告成。

摘要部署

现在这个步骤就变得很简单了,对于我用的fluid主题,编辑layout/post.ejs即可,在article标签中,类为markdown-bodydiv标签之前加入以下内容:

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
<style>
i.icon-ordchaos-blog-robot, span.ocxq-ai-title {
font-weight: bold;
font-size: 1.2em;
}

span.ocxq-ai-warn {
font-weight: bold;
}

.ocxq-ai-text.typing::after {
content: "_";
margin-left: 2px;
animation: blink 0.7s infinite;
}

@keyframes blink {
50% {
opacity: 0;
}
}
</style>
<script>
let tianliGPT_postSelector = '#board .post-content .markdown-body';
let tianliGPT_key = '5Q5mpqRK5DkwT1X9Gi5e';
</script>
<div class="ocxqntcontainer">
<div class="ocxqnt">
<span id='memos-t'>
<i class="iconfont icon-ordchaos-blog-robot"></i><span id="memos-index-space"> </span><span class="ocxq-ai-title">AI摘要</span>
<br>
<span class="ocxq-ai-text">
生成中...
</span>
<br>
<span class="ocxq-ai-warn">摘要由AI自动生成,仅供参考!</span>
</span>
</div>
</div>
<br>

<!--正文部分-->

<script src="https://www.ordchaos.com/js/aisummary.js"></script>

这里有几个问题:

  • 为什么内容在idmemos-tspan标签中:因为它同样套用了刚刚写好的圆角矩形,而这个圆角矩形为了适配原有的memos说说而要求内部文字必须拥有memos-tid.
  • iconfont icon-ordchaos-blog-robot是什么图标:我在iconfont.cn中取用的,因为加入了我的图标库所以拥有图标库前缀icon-ordchaos-blog,若也想选用的话可以直接在iconfont.cn搜索关键词robot找到并添加到自己的图标库
  • 为什么不把样式代码写到css里面去:我懒

最后在文件的末尾处加上对js文件的引用。

说到js,由于HEO提供的js文件中含有生成前端容器的部分,所以必须要删除这部分内容并对其做出部分修改。过程这里就不放了,实在看不懂的可以参考我改好的被压缩了怎么看啊自己想办法

而后去爱发电订阅TianliGPT并将api key填入即可。

效果

题外话

最开始因为不想写css而拖了好久……最终因为实在眼馋,欲望盖过了懒病才动身做完。

话说我这样改别人写好的js应该没问题吧……

那就这样,886!

]]>
+ + + <p>看了HEO的<a href="https://blog.zhheo.com/p/ec57d8b2.html">如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要</a>,甚是手痒……整一个!</p> + + + + + + + + + + + + + + + + + + + + +
+ + + 哇!是毕业旅行! + + https://www.ordchaos.com/posts/c2e7460a/ + 2023-07-01T16:17:37.000Z + 2023-07-01T16:17:37.000Z + + 初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!

前情提要

武汉今年中考在六月的二十、二十一、二十二号总共三天,考完以后休息放纵两日后,我们全班便踏上了高铁前往青岛。

怎么说呢……说是六天五夜,但武汉与青岛之间的高铁要坐8小时,所以第一天和最后一天都相当于是在高铁上玩一天手机(雾

Day 1 & 2

我们在武汉站登车,高铁从上午十一点一直开到了晚上七点。好在酒店离高铁站很近,走路也就5分钟路程,所以我们就前往了酒店开房。

该说不说,4个人挤双人房的安排是有点逆天的。就算我们没意见,酒店也没意见?!

第二天起来吃了早饭之后我们便走路前往了海边,很近,不过不是海滩。拍了几张照,早上天气真的很差,本来是小雨的天气,结果雨越来越大,风也越来越强。但过了一会天又晴了……

然后就是非常晒人。

下午乘坐青岛地铁去了中山公园附近的沙滩。只能说不愧是夏天,晚上五六点仍然晴空万里。

玩水玩得非常开心,不过也仅限于在海水中跑一跑了。毕竟我可不想和部分其他同学一样弄得浑身湿透。

请同学拍了两张照!

Day 3

走路去了圣弥勒尔大教堂,不过也没进去,就是在外面拍了几张照。

风景很不错,宝宝喜欢妈妈爱。

以及本来还以为会碰到什么传教士什么的,然后我就能回一句”我信铂金龙神巴哈姆特“(大雾,结果没有。

然后就去了老舍故居,看到了《骆驼祥子》相关的很多文物(?)。得亏武汉今年考的是《钢铁是怎样炼成的》,不是《骆驼祥子》,没有被祥子一车创si

然后就是坐地铁回酒店了,这次是从人民会堂到青岛站。

下午去坐船了,不大不小的船。

我只想说,快艇我不晕,轮船我不晕,所以就是这种两者之间的会晕是吗!!!

下午天气很不好,在海上飘着,外面还下大雨,甚至打雷……

坐了四小时,而后从原港口下了船,感觉像是自找了四小时的罪受,艹。

回酒店后第一时间点了外卖,不然真感觉要吐了。

Day 4

又是地铁!这几天地铁成了我们唯一的陆上交通工具,别的旅行团都会有大巴什么的,我们没有,我们就是坐地铁(

还是人民会堂站下车,这次我们去了小青岛公园。公园环境很好,玩得很开心,甚至还去看了鱼雷洞。

以及走的时候发现了一条绿意盎然的楼梯,拍了张照,很好看(

下午坐一号线去了台东,去了步行街吃晚饭。

兴致突然起来了,和同学一起买了地铁票进站而非使用手机app. 运气挺好,买到了不一样样式的单程票。

下车之后全班就直接分组分头行动了。穿梭于人来人往的小吃摊中,感受到烟火气的缭绕,对于一个忙碌了一整年的初三学生来说实在是太酷啦!

买了铁板豆腐、臭豆腐、鱿鱼和青岛啤酒,香的嘞。

然后去了五四广场,再之后就又回了酒店。

Day 5

又去了海边,不过是坐地铁去的,三号线转二号线。

所以又收集(?)到了两款不一样的地铁票。

还有在五四广场同站换乘。

说实话,天气真的不好,海边景色这几天也看腻了(

浅浅拍了几张照之后就坐地铁回去了,以及又收集到了一种地铁票。

下午老师组织看电影,一起看了端午档的《消失的她》

悬疑片嘛……不是很和我胃口,但是观感还不错。

然后就是吃完饭。老师给了每人80的预算,让分组一起吃晚饭,我就和另外三个同学一起去了海底捞。

第一次去海底捞,服务很好,很符合我的期待,价格也正常,不算很贵,起码没超预算。

点了两个菌菇和麻辣两个汤底,味道就很正常,跟我家里和父母一起煮的火锅差不多。

最后还送了一份面条,海底捞真的,我哭死(大雾

师傅的手艺很好,观赏性十足,爱了爱了。

随便贴几张图吧:

Day 6

早起前往高铁站,赶十点的高铁。

天气阴了这么多天,结果偏偏走的时候才好,我的评价是,6.

坐的复兴号高铁,不过站台另一侧有一辆绿皮火车,于是拍了一张个人觉得很好看的照片:

然后又是玩了一天手机……

最后,晚上6点,回到武汉,与老师同学告别后回到了家,结束了这一场旅行。

题外话

生活记录型的博文,尤其是这么长的,我还是第一次写,有什么不足请多多海涵!

什么?你问中考?

请观阅以下内容:

你说的对,但是《中考》是由武汉教育局自主研发的一款「互联网时代」全新开放世界冒险游戏。游戏发生在一个被称作「HappyPark」的幻想公园,在这里,被「往上提的溢水杯」选中的人将被授予「0.797g沉淀」,导引「两种酸」之力。你将扮演一位名为「有两块抹布的直径0.3m的扫地机器人」的神秘角色,在面积27m2的秘鲁考古遗址中邂逅的紫甘蓝味软糖,和百万年前出士的bright flowers化石一起,找回「简练明快,势巧形密」的家书同时,感受「尽责地爱」,且逐步发掘「点P过定线」的真相。

怎么说呢,今年的题真的很创人。

所以……考的差一点也不要紧啦,哈哈……

···

啊?你真以为我考砸了?

886!

]]>
+ + + <p>初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!</p> + + + + + + + + + + +
+ + + 前、后与中——表达式求值 + + https://www.ordchaos.com/posts/c9c6cb4f/ + 2023-04-02T10:09:31.000Z + 2023-04-03T09:32:31.000Z + + 记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi

如果你不知道这些表达式分别指什么东西,可以百度一下,这里不再赘述。

后缀表达式

这个应该是最常见的了,下面讲一下实现。

首先,还是定义函数废话

1
2
3
int main() {
//...
}

然后,进行文件读取,可以用freopen(),不过我这里用的是fopen()

1
2
3
4
5
6
7
8
9
10
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100]; //temp
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

//...
}

解释一下上面的程序:

  • stack<double> nums 这个栈后面会用到,这里先不用管
  • fscanf()scanf()用法一样,唯一的区别是fscanf()用于读取文件流中的信息而非输入流
  • feof()中的参数为文件流,用于判断是否读到结尾,读到则返回真

很显然,这段程序用于分别读入每一段字符,那么接下来便是判断输入了。

代码如下:

1
2
3
4
5
6
7
8
9
10
while(true) {
//...

if(isdigit(input[0])) {
nums.push(atof(input.c_cstr()));
}
else {
//...
}
}

如果输入为整数,则进入数字栈,否则开始计算。

这里使用了isdigit()函数,输入为char类型,用于判断参数是否在'0''9'之间。

计算过程很简单,弹出两个数字栈中的数,根据运算符计算即可:

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
//...
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();

double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}

尤其要注意减法与除法的操作数与被操作数顺序,毕竟它们可没有交换律。

此时已经计算完成,结果作为栈中唯一的元素处在栈顶,直接输出即可:

1
2
3
4
fclose(stream); //关文件是一个好习惯
cout<<nums.top()<<endl;

return 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main() {
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;
if(is_num(input)) {
nums.push(atof(input.c_str()));
}
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}
nums.push(temp);
}
}
fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

输入样例:

1
1 2 + 3 - 

输出样例:

1
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
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<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main(){
FILE* stream = fopen("input.txt", "r");

stack<double> nums;
vector<string> input; //存储读取数据
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
input.push_back(string(tstr));
}

for(int i = input.size() - 1;i >= 0;i--) { //倒序读取
if(is_num(input[i])) {
nums.push(atof(input[i].c_str()));
}
else {
double x = nums.top();
nums.pop();
double y = nums.top();
nums.pop();

double temp;
switch(input[i][0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}
}

fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

改成倒序读取即可。

输入样例:

1
- + 1 2 3 

输出样例:

1
0

中缀表达式

我们最常用的表达式,处理起来却是最复杂的,因为现在需要考虑优先级与括号了。

这里有几种方法:

递归

首先,定义函数用于取多项式的因子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int factor() {
int res = 0;
char c = cin.peek();
if(c == '(') {
cin.get();
res = expression();
cin.get();
}
else {
while(isdigit(c)) {
res = 10 * res + c - '0';
cin.get();
c = cin.peek();
}
}
return res;
}

先定义结果为0,然后判断输入。若为括号,则将其内容视为新表达式,交由马上要定义的expression()函数计算。否则,按位取出输入中的数即可。

顺带一提,这些代码中的cin.get()cin.peek()尤其重要,切勿移动位置或轻易替换。至于原因,自己模拟想一下吧。

然后,计算单项式的值,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int term() {
int res = factor();
while(true) {
char mark = cin.peek();
if(mark == '*' || mark == '/') {
cin.get();
int v = factor();
if(mark == '*') res *= v;
else res /= v;
}
else break;
}
return res;
}

先用factor()函数读入因子,然后循环判断该单项式是否读完。若未读完(即该因子与下一个因子间仍用乘号或除号连接)则取下一个因子并计算,否则返回该单项式的值即可。并且很显然,这样的写法就代表输入的表达式中不应当含有任何空格,也只支持整数运算(要浮点数自己改我不干了)。

最后是整个表达式,与计算单项式基本一样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int expression() {
int res = term();
while(true) {
char mark = cin.peek();
if(mark == '+' || mark == '-') {
cin.get();
int v = term();
if(mark == '+') res += v;
else res -= v;
}
else break;
}
return res;
}

读入单项式再计算,直到该表达式计算完毕(即mark取到)EOF

主函数其实已经一目了然了,重定向输入再调用expression()即可,就不写了。

输入样例:

1
(28/7)/2+(8-9)

输出样例:

1
1

这里又分为两种方案:

转为后/前缀表达式再计算

这里的重点是转换的过程,逻辑整体如下(中缀->后缀):

  • 输入若为数字,直接放入输出表达式中。若为符号:
    • 如果符号栈为空,则放入符号栈中
    • 如果符号栈栈顶元素优先级大于等于该符号,则出栈栈顶符号放入表达式,若此时栈顶符号优先级大于等于该符号,则重复以上流程直至小于,而后入栈该符号
    • 如果符号栈栈顶元素优先级小于该符号,该符号入栈
    • 如果该符号为左括号,直接入栈
    • 如果该符号为右括号,则依次出栈符号栈栈顶元素放入表达式中,直至左括号。最后抛弃左括号与右括号
  • 若输入完毕,符号栈中仍有符号,则依次出栈放入表达式

代码如下(转为后缀表达式):

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
map<char, int> markl;

markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

FILE* stream = fopen("input.txt", "r");

stack<char> marks;
vector<string> expression;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

if(isdigit(input[0])) {
expression.push_back(input);
}
else if(input[0] == '(') {
marks.push('(');
}
else if(input[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
}
else {
if(marks.empty() || marks.top() == '(') {
marks.push(input[0]);
}
else if(markl[input[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
marks.push(input[0]);
}
else {
marks.push(input[0]);
}
}
}

while(!marks.empty()) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}

和上面的逻辑完全一样,唯一要注意的是这里使用了map,可以理解为字典。

然后只需要计算就行,代码就不放了。

前缀表达式的逻辑与代码可以自己想想。

输入输出样例同下面。

直接计算

逻辑和转换本身是一样的,只不过没有了表达式向量,而是直接计算后放入数字栈。

即将所有的对于expression的操作改为计算即可:

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
#include <bits/stdc++.h>
using namespace std;

double calc(char mark, double x, double y) {
double temp = 0;
switch(mark) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

return temp;
}

int main() {
FILE* stream = fopen("input.txt", "r");

map<char, int> markl;
markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

stack<char> marks;
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string temp = tstr;

if(isdigit(temp[0])) {
nums.push(atof(temp.c_str()));
}
else if(temp[0] == '(') {
marks.push('(');
}
else if(temp[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}

double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
}
else if(marks.empty() || marks.top() == '(') {
marks.push(temp[0]);
}
else if(markl[temp[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
marks.push(temp[0]);
}
else {
marks.push(temp[0]);
}
}

while(!marks.empty()) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}

fclose(stream);

cout<<nums.top()<<endl;
return 0;
}

输入样例:

1
( 28 / 7 ) / 2 + ( 8 - 9 ) 

输出样例:

1
1

收工!

题外话

这篇大概是我最长的纯原创技术类博文了。。。。。。

好累QAQ

下次再见啦!886!

2023.04.03更新

让ChatGPT改了一个支持浮点数的递归版本:

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void print_tab(int);
void print_log(string, int);
void print_log(string, int, double);
double expression(int);
double term(int);
double factor(int);

int main() {
freopen("input.txt", "r", stdin);
cout << expression(0) << endl;
return 0;
}

void print_tab(int deep) {
for(int i = 0;i < deep;i++) {
cout << "\t";
}
return;
}

void print_log(string name, int deep) {
print_tab(deep);
cout << name << " {" << endl;
return;
}

void print_log(string name, int deep, double res) {
print_tab(deep);
cout << "} -> res =" << res << endl;
return;
}

double expression(int deep) {
print_log("expression", deep);

double res = term(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '+' || mark == '-') {
cin.get(); //skip
double v = term(deep + 1);
if(mark == '+') res += v;
else res -= v;
}
else break;
}

print_log("expression", deep, res);

return res;
}

double term(int deep) {
print_log("term", deep);

double res = factor(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '*' || mark == '/') {
cin.get(); //skip
double v = factor(deep + 1);
if(mark == '*') res *= v;
else res /= v;
}
else break;
}

print_log("term", deep, res);

return res;
}

double factor(int deep) {
print_log("factor", deep);

double res = 0;
double base = 1.0;
char c = cin.peek(); //get
if(c == '(') {
cin.get(); //skip
res = expression(deep + 1);
cin.get(); //skip
}
else {
while(isdigit(c) || c == '.') { // == GET A NUMBER ==
if(c == '.') {
cin.get(); //skip the '.'
c = cin.peek(); //get the next character
while(isdigit(c)) { //collect digits for the decimal part
res = res + (c - '0') * (base /= 10.0);
cin.get();
c = cin.peek();
}
break;
}
res = res * 10 + c - '0'; //get num
cin.get(); //skip
c = cin.peek(); //get
}
}

print_tab(deep + 1);
cout << "get_num();" << endl;
print_log("factor", deep, res);

return res;
}

]]>
+ + + <p>记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi</p> + + + + + + + + + + + + + + +
+ + + 迟来的二月调考总结 + + https://www.ordchaos.com/posts/7eb4319/ + 2023-03-26T10:14:38.000Z + 2023-03-26T10:14:38.000Z + + 各位,好久不见,距离上次发文的时间过的有点久,其中最大的原因就是万恶的二月调考。现在已经考完一个多月了离四调也就一个月了,这里我来总结一下。

背景要素

以防不知道,本人生在武汉,学籍武汉,参加武汉的统一考试。武汉在九年级时会有几场全市统考,分别为九上的元月调考(期末)与九下的四月调考(期中)和中考(期末)。今年闹疫情,于是原定在一月四号的元调被挪到了二月二十一号(九下开头)。

武汉的中考在我这一届改革了,下面对比一下以往和之后的不同:

科目分数(前)分数(后)
语文120120
数学120120
英语120120
物理7070
化学5050
历史\60
道德与法治4060
实验030
体育3050
总分550680

详解:

  • 原本不考历史
  • 道德与法治原先只有选择题,现在新加入了材料题,分数构成为28分选择 + 32分材料。历史分数构成与其一样,且二者合卷
  • 实验考试以往不计分,为实操。现在为机考答卷,在120道题(40物理,40化学,40生物)中每个科目随机选10道题目作答,每题一分
  • 体育由30分改为50分,构成为15分平时 + 35分考试。本届由于新冠疫情的原因,取消体育中考(即所有人考试分数计为35)

二调情况

先明确二调的考试内容,为中考所有科目除去体育与实验(四调亦然)

分数不是很方便透露,大致说一下考试情况吧。说来惭愧,正正好好是语数英垮了(bushi

语文选择题眼瞎,错了两题。英语则是阅读理解B篇,神你以为我会说脏话吗?Live a colorful life,我真感觉不到这么大,真的。

总之就是很意难平。

好消息是化学满分,终于!

签约的话倒不是不能签,只能说是比上不足,比下有余余余余余…

总结

也没什么可说的,给自己加油吧。我是想打竞赛的,文化课成绩必然需要更上一层楼才行。

886!

(鬼知道下次什么时候更新)

]]>
+ + + 一些自己的话 + + + + + + + + + + + + +
+ + + 全站 webp 自动切换,加速访问好帮手 + + https://www.ordchaos.com/posts/23e22de2/ + 2023-01-12T09:42:10.000Z + 2024-02-12T12:10:48.472Z + + 原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。

前期准备

首要任务是拿到webp格式的图片,这个看自己。像我用的vps上的Lsky Pro,本地存储。有高性能vps可以试试用Webp-Server配合。但我的轻量应用承受不起,遂作罢。改为了定时shell脚本,一分钟触发一次:

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
#!/bin/bash

find . -type f -iname "*.png" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpeg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.tif" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

脚本运行时会遍历自己所在的文件夹及其子文件夹,转换所有没有对应webp格式的图片(pngjpgjpegtiff)为webp图片(原图还在,放心)。

这段脚本中使用了cwebp指令,它来源于libwebp。安装可以参考下方:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装编译器以及依赖包
yum install -y gcc make autoconf automake libtool libjpeg-devel libpng-devel
# 请到官网下载最新版本,版本列表:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz
# 解压
tar -zxvf libwebp-1.2.4.tar.gz
# 进入目录
cd libwebp-1.2.4
# 源代码安装环境检查
./configure
# 编译
make
# 安装
make install

安装过程中遇到问题请善用百度/Google,本人不对此负责(bushi

做好以上所有工作后,就可以开始下面的内容。

Service Worker

安装

不知道是什么、如何部署的,可以看看CYF大佬的这两篇文章:

如果你已经部署了Service Worker就可以继续了。

脚本

添加一个监听器,监听fetch事件:

1
2
3
self.addEventListener('fetch', async event => {
//...
});

(或者在本来的监听器里面加上)

然后判断流量是否是对图站的请求,可以用一个if来判断:

1
2
3
4
if(event.request.url.indexOf('your.image.site') !== -1) {
var requestUrl = event.request.url;
//...
}

event.request.url是请求的地址,用indexOf()方法来判断地址中是否包含图站地址,若不反回代表没有的-1即为是对图站的请求。

接下来判断浏览器是否支持webp图片,定义一个变量supportsWebp

1
2
3
4
5
6
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}

如果可以获取到浏览器的Accept头,且头中包含image/webp,即为支持webp,否则为不支持。

然后就可以进一步处理了,若浏览器支持webp,则进行下一步:

1
2
3
4
5
6
if (supportsWebp) {
//...
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}

然后获取请求的文件类型。最开始的脚本只支持pngjpgjpegtiff这四种格式的图片,所以我们也只能篡改这四种格式图片的请求到webp图片上:

1
2
3
4
5
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg') {
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
//...
}

newUrl中存储了新的请求地址,接下来对它发起请求即可:

1
2
3
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");

当请求完成并图片被完整下载以后,进行缓存,代码如下:

1
2
3
4
5
6
7
8
9
10
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);

若获取失败则提示,成功则缓存。

最后,要打断之前的请求,避免降低速度,可以调用event.stopImmediatePropagation()方法打断原始请求。

最后完整代码如下:

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
if(event.request.url.indexOf('img.ordchaos.com') !== -1) {
var requestUrl = event.request.url;
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}
if (supportsWebp) {
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg'){
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);
event.stopImmediatePropagation();
return;
}
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}
}

你学会了吗?

测试

进入网站,若一切正常,当加载到一张图片时,控制台(F12打开)会提示[SW] Redirect https://your.image.site/path/to/img.png to https://your.image.site/path/to/img.webp .这样的信息。

要测试无webp支持的情景,则点击右上角的三个点。

选择更多工具,找到“渲染”并点击。

勾选“停用webp”即可。

此时,加载图片时会提示[SW] Don't support webp image, skip https://your.image.site/path/to/img.png .

可以试试我这里的这张图片:

若浏览器支持webp则会显示Webp Accept!,否则为Webp Reject!This is a jpg file.

题外话

刚刚放寒假,舒坦。

但与之对应,九上已经结束,还有一学期就中考。。。

加油!我可以的!

那就这样,886!

]]>
+ + + <p>原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。</p> + + + + + + + + + + + + + + + + +
+ + + 自托管 E-mail ,宝宝喜欢妈妈爱 + + https://www.ordchaos.com/posts/3b90dbec/ + 2022-11-28T13:40:50.000Z + 2022-11-28T13:40:50.000Z + + 本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进https://qiye.aliyun.com登录。于是趁着黑色星期五RackNerd的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。

配置如下(年付$10.28)

硬件配置
CPU1核
RAM768MB
SSD10GB
流量1TB

还是比较磕碜的,不过价格在这,无所谓了。

经历

首先,我需要为vps开通rDNS记录到mx.ordchaos.com上。后台可以自主设置,很方便…

bang!

好,很好,我沉得住气。发个工单问一下:

工单截图

哦!原来如此!好的,继续交流后,rDNS设置成功,但然而我却发现无法访问?!一番探查之后,发现这样一个事实——被墙啦!

于是只得继续发工单:

终于搞定。

Mailu.io部署

设置主机名

在vps的bash中输入:

1
nano /etc/hosts

在其中具有服务器ip地址的一行中,将后面的内容改为(假设你的域名是example.com,服务器ip是88.88.88.88):

1
88.88.88.88    mx.example.com   mx

编辑好后,在vps中执行:

1
2
echo "mx" > /etc/hostname
hostname -F /etc/hostname

这样就设置好了主机名,可以通过hostname命令确认是否设置成功:

1
2
hostname
hostname -f

前者只会输出mx,后者则会输出mx.example.com。如果不是,那就是设置错了。

设置DNS解析

去你的域名DNS解析服务商,设置以下DNS解析(假设你的域名是example.com,服务器ip是88.88.88.88):

主机名解析类型内容
@A(如果已有解析就不管,没有就解析到127.0.0.1,注意不能有CNAME记录)
mxA88.88.88.88
@MXmx.example.com(优先级为10)
@TXTv=spf1 mx a:mx.example.com ~all
_dmarcTXTv=DMARC1; p=reject; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; adkim=s; aspf=s
example.com._report._dmarcTXTv=DMARC1

然后去vps服务商,设置rDNS(或者叫做PTR)解析,将88.88.88.88解析到mx.example.com

获取配置

访问Mailu.io的配置生成网页:https://setup.mailu.io

写文时最新版本为1.9,保持不变。下方部署方式选择Compose.

  • 1:在此处填写自己的域名

  • 2:自己起个名字(如“序炁的电子邮局”)

  • 3:若你的域名为example.com,则在此处填写https://mx.example.com

  • 4:点击勾选

  • 1:推荐选择rainloop,更加现代好看

  • 2:填写自己vps的ip地址

  • 3:若你的域名为example.com,则在此处填写mx.example.com

最后,你会看到如下界面:

照着界面的指示,回到vps执行指令:

1
2
mkdir /mailu
cd /mailu

然后回到刚刚的页面,下载配置文件:

1
2
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/docker-compose.yml
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/mailu.env

最后执行(假设你的域名是example.com,密码设置为PASSWORD):

1
2
docker-compose -p mailu up -d
docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD

就安装完成了。

配置

在浏览器中访问https://mx.example.com登录您的管理员面板:

管理员面板

使用账号admin@example.com和密码PASSWORD登录即可(假设你的域名是example.com,密码设置为PASSWORD)。

然后点击左侧的“邮件域”:

然后点击如下的按钮:

在新界面中点击“生成密钥”,然后复制dkim配置:

1
dkim._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

进行域名解析即可。

创建账号

邮件域>用户>添加用户,按需配置即可。

使用

退出管理员账号,访问https://mx.example.com/webmail,登录即可(选择“登录Webmail”)。

主页面

测试

MailTester上可以进行测试,如下是我测试结果:

很完美了,对吧(

以前没有超过8过

题外话

完成了很久以前的夙愿。

欢迎跟着做一遍哦!也欢迎提问!

]]>
+ + + <p>本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进<code>https://qiye.aliyun.com</code>登录。于是趁着黑色星期五<a href="https://racknerd.com/">RackNerd</a>的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。</p> + + + + + + + + + + + + + + + + +
+ + + 船新说说页面—— Memos 初体验 + + https://www.ordchaos.com/posts/3386e07f/ + 2022-11-26T12:42:15.000Z + 2022-11-26T12:42:15.000Z + + 博客的说说真的是一波三折…

最开始用的是HexoPlusPlus的说说,很好用也很流畅小巧,但是自Hpp停止开发后就用不了了。

然后改用了bber,也很不错,但是辣鸡腾讯云也是离谱,好好的羊毛突然就不让薅了,同时我的twikoo也被迫迁移到了vercel,只得抛弃。

中途也用过别的说说系统,比如说大名鼎鼎的Artitalk亦或者是iSpeak等等,但是都不太满意,而后因为各式各样的原因放弃。

本来我会一直被这玩意困扰…现在不会了!只因为我发现了它——Memos

开源,私有部署,这不就是我要的完美的说说系统吗?!

后端部署

很简单,首先你要有一台vps,然后装上docker.

随后一句指令即可搞定:

1
docker run -d --name memos -p 5230:5230 -v ${PWD}/.memos/:/var/opt/memos neosmemo/memos:latest

随后Memos就会被部署到5230端口,觉得不方便也可以反向代理,这个教程有很多,这里就不写了。

前端

单页

可以看看我的:说说

样式完全是自己写的…你知道对一位学C++的初三学生而言css是什么东西吗?!好吧随便写写也不算难

js来自immmmm,稍微改了一点点,可以在这里看看被压缩了根本看不了

总体而言,如果你也想要部署一个和我完全一样的页面,可以用以下html代码:(记得下载js文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class='memo-nums'>
<p class='note note-info memo-nums-text'>
共有 <span id='memonums'>「数待载之」</span> 条说说
</p>
</div>
<div id="bber"></div>
<script type="text/javascript">
var bbMemos = {
memos : 'https://memos.ordchaos.top/',//修改为自己部署Memos的网址,末尾有斜杠
limit : '',//默认每次显示10条
creatorId:'1' ,//默认为101用户
domId: '',//默认为bber类
}
</script>
<script src="//jsd.ordchaos.top/marked/marked.min.js"></script>
<script src="/js/talk.js"></script>

注意这里用了Tag插件,如果用不了记得改改。

首页轮播

这个就比较简单了,直接在主题的index.ejs里加上以下代码即可:

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
<p class='note note-info memo-nums-text'>
<i class="iconfont icon-speakernotes"></i><span id="memos-index-space"> </span><span id='memos-t'>首页说说轮播加载中...</span>
</p>
<script src="/js/lately.min.js"></script>
<script>
let jsonUrl =
"https://memos.ordchaos.top/api/memo?creatorId=1&rowStatus=NORMAL" +
"&t=" +
Date.parse(new Date());

fetch(jsonUrl)
.then((res) => res.json())
.then((resdata) => {
data = resdata.data,
resultIndexMemos = new Array(data.length);
for (var i = 0; i < data.length; i++) {
var talkTime = new Date(
data[i].createdTs * 1000
).toLocaleString();
var talkContent = data[i].content;
var newtalkContent = talkContent
.replace(/```([\s\S]*?)```[\s]*/g, " <code>$1</code> ") //全局匹配代码块
.replace(/`([\s\S ]*?)`[\s]*/g, " <code>$1</code> ") //全局匹配内联代码块
.replace(/<iframe([\s\S ]*?)iframe>[\s]*/g, "📺") //全局匹配视频
.replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g, "🌅") //全局匹配图片
.replace(/\[[\s\S]*?\]\([\s\S]*?\)/g, "🔗") //全局匹配连接
.replace(
/\bhttps?:\/\/(?!\S+(?:jpe?g|png|bmp|gif|webp|jfif|gif))\S+/g,
"🔗"
); //全局匹配纯文本连接
if(newtalkContent.length > 25) {
newtalkContent = newtalkContent.substring(0, 25) + '...';
}
resultIndexMemos[i] = `<span class="datetime">${talkTime}</span>: <a href="https://www.ordchaos.com/talk/">${newtalkContent}</a>`;
}
});

// 滚动效果
var i = 0;
setInterval(function () {
document.getElementById("memos-t").innerHTML = resultIndexMemos[i];
window.Lately && Lately.init({ target: ".datetime" });
i++;
if(i == resultIndexMemos.length) i = 0;
}, 3000);
</script>

Tag仍然是不能用就记得改。代码来自eallion,仍然是改了一下原本的逻辑怎么看怎么怪好吧也可能是我没看懂——总而言之,无意冒犯

javascript总算是好些那么一点点,起码与c++还有那么一点像,外加上自己写GDScript的经验,稍稍改点也不算难事改了一小时

效果

自己去看看不行吗,动动手指的事

说说页面

首页轮播

题外话

前前后后搞了半个月了,终于是在学习的闲暇时间整完,中途也是收获良多。

那就这样,886!

]]>
+ + + <p>博客的说说真的是一波三折…</p> + + + + + + + + + + + + + + + + + + + + +
+ + + Picgo ,我 ...... 我 ...... + + https://www.ordchaos.com/posts/28b74a2d/ + 2022-11-04T08:40:50.000Z + 2022-11-04T08:40:50.000Z + + 如题,我要被这个神仙软件气死了。

起因

准备装unity写个游戏,学一学C#,然后就发现C盘爆满飘红。用SpaceSniffer看了一下——好家伙!

Picgo的日志文件,占了我58.6GB.

解释

当Picgo上传图片失败时就会开始疯狂写日志,然后文件大小就爆炸。

解决

删掉日志,从组策略里设置一下日志文件大小限制就好了。

可以参考这个:如何在Windows10系统设置日志文件的最大大小

题外话

就离谱!!!

]]>
+ + + <p>如题,我要被这个神仙软件气死了。</p> + + + + + + + + + + + + + + +
+ + + + + https://www.ordchaos.com/posts/fab451a5/ + 2022-09-16T19:22:59.000Z + 2022-09-16T19:22:59.000Z + + 马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。

讲解

按照惯例哪里来的惯例,还是看一下堆是什么东西:

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

  • 堆中某个结点的值总是不大于或不小于其父结点的值;
  • 堆总是一棵完全二叉树。

将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。

——百度百科

很显然,为了储存堆,我们需要一棵完全二叉树。这里很多人就会想到建树,但其实不用。如果你看过我的学习笔记——二叉树的话,应该会记得完全二叉树的性质之一:

在有n个节点的完全二叉树中,对于编号为i的节点:

  • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
  • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
  • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

——序炁 学习笔记——二叉树

所以我们只需要一个数组就可以存储堆了:数组最开始填入根节点,其左右孩子节点便依次为其后面的两个下标,再往后就以此类推。

那么现在建立一个数据结构用来建堆,很简单,参照下列代码:

1
2
3
4
5
6
#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

对于每一个堆都申请一个MAXSIZE大小的数组用于存储,而后用length变量存储目前的总节点数即可。

那么如何初始化就显而易见,只需要

1
2
3
4
inline void init(myHeap &heap) {
heap.length = 0;
return;
}

像这样将length设为0就大功告成。

插入元素

如果要往一个堆里插入元素,那我们就要先确定这个堆是小根堆还是大根堆,下面的所有代码均默认是小根堆,大根堆自己改去自己想想吧。

首先,在堆末尾加入要插入的元素:

1
2
3
4
void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
//...
}

length永远指向数组中最后一个存储了数据的位置的下一个位置,所以在value[length]的位置存储数据,然后增加length即可。

但现在这个堆可能不满足小根堆的性质了,怎么办呢?很简单,进行调整即可。将新节点设为当前节点,如果它大于父节点则结束,若小于则交换,而后将交换后的父节点(没错,还是新插入的数据)设为当前节点,重复这个过程直到其大于父节点或其为根节点则结束。

听着有些复杂,但用while循环即可轻松实现:

1
2
3
4
5
6
7
8
9
void push(myHeap &heap, int v) {
//...
int now = length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

完事!

删除元素

删除元素即出队,会弹出根节点。故而这里的方法是把最后一个节点移到根节点的位置覆盖掉它,再进行调整。

覆盖很简单:

1
2
3
4
void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
//...
}

不要忘记将节点数减一即可。这里用了一个小技巧,本来要写成这样:

1
2
heap.value[0] = heap.value[heap.length - 1];
heap.length--;

竞赛常考之一,++ii++的区别。不要觉得没用,比如用在这里就非常合适。包括前面的

1
heap.value[heap.length++] = v;

也用了这个方法。

好了,言归正传,下一步是调整节点。显然,这一次需要从上往下调整:将根节点设为当前节点,与自己左右孩子中较小的一个比较,若小于则结束,否则与其交换位置并将当前节点设为交换好的孩子节点(一样指向同样的数据),重复这个过程直到当前节点为叶节点或当前节点小于自己任何一个孩子为止。

同样,上代码:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myHeap &heap) {
//...
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

需要额外注意的是对当前节点是否为叶节点以及是否拥有右孩子的判断,避免因失误导致数据溢出。

应用

其实堆的操作也只有插入与删除,不过就是这么简单的东西也可以玩出不同的花样,下面是两个例子。

洛谷 P1090 NOIP2004 提高组 合并果子

原题链接:洛谷 P1090 NOIP2004 提高组 合并果子

题目描述

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为1,2,9. 可以先将1、2堆合并,新堆数目为3,耗费体力为3. 接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力为3+12=15。可以证明15为最小的体力耗费值。

输入格式

共两行。

第一行是一个整数n(1≤n≤10000),表示果子的种类数。

第二行包含n个整数,用空格分隔,第i个整数ai(1≤ai≤20000)是第i种果子的数目。

输出格式

一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231.

输入输出样例

输入

1
2
3
1 2 9

输出

1
15
分析

简单的贪心算法,每次从所有果子中取两堆数量最小的合并,然后放回去即可。

不一定非要用堆,不过如果只是简单的排序的话会超时。不过你同样也可以用优先队列,或者看看洛谷上那些神犇的题解。

我的方法很简单,只需要建堆,然后从堆中取两个最小值(即小根堆堆顶元素)相加再插回去,直到只剩一个元素即可。其中每一次合并时用一个变量累计总体力,最后输出就行了。

代码如下:

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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
int now = heap.length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

inline int get(myHeap heap) {
return heap.value[0];
}

int getPop(myHeap &heap) {
int temp = get(heap);
pop(heap);
return temp;
}

int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
int power = 0;
while(test.length != 1) {
int quick[2] = {getPop(test), getPop(test)};
power += quick[0] + quick[1];
push(test, quick[0] + quick[1]);
}
cout<<power<<endl;
return 0;
}

其中get函数用于返回堆顶元素,不要也可以,毕竟很简单。

对于这一题是可以AC的,没有问题。

堆排序

既然小根堆的堆顶元素永远最小,那么只要每次都取出堆顶元素直到堆为空不就可以排序了吗?没错,这就是堆排序,时间复杂度为O(nlogn),十分优秀。

代码我就不讲了,自己看吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//...
int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
for(int i = 0; i < n; i++) cout<<getPop(test)<<" ";
cout<<endl;
return 0;
}

数据量大的时候可以考虑堆排序,因为堆排序的耗时主要在建堆上,建好堆后的调整实际上非常快。

题外话

终于写完了…写了我整整三小时啊!

明天大概也许会有一篇关于图的,以及一篇关于类的。

886!

]]>
+ + + <p>马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。</p> + + + + + + + + + + + + +
+ + + 在线写作与博文分享—— NetlifyCMS 与 ShareThis + + https://www.ordchaos.com/posts/8e1b39a3/ + 2022-09-10T15:10:28.000Z + 2022-09-10T15:10:28.000Z + + 没错,任何正常人都不会把标题里这两样东西联系起来,包括我。

NetlifyCMS

最开始看到这玩意是在fluid的官方博客的这一篇博文Hexo Netlify CMS 在线编辑博客(转载的,原文地址在这里),当时就觉得非常不错,但可惜未能按照教程配置成功,只得转投于更贴合于Hexo的HexoPlusPlusHexo艹

直到前几天上个月看到 @Xingyang 在一键推流工具——BlogPusher这一篇文章下的评论

如果静态博客是部署在 Github 上的话可以试试用 Netlify CMS。相当于架设一个能进行 Git Commit 的 Web app,最重要的就是 0 花费,Private Repo 也可以用。我自己的博客也在用(虽然文章数不是很多())

参考文章:https://cnly.github.io/2018/04/14/just-3-steps-adding-netlify-cms-to-existing-github-pages-site-within-10-minutes.html

很好,但是不太符合我的情况。于是随即翻了翻——

瞳 孔 地 震.jpg

完全可用!撒花!

如果你也没有成功配置Netlify CMS的话也可以试试,教程十分甚至九分简单,个人感觉几乎不存在出错的可能性。

感谢Xingyang!顺便他的博文链接:简单搭建一个 GitHub Repo 静态博客的 CMS 后台内容管理系统

ShareThis

最开始捣鼓了一阵子分享系统,share.js啊,Social Share Button啊等等都尝试过一遍,但我都不太满意,况且分享也不是刚需,于是就此作罢。

直到昨天,我妈问我:“你这个博客怎么分享给别人看啊?”

我突然感觉分享还是有必要的,遂继续开始寻觅,然后就发现了ShareThis

注册

非常简单,进入首页:https://sharethis.com

点击“从分享按钮开始”,然后点击第一个选项:

不要急着点击下一步,先用滚轮滚动到页面下方,点击“Customize your Inline Share Buttons”按钮。

在弹出的选项中对按钮进行配置,可以配置包括颜色、媒体、形状等等内容。

最下方的语言记得调整为中文,然后点击下一步,在新页面中注册登录即可。

随后,你会得到两串代码,分别是js安装代码与按钮引入代码。安装代码放在head中,按钮放在你想插入的地方就好。

大概如下:

1
2
<!-- 安装 -->
<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=不告诉你&product=inline-share-buttons' async='async'></script>
1
2
<!-- 按钮插入 -->
<div class="sharethis-inline-share-buttons"></div>

效果

滑到这篇文章底下看吧。

题外话

这篇博文算是对近期我对博客的大改动,但是单独发太短,所以就这么整合在一起了。

那就这样,这篇博文就到这里,886!

]]>
+ + + <p>没错,任何正常人都不会把标题里这两样东西联系起来,包括我。</p> + + + + + + + + + + + + +
+ + + 满十四,进十五。愿我青春无悔,不负韶华 + + https://www.ordchaos.com/posts/e84bad58/ + 2022-08-24T20:00:00.000Z + 2022-08-24T20:00:00.000Z + + 又大了一岁呢…

令青春无悔,愿韶华不负!

希望明年的此刻,我能够无愧于自己。

]]>
+ + + 十五岁啦!希望初三及中考顺利! + + + + + + + + + + + + +
+ + + 生日当天全款提下第一支(打八折)钟薛糕 + + https://www.ordchaos.com/posts/7e920bb4/ + 2022-08-24T17:46:00.000Z + 2022-08-24T17:46:00.000Z + + 送给自己的生日礼物

我是大怨种

]]>
+ + + 记我的第一支(不知道是不是最后一支)钟薛糕 + + + + + + + + + + + + +
+ + + Phigros 版本迁移——从 Google Play 到 Tap Tap + + https://www.ordchaos.com/posts/e8587b82/ + 2022-08-21T18:20:50.000Z + 2022-08-21T18:20:50.000Z + + 起因

Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档。

过程

大体参考这一篇文章Phigros存档跨版本转移教程(免root)即可,在这里稍微提一下我遇到的问题

解决问题

在使用abe.jar时,Java报错:

1
Error: A JNI error has occurred, please check your installation and try again

首先在网上查询,找到的第一个方法是删除电脑里共存的JDK,只留下一个,使java -versionjavac -version有相同的版本。

我照做,删除了java8,只留下了openjdk17,但是毫无卵用。

于是我继续查询,发现在跨!系!统!转!移!支持安卓和IOS的跨系统存档转移工具!Phigros 存档 IOS 跨系统 备份 还原 转移 同步这一视频中所提供的工具里的abe.jar可用。

总结

如果你也遇到了一样的问题,可以参考我的方法看看是否有效。

若不想下载整个备份工具而只想要abe.jar的话,可以从这里下载:链接(如有侵权,请联系我删除)

]]>
+ + + Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档 + + + + + + + + + + + + + + + + + + + + +
+ + + 【多图预警】 AwtrixPro 开源项目的复现 + + https://www.ordchaos.com/posts/774674fe/ + 2022-08-19T18:04:08.000Z + 2022-08-19T18:04:08.000Z + + 本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。

材料采购

并不难,跟着官网这个网页一步步在淘宝上找就可以了。就是记得买焊接工具以及足够量的耗材(指Gpio线材、热熔胶、电工胶带等等)以及外壳(可以用官网上的文件3D打印,淘宝上也有直接卖的)。

这里贴出我购买材料的链接,有兴趣的话可以试一试(加粗的为非必需品,没有注明数量默认1个,没有注明平台默认淘宝天猫):

材料链接
Wemos D1 mini主板ESP8266 ESP-12 Wemos D1 Mini 微型WiFi开发板Micro USB 3.3V
32x8 点阵屏幕led柔性全彩像素屏 ws2812b SK6812B点阵rgb屏软屏8x8 8x32 16*16
5V电源供应器(大于3A)5V4A20W插墙式广告机LED灯条平板蓝牙音响直流稳压开关电源适配器
3×1k电阻10支价 进口 10K MRS25000C1002FRP00 0207 0.6W 低噪金属膜电阻
线材若干树莓派gpio拓展40P彩色杜邦线20CM 母对母 公对母 公对公 1排40根,买到了请自己根据需要进行剪裁
2×肖特基二极管(1N1004)(官网上说必须,但我没看出来哪里需要)1N4007 10A10 1N5408 1N5819 1N4001 5822直插整流二极管级IN4007(颜色分类:1N4004 1A/400V整流二极管直插(50个))
1000uF 10V电容直插铝电解电容器元件10/16/25V/35/50v/10uF/47/220/1000/2200uF(颜色分类:10V 1000UF 体积8x12mm(20个))
GL5528光敏电阻立创商城GL5528
DF Mini Player模块开源 Mini MP3 Player 播放器 模块 SD卡 音乐 arduino DFPlayer
Htui21d温湿度传感器GY-213v-HTU21D HDC1080温湿度传感器检测模块/替SHT20 SHT21
外壳+电源插口智能像素时钟Awtrix Pro创客创意彩色B站粉丝数全套外壳WS2812,跟客服商量好了只要外壳与DC电源插口
扬声器(52.5mm×52.5mm)1.5寸40mm喇叭小米小钢炮低音全频3欧4欧3瓦5W音箱嗽叭扬声器配件
3×TTP223触摸传感器触摸按键模块 TTP223 自锁 点动 电容式 开关 单路改造 电容触摸

硬件制作

PCB+针脚焊接

本人未成功通过此方法复现,下列内容不一定完全正确,仅供参考

参考B站UP主三三三三三文啊的视频【AWTRIX PRO】一起动手做一个高颜值的像素灯,在嘉立创打好板子(注意有贴片,需要开钢网),买好GPIO接口公母头再焊接即可。打板流程可以参考【0基础】从零开始电子DIY!第三集:PCB电路板设计和打样!,这一套教程非常不错,推荐。

打好的板子如下:

焊接好之后(贴片是用的钢网+锡焊膏+风枪):

焊接针脚时若是无法直接使用锡丝与电烙铁焊接完成,也可以用锡焊膏+电烙铁。把锡焊膏涂抹在针脚背面,不用担心粘连,然后用电烙铁分别探入每两个针脚间的空隙,随后依次处理每个针脚就可以了。

然后刷程序、接线、通电、启动即可(至少理论上是这样):

很明显,这里并未启动成功,望高手赐教。

手动飞线

根据官网的接线图进行手动飞线即可,这里因为缺少一个电容(C1, 100nF)且不知道哪里有卖的而未接上DFPlayer模块及喇叭。

这里除了基础配件外,额外加装了光敏电阻、触摸以及Htui21d温湿度模块。基础部分依据教你做一个可编程像素屏制作成功,然后通过自主飞线完成了其它组件的安装。

开机成功

没有什么难点,注意需要连接多根导线时用钳子分别剪开线的外皮,露出里面的铜/铁/其他金属丝,拧在一起然后用电烙铁与锡焊在一起就可以了。

裸露的金属丝记得用电工胶带或者热熔胶包裹起来,防止意外:

然后装入外壳即可:

再放上格栅、均光片及亚克力面板就完成了:

安装格栅

安装均光片

安装亚克力面板

软件配置

软件这里就不再多提,官网上就有(点击这里访问)。就是说一下我这里是部署在我自己的服务器上,就无需本地服务器如树莓派一类了。

宝塔面板就可以轻松完成配置,也无需ssh连接。

然后安装自己喜欢的软件即可,我这里是这几个:

成品

室温

湿度

日期

B站粉丝数量(还不关注我?)

Youtube粉丝数(香港服务器的好处之一就是能够获取到这种信息)(没错,我没有粉丝——当然是因为我没发任何视频)

GitHub Followers

题外话

从暑假开始一直做到了倒数第二天…心累,不过总算是完成了,也让我发现了我的电工天赋(bushi

那就这样,这篇报告(?)就完成了,感谢你的观看,886

]]>
+ + + <p>本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。</p> + + + + + + + + + + + + + + + + + + + + + + +
+ + + 解决一件困扰我很久的小事 + + https://www.ordchaos.com/posts/8ad10849/ + 2022-08-19T09:40:50.000Z + 2022-08-19T09:40:50.000Z + + 起因

偶然间看到了这个视频——[Phigros/技术革新] 快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却…

大☆失☆败

手机自始至终没有弹出“完全备份”界面,我百思不得其解,于是在stackoverflow上发了一个问题:

Adb backup does not work on my HarmonyOS 2.0 phone

直到今天之前,没有任何人给出有效回答。

解决

把之前在手机里安装的软件“冰箱”卸载之后就正常了,我也不知道为什么。

从这件事就可以看出我是个…欸,我不说,就是玩

自己去把问题给解答了,这件事就此完结。

题外话

生成都生成了,那就晒一下吧:

小菜一枚,大佬轻喷。

那就这样,886

]]>
+ + + 偶然间看到了这个视频——[Phigros/技术革新]快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却...... + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + Hexo 通过 GitHub Action 自动部署到云虚拟主机 + + https://www.ordchaos.com/posts/1e44a102/ + 2022-08-16T18:04:50.000Z + 2022-08-16T18:04:50.000Z + + 购买了十年之约的优惠价硅云虚拟主机用于加速访问,记录一下部署过程。

前提条件

你需要已经配置好了GitHub Action的Hexo自动部署,若是没有,推荐观看以下文章:

这里就不讲了。

编辑Action

打开(本地博客仓库目录)/.github/workflows/(Action配置文件).yml,在最后添加:

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.0
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

将括号及内部内容换成自己的信息即可。

这里的方法是使用ftp来上传文件到虚拟主机,是对于所有虚拟主机而言最通用的一种方式了。./public是Hexo默认的静态文件生成本地地址,无需更改。

最后推流到GitHub即可使用。

题外话

本来以为挺复杂,结果就这么点。

最开始使用的是hexo-deployer-ftpsync插件,结果却根本无法正常使用,于是便转为使用docker镜像。

对了,如果有兴趣购买硅云的主机,那请帮个小忙,用我的邀请链接注册吧:邀请链接

那就这样,886

]]>
+ + + <p>购买了<a href="https://www.foreverblog.cn/">十年之约</a>的优惠价<a href="https://www.vpsor.cn/">硅云</a>虚拟主机用于加速访问,记录一下部署过程。</p> + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + 《梁启超传》议论文素材积累 + + https://www.ordchaos.com/posts/2f728g0f/ + 2022-08-13T13:33:00.000Z + 2022-08-13T13:33:00.000Z + + 之前那一篇一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。

第一章 一世纪以来中国的命运——从鸦片战争至梁氏诞生的前夕

第一节 绪说

梁启超生在中国近代最悲惨的100年(1842-1943)年中,虽屡次想跳海自尽,但仍坚决地相信中国必然不亡且断然复兴,所以他才在全然无望中挣扎奋斗。

作文:坚持、毅力、精神

第二节 梁氏生前中国一般的惨况

  • 《奴才好》中足以令人怒发冲冠的描写在当时黑暗社会的情境下甚至不被人认为是严重的怪象。

  • 慈禧太后奢靡无度,倾尽全国财力为自己所用,掏空了国库,令全中国上下不得安宁。

  • 清末国家机构的腐败,如“外交部”(总理衙门)工作人员甚至无法分清澳门与澳洲。

  • 清末军队素质极差,上下组织腐败,不能防国,只能累民。

  • 清末经济建设几乎毫无成效,只因“官与民争”就扩大为了导致清朝覆灭的致命伤。

作文:珍惜、强国、学习

第三节 梁氏生前中国一般的教育状况

  • 清末满朝士大夫都有一种目中无人的气势,自觉这清朝乃是天下第一。

  • 清末全国几乎没有半个学校的教育,教导孩子不去烟馆、青楼而在家里抽大烟、挑“丫头”都成为了“教子有方”。

  • 清末文人及有志青年深受八股文之害,令八股文成为活埋青年的天坑。

  • 清末人民对“洋”存在极深的偏见,如官办“洋学堂”都十分遭人唾弃,只能拉到一批不三不四的学生。校内不教德育、爱国,而只是学习西方下等人的恶俗。

作文:环境、强国、学习

第四节 梁氏后来对于祖国命运的影响

  • 梁启超在混乱的社会环境成功改革文体,大幅推进国民阅读的程度,收获神州文字革命成功之果。

  • 梁启超在国内外创办大量报纸,让报馆完成了“辅助教育,启发民众,指导社会,介绍新学,宣传主义,主持公论,监督行政,纠弹非法,为民喉舌”的神圣工作,同时收获文体、报纸、政体改革的成功,乃至最后的“国体改革”。

作文:坚持、偶像、伟人

第二章 亡国现象与维新初潮——从梁氏诞生至戊戌政变

第五节 综叙

1873年,梁启超出生。此时近代伟人俱全,又冲破了鸦片战争以来中国所带之枷锁,正是突破了低于底层的黑暗,看见天际的一缕祥光。

作文:努力、坚持、时代

第六节 亡国现象的种种——梁氏生后的中国惨况

  • 梁启超出生之后的中国同样是战争不断,且更偏向于内乱。

  • 此时国际形势大好,西方列强都成为了天之骄子,合力来对付中国一国,令中国无辜受到车裂及凌迟之刑。

  • 日本对中国早有图谋,在其只是一个弹丸之地的效果时就已经企图占据朝鲜与中国,且当时日本名士几乎都有着不一的“吞华论”。

作文:毅力、黑暗、光明、社会、时代

第七节 梁氏幼年的家庭生活及家乡环境

  • 梁启超自幼就受到“光荣”与“悲痛”两大思想刺激,产生了爱国主义思想,因此埋下了其一生命运的种子。

  • 他虽然受逼迫不能追随孙中山革命,但仍具有浓烈的革命思想,也发表了激烈的革命党言论。

作文:爱国、强国、富国、伟人、偶像

第八节 康梁会接

  • 康有为把各种书乱读一通,完全没有遵循求学问的正确轨道,只是自以为恍然大悟,妙不可言。养成了“予智自圣“的夸大狂态度,不肯随时代而进步。

  • 康有为上书不达,但他的热忱与胆气倒真可佩服。在这样的背景下,他只得在广州长兴里万木草堂开门讲学。梁启超受了陈千秋与曹丁泰两位志士的介绍脱离了陈腐过时的学海堂,而转学入这个新鲜自由的长兴学舍,在这样的学风与学科之下受熏陶四年。

作文:智慧、计划、学习

第九节 梁氏独立事业的开始

  • 梁启超脱胎于长兴学社创立新学。在这样一种不拘形式而朝气蓬勃的学风之下,造就出了许多具有新思想人才,当时一般的学生只有四十人,而五分之二都成为了革命先烈或开国名人。

  • 梁启超创学会启发心智,推行维新,学会中政治性质强大。在戊戌八月政变失败之后,所有的学会都秘密含有了革命的使命,与前期的学会性质有根本上的不同。

  • 梁启超为推行维新而创办报纸。此时,他已明白,学校、学会、报纸是三位一体互相为用的,缺一不可。所以,在北京办学会的时候,他就已经开始办报。这是梁启超生平新闻事业开始的第一章,也是近代中国有正式意义的新闻开始的第一页。

作文:智慧、方法、强国

第三章 维新的失败与革命的成功

第十节 促成戊戌变法的原因

  • 外因-远因:清政府的闭关锁国政策、杀沙俄实力的突飞猛进、列强对中国的围攻、洋务运动的失败。

  • 外因-近因:日本民治维新的胜利、甲午战争失败的国耻、中国被蚕食的痛苦、防止陷入土耳其不变法而衰弱的覆辙。

  • 内因-远因:清政府长期积累政治恶习的崩溃、满族战斗能力与战斗意识的降低、太平天国运动后实际政权的转移、以慈禧太后为核心的宫廷政变。

  • 内因-近因:慈禧太后与皇帝权力的争夺、满族嫉妒汉族情感的具象化、孙中山先生领导的革命运动的激进,国内舆论更加倾向于维新。

  • 由于以上这十六点各种各样的原因,到戊戌年间维新运动已成瓜熟蒂落的现象,除了冥顽无耻,卖身求荣的少数败类以外,几乎所有人都是渴望政治改革有如甘霖一般。

作文:强国、因果、历史

第十一节 戊戌政变史剧的绘影

  • 戊戌变法的规模既不如日本明治维新,就连康有为公车上书的内容也还有千里之差。但就算只是这样,对于当时的清政府而言,也已经算是大刀阔斧了,此时正是光绪帝把皇威发扬到顶点的时候。

  • 光绪帝想趁着改革的机会罢免几个守旧的大臣,但这些顽固的大臣转而向“老佛爷”求助,于是慈禧太后勃然大怒,将光绪帝囚禁而自己垂帘听政,在实际上掌握了清政府的权力。

  • 康有为、梁启超等“小人”“大逆”受“可恶透顶”的“洋鬼子”的保护,躲开了慈禧太后的清算。其中,谭嗣同本来由日本严密保护,但却自己重新自动出来,愿抛头颅以改造祖国百年的命运。如此的忠与侠实属罕见,也值得我们敬佩。

作文:强国、历史、光明、黑暗、方法

第十二节 政变失败原因的解析

  • 清政府内部早已腐朽不堪,全国大权都在慈禧太后之手,而满人的猜疑程度又大到难以想象,更是有许多守旧的大臣。变法本就是一个不可能完成的任务。

  • 康有为虽然魄力强大、精神勇猛、感情丰富、毅力坚韧,但他同样心胸不广、态度傲慢、个性执拗、理智不强、做事无序、缺乏科学训练、不求上进、所学太杂而不适用其时代,却反而骄然不惭,自谓贯通天地人。

  • 满人生来仇视汉人,排挤汉人,甚至在百维新期间出现了满洲人所谓闹鬼的趣事。在这样的排挤、压迫、攻击之下,维新救国、变法图强本就是一个荒唐的幻想。

  • 一些守旧分子自满于既得利益而不愿其被损伤分毫,故而极力阻挠变法。

作文:方法、强国、历史、革命、国庆

]]>
+ + + <p>与<a href="https://www.ordchaos.com/posts/1e617f9e/">之前那一篇</a>一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。</p> + + + + + + + + + + + + + + + + +
+ +
diff --git a/baidu_urls.txt b/baidu_urls.txt new file mode 100644 index 000000000..47ab64a73 --- /dev/null +++ b/baidu_urls.txt @@ -0,0 +1,44 @@ +https://www.ordchaos.com/posts/e9c784c5/ +https://www.ordchaos.com/posts/95bd9bb8/ +https://www.ordchaos.com/posts/b3d3143c/ +https://www.ordchaos.com/posts/ec8c9790/ +https://www.ordchaos.com/posts/c2e7460a/ +https://www.ordchaos.com/posts/c9c6cb4f/ +https://www.ordchaos.com/posts/7eb4319/ +https://www.ordchaos.com/posts/23e22de2/ +https://www.ordchaos.com/posts/3b90dbec/ +https://www.ordchaos.com/posts/3386e07f/ +https://www.ordchaos.com/posts/28b74a2d/ +https://www.ordchaos.com/posts/fab451a5/ +https://www.ordchaos.com/posts/8e1b39a3/ +https://www.ordchaos.com/posts/e84bad58/ +https://www.ordchaos.com/posts/7e920bb4/ +https://www.ordchaos.com/posts/e8587b82/ +https://www.ordchaos.com/posts/774674fe/ +https://www.ordchaos.com/posts/8ad10849/ +https://www.ordchaos.com/posts/1e44a102/ +https://www.ordchaos.com/posts/2f728g0f/ +https://www.ordchaos.com/posts/618137f7/ +https://www.ordchaos.com/posts/d9bb8734/ +https://www.ordchaos.com/posts/e8ce405d/ +https://www.ordchaos.com/posts/46d2370f/ +https://www.ordchaos.com/posts/1e617f9e/ +https://www.ordchaos.com/posts/97a1a73e/ +https://www.ordchaos.com/posts/6a062b97/ +https://www.ordchaos.com/posts/f0f71147/ +https://www.ordchaos.com/posts/10824f12/ +https://www.ordchaos.com/posts/340b325e/ +https://www.ordchaos.com/posts/d4140423/ +https://www.ordchaos.com/posts/79cc3297/ +https://www.ordchaos.com/posts/6270475f/ +https://www.ordchaos.com/posts/ab8676cc/ +https://www.ordchaos.com/posts/4996fe6c/ +https://www.ordchaos.com/posts/da7075f0/ +https://www.ordchaos.com/posts/7e535678/ +https://www.ordchaos.com/posts/8f132c87/ +https://www.ordchaos.com/posts/bff2b1a/ +https://www.ordchaos.com/posts/92674965/ +https://www.ordchaos.com/posts/d29e300c/ +https://www.ordchaos.com/posts/bb5ce830/ +https://www.ordchaos.com/posts/53c0d957/ +https://www.ordchaos.com/posts/7b015599/ \ No newline at end of file diff --git a/baidusitemap.xml b/baidusitemap.xml new file mode 100644 index 000000000..8f0b98975 --- /dev/null +++ b/baidusitemap.xml @@ -0,0 +1,179 @@ + + + + https://www.ordchaos.com/posts/23e22de2/ + 2024-02-12 + + + https://www.ordchaos.com/posts/e9c784c5/ + 2024-02-09 + + + https://www.ordchaos.com/posts/95bd9bb8/ + 2023-08-24 + + + https://www.ordchaos.com/posts/b3d3143c/ + 2023-07-23 + + + https://www.ordchaos.com/posts/ec8c9790/ + 2023-07-06 + + + https://www.ordchaos.com/posts/c2e7460a/ + 2023-07-01 + + + https://www.ordchaos.com/posts/c9c6cb4f/ + 2023-04-03 + + + https://www.ordchaos.com/posts/7eb4319/ + 2023-03-26 + + + https://www.ordchaos.com/posts/3b90dbec/ + 2022-11-28 + + + https://www.ordchaos.com/posts/3386e07f/ + 2022-11-26 + + + https://www.ordchaos.com/posts/28b74a2d/ + 2022-11-04 + + + https://www.ordchaos.com/posts/fab451a5/ + 2022-09-16 + + + https://www.ordchaos.com/posts/8e1b39a3/ + 2022-09-10 + + + https://www.ordchaos.com/posts/e84bad58/ + 2022-08-24 + + + https://www.ordchaos.com/posts/7e920bb4/ + 2022-08-24 + + + https://www.ordchaos.com/posts/e8587b82/ + 2022-08-21 + + + https://www.ordchaos.com/posts/774674fe/ + 2022-08-19 + + + https://www.ordchaos.com/posts/8ad10849/ + 2022-08-19 + + + https://www.ordchaos.com/posts/1e44a102/ + 2022-08-16 + + + https://www.ordchaos.com/posts/2f728g0f/ + 2022-08-13 + + + https://www.ordchaos.com/posts/618137f7/ + 2022-08-10 + + + https://www.ordchaos.com/posts/d9bb8734/ + 2022-08-09 + + + https://www.ordchaos.com/posts/46d2370f/ + 2022-08-09 + + + https://www.ordchaos.com/posts/e8ce405d/ + 2022-08-06 + + + https://www.ordchaos.com/posts/1e617f9e/ + 2022-08-05 + + + https://www.ordchaos.com/posts/97a1a73e/ + 2022-08-02 + + + https://www.ordchaos.com/posts/6a062b97/ + 2022-08-01 + + + https://www.ordchaos.com/posts/f0f71147/ + 2022-07-27 + + + https://www.ordchaos.com/posts/10824f12/ + 2022-07-25 + + + https://www.ordchaos.com/posts/340b325e/ + 2022-07-01 + + + https://www.ordchaos.com/posts/d4140423/ + 2022-07-01 + + + https://www.ordchaos.com/posts/79cc3297/ + 2022-06-15 + + + https://www.ordchaos.com/posts/6270475f/ + 2022-06-04 + + + https://www.ordchaos.com/posts/ab8676cc/ + 2022-05-12 + + + https://www.ordchaos.com/posts/4996fe6c/ + 2022-05-04 + + + https://www.ordchaos.com/posts/da7075f0/ + 2022-04-09 + + + https://www.ordchaos.com/posts/7e535678/ + 2022-01-27 + + + https://www.ordchaos.com/posts/8f132c87/ + 2021-12-25 + + + https://www.ordchaos.com/posts/bff2b1a/ + 2021-12-13 + + + https://www.ordchaos.com/posts/92674965/ + 2021-07-31 + + + https://www.ordchaos.com/posts/d29e300c/ + 2021-06-23 + + + https://www.ordchaos.com/posts/bb5ce830/ + 2021-04-23 + + + https://www.ordchaos.com/posts/53c0d957/ + 2021-03-20 + + + https://www.ordchaos.com/posts/7b015599/ + 2020-12-10 + + \ No newline at end of file diff --git a/bangumis/index.html b/bangumis/index.html new file mode 100644 index 000000000..70f007254 --- /dev/null +++ b/bangumis/index.html @@ -0,0 +1,3 @@ +追番列表 - 序炁的博客 + +

AHH......没什么可看的啦

500 番剧 日本 总播放 101.0 万 追番人数 44.9 万 硬币数 2631 弹幕总数 4773 评分 9.1

简介:"本作围绕着高中生的日常生活,讲述了在“炼金术”盛行的时代中,青年人们为了守护正义、追逐梦想,而勇敢对抗邪恶势力的故事。 炼金术本来指的是尝试从普通金属中提炼黄金的技术,随着科技发展,炼金术士们尝试...

未完结0 番剧 日本 总播放 10.6 亿 追番人数 478.7 万 硬币数 172.7 万 弹幕总数 3.1 亿 评分 9.8

简介:主角工藤新一原本是一位颇具名声的高中生侦探,在目击黑暗组织的地下交易后,正准备追踪时却被突袭击昏,并被灌下代号为“APTX4869”的不明药物。后来虽然幸免于死,但身体就此缩小为小学时期的模样。之后他...

10 番剧 日本 总播放 41.5 万 追番人数 49.3 万 硬币数 1927 弹幕总数 3520 评分 9.7

简介:故事从创骑夺走了艾克赛德的力量后说起。 曾与葛城巧公事的科学家最上魁星为了完成自己的研究,不惜启动了名为恩尼格玛的机器,欲将创骑与艾克赛德所处的两个平行世界合并。两个世界冲突相撞仅仅剩下24小时。在这...

280 番剧 日本 总播放 9503.7 万 追番人数 13.4 万 硬币数 7.6 万 弹幕总数 102.3 万 评分 9.8

简介:与暗印人的战斗过了半年,连接卫星区和都市区的桥梁“代达洛斯桥”完成,彼此之间的界线终于消失了。全市建造了大量专为骑乘决斗而设的高速公路,并开发了“激速世界2”以取代以前的“激速世界”。然而,新的威胁已...

490 番剧 日本 总播放 5825.3 万 追番人数 45.6 万 硬币数 12.1 万 弹幕总数 21.0 万 评分 7.6

简介:本作讲述了各位假面骑士参与游戏,在竞争与合作中不断进步,最终取得胜利的故事。主人公是神秘的青年——浮世英寿,而另一位角色樱井景和则是一个热心善良,为人正直的好青年。这一天,樱井景和前去参加面试,他表达...

220 番剧 日本 总播放 6817.3 万 追番人数 445.7 万 硬币数 21.1 万 弹幕总数 19.3 万 评分 9.8

简介:自全人类被神秘现象瞬间石化之后,已过去了几千年—— 千空,一个有着超越常人的头脑,彻头彻尾的科学少年醒来了。 面对着文明已经灭绝的石之世界,千空决心以科学的力量重建地球,他找来了同伴,建立起了“科学王...

-0 国创 中国大陆 总播放 34.3 万 追番人数 159.9 万 硬币数 357 弹幕总数 266 评分 -

简介:在一片未知大陆上,有一座名为9号卫星城的城市,城中螺丝厂的螺丝扶正工芮梨在日复一日的枯燥工作中,逐步察觉到了这座城市的不真实。在神秘角色“Anull”的帮助下,芮梨获得了“换装”的超能力,并化身怪盗“...

160 番剧 日本 总播放 3518.7 万 追番人数 557.8 万 硬币数 18.8 万 弹幕总数 27.5 万 评分 9.5

简介:“一人无法成形,因而起誓二人相爱” 一对新婚夫妻经历了命运般的邂逅、求婚、在破公寓过新婚生活、买结婚戒指、问候父母,他们在公寓被烧毁后也不气馁,在昭和年代的房子中加深爱意……丈夫名叫由崎星空(NASA...

490 番剧 日本 总播放 2398.9 万 追番人数 50.3 万 硬币数 5.0 万 弹幕总数 9.7 万 评分 9.2

简介:宇航员在火星上发现了一个神秘的潘多拉魔盒,并把它带回了地球,然而带有强大力量的潘多拉魔盒却引发了天空之壁的惨剧,巨大的天空之壁从地底冒出,将日本分为东都、西都、北都三个地区。这三个地区为了争夺潘多拉魔...

120 番剧 日本 总播放 7077.5 万 追番人数 138.5 万 硬币数 14.6 万 弹幕总数 27.2 万 评分 8.6

简介:「亚克」在醒来时,发现自己变身成了自己在网游中所使用的角色,还被丢到了异世界。 而这角色的外形,表面上是个身穿重甲的人,其实只是一具骷髅的“骸骨骑士”。 ——如果被人发现真容,也许会被当成怪物,从此成...

260 番剧 日本 总播放 531.8 万 追番人数 32.3 万 硬币数 1.5 万 弹幕总数 7.3 万 评分 9.1

简介: “即使如此人们还是不得不扪心自问、仔细斟酌……”   尖端岛是一个被油泥海包围着的小岛。   小岛因70年前发生的战争而被“南大陆自由圈”接管,アキユキ(男)与母亲一起在小岛上生活。   父亲...

120 番剧 日本 总播放 1623.9 万 追番人数 447.4 万 硬币数 2.3 万 弹幕总数 1.9 万 评分 9.7

简介:《名侦探柯南:犯人犯泽先生》改编自同名漫画。该动画的主人公犯人犯泽先生身穿紧身服、全身漆黑。为了收拾某个人,他拼命打工赚钱,攒够钱后,他告别母亲,独自离开老家岛根县的出云,来到犯罪率极高的米花町准备复...

120 国创 中国大陆 总播放 7079.4 万 追番人数 136.1 万 硬币数 17.9 万 弹幕总数 12.7 万 评分 9.6

简介:与世无争只想过平静生活的食草龙,遇上了中二少女玲子。由于无论它怎么好言相劝都无法劝退一心向死的玲子,无计可施的它只能编造谎言,好让玲子活下去。在“邪龙”编造的谎言下,玲子与她认定的最强“邪龙”一同踏上...

20 番剧 日本 总播放 724.4 万 追番人数 413.4 万 硬币数 2.6 万 弹幕总数 2.7 万 评分 9.8

简介:从石器时代到现代文明, 登上200万年的科学史! 前所未有的技艺冒险故事,在此开幕! 所有人类因神秘现象瞬间石化后已过了数千年—— 拥有过人头脑的,天才科学少年千空醒来了。 面对文明已经毁灭的石之世界...

120 国创 中国大陆 总播放 9160.2 万 追番人数 163.1 万 硬币数 67.2 万 弹幕总数 64.1 万 评分 9.4

简介:因为召唤过程中的失误,30岁社畜刘依诺意外被召唤到游戏世界中。为了尽快回到现实,刘依诺开始协助18岁的“勇者”田恩雅拯救世界。本来就是高玩的依诺凭借自己出色的认知,在异世界里如鱼得水。恩雅也从一个任性...

240 番剧 日本 总播放 1.2 亿 追番人数 296.8 万 硬币数 81.7 万 弹幕总数 789.2 万 评分 9.7

简介:《科学超电磁炮(とある科学の超电磁炮)》是以镰池和马所著作的轻小说《魔法禁书目录》的人气角色御坂美琴为主角所作的外传漫画,由冬川基作画,连载于月刊Comic电击大王,至200912月已经累计销售18...

130 番剧 日本 总播放 1.9 亿 追番人数 566.1 万 硬币数 238.2 万 弹幕总数 291.2 万 评分 9.5

简介:由崎星空对神秘美少女——司一见钟情。面对星空决死的告白,她的回答是“如果你愿意和我结婚,那我就跟你交往”?!充满了星空与司的爱,可爱&高贵的新婚生活开始了!...

110 番剧 日本 总播放 7887.6 万 追番人数 378.0 万 硬币数 38.9 万 弹幕总数 40.2 万 评分 9.7

简介:全人类因谜般的现象而在一瞬间石化,之后过了数千年—— 拥有超越人类的头脑,天生的科学少年·千空苏醒了。 面对文明毁灭的石之世界(STONE WORLD), 千空决定依靠科学的力量取回原本的世界。 他...

\ No newline at end of file diff --git a/categories/Phigros/index.html b/categories/Phigros/index.html new file mode 100644 index 000000000..bd867a590 --- /dev/null +++ b/categories/Phigros/index.html @@ -0,0 +1,3 @@ +分类 - Phigros - 序炁的博客 + +
\ No newline at end of file diff --git a/categories/index.html b/categories/index.html new file mode 100644 index 000000000..fe21205bd --- /dev/null +++ b/categories/index.html @@ -0,0 +1,3 @@ +分类 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\344\270\252\344\272\272/index.html" "b/categories/\344\270\252\344\272\272/index.html" new file mode 100644 index 000000000..96b9b177f --- /dev/null +++ "b/categories/\344\270\252\344\272\272/index.html" @@ -0,0 +1,3 @@ +分类 - 个人 - 序炁的博客 + +

共计 1 篇文章


2023

迟来的二月调考总结
\ No newline at end of file diff --git "a/categories/\345\214\226\345\255\246/index.html" "b/categories/\345\214\226\345\255\246/index.html" new file mode 100644 index 000000000..64c176e1e --- /dev/null +++ "b/categories/\345\214\226\345\255\246/index.html" @@ -0,0 +1,3 @@ +分类 - 化学 - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git "a/categories/\346\225\231\347\250\213/index.html" "b/categories/\346\225\231\347\250\213/index.html" new file mode 100644 index 000000000..b3d8810c1 --- /dev/null +++ "b/categories/\346\225\231\347\250\213/index.html" @@ -0,0 +1,3 @@ +分类 - 教程 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\346\225\260\345\255\246/index.html" "b/categories/\346\225\260\345\255\246/index.html" new file mode 100644 index 000000000..4f3f42969 --- /dev/null +++ "b/categories/\346\225\260\345\255\246/index.html" @@ -0,0 +1,3 @@ +分类 - 数学 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\346\226\207\345\255\246/index.html" "b/categories/\346\226\207\345\255\246/index.html" new file mode 100644 index 000000000..aa98fba45 --- /dev/null +++ "b/categories/\346\226\207\345\255\246/index.html" @@ -0,0 +1,3 @@ +分类 - 文学 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\346\227\245\345\270\270/index.html" "b/categories/\346\227\245\345\270\270/index.html" new file mode 100644 index 000000000..91ea78a8c --- /dev/null +++ "b/categories/\346\227\245\345\270\270/index.html" @@ -0,0 +1,3 @@ +分类 - 日常 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\347\237\255\346\226\207/index.html" "b/categories/\347\237\255\346\226\207/index.html" new file mode 100644 index 000000000..4f6f59e59 --- /dev/null +++ "b/categories/\347\237\255\346\226\207/index.html" @@ -0,0 +1,3 @@ +分类 - 短文 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\347\241\254\344\273\266/index.html" "b/categories/\347\241\254\344\273\266/index.html" new file mode 100644 index 000000000..b0d5c4e8b --- /dev/null +++ "b/categories/\347\241\254\344\273\266/index.html" @@ -0,0 +1,3 @@ +分类 - 硬件 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\347\274\226\347\250\213/index.html" "b/categories/\347\274\226\347\250\213/index.html" new file mode 100644 index 000000000..fe589656a --- /dev/null +++ "b/categories/\347\274\226\347\250\213/index.html" @@ -0,0 +1,3 @@ +分类 - 编程 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\347\276\216\346\234\257/index.html" "b/categories/\347\276\216\346\234\257/index.html" new file mode 100644 index 000000000..b6498931b --- /dev/null +++ "b/categories/\347\276\216\346\234\257/index.html" @@ -0,0 +1,3 @@ +分类 - 美术 - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git "a/categories/\350\213\261\350\257\255/index.html" "b/categories/\350\213\261\350\257\255/index.html" new file mode 100644 index 000000000..9dc3cc18d --- /dev/null +++ "b/categories/\350\213\261\350\257\255/index.html" @@ -0,0 +1,3 @@ +分类 - 英语 - 序炁的博客 + +

共计 2 篇文章


2022

About Choir

2021

About Food
\ No newline at end of file diff --git "a/categories/\350\276\251\350\256\272/index.html" "b/categories/\350\276\251\350\256\272/index.html" new file mode 100644 index 000000000..7a72a7c03 --- /dev/null +++ "b/categories/\350\276\251\350\256\272/index.html" @@ -0,0 +1,3 @@ +分类 - 辩论 - 序炁的博客 + +
\ No newline at end of file diff --git "a/categories/\351\237\263\344\271\220/index.html" "b/categories/\351\237\263\344\271\220/index.html" new file mode 100644 index 000000000..79739e33f --- /dev/null +++ "b/categories/\351\237\263\344\271\220/index.html" @@ -0,0 +1,3 @@ +分类 - 音乐 - 序炁的博客 + +

共计 1 篇文章


2022

About Choir
\ No newline at end of file diff --git a/css/custom.css b/css/custom.css new file mode 100644 index 000000000..3a50db4fa --- /dev/null +++ b/css/custom.css @@ -0,0 +1 @@ +.dropdown-menu{background-color:rgba(0,0,0,.05)}.navbar-brand strong{color:var(--text-color)}span.heimu a.external,span.heimu a.external:visited,span.heimu a.extiw,span.heimu a.extiw:visited{color:#252525}.heimu,.heimu a,.heimu a.new,a .heimu{background-color:#252525;color:#252525;text-shadow:none}body:not(.heimu_toggle_on) .heimu.off,body:not(.heimu_toggle_on) .heimu:active,body:not(.heimu_toggle_on) .heimu:hover{transition:color .13s linear;color:#fff}body:not(.heimu_toggle_on) .heimu.off a,body:not(.heimu_toggle_on) .heimu:hover a,body:not(.heimu_toggle_on) a:hover .heimu,body:not(.heimu_toggle_on) a:hover .heimu.off{transition:color .13s linear;color:#add8e6}body:not(.heimu_toggle_on) .heimu.off .new,body:not(.heimu_toggle_on) .heimu.off .new:hover,body:not(.heimu_toggle_on) .new:hover .heimu.off{transition:color .13s linear;color:#ba0000}.tk-input .el-textarea__inner{min-height:160px!important}.bangumi-info-items{color:#30a9de}.bangumi-info-item{border-right:1px solid #30a9de} \ No newline at end of file diff --git a/css/fcircle-ext.css b/css/fcircle-ext.css new file mode 100644 index 000000000..726a29bd1 --- /dev/null +++ b/css/fcircle-ext.css @@ -0,0 +1 @@ +:root{--lmm-hover:#30a9de;--lmm-background:#ffffff}.cf-article{background:var(--lmm-background);border:1px solid #e9e9e9}.cf-article:hover{transition:transform .3s;-webkit-transform:scale(1.01);transform:scale(1.01)}#cf-more,#cf-state{background:var(--lmm-background);border:1px solid #e9e9e9}.cf-overshow{background:var(--lmm-background);border:1px solid #e9e9e9} \ No newline at end of file diff --git a/css/gitalk.css b/css/gitalk.css new file mode 100644 index 000000000..d1191ae99 --- /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/placeholder b/css/highlight-dark.css similarity index 100% rename from placeholder rename to css/highlight-dark.css diff --git a/css/highlight.css b/css/highlight.css new file mode 100644 index 000000000..275239a7a --- /dev/null +++ b/css/highlight.css @@ -0,0 +1,10 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}/*! + Theme: GitHub + Description: Light theme as seen on github.com + Author: github.com + Maintainer: @Hirse + Updated: 2021-05-15 + + Outdated base version: https://github.com/primer/github-syntax-light + Current colors taken from GitHub's CSS +*/.hljs{color:#24292e;background:#fff}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#d73a49}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#6f42c1}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#005cc5}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#032f62}.hljs-built_in,.hljs-symbol{color:#e36209}.hljs-code,.hljs-comment,.hljs-formula{color:#6a737d}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#22863a}.hljs-subst{color:#24292e}.hljs-section{color:#005cc5;font-weight:700}.hljs-bullet{color:#735c0f}.hljs-emphasis{color:#24292e;font-style:italic}.hljs-strong{color:#24292e;font-weight:700}.hljs-addition{color:#22863a;background-color:#f0fff4}.hljs-deletion{color:#b31d28;background-color:#ffeef0} \ No newline at end of file diff --git a/css/links.css b/css/links.css new file mode 100644 index 000000000..691fb794c --- /dev/null +++ b/css/links.css @@ -0,0 +1 @@ +input[type=email],input[type=text],input[type=url],textarea{font-size:1rem;width:100%;height:2.5rem;margin-bottom:1rem;padding:.5rem;border:1px solid #e9e9e9;border-radius:.5rem;box-sizing:border-box}textarea{font-size:1rem;width:100%;height:5rem;margin-bottom:1rem;padding:.5rem;border:1px solid #e9e9e9;border-radius:.5rem;box-sizing:border-box}.pageclip-form__submit{background-color:#fff;border:1px solid #e9e9e9;border-radius:.5rem;font-size:1rem;padding:1rem 2rem;display:block;margin:0 auto;position:relative;overflow:hidden;transition:transform .2s}.pageclip-form__submit::after{content:'';display:block;position:absolute;top:50%;left:50%;width:1.2rem;height:1.2rem;border:3px solid #e9e9e9;border-top:3px solid transparent;border-radius:50%;animation:spin .6s linear infinite;margin:-.6rem 0 0 -.6rem;visibility:hidden}.pageclip-form__submit.is-loading::after{visibility:visible}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.form-row{display:flex;flex-wrap:wrap;margin:-.5rem}.form-field{flex-basis:calc(50% - 1rem);margin:.5rem}.form-field.full-width{flex-basis:100%}.pageclip-form__submit:hover{transform:scale(1.05)} \ No newline at end of file diff --git a/css/main.css b/css/main.css new file mode 100644 index 000000000..9f7671ee2 --- /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,0)}.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)}.category-bar{height:100%}.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-item{margin-bottom:.25rem}.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 a{font-size:.95rem;line-height:1.75rem}.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;position:absolute;left:-1.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}.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 .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,.05);border:none;-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}@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}#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 a{outline:0;border:0;background-color:transparent;font-size:.9rem;padding:.5rem .75rem;line-height:1.25;border-radius:.125rem;transition:background-color .2s ease-in-out}.pagination .current,.pagination a:hover{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:#fff;--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:#fff;--navbar-text-color:#3c4858;--subtitle-color:#fff;--scrollbar-color:#c4c6c9;--scrollbar-hover-color:#a6a6a6;--button-bg-color:transparent;--button-hover-bg-color:#f2f3f5;--highlight-bg-color:#ffffff;--inlinecode-bg-color:rgba(175,184,193,0.2)}.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)}}.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 .5rem 0;height:calc(1.4rem * 3);overflow:hidden;display:flex;align-items:center}.index-excerpt>div{width:100%;line-height:1.4rem;word-break:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp: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}}.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}.markdown-body .code-wrapper{position:relative;border-radius:4px}.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 h1,.markdown-body h2{border-bottom-color:var(--line-color)}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{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 h1:focus,.markdown-body h2:focus,.markdown-body h3:focus,.markdown-body h4:focus,.markdown-body h5:focus,.markdown-body h6: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}}.post-content h1::before,.post-content h2::before,.post-content h3::before,.post-content h4::before,.post-content h5::before,.post-content h6::before{display:block;content:"";margin-top:-5rem;height:5rem;width:1px;visibility:hidden}.page-content strong,.post-content strong{font-weight:700}.page-content>:first-child,.post-content>:first-child{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}#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)}}.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-primary{background-color:rgba(183,160,224,.25);border-color:#6f42c1}.note-secondary,note-default{background-color:rgba(187,187,187,.25);border-color:#777}.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{background:rgba(187,187,187,.25)}.label-primary{background:rgba(183,160,224,.25)}.label-info{background:rgba(160,197,228,.25)}.label-success{background:rgba(174,220,174,.25)}.label-warning{background:rgba(248,214,166,.25)}.label-danger{background: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-chains{display:flex;flex-wrap:wrap}.category-chains>:not(:last-child){margin-right:1em}.category:not(:last-child){margin-bottom:1rem}.category .category-item{font-size:1.25rem;font-weight:700;display:flex;align-items:center}.category .category-subitem{font-size:1rem;font-weight:700}.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/navbar.css b/css/navbar.css new file mode 100644 index 000000000..27c9ae8d2 --- /dev/null +++ b/css/navbar.css @@ -0,0 +1 @@ +#navbar{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}div.dropdown-menu{min-width:inherit!important;text-align:center!important;background-color:var(--navbar-bg-color)!important;right:0;left:initial!important}@-moz-keyframes sub_menus{0%{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-o-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-webkit-keyframes sub_menus{0%{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-o-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@-o-keyframes sub_menus{0%{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-o-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}}@keyframes sub_menus{0%{opacity:0;-webkit-transform:translateY(10px);-moz-transform:translateY(10px);-o-transform:translateY(10px);-ms-transform:translateY(10px);transform:translateY(10px)}100%{opacity:1;-webkit-transform:translateY(0);-moz-transform:translateY(0);-o-transform:translateY(0);-ms-transform:translateY(0);transform:translateY(0)}} \ No newline at end of file diff --git a/css/notice.css b/css/notice.css new file mode 100644 index 000000000..b41638d47 --- /dev/null +++ b/css/notice.css @@ -0,0 +1 @@ +div.ocxqntcontainer{display:flex;align-items:center;justify-content:center;height:auto}div.ocxqnt{border:1px solid #e9e9e9;border-radius:1rem;padding:1rem;text-align:left;width:100%}span.memos-t{margin:0 1rem} \ No newline at end of file diff --git a/fcircle/index.html b/fcircle/index.html new file mode 100644 index 000000000..02d1c1fc1 --- /dev/null +++ b/fcircle/index.html @@ -0,0 +1,3 @@ +友链朋友圈 - 序炁的博客 + +
\ No newline at end of file diff --git a/img/Written-By-Human-Not-By-AI-Badge-white.svg b/img/Written-By-Human-Not-By-AI-Badge-white.svg new file mode 100644 index 000000000..3de72e997 --- /dev/null +++ b/img/Written-By-Human-Not-By-AI-Badge-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/img/avatar-circle.png b/img/avatar-circle.png new file mode 100644 index 0000000000000000000000000000000000000000..2ee422e585d7db8b54043a37b898d48f94607bf4 GIT binary patch literal 169112 zcmXV1V|Zj;vz>`Ou`#i2Pi)(^?PMl)CU!D0I<{@wwr$?d``sV?r=RX~PSxIftyQb) zgvrZ_!NXv~eEaqdUP4@0@!L0$)~^o~1n`?1BQgJPAPIUB!UD?fD`)MH?#eDNydUrH zY8J;nOswtfAcWvEr_!eW;p$y<{{9Ky9OiX&wAWp9R_Q9h7lUEKbC@s^=^eAu{@(F;0___&ZuSOSNn8WzFI1$p) zOmsY{LzB4#cSTa)j?T<|)Xe=O$@gZX-+?Dv|L#8eUK2Ji*LU8fvO#_D1#zXafB49@ z)iYrJcO^I`aeo=|ux3MvwoIbyMP-k~zP0$7`b3X;?>_xGi+dLRHpRAd~ zmL@!rJI>pM0pJq=|IYYLy$!3d-=;W8c%E9|oB7w=8}Tea08*e zxqd%Yk%jK1xTlEH%2%!-VEYZm*)wE(Xz%=rKKcD%|33m)n)OKc(gjKXL#nXJx;i7+ z2>wDRZuj5@*lHi~RcJr0|Not>LF@PFxX@}T5Ytps{~Zt? z-Y~;59v~Gz;9t3XGEbaW`8P;?xHA3sI}UScKd8=J^^zn6ZNji{S9IO6Zi+w*x6spb zsTKQvk(q~)o#g)l4%VBphmc^=mW*#umu3tJ-_n`+;CIkjaV5Q`UccxXFkOje&q?W= z|8LnM^;zr${Yj7y#JxjPO&JkhN!MQK=d^hmHb@F_F; zJ!hN^z#>0sP5zf#h7jh>2Tuu1?{T6?&IC$f+w|HNDWb-64DG8Y*Nl!G)+Jvjei&Je z@IGX2A{hy&$VdUmuTn$FSc{%I?@)z6X-U}y&yP+$z5!ZKh={hO5)-P0qe ztg4!ulk?qGD^F=lv)&NH)hpgpX9pIU-p0~$WV;>ezw;FUM{AQp6Xwq^@s=Qh>GaFH z5wD|?{=_~^ft`?MeL>YAoi&ENvGojc(Qa- zl0fMAjGw6dMEOW@fS5ut=C3$juF-gCM1+v4EL(U)go2Jvlqg_aqrKh|43Nh!Oz%)M zZu%OrZdino_6%!rtA~#pPMPJ zB(Xr*wB_$;k6coQiM8L7JPXbdCX`wZ({GHb~mh^}g z$t9j7X?EL@{=3n8V8jaJw1vVGdj!paKG8B<;MDpVoo`UFiZu*&+?LLrHO7S2JE?3- z4%$5IXR!4kO$w|fl7S>z3G}uninPP9xU8(G?}uwL1*BBbJ( z<&#|vmw1mG(PhE^QYv0oM>Ng3wM~nzGWIdi#GA6V+K<;^*Q#Qd7-m{dM^JIYo+SR5 z`FW(8;dx7K-t)Jbr_JEtV*LMxLkNU;uuK7|~(U8TbkWBPs2+zIcbWfy&X}qQr5pJ+HC0 zdsY^0M|!f1I#h{%nNWs;q4`yH;z)-uaYdy~>gyO`k&2CRp_ls^2nFd+ClNqgEy|yxfVg5ID4F4HhI8AzpDD~LW-P$E89o>Ezn=jnPtWjSJE=+PQGcp*!6^9L|JeA`1 zjRiE>T=b|T)s3hBaF=F}r$6MW#w%L?pjW5Y3F?X06t)!1=Tr$@71!Z`bC8%2ukubv zO7ax;*I*^lE1xe92b3Rh;Ub{7T_j$(%$T5DvSNKv^O3{#EmS<%g`$M8cb|Wx2MJZH zrEj@uae$@C6>2wrkNZchm;J?i_EsQ2Z$J%fg^1~U>XcdHPhm3w^*V)ovZ*>IPF92P zP_Wq-^Y*qnYys*TyUaxGa~IQ?`Hh(T(E{XNce@cF2Sf@4C8_R75k0D+8;k{vci9{t zdGS@KLD;U++a_w1KP3`(BQ$w9W7w_4a9VZtmo&EhZi%3{b^T6*VufTVEhwIkA6t!% zxf{=0n8-S$(cqe%VX%6NsSD}l@>;aw1?b%#I&7!@+KbUtNp-s%65>3)JyD#PH1N3! z&(nG@bfwk4rb^_ksZN(eme-K>iZFk*#RIJ-Y z0KLSle{5jh)z5uIU)qXpHj=*RR}7)+Gd{3ytpLwGJqZ0aRMnrm%`Rda!O{~%hUOLA zY4QDcDmyozaZm?JN;hbzjnn}rhq=p`fryt^C*DJgoT`D%t6eQ4*_ywq#ly~L8N(B> z;;8aiMcr;Em5d?o_3v|#+u*+q4wYp4tB!;rsrtweUlO6BQj`g~Xq+#ra_y3ueNk1anj-h>Jr#3qc1f`o}4aCM}Pc@L3aP*5_j1(+WZ zba-;`5E2rix-9s*x`R1UBOZ!JB>k=Y@>#6GX=?7T2hhoIo7#|1)$0v5Zokd7!3Ki? zo64MzT(7^pE_5`{iBK_&!_)fJWGUmOjB|h58td!p*C^N=X%MJMW%t_IzSj9A5J*Jv z!WYCeODQ2X2J+bbD>_PJbKep0A6r$N(SBSMei}UVZf@n{Xe#(_--}oB;YGB?(`@U=*i(F99myDWzqi zWL5DK-)fZ8#Ve+gUnc^onRav^b{%|F_ zk%z=qu-LHy!|*Y5e}BJWRRAL3K{WeX?*tLj7S)K2ts+@{(#zuuCvwa!MAl~zto4C7 zK~cS0R!?sZW`8^IX*iKq=`d4YPLb_}$8;haKv(`vAXXGibk~)z?VQpt}vGiSWk|59`RKGeU1}92uL(XkSJz^vY(8!i(n*wqCp|Qi2Ea zyu>K7lhlXBzJEP*q58@n!!Ws83Y=8V#*d>(t<}Zs`3>8J=u;cs->~@a_(dCcASX#1 z!E3wpfgavL)^bp=V#;+0p0(guSXdNPX@MsvmMkmSFGX=?W(I?28h4W9JpJCvUm#=P ze=t6jBz!@I?nhiZb3*+f<+WZbFqXZk%6%lTQmAa@KVvW2c*y%qJkfHi6YHbp{c`zN zn-Pz3*aIqjZZyv$>c)IyZB1J`OOb4+Tiu;8X2(8Ug)N;nJqGy;E`_VznWd#x?O`MM zY>}N>*AHwN&21mEEJb_qG`*GG(XMIu2RWOq?~^%>Cns|ZH{geA#{CJ4lx^r>!@`0X z`LMp!PYMIlKAMWGm;ZcGb`o#>SYDr2p=_q*PTtqngF~Y6Lf$2bbxiC7rFl|6@>KPx z&sEX3d+q0ikZ!TIb*o$pmoOu-U;T)H#b5QuYHXv4Lm`va3vBY|3dB)DM8u{nZJZV* z{!-5I@w>Pe@;|KdX!LEO5Ta7doW&ttG@LutyM1k z2Yd~9%xY~2rv;BWTL}?!>Q!A;6bkK8(X7ODbO`@regPGgAQI_w+tkKz`SVc*Nc8$K z!nwYO$azcJojiD8j&P49ZMmJ1?MxH~&mxvo;!#O*s1;GNF8WfbHwPX3)I%r_b%W+g zM(32}TNLJBef{H{pH#f#s{$%K5exwW2V%7RCqa7wc=$)Vp^rRw_p%OGPsW0AG!Bbl2sg-2LDk5b_eLvXu(Q2{Y%fkTf znL7|kjlY2xIy4ZF5)J2sd<)5k#UCpTpuQp8G#hvP8J|OL9462F@~!URH?k=)P0*}R zvx5;~COHb#p{xVMj0(0i=}ac!T1Kf2hEgD^?dMe%ama1CN$PFDDCj&dcjh2~h;c>k z%x(W2b}W_=F1LU18&p9Y_vQ6D$9aX@l>0L_YPK&{oMcQ0oe2m?uFL;~y)hFZGqX~b z`oXmNf>OU~G?-Hi_%5`W^ug~d5WZ62jtK^&rIUwc-P6E{sRpbln$citpqQ4wz|B^8 zprak?MU=J7=1gWp>SyAAN16@|4GWl#3+$Uil}=&!zQ4b3c~DMdt#Vne)=|C?r|%L0 zGs`FT?9o6E%+ARDj2l%p;Y=Z%?*tB2stC)G<*VorW!^6FM!~H#JTXLZf+QT+y zx5~^7j0~xu1EWvogTR^uH>oaH8o9-;c8kZ8Z|%T!QJImnw_&;5Kw4H@J`T~mucE1( zN6cgG{IPl9s`T;88SpcPHQjiD!KTxoR763RIt!H@L5ng0R$ZattUcyzgv7)$>L^sy z)ST#%!?>pK*2tqzM_;!Jp0XL7r{RM9&MH`6&};NBKs{yLL)^2 zC*XuKXlyBwt#9^*i%Ux41FZwhk!N8v%f*u3YorfCYuL1V#l(QLc_%{W;k0^920JEz z4SGQ6T+gR_@3`yd(4DslJ6V3t{+M@FC-qm`)jt#zHk^%+LNbIwVr?J|Wv)$2V{PHz zv}HUBB1tR&N_%tMQ1#d$`kN7x*w0O4dU~LoXlV#?r7`-$*%Xhd$@AV^dZ=nkQLF1& ziP+fVl+Gm)sud0z5y>iGCxN=->TQcJNiG-LUoNw%d~oGd(r&9lZ<1rRAHW~a$<*F9 z`cym&%mrLVbF*F5Kis!O9VGCFHNG+5C!DdiXK;1;W}F~qI@c9sGD0AD%^(vwi(-xe zZ3bz<3-@M6EiE15()yJn`T|R<0;=+Hzx?D=MwyH9_TloGQ59V>r#|Qnc8+AAjR*H( zX^VqiRm@XYrlr@I$fM^c9^RB$dtjAO^OjxQdPIksG3TEjS7NCt_^Sya zhmj0(7a1u#gD7S@Q=5jWu_JA;?y0m}+m zWMwOjwug2BY3?e4;c_%e$aBZS@*?qhwkVGm+j<#eO~SH+wTg8r>=A6b4oL7KZIV9P z{WV2R5Ea|rJM?LJ(L}B7=1j%llQb^I;6ggc;dQ=)B4h z1%5_2HAta@+=}6H<_5U11k`^}bxN^17(}q24}zcic8#G`=3O@eIx0J(j!Vd~GRMiYLTTSGGj zw@@v?Xuzs6b4%s@Hz2jc7j1r^W7GR#2ASzZ&xObTlcN45U-$iw0V5Huz;H9E19!7? zIG6uotKuo5D`;!g&n5LE;PJ|%b+0_kqYdchxFK>waU{uk1%X`@GP^Y`I{$b7J7j3R zGWy(RTKNxJL{HDcr@;lvs>4C1UAJ#Paf7RRY|G9H(i7|#ZoN7dQretubq=IWRflRSZR*_KRJ;ctP#t{>xJ4!!-&W|r7`+-mH9<=Z?II~nm$7G%O$ z#{U-&si|Q=@le!s-h5Iz-gO>BRo<9l`n3){i+BiPd<2t*5 z1w=(5$Yjze`fP-RK&|mnhU=E=FI3b4Vin~ox43}GGA-`I^)GPkcY3B62TB0gI0h}g zwV;Ylary$nF=`NLAD2GabWq@>_LY^9(D07V|Jm>*-RwCQA9Sj+-Y(fuQYZX%KR=MtGPY@&(O z+9%XyIg8w9l&*8F$E)I;4m=t_cr_f@)D>PAantX)GwnlT`Pq{~v(x3D>pX=;+v9dB zDSeftIM9omB28ASW@~F{DY=u!9?*TH#oCBB7**%cPU4s-T4Nd$sigwdh;J`L?lcfU zsS1hQWh~QlRg!H#zZF?V;)sOadqH8qO&-7R6- zfN?u%Of|PuX|h>%JcL09Z&Wh|%=Tq;Iy{SUgDgh9tVG>s&QGV?BP#ycwrh+rjaycr z_ll=-`{_@!%E_>oK*Yi(ySE-ZnDVcYgou+9>-pJ(f|^=LM+XlZ&o#!K{$Yd(m>T|T zMZPpK1csoX#t$$qCDvIy~?k~BhTb0M#uSy6U7BVk;I?e>7(>xgC z$hZ+LWKm-EyMdD9OS(_c+}K8tC;w~EY#=j_N1C&&Nb_0ULw}q%>H$%61x8WJzM-a| z-~dOkjs+L2J-!|YCo$K~IKyO%#t2wKUn^~}d94=5I&Hn~OnJX@OYt?LE=6Ap#66`s zswF1|;(J@;_H^~s>Akp&jEI21_mR<25ljEdVtSK*LUOq(67p56HatszhK-qi#JZ-x zN0lfQnO-Smbz^R;uLPF>jd>>$(^V>!brHOa64*I+*X~(vhk?w?f7dsx6g=n1BuPt1 z7P4sbtAEASjIdPfq@+d_w6sp^$eMmQ%LkTtnJjMS*Ds2)?DI`D0yXiNP+C(%ZGOHn z6~Q@HWUS`2&0t(k+P{DGKWQ$mcvHt@x?YCn60^z4sc62`cIC68yB+o6yNbJ=g<&dF z^rA|;4Ens5B@IeyBTLxWL7MnM=gY~FK}gwnZ@nXHGBAqQFf=qE+QMPtA$A1Dyub|% z0gg79j*7xLae8=e?X?n4fz)Q!o1!|!=Eag_kuB5^^ep!o$*k59Q@F_+*z+Y0hLt<# zwZg&kPRd=q>AcK;d{|~E-dLp& z?mJps1j(M-CSxHJxCWpZw93Yva(WZN$PZA&OJh+E4W9`z1 zQ=-|3ypD5!v!;;cP$EmBL>Wo*dRdMJwIp@>e}gc^bKZ!8bJsCnniGFoqS^AoCV>*c z!NFl@d{i0GXicaOTn)nQK^0p4l{y?l2?^-jdq)&T_`B5GA@u5%Lz-M~(Lo_qaJT_` zlolIvY|CM2)cb<+gBBUa*~k-}we61#Sp4;HVBsFQlGI7;w&JaRLxqT({`+^RdEh{b zex#hJre<34hN`l1m*sugMh)-R9t+VFQ8Q3cL6ar}9RLd=bQp2ST~<#GEYac3-z5To zLKvm|dU2e@vy?IC3*iyho+DdDpA$gDgRFAz0F*`oOv_K9h3d0RR91CA*9bu9G`C;nK5yk19hh<; z7r{W!4a=wnK0Lp?xlTk{_Hx@GUkzxGVx^V{CM zJE-Zw9M6p?^*imxmD}kve!q7rRam$I`SK&ztqDSQFvHpfuh$5!+~nNu1D+?+LY-IK zFM!s7H|zSV;SVgrF-LK*i~@n>nyDyuczC$Hj!uLqpnNeie>^n^*v{a=x0>qvgSUo^ z9S=-!3~IS$j{ggtA)IL>bkwhp>sv;%^Trd&pXD&6VLWO1`1MUhc=Q^q446VtPOC^w zb)a$tQERIKCbd8KD;zzxmH4466W?p*DN?SjNKiQuEu_)lAqitWkKoDr$VtMYS7&C1 zi!00HAvu>`j1G_W<{an0P93C>N~1u1dMxj_HQOlP`VLt}!;Va{n3}}-bpGR$g`=&koLT}?)^^Wx);^A#^=7f)4R;Y}?i|dGcE)Wl#zWCiVZaQK zIcmu9WiZ~h6uY8Qpw|>=YeH+ZJzuptx?TXa!-J?nU>ML}H+w&K5 zjZb*h$#%m+@r@j2TPexF@jRUEj1Y2+3>bIu(!otVrJ#{uc2 zpyeNa0r8(LScw=Lq0*Oo;62y3R%7&Ss{QJ8~blkER~{1&n}Ze>zyu*MPgom!cGL+u~-x?H%ksc**&@D z1lYH!bIAc!!=;S{*l#;!a(LaFrM!d;DmXqcktE6r89UPX6B`B%MOBl8GTU)tmnpL( zKO+~CnEoJ@*}ftk0Lr6y&ZSvQ9zYAqz#*};nW%jkc)Xcj0BrUeB|A@Jb74O4uy{FP zG`{cDu+-t-NFJh<@nJ?1A5OPd6qRY6`>>>RC(9?IAp0J(LaIG$?8A9X13N}e`>$0x z4?oFd^$p} zRDQ+Y^i}qbprv@kV9HABG>6GHu~wQVvh$vgfQAFhh=|7ZqCwk zbP%OJ@FTe51QU!_d(K{wFU+TKH$4d7Mvyy0Jcf3`SdU&SIqXf*3P#KnSwhLpmx>_8 z2U?hho-#5zv}J6sgf2@DD}Sgn_pRcw>fo(u?7ukJT~0FZ1Hs6fNi-;!xcN*t!{bnk z50;M>v|}bLT_cJC6BKOnx-*>O{@%py0kL7FO@P#?YFRH(eU+ZWuKcXC9N5UO!Ja@q zhEB*pL@g0Zpp;!gp?GbmtJ9vCj+R<260V}7r1wYBK-*2c9 zQomZ$9n-wWitc=|NXU5i`r=}P15}{57se)NCn@OY$V4Wc@;f{nW(iySc1VTmOn31e zTFa#9fSPN}D#Wb5nLU45$Nxn?u(tA5<0mul4CqfR*N?zkSXe-X&k$1a;WTWn#T+br z4)ba20n)^1d{G{2xeORyCR?fo^v;syvdhVo7Y<#5i)Bx6@(g$0(xH)$w>Nqw-qoZQ#bx4FPgy(No)mN#q^=SaS zPXO&3Zu5annL%QYKCZ8bn~oe-=7G@{=?iad@+8d!Izehx}tTq29==e(W#t2B_m{U;ra|;_q=F!4IlgH=?yYHWI6NwE!2%*B<~xNm zFU~{)7`TaM z^nXy=DtDTYXEfQap3V|IiNe;Jnh=Ug@e0cvctQIr;BS;C09FHH6vMck+*Y047H+evM2v zgJNgK7)g6E;QdRnrizX9{DS6BSj0!H5R!Jxs#+f=a_y9pqf>FvijM0t=^oX`1<9vB z=h}}b)5*;_jo@nIZH8sP=v{vNz=`Vg`u04Vj>O)9om1@q6%&O4!cIpgE6w19(G;z_ z+YO=AK%|mIE{z%Uw1+C4?tpIFVTHEg{>kiJn}>4g`+)axJ(BMJ6n5Wq-OxJywz|2y z$82h(sDeVXObQ%4A!g|L%_v}iiH1l7c2#Wz8uSwZCPG-BH)@GD*!Lf?Dx`Oi|@;TuZ4vddz zh8a%a4WF~#WIKf8>3^L5TPG~-nfg;x1CwuT+>4z2ZSb0WXJx-}o1n6tIBbLW>7t1D z>7l6o$>Y%0`q_Y*?|BcU?c;{p{ifvp={DR;Kiv=B(ripjVcbD{Je!2CsEdME6f$^A zUE*5|J~M*R00cA=E-reMc;$trt zD40{nVlzqrP`a895usryBH_78^aE>Rjm>6#5pe6E0h(uylAr+V)6|m|2b|#Voxd+)b!tNwJSN2@ zME;!;?@N)UsI=%RP}7boTGj3PvD#>OnPq#nTss(%sk6S+V1vW=e8=2&cLPv=UD|EB zDC{&k$fZ{B?y)Ap&_GJei23S_fyBe_ELHC^SZaR*@h3(^#v-;xo?{VXgDN1bsB^A? z;>PGOYyD(_nVf?@{|rb!OaU6zsBNw$pX8M(3U(rO-82wl#>=ML8LxZ~7MnO{i8>S8 zCJf%tI^)K5=rPPo{plYePHKJ-uO>f;79H>nmB_;jo++G4>y)aXwnaGW_Bin-6f{dS zyT~F0kkhIM+#}&(M1_r6ZeYUgKi*7v9-iW#CKvT`TCIMxw73Ec-R#_wotqbBzPY(v zc30@MR^7i6Ty=*K7zwTNJB)|V7pFLZI;I~Gb_@j<3v0?U8#wD1SN)=3gKD82Ae91H z!c3-kCqNEtbf3uwT5P&%i(7mvOIXo#rA=((@^D(0e1{tlMqdWuR3T_$Vq$K}ukiti ze%G<4eUnb5Um@X3`w~{bj!&*v?M;FD+(X2g$cn?a+w7GfCEE}3@X0ns63W0q6QY@f zK&VU&=i(W~A0}g-Ui^49kdkO>yez5k->Zd*rflsTRYY)fED-0)r2@!_qD&*>UH^6y zBJ~{Dj~turPPAThzg~96thc&(La(i_SF8%6My%2iwgH^jJ6;W_H+(LMd8!SVD_&M5 zrBhv4YtjyWRu?0+BwQ1%c{__Y6~EyVhv^}A&#~eHXYI%d3!g}k!bCw*W`2r)oBafI zt6sWMKx$zD*HWCM0Hj}QXHTJPxqxGP<=%YbOmlzk;F#@4O>iBbCbq3MUiNI)**nS(FJ?*kUr!hV zPkP|INMIuyTl4^q7$F4*Dwz{*DbAVs$9i^k^{$73fjvsQj*cyedPj$vlMZsv`ufSO z>*Yoit(I>WB!M>xRoCKrJ-UgLUEk9#ov^n8Xs+T7A};ZHS->95RrRhh4%j+E^iNn} zf9>zG5~8-Q(ZvJFiE5>kh}zXaP9Tm^orV+`?`COc=Ay)i>eL_(7Gkj)*zl75W`iY| zs1sGN&85m4i4+2yA{Nlo4TsZes>Wfq^@0ay_KjM)lOU4$!=+#p32lha@oY~S-rss- z=7L~nfA`ZD55Ku7ny|5rG_C!t;_;t1LRNFvK3aTiY9=XJdC=gINPRNV;LHtq-bF^l z^_3FN)qA6sFl%x#S|^Eh>!b4vY9HNq8s3gZtqy0t4wF+h@2lw$_m+Cl#R~PPnq@yx z-Pz~R^f?OGHGyd|FtFf~2S}t4bW}3AvRNzx7LEK*hj8)q6sCf)UN)mFd9}h;Yl4wx?HT#R_Qjt44aS> z&1F#eY)8e3Gl%hLV~0?$qPB(5K5=pLrHou$jhWV!W+N4lO@TE8M$*JG@{q|lU z2m>c?>>ojYY}Zb9$Oo0tct4gBB?VSK%n+aI7sIauTr;Q!)Pd9t&Xxs{OC(*OW`CrLbr}(ZW9=N6R?(cjq{vQLhhdgf9(FaXCnd z&aBLJ5G0(=xL;bj(7Q$tntz->9p!(K3@G=FYLbYs~*94lUU|Hy%msF1eZm8_!q7@_TX!E31* zFbnXIk#Shs-B==HZ)sKwu3vy`w5-16H2(AR``d;W!PfA7y8Zq5BDpl9j7YEn{LlR;=+vbtoBw? zRY1@Rm^V91@EZkzjS{No`b$BRrA_2L#po~$1r?PbY*$=`)`zC4z<3E!X6N^v|E+3$ zy$FERAb4fz-3lr7((aEhm|EJo>3xf*>-#RVR(;^Gt&?uwBS?bEPQ*m0rOba+AB|7E zim!YPG*lWeG|?z%=;Fi(*ylzm(eYOkdo6EEE1qE8&48Nm0}p{juV`M1(~t%iItV`H zx)EbuB8OOD&vOrav6jma4ku7}Kz1&5N5t@(%uZ>^X*;yUb@om4%~oLfL(9uEXB%|} z3jzl-GhWLRY9xFFqSD+z@QMCVntvF1qyG5H;Pt%PW|N9ZeF=P417u~XU1QN<<1FoZ zx61puaB^~xVWm5M*o9l>LWs%YI+-p;*yfdR(Nn?NW_8V@o3%csAdySx^kA=H7{+B3 z4elKuFLR1l=@JZ*b^U$H>nIxpu&@|HGMX8FZu$#lu$=~+Aun|ih(=rGZ+mO@8QrGU zPwd0IsS+PC>IsC_n@ZMB_c^8IDC0{?#A^#U%bQXW{pr>3-s}^Mu!IM1o9I*;XliT> z?ELmM{j+z`2kYkeC0>Re!5{y+Rem-0^TkxK;xamri#u7ezD{PM|{GpyAlkH?UyQpEQz??Ybd# zbHepEQrSTZbUj(XHvY1jVm3@UMO30}#W1$(MJc_q+=aN6_-TOOqpYf2Bw;{YTpWOk zs#G{gdVH*2<{q(9Rfetf^0m(YOh1SoHntaIL|D@P??<+{bR>oZwlVb2X{q?>A$qM< zZya6keRzqxi#z13ELE^cg}#tDpb@{;>_pD@`6l&tn@zuS(7LF9QwI2};YS9?sf1`K z-Ls^>+~F{mQoX|qA-=<|XeQ6w`8C-_;l$R)$<{wdM zgdkHtcWRMl0u?7!WCU!Vw+wu1tZusR1*nTKLhynF5FZ4K3=*yAqi=|(J!ht-6W2J8 zj!>lb%fo3J-1)SmeDd;*g7o-r=e?SA6O6$U*O%2Z(wP$?PjvJ{92q8-QB>vI;eknR zaj~$lP_xQ!Ua&uGdz)(gV~aOTw^M!P3tT(R+H#;cN1ui^bzx5#XJ^vDLeP*1Cv0QO z9uyhIrZ}ThJ9I;*mFrzvdDTl8(CoQrB8IOCE1#pNZY-q&cX4KGfT1bnFEFv>h5k{PQgKByFk z`(5!b!rzqg+#EETG$^x7KcMwZsL-Ks$9oVL;2Pw4ZQH{g!C%T7XCJP1W^1s)it6p{ZWh-s;Kun z_}4v=$=&OAe(`b^g4cR=eW+(}YjtU~AD`}Uy}6Kk(zBn!(5}J4sz9P_UnZi9UkI~Y z?9f9Xk(?_b-oj5pqzMI4yBs-o2e%!sT-xbVvQv|o^T}iJQF@exI&K{V-m@wxqpSQ( z;uWBMJRiQ%jz4ah=_>~JXyu|t!s%?$XMH(uGD*hWB5Uy@+vl3|<2uIA@Okr6pc|`G z#IfJGPkhzoSDk{a*S~X3uI9YhF_!Id%;eC7gs*`+0b5r<`K?m3%N^q2Ah4a}wBr9D z?79+ao3v!?l@i3YBm#`u**u?aL=rv@6StOhdxq?NlhYjwUEr6TlK52yzL$m1G|n>Ceng`>x}-5{2Ow` z#L+avxzl$Hjzc_k=v~79UMa_7? ziM_>%&j{(FXivEyD{Pa<|LK8kFEG1aQ^O>$&4Z;fU*7{;zJ#qz9hTY14OH53o=U|< z2HNUyH-!_u9zT3@$ml2%bsCs(^S5jUoq&;x=^eScY|b>BHKzQnS3+(Pypmj7t`}?H zSe~b4Qap~k*sKP?X8YE{r*FQ2x$)m4YuajtjClBoY(U@smEZg23?kFV1YJ$CN+3G? zp@(fjU84Zs^O_#J-Fh>M`9p6~8LaKRRwI?28NGt}hvDQycsB9%>v2)G;cOwBw%06eioGDS^z%FvGl_w+ zeF~L#$q5d+O&}p1^f0Bx4p?-90g}T(q@UH!30*v=arpOW(N>P>A{7ZPQH8#3PPfj> zk!cslVJKY4HG1n_+Oh^rG59!rjhSQA>eh#$WKG4yW zUq$rJcLM|SJI-s_>x&ny1tniQ8yPgm!Ncyqe}lI|)whkLsCe=3Q&tRhHwL2@@}%z?WLk#;JCRoGoitkA6Eq z!NiD0GRm^Fm>eF22AJB|@Y;1sAN;&9vyZ@}rbnA49}E=zSz=5j+q!Qux$ll%7Q(OU z4h^6iKpL#5s3^(WS%@bwZwIqK#HYVFTcL*Du!V2!d*A%HBHnnqa^ksLlWH=44xr!^ zLx!6t7s%G6pb8p{hDF~|yZ#98{ze#kBfj)RLQ+6NOi%wKK0->^|C`AGep&Hpg!mpw z=msA-w7a7&+KbVvMvhf&pLc9KmP=(5}(Qr1pJG&W}Ixl4^FoF z`kj`}jqo;VB9_l3p%V1M zRdl+_z9lEX)-LvW*~du950*j&JIP;$hPk0*xqTs};gW>D^`o~VacxA%#efAhNFO`1 zXX#IJ$P?p+CwF;#W);s}@`c>99-OPU2+iqMHD*5d%G%Nu-aX-pN>dI`0<8w??#_>U z`ZCRTM9B$VGVJx-c*n1IiKf5*u{0)NZH`_4qe@G$*jQ7umU^*eAH9)8eHOAXcd%tZ zBW;>Z)ykILk61IQ5QkXKFi?2VTYZK^W8t!lmh#T0=zbU{Go+6;fNB4Yqp;TM5~m${ zy(3gdW9>rWlKjspa%=e3I^bF7b?@*zmKIs7;gck6bF%uO8RKeo|A+p~89yOln+CIn zoS1}7LB;M^?Hv_A&@WEcP9Ii|W^R3AyT~gqQRM6d?|ZcVn(+Vd zw7@Bxhuyv{5M>X$!@>eiluAlEzIap5OY8Y1>H?);Cwxl<&AMl7B_2&?T}V2!Fn3x!KqV$(BN;et4pSzwpreLRx}Q7FX9&}?nwjJm5D#Sd%V&NMLpddx_QG4q z@`L7fecP**l!TA%5Wd&~d|cdno*VXLFz>4Qo@Z9z8d`XL9HiS_#bD_5+-QB$DN0E< z7Z?_Ut9S;j8)*L)rwn6L7Y^cKXV=Q8ie2xvyse^M@*$|=MImtaGG+40I}MDB`%Ph# zp$bna*Rj_IaM+IL-VbGbIK+qE7_^LJ)c=dnm;9h|gbx>FzdpNfYA0U?dtx+^4|#se z(_i=YWP9)S(dNX?_x_^wc3a=*aM*k5u#M&?^brQzKLyH#LU4-Ox%XONVpN(N8~QJL z<;gt)3IZc3q?9W8Y2F>*CmaeL{v&!mom|qC*T3!=V5JVLF@hn=z;@Je$YHIvyt4ZK>*8-2$pVvO>{DM$YNN4|3(1>A9f z1?j+#6uy*I8Djv1Zr5>#B4oQX^j-axZ3-k}m8Le&>aSe6)i%5BQ-$x&F1Z?}ra@?) zC;o2dE^$fEC!zGsmTh?Lt@m*2nrBh9;3nkQXTy+FiV&SeEEQ`T-bh4H)mLYV6MkQs z@K#bHH@nqa8+sHI?0xiAN%ZhQ+w5MS7adrX$!sLvgykePPgqpipMMcQ{;b#=I)|Kp z*I#3uBH()y%iFeX!`pAajr$*1D}26`Y7rTig)t#f;zUhJD4_;GgE1Z{$%)9%&lke? zV45>o5Hp#+_T#eHCHs}mXc6B#vdx`y-^XZamwmc|l%>m_-6NIIa2%^MM!#X_&b>(o zV^0URqLC z{?6xLeTz-czlJ~FvKmFF{Zp zu1-0M&zH@iyL(@c5on#AyVUFC^Zn$LPq6N(^{Be=Z^*LE5?=M-7_$((W5x!Fbdmr` z_)-NbA<>ykGNlYPb+u@;^?b6%WHP;NKNS^aFqsS(9UO_o;wH?v?KLcFldHJRoS%DC zD1GiptkM|$2Tc;uN@Tz2hkVtIX2uY%|jy{-g@goFgq%x20iLFxI|qT`=0Vf*&&LqhO+3SZCH*!yeV z+oNsc+poXF%P+r*TmHTh1*cvDOMwj`#w3wYLfa}?9w-`#GO1}GOL}@L3JWHQ;UBcE zDkmGfD#2v>_O{cCQ$oB&Iu=Aq`=C-xzjlNF0TFCtIFjsOmBu)1{QKJ{-3KLh74htgUirOyye$$v{(djv-Q|k6a!$aa_oGbHB0)m8w`|>pH{bmL zD<9c_+U8r3cftb1O{hVHDMcM`OiRbI03M5R0U>JALsC+TNO~wPE>;`ftk!xT`HhWU z4Mn~L;lVdiSck>fS@9XzJk5(y5LB$#rFF!`J-v7vPno_zAjUPYm{6728# zP-Itkr`vm>6M(ngc^mgX_%NoNwG7FVj}s?sRE-kDEXD*0&u?%<40MJ#aS|~;HxH$y zlSMV%ttnGG8PC?>R}i?iHLJ_xsM&r!1vFbEn1ky?yytx??Z4B~(hv}?6N6zKmp>pP z#uTyJtP!|uVK^%O-Q}#-7>A6QtV!pVoN+l;KHh;Zzu)0j#r3=t9r8}kY**L8iP5ee z22SkmLuL11*_*FY@m7lWqPhOvcU$n%>u=%aRZqx%-{a=NGN}%c3E5&Nc&zYE2FO$1 zBq1CS8X>xMX*w2#j?<8Ui4!NvqhV|7d{okCIlsw6AXvSGfp)py(;nb1Jcb(`&e*a> zIl)2tJdKIzh>c4@a$*wBKKooe^2oYgJ+ebx-1b^I-rKDvJ&@hwqmMqqBTqboig`C6 zyWw2KW)>nSn#OU#_ ztRkPCMtp~v(ox-fGZt>xs})*q*NL3Sa8!6Mt2V|#Bhr$TPu0t@!I7eYiyC6?dbAav zfBn6?ok7zSrmdpxIf&}6FaK{(V)x+0ZC8(CSNM3H0}RyZT$-`6JG(k%&#&|z6_F(S zCp+=o_gnGyJ0IZDr`vJa^|zzol%+^4Y7|wpu}<3qRet4$w*cXx3<`@xWQkt(cB~B_%J#{7?dT@p<=m?< z|H+@!CNymoS4m-LW*fs%V@oUYS-mk13NGpekRCy1#qU$NVwPHc3-ik)JZdU_aPnE&l-R_T(kk~7| zhi%(-;GK6r#Hw{0P`h{qCQe%@#6(m|j$BD|PIx2nt3;jAcw=h5(wi-+@0Y{{RW4~d zkEgd)WYab__-uaj8Gt@agawHwU*cc+e5eXZCk`}@I3g-i_)@1&pN`e5SNB=SD%H@T zBzU{KyVQ!Vd*1Lq51(+S*EYT5ryudb2XfVyhIypd&O~&|1hGmX><*If9X&2YG-c9$ zASERQ1qBmOQB~<$mGIgQ9W0=jLq2^$xs)TuOlri~?6q5Dp}W~-T~IC+@hhsjEOw6; zUuX5k=rg1*`3glykl-Q_K`~Il;ZZ{L>e32DRcPh9P59!QEkf9;2?^bMoz>pmhg8}1 zC3ySG!XUi4o$g{m`F);^LrRrQ8D1cZgicZQ^%O&$UA|KRwr<^ucRu(KPi}0(A8uWR z(%FARruA$XbIU{!IaSV;xHBPwC2>I$-pETC8EX>4EhQ}#O7e8DiIuO5tUxD<%|jlmQLCXVtjF0 zirnBv&6u7iAMD3v4&@#JrOHbyZj`xB&B-~ob40|L?9bh=S{Jl_T~Xy#L~bh!-lJCC z?Z66Fag1IeeaUBOD`v_UU+#!65zE9hwsc%jxDdUQW?YK99^Hule6!Ul`u4in8u}t~ z{XO1ao?W*Fwa$HR4Qiqy=1T~4dtawZMO0`l4ZbSCUZR7l$Gdjp%l~|h=U;vuH?3SN zs%d%0U4ZyW^@vW&72{#4lJ={yW91RYqsL}_4heqfSt2YbrMoY`Iv_^T4RMDj6 zFl9E%Amy;`ryCOA8YPc*X`|ILYmm6)3 z?#+6dschsQCDB`2T8i}abg?=?Cu=ii%)mnrJ=AL|!%z{!U0u7yN{X*$HTh(&(`!5Q zp4_%qJWttvX?s^5`(gVw{Oip(aQn&!#1uCgzfHoID!#OB3Oi0%6k_xiF?@wiis^Ij zsZo-JFmteyEMz8&8DqmD5kJX_lmEKet?7(%brpZ^;?@IR{#~Wo%bB}JnVXQqs*d5$ zzVL#t1CghXi7JUg^cI(hidj&2w5Ui5(M$G*CpO`$Z+~zTw~A-iP2g%puck50Q}Fgz z8iTiZ+1umDR&5%CB7*(-czx38n^YU$+(cBT+jZr&(XfCozx)a>z4Q`RtX_wjMK?H?iKlP!lVP;~NU&Mn6Ye|kn0xo+NE z4yuhlC;mf{o{lPBvD3xCFNb2=^A-JdsOP^JOqBAeY>SvzEcUymyh3p== z8(fJda~nhZU4g$Kj71Ue~$KlzKp-!yAI{^ zZb04%^F`GmB0dLWLtPC;BsPv2HxA=MqC^KVRer^&@Qq_(Af3(zW(=>po z`Kb0`yF4ip94af_MDNKbpWLITcc=`kIMU*J$BrF%`|Wpe_k-(DI_nQeu9z-uk6B{a z3T=n~->*iClQBvkA&)O@d!DwFM&~xDt<2I6BH)SjLYZz z8IQKTh97q9a*EV_BF;-0B;jgClkEj0c&Q59*-P`u@XkB$;HjrK z;EEe=MZqZ-A+_`b;r$&Kp~tTR#k1RB=bFpX6ngM_Z`up^-~l|Whs%FN6}xZWfVbmPKeq=Q`pYMXDv`WN5D zj-R{KY+g^Rfc5y2@DaHU-JBl)Q6x@5h)dGc2<6Ka)cLKjE?mYYc`xkFI60AKm~bv$pUiLS!dyi zC!Xk2W7tR-SfOpU6p@0O+vFGav;mP7=k?d$z?E120e`u91=hX%Z%n^_6Aamt#fev3 zyipRo^+JsJI=SLR2j)P;i1`z{w9liHUK$z^9+xhxWAit3V`;}PF8{3%yPBa9&WbN{ zhzQuVq2r`>zJe7j0z zw>PiuaIEZlidiU7uyV!CI!q6GzQq-7vy^l}m0n75IPbjkG-HVO9F+JS zYI(hf@*dUq=~4Bi+n(F%?ygSMExAKPnNf}}oe*nNMBGLc+gPYEkC0zi`rgy1?C=?^OnfxoYM6uC`vh2?~-CzPA2 z?Vult2SO!ck1D)mZy-OPR`mL+w2wrg+f$l}^4M-Q?rbj}T)Pf2sT0L^W=Kpyd1)D^ zG%yEL(E2(~QBg*njuvG^!O2T--kR^69^L)UgoOic7KWA%SCblx$02KH$Yb?4^6U$5 z48%xRf77pM$3xw&u2>7grAjZI2+W!_t5;9&@Ta^@^(1tC<@)}(eTPUB3D(7n)CM}45GPi) zsTxnEmB$V<2Sn^r_BLJ8z!{yr{3R_n%7KYBg&^gA~ zm)PyC`sS~a+uH$tz?Y4?eZ7XxKD;mQ%+HW+q1 zv`kC~xhTCE$BrF`V@3yxYEP#1Y}~Z^S$x0kN4Kn9pA*F>>W{JSFP@fAuI9;*TYY&haqcsAxJG z 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 literal 0 HcmV?d00001 diff --git a/img/avatar.jpg b/img/avatar.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c12004289a8edc2c7282c1ece268619582a5fa65 GIT binary patch literal 32217 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 xrv8V@erE!UUJOPLV9bT~Y z&-+|b4c<_a_hD|UvcAKW&*&P0=h^kJHjZ;ZpM`SBp|NQWL)%0;zLgn5x2BPm>$|WE zT&-3c>DDdTugY{kic*F0vm}-EoT=d+PB0$VKogD9dVdmh22}?- zy@KRojvInH&H<;k#7MW}+mV`w=sPqNLJcGS-~>>znABd#jgYGFEe|MBh@UuRum{;R ze5+c9s~ms?Yv@|3+uvH9WjX46dwEYgpy)sy#qX2An{=Au`@T)?Nb*yk!PW%79z<4x{#yHXj*DfmB45;Q`8@sr;tE zMUyssq}wV)Q9zTKf!W_vzoK0AbU1g0>3!s#4oReKT8101@8hdXoH^~I0g2v*?AuV( zjI1CI!BN(iI<1i&aaHry_%3(tan+S+(jsvQXx`R=G%lYs|$D5HUgQ?DPX%8j1`hPMLR#DnCNbz;H#4y#r2 zi06@Rtl;enN!QAHd}?Ojufm6F5DDyP!ZBd&lzi~aM=jpHLClm&TTpU0NJOIOQalPf5bS5Wy508kZt zRM#Kq!fWx807Fs|N~pFXBn(#@Pu^4dea&4n*i|4vzt+p^%G0$6<*LL&U^u2J-TDu- z#SGoWgZIJ%TI8a5l=*UY>xdbyF&dik>JBFIcxo2LxJJstGU=kJ?pkgob=%DqF(fTA zud;o95M~a2oJAA7reKzal|_J zZg1bNg*JW7%rbnAn9Mg;H)o`My|Y;qD^OrOfmaP6k{@+khh}o>{^5rGhWv4KT}oW0 z{U;=*9E-ylXK(0iMrtftj`5@&OlY161pP)1U=!(K9>_+>m)OR8c^Z*yo+RrvD-=6( z1hZP)a;k5|H>PkOihT@TZm4_el?&!6EE_FelsuVww;jWA`85mMgX!iO{}NOpIzdK# zEfv7=HcR-8kA@O5A-w}6F>m!Lck%+$+v}yxL2ut0=55|tZZ1PH;)}du)CP!TXV;lJ zUHVXTE2i#(Kg*OzPJb81Ne1i)oHE!zT73OWU0vbk2%)(7Vu=_ToZ&{0@Q}&vjP{bz z{fCl(jza&+5zo=&l0%N&$9FCiH~yaI=Qr6;Ww$061f&cjiDuJ@EVD+&nuclm4gv72%5hz0mS|J%qBZV#Ey-YpNmGI9$vhNZ%K)Pl8j{h zF8P-NZq(1-IS1(R5_)s}_BE-2ylRNf-8WNaG<%No_V9c=18OFwvnf;I#ZFc$>&5&_ppijp&4FKF@_B*L0!V} zzjd_B!yH^jAp5*vhK!8lIM^y^b5UeS#HbJ%@j~tMKOqpPN$06jga}(G@zT2&^JzJm z{Pu)w<;n6AGC)Axx)3|d6ki!0{&Y#MLvO1N80lvVVH7^UX}Fa;X%u zc(}Bdc1QGx1eBEqX|38e+;e`72oUUZTn`tbxxyhp&tO>T#ipi)sDz9#EYMMLK zcyrj&$8Iz-JpW3~uu88`f1Lds(DU%~9CxTta$c0pZoO**ak-tNR-@vRRH1E#h|bNs zu#)xtke{srTm4TEB-of6yFSd1>G^=^4RnzTWP5rEw&IV|_!Q1RLH^K_aKI-BwhZVKPwQyRtZ7a)avp!}$ z(yLmKCXykS;y}S)GY`>B*NW9ys-JW|TuwwyOYXt_D+9kdP22}4Q(8;{&GeoR6c&!@ z47S$uRRCbz9}%6SG0aVFr(<(V?J^L8k}PqS_zk@L6I8hAtAC#|<@%NP!@^&!R5}T! zacHh^;x^}Z^7tn|J`5YD%^4o#r*5k0Z-3!-o}uV9RBI!^`DDJO#3S^9uBQ)P5zYa& z!WPcW&TrsIhTS4C1{%!s((I3=WP!Kh^-DsyrIG6~yp2UhwfSh$%L?l!y(0~TSnszj z{xS?Q(g4EGCI#XUj;h?jtErv^CnMZR!AW(@O?dm9Hbsp~ox1rJn(5YPKwvc(F?
AOLOkO9=|?GZ$ji0%{Mxr>&HHysNp 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 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/back.jpg b/img/back.jpg new file mode 100644 index 0000000000000000000000000000000000000000..106a5d649d91858174131ffb2ae6c336435606af GIT binary patch literal 148011 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 C%JY)| 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 zcmV(xKRvU@kmgE<0T$EKn*nSSU1CCNNYWCQCI$Vl6vfBrQ@c zI$I|(Rw_4IAt_HIDo!3JOhZv;F+E%-F;pZjQ$SN# zTS!!A93)9OM`9^5R3D7JW69IFHtBoPD)m1ASy&nSZ6alSwKx>EHhL- zOk_AjUm+__FE>>@NMSZYT`o9RI!0h8GfW^VOd%^q8ze&{Ek`0NJv2L4Mp9-cElwUN zLnA9dCN4=&T4oj;MlLl|Iz(G9H%TipQAJK)Qe0*~NL?f^Mj|XlCo)MsN?}A$WFIL> zFF8&@OI0A|J3&q@ zH%u`&RVgt=D>Oz`U1l{vTOB4pASpX0Ep{P+w43VQ6e+H9Ax+G(%luW;sAjM^R&7W@cGmV*md= zO;%%7Tw*spMN?W~Yi?yLGC^-~WivTdBP~NSJx>@RH(g?4VP#@-bY(n1MH(YLc6Ve# zL`8afWrKiZF*ZPcePxJ+WR;L)j*4WSmt;yxML9Y@IYLvYpkzotJyuFTT31T6t7S`1 zP-$RGLP}Nt|LBW#OL}Qc|Nl$>|6!YkP5=Mf|NmIy)`G8?OZ4iT`}DK_|Nj;oMc2ts z=V+lp00tU4NklbqVf&(V0mMA5myL3*DW77fCimWi6&ZuZKQb zAD{2X@%yG;z4^VGUR(wJO~E@SafNgjcc>_PbBJ$=rh;HQj!DE`LT_kBCnGYl4$|qB zp*W3F!+J5GPT#4kzY6_6+qFb&SN%dhN!KD_HyZx^(^c-jTABu~`>pa>SDgxHu3k~~ z=Z8(3p(E#98&1_(>ONF`s!7@gfUISh_^;A3CB<*TjOF`qFk@OoAnf}v=_ZPAqjQMF zIB8dpsgO%Q*3g0E#g2~B8m#YvG6XB+U`F!>a2IqH`&(C#VB+-gHA&V-r&NaJ`K%eP za6weW4|zEYnNbmtSn?DPC7et8R+Qq02#wG~(bAsu4C742;OG+yklU7eI>kYrS%s#A zTfLukFjFc%DHZyB>?M=_zDK}K+#fwJDOPWuGj#;B#2P42B+>0i_~mRqLiQ-vhQj>B zQkEnVVPn|Y5=sa*FF`y?8WV-wqoC1g|MZ~EMA?ZbLPU8fFr|>~Cy(}PJ; z0wJ`G4u!vUO|1X~Fw09}vU;hHWki+#>I?jzly$MHClvc$pw(20^?<&`<#p#j@**!m zP5!kDG&9e79Qo)K^y&_-hRu%)4_;BDnF}{(F_8dr9uyd{nB-h1JLvJjcIB6d96jR(=C=5l7z^A!PQ4)(DE<*yy zD5*=L!ybP|-UkoZ-s zE`}m?Shua*MsqEUMlCX~84wl^k>H}jl@kVHwc(9I(d9n5G2 z`VF)_JosfU+#$3YDC>h92?N^v#Hpp{{!sV$r8&{+o((Azu&L3c)nEY*DsFF>!2S+! z(rD-O7O5K#CG!_NQw|{tCfEQ@XRH;cqHb|d#7NgB72_JGbB%iC8f(Cz%^}DSbFx87 zDZMxJ_@{REfANhl-PS3XXMRe8lf%oL(s(d0K@|84m8im0twp`#9`I!}r_`#-Pkuhz z%V!~K5tW06tomJpDsp`r7&*!gd-pl3b^fKm2yeW!4gY^~)}nSeiFt2RB=v!m!0Z`kO1(5AcR8oRRb`ly~V?ftDBfoTr*5 z4%%XcQH?-#3^L!ItS$(mB}Kcsb1;}^O8N-wQ?_N8R-e1Anw<{=R=Wd`=hlckg7ypq zaILAvEq{X!iz%hgWE;5OC?45JVeq9&+*T)V@nmiAlHp5Mui7WdIIL2xht+sgkD3b` zb^^&6EI1jUBv}4u?JRK`G7L3cy!m-P0%D}CE1$cOG9H122htq}yl6fQV!$0~6U3fp zTUoE?FBkgtWxV9%a$Gb7{S%a z6Go@Z8k2_v3i)Ayatg-1xcV%p^yXqZy^G!#(8Z$MOq|2(iU*VQs!xKtl>8m!}gd1xPyLpO+$A!%d- zQ2~ZA!qDg&+S?Wi*3?n4Rg-ZAGAK9>R+@q@d}2AIt@o6!;bY%tUL@k;;g6Mw!lGu3 z+OF2qDNl@fb3@el=53+?X&|w)B1B=!#kz>_Rk7iHwI7?Ja0VcL}FOA7&LWKco(O%^*oq_SSfYV!|2@3$3Zk zXof4{Y-Zw^$QILfos$)E}uCTlQ_0Yz_xdH^*vIT0z# zzB9Vg47Pj7lv16Ja5EJnI2Us!bdFLxId^GPInhdSfox6(QroFl*sU`K2B|3{3A?-z zh|jB4rkiOygRwLj%|H$L{@Fj-i?lCVB5_*t>73pr_c`q+H~M#no^qvv85eTDY3H;q zGh9?HG>BA)g4A7>f>5dY(CadNwVJk^B^-$GN<*}&D7QGTG8A>1W4>FVh5HeS>Ebd! zY9U*jHf+fXTRhbCHN9Bo{m^$cp@16u2K8c6a_3as7=hOp$bsKdpI&92v!SvE%p;RY zO^zo_>Evh4V#MhnSffGNn>wvRRysD1?9V>uXIN5t0O&mDZCZMcRcTcVnk-kH>LOzi z(%&TsJE2Amd9j;nVzP-8&Q9bE0&lIOS)X>g|J$b5n^iLUBYQZBR!-3aAjmML9*RTuUclM$;D#fO<(>|`wgYuJ&HSr}_w{J^Yq zY{o>I0BYL2cia-h+YAcKShZpdJPuWFXhpV?4Pzj~0mv;WEnOG*8xrH+deqY`UJhNjjo5qZ>@UHSx< z+29ib4AJ#rT$&_2@DM1PKsCYqZ*f-;&W3q@jP7}DTqMJQ;VtE3Fv-z(^X%Oo^D|(@ zO&XK6)T;I~?rhLtMtCDRmRIJ@ znN?oB?6a3cHRhfape=FI?3PV)w%i(Pbx0Zut5v>bX&0EMx-iRmU)gO;m>W|Rgw>L$ za#z+;+0}78{h4m@Se=!I%4?1oTc2|h>E3H-Z&6tDa*l+7OcblonU2ybu&cXfXhN4b zOjB8xtD7q4;FU#C*=k_;&488l%#Nf1_eOa_x%O>1a%5lqXR|b$@BPh6mnCS2n9>xZ zjjo(1fOiyG+KHT{%@@GGV+zuy^x0BzAudDmZNNAM-MV1jaVlUd1<9sa!5szRS5a^r zXJmhDQ_MBHW;Cr8BuaZw)Hwfh{0@ENJ0_!r9TtOC=!<-X7Clh#RUVCs>XKA_ONzYS zAC`frIK$smbO8XA2V2|Au&(D@E8bMOz0UkSPlA|xv3^wzhfa^#t}t9V(97$OodcQ5zdhQqD3*2okR6hKEyJOw`^-yJ($f+OF}A8u~l z6LMKQz|0vBh9^kt4U$&mnMT(OL!KEQnRlwDXJTPYKky{ zMWeYvtpY^%i7~w%Dm%M)Uz77W!;!Ewha@Xu^Y4}VN$!|f4fnjcpUF6DalSo@hU<GlR9@3QYJcCiGbI!aa8x zK@fc95V*Xm87LoxzD_fZ%QghT&1v8@7L}$Q7shzYM+L$$YQ{DGh|GAKAemE;52YS; zZf&^9elC>gM0g&^FQk)9`&Q zA4*_5#oahj>dATk@&3^0{vON-)bAX5)o9V^m7ZpJ-sG!k{^n&H$Gqt{XFZQ2QG z+m;e)Eq2F2OPY7@afXSHaYuI!TF_F6zBg8pE^7YsiZ2(bd}k)pVA}BQSNe{+QSL(y4kN@@bCr1W>Om=_jd(GnbZ5C}or)2qqQL4AySRtK541{=cJrrhndly;v?8C*S)Re`U8>eN>Ffmvxp zW9I|dPmRUD(8XdM_5F*am*ahofXp6rpVWE)&`|XCxPho*DWmtdxd@xXIczI_L({Q$ z&03z|bG}ekRg}Yo67|aeb_}u1K$4U@H6m1`gxDm@=afZGj}DYD+$rU4n6of|;7llMkEyvfB!uM5bjq=t2F@|-1JOCr@Wb%4jDFKrvT*cD0ArV( zJV(T5GnlRvqn=UKTLP`O!v-T&%dvsx=nLDRc~K~;x+wyW5;1&1*g!gRyr z_KBr|{jq5?j;d2a{bI%{fF*K?dBY~qK#Pu1E2gYMnp)i#FuBULy!R#v*nOrM_R83m zuhIL}&{yQg)6^^sA7R*pN5yVzH(nAJGMw8&to4Ea+C3D=m%(M;8Y)T(%XMFQUqv*0J3-BF}+3L~&1Zg<&oy12qEA7NW z`hiG{ZBssgz`jNrcBvlQnH>rM>rUfX+-92l3IxosLI|~=I^{5PF`|ud+b2@uE4gHk z8P?|}xiwIOIK{+Gge}@ao$Afo%Fvn@%#!<4z#C}L7gdD&gc$Y$9l8@q?C*Fkz>!xp z#+!IMAk@d3y(87@C^N79I1x%9e_Lk2wD_K0C0rGjEMav}+T=ILt(&@sF4Nz5S-5<%fxwuBm3PYwvh@%YE2y+5geeaVx3T2L#N|ECGh@5- zsd?*gijdSaQThA4+apUUR*ZB46>U$De~Se)oh(Y~@Kme4^;weU)dQz=O0V`1s7@K@ zzyjx+U2U6{02Of6gVAK}|HBOKIgdM-;Mp)$LWd8SYA!_06!IDZp9bRny{K0RY8`;o zWt9TF0$hqsNPzUGJP!&d z5I(N=OdnGGR}RO}S4m9A-T>c+8>0T0WC@Zv54-=GijpJNef*6Zx>?>io88vL-Xuy4 zhxM*Op9qSyW&!LMHf1|Av#>q_+sZk+8A3#Dxp)%?Iji*Hq)e3f`;D~<_dZG#ahO4g z+-xXr8tZZ4~GdC7nokL$t$*8>m==N{o}aCI5q1L zj>I|N5VOk7NRCcB<>#qHn)65YdV@ZpBFCs(Le3wYoeOd!Hw;9p3w;UQ|DvgiAwOf< zFrp~C>k+>o$6*uy9InC>=Sr;3Xf)0rFDR^-aMduw6W)w=EndI{h1Y%JzT*H@;36e) z&ER?2yM5B#t%`rCk7*818>k@2M!2BH1D1!Z9)Rq9;1XCU zJy|9EWN2u6p9>P$TuBHiVoS!RG{F>(>WCi}9n)JlfB!0ef5K2uI3{I zmyG9<;f)?~r12-tu*}lbhX%i>Zly1f6)iywRM0hRD}osD(cD%_r!JYjv3fRwU`T!r zA@3fk(=CRsVNm6`QStT!MO;F{Ga2qyHL*>pGdRqpaij?|clQ@rW0D5n9H;~{OAHyP zNT^guZz_fCXiq4iAK$mw1k_muFW68h4P?I3{-tWVj^tJj1DC4w#SLZS&h@xHiG)yD zf%WKSki8Vqeysb_4<~SDysczoqf2B_qGfV&i79aF>7%pS*<}-EsHHjO(KTPj4Z)Y@ zmv2ww>xymQFT)??9OhPav|gq;tP%|UHH6EATr{FHO&uA#Kp**bo8ME>!Mn9HuQ=&E zQUXR^H?WcbzRfkUR8HZ>Kk~>)T%X~286-rFKG#R4%ui* zXgT;6`YuSkJ5}^O9A|=fF?y1Yqn9TPQUKcK*sNDw3_6d5}HSx4$^NBpi$?JZa z$nj_!7lNIClm!^}c|RRlYc}zF zBd57G5i7eX+@rt#%rRvc(qa!X)KxvHk*E^^o_h>XBj2cOcDE-M5Y)2jCL<*@sLA!b znJ_*dBYep;4C<#I$zN}}P2R!H$q1^xULjW@Enaa$YoZWAF!8{!Bj$>JMOAwV*`cPB zDoi71pBukv>%R?Md?%mTQ!Y}xQ;=7JBhvneY5ZB_-j#`61MpJ<)V(O(n%-FT3Y?{M z^;Jq0b?s|=e96gQd{30C@qM$?d&TJIovi-6P1PE5V+d3ZL%91Q=mpD<5h@;#Q!9vx zF++utrq6FrnXs1JKjtagay)`xw5)~sRp~J~B3iLlg@U>9rBMbgAhGLxnI zGLfkvg$37u2_BhQ)H+n+RlO_hXCL_%(LkwZTu{hMTs9bC+kKy_UMb!|yt64pkY^-k z?yDJml>yLh1egx=t_`F#mKKe04C-QPo{C}b*Yo;B8kcL%7(xkIM>Jp_HYypR=6p-j zgQs3%W%8%4d`<@ykQ`&IQqqLV$gRJK2UctCqKF1{n_L~@<#>RUEurx-6Q#3prBb>+ zK-pDjvWC>?Q$e-2_ArK*#-*#1wXauyIU-ZXE#|bzI_I()MRnFaWITY$b zmw<%cPZ=dOFm7y!-}RDOrat|E37`dBgKmr*u}=E09NQc?3G#aEi%midXi!=Y(+fml zA<9r~JsN1qWd}8{8Zg&+-PAEkAAj*sdIW0k6ZPFV`~P;r4=^3ZZ=we0NVm*t=-XGkL*d zGXG{)QA;$TM5jbyRW$j+EYD;`WQrr4Rg5an+duH;=g}|sIc9xp86~88c!mf_>3VSz zcUco*+D(5ZP;S6e!&UVxh+ZSMlsqs`))T-W%=Q$_yWHSILS07u6&?%zQ#5jG7p)nP zA^2Nf6{Wpf*gA{8X4m$Z#x!wtaZ1khaOx42=+VLZ>ZWcFY<78alni7ICtmh*xJ>C+ z%Rn|(R2FUgOh(NbxKogDVcj(9lIKnQH{WVK6THT1h+K=YYDRYe@&@d+@Qx8~Ka$Zy zDFoka-5#kqSg#XwZ{2kQd`i8Gjt>g6Fj|JC^=kXfW``@)+Lc8Iaa)?jTJ*3h>FIi1 zmu=jqI{Le#A%3v}b4{29{Re=Slh^LYypM;{w$h*~zl|S48JnMRoTQ}9Ko@~6O+BJd zT!7F^cHQjr4SkKcW-Oss^m{s3DbTh+JFv^J9~x_idTH`07T}7XFS>BMb*7n}P7w%E ztd>1V0X5w)>;8r@%R|I0YbL4E+}Jb?3m9cQTIB-R=dL8=AwuRq^)fCC$nwt|%nab^ z?yZqZ@E0J0i*>llDVO-vx9D4QKsXQs^6W_}7gedWu`Vqt1uWH(B5N4;Nnr*3cxfH) z(#h-bnDbA*B@W&zCu?;g&0!a#G2?uEOxlZoEmcH5KdrY+2MAU8$xp>EOI1+ryFlGa}kMWTu&K7gmxDEJ}D7l>kI64 zdFnNtOBV)q6Qro6oLUUA)RWrDsWXdIX0|fv|Mp1kVqP!WU4vGR$SZNLFffFS-b;iU3j>6 z%BnOA%KfO;uoj-C)dU_~V5Q?OC3!{zs9X4`g13FWce}b^f4h6&t_|~3OR$+Y&p89l zdfV14RP|Sar_rul%P$*CXG0))iHdNm$(II|caPY*fN@Ax^(dD#AIy~*Fg}Ji55OtU zHQU53eis9vnpuQEOEWvnY_*j6>%Yk(G`O5Ve*E z_#%-uXq?JFLSJOOjS?@$bP#YbWZe&X8bXWhb&Z#Sg4E{6Q}1A+W(*56Hi3n%hQcyX z8%dlPr2IDC=KV*8dwAyv3CVzSx6*dzPy_sK-l zQbdjA!MTXMyBE24UHD1(8SovYs^SPYS$mxs0Tf)A)Y4wrjU+uhtnoaHdm^-X>Z7}P zFshYFS&86)ep5efrR6txSrUEqRRb?ehGRI>veb=%Fqw^dM2HX*hzn5!HX)lXj;(OY zX@%RaQJ4|1^i(LDe!#v(DN;__CKp#dfXwC153PFIC9ySvOBdm)A?VxqN+^btc@@4< z61ffgOOpW`o1p9^=@11r55{tXW<;)fWbzb`rO@Rso@S@F@$JqVwwQ(f>;HL>GQ#5i z8rcHRiFPStee8OCHfG~;j=F{`+N6Sl`iP%c39+v|DPkV`6a7Ar*$25>Ze(gO(Yk|e z?h{r27xIfc^>fvYy)@ZUATu-+P;>^2z6~O0kQz;d7ux2!L&}B<(6cDdCyirLeNM}w zS%8D`n_$~2rEs9BMd(Bk)j|Y=G;YO3=5pv%kEADnIPpX^4tGrrH!M*nX;Q%~g8H6= z0^iIR`%}iaY+5nvy)tP_bX+i^C5V@Pa$;r~4gAx!N<9w44)3ftuA!-xgjsSE2`J); zX3b=~@Y&2W^zk(LEn-=(>xVG__IeYzF{#T?r4mCzHoG*$$V`qZm~R^PX9ng!%A>3L z=6tN~QsE{TObMmQ>8E9ETBlQ#ZoyiEEq;)Y_&@7hlaE`@-QDUXzSCyO6n_$1qtBVu zu=t)coSfQubE$Y-7MIzA>M!c|8%eh0@xaHt@#IKIe=%*of4i0z+plRYET5UHAr!5CL+bLP^ReuH+rv&4dffG40#{2mCH?8YUzDZO1y&*60i~|v zJ#==p(6b^5U-wuV*)x4-6H|-gOIk?v=SdV^W8`(fSm@e*j$AKN{mhyeFv+JJ6bt%8 zO0l#(<1_Ne0PBS#d0*&E-u|ZKZm*^xx~w6pQc}Z1YGhblt~WoK>`r5@0*Gr^ubAE$ zP=ETHl;%v|$Npqv0Gu_6zVT0O>l+a-0{`U(e|;%FWe$IGUy-Z-Gw+M8Cz_U8TPz0Qql+jWepp%xqqS)jIuP|S&z2ml*GeY8otQ+ zv7hE_s?i|rhI<8}=_k51@W&Vp$cXse?;|o=3I{R4ey`S0b0T{hFlUHv{HWr(W(M7_ zFtFrH_2BheXTW5|?Bx*-I(NC8JjH%`QgO=N0G&gD8@@zm>c5PKRVmraS@usIiqbgm z+vN9kqJkj$YF7NL_+FQUe$W%`reEa74K0Hu2Rm zS3?U6=88jYw?rLpacP3>j|__iNisr`ijemC)tc-vl$^3qUwG7SPr9qI6D(0yKNYVrh~qO z?|;!$mJm#V6nQ#{z79*0Mwklt*fC~U2*W>dsI~(05qnzA`%27=E%5Xa?mhr3s5u3_T``+Pi*zBU8nV9CSl zXu+E>&1xVEF2A;&NIv^!Z&NSNL{Q0kNZwaIntu-{+zcdmDlB772Z1# z_?B27ie{li5{K$ov}jqLk&mN)7-@-m(X}koX4+6e7>L;F-Np#ZoLOy#>@N-&Nu_~E zoP{-6z$O4Yu20dQl8Iy__t0ey`z9D-WvNHCl(~xpib(~08M%8}oZoigawB-K z-a@@vn)ja?%$w+HKiXn8%^tFCA!^p#U5Q(On9lhNDvL(!k_YwUdB&iCI(I4C&$g94 z@KI=$`3?=Qu9#0=j36*!hp+x@DF)uAxzlLEbB#)zGfpF#+< zzI&_;4_XU$2Id4+GDb1oV9Adv{`3e!>(^8@s|!mB%z)iQg21oWQqSxm4+j1fno>bw z%bsX(G#i;E&bBEA^ae`kQD91J%Y$nAwF; zLDpB!C$Lbm*wubwUO^lztwQ$O!_@m(fLhxctuv;KpAV|wnBl0I-F){*If0NULx|K! zkes?*H6iMEWLm{nfIPgHoW-=iZ~63J8eO;lii0eG=faw7meBwc+_KM>v6i#6!eMAd z+}sO-BQ4^|Eg11tG!cq%DZR9r``8I9*A8yqF0U9n@+YJ*z-6<&bgBvhxn67%==+Y9 ze$N|GSwt@a@=;!n4&5}%H(jA4)Y6)E+iSk|j7FcC(8WojEu$;)PD3WBf(hh7mPZ}8=I9%QA4#-dj+nW%O|MNf`!uLM#YK_PF+>?TuErrkwnba~>y~0o#zvOD3 z8qZa|R|JFeGI6ntIN4a5i|YWm(48oSa1u?q*uAbLLN^X#%m*Zyw~VluKhmDaPZT&Z zExP}*M=z@-7&f8|_;yE%FY()0e0c}}Uy%<`Z_`wj!u0BF8;_lW9#+#~g|OQyquB>r zU271^ZUB5vvkeEkGsn@!*kze}e2#Z=pax<9Q&Ga=! z$Y2d+7qy2lyZ#;z7C6D&BBM-Y=%uN4Ln=EYk{s`oS4-B$3~gI}OC$mnf}!0<@E%e# zvM@M?Q$q19HyI7=ek!_HtjOGrhLGJ8ynz_aRm~V36x-}FjP#7O2|pjaZa0x28$I*D z9iUST-P0!mTC>o!L_Q#CU=M0;EI#i7DQcA#s;ZK4V?RGM)*ch9!q(;Ri?$SN?fUE8Ez)D zUASHhlx}wCUmM8k<|BWFt5q0ApP;`>s_T%ghiLlB4N(hZG@E@3c5~-4C-HI@xf#+T z5d;l>#lQ)Gw;GrgQ%;Q+wf{Dcm-6H4HtKRIcqEvf-~>O~VtIC%;t(isfyw16k z|3#h#A*$`A(Zj=<7YsEuN~>uWhqQd2(*_H%0J0%VZS9SBaa z!Hb*=fisUEQ5dy(>gH1eBK&dsGWPI&?2JFQ>kLMwLX`%rb1_1E{oZle7fptqaMUI= zOgP_dDaIUfIU?l5zuVg^i=iU~NNU)Y?i%MB4KL6uma;M*vt%FYD!g~0iieD?f5AJD zNCE4a(-d_#U93J0k~y;vC36B_g8258qt&hu7~M`0@L^lGtSCA2+MKSL)|&b#=tN(q{%T2RB+;aPY!Y)x%rXA9A`QDr9*uuNlXw7XW&uG61NDRMeMKL@S!3 zdwidfHP{f3p)?Y7Yes5zh8*QiGen|_Ov#v419?-VZFJ3YvX@Qp3~K5&_Xay<)&r1y z80Cj^g+NJM5=X`jK>JDq^L-SZ+M+|YlcNi`2X$0&4AEYtPb&TJ8P)Wf8I92Pc_dLIDOQxH>r4{4; zy3w=h6oF550)47(nlYMYoNRU}Ai_Lga}KIQxhhN*Yo0*B`f66LwWy*l^NycBAZ6LcVV@j=LVX*+XMRWPLyg3^d|XIME3jJ+R$M z#XM@=WVADG&s{KgNb+CpEz;v&usg0tYkA#m^twxX!Y=IWOa08+XH1G3zZy3c$qAW{ zycaAqLVF>DsECbLXd@7ExIu2X+75V5#q@OhGIrt9XUi$SdCJ@$?$a4crcGF{*<7(& z)G~=9+Et^cr=_(g!tdbtvn(pz3go`uo%2qnS zb}RT;QZsbO*jt>d=M4say`7%2v3xHmM`3hw@g&c5-8#*)-29|a~lLv1M| z0|Ur{T0jdiQ#Xjp^VrlN<02F*1Kqi{A6)8acsxQQ|BffI`IvCx--jLPA5tHEfd#_t70DBzCo*T5l zMhPYVV#FpH-j)Df-~MH87onjnSEPY*o0$2h?xEh9JwlI_`9%{SVB82HmoO;oWF#$K z!zk+uZWPQw{X18XHt_=2<*97r`2wOXS?isLC~MN{i&2;vWV=Owd!(&Q*qaSNsLx2u6P)W8*Qfc1?i*Cr84ZmVAy~j~D!|MA8yBJ0P-DC#;-ZM^B?b6MO&pVusg+}jFGY(!aNLd5d zGh+jMAtclZ_c`A#_sPyUmD;CzI~Q>Bc(K(8BI+ zAq%QnQ&dNo9&Z5wJ?46!m5#&z>`kFi7y8@FCHz-p4$PTlpa#=v4FRvQLXxo7>2q*8 zsJ!(8^FTK>js4S;^qh^gim*hziTLFj+!`87?1k{3GJ4>LJ{j4A*lM{NF5ou1Ke}rf z3f=9vX0W12GB{Ev3U&K8jLI;aAl93_nGN*M96)8%(8I&q{Vgz17yFISS^BB&m7x)^ zGq(y4H#3O0&HV&L_xPyOb&Cb}FF;enQihp(X|Z2c+CtvzSo;C;cS z82A{rj$qu&%Q^P0&`s2a@7rmx_qMcYHO>xdKrGixN%T7;y~R+AlfP0-m6V`^?6)!muYX?|L} zkLbcx-2wjorw%n~IFN|fgS;Gb$1(6dm$jn_T^J+C%n>#gu@28?Bqc%GL3-5={!E+x z<~zCn+0LDzyXwa4TZ(*39K5?HRSqMUYFx0*Iby}J-_Jny4Dvf6x^b>KV0r4{@c*^^ zyb8F$#96W|)jYi$3O^v(*$+9`+tVk2Su3{O!^AYLJNXn8|eZVi@3V_Qy>@cRJ{-uvrYW{x)9M! zu*qS=jFvv5mVC9}oUsFAzH7ym4`Cu*8JT3UpKpPm=AI;Eci;pE=NXvHiCkT4RfF8>&g&vD zBLc#P1I)4-s)xo@5G6^L)CIDCW}UN)o*3hr2cwze18@LSQau@25mf^g{i#DiD|lOX zzh0{Bu0sQ9=EOj@yR;1xn2WjXgYO@A4Ejp2rD&J^hL4g37z`#(tXwVV z2Dfbtv}N3L$Oiyuj5Qecjyka}biY5mcZ{f4FOdG+c{*ZRu8+!A4wLvPsz8=7s^m~I zHg8#m`FzZi|KjXSa2>f}APNra62AXM1Gp(YvkM$zVkCcTt(4kUi8~n=;p0^RY#}n4 zJv!+(DKw8FkQ#)V&stUD{Cj-9_<2+z?YSbf{imce$gls71@rnmmDk zl{J-YmceLrXHhk!(Swiv_nd-*!qw}Yx8Gk54lBnu%QRiO&gXr&Z+R|m{+EQlVW-z@( zbj);oRmy#M(I37;J_}P3A;&yi$~&Tvx)hUB`~W_50Bq7h5whbpRtJITA+&0L(WS)C{o+jY^XKi6R|Wpz(%$P zEUjo#y_>pZ?5-`1TlT-`KADJ4e2sb z8?U?IFtl5MC3P&-AIheo&fO}F&Q1XxWDU184&Vp)zZjj(q9A`}Wf;t2EU!MUy-v2l zE3(mEuKp*wF-dxaCkpyt0>!gXTbO}jO+|)u++9S5-BS&tbYe)PE`zHJksQAy*RjAtCVT=8jM~?z{?!^Gj zCx}F?IQUUfONtANn2JdU#s$b?hn~O~fG>2TAuyq9a&aNTzquP#aZ3m~<#$KU<7>J2 z+4%;<@fz0Lj-s*sRCe!d5zaI(b;tlxLpCV285~_Z<2*!s#DPJ^T%x?!jnK^iv`H(& zAbt@3+H18l-F#|YcnK^IuAN)npQ-&4Qj+QZ4Ney!K7?)K>^UD{lIi#%Vc^7Gj&$st zWbU2)gQt|D08*`ZnrDQ6UhDJpercaKOSwT-yaj>L`b7#GO`|b6eS&LAaM}RFEgiof zHlbUfSE5|9zg$RC)CbTOc_6yV8~ItqX3|N#56;$j+E+0qR1ikTxVe@Jc`h@Q&C52V z6blK08`g-93-$IuKD^+wp1NtE76#Yr&*d3aR1$Qee2nkR?98RQhK4J>qT57!sjA|d zfK?pfM!BejP;UcFEyf21z-=H^A0b&+)NM+Dnoul*r6O#HE*~2&TYNO)n8FF)H3TX> z!#~kv+V+t#i3_lZN3K)N_r2;1L*4V9c1$gg2~B6u8P2z;gRi4Km2S+U_h}U~PvflP zc9`ePWX_}W354d;)XYbBf|fN6>t3Q**>OK-^6L#9a?@?ADVfv#JA${5X41S%S$J-) zzK1M|J$=Q(_q$ZXO#qS^w>w!f1W%bUA=K_^au4OiTT@Dff^l{F*&J<5r(nFLRu66f|77{ZC34yr&w&oua1{3gkQ$l_CkNc5Od8? z@WjgykU5j|6zWW@3f#!7pL%*D=@&Bi_uTFk%qM>Kukczt5Y$yv^HN5%qfhTlgSzJs z^*Z=VGeCa1zFXqG;7sK-o{XR;wkPw|acmjX?%|kn)dk*~WVGGoiOTf3fHwo@4J|)& zUI%gxI161JlRp$Pgv07*jV4wAPRW?8csD!SQz7mQuB#A6amoG?8|ih-vHUQS1`7dc zehE)8<(AG5EU306lkDcWbnZECsJH^Yy)`+%b*4_(tKg8La zBD}iu1S#tFBT!2Vv(L@l@OMONaAS7@o!AqHOHg;(mRyLWc&B27a%iCfK%6bF405M% z4^&dKgp)Ru^dKd^jnnmI^)K&W$`qN&#}VOqH{I(X%Sdq=u+o@zOE%dY7nN9b(iu4| zsVkUV|6#7v=JlckNI*_FMdI04{dKaWzST9wB6J2uv5_jK>@qD8L_U)0JvLENjfIi3 zbkA?HA^`$Ybz_R}nsnhXbinS8Pz93W<}?&0*oam|B72>8%I}ha$U;rj%Z>L#jNY&u zRuDirDsj-SrhcH7o5)Ska5uX)sY>F2$FBxCnsmSVG!%Tx3F;M0_!Z|578%iiLe`4wQ>M9K*_(wZ9Q;)uE1)r*ymT2 z{0{7#sGZgI0?cYTF_~Py;Dc@KITA28e{ZV|OLH*?_A}Z=kpoKY=>6~7>UCHMG-<4_ zFqgZ*f*5@4;P+X^S*(xU6$hSn=E|45&dS^F8|zYjO6UAY`~L3jCV3B~;dBPDVXiugk-m8XAVL8W{SiBy zZW4tVjRJi#Cod{ZMHxds^#x7EBNw?k+-@OtF}f)Dx=iz6EiOrffPS(f3Ph;spIPCa zsu_D|!1Pea#e@6=fyg(YO^?qK8f5O~qw45+0Gt4*;=iHJ^7gLCnDO7TQe zNDXWmTEIFyukJ@wDsBp`KndJZT5-*&p|g+~hxF%<`0i&A)%=Qi)Pz0#R_Q)~L4C^$ zRhpZm@vOS#7t#JrQSU$WWIkkHTu!SE?Od`-uQlu1?ysxG7<b)iF>aJ-_Pu5TFA1QVk9v$5n|4lyO#5l52F8 zhpC1c728AF#u^x@@AoZ;hTs4*Z=~4h(jOv-RMPjMB2Wgvgxj-#4`F4krVU`!pb$N< z;y@Pe*~D4qQj}t8JSi3!$2hAN!anL?CIWF4N$9tg=L#Y&5g2FTQ-y!{`DT@8_0y|7 zjF6vrq|lkRD9QEDyYn?>K;5m1M}$|aAH7E$c(a5Ra;%FYtmp9f%}5Y zyk_w<%Ejn4&7f;SW$S_x&2r~K3A1nfU>cO~{;z4^VJ^I%30}MJaK465n{g%D>-w|K zHz8Rwd(TCjy^2H}Z9U1Gl8=O`E4szQFa72YPs7jv#Dbzwv7t$uj zXA~z)8sC=zHCY7+K?E;eOD2`?P*AAi*|oZdbozPlB@w1I7F1Hak{?LC59T~HVa64mP4C=m(f*wfs4bG} z4S5VLcy`lpQv;6 zRjbrEt>Ne|l7m*&^lm#u(*PFJN29q%#mWh1)8~SR+)5^QrNv6?9dQF~MBv<8hdEJ#SU zu_H#D*wodYF&$wWeF1B{NpTY`V8n~HB(8{N@lJx}#&ZWzW@$U?Kb&ljD<)jz6fn#1sEcZ+m)px)QaUGiPi zMc~F*t`c zScI)pLM4g@BcbJ$1Cf-?w;$;G3_z18T={Eh`g+*!Dc)4>N`lF6i-uNhBJkxkUd?iD z>a>e;9~F#r-(U1OHWqAA9;Iw?sYxS1Rn1+K!36%Qc}*&ciVGRo5g~a*D+pC8bh{8( ztZE=c4wQli7DLjv(M6KdP13)}kDEWB7-8&bg`$)rn_L43g6p5651y2f0*x?wY4XKa z)uBRnO)#%gt@rZ5*n=I!WYt&>1$y*?Kj}aM!1uJQ&B6}{(%|f>tqS8W(1S2Vd&}_8 z+NDQ0fRUDJHO(!IS?l>c#94MdRq++@OGvH=TIgnb2&A9300aGcI)_rFux$cn^M}e z&xuvlZy1fkQ2`0?F^T}?qE7u6iy2LfsG~Q&g4;mLiz>GO{DG$k^4D@~!+%8(Wb#5h zxs?b%DTLnzebw>^;R{&RHQ+@KSCV6m>k6w$O#znP7iwGF%M{1u7DWTsxhsObHtJG{!LMXQteVL&f1`Pnq@;&? z{;}Nu^YhdRN_``kQdqwS2q9!en_Oou39JR1fW)T8b@U$XoMqTeQ_9~LaCvAfv4Htt zOaHiF;1FDKTiKlIo})jFQ39Gqfi;9LB#pR}JNe8%+n5`}n~MsPWo!!7rRm3M`g`l- zTIN}N$K;c~l3krJw)6sMX^Mk%U{7TI6TMTM_2gF)Ot@sg4%sDFhfpaUvTxSGs+(2G zdVZ$`A3dQOg0XNNQHY~~eyD9p&xd=eh~sgA*)3WwzN*?>xidz=-6vECa}S)t&=&sG zY(ldOp52j=XbMR%6;U?;!cEtR5_;=zK?n(V2&_7QOW%jvBgvtHh3V|~841y|;;ap{ zeF!5^hw#}t=HKecbP+bRj1*V&pM^39l6Wt{9fOxxem^9ze*uD__$>lZsUs2RI(Gt) z;wcujs5`$}=qzqwG^;%qQfhIZ2suy7my>)ULF$KFhsp&D=V*Bp;at%;q~aH)&o4MH zyi<#g*wPQ`g#ldt=kR*U1hBijEhUc6DZ*|f>gZlGgSTcl-?>W%{p`I(lgurAWp>-6 zbjo}6K<55ppb2ockHZqo#%yr`MlQbDm=Do5&D%JymYCYK?t`_{rqf^wEXHhD0np16 z7*b=km5jHCzJ3K_C*AJ&>(a;^CM@f?8vkmUeM-})dU6e&cdw9tr7JuF^`hn0@2P#Y8m8!f7E=IqNw%Co@2Yi{j(=#T?u$@s8 zUfp296Xwn}iH=mBbU$Ys*+~SlxXh~Rk(GBZGOlnqiQR=C#Q>;`E!yEt*%Z|CLTezx zNfTHTz>(1NtD#-{OJW9*QlmBmL%y;mlYT>lfUrD6LTnK>@(}|-Kx;yvAH~u#nZ~H*ns+Ez5kq6AtOK!i3Mz zO~H)qyBs01c@9x+vW?ik$gaT=mjf7$ca*B4z+>nM$uGz)e(WVV4fru+am*bqWjl&Y z3~Y1{J4X5zV_Fo&ps0dN;I`XToL7!~a1XI}z^3+`3L#9Qss<$`MR9PRO9q&8$Kvd- z#=sPwU?k$Zw+&K1m6h;~{CpYqnyhx}z?X_Li*o`CtolEah}$oN>LU>l5P+9a5lKJ7 zL}L@sK`#Oy-9xSpML<0Wg}JljIWcIv1Th)WxzO-t zPRSBC*_yF9Z#$*+ha}TS8ayt%>YDfQlLHI9NtAPkwuy{6d(j@Vi=x@;cp!8((DKR^ zDXCn|+&sKSQl5tAOYl@iI<2&9KnGB7D{IFGafbD@?N~;iWAQ)M&IC)68U~`HQe2|% ze^Hi{{Yx1Lz2Q+nlj&7H@*jlF0Ul-^DVhxF=yn z4L^zanN0iL@0M1Is5y#j!%G+r8kdpyGKKiUGO?M3FB+1$Q*UyBL4%LguV? zl8E43?TDpWOVPQ-oq`|_@&WhS9HHI62_%5%1Gso{fs$wMEj@ot^mft-5ZuyZxyshy zxrlv;NSe8Q2&G|1G(VYXyrpMa_InSCNu7#($~BzR_0PzOw0tNj&o|afSdjZ51NrkZP>}9Eq2zj90!y0duO?CJv9&u*FXkR6Vma^W+RNfK@Ya zw(-KowpOW|tl`OvETQ#<3fOIOGFZ4C>XRsz=KPUnBqj=GIi5KAHnHCxn|W-$de<0a zz8)OEmrnyToAw8R@+folt{wX)Xu!GFJ5Lt{TRKo)l;+R8Kne_gI=fEsuCXvc9~PVQ z?kClA2B(~@{zTPG05A)oD3HTCbX?E!Q>3EBkLG27QoIN;-=HtT*|5wm> zsEre_@Sz(vi$QgZb<;oz6naQQ&nkj70quRs&H3i~5le#I=BfqfTX=SgalMfu1fVff zZ5eL0#lgc)qBh{d#0dCcgIB1ubu8C0wj=16^wg>Pmpky;^SA-c)S|Qy&qY{G-(Lj* zd46LjG?CK?92B5Ycf8)J3ugAaS=db_{3oPMq`7zQ48@ z=(63hCgWc0yd;G=TCp=l4k@0jlroSQtfYfA?+Soq$S2L(evnF+K>r+JkbA_l~A zmDVWz4va!y08JrL?Z0KLghxh*36u+mmZP9M3=%L-TtLzok^&(Lw}oagzGD*uGzZ@= z0Kgc6We2HlkPpDBZWK7rl(iO__G%3W+ZC!#3P7uRVxd$B@HA;|KVX5bq`4OHbW`XA zilmc>q|tn_&+Jl_>4xqI;4r?W6%fTW=}>XQ84|FwepFct7^c8h3m`_{QP)D0-KCg7 zJgI81_Q2qqWaRPAojg&Gw;`ccE{ z_Ql%|14#H%{u~aWT-dP<@wiiZpRZb^riMGK{*xYyVUrEGj5Y+Wng&U)-E-E>2?eL8 z9Hq++jT4DUbtaLRi^2Z+o$%DI7yY3Zyew__>`9Z?S-m^2lgYfP!Ce_X-zfZXi;=1+ zUI{(-%Z92%4D&XBd{_}$Kdz#g9hF6XRueR7@I~w`)w-46L0}1btH^W?vvp07In9Y& zLAPQ>@8K5DM+kqxil{DdrLeFSu7U`b^~&9$1`8&6Ui2Ltxd*`l&%~J+Q7T;N(4qsc zC@uw?N@OQQ-`qEvAe(?9Rf#rSSL#j|+<@=xN7aMbgjJPvcvK_|+#+CIbfD8dxW@Z!NAm*ACYQX$#i)NZMj6BSagCw489&$t+Fi%n)?9GfFVULb65(tdyBN4aeA;x(=Yv z`Z2n@48u7~o%x^qcxJTvp`%;g@c(V%UC5rUORP>*jAIzz3LcM9JSRNe-JGm=+k?Gt zdTH+Y98HKpQSwz;)9j_oRxNH&QwxJz4Vi@ZjY3mZb~H&6@Lr2=2|);GQm=$$gjEYX zQ;^r8h@*c9Lt&J|Ej!=g^%4(LEP}!GZo69r(lOI1CJu8g07tk2qcd$fJ;GKYM220& z<_n|I=%^2fOIDkW)(qw&@I6)UaG=5d)YSMz z6NZwszhr1;Q_tdYALqA`U!xLU2v+=X?IQcb?JL!AJqHps9#UhDaN8YPYGj zNY3PcP+<{6F;|V3L$*B4xfk4U6(pn7LmS^UQf=|^(JVWlti09krAvhiUUNlvCuh=L z&(^%T+yva=cNeGsl#F_f*6}lkjNBuB{r)HUg-U)O_VE%5T?IZnMg5i;*yhQVJi3s2 z-Z8(#$>3X&9e~Ak7^PB=J&WxrrXFtp(N7HFG$h1}C?83j-mOrY@hYA=2WL3+f-_ac zhGEi-jTGm2^X-ZId4L2#>S?TIyBr+s9O}XQrSNmR(JZ85eSmcp84|c5e1bp|0!Y?? zDxvfxujt2?im=y2gwRcKBn2!Z@vf>9(0QtL)aj^?QAMi2pQH&oK}Mkb>IZ78>UvO> z02m5)!NVdiX1u88D0XYre6ysUIfUgk|C+Bh;4KMwZGwk~PEeP5B>V*c#r_<$r{dB|^LXihp}w9ebyl&PaB(Vu zFmV_ZhFQ>yGT5Dk2OW?;2N`lsc#uUUjSK}HlAYVi-;pFQ@S6XP&HRDyUEtgq-+IA1 zD|7Mx@=H}`PU$zP^=n@Dv7OwQjr=Y*nP+mVK^38c7Myp{cf2ssf9C4LjHh#oy^$(6 z;k0T1R~Gz3>Sqz2CtU3@vFa`s)q_Mw1W-ay8R+WZfDtXWIL+K3O7RI3O142=ID9#2~t@@wrm}>9bHu2(o|#gaAxiJMFx@=1FG4Z z5E)e-X!ZPl8Luoh?tUn9%kb%vraEsc`p8_23^IWFTuhf8k-JgpuF1;*UUKY7*@~*W zg4a9FqVy!=u63QkmjXuIsmnGY9kw3Z&TSMd5joOsZFlFvC1L$w zp%a#rN^#Wa{;7tDTx9ORsH5}^2SSABhR{SNDz@hMl+>~LAVIVFMRZ7v=Hi9nYWepW zN@)HB#Bw}K_uQ`P5K{0$JkUS%{G)F>Zj$+uMHuc9k1Iex2iBWBp3KJx0?=L}w?^+v zc(SHJE|wqHC)Ru@2KCPdA?U{%473uMgnLfluUaBw(*J?VAxxZfIhaA@^-d-Mm%S?VF<$Rr zCN?xME(I6GH^Qr4IOQZo7fDV8A{f?d!8}$;h`bBCF0Ck0&kBXb?^$GxgvOJ2)nEe# zNeHxSoC`Lrq$YWqNq04HvAVv+my#Mg;-HzEF9mMc(JZj=cD>+6O593|QT$|;!wJLS zUioxmQ3dzhE7FMW^h9uyj6<3fl=g=URla~5P@n+1_a#ruz z^eNpve`nd~5AfBI)Uh-7Tnj$mfW|-1%$uHc#ygV~&tmgsw>K`6CL^76_RUcm5@!I z^1xK+c*Y<|6#SO1j9H{YDtx^|BF#pRiFd3Ns?iGPZY&R2MZx@q0KuE47;PiUPn|}$ z3s;G{jvRDWmDTErtpS+D;oE{pj70{qCAxVPVuSNs3n7=(1>-U~hg~LnQWc^ijc#;Y z1%kI$Rnb$YcMwUN{7rxxK1X!KBCc6kN3|ywB@zI{4!U8ZsVmZi`j?AQ&qUp%*tmj; ztEXCe%=>*M#)}rzu`Y8h@lvRz8{}g9D0g|ys`nJY9yK~!_|g}=3N9=O9Wy(6XLNLlJR5Z-d7iM92d_=Vqt6r?`2Om<~;}+!fHEpOLbRk%Lxt2JU>7dOh&C zGITud676JIlIMfhYrII`6owvIaO;`5W}@6NkUQHVH zAfY;4nlGXxIxAjT+AI@rP}bK2e?y|zn$!NKJ6mx(!V{zLg-iUjND>4=3O;qRx7-In zComR`?LJtCLQ^l8LnsdT0xEz^jeN+1s%E2n!1_w(iCqQnrvr!e!Cs3HPv9)z+OjV| zQy;Dn=Mk7AGwv99z7Z4yU;qGgeGs=LM&=vn5_^OR zYyxiC1@wgfu2LM=U~0KUkm2xKn1TBa~!3q8WtL4z}phPzZ8ri&RTN*#G9-fo-j#rj?pB z8`kTV8S2sPc|?o+?=LnKc={^5WP$d6J|_LjCac zVRnYchtHXXV;Dp1v3E{;k`8%$4A1uV(|6!!zP=>Lwq#vmKDTGLZSW1=(=J*=Ca_1S znc{!$-cadZgp-_^H0I~fx3HcJyKz;7y+4n~D$Af&>J) zHGANz1cxuSiFr%mTmyb0LJ|hoH7ZK>8%nD2fnq%^SZ2@!hP7}4wpr*_aq1RvmkZXr z2Qk*jCm3ecBbG%C-|JwcanQXxbyq@rw}uYp%(+KG;9?ZKc6_5eCT*3>KR5u zj$S*OsO>DmVuie$-XK8NaI&wUw$GfoB8g$R*BY;Hxaw`4Gj+z(Tc*udwLS+`dt~F8 zeVq|CmyS73lFK9$-)ew6IgL|iE%!j9qpn%Q_4jpqleJAUcpnU;RlNNSfmNDv!*`fDuP`VF`(KZ*k4v^@=c`OZ-$_2EK>Y5@U#tpx8~saZ^+{YJ14{-a2EbR{e%L=ZBh(Gp^dZ^jn^GMqV( zMW2oTxP8x9iEbOk6kzy4O9Bn*^+fE4jJb zvY;~#ylZw%#LWYX(>nKv-jF0nCptc{8TFLCrOHUF!JpQoo#C*ve863v>8`) zMl31h`S8bwi36J0O9f_jn3KbZU-nONekz*AxNwghW_&2G^`fgl60VSn4&>1X)KQeH z>jxAtqJ7WBB~tuWl=Ij1Vnct+;>p4EOw_U>q9x`N4Dj7Tgtk1utRkj^w9GU*Om5~{ zs~ySbxIeRx2_)p^9lM(%k5MA_WOX~7IKrZs-JOK#o;!;+$6Nwb{th_#L*=k_AT_u) z@$>#dS6i3`k?LgD4@BnMhlTAPWkVf5Aux@4+ClrA1cK+ZVE{JB=D(*VE1s2yc&ETa zS4IH3K~rWFeK1Ex!i9lN7AGO3%~a}FDnij^&z}>sAx@cyi4XS?pa9{Q1U4bLtfEq< zQ6!prJS-rQQiTB7^8N94FimH%x0#?#`V=`ZeD`J`VoSX~1*x6!0(le{D%-^YH8!Qt zE7zqWTRukG3QWM_7Lhp;_&PHavjhn={N}gd{3_?gQbMSm@HTKFJ2N`GD3CLj_G-*zqq_^d_wvpAtTbG z3O)eojs^mhFmUB_RpXc25$$_NR99Nz!RhJu*jrc(tev> z&^K8EMe81>T9csSyk*~8*5H4ZJOY)zs4zWEa)JQLavc$ad!FDRWU!8>FxpcDB7@iJNqmbF*LA)9TvJ)VCJ;>vVsKQ2j3QkU z+Ct`T&OB0lzVQ@pzMGGomm{MVa$o5xFeNqBrUWF%CyLe!rw;b$kX4}7Y5;ZBHVWTj z-Pl_=9)p}@Y9gM*Hy5fNl@eobn*AJ6j( zx~MsNqJCCVdvUgdRVx6`ZeWEjhqxbvey$npgQ4(MN!ReYIY}d6Q<`@a1B|W}lAW}} zPwVY@C3kDTTo2#*M`mh6rk3vqcZuG|8?TClC*S=d4m`9eMa(StpTbua@YRup*pSdtXknlJU2s^aUi_(0^xiQ8nKP9^F_uoSi6G=R z+BifBxaEV^Q3VY^KDxuunVw+Gq|_rzUbEz?D#YMbe99{eB1qYWC|4~7kWSDkB)p)I z)F7X9`&CR`uwi057`x2xbjOk^)=Eb}c1YinY9T-%wkY=pp>hZjw@V;)y|EijJ>6qX z6BdO_6cB#{pP&pEj(88zFxf!{&KmY|xm^T>jWuJP=x+)n)VeLmOz0j&1-8nHWOs;! zQBL|uSCST{>T>rX>Kt>ivG$sT;T_Ty?kJPie2w&&Ip-P7k@a`Vc!39UUQiAgv{^W1 zpT@1I_O$%@Gf!qvNU-aCx6bAWa zolGP!w6&}pEPv)EHmVMdI^kWo6u{)_fl28^+OQQ>je=m@$$2ZJPnlkM~mq+qix9s)aB5WVmmfs@17-Twlhv2hGsl?*ar%IO*El? ziHbb)q=UbY(>*CB_pieEe?u}~I87^A5&<#kX6cHIpLV+_`nE}u9=3M(ky|&yorH3+ z@7}>VZOMt7!EEil%#jaqkIs|;k$DiL)sQW}GvnAkx8WQ0AH7bno$&Li)hXwOK{h2BQU2 zwZa7$ctTN}nRU|*bKStS8BUbx0sP(p?_-JqPhsjNTy62_t|90wc-B* zRvKRxrU3XXe`+_$nb<`d#0T|2V`5Q=k7*M?U{^L5o!koZJFe(4%3>FYG7XPQbPnvV z0`CJ-1Y(YuWzgjw^~AW=KU!8svBW0S5+m_{w8<87YxG%i^ivqafmZPMjB|`*467JY z${AYklHJ|zc8**;#ll*d(8&{b$CG^pppv^hWs9?zZd?toe|i|nx#m%vHY*p9Tl%-R zWx`xE|2f-XN4o~$pGVUp3W-q#lcFEr>;e*fx z;FIp+8z=}SvGKcl4|*;s5QhJ*&ZUVB1j9lBl1TLX*nU?51U2{JK)ehxUs1KL1DfJ8 zZ(SSC&LJ(vfxG0seh!+%tKCoKD5!vhS`Q4ZcRdRHvW-?Nr^dcf6 zHeV@WHVJsrlKrbmqz27Q*=A!X`&SJ$*aCKE%KR@*yU~ z>uOM&;9k7~>ecEfMMX@=Yk<@Ojf6fA%Lupu`DInyMA(p8JrLJIAB1(LR%Z-yDB)=( z0Ev}+2$U>p;G&!6xxN-SefR7Fv|AwRA_UWD{t2Rtyo3`3nL_DshmsB$KHJ2f1Z+96 z(d&aL8t%jRU>kpWjIc3#hI0jW83a#$ll_iBdqxgIXyq5Ki$2D&AcuoGo~D!WH?zda zy5$l$g61(db9#2KC2N@AbawcjQKp&~Ml-~+sO9rBHvh@p{};NsLo6g%vl;T!i})UQ zH8q91M8mc6t-o58chv;jTqwC&`c$%ol!xNCNmXS1LDQNc6&6)PYMIE(W%Is(*vGI( zSWvgqxLyeBS2)(#C|o~rZi=evuAg0&3xfsxfUICw7svt#P=~)N&@7sZkqF&DrFuvz zh=8+WZrT4Z3xS*)*!2K8?XCp$pdlPmol-NI~ew)VnmFg#pjBbrIsn$j?>1ab!~%O&mao*5B91v?#B3~uKr)q4)(pV@YO|D-R{ zteq#icv+MH&K1kM@JPY(D`~iHBk!EEW4JQLxUm>2S_+hQT@0dSokt8+3Shf%x|lIy z_o;#mbbT-Jh*kXFO@+i6*HH2B&~PBd5I0YnPvsh_8W`l8_(vUUPyGN~AK2g!`_OPZ>LVC(i5Y4ypM4eTQS_<;yeLsaeI4-B;H%Wq zK(UvC$A#;>J-|O~g`ZL=Qo9GR4W$1K=I84=nHoN1g2cG2xuC&Vvlm?iQma4YdH56H zS*(tjmfVC|R)tVC0&Jsx>Xsu&e;!*BZsgEW_L9$jQ4UHEhRs$Q?HT3(`0fW;xII!w zLOt14Je=O`Y4(+=oCTnREzG7EC)ybNo6*dVH1aTQ+H);Q=V$7Bq9XiVN$wwNI% zXXR!6>8n^0G_N2wyBQ~1(;SEz{I|k-Sco#FUGx{MT(hTodPY#oGd2pK6xjk#($OYr zf2472OprZh_jJUHi-;3C2Vo5&MO^h3oMOu{N5skIdW3CIkrKM8i|l;I(n<=dfM6Aj zsv(YoT2obb@T9mICHGviALgt=Ns>CCd#Ef%ldvQPCPjCB=OLo^=}%OVwiallRp31> z)00D7|0(u~k<3C|$STxfvr-%cx_pIBXF=tA@5y|O{+!^FS2v)``~#>&E34P*T73T{ z@gpf7yCHauao!H-Vr{LPfJsC(mkNw^SZ;8)ZUH#WgQZmhMh1n#6FH5qRSOBA>e!^q z2FIDxsmy4aYIvq{<2~tXK;y_F$8kH zTm9HjwrQJ_FFe1EF$xZ7=;@^<-)1&`Rs%cq&tIj6o*rpyh#D82Yt4?n2j%YkqF;nZ zj?}T9ln5aGm8Ou;KzIPvu%y}#Oh3u!4k90YCAW2=SO~vPNkMWrfw>q)HCw8NT*Q!+ zUiw{HeTeZpSWLmzf=|-vZY(pAGL54K8+-ky;krRNENsw|I8`vM(CAWi0O{<);d^yn zyKJF4G@~IV##gLM>UBBXGx}3#!B7e+bubaMlxSB3wy#E}5ARGcR?FYhx)T(>M2AeV zQK0HW6*-BC#EPz#3?N(qgl1Rd3Vw>olZ25LgGx9Vmv;HS1|nm1m)#zXXU>+ypk5*Ge01+!-OGDXUKMYp_zYQ zw#xR6SARANt!v4|hf4?LUW+c;3CP9sdH;oRyZC({JL-Eou?4LJEcR>TcaB2Tu+`cG zQi|$%Z^U|ws8p_qcRaac(n$)t2-0v%>Q z0aBJ_^8r{va*vk*iVKLLwwsp2Z$E=ld1eJUAsZP59Y9T1K(gXfEQ{iOzIJX$gr*KC z5YEYnh(D&rM+iXdOrm*I&mJS|n*WJzC+0JENK6v~Pxs5>@|Vn2R#hx2-csjyr4QzB zvfdgD|6>Ha;IzPpVmgSq#E)JbYM1>S&6Ad7?wEhmgA(UP9a;7Q;Mm2m%g1;j44yg6N1oMEFT%goyT(zAeJMMRmFa@}% zUlv9ksl;5~R5ig}*ssh4#A}0GIWh7t2H=6{#wsrmA}*-nKZ^5_#5ctSBF=;DgyB8Z z!7^UR5PmY<2$+F9Kr#>gLuDcDuMfj?J1{ZQf$q?!Ye?(-?1o4OQ#%3Q(4^oPrXGcoJkb?G!tLqxrfn#kj`zJZYw^hN1uK) zrC-Y=+~pP!DbLqIZ`9P%FF|z~twEYv-iT);;y-gsjfRf^yWoGNYvU-gIXyR7`X6_8 zIN@ik4!cE`{~@b!p>WV5A|9vmgR64ORn853m^@`KPLOK~RrldtVg|MT3yZorx9~q7 zBn^RfigFcjQ?p3EcQNihr1we>p2>Uqau#&+75a>Suy!Wc5!5gcZCP~*?tf7pMD|A% zLcn8y(Ct-rGA?WX7pS{8gVf~BI@jOo!mpJm?SPoscszAc38safK>RA?Qqz+*nw2t8Y(D$me zu_n|!MNhyyx)HJ7fS+gq6$iBA0lE&4bYly^pu$J+=9HTI16hcyRalD7wsUcGY2bA8 z4(LJ-S$yLZC9*3?2|0eY0Nl7j2_eB%O^a&$885-FQjIViIX0`50#&Qjv<`^4yN8&4_RZe(a#^khbuO+%gnIK9=)4Jk}2t&$2gCt)`n&Q|)1CPN%Aj#R#rhbGbrW=ZoI5**JHMA&&@NSkn)(Hw($TQmJa)og?H zOPeZ(d5GM#;IB_V#*enz)mF+$VATsv292wr+?%C0a-}giJzGg@&rLX|mM)%nULF!< zUtkwtIga;Co(UAF2wM>cK0XX-9f?;V*_$mt0E zkbId~d=are5y9@OBcb;jJqemucz(^j6rs#8>I_$d7lYi0%vk~^b-p|OI;KM3b*}Bg&B^6GpA#mYIH$`?br=~ z8T|1PoUzmkY1)Zzv_Lk`jR&W*bH!>Piec0#{^;+CJB<;};je5FQ zOc$}?LSn?nFU072pTw$cxIj&0O!VWN5N-*`nUhNcheNDz=S8ml(ti$M%&`siIRZwC zI#<*AQ7kIbTJ1DDR6FYX^l1OiXE>K;JK<)3Iq<7-@;TB9ym8XV$=wnId9d1QiqEf1Zf!%0%`1MIZK50QhSls^W}8A0?MyS+0U*o`=CiOOt|I%pURJ7*um zvl&=6h2GA=8_aJ2I;Z8Gk;1$9U`yEQfnO!faE_^NcP5>*3@~|xVq>@t-o~_4xrk7# zo>CjmR?XY~>)LJKvUjoS7?Ieo&OS$_1ofD6m`k=?Djp`9`lm@|z6d>oE)^x%T3@b# z#HjIj57jxLhFve^FQx5Ch4-*5J>C;yQ9jJj9BIAP5fhf`_26NAkhNOW=#I6j9-&i} zVr~@^bu1SJV>H~Cn8BihxL}zIxIqNH4TXT5dU6LUTwS{gJj7V%$@V?V5Z!{X7#=Q^ zU;hE%g?_v*r{)IKc`braWkAqj+FDqVa}iW1w2_+>2$Lx@h}^~glzl_q?*_ropMa+B z4Odiy;lyQfB?4kSU2k*2%tGe^Rgk@*I*$%wo^QgpcUS8>lSrNYlGeN%{&9&0 z)H*=N;yS#<1Jh2`xT!9u4n~}VR8k@u6C6@Pn?-tH2GMPL8 zqVr&eE}JI9M>W!;{W<0qCH$oqOH0~dVA;QU@2ZLm6GG#_>j*tlB>Zkt&zM%mU_aul zoMmijuW17%<;EC0#_s_Slb?D+s+F(l@13#nwo`CncZ8*L8qo`O?!|-oE(P$X+W>Po zM^$KZJn%zVYfPh5B?=QN(N2tBvcU9`LTbb2NLTC-t1`LWUSQYGyako-O@_u?h z&Ui+Tu1gfKN(UgS>ZF!?NH*N5MuzSN6$+Mdg2~SeeKOixeC1P<-fa{ZDMSr)0kY65 zhrn`|uh)2BWhVrkx8G}+2@Y0=S#(6yOfFBPr0{J=BFrVQ@z28UzRxd+MmEEa1Z^%<`e2_`Mk}ZlC4si)OH&d$-p!V%X%1zGZeRzJ(;RWI1&=;~ znA34qBkHqk1GECk5pU&V3gt2eO^EZ+adzU=eW9H1CVHge=h4@}8oS_`DWpqz?P^_Q zY9(}T{SGm`2n6=MWr3|AU*AyaJ+d6vOEkqYfwEXO`vU8Yqwv+r5>w-PN)aNu?57H) zpQm261T1mI2l9B5UWg6JzsAbnS}{cr#=#`6IR+6^w7~xnt~=P zak$5`Y{kZ@WzXHfAXGctRofxyu0x`8@BRPthrYiQdk4MV+vjQAIRwpl8YWBz<8lds zJ(A<9WS0}<64z`3`2n8S{bgFWGK=1%qCnmel`@(aAHFU0o3eE?52hZfjxYLiTME%u zoDan`m-9$`c;=Ra=;f4AXsK#z0FKXx6nC5xB4jT-;!polo{qWw>?bX+2=kboFv0w- znVr*f&rIOXz=7gxQQ0U8zama$kU z;{U|d1{b+z8O#%^^y)X%tv&=#t>N$5QOV#E zjL1iy$aN$s&;;GbDExJ0ZNQLLj1RrsqH3o=Nz{912U^j?8C=Jk-aM?V=m0%H!oOz> zyd{N?W6S8jpPE~F=x%L&^bj6{V7FB)!YbSask`!(OZpiF)Ewt z>tLv!C|!>oB4Q=_VloAXx-1#)gYf@@7`4lgi*vw8tEx`#A#hcUa)SBAtY&4ci-KZU z9hJ$pnSHe`cxm}ZBRsc}s1(rs)Xol&=5pIPdR3iV^~)NMd_BQk%6WS+lvpjVsomWHaadt8p0DELoKvC7&yee z{l-s?&>jDj6Z6W2&1zz)SC$?Gx`=5lEua7Lv|wc>&x@hZGE2^la;UI6s(_zdRx|Rp z=>&MdX=}evw_7}!g4p(U3!S zGXV7{Ry~l^N0oR{jRtC5tfS14N9xS8Vc$89SZZBF%lZk&OJ$#3GDLNzPfZak!~8FZ zAIS&+r{R+tPRXU&o>B=YzLOj#<3W0BCWk&7Y=q;ydn z<1ck#$qC0!OcK?Xqzsl%fo~suRmT*9vy*wbQ%LJcW+3tDx}msNbZJgG(v#xl!B z3kkgK*kPuJzrm;^9Em9BsgD~-^+66q(tq9iYGvg}45pI3IOv}9 zEKKJ*hU=kfmboQ-!|r`MqntX{@yw&2)SSVQtNrd0V9Sbt()7iGvJ1;@3g_Ix@Rv@- z0B+Obta{Fj;GGtM_!c;G%gyginSYYf?<07%HyLo)?6h;7p6>j;+DCmD*_X=VkJmx5 zXq2r1>3h*`edGa<@KWqqk@Q4nBG&&8h2-ETeOqnibmn5Vhuc3)l)-aoD%R|jSVJImdMN5s~5 zL&Q!Y*HxEQu)SA(-vP4RWjmR!8`tngBFXc$cqn>R_y=FIh+2xFnM_i`E?xZ9d0zMI zx;(d1eFHEzyf$8hi7q*@YOL3^s8ILuS50)`SLm6$c{0FkAvHi}j;*M#ZH}qR!`ap< z!?J3K%u%(}1ObFb$6kg7b1595Swk(8AUK7$+7m8N>_qT9qeL2nZEUJ@y-3aXkK^=+ zKzsIOcQM{X>N#I;e2HsB4R&nxo65!DeH95nsJql%DX{`LONX76huMs&llPtuSQqDNpyfENQ^j~Jxqs%5 zE>HN3G@d!uvpOw@y-R`jO#kyKJrcm;_UIX|`(+er5b92P3ylN=2j?m+ODA8M{zKp8tqp8!<I^7TsHrhXzLz;l7LLexh;q(6&lc;JH#1_4cAl`7Fi>LTN2 z5$r0AF(9d)2I7mIFF zRl4JP>F&v0@+><$$sz{}3M8w6C-CK;Qy5e)jIBeHLs!WJugB%qJTemW94R!0(2_!v zW)&qgP)J9KS;6NrRbsq>PWhZg@X?#%&_Pwyvlhm6ZarW+25i8z`27i+X7?d8y)@7C z`?zor=L@1){A~p?6AG)NtmK|mBrd*Eb!0PjbvmDLkh`}@&={Nz%)knXu}~Ba?mc^9 z2e07Lt7=oU;D^tb%JH|1Nc1CkPK9L`cYaRv)uKS%;xZ>^)0|Z4w#hZKTr~FO7o*(X z+5tWzX0Gv$A(on4Rm|nHMBO~Vo=wqlxCVBF+YPgJzh{TIJsZS;os2s?*i|Rn5RfZg z)5XS=?;9HVm!w3mU)ATy<=9ll#gY#5Hxaa&iIyHl5-Cr7|C{Vgp9oEWkQ)5bixngS z9eqvCM@G8S)V^v0$*R8X&5&sR0DZmW7}$3au!o@n$Q8#JKh;wOgubr;IF`xPE*Qc1 zS%zF9doYac#bK3R?@N=80zpFPGpIapu*H|FUJ6}56-+^%glOEX=gc5&WR9(*&7%|2 z2jt^)+%^OQaCfeT(d~D+vUm_Eix~q}hGa@2qRgi&zE(@a90;Ej;yZ;}zXs&Ht(VEH zOfPD_`q8tj+}vg8orcgHRA+BWZDtMH`77~a<|s=f-vnWe_gqitA;fSRE0|X9H1Pxu zZ`w}lwy{y3JI|{eiw8}z+w<~9L#(8C1-IAlutS3xgqJC@BeVsh-sj_WAvMzq>hijz zY7{e=(SsHVd$jM0+I_c$a;K@Pq*+bVq8`w5ar9t#qOTshBKT^6FLX;->lg>3=kANG zj7PX~Udf$=0XF9iPltnQAUDA(S@MC)I|>~bLZL1NYe(4VbC}_?VnR|&UF?I(XF6?N z7aS#d%&wl12~jYs4Ug0)@gi)|T*DF} z9Wzt(g@R?-X%={B00T5@EbVMM8-3PX1jZvvwgUwdc&@-n3fmvnga*A)&~))Xo;`hk z$w9OY64xUyzwk(BNBp#3M>h6zVysvBdmqmIlq|Crf`!&~lxnC?kv+QT7{?omI`tG3 zK;}OSxGHoMcwH^@ETV?5G)vkpR2ot5pG8q z;A$}i&3fj50ZqM0w^QO^1d!d#sY^aV5@1AdZ?Lci7Vv~F1Rfw60=qI>q6^f?z(eN8 zs}u0upQHE1T@_WAVXQIEB?tpz-30(w&GqOt?0AW!896*C*gxuj4}xm8w+lePbZ!|6 z%gXe&h51DhjaiF&j*uUYlMd~#n0ZRXgEqMusvbyXQeZ9wM#7EY3cc$RT;<*18G9+L zwL1QV$-H{{6bXgtNAr*Z zL@vB#G$Di0_b!eXhHJnNj#+T9S7bz52N5-glqRGKZr?clw8SR@Kj9!NC~|8_MC%!D z@%og&b4}&oK#%1!tBlo#+OSsbeS_KA7<$HlSv6?GxH+|{xZ9M=3Uj?%c=0cTUoI$i z`Rq)`ZuVhUj?%=SJm(~h!#!X($pVk3Ew#op=s?R7ch4hUWR1)eI=j8Pp?kRGng8Xr zYYsh&45jnUqFXeE`JE^Azq|@3wFIb@i;z0hT7>l%hF4bsX39u4>s~)as~*#6K&_fn zATj>M3b$sy*x_|Q2w5H7@wn=W?Nq}~RKKEvX_}_;h}OXSV9MPJ$_rMaK!k zm(h>unGe(o@)bHARnZU#>u@TVMMx%`1#RMA4VY<-_Ybo}pZZV*u^zx$dW`fbKOtcl zfe}_W<9~NaIO4+HC;lOI6rq#L#}`v*;qiBs$_kTeRTI#oe35`-upT#;{oXTLNQq$5#JGpoYw6;Kas+k?1U!HnRg80CR!go&E# ztr~ER##94+@H-ExTG4OVH)Sf$$#p(mop40u=@%!Fg&ZX8zlAa2&=$v@`+-V_E^Luhr<0E4TiH>cSUZbK|l4#i#-9<*6 z`wZ2zF}E!fCZO>(6SCu->tEBb1I%nTy=C5AEKgw{D|2~D6H;4V2RzqrOCr2b`e71I zOqoJoSYncZ1>q?#3)@3!V89i#$s}J?fxG3aknppeF(%}PSw}JdluAd`@hSsTbqCCq zH>GG6Oz!+7l?m|_Z=YO2bgI~!vQ!>@L1;tMbkDyGy&HTd(&ZV=lje=QoLSA?&N+9P z1po6s2}jAFO`3Gr_BVYWx3JtpAgkRWTr~6G>ILFPRRsT&M}JknI4gLIE|R+6c#&XG zm&3h3KfxbYSD?8hS{*L2Cc*5bnM~=H)vLR7)&P!R!o2k*5mMln;yDli)lowG~a1?`al+tYGXP@ zXBG%;2i3SqkiTwHCQ?kDfJR2BqNdE|y%Fm^%)PF$t+a*37KQ*}eIO#IK{V6h>@ zpS`+YzW@cch=FSn$sJ$Pr4EtLQ6ZiMRt-xe4Lpr4pRX8ZHqx!pwgXCGQU5$Z!4{!6 zXtITLo-loU-G_1k?((rUEU~bD@!miSQ_e9IDYi;?wQ76$i}R_!_zE-m2_Ek}YsXP% z_8}x~y0!tDLxIczJ+r^;URyah^mYba>u=u;o6X+{KYPXx^T0DZ4E=cY^r|56tcVC7 zSX+^@<#FG70c=Hbm#*lohSGc2siX`M=azMj7^hSDIZIJHpfUVC@Qh$9qhc}}v=F02 zoI*B}rC!Xm*jW(bmj&_AEULg6LGaN5x!5*yrDE?aG&NPxA|?wPXf&Q0q`${~y*$&y z=ho`1u57&6PD8zGU``q*erd$<>`?kMT2E{&E+S5d7oYZbhDYy(!0;T4-8ZR=b8cu> zg~;Bknxn+min^^vg{tAp1p;1xHW&S<(tZ-CoCHvh#5?go-LtK z&~;-%Zk>K8Wli0AL%*0ste_SC-KKc=*u{Jz767FyiY3%x4B;vkX6 z(J0#R90U3SnYLc0!4^HEM&hg@NzpZ$zUtj7>H+_&T2T{NlqqLdbjA~ve#FzII1sgh zbr9q}!9K;5Zl4iga#dB=dKzeD@vz{fLuQ;8z#~4z>G-B#By6oj*(r#U*>|6oDmZjl zF^ni8dXxKlo_*fExlF=9m(%i9^q$o4;0Vatq^|jQxxPdnXTpU+SWhdgn^2+m_#`nn z85>26Y0&s1Kj)JlUA-^fyZSL)dgBHIegBSG??I2;*&RH+97u1>>vmJUL>bd9`V8cjUTTX*;6~0+o zBh06%sd0Gbor%@ zOx|3sp&!!lUvBq}HXd6g`ZB=N2#7)m5o!>T$DQNN_cg;n>wPsf;vOT!ZKMtgL0>vN2(Nz}rRT^8>fx&Xt*@?2@?y`n zo}ETd7?d-T06-=sZN*F8{vCOE0y(zMP=tTbVuCij57`v`ZMS#JVWCMyGnmdv&OWo? z7G`wNFGG;81$>`9$F*mrb|Jc|Ux{}JPuFmlidH8Ii_!JKtqcNHUJy?a3nbzvB+!;;6u_bw*@F&n*#eQuBcYAfTm_|HyQE=9_;ouhJ~%bQS4xGP z7#q|#3z^ilp?=9%h)1W&+`tE8Npdly>YXx4)k_#DdxQY;Gr3gNIn+z8Ix(XgsO-Q_ zIj@-czeMV{xu)jtPox$v%$b$r{Q1c@tyLWNU z2i%cbfahuiPPB-}?u0pd{`z67IvbC*sTP)EUU0U+K{bJU>%PLpjs5;Z2jJ`Mp}`Ff zK0ucMEB(~O2?>$%f#E&^%8*(^I>duv^-8fBdP@~2GjuWcU{^*(gl(&MXMFBEI+T-z z-!=5r+(M1K0v&~9>SxcZ%xGc&l<#eT2D=~WrC@Fkq^Rd(251Q)cJCp`o0&!B7GFQ$ zi7%!LWen*U@HGnTDp3d*N-IA)=*8DkW%>jtafk4WIVXpnaIA-xSBq(RxlK?X98WD= z?&|uI??;EMTtj1QtlUlF66Wvw<^%_JH4(>~M<9`2G9F#$sfF-%;?ZWLbg~nd2zJ$XPA>QR#g(-5I`}`5y0z9`&$YrUh5Js zVM2vqIus<3L6H0s_M@;xH0&Zw4-KIqT9VEMEfv5Oz#JW^8Q8)mACbx;UJ%9+dbXc69;_hodWPahZy}%`=liW9=%1c8Gy9(%6Lt>sQ zaPobsTiqW|(EOspVZ`;&?&junv#W-pL5V#1kxa26b947e znV*szx&VxeWrMQ z;x>@-j#RBh9F3bD_0$FoaYkvJjm?c-3E##+%R>O&2Z4jL{U_0lCPI@)6 zWWn%yP**5gv7!a*Dj-u#fGutl$XeQhgA>v>p^H?_aJM=KV1=1yc)dmU-GU2O&{I9I zNezyy{o-*=M8H)mD5h;oXiCRfVmq9> zyXnw?W4S}u<|n18YtGZppVee|3wh=Id}dmeB^(?gK=b?y-on3-7ij_iZtHC~m!V%G zqVSy=+`VnQ&9G|@lHy&N!O<-joK3n+z4Y%QzJa2GUA^9gS%vQBOVYApg@N8EIauhE z=vX0ZAs}Ap00Q=L8wku*>g?&z@k6V9L{33BjlKzx07gLE9wZkCBg$<`RRq$42L%-x zK8wtMCBc1s>j3tbxjiTJxNJZqq>ESr<{9mTYEsY{(y%KQ6SGVa73<;DITB<4)SPnI zLK5A9mCM8BT}|LEwv(!o7yx~`VtxopkO=3v>wzyh! zAE9a#>Re)9qM8}|J?tKEF;C2zYseQw7{F$=Yj;cGoBmKawhftX(TxGsrx<+m#8otK*<>AyFgd~qgm`Rc| z7w`Q)`2|n29!=b@a{^v`MOmP*r0s zGgfu!p~Grp6ex>Mj<61k!y-Tu__W~|=TL#B?nR10M6Kzod+>%rO|cqaIzsCLj}|=- z>`~)+G0u7pItVW*iri%h2FnrUgm?*3uf+)y18uDdamB`ddv=$4{H$k`;kZq{aSUoAzs7StKO7T#-W-_m%geLMUtHl66ZGz-Z8Og z%Gth>Ja2kO;l-Ob1ZoQZ1%~f`-fx4BxrW`byA*M^=$E;#%Sf?lxJN7jZA=z;JPqn` z1C&wy(mSL2e)4;z%W;k=xbt{l5=QEvaplAxW$for!M z%sVWf@y;HBfYjo+gIam*jrU>mliz+gn@^o;3TPsO`;bb6u$V_MNGuhAH8TcjwfMNe zK6`2*$r{=Dw4?b3?S4Oey&@`R8AO&BqR<_?+k|dokKBOZTJBC^U8P4YwT)YH*+e># zLb@-58O{R;*9d9xP!D|_?f$r(O>+vU4D3#T=v>tfXA4U54?_{bFi)sl@Zo}kDK$T@} z=|=9QbYc=b+TsbSu{q4!!L1B*&PKp8U`qsS`amUi`-uoG0gNdnB=*JAb}>VR!}WLO zq?&__T{H9K)cI%MsT#H#2!kxDWVNd4uyzRG{fHtGBsV=8Xoud3Xd-l6X~hy$cqon; zZqmtbm*`E3t4zYCJ1cP72j9nCTY1l)^Us`ro@^C1n%*Yj`XL5p%a>PopgU4DCD|zk zrs$omfgAlLk#9%(h=)P_!E1p*JZ<5ZyWqb!8|LGnrFf$ldsjH&>*cjKy&Kfc@J}AT z514C3=#ZO0c~^qvju*bujN?c0;p*9--2sV1QW@m*_(Z42v!+Y5(q=iLK={a~pB3fc z16;$PM_=Mqi^{qYTcD>Qr)|T~ZJ2gRj6JpjfMTPTs)63U?5l-Ovx9AXCe^|;eMIBo z&CUH%jvjaT4AaG%jOF|PW6E#bfhNq0f0s&2Q_YNH6oMxNSdl5oUH$AL*`j6kQ*a5C z;%_UeMDs5~o-ltOW3SIXbx<6Ea`aM5w%iMokirVKj^3`ysSfqI4wq(#vIt4?4!Z^G zvt8~kr(T9_u3 zwH_0(rWkAxTNM?YK`N=a9}ULmiS5FF+Fgo`JBnx!+6b#cOc=h@*2{S^DErFskf_}* zp+}%4`HeW>N>0K>q0Z!A$q=`?`;w6sl1W1#QuX9aB+u+7 zNJWK;j@i>#bEiM}F1mJs{eNo0{%Y@IUejb^w z>FJHW-)$oy=Ds!9RPw}cn*^`m1GDZhCs!?|&Rpl^brwY;qA>oOPgS1O6H3^MydEyjI7&zk)Ua8?vz$fm~ zCd4}4z{|4lT5jS-OPDor?~)-_OY3K6SQS~XrfYOfccnGV=F7rgvSzIep&_DIwF1V4 zaT;vu+km;m?PPIL4c*6c99Z+s86X?M0rWLA_OWE5l@VkG^+!;3dTE^V7n0Q0BTI8K zx6?1rCQO zD@5M>z)0?J(?>GJoQi>i@My9o>6LY1ayL^P4d0M_7u4@g&WNEnT*yJ9b(4^X%A+7hI->3BhLw+5Fb zBsTstYW2M9Cw4F4zl35Hr014Sy{tvh61oBPimi_hK+FXDe(pK~Y)3lxQ(5eg;Jf5D zw4{E%ikYN^L7T@p*90$B>fseym60uxv0=~(LeVeA3tlaC8)|zaOAs)Lu1_(ZRt?w$ z4jFPGq~kq>h0fJzvQT>Ym7a&@DPAWwTn&`P<1>AxHT1%O6w>ej(0wIWQX*OqGv8E| zBz5N}ASfn&(N!k2#52hOv+cfn0gpy;T)Pd0z<%ohkftA?^x_V^D`(#T`Q~@tmo-Hv z8u1YGK~tiS{ZYkaD1`o%0%dzxT~*pOP8v+9o+awGn_5U_i;!Qdn;R*`Oywdg#mHuE z>k}GipBi<2I{dO+H@&mEXkO^XNt}*bFgbrqlh~obSjQx5_>i@@NX`~k>tLgy67mSQ z10Q8LT1eKz_Zg5~Rvdd_k`5ATEoLbIUR71yTIN>UmW0)*CfdI`Td?=`eIXQ7z6;5=gl+VJyvO! zz~FJy{=XSa@_e+3K;5^s{hw!eWHc@_Yv#_>gNExWni@j!eqy7Wv%82l(+#U|#2Q-T z_FYCZO+$+chRD`X8Prw8_jY68_~aYZC!o{aDCmW|8;T3o&Xf5xE3p>A>u9^pc1Zc7QUXIA&9*v=%Um z5DzGJA1$wQnx4g;LtcibJ@P(L((@U$@GMO@MqKTG$N{`gTdnVeV97sTWeFTc^ANcv z+!(4!XF2M76uXdhVuj^^!r?U|O=h$J3C;ME1fy z?9n5iiVUMum76(|?Bc0WN{WY6umOiTm^G_{s4`QO58!dT*Jm^BzxppJ__Mgegm{q> zpN87ECv})=6Y7$$nFbHG&g9T|KLo%zG`-iPMNjXs@W{SA)(7rVm~|0J^$O$?m%|7< z?GmVhUx&I~W`IzUK?%){x(Qod2GEeQ4V+YHdQ{BqvqO9#!E?>X%Oa?2zvJTB1X}3j z?T3vy6dYda(G2;WdxC+zt^)_|>! zIA-NY>?#cgZyiD`;Ec;8J;~%hlLO=YtZL2hps$OZ4T;jl3y;q0`AwRB z&AReVrfYSQ6x3rnKDc^V0kO;a>V{xR^hnl&sltBa@4LafIq7mIV%&);?o#(JS(Os_ zdpCp3o4~yj4u83LdBvOwiW|%gb;Rf~n%zMCZXwtY`){aTiVl(Ti}#44u%gsd`lO~i zUS|Q~LIReD@>_1C2288*TU~Xg9F!ZWQQ(vf7J?oNoup+Y$yoYw=?e;^_ z-0oC52(^%h8-TQ20CtjAiD|o1#vTMvmV)1pfqB8^VZbL;XCdEu)mmO#*~UA3nXCt& z@>`G9e%ey?I+nn^gRox7NB{w9!4c+ZxT6KI(%Xw>u{Ay5l3^O9fx3)8P(hy}d5%SQ z56hBHMk|)Z2p$#`zN)9CQOJczTb+{NThW>W;VJyg^=&YM6q4HK`BA+GYl=Y|3$P_D4P z$IxzYjiDc6bZC}8j_QgUd5}h5^w_FFU~A_O%w7-)5 z#6Rs&WjJMt=H5aMCGEnruJ$OYmR@Dx#PW-ym#;Mx-gQ>6BwaG$dp=Cv*m!xI9`NTd zVr{IWn3na5@nRdmB8CPoI+|=r|NiS+Rp*nrp)g<=Mz+x=~R@1y!SC&AQE$u4BpI_!NA<~J8XG} zxixMqto$5FcttZ^X|;;d#D2)0*#%3m$nE+H+N{(aNs+qW@4rW|yQO)v$Y9ho9+HR| zCI#DRBwVLZK6f+fCeT9okQ9iC%xayWD6qO2B$KGY(z!IHIObmsh^i%!{E$4G=~;#= z+^5!JVDkNSUwSrtOIli95Br0))(Oxxv@})`AmpZUwbx37_nKT6KO|4-xgfuDWP~4kws;PiLUH&q|=g%$vtKj72)?nX$HLoVM4s!Y4Qcl zIoP%Hp}7lQ&Hce4jD8ga9scg?%^bXQ#^Q?`EKN5x=G`+nGXyX^|6L7}IpSlc_cq{{ zH(?mS^++VdgJfL##ptwt=i_~CDN>W1x1J1|cb#_X58m{ilqfaF%$@df+KTI;L>gzs zaPCEu0Cu{d6eAPA4xyc-?@(Paq)7yb|5r)yY6z+;zCd5`%~}H{<;Y-7Hp*nzpuI1U zv#2Fv75p^{q1B|`f*iSdK}*?ms&*JcV%1SR3(-u=b1exm&#-SG23tyv+1#mnsMOOL zOaV||4o-|^PpU-#7P|)lxCgI>g>`-#S8n?Wd3yS8P7H(_2@y`YsJE(A3uoPVwxX`r$t;o5-r%+u!X&} zmKNBu?3!%smN}foq`;;-tu;b|jdHFbS3^@X8=RK98q_eTyP|PdEiPC4HoL8se$HfQ z?FE%w<5}6Kw0Qs=Lx%M7rbgcD_g!-EMB9!mY2*qHWcNK8&Zr{w1>VsZtEWC=tbFXo z&{IoGAT||1|LBl@S|6fr|7zAwZI7tq%)+HyOPsWUwB|PBzd2A>(-jOe1-yPL&$bY6X8pCfI zaFV_63gR&HzEUOU9Q*#0*)Bre!H+8x*+w9hkPf1)`=01_tT<`giTwhS!!#rO5dw|YV`fWm8puOizyo$ye_Z<(Xb zyO0qs{GZS)wko%!OG0;XV74HtmIeg^XthhRp{#w28@Zhy!gvU|hCt@RT}z%ulWNj% zkH|VS-ir(TphSSvD&w%~EFFPU3%#w!F_=S$jg5P0VfUWgQ-)x9H-U3H3|B*;t#x$t z2>8Bmd#u}Q@-%zB0KGi_d3w;A3`H`sInd5Hx_e}i7ISu)W#4Eo2g1_}Ny1Cx z=n;LdPx6lCCCbPDWBUUocfWopd2IX1X$3rYAaTEoHtC*-q1HMB0K3o7(Fs-p`0540a9V?Pu4(Z{AoTZo??b)<&-5@T~AeldZ5u<>_wR z612KCs(Lp+)RE1uiAVVma+!g=541#aO``vR%zUWyzY3?190yVQX#Ci%-J6DygLZlm zqAC0B+v+u(wK(xl*OAhMegr@GH}iXv)2O47fXa~p_;f*(B^SBBJYsvVaA_%W!hBu3 z#yP~1BcrW`C6XUQ6nxEv!*C-=O>MF?Jd&77XkZsHMZ!$$(rTTtTzgc$&`d$#u_WxN zaE!?U~$^~zA)!xg3;k{uN7d_a9M zSvgs(PFBAG=fJq9!b97dXI~FWZa-PcLA>W_MgOr zGp_hJPRZcvKECRDGxAv1WW0rLOS|7)$mu}a3ZKh)6zK`0UIa4nr8obFYe(~B9w>^! zNLkyezx`yp+PH1K704G^G9<`N`9%%-Z=H>Hc7B5*XZJYP>`3x{nt_Y=Y4R`Pq7x2w z6mB5zHDQXH=o5}@IVVjyyF+|f45G#Bs07`dIh`A3TTvihCe^ns&T71MM+mO2E5mKM ze?v2--0u_F#kZiB>+d1)EB*4+TOnV;8JjC<`PPN=qmmbd(u* znxS|{YcbWoLkG~C3`FdjG+U_9OX=DbsTq{XtUua)ayPcNY%6_LGLqp>{WI7AXGRP^ zf3&t>+?HW=gOAs<>pxZ5DR~-(1%Xz@r>8DzWY_VBX2o_@n1o5;kb=fT)tb^!6h|ds z^6%uX3lJpXH1kvR;$Q@zQ!So|Nx{A#3i$hX3WAGqILebS>&}Wv{oCfs$P?+gLs1z% zcXQ&`DStDMu(Gu725J2f59nQ6|m8;)SXv*phx;RO_in$e~zcAu|s$=+2-< zSn!D$=IC5*E|t$G^;PRS1@MM!g4-@-uvm$6bjJVt7Q9PxQE^a{ZGxiuD` z8J1km3vdno3Z(+CE|`}VMP;M3sg7tHJ&lHskK|n=o$2xuq^Qhetdc3xhdO(|qk`~& z=6)}syZ5IP!t9isQzi%8?s*jUU5KUNfsm2uaZkFBY^tYvIxO=ngwV7xpe9o!x|ezT za&5jZl{hb)tV+S)?gl=q;uZhYqjksTf|uE4P1#5G(Gg;6N!Xg}{6eM4%uvkf&>{K* ziMkW}CoS#1>hUL9_L+{x`yxO{p(suA=zBot z!*EASWV7s&xW!_gcIO?}F=d=Hbl%8V^Bv`B7HtC^^Qq7h*yJbApR5%7vL|>mP`xec zO!zp$dHUJ%De{-$JGNCc%d8WOT_0%7QQB>kWf+nF6N2X1wWHw0?zm_q{_A>Tn}(+~ zB_%Ax!%w91{tlX5X#{S#@I%MkWb}#7a6kgOAI8C97miP;y?}*_4ix@A5fZWv24Y{u ztr)-s$Ew`I*x1bnrjBzD%joSx?ZJs}Dy+wYxyl&Lga#|H`S?q5n?HJ5^tOX*1Lbj7 z7xFu^mLV8n*BC5v9kQ7b3l#cX<}}pG!&|K8gxv&$pi2@6DzO7;{w%ei>?Ob<+LFB+ zbuR*ojm555WKVD#h|fGKpq(Le;4@rs!oj(@TV2fv1!BPa62nf2CMaBt+T3Lge>l&p(a0}niI=N?9aqVI0!?>kQF%R+m)(4br7kN zgwp34REzGnXlgpEW3+V%no+}@QA9rX)xc9A%MzJa1N!Ihn;sLYrT1H zjh_7sQ2I}ftOoP*U^N4ik@x|Bg#RLIa7LcPM=~inH2wVKtIl3jC5@!Sq!B^EY*6-G zWa)$*^7u`&zm-l-ZTD`MW%j<-IGro|AD`I#U3`$v9vpn7XZ`v6QtGR@Y2Obp8vN6I zwx|g?ld7;Z?@MyIoId#+{srT3dNf@Eh;JmwuXH{S@saKWNppgC2BiIHaI>(}io19} zwM#3DmQOg|4+fKq-d_Xk|?1L?-g(? zaZUyYc~hf4Un)j8&5euUe?_ik%qZAyQ7B_lQ8oT*h5-j1t4ZPfM!{-jB!&))*aRYg zOHfcwGm|@jySp1jZk9u^V<-m`rp(;uz-dFR?#?MxNdG&N&^w=QS{{Fi2{YR0?nU%W zJ)cACbP7{yrr4)nAP_2NpJK9&p8VvB>3)akS9y;45M}q(`t3_fWBt_rXVJXQAYw}< z+U_)7>oo=D;?M(Cwrq$06RIbwtLRZUPY?T&WIhi^1-s%5ASB?W>Q0VBbQM_ZYf5HB zuqvINhlDaCUpVMXrXzz3L{C^am)4T8(l$beqJlm@RvktTEWCCLc8pKAmVRq4HLCtt zn3XwPYw69i|G>X#k@jeqQwPW{4OeKLW~&4ATbMH_CV)~KYSrQ?;R zcV8kiPWU?I9N2pav17JOHbSmK`EB|N(b#$^sILmhG%TN;H6==;>`I^01s>N01*UHD39y63~CG!XG-<_s`?U=P#d zt(9&`Dc4=tN4N%bc^Wa?Q($MmrX3rI3$b-%l8mxHFGaCxW_H8CTi2#9g93lUd18xD zy<_yDd{?P^j~7LdZ*`@h{lMxgb8VB{UFe{5x3T{5rfGd6NPf4#Sd_*QBlPDPy;?Ta{X96 zyZxL%Qg>o@dZP)qQ<8+z+?SH;OvfPzqhZ_R&c-GHksg0A@*YkTuvOtde_0|jx3?0g z9XzG=5;|UT(g?zT^_Kv zOlX~|oDU&c5~bEtyPySIb$GBmODnx$WS8Giq*qt?v`83!N(fGx=^7}nimbwk==w8_ z-}Zton21CWK*pHYAeya5V9NZ)z7T-H_mfHKO$v4I1lPrF)NDv;(n-9LbO7TcCvYr1 zOsB5^Wlr8AGs}v)JB(8rl5-SAkGMg>_L6gL_I7VQz}T1;h@L!iLgz4JT{~b2(1=E|zD$^X)2Q2pD#+~RDgn0LsFS)YO~ROkQEIj#6Q>}YbqY=mWLfJ! z+juqsK4{R?o7G^@&dpwWKA)Nb3BmmAxbYp z=PU4*@=H&|%{S)lXqV`fIUIH@?ai0Xb%shmR(fxe7jNd0sj^%LI%j`AmoEN)W&6LEjJ zF>qoazr%Lay#2E@hI{#gCxp}Jzl1IAo87sW*lR&^r~E zebv$}nODj+@KsLsTI^WDL`A-ZL56#wFVHAKRR|DM4q-7=M4&f@Ot&A=rRXdT6(^@4 z5wHLXrpskq{Gm0EAI3uC!xT6T!GNyOh08`j6u$@OtHwM9W(ygTQdaKKvCW>*#FVzs zdK|D$9HGK0^@uh~ z69cRwf*U&Vr4ohne?tO}njTBxfiK_1>(1+8rEH=y$p^8@(I#dIN{h!AIc$WlSexiRYf>nV z9?u}#cZkk?3AyB3)4PT^M&#_at9YU94&!M|6{Y)M>+^$RGdaC4D}AM0c%%Eq8$k@M zojj|z@c3A_zUs{(AUj?>i7|?>{%VwU14(WDRkOLP^f^Ss-OI-jeub$Em(W9KS+@XS zlzH}WWw;5Ki=*5jX9|B~Zr9 zkz%&SEg72tSv`lcfxTD3{5vfth!*TWJKaY2rK>Nz-bfq z$sP)qlB1utocYI)k*N(4nR1$-Jm$lfgn#H21uqt<0z80GlMy4Tw+u%dh*1NBG;mG> zqy=2fAt<1Q;d|PD8JXt%azz~Tk2d+XJpL1J=#CdGNGjtgdxq5>#eYt8h zBnRQbNt;0&U35fFjfcmqBp+N<4NdgSn2hKztnuYi;WNMRz;Zud!Ip;e6{+_{&CF)G zX5^6uJ1PQh9*}APwSK4I#%h9SlVC~iNN7FzeR10Q3O8a%c{Kc}>_RE+W}hv&1H1Cx z{eOIGsv)&9zb{{GegFALs)Czp_N7YJC319M@hU(fNSNO|6B(zRvt;|X?)VOU@8YrY z2!_gW--`A9@ScwLpg4WrkK{?_!hnx)^3sBB-ndLsb|08$G%;AbZ(@=4_#fWD3LImb zafpJ)1kA0Ql5yGF_ZDhVll7khSjn(PkR&0I{Nn$d2h4~XREW|-(m;C+ev=GIR*4?e zMkpQDTw&z24=;k`^ma;i3{FXm@Dm~>LUc6rS{EYNTK9qFM3dFoi<&1UD#6aa7hx0d{r)Xb&g?#H@ zPOSGm2VMEWk}KLYQ-;_QYs%0rCW^m(J7irK7O0wm!t?cpP*2tB<)r?R0IkJ3d@?Cu0%9%*_4GWW)6x-T&oo{|9C~DOAKMl(> zRS6VwT_E`lBl_0~h2g>Sh4J|8rG>_th(sTPd;@Uy$xwvJmf%Z1Ln!1k$!Zyy0~%Sv zMSDyAD{v=jm6aaVtXL7n%f&Qo{z}@JB|UD#Kv=N)7bHrO^KXz0j0Sbd=ON4r(RLNx2{C6&{rt zxQ3$6SEmF31IfdBHr<@jAF9YtD?4hD=ND%Fh6)09NvB`|@GG!}4@w0Z5&Q!J(l>{< z?)OXk*Jv|PQ{0LMV!a0ckEGfjLZ8de)%*mN6Rpdn|w=eS`@t{BVKxMJ~ zPC=A!gp|q-bM2LdBhNmGrgykp@*76U@3gC_DY~C)D#znY82(sHZ-}N401VEy>tyHs zJpudb^xg*5hWsY!;bkOVN>)%~{RLUoe~V12SyV$9IoDP=_62+!055?@vfNl;!sj!6 zemvOgpz;-Pmsq4P@wOH`Je?htQDg2V%g&l0rZ=t^7! z|Fu7dyFG4NnJv>JB-fKmMpHR`>VEd9lVX_Dt3RwfMiqn7u0=*<)}qzEieM>e^DnfMV`kD&=ABcP%Z$hG zA{Nhpq8^_#7(FoWM4ivv{pgFV_)Bos16QDUaFm-3sS=3Eb%D}z5anSa zYM%zR=sOR{!0?$Ypw+EH!99#nWOHd$eRw~C&>vgi9?f<`G9U}1J*e$bpN|*_A@OM; z(X5@2{E2X5$f>EuB+Pc|N{9SP0XB{wR7GEiw_uS_4g=4EidjQHopLeA?ol*@vV<|E zgIDfTv~j;OmLV0h;i@U}f~LY?i^mr0p%dq;xlKY--?UkgWlCo>-dsqvXSS*UWWl^C z!JFk#vRb;)ULR#l?Fa1o0p z3Z6dqo20nt3y?1;trxmY#)C(RNKs-kYov~Ubh>R~*Y@AzO>W6M+={m4_!eU7)G=4= zg#3UMU2PO>(mdE)@TB!X2rzQoDGV#0`y5b@%}Ag-muARX2}lE+?r&AwOTrPUdhK6>3o}m>8FQY&21+r~QTPG_A<7#%8spKTYQo zVHd}jG-_Q*z8z821-iQHo#g&eH&)oJL$5B zfUu>Bw1V~r={py_W(*i%7PEMu6QRPPVf;j}$hjg43Gw3yI)jQbNunX}$7QEwOy|S- zXlOcp2@F9gnW)wRt3D}#YL4~@pd%oeOLCZDpv@RC>%>jPgC8N{`2Z#e5<8ZZYK93tgnw(uxd)j&Kus%a9EZ!NGR1dDsUQI zv>teyRjB8@X5>7o-Ox=h5-4bL%Rsd8Wn?_=y2u(x zoZHMKyxuEqIT9W76?Hu?T+24n4cc-ReGA$2P4vyMqND}WqKOGu1f`d}AaRb>#f`$= zgBpk`AC}_|;%PN9`f*zqx)3Wr!X1h^F)D@XY*qM9;qkR=mv7WoF!y75%yHQswKxQD zi!{F0j^D=540inmtQt9gM-Bfo;(|8e<}Dvp$!Zy&>J_{qBW?A88}G z3(@KxMTniKj*76?ysvfE-DPVKcWfOMrIo<6$tI^x+z*b|`2$h3q{;LyB9JU4>(q?N z9c8IjMx#(8XWK{fZHAGTs9%R`SY82kPZGqBC&5>29K{MLkuhNqHtLH7*FMRo`)|Rs z?Ujj}U|~hKK6_!AAuF;y`vWr$sWG>cReiXq`>j!V(_9ARaXzU6+3$2-7;{BW6ann% zUzT3sMMPI2+{%#4Q2^2}5?-k(MVcIw0Jx!nAt=fCtO91U7o-+dhE^8gjmQ)66mWV1 zk6J6O5$sPohoa4~NyGd!^jbjdsf!55l5I|x41^F3MA0PQBe$M0zBBxaNz0G9e?giMrB@FsHUb_-f4ZK;b$^PUL1dex&@plX70q=CyjMvnqhTxNTM8Q{69)KAhLXfgZhE zc!0_kNmKV6bqS$YB@};i8nK*C>_Jz0ah;+e3V<9%^xZ-DvH-?a zHXrbr;2Lna+>wD)b-RyRun)KFLK0t!=HD=LGdE8F+$XS|5GL{%yQk~WLE9aR5H`;m z;c_UMeGKFP)wTYWOr|UJ9%UF6lE4TH`dU$%}d3MM$ z-cvYdC(!AUguwe;?6yT*o$0SK(h$C@F#@MUPG1T%o2!OnBqoW z-!}GoY$tn%TuI06)m;EdSt+af1PcZTh{z{H02iC=YWY~SL;)wgFbx=lX=-n0aMR7! zVY~r+Pedbm0SC~#SDHQ&aKb%Mwz{Pr8Sdwqxb3nfp6
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 zAnxXPjTd%rc<+%m)gJdHS9{O?y~fYUQfF9&bN=lR zWhLuz67MiP9y6(|kCT$MWT5+J`u<*-7I~S)DyB(+%Xl?xl-^q95y+yGtHrJOc23Juq(WcQgvE{sSkvniGM59e#_q$LdTI=m z!pgaDRFseVp-d?uP?oIkY2y?1u7?W55`T!`Zn2-~g6Vz6qflb(v71syd{#Oj~Ipo>57-q8%a%-~;*G-&=1~ z(5d-FB7+}Dg{;seU<$2BakjVkrZs;+x1Kii8rR7lxu~)%-u{BMzdFgAnG&?cttyG* z$OqRE;1b~7hqibJ#mnPZw9l7p0J?d-cu+H#XL4;ZYLz2m2MSM$x{hr|0Mra31=RVx zMg4gomB3UXO=P&qh&o^lF`3=mTh&pv&|y$iMw5%wDtUdmq(9kLydEsCyh@2Is#`lQ z@lGM;%jd7(e_R^t!^3hszv_Hh4Rx?|hhY`nqFDL&gU{CYY&5a^PoH1e#Me}D*4ONo zra3-bb%m`h*|2K^jqa`>aTN&qWu&zm!9@xj%iZTWYiMU7I;U{~?IWwX#7dX#f`NO7 zWVpub**+(I?=?PdTcbZ_flV)cEp^0UQClOPr;xXwAqW$^**T zw&F*!f@2|dRYSE@g5|W;Bo=F#Db)F5R{ne_)i*hV3eHQu z?$Nnhfl-*ugI{B@i`nc_vSsc+a&gaso;ELTZkkpuIOp_KD?G^?eHjbg@Na#wTKT4M^Pc`5BnAIAx@$e3sFt^UHo9&w(V#MUD)ePHQdu_#My9N4 zjwWx&;&KgikGN#mGEFZ6kmWEnghm3(fYu9^S;n11;&l~BV37Ubkbuz~a)zR=lbQGi ztixFN@sJNW9C&*LzwzNEgLzy>Vf(EhRGG<8exY&lmrPuNRtMBk1}=M1^h1NHv(<|m zl6GK1K1<_MEuJknNw-5|A~KQ~)*5u=xkh-U=z!bre`0}_jgL-e#Y>=dgj&9$KYg0@ zodm0Wu2PLIc?M;fJ8$(JV5J~Do6J&w{mAE-nn*O-+(fr|JywuqLvt^9=(rRVv%TOh zhn^9@q#FaSk>RQ%h)m^hw3a*6y%2?kmIcIMTa2$h`r;=Lws$TN+F7DJ{9L&F6-@)T`QN#_WVi;qXO^b z=U6uo5hm9X1Iz<}4K5Y|UM5%Zz9h^u!-k|`r|eyP=SdutpixBgi*~BnBr$VX&S-$k z)*kN;IQ%w$Xwx3`e)Vac;AO<4`i{j9@=XOHh1s;b5}B(@CjawLbXdi#G9df=cNbMt zR2()Lr2&P z<40Uqn%N8|=hEHY>4#Sxie|U2hG%$Y5Zj;97CXuOcF_x=bHFa`AoqOkrPx&&C2TIo zmADM}nm(~?6ysK795;!ai%2G`U{_F$rSkE!JJyr>+c(iZ$g`Wkym{$2ivL>#!&wT| zt_yAh)ivzj6z*EEiAx0nHF&_77W#U?xXAXt;K%E#9}u_Fob8ps+abZm#Kl@SOo!E7 z+hxG$w$YeE`a&neBD5a0!G>U0YZ5^$+W~jL`Rl>Ke<5FgwV2v(&vAyOFL!`&x>@cc zI`Z{|G3iQOw1ewtV%P4Mh-#e4UW$(+d2NPu4}gC<4&5&wa09Sfhv?N;Xg0mFn%qDd zU2S$PE6?Z zclQSvp6RrQI0Z1*vYxBaly6ygRV^xd{y%p1_skUHST^iocEjMfG zm04|bT7l5F1~DN-6B!QxlVWH6fml^(OGu}=7bw`TTQL7}K(-||-tu(bu0_(V7M7`@ z@pTZ-h^N``g0ITOr@SUhWCP5`qMHiqLp74iC2AcmrJ^*x2IOWAHEY0B%6}lYwifo@ zo+4If?v^Fy#LfHwyL?{SuX0;=KYM<*26Ah!ukC=hd&6`Mh&ShVS-CPkutSX6d)^E? zg7+`q+0Q<#QeZJNX2GwjPzrVLzS{T#)7I(av5HN#MYALXY1?nDjCg;}8!5xCm0_%{bl3XKe z_?R|xXk0g}DL>}SKaDpYld&H$tNd{wI{AaVglEfGlND5#H2GOFvH2JFZVRfPCwF14 zH3XOe_yw}3=iM?W72=R`%N=ailap$M=qHiz0ZhqU*YZy}>^p=f++HDRWTxQ#x$}#Z zr&Q-QEAh;yN3Ia5`*MzqC}Jb4D)g>T(txs&lQ^F+&aJ5yqkw9~;}@vyc9-o=51MKs zE{`c>BRFcvDkj}EIcaFv4#uf_TVn~zTn;I?_W{pQwT9NTOT%ksMqO|#Xos$dLO6@v z72RGQEm9#kMQFm=-nS#r_m170EB&oVKxyhBE;MEh4KK+xvdZ=qn1f3WLUTE^PspM# z-s>LrY&9p4CF@HzFUN+KaXcRDp|YoNu*8N}xz3vYx68B2OL5=NzhH=U&e$uoqAoso z0oS}(Sdd%-2e5`7zLt(y=u+W34dJv@{&*;~z3*vY&52#+T5W^Rn}r4LUm3$N&Q^RB zrDI+9u%v0vK(e@%tWh=8YD>^LD&h@sJ;95#r%>xCa+%{Og1%*OdESde?4aRgrGACg zs%FMP%sQsUR@4}4(iB>uHUh1iRlE{g_HhajRwOJ(t|F806}sU6jXj+4eg z(kY(LM`|gk4zBuZvbm4`-x^6dVt=D*T6%}5PzHjO?!O0wr@3?$CHkF#-?O)>6wsytt(mRmMkh5|V zmx%_KOQJ#TbMMe^MtW#>sS)lMt6#8~{{_NamYpW|<%2l@@ZsWXOZYeJyToukZwHy# z)h$;^*61ErAe)TBgbqQyP+7asQp5_?$fJb`U6VnF!T<4Bu_X6EaOrwiZ(qT~a zo_*qfbBdURjFr6Xh=dle@wpHS7E=U(W9+Z2UsJ~s-r}gkQXJt6Vf9=Pe8*!p5REhe zTWPO5A`wMNSQvOMHk`ywdH0Fv{FP<$agUrg027w8fw|Ujn2Zts4A|FRnG~ zTyL1qq?K`943>uTQfg6cxn4{Ac7$U3^B0BCahX>u$?X{0Z^QO+!IM38=azMW)d6Dr z^_%%CWod@OlDnQ>K9@$R+pVLmA6+3S!c)u8LJvgGcUyUpb>$Wy%VCFjE3ykr-cp*8 z8Z>GJtBDm-Z<$GGx=Xfq(FF5NYkWXBUGMXf+rAKq zW7V7mCbvA1cgxu|iQ^lzzQm&)Pd5Q;TdFBG?&(*VYo#?l(^Y57tk-U$~Qo9qI}Q6^nqD+%r{$oYuno>;lB)>^*oY7@Q2&02U0Qe6{2)rF%|4V(070-334HT_?kA8DDBY^w+1nCX~Rw)KFOl48pgj)^+@fVVFW{1R$919|nP& zPhZo&5$q}7cCXS**gLvZ{q;ghlhvr!dy(A=UxuQLSy>dKMstxWo56QgB)W>egljrX zjR&;juG#jXa#j!^pVm2ry4#a2$O!P-AT0M3N-8S=q2~a!tky0v22vQ=gV2v4Utl!5 zF^bna9H1~8sNDk|%%-c|sr5mpIi`u;9V-p)t^u&5E~vfI$XK22O9awK`!+$5i*?@D z&4PvU6p$=?SElo~7~rt%ENBr0j?&b?W5<%_?C{&B`0Mm|Y+S{4!QMwo9^@{4H@BC) zau13I>*r)KNd0CJG(}+$t;A~Pji^790|5R3x?b9?=@yPVj{-3AlfKMU$C-aHpy`xW z|C)G8daaQjQ;vb@%;?wFvO(FL&v_IA&Nv#5)e_&JRG&|wa5ZzXbZ$u3@b%V;~m3?(@DY zqm4F3q9+EU?TP3j;M4nsDHW2h4qYSe=^@@e7jW4P18PkUSH%9S32`DC1M77hndjxo*1w`?`+wJ&>H)vjj=yStJrj{RV9PbVXqex9 z&a8V`z+Nnvv)^EYTn4Nj?nPDIce4+zj>#o!LB8Kw|w%Rb0lGWFt_Ctz>m;7^i zu5L$US9(jUhRzrALE=N#J#>H?_t9#DPoGMs+!H$b?3i?Hz7T<=z!ka!P(HNd(b;~Cz5M{Q>87k zt5f3g#xG!9j;DQBgs>z18`w(S=$SLjg;Tr(I>Pxs>g0Clv33Bw4vq~OxFolrkYGCE zEG0~&;?;Oh73URGF1G5F~%�@V>9Y*2kdK8 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 literal 0 HcmV?d00001 diff --git a/img/icons/apple-touch-icon.png b/img/icons/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e0ed0cccd710abaeb1a6057fecf147196ba3dfe2 GIT binary patch literal 1049 zcmeAS@N?(olHy`uVBq!ia0vp^TR@ltNH9n&i+snx!2H0|#WAGf*4w+*{!;=4*d9cd zvI<&D2Sy5Qz0i`8nzLYn#Nv#BZrv>y#DBw*j|pEwc^?1# z&}~ri_TFxZFQI~hVo`XA|B5A=FQhJZIh1_NwPV{mZo&GK_dczC+VlMLg`-~<#4cQ|u3h;orsQMVg>~mX zp7nNBnYI3$`SZm$v)XSqK6{tlf3rDlRcxC0tmWTk*1q_)FKxxt6hi5%jUt9Iq`PJpCuisn$-u=*!bH_Bd zQ+xlOylD~na>s?Mp9|i;&+A`$v1sYE80S}(KMMCShf3$XTdh{^Z~yApD~VNRCHYs* zc20dCzP9u|2VU|EYqws$;@Py#pKB9nw#qYYDHJf~q_iBl;^j(Lu=9e!X zJ#&H2^!^$5_Z_7UbCfUKzM}Yye8%ww@7LSvj?Xl{R6W(6 zYb}++=X^c+u3(CuSK@#9!e`HJZfrK(Z^f58pPyx>^2J}lk|=r2B(s*??xO7b^DFPD Pg7UnltDnm{r-UW|{O}YG literal 0 HcmV?d00001 diff --git a/img/icons/icon-128x128.png b/img/icons/icon-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..b7dba8dacf92e9eba2db3e06d2360762481d24ea GIT binary patch literal 778 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 Pg7UnltDnm{r-UW|{O}YG literal 0 HcmV?d00001 diff --git a/img/icons/icon-192x192.png b/img/icons/icon-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..c0537c5f5f9458fa851f135c5f30cca14e343001 GIT binary patch literal 1216 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

d$w#Nf4ZY~pZUIA_VyO1u+1Eyvstmoa zitNI7;&d_lJAPVj=sZp=PehkH@kWG@>wM5J>vWnylM#I;CDD(d2?tB(d2^{) z1 z2Fop@UKXLck|d(_G+M3F+`plVd89B(YCl;yZBpfJNG%eOm?hW|p$4nDV*Llt9KrhB zc|Krn68a^$^mo0jk}*BgN5;uS2G8Tf?s@cA38{}@)qxzEBz2q6XEBlTRZ*2_uoLgl z5LTVibc@vFgCzCJg*bNXHLcW#Ew>Z(8q#jjy$1B!CG=<#s|2&khQB(C^anUTW2}8) zRHvhZp+sxUBuOPUc_9-s!iI&fIfET5fSa?RmBlQlA?bI?jw{B3Olapm;%76a`lH0A zO~`{FGWKG$cN}h2Vw~%62v{kUlJj8eLFw}^BsFTdIR`pi+&W!AI)YTy{&cy*^*D7rSQ>s)5f1%PX-h;7Mf03e^Wj zGVXUFR+z;-6n37z+~R|*0-q#1=9^;TxxdzTUYc6~VizO&7wiprX*H=&PldP_!{s#O z5qOp8$VZ1QS>d05e4CUy%BM2R(j7ZZDhH5JCkVzCpxDXV-xG-g|GLptKSNFC+J(#S zVzY#84TLVAW(bh2g7?eBMlSM9lyz?_c z5g4sw$&8kktO>DiGkWR_w@9h3zUq5B#YAH;FEJ>GFq#i@s=o6SZayfQTU^hQqc--U zJ_<1(I)}UNBO&)A=LufDydzqy&j$pQ%Rf;C9pN6VV-27-RM91+T4ti*WN*V=QqUhQ z>>iMK8i)=qe3!vf2p56h5(=-)EBe5MHqcKCg@K8r!qRz#0Zb$o&YEasW&tBxgssKf zJtF-u4&?!JQvfqeMiaL0dO+5?_|g7M5Xa%|g?*=YEQ?@d?4P+JCrK zC75XLOf4h(E;eGekfr1*RZs}GJKTkXHCa_wk=zeXLK2)t3&%~-Hp-fnYO#stEjwvj zmo{^}-{^1M9#Ht0Mpm^72Nr^DA8-R|!qw?X>)M2G7IgDTw80X$m7cvB(Gm9a@{i>| z6wDe*EJ`bGri@0IafjUo%K!VF?>}z%Mo%H0jAbutJ_?0DtZe?<1GiPcQRn{x1Froe literal 0 HcmV?d00001 diff --git a/img/icons/icon-512x512-alpha.png b/img/icons/icon-512x512-alpha.png new file mode 100644 index 0000000000000000000000000000000000000000..9d9946819dcf1610857669d7ba64b3ee30f5ac08 GIT binary patch literal 1071 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H0wgodS2{2-Fn{xOaSW-r^>&uOcSxd0`~2u+ zKes?#CfQ5-8V+WBQRVTvYw5HlGrC(r*&~*9rsHmbQ@$>a-CvBiXvRhetX<^fDf8#D z8kcrX;oP)$J;vv1-|sEHSN_b#yYSh*=QHo;?|H7I(X|MHyu1qy9=*Q3!^>R$=(+pn zQ|&%@zxgHe%+$DO`g5*$OW~)yd>nFid}WLFHNIw2TFkVBU!j+4f?b1&mcuWGODh;& zGJB9H=qtmdqFQyS{r*G#=P$*i_RrO+|EXQ_HP-FK=P8q!!u^a-vY9LW?{{{wDO&Tf zMVRSveqp!srpMwUPb%*Ou)giNZM1KF!W7dq>97_P;T)s1(?9k#$^2v!T`2I+?Bzmj z(KV(EIHtAQuSl3;<1eJ^G^_CTA^DIA%I9;EG(Q}+PmBI>T2v*prA#e{w?4qp$o0eF z{J%gGesn)@0LmPRY$>aL_v=--fz<80iL^lZL#HMyofhK$;>9mg_9tA&m|=#kKF2zn$a_1NDjdG^|6?ud!+GK%?|#?n>VL2I-1_}*-Mx(o#ezm> z!e#G=2mF3l@PDfMX`$|I%NBH7hMn5Ae|l4v>x%sQ+qZGl{m_5&ySmkM%X4ZcuMH?G5_jcKaNOOE#jHbrSZT#{^JY9qw_DUzxz;9 zuDtSq$!)iAdtdhWAA*H#9Wsesy6a}I{1OzW-_E<<=8Snl(rPLHLRc=mRP=|rZ>4j$=Dp7Az=D9m M)78&qol`;+0Jb~wHUIzs literal 0 HcmV?d00001 diff --git a/img/icons/icon-512x512.png b/img/icons/icon-512x512.png new file mode 100644 index 0000000000000000000000000000000000000000..d4067ddcb98b24c09195e6a7bbecf59076ddd6d8 GIT binary patch literal 3620 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 k>(#0J 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 \ No newline at end of file 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/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/index.html b/index.html new file mode 100644 index 000000000..0a3cd6275 --- /dev/null +++ b/index.html @@ -0,0 +1,3 @@ +序炁的博客 + +

首页说说轮播加载中...

\ No newline at end of file diff --git a/js/aisummary.js b/js/aisummary.js new file mode 100644 index 000000000..e6825a56a --- /dev/null +++ b/js/aisummary.js @@ -0,0 +1 @@ +var tianliGPT={getTitleAndContent:function(){try{const e=document.title;const o=document.querySelector(tianliGPT_postSelector);if(!o){console.warn("TianliGPT:找不到文章容器。请尝试将引入的代码放入到文章容器之后。如果本身没有打算使用摘要功能可以忽略此提示。");return""}const i=o.getElementsByTagName("p");const r=o.querySelectorAll("h1, h2, h3, h4, h5");let n="";for(let t of r){n+=t.innerText+" "}for(let t of i){const a=t.innerText.replace(/https?:\/\/[^\s]+/g,"");n+=a}const c=e+" "+n;let t=1e3;if(typeof tianliGPT_wordLimit!=="undefined"){t=tianliGPT_wordLimit}const l=c.slice(0,t);return l}catch(t){console.error("TianliGPT错误:可能由于一个或多个错误导致没有正常运行,原因出在获取文章容器中的内容失败,或者可能是在文章转换过程中失败。",t);return""}},fetchTianliGPT:async function(t){if(!tianliGPT_key){return"没有获取到key,代码可能没有安装正确。如果你需要在tianli_gpt文件引用前定义tianliGPT_key变量。详细请查看文档。"}if(tianliGPT_key==="5Q5mpqRK5DkwT1X9Gi5e"){return"请购买 key 使用,如果你能看到此条内容,则说明代码安装正确。"}const n=`https://summary.tianli0.top/?content=${encodeURIComponent(t)}&key=${encodeURIComponent(tianliGPT_key)}`;const e=2e4;try{const o=new AbortController;const i=setTimeout(()=>o.abort(),e);const r=await fetch(n,{signal:o.signal});if(r.ok){const c=await r.json();return c.summary}else{throw new Error("请求失败")}}catch(t){if(t.name==="AbortError"){if(window.location.hostname==="localhost"){console.warn("警告:请勿在本地主机上测试 API 密钥。");return"获取文章摘要超时。请勿在本地主机上测试 API 密钥。"}else{console.error("请求超时");return"获取文章摘要超时。当你出现这个问题时,可能是key或者绑定的域名不正确。也可能是因为文章过长导致的 AI 运算量过大,您可以稍等一下然后刷新页面重试。"}}else{console.error("请求失败:",t);return"获取文章摘要失败,请稍后再试。"}}}};function typeWriterEffect(t,n){let e=0;function o(){if(e{document.querySelector(".ocxq-ai-text").innerHTML="";typeWriterEffect(t,document.querySelector(".ocxq-ai-text"))})}function checkURLAndRun(){if(typeof tianliGPT_postURL==="undefined"){runTianliGPT();return}try{const t=t=>{return new RegExp("^"+t.split(/\*+/).map(n).join(".*")+"$")};const n=t=>{return t.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&")};const e=t(tianliGPT_postURL);const o=window.location.href;if(e.test(o)){runTianliGPT()}else{console.log("TianliGPT:因为不符合自定义的链接规则,我决定不执行摘要功能。")}}catch(t){console.error("TianliGPT:我没有看懂你编写的自定义链接规则,所以我决定不执行摘要功能",t)}}checkURLAndRun(); \ No newline at end of file diff --git a/js/boot.js b/js/boot.js new file mode 100644 index 000000000..f2ebf02d3 --- /dev/null +++ b/js/boot.js @@ -0,0 +1 @@ +Fluid.boot={};Fluid.boot.registerEvents=function(){Fluid.events.billboard();Fluid.events.registerNavbarEvent();Fluid.events.registerParallaxEvent();Fluid.events.registerScrollDownArrowEvent();Fluid.events.registerScrollTopArrowEvent();Fluid.events.registerImageLoadedEvent()};document.addEventListener("DOMContentLoaded",function(){Fluid.boot.registerEvents()}); \ No newline at end of file diff --git a/js/color-schema.js b/js/color-schema.js new file mode 100644 index 000000000..d05261118 --- /dev/null +++ b/js/color-schema.js @@ -0,0 +1 @@ +(function(a,n){var r=n.documentElement;var i="Fluid_Color_Scheme";var t="--color-mode";var o="data-user-color-scheme";var u="data-default-color-scheme";var c="#color-toggle-btn";var l="#color-toggle-icon";function s(e,t){try{localStorage.setItem(e,t)}catch(e){}}function e(e){try{localStorage.removeItem(e)}catch(e){}}function d(e){try{return localStorage.getItem(e)}catch(e){return null}}function f(){var e=r.getAttribute(u);if(typeof e==="string"){return e.replace(/["'\s]/g,"")}return null}function g(){var e=getComputedStyle(r).getPropertyValue(t);if(typeof e==="string"){return e.replace(/["'\s]/g,"")}return null}function v(){r.setAttribute(o,m());e(i)}var h={dark:true,light:true};function m(){var e=f();if(h[e]){return e}e=g();if(h[e]){return e}var t=(new Date).getHours();if(t>=18||t>=0&&t<=6){return"dark"}return"light"}function b(e){var t=e||d(i)||m();if(t===m()){v()}else if(h[t]){r.setAttribute(o,t)}else{v();return}k(t);w(t);p(t)}var y={dark:"light",light:"dark"};function A(e){return"icon-"+e}function S(){var e=d(i);if(h[e]){e=y[e]}else if(e===null){var t=n.querySelector(l);if(t){e=t.getAttribute("data")}if(!t||!h[e]){e=y[g()]}}else{return}s(i,e);return e}function k(t){if(h[t]){var r=A("dark");if(t){r=A(t)}var e=n.querySelector(l);if(e){e.setAttribute("class","iconfont "+r);e.setAttribute("data",y[t])}else{Fluid.utils.waitElementLoaded(l,function(){var e=n.querySelector(l);if(e){e.setAttribute("class","iconfont "+r);e.setAttribute("data",y[t])}})}}}function w(e){var t=n.getElementById("highlight-css");var r=n.getElementById("highlight-css-dark");if(e==="dark"){if(r){r.removeAttribute("disabled")}if(t){t.setAttribute("disabled","")}}else{if(t){t.removeAttribute("disabled")}if(r){r.setAttribute("disabled","")}}setTimeout(function(){n.querySelectorAll(".markdown-body pre").forEach(e=>{var t=Fluid.utils.getBackgroundLightness(e)>=0?"code-widget-light":"code-widget-dark";var r=e.querySelector(".code-widget-light, .code-widget-dark");if(r){r.classList.remove("code-widget-light","code-widget-dark");r.classList.add(t)}})},200)}function p(e){if(a.REMARK42){a.REMARK42.changeTheme(e)}if(a.CUSDIS){a.CUSDIS.setTheme(e)}var t=n.querySelector(".utterances-frame");if(t){var r=a.UtterancesThemeLight;if(e==="dark"){r=a.UtterancesThemeDark}const i={type:"set-theme",theme:r};t.contentWindow.postMessage(i,"https://utteranc.es")}}b();Fluid.utils.waitElementLoaded(l,function(){b();var e=n.querySelector(c);if(e){e.addEventListener("click",function(){b(S())});var t=n.querySelector(l);if(t){e.addEventListener("mouseenter",function(){var e=t.getAttribute("data");t.classList.replace(A(y[e]),A(e))});e.addEventListener("mouseleave",function(){var e=t.getAttribute("data");t.classList.replace(A(e),A(y[e]))})}}})})(window,document); \ No newline at end of file diff --git a/js/duration.js b/js/duration.js new file mode 100644 index 000000000..e5b7fdcd3 --- /dev/null +++ b/js/duration.js @@ -0,0 +1 @@ +!function(){var m=new Date("2022/01/01 00:00:00");function n(){var n=new Date;n.setTime(n.getTime()+250);days=(n-m)/1e3/60/60/24;dnum=Math.floor(days);hours=(n-m)/1e3/60/60-24*dnum;hnum=Math.floor(hours);if(String(hnum).length===1){hnum="0"+hnum}minutes=(n-m)/1e3/60-24*60*dnum-60*hnum;mnum=Math.floor(minutes);if(String(mnum).length===1){mnum="0"+mnum}seconds=(n-m)/1e3-24*60*60*dnum-60*60*hnum-60*mnum;snum=Math.round(seconds);if(String(snum).length===1){snum="0"+snum}document.getElementById("timeDate").innerHTML=dnum+"天"+hnum+"小时"+mnum+"分"+snum+"秒"}n();setInterval(n,1e3)}(); \ No newline at end of file diff --git a/js/events.js b/js/events.js new file mode 100644 index 000000000..860bd0c47 --- /dev/null +++ b/js/events.js @@ -0,0 +1 @@ +HTMLElement.prototype.wrap=function(r){this.parentNode.insertBefore(r,this);this.parentNode.removeChild(this);r.appendChild(this)};Fluid.events={registerNavbarEvent:function(){var r=jQuery("#navbar");if(r.length===0){return}var e=jQuery("#navbar .dropdown-menu");if(r.offset().top>0){r.removeClass("navbar-dark");e.removeClass("navbar-dark")}Fluid.utils.listenScroll(function(){r[r.offset().top>50?"addClass":"removeClass"]("top-nav-collapse");e[r.offset().top>50?"addClass":"removeClass"]("dropdown-collapse");if(r.offset().top>0){r.removeClass("navbar-dark");e.removeClass("navbar-dark")}else{r.addClass("navbar-dark");e.removeClass("navbar-dark")}});jQuery("#navbar-toggler-btn").on("click",function(){jQuery(".animated-icon").toggleClass("open");jQuery("#navbar").toggleClass("navbar-col-show")})},registerParallaxEvent:function(){var a=jQuery('#banner[parallax="true"]');if(a.length===0){return}var t=jQuery("#board");if(t.length===0){return}var r=function(){var r=jQuery(window).scrollTop()/5;var e=parseInt(t.css("margin-top"),10);var o=96+e;if(r>o){r=o}a.css({transform:"translate3d(0,"+r+"px,0)"});var n=jQuery(".side-col");if(n){n.css({"padding-top":r+"px"})}};Fluid.utils.listenScroll(r)},registerScrollDownArrowEvent:function(){var r=jQuery(".scroll-down-bar");if(r.length===0){return}r.on("click",function(){Fluid.utils.scrollToElement("#board",-jQuery("#navbar").height())})},registerScrollTopArrowEvent:function(){var n=jQuery("#scroll-top-button");if(n.length===0){return}var a=jQuery("#board");if(a.length===0){return}var t=false;var l=false;var r=function(){var r=a[0].getClientRects()[0].right;var e=document.body.offsetWidth;var o=e-r;t=o>=50;n.css({bottom:t&&l?"20px":"-60px",right:o-64+"px"})};r();jQuery(window).resize(r);var e=a.offset().top;Fluid.utils.listenScroll(function(){var r=document.body.scrollTop+document.documentElement.scrollTop;l=r>=e;n.css({bottom:t&&l?"20px":"-60px"})});n.on("click",function(){jQuery("body,html").animate({scrollTop:0,easing:"swing"})})},registerImageLoadedEvent:function(){if(!("NProgress"in window)){return}var r=document.getElementById("banner");if(r){var e=r.style.backgroundImage;var o=e.match(/\((.*?)\)/)[1].replace(/(['"])/g,"");var n=new Image;n.onload=function(){window.NProgress&&window.NProgress.inc(.2)};n.src=o;if(n.complete){n.onload()}}var a=jQuery("main img:not([lazyload])");var t=a.length;for(const n of a){const l=n.onload;n.onload=function(){l&&l();window.NProgress&&window.NProgress.inc(.5/t)};if(n.complete){n.onload()}}},billboard:function(){if(!("console"in window)){return}console.log(`Welcome to OrdChaos's blog!`)}}; \ No newline at end of file diff --git a/js/img-lazyload.js b/js/img-lazyload.js new file mode 100644 index 000000000..ae821f2c6 --- /dev/null +++ b/js/img-lazyload.js @@ -0,0 +1 @@ +(function(t,e){for(const o of e.querySelectorAll("img[lazyload]")){Fluid.utils.waitElementVisible(o,function(){o.removeAttribute("srcset");o.removeAttribute("lazyload")},CONFIG.lazyload.offset_factor)}})(window,document); \ No newline at end of file diff --git a/js/jquery.min.js b/js/jquery.min.js new file mode 100644 index 000000000..00868b9e4 --- /dev/null +++ b/js/jquery.min.js @@ -0,0 +1 @@ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,y=n.hasOwnProperty,a=y.toString,l=a.call(Object),v={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&v(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!y||!y.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ve(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ye(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ve(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],y=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||y.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||y.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||y.push(".#.+[+~]"),e.querySelectorAll("\\\f"),y.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),y=y.length&&new RegExp(y.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),v=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&v(p,e)?-1:t==C||t.ownerDocument==p&&v(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!y||!y.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),v.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",v.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",v.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),v.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(v.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return B(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=_e(v.pixelPosition,function(e,t){if(t)return t=Be(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return B(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0=1});return(i?function(t,e){return Math.floor(t)+e}(r[i],t.lang[i]):t.lang.error)+t.lang.ago},n=function(t){return t=new Date(t&&("number"==typeof t?t:t.replace(/-/g,"/").replace("T"," "))),!isNaN(t.getTime())&&t.getTime()};return{init:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=r.target,a=void 0===i?"time":i,o=r.lang;o&&(t.lang=o);var u=!0,h=!1,l=void 0;try{for(var s,c=document.querySelectorAll(a)[Symbol.iterator]();!(u=(s=c.next()).done);u=!0){var f=s.value,g=n(f.dateTime)||n(f.title)||n(f.innerHTML)||0;if(!g)return;f.title=new Date(g).toLocaleString(),f.innerHTML=e(g)}}catch(t){h=!0,l=t}finally{try{!u&&c.return&&c.return()}finally{if(h)throw l}}},format:e}}}(); diff --git a/js/leancloud.js b/js/leancloud.js new file mode 100644 index 000000000..113d3e7b6 --- /dev/null +++ b/js/leancloud.js @@ -0,0 +1 @@ +(function(window,document){function getRecord(i,c){return new Promise(function(a,o){i("get","/classes/Counter?where="+encodeURIComponent(JSON.stringify({target:c}))).then(e=>e.json()).then(({results:e,code:t,error:r})=>{if(t===401){throw r}if(e&&e.length>0){var n=e[0];a(n)}else{i("post","/classes/Counter",{target:c,time:0}).then(e=>e.json()).then((e,t)=>{if(t){throw t}a(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){return new Promise(function(t,r){e("post","/batch",{requests:n}).then(e=>{e=e.json();if(e.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(e==="localhost"||e==="127.0.0.1"){return false}}return true}function validUV(){var e="LeanCloud_UV_Flag";var t=localStorage.getItem(e);if(t){if((new Date).getTime()-parseInt(t,10)<=864e5){return false}}localStorage.setItem(e,(new Date).getTime().toString());return true}function addCount(Counter){var enableIncr=CONFIG.web_analytics.enable&&validHost();var getterArr=[];var incrArr=[];var pvCtn=document.querySelector("#leancloud-site-pv-container");if(pvCtn){var pvGetter=getRecord(Counter,"site-pv").then(e=>{enableIncr&&incrArr.push(buildIncrement(e.objectId));var t=document.querySelector("#leancloud-site-pv");if(t){t.innerText=(e.time||0)+(enableIncr?1:0);pvCtn.style.display="inline"}});getterArr.push(pvGetter)}var uvCtn=document.querySelector("#leancloud-site-uv-container");if(uvCtn){var uvGetter=getRecord(Counter,"site-uv").then(e=>{var t=validUV()&&enableIncr;t&&incrArr.push(buildIncrement(e.objectId));var r=document.querySelector("#leancloud-site-uv");if(r){r.innerText=(e.time||0)+(t?1:0);uvCtn.style.display="inline"}});getterArr.push(uvGetter)}var viewCtn=document.querySelector("#leancloud-page-views-container");if(viewCtn){var path=eval(CONFIG.web_analytics.leancloud.path||"window.location.pathname");var target=decodeURI(path.replace(/\/*(index.html)?$/,"/"));var viewGetter=getRecord(Counter,target).then(e=>{enableIncr&&incrArr.push(buildIncrement(e.objectId));var t=document.querySelector("#leancloud-page-views");if(t){t.innerText=(e.time||0)+(enableIncr?1:0);viewCtn.style.display="inline"}});getterArr.push(viewGetter)}if(enableIncr){Promise.all(getterArr).then(()=>{incrArr.length>0&&increment(Counter,incrArr)})}}var appId=CONFIG.web_analytics.leancloud.app_id;var appKey=CONFIG.web_analytics.leancloud.app_key;var serverUrl=CONFIG.web_analytics.leancloud.server_url;if(!appId){throw new Error("LeanCloud appId is empty")}if(!appKey){throw new Error("LeanCloud appKey is empty")}function fetchData(n){var e=(e,t,r)=>{return fetch(`${n}/1.1${t}`,{method:e,headers:{"X-LC-Id":appId,"X-LC-Key":appKey,"Content-Type":"application/json"},body:JSON.stringify(r)})};addCount(e)}var apiServer=appId.slice(-9)!=="-MdYXbMMI"?serverUrl:`https://${appId.slice(0,8).toLowerCase()}.api.lncldglobal.com`;if(apiServer){fetchData(apiServer)}else{fetch("https://app-router.leancloud.cn/2/route?appId="+appId).then(e=>e.json()).then(e=>{if(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 000000000..5a17dbad4 --- /dev/null +++ b/js/local-search.js @@ -0,0 +1 @@ +(function(){function t(e,t,r){"use strict";var a=jQuery(t);var l=jQuery(r);if(a.length===0){throw Error("No element selected by the searchSelector")}if(l.length===0){throw Error("No element selected by the resultSelector")}if(l.attr("class").indexOf("list-group-item")===-1){l.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();if(l.html().indexOf("list-group-item")===-1){l.html("")}a.on("input",function(){var e=a.val();var d="";var m=e.trim().toLowerCase().split(/[\s-]+/);l.html("");if(e.trim().length<=0){return a.removeClass("invalid").removeClass("valid")}t.forEach(function(e){var r=true;if(!e.title||e.title.trim()===""){e.title="Untitled"}var t=e.title.trim();var a=t.toLowerCase();var l=e.content.trim().replace(/<[^>]+>/g,"");var i=l.toLowerCase();var s=e.url;var n=-1;var o=-1;var c=-1;if(i!==""){m.forEach(function(e,t){n=a.indexOf(e);o=i.indexOf(e);if(n<0&&o<0){r=false}else{if(o<0){o=0}if(t===0){c=o}}})}else{r=false}if(r){d+=""+t+"";var u=l;if(c>=0){var v=c-20;var h=c+80;if(v<0){v=0}if(v===0){h=100}if(h>u.length){h=u.length}var f=u.substring(v,h);m.forEach(function(e){var t=new RegExp(e,"gi");f=f.replace(t,''+e+"")});d+="

"+f+"...

"}}});if(d.indexOf("list-group-item")===-1){return a.addClass("invalid").removeClass("valid")}a.addClass("valid").removeClass("invalid");l.html(d)})}})}function e(e,t){"use strict";var r=jQuery(e);var a=jQuery(t);if(r.length===0){throw Error("No element selected by the searchSelector")}if(a.length===0){throw Error("No element selected by the resultSelector")}r.val("").removeClass("invalid").removeClass("valid");a.html("")}var r=jQuery("#modalSearch");var a="#local-search-input";var l="#local-search-result";r.on("show.bs.modal",function(){var e=CONFIG.search_path||"/local-search.xml";t(e,a,l)});r.on("shown.bs.modal",function(){jQuery("#local-search-input").focus()});r.on("hidden.bs.modal",function(){e(a,l)})})(); \ No newline at end of file diff --git a/js/moment.min.js b/js/moment.min.js new file mode 100644 index 000000000..2f0867ed1 --- /dev/null +++ b/js/moment.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var H;function f(){return H.apply(null,arguments)}function a(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function F(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function c(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function L(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;for(var t in e)if(c(e,t))return;return 1}function o(e){return void 0===e}function u(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function V(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function G(e,t){for(var n=[],s=e.length,i=0;i>>0,s=0;sAe(e)?(r=e+1,t-Ae(e)):(r=e,t);return{year:r,dayOfYear:n}}function qe(e,t,n){var s,i,r=ze(e.year(),t,n),r=Math.floor((e.dayOfYear()-r-1)/7)+1;return r<1?s=r+P(i=e.year()-1,t,n):r>P(e.year(),t,n)?(s=r-P(e.year(),t,n),i=e.year()+1):(i=e.year(),s=r),{week:s,year:i}}function P(e,t,n){var s=ze(e,t,n),t=ze(e+1,t,n);return(Ae(e)-s+t)/7}s("w",["ww",2],"wo","week"),s("W",["WW",2],"Wo","isoWeek"),t("week","w"),t("isoWeek","W"),n("week",5),n("isoWeek",5),v("w",p),v("ww",p,w),v("W",p),v("WW",p,w),Te(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=g(e)});function Be(e,t){return e.slice(t,7).concat(e.slice(0,t))}s("d",0,"do","day"),s("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),s("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),s("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),s("e",0,0,"weekday"),s("E",0,0,"isoWeekday"),t("day","d"),t("weekday","e"),t("isoWeekday","E"),n("day",11),n("weekday",11),n("isoWeekday",11),v("d",p),v("e",p),v("E",p),v("dd",function(e,t){return t.weekdaysMinRegex(e)}),v("ddd",function(e,t){return t.weekdaysShortRegex(e)}),v("dddd",function(e,t){return t.weekdaysRegex(e)}),Te(["dd","ddd","dddd"],function(e,t,n,s){s=n._locale.weekdaysParse(e,s,n._strict);null!=s?t.d=s:m(n).invalidWeekday=e}),Te(["d","e","E"],function(e,t,n,s){t[s]=g(e)});var Je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Qe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),Ke=k,et=k,tt=k;function nt(){function e(e,t){return t.length-e.length}for(var t,n,s,i=[],r=[],a=[],o=[],u=0;u<7;u++)s=l([2e3,1]).day(u),t=M(this.weekdaysMin(s,"")),n=M(this.weekdaysShort(s,"")),s=M(this.weekdays(s,"")),i.push(t),r.push(n),a.push(s),o.push(t),o.push(n),o.push(s);i.sort(e),r.sort(e),a.sort(e),o.sort(e),this._weekdaysRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+a.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function st(){return this.hours()%12||12}function it(e,t){s(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function rt(e,t){return t._meridiemParse}s("H",["HH",2],0,"hour"),s("h",["hh",2],0,st),s("k",["kk",2],0,function(){return this.hours()||24}),s("hmm",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)}),s("hmmss",0,0,function(){return""+st.apply(this)+r(this.minutes(),2)+r(this.seconds(),2)}),s("Hmm",0,0,function(){return""+this.hours()+r(this.minutes(),2)}),s("Hmmss",0,0,function(){return""+this.hours()+r(this.minutes(),2)+r(this.seconds(),2)}),it("a",!0),it("A",!1),t("hour","h"),n("hour",13),v("a",rt),v("A",rt),v("H",p),v("h",p),v("k",p),v("HH",p,w),v("hh",p,w),v("kk",p,w),v("hmm",ge),v("hmmss",we),v("Hmm",ge),v("Hmmss",we),D(["H","HH"],x),D(["k","kk"],function(e,t,n){e=g(e);t[x]=24===e?0:e}),D(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),D(["h","hh"],function(e,t,n){t[x]=g(e),m(n).bigHour=!0}),D("hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s)),m(n).bigHour=!0}),D("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i)),m(n).bigHour=!0}),D("Hmm",function(e,t,n){var s=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s))}),D("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[x]=g(e.substr(0,s)),t[T]=g(e.substr(s,2)),t[N]=g(e.substr(i))});k=de("Hours",!0);var at,ot={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:Ce,monthsShort:Ue,week:{dow:0,doy:6},weekdays:Je,weekdaysMin:Xe,weekdaysShort:Qe,meridiemParse:/[ap]\.?m?\.?/i},R={},ut={};function lt(e){return e&&e.toLowerCase().replace("_","-")}function ht(e){for(var t,n,s,i,r=0;r=t&&function(e,t){for(var n=Math.min(e.length,t.length),s=0;s=t-1)break;t--}r++}return at}function dt(t){var e;if(void 0===R[t]&&"undefined"!=typeof module&&module&&module.exports&&null!=t.match("^[^/\\\\]*$"))try{e=at._abbr,require("./locale/"+t),ct(e)}catch(e){R[t]=null}return R[t]}function ct(e,t){return e&&((t=o(t)?mt(e):ft(e,t))?at=t:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),at._abbr}function ft(e,t){if(null===t)return delete R[e],null;var n,s=ot;if(t.abbr=e,null!=R[e])Q("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=R[e]._config;else if(null!=t.parentLocale)if(null!=R[t.parentLocale])s=R[t.parentLocale]._config;else{if(null==(n=dt(t.parentLocale)))return ut[t.parentLocale]||(ut[t.parentLocale]=[]),ut[t.parentLocale].push({name:e,config:t}),null;s=n._config}return R[e]=new K(X(s,t)),ut[e]&&ut[e].forEach(function(e){ft(e.name,e.config)}),ct(e),R[e]}function mt(e){var t;if(!(e=e&&e._locale&&e._locale._abbr?e._locale._abbr:e))return at;if(!a(e)){if(t=dt(e))return t;e=[e]}return ht(e)}function _t(e){var t=e._a;return t&&-2===m(e).overflow&&(t=t[O]<0||11We(t[Y],t[O])?b:t[x]<0||24P(r,u,l)?m(s)._overflowWeeks=!0:null!=h?m(s)._overflowWeekday=!0:(d=$e(r,a,o,u,l),s._a[Y]=d.year,s._dayOfYear=d.dayOfYear)),null!=e._dayOfYear&&(i=bt(e._a[Y],n[Y]),(e._dayOfYear>Ae(i)||0===e._dayOfYear)&&(m(e)._overflowDayOfYear=!0),h=Ze(i,0,e._dayOfYear),e._a[O]=h.getUTCMonth(),e._a[b]=h.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=c[t]=n[t];for(;t<7;t++)e._a[t]=c[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[x]&&0===e._a[T]&&0===e._a[N]&&0===e._a[Ne]&&(e._nextDay=!0,e._a[x]=0),e._d=(e._useUTC?Ze:je).apply(null,c),r=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[x]=24),e._w&&void 0!==e._w.d&&e._w.d!==r&&(m(e).weekdayMismatch=!0)}}function Tt(e){if(e._f===f.ISO_8601)St(e);else if(e._f===f.RFC_2822)Ot(e);else{e._a=[],m(e).empty=!0;for(var t,n,s,i,r,a=""+e._i,o=a.length,u=0,l=ae(e._f,e._locale).match(te)||[],h=l.length,d=0;de.valueOf():e.valueOf()"}),i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},i.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},i.eraName=function(){for(var e,t=this.localeData().eras(),n=0,s=t.length;nthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},i.isLocal=function(){return!!this.isValid()&&!this._isUTC},i.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},i.isUtc=At,i.isUTC=At,i.zoneAbbr=function(){return this._isUTC?"UTC":""},i.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},i.dates=e("dates accessor is deprecated. Use date instead.",ke),i.months=e("months accessor is deprecated. Use month instead",Ge),i.years=e("years accessor is deprecated. Use year instead",Ie),i.zone=e("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?(this.utcOffset(e="string"!=typeof e?-e:e,t),this):-this.utcOffset()}),i.isDSTShifted=e("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e,t={};return $(t,this),(t=Nt(t))._a?(e=(t._isUTC?l:W)(t._a),this._isDSTShifted=this.isValid()&&0 img, .markdown-body > img").each(function(){var e=jQuery(this);var a=e.attr("data-src")||e.attr("src")||"";if(CONFIG.image_zoom.img_url_replace){var t=CONFIG.image_zoom.img_url_replace;var r=t[0]||"";var i=t[1]||"";if(r){if(/^re:/.test(r)){r=r.replace(/^re:/,"");var n=new RegExp(r,"gi");a=a.replace(n,i)}else{a=a.replace(r,i)}}}var o=e.wrap(` + `).parent("a");if(o.length!==0){if(e.is(".group-image-container img")){o.attr("data-fancybox","group").attr("rel","group")}else{o.attr("data-fancybox","default").attr("rel","default")}var p=e.attr("title")||e.attr("alt");if(p){o.attr("title",p).attr("data-caption",p)}}});jQuery.fancybox.defaults.hash=false;jQuery(".fancybox").fancybox({loop:true,helpers:{overlay:{locked:false}}})},imageCaption:function(e){if(!CONFIG.image_caption.enable){return}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);var a=e.next("figcaption");if(a.length!==0){a.addClass("image-caption")}else{var t=e.attr("title")||e.attr("alt");if(t){e.after(``)}}})}}; \ No newline at end of file diff --git a/js/rand.js b/js/rand.js new file mode 100644 index 000000000..4e687fca4 --- /dev/null +++ b/js/rand.js @@ -0,0 +1 @@ +function randomPost(){fetch("/baidusitemap.xml").then(e=>e.text()).then(e=>(new window.DOMParser).parseFromString(e,"text/xml")).then(e=>{let t=e.querySelectorAll("url loc");while(true){let e=t[Math.floor(Math.random()*t.length)].innerHTML;if(location.href==e)continue;location.href=e;return}})} \ No newline at end of file diff --git a/js/sharethis.js b/js/sharethis.js new file mode 100644 index 000000000..c7192753b --- /dev/null +++ b/js/sharethis.js @@ -0,0 +1 @@ +if(!Date.now){Date.now=function t(){return(new Date).getTime()}}(function(t,e){"use strict";t=t||"docReady";e=e||window;var n=[];var i=false;var o=false;function r(){if(!i){i=true;for(var t=0;t>>0;if(0===o)return-1;n=+e||0;Infinity===Math.abs(n)&&(n=0);if(n>=o)return-1;for(n=Math.max(0<=n?n:o-Math.abs(n),0);n500){t=t.slice(0,497)+"..."}if(t.length>0){return x.log({copy_text:t,destinations:"copy",event:"share",url:x.href})}};x.close=function(t){x.removeClass(document.body,"st-body-no-scroll");if(!t){return}x.addClass(t,"st-hidden");return setTimeout(function(){return x.remove(t)},200)};x.css=function(t){var e,n;e=document.getElementsByTagName("head")[0];n=document.createElement("style");n.setAttribute("type","text/css");if(n.styleSheet){n.styleSheet.cssText=t}else{n.appendChild(document.createTextNode(t))}return e.appendChild(n)};x.ecommerce=function(){var l,t,e,n;t=x.meta["@type"]==="Product";e=x.meta["og:type"]==="product";n=x.getMeta(["og:price:amount","price","product:price:amount"]);if(t||e||n){l=JSON.stringify(x.omit({availability:x.getMeta(["og:availability","product:availability","availability"]),brand:x.getMeta(["brand","og:site_name"]),category:x.getMeta(["category"]),currency:x.getMeta(["og:price:currency","product:price:currency","priceCurrency"]),description:x.getMeta(["og:description","twitter:description","description"]),image:x.getMeta(["og:image:secure_url","og:image","twitter:image"]),mpn:x.getMeta(["mpn"]),name:x.getMeta(["og:title","twitter:title","name"]),price:x.getMeta(["og:price:amount","product:price:amount","price"]),rating:x.getMeta(["og:rating","ratingValue"]),reviews:x.getMeta(["reviewCount","ratingCount"]),sku:x.getMeta(["sku"])}));x.log({event:"ecommerce_pview",ecommerce:l});x.addEventListener(document,"click",function(t){var e,n,i,o,r,s,a;if(!(t!=null?t.target:void 0)){return true}if(t.target.tagName==="A"){r=t.target.getAttribute("href")||"";if(new RegExp("/cart$").test(r)){x.log({event:"view_cart",ecommerce:l});return true}}i={add_to_cart:["add_to_cart","add-to-cart","addtocart"],add_to_wishlist:["save-for-later","wishlist"],buy:["payment-button"]};for(o in i){e=i[o];for(s=0,a=e.length;s1e6){return Math.round(10*(t/1e6))/10+"m"}if(t>1e5){return Math.round(t/1e3)+"k"}if(t>1e3){return Math.round(10*(t/1e3))/10+"k"}return""+t};x.getCookie=function(t){var e;e=document.cookie.match("(^|;)\\s*"+t+"\\s*=\\s*([^;]+)");if(e){return e.pop()}return null};x.getDescription=function(){return x.getMeta(["og:description","twitter:description","description","Description"])};x.getImage=function(){return x.getMeta(["og:image:secure_url","og:image","twitter:image"])};x.getMeta=function(t){var e,n,i;for(e=0,n=t.length;e-1;document.cookie=e+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";return t}();x.hasLocalStorage=function(){var t;t="__sharethis_local_storage_test__";try{localStorage.setItem(t,"hello world");localStorage.removeItem(t);return true}catch(t){return false}}();x.hem=function(t){var e;x._hem=t;if(t==null||t.sha1==null||t.sha256==null||t.md5==null){return"Not valid data input"}e={hem_sha1:t.sha1,hem_sha256:t.sha256,hem_md5:t.md5};x.send("https://sync.sharethis.com/powr/hem?"+x.qs(e))};x.hostname=function(t){var e;if(t==null){t=x.href}e=document.createElement("a");e.setAttribute("href",t);return e.hostname};x.ibl=function(){var t,e,n,i,o,r,s;i=document.referrer;if(i){n=x.hostname(i)||"";s=x.protocol(i)||"";if(s==="android-app:"){return true}t=["aol","bing","bs.to","facebook","google","yahoo","yandex",document.location.hostname];for(o=0,r=t.length;o-1){return true}}x.log({event:"ibl",title:"",url:i})}return true};x.img=function(t){var e;if(!t){return}e=t.replace(".svg","").replace(".png","")+" sharing button";return""+e+""};x.incLocalStorageShares=function(t,e){var n,i,o,r,s,a,l,c,d;n=x.storage.get("st_shares_"+e);if(n){i=((o=n[t])!=null?o.value:void 0)+1||0;d=((r=n["total"])!=null?r.value:void 0)+1||0;if((s=n[t])!=null){s.value=i}if((a=n[t])!=null){a.label=x.formatNumber(i)}if((l=n["total"])!=null){l.value=d}if((c=n["total"])!=null){c.label=x.formatNumber(d)}n["update_time"]=Math.round(new Date/1e3);return x.storage.set("st_shares_"+e,n)}};x.inc=function(t){var e;e=x.parseNumber(t.innerText);t.innerText=x.formatNumber(e+1);x.addClass(t,"st-grow");return setTimeout(function(){return x.removeClass(t,"st-grow")},400)};x.isEnter=function(t){return t.which===13||t.keyCode===13};x.isEsc=function(t){var e;return(e=t.key)==="Escape"||e==="Esc"||t.keyCode===27};x.isValidEmail=function(t){var e;e=/[^\.\s@][^\s@]*(?!\.)@[^\.\s@]+(?:\.[^\.\s@]+)*/;return e.test(t)};x.js=function(t,e){var n,i;n=document.createElement("script");n.async=1;n.src=t;if(e){n.id=e}i=document.getElementsByTagName("script")[0];return i.parentNode.insertBefore(n,i)};x.ldjson=function(){var t,e,n,i,o;t=document.querySelector('script[type="application/ld+json"]');if(t){try{o=JSON.parse(t.innerText);if(!Array.isArray(o)){o=[o]}for(e=0,i=o.length;e-1||t.indexOf("viber")>-1){return document.location=t}else{i=x.getWindowSize().height;o=x.getWindowSize().width;e=Math.min(600,.6*i);n=Math.min(800,.8*o);return window.open(t,"",["height="+e,"left="+(o-n)/2,"top="+(i-e)/2,"width="+n,"status=1","toolbar=0"].join(","))}};x.parseNumber=function(t){var e;e=1;if(t.indexOf("k")>-1){e=1e3}if(t.indexOf("m")>-1){e=1e6}t=t.replace(/[km,]/g,"");return e*parseInt(t,10)||0};x.position=function(t,e){var n,i;if(e==null){e=window}i=t.getBoundingClientRect();if(e===window){return{left:i.left+window.scrollX,top:i.top+window.scrollY}}else{n=e.getBoundingClientRect();return{left:i.left-n.left+e.scrollLeft,top:i.top-n.top+e.scrollTop}}};x.protocol=function(t){var e;if(t==null){t=x.href}e=document.createElement("a");e.setAttribute("href",t);return e.protocol};x.px=function(t){if(typeof t==="string"){return t}return Math.floor(t)+"px"};x.qs=function(e){var n,i;return function(){var t;t=[];for(n in e){i=e[n];if(i!=null){t.push(n+"="+encodeURIComponent(i))}}return t}().join("&")};x.react=function(t){var e,n;e=t.reaction,n=t.url;if(n==null){n=x.href}x.logGoogleAnalyticsEvent("ShareThis",e,n);return x.log({event:"reaction",reactionType:e,url:n})};x.remove=function(t){if(!(t!=null?t.parentNode:void 0)){return}return t.parentNode.removeChild(t)};x.removeClass=function(t,e){return t.className=t.className.replace(e,"")};x.removeEventListener=function(t,e,n){if(!(t&&e&&n)){return}if(t.removeEventListener){return t.removeEventListener(e,n,false)}else if(t.detachEvent){return t.detachEvent("on"+e,n)}else{return t["on"+e]=null}};x.send=function(t,e,n){var i;if(e){t=t+"?"+x.qs(e)}i=new Image(1,1);i.src=t;i.onload=function(){return typeof n==="function"?n(true):void 0};return i.onerror=function(){return typeof n==="function"?n(false):void 0}};x.setCookie=function(t,e,n){var i,o;if(n){i=new Date;i.setTime(i.getTime()+n*24*60*60*1e3);o="; expires="+i.toGMTString()}else{o=""}return document.cookie=t+"="+e+o+"; path=/"};x.share=function(t){var e,n,i,o,r,s,a,l,c,d,u,p,h,f,g,m,b,v,w,_,y,k;if(t==null){t={}}e=t.channel_is_ssb,n=t.channels_displayed,r=t.count_url,v=t.subject,m=t.share_url,b=t.short_url,_=t.url,s=t.description,l=t.image,u=t.message,p=t.network,w=t.title,y=t.username;e=false;if(n==null){n=JSON.stringify([])}r=r||_||x.href;if(s==null){s=x.getDescription()}if(l==null){l=x.getImage()}m=m||b||_||x.href;if(w==null){w=x.getTitle()}if(_==null){_=r}if(p==="sharethis"){return x.load("share-all",{count_url:r,description:s,image:l,share_url:m,short_url:b,title:w,url:_,username:y})}x.incLocalStorageShares(p,r);x.logGoogleAnalyticsEvent("ShareThis",p,r);x.log({channel_is_ssb:e,channels_displayed:n,destinations:p,event:"share",title:w,url:r});x.emit("share",{count_url:r,description:s,image:l,message:u,share_url:m,title:w,url:_,username:y});if(p==="wechat"){if(x.mobile){return x.load("share-wechat-mobile",{url:m})}else{k="https://api.qrserver.com/v1/create-qr-code/?"+x.qs({size:"154x154",data:m});x.open(k)}}if(p==="print"){x.emit("print",{count_url:r,description:s,image:l,message:u,share_url:m,title:w,url:_,username:y});return window.print()}if(p==="copy"){navigator.clipboard.writeText(window.location.href);i=document.querySelector('div[data-network="copy"]');if(i){o=document.createElement("span");o.innerText="URL Copied!";o.className="copy-notify";o.style.opacity="1";o.style.width="100px";o.style.transition="all .6s";i.append(o);g=function(){o.style.opacity="0";o.style.minWidth="0";o.style.width="0";o.style.padding="0";o.style.overflow="hidden";g=function(){return o.remove()};return setTimeout(g,1e3)};setTimeout(g,1500)}}a=document.location.hostname;h=x.product;d=/iPad|iPhone|iPod/.test(navigator.userAgent);c=/Android/i.test(navigator.userAgent);f={blm:"https://secure.actblue.com/donate/ms_blm_homepage_2019",blogger:"https://www.blogger.com/blog-this.g?"+x.qs({n:w,t:s,u:m}),buffer:"https://buffer.com/add?"+x.qs({text:w,url:m}),diaspora:"https://share.diasporafoundation.org/?"+x.qs({title:w,url:m}),delicious:"https://del.icio.us/save?"+x.qs({provider:"sharethis",title:w,url:m,v:5}),digg:"https://digg.com/submit?"+x.qs({url:m}),douban:"http://www.douban.com/recommend/?"+x.qs({title:w,url:m}),email:"mailto:?to=&"+x.qs({subject:v||"I'd like to share a link with you",body:u||""+_}),evernote:"http://www.evernote.com/clip.action?"+x.qs({title:w,url:m}),facebook:"https://www.facebook.com/sharer.php?"+x.qs({t:w,u:m}),flipboard:"https://share.flipboard.com/bookmarklet/popout?"+x.qs({ext:"sharethis",title:w,url:m,utm_campaign:"widgets",utm_content:a,utm_source:"sharethis",v:2}),getpocket:"https://getpocket.com/edit?"+x.qs({url:m}),gmail:"https://mail.google.com/mail/?view=cm&"+x.qs({to:"",su:w,body:m,bcc:"",cc:""}),googlebookmarks:"https://www.google.com/bookmarks/mark?"+x.qs({op:"edit",bkmk:m,title:w,annotation:s}),hackernews:"https://news.ycombinator.com/submitlink?"+x.qs({u:m,t:w}),instapaper:"http://www.instapaper.com/edit?"+x.qs({url:m,title:w,description:s}),iorbix:"https://iorbix.com/m-share?"+x.qs({url:m,title:w}),kakao:"https://story.kakao.com/share?"+x.qs({url:m}),kindleit:"https://pushtokindle.fivefilters.org/send.php?"+x.qs({url:m}),kooapp:"https://www.kooapp.com/create?"+x.qs({title:w,link:m}),line:"https://lineit.line.me/share/ui?"+x.qs({url:m,text:w||s}),linkedin:"https://www.linkedin.com/shareArticle?"+x.qs({title:w,url:m}),livejournal:"https://www.livejournal.com/update.bml?"+x.qs({event:m,subject:w}),mailru:"https://connect.mail.ru/share?"+x.qs({share_url:m}),mailru:"https://connect.mail.ru/share?"+x.qs({share_url:m}),meneame:"https://meneame.net/submit.php?"+x.qs({url:m}),messenger:{true:"fb-messenger://share/?"+x.qs({link:m,app_id:291494419107518}),false:"https://www.facebook.com/dialog/send?"+x.qs({link:m,app_id:291494419107518,redirect_uri:"https://www.sharethis.com"})}[x.mobile],odnoklassniki:"https://connect.ok.ru/dk?"+x.qs({"st.cmd":"WidgetSharePreview","st.shareUrl":m}),outlook:"https://outlook.live.com/mail/deeplink/compose?"+x.qs({path:"mail inbox",subject:v||"I'd like to share a link with you",body:u||""+_}),pinterest:"https://pinterest.com/pin/create/button/?"+x.qs({description:w,media:l,url:m}),qzone:"http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?"+x.qs({url:m}),reddit:"https://reddit.com/submit?"+x.qs({title:w,url:m}),refind:"https://refind.com?"+x.qs({url:m}),renren:"http://widget.renren.com/dialog/share?"+x.qs({resourceUrl:m,srcUrl:m,title:w,description:s||w}),skype:"https://web.skype.com/share?"+x.qs({url:m,text:w}),sms:"sms:"+(d?"&":"?")+"body="+encodeURIComponent(m),snapchat:"https://snapchat.com/scan?"+x.qs({attachmentUrl:m,utm_source:"sharethis"}),surfingbird:"http://surfingbird.ru/share?"+x.qs({url:m,description:s||w,title:w}),telegram:"https://t.me/share/url?"+x.qs({url:m,text:w,to:""}),tencentqq:"https://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?"+x.qs({url:m,title:w,summary:m,desc:s,pics:l}),threema:"threema://compose?"+x.qs({text:m,id:""}),trello:"https://trello.com/add-card?"+x.qs({mode:"popup",url:m,desc:s||w}),tumblr:"https://www.tumblr.com/share?"+x.qs({t:w,u:m,v:3}),twitter:"https://twitter.com/intent/tweet?"+x.qs({text:w||s,url:m,via:y}),vk:"https://vk.com/share.php?"+x.qs({url:m}),viber:"viber://forward?"+x.qs({text:m,url:"viber"}),weibo:"http://service.weibo.com/share/share.php?"+x.qs({title:w,url:m,pic:l}),whatsapp:(!x.mobile?"https://web.whatsapp.com/send?":"whatsapp://send?")+x.qs({text:m}),wordpress:"http://wordpress.com/wp-admin/press-this.php?"+x.qs({u:m,t:w,s:s||w,i:""}),yahoomail:"http://compose.mail.yahoo.com/?"+x.qs({to:"",subject:w,body:m}),yummly:"https://www.yummly.com/urb/verify?"+x.qs({url:m,title:w,urbtype:"bookmarklet",type:"agg",vendor:"sharethis",image:l}),xing:"https://www.xing.com/app/user?"+x.qs({op:"share",title:w,url:m})};return x.open(f[p])};x.follow=function(t){return function(t){var e,n,i;if(t==null){t={}}e=t.follow_url,n=t.network,i=t.url;if(i==null){i=x.href}x.log({destinations:n,event:"follow",followUrl:e,url:i});return window.open(e,"_blank")}}(this);x.storage={get:function(t){if(x.hasLocalStorage){try{return JSON.parse(localStorage.getItem(t))}catch(t){}}if(x.hasCookies){return x.getCookie(t)}return x.get(t)},set:function(t,e){if(x.hasLocalStorage){return localStorage.setItem(t,JSON.stringify(e))}if(x.hasCookies){return x.setCookie(t,e)}return x.set(t,e)}};x.svg=function(i,t){var o;if(t==null){t=40}if(typeof i==="string"){i=[i]}return'\n \n '+function(){var t,e,n;n=[];for(t=0,e=i.length;t")}return n}().join("")+"\n \n"};x.toggleClass=function(t,e){if(x.hasClass(t,e)){return x.removeClass(t,e)}else{return x.addClass(t,e)}};x.filterInvalidNetworks=function(i,o){var r;if(o==null){o=x.networks}return function(){var t,e,n;n=[];for(t=0,e=i.length;t1e4){return clearInterval(t)}},1e3)}();x.floc=function(){var e;try{if(document.interestCohort){return document.interestCohort().then(function(t){if(t){return x.log({event:"floc",floc:JSON.stringify(t)})}})}}catch(t){e=t}};x.addEventListener(document,"click",x.obl);x.addEventListener(document,"copy",x.copy)}).call(this);(function(){st=window.__sharethis__;st.CustomColor=class t{constructor(t,e,n){this.set(t,e,n)}toString(){return`rgb(${Math.round(this.r)}, ${Math.round(this.g)}, ${Math.round(this.b)})`}set(t,e,n){this.r=this.clamp(t);this.g=this.clamp(e);this.b=this.clamp(n)}hueRotate(t=0){t=t/180*Math.PI;const e=Math.sin(t);const n=Math.cos(t);this.multiply([.213+n*.787-e*.213,.715-n*.715-e*.715,.072-n*.072+e*.928,.213-n*.213+e*.143,.715+n*.285+e*.14,.072-n*.072-e*.283,.213-n*.213-e*.787,.715-n*.715+e*.715,.072+n*.928+e*.072])}grayscale(t=1){this.multiply([.2126+.7874*(1-t),.7152-.7152*(1-t),.0722-.0722*(1-t),.2126-.2126*(1-t),.7152+.2848*(1-t),.0722-.0722*(1-t),.2126-.2126*(1-t),.7152-.7152*(1-t),.0722+.9278*(1-t)])}sepia(t=1){this.multiply([.393+.607*(1-t),.769-.769*(1-t),.189-.189*(1-t),.349-.349*(1-t),.686+.314*(1-t),.168-.168*(1-t),.272-.272*(1-t),.534-.534*(1-t),.131+.869*(1-t)])}saturate(t=1){this.multiply([.213+.787*t,.715-.715*t,.072-.072*t,.213-.213*t,.715+.285*t,.072-.072*t,.213-.213*t,.715-.715*t,.072+.928*t])}multiply(t){const e=this.clamp(this.r*t[0]+this.g*t[1]+this.b*t[2]);const n=this.clamp(this.r*t[3]+this.g*t[4]+this.b*t[5]);const i=this.clamp(this.r*t[6]+this.g*t[7]+this.b*t[8]);this.r=e;this.g=n;this.b=i}brightness(t=1){this.linear(t)}contrast(t=1){this.linear(t,-(.5*t)+.5)}linear(t=1,e=0){this.r=this.clamp(this.r*t+e*255);this.g=this.clamp(this.g*t+e*255);this.b=this.clamp(this.b*t+e*255)}invert(t=1){this.r=this.clamp((t+this.r/255*(1-2*t))*255);this.g=this.clamp((t+this.g/255*(1-2*t))*255);this.b=this.clamp((t+this.b/255*(1-2*t))*255)}hsl(){const t=this.r/255;const e=this.g/255;const n=this.b/255;const i=Math.max(t,e,n);const o=Math.min(t,e,n);let r,s,a=(i+o)/2;if(i===o){r=s=0}else{const l=i-o;s=a>.5?l/(2-i-o):l/(i+o);switch(i){case t:r=(e-n)/l+(e255){t=255}else if(t<0){t=0}return t}};st.Solver=class e{constructor(t,e){this.target=t;this.targetHSL=t.hsl();this.reusedColor=new st.CustomColor(0,0,0)}solve(){const t=this.solveNarrow(this.solveWide());return{values:t.values,loss:t.loss,filter:this.css(t.values)}}solveWide(){const e=5;const n=15;const i=[60,180,18e3,600,1.2,1.2];let o={loss:Infinity};for(let t=0;o.loss>25&&t<3;t++){const r=[50,20,3750,50,100,100];const s=this.spsa(e,i,n,r,1e3);if(s.loss.5?1:-1;u[t]=o[t]+f*d[t];p[t]=o[t]-f*d[t]}const g=this.loss(u)-this.loss(p);for(let t=0;t<6;t++){const b=g/(2*f)*d[t];const v=i[t]/Math.pow(n+e+1,s);o[t]=h(o[t]-v*b,t)}const m=this.loss(o);if(mn){t%=n}else if(t<0){t=n+t%n}}else if(t<0){t=0}else if(t>n){t=n}return t}}loss(t){const e=this.reusedColor;e.set(0,0,0);e.invert(t[0]/100);e.sepia(t[1]/100);e.saturate(t[2]/100);e.hueRotate(t[3]*3.6);e.brightness(t[4]/100);e.contrast(t[5]/100);const n=e.hsl();return Math.abs(e.r-this.target.r)+Math.abs(e.g-this.target.g)+Math.abs(e.b-this.target.b)+Math.abs(n.h-this.targetHSL.h)+Math.abs(n.s-this.targetHSL.s)+Math.abs(n.l-this.targetHSL.l)}css(n){function t(t,e=1){if(t==0){return Math.round(100-n[t]*e)}return Math.round(n[t]*e)}return`filter: invert(${t(0)}%) sepia(${t(1)}%) saturate(${t(2)}%) hue-rotate(${t(3,3.6)}deg) brightness(${t(4)}%) contrast(${t(5)}%);`}}})();(function(){var r;r=window.__sharethis__;r.hexToRgb=function(t){var e,n;if(!t){return}if(typeof t!=="string"){return"Wrong type input"}n=/^#?([a-f\d])([a-f\d])([a-f\d])$/i;t=t.replace(n,function(t){return function(t,e,n,i){return e+e+n+n+i+i}}(this));e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(t);if(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}};r.getFilter=function(t){var e,n,i,o;i=r.hexToRgb(t);if(!i){return"Invalid hex"}if(i.length!==3){return"Invalid hex format!"}e=new r.CustomColor(i[0],i[1],i[2]);o=new r.Solver(e);n=o.solve();return n.filter.split(": ")[1]}}).call(this);(function(t,e){window.__sharethis__.mobile=/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))})(navigator.userAgent||navigator.vendor||window.opera);(function(){window.__sharethis__.is_ie=/(MSIE|Trident|Edge)/i.test(navigator.userAgent);window.__sharethis__.is_ie8=/MSIE 8/i.test(navigator.userAgent)})();var st=window.__sharethis__||{};st.getEmbeds=function(t){var e=[".embed-twitter",".embedly-card",".fb-post",".fb-video",".instagram-media",".reddit",".reddit-card",".rm-shortcode",".spotify",".tumblr-embed",".twitter-embed",".twitter-follow",".twitter-tweet",".twitter-video",".twitter-widget","embed","iframe",'[class^="PIN"]'];var r=[{type:"audio",url:"anchor.fm"},{type:"audio",url:"open.spotify.com/embed"},{type:"audio",url:"player.megaphone.fm"},{type:"audio",url:"playlist.megaphone.fm"},{type:"audio",url:"w.soundcloud.com"},{type:"image",url:"gfycat.com"},{type:"image",url:"giphy.com/embed"},{type:"image",url:"imgur.com"},{type:"image",url:/(pinterest.com\/pin\/\d+\/)(?!.\S)/,span:true},{type:"post",url:"facebook.com/plugins/post"},{type:"post",url:"instagram.com/p",blockquote:true},{type:"post",url:"linkedin.com/embed"},{type:"post",url:"embed.tumblr.com/embed/post"},{type:"post",url:/twitter.com\/.*\/status\/[0-9]+$/,blockquote:true},{type:"video",url:/facebook.com\/.[^\/]*\/plugins\/video/},{type:"video",url:"facebook.com/plugins/video"},{type:"video",url:/tiktok.com\/.[^\/]*\/video/,blockquote:true},{type:"video",url:"player.vimeo.com"},{type:"video",url:"youtube.com/embed"},{type:"video",url:"clips.twitch.tv"},{type:"video",url:"player.twitch.tv"}];var n=["cite","data-click-to-open-target","data-href","data-instgrm-permalink","data-lazy-src","data-permalink","data-pin-href","data-src","data-src-2x","href","src"];function i(t,e){if(e.indexOf("http")!=0&&e.indexOf("//")!=0){return false}for(var n in r){var i=r[n];var o=e.match(i.url);if(o&&o.length){if(t=="iframe"||i[t]){return i}return false}}return false}var o={};var s=document.querySelectorAll(e.join(","));for(var a=0;a img {\n height: 40px;\n width: 40px;\n}\n#"+p+" .st-btn {\n "+I.BORDER_RADIUS(4)+"\n "+I.BORDER_BOX+"\n "+I.TRANSITION()+"\n color: white;\n cursor: pointer;\n display: inline-block;\n font-size: 12px;\n font-weight: 400;\n height: 48px;\n line-height: 30px;\n margin: 4px;\n opacity: 1;\n overflow: hidden;\n padding: 8px 12px;\n position: relative;\n text-align: left;\n top: 0;\n vertical-align: top;\n width: 148px;\n}\n#"+p+" .st-btn::before {\n "+I.BORDER_RADIUS(4)+"\n "+I.TRANSITION()+"\n background: #fff;\n content: '';\n height: 100%;\n left: 0;\n opacity: 0;\n position: absolute;\n top: 0;\n width: 100%;\n}\n#"+p+" .st-btn:hover::before {\n opacity: .2;\n}\n#"+p+" .st-btn > svg {\n display: inline-block;\n height: 20px;\n margin-top: 6px;\n vertical-align: top;\n width: 20px;\n}\n#"+p+" .st-btn > img {\n display: inline-block;\n height: 20px;\n margin-top: 6px;\n vertical-align: top;\n width: 20px;\n}\n#"+p+" .st-btn > span {\n display: inline-block;\n letter-spacing: 0.5px;\n text-align: center;\n vertical-align: top;\n width: 96px;\n}\n@media(max-width: 1200px) {\n #"+p+" .st-btns {\n margin-top: 50px;\n }\n}\n@media(max-width: 800px) {\n #"+p+" .st-btns {\n margin: 0 auto;\n max-width: 100%;\n padding: 32px 10px 50px;\n }\n #"+p+" .st-btn {\n width: 130px;\n }\n #"+p+" .st-btn > span {\n width: 74px;\n }\n #"+p+" .st-disclaimer {\n background: #000;\n bottom: 44px;\n font-size: 10px;\n padding: 8px;\n text-align: center;\n width: 100%\n }\n}";_=function(){var t,e,n,i;n=I.shareNetworks;i=[];for(t=0,e=n.length;t";d+="
";k=I.shareNetworks;for(u=0,g=k.length;u\n "+I.ICONS[w]+"\n "+w+"\n
"}d+="";S="https://platform-cdn.sharethis.com/img/share-this-logo%402x.png";b="https://sharethis.com/platform/share-buttons?"+I.qs({utm_source:"share-buttons",utm_medium:"referral",utm_campaign:"sharethis-button-referral"});d+='';d+='
\n '+I.ICONS["close"]+"\n
";d+='
\n Third-party platform trademarks and logos appearing here are owned by the\n respective third parties, link to those referenced platforms, and are not\n affiliated with ShareThis.\n
';r.innerHTML=d;e=r.querySelector(".st-backdrop");i=r.querySelectorAll(".st-btn");o=r.querySelector(".st-close");I.addEventListener(e,"click",function(){return I.close(r)});I.addEventListener(o,"click",function(){return I.close(r)});I.addEventListener(document,"keydown",function(t){if(I.isEsc(t)){return I.close(r)}});for(f=0,m=i.length;f input {\n "+h.BORDER_BOX+"\n "+h.BORDER_RADIUS(4)+"\n background-color: #fff;\n border: 0;\n color: #333;\n display: block;\n font-size: 16px;\n height: 48px;\n margin-bottom: 15px;\n padding: 12px;\n width: 100%;\n}\n#"+l+" .st-form > textarea {\n "+h.BORDER_BOX+"\n "+h.BORDER_RADIUS(4)+"\n background-color: #fff;\n border: 0;\n color: #333;\n display: block;\n font-size: 16px;\n height: 96px;\n margin-bottom: 15px;\n padding: 12px;\n width: 100%;\n}\n#"+l+" .st-copy {\n "+h.BORDER_RADIUS(2)+"\n background: #4EC034;\n color: #fff;\n cursor: pointer;\n display: inline-block;\n height: 36px;\n letter-spacing: .5px;\n line-height: 36px;\n margin: 15px auto 0 auto;\n padding: 0 10px;\n position: relative;\n text-align: center;\n min-width: 120px;\n z-index: 20;\n}\n#"+l+" .st-open {\n "+h.BORDER_RADIUS(2)+"\n background: #4EC034;\n color: #fff;\n cursor: pointer;\n display: inline-block;\n height: 36px;\n letter-spacing: .5px;\n line-height: 36px;\n margin: 15px auto 0 auto;\n padding: 0 10px;\n position: relative;\n text-align: center;\n min-width: 120px;\n z-index: 20;\n}\n#"+l+" .st-logo {\n background: #4c4c4c;\n bottom: 0;\n padding: 20px;\n position: fixed;\n text-align: center;\n width: 100%;\n z-index: 30;\n}\n#"+l+" .st-close {\n "+h.BORDER_RADIUS(28)+"\n "+h.BORDER_BOX+"\n background: #999;\n bottom: 28px;\n color: #fff;\n cursor: pointer;\n font-size: 36px;\n height: 56px;\n line-height: 28px;\n padding: 10px;\n position: fixed;\n right: 14px;\n width: 56px;\n z-index: 40;\n}";h.css(c);a="
";a+="
"+h.ICONS["wechatIcon"]+"
";a+='
\n \n
';a+='
Copy URL
\n';u="https://platform-cdn.sharethis.com/img/share-this-logo%402x.png";a+='';a+='
\n '+h.ICONS["close"]+"\n
";o.innerHTML=a;r=o.querySelector(".st-form > input");e=o.querySelector(".st-backdrop");n=o.querySelector(".st-close");i=o.querySelector(".st-copy");s=o.querySelector(".st-open");r.value=p;h.addEventListener(e,"click",function(){return h.close(o)});h.addEventListener(n,"click",function(){return h.close(o)});h.addEventListener(i,"click",function(){var t;r.setSelectionRange(0,r.value.length);t=document.execCommand("copy");if(t){i.innerText="Copied!";i.style.background="#f9a825";return s.style.display="inline-block"}});h.addEventListener(s,"click",function(){var t;t=function(t){s.innerText=t;s.style.background="#c62828";if(h.__share_email_timeout){clearTimeout(h.__share_email_timeout)}return h.__share_email_timeout=setTimeout(function(){s.innerText="Open";return s.style.background="#00c853"},2e3)};s.innerText="Opening...";s.style.background="#f9a825";p="weixin://";return h.open(p)});h.addEventListener(document,"keydown",function(t){if(h.isEsc(t)){return h.close(o)}});return setTimeout(function(){h.removeClass(o,"st-hidden");return h.addClass(document.body,"st-body-no-scroll")},10)}}).call(this);(function(){var t;t=window.__sharethis__;t.REACTIONS={slight_smile:{icon:'',label:"like"},heart_eyes:{icon:'',label:"love"},laughing:{icon:'',label:"lol"},astonished:{icon:'',label:"wow"},sob:{icon:'',label:"sad"},rage:{icon:'',label:"angry"}}}).call(this);(function(){var t,e,n,i,o,r,s,a,l,c,d,u=[].indexOf||function(t){for(var e=0,n=this.length;e0){t=typeof e[0]!="undefined"?e[0]:t;var n=typeof e[1]!="undefined"?e[1]:"";__stdos__.data.set("refQuery",n,"pageInfo");__stdos__.data.set("refDomain",t,"pageInfo")}},set:function(e,n,i){if(typeof n=="number"||typeof n=="boolean"){__stdos__.data[i][e]=n}else{if(typeof n=="undefined"||n==null){}else{__stdos__.data[i][e]=encodeURIComponent(decodeURIComponent(unescape(n.replace(/<[^<>]*>/gi," ")).replace(/%/gi,"%25")));if(e=="url"||e=="location"||e=="image"){try{__stdos__.data[i][e]=encodeURIComponent(decodeURIComponent(decodeURI(n.replace(/<[^<>]*>/gi," ")).replace(/%/gi,"%25")))}catch(t){__stdos__.data[i][e]=encodeURIComponent(decodeURIComponent(unescape(n.replace(/<[^<>]*>/gi," ")).replace(/%/gi,"%25")))}}}}},get:function(t,e){try{if(__stdos__.data[e]&&__stdos__.data[e][t]){return decodeURIComponent(__stdos__.data[e][t])}else{return false}}catch(t){return false}},unset:function(t,e){if(__stdos__.data[e]&&typeof __stdos__.data[e][t]!="undefined"){delete __stdos__.data[e][t]}},bindEvent:function(t,e,n){if(t.addEventListener){t.addEventListener(e,n,false)}else if(t.attachEvent){t.attachEvent("on"+e,n)}},debug:function(t,e){__stdos__.data.init();var n=__stdos__.data.pageInfo;var i="";var o;for(o in n){i+=o+"="+n[o]+"&"}i=i.substring(0,i.length-1);var r="https://l.sharethis.com/";r+=t;r+="?event="+e;r+="&"+i;var s=new Image(1,1);s.src=r;s.onload=function(){return}},parseCookie:function(t,e){e="; "+e;var n=e.split("; "+t+"=");if(n.length===2){return n.pop().split(";").shift()}else{return null}},writeCookie:function(t,e,n){if(!n){n=33696e3}var i=window&&window.location&&window.location.hostname||"";var o=i.split(".");var r="";if(o.length>1){r="domain=."+o.slice(-2).join(".")}var s="";try{document.cookie="st_samesite=1;SameSite=None;Secure";if(__stdos__.data.parseCookie("st_samesite",document.cookie)){s="SameSite=None;Secure";document.cookie="st_samesite=1;max-age=0;SameSite=None;Secure"}}catch(t){}document.cookie=t+"="+e+";"+r+";path=/;max-age="+n+";"+s},setConsent:function(t){for(var e in t){__stdos__.data.set(e,t[e],"pageInfo");window.__sharethis__[e]=t[e]}},getEUConsent:function(t){function e(t,e){var n;return function(){if(t){n=t.apply(e||this,arguments);t=null}return n}}var n=e(t);var i=__stdos__.data.parseCookie("usprivacy",document.cookie);if(i)__stdos__.data.setConsent({usprivacy:i});var o=Date.now();var r=e(function(){var t=__stdos__.data.parseCookie("euconsent-v2",document.cookie);if(t!==null){__stdos__.data.setConsent({gdpr_consent:t,gdpr_domain:document.location.hostname,gdpr_method:"cookie"})}n()});if(typeof window.__tcfapi=="function"){var s=setTimeout(r,5e3);try{window.__tcfapi("getTCData",2,function(t){if(t&&t.tcString){var e=t.isServiceSpecific?document.location.hostname:".consensu.org";__stdos__.data.setConsent({consent_duration:Date.now()-o,gdpr_consent:t.tcString,gdpr_domain:e,gdpr_method:"api"});clearTimeout(s);n()}else{r()}})}catch(t){r()}}else{r()}}};__stdos__.data.resetPageData()}__stdos__.logger={loggerUrl:"https://l.sharethis.com/",version:"st_sop.js",lang:"en",constructParamString:function(){var t=__stdos__.data.pageInfo;var e="";var n;for(n in t){if(t[n]==null||t[n]==="")continue;e+=n+"="+t[n]+"&"}return e.substring(0,e.length-1)},log:function(l,c,d){__stdos__.data.set("ts"+(new Date).getTime(),"","pageInfo");c=__stdos__.logger.loggerUrl;__stdos__.data.getEUConsent(function(t){if(!window.__sharethis__.consent_queue){window.__sharethis__.consent_queue={}}window.__sharethis__.consent_queue.initialized=true;if(window.__sharethis__.consent_queue.functions){for(var e=0;e0&&!t.is_ie){__stdos__.data.set("embeds_csv",t.embeds.join(","),"pageInfo")}__stdos__.data.set("sop",true,"pageInfo");__stdos__.onscriptload=true;__stdos__.logger.log("pview")}})();(function(){var t;t=window.__sharethis__;t.loadSsb=function(n,i,o){var r,t,e;e=i.num_ssb_networks,t=i.is_preview;if(e==null){e=6}if(t==null){t=false}if(t){o(n,i);return}r=new XMLHttpRequest;r.open("GET","https://datasphere-sbsvc.sharethis.com?n="+e+"&debug");r.responseType="json";r.onload=function(){var t,e;if((t=r.response)!=null?t.buttons:void 0){i.networks=(e=r.response)!=null?e.buttons:void 0}return o(n,i)};return r.send()}}).call(this);(function(){var a;a=window.__sharethis__;a.loader["custom-share-buttons"]=function(){var t,e,n,i,o,r,s;e=document.querySelectorAll(".st-custom-button");if(e.length===0){return}for(n=0,o=e.length;n0){if(r!=null){r.innerHTML=e}return a.removeClass(o,"st-hide-label")}else{return a.addClass(o,"st-hide-label")}})}}(t))}return s}}).call(this);(function(){var z;z=window.__sharethis__;z.loader["email-list-builder"]=function(t){var e,n,i,o,r,s,a,l,c,d,u,p,h,f,g,m,b,v,w,_,y,k,x,S,C,A,E,I,q;if(t==null){t={}}if(!t.enabled){return}d=t.color,c=t.button_label,g=t.headline,w=t.message,x=t.property,q=t.thanks,C=t.scroll_down;l=t.behavior,p=t.container,f=t.fade_in,_=t.onClose,k=t.onSubmit;if(l!=="show"){if(z.storage.get("st_email_list_builder_email_collected")){return}}if(d==null){d=z.COLORS["sharethis"]}if(l==null){l="smart"}if(c==null){c="Join"}if(f==null){f=true}if(g==null){g="SUBSCRIBE VIA EMAIL"}if(w==null){w="Subscribe to out mailing list to get updates!"}if(x==null){x=z.property}if(C==null){C=0}if(q==null){q="Thank you for subscribing!"}if(p==null){p=document.body}if(typeof p==="string"){p=document.getElementById(p)}S=z.newElement(null),o=S.$el,v=S.id;z.addClass(o,"st-email-list-builder");if(f){z.addClass(o,"st-hidden")}u="#"+v+" {\n "+z.BORDER_BOX+"\n "+z.TRANSITION("opacity")+"\n bottom: 0;\n display: block;\n left: 0;\n opacity: 1;\n position: fixed;\n right: 0;\n text-align: center;\n top: 0;\n z-index: 9999;\n}\n#"+v+".st-hidden {\n opacity: 0;\n}\n#"+v+" .st-backdrop {\n background: rgba(0, 0, 0, 0.8);\n bottom: 0;\n left: 0;\n position: absolute;\n right: 0;\n top: 0;\n z-index: 10;\n}\n#"+v+" .st-modal {\n "+z.BORDER_RADIUS(6)+"\n "+z.BORDER_BOX+"\n "+z.TRANSITION("opacity")+"\n background: #fff;\n border-top: 10px solid "+d+";\n bottom: 0;\n color: #333;\n margin: 100px auto 0;\n max-width: 90%;\n opacity: 1;\n padding: 20px 40px;\n position: relative;\n width: 600px;\n z-index: 20;\n}\n#"+v+" .st-modal.st-hidden {\n opacity: 0;\n}\n#"+v+" .st-headline {\n margin-bottom: 5px;\n font-size: 32px;\n line-height: 38px;\n}\n#"+v+" .st-message {\n margin-bottom: 25px;\n font-size: 18px;\n line-height: 24px;\n}\n#"+v+" .st-error {\n color: red;\n font-size: 14px;\n line-height: 26px;\n}\n#"+v+" input {\n "+z.BORDER_BOX+"\n "+z.BORDER_RADIUS(4)+"\n background-color: #fff;\n border: 1px solid #aeaeae;\n color: #333;\n display: block;\n font-size: 15px;\n height: 48px;\n margin-bottom: 25px;\n padding: 12px;\n text-align: center;\n width: 100%;\n}\n#"+v+" .st-btn {\n "+z.BORDER_BOX+"\n "+z.BORDER_RADIUS(4)+"\n "+z.TRANSITION()+"\n background-color: #fff;\n border: 0;\n background: "+d+";\n color: #fff;\n cursor: pointer;\n display: inline-block;\n font-size: 18px;\n height: 48px;\n line-height: 48px;\n min-width: 120px;\n padding: 0 20px;\n}\n#"+v+" .st-close {\n "+z.BOX_SHADOW("0 0 20px black")+"\n "+z.BORDER_RADIUS(18)+"\n background: #555;\n border: 3px solid white;\n cursor: pointer;\n font-size: 24px;\n height: 36px;\n padding-top: 1px;\n position: absolute;\n right: -15px;\n top: -23px;\n width: 36px;\n}";m="#"+v+" .st-btn:hover {\n}";h=u;if(!z.mobile){h+=m}z.css(h);b='
\n
\n
'+g+'
\n
'+w+'
\n
\n \n
'+c+'
\n
\n '+z.ICONS["close"]+"\n
\n
";o.innerHTML=b;e=o.querySelector(".st-backdrop");n=o.querySelector(".st-btn");i=o.querySelector(".st-close");r=o.querySelector(".st-error");s=o.querySelector("input");a=o.querySelector(".st-modal");I=function(){var n,t;if(l!=="show"){t=z.storage.get("st_email_list_builder_seen_at");if(Date.now()-tC){z.removeEventListener(document,"scroll",n);return z.removeClass(o,"st-hidden")}},1e3)});return z.addEventListener(document,"scroll",n)}};z.addEventListener(e,"click",function(){z.close(o);return typeof _==="function"?_():void 0});z.addEventListener(i,"click",function(){z.close(o);return typeof _==="function"?_():void 0});z.addEventListener(s,"keydown",function(t){if(z.isEnter(t)){E()}return r.innerHTML=""});z.addEventListener(n,"click",function(){return E()});z.addEventListener(document,"keydown",function(t){if(z.isEsc(t)){z.close(o);return typeof _==="function"?_():void 0}});E=function(){var t,e;t=o.querySelector(".st-email").value;e=z.href;if(!z.isValidEmail(t)){r.innerHTML="Please enter a valid email";return}z.send(z.API+"/v1.0/email-list-builder/collect",{email:t,property:x});z.log({event:"elb-submit",url:e});z.emit("email-submitted",{email:t,property:x,url:e});z.storage.set("st_email_list_builder_collected",true);z.addClass(a,"st-hidden");return setTimeout(function(){b='
'+q+"
";a.innerHTML=b;z.removeClass(a,"st-hidden");return setTimeout(function(){z.close(o);return typeof k==="function"?k(t):void 0},2500)},500)};if(l==="show"||0!==C){return I()}else{setTimeout(function(){return I()},60*1e3);A=null;y=function(t){return z.addEventListener(document,"scroll",function(t){if(A){clearTimeout(A)}return A=setTimeout(function(){if(z.getScrollDepth()>60){z.removeEventListener(document,"scroll",y);return I()}},1e3)})};return z.addEventListener(document,"scroll",y)}}}).call(this);(function(){var l;l=window.__sharethis__;l.loader["gdpr-compliance-tool"]=function(t){var e,n,i,o,r,s,a;if(t==null){t={}}if(!t.enabled){return}if(window.__cmp){return}n=t.color,o=t.display,r=t.publisher_name,s=t.publisher_purposes,a=t.scope;if(n==null){n="#2e7d32"}if(r==null){r=""}if(s==null){s=[]}i=[];l.addEventListener("message",function(t){return window.__cmp.receiveMessage(t)});window.__cmp=function(t,e,n){return i.push({command:t,paramter:e,callback:n})};window.__cmp.commandQueue=i;window.__cmp.receiveMessage=function(t){var e;e=t&&t.data&&t.data.__cmpCall;if(e){return i.push({callId:e.callId,command:e.command,parameter:e.parameter,event:t})}};window.__cmp.config={storeConsentGlobally:a==="global",publisherName:r,publisherPurposeList:s,color:n};if(o==="always"){__cmp("showConsentTool");return l.js("https://c.sharethis.mgr.consensu.org/cmp.js")}else if(o==="eu"){e=new XMLHttpRequest;e.open("GET","https://c.sharethis.mgr.consensu.org/is_eu");e.responseType="json";e.onload=function(t){return function(){var t;if((t=e.response)!=null?t.is_eu:void 0){__cmp("showConsentTool");return l.js("https://c.sharethis.mgr.consensu.org/cmp.js")}}}(this);return e.send()}}}).call(this);(function(){var h;h=window.__sharethis__;h.loader["gdpr-compliance-tool-v2"]=function(t){var e,n,i,o,r,s,a,l,c,d,u,p;if(t==null){t={}}if(!t.enabled){return}n=t.background_color,i=t.color,o=t.display,r=t.gear_color,s=t.gear_position,a=t.language,l=t.publisher_name,c=t.publisher_purposes,d=t.publisher_restrictions,u=t.scope,p=t.text_color;if(a==null){a="en"}if(l==null){l=""}if(c==null){c=[]}if(d==null){d={}}window.__cmpconfig={background_color:n,color:i,gear_color:r,gear_position:s,global:u!=="publisher",language:a,publisher_name:l,publisher_restrictions:d,purposes:c,text_color:p};if(o==="always"){return h.js("https://c.sharethis.mgr.consensu.org/cmp-v2.js")}else if(o==="eu"){e=new XMLHttpRequest;e.open("GET","https://c.sharethis.mgr.consensu.org/is_eu");e.responseType="json";e.onload=function(t){return function(){var t;if((t=e.response)!=null?t.is_eu:void 0){return h.js("https://c.sharethis.mgr.consensu.org/cmp-v2.js")}}}(this);return e.send()}}}).call(this);(function(){var S;S=window.__sharethis__;S.loader["image-share-buttons"]=function(t){var r,e,n,i,s,o,a,l,c,d,u,p,h,f,g,m,b,v,w,_,y,k,x;if(t==null){t={}}if(!t.enabled){return}i=t.alignment,s=t.container,h=t.omit_class,f=t.onLoad,b=t.padding,p=t.networks,v=t.radius,_=t.size,y=t.spacing;if(p==null){p=["facebook","twitter","pinterest","email"]}if(h==null){h=""}if(b==null){b=10}if(v==null){v=0}if(_==null){_=40}if(y==null){y=8}if(typeof s==="string"){s=document.getElementById(s)}w=S.newElement(s),r=w.$el,c=w.id;S.addClass(r,"st-image-share-buttons");r.style.position="absolute";d=S.load("inline-share-buttons",{alignment:i,id:c,enabled:true,networks:p,padding:b,radius:v,size:_,spacing:y,onLoad:function(){S.addClass(r,"st-hidden");return typeof f==="function"?f():void 0}});x=null;g=false;m=false;o=function(t){var e,n,i,o;if(h){if(S.hasClass(t,h)){return}if(S.hasClass(t.parentNode.parentNode,h)){return}if(S.hasClass(t.parentNode,h)){return}}n=S.position(t,s),e=n.left,o=n.top;i=t.getAttribute("src");r.style.width=t.width+"px";if(t.height<200||t.width<200){return}if(x){clearTimeout(x)}return x=setTimeout(function(){if(d!=null){d.modify("image",i)}r.style.left=S.px(e);r.style.top=S.px(o);r.style.padding=S.px(y);r.style.boxSizing="border-box";S.removeClass(r,"st-hide");S.removeClass(r,"st-hidden");return d!=null?d.resize():void 0},10)};a=function(t){if(x){clearTimeout(x)}return x=setTimeout(function(){if(m||g){return}S.addClass(r,"st-hide");return typeof t==="function"?t():void 0},10)};n=document.querySelectorAll("img");for(l=0,u=n.length;l svg {\n height: "+B.px(R/2)+";\n width: "+B.px(R/2)+";\n position: relative;\n top: "+B.px(R/4)+";\n vertical-align: top;\n}\n#"+v+" .st-btn > img {\n height: "+B.px(R/2)+";\n width: "+B.px(R/2)+";\n position: relative;\n top: "+B.px(R/4)+";\n vertical-align: top;\n}\n#"+v+" .st-btn > span {\n "+B.TRANSITION()+"\n color: #fff;\n display: inline-block;\n font-weight: 500;\n letter-spacing: 0.5px;\n min-width: "+B.px(30+Math.floor(R*15/16))+";\n opacity: 1;\n padding: 0 6px;\n position: relative;\n vertical-align: top;\n}\n#"+v+".st-justified {\n display: flex;\n text-align: center;\n}\n#"+v+".st-justified .st-btn {\n "+B.FLEX+"\n}";g="#"+v+" .st-btn:hover {\n opacity: .8;\n top: -4px;\n}";L=B.getFilter(N);C=function(){var t,e,n;n=[];for(t=0,e=A.length;t span {\n color: "+function(){switch(s){case"white":return B.COLORS[S];case"black":return"#fff";case"gray":return"#000";case"custom":return"#fff";case"social":return"#fff";default:return"#fff"}}()+"\n}")}return n}().join("\n");p=u;p+=g;p+=C;B.css(p);m="";A=B.filterInvalidNetworks(A,Object.keys(D));if(c&&(n!=null?n.length:void 0)>0&&i!=="right"){m+="
\n "+n+"\n
"}for(w=b=0,k=A.length;b\n "+(s==="white"?B.ICONS_WHITE[S]:B.ICONS[S])+"\n"}if(c&&(n!=null?n.length:void 0)>0&&i==="right"){m+="
\n "+B.capitalize(n)+"\n
"}a.innerHTML=m;l=a.querySelectorAll(".st-btn");T=function(){var t,e,n,i,o,r,s;n=a.offsetWidth;e=function(){var t,e,n,i;i=c?70:0;for(e=0,n=l.length;e=0;w=o+=-1){t=l[w];if(e()>n){s.push(t.style.display="none")}else{s.push(void 0)}}return s};B.addEventListener(window,"resize",T);f=function(e){return B.addEventListener(e,"click",function(){var t;S=e.getAttribute("data-network");t=D[S]+(q[S]||"");if(S==="youtube"&&q[S]){t+="?sub_confirmation=1"}if(S==="tumblr"&&q[S]){t=D[S].replace("www",q[S])}B.follow({follow_url:t,network:S,url:M||a.getAttribute("data-url")});return typeof E==="function"?E():void 0})};for(_=0,x=l.length;_ svg {\n display: block;\n height: "+T.px(q)+";\n margin: auto;\n width: "+T.px(q)+";\n vertical-align: top;\n}\n#"+c+" .st-btn > span {\n "+T.TRANSITION("font-size")+";\n color: #555;\n font-size: 14px;\n font-weight: 400;\n letter-spacing: 0.5px;\n vertical-align: top;\n}\n#"+c+" .st-btn .st-count.st-grow {\n font-size: 18px;\n}\n#"+c+" .st-btn.st-hide-count .st-count {\n opacity: 0;\n}\n#"+c+" .st-btn .st-text {\n display: none;\n font-weight: bold;\n line-height: 12px;\n white-space: normal;\n word-break: break-all;\n}\n#"+c+".st-justified {\n display: flex;\n text-align: center;\n}\n#"+c+".st-justified .st-btn {\n "+T.FLEX+"\n}\n#"+c+" .st-btn.st-selected {\n "+T.TRANSFORM("scale(1.2)")+"\n}\n#"+c+".st-reacted .st-btn:not(.st-selected) {\n filter: grayscale(100%);\n}";s="#"+c+":not(.st-reacted) .st-btn:hover {\n "+T.TRANSFORM("scale(1.2)")+"\n cursor: pointer;\n}\n#"+c+":not(.st-reacted) .st-btn:active {\n "+T.TRANSFORM("scale(1.4)")+"\n}\n#"+c+".st-has-labels:not(.st-reacted) .st-btn:hover .st-count {\n display: none;\n}\n#"+c+".st-has-labels:not(.st-reacted) .st-btn:hover .st-text {\n display: block;\n}\n#"+c+".st-has-labels:not(.st-reacted) .st-btn:hover span {\n font-size: 10px;\n}";o=i;if(!T.mobile){o+=s}T.css(o);a="";for(d=l=0,v=S.length;l\n '+((C=T.i18n[f.label])!=null?(A=C[b])!=null?A.toUpperCase():void 0:void 0)+"\n"}else{m=""}a+="
\n \n '+f.icon+'\n \n \n '+m+"\n
"}u.innerHTML=a;p=u.querySelectorAll(".st-btn");E=function(){var t,e,n,i,o,r,s;n=u.offsetWidth;e=function(){var t,e,n,i;i=0;for(e=0,n=p.length;en){s=n/e();r=[];for(i=0,o=p.length;i=w){T.removeClass(e,"st-hide-count")}else{T.addClass(e,"st-hide-count")}}E();if(h){T.removeClass(u,"st-hidden")}T.addEventListener(window,"resize",E);n=function(t){return T.addEventListener(t,"click",function(){if(T.hasClass(u,"st-reacted")){return}x=t.getAttribute("data-reaction");T.addClass(u,"st-reacted");T.addClass(t,"st-selected");T.react({reaction:x,url:z});T.inc(t.querySelector(".st-count"));T.storage.set("st_reaction_"+z,x);return typeof y==="function"?y(x):void 0})};for(o=0,a=p.length;o svg {\n height: "+et.px(T/2)+";\n width: "+et.px(T/2)+";\n position: relative;\n top: "+et.px(T/4)+";\n vertical-align: top;\n}\n#"+f+" .st-btn > img {\n display: inline-block;\n height: "+et.px(T/2)+";\n width: "+et.px(T/2)+";\n position: relative;\n top: "+et.px(T/4)+";\n vertical-align: top;\n}\n#"+f+" .st-btn > span {\n "+et.TRANSITION()+"\n color: #fff;\n display: inline-block;\n font-weight: 500;\n letter-spacing: 0.5px;\n min-width: "+et.px(30+Math.floor(T*15/16))+";\n opacity: 1;\n padding: 0 6px;\n position: relative;\n vertical-align: top;\n}\n#"+f+".st-has-labels .st-btn {\n min-width: "+et.px(60+Math.floor(T*15/8))+";\n}\n#"+f+".st-has-labels .st-btn.st-remove-label {\n min-width: 50px;\n}\n#"+f+".st-has-labels .st-btn.st-remove-label > span {\n display: none;\n}\n#"+f+".st-has-labels .st-btn.st-hide-label > span {\n display: none;\n}\n#"+f+" .st-total {\n color: #555;\n display: inline-block;\n font-weight: 500;\n line-height: "+et.px(.375*T)+";\n margin-right: 0;\n max-width: 80px;\n padding: 4px 8px;\n text-align: center;\n}\n#"+f+" .st-total.st-hidden {\n display: none;\n}\n#"+f+" .st-total > span {\n font-size: "+et.px(.5*T)+";\n line-height: "+et.px(.55*T)+";\n display: block;\n padding: 0;\n}\n#"+f+" .st-total > span.st-shares {\n font-size: "+et.px(.3*T)+";\n line-height: "+et.px(.3*T)+";\n}\n#"+f+".st-justified {\n display: flex;\n text-align: center;\n}\n#"+f+".st-justified .st-btn {\n "+et.FLEX+"\n}";F="#"+f+" .st-btn:hover {\n opacity: .8;\n top: -4px;\n}";Y="#"+f+" {\n bottom: 0;";V=et.getFilter(N);J=function(){var t,e,n;n=[];for(t=0,e=S.length;t span {\n color: "+function(){switch(o){case"white":return et.COLORS[x];case"black":return"#fff";case"gray":return"#000";case"custom":return N;case"social":return"#fff";default:return"#fff"}}()+"\n}")}return n}().join("\n");J+="#"+f+" .st-btn[data-network='snapchat'] > span {\n color: "+(o==="black"?"#fff":"#333")+"};\n}";n=D;if(!et.mobile){n+=F}n+=J;et.css(n);s="";S=et.filterInvalidNetworks(S);if(!q){Q=["sms"];for(a=0,W=Q.length;a-1){S.splice(m,1)}}}if(z){s+="
\n \n \n "+et.capitalize(et.i18n["shares"][y])+"\n \n
"}for(m=b=0,P=S.length;b"+w+"";s+="
\n "+(o==="white"?et.ICONS_WHITE[x]:et.ICONS[x])+"\n "+(_==="counts"||_==="cta"?H:"")+"\n
"}l.innerHTML=s;d=l.querySelectorAll(".st-btn");u=l.querySelector(".st-total");j=l.querySelector(".st-total .st-label");G=function(t,e){if(t==="url"){L=e}if(t==="image"){return g=e}};I=function(){var t,e,n,i,o,r,s,a;n=l.offsetWidth;e=function(){var t,e,n,i;i=0;if(z){i+=u.offsetWidth}for(e=0,n=d.length;e=0;m=o+=-1){t=d[m];if(e()>n){et.addClass(t,"st-remove-label")}}a=[];for(m=s=d.length-1;s>=0;m=s+=-1){t=d[m];if(t.getAttribute("data-network")==="sharethis"){continue}if(e()>n){a.push(t.style.display="none")}else{a.push(void 0)}}return a};et.addEventListener(window,"resize",I);U=function(t){return et.addEventListener(t,"click",function(){return et.share({channel_is_ssb:e.is_ssb,channels_displayed:JSON.stringify(e.networks),count_url:l.getAttribute("data-count-url"),description:B||l.getAttribute("data-description"),image:g||l.getAttribute("data-image"),message:X||(l!=null?l.getAttribute("data-message"):void 0),network:t.getAttribute("data-network"),share_url:l.getAttribute("data-share-url"),short_url:l.getAttribute("data-short-url"),subject:O||l.getAttribute("data-email-subject"),title:Z||(l!=null?l.getAttribute("data-title"):void 0),url:L||l.getAttribute("data-url"),username:tt||l.getAttribute("data-username")})})};for(v=0,$=d.length;v<$;v++){c=d[v];U(c)}if(z||_==="counts"){et.loadCounts({url:L||l.getAttribute("data-count-url")||l.getAttribute("data-url")||et.href},function(t){var e,n,i,o,r,s,a;if(z){if(((i=t["total"])!=null?i.value:void 0)>k){j.innerHTML=((o=t["total"])!=null?o.label:void 0)||"";et.removeClass(u,"st-hidden")}else{et.addClass(u,"st-hidden")}}if(_==="counts"){for(e=0,n=d.length;ek){if((s=c.querySelector(".st-label"))!=null){s.innerHTML=w}et.removeClass(c,"st-hide-label")}else{et.addClass(c,"st-hide-label")}}}I();if(h){et.addClass(l,"st-animated")}if(h){et.removeClass(l,"st-hidden")}return typeof C==="function"?C():void 0})}else{I();if(h){et.addClass(l,"st-animated")}if(h){et.removeClass(l,"st-hidden")}if(typeof C==="function"){C()}}return{$buttons:d,$el:l,id:f,modify:G,resize:I}}}).call(this);(function(){var e;e=window.__sharethis__;e.loader["powr-social-feed"]=function(t){if(t==null){t={}}if(!t.enabled){return}return e.js("https://platform-api.sharethis.com/powr.js?platform=sharethis")}}).call(this);(function(){var e;e=window.__sharethis__;e.loader["powr-form-builder"]=function(t){if(t==null){t={}}if(!t.enabled){return}return e.js("https://platform-api.sharethis.com/powr.js?platform=sharethis")}}).call(this);(function(){var e;e=window.__sharethis__;e.loader["powr-popup"]=function(t){if(t==null){t={}}if(!t.enabled){return}return e.js("https://platform-api.sharethis.com/powr.js?platform=sharethis")}}).call(this);(function(){var e;e=window.__sharethis__;e.loader["privacy-policy-generator"]=function(t){if(t==null){t={}}if(!t.enabled){return}return e.js("https://platform-api.sharethis.com/ppg.js")}}).call(this);(function(){var d,ct,dt=[].indexOf||function(t){for(var e=0,n=this.length;e div {\n clear: "+t+";\n float: "+t+";\n}\n#"+h+" .st-btn {\n "+ct.BORDER_BOX+"\n "+ct.TRANSITION()+"\n border: "+(r==="white"?"solid 0.5px #ccc":"none")+";\n cursor: pointer;\n display: inline-block;\n font-size: "+ct.px(W)+";\n height: "+ct.px(N)+";\n line-height: "+ct.px(N/2)+";\n margin-bottom: "+(et?ct.px(et):0)+";\n opacity: 1;\n overflow: hidden;\n padding: "+ct.px(A)+";\n position: relative;\n text-align: left;\n top: 0;\n vertical-align: top;\n white-space: nowrap;\n width: "+ct.px(N)+";\n}\n#"+h+" .st-btn.st-first {\n border-top: "+(r==="white"?"solid 1px #ccc":"none")+";\n border-top-"+n+"-radius: "+ct.px(E)+";\n}\n#"+h+" .st-btn.st-last {\n border-bottom: "+(r==="white"?"solid 1px #ccc":"none")+";\n border-bottom-"+n+"-radius: "+ct.px(E)+";\n}\n#"+h+" .st-btn > svg {\n "+ct.TRANSITION()+"\n height: "+ct.px(N/2)+";\n margin-left: 0;\n vertical-align: top;\n width: "+ct.px(N/2)+";\n}\n#"+h+" .st-btn > img {\n "+ct.TRANSITION()+"\n height: "+ct.px(N/2)+";\n margin-left: 0;\n vertical-align: top;\n width: "+ct.px(N/2)+";\n}\n#"+h+" .st-btn > span {\n "+ct.TRANSITION()+"\n color: #fff;\n display: inline-block;\n font-weight: 500;\n left: -35px;\n letter-spacing: 0.5px;\n opacity: 0;\n padding: 0 6px;\n position: relative;\n vertical-align: top;\n filter: alpha(opacity=0);\n}\n#"+h+" .st-btn.st-hide-label > span {\n display: none !important;\n}\n#"+h+" .st-total {\n "+ct.TRANSITION()+"\n background: #fff;\n color: #555;\n display: inline-block;\n font-weight: 500;\n line-height: "+ct.px(.375*N)+";\n margin-right: 0;\n min-height: 34px;\n max-width: 80px;\n opacity: 1;\n padding: 4px 0;\n text-align: center;\n width: "+ct.px(N)+";\n}\n#"+h+" .st-total.st-hidden {\n display: none;\n}\n#"+h+" .st-total > span {\n display: block;\n font-size: "+ct.px(.38*N)+";\n line-height: "+ct.px(.45*N)+";\n padding: 0;\n}\n#"+h+" .st-total > span.st-shares {\n font-size: "+ct.px(.23*N)+";\n line-height: "+ct.px(.23*N)+";\n}\n#"+h+" .st-toggle {\n "+t+": -"+ct.px(N+q)+";\n "+ct.TRANSITION()+"\n background: #ccc;\n border-bottom-"+n+"-radius: "+ct.px(E)+";\n color: white;\n cursor: pointer;\n font-size: "+ct.px(.5*N)+";\n line-height: "+ct.px(.5*N)+";\n position: relative;\n text-align: center;\n width: "+ct.px(N)+";\n}\n#"+h+".st-hidden .st-toggle {\n border-top-"+n+"-radius: "+ct.px(E)+";\n}\n#"+h+".st-"+t+" .st-toggle .st-"+t+" {\n display: inline-block;\n}\n#"+h+".st-"+t+".st-hidden .st-toggle .st-"+t+" {\n display: none;\n}\n#"+h+".st-"+t+" .st-toggle .st-"+n+" {\n display: none;\n}\n#"+h+".st-"+t+".st-hidden .st-toggle .st-"+n+" {\n display: inline-block;\n}";y="#"+h+" {\n bottom: 0;\n display: "+(z?"flex":"none")+";\n left: 0;\n right: 0;\n top: auto;\n width: 100%;\n}\n#"+h+".st-hidden {\n bottom: -"+ct.px(N)+";\n width: 100%;\n}\n#"+h+".st-hidden.st-left {\n left: 0;\n}\n#"+h+".st-hidden.st-right {\n right: 0;\n}\n#"+h+" > div {\n -moz-flex: 1;\n -ms-flex: 1;\n -webkit-flex: 1;\n clear: none;\n flex: 1;\n float: none;\n}\n#"+h+" .st-total {\n background: #fff;\n padding: 6px 8px;\n}\n#"+h+" .st-btn {\n "+ct.BORDER_RADIUS("0 !important")+"\n text-align: center;\n width: auto;\n}\n#"+h+" .st-btn > span {\n display: none;\n}\n#"+h+" .st-toggle {\n display: none;\n}";if(z&&!document.body.style.paddingBottom){y+="body { padding-bottom: 48px; }"}K="@media (max-width: "+ct.px(_)+") {\n "+y+"\n}";P="#"+h+":hover .st-toggle {\n "+t+": 0;\n}\n#"+h+".st-hidden:hover .st-toggle {\n "+t+": "+ct.px(N)+";\n}\n#"+h+".st-toggleable:hover .st-btn.st-last {\n border-bottom-"+n+"-radius: 0;\n}\n#"+h+".st-toggleable:hover .st-btn.st-last:hover {\n border-bottom-"+n+"-radius: "+ct.px(E)+";\n}\n#"+h+" .st-btn:hover {\n border-bottom-"+n+"-radius: "+ct.px(E)+";\n border-top-"+n+"-radius: "+ct.px(E)+";\n}\n#"+h+".st-has-labels .st-btn:hover {\n width: "+ct.px(ct.i18n["sticky-width"][v])+";\n}\n#"+h+":not(.st-has-labels) .st-btn:hover {\n width: "+ct.px(1.3*N)+";\n}\n#"+h+" .st-btn.st-hide-label:hover {\n width: "+ct.px(1.3*N)+";\n}\n#"+h+" .st-btn:hover > svg {\n margin-left: 5px;\n}\n#"+h+" .st-btn:hover > img {\n margin-left: 5px;\n}\n#"+h+" .st-btn:hover > span {\n opacity: 1;\n display: inline-block;\n left: 0;\n filter: alpha(opacity=100);\n}\n@media (max-width: "+ct.px(_)+") {\n #"+h+" .st-btn:hover > svg {\n margin-left: 0;\n }\n #"+h+" .st-btn:hover > span {\n display: none;\n }\n}";it=ct.getFilter(L);x=function(){var t,e,n;n=[];for(t=0,e=S.length;t span {\n color: "+function(){switch(r){case"white":return ct.COLORS[k];case"black":return"#fff";case"gray":return"#000";case"custom":return L;case"social":return"#fff";default:return"#fff"}}()+"\n}")}return n}().join("\n");x+="#"+h+" .st-btn[data-network='snapchat'] > span {\n color: "+(r==="black"?"#fff":"#333")+"};\n}";x+="#"+h+" .st-btn[data-network='copy']:hover {\n width: max-content;\n}";if(k==="blm"){x+="#"+h+" .st-btn[data-network='blm']:hover {\n width: 165px;\n}"}s=B;if(!ct.mobile){s+=P}if(!ct.mobile){s+=K}if(ct.mobile){s+=y}s+=x;ct.css(s);if(!T){Z=["sms"];for(p=0,G=Z.length;p-1){S.splice(f,1)}}}u="";S=ct.filterInvalidNetworks(S);if(O){u+="
\n \n \n "+ct.capitalize(ct.i18n["shares"][v])+"\n \n
"}for(f=X=0,J=S.length;X"+m+"";u+="
\n "+(r==="white"?ct.ICONS_WHITE[k]:ct.ICONS[k])+"\n "+(b==="counts"||b==="cta"?Y:"")+"\n
"}if(R){u+='
\n
\n '+ct.ICONS["arrow_left"]+'\n
\n
\n '+ct.ICONS["arrow_right"]+"\n
\n
"}a.innerHTML=u;c=a.querySelectorAll(".st-btn");j=a.querySelector(".st-toggle");M=a.querySelector(".st-total");D=a.querySelector(".st-total .st-label");ct.addEventListener(j,"click",function(){return ct.toggleClass(a,"st-hidden")});I=function(){var t,e,n,i,o,r,s,a;r=100;if(ct.mobile||window.innerWidth<_){r=6}if(O){r--}if(dt.call(S,"sharethis")>=0){r--}if(dt.call(S,"sms")>=0){r--}if(dt.call(S,"whatsapp")>=0){r--}if(dt.call(S,"messenger")>=0){r--}if(dt.call(S,"wechat")>=0){r--}for(e=0,i=c.length;e0){continue}a.push(t.style.display="none")}return a};ct.addEventListener(window,"resize",I);H=function(t){return ct.addEventListener(t,"click",function(){return ct.share({channel_is_ssb:e.is_ssb,channels_displayed:JSON.stringify(e.networks),count_url:a!=null?a.getAttribute("data-count-url"):void 0,description:F||(a!=null?a.getAttribute("data-description"):void 0),image:$||(a!=null?a.getAttribute("data-image"):void 0),message:V||(a!=null?a.getAttribute("data-message"):void 0),network:t.getAttribute("data-network"),share_url:a!=null?a.getAttribute("data-short-url"):void 0,subject:nt||a.getAttribute("data-email-subject"),title:ot||(a!=null?a.getAttribute("data-title"):void 0),url:st||(a!=null?a.getAttribute("data-url"):void 0),username:lt||(a!=null?a.getAttribute("data-username"):void 0)})})};for(g=0,Q=c.length;gw){D.innerHTML=t["total"].label;ct.removeClass(M,"st-hidden")}else{ct.addClass(M,"st-hidden")}}if(b==="counts"){for(e=0,n=c.length;ew){if((r=l.querySelector(".st-label"))!=null){r.innerHTML=m}ct.removeClass(l,"st-hide-label")}else{ct.addClass(l,"st-hide-label")}}}I();setTimeout(function(){return ct.removeClass(a,"st-hidden")},10);return typeof C==="function"?C():void 0})}else{I();setTimeout(function(){return ct.removeClass(a,"st-hidden")},10);return typeof C==="function"?C():void 0}}}).call(this);(function(){var m;m=window.__sharethis__;m.loader["video-share-buttons"]=function(t){var l,e,c,d,u,p,h,f,g;if(t==null){t={}}if(!t.enabled){return}l=t.alignment,e=t.container,d=t.omit_class,u=t.onLoad,p=t.padding,c=t.networks,h=t.radius,f=t.size,g=t.spacing;if(c==null){c=["facebook","twitter","pinterest","email"]}if(d==null){d=""}if(p==null){p=10}if(h==null){h=0}if(f==null){f=40}if(g==null){g=8}m.checkClass=function(t,e){};return m.getEmbeds(function(t,e,n){var i,o,r,s,a;if(e!=="video"){return}a=m.newElement(t),i=a.$el,r=a.id;if(d){if(m.hasClass(t.parentNode.parentNode,d)){return}if(m.hasClass(t.parentNode,d)){return}}m.addClass(i,"st-video-share-buttons");i.style.width=t.offsetWidth.toString()+"px";i.style.margin="0";i.style.padding="0";if(t.tagName.toLowerCase()==="blockquote"){i.style.margin="auto"}i.setAttribute("data-url",t.src);if(!m.is_ie){o=getComputedStyle(t.parentElement).textAlign;if("center"===o){i.style.margin="auto"}}t.parentNode.insertBefore(i,t.nextSibling);return s=m.load("inline-share-buttons",{alignment:l,id:r,enabled:true,networks:c,padding:p,radius:h,size:f,spacing:g,onLoad:function(){m.addClass(i,"");return typeof u==="function"?u():void 0}})})}}).call(this);(function(){window.__sharethis__.md5="9648f3dc7eaedb659768d39de6157ba8"})(); \ No newline at end of file diff --git a/js/talk.js b/js/talk.js new file mode 100644 index 000000000..c2e243ce2 --- /dev/null +++ b/js/talk.js @@ -0,0 +1 @@ +var bbMemo={memos:"https://demo.usememos.com/",limit:"10",creatorId:"101",domId:"#bber"};if(typeof bbMemos!=="undefined"){for(var key in bbMemos){if(bbMemos[key]){bbMemo[key]=bbMemos[key]}}}function loadCssCode(e){var t=document.createElement("style");t.type="text/css";t.rel="stylesheet";t.appendChild(document.createTextNode(e));var o=document.getElementsByTagName("head")[0];o.appendChild(t)}var allCSS=".memo-container{margin-top:0.5rem;display:flex;width:100%;flex-direction:column;align-items:flex-start;justify-content:flex-start;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(255 255 255 / var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity));border:1px solid #e9e9e9;padding:1rem;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);-webkit-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:box-shadow,transform;transition-property:box-shadow,transform;}.memo-container:hover,.memo-container:focus,.memo-container:active{-webkit-transform:scale(1.01);transform:scale(1.01);}.memo-container>.memo-header{margin-bottom:0.5rem;display:flex;width:100%;flex-direction:row;align-items:center;justify-content:flex-start;font-size:.875rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity));}.memo-content-text>p:last-child{margin-bottom:0;}.memo-content-text>p{margin-bottom:0.25rem;height:auto;min-height:24px;width:100%;white-space:pre-wrap;overflow-wrap:break-word;font-size:1rem;line-height:1.5rem;}.memo-content-text a.link{color:var(--post-link-color);}.memo-content-text a.link:hover{color:var(--link-hover-color);}.memo-content-text .img{display:block;max-width:100%;cursor:pointer;border-radius:0.25rem;height:auto;vertical-align:middle;webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;outline:2px solid transparent;outline-offset:2px;-webkit-tap-highlight-color:transparent;}code{color:rgb(170,170,170);}.memo-content-text pre p{display:inline-block;}.memo-content-text pre p:empty{display:none;}button.load-btn.button-load{background-color:#ffffff;color:rgb(150,150,150);border:1px solid #e9e9e9;border-radius:10px;-webkit-transform:perspective(1px) translateZ(0);transform:perspective(1px) translateZ(0);-webkit-transition-duration:0.3s;transition-duration:0.3s;-webkit-transition-property:box-shadow,transform;transition-property:box-shadow,transform;padding:10px 24px;}button.load-btn.button-load:hover,button.load-btn.button-load:focus,button.load-btn.button-load:active{-webkit-transform:scale(1.01);transform:scale(1.01);}.memo-content-text a{color:#007bff;}.post-preview{max-width:780px;height:210px;margin:1em auto;position:relative;display:flex;background:#fff;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 0 1px rgba(0,0,0,.25);}.post-preview--meta{width:75%;padding:25px;overflow:hidden;}.post-preview--middle{line-height:28px;}.post-preview--title{font-size:18px;margin:0!important;}.post-preview--title a{text-decoration:none;}.post-preview--date{font-size:14px;color:#999;}.post-preview--excerpt{font-size:14px;line-height:1.825;}.post-preview--excerpt p{display:inline;margin:0;}.post-preview--image{height:210px!important;width:auto;float:right;border-top-right-radius:2px!important;border-bottom-right-radius:2px!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important;}@media (max-width:550px){.post-preview{width:95%;}.post-preview--excerpt{display:none;}.post-preview--middle{line-height:19px;}}.rating{display:block;line-height:15px;}.rating-star{display:inline-block;width:75px;height:15px;background-repeat:no-repeat;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAAClCAYAAAAUAAAYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA5xJREFUeNrs3T9rFEEcxvG7qEQIglaCICKkin9AUEtBKxU7wS61VlYivgWj70TtNFj5BqzE7qxEWwsxKIoYn4UtluFmbm8nczvzm+/BjxyuDwNzu3uXD0+46f7LC5PA45Hm+WTYw1x2LRDc0jzTXB+wqMlsaLPutz8fDFjYZHYauAz3NBvt83XNnyUWNpn1nVm3OsHmsb3EomazzZnVXKMPNcc0xzUnNKc0Rzv/77fms+Z7O3vt9b1eU7bZrNN68l5zcolX4ofmsuZXTdnmMvyi2dR86Bmcac62P6vKrnVubpc0bxYE32nOab45N8YqsvPeDfcD4SOav4HjprPuu+H5BTt9LXDMfNbdLPfT678Fx6vKupt1o/O8+R3pkOaJ5/iktqx7z/qp+aq5q/nY+fczmheaK03Gs7D5rLtZdzSvA6/Ebc2u55j57HQB0TzW7AzkjiKzny6+2hlKNE8juMNcFqKBaIZndRlCNBBNgmx7ZkE0fbLtZkE0EA1EM17WuQwhGogGooFoss6296y52cNO+J6HLJoPaFdbsvA9zGerIxrPh85eWYgGooFoDiQbuAxp0UA0EVmdWbRo+ma1WbRoIBqIZtzsnHdDWjQQDUQD0WSbde5ZS2UhmtqJJtSEiVkXooFoIJre2VATJmZdiKZ2ogk1YSb8oVMvDeUPnSAaiCaPJkzMuhANRAPRQDQpsqEmTMy6EI11oolpwkA0EA1EcyDZmCYMRAPR+LMxTZjqiCamCQPRQDQQzehNGIgGooFoIJpVZ2OaMBBN7USTqgkD0UA0EE3vbKomDERTO9GkasKYJJpUTRiIBqKBaEZvwkA0EA1EA9GkyKZqwkA01olmrCYMRAPRQDR9LkO+0QmiKbAJUyTRjNWEgWggGohm9CYMRAPRQDQQzZDsWE0YiMYC0eTYhIFoIJrKiCbHJgxEY4FocmzCZEs0OTZhIBqIpjKiybEJA9FANBANROPL5tiEgWhKIJoSmzAQDURjjGhKbMJANCUQTYlNmNGIpsQmDEQD0RgjmhKbMBANRAPR1Es0JTZhIJpciMZaEwaigWgKJBprTRiIJheisdaESUo01powEA1EUyDRWGvCQDQQDURjm2isNWEgmlURzWw2q4pZIBqIJkOiCVyGJpkFolkV0ejMMvel28mIRptl7ku3IRqIpjCimfNuaJpZIBqIBqIpm2ice5Z5ZonJupvVkMRu4JW4qXnrOWY++1+AAQBw9BJSCTeN9wAAAABJRU5ErkJggg==);overflow:hidden;}.allstar10{background-position:0px 0px;}.allstar9{background-position:0px -15px;}.allstar8{background-position:0px -30px;}.allstar7{background-position:0px -45px;}.allstar6{background-position:0px -60px;}.allstar5{background-position:0px -75px;}.allstar4{background-position:0px -90px;}.allstar3{background-position:0px -105px;}.allstar2{background-position:0px -120px;}.allstar1{background-position:0px -135px;}.allstar0{background-position:0px -150px;}.rating-average{color:#777;display:inline-block;font-size:13px;margin-left:10px;}";loadCssCode(allCSS);var limit=bbMemo.limit;var memos=bbMemo.memos;var page=1,offset=0,nextLength=0,nextDom="";var bbDom=document.querySelector(bbMemo.domId);var load='
';if(bbDom){getFirstList();meNums();var btn=document.querySelector("button.button-load");btn.addEventListener("click",function(){btn.textContent="加载中……";updateHTMl(nextDom);if(nextLengthe.json()).then(e=>{updateHTMl(e.data);var t=e.data.length;if(te.json()).then(e=>{nextDom=e.data;nextLength=nextDom.length;page++;offset=limit*(page-1);if(nextLength<1){document.querySelector("button.button-load").remove();return}})}function meNums(){var e=memos+"api/memo/amount?creatorId="+bbMemo.creatorId;fetch(e).then(e=>e.json()).then(e=>{if(e.data){document.getElementById("memonums").innerHTML=e.data}})}function updateHTMl(e){var t="",o="";const r=/#([^\s#]+?) /g;const a=/.*<\/a>/g;marked.setOptions({breaks:true,smartypants:true,langPrefix:"language-"});for(var i=0;i#$1 ");n=marked.parse(n).replace(a,"
");if(e[i].resourceList&&e[i].resourceList.length>0){var s=e[i].resourceList;var l="",m="",d=0;for(var p=0;p';d=d+1}if(c!=="image"){m+=''+s[p].filename+""}}if(l){var b="";if(d!==1){var b="grid grid-"+d}n+='
'+l+"
"}if(m){n+='

'+m+"

"}}t+='
'+new Date(e[i].updatedTs*1e3).toLocaleString()+'
'+n+"
"}var v="
    ";var g="
";o=v+t+g;bbDom.insertAdjacentHTML("beforeend",o);fetchDB();document.querySelector("button.button-load").textContent="加载更多"}function fetchDB(){var e="https://douban.edui.fun/";var t=document.querySelectorAll(".bb-timeline a[href*='douban.com/subject/']")||"";if(t){for(var o=0;oe.json()).then(e=>{let t="movies"+e.sid;let o="https://movie.douban.com/subject/"+e.sid+"/";localStorage.setItem(t,JSON.stringify(e));movieShow(o,t)})}else{movieShow(r,s)}}else if(i=="book"){var s="book"+n;var l=e+"v2/book/id/"+n;if(localStorage.getItem(s)==null||localStorage.getItem(s)=="undefined"){fetch(l).then(e=>e.json()).then(e=>{let t="book"+e.id;let o="https://book.douban.com/subject/"+e.id+"/";localStorage.setItem(t,JSON.stringify(e));bookShow(o,t)})}else{bookShow(r,s)}}}}}function movieShow(e,t){var o=localStorage.getItem(t);var r=JSON.parse(o);var a=Math.ceil(r.rating);var i="

《"+r.name+"》

"+r.rating+"
"+r.intro.replace(/\s*/g,"")+"
";var n=document.createElement("div");var s=".bb-timeline a[href='"+e+"']";var l=document.querySelector(s);l.parentNode.replaceChild(n,l);n.innerHTML=i}function bookShow(e,t){var o=localStorage.getItem(t);var r=JSON.parse(o);var a=Math.ceil(r.rating.average);var i="

《"+r.title+"》

"+r.rating.average+"
"+r.summary.replace(/\s*/g,"")+"
";var n=document.createElement("div");var s=".bb-timeline a[href='"+e+"']";var l=document.querySelector(s);l.parentNode.replaceChild(n,l);n.innerHTML=i} \ No newline at end of file diff --git a/js/timeago.min.js b/js/timeago.min.js new file mode 100644 index 000000000..8dbde1e82 --- /dev/null +++ b/js/timeago.min.js @@ -0,0 +1 @@ +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e=e||self).timeago={})}(this,function(e){"use strict";var r=["second","minute","hour","day","week","month","year"];var a=["秒","分钟","小时","天","周","个月","年"];function t(e,t){n[e]=t}function i(e){return n[e]||n.en_US}var n={},f=[60,60,24,7,365/7/12,12];function o(e){return e instanceof Date?e:!isNaN(e)||/^\d+$/.test(e)?new Date(parseInt(e)):(e=(e||"").trim().replace(/\.\d+/,"").replace(/-/,"/").replace(/-/,"/").replace(/(\d)T(\d)/,"$1 $2").replace(/Z/," UTC").replace(/([+-]\d\d):?(\d\d)/," $1$2"),new Date(e))}function d(e,t){for(var n=e<0?1:0,r=e=Math.abs(e),a=0;e>=f[a]&&a=f[n]&&n=0?t:0;var n=e.getBoundingClientRect();var i=window.innerHeight||document.documentElement.clientHeight;var o=n.top;return o>=0&&o<=i*(t+1)||o<=0&&o>=-(i*t)-n.height},waitElementVisible:function(e,i,o){var t=typeof window!=="undefined";var n=t&&!("onscroll"in window)||typeof navigator!=="undefined"&&/(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent);if(!t||n){return}o=o&&o>=0?o:0;function r(e){if(Fluid.utils.elementVisible(e,o)){i();return}if("IntersectionObserver"in window){var t=new IntersectionObserver(function(e,t){if(e[0].isIntersecting){i();t.disconnect()}},{threshold:[0],rootMargin:(window.innerHeight||document.documentElement.clientHeight)*o+"px"});t.observe(e)}else{var n=Fluid.utils.listenScroll(function(){if(Fluid.utils.elementVisible(e,o)){Fluid.utils.unlistenScroll(n);i()}})}}if(typeof e==="string"){this.waitElementLoaded(e,function(e){r(e)})}else{r(e)}},waitElementLoaded:function(i,o){var e=typeof window!=="undefined";var t=e&&!("onscroll"in window)||typeof navigator!=="undefined"&&/(gle|ing|ro|msn)bot|crawl|spider|yand|duckgo/i.test(navigator.userAgent);if(!e||t){return}if("MutationObserver"in window){var n=new MutationObserver(function(e,t){var n=document.querySelector(i);if(n){o(n);t.disconnect()}});n.observe(document,{childList:true,subtree:true})}else{document.addEventListener("DOMContentLoaded",function(){var t=function(){var e=document.querySelector(i);if(e){o(e)}else{setTimeout(t,100)}};t()})}},createScript:function(e,t){var n=document.createElement("script");n.setAttribute("src",e);n.setAttribute("type","text/javascript");n.setAttribute("charset","UTF-8");n.async=false;if(typeof t==="function"){if(window.attachEvent){n.onreadystatechange=function(){var e=n.readyState;if(e==="loaded"||e==="complete"){n.onreadystatechange=null;t()}}}else{n.onload=t}}var i=document.getElementsByTagName("script");var o=i.length>0?i[i.length-1]:document.head||document.documentElement;o.parentNode.insertBefore(n,o.nextSibling)},createCssLink:function(e){var t=document.createElement("link");t.setAttribute("rel","stylesheet");t.setAttribute("type","text/css");t.setAttribute("href",e);var n=document.getElementsByTagName("link")[0]||document.getElementsByTagName("head")[0]||document.head||document.documentElement;n.parentNode.insertBefore(t,n)},loadComments:function(e,t){var n=document.querySelector("#comments[lazyload]");if(n){var i=function(){t();n.removeAttribute("lazyload")};Fluid.utils.waitElementVisible(e,i,CONFIG.lazyload.offset_factor)}else{t()}},getBackgroundLightness(e){var t=e;if(typeof e==="string"){t=document.querySelector(e)}var n=t.ownerDocument.defaultView;if(!n){n=window}var i=n.getComputedStyle(t).backgroundColor.replace(/rgba*\(/,"").replace(")","").split(/,\s*/);if(i.length<3){return 0}var o=.213*i[0]+.715*i[1]+.072*i[2];return o===0||o>255/2?1:-1}};function Debouncer(e){this.callback=e;this.ticking=false}Debouncer.prototype={constructor:Debouncer,update:function(){this.callback&&this.callback();this.ticking=false},requestTick:function(){if(!this.ticking){requestAnimationFrame(this.rafCallback||(this.rafCallback=this.update.bind(this)));this.ticking=true}},handleEvent:function(){this.requestTick()}}; \ No newline at end of file diff --git a/leave/index.html b/leave/index.html new file mode 100644 index 000000000..00969cc73 --- /dev/null +++ b/leave/index.html @@ -0,0 +1,3 @@ +留言板 - 序炁的博客 + +

留言板,想问博主的都可以在这里评论哦!

友情链接不要在这里留言,请去友链页面填表单。

评论使用twikoo系统。

\ No newline at end of file diff --git a/links/index.html b/links/index.html new file mode 100644 index 000000000..4e795dd01 --- /dev/null +++ b/links/index.html @@ -0,0 +1,3 @@ +友链 - 序炁的博客 + +

无法访问的博客将在30天内删除,若恢复访问请通过关于页面中的电子邮箱联系我


现可填写下方表单自助申请友链

要求

  • 非营利性
  • 非资源分享类及盗版传播内容
  • 不得含有违反中华人民共和国各法律的内容
  • 启用全站https
  • 已添加本站友链
  • 目前只接受文章数>=5的博客申请
\ No newline at end of file diff --git a/loaderio-01ad4407e9cb8d9fedb0c01f2b850924.txt b/loaderio-01ad4407e9cb8d9fedb0c01f2b850924.txt new file mode 100644 index 000000000..66c1dedec --- /dev/null +++ b/loaderio-01ad4407e9cb8d9fedb0c01f2b850924.txt @@ -0,0 +1 @@ +loaderio-01ad4407e9cb8d9fedb0c01f2b850924 \ No newline at end of file diff --git a/local-search.xml b/local-search.xml new file mode 100644 index 000000000..6d27492e1 --- /dev/null +++ b/local-search.xml @@ -0,0 +1,1411 @@ + + + + + + + 使用Github Action定时重启邮件服务 + + /posts/e9c784c5/ + + 主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。

情景引入

邮件服务器性能羸弱,无法胜任设置定时任务这样的重担,所以只能用一些盘外招试试了。

设置 Action

那么首先,本着轻量化的原则,新建一个仓库拿来干这种事:

然后切到Action页面:

选择新建一个空白模板:

修改Action名称、内容并设置定时,参考我的:

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
# This is a basic workflow to help you get started with Actions

name: REMX

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
schedule:
- cron: "0 20 * * *"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout Codes
uses: actions/checkout@v3

- name: Restart MX Service
uses: garygrossgarten/github-action-ssh@release
with:
command: ./restart.sh
host: ${{ secrets.HOST }}
username: root
password: ${{ secrets.PASSWORD }}

- name: Finish
run: echo "Action Finish"

SSH相关配置自行查看官方文档

保存,然后去设置Secret:

分别设置服务器地址、密码等即可:

大功告成!

结语

上高中之后就没写博文了……

除夕赶出一篇博文,祝新年快乐!!!

也迟来的祝博客两周年快乐!!!

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + + +
+ + + + + 年中总结,及进16岁生贺 + + /posts/95bd9bb8/ + + 又是一年生日了,回想上次生日,好像还是在上次一样,那时还是在初三开学前的补课。补课放学的很早,五点就回家了。当时在超市里买了一根价值14块大洋的钟薛糕……

说起来真的像是发生在昨天。

1~2月

经过了疫情的洗礼,九年级下学期的开学总算是如期而至,但紧随而来便是对二月调考的紧张。原本武汉是只有元调、四调的,不过由于众所周知的疫情因素,元调从原定的1月4号挪到了2月21号。让我们过了一个安心的元旦和一个安心的寒假。

但该来的还是要来,二调总归也是调考,压迫感并未消失,只是转移到了一个月后。故而新学期伊始,我们就全身心投入到了复习之中。那时我的心里总会浮现出七年级刚开学时班主任在班里说的话,她告诉我们三年很短,元调很重要。初听不知话中意,而现在,已为语中人。

二调的成绩中规中矩吧,523分(523/600),随后便立下了四调要进步15分的目标。但那时我还不知道,这个目标永远没有机会达成了。

3~4月

二调完了就是四调,没什么可说的,该复习复习,该上新课上新课。伴随着一本又一本教材被翻至最后一课、最后一面,初中即将毕业的感受才开始从心中滋生。不论是Graduation还是“从这里出发”,课本中的一句句话,一段段文章都正提醒着我们即将分别的事实。

四调成绩说实话,很不好,只有508。以至于我的母亲对我这个分数不抱什么期望了,也便没有如同二调结束后那样跑前跑后地签各种约。也正因如此,已然退休的她只能在家里独自心焦,这是我的问题。

5~6月

五月有各个区自己的五调,六月便是全武汉市的中考。志愿早在五月九日便截至提交,在此之前,我终于说服了我的父母为我填写武钢三中为第一志愿。“说服”,无奈的选择,毕竟要说二调成绩勉强足够的话,四调成绩面对钢三简直就是依托答辩。但我仍然坚定的选择了这条路,算是对自己的压迫吧,同时也伴随着一股气,一股不服输的精神。

五调前举行了理化生实验考试,和八年级的地理生物一样,采用机考的形式。没什么难度,几乎全班满分通过,只有3人被扣了1分。加上由于疫情取消的体育中考,近乎就是给每个人送了80分。

六月初,抽了一个上午,我们全班在学校里拍了毕业照。学校不大,很快就走遍了整个校园。伴随着感慨,拍完室外照后回班,我们齐心协力在十分钟内办好了一面黑板报。站在黑板报前,我们拍了最后的几张照片。

中考日以前,最后一个在校日,是一个周六。老师在上午或看自习,或做最后的查漏补缺。而下午,老师开了一场动员会,给每个人发了一块粽子玩偶。既代表端午将临,亦有一举高中之意。一场班会结束,打扫完教室,离开学校,颇有一种或解脱、或不舍的情愫。

中考前一天,周一,下午我便前往了考点处。每个文化课老师都在考点门口,为我们一张张派发着准考证。面对那一句句叮嘱,我明白,不能当做是像以前那样的老生常谈了。

中考结束的那一天,考完历史道法的上午。连续更改了两道选择题的我放下了手中的笔,一根根地把中性笔、2B铅笔、涂卡笔以及橡皮擦、垫板、准考证装入了文具袋。走回休息室,再和全班同学及老师走出了考场。此时此刻,心中只有解脱,无暇再顾及其它。

随后就是毕业旅行了,很愉快的出行经历,也为初中三年画上了一个圆满的句号。

7~8月

七月一号一早,昨天刚从青岛回到家的我点进了武汉招考网,惊心动魄的输入姓名、报名号和身份证号。按下蓝色按钮的那一刻,时间仿佛凝滞。好在接下来引入眼帘的数字令我终于放下了心,614分(614/680),是我最高的一次了。

毫无疑问的被钢三录取,之后是钢三的夏令营,一直到七月二十一。食堂很美味,与同学相处得很愉快,校园环境很好,近乎无可挑剔了。

八月,很放松的一个月,这个月一直在玩master duel和原神,开始了摆烂状态(笑)

直到今天,我的生日为止,一切都很放松。

未来……

马上就是钢三的军训了,再之后就是开学,祝我一路顺利吧!

也希望三年后的暑假能像现在一样无忧无虑。

Happy Birthday for Me!

顺便晒一下毕业纪念册!

]]>
+ + + + + 日常 + + + + + + + 生日 + + 总结 + + 个人 + + + +
+ + + + + 数字生命卡开箱——来自《流浪地球II》 + + /posts/b3d3143c/ + + 过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!

《流浪地球II》的官方周边产品大部分都是赛凡做的。怎么说呢……我买的数字生命卡是第二批,看到很多第一批的都有程度不一的瑕疵。不过我这个就还好,没有什么大问题,看来还是有在改进运输和包装质量。

到手差不多就是这么些东西:

其它周边什么的就不多说了,重头戏还是数字生命卡。

数字生命卡

只说外观的话,看起来金属感不是很强,喷个漆观感应该会好一些,但我不会(

别的道具倒是挺还原的,比如说袋子。

别的也没什么可说的了,毕竟这也就是一个128G的U盘和一个读卡器而已。

其它

不说什么了,放几张图吧。

题外话

不是很好评价赛凡的产品了……

我只能说我能接受这个做工,但的确,赛凡的破事很难让我提起好感。

就这样,886!

]]>
+ + + + + 日常 + + + + + + + 电影 + + 开箱 + + 科技 + + U盘 + + 周边 + + + +
+ + + + + 文章AI摘要?太酷啦! + + /posts/ec8c9790/ + + 看了HEO的如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要,甚是手痒……整一个!

前情提要

的确,我可以直接把HEO现成的部署方案拿来用,但我是一个有追求的人(雾。事实上,直接使用这种解决方案得到的摘要栏与我博客的设计风格并不是很搭,这就要求我自己写一个前端后端是不可能的,这辈子也不可能的

好,开干!但首先,第一个问题出现了:我博客的设计风格本身就不太统一。首页的说说轮播和说说页面的数量统计用了fluid主题自带的info,而友链朋友圈页面又没有,直接使用了圆角矩形承载统计信息。

为了解决这个问题,我需要用一样东西代替info标签。经过再三深思熟虑,我选用圆角矩形统一替换info.

而后便有了枯燥的漫长(?)css编写时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
div.ocxqntcontainer {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
}

div.ocxqnt {
    border: 1px solid #e9e9e9;
    border-radius: 1rem;
    padding: 1rem;
    text-align: left;
    width: 100%;
}

span.memos-t {
    margin: 0 1rem;
}

就这样,圆角矩形大功告成。

摘要部署

现在这个步骤就变得很简单了,对于我用的fluid主题,编辑layout/post.ejs即可,在article标签中,类为markdown-bodydiv标签之前加入以下内容:

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
<style>
i.icon-ordchaos-blog-robot, span.ocxq-ai-title {
font-weight: bold;
font-size: 1.2em;
}

span.ocxq-ai-warn {
font-weight: bold;
}

.ocxq-ai-text.typing::after {
content: "_";
margin-left: 2px;
animation: blink 0.7s infinite;
}

@keyframes blink {
50% {
opacity: 0;
}
}
</style>
<script>
let tianliGPT_postSelector = '#board .post-content .markdown-body';
let tianliGPT_key = '5Q5mpqRK5DkwT1X9Gi5e';
</script>
<div class="ocxqntcontainer">
<div class="ocxqnt">
<span id='memos-t'>
<i class="iconfont icon-ordchaos-blog-robot"></i><span id="memos-index-space"> </span><span class="ocxq-ai-title">AI摘要</span>
<br>
<span class="ocxq-ai-text">
生成中...
</span>
<br>
<span class="ocxq-ai-warn">摘要由AI自动生成,仅供参考!</span>
</span>
</div>
</div>
<br>

<!--正文部分-->

<script src="https://www.ordchaos.com/js/aisummary.js"></script>

这里有几个问题:

  • 为什么内容在idmemos-tspan标签中:因为它同样套用了刚刚写好的圆角矩形,而这个圆角矩形为了适配原有的memos说说而要求内部文字必须拥有memos-tid.
  • iconfont icon-ordchaos-blog-robot是什么图标:我在iconfont.cn中取用的,因为加入了我的图标库所以拥有图标库前缀icon-ordchaos-blog,若也想选用的话可以直接在iconfont.cn搜索关键词robot找到并添加到自己的图标库
  • 为什么不把样式代码写到css里面去:我懒

最后在文件的末尾处加上对js文件的引用。

说到js,由于HEO提供的js文件中含有生成前端容器的部分,所以必须要删除这部分内容并对其做出部分修改。过程这里就不放了,实在看不懂的可以参考我改好的被压缩了怎么看啊自己想办法

而后去爱发电订阅TianliGPT并将api key填入即可。

效果

题外话

最开始因为不想写css而拖了好久……最终因为实在眼馋,欲望盖过了懒病才动身做完。

话说我这样改别人写好的js应该没问题吧……

那就这样,886!

]]>
+ + + + + 编程 + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + javascript + + css + + AI + + + +
+ + + + + 哇!是毕业旅行! + + /posts/c2e7460a/ + + 初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!

前情提要

武汉今年中考在六月的二十、二十一、二十二号总共三天,考完以后休息放纵两日后,我们全班便踏上了高铁前往青岛。

怎么说呢……说是六天五夜,但武汉与青岛之间的高铁要坐8小时,所以第一天和最后一天都相当于是在高铁上玩一天手机(雾

Day 1 & 2

我们在武汉站登车,高铁从上午十一点一直开到了晚上七点。好在酒店离高铁站很近,走路也就5分钟路程,所以我们就前往了酒店开房。

该说不说,4个人挤双人房的安排是有点逆天的。就算我们没意见,酒店也没意见?!

第二天起来吃了早饭之后我们便走路前往了海边,很近,不过不是海滩。拍了几张照,早上天气真的很差,本来是小雨的天气,结果雨越来越大,风也越来越强。但过了一会天又晴了……

然后就是非常晒人。

下午乘坐青岛地铁去了中山公园附近的沙滩。只能说不愧是夏天,晚上五六点仍然晴空万里。

玩水玩得非常开心,不过也仅限于在海水中跑一跑了。毕竟我可不想和部分其他同学一样弄得浑身湿透。

请同学拍了两张照!

Day 3

走路去了圣弥勒尔大教堂,不过也没进去,就是在外面拍了几张照。

风景很不错,宝宝喜欢妈妈爱。

以及本来还以为会碰到什么传教士什么的,然后我就能回一句”我信铂金龙神巴哈姆特“(大雾,结果没有。

然后就去了老舍故居,看到了《骆驼祥子》相关的很多文物(?)。得亏武汉今年考的是《钢铁是怎样炼成的》,不是《骆驼祥子》,没有被祥子一车创si

然后就是坐地铁回酒店了,这次是从人民会堂到青岛站。

下午去坐船了,不大不小的船。

我只想说,快艇我不晕,轮船我不晕,所以就是这种两者之间的会晕是吗!!!

下午天气很不好,在海上飘着,外面还下大雨,甚至打雷……

坐了四小时,而后从原港口下了船,感觉像是自找了四小时的罪受,艹。

回酒店后第一时间点了外卖,不然真感觉要吐了。

Day 4

又是地铁!这几天地铁成了我们唯一的陆上交通工具,别的旅行团都会有大巴什么的,我们没有,我们就是坐地铁(

还是人民会堂站下车,这次我们去了小青岛公园。公园环境很好,玩得很开心,甚至还去看了鱼雷洞。

以及走的时候发现了一条绿意盎然的楼梯,拍了张照,很好看(

下午坐一号线去了台东,去了步行街吃晚饭。

兴致突然起来了,和同学一起买了地铁票进站而非使用手机app. 运气挺好,买到了不一样样式的单程票。

下车之后全班就直接分组分头行动了。穿梭于人来人往的小吃摊中,感受到烟火气的缭绕,对于一个忙碌了一整年的初三学生来说实在是太酷啦!

买了铁板豆腐、臭豆腐、鱿鱼和青岛啤酒,香的嘞。

然后去了五四广场,再之后就又回了酒店。

Day 5

又去了海边,不过是坐地铁去的,三号线转二号线。

所以又收集(?)到了两款不一样的地铁票。

还有在五四广场同站换乘。

说实话,天气真的不好,海边景色这几天也看腻了(

浅浅拍了几张照之后就坐地铁回去了,以及又收集到了一种地铁票。

下午老师组织看电影,一起看了端午档的《消失的她》

悬疑片嘛……不是很和我胃口,但是观感还不错。

然后就是吃完饭。老师给了每人80的预算,让分组一起吃晚饭,我就和另外三个同学一起去了海底捞。

第一次去海底捞,服务很好,很符合我的期待,价格也正常,不算很贵,起码没超预算。

点了两个菌菇和麻辣两个汤底,味道就很正常,跟我家里和父母一起煮的火锅差不多。

最后还送了一份面条,海底捞真的,我哭死(大雾

师傅的手艺很好,观赏性十足,爱了爱了。

随便贴几张图吧:

Day 6

早起前往高铁站,赶十点的高铁。

天气阴了这么多天,结果偏偏走的时候才好,我的评价是,6.

坐的复兴号高铁,不过站台另一侧有一辆绿皮火车,于是拍了一张个人觉得很好看的照片:

然后又是玩了一天手机……

最后,晚上6点,回到武汉,与老师同学告别后回到了家,结束了这一场旅行。

题外话

生活记录型的博文,尤其是这么长的,我还是第一次写,有什么不足请多多海涵!

什么?你问中考?

请观阅以下内容:

你说的对,但是《中考》是由武汉教育局自主研发的一款「互联网时代」全新开放世界冒险游戏。游戏发生在一个被称作「HappyPark」的幻想公园,在这里,被「往上提的溢水杯」选中的人将被授予「0.797g沉淀」,导引「两种酸」之力。你将扮演一位名为「有两块抹布的直径0.3m的扫地机器人」的神秘角色,在面积27m2的秘鲁考古遗址中邂逅的紫甘蓝味软糖,和百万年前出士的bright flowers化石一起,找回「简练明快,势巧形密」的家书同时,感受「尽责地爱」,且逐步发掘「点P过定线」的真相。

怎么说呢,今年的题真的很创人。

所以……考的差一点也不要紧啦,哈哈……

···

啊?你真以为我考砸了?

886!

]]>
+ + + + + 日常 + + + + + + + 日常 + + 旅行 + + + +
+ + + + + 前、后与中——表达式求值 + + /posts/c9c6cb4f/ + + 记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi

如果你不知道这些表达式分别指什么东西,可以百度一下,这里不再赘述。

后缀表达式

这个应该是最常见的了,下面讲一下实现。

首先,还是定义函数废话

1
2
3
int main() {
//...
}

然后,进行文件读取,可以用freopen(),不过我这里用的是fopen()

1
2
3
4
5
6
7
8
9
10
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100]; //temp
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

//...
}

解释一下上面的程序:

  • stack<double> nums 这个栈后面会用到,这里先不用管
  • fscanf()scanf()用法一样,唯一的区别是fscanf()用于读取文件流中的信息而非输入流
  • feof()中的参数为文件流,用于判断是否读到结尾,读到则返回真

很显然,这段程序用于分别读入每一段字符,那么接下来便是判断输入了。

代码如下:

1
2
3
4
5
6
7
8
9
10
while(true) {
//...

if(isdigit(input[0])) {
nums.push(atof(input.c_cstr()));
}
else {
//...
}
}

如果输入为整数,则进入数字栈,否则开始计算。

这里使用了isdigit()函数,输入为char类型,用于判断参数是否在'0''9'之间。

计算过程很简单,弹出两个数字栈中的数,根据运算符计算即可:

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
//...
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();

double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}

尤其要注意减法与除法的操作数与被操作数顺序,毕竟它们可没有交换律。

此时已经计算完成,结果作为栈中唯一的元素处在栈顶,直接输出即可:

1
2
3
4
fclose(stream); //关文件是一个好习惯
cout<<nums.top()<<endl;

return 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main() {
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;
if(is_num(input)) {
nums.push(atof(input.c_str()));
}
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}
nums.push(temp);
}
}
fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

输入样例:

1
1 2 + 3 - 

输出样例:

1
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
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<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main(){
FILE* stream = fopen("input.txt", "r");

stack<double> nums;
vector<string> input; //存储读取数据
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
input.push_back(string(tstr));
}

for(int i = input.size() - 1;i >= 0;i--) { //倒序读取
if(is_num(input[i])) {
nums.push(atof(input[i].c_str()));
}
else {
double x = nums.top();
nums.pop();
double y = nums.top();
nums.pop();

double temp;
switch(input[i][0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}
}

fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

改成倒序读取即可。

输入样例:

1
- + 1 2 3 

输出样例:

1
0

中缀表达式

我们最常用的表达式,处理起来却是最复杂的,因为现在需要考虑优先级与括号了。

这里有几种方法:

递归

首先,定义函数用于取多项式的因子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int factor() {
int res = 0;
char c = cin.peek();
if(c == '(') {
cin.get();
res = expression();
cin.get();
}
else {
while(isdigit(c)) {
res = 10 * res + c - '0';
cin.get();
c = cin.peek();
}
}
return res;
}

先定义结果为0,然后判断输入。若为括号,则将其内容视为新表达式,交由马上要定义的expression()函数计算。否则,按位取出输入中的数即可。

顺带一提,这些代码中的cin.get()cin.peek()尤其重要,切勿移动位置或轻易替换。至于原因,自己模拟想一下吧。

然后,计算单项式的值,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int term() {
int res = factor();
while(true) {
char mark = cin.peek();
if(mark == '*' || mark == '/') {
cin.get();
int v = factor();
if(mark == '*') res *= v;
else res /= v;
}
else break;
}
return res;
}

先用factor()函数读入因子,然后循环判断该单项式是否读完。若未读完(即该因子与下一个因子间仍用乘号或除号连接)则取下一个因子并计算,否则返回该单项式的值即可。并且很显然,这样的写法就代表输入的表达式中不应当含有任何空格,也只支持整数运算(要浮点数自己改我不干了)。

最后是整个表达式,与计算单项式基本一样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int expression() {
int res = term();
while(true) {
char mark = cin.peek();
if(mark == '+' || mark == '-') {
cin.get();
int v = term();
if(mark == '+') res += v;
else res -= v;
}
else break;
}
return res;
}

读入单项式再计算,直到该表达式计算完毕(即mark取到)EOF

主函数其实已经一目了然了,重定向输入再调用expression()即可,就不写了。

输入样例:

1
(28/7)/2+(8-9)

输出样例:

1
1

这里又分为两种方案:

转为后/前缀表达式再计算

这里的重点是转换的过程,逻辑整体如下(中缀->后缀):

  • 输入若为数字,直接放入输出表达式中。若为符号:
    • 如果符号栈为空,则放入符号栈中
    • 如果符号栈栈顶元素优先级大于等于该符号,则出栈栈顶符号放入表达式,若此时栈顶符号优先级大于等于该符号,则重复以上流程直至小于,而后入栈该符号
    • 如果符号栈栈顶元素优先级小于该符号,该符号入栈
    • 如果该符号为左括号,直接入栈
    • 如果该符号为右括号,则依次出栈符号栈栈顶元素放入表达式中,直至左括号。最后抛弃左括号与右括号
  • 若输入完毕,符号栈中仍有符号,则依次出栈放入表达式

代码如下(转为后缀表达式):

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
map<char, int> markl;

markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

FILE* stream = fopen("input.txt", "r");

stack<char> marks;
vector<string> expression;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

if(isdigit(input[0])) {
expression.push_back(input);
}
else if(input[0] == '(') {
marks.push('(');
}
else if(input[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
}
else {
if(marks.empty() || marks.top() == '(') {
marks.push(input[0]);
}
else if(markl[input[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
marks.push(input[0]);
}
else {
marks.push(input[0]);
}
}
}

while(!marks.empty()) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}

和上面的逻辑完全一样,唯一要注意的是这里使用了map,可以理解为字典。

然后只需要计算就行,代码就不放了。

前缀表达式的逻辑与代码可以自己想想。

输入输出样例同下面。

直接计算

逻辑和转换本身是一样的,只不过没有了表达式向量,而是直接计算后放入数字栈。

即将所有的对于expression的操作改为计算即可:

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
#include <bits/stdc++.h>
using namespace std;

double calc(char mark, double x, double y) {
double temp = 0;
switch(mark) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

return temp;
}

int main() {
FILE* stream = fopen("input.txt", "r");

map<char, int> markl;
markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

stack<char> marks;
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string temp = tstr;

if(isdigit(temp[0])) {
nums.push(atof(temp.c_str()));
}
else if(temp[0] == '(') {
marks.push('(');
}
else if(temp[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}

double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
}
else if(marks.empty() || marks.top() == '(') {
marks.push(temp[0]);
}
else if(markl[temp[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
marks.push(temp[0]);
}
else {
marks.push(temp[0]);
}
}

while(!marks.empty()) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}

fclose(stream);

cout<<nums.top()<<endl;
return 0;
}

输入样例:

1
( 28 / 7 ) / 2 + ( 8 - 9 ) 

输出样例:

1
1

收工!

题外话

这篇大概是我最长的纯原创技术类博文了。。。。。。

好累QAQ

下次再见啦!886!

2023.04.03更新

让ChatGPT改了一个支持浮点数的递归版本:

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void print_tab(int);
void print_log(string, int);
void print_log(string, int, double);
double expression(int);
double term(int);
double factor(int);

int main() {
freopen("input.txt", "r", stdin);
cout << expression(0) << endl;
return 0;
}

void print_tab(int deep) {
for(int i = 0;i < deep;i++) {
cout << "\t";
}
return;
}

void print_log(string name, int deep) {
print_tab(deep);
cout << name << " {" << endl;
return;
}

void print_log(string name, int deep, double res) {
print_tab(deep);
cout << "} -> res =" << res << endl;
return;
}

double expression(int deep) {
print_log("expression", deep);

double res = term(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '+' || mark == '-') {
cin.get(); //skip
double v = term(deep + 1);
if(mark == '+') res += v;
else res -= v;
}
else break;
}

print_log("expression", deep, res);

return res;
}

double term(int deep) {
print_log("term", deep);

double res = factor(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '*' || mark == '/') {
cin.get(); //skip
double v = factor(deep + 1);
if(mark == '*') res *= v;
else res /= v;
}
else break;
}

print_log("term", deep, res);

return res;
}

double factor(int deep) {
print_log("factor", deep);

double res = 0;
double base = 1.0;
char c = cin.peek(); //get
if(c == '(') {
cin.get(); //skip
res = expression(deep + 1);
cin.get(); //skip
}
else {
while(isdigit(c) || c == '.') { // == GET A NUMBER ==
if(c == '.') {
cin.get(); //skip the '.'
c = cin.peek(); //get the next character
while(isdigit(c)) { //collect digits for the decimal part
res = res + (c - '0') * (base /= 10.0);
cin.get();
c = cin.peek();
}
break;
}
res = res * 10 + c - '0'; //get num
cin.get(); //skip
c = cin.peek(); //get
}
}

print_tab(deep + 1);
cout << "get_num();" << endl;
print_log("factor", deep, res);

return res;
}

]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + 算法 + + + +
+ + + + + 迟来的二月调考总结 + + /posts/7eb4319/ + + 各位,好久不见,距离上次发文的时间过的有点久,其中最大的原因就是万恶的二月调考。现在已经考完一个多月了离四调也就一个月了,这里我来总结一下。

背景要素

以防不知道,本人生在武汉,学籍武汉,参加武汉的统一考试。武汉在九年级时会有几场全市统考,分别为九上的元月调考(期末)与九下的四月调考(期中)和中考(期末)。今年闹疫情,于是原定在一月四号的元调被挪到了二月二十一号(九下开头)。

武汉的中考在我这一届改革了,下面对比一下以往和之后的不同:

科目分数(前)分数(后)
语文120120
数学120120
英语120120
物理7070
化学5050
历史\60
道德与法治4060
实验030
体育3050
总分550680

详解:

  • 原本不考历史
  • 道德与法治原先只有选择题,现在新加入了材料题,分数构成为28分选择 + 32分材料。历史分数构成与其一样,且二者合卷
  • 实验考试以往不计分,为实操。现在为机考答卷,在120道题(40物理,40化学,40生物)中每个科目随机选10道题目作答,每题一分
  • 体育由30分改为50分,构成为15分平时 + 35分考试。本届由于新冠疫情的原因,取消体育中考(即所有人考试分数计为35)

二调情况

先明确二调的考试内容,为中考所有科目除去体育与实验(四调亦然)

分数不是很方便透露,大致说一下考试情况吧。说来惭愧,正正好好是语数英垮了(bushi

语文选择题眼瞎,错了两题。英语则是阅读理解B篇,神你以为我会说脏话吗?Live a colorful life,我真感觉不到这么大,真的。

总之就是很意难平。

好消息是化学满分,终于!

签约的话倒不是不能签,只能说是比上不足,比下有余余余余余…

总结

也没什么可说的,给自己加油吧。我是想打竞赛的,文化课成绩必然需要更上一层楼才行。

886!

(鬼知道下次什么时候更新)

]]>
+ + + + + 个人 + + + + + + + 总结 + + 学习 + + 考试 + + + +
+ + + + + 全站 webp 自动切换,加速访问好帮手 + + /posts/23e22de2/ + + 原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。

前期准备

首要任务是拿到webp格式的图片,这个看自己。像我用的vps上的Lsky Pro,本地存储。有高性能vps可以试试用Webp-Server配合。但我的轻量应用承受不起,遂作罢。改为了定时shell脚本,一分钟触发一次:

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
#!/bin/bash

find . -type f -iname "*.png" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpeg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.tif" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

脚本运行时会遍历自己所在的文件夹及其子文件夹,转换所有没有对应webp格式的图片(pngjpgjpegtiff)为webp图片(原图还在,放心)。

这段脚本中使用了cwebp指令,它来源于libwebp。安装可以参考下方:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装编译器以及依赖包
yum install -y gcc make autoconf automake libtool libjpeg-devel libpng-devel
# 请到官网下载最新版本,版本列表:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz
# 解压
tar -zxvf libwebp-1.2.4.tar.gz
# 进入目录
cd libwebp-1.2.4
# 源代码安装环境检查
./configure
# 编译
make
# 安装
make install

安装过程中遇到问题请善用百度/Google,本人不对此负责(bushi

做好以上所有工作后,就可以开始下面的内容。

Service Worker

安装

不知道是什么、如何部署的,可以看看CYF大佬的这两篇文章:

如果你已经部署了Service Worker就可以继续了。

脚本

添加一个监听器,监听fetch事件:

1
2
3
self.addEventListener('fetch', async event => {
//...
});

(或者在本来的监听器里面加上)

然后判断流量是否是对图站的请求,可以用一个if来判断:

1
2
3
4
if(event.request.url.indexOf('your.image.site') !== -1) {
var requestUrl = event.request.url;
//...
}

event.request.url是请求的地址,用indexOf()方法来判断地址中是否包含图站地址,若不反回代表没有的-1即为是对图站的请求。

接下来判断浏览器是否支持webp图片,定义一个变量supportsWebp

1
2
3
4
5
6
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}

如果可以获取到浏览器的Accept头,且头中包含image/webp,即为支持webp,否则为不支持。

然后就可以进一步处理了,若浏览器支持webp,则进行下一步:

1
2
3
4
5
6
if (supportsWebp) {
//...
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}

然后获取请求的文件类型。最开始的脚本只支持pngjpgjpegtiff这四种格式的图片,所以我们也只能篡改这四种格式图片的请求到webp图片上:

1
2
3
4
5
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg') {
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
//...
}

newUrl中存储了新的请求地址,接下来对它发起请求即可:

1
2
3
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");

当请求完成并图片被完整下载以后,进行缓存,代码如下:

1
2
3
4
5
6
7
8
9
10
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);

若获取失败则提示,成功则缓存。

最后,要打断之前的请求,避免降低速度,可以调用event.stopImmediatePropagation()方法打断原始请求。

最后完整代码如下:

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
if(event.request.url.indexOf('img.ordchaos.com') !== -1) {
var requestUrl = event.request.url;
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}
if (supportsWebp) {
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg'){
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);
event.stopImmediatePropagation();
return;
}
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}
}

你学会了吗?

测试

进入网站,若一切正常,当加载到一张图片时,控制台(F12打开)会提示[SW] Redirect https://your.image.site/path/to/img.png to https://your.image.site/path/to/img.webp .这样的信息。

要测试无webp支持的情景,则点击右上角的三个点。

选择更多工具,找到“渲染”并点击。

勾选“停用webp”即可。

此时,加载图片时会提示[SW] Don't support webp image, skip https://your.image.site/path/to/img.png .

可以试试我这里的这张图片:

若浏览器支持webp则会显示Webp Accept!,否则为Webp Reject!This is a jpg file.

题外话

刚刚放寒假,舒坦。

但与之对应,九上已经结束,还有一学期就中考。。。

加油!我可以的!

那就这样,886!

]]>
+ + + + + 编程 + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 优化 + + + +
+ + + + + 自托管 E-mail ,宝宝喜欢妈妈爱 + + /posts/3b90dbec/ + + 本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进https://qiye.aliyun.com登录。于是趁着黑色星期五RackNerd的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。

配置如下(年付$10.28)

硬件配置
CPU1核
RAM768MB
SSD10GB
流量1TB

还是比较磕碜的,不过价格在这,无所谓了。

经历

首先,我需要为vps开通rDNS记录到mx.ordchaos.com上。后台可以自主设置,很方便…

bang!

好,很好,我沉得住气。发个工单问一下:

工单截图

哦!原来如此!好的,继续交流后,rDNS设置成功,但然而我却发现无法访问?!一番探查之后,发现这样一个事实——被墙啦!

于是只得继续发工单:

终于搞定。

Mailu.io部署

设置主机名

在vps的bash中输入:

1
nano /etc/hosts

在其中具有服务器ip地址的一行中,将后面的内容改为(假设你的域名是example.com,服务器ip是88.88.88.88):

1
88.88.88.88    mx.example.com   mx

编辑好后,在vps中执行:

1
2
echo "mx" > /etc/hostname
hostname -F /etc/hostname

这样就设置好了主机名,可以通过hostname命令确认是否设置成功:

1
2
hostname
hostname -f

前者只会输出mx,后者则会输出mx.example.com。如果不是,那就是设置错了。

设置DNS解析

去你的域名DNS解析服务商,设置以下DNS解析(假设你的域名是example.com,服务器ip是88.88.88.88):

主机名解析类型内容
@A(如果已有解析就不管,没有就解析到127.0.0.1,注意不能有CNAME记录)
mxA88.88.88.88
@MXmx.example.com(优先级为10)
@TXTv=spf1 mx a:mx.example.com ~all
_dmarcTXTv=DMARC1; p=reject; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; adkim=s; aspf=s
example.com._report._dmarcTXTv=DMARC1

然后去vps服务商,设置rDNS(或者叫做PTR)解析,将88.88.88.88解析到mx.example.com

获取配置

访问Mailu.io的配置生成网页:https://setup.mailu.io

写文时最新版本为1.9,保持不变。下方部署方式选择Compose.

  • 1:在此处填写自己的域名

  • 2:自己起个名字(如“序炁的电子邮局”)

  • 3:若你的域名为example.com,则在此处填写https://mx.example.com

  • 4:点击勾选

  • 1:推荐选择rainloop,更加现代好看

  • 2:填写自己vps的ip地址

  • 3:若你的域名为example.com,则在此处填写mx.example.com

最后,你会看到如下界面:

照着界面的指示,回到vps执行指令:

1
2
mkdir /mailu
cd /mailu

然后回到刚刚的页面,下载配置文件:

1
2
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/docker-compose.yml
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/mailu.env

最后执行(假设你的域名是example.com,密码设置为PASSWORD):

1
2
docker-compose -p mailu up -d
docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD

就安装完成了。

配置

在浏览器中访问https://mx.example.com登录您的管理员面板:

管理员面板

使用账号admin@example.com和密码PASSWORD登录即可(假设你的域名是example.com,密码设置为PASSWORD)。

然后点击左侧的“邮件域”:

然后点击如下的按钮:

在新界面中点击“生成密钥”,然后复制dkim配置:

1
dkim._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

进行域名解析即可。

创建账号

邮件域>用户>添加用户,按需配置即可。

使用

退出管理员账号,访问https://mx.example.com/webmail,登录即可(选择“登录Webmail”)。

主页面

测试

MailTester上可以进行测试,如下是我测试结果:

很完美了,对吧(

以前没有超过8过

题外话

完成了很久以前的夙愿。

欢迎跟着做一遍哦!也欢迎提问!

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 电子邮件 + + vps + + + +
+ + + + + 船新说说页面—— Memos 初体验 + + /posts/3386e07f/ + + 博客的说说真的是一波三折…

最开始用的是HexoPlusPlus的说说,很好用也很流畅小巧,但是自Hpp停止开发后就用不了了。

然后改用了bber,也很不错,但是辣鸡腾讯云也是离谱,好好的羊毛突然就不让薅了,同时我的twikoo也被迫迁移到了vercel,只得抛弃。

中途也用过别的说说系统,比如说大名鼎鼎的Artitalk亦或者是iSpeak等等,但是都不太满意,而后因为各式各样的原因放弃。

本来我会一直被这玩意困扰…现在不会了!只因为我发现了它——Memos

开源,私有部署,这不就是我要的完美的说说系统吗?!

后端部署

很简单,首先你要有一台vps,然后装上docker.

随后一句指令即可搞定:

1
docker run -d --name memos -p 5230:5230 -v ${PWD}/.memos/:/var/opt/memos neosmemo/memos:latest

随后Memos就会被部署到5230端口,觉得不方便也可以反向代理,这个教程有很多,这里就不写了。

前端

单页

可以看看我的:说说

样式完全是自己写的…你知道对一位学C++的初三学生而言css是什么东西吗?!好吧随便写写也不算难

js来自immmmm,稍微改了一点点,可以在这里看看被压缩了根本看不了

总体而言,如果你也想要部署一个和我完全一样的页面,可以用以下html代码:(记得下载js文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class='memo-nums'>
<p class='note note-info memo-nums-text'>
共有 <span id='memonums'>「数待载之」</span> 条说说
</p>
</div>
<div id="bber"></div>
<script type="text/javascript">
var bbMemos = {
memos : 'https://memos.ordchaos.top/',//修改为自己部署Memos的网址,末尾有斜杠
limit : '',//默认每次显示10条
creatorId:'1' ,//默认为101用户
domId: '',//默认为bber类
}
</script>
<script src="//jsd.ordchaos.top/marked/marked.min.js"></script>
<script src="/js/talk.js"></script>

注意这里用了Tag插件,如果用不了记得改改。

首页轮播

这个就比较简单了,直接在主题的index.ejs里加上以下代码即可:

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
<p class='note note-info memo-nums-text'>
<i class="iconfont icon-speakernotes"></i><span id="memos-index-space"> </span><span id='memos-t'>首页说说轮播加载中...</span>
</p>
<script src="/js/lately.min.js"></script>
<script>
let jsonUrl =
"https://memos.ordchaos.top/api/memo?creatorId=1&rowStatus=NORMAL" +
"&t=" +
Date.parse(new Date());

fetch(jsonUrl)
.then((res) => res.json())
.then((resdata) => {
data = resdata.data,
resultIndexMemos = new Array(data.length);
for (var i = 0; i < data.length; i++) {
var talkTime = new Date(
data[i].createdTs * 1000
).toLocaleString();
var talkContent = data[i].content;
var newtalkContent = talkContent
.replace(/```([\s\S]*?)```[\s]*/g, " <code>$1</code> ") //全局匹配代码块
.replace(/`([\s\S ]*?)`[\s]*/g, " <code>$1</code> ") //全局匹配内联代码块
.replace(/<iframe([\s\S ]*?)iframe>[\s]*/g, "📺") //全局匹配视频
.replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g, "🌅") //全局匹配图片
.replace(/\[[\s\S]*?\]\([\s\S]*?\)/g, "🔗") //全局匹配连接
.replace(
/\bhttps?:\/\/(?!\S+(?:jpe?g|png|bmp|gif|webp|jfif|gif))\S+/g,
"🔗"
); //全局匹配纯文本连接
if(newtalkContent.length > 25) {
newtalkContent = newtalkContent.substring(0, 25) + '...';
}
resultIndexMemos[i] = `<span class="datetime">${talkTime}</span>: <a href="https://www.ordchaos.com/talk/">${newtalkContent}</a>`;
}
});

// 滚动效果
var i = 0;
setInterval(function () {
document.getElementById("memos-t").innerHTML = resultIndexMemos[i];
window.Lately && Lately.init({ target: ".datetime" });
i++;
if(i == resultIndexMemos.length) i = 0;
}, 3000);
</script>

Tag仍然是不能用就记得改。代码来自eallion,仍然是改了一下原本的逻辑怎么看怎么怪好吧也可能是我没看懂——总而言之,无意冒犯

javascript总算是好些那么一点点,起码与c++还有那么一点像,外加上自己写GDScript的经验,稍稍改点也不算难事改了一小时

效果

自己去看看不行吗,动动手指的事

说说页面

首页轮播

题外话

前前后后搞了半个月了,终于是在学习的闲暇时间整完,中途也是收获良多。

那就这样,886!

]]>
+ + + + + 编程 + + 教程 + + + + + + + javascript + + css + + memos + + html + + 说说 + + 前端 + + + +
+ + + + + Picgo ,我 ...... 我 ...... + + /posts/28b74a2d/ + + 如题,我要被这个神仙软件气死了。

起因

准备装unity写个游戏,学一学C#,然后就发现C盘爆满飘红。用SpaceSniffer看了一下——好家伙!

Picgo的日志文件,占了我58.6GB.

解释

当Picgo上传图片失败时就会开始疯狂写日志,然后文件大小就爆炸。

解决

删掉日志,从组策略里设置一下日志文件大小限制就好了。

可以参考这个:如何在Windows10系统设置日志文件的最大大小

题外话

就离谱!!!

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + Picgo + + + +
+ + + + + + + /posts/fab451a5/ + + 马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。

讲解

按照惯例哪里来的惯例,还是看一下堆是什么东西:

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

  • 堆中某个结点的值总是不大于或不小于其父结点的值;
  • 堆总是一棵完全二叉树。

将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。

——百度百科

很显然,为了储存堆,我们需要一棵完全二叉树。这里很多人就会想到建树,但其实不用。如果你看过我的学习笔记——二叉树的话,应该会记得完全二叉树的性质之一:

在有n个节点的完全二叉树中,对于编号为i的节点:

  • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
  • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
  • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

——序炁 学习笔记——二叉树

所以我们只需要一个数组就可以存储堆了:数组最开始填入根节点,其左右孩子节点便依次为其后面的两个下标,再往后就以此类推。

那么现在建立一个数据结构用来建堆,很简单,参照下列代码:

1
2
3
4
5
6
#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

对于每一个堆都申请一个MAXSIZE大小的数组用于存储,而后用length变量存储目前的总节点数即可。

那么如何初始化就显而易见,只需要

1
2
3
4
inline void init(myHeap &heap) {
heap.length = 0;
return;
}

像这样将length设为0就大功告成。

插入元素

如果要往一个堆里插入元素,那我们就要先确定这个堆是小根堆还是大根堆,下面的所有代码均默认是小根堆,大根堆自己改去自己想想吧。

首先,在堆末尾加入要插入的元素:

1
2
3
4
void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
//...
}

length永远指向数组中最后一个存储了数据的位置的下一个位置,所以在value[length]的位置存储数据,然后增加length即可。

但现在这个堆可能不满足小根堆的性质了,怎么办呢?很简单,进行调整即可。将新节点设为当前节点,如果它大于父节点则结束,若小于则交换,而后将交换后的父节点(没错,还是新插入的数据)设为当前节点,重复这个过程直到其大于父节点或其为根节点则结束。

听着有些复杂,但用while循环即可轻松实现:

1
2
3
4
5
6
7
8
9
void push(myHeap &heap, int v) {
//...
int now = length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

完事!

删除元素

删除元素即出队,会弹出根节点。故而这里的方法是把最后一个节点移到根节点的位置覆盖掉它,再进行调整。

覆盖很简单:

1
2
3
4
void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
//...
}

不要忘记将节点数减一即可。这里用了一个小技巧,本来要写成这样:

1
2
heap.value[0] = heap.value[heap.length - 1];
heap.length--;

竞赛常考之一,++ii++的区别。不要觉得没用,比如用在这里就非常合适。包括前面的

1
heap.value[heap.length++] = v;

也用了这个方法。

好了,言归正传,下一步是调整节点。显然,这一次需要从上往下调整:将根节点设为当前节点,与自己左右孩子中较小的一个比较,若小于则结束,否则与其交换位置并将当前节点设为交换好的孩子节点(一样指向同样的数据),重复这个过程直到当前节点为叶节点或当前节点小于自己任何一个孩子为止。

同样,上代码:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myHeap &heap) {
//...
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

需要额外注意的是对当前节点是否为叶节点以及是否拥有右孩子的判断,避免因失误导致数据溢出。

应用

其实堆的操作也只有插入与删除,不过就是这么简单的东西也可以玩出不同的花样,下面是两个例子。

洛谷 P1090 NOIP2004 提高组 合并果子

原题链接:洛谷 P1090 NOIP2004 提高组 合并果子

题目描述

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为1,2,9. 可以先将1、2堆合并,新堆数目为3,耗费体力为3. 接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力为3+12=15。可以证明15为最小的体力耗费值。

输入格式

共两行。

第一行是一个整数n(1≤n≤10000),表示果子的种类数。

第二行包含n个整数,用空格分隔,第i个整数ai(1≤ai≤20000)是第i种果子的数目。

输出格式

一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231.

输入输出样例

输入

1
2
3
1 2 9

输出

1
15
分析

简单的贪心算法,每次从所有果子中取两堆数量最小的合并,然后放回去即可。

不一定非要用堆,不过如果只是简单的排序的话会超时。不过你同样也可以用优先队列,或者看看洛谷上那些神犇的题解。

我的方法很简单,只需要建堆,然后从堆中取两个最小值(即小根堆堆顶元素)相加再插回去,直到只剩一个元素即可。其中每一次合并时用一个变量累计总体力,最后输出就行了。

代码如下:

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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
int now = heap.length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

inline int get(myHeap heap) {
return heap.value[0];
}

int getPop(myHeap &heap) {
int temp = get(heap);
pop(heap);
return temp;
}

int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
int power = 0;
while(test.length != 1) {
int quick[2] = {getPop(test), getPop(test)};
power += quick[0] + quick[1];
push(test, quick[0] + quick[1]);
}
cout<<power<<endl;
return 0;
}

其中get函数用于返回堆顶元素,不要也可以,毕竟很简单。

对于这一题是可以AC的,没有问题。

堆排序

既然小根堆的堆顶元素永远最小,那么只要每次都取出堆顶元素直到堆为空不就可以排序了吗?没错,这就是堆排序,时间复杂度为O(nlogn),十分优秀。

代码我就不讲了,自己看吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//...
int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
for(int i = 0; i < n; i++) cout<<getPop(test)<<" ";
cout<<endl;
return 0;
}

数据量大的时候可以考虑堆排序,因为堆排序的耗时主要在建堆上,建好堆后的调整实际上非常快。

题外话

终于写完了…写了我整整三小时啊!

明天大概也许会有一篇关于图的,以及一篇关于类的。

886!

]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 在线写作与博文分享—— NetlifyCMS 与 ShareThis + + /posts/8e1b39a3/ + + 没错,任何正常人都不会把标题里这两样东西联系起来,包括我。

NetlifyCMS

最开始看到这玩意是在fluid的官方博客的这一篇博文Hexo Netlify CMS 在线编辑博客(转载的,原文地址在这里),当时就觉得非常不错,但可惜未能按照教程配置成功,只得转投于更贴合于Hexo的HexoPlusPlusHexo艹

直到前几天上个月看到 @Xingyang 在一键推流工具——BlogPusher这一篇文章下的评论

如果静态博客是部署在 Github 上的话可以试试用 Netlify CMS。相当于架设一个能进行 Git Commit 的 Web app,最重要的就是 0 花费,Private Repo 也可以用。我自己的博客也在用(虽然文章数不是很多())

参考文章:https://cnly.github.io/2018/04/14/just-3-steps-adding-netlify-cms-to-existing-github-pages-site-within-10-minutes.html

很好,但是不太符合我的情况。于是随即翻了翻——

瞳 孔 地 震.jpg

完全可用!撒花!

如果你也没有成功配置Netlify CMS的话也可以试试,教程十分甚至九分简单,个人感觉几乎不存在出错的可能性。

感谢Xingyang!顺便他的博文链接:简单搭建一个 GitHub Repo 静态博客的 CMS 后台内容管理系统

ShareThis

最开始捣鼓了一阵子分享系统,share.js啊,Social Share Button啊等等都尝试过一遍,但我都不太满意,况且分享也不是刚需,于是就此作罢。

直到昨天,我妈问我:“你这个博客怎么分享给别人看啊?”

我突然感觉分享还是有必要的,遂继续开始寻觅,然后就发现了ShareThis

注册

非常简单,进入首页:https://sharethis.com

点击“从分享按钮开始”,然后点击第一个选项:

不要急着点击下一步,先用滚轮滚动到页面下方,点击“Customize your Inline Share Buttons”按钮。

在弹出的选项中对按钮进行配置,可以配置包括颜色、媒体、形状等等内容。

最下方的语言记得调整为中文,然后点击下一步,在新页面中注册登录即可。

随后,你会得到两串代码,分别是js安装代码与按钮引入代码。安装代码放在head中,按钮放在你想插入的地方就好。

大概如下:

1
2
<!-- 安装 -->
<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=不告诉你&product=inline-share-buttons' async='async'></script>
1
2
<!-- 按钮插入 -->
<div class="sharethis-inline-share-buttons"></div>

效果

滑到这篇文章底下看吧。

题外话

这篇博文算是对近期我对博客的大改动,但是单独发太短,所以就这么整合在一起了。

那就这样,这篇博文就到这里,886!

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 教程 + + Hexo + + + +
+ + + + + 满十四,进十五。愿我青春无悔,不负韶华 + + /posts/e84bad58/ + + 又大了一岁呢…

令青春无悔,愿韶华不负!

希望明年的此刻,我能够无愧于自己。

]]>
+ + + + + 日常 + + 短文 + + + + + + + 生日 + + 短文 + + + +
+ + + + + 生日当天全款提下第一支(打八折)钟薛糕 + + /posts/7e920bb4/ + + 送给自己的生日礼物

我是大怨种

]]>
+ + + + + 日常 + + 短文 + + + + + + + 生日 + + 短文 + + + +
+ + + + + Phigros 版本迁移——从 Google Play 到 Tap Tap + + /posts/e8587b82/ + + 起因

Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档。

过程

大体参考这一篇文章Phigros存档跨版本转移教程(免root)即可,在这里稍微提一下我遇到的问题

解决问题

在使用abe.jar时,Java报错:

1
Error: A JNI error has occurred, please check your installation and try again

首先在网上查询,找到的第一个方法是删除电脑里共存的JDK,只留下一个,使java -versionjavac -version有相同的版本。

我照做,删除了java8,只留下了openjdk17,但是毫无卵用。

于是我继续查询,发现在跨!系!统!转!移!支持安卓和IOS的跨系统存档转移工具!Phigros 存档 IOS 跨系统 备份 还原 转移 同步这一视频中所提供的工具里的abe.jar可用。

总结

如果你也遇到了一样的问题,可以参考我的方法看看是否有效。

若不想下载整个备份工具而只想要abe.jar的话,可以从这里下载:链接(如有侵权,请联系我删除)

]]>
+ + + + + 教程 + + Phigros + + + + + + + 计算机 + + 编程 + + 教程 + + adb + + 手机 + + phigros + + + +
+ + + + + 【多图预警】 AwtrixPro 开源项目的复现 + + /posts/774674fe/ + + 本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。

材料采购

并不难,跟着官网这个网页一步步在淘宝上找就可以了。就是记得买焊接工具以及足够量的耗材(指Gpio线材、热熔胶、电工胶带等等)以及外壳(可以用官网上的文件3D打印,淘宝上也有直接卖的)。

这里贴出我购买材料的链接,有兴趣的话可以试一试(加粗的为非必需品,没有注明数量默认1个,没有注明平台默认淘宝天猫):

材料链接
Wemos D1 mini主板ESP8266 ESP-12 Wemos D1 Mini 微型WiFi开发板Micro USB 3.3V
32x8 点阵屏幕led柔性全彩像素屏 ws2812b SK6812B点阵rgb屏软屏8x8 8x32 16*16
5V电源供应器(大于3A)5V4A20W插墙式广告机LED灯条平板蓝牙音响直流稳压开关电源适配器
3×1k电阻10支价 进口 10K MRS25000C1002FRP00 0207 0.6W 低噪金属膜电阻
线材若干树莓派gpio拓展40P彩色杜邦线20CM 母对母 公对母 公对公 1排40根,买到了请自己根据需要进行剪裁
2×肖特基二极管(1N1004)(官网上说必须,但我没看出来哪里需要)1N4007 10A10 1N5408 1N5819 1N4001 5822直插整流二极管级IN4007(颜色分类:1N4004 1A/400V整流二极管直插(50个))
1000uF 10V电容直插铝电解电容器元件10/16/25V/35/50v/10uF/47/220/1000/2200uF(颜色分类:10V 1000UF 体积8x12mm(20个))
GL5528光敏电阻立创商城GL5528
DF Mini Player模块开源 Mini MP3 Player 播放器 模块 SD卡 音乐 arduino DFPlayer
Htui21d温湿度传感器GY-213v-HTU21D HDC1080温湿度传感器检测模块/替SHT20 SHT21
外壳+电源插口智能像素时钟Awtrix Pro创客创意彩色B站粉丝数全套外壳WS2812,跟客服商量好了只要外壳与DC电源插口
扬声器(52.5mm×52.5mm)1.5寸40mm喇叭小米小钢炮低音全频3欧4欧3瓦5W音箱嗽叭扬声器配件
3×TTP223触摸传感器触摸按键模块 TTP223 自锁 点动 电容式 开关 单路改造 电容触摸

硬件制作

PCB+针脚焊接

本人未成功通过此方法复现,下列内容不一定完全正确,仅供参考

参考B站UP主三三三三三文啊的视频【AWTRIX PRO】一起动手做一个高颜值的像素灯,在嘉立创打好板子(注意有贴片,需要开钢网),买好GPIO接口公母头再焊接即可。打板流程可以参考【0基础】从零开始电子DIY!第三集:PCB电路板设计和打样!,这一套教程非常不错,推荐。

打好的板子如下:

焊接好之后(贴片是用的钢网+锡焊膏+风枪):

焊接针脚时若是无法直接使用锡丝与电烙铁焊接完成,也可以用锡焊膏+电烙铁。把锡焊膏涂抹在针脚背面,不用担心粘连,然后用电烙铁分别探入每两个针脚间的空隙,随后依次处理每个针脚就可以了。

然后刷程序、接线、通电、启动即可(至少理论上是这样):

很明显,这里并未启动成功,望高手赐教。

手动飞线

根据官网的接线图进行手动飞线即可,这里因为缺少一个电容(C1, 100nF)且不知道哪里有卖的而未接上DFPlayer模块及喇叭。

这里除了基础配件外,额外加装了光敏电阻、触摸以及Htui21d温湿度模块。基础部分依据教你做一个可编程像素屏制作成功,然后通过自主飞线完成了其它组件的安装。

开机成功

没有什么难点,注意需要连接多根导线时用钳子分别剪开线的外皮,露出里面的铜/铁/其他金属丝,拧在一起然后用电烙铁与锡焊在一起就可以了。

裸露的金属丝记得用电工胶带或者热熔胶包裹起来,防止意外:

然后装入外壳即可:

再放上格栅、均光片及亚克力面板就完成了:

安装格栅

安装均光片

安装亚克力面板

软件配置

软件这里就不再多提,官网上就有(点击这里访问)。就是说一下我这里是部署在我自己的服务器上,就无需本地服务器如树莓派一类了。

宝塔面板就可以轻松完成配置,也无需ssh连接。

然后安装自己喜欢的软件即可,我这里是这几个:

成品

室温

湿度

日期

B站粉丝数量(还不关注我?)

Youtube粉丝数(香港服务器的好处之一就是能够获取到这种信息)(没错,我没有粉丝——当然是因为我没发任何视频)

GitHub Followers

题外话

从暑假开始一直做到了倒数第二天…心累,不过总算是完成了,也让我发现了我的电工天赋(bushi

那就这样,这篇报告(?)就完成了,感谢你的观看,886

]]>
+ + + + + 编程 + + 硬件 + + + + + + + 计算机 + + 编程 + + github + + 开源软件 + + awtrix + + 硬件 + + 复现 + + + +
+ + + + + 解决一件困扰我很久的小事 + + /posts/8ad10849/ + + 起因

偶然间看到了这个视频——[Phigros/技术革新] 快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却…

大☆失☆败

手机自始至终没有弹出“完全备份”界面,我百思不得其解,于是在stackoverflow上发了一个问题:

Adb backup does not work on my HarmonyOS 2.0 phone

直到今天之前,没有任何人给出有效回答。

解决

把之前在手机里安装的软件“冰箱”卸载之后就正常了,我也不知道为什么。

从这件事就可以看出我是个…欸,我不说,就是玩

自己去把问题给解答了,这件事就此完结。

题外话

生成都生成了,那就晒一下吧:

小菜一枚,大佬轻喷。

那就这样,886

]]>
+ + + + + 教程 + + Phigros + + + + + + + 计算机 + + 编程 + + 教程 + + adb + + 手机 + + phigros + + 安卓 + + 鸿蒙 + + + +
+ + + + + Hexo 通过 GitHub Action 自动部署到云虚拟主机 + + /posts/1e44a102/ + + 购买了十年之约的优惠价硅云虚拟主机用于加速访问,记录一下部署过程。

前提条件

你需要已经配置好了GitHub Action的Hexo自动部署,若是没有,推荐观看以下文章:

这里就不讲了。

编辑Action

打开(本地博客仓库目录)/.github/workflows/(Action配置文件).yml,在最后添加:

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.0
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

将括号及内部内容换成自己的信息即可。

这里的方法是使用ftp来上传文件到虚拟主机,是对于所有虚拟主机而言最通用的一种方式了。./public是Hexo默认的静态文件生成本地地址,无需更改。

最后推流到GitHub即可使用。

题外话

本来以为挺复杂,结果就这么点。

最开始使用的是hexo-deployer-ftpsync插件,结果却根本无法正常使用,于是便转为使用docker镜像。

对了,如果有兴趣购买硅云的主机,那请帮个小忙,用我的邀请链接注册吧:邀请链接

那就这样,886

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + Hexo + + 虚拟主机 + + 网站 + + GitHub + + 自动化 + + GitHub Action + + + +
+ + + + + 《梁启超传》议论文素材积累 + + /posts/2f728g0f/ + + 之前那一篇一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。

第一章 一世纪以来中国的命运——从鸦片战争至梁氏诞生的前夕

第一节 绪说

梁启超生在中国近代最悲惨的100年(1842-1943)年中,虽屡次想跳海自尽,但仍坚决地相信中国必然不亡且断然复兴,所以他才在全然无望中挣扎奋斗。

作文:坚持、毅力、精神

第二节 梁氏生前中国一般的惨况

  • 《奴才好》中足以令人怒发冲冠的描写在当时黑暗社会的情境下甚至不被人认为是严重的怪象。

  • 慈禧太后奢靡无度,倾尽全国财力为自己所用,掏空了国库,令全中国上下不得安宁。

  • 清末国家机构的腐败,如“外交部”(总理衙门)工作人员甚至无法分清澳门与澳洲。

  • 清末军队素质极差,上下组织腐败,不能防国,只能累民。

  • 清末经济建设几乎毫无成效,只因“官与民争”就扩大为了导致清朝覆灭的致命伤。

作文:珍惜、强国、学习

第三节 梁氏生前中国一般的教育状况

  • 清末满朝士大夫都有一种目中无人的气势,自觉这清朝乃是天下第一。

  • 清末全国几乎没有半个学校的教育,教导孩子不去烟馆、青楼而在家里抽大烟、挑“丫头”都成为了“教子有方”。

  • 清末文人及有志青年深受八股文之害,令八股文成为活埋青年的天坑。

  • 清末人民对“洋”存在极深的偏见,如官办“洋学堂”都十分遭人唾弃,只能拉到一批不三不四的学生。校内不教德育、爱国,而只是学习西方下等人的恶俗。

作文:环境、强国、学习

第四节 梁氏后来对于祖国命运的影响

  • 梁启超在混乱的社会环境成功改革文体,大幅推进国民阅读的程度,收获神州文字革命成功之果。

  • 梁启超在国内外创办大量报纸,让报馆完成了“辅助教育,启发民众,指导社会,介绍新学,宣传主义,主持公论,监督行政,纠弹非法,为民喉舌”的神圣工作,同时收获文体、报纸、政体改革的成功,乃至最后的“国体改革”。

作文:坚持、偶像、伟人

第二章 亡国现象与维新初潮——从梁氏诞生至戊戌政变

第五节 综叙

1873年,梁启超出生。此时近代伟人俱全,又冲破了鸦片战争以来中国所带之枷锁,正是突破了低于底层的黑暗,看见天际的一缕祥光。

作文:努力、坚持、时代

第六节 亡国现象的种种——梁氏生后的中国惨况

  • 梁启超出生之后的中国同样是战争不断,且更偏向于内乱。

  • 此时国际形势大好,西方列强都成为了天之骄子,合力来对付中国一国,令中国无辜受到车裂及凌迟之刑。

  • 日本对中国早有图谋,在其只是一个弹丸之地的效果时就已经企图占据朝鲜与中国,且当时日本名士几乎都有着不一的“吞华论”。

作文:毅力、黑暗、光明、社会、时代

第七节 梁氏幼年的家庭生活及家乡环境

  • 梁启超自幼就受到“光荣”与“悲痛”两大思想刺激,产生了爱国主义思想,因此埋下了其一生命运的种子。

  • 他虽然受逼迫不能追随孙中山革命,但仍具有浓烈的革命思想,也发表了激烈的革命党言论。

作文:爱国、强国、富国、伟人、偶像

第八节 康梁会接

  • 康有为把各种书乱读一通,完全没有遵循求学问的正确轨道,只是自以为恍然大悟,妙不可言。养成了“予智自圣“的夸大狂态度,不肯随时代而进步。

  • 康有为上书不达,但他的热忱与胆气倒真可佩服。在这样的背景下,他只得在广州长兴里万木草堂开门讲学。梁启超受了陈千秋与曹丁泰两位志士的介绍脱离了陈腐过时的学海堂,而转学入这个新鲜自由的长兴学舍,在这样的学风与学科之下受熏陶四年。

作文:智慧、计划、学习

第九节 梁氏独立事业的开始

  • 梁启超脱胎于长兴学社创立新学。在这样一种不拘形式而朝气蓬勃的学风之下,造就出了许多具有新思想人才,当时一般的学生只有四十人,而五分之二都成为了革命先烈或开国名人。

  • 梁启超创学会启发心智,推行维新,学会中政治性质强大。在戊戌八月政变失败之后,所有的学会都秘密含有了革命的使命,与前期的学会性质有根本上的不同。

  • 梁启超为推行维新而创办报纸。此时,他已明白,学校、学会、报纸是三位一体互相为用的,缺一不可。所以,在北京办学会的时候,他就已经开始办报。这是梁启超生平新闻事业开始的第一章,也是近代中国有正式意义的新闻开始的第一页。

作文:智慧、方法、强国

第三章 维新的失败与革命的成功

第十节 促成戊戌变法的原因

  • 外因-远因:清政府的闭关锁国政策、杀沙俄实力的突飞猛进、列强对中国的围攻、洋务运动的失败。

  • 外因-近因:日本民治维新的胜利、甲午战争失败的国耻、中国被蚕食的痛苦、防止陷入土耳其不变法而衰弱的覆辙。

  • 内因-远因:清政府长期积累政治恶习的崩溃、满族战斗能力与战斗意识的降低、太平天国运动后实际政权的转移、以慈禧太后为核心的宫廷政变。

  • 内因-近因:慈禧太后与皇帝权力的争夺、满族嫉妒汉族情感的具象化、孙中山先生领导的革命运动的激进,国内舆论更加倾向于维新。

  • 由于以上这十六点各种各样的原因,到戊戌年间维新运动已成瓜熟蒂落的现象,除了冥顽无耻,卖身求荣的少数败类以外,几乎所有人都是渴望政治改革有如甘霖一般。

作文:强国、因果、历史

第十一节 戊戌政变史剧的绘影

  • 戊戌变法的规模既不如日本明治维新,就连康有为公车上书的内容也还有千里之差。但就算只是这样,对于当时的清政府而言,也已经算是大刀阔斧了,此时正是光绪帝把皇威发扬到顶点的时候。

  • 光绪帝想趁着改革的机会罢免几个守旧的大臣,但这些顽固的大臣转而向“老佛爷”求助,于是慈禧太后勃然大怒,将光绪帝囚禁而自己垂帘听政,在实际上掌握了清政府的权力。

  • 康有为、梁启超等“小人”“大逆”受“可恶透顶”的“洋鬼子”的保护,躲开了慈禧太后的清算。其中,谭嗣同本来由日本严密保护,但却自己重新自动出来,愿抛头颅以改造祖国百年的命运。如此的忠与侠实属罕见,也值得我们敬佩。

作文:强国、历史、光明、黑暗、方法

第十二节 政变失败原因的解析

  • 清政府内部早已腐朽不堪,全国大权都在慈禧太后之手,而满人的猜疑程度又大到难以想象,更是有许多守旧的大臣。变法本就是一个不可能完成的任务。

  • 康有为虽然魄力强大、精神勇猛、感情丰富、毅力坚韧,但他同样心胸不广、态度傲慢、个性执拗、理智不强、做事无序、缺乏科学训练、不求上进、所学太杂而不适用其时代,却反而骄然不惭,自谓贯通天地人。

  • 满人生来仇视汉人,排挤汉人,甚至在百维新期间出现了满洲人所谓闹鬼的趣事。在这样的排挤、压迫、攻击之下,维新救国、变法图强本就是一个荒唐的幻想。

  • 一些守旧分子自满于既得利益而不愿其被损伤分毫,故而极力阻挠变法。

作文:方法、强国、历史、革命、国庆

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 读后感 + + 议论文 + + 素材 + + + +
+ + + + + 免费高速文件分享小技巧 + + /posts/618137f7/ + + 首先提示一下,这会是一篇非常非常短的博文。

介绍

还在为百度网盘那该死的限速而发愁吗?如果你在网络上分享文件,肯定不想因为下载者因为百度网盘的限速而对你破口大骂(不是 对吧。这里推荐一个老牌云盘——蓝奏云,官网在这里

不限速,无限空间(单文件限100M),个人还是感觉非常不错,大文件要传上去也可以分卷压缩。

小技巧

网络上无法访问的蓝奏云文件分享可以试着把二级域名改为lanzoui试试哦。

题外话

没啦,就这么短。

886

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + 福利 + + + +
+ + + + + 无需流量费用!阿里云 oss 图床配合阿里云轻量应用服务器部署 + + /posts/d9bb8734/ + + 我已经有了一台阿里云的香港轻量应用服务器,正好阿里云oss内网下行流量免费,再加上oss上行流量同样免费,于是就可以在省掉所有的流量费用的同时获得一个拥有不错速度的私人图床。

创建

打开阿里云oss页面,点击bucket列表,选择创建bucket:

名称随意,但是地域要选择于自己的服务器相同的地区,这样才可以通过内网访问。存储类型选择标准存储,读写权限选择公共读,其余一律默认。

oss桶默认是按量计费,标准可以参考官方文档。你也可以像我一样购买资源包,点击资源包管理,再在新页面中点击购买资源包:

然后在资源包类型一栏中选择标准(LRS)存储包,其余按需选择即可:

一年仅需9元,个人认为十分划算。

此时存储桶便已创建完成。

服务器反向代理

内网下行流量免费,所以我们要先访问内网,通过服务器反向代理就可以做到这一点。这里通过宝塔面板进行配置。

点击侧栏的网站,然后点击新建站点:

域名填写最终用来访问图片的域名,如这里的 assets.ordchaos.com。其余默认即可,然后选择提交。

之后点击对应网站的设置——反向代理——添加反向代理。名称随意填写,目标URL填写内容如图所示:

填写对应的内网Bucket域名。

然后点击提交即可。也可以配置缓存,在添加反向代理时点击开启缓存并配置时间就可以了。记得在域名供应商那里添加对应的域名解析到服务器上。

之后可以配置SSL证书,在SSL页面自行配置即可。现在你的桶已经可以通过反向代理来访问了,下面我们来做一些额外的工作。

PicGo配置

PicGo作为一个图片上传工具是非常不错的,拓展性很高。同时作为一款开源软件,其发布在了GitHub上。这里默认已经安装完成了PicGo。

安装S3桶插件

打开PicGo,点击“插件设置”,在搜索框中搜索“s3”,安装第一个就可以了:

我这里安装过了,所以就显示的是“已安装”。这个插件支持所有s3桶,包括阿里云oss。其实可以直接配置阿里云oss,但是使用s3插件可以自动按规则重命名文件。

获取配置信息

把鼠标移到右上角头像上悬浮,在出现的界面上点击访问控制:

然后点击侧栏的用户,再点击创建用户:

登陆名称与显示名称随意,然后勾选下方的“Open API 调用访问”:

点击确定,验证身份,然后就会出现AccessKey ID 与 Secret,记得保存下来:

然后返回到用户管理页面,点击刚刚创建的RAM账号旁边的添加权限,然后添加控制oss桶的权限即可:

配置PicGo图床

点击图床设置-AmazonS3,填写对应参数即可,大致如下:

  • 应用密钥ID:上述获取到的AccessKey ID
  • 应用密钥:上述获取到的AccessKey Secret
  • 桶:你创建的oss桶的名字
  • 权限:public-read(桶权限,公共读)
  • 地区:在对应桶的概览页面可以看到桶的外网访问Endpoint,假设是 oss-xxx.aliyuncs.com,则地区为oss-xxx
  • 自定义节点:上述的Endpoint
  • 文件路径:{year}/{month}/{md5}.{extName}(默认上传到桶的文件路径,格式如下:)
格式描述
{year}当前日期 - 年
{month}当前日期 - 月
{day}当前日期 - 日
{fullName}完整文件名(含扩展名)
{fileName}文件名(不含扩展名)
{extName}扩展名(不含.
{md5}图片 MD5 计算值
{sha1}图片 SHA1 计算值
{sha256}图片 SHA256 计算值

然后点击确定并设为默认图床即可。

大功告成!之后只需要在“上传区”页面就可以一键上传图片并复制链接了。

题外话

目前全站图片都已更换为阿里云oss存储,不得不说速度是真的快。

还有这大概是我目前图最多的一篇博文了吧。

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + 福利 + + s3桶 + + + +
+ + + + + 空气成分手抄报 + + /posts/e8ce405d/ + + 化学的暑假作业,浅浅地用sai2摸了一个图出来,大家看看就好。

]]>
+ + + + + 美术 + + 化学 + + + + + + + sai + + 手绘 + + 画画 + + 化学 + + + +
+ + + + + 【不建议】免费 s3 桶——棱束链联盟 + + /posts/46d2370f/ + + 小品牌,无法保证SLA,故不再推荐。本站图片现已全部转移到阿里云oss

我是在B站看到棱束链的宣传视频的,点进官网就看见了棱束链联盟的广告。想着免费嘛,就申请了一下。效率还不错,第二天就通过了。现在博客的图片就放在上面,感觉速度不错,至少比之前的blackbaze+cloudflare要快。

申请

很简单,首先进入官网棱束链,在顶栏上点击产品,选择棱束链联盟。

然后就抵达了申请页面:

填写表单,按要求在网站底部加入棱束链提供的Logo,比如我的:(可以自己在网站底部看看)

提交表单,等着就可以了。

如果申请了就记得看一看自己提供的邮箱,通过了就会发邮件通知你。我的话第二天早上就发现通过了,处理速度还是不错的。给到了我10G的空间与20G的流量,诚意很足。

之后进入控制台,点击对象存储,再创建存储桶就可以使用了。

PicGo配置

PicGo作为一个图片上传工具是非常不错的,拓展性很高。同时作为一款开源软件,其发布在了GitHub上。这里默认已经安装完成了PicGo。

安装S3桶插件

打开PicGo,点击“插件设置”,在搜索框中搜索“s3”,安装第一个就可以了:

我这里安装过了,所以就显示的是“已安装”。这个插件支持所有s3桶,比如之前的b2以及这个棱束链。

获取配置信息

secretID与secretKey

进入棱束链的控制台,点击个人中心,在“功能设置”中开启API并记下secretID与secretKey,若是忘了就只能重新获取。

桶地域信息

前往存储桶列表,点击桶右侧的“配置”按钮,记下“桶信息”卡片中的地域与端点信息即可。

注意,这里的桶一定要是公开桶!

配置PicGo图床

点击图床设置-AmazonS3,填写对应参数即可,大致如下:

  • 应用密钥ID:上述获取到的secretId
  • 应用密钥:上述获取到的 secretKey
  • 桶:上述存储桶的名字
  • 权限:public-read(桶权限,公共读)
  • 地区:上述获取到的地域
  • 自定义节点:上述获取到的端点
  • 文件路径:{year}/{month}/{md5}.{extName}(默认上传到桶的文件路径,格式如下:)
格式描述
{year}当前日期 - 年
{month}当前日期 - 月
{day}当前日期 - 日
{fullName}完整文件名(含扩展名)
{fileName}文件名(不含扩展名)
{extName}扩展名(不含.
{md5}图片 MD5 计算值
{sha1}图片 SHA1 计算值
{sha256}图片 SHA256 计算值

然后点击“设为默认图床”并确定即可,之后只需要在“上传区”页面就可以一键上传图片并复制链接了。

题外话

文章部分参考官方文档

这篇博文不是广告,只是想大家都可以薅一把羊毛并水一篇博文(逃

那就这样,886。

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + 福利 + + s3桶 + + + +
+ + + + + 《梁启超传》读后感 + + /posts/1e617f9e/ + + 在这个暑假中,我读了由梁启超学生吴其昌著作的《梁启超传》,这本书也是作者的绝笔之作。在其去世前的一个月,作者便应邀开始写这一本书,但在他完成书的上卷后便不幸身亡,年仅四十岁,同时留下了这本未完稿的《梁启超传》。这本传记虽然仅有五万字,但是阅读者可以很明显的发现作者吴其昌很完美的继承了其老师梁启超“笔锋常带感情”的特质。作者与梁启超一样,感性的思维较强,喜欢用感性的一面来描述事物,感知事物。

梁启超生于一八七三年二月二十三日,字卓如,号任公。清朝光绪年间举人,是中国近代思想家、政治家、教育家、史学家、文学家,也是戊戌变法(百日维新)领袖之一、中国近代维新派、新法家代表人物。

而梁启超生活的时代,正是中国人明最困苦的一段时期。那既是清朝末年,也是我国封建社会的末世。内忧外患,乱象毕现,用作者的话来说,就是“堕入地狱的底层”。然而最可悲的还不在此,而在于当时道德的堕落、思想的颠倒和民智的固陋,堕入地狱的底层而不自知,“哀莫大于心死”!中国从一八四二年到一九四三年这一百年的命运,是“从乐土跌到地狱,又从地狱爬会乐土”是“一个四千年历史上从未有的大转折期”。生活在这个时代的稍有血性的国民看着一个又一个的不平等条约的建立与实施都想“蹈东海而自杀”,比如陈天华。而梁启超,是一个成长在这个最黑暗的地狱底层的有血有泪有志气的满身创伤的青年。他对于中国复兴有着坚定不移的信心,所以他没有去蹈东海,而是在“全然无望”中拼命奋斗、挣扎。只是他到死都没有见到中国再度统一的一天。他的眼前没有希望,但心中却充满了希望与斗志。他师从康有为,发动戊戌变法,创学会,办报纸,达到了其政治生涯的顶峰。然而,就像梁启超后来所说的那样:“戊戌维新之可贵,在精神耳”,戊戌变法是一次及其不彻底的改革,依靠的是无能的光绪帝,只是雷声大雨点小的实行了一百多天,就被慈禧太后为首的封建顽固势力所扼杀。“我欲望鲁兮,龟山蔽之。手无斧柯,奈龟山何!”但全书就这样戛然而止,原因我们都知道了。可就算如此,读完后却仍然令人愤慨与惋惜。

现在看看梁启超本人与现在的社会,会发现虽然中国早已统一,但是却缺乏了梁启超的奋斗的心。这个社会,比起梁梁启超当年所处的,自然要文明、要繁盛得多,可依然存在着不公与不善。为纠正这些不公,惩治这些不善,依然有可能要付出惨重的代价。在风险面前,很多人却望而却步,勇往直前的人是有的,但是因为现状的安稳,这些人正在慢慢减少。所以梁启超赴汤蹈火救国的精神在任何一个时代都不会落后。

梁启超是清末维新运动的领袖之一,是近代资产阶级改良主义者;也是提倡诗界、小说界革命的新文化传播者。戊戌变法失败后,他逃亡日本,虽曾和孙中山联系商议合作,但因为他的老师师康有为所制止,从而做了保皇党,也就是拥护皇帝的一批人的其中之一。辛亥革命之后,他谋位于军阀之中,将自己的旗帜插在了反动派的阵营之中而反对革命,晚年时尤其犹反对共产党。对于他在政治上的反动观点与反动行为当然是应当制止的,可是他的护国、爱国的精神与为国赴汤蹈火的精神,我们这个时代是需要的,这种精神在这个时代也是缺乏的。

一九二九年一月十九日,梁启超在北京协和医院溘然长逝,享年五十六岁。

附一张(参考意义不大的)思维导图:

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 读后感 + + 议论文 + + + +
+ + + + + 第五种排序—— std::sort() 函数 + + /posts/97a1a73e/ + + 上次讲了四种排序算法(没看过的点这里),但是在实际开发或是竞赛中可能没有足够的时间写出一个够用的排序函数,或是需要排序的并非数字,这时便是我们的大宝贝——std::sort()函数登场的时候了。

用法

需要先引用algorithm库,不过我更倾向于在竞赛时直接使用万能库节省记忆时间。然后,需要使用std命名空间,或是直接调用std::sort()。

sort()函数的原型如下:

1
2
3
4
5
template <class RandomAccessIterator>
void sort(RandomAccessIterator first, RandomAccessIterator last);

template <class RandomAccessIterator, class Compare>
void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);

对,std::sort()是重载函数,其中包含了是否存在comp的两种版本。std::sort()函数默认从小到大按字典顺序对数据进行排序,用法如下:

1
2
3
int arr[10] = {12, 10, 48, 28, 22, 33, 19, 13, 27, 38};
std::sort(arr, arr + 10);
for(int i = 0;i < 10;i++) std::cout<<arr[i]<<" ";

此时std::sort()函数便会将arr[0]到arr[9]共10个元素进行排列并放回arr数组,所以上述程序运行结果如下:

1
10 12 13 19 22 27 28 33 38 48

很容易就可以想到,对吧。

进阶

使用std::sort()对各类普通变量排序

对std::string类型变量排序

前面提到了,std::sort()会对数组使用字典序从小到大排序,所以结果就很容易预想到。

看下列程序:

1
2
3
std::string arr[10] = {"apple", "Apple", "APPLE", "zen", "ordchaos", "OrdChaos", "happy", "x-ray", "xyz", "123aa"};
std::sort(arr, arr + 10);
for(int i = 0;i < 10;i++) std::cout<<arr[i]<<" ";

想一想,结果会如何?

结果:123aa APPLE Apple OrdChaos apple happy ordchaos x-ray xyz zen

怎么样,是不是很简单。这种对std::sort()的使用方式可以做按照字母序排列姓名的题目,但是如果题目要求按长度排序怎么办?别着急,慢慢往下看。

使用comp自定义排序顺序

刚刚说过,std::sort()是一个重载函数,有一个含有comp的变体,那么,comp是什么?用来干什么呢?简单来说,comp就是一个返回值为bool类型的函数,在这个函数里你可以自定义sort排序的顺序。这样说你可能不理解,那就来看看下面这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
bool cmp(int a, int b) {
return a > b;
}

int main() {
int arr[2][10] = {{12, 10, 48, 28, 22, 33, 19, 13, 27, 38},{12, 10, 48, 28, 22, 33, 19, 13, 27, 38}};
std::sort(arr[0], arr[0] + 10);
std::sort(arr[1], arr[1] + 10, cmp);
for(int i = 0;i < 10;i++) std::cout<<arr[0][i]<<" ";
std::cout<<std::endl;
for(int i = 0;i < 10;i++) std::cout<<arr[1][i]<<" ";
return 0;
}

在这里我定义了bool类型函数cmp(),其中若a>b则返回true,否则为false。然后两次调用std::sort(),分别为两个一模一样的数组arr[0]与arr[1]排序,不同的是第二次使用了我们定义的cmp(),那么,结果如何呢?

1
2
10 12 13 19 22 27 28 33 38 48 
48 38 33 28 27 22 19 13 12 10

没错,第二次排序变为了从大到小排序。利用这种方法,我们就可以轻松解决刚刚的问题,像这样:

1
2
3
bool cmp(std::string a, std::string b) {
return a.length() < b.length();
}

把这个函数加入刚刚的程序,再次调用std::sort(),只不过要加入参数cmp。很容易想到结果如下:

(动动脑哦)zen xyz apple Apple APPLE happy x-ray 123aa ordchaos OrdChaos

对std::string类型变量内部进行排序

联想到可以通过类似于str[i]的方式来访问字符串内字符,自认可以写出使用std::sort()排序字符串内字符的方法:

1
2
std::string str = "rhuMJKhwHefJkUIGuw394y49h";
std::sort(str.begin(), str.end());

注意这里必须使用str.begin()与str.end()作为参数而非str与str+str.str.length()。

结果也就是可以料想的,编译运行,程序输出如下:

1
34499GHIJJKMUefhhhkruuwwy

整 整 齐 齐.jpg

利用comp同样可以实现逆序排序,那就请你自己想想怎么写吧!

使用std::sort()对结构体进行排序

设想一个场景,有一个结构体叫做student,其中含有单个学生的姓名和成绩。这时该如何通过学生成绩对学生姓名进行排序呢?这里用std::sort()就会使最快的方法。

先定义结构体:

1
2
3
4
struct student {
string name;
int score;
};

然后写出对应的comp:

1
2
3
bool cmp(student a, student b) {
return a.score > b.score;
}

之后直接调用std::sort()就可以了,合起来代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<bits/stdc++.h>
using namespace std;

struct student {
string name;
int score;
};

bool cmp(student a, student b) {
return a.score > b.score;
}

int main() {
student stu[3] = {(student){"Tony", 98}, (student){"Betty", 97}, (student){"Lucy", 99}};
sort(stu,stu+3,cmp);
for(int i=0;i<3;i++){
cout<<stu[i].name<<endl;
}
return 0;
}

输出可以料想:

1
2
3
Lucy
Tony
Betty

这样做的好处是方便拓展,比如说现在结构体变了,存在四个科目的成绩与学生姓名,要求按平均分排序,从之前的程序上修改会非常容易:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<bits/stdc++.h>
using namespace std;

struct student {
string name;
int chinese;
int math;
int english;
int programming;
};

bool cmp(student a, student b) {
return (a.chinese + a.math + a.english + a.programming)/4 > (b.chinese + b.math + b.english + b.programming)/4;
}

int main() {
student stu[3] = {(student){"Tony", 98, 96, 100, 95}, (student){"Betty", 97, 80, 99, 95}, (student){"Lucy", 99, 96, 90, 100}};
sort(stu,stu+3,cmp);
for(int i=0;i<3;i++){
cout<<stu[i].name<<endl;
}
return 0;
}

这时结果就会变为Tony Lucy Betty的顺序。比起手写排序,这种情景使用std::sort()会方便不少。

做道题吧

洛谷:P1093 NOIP2007 普及组 奖学金

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

1
2
77 279279
55 279279

这两行数据的含义是:总分最高的两个同学的学号依次是7号5号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:

1
2
55 279279
77 279279

则按输出错误处理,不能得分。

输入格式

共n+1行。

第1行为一个正整数n(n≤300),表示该校参加评选的学生人数。

第2到n+1行,每行有3个用空格隔开的数字,每个数字都在0到100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。

所给的数据都是正确的,不必检验。

输出格式

共5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

输入输出样例

输入1
1
2
3
4
5
6
7
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出1
1
2
3
4
5
6 265
4 264
3 258
2 244
1 237
输入2
1
2
3
4
5
6
7
8
9
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出2
1
2
3
4
5
8 265
2 264
6 264
1 258
5 258

分析

这是一道很好的练习结构体的题,核心就是刚刚说的使用std::sort()函数对结构体进行排序,只不过这次的comp会复杂那么一点点。

结构体定义与comp大致如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct student {
int num, chinese, math, english;
};

bool cmp(student a,student b) {
if((a.chinese + a.math + a.english) > (b.chinese + b.math + b.english)) return 1;
else if((a.chinese + a.math + a.english) < (b.chinese + b.math + b.english)) return 0;
else {
if(a.chinese > b.chinese) return 1;
else if(a.chinese < b.chinese) return 0;
else {
if(a.num > b.num) return 0;
else return 1;
}
}
}

剩下的部分就不必多说了吧,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
int main() {
int n;
std::cin>>n;
student stu[n];
for(int i = 0;i < n;i++) {
stu[i].num = i + 1;
std::cin>>stu[i].chinese>>stu[i].math>>stu[i].english;
}
std::sort(stu,stu + n,cmp);
for(int i = 0;i < 5;i++) std::cout<<stu[i].num<<' '<<stu[i].chinese + stu[i].math + stu[i].english<<std::endl;
return 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
32
#include<bits/stdc++.h>
using namespace std;

struct student {
int num, chinese, math, english;
};

bool cmp(student a,student b) {
if((a.chinese + a.math + a.english) > (b.chinese + b.math + b.english)) return 1;
else if((a.chinese + a.math + a.english) < (b.chinese + b.math + b.english)) return 0;
else {
if(a.chinese > b.chinese) return 1;
else if(a.chinese < b.chinese) return 0;
else {
if(a.num > b.num) return 0;
else return 1;
}
}
}

int main() {
int n;
cin>>n;
student stu[n];
for(int i = 0;i < n;i++) {
stu[i].num = i + 1;
cin>>stu[i].chinese>>stu[i].math>>stu[i].english;
}
sort(stu,stu + n,cmp);
for(int i = 0;i < 5;i++) cout<<stu[i].num<<' '<<stu[i].chinese + stu[i].math + stu[i].english<<endl;
return 0;
}

附加内容

std::sort()的平均时间复杂度是O(nlog(n)),原理是在数据量大时采用快速排序进行分段递归排序,而一旦分段后的数据量小于某个门槛,为避免快速排序的递归调用带来过大的额外负荷,就改用直接插入排序(不是插入排序)。如果递归层次过深,还会改用堆排序。

sort的速度够快,但若是追求极致速度且数据量很大,仍建议手写快速排序或归并排序。

题外话

写这篇文章真的累死…

写了足足一个小时啊啊啊啊啊

白里个白(逃

]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 四种排序 + + /posts/6a062b97/ + + 在这里简单的以浅显易懂的方式写一下竞赛中常用的四种通用排序方式。

冒泡排序

大概是所有人第一次学到的排序方式,毕竟它实在是太经典了。

简单介绍一下原理:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

——来自 百度百科 冒泡排序

一言以蔽之,即依次按规律交换相邻元素位置,直至不能交换为止。

知道这一点就好办了,很容易就可以写出程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void bubbleSort(int f, int l) {
bool flag = 1;
while(true) {
for(int i = f;i < l;i++) {
if(a[i] > a[i + 1]) {
swap(a[i], a[i + 1]); //交换
flag = 0;
}
}
if(flag) break; //直至不能交换位置为止
else flag = 1;
}
return;
}

运行一下,成功排序。

选择排序

听名字就知道,这是一种通过“选择”来排序的算法,它通过每次选择未排序元素中的最大/最小值并与最后一个未排序元素交换位置来进行排序。

附一张原理图(来自菜鸟教程):

代码依旧很简单:

1
2
3
4
5
6
7
8
9
10
void selectionSort(int f, int l) {
for(int i = f;i <= l;i++) {
int max = f;
for(int j = f + 1;j <= l - i;j++) {
if(a[j] > a[max]) max = j;
}
swap(a[max], a[l - i]); //难道你不会写swap()?
}
return;
}

(甚至比冒泡都简单)

同样的,正常运行。

快速排序

非常经典的排序算法,也是公认最快的的排序算法。原理是用基准数分割,把大于/小于基准数的数放在基准数左边,其余放在右边,此时右边部分个数据皆小于/大于左边所有数据,然后对左右两边区间分别递归调用即可。

先放上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void quickSort(int f, int l) {
int i = f, j = l, mid = a[(f + l)/2];
do {
while(a[i] < mid) i++;
while(a[j] > mid) j--;
if(i <= j) {
swap(a[i], a[j]);
i++;
j--;
}
} while(i <= j);
if(f < j) quickSort(f, j);
if(l > i) quickSort(i, l);
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
32
void mergeSort(int f, int l) {
if(f == l) return;

int mid = (f + l)/2;
mergeSort(f, mid);
mergeSort(mid + 1, l);

int i = f, j = mid + 1, k = 0, r[l - f + 1];
while(i <= mid && j <= l) {
if(a[i] <= a[j]) {
r[k] = a[i];
i++;
k++;
} else {
r[k] = a[j];
j++;
k++;
}
}
while(i <= mid) {
r[k] = a[i];
i++;
k++;
}
while(j <= l) {
r[k] = a[j];
j++;
k++;
}
for(int p = f;p <= l;p++) a[p] = r[p - f];
return;
}

二路归并排序的原理是先以中间数为基准分割出两个子序列然后分别进行归并排序,然后对有序表进行合并,相信看代码也可以看出来。最后将临时数组的值赋给待排序数组就结束。

效率测试

时间复杂度

算法的时间复杂度是一个函数,它定性描述该算法的运行时间,常用大O来表述。若用函数f(n)描述算法执行所要时间的增长速度,用函数T(n)表示算法需要执行的运算次数存在常数c和函数f(n),使得当n>=c时T(n)<=f(n),记作T(n)=O(f(n)),其中n代表数据规模。显然,n越小,算法运行的越快。

常见时间复杂度等级如下表:

分类写作
常量阶O(1)
对数阶O(log(n))
线性阶O(n)
线性对数阶O(nlog(n))
n方阶O(nn)
指数阶O(2n)
阶乘阶O(n!)

以及常用算法的时间复杂度如下表:

算法平均时间复杂度最好情况最坏情况
冒泡排序O(n2)O(n)O(n2)
选择排序O(n2)O(n2)O(n2)
插入排序O(n2)O(n)O(n2)
希尔排序O(nlog2(n))O(n2)O(nlog2(n))
归并排序O(nlog(n))O(nlog(n))O(nlog(n))
快速排序O(nlog(n))O(nlog(n))O(n2)
堆排序O(nlog(n))O(nlog(n))O(nlog(n))
计数排序O(n+k)O(n+k)O(n+k)
桶排序O(n+k)O(n+k)O(n2)
基数排序O(n×k)O(n×k)O(n×k)

测时

除了时间复杂度,还有一种方式可以测试算法效率——对于相同的数据,直接测试算法排序用时并比较即可。使用ctime头文件中的clock()函数即可获取时间,运行前后的时间差即为运行用时。

于是有代码如下:

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
int main() {
int n;
cin>>n;

default_random_engine e;
uniform_int_distribution<int> u(0,1000000);
e.seed(time(0));

for(int i = 0;i < n;i++) {
b[i] = u(e);
}
clock_t begin, end;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
selectionSort(0, n - 1);
end = clock();
cout<<"selectionSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
bubbleSort(0, n - 1);
end = clock();
cout<<"bubbleSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
mergeSort(0, n - 1);
end = clock();
cout<<"mergeSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
quickSort(0, n - 1);
end = clock();
cout<<"qsort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

return 0;
}

额外使用了random头文件中的函数用来生成在0到1000000间的随机数用于测试(我懒得写用法了,建议出门左拐Google),运行结果(可能)如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
(input 100000)

selectionSort end
time: 2536ms

bubbleSort end
time: 14222ms

mergeSort end
time: 8ms

quickSort end
time: 6ms

简单易懂,对吧。

题外话

又水了一篇文(不是。

还是很开心的,因为以前都没有成功完成过归并排序与快速排序,这次写出来自我感觉非常好。

那就这样,886.

]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 一名初中生的 GitHub 学生包申请之路 + + /posts/f0f71147/ + + 现在上百度搜索“github学生包申请”,结果要么只适用于大学生,要么就是通过各种国外社区大学的录取通知书来白嫖这不欺骗别人大学感情吗。而作为一名初中生,显然这两种方法都不太适合:前者需要大学学籍,后者…后患无穷且麻烦,成功率也不高。这里我就分享一下我与GitHub学生包的经历以及我的申请经验,帮助更多像我一样被同样问题困扰的人。

我与GitHub学生包

小时候没有零花钱,但又想建站,于是整天在Google、百度、Youtube等等地方搜索“免费域名”、“免费空间”…一类内容。终于,让我发现了GitHub学生包这个东西。然并卵,它有年龄限制(13岁以上),这让当时11岁的我感到弱小可怜又无助。然后我就在Youtube上看到了这个:

哇你知道这对我的内心造成了多大的震撼吗?我立马跟着操作了一番,但是却是在最关键也是最重要的一步上卡住了——人家GitHub没有过我的申请。

后来在别的地方看见了freedom的免费域名与忘记是什么地方的免费空间,用wordpress简单做了一个博客懒得写博文,结果到头来一篇文章也没有,这件事也就告一段落。

去年年中突然想起来这一茬,想到那一年我就13岁了,年龄限制已经跨越,我这正经学生身份还不得通过的手到擒来?然后我就上传了自己绝对真实的申请所需的一切信息,然后…又没有过。其实也不是没有过,单纯是审核了两周还一直状态显示pending,我一怒之下就撤销了申请而已自己不是说最多两周吗,于是这件事就又被放下。

再然后又到了今年年初,又想起GitHub学生包来。我一想到我一个学生申请不到学生包就来气,于是又申请了一次。与上一次不同,上一次的材料我交的是期末成绩单,这一次是学校发的奖状。说实话,对用奖状申请这回事我是很不抱希望的,但又没想到在三天后我打开电脑例行检查进度时…

一个绿底白字的Approved就这么糊到了我的脸上。哇我真的,你能理解吗就是那种,无法言表的欣喜,那种恨不得让全世界的人都知道你干成了什么的自豪感,就是这种感觉充满了我当时的脑海。没有别的原因,就是太高兴了。

附一张当时我的聊天记录:

然后自然是各种折腾、体验、白嫖,这些就不在这篇文章的讨论范围之内了。

我的申请经验

第一,千万不要挂梯子,尽量直连GitHub。GitHub会通过地理位置校验你是否可能真正在你所填写的学校就读,所以同样如果浏览器提示你开启地理位置就点同意。

第二,邮箱用自己的也可以,不限定教育邮箱。但是证明你学生身份的材料一定要详细真实,另外可以在How do you plan to use GitHub?(你怎么计划去使用GitHub)中附上材料的英文翻译。

第三,How do you plan to use GitHub?一定要认真填写,不要在网上随便找然后就直接粘贴上去。有能力的就直接用英语写,否则用有道翻译也行。

第四,学校信息越详细越好这不废话,有官网的记得把官网填上当然要是GitHub数据库里有你的学校直接选择就完了

第五,记得每天看一下申请进度,没准它就会给你一个惊喜。

题外话

相信细心的各位也发现了,申请是在三月就过了的,为什么现在才发博文呢?

答案嘛…因为懒(逃

最后就以一张我现在GitHub上Profile的截图来收尾吧!

]]>
+ + + + + 教程 + + + + + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + 福利 + + github + + 学生 + + + +
+ + + + + 一键推流工具—— BlogPusher + + /posts/10824f12/ + + 近来无事,想着博客推流时的指令有好几条,于是决定写一个小工具简化这个流程这甚至是我第一个实用性的程序

在此之前

我的博客配置好后每次从本地推送源码的指令有四条:

1
2
3
4
git pull origin master
git add .
git commit -m"xxxxxx"
git push origin master

这四条指令都在本地执行,所以每次推流都需要依次输入,而这显然是不方便的,于是我就想写一个能够自动执行这四条指令的工具。

程序设计

很简单,我们可以使用system()函数,其原型如下:

1
int system(const char *command);

给函数传入字符串型的命令行参数就可以在程序中执行命令,于是很容易想到执行这三条命令的代码:

1
2
3
4
system("git pull origin master");
system("git add .");
//怎么样获取需要的commit呢?
system("git push origin master");

这样除了commit提交外,其他的指令都可以自动执行。但这肯定是不完善且不可用的,因为commit的提交信息需要在git addgit push之间确定而不能在git push之后。

于是我们需要在程序中获取commit信息,这样就可以在git add之后自动执行commit提交指令。很容易我们就可以想到一种方法:

1
2
3
4
string commit;
getline(cin, commit);
string commitInput = "git commit -m\"" + commit + "\"";
system(commitInput.c_str());

但我认为这样还不够简洁,我们需要的是一行可以直接推流的指令而不是一个需要用户输入的软件,所以我们需要另一种方式——获取命令行。

获取命令行

一般的c++程序中,我们的main函数都是这样定义的:

1
2
3
int main(void) {
//...
}

但为了获取命令行参数,我们就需要像这样定义:

1
2
3
int main(int argc, char **argv) {
//...
}

其中,argc是命令行参数的个数,argv则是一个指针数组,每个指针指向一个字符串,每个字符串是一个命令行参数。当我们执行一个可执行文件时,若是只在命令提示符中输入可执行文件的文件名,像这样:

1
BlogPusher

那么argc的值就是1,而argv[0]的值就是BlogPusher,而若是在命令提示符中输入可执行文件的文件名和参数,像这样:

1
BlogPusher Update About

此时argc的值就是3,argv[0]的值仍是BlogPusher,但后面argv[1]的值则会是Update,argv[2]的值是About。

所以,我们就可以这样获取到我们需要的commit信息了。

Commit信息处理

光是获取还不够,现在我们需要处理我们获取到的参数。在刚刚的例子中,我们可以看到argv数组的分割是以空格为基础的,但commit中可以包含空格,这就使得直接使用argv[1]是不可行的。

所以,我们需要一种方法来处理commit信息,使其可以正确包含空格。其实很简单,只需要加入一个循环,每次循环获取一个字符串并把它放入字符串commit中,在每一个字符串之间加入空格即可。

1
2
3
4
5
6
7
8
string commit;
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}

加了一个判断,使得程序不会给commit信息加入多余的空格。现在,commit信息就可以正确的包含空格了。

总结

所有程序合在一起差不多是这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;

int main(int argc, char** argv){
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}
string commitInput = "git commit -m\"" + commit + "\"";
system("git pull origin master");
system("git add .");
cout<<"git add success"<<endl;
system(commitInput.c_str());
system("git push origin master");
return 0;
}

编译,放入博客源码文件夹下。注意此时不要忘记在.gitignore中添加一行blogpusher.*,防止git上传时上传blogpusher文件。

在命令提示符中输入blogpusher Update .gitignore,测试一下,非常完美!

最后优化一下,差不多像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;

int main(int argc, char** argv){
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}
string commitInput = "git commit -m\"" + commit + "\"";
cout<<"==========BEGIN PULL=========="<<endl;
system("git pull origin master");
cout<<"==========BEGIN ADD=========="<<endl;
system("git add .");
cout<<"git add success"<<endl;
cout<<"==========BEGIN COMMIT=========="<<endl;
system(commitInput.c_str());
cout<<"==========BEGIN PUSH=========="<<endl;
system("git push origin master");
return 0;
}

大功告成!

题外话

这个东西很早就想做了的说…现在做出来了还是十分欣慰。

程序已经开源到了github,欢迎查看。若是帮到了您的话,麻烦点个star,谢谢。

]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + github + + 开源软件 + + + +
+ + + + + 学习笔记——二叉树 + + /posts/340b325e/ + + 二叉树binary tree,BT

介绍

  • 一种特殊的树形结构,是度数为2的树。即二叉树的每个节点最多具有两个子节点,每个节点的字节点分别称为左孩子、右孩子,子树则为左子树,右子树。
  • 二叉树可以为空且一定有序。
  • 在二叉树的第i层上至多有2i个节点(i>=0)。
  • 深度为m的二叉树上至多有12m+112=2m+11\frac{1-2^{m+1}}{1-2}=2^{m+1}-1个节点(m>=0),一棵深度为m且有2m+112^{m+1}-1个节点的二叉树被称为满二叉树。
  • 每一个节点都与深度为m的满二叉树中编号为1~n的节点一一对应的深度为m,有n个节点的二叉树被称为完全二叉树。
  • 对于任意一棵二叉树,若其有n0个叶节点,n2个度为2的节点,则一定有n0=n2+1。
  • 具有n个节点的完全二叉树的深度是floor(log2n)floor\left( \log _2n \right)
  • 在有n个节点的完全二叉树中,对于编号为i的节点:
    • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
    • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
    • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

如下图即二叉树示意图:

存储结构

单链表结构
1
2
3
4
5
6
7
struct node {
int data; //数据域
node* lc, rc; //分别指向左孩子于右孩子
};
struct bt {
node* root;
}t;

与树一样,其实就是孩子表示法。

双链表结构
1
2
3
4
5
6
7
8
struct node {
int data; //数据域
node* lc, rc; //分别指向左孩子于右孩子
node* father; //指向父节点
};
struct bt {
node* root;
}t;

同理,其实就是父亲孩子表示法。

遍历

  • 先序遍历(输出->左孩子->右孩子)
  • 中序遍历(左孩子->输出->右孩子)
  • 后序遍历(左孩子->右孩子->输出)

普通树转二叉树

  1. 对于每一个节点,去除除最左边的树枝之外的所有树枝。
  2. 从最左边的节点开始,依次次将同层的每个兄弟节点横向相连。
  3. 以根节点为中心,将图形顺时针旋转约45°。

如下图所示:

树的计数

具有n(n>=1且n为整数)个节点的二叉树的种类的数量可以用下方的函数来表示:

f(n)={i=0n1f(i)f(ni1)(n>1)1(0n1)f\left( n \right) =\begin{cases}\sum_{i=0}^{n-1}{f\left( i \right) \cdot f\left( n-i-1 \right)}&\left( n>1 \right)\\1&\left( 0\leqslant n\leqslant 1 \right)\\\end{cases}

题外话

这是第二篇学习笔记,上一篇可以点击这里查看。

]]>
+ + + + + 编程 + + 数学 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 学习笔记——树 + + /posts/d4140423/ + + 树tree

介绍

  • 由n(n>0)个元素组成的有限结合,是一种非线性的有序结构。
  • 每一个其中的元素都被称为结点,除根节点外,其余节点组成的子集称为子树。
  • 一棵树由根节点与结点组成,除根节点外每个节点都有前驱结点。一棵树至少有一个节点,此时,该节点即为根节点。换而言之,每棵树有且仅有一个根节点。在一个m层k叉数中最多有1km+11k\frac{1-k^{m+1}}{1-k}个节点(k>=1, m>=0)。
  • 树是递归定义的,即在一棵子树中,其根节点同样在树中作为结点。
  • 一个节点的子树个数称为这个节点的度(degree)。度为零的节点称为叶节点(leaf),不为零的节点称为分支节点(包括根节点),根以外的分支节点被称为内部节点。一棵树中度最大的节点的度被称为这棵树的度。
  • 树状结构的图形中,连接两个相关联的结点的线段称位树枝。上端节点为下端节点的父节点,相对应的下端节点为上端节点的子节点,同一个父节点的所有子节点互为兄弟结点。从根节点出发到某个子节点所经过的所有节点均为该子节点的祖先,同理,此此节点为其所有祖先的子孙。
  • 一棵树中根节点的层次(level)为0,其余的节点的层次为其父节点的层次加1。与度一样,树中层次最大的节点的层级被称为树的深度(depth)。
  • 在树中,从一个节点出发,自上而下的沿着节点与树枝可以到达另一节点,则称它们间存在一条路径(所以显而易见不同子树上的节点间不存在路径)。用路径上的节点个数减一(即树枝个数,或是用层级较大的节点的层数减去较小的节点的层数)表示路径长度。
  • 互不相交的数的集合称为森林,即森林是m棵互不相交的树的集合。

如下图即为一颗经典的树:

存储结构

父亲表示法
1
2
3
4
#define MAX_LENGTH 10 //最大节点数
struct node { //定义节点
int data, father; //作用域与指针域
}tree[MAX_LENGTH]; //定义树

这种方法容易找到树根,但是找孩子就需要遍历整个线性表,即时间换空间

孩子表示法
1
2
3
4
5
6
7
8
#define MAX_DEGREE 10 //最大度数
struct node {
int data; //数据域
node* children[MAX_DEGREE]; //指向若干个子节点的指针域
};
struct tree {
node* root;
}t;

这种方法不可以从子节点返回父节点

父亲孩子表示法
1
2
3
4
5
6
7
8
#define MAX_DEGREE 10 //最大度数
struct node {
int data; //数据域
node* children[MAX_DEGREE], father; //指向若干个子节点的指针域
};
struct tree {
node* root;
}t;

是孩子表示法的优化版,可以直接访问任意子节点的父节点,是一种空间换时间的方法

孩子兄弟表示法
1
2
3
4
5
6
7
struct node {
int data; //数据域
node* firstChild, next; //分别指向第一个子节点与下一个兄弟节点
};
struct tree {
node* root;
}t;
总结

这些方法没有好坏之分,应当视情况选用

遍历

  • 先序遍历(深度优先搜索dfs,从左至右先输出再搜索)
  • 后序遍历(深度优先搜索dfs,从左至右先搜索到叶节点再依次输出并回溯)
  • 层次遍历(广度优先搜索bfs,按层次从左至右搜索,搜索完一层后搜索下一层)
  • 叶节点遍历(按先序遍历的方法遍历,但只访问叶节点)

题外话

这玩意是放暑假前在学校无聊看《信息学奥赛一本通》写的,大概还是有参考价值的吧。

另外还有一篇二叉树的,大概也会发上来。

]]>
+ + + + + 编程 + + 数学 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + About Choir + + /posts/79cc3297/ + + Hello everybody! I’m 我的姓名, and you can also call me by my English name OrderChaos / OrdChaos. Today, I want to tell you something about chorus there. Yes, I know you may hate the chorus class in the noon, but please don’t hate the chorus itself.

Chorus refers to the art category of collective singing of multi-voice vocal works. It requires a high degree of unity of single voice and harmony of melody between voices. It is one of the most popular and widely participated forms of music performance. As the expressive tool of chorus art, the human voice has its unique advantages, which can most directly express the thoughts and emotions in the musical works and stimulate the emotional resonance of the audience.

There are many types of chorus. In terms of voice and timbre, it is divided into two types: unison and chorus. Singing in unison refers to a chorus form in which all chorus members sing the same tune together regardless of their voices. It is often used in mass singing activities and can also be used in some fragments of chorus. Chorus refers to the superposition or contrast of two or more different parts of the chorus. It is one of the most typical forms of chorus. And from the accompaniment form, it is divided into two forms: a cappella and accompaniment. “A cappella” means to sung without instrumental accompaniment. It is a purely vocal art form. For example, the song 半个月亮爬上来 we have learned is an a cappella song. In contrast, accompaniment chorus is a form of chorus with accompaniment. Whether it is harmony, mode, dynamics, speed, or style, mood, and performance, they must be unified into the overall work as required.

Most of the choral songs are sung by the choir. A choir usually has a conductor with others who sing songs. Don’t think that the conductors just need to wave their hands, in fact they should do the things that much more complicated than this. For example, the free extension mark and the fade out mark in the score need to be controlled by the overall situation by the conductor, otherwise the song will become very discordant. Songs with weak or strong rhythm also need conductor to beat the rhythm, songs with different emphasis and emphasis also need to be reminded by the conductor. The coordination of multiple voices is also very important, a little attention will be taken out of tune, so everyone should use their own free time to practice – not make up the number.

Having said so much, I should also play a chorus song to listen to it, right? Let’s listen to 启程 sung by the Globe Jinshengyuzhen Choir (金声玉振合唱团). This is a new song learned this term - why do I know? Because I am a member of it.

(Play the music at this time)

(Say this while playing the intro) By the way, this was originally one of the most popular graduation songs for Japanese middle school students called 旅立ちの日に(Roman: Tabidachinohini), which was widely circulated in Japan. And Globe Jinshengyuzhen Choir have sung its Chinese version.

(Intro will be end at this time)

(While the song play finished, wait)

This song has not been officially announced yet. If you want to listen to the full version, please pay attention to the school’s WeChat public account.

OK! That’s all of my speech. Thank you for your to the full version, please pay . And now, I have a very easy question to ask you: Which country is the song 启程 come from?

(Answer: Japan | Say: Gerat! Thank you for your answer!) OK, that’s really all, thank you again!

]]>
+ + + + + 英语 + + 音乐 + + + + + + + 演讲稿 + + 纯英文 + + English + + 合唱 + + 音乐 + + + +
+ + + + + C++ 链表实现队列 + + /posts/6270475f/ + + 之前介绍了数组队列的实现方法,若是没有看过建议去看看,这次来介绍如何用链表实现队列。

概念引入

首先让我们了解一下什么是链表:

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
——百度百科 链表

所以,首先我们需要定义一个链表出来。

结构搭建

其实基本一样,不过这次要定义两个结构,一个是节点,一个是队列本身:

1
2
3
4
5
6
7
8
9
struct node {
int v;
node * next;
};

struct myqueue {
node * first;
node * last;
};

对于每一个节点,我们需要它储存一个数据与其下一个节点的地址,分别储存在int型变量v与node型指针next中。

而后对于每一个队列或者是链表,我们需要储存其第一个与最后一个节点的地址,分别放在first与last中。

结构体定义完后,同样的初始化:

1
2
3
4
void init(myqueue *t) {
t->first = t->last = NULL;
return;
}

这里让队列的首项与尾项同时为NULL,完成初始化

之后是数据操作的isempty函数,先行判断队列是否为空:

1
2
3
4
bool isempty(myqueue *t) {
if(t->last == NULL && t->first == NULL) return 1;
else return 0;
}

原理很简单,如果队列的尾项与首项都为NULL,则显然此队列为空。

之后是push函数,将一个数据推入队列的最后:

1
2
3
4
5
6
7
8
9
10
void push(myqueue *t, int s) {
node * temp = new node;
if(isempty(t)) t->first = t->last = temp;
else {
t->last->next = temp;
t->last = t->last->next;
}
temp->v = s;
return;
}

创建一个空节点,如果队列为空,则作为首项与尾项,否则作为尾项的下一项,然后给其赋值即可。

第二个是pop函数,删除队列首项,注意先判断队列是否为空:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myqueue *t) {
if(isempty(t)) return;
if(t->first == t->last) {
free(t->first);
init(t);
} else {
node * temp = t->first;
t->first = t->first->next;
free(temp);
}
return;
}

若pop完队列为空则调用init函数重新化为空队列,否则将首项改为首项的下一项,但记住无论如何都要调用free函数释放原先首项的空间,节省内存。

再就是获取队列的首项、尾项、第n项以及长度,代码相对简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int getf(myqueue *t) {
if(!isempty(t)) return t->first->v;
else return 0;
}

int getl(myqueue *t) {
if(!isempty(t)) return t->last->v;
else return 0;
}

int getlength(myqueue *t) {
if(isempty(t)) return 0;
int length;
node * temp = t->first;
for(length = 1;;length++) {
if(temp == t->last) break;
temp = temp->next;
}
return length;
}

特别注意若队列为空,则不应当返回队列所谓的首项与尾项。

对于长度的获取,只需要遍历整个队列,直到搜索到队列尾项再输出长度即可。

解决问题

与之前的问题是一样的,搭建的框架也很相似,故而解答同样基本一致。

问题背景

有n(n <= 100)个小朋友排队打针,他们每个人都有依次自己的编号为1, 2, 3, 4, …, n。他们都很害怕打针,所以当排在自己前面的小朋友打针时就会跑走到队伍最后。试设计一程序,输入小朋友数量,输出他们打针的顺序。

样例输入:5
样例输出:1 3 5 4 2

问题分析

略,可以参考之前的文章

注意这一次是使用指针来访问队列的,故而此次的程序与上次有略微区别。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main() {
myqueue test;
init(&test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(&test, i); //编号依次入队
for(int i = 1;!isempty(&test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(&test);
pop(&test);
push(&test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(&test)<<" ";
pop(&test);
}
}
return 0;
}

queue类型

这里对于队列的编写其实还是为了学习与方便理解,事实上可以方便的在引用了头文件queue后直接定义队列,更加方便,竞赛或开发时也更加节省时间。

使用格式如下:

1
2
3
4
5
6
7
8
#include <queue> //引用头文件,若使用万能库可忽略
queue<int> Q; //定义一个int型队列,名称为Q,当然也可以是别的类型与别的名称
Q.empty(); //返回队列Q是否为空
Q.size(); //返回队列Q长度
Q.front(); //返回队列Q的第一个元素
Q.back(); //返回队列Q的最后一个元素
Q.push(); //在队列Q后面插入一个元素, 比如插入数字5: Q.push(5)
Q.pop(); //从队列Q里移出第一个元素

下面给出使用queue队列的同样问题的解答,请读者自行参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
queue<int> test;
int n;
cin>>n;
for(int i = 1;i <=n;i++) test.push(i);
for(int i = 1;!test.empty();i++) {
if(i%2 == 0) {
int temp = test.front();
test.pop();
test.push(temp);
}
else {
cout<<test.front()<<" ";
test.pop();
}
}
return 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
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
#include<bits/stdc++.h>
using namespace std;

struct node {
int v;
node * next;
};

struct myqueue {
node * first;
node * last;
};

void init(myqueue *t) {
t->first = t->last = NULL;
return;
}

bool isempty(myqueue *t) {
if(t->last == NULL && t->first == NULL) return 1;
else return 0;
}

void push(myqueue *t, int s) {
node * temp = new node;
if(isempty(t)) t->first = t->last = temp;
else {
t->last->next = temp;
t->last = t->last->next;
}
temp->v = s;
return;
}

void pop(myqueue *t) {
if(isempty(t)) return;
if(t->first == t->last) {
free(t->first);
init(t);
} else {
node * temp = t->first;
t->first = t->first->next;
free(temp);
}
return;
}

int getf(myqueue *t) {
if(!isempty(t)) return t->first->v;
else return 0;
}

int getl(myqueue *t) {
if(!isempty(t)) return t->last->v;
else return 0;
}

int getlength(myqueue *t) {
if(isempty(t)) return 0;
int length;
node * temp = t->first;
for(length = 1;;length++) {
if(temp == t->last) break;
temp = temp->next;
}
return length;
}

int main() {
myqueue test;
init(&test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(&test, i); //编号依次入队
for(int i = 1;!isempty(&test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(&test);
pop(&test);
push(&test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(&test)<<" ";
pop(&test);
}
}
return 0;
}

/* 使用queue队列的版本
int main() {
queue<int> test;
int n;
cin>>n;
for(int i = 1;i <=n;i++) test.push(i);
for(int i = 1;!test.empty();i++) {
if(i%2 == 0) {
int temp = test.front();
test.pop();
test.push(temp);
}
else {
cout<<test.front()<<" ";
test.pop();
}
}
return 0;
}
*/
]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 适合自己的路 + + /posts/ab8676cc/ + + 看到他人的东西,觉得好自己买来,却并非如想象一般;看到他人制定了良好的学习计划,照搬过来,自己却完全无法实施;看到他人读了书,受益颇多,自己却无法读懂……这样的事件可能不常有,但总会在生活中不时发生。所以也就告诉了我们,适合他人的不一定适合自己。

我曾为提升自己而参考了他人的计划表准备施行于自己的日常生活之中,但不到三天便就放弃。无论是其中的两小时阅读时间,半小时健身亦或是额外的课外学习都远非我的课余时间可以容纳。计划不仅没有起到提升自己的作用,且打乱了我本稳定的作息,使我在那几天中萎靡不振,自然可以看出照搬他人经验是如此无用。“长者不为有余,短者不为不足”,长与短各有价值,没有高低贵贱之分,适合自己的远比他人的、华丽的、不切实际的好得多。自己的目标,自己的计划,也总是比他人的更贴合自己的要求。

鲁迅弃医从文,向全世界证明笔比手术刀更尖锐,最终成为世人铭记的文学大师;李白离开黑暗官场,漂泊天涯。一句“安能摧眉折腰事权贵,叫我不得开心颜。”让他领悟了人生的真谛;奥托-瓦拉赫放弃父母所选的文学,油画,而投身于化学,成为享誉全球的化学巨头……他们的人生都因为选择了自己的路而变得独特。若是没有选择适合自己的目标,他们也不会有如此的成就。

“尺有所短,寸有所长。”我们也要找到自己擅长的方面,发扬自己的长处,令自身拥有几个闪光点,不应见到他人便现慕他人的优点,因为自己也定有些地方远非他可以企及。世上的事业千千万万,只有适合自己的才是最好的。人无完人,故而所有人都需要认清自己的强项和弱势,看清自己,找准位置,均衡发展,从而更好的立足于社会之中。

“凫胫虽短,续之则忧,鹤胫虽长,断之则悲。”唯有找到自身定位,确定自我目标,制定自己的计划并为之付出汗水;践行思齐,见不贤而内自省,不断完善与提高自己;善假于物,发展自身特长,才能走上适合自己的路,取得令自身真正为之骄傲的成就。自己的人生需要自己演绎,自己的生活该有自己的选择。选择最适合自己的,才能活出自己的样子,活出自己的精彩。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 议论文 + + + +
+ + + + + 三角形覆盖正方形的研究 + + /posts/4996fe6c/ + + 命题

如图1.0.1,等腰三角形GCD与正方形ABCD共边CD;CG、DG分别交AB于点E、点F. 则问不断增加等腰三角形GCD的高,能否使等腰三角形GCD完全覆盖住正方形ABCD?

证明/证伪

设正方形边长为a,三角形GCD的高为x,四边形EFCD的面积为y

方法一

ABCD是正方形A=B=90°ABAC于点ABD于点BAB//CDAECBFD都是直角三角形,其中A=B=90°,且GCDGEF三角形GEF的高是(xa),三角形GCD的高是xEF:CD=(xa):xEF=CDxax=a(xa)x=axa2x=aa2xAE=BF=12(ABEF)=12[a(aa2x)]=a22xtanBDF=tanACE=AEAC=BFBD=a22xaGCD完全覆盖正方形ABCD时,有GDC=GCD90°GDC=GCD=90°时,tanBDF=tan(90°GDC)=tanACE=tan(90°GCD)=tan0°=0AEAC=BFBD=a22xa=0a22x=0a2=0a=0此时原式不成立,所以等腰GCD不能完全覆盖住正方形ABCDGDC=GCD>90°时,GDC+GCD>180°三角形内角和为180°此时GCD不是三角形,不符合题设,所以等腰GCD不能完全覆盖住正方形ABCD综上所述,等腰GCD不能完全覆盖住正方形ABCD\because ABCD\text{是正方形}\\\therefore \angle A=\angle B=90\degree\text{,}AB\bot AC\text{于点}A\text{且}\bot BD\text{于点}B\text{,}AB\text{//}CD\\\therefore \bigtriangleup AEC\text{与}\bigtriangleup BFD\text{都是直角三角形,其中}∠A=∠B=90\degree\text{,且}\bigtriangleup GCD\text{∽}\bigtriangleup GEF\\\text{又}\because \text{三角形}GEF\text{的高是}\left( x-a \right) \text{,三角形}GCD\text{的高是}x\\\therefore EF:CD=\left( x-a \right) :x\\\therefore \mathrm{EF}=\mathrm{CD}\frac{x-a}{x}=\frac{a\left( x-a \right)}{x}=\frac{ax-a^2}{x}=a-\frac{a^2}{x}\\\therefore AE=BF=\frac{1}{2}\left( AB-EF \right) =\frac{1}{2}\left[ a–\left( a-\frac{a^2}{x} \right) \right] =\frac{a^2}{2x}\\\therefore \tan \angle BDF=\tan \angle ACE=\frac{AE}{AC}=\frac{BF}{BD}=\frac{\frac{a^2}{2x}}{a}\\\text{当}\bigtriangleup GCD\text{完全覆盖正方形}ABCD\text{时,有}∠GDC=∠GCD\geqslant 90\degree\\\text{当}∠GDC=∠GCD=90\degree\text{时,}\\\tan ∠BDF=\tan \left( 90\degree-∠GDC \right) =\tan ∠ACE=\tan \left( 90\degree-∠GCD \right) =\tan 0\degree=0\\\therefore \frac{AE}{AC}=\frac{BF}{BD}=\frac{\frac{a^2}{2x}}{a}=0\\\therefore \frac{a^2}{2x}=0\text{,}a^2=0\text{,}a=0\\\text{此时原式不成立,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD\\\text{当}∠GDC=∠GCD>90\degree\text{时,}\\\text{有}∠GDC+∠GCD>180\degree\\\because \text{三角形内角和为}180\degree\\\therefore \text{此时}GCD\text{不是三角形,不符合题设,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD\\\text{综上所述,等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD

方法二

ABCD是正方形AB//CDGCDGEF,四边形EFCD是梯形GEF的高是(xa)GCD的高是xEF:CD=(xa):xEF=CDxax=a(xa)x=axa2x=aa2xS梯形EFCD=12AC(EF+CD)=12[a(aa2x)+a]=12a(2aa2x)=a2a32x若要让等腰GCD完全覆盖住正方形ABCD,则显然有S梯形EFCD=S正方形ABCD于是可得a2=a2a32x,则a32x=0,故a3=0a=0此时原式无意义,所以等腰GCD不能完全覆盖住正方形ABCD\because ABCD\text{是正方形}\\\therefore AB//CD\\\therefore \bigtriangleup GCD\text{∽}\bigtriangleup GEF\text{,四边形}EFCD\text{是梯形}\\\text{又}\because \bigtriangleup GEF\text{的高是}\left( x-a \right) \text{,}\bigtriangleup GCD\text{的高是}x\\\therefore EF:CD=\left( x-a \right) :x\\\therefore \mathrm{EF}=\mathrm{CD}\frac{x-a}{x}=\frac{a\left( x-a \right)}{x}=\frac{ax-a^2}{x}=a-\frac{a^2}{x}\\\therefore S_{\text{梯形}EFCD}=\frac{1}{2}\mathrm{AC}\left( \mathrm{EF}+\mathrm{CD} \right) =\frac{1}{2}\left[ a\left( a-\frac{a^2}{x} \right) +a \right] =\frac{1}{2}a\left( 2a-\frac{a^2}{x} \right) =a^2-\frac{a^3}{2x}\\\text{若要让等腰}\bigtriangleup GCD\text{完全覆盖住正方形}ABCD\text{,则显然有}S_{\text{梯形}EFCD}=S_{\text{正方形}ABCD}\\\text{于是可得}a^2=a^2-\frac{a^3}{2x}\text{,则}\frac{a^3}{2x}=0\text{,故}a^3=0\text{,}a=0\\\text{此时原式无意义,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD

综上所述,等腰三角形GCD无法完全覆盖住正方形ABCD.

推广

从方法二的证明过程中,可以发现三角形GCD可以不是等腰三角形,此时结论依旧成立。所以我们有真命题:在图1.0.1中三角形GCD无法完全覆盖住正方形ABCD.

探究

在方法二中,我们得出了正方形ABCD的边长a,三角形GCD的高x与梯形EFCD面积y之间的关系式,亦或者说是函数即y=a2a32xy=\mathrm{a}^2-\frac{\mathrm{a}^3}{2\mathrm{x}}

那么,若是不让三角形GCD完全覆盖正方形ABCD(不让三角形GCD的高等于无限),而是让其高尽量长,趋近于无限呢?

此时,可得limx(a2a32x)=a2\underset{x\rightarrow \infty}{\lim}\left( a^2-\frac{a^3}{2x} \right) =a^2

于是有当三角形GCD的高x趋近于无限时,梯形EFCD的面积趋近于正方形ABCD的面积a², 此时三角形GCD在正方形内的面积趋近正方形ABCD的面积.

结论

图1.0.1中的三角形GCD无法完全覆盖住正方形ABCD,但若三角形GCD的高趋近于无限,则此时三角形GCD在正方形内的面积趋近正方形ABCD的面积.

]]>
+ + + + + 数学 + + + + + + + 数学 + + + +
+ + + + + C++ 数组实现队列 + + /posts/da7075f0/ + + 队列是常用的数据结构,是广度优先算法中不可或缺的一部分。队列一般使用数组或链表构建,这里会介绍使用数组实现队列的方法。

结构搭建

首先,定义队列结构:

1
2
3
4
5
6
7
#define MAXSIZE 10000

struct myqueue {
int first;
int last;
int v[MAXSIZE];
};

变量first指向首项,last指向尾项其实不是,数据则存在数组v中。为了防止数据溢出,此时定义数组v的范围要尽量大,此处是10000。

再就是初始化队列:

1
2
3
4
void init(myqueue &t) {
t.first = t.last = 0;
return;
}

让first与last都指向数组开头的第0项,很好理解。

之后,开始数据操作。第一个是push函数,将数值存入队列的最后:

1
2
3
4
5
void push(myqueue &t, int s) {
t.v[t.last] = s;
t.last++;
return;
}

注意将last指向后面一项,此时变量last始终指向队列最后一项的下一项,是一个空值。

第二个是pop函数,删除队列首项。不过这里有一个坑,如果队列为空删除便有可能出错,所以要先判断队列是否为空:

1
2
3
4
5
6
7
8
9
10
bool isempty(myqueue &t) {
if(t.last == t.first) return 1;
else return 0;
}

void pop(myqueue &t) {
if(isempty(t)) return;
t.first++;
return;
}

判断队列是否为空很简单,当first=last时,有队列为空(队列非空时,last在最后的数据项的后一位,所以first不可能等于last)。

pop时只需要移动首项的标识,避免了繁琐的数据移送,也无需置空数组的某一项,原因显而易见。但永远抛弃了一部分内存,故而要小心溢出。

再就是获取队列的首项、尾项、第n项以及长度,代码相对简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int getf(myqueue t) {
return t.v[t.first];
}

int getl(myqueue t) {
return t.v[t.last - 1];
}

int getn(myqueue t, int n) {
return t.v[t.first + n];
}

int getlength(myqueue &t) {
return (t.last - t.first);
}

这里对于长度的获取需要说一下,理论上长度应当是(last - first + 1),但这里last本身就是数据项的后一项,所以自然就省掉了。

解决问题

现在整个队列已经完全可用了,我们可以尝试用其解决一些实际问题。

问题背景

有n(n <= 100)个小朋友排队打针,他们每个人都有依次自己的编号为1, 2, 3, 4, …, n。他们都很害怕打针,所以当排在自己前面的小朋友打针时就会跑走到队伍最后。试设计一程序,输入小朋友数量,输出他们打针的顺序。

样例输入:5
样例输出:1 3 5 4 2

问题分析

很显然,这样需要模拟过程的题目用队列解答会非常容易,直接使用队列出入队模拟这一过程即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main() {
myqueue test;
init(test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(test, i); //编号依次入队
for(int i = 1;!isempty(test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(test);
pop(test);
push(test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(test)<<" ";
pop(test);
}
}
return 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
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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 10000

struct myqueue {
int first;
int last;
int v[MAXSIZE];
};

void init(myqueue &t) {
t.first = t.last = 0;
return;
}

bool isempty(myqueue &t) {
if(t.last == t.first) return 1;
else return 0;
}

void push(myqueue &t, int s) {
t.v[t.last] = s;
t.last++;
return;
}

void pop(myqueue &t) {
if(isempty(t)) return;
t.first++;
return;
}

int getf(myqueue t) {
return t.v[t.first];
}

int getl(myqueue t) {
return t.v[t.last - 1];
}

int getn(myqueue t, int n) {
return t.v[t.first + n];
}

int getlength(myqueue &t) {
return (t.last - t.first);
}

int main() {
myqueue test;
init(test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(test, i); //编号依次入队
for(int i = 1;!isempty(test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(test);
pop(test);
push(test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(test)<<" ";
pop(test);
}
}
return 0;
}
]]>
+ + + + + 编程 + + + + + + + 计算机 + + 编程 + + c++ + + + +
+ + + + + 自主学习 + + /posts/7e535678/ + + 尊敬的老师,亲爱的同学们,大家(上午/下午)好!我是八年级的我的姓名,很荣幸今天能站在这里演讲。面对大家真诚的面容,这次我想和大家分享我自主学习的心得。

首先,我们应该明确一个概念,即什么是自主学习。自主学习就是随意的学、无拘无束的学吗?显然不是。自主学习是以自学、质疑、讨论等方式深入理解学习内容并获得新知识的一种实践活动,是通过自我导向、激励、监控的方法学习。其需要我们不断地尝试一些适合自己的有效的学习方法,合理的掌控学习时间,以便于专心地投入学习中。

要做到自主学习其实并不难,只需要把学习看作是一件令人快乐和愉悦的事。是的,学习的过程虽苦,却也满含着即将迎来收获的喜悦。完成自主学习的过程大概分为五点:一、了解自己:透过渐趋清明的自我概念、自我价值、自我认知,朝自觉、自足、自在的境态迈进;二、了解环境:透过知识与经验,了解环境的资源及限制;三、寻求自己与环境最佳的互动可能:在了解自己也了解环境的基础上,能找出当下合适的对应;四、着手实现:靠勇气、恒心、毅力,使自己能实践出心中所想,知行合一。五、保有循环向上的检视机制:透过计划->实行->检视->增进的循环,让自己从每次的经验中有所反省和收获。上面的说法比较枯燥,就拿我个人来举例吧,从小学一年级开始,我就对数学很感兴趣,喜欢看一些趣味性的数学书,还经常自以为很厉害,主动寻找“难题”去“考”父母和老师,这其实就是一种出于本能的自主学习过程。后来,我出于对电脑编程的喜爱,出于对计算机的掌控中获得的欣喜感和满足感,编程培训课如无意外我从不缺课,平时还主动上网学习电脑编程知识、了解电脑信息和发展动态,同时,由于编程和设计需要用到大量知识,我也不放松自己对数学、物理、英语、语文甚至美术的学习。如果说小时候对数学难题的解题过程是一种懵懂的自主学习的初级状态,那么之后对编程和相关知识的自主学习就是在了解自我,了解环境的基础上,充分利用现有的时间、精力和资源,通过各种努力,达到自主学习的进阶状态。

同学们,“没有比人更高的山,没有比脚更长的路”,前行的路就在我们自己脚下,命运之门的钥匙就在我们自己手中。让我们从点滴做起,让自主学习成为持之以恒的一种习惯,成为我们自主的生活方式。我衷心祝愿每一位同学能克服自身的惰性,付以恒心与毅力,走向属于你自己的成功!

谢谢大家!

]]>
+ + + + + 文学 + + + + + + + 演讲稿 + + 文学 + + 作文 + + 议论文 + + + +
+ + + + + 尊重客观规律 + + /posts/8f132c87/ + + 只有尊重客观规律,才能事有所成。西门豹出任邺令,破除封建迷信,转而挖掘渠道、灌溉农田,治理了邺城常有的水灾;鲧以堵治水而无能为力,大禹改堵为疏,完成了治水的大业。这些都是以对客观规律的尊重而得到的成果,也证明了人类若是要认识和改造世界,必须先尊重客观规律。青藏铁路只从西宁修到了格尔木就不再延伸,这份阻碍并非因为资源,而是来源于人们对客观规律的践行——在当时的条件下,这样的施工若是继续下去一定会对当地,甚至整个中国的生态造成破坏。人们不断只有尊重、探索客观规律,才能更好的造福社会。

尊重客观规律,是在践行宇宙的真理。“橘生淮南则为橘,生于淮北则为枳,叶徒相似,其实味不同。所以然者何?水土异也。”柑橘在南方能长出甜美饱满的果实,但在北方就只能结出味苦的枸橘。英国文艺复兴时期散文家、哲学家弗朗西斯·培根曾经说过:“只有顺从自然,才能驾驭自然。” 世间万物皆有其自身的规律,许多事物也万万不能强求,“强扭的瓜不甜”。瓜一旦成熟,其瓜蒂部分便会变得干枯,自动脱落,很容易摘;而若是瓜还并未成熟,那么瓜蒂部分必然长得很结实,要想把瓜摘下来就一定要使劲扭。如此摘下的瓜自然都是未成熟的,又怎可能甜?规律是亘古永存的,其具有客观性与普遍性。柑会变成枸橘、瓜会没有甜味,这一切的改变都是客观规律使然。“昔者海鸟止于鲁郊,鲁侯御而觞之于庙。奏《九韶》以为乐,具太牢以为膳。鸟乃眩视忧悲,不敢食一脔,不敢饮一杯,三日而死。”“宋人有闵其苗之不长而揠之者,芒芒然归,谓其人曰:“今日病矣!予助苗长矣!”其子趋而往视之,苗则槁矣。”鲁侯养鸟、揠苗助长,都是不遵守客观规律而造成的后果·。如此可以看出,规律的存在和发生作用都以一定的客观条件为基础,在不具备其根据和条件的情况下,人为的要求某个规律存在和发生作用是不可能的。综上所述,在实际生活中,规律是不可抗拒的。也只有按规律办事,才可能达到所需要的目的。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 议论文 + + + +
+ + + + + 牺牲少数保护多数是不正义的——一辩发言 + + /posts/bff2b1a/ + + 尊敬的老师及评委们,大家好!我们的观点十分明确,即牺牲少数保护多数是不正义的。请注意辩题中的措辞,是“不正义”而远非“邪恶”。不正义并非与正义成对立的关系,而是互补——任何称不上正义的行为都可以称之为不正义。不正义不是一个极端的点,而是除了正义这个点外的整条线。所以换句话说,我们认为,牺牲少数保护多数的行为不配称之为正义。“牺牲”本义指古希腊哲学家柏拉图在《理想国》中曾表明正义是客观存在的,所以并不存在所谓“相对的正义”,也不可能从两个角度分别看待一件事正义与否并得出不同的答案。既然我们已知牺牲少数保护多数从某些角度上来看并非正义,那么这件事自然便一直不在正义的范畴之中,于是其只能是不正义的。

著名德意志哲学家,德国古典哲学创始人伊曼努尔·康德认为:人,是目的本身,即在任何时候任何人(甚至上帝) 都不能把他只是当作工具来加以利用。若是牺牲少数来保护多数,那不正是把少数人放在了可以随时被“牺牲”、被消耗的“工具”的位置上吗?恶也油然而生。这样的行为无论如何加以粉饰也不可能被称之为正义。人同样存在最高权力,高过任何外界利益总和。我们拥有我们自身,是自由的个体。在此基础上可以构建出人人平等的前提,所以“使社会利益最大化”的行为,即牺牲少数保护多数并非正义。

常常有一句话说“公平即正义”,但是其逻辑性趋近于无。“正”即合于法则的(合于法律的)、规矩的(指相对的两方面中积极的一面),而“义”则是公正合宜的道理或举动(合乎正义或公益的)。所以可以得出正义是指合于法则的公正合宜的行为。而公平,“公”与“私”相对,指属于国家或集体的;“平“则是指一般的,故而“公平”的意思是指集中而大多适用的道理。自然“牺牲少数保护多数”的行为只属于公平而非正义。

我们可以举一个例子,为了救活十个即将饿死的人,杀死其中一个人作食物给另外九个人吃,这样做对吗?从结果上看,活下来的人数比死去的人多,似乎就应该按照这样的办法去做。不过我们可以深思一下,假若按照上述价值观去做,虽然短时间内使社会利益得到了最大化,但是如此侵犯个人的基本权利最终会使社会整体幸福度降低。从长远看,若这种做法流行起来,社会将变得鸡犬不宁人人惶惶不可终日。

最后,我们社会的发展,社会的价值的提升,并不是通过牺牲少数人,牺牲弱势群体来达到的,而是通过平衡社会中不同阶级之间的关系,来使社会达到一种动态的平衡。当弱者出现时我们每个人献出一点爱让他们变得强大。当少数人的利益与多数人的利益冲突时,我们虽然会使少部分人做出牺牲来达到利益的最大化,但是我们不会自诩正义,我们心中会永远记得那些为多数而牺牲的少数,并为补偿他们而不懈奋斗着,因为“无正当补偿便不能剥夺”原则是对共同利益的最好保护。那些剥夺了他人的权益还自称正义的人是这个世界上最大的暴徒。

综上所述,我方认为牺牲少数保护多数是不正义的。谢谢!

]]>
+ + + + + 文学 + + 辩论 + + + + + + + 演讲稿 + + 辩论 + + 牺牲 + + + +
+ + + + + 《四世同堂》读后感 + + /posts/92674965/ + + 学期末老师列了一条长长的书单,让我们选择两本来写读后感。正巧以前听闻过老舍先生的《四世同堂》,于是便选择了它与另外一本书。在我的印象中,老舍先生的书里我只看《骆驼祥子》。当然肯定不止这一本,只是忘了其它书的名字罢了。

但书到货之后我震惊了,因为这本书完全不像我想的那样。这本,不,应该是这套书比我以前所读过的所有书都要厚。而在真实的读过一遍这本书后我却才发现。这个厚度也不算什么,因为它的剧情真的非常好。

《四世同堂》是老舍最著名的长篇小说,这部百万字的巨著描述了卢沟桥事件爆发的一九三七年至日本投降的八年间北京普通市民遭受到的残酷压迫与统治,以及他们面对生与死的自尊与自省。老舍这部书中展示了北平沦陷区一群普通人的生活。通过祁老人、瑞丰、瑞宣、韵梅、钱诗人、小文夫妇、李四爷、白巡长、孙七、小崔、马老太太、常二爷、小妞妞以及大赤包、招弟等人物形象,表现出民族存亡之际,真善美与假恶丑的斗争,崇高的民族气节和苟且偷安、助纣为虐的对照。

老舍在《四世同堂》中对于人物性格的刻画及其的用心,而刻画出的任务同样的非常立体。比如在描写汉奸时:冠晓荷与蓝东阳是小说中的汉奸形象代表,“无事乱飞是苍蝇的工作,而乱飞是早晚会碰到一只死老鼠或一堆牛粪,冠先生是个很体面的苍蝇。”而老舍先生用极妙的笔法对蓝东阳道:“蓝东阳的相貌先引起试官的注意。他长得三分像人,七分倒像鬼。日本人觉得他的相貌是一种资格与保证——这样的人,是地道的汉奸胚子,永远忠于他的主人,而且最会欺压良善。东阳的脸足以引起他的注意,恰好他的举止与态度又是那么卑贱的出众,他得到了宣传处处长。”

而放远了看,实际上,老舍先生描写的这个时代下的中国正是二战期间法西斯侵略活动的最好的印证。读书的时候很容易就会联系到以前看过的海明威著作的《永别了,武器》。这本书讲的是一战期间的故事。一战时交战双方的目的主要是瓜分殖民地,争夺市场和原料产地;二战法西斯国家不仅要打败对方,而且要在全世界范围内建立法西斯制度。这也就解释了为什么日本区区一个弹丸之地,竟然有吞并整个东南亚的野心,且近乎于成功了。书中有写“短腿小鬼可不管你是否是它的一条狗,只要它认为你可疑,不值得信任或没有利用的价值了,旋即投狱、折磨、杀死,没有丝毫的理由。”这就是日本人的强盗逻辑,这就是这个民族嗜血成性的侵略本性。只有我们自己手握武器,狠狠地痛击它,它才能乖乖地缩回乌龟头,在它的小岛上蛰伏不动。

回归书中,回归二战,回归北平。其实无论在什么时代,谁都想过着安适美好的日子,可是当祖国受到侵略,当侵略者剥夺人们正常生活的权力,每一个有正义感和民族感的普通老百姓都会用自己的方式来保卫自己的家园的想法,但是这不可能。人只能在愤激反抗所博得的美名与背负骂名的存活中选择一个。选择其中一边的人是有的,而这些人恰恰会是被后人熟记、明知的。大部分老百姓什么也没有选,而是站在它们之间,想着苟且偷生。我为汉奸们可悲,更为那些觉醒后勇于反抗的人们感到欢欣鼓舞。小说中的一些次要人物就像我们揭示了老百姓们可悲的一面。他们因为一点蝇头小利便偏向了侵略者一方。以往拳打汉奸的金三爷,因为日本人带来的好生意转而感激,之后甚至出卖了钱默吟先生。年轻貌美的招弟,堕落成一个出卖肉体的女人,却还以此为荣。这些没有是非观的行为无疑是贪念在作祟。最后,当抗战最终胜利,人们仿佛才想起了报仇,结尾几个小伙子想找日本老太婆报仇的事再次让人嗤笑和而叹息。人们已经不怎样能高兴起来了,八年的风雨飘摇,战争给人民带来了无尽的苦难,给中国大地留下了累累伤痕。我们不应忘记这段屈辱的过去,要时刻铭记那段冰风冷雨的历史,创造辉煌的未来。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 读后感 + + 议论文 + + + +
+ + + + + 浅探魏晋名士的精神世界 + + /posts/d29e300c/ + + 提起魏晋,“名士风流”四个字是现代人对它的基本认知,在中华民族几千年的历史长河中,也唯有魏晋南北朝时期独有的世族门阀在政治、经济、文化领域与皇权分庭抗礼甚至占主导地位的条件下,才能形成“魏晋风度”这一独特的文化现象。代表家族如王谢世家,代表人物如竹林七贤等,除了留下大量诗歌、书法、音乐等文化遗产外,还留下了处变不惊、旷达任率、不拘礼法、风神潇洒、不滞于物的精神风貌和思想风格供后世研究探讨。

魏晋名士如此“特立独行”的精神世界,它的形成有一个长期过程。东汉末年开始的南北分裂和战乱,党锢之祸、黄巾起义、三国鼎立、司马氏篡权,百多年的血雨腥风,动荡不安,使“汉末名教”作为思想束缚的礼教开始崩塌,士人们不再对皇权盲目崇拜,开始拥有了自我意识,而其中一些有识之士不安于现状,不断追求思想上的创新与突破。他们会去对规则本身的合理性进行考虑,以探寻规则外的广阔天地;他们不仅行为上不愿再受规则的束缚,精神世界也同样不甘压迫;他们开始探索宇宙自然与人生本体的关系,追求新的思辨哲理。

现在看这些名士们的行为,可以发现其实连带着魏晋风度本身,有些只是反常的叛逆性极强的怪异举动,可以认为是在名教长时间压迫下的剧烈反弹。甚至会出现一些较为过激的行为,如在《世说新语》任诞篇中对刘伶的记载:“刘伶恒纵酒放达,或脱衣裸形在屋中。人见讥之,伶曰:我以天地为栋宇,屋市为裈衣,诸君何为入我裈中?”如此行为,只能称得上是“率性而为,任诞放达”了,其叛逆性之强不容否认。

除了战乱,魏晋时期残酷的政治清洗同样令人不安,无论是个人的生命还是家族的命运,全都在统治者、权贵的争权夺势中难以独善,所以魏晋士人在放达不羁的行为中也折射出深深的忧惧和哀伤。故而反抗礼教的名士们便只得走向崇尚老庄,酗酒佯狂,傲啸山林,不与时务的道路,个人认为,这一点是促成魏晋风度中“隐居”行为的重要因素。而从嵇康的性情刚直,阮籍纵酒放达等都能看出些许佐证。

在这样政治黑暗,礼教束缚的年代,尽管出现了文人集体失语的现象,但魏晋名士的特点就是不会停止对成为累赘的礼教的批判与反抗,不会停止对自由人格的永恒追求。在魏晋名士眼中,自由就是顺从自己的天性,任性而为,随心而动。他们具有超脱世俗自由独立的人格理想,所以能一边否定外界社会一边重构自我人格,“人生贵得适意尔”。随着道教的兴起、佛教的传入,开创出儒道互补的士大夫精神,奠定了中国知识分子的人格基础,不可不谓影响深远。

当然任何事情都有其两面性。对于魏晋名士的思想和行为,被后世最为诟病的是“五石散”的服用和空谈玄理的风气。或出于养生、或出于美容、或出于对长生的追求、或出于身份地位的昭示,士人们刻意忽视它的副作用,使服用五石散成为一种“时尚”,造成了了大量人力物力的浪费和对身体的伤害。甚至连家境并不富裕、买不起五石散的人们都会争相模仿:当众倒地,自称“石发”。闹出不少笑话。在《太平广记》中《启颜录﹒魏市人》便有“有一人,于市门前卧,宛转称热”的记载,可见一斑。而魏晋名士的清谈,考验的是口才和思辨,但从开始的成就自己的政治抱负发展到只关心自己一家一姓一族的得失,崇拜浮虚、寄情酒色、不管国事,致使朝野颓唐,甚至间接导致了西晋的亡国,从此流传下来“清谈误国”这句话。

动荡时期的不安全处境和残酷的政治斗争中,要么顺应环境保全生命,要么纵情于山水追求的精神解放,要么饮酒服药带来短暂的麻痹,这种焦灼矛盾的状态或许就是魏晋名士精神世界的形成原因,我们在研究和探索的过程中,不应该将狂放、酗酒、服药等视为风流,而忽视了它所产生的时代背景,不能只看到他们狂放洒脱的一面,更要看到深刻沉重的一面。

我认为,魏晋名士之所以为名士,不是因为不羁和自由,而是因为才学。如竹林七贤中阮籍的诗歌、山涛的文集、嵇康的文集和音乐等等,更有世家中的高门大户王家的书法和谢家的政治成就。但是他们中的大多数却选择清谈、避世,选择隐居甚至堕落。精神上的虚无主义,使他们留名后世,却在当时无所作为,未能为动荡的社会做些什么,亦未能解救悲苦的百姓。历史上每逢乱世,必会产生开放的思想,并由此造福于百姓,有破有立。唯有魏晋名士,思想开放却是破而未立。他们的反抗仅仅只是反抗,却未有切实可行的主张去改变社会现状。

所以,魏晋风度对当世可能仅仅是一种浮于表面的行为艺术,一种看破世俗的有识之士的无能呐喊,一场雷声大雨点小的思想革命。虽然为后世留下了丰富的文学经典,但却几乎未在当时的社会中产生任何正向作用。名士们的精神世界中除了繁多的思想外,难说是否有未民生的思考,抑或是仅仅停留在了“人生贵得适意尔”的“适意”上。故而我们既要学习他们对自由与创新的向往,更要善于学习,善于以辩证的思想去看待他们本身、他们的行为及他们的精神世界,而非盲目追随。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 议论文 + + + +
+ + + + + 《钢铁是怎样炼成的》读后感 + + /posts/bb5ce830/ + + 一个人的人生应当这样度过:当他回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞耻。

——题记

保尔是一个无私的人,他总是把党和祖国的利益放在第一位。在战争年代,保尔情愿与父兄们一起上战场;为保卫苏维埃政权,他甘愿同外国武装干涉者和白匪军拼个你死我活。这些都表现保尔了甘愿为革命事业的献身精神。在如此的艰难岁月中,他却能将自己全部的热情投入到了和平劳动之中。虽然他为国家、党与人民做过如此大的贡献,但他却从未骄傲过,也从未考虑过个人的名利、地位,而只想多为党和人民做点事情。党叫他修铁路,他答应;党调他当团干部,他同意——而且都是拼命地做。为了革命他甚至可以牺牲自己个人的私生活,即爱情。他虽然爱丽达,但受到了“牛虻”的影响,所以想要“彻底献身于革命事业”,最后按照“牛虻”的方式与她不告而别。在保尔全身瘫痪、双目失明后,他仍然想继续为党工作。这些都正如他所言:“我的整个生命和全部精力,都献给了世界上最壮丽的事业——为人类的解放而斗争。”

保尔是一个于平凡且伟大的人物。在他的一生中,一直没有过什么惊天动地的伟大业绩:他总是从最平凡的小事做起。面对疾病的沉重打击,虽然他也曾产生过自杀的念头,但是保尔后来也认识到了这是一种任性和不负责任,于是他又重拾了对生活的信心。也正是因为作者的这种塑造,所以保尔才会让我们感受到一种真实感。他是伟大的,也是平凡的。他既是在不断的困境与不幸中真正被煅炼的钢铁,也是一个有血有肉的、让人感到亲切的人。

书中对于保尔残疾后形象的塑造也同样不乏。保尔因不幸而残疾,但尽管自己身体行动不便,他也用自己顽强的毅力克服了种种困难。他在残疾后毫不灰心,反而更加的刻苦学习与奋力工作,同时还开始了文学创作。即使是他双目失明后他也未动摇过其信念,只是拿起了笔,摸索着尝试写作。即便是每写一字,他都需要付出常人根本无法想象的艰辛劳动他也坚持了下来,由此最后他才终于写出了小说《在艰苦暴风里诞生》的一部分。保尔是一个普通的革命战士,但却有着这样钢铁般的坚强意志,这与共产主义事业的召唤是不可分割的。他投身于革命事业,一次又一次的创造着奇迹。

世界上基本没有什么是天生的,所有事物都只有在经过火焰的煅炼后才可以使自身得到不断地升华。保尔是,我们也是。我们每一个人都只有树立伟大的理想、执着的追求,并且在正确的拼搏道路上不断砥砺前行,他才不会被生活的火焰所摧毁,不会被不幸的塑造所扭曲。这样的人会在一段段人生经历中坚强、成熟起来,去绽放自己的力量、迎接更好的自己。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 读后感 + + 议论文 + + + +
+ + + + + About Food + + /posts/53c0d957/ + + Hello everybody!

Fast food is come from Ancient Roman. At that time, many people didn’t have enough money to buy or rent a house with a kitchen. So many people could only buy food from street vendors. At the same time, there were some pilgrims to Rome to buy fast food, too. That’s the first kind of fast food. And now, fast food has become popular all over the world.

Fast food is tasty, but there are some criticisms of fast food. Lots of fast food are rich in calories as they include considerable amounts of mayonnaise, cheese, salt, fried meat, and oil, thus containing high fat content. Excessive consumption of fatty ingredients such as these results in unbalanced diet. Children who eat fast food tend to eat less fiber, milk, fruits, and non-starchy vegetables. And even adults, like the school’s foreign teacher, Daniel. He likes to eat fast food and snacks. He usually buys snacks after class. Have you seen him? He is very fat and looked very old. But he is only in his 20s. I took his class while I was still in the class GUHONGMING. He hardly ever came upstairs. Because he was too fat to hold his weight. So we always have his class on the first floor. But don’t worry, it happens that some other foods are healthy and good for us, which is also the content of our next section - healthy food.

There are also some other food besides fast food, like vegetables and fruits. We can call then as healthy foods. They can help our body in many ways. First of all, there are many vitamins in them, such as vitamin C, which is very important for the human’s body. In the past, crews on the boat caught on a disease called scurvy. Then they found out a way to cure the disease: eat fruits and vegetables which are rich in vitamin C. So now we can see that healthy food such as fruits and vegetables are very important and good for our human’s body.

Besides, there are some foods that are healthy and have many proteins, such as meat. Proteins play a major role in ensuring your overall well-being. Meanwhile, it is one of the most important components of every cell presenting in the body. In our daily life, we mainly eat vegetables and meat. With the improvement of people’s living standards, people’s interest in meat is getting lower and lower. Many people eat vegetables and fruits as their staple food, and female friends stop eating meat in order to keep fit. But people do not eat meat will lead to inadequate protein intake, will lead to physical weakness, decreased resistance, fatigue, cold, lack of energy, memory loss, low quality of life, affect work and study. So now we can see the importance of healthy food. Let’s eat more healthy food and eat less fast food! Don’t forget that healthy food is good for your body and fast food is not.

]]>
+ + + + + 英语 + + + + + + + 演讲稿 + + 纯英文 + + English + + + +
+ + + + + 正常,荒谬——《局外人》读后感 + + /posts/7b015599/ + + 我不是这里的人,也不是别处的人。世界只是一片陌生的景物,我的精神在此无依无靠,一切与己无关。

——题记

《局外人》书中的主人公默尔索虽不能说是冷漠无情,但也是不同于常人的。对于日常起居方面而言,他和大多数人一样。但是他又和大多数人不一样,他并不习惯于使用普通人通用的情感表达方式:他不像大多数人会在母亲,一个赋予他生命、哺育其成长的人的葬礼上嚎啕大哭;而他只是沉默着,甚至心中只想着为什么不早点结束,这样才能回去睡觉。像一个局外人一般,好似任何事情都与他毫无关联。这也是书中对他的第一处道德审判,即养老院中老人对丝毫没有伤心感受的默尔索的不正常的关注。

但是这一场审判是必要的吗?我们有必要在他人的审判之下临时更改自己深信不疑的观点吗?默尔索没有这么做,所以他才没有在母亲的葬礼上哭泣,亦或者是动那么一点点情。他认为死亡原本就是一件自然而然的事情。可是恰恰是因为这样,他才违背了人们约定俗成的道德准则,也为后文中他的悲剧结局埋下了伏笔。

默尔索之后在一种不明不白的状态下以一种正当防卫的姿态杀死了一位阿拉伯人,本身可以判定减刑的事件却正是因为他的“不近人情”——默尔索对任何问题的回答都太过客观,让人感觉不到人情味——而被记者过度渲染,引起了人们对这个案件的过度关注与检察官疯狂对默尔索人格的诋毁抨击。整个过程,默尔索被排挤在外,只剩下了法官与律师、证人的接触,并且谈论的主题还不是这一起案子,而是对默尔索本人的争论,对默尔索的“不孝”的争论。人们就像约定好了一样,顺利地,没有理由地将默尔索判以死刑。

正是因为默尔索的为人处世方式才引得了人们的过分联想。而在整个案件中,几乎所有人都被一种主观的想法所引导,认为他就是一个冷漠无情的杀人犯。可是他真的是一个冷酷无情的杀人犯么?深入了解他的人,喜欢他。泛泛接触过的人却想置他于死地。他仅仅是热爱这个城市,也真正懂得享受当下的美好而已。

正如他所言,一切都“不是我的错”,可是很多事情本就是这样自然而然发生了。

直至默尔索死刑之前他才展现出了一个真实的自己——一个思念自己母亲、怀念儿的日子的人。他开始感到害怕,恐惧死亡,恐惧狱卒的脚步声,恐惧黎明…人都会死,可是大多数人都可以用五十年以上的时间来一点一点消磨这种恐惧,消磨死亡这件事。但当这五十年的恐惧,突然一下子被压缩到了一天里面,在那一天里,一个普通人会想什么呢?或许大多数人会选择寻找情感寄托吧,选择信奉了某一个神,他们通过神鬼来为自己开脱,缓解自己内心的愧疚与不安。可是默尔索依旧没有这么做,对事件始终有着理性且客观认知的他并没有相信神鬼之说。他在被判死刑后,虽然神甫仍然在不依不饶教导默尔索,可他无动于衷,甚至于愤怒、爆发了。

这本书看似是谈主人公的荒谬、不合常理,可其实是反应社会的荒谬及民众的盲目从众。而事实上,这本书中,只有所谓的局外人才是真正清醒的正常人。

]]>
+ + + + + 文学 + + + + + + + 文学 + + 作文 + + 读后感 + + 议论文 + + + +
+ + + + +
diff --git a/manifest.json b/manifest.json new file mode 100644 index 000000000..d8d51f00d --- /dev/null +++ b/manifest.json @@ -0,0 +1 @@ +{"background_color":"#ffffff","description":"序炁OrderChaos的自留地","dir":"ltr","display":"standalone","name":"序炁的博客","orientation":"any","scope":"/","short_name":"序炁的博客","start_url":"/","theme_color":"#fff","categories":[],"screenshots":[],"icons":[{"src":"/img/icons/icon-72x72.png","sizes":"72x72","type":"image/png"},{"src":"/img/icons/icon-96x96.png","sizes":"96x96","type":"image/png"},{"src":"/img/icons/icon-128x128.png","sizes":"128x128","type":"image/png"},{"src":"/img/icons/icon-144x144.png","sizes":"144x144","type":"image/png"},{"src":"/img/icons/icon-152x152.png","sizes":"152x152","type":"image/png"},{"src":"/img/icons/icon-180x180.png","sizes":"180x180","type":"image/png"},{"src":"/img/icons/icon-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/img/icons/icon-384x384.png","sizes":"384x384","type":"image/png"},{"src":"/img/icons/icon-512x512.png","sizes":"512x512","type":"image/png"},{"src":"/img/icons/apple-touch-icon.png","sizes":"180x180","type":"image/png"},{"src":"/img/icons/maskable_icon.png","sizes":"512x512","type":"image/png","purpose":"any maskable"}],"shortcuts":[],"splash_pages":null} \ No newline at end of file diff --git a/owo.json b/owo.json new file mode 100644 index 000000000..8e9151559 --- /dev/null +++ b/owo.json @@ -0,0 +1 @@ +{"颜文字":{"type":"emoticon","container":[{"icon":"OωO","text":"Author: DIYgod"},{"icon":"|´・ω・)ノ","text":"Hi"},{"icon":"ヾ(≧∇≦*)ゝ","text":"开心"},{"icon":"(☆ω☆)","text":"星星眼"},{"icon":"(╯‵□′)╯︵┴─┴","text":"掀桌"},{"icon":" ̄﹃ ̄","text":"流口水"},{"icon":"(/ω\)","text":"捂脸"},{"icon":"∠( ᐛ 」∠)_","text":"给跪"},{"icon":"(๑•̀ㅁ•́ฅ)","text":"Hi"},{"icon":"→_→","text":"斜眼"},{"icon":"୧(๑•̀⌄•́๑)૭","text":"加油"},{"icon":"٩(ˊᗜˋ*)و","text":"有木有WiFi"},{"icon":"(ノ°ο°)ノ","text":"前方高能预警"},{"icon":"(´இ皿இ`)","text":"我从未见过如此厚颜无耻之人"},{"icon":"⌇●﹏●⌇","text":"吓死宝宝惹"},{"icon":"(ฅ´ω`ฅ)","text":"已阅留爪"},{"icon":"(╯°A°)╯︵○○○","text":"去吧大师球"},{"icon":"φ( ̄∇ ̄o)","text":"太萌惹"},{"icon":"ヾ(´・ ・`。)ノ\"","text":"咦咦咦"},{"icon":"( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃","text":"气呼呼"},{"icon":"(ó﹏ò。)","text":"我受到了惊吓"},{"icon":"Σ(っ °Д °;)っ","text":"什么鬼"},{"icon":"( ,,´・ω・)ノ\"(´っω・`。)","text":"摸摸头"},{"icon":"╮(╯▽╰)╭ ","text":"无奈"},{"icon":"o(*////▽////*)q ","text":"脸红"},{"icon":">﹏<","text":""},{"icon":"( ๑´•ω•) \"(ㆆᴗㆆ)","text":""}]},"Heo-100":{"type":"image","container":[{"text":"Heo-100-亲亲","icon":""},{"text":"Heo-100-再见","icon":""},{"text":"Heo-100-加班","icon":""},{"text":"Heo-100-发红包","icon":""},{"text":"Heo-100-吃瓜","icon":""},{"text":"Heo-100-吐血","icon":""},{"text":"Heo-100-吵架","icon":""},{"text":"Heo-100-呲牙笑","icon":""},{"text":"Heo-100-哈士奇","icon":""},{"text":"Heo-100-哭泣","icon":""},{"text":"Heo-100-唱歌","icon":""},{"text":"Heo-100-喜欢","icon":""},{"text":"Heo-100-大笑","icon":""},{"text":"Heo-100-头秃","icon":""},{"text":"Heo-100-奋斗","icon":""},{"text":"Heo-100-害羞","icon":""},{"text":"Heo-100-尴尬","icon":""},{"text":"Heo-100-开心","icon":""},{"text":"Heo-100-微笑","icon":""},{"text":"Heo-100-思考","icon":""},{"text":"Heo-100-恶心","icon":""},{"text":"Heo-100-惊吓","icon":""},{"text":"Heo-100-惊讶","icon":""},{"text":"Heo-100-感动","icon":""},{"text":"Heo-100-愤怒","icon":""},{"text":"Heo-100-我看好你","icon":""},{"text":"Heo-100-抠鼻","icon":""},{"text":"Heo-100-捂嘴笑","icon":""},{"text":"Heo-100-捂脸","icon":""},{"text":"Heo-100-擦汗","icon":""},{"text":"Heo-100-滑稽","icon":""},{"text":"Heo-100-烦恼","icon":""},{"text":"Heo-100-熬夜","icon":""},{"text":"Heo-100-爆炸","icon":""},{"text":"Heo-100-牛年进宝","icon":""},{"text":"Heo-100-狗头","icon":""},{"text":"Heo-100-狗头围脖","icon":""},{"text":"Heo-100-狗头胖次","icon":""},{"text":"Heo-100-狗头花","icon":""},{"text":"Heo-100-狗头草","icon":""},{"text":"Heo-100-生病","icon":""},{"text":"Heo-100-疑问","icon":""},{"text":"Heo-100-眩晕","icon":""},{"text":"Heo-100-睡觉","icon":""},{"text":"Heo-100-禁言","icon":""},{"text":"Heo-100-笑哭","icon":""},{"text":"Heo-100-纠结","icon":""},{"text":"Heo-100-绿帽","icon":""},{"text":"Heo-100-耍酷","icon":""},{"text":"Heo-100-被打","icon":""},{"text":"Heo-100-送福","icon":""},{"text":"Heo-100-阴险","icon":""},{"text":"Heo-100-鬼脸","icon":""},{"text":"Heo-100-鼓掌","icon":""}]},"Bilibili":{"type":"image","container":[{"icon":"","text":"tv_doge"},{"icon":"","text":"tv_亲亲"},{"icon":"","text":"tv_偷笑"},{"icon":"","text":"tv_再见"},{"icon":"","text":"tv_冷漠"},{"icon":"","text":"tv_发怒"},{"icon":"","text":"tv_发财"},{"icon":"","text":"tv_可爱"},{"icon":"","text":"tv_吐血"},{"icon":"","text":"tv_呆"},{"icon":"","text":"tv_呕吐"},{"icon":"","text":"tv_困"},{"icon":"","text":"tv_坏笑"},{"icon":"","text":"tv_大佬"},{"icon":"","text":"tv_大哭"},{"icon":"","text":"tv_委屈"},{"icon":"","text":"tv_害羞"},{"icon":"","text":"tv_尴尬"},{"icon":"","text":"tv_微笑"},{"icon":"","text":"tv_思考"},{"icon":"","text":"tv_惊吓"}]},"bilibili热词系列":{"type":"image","container":[{"text":"bilibiliHotKey-1","icon":""},{"text":"bilibiliHotKey-10","icon":""},{"text":"bilibiliHotKey-11","icon":""},{"text":"bilibiliHotKey-12","icon":""},{"text":"bilibiliHotKey-13","icon":""},{"text":"bilibiliHotKey-14","icon":""},{"text":"bilibiliHotKey-15","icon":""},{"text":"bilibiliHotKey-16","icon":""},{"text":"bilibiliHotKey-17","icon":""},{"text":"bilibiliHotKey-18","icon":""},{"text":"bilibiliHotKey-19","icon":""},{"text":"bilibiliHotKey-2","icon":""},{"text":"bilibiliHotKey-20","icon":""},{"text":"bilibiliHotKey-21","icon":""},{"text":"bilibiliHotKey-22","icon":""},{"text":"bilibiliHotKey-23","icon":""},{"text":"bilibiliHotKey-24","icon":""},{"text":"bilibiliHotKey-25","icon":""},{"text":"bilibiliHotKey-26","icon":""},{"text":"bilibiliHotKey-27","icon":""},{"text":"bilibiliHotKey-28","icon":""},{"text":"bilibiliHotKey-29","icon":""},{"text":"bilibiliHotKey-3","icon":""},{"text":"bilibiliHotKey-30","icon":""},{"text":"bilibiliHotKey-31","icon":""},{"text":"bilibiliHotKey-32","icon":""},{"text":"bilibiliHotKey-4","icon":""},{"text":"bilibiliHotKey-5","icon":""},{"text":"bilibiliHotKey-6","icon":""},{"text":"bilibiliHotKey-7","icon":""},{"text":"bilibiliHotKey-8","icon":""},{"text":"bilibiliHotKey-9","icon":""}]}} \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 000000000..5ab66362a --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,3 @@ +序炁的博客 + +
首页说说轮播加载中...

\ No newline at end of file diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 000000000..7a284dfed --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,3 @@ +序炁的博客 + +
首页说说轮播加载中...

\ No newline at end of file diff --git a/page/4/index.html b/page/4/index.html new file mode 100644 index 000000000..bb2cbe9d7 --- /dev/null +++ b/page/4/index.html @@ -0,0 +1,3 @@ +序炁的博客 + +
首页说说轮播加载中...

\ No newline at end of file diff --git a/page/5/index.html b/page/5/index.html new file mode 100644 index 000000000..b10ebebd0 --- /dev/null +++ b/page/5/index.html @@ -0,0 +1,3 @@ +序炁的博客 + +
首页说说轮播加载中...

\ No newline at end of file diff --git a/posts/10824f12/index.html b/posts/10824f12/index.html new file mode 100644 index 000000000..2ddf5c104 --- /dev/null +++ b/posts/10824f12/index.html @@ -0,0 +1,3 @@ +一键推流工具—— BlogPusher - 序炁的博客 + +

一键推流工具—— BlogPusher

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

近来无事,想着博客推流时的指令有好几条,于是决定写一个小工具简化这个流程这甚至是我第一个实用性的程序

在此之前

我的博客配置好后每次从本地推送源码的指令有四条:

1
2
3
4
git pull origin master
git add .
git commit -m"xxxxxx"
git push origin master

这四条指令都在本地执行,所以每次推流都需要依次输入,而这显然是不方便的,于是我就想写一个能够自动执行这四条指令的工具。

程序设计

很简单,我们可以使用system()函数,其原型如下:

1
int system(const char *command);

给函数传入字符串型的命令行参数就可以在程序中执行命令,于是很容易想到执行这三条命令的代码:

1
2
3
4
system("git pull origin master");
system("git add .");
//怎么样获取需要的commit呢?
system("git push origin master");

这样除了commit提交外,其他的指令都可以自动执行。但这肯定是不完善且不可用的,因为commit的提交信息需要在git addgit push之间确定而不能在git push之后。

于是我们需要在程序中获取commit信息,这样就可以在git add之后自动执行commit提交指令。很容易我们就可以想到一种方法:

1
2
3
4
string commit;
getline(cin, commit);
string commitInput = "git commit -m\"" + commit + "\"";
system(commitInput.c_str());

但我认为这样还不够简洁,我们需要的是一行可以直接推流的指令而不是一个需要用户输入的软件,所以我们需要另一种方式——获取命令行。

获取命令行

一般的c++程序中,我们的main函数都是这样定义的:

1
2
3
int main(void) {
//...
}

但为了获取命令行参数,我们就需要像这样定义:

1
2
3
int main(int argc, char **argv) {
//...
}

其中,argc是命令行参数的个数,argv则是一个指针数组,每个指针指向一个字符串,每个字符串是一个命令行参数。当我们执行一个可执行文件时,若是只在命令提示符中输入可执行文件的文件名,像这样:

1
BlogPusher

那么argc的值就是1,而argv[0]的值就是BlogPusher,而若是在命令提示符中输入可执行文件的文件名和参数,像这样:

1
BlogPusher Update About

此时argc的值就是3,argv[0]的值仍是BlogPusher,但后面argv[1]的值则会是Update,argv[2]的值是About。

所以,我们就可以这样获取到我们需要的commit信息了。

Commit信息处理

光是获取还不够,现在我们需要处理我们获取到的参数。在刚刚的例子中,我们可以看到argv数组的分割是以空格为基础的,但commit中可以包含空格,这就使得直接使用argv[1]是不可行的。

所以,我们需要一种方法来处理commit信息,使其可以正确包含空格。其实很简单,只需要加入一个循环,每次循环获取一个字符串并把它放入字符串commit中,在每一个字符串之间加入空格即可。

1
2
3
4
5
6
7
8
string commit;
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}

加了一个判断,使得程序不会给commit信息加入多余的空格。现在,commit信息就可以正确的包含空格了。

总结

所有程序合在一起差不多是这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;

int main(int argc, char** argv){
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}
string commitInput = "git commit -m\"" + commit + "\"";
system("git pull origin master");
system("git add .");
cout<<"git add success"<<endl;
system(commitInput.c_str());
system("git push origin master");
return 0;
}

编译,放入博客源码文件夹下。注意此时不要忘记在.gitignore中添加一行blogpusher.*,防止git上传时上传blogpusher文件。

在命令提示符中输入blogpusher Update .gitignore,测试一下,非常完美!

最后优化一下,差不多像这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;

int main(int argc, char** argv){
string commit;
for(int i = 1; i < argc; i++){
commit += argv[i];
if(i != argc - 1){
commit += " ";
}
}
string commitInput = "git commit -m\"" + commit + "\"";
cout<<"==========BEGIN PULL=========="<<endl;
system("git pull origin master");
cout<<"==========BEGIN ADD=========="<<endl;
system("git add .");
cout<<"git add success"<<endl;
cout<<"==========BEGIN COMMIT=========="<<endl;
system(commitInput.c_str());
cout<<"==========BEGIN PUSH=========="<<endl;
system("git push origin master");
return 0;
}

大功告成!

题外话

这个东西很早就想做了的说…现在做出来了还是十分欣慰。

程序已经开源到了github,欢迎查看。若是帮到了您的话,麻烦点个star,谢谢。


一键推流工具—— BlogPusher
https://www.ordchaos.com/posts/10824f12/
作者
序炁
发布于
2022725
更新于
2022725
许可协议
\ No newline at end of file diff --git a/posts/1e44a102/index.html b/posts/1e44a102/index.html new file mode 100644 index 000000000..99212072b --- /dev/null +++ b/posts/1e44a102/index.html @@ -0,0 +1,3 @@ +Hexo 通过 GitHub Action 自动部署到云虚拟主机 - 序炁的博客 + +

Hexo 通过 GitHub Action 自动部署到云虚拟主机

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

购买了十年之约的优惠价硅云虚拟主机用于加速访问,记录一下部署过程。

前提条件

你需要已经配置好了GitHub ActionHexo自动部署,若是没有,推荐观看以下文章:

这里就不讲了。

编辑Action

打开(本地博客仓库目录)/.github/workflows/(Action配置文件).yml,在最后添加:

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.0
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

将括号及内部内容换成自己的信息即可。

这里的方法是使用ftp来上传文件到虚拟主机,是对于所有虚拟主机而言最通用的一种方式了。./publicHexo默认的静态文件生成本地地址,无需更改。

最后推流到GitHub即可使用。

题外话

本来以为挺复杂,结果就这么点。

最开始使用的是hexo-deployer-ftpsync插件,结果却根本无法正常使用,于是便转为使用docker镜像。

对了,如果有兴趣购买硅云的主机,那请帮个小忙,用我的邀请链接注册吧:邀请链接

那就这样,886


Hexo 通过 GitHub Action 自动部署到云虚拟主机
https://www.ordchaos.com/posts/1e44a102/
作者
序炁
发布于
2022816
更新于
2022816
许可协议
\ No newline at end of file diff --git a/posts/1e617f9e/index.html b/posts/1e617f9e/index.html new file mode 100644 index 000000000..a77c49bad --- /dev/null +++ b/posts/1e617f9e/index.html @@ -0,0 +1,3 @@ +《梁启超传》读后感 - 序炁的博客 + +

《梁启超传》读后感

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

在这个暑假中,我读了由梁启超学生吴其昌著作的《梁启超传》,这本书也是作者的绝笔之作。在其去世前的一个月,作者便应邀开始写这一本书,但在他完成书的上卷后便不幸身亡,年仅四十岁,同时留下了这本未完稿的《梁启超传》。这本传记虽然仅有五万字,但是阅读者可以很明显的发现作者吴其昌很完美的继承了其老师梁启超“笔锋常带感情”的特质。作者与梁启超一样,感性的思维较强,喜欢用感性的一面来描述事物,感知事物。

梁启超生于一八七三年二月二十三日,字卓如,号任公。清朝光绪年间举人,是中国近代思想家、政治家、教育家、史学家、文学家,也是戊戌变法(百日维新)领袖之一、中国近代维新派、新法家代表人物。

而梁启超生活的时代,正是中国人明最困苦的一段时期。那既是清朝末年,也是我国封建社会的末世。内忧外患,乱象毕现,用作者的话来说,就是“堕入地狱的底层”。然而最可悲的还不在此,而在于当时道德的堕落、思想的颠倒和民智的固陋,堕入地狱的底层而不自知,“哀莫大于心死”!中国从一八四二年到一九四三年这一百年的命运,是“从乐土跌到地狱,又从地狱爬会乐土”“一个四千年历史上从未有的大转折期”。生活在这个时代的稍有血性的国民看着一个又一个的不平等条约的建立与实施都想“蹈东海而自杀”,比如陈天华。而梁启超,是一个成长在这个最黑暗的地狱底层的有血有泪有志气的满身创伤的青年。他对于中国复兴有着坚定不移的信心,所以他没有去蹈东海,而是在“全然无望”中拼命奋斗、挣扎。只是他到死都没有见到中国再度统一的一天。他的眼前没有希望,但心中却充满了希望与斗志。他师从康有为,发动戊戌变法,创学会,办报纸,达到了其政治生涯的顶峰。然而,就像梁启超后来所说的那样:“戊戌维新之可贵,在精神耳”,戊戌变法是一次及其不彻底的改革,依靠的是无能的光绪帝,只是雷声大雨点小的实行了一百多天,就被慈禧太后为首的封建顽固势力所扼杀。“我欲望鲁兮,龟山蔽之。手无斧柯,奈龟山何!”但全书就这样戛然而止,原因我们都知道了。可就算如此,读完后却仍然令人愤慨与惋惜。

现在看看梁启超本人与现在的社会,会发现虽然中国早已统一,但是却缺乏了梁启超的奋斗的心。这个社会,比起梁梁启超当年所处的,自然要文明、要繁盛得多,可依然存在着不公与不善。为纠正这些不公,惩治这些不善,依然有可能要付出惨重的代价。在风险面前,很多人却望而却步,勇往直前的人是有的,但是因为现状的安稳,这些人正在慢慢减少。所以梁启超赴汤蹈火救国的精神在任何一个时代都不会落后。

梁启超是清末维新运动的领袖之一,是近代资产阶级改良主义者;也是提倡诗界、小说界革命的新文化传播者。戊戌变法失败后,他逃亡日本,虽曾和孙中山联系商议合作,但因为他的老师师康有为所制止,从而做了保皇党,也就是拥护皇帝的一批人的其中之一。辛亥革命之后,他谋位于军阀之中,将自己的旗帜插在了反动派的阵营之中而反对革命,晚年时尤其犹反对共产党。对于他在政治上的反动观点与反动行为当然是应当制止的,可是他的护国、爱国的精神与为国赴汤蹈火的精神,我们这个时代是需要的,这种精神在这个时代也是缺乏的。

一九二九年一月十九日,梁启超在北京协和医院溘然长逝,享年五十六岁。

附一张(参考意义不大的)思维导图:


《梁启超传》读后感
https://www.ordchaos.com/posts/1e617f9e/
作者
序炁
发布于
202285
更新于
202285
许可协议
\ No newline at end of file diff --git a/posts/23e22de2/index.html b/posts/23e22de2/index.html new file mode 100644 index 000000000..44b987b75 --- /dev/null +++ b/posts/23e22de2/index.html @@ -0,0 +1,3 @@ +全站 webp 自动切换,加速访问好帮手 - 序炁的博客 + +

全站 webp 自动切换,加速访问好帮手

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。

前期准备

首要任务是拿到webp格式的图片,这个看自己。像我用的vps上的Lsky Pro,本地存储。有高性能vps可以试试用Webp-Server配合。但我的轻量应用承受不起,遂作罢。改为了定时shell脚本,一分钟触发一次:

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
#!/bin/bash

find . -type f -iname "*.png" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpeg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.tif" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

脚本运行时会遍历自己所在的文件夹及其子文件夹,转换所有没有对应webp格式的图片(pngjpgjpegtiff)为webp图片(原图还在,放心)。

这段脚本中使用了cwebp指令,它来源于libwebp。安装可以参考下方:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装编译器以及依赖包
yum install -y gcc make autoconf automake libtool libjpeg-devel libpng-devel
# 请到官网下载最新版本,版本列表:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz
# 解压
tar -zxvf libwebp-1.2.4.tar.gz
# 进入目录
cd libwebp-1.2.4
# 源代码安装环境检查
./configure
# 编译
make
# 安装
make install

安装过程中遇到问题请善用百度/Google,本人不对此负责(bushi

做好以上所有工作后,就可以开始下面的内容。

Service Worker

安装

不知道是什么、如何部署的,可以看看CYF大佬的这两篇文章:

如果你已经部署了Service Worker就可以继续了。

脚本

添加一个监听器,监听fetch事件:

1
2
3
self.addEventListener('fetch', async event => {
//...
});

(或者在本来的监听器里面加上)

然后判断流量是否是对图站的请求,可以用一个if来判断:

1
2
3
4
if(event.request.url.indexOf('your.image.site') !== -1) {
var requestUrl = event.request.url;
//...
}

event.request.url是请求的地址,用indexOf()方法来判断地址中是否包含图站地址,若不反回代表没有的-1即为是对图站的请求。

接下来判断浏览器是否支持webp图片,定义一个变量supportsWebp

1
2
3
4
5
6
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}

如果可以获取到浏览器的Accept头,且头中包含image/webp,即为支持webp,否则为不支持。

然后就可以进一步处理了,若浏览器支持webp,则进行下一步:

1
2
3
4
5
6
if (supportsWebp) {
//...
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}

然后获取请求的文件类型。最开始的脚本只支持pngjpgjpegtiff这四种格式的图片,所以我们也只能篡改这四种格式图片的请求到webp图片上:

1
2
3
4
5
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg') {
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
//...
}

newUrl中存储了新的请求地址,接下来对它发起请求即可:

1
2
3
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");

当请求完成并图片被完整下载以后,进行缓存,代码如下:

1
2
3
4
5
6
7
8
9
10
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);

若获取失败则提示,成功则缓存。

最后,要打断之前的请求,避免降低速度,可以调用event.stopImmediatePropagation()方法打断原始请求。

最后完整代码如下:

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
if(event.request.url.indexOf('img.ordchaos.com') !== -1) {
var requestUrl = event.request.url;
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}
if (supportsWebp) {
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg'){
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);
event.stopImmediatePropagation();
return;
}
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}
}

你学会了吗?

测试

进入网站,若一切正常,当加载到一张图片时,控制台(F12打开)会提示[SW] Redirect https://your.image.site/path/to/img.png to https://your.image.site/path/to/img.webp .这样的信息。

要测试无webp支持的情景,则点击右上角的三个点。

选择更多工具,找到“渲染”并点击。

勾选“停用webp”即可。

此时,加载图片时会提示[SW] Don't support webp image, skip https://your.image.site/path/to/img.png .

可以试试我这里的这张图片:

若浏览器支持webp则会显示Webp Accept!,否则为Webp Reject!This is a jpg file.

题外话

刚刚放寒假,舒坦。

但与之对应,九上已经结束,还有一学期就中考。。。

加油!我可以的!

那就这样,886!


全站 webp 自动切换,加速访问好帮手
https://www.ordchaos.com/posts/23e22de2/
作者
序炁
发布于
2023112
更新于
2024212
许可协议
\ No newline at end of file diff --git a/posts/28b74a2d/index.html b/posts/28b74a2d/index.html new file mode 100644 index 000000000..6df795b12 --- /dev/null +++ b/posts/28b74a2d/index.html @@ -0,0 +1,3 @@ +Picgo ,我 ...... 我 ...... - 序炁的博客 + +

Picgo ,我 ...... 我 ......

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

如题,我要被这个神仙软件气死了。

起因

准备装unity写个游戏,学一学C#,然后就发现C盘爆满飘红。用SpaceSniffer看了一下——好家伙!

Picgo的日志文件,占了我58.6GB.

解释

Picgo上传图片失败时就会开始疯狂写日志,然后文件大小就爆炸。

解决

删掉日志,从组策略里设置一下日志文件大小限制就好了。

可以参考这个:如何在Windows10系统设置日志文件的最大大小

题外话

就离谱!!!


Picgo ,我 ...... 我 ......
https://www.ordchaos.com/posts/28b74a2d/
作者
序炁
发布于
2022114
更新于
2022114
许可协议
\ No newline at end of file diff --git a/posts/2f728g0f/index.html b/posts/2f728g0f/index.html new file mode 100644 index 000000000..f2f623128 --- /dev/null +++ b/posts/2f728g0f/index.html @@ -0,0 +1,3 @@ +《梁启超传》议论文素材积累 - 序炁的博客 + +

《梁启超传》议论文素材积累

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

之前那一篇一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。

第一章 一世纪以来中国的命运——从鸦片战争至梁氏诞生的前夕

第一节 绪说

梁启超生在中国近代最悲惨的100年(1842-1943)年中,虽屡次想跳海自尽,但仍坚决地相信中国必然不亡且断然复兴,所以他才在全然无望中挣扎奋斗。

作文:坚持、毅力、精神

第二节 梁氏生前中国一般的惨况

  • 《奴才好》中足以令人怒发冲冠的描写在当时黑暗社会的情境下甚至不被人认为是严重的怪象。

  • 慈禧太后奢靡无度,倾尽全国财力为自己所用,掏空了国库,令全中国上下不得安宁。

  • 清末国家机构的腐败,如“外交部”(总理衙门)工作人员甚至无法分清澳门与澳洲。

  • 清末军队素质极差,上下组织腐败,不能防国,只能累民。

  • 清末经济建设几乎毫无成效,只因“官与民争”就扩大为了导致清朝覆灭的致命伤。

作文:珍惜、强国、学习

第三节 梁氏生前中国一般的教育状况

  • 清末满朝士大夫都有一种目中无人的气势,自觉这清朝乃是天下第一。

  • 清末全国几乎没有半个学校的教育,教导孩子不去烟馆、青楼而在家里抽大烟、挑“丫头”都成为了“教子有方”。

  • 清末文人及有志青年深受八股文之害,令八股文成为活埋青年的天坑。

  • 清末人民对“洋”存在极深的偏见,如官办“洋学堂”都十分遭人唾弃,只能拉到一批不三不四的学生。校内不教德育、爱国,而只是学习西方下等人的恶俗。

作文:环境、强国、学习

第四节 梁氏后来对于祖国命运的影响

  • 梁启超在混乱的社会环境成功改革文体,大幅推进国民阅读的程度,收获神州文字革命成功之果。

  • 梁启超在国内外创办大量报纸,让报馆完成了“辅助教育,启发民众,指导社会,介绍新学,宣传主义,主持公论,监督行政,纠弹非法,为民喉舌”的神圣工作,同时收获文体、报纸、政体改革的成功,乃至最后的“国体改革”。

作文:坚持、偶像、伟人

第二章 亡国现象与维新初潮——从梁氏诞生至戊戌政变

第五节 综叙

1873年,梁启超出生。此时近代伟人俱全,又冲破了鸦片战争以来中国所带之枷锁,正是突破了低于底层的黑暗,看见天际的一缕祥光。

作文:努力、坚持、时代

第六节 亡国现象的种种——梁氏生后的中国惨况

  • 梁启超出生之后的中国同样是战争不断,且更偏向于内乱。

  • 此时国际形势大好,西方列强都成为了天之骄子,合力来对付中国一国,令中国无辜受到车裂及凌迟之刑。

  • 日本对中国早有图谋,在其只是一个弹丸之地的效果时就已经企图占据朝鲜与中国,且当时日本名士几乎都有着不一的“吞华论”。

作文:毅力、黑暗、光明、社会、时代

第七节 梁氏幼年的家庭生活及家乡环境

  • 梁启超自幼就受到“光荣”“悲痛”两大思想刺激,产生了爱国主义思想,因此埋下了其一生命运的种子。

  • 他虽然受逼迫不能追随孙中山革命,但仍具有浓烈的革命思想,也发表了激烈的革命党言论。

作文:爱国、强国、富国、伟人、偶像

第八节 康梁会接

  • 康有为把各种书乱读一通,完全没有遵循求学问的正确轨道,只是自以为恍然大悟,妙不可言。养成了“予智自圣“的夸大狂态度,不肯随时代而进步。

  • 康有为上书不达,但他的热忱与胆气倒真可佩服。在这样的背景下,他只得在广州长兴里万木草堂开门讲学。梁启超受了陈千秋与曹丁泰两位志士的介绍脱离了陈腐过时的学海堂,而转学入这个新鲜自由的长兴学舍,在这样的学风与学科之下受熏陶四年。

作文:智慧、计划、学习

第九节 梁氏独立事业的开始

  • 梁启超脱胎于长兴学社创立新学。在这样一种不拘形式而朝气蓬勃的学风之下,造就出了许多具有新思想人才,当时一般的学生只有四十人,而五分之二都成为了革命先烈或开国名人。

  • 梁启超创学会启发心智,推行维新,学会中政治性质强大。在戊戌八月政变失败之后,所有的学会都秘密含有了革命的使命,与前期的学会性质有根本上的不同。

  • 梁启超为推行维新而创办报纸。此时,他已明白,学校、学会、报纸是三位一体互相为用的,缺一不可。所以,在北京办学会的时候,他就已经开始办报。这是梁启超生平新闻事业开始的第一章,也是近代中国有正式意义的新闻开始的第一页。

作文:智慧、方法、强国

第三章 维新的失败与革命的成功

第十节 促成戊戌变法的原因

  • 外因-远因:清政府的闭关锁国政策、杀沙俄实力的突飞猛进、列强对中国的围攻、洋务运动的失败。

  • 外因-近因:日本民治维新的胜利、甲午战争失败的国耻、中国被蚕食的痛苦、防止陷入土耳其不变法而衰弱的覆辙。

  • 内因-远因:清政府长期积累政治恶习的崩溃、满族战斗能力与战斗意识的降低、太平天国运动后实际政权的转移、以慈禧太后为核心的宫廷政变。

  • 内因-近因:慈禧太后与皇帝权力的争夺、满族嫉妒汉族情感的具象化、孙中山先生领导的革命运动的激进,国内舆论更加倾向于维新。

  • 由于以上这十六点各种各样的原因,到戊戌年间维新运动已成瓜熟蒂落的现象,除了冥顽无耻,卖身求荣的少数败类以外,几乎所有人都是渴望政治改革有如甘霖一般。

作文:强国、因果、历史

第十一节 戊戌政变史剧的绘影

  • 戊戌变法的规模既不如日本明治维新,就连康有为公车上书的内容也还有千里之差。但就算只是这样,对于当时的清政府而言,也已经算是大刀阔斧了,此时正是光绪帝把皇威发扬到顶点的时候。

  • 光绪帝想趁着改革的机会罢免几个守旧的大臣,但这些顽固的大臣转而向“老佛爷”求助,于是慈禧太后勃然大怒,将光绪帝囚禁而自己垂帘听政,在实际上掌握了清政府的权力。

  • 康有为、梁启超等“小人”“大逆”“可恶透顶”“洋鬼子”的保护,躲开了慈禧太后的清算。其中,谭嗣同本来由日本严密保护,但却自己重新自动出来,愿抛头颅以改造祖国百年的命运。如此的忠与侠实属罕见,也值得我们敬佩。

作文:强国、历史、光明、黑暗、方法

第十二节 政变失败原因的解析

  • 清政府内部早已腐朽不堪,全国大权都在慈禧太后之手,而满人的猜疑程度又大到难以想象,更是有许多守旧的大臣。变法本就是一个不可能完成的任务。

  • 康有为虽然魄力强大、精神勇猛、感情丰富、毅力坚韧,但他同样心胸不广、态度傲慢、个性执拗、理智不强、做事无序、缺乏科学训练、不求上进、所学太杂而不适用其时代,却反而骄然不惭,自谓贯通天地人。

  • 满人生来仇视汉人,排挤汉人,甚至在百维新期间出现了满洲人所谓闹鬼的趣事。在这样的排挤、压迫、攻击之下,维新救国、变法图强本就是一个荒唐的幻想。

  • 一些守旧分子自满于既得利益而不愿其被损伤分毫,故而极力阻挠变法。

作文:方法、强国、历史、革命、国庆


《梁启超传》议论文素材积累
https://www.ordchaos.com/posts/2f728g0f/
作者
序炁
发布于
2022813
更新于
2022813
许可协议
\ No newline at end of file diff --git a/posts/3386e07f/index.html b/posts/3386e07f/index.html new file mode 100644 index 000000000..40004dd53 --- /dev/null +++ b/posts/3386e07f/index.html @@ -0,0 +1,3 @@ +船新说说页面—— Memos 初体验 - 序炁的博客 + +

船新说说页面—— Memos 初体验

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

博客的说说真的是一波三折…

最开始用的是HexoPlusPlus的说说,很好用也很流畅小巧,但是自Hpp停止开发后就用不了了。

然后改用了bber,也很不错,但是辣鸡腾讯云也是离谱,好好的羊毛突然就不让薅了,同时我的twikoo也被迫迁移到了vercel,只得抛弃。

中途也用过别的说说系统,比如说大名鼎鼎的Artitalk亦或者是iSpeak等等,但是都不太满意,而后因为各式各样的原因放弃。

本来我会一直被这玩意困扰…现在不会了!只因为我发现了它——Memos

开源,私有部署,这不就是我要的完美的说说系统吗?!

后端部署

很简单,首先你要有一台vps,然后装上docker.

随后一句指令即可搞定:

1
docker run -d --name memos -p 5230:5230 -v ${PWD}/.memos/:/var/opt/memos neosmemo/memos:latest

随后Memos就会被部署到5230端口,觉得不方便也可以反向代理,这个教程有很多,这里就不写了。

前端

单页

可以看看我的:说说

样式完全是自己写的…你知道对一位学C++的初三学生而言css是什么东西吗?!好吧随便写写也不算难

js来自immmmm,稍微改了一点点,可以在这里看看被压缩了根本看不了

总体而言,如果你也想要部署一个和我完全一样的页面,可以用以下html代码:(记得下载js文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class='memo-nums'>
<p class='note note-info memo-nums-text'>
共有 <span id='memonums'>「数待载之」</span> 条说说
</p>
</div>
<div id="bber"></div>
<script type="text/javascript">
var bbMemos = {
memos : 'https://memos.ordchaos.top/',//修改为自己部署Memos的网址,末尾有斜杠
limit : '',//默认每次显示10
creatorId:'1' ,//默认为101用户
domId: '',//默认为bber
}
</script>
<script src="//jsd.ordchaos.top/marked/marked.min.js"></script>
<script src="/js/talk.js"></script>

注意这里用了Tag插件,如果用不了记得改改。

首页轮播

这个就比较简单了,直接在主题的index.ejs里加上以下代码即可:

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
<p class='note note-info memo-nums-text'>
<i class="iconfont icon-speakernotes"></i><span id="memos-index-space"> </span><span id='memos-t'>首页说说轮播加载中...</span>
</p>
<script src="/js/lately.min.js"></script>
<script>
let jsonUrl =
"https://memos.ordchaos.top/api/memo?creatorId=1&rowStatus=NORMAL" +
"&t=" +
Date.parse(new Date());

fetch(jsonUrl)
.then((res) => res.json())
.then((resdata) => {
data = resdata.data,
resultIndexMemos = new Array(data.length);
for (var i = 0; i < data.length; i++) {
var talkTime = new Date(
data[i].createdTs * 1000
).toLocaleString();
var talkContent = data[i].content;
var newtalkContent = talkContent
.replace(/```([\s\S]*?)```[\s]*/g, " <code>$1</code> ") //全局匹配代码块
.replace(/`([\s\S ]*?)`[\s]*/g, " <code>$1</code> ") //全局匹配内联代码块
.replace(/<iframe([\s\S ]*?)iframe>[\s]*/g, "📺") //全局匹配视频
.replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g, "🌅") //全局匹配图片
.replace(/\[[\s\S]*?\]\([\s\S]*?\)/g, "🔗") //全局匹配连接
.replace(
/\bhttps?:\/\/(?!\S+(?:jpe?g|png|bmp|gif|webp|jfif|gif))\S+/g,
"🔗"
); //全局匹配纯文本连接
if(newtalkContent.length > 25) {
newtalkContent = newtalkContent.substring(0, 25) + '...';
}
resultIndexMemos[i] = `<span class="datetime">${talkTime}</span>: <a href="https://www.ordchaos.com/talk/">${newtalkContent}</a>`;
}
});

// 滚动效果
var i = 0;
setInterval(function () {
document.getElementById("memos-t").innerHTML = resultIndexMemos[i];
window.Lately && Lately.init({ target: ".datetime" });
i++;
if(i == resultIndexMemos.length) i = 0;
}, 3000);
</script>

Tag仍然是不能用就记得改。代码来自eallion,仍然是改了一下原本的逻辑怎么看怎么怪好吧也可能是我没看懂——总而言之,无意冒犯

javascript总算是好些那么一点点,起码与c++还有那么一点像,外加上自己写GDScript的经验,稍稍改点也不算难事改了一小时

效果

自己去看看不行吗,动动手指的事

说说页面

首页轮播

题外话

前前后后搞了半个月了,终于是在学习的闲暇时间整完,中途也是收获良多。

那就这样,886!


船新说说页面—— Memos 初体验
https://www.ordchaos.com/posts/3386e07f/
作者
序炁
发布于
20221126
更新于
20221126
许可协议
\ No newline at end of file diff --git a/posts/340b325e/index.html b/posts/340b325e/index.html new file mode 100644 index 000000000..6d233df1f --- /dev/null +++ b/posts/340b325e/index.html @@ -0,0 +1,3 @@ +学习笔记——二叉树 - 序炁的博客 + +

学习笔记——二叉树

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

二叉树binary tree,BT

介绍

  • 一种特殊的树形结构,是度数为2的树。即二叉树的每个节点最多具有两个子节点,每个节点的字节点分别称为左孩子、右孩子,子树则为左子树,右子树。
  • 二叉树可以为空且一定有序。
  • 在二叉树的第i层上至多有2i个节点(i>=0)。
  • 深度为m的二叉树上至多有12m+112=2m+11\frac{1-2^{m+1}}{1-2}=2^{m+1}-1个节点(m>=0),一棵深度为m且有2m+112^{m+1}-1个节点的二叉树被称为满二叉树。
  • 每一个节点都与深度为m的满二叉树中编号为1~n的节点一一对应的深度为m,有n个节点的二叉树被称为完全二叉树。
  • 对于任意一棵二叉树,若其有n0个叶节点,n2个度为2的节点,则一定有n0=n2+1。
  • 具有n个节点的完全二叉树的深度是floor(log2n)floor\left( \log _2n \right)
  • 在有n个节点的完全二叉树中,对于编号为i的节点:
    • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
    • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
    • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

如下图即二叉树示意图:

存储结构

单链表结构
1
2
3
4
5
6
7
struct node {
int data; //数据域
node* lc, rc; //分别指向左孩子于右孩子
};
struct bt {
node* root;
}t;

与树一样,其实就是孩子表示法。

双链表结构
1
2
3
4
5
6
7
8
struct node {
int data; //数据域
node* lc, rc; //分别指向左孩子于右孩子
node* father; //指向父节点
};
struct bt {
node* root;
}t;

同理,其实就是父亲孩子表示法。

遍历

  • 先序遍历(输出->左孩子->右孩子)
  • 中序遍历(左孩子->输出->右孩子)
  • 后序遍历(左孩子->右孩子->输出)

普通树转二叉树

  1. 对于每一个节点,去除除最左边的树枝之外的所有树枝。
  2. 从最左边的节点开始,依次次将同层的每个兄弟节点横向相连。
  3. 以根节点为中心,将图形顺时针旋转约45°。

如下图所示:

树的计数

具有n(n>=1n为整数)个节点的二叉树的种类的数量可以用下方的函数来表示:

f(n)={i=0n1f(i)f(ni1)(n>1)1(0n1)f\left( n \right) =\begin{cases} \sum_{i=0}^{n-1}{f\left( i \right) \cdot f\left( n-i-1 \right)}& \left( n>1 \right)\\ 1& \left( 0\leqslant n\leqslant 1 \right)\\ \end{cases}

题外话

这是第二篇学习笔记,上一篇可以点击这里查看。


学习笔记——二叉树
https://www.ordchaos.com/posts/340b325e/
作者
序炁
发布于
202271
更新于
202271
许可协议
\ No newline at end of file diff --git a/posts/3b90dbec/index.html b/posts/3b90dbec/index.html new file mode 100644 index 000000000..b6af3ff8f --- /dev/null +++ b/posts/3b90dbec/index.html @@ -0,0 +1,3 @@ +自托管 E-mail ,宝宝喜欢妈妈爱 - 序炁的博客 + +

自托管 E-mail ,宝宝喜欢妈妈爱

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进https://qiye.aliyun.com登录。于是趁着黑色星期五RackNerd的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。

配置如下(年付$10.28)

硬件配置
CPU1
RAM768MB
SSD10GB
流量1TB

还是比较磕碜的,不过价格在这,无所谓了。

经历

首先,我需要为vps开通rDNS记录到mx.ordchaos.com上。后台可以自主设置,很方便…

bang!

好,很好,我沉得住气。发个工单问一下:

工单截图

哦!原来如此!好的,继续交流后,rDNS设置成功,但然而我却发现无法访问?!一番探查之后,发现这样一个事实——被墙啦!

于是只得继续发工单:

终于搞定。

Mailu.io部署

设置主机名

vpsbash中输入:

1
nano /etc/hosts

在其中具有服务器ip地址的一行中,将后面的内容改为(假设你的域名是example.com,服务器ip88.88.88.88):

1
88.88.88.88    mx.example.com   mx

编辑好后,在vps中执行:

1
2
echo "mx" > /etc/hostname
hostname -F /etc/hostname

这样就设置好了主机名,可以通过hostname命令确认是否设置成功:

1
2
hostname
hostname -f

前者只会输出mx,后者则会输出mx.example.com。如果不是,那就是设置错了。

设置DNS解析

去你的域名DNS解析服务商,设置以下DNS解析(假设你的域名是example.com,服务器ip88.88.88.88):

主机名解析类型内容
@A(如果已有解析就不管,没有就解析到127.0.0.1,注意不能有CNAME记录)
mxA88.88.88.88
@MXmx.example.com(优先级为10)
@TXTv=spf1 mx a:mx.example.com ~all
_dmarcTXTv=DMARC1; p=reject; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; adkim=s; aspf=s
example.com._report._dmarcTXTv=DMARC1

然后去vps服务商,设置rDNS(或者叫做PTR)解析,将88.88.88.88解析到mx.example.com

获取配置

访问Mailu.io的配置生成网页:https://setup.mailu.io

写文时最新版本为1.9,保持不变。下方部署方式选择Compose.

  • 1:在此处填写自己的域名

  • 2:自己起个名字(如“序炁的电子邮局”)

  • 3:若你的域名为example.com,则在此处填写https://mx.example.com

  • 4:点击勾选

  • 1:推荐选择rainloop,更加现代好看

  • 2:填写自己vpsip地址

  • 3:若你的域名为example.com,则在此处填写mx.example.com

最后,你会看到如下界面:

照着界面的指示,回到vps执行指令:

1
2
mkdir /mailu
cd /mailu

然后回到刚刚的页面,下载配置文件:

1
2
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/docker-compose.yml
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/mailu.env

最后执行(假设你的域名是example.com,密码设置为PASSWORD):

1
2
docker-compose -p mailu up -d
docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD

就安装完成了。

配置

在浏览器中访问https://mx.example.com登录您的管理员面板:

管理员面板

使用账号admin@example.com和密码PASSWORD登录即可(假设你的域名是example.com,密码设置为PASSWORD)。

然后点击左侧的“邮件域”:

然后点击如下的按钮:

在新界面中点击“生成密钥”,然后复制dkim配置:

1
dkim._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

进行域名解析即可。

创建账号

邮件域>用户>添加用户,按需配置即可。

使用

退出管理员账号,访问https://mx.example.com/webmail,登录即可(选择“登录Webmail”)。

主页面

测试

MailTester上可以进行测试,如下是我测试结果:

很完美了,对吧(

以前没有超过8

题外话

完成了很久以前的夙愿。

欢迎跟着做一遍哦!也欢迎提问!


自托管 E-mail ,宝宝喜欢妈妈爱
https://www.ordchaos.com/posts/3b90dbec/
作者
序炁
发布于
20221128
更新于
20221128
许可协议
\ No newline at end of file diff --git a/posts/46d2370f/index.html b/posts/46d2370f/index.html new file mode 100644 index 000000000..96a0025ff --- /dev/null +++ b/posts/46d2370f/index.html @@ -0,0 +1,3 @@ +【不建议】免费 s3 桶——棱束链联盟 - 序炁的博客 + +

【不建议】免费 s3 桶——棱束链联盟

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

小品牌,无法保证SLA,故不再推荐。本站图片现已全部转移到阿里云oss

我是在B站看到棱束链的宣传视频的,点进官网就看见了棱束链联盟的广告。想着免费嘛,就申请了一下。效率还不错,第二天就通过了。现在博客的图片就放在上面,感觉速度不错,至少比之前的blackbaze+cloudflare要快。

申请

很简单,首先进入官网棱束链,在顶栏上点击产品,选择棱束链联盟。

然后就抵达了申请页面:

填写表单,按要求在网站底部加入棱束链提供的Logo,比如我的:(可以自己在网站底部看看)

提交表单,等着就可以了。

如果申请了就记得看一看自己提供的邮箱,通过了就会发邮件通知你。我的话第二天早上就发现通过了,处理速度还是不错的。给到了我10G的空间与20G的流量,诚意很足。

之后进入控制台,点击对象存储,再创建存储桶就可以使用了。

PicGo配置

PicGo作为一个图片上传工具是非常不错的,拓展性很高。同时作为一款开源软件,其发布在了GitHub上。这里默认已经安装完成了PicGo。

安装S3桶插件

打开PicGo,点击“插件设置”,在搜索框中搜索“s3”,安装第一个就可以了:

我这里安装过了,所以就显示的是“已安装”。这个插件支持所有s3桶,比如之前的b2以及这个棱束链。

获取配置信息

secretIDsecretKey

进入棱束链的控制台,点击个人中心,在“功能设置”中开启API并记下secretIDsecretKey,若是忘了就只能重新获取。

桶地域信息

前往存储桶列表,点击桶右侧的“配置”按钮,记下“桶信息”卡片中的地域与端点信息即可。

注意,这里的桶一定要是公开桶!

配置PicGo图床

点击图床设置-AmazonS3,填写对应参数即可,大致如下:

  • 应用密钥ID:上述获取到的secretId
  • 应用密钥:上述获取到的 secretKey
  • 桶:上述存储桶的名字
  • 权限:public-read(桶权限,公共读)
  • 地区:上述获取到的地域
  • 自定义节点:上述获取到的端点
  • 文件路径:{year}/{month}/{md5}.{extName}(默认上传到桶的文件路径,格式如下:)
格式描述
{year}当前日期 - 年
{month}当前日期 - 月
{day}当前日期 - 日
{fullName}完整文件名(含扩展名)
{fileName}文件名(不含扩展名)
{extName}扩展名(不含.
{md5}图片 MD5 计算值
{sha1}图片 SHA1 计算值
{sha256}图片 SHA256 计算值

然后点击“设为默认图床”并确定即可,之后只需要在“上传区”页面就可以一键上传图片并复制链接了。

题外话

文章部分参考官方文档

这篇博文不是广告,只是想大家都可以薅一把羊毛并水一篇博文(逃

那就这样,886。


【不建议】免费 s3 桶——棱束链联盟
https://www.ordchaos.com/posts/46d2370f/
作者
序炁
发布于
202286
更新于
202289
许可协议
\ No newline at end of file diff --git a/posts/4996fe6c/index.html b/posts/4996fe6c/index.html new file mode 100644 index 000000000..2d5f011f0 --- /dev/null +++ b/posts/4996fe6c/index.html @@ -0,0 +1,3 @@ +三角形覆盖正方形的研究 - 序炁的博客 + +

三角形覆盖正方形的研究

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

命题

如图1.0.1,等腰三角形GCD与正方形ABCD共边CD;CG、DG分别交AB于点E、点F. 则问不断增加等腰三角形GCD的高,能否使等腰三角形GCD完全覆盖住正方形ABCD?

证明/证伪

设正方形边长为a,三角形GCD的高为x,四边形EFCD的面积为y

方法一

ABCD是正方形A=B=90°ABAC于点ABD于点BAB//CDAECBFD都是直角三角形,其中A=B=90°,且GCDGEF三角形GEF的高是(xa),三角形GCD的高是xEF:CD=(xa):xEF=CDxax=a(xa)x=axa2x=aa2xAE=BF=12(ABEF)=12[a(aa2x)]=a22xtanBDF=tanACE=AEAC=BFBD=a22xaGCD完全覆盖正方形ABCD时,有GDC=GCD90°GDC=GCD=90°时,tanBDF=tan(90°GDC)=tanACE=tan(90°GCD)=tan0°=0AEAC=BFBD=a22xa=0a22x=0a2=0a=0此时原式不成立,所以等腰GCD不能完全覆盖住正方形ABCDGDC=GCD>90°时,GDC+GCD>180°三角形内角和为180°此时GCD不是三角形,不符合题设,所以等腰GCD不能完全覆盖住正方形ABCD综上所述,等腰GCD不能完全覆盖住正方形ABCD\because ABCD\text{是正方形} \\ \therefore \angle A=\angle B=90\degree\text{,}AB\bot AC\text{于点}A\text{且}\bot BD\text{于点}B\text{,}AB\text{//}CD \\ \therefore \bigtriangleup AEC\text{与}\bigtriangleup BFD\text{都是直角三角形,其中}∠A=∠B=90\degree\text{,且}\bigtriangleup GCD\text{∽}\bigtriangleup GEF \\ \text{又}\because \text{三角形}GEF\text{的高是}\left( x-a \right) \text{,三角形}GCD\text{的高是}x \\ \therefore EF:CD=\left( x-a \right) :x \\ \therefore \mathrm{EF}=\mathrm{CD}\frac{x-a}{x}=\frac{a\left( x-a \right)}{x}=\frac{ax-a^2}{x}=a-\frac{a^2}{x} \\ \therefore AE=BF=\frac{1}{2}\left( AB-EF \right) =\frac{1}{2}\left[ a–\left( a-\frac{a^2}{x} \right) \right] =\frac{a^2}{2x} \\ \therefore \tan \angle BDF=\tan \angle ACE=\frac{AE}{AC}=\frac{BF}{BD}=\frac{\frac{a^2}{2x}}{a} \\ \text{当}\bigtriangleup GCD\text{完全覆盖正方形}ABCD\text{时,有}∠GDC=∠GCD\geqslant 90\degree \\ \text{当}∠GDC=∠GCD=90\degree\text{时,} \\ \tan ∠BDF=\tan \left( 90\degree-∠GDC \right) =\tan ∠ACE=\tan \left( 90\degree-∠GCD \right) =\tan 0\degree=0 \\ \therefore \frac{AE}{AC}=\frac{BF}{BD}=\frac{\frac{a^2}{2x}}{a}=0 \\ \therefore \frac{a^2}{2x}=0\text{,}a^2=0\text{,}a=0 \\ \text{此时原式不成立,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD \\ \text{当}∠GDC=∠GCD>90\degree\text{时,} \\ \text{有}∠GDC+∠GCD>180\degree \\ \because \text{三角形内角和为}180\degree \\ \therefore \text{此时}GCD\text{不是三角形,不符合题设,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD \\ \text{综上所述,等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD

方法二

ABCD是正方形AB//CDGCDGEF,四边形EFCD是梯形GEF的高是(xa)GCD的高是xEF:CD=(xa):xEF=CDxax=a(xa)x=axa2x=aa2xS梯形EFCD=12AC(EF+CD)=12[a(aa2x)+a]=12a(2aa2x)=a2a32x若要让等腰GCD完全覆盖住正方形ABCD,则显然有S梯形EFCD=S正方形ABCD于是可得a2=a2a32x,则a32x=0,故a3=0a=0此时原式无意义,所以等腰GCD不能完全覆盖住正方形ABCD\because ABCD\text{是正方形} \\ \therefore AB//CD \\ \therefore \bigtriangleup GCD\text{∽}\bigtriangleup GEF\text{,四边形}EFCD\text{是梯形} \\ \text{又}\because \bigtriangleup GEF\text{的高是}\left( x-a \right) \text{,}\bigtriangleup GCD\text{的高是}x \\ \therefore EF:CD=\left( x-a \right) :x \\ \therefore \mathrm{EF}=\mathrm{CD}\frac{x-a}{x}=\frac{a\left( x-a \right)}{x}=\frac{ax-a^2}{x}=a-\frac{a^2}{x} \\ \therefore S_{\text{梯形}EFCD}=\frac{1}{2}\mathrm{AC}\left( \mathrm{EF}+\mathrm{CD} \right) =\frac{1}{2}\left[ a\left( a-\frac{a^2}{x} \right) +a \right] =\frac{1}{2}a\left( 2a-\frac{a^2}{x} \right) =a^2-\frac{a^3}{2x} \\ \text{若要让等腰}\bigtriangleup GCD\text{完全覆盖住正方形}ABCD\text{,则显然有}S_{\text{梯形}EFCD}=S_{\text{正方形}ABCD} \\ \text{于是可得}a^2=a^2-\frac{a^3}{2x}\text{,则}\frac{a^3}{2x}=0\text{,故}a^3=0\text{,}a=0 \\ \text{此时原式无意义,所以等腰}\bigtriangleup GCD\text{不能完全覆盖住正方形}ABCD

综上所述,等腰三角形GCD无法完全覆盖住正方形ABCD.

推广

从方法二的证明过程中,可以发现三角形GCD可以不是等腰三角形,此时结论依旧成立。所以我们有真命题:在图1.0.1三角形GCD无法完全覆盖住正方形ABCD.

探究

在方法二中,我们得出了正方形ABCD的边长a,三角形GCD的高x与梯形EFCD面积y之间的关系式,亦或者说是函数即y=a2a32xy=\mathrm{a}^2-\frac{\mathrm{a}^3}{2\mathrm{x}}

那么,若是不让三角形GCD完全覆盖正方形ABCD(不让三角形GCD的高等于无限),而是让其高尽量长,趋近于无限呢?

此时,可得limx(a2a32x)=a2\underset{x\rightarrow \infty}{\lim}\left( a^2-\frac{a^3}{2x} \right) =a^2

于是有当三角形GCD的高x趋近于无限时,梯形EFCD的面积趋近于正方形ABCD的面积a², 此时三角形GCD在正方形内的面积趋近正方形ABCD的面积.

结论

1.0.1中的三角形GCD无法完全覆盖住正方形ABCD,但若三角形GCD的高趋近于无限,则此时三角形GCD在正方形内的面积趋近正方形ABCD的面积.


三角形覆盖正方形的研究
https://www.ordchaos.com/posts/4996fe6c/
作者
序炁
发布于
202254
更新于
202254
许可协议
\ No newline at end of file diff --git a/posts/53c0d957/index.html b/posts/53c0d957/index.html new file mode 100644 index 000000000..f5b263b43 --- /dev/null +++ b/posts/53c0d957/index.html @@ -0,0 +1,3 @@ +About Food - 序炁的博客 + +

About Food

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

Hello everybody!

Fast food is come from Ancient Roman. At that time, many people didn’t have enough money to buy or rent a house with a kitchen. So many people could only buy food from street vendors. At the same time, there were some pilgrims to Rome to buy fast food, too. That’s the first kind of fast food. And now, fast food has become popular all over the world.

Fast food is tasty, but there are some criticisms of fast food. Lots of fast food are rich in calories as they include considerable amounts of mayonnaise, cheese, salt, fried meat, and oil, thus containing high fat content. Excessive consumption of fatty ingredients such as these results in unbalanced diet. Children who eat fast food tend to eat less fiber, milk, fruits, and non-starchy vegetables. And even adults, like the school’s foreign teacher, Daniel. He likes to eat fast food and snacks. He usually buys snacks after class. Have you seen him? He is very fat and looked very old. But he is only in his 20s. I took his class while I was still in the class GUHONGMING. He hardly ever came upstairs. Because he was too fat to hold his weight. So we always have his class on the first floor. But don’t worry, it happens that some other foods are healthy and good for us, which is also the content of our next section - healthy food.

There are also some other food besides fast food, like vegetables and fruits. We can call then as healthy foods. They can help our body in many ways. First of all, there are many vitamins in them, such as vitamin C, which is very important for the human’s body. In the past, crews on the boat caught on a disease called scurvy. Then they found out a way to cure the disease: eat fruits and vegetables which are rich in vitamin C. So now we can see that healthy food such as fruits and vegetables are very important and good for our human’s body.

Besides, there are some foods that are healthy and have many proteins, such as meat. Proteins play a major role in ensuring your overall well-being. Meanwhile, it is one of the most important components of every cell presenting in the body. In our daily life, we mainly eat vegetables and meat. With the improvement of people’s living standards, people’s interest in meat is getting lower and lower. Many people eat vegetables and fruits as their staple food, and female friends stop eating meat in order to keep fit. But people do not eat meat will lead to inadequate protein intake, will lead to physical weakness, decreased resistance, fatigue, cold, lack of energy, memory loss, low quality of life, affect work and study. So now we can see the importance of healthy food. Let’s eat more healthy food and eat less fast food! Don’t forget that healthy food is good for your body and fast food is not.


About Food
https://www.ordchaos.com/posts/53c0d957/
作者
序炁
发布于
2021320
更新于
2021320
许可协议
\ No newline at end of file diff --git a/posts/618137f7/index.html b/posts/618137f7/index.html new file mode 100644 index 000000000..402bf0e01 --- /dev/null +++ b/posts/618137f7/index.html @@ -0,0 +1,3 @@ +免费高速文件分享小技巧 - 序炁的博客 + +

免费高速文件分享小技巧

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

首先提示一下,这会是一篇非常非常短的博文。

介绍

还在为百度网盘那该死的限速而发愁吗?如果你在网络上分享文件,肯定不想因为下载者因为百度网盘的限速而对你破口大骂(不是 对吧。这里推荐一个老牌云盘——蓝奏云,官网在这里

不限速,无限空间(单文件限100M),个人还是感觉非常不错,大文件要传上去也可以分卷压缩。

小技巧

网络上无法访问的蓝奏云文件分享可以试着把二级域名改为lanzoui试试哦。

题外话

没啦,就这么短。

886


免费高速文件分享小技巧
https://www.ordchaos.com/posts/618137f7/
作者
序炁
发布于
2022810
更新于
2022810
许可协议
\ No newline at end of file diff --git a/posts/6270475f/index.html b/posts/6270475f/index.html new file mode 100644 index 000000000..ea78422b2 --- /dev/null +++ b/posts/6270475f/index.html @@ -0,0 +1,3 @@ +C++ 链表实现队列 - 序炁的博客 + +

C++ 链表实现队列

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

之前介绍了数组队列的实现方法,若是没有看过建议去看看,这次来介绍如何用链表实现队列。

概念引入

首先让我们了解一下什么是链表:

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。
——百度百科 链表

所以,首先我们需要定义一个链表出来。

结构搭建

其实基本一样,不过这次要定义两个结构,一个是节点,一个是队列本身:

1
2
3
4
5
6
7
8
9
struct node {
int v;
node * next;
};

struct myqueue {
node * first;
node * last;
};

对于每一个节点,我们需要它储存一个数据与其下一个节点的地址,分别储存在int型变量vnode型指针next中。

而后对于每一个队列或者是链表,我们需要储存其第一个与最后一个节点的地址,分别放在firstlast中。

结构体定义完后,同样的初始化:

1
2
3
4
void init(myqueue *t) {
t->first = t->last = NULL;
return;
}

这里让队列的首项与尾项同时为NULL,完成初始化

之后是数据操作的isempty函数,先行判断队列是否为空:

1
2
3
4
bool isempty(myqueue *t) {
if(t->last == NULL && t->first == NULL) return 1;
else return 0;
}

原理很简单,如果队列的尾项与首项都为NULL,则显然此队列为空。

之后是push函数,将一个数据推入队列的最后:

1
2
3
4
5
6
7
8
9
10
void push(myqueue *t, int s) {
node * temp = new node;
if(isempty(t)) t->first = t->last = temp;
else {
t->last->next = temp;
t->last = t->last->next;
}
temp->v = s;
return;
}

创建一个空节点,如果队列为空,则作为首项与尾项,否则作为尾项的下一项,然后给其赋值即可。

第二个是pop函数,删除队列首项,注意先判断队列是否为空:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myqueue *t) {
if(isempty(t)) return;
if(t->first == t->last) {
free(t->first);
init(t);
} else {
node * temp = t->first;
t->first = t->first->next;
free(temp);
}
return;
}

pop完队列为空则调用init函数重新化为空队列,否则将首项改为首项的下一项,但记住无论如何都要调用free函数释放原先首项的空间,节省内存。

再就是获取队列的首项、尾项、第n项以及长度,代码相对简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int getf(myqueue *t) {
if(!isempty(t)) return t->first->v;
else return 0;
}

int getl(myqueue *t) {
if(!isempty(t)) return t->last->v;
else return 0;
}

int getlength(myqueue *t) {
if(isempty(t)) return 0;
int length;
node * temp = t->first;
for(length = 1;;length++) {
if(temp == t->last) break;
temp = temp->next;
}
return length;
}

特别注意若队列为空,则不应当返回队列所谓的首项与尾项。

对于长度的获取,只需要遍历整个队列,直到搜索到队列尾项再输出长度即可。

解决问题

与之前的问题是一样的,搭建的框架也很相似,故而解答同样基本一致。

问题背景

n(n <= 100)个小朋友排队打针,他们每个人都有依次自己的编号为1, 2, 3, 4, …, n。他们都很害怕打针,所以当排在自己前面的小朋友打针时就会跑走到队伍最后。试设计一程序,输入小朋友数量,输出他们打针的顺序。

样例输入:5
样例输出:1 3 5 4 2

问题分析

略,可以参考之前的文章

注意这一次是使用指针来访问队列的,故而此次的程序与上次有略微区别。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main() {
myqueue test;
init(&test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(&test, i); //编号依次入队
for(int i = 1;!isempty(&test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(&test);
pop(&test);
push(&test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(&test)<<" ";
pop(&test);
}
}
return 0;
}

queue类型

这里对于队列的编写其实还是为了学习与方便理解,事实上可以方便的在引用了头文件queue后直接定义队列,更加方便,竞赛或开发时也更加节省时间。

使用格式如下:

1
2
3
4
5
6
7
8
#include <queue> //引用头文件,若使用万能库可忽略
queue<int> Q; //定义一个int型队列,名称为Q,当然也可以是别的类型与别的名称
Q.empty(); //返回队列Q是否为空
Q.size(); //返回队列Q长度
Q.front(); //返回队列Q的第一个元素
Q.back(); //返回队列Q的最后一个元素
Q.push(); //在队列Q后面插入一个元素, 比如插入数字5: Q.push(5)
Q.pop(); //从队列Q里移出第一个元素

下面给出使用queue队列的同样问题的解答,请读者自行参考:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int main() {
queue<int> test;
int n;
cin>>n;
for(int i = 1;i <=n;i++) test.push(i);
for(int i = 1;!test.empty();i++) {
if(i%2 == 0) {
int temp = test.front();
test.pop();
test.push(temp);
}
else {
cout<<test.front()<<" ";
test.pop();
}
}
return 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
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
#include<bits/stdc++.h>
using namespace std;

struct node {
int v;
node * next;
};

struct myqueue {
node * first;
node * last;
};

void init(myqueue *t) {
t->first = t->last = NULL;
return;
}

bool isempty(myqueue *t) {
if(t->last == NULL && t->first == NULL) return 1;
else return 0;
}

void push(myqueue *t, int s) {
node * temp = new node;
if(isempty(t)) t->first = t->last = temp;
else {
t->last->next = temp;
t->last = t->last->next;
}
temp->v = s;
return;
}

void pop(myqueue *t) {
if(isempty(t)) return;
if(t->first == t->last) {
free(t->first);
init(t);
} else {
node * temp = t->first;
t->first = t->first->next;
free(temp);
}
return;
}

int getf(myqueue *t) {
if(!isempty(t)) return t->first->v;
else return 0;
}

int getl(myqueue *t) {
if(!isempty(t)) return t->last->v;
else return 0;
}

int getlength(myqueue *t) {
if(isempty(t)) return 0;
int length;
node * temp = t->first;
for(length = 1;;length++) {
if(temp == t->last) break;
temp = temp->next;
}
return length;
}

int main() {
myqueue test;
init(&test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(&test, i); //编号依次入队
for(int i = 1;!isempty(&test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(&test);
pop(&test);
push(&test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(&test)<<" ";
pop(&test);
}
}
return 0;
}

/* 使用queue队列的版本
int main() {
queue<int> test;
int n;
cin>>n;
for(int i = 1;i <=n;i++) test.push(i);
for(int i = 1;!test.empty();i++) {
if(i%2 == 0) {
int temp = test.front();
test.pop();
test.push(temp);
}
else {
cout<<test.front()<<" ";
test.pop();
}
}
return 0;
}
*/

C++ 链表实现队列
https://www.ordchaos.com/posts/6270475f/
作者
序炁
发布于
202264
更新于
202264
许可协议
\ No newline at end of file diff --git a/posts/6a062b97/index.html b/posts/6a062b97/index.html new file mode 100644 index 000000000..5638dfca1 --- /dev/null +++ b/posts/6a062b97/index.html @@ -0,0 +1,3 @@ +四种排序 - 序炁的博客 + +

四种排序

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

在这里简单的以浅显易懂的方式写一下竞赛中常用的四种通用排序方式。

冒泡排序

大概是所有人第一次学到的排序方式,毕竟它实在是太经典了。

简单介绍一下原理:

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。
它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从ZA)错误就把他们交换过来。走访元素的工作是重复地进行,直到没有相邻元素需要交换,也就是说该元素列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

——来自 百度百科 冒泡排序

一言以蔽之,即依次按规律交换相邻元素位置,直至不能交换为止。

知道这一点就好办了,很容易就可以写出程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
void bubbleSort(int f, int l) {
bool flag = 1;
while(true) {
for(int i = f;i < l;i++) {
if(a[i] > a[i + 1]) {
swap(a[i], a[i + 1]); //交换
flag = 0;
}
}
if(flag) break; //直至不能交换位置为止
else flag = 1;
}
return;
}

运行一下,成功排序。

选择排序

听名字就知道,这是一种通过“选择”来排序的算法,它通过每次选择未排序元素中的最大/最小值并与最后一个未排序元素交换位置来进行排序。

附一张原理图(来自菜鸟教程):

代码依旧很简单:

1
2
3
4
5
6
7
8
9
10
void selectionSort(int f, int l) {
for(int i = f;i <= l;i++) {
int max = f;
for(int j = f + 1;j <= l - i;j++) {
if(a[j] > a[max]) max = j;
}
swap(a[max], a[l - i]); //难道你不会写swap()?
}
return;
}

(甚至比冒泡都简单)

同样的,正常运行。

快速排序

非常经典的排序算法,也是公认最快的的排序算法。原理是用基准数分割,把大于/小于基准数的数放在基准数左边,其余放在右边,此时右边部分个数据皆小于/大于左边所有数据,然后对左右两边区间分别递归调用即可。

先放上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void quickSort(int f, int l) {
int i = f, j = l, mid = a[(f + l)/2];
do {
while(a[i] < mid) i++;
while(a[j] > mid) j--;
if(i <= j) {
swap(a[i], a[j]);
i++;
j--;
}
} while(i <= j);
if(f < j) quickSort(f, j);
if(l > i) quickSort(i, l);
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
32
void mergeSort(int f, int l) {
if(f == l) return;

int mid = (f + l)/2;
mergeSort(f, mid);
mergeSort(mid + 1, l);

int i = f, j = mid + 1, k = 0, r[l - f + 1];
while(i <= mid && j <= l) {
if(a[i] <= a[j]) {
r[k] = a[i];
i++;
k++;
} else {
r[k] = a[j];
j++;
k++;
}
}
while(i <= mid) {
r[k] = a[i];
i++;
k++;
}
while(j <= l) {
r[k] = a[j];
j++;
k++;
}
for(int p = f;p <= l;p++) a[p] = r[p - f];
return;
}

二路归并排序的原理是先以中间数为基准分割出两个子序列然后分别进行归并排序,然后对有序表进行合并,相信看代码也可以看出来。最后将临时数组的值赋给待排序数组就结束。

效率测试

时间复杂度

算法的时间复杂度是一个函数,它定性描述该算法的运行时间,常用大O来表述。若用函数f(n)描述算法执行所要时间的增长速度,用函数T(n)表示算法需要执行的运算次数存在常数c和函数f(n),使得当n>=cT(n)<=f(n),记作T(n)=O(f(n)),其中n代表数据规模。显然,n越小,算法运行的越快。

常见时间复杂度等级如下表:

分类写作
常量阶O(1)
对数阶O(log(n))
线性阶O(n)
线性对数阶O(nlog(n))
n方阶O(nn)
指数阶O(2n)
阶乘阶O(n!)

以及常用算法的时间复杂度如下表:

算法平均时间复杂度最好情况最坏情况
冒泡排序O(n2)O(n)O(n2)
选择排序O(n2)O(n2)O(n2)
插入排序O(n2)O(n)O(n2)
希尔排序O(nlog2(n))O(n2)O(nlog2(n))
归并排序O(nlog(n))O(nlog(n))O(nlog(n))
快速排序O(nlog(n))O(nlog(n))O(n2)
堆排序O(nlog(n))O(nlog(n))O(nlog(n))
计数排序O(n+k)O(n+k)O(n+k)
桶排序O(n+k)O(n+k)O(n2)
基数排序O(n×k)O(n×k)O(n×k)

测时

除了时间复杂度,还有一种方式可以测试算法效率——对于相同的数据,直接测试算法排序用时并比较即可。使用ctime头文件中的clock()函数即可获取时间,运行前后的时间差即为运行用时。

于是有代码如下:

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
int main() {
int n;
cin>>n;

default_random_engine e;
uniform_int_distribution<int> u(0,1000000);
e.seed(time(0));

for(int i = 0;i < n;i++) {
b[i] = u(e);
}
clock_t begin, end;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
selectionSort(0, n - 1);
end = clock();
cout<<"selectionSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
bubbleSort(0, n - 1);
end = clock();
cout<<"bubbleSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
mergeSort(0, n - 1);
end = clock();
cout<<"mergeSort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

for(int i = 0;i < n;i++) a[i] = b[i];
begin = clock();
quickSort(0, n - 1);
end = clock();
cout<<"qsort end"<<endl<<"time: "<<double(end - begin) / CLOCKS_PER_SEC * 1000<<"ms"<<endl<<endl;

return 0;
}

额外使用了random头文件中的函数用来生成在01000000间的随机数用于测试(我懒得写用法了,建议出门左拐Google),运行结果(可能)如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
(input 100000)

selectionSort end
time: 2536ms

bubbleSort end
time: 14222ms

mergeSort end
time: 8ms

quickSort end
time: 6ms

简单易懂,对吧。

题外话

又水了一篇文(不是。

还是很开心的,因为以前都没有成功完成过归并排序与快速排序,这次写出来自我感觉非常好。

那就这样,886.


四种排序
https://www.ordchaos.com/posts/6a062b97/
作者
序炁
发布于
202281
更新于
202281
许可协议
\ No newline at end of file diff --git a/posts/774674fe/index.html b/posts/774674fe/index.html new file mode 100644 index 000000000..b8d4fef12 --- /dev/null +++ b/posts/774674fe/index.html @@ -0,0 +1,3 @@ +【多图预警】 AwtrixPro 开源项目的复现 - 序炁的博客 + +

【多图预警】 AwtrixPro 开源项目的复现

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。

材料采购

并不难,跟着官网这个网页一步步在淘宝上找就可以了。就是记得买焊接工具以及足够量的耗材(指Gpio线材、热熔胶、电工胶带等等)以及外壳(可以用官网上的文件3D打印,淘宝上也有直接卖的)。

这里贴出我购买材料的链接,有兴趣的话可以试一试(加粗的为非必需品,没有注明数量默认1个,没有注明平台默认淘宝天猫):

材料链接
Wemos D1 mini主板ESP8266 ESP-12 Wemos D1 Mini 微型WiFi开发板Micro USB 3.3V
32x8 点阵屏幕led柔性全彩像素屏 ws2812b SK6812B点阵rgb屏软屏8x8 8x32 16*16
5V电源供应器(大于3A)5V4A20W插墙式广告机LED灯条平板蓝牙音响直流稳压开关电源适配器
3×1k电阻10支价 进口 10K MRS25000C1002FRP00 0207 0.6W 低噪金属膜电阻
线材若干树莓派gpio拓展40P彩色杜邦线20CM 母对母 公对母 公对公 140,买到了请自己根据需要进行剪裁
肖特基二极管(1N1004)(官网上说必须,但我没看出来哪里需要)1N4007 10A10 1N5408 1N5819 1N4001 5822直插整流二极管级IN4007(颜色分类:1N4004 1A/400V整流二极管直插(50个))
1000uF 10V电容直插铝电解电容器元件10/16/25V/35/50v/10uF/47/220/1000/2200uF(颜色分类:10V 1000UF 体积8x12mm(20个))
GL5528光敏电阻立创商城GL5528
DF Mini Player模块开源 Mini MP3 Player 播放器 模块 SD卡 音乐 arduino DFPlayer
Htui21d温湿度传感器GY-213v-HTU21D HDC1080温湿度传感器检测模块/SHT20 SHT21
外壳+电源插口智能像素时钟Awtrix Pro创客创意彩色B站粉丝数全套外壳WS2812,跟客服商量好了只要外壳与DC电源插口
扬声器(52.5mm×52.5mm)1.540mm喇叭小米小钢炮低音全频3435W音箱嗽叭扬声器配件
3×TTP223触摸传感器触摸按键模块 TTP223 自锁 点动 电容式 开关 单路改造 电容触摸

硬件制作

PCB+针脚焊接

本人未成功通过此方法复现,下列内容不一定完全正确,仅供参考

参考BUP三三三三三文啊的视频【AWTRIX PRO】一起动手做一个高颜值的像素灯,在嘉立创打好板子(注意有贴片,需要开钢网),买好GPIO接口公母头再焊接即可。打板流程可以参考【0基础】从零开始电子DIY!第三集:PCB电路板设计和打样!,这一套教程非常不错,推荐。

打好的板子如下:

焊接好之后(贴片是用的钢网+锡焊膏+风枪):

焊接针脚时若是无法直接使用锡丝与电烙铁焊接完成,也可以用锡焊膏+电烙铁。把锡焊膏涂抹在针脚背面,不用担心粘连,然后用电烙铁分别探入每两个针脚间的空隙,随后依次处理每个针脚就可以了。

然后刷程序、接线、通电、启动即可(至少理论上是这样):

很明显,这里并未启动成功,望高手赐教。

手动飞线

根据官网的接线图进行手动飞线即可,这里因为缺少一个电容(C1, 100nF)且不知道哪里有卖的而未接上DFPlayer模块及喇叭。

这里除了基础配件外,额外加装了光敏电阻、触摸以及Htui21d温湿度模块。基础部分依据教你做一个可编程像素屏制作成功,然后通过自主飞线完成了其它组件的安装。

开机成功

没有什么难点,注意需要连接多根导线时用钳子分别剪开线的外皮,露出里面的铜//其他金属丝,拧在一起然后用电烙铁与锡焊在一起就可以了。

裸露的金属丝记得用电工胶带或者热熔胶包裹起来,防止意外:

然后装入外壳即可:

再放上格栅、均光片及亚克力面板就完成了:

安装格栅

安装均光片

安装亚克力面板

软件配置

软件这里就不再多提,官网上就有(点击这里访问)。就是说一下我这里是部署在我自己的服务器上,就无需本地服务器如树莓派一类了。

宝塔面板就可以轻松完成配置,也无需ssh连接。

然后安装自己喜欢的软件即可,我这里是这几个:

成品

室温

湿度

日期

B站粉丝数量(还不关注我?)

Youtube粉丝数(香港服务器的好处之一就是能够获取到这种信息)(没错,我没有粉丝——当然是因为我没发任何视频)

GitHub Followers

题外话

从暑假开始一直做到了倒数第二天…心累,不过总算是完成了,也让我发现了我的电工天赋(bushi

那就这样,这篇报告(?)就完成了,感谢你的观看,886


【多图预警】 AwtrixPro 开源项目的复现
https://www.ordchaos.com/posts/774674fe/
作者
序炁
发布于
2022819
更新于
2022819
许可协议
\ No newline at end of file diff --git a/posts/79cc3297/index.html b/posts/79cc3297/index.html new file mode 100644 index 000000000..b4904600a --- /dev/null +++ b/posts/79cc3297/index.html @@ -0,0 +1,3 @@ +About Choir - 序炁的博客 + +

About Choir

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

Hello everybody! I’m 我的姓名, and you can also call me by my English name OrderChaos / OrdChaos. Today, I want to tell you something about chorus there. Yes, I know you may hate the chorus class in the noon, but please don’t hate the chorus itself.

Chorus refers to the art category of collective singing of multi-voice vocal works. It requires a high degree of unity of single voice and harmony of melody between voices. It is one of the most popular and widely participated forms of music performance. As the expressive tool of chorus art, the human voice has its unique advantages, which can most directly express the thoughts and emotions in the musical works and stimulate the emotional resonance of the audience.

There are many types of chorus. In terms of voice and timbre, it is divided into two types: unison and chorus. Singing in unison refers to a chorus form in which all chorus members sing the same tune together regardless of their voices. It is often used in mass singing activities and can also be used in some fragments of chorus. Chorus refers to the superposition or contrast of two or more different parts of the chorus. It is one of the most typical forms of chorus. And from the accompaniment form, it is divided into two forms: a cappella and accompaniment. “A cappella” means to sung without instrumental accompaniment. It is a purely vocal art form. For example, the song 半个月亮爬上来 we have learned is an a cappella song. In contrast, accompaniment chorus is a form of chorus with accompaniment. Whether it is harmony, mode, dynamics, speed, or style, mood, and performance, they must be unified into the overall work as required.

Most of the choral songs are sung by the choir. A choir usually has a conductor with others who sing songs. Don’t think that the conductors just need to wave their hands, in fact they should do the things that much more complicated than this. For example, the free extension mark and the fade out mark in the score need to be controlled by the overall situation by the conductor, otherwise the song will become very discordant. Songs with weak or strong rhythm also need conductor to beat the rhythm, songs with different emphasis and emphasis also need to be reminded by the conductor. The coordination of multiple voices is also very important, a little attention will be taken out of tune, so everyone should use their own free time to practice – not make up the number.

Having said so much, I should also play a chorus song to listen to it, right? Let’s listen to 启程 sung by the Globe Jinshengyuzhen Choir (金声玉振合唱团). This is a new song learned this term - why do I know? Because I am a member of it.

(Play the music at this time)

(Say this while playing the intro) By the way, this was originally one of the most popular graduation songs for Japanese middle school students called 旅立ちの日に(Roman: Tabidachinohini), which was widely circulated in Japan. And Globe Jinshengyuzhen Choir have sung its Chinese version.

(Intro will be end at this time)

(While the song play finished, wait)

This song has not been officially announced yet. If you want to listen to the full version, please pay attention to the school’s WeChat public account.

OK! That’s all of my speech. Thank you for your to the full version, please pay . And now, I have a very easy question to ask you: Which country is the song 启程 come from?

(Answer: Japan | Say: Gerat! Thank you for your answer!) OK, that’s really all, thank you again!


About Choir
https://www.ordchaos.com/posts/79cc3297/
作者
序炁
发布于
2022615
更新于
2022615
许可协议
\ No newline at end of file diff --git a/posts/7b015599/index.html b/posts/7b015599/index.html new file mode 100644 index 000000000..b08478031 --- /dev/null +++ b/posts/7b015599/index.html @@ -0,0 +1,3 @@ +正常,荒谬——《局外人》读后感 - 序炁的博客 + +

正常,荒谬——《局外人》读后感

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

我不是这里的人,也不是别处的人。世界只是一片陌生的景物,我的精神在此无依无靠,一切与己无关。

——题记

《局外人》书中的主人公默尔索虽不能说是冷漠无情,但也是不同于常人的。对于日常起居方面而言,他和大多数人一样。但是他又和大多数人不一样,他并不习惯于使用普通人通用的情感表达方式:他不像大多数人会在母亲,一个赋予他生命、哺育其成长的人的葬礼上嚎啕大哭;而他只是沉默着,甚至心中只想着为什么不早点结束,这样才能回去睡觉。像一个局外人一般,好似任何事情都与他毫无关联。这也是书中对他的第一处道德审判,即养老院中老人对丝毫没有伤心感受的默尔索的不正常的关注。

但是这一场审判是必要的吗?我们有必要在他人的审判之下临时更改自己深信不疑的观点吗?默尔索没有这么做,所以他才没有在母亲的葬礼上哭泣,亦或者是动那么一点点情。他认为死亡原本就是一件自然而然的事情。可是恰恰是因为这样,他才违背了人们约定俗成的道德准则,也为后文中他的悲剧结局埋下了伏笔。

默尔索之后在一种不明不白的状态下以一种正当防卫的姿态杀死了一位阿拉伯人,本身可以判定减刑的事件却正是因为他的“不近人情”——默尔索对任何问题的回答都太过客观,让人感觉不到人情味——而被记者过度渲染,引起了人们对这个案件的过度关注与检察官疯狂对默尔索人格的诋毁抨击。整个过程,默尔索被排挤在外,只剩下了法官与律师、证人的接触,并且谈论的主题还不是这一起案子,而是对默尔索本人的争论,对默尔索的“不孝”的争论。人们就像约定好了一样,顺利地,没有理由地将默尔索判以死刑。

正是因为默尔索的为人处世方式才引得了人们的过分联想。而在整个案件中,几乎所有人都被一种主观的想法所引导,认为他就是一个冷漠无情的杀人犯。可是他真的是一个冷酷无情的杀人犯么?深入了解他的人,喜欢他。泛泛接触过的人却想置他于死地。他仅仅是热爱这个城市,也真正懂得享受当下的美好而已。

正如他所言,一切都“不是我的错”,可是很多事情本就是这样自然而然发生了。

直至默尔索死刑之前他才展现出了一个真实的自己——一个思念自己母亲、怀念儿的日子的人。他开始感到害怕,恐惧死亡,恐惧狱卒的脚步声,恐惧黎明…人都会死,可是大多数人都可以用五十年以上的时间来一点一点消磨这种恐惧,消磨死亡这件事。但当这五十年的恐惧,突然一下子被压缩到了一天里面,在那一天里,一个普通人会想什么呢?或许大多数人会选择寻找情感寄托吧,选择信奉了某一个神,他们通过神鬼来为自己开脱,缓解自己内心的愧疚与不安。可是默尔索依旧没有这么做,对事件始终有着理性且客观认知的他并没有相信神鬼之说。他在被判死刑后,虽然神甫仍然在不依不饶教导默尔索,可他无动于衷,甚至于愤怒、爆发了。

这本书看似是谈主人公的荒谬、不合常理,可其实是反应社会的荒谬及民众的盲目从众。而事实上,这本书中,只有所谓的局外人才是真正清醒的正常人。


正常,荒谬——《局外人》读后感
https://www.ordchaos.com/posts/7b015599/
作者
序炁
发布于
20201210
更新于
20201210
许可协议
\ No newline at end of file diff --git a/posts/7e535678/index.html b/posts/7e535678/index.html new file mode 100644 index 000000000..0c5d8a259 --- /dev/null +++ b/posts/7e535678/index.html @@ -0,0 +1,3 @@ +自主学习 - 序炁的博客 + +

自主学习

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

尊敬的老师,亲爱的同学们,大家(上午/下午)好!我是八年级的我的姓名,很荣幸今天能站在这里演讲。面对大家真诚的面容,这次我想和大家分享我自主学习的心得。

首先,我们应该明确一个概念,即什么是自主学习。自主学习就是随意的学、无拘无束的学吗?显然不是。自主学习是以自学、质疑、讨论等方式深入理解学习内容并获得新知识的一种实践活动,是通过自我导向、激励、监控的方法学习。其需要我们不断地尝试一些适合自己的有效的学习方法,合理的掌控学习时间,以便于专心地投入学习中。

要做到自主学习其实并不难,只需要把学习看作是一件令人快乐和愉悦的事。是的,学习的过程虽苦,却也满含着即将迎来收获的喜悦。完成自主学习的过程大概分为五点:一、了解自己:透过渐趋清明的自我概念、自我价值、自我认知,朝自觉、自足、自在的境态迈进;二、了解环境:透过知识与经验,了解环境的资源及限制;三、寻求自己与环境最佳的互动可能:在了解自己也了解环境的基础上,能找出当下合适的对应;四、着手实现:靠勇气、恒心、毅力,使自己能实践出心中所想,知行合一。五、保有循环向上的检视机制:透过计划->实行->检视->增进的循环,让自己从每次的经验中有所反省和收获。上面的说法比较枯燥,就拿我个人来举例吧,从小学一年级开始,我就对数学很感兴趣,喜欢看一些趣味性的数学书,还经常自以为很厉害,主动寻找“难题”“考”父母和老师,这其实就是一种出于本能的自主学习过程。后来,我出于对电脑编程的喜爱,出于对计算机的掌控中获得的欣喜感和满足感,编程培训课如无意外我从不缺课,平时还主动上网学习电脑编程知识、了解电脑信息和发展动态,同时,由于编程和设计需要用到大量知识,我也不放松自己对数学、物理、英语、语文甚至美术的学习。如果说小时候对数学难题的解题过程是一种懵懂的自主学习的初级状态,那么之后对编程和相关知识的自主学习就是在了解自我,了解环境的基础上,充分利用现有的时间、精力和资源,通过各种努力,达到自主学习的进阶状态。

同学们,“没有比人更高的山,没有比脚更长的路”,前行的路就在我们自己脚下,命运之门的钥匙就在我们自己手中。让我们从点滴做起,让自主学习成为持之以恒的一种习惯,成为我们自主的生活方式。我衷心祝愿每一位同学能克服自身的惰性,付以恒心与毅力,走向属于你自己的成功!

谢谢大家!


自主学习
https://www.ordchaos.com/posts/7e535678/
作者
序炁
发布于
2022127
更新于
2022127
许可协议
\ No newline at end of file diff --git a/posts/7e920bb4/index.html b/posts/7e920bb4/index.html new file mode 100644 index 000000000..6536bb226 --- /dev/null +++ b/posts/7e920bb4/index.html @@ -0,0 +1,3 @@ +生日当天全款提下第一支(打八折)钟薛糕 - 序炁的博客 + +

生日当天全款提下第一支(打八折)钟薛糕

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

送给自己的生日礼物

我是大怨种


生日当天全款提下第一支(打八折)钟薛糕
https://www.ordchaos.com/posts/7e920bb4/
作者
序炁
发布于
2022824
更新于
2022824
许可协议
\ No newline at end of file diff --git a/posts/7eb4319/index.html b/posts/7eb4319/index.html new file mode 100644 index 000000000..441f5c343 --- /dev/null +++ b/posts/7eb4319/index.html @@ -0,0 +1,3 @@ +迟来的二月调考总结 - 序炁的博客 + +

迟来的二月调考总结

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

各位,好久不见,距离上次发文的时间过的有点久,其中最大的原因就是万恶的二月调考。现在已经考完一个多月了离四调也就一个月了,这里我来总结一下。

背景要素

以防不知道,本人生在武汉,学籍武汉,参加武汉的统一考试。武汉在九年级时会有几场全市统考,分别为九上的元月调考(期末)与九下的四月调考(期中)和中考(期末)。今年闹疫情,于是原定在一月四号的元调被挪到了二月二十一号(九下开头)。

武汉的中考在我这一届改革了,下面对比一下以往和之后的不同:

科目分数(前)分数(后)
语文120120
数学120120
英语120120
物理7070
化学5050
历史\60
道德与法治4060
实验030
体育3050
总分550680

详解:

  • 原本不考历史
  • 道德与法治原先只有选择题,现在新加入了材料题,分数构成为28分选择 + 32分材料。历史分数构成与其一样,且二者合卷
  • 实验考试以往不计分,为实操。现在为机考答卷,在120道题(40物理,40化学,40生物)中每个科目随机选10道题目作答,每题一分
  • 体育由30分改为50分,构成为15分平时 + 35分考试。本届由于新冠疫情的原因,取消体育中考(即所有人考试分数计为35)

二调情况

先明确二调的考试内容,为中考所有科目除去体育与实验(四调亦然)

分数不是很方便透露,大致说一下考试情况吧。说来惭愧,正正好好是语数英垮了(bushi

语文选择题眼瞎,错了两题。英语则是阅读理解B篇,神你以为我会说脏话吗?Live a colorful life,我真感觉不到这么大,真的。

总之就是很意难平。

好消息是化学满分,终于!

签约的话倒不是不能签,只能说是比上不足,比下有余余余余余…

总结

也没什么可说的,给自己加油吧。我是想打竞赛的,文化课成绩必然需要更上一层楼才行。

886!

(鬼知道下次什么时候更新)


迟来的二月调考总结
https://www.ordchaos.com/posts/7eb4319/
作者
序炁
发布于
2023326
更新于
2023326
许可协议
\ No newline at end of file diff --git a/posts/8ad10849/index.html b/posts/8ad10849/index.html new file mode 100644 index 000000000..a490d9fe6 --- /dev/null +++ b/posts/8ad10849/index.html @@ -0,0 +1,3 @@ +解决一件困扰我很久的小事 - 序炁的博客 + +

解决一件困扰我很久的小事

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

起因

偶然间看到了这个视频——[Phigros/技术革新] 快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却…

大☆失☆败

手机自始至终没有弹出“完全备份”界面,我百思不得其解,于是在stackoverflow上发了一个问题:

Adb backup does not work on my HarmonyOS 2.0 phone

直到今天之前,没有任何人给出有效回答。

解决

把之前在手机里安装的软件“冰箱”卸载之后就正常了,我也不知道为什么。

从这件事就可以看出我是个…欸,我不说,就是玩

自己去把问题给解答了,这件事就此完结。

题外话

生成都生成了,那就晒一下吧:

小菜一枚,大佬轻喷。

那就这样,886


解决一件困扰我很久的小事
https://www.ordchaos.com/posts/8ad10849/
作者
序炁
发布于
2022819
更新于
2022819
许可协议
\ No newline at end of file diff --git a/posts/8e1b39a3/index.html b/posts/8e1b39a3/index.html new file mode 100644 index 000000000..6a47d001c --- /dev/null +++ b/posts/8e1b39a3/index.html @@ -0,0 +1,3 @@ +在线写作与博文分享—— NetlifyCMS 与 ShareThis - 序炁的博客 + +

在线写作与博文分享—— NetlifyCMS 与 ShareThis

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

没错,任何正常人都不会把标题里这两样东西联系起来,包括我。

NetlifyCMS

最开始看到这玩意是在fluid的官方博客的这一篇博文Hexo Netlify CMS 在线编辑博客(转载的,原文地址在这里),当时就觉得非常不错,但可惜未能按照教程配置成功,只得转投于更贴合于HexoHexoPlusPlusHexo

直到前几天上个月看到 @Xingyang 在一键推流工具——BlogPusher这一篇文章下的评论

如果静态博客是部署在 Github 上的话可以试试用 Netlify CMS。相当于架设一个能进行 Git Commit 的 Web app,最重要的就是 0 花费,Private Repo 也可以用。我自己的博客也在用(虽然文章数不是很多())

参考文章:https://cnly.github.io/2018/04/14/just-3-steps-adding-netlify-cms-to-existing-github-pages-site-within-10-minutes.html

很好,但是不太符合我的情况。于是随即翻了翻——

瞳 孔 地 震.jpg

完全可用!撒花!

如果你也没有成功配置Netlify CMS的话也可以试试,教程十分甚至九分简单,个人感觉几乎不存在出错的可能性。

感谢Xingyang!顺便他的博文链接:简单搭建一个 GitHub Repo 静态博客的 CMS 后台内容管理系统

ShareThis

最开始捣鼓了一阵子分享系统,share.js啊,Social Share Button啊等等都尝试过一遍,但我都不太满意,况且分享也不是刚需,于是就此作罢。

直到昨天,我妈问我:“你这个博客怎么分享给别人看啊?”

我突然感觉分享还是有必要的,遂继续开始寻觅,然后就发现了ShareThis

注册

非常简单,进入首页:https://sharethis.com

点击“从分享按钮开始”,然后点击第一个选项:

不要急着点击下一步,先用滚轮滚动到页面下方,点击“Customize your Inline Share Buttons”按钮。

在弹出的选项中对按钮进行配置,可以配置包括颜色、媒体、形状等等内容。

最下方的语言记得调整为中文,然后点击下一步,在新页面中注册登录即可。

随后,你会得到两串代码,分别是js安装代码与按钮引入代码。安装代码放在head中,按钮放在你想插入的地方就好。

大概如下:

1
2
<!-- 安装 -->
<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=不告诉你&product=inline-share-buttons' async='async'></script>
1
2
<!-- 按钮插入 -->
<div class="sharethis-inline-share-buttons"></div>

效果

滑到这篇文章底下看吧。

题外话

这篇博文算是对近期我对博客的大改动,但是单独发太短,所以就这么整合在一起了。

那就这样,这篇博文就到这里,886!


在线写作与博文分享—— NetlifyCMS 与 ShareThis
https://www.ordchaos.com/posts/8e1b39a3/
作者
序炁
发布于
2022910
更新于
2022910
许可协议
\ No newline at end of file diff --git a/posts/8f132c87/index.html b/posts/8f132c87/index.html new file mode 100644 index 000000000..3cdbbe787 --- /dev/null +++ b/posts/8f132c87/index.html @@ -0,0 +1,3 @@ +尊重客观规律 - 序炁的博客 + +

尊重客观规律

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

只有尊重客观规律,才能事有所成。西门豹出任邺令,破除封建迷信,转而挖掘渠道、灌溉农田,治理了邺城常有的水灾;鲧以堵治水而无能为力,大禹改堵为疏,完成了治水的大业。这些都是以对客观规律的尊重而得到的成果,也证明了人类若是要认识和改造世界,必须先尊重客观规律。青藏铁路只从西宁修到了格尔木就不再延伸,这份阻碍并非因为资源,而是来源于人们对客观规律的践行——在当时的条件下,这样的施工若是继续下去一定会对当地,甚至整个中国的生态造成破坏。人们不断只有尊重、探索客观规律,才能更好的造福社会。

尊重客观规律,是在践行宇宙的真理。“橘生淮南则为橘,生于淮北则为枳,叶徒相似,其实味不同。所以然者何?水土异也。”柑橘在南方能长出甜美饱满的果实,但在北方就只能结出味苦的枸橘。英国文艺复兴时期散文家、哲学家弗朗西斯·培根曾经说过:“只有顺从自然,才能驾驭自然。” 世间万物皆有其自身的规律,许多事物也万万不能强求,“强扭的瓜不甜”。瓜一旦成熟,其瓜蒂部分便会变得干枯,自动脱落,很容易摘;而若是瓜还并未成熟,那么瓜蒂部分必然长得很结实,要想把瓜摘下来就一定要使劲扭。如此摘下的瓜自然都是未成熟的,又怎可能甜?规律是亘古永存的,其具有客观性与普遍性。柑会变成枸橘、瓜会没有甜味,这一切的改变都是客观规律使然。“昔者海鸟止于鲁郊,鲁侯御而觞之于庙。奏《九韶》以为乐,具太牢以为膳。鸟乃眩视忧悲,不敢食一脔,不敢饮一杯,三日而死。”“宋人有闵其苗之不长而揠之者,芒芒然归,谓其人曰:“今日病矣!予助苗长矣!”其子趋而往视之,苗则槁矣。”鲁侯养鸟、揠苗助长,都是不遵守客观规律而造成的后果·。如此可以看出,规律的存在和发生作用都以一定的客观条件为基础,在不具备其根据和条件的情况下,人为的要求某个规律存在和发生作用是不可能的。综上所述,在实际生活中,规律是不可抗拒的。也只有按规律办事,才可能达到所需要的目的。


尊重客观规律
https://www.ordchaos.com/posts/8f132c87/
作者
序炁
发布于
20211225
更新于
20211225
许可协议
\ No newline at end of file diff --git a/posts/92674965/index.html b/posts/92674965/index.html new file mode 100644 index 000000000..98fce9744 --- /dev/null +++ b/posts/92674965/index.html @@ -0,0 +1,3 @@ +《四世同堂》读后感 - 序炁的博客 + +

《四世同堂》读后感

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

学期末老师列了一条长长的书单,让我们选择两本来写读后感。正巧以前听闻过老舍先生的《四世同堂》,于是便选择了它与另外一本书。在我的印象中,老舍先生的书里我只看《骆驼祥子》。当然肯定不止这一本,只是忘了其它书的名字罢了。

但书到货之后我震惊了,因为这本书完全不像我想的那样。这本,不,应该是这套书比我以前所读过的所有书都要厚。而在真实的读过一遍这本书后我却才发现。这个厚度也不算什么,因为它的剧情真的非常好。

《四世同堂》是老舍最著名的长篇小说,这部百万字的巨著描述了卢沟桥事件爆发的一九三七年至日本投降的八年间北京普通市民遭受到的残酷压迫与统治,以及他们面对生与死的自尊与自省。老舍这部书中展示了北平沦陷区一群普通人的生活。通过祁老人、瑞丰、瑞宣、韵梅、钱诗人、小文夫妇、李四爷、白巡长、孙七、小崔、马老太太、常二爷、小妞妞以及大赤包、招弟等人物形象,表现出民族存亡之际,真善美与假恶丑的斗争,崇高的民族气节和苟且偷安、助纣为虐的对照。

老舍在《四世同堂》中对于人物性格的刻画及其的用心,而刻画出的任务同样的非常立体。比如在描写汉奸时:冠晓荷与蓝东阳是小说中的汉奸形象代表,“无事乱飞是苍蝇的工作,而乱飞是早晚会碰到一只死老鼠或一堆牛粪,冠先生是个很体面的苍蝇。”而老舍先生用极妙的笔法对蓝东阳道:“蓝东阳的相貌先引起试官的注意。他长得三分像人,七分倒像鬼。日本人觉得他的相貌是一种资格与保证——这样的人,是地道的汉奸胚子,永远忠于他的主人,而且最会欺压良善。东阳的脸足以引起他的注意,恰好他的举止与态度又是那么卑贱的出众,他得到了宣传处处长。”

而放远了看,实际上,老舍先生描写的这个时代下的中国正是二战期间法西斯侵略活动的最好的印证。读书的时候很容易就会联系到以前看过的海明威著作的《永别了,武器》。这本书讲的是一战期间的故事。一战时交战双方的目的主要是瓜分殖民地,争夺市场和原料产地;二战法西斯国家不仅要打败对方,而且要在全世界范围内建立法西斯制度。这也就解释了为什么日本区区一个弹丸之地,竟然有吞并整个东南亚的野心,且近乎于成功了。书中有写“短腿小鬼可不管你是否是它的一条狗,只要它认为你可疑,不值得信任或没有利用的价值了,旋即投狱、折磨、杀死,没有丝毫的理由。”这就是日本人的强盗逻辑,这就是这个民族嗜血成性的侵略本性。只有我们自己手握武器,狠狠地痛击它,它才能乖乖地缩回乌龟头,在它的小岛上蛰伏不动。

回归书中,回归二战,回归北平。其实无论在什么时代,谁都想过着安适美好的日子,可是当祖国受到侵略,当侵略者剥夺人们正常生活的权力,每一个有正义感和民族感的普通老百姓都会用自己的方式来保卫自己的家园的想法,但是这不可能。人只能在愤激反抗所博得的美名与背负骂名的存活中选择一个。选择其中一边的人是有的,而这些人恰恰会是被后人熟记、明知的。大部分老百姓什么也没有选,而是站在它们之间,想着苟且偷生。我为汉奸们可悲,更为那些觉醒后勇于反抗的人们感到欢欣鼓舞。小说中的一些次要人物就像我们揭示了老百姓们可悲的一面。他们因为一点蝇头小利便偏向了侵略者一方。以往拳打汉奸的金三爷,因为日本人带来的好生意转而感激,之后甚至出卖了钱默吟先生。年轻貌美的招弟,堕落成一个出卖肉体的女人,却还以此为荣。这些没有是非观的行为无疑是贪念在作祟。最后,当抗战最终胜利,人们仿佛才想起了报仇,结尾几个小伙子想找日本老太婆报仇的事再次让人嗤笑和而叹息。人们已经不怎样能高兴起来了,八年的风雨飘摇,战争给人民带来了无尽的苦难,给中国大地留下了累累伤痕。我们不应忘记这段屈辱的过去,要时刻铭记那段冰风冷雨的历史,创造辉煌的未来。


《四世同堂》读后感
https://www.ordchaos.com/posts/92674965/
作者
序炁
发布于
2021731
更新于
2021731
许可协议
\ No newline at end of file diff --git a/posts/95bd9bb8/index.html b/posts/95bd9bb8/index.html new file mode 100644 index 000000000..ae48ac4ca --- /dev/null +++ b/posts/95bd9bb8/index.html @@ -0,0 +1,3 @@ +年中总结,及进16岁生贺 - 序炁的博客 + +

年中总结,及进16岁生贺

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

又是一年生日了,回想上次生日,好像还是在上次一样,那时还是在初三开学前的补课。补课放学的很早,五点就回家了。当时在超市里买了一根价值14块大洋的钟薛糕……

说起来真的像是发生在昨天。

1~2

经过了疫情的洗礼,九年级下学期的开学总算是如期而至,但紧随而来便是对二月调考的紧张。原本武汉是只有元调、四调的,不过由于众所周知的疫情因素,元调从原定的14号挪到了221号。让我们过了一个安心的元旦和一个安心的寒假。

但该来的还是要来,二调总归也是调考,压迫感并未消失,只是转移到了一个月后。故而新学期伊始,我们就全身心投入到了复习之中。那时我的心里总会浮现出七年级刚开学时班主任在班里说的话,她告诉我们三年很短,元调很重要。初听不知话中意,而现在,已为语中人。

二调的成绩中规中矩吧,523分(523/600),随后便立下了四调要进步15分的目标。但那时我还不知道,这个目标永远没有机会达成了。

3~4

二调完了就是四调,没什么可说的,该复习复习,该上新课上新课。伴随着一本又一本教材被翻至最后一课、最后一面,初中即将毕业的感受才开始从心中滋生。不论是Graduation还是“从这里出发”,课本中的一句句话,一段段文章都正提醒着我们即将分别的事实。

四调成绩说实话,很不好,只有508。以至于我的母亲对我这个分数不抱什么期望了,也便没有如同二调结束后那样跑前跑后地签各种约。也正因如此,已然退休的她只能在家里独自心焦,这是我的问题。

5~6

五月有各个区自己的五调,六月便是全武汉市的中考。志愿早在五月九日便截至提交,在此之前,我终于说服了我的父母为我填写武钢三中为第一志愿。“说服”,无奈的选择,毕竟要说二调成绩勉强足够的话,四调成绩面对钢三简直就是依托答辩。但我仍然坚定的选择了这条路,算是对自己的压迫吧,同时也伴随着一股气,一股不服输的精神。

五调前举行了理化生实验考试,和八年级的地理生物一样,采用机考的形式。没什么难度,几乎全班满分通过,只有3人被扣了1分。加上由于疫情取消的体育中考,近乎就是给每个人送了80分。

六月初,抽了一个上午,我们全班在学校里拍了毕业照。学校不大,很快就走遍了整个校园。伴随着感慨,拍完室外照后回班,我们齐心协力在十分钟内办好了一面黑板报。站在黑板报前,我们拍了最后的几张照片。

中考日以前,最后一个在校日,是一个周六。老师在上午或看自习,或做最后的查漏补缺。而下午,老师开了一场动员会,给每个人发了一块粽子玩偶。既代表端午将临,亦有一举高中之意。一场班会结束,打扫完教室,离开学校,颇有一种或解脱、或不舍的情愫。

中考前一天,周一,下午我便前往了考点处。每个文化课老师都在考点门口,为我们一张张派发着准考证。面对那一句句叮嘱,我明白,不能当做是像以前那样的老生常谈了。

中考结束的那一天,考完历史道法的上午。连续更改了两道选择题的我放下了手中的笔,一根根地把中性笔、2B铅笔、涂卡笔以及橡皮擦、垫板、准考证装入了文具袋。走回休息室,再和全班同学及老师走出了考场。此时此刻,心中只有解脱,无暇再顾及其它。

随后就是毕业旅行了,很愉快的出行经历,也为初中三年画上了一个圆满的句号。

7~8

七月一号一早,昨天刚从青岛回到家的我点进了武汉招考网,惊心动魄的输入姓名、报名号和身份证号。按下蓝色按钮的那一刻,时间仿佛凝滞。好在接下来引入眼帘的数字令我终于放下了心,614分(614/680),是我最高的一次了。

毫无疑问的被钢三录取,之后是钢三的夏令营,一直到七月二十一。食堂很美味,与同学相处得很愉快,校园环境很好,近乎无可挑剔了。

八月,很放松的一个月,这个月一直在玩master duel和原神,开始了摆烂状态(笑)

直到今天,我的生日为止,一切都很放松。

未来……

马上就是钢三的军训了,再之后就是开学,祝我一路顺利吧!

也希望三年后的暑假能像现在一样无忧无虑。

Happy Birthday for Me!

顺便晒一下毕业纪念册!


年中总结,及进16岁生贺
https://www.ordchaos.com/posts/95bd9bb8/
作者
序炁
发布于
2023824
更新于
2023824
许可协议
\ No newline at end of file diff --git a/posts/97a1a73e/index.html b/posts/97a1a73e/index.html new file mode 100644 index 000000000..a5c903f20 --- /dev/null +++ b/posts/97a1a73e/index.html @@ -0,0 +1,3 @@ +第五种排序—— std::sort() 函数 - 序炁的博客 + +

第五种排序—— std::sort() 函数

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

上次讲了四种排序算法(没看过的点这里),但是在实际开发或是竞赛中可能没有足够的时间写出一个够用的排序函数,或是需要排序的并非数字,这时便是我们的大宝贝——std::sort()函数登场的时候了。

用法

需要先引用algorithm库,不过我更倾向于在竞赛时直接使用万能库节省记忆时间。然后,需要使用std命名空间,或是直接调用std::sort()。

sort()函数的原型如下:

1
2
3
4
5
template <class RandomAccessIterator>
void sort(RandomAccessIterator first, RandomAccessIterator last);

template <class RandomAccessIterator, class Compare>
void sort(RandomAccessIterator first, RandomAccessIterator last, Compare comp);

对,std::sort()是重载函数,其中包含了是否存在comp的两种版本。std::sort()函数默认从小到大按字典顺序对数据进行排序,用法如下:

1
2
3
int arr[10] = {12, 10, 48, 28, 22, 33, 19, 13, 27, 38};
std::sort(arr, arr + 10);
for(int i = 0;i < 10;i++) std::cout<<arr[i]<<" ";

此时std::sort()函数便会将arr[0]arr[9]10个元素进行排列并放回arr数组,所以上述程序运行结果如下:

1
10 12 13 19 22 27 28 33 38 48

很容易就可以想到,对吧。

进阶

使用std::sort()对各类普通变量排序

std::string类型变量排序

前面提到了,std::sort()会对数组使用字典序从小到大排序,所以结果就很容易预想到。

看下列程序:

1
2
3
std::string arr[10] = {"apple", "Apple", "APPLE", "zen", "ordchaos", "OrdChaos", "happy", "x-ray", "xyz", "123aa"};
std::sort(arr, arr + 10);
for(int i = 0;i < 10;i++) std::cout<<arr[i]<<" ";

想一想,结果会如何?

结果:123aa APPLE Apple OrdChaos apple happy ordchaos x-ray xyz zen

怎么样,是不是很简单。这种对std::sort()的使用方式可以做按照字母序排列姓名的题目,但是如果题目要求按长度排序怎么办?别着急,慢慢往下看。

使用comp自定义排序顺序

刚刚说过,std::sort()是一个重载函数,有一个含有comp的变体,那么,comp是什么?用来干什么呢?简单来说,comp就是一个返回值为bool类型的函数,在这个函数里你可以自定义sort排序的顺序。这样说你可能不理解,那就来看看下面这个例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
bool cmp(int a, int b) {
return a > b;
}

int main() {
int arr[2][10] = {{12, 10, 48, 28, 22, 33, 19, 13, 27, 38},{12, 10, 48, 28, 22, 33, 19, 13, 27, 38}};
std::sort(arr[0], arr[0] + 10);
std::sort(arr[1], arr[1] + 10, cmp);
for(int i = 0;i < 10;i++) std::cout<<arr[0][i]<<" ";
std::cout<<std::endl;
for(int i = 0;i < 10;i++) std::cout<<arr[1][i]<<" ";
return 0;
}

在这里我定义了bool类型函数cmp(),其中若a>b则返回true,否则为false。然后两次调用std::sort(),分别为两个一模一样的数组arr[0]arr[1]排序,不同的是第二次使用了我们定义的cmp(),那么,结果如何呢?

1
2
10 12 13 19 22 27 28 33 38 48 
48 38 33 28 27 22 19 13 12 10

没错,第二次排序变为了从大到小排序。利用这种方法,我们就可以轻松解决刚刚的问题,像这样:

1
2
3
bool cmp(std::string a, std::string b) {
return a.length() < b.length();
}

把这个函数加入刚刚的程序,再次调用std::sort(),只不过要加入参数cmp。很容易想到结果如下:

(动动脑哦)zen xyz apple Apple APPLE happy x-ray 123aa ordchaos OrdChaos

std::string类型变量内部进行排序

联想到可以通过类似于str[i]的方式来访问字符串内字符,自认可以写出使用std::sort()排序字符串内字符的方法:

1
2
std::string str = "rhuMJKhwHefJkUIGuw394y49h";
std::sort(str.begin(), str.end());

注意这里必须使用str.begin()str.end()作为参数而非strstr+str.str.length()。

结果也就是可以料想的,编译运行,程序输出如下:

1
34499GHIJJKMUefhhhkruuwwy

整 整 齐 齐.jpg

利用comp同样可以实现逆序排序,那就请你自己想想怎么写吧!

使用std::sort()对结构体进行排序

设想一个场景,有一个结构体叫做student,其中含有单个学生的姓名和成绩。这时该如何通过学生成绩对学生姓名进行排序呢?这里用std::sort()就会使最快的方法。

先定义结构体:

1
2
3
4
struct student {
string name;
int score;
};

然后写出对应的comp:

1
2
3
bool cmp(student a, student b) {
return a.score > b.score;
}

之后直接调用std::sort()就可以了,合起来代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<bits/stdc++.h>
using namespace std;

struct student {
string name;
int score;
};

bool cmp(student a, student b) {
return a.score > b.score;
}

int main() {
student stu[3] = {(student){"Tony", 98}, (student){"Betty", 97}, (student){"Lucy", 99}};
sort(stu,stu+3,cmp);
for(int i=0;i<3;i++){
cout<<stu[i].name<<endl;
}
return 0;
}

输出可以料想:

1
2
3
Lucy
Tony
Betty

这样做的好处是方便拓展,比如说现在结构体变了,存在四个科目的成绩与学生姓名,要求按平均分排序,从之前的程序上修改会非常容易:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<bits/stdc++.h>
using namespace std;

struct student {
string name;
int chinese;
int math;
int english;
int programming;
};

bool cmp(student a, student b) {
return (a.chinese + a.math + a.english + a.programming)/4 > (b.chinese + b.math + b.english + b.programming)/4;
}

int main() {
student stu[3] = {(student){"Tony", 98, 96, 100, 95}, (student){"Betty", 97, 80, 99, 95}, (student){"Lucy", 99, 96, 90, 100}};
sort(stu,stu+3,cmp);
for(int i=0;i<3;i++){
cout<<stu[i].name<<endl;
}
return 0;
}

这时结果就会变为Tony Lucy Betty的顺序。比起手写排序,这种情景使用std::sort()会方便不少。

做道题吧

洛谷:P1093 NOIP2007 普及组 奖学金

题目描述

某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。期末,每个学生都有3门课的成绩:语文、数学、英语。先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名名学生的学号和总分。注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:

1
2
77 279279
55 279279

这两行数据的含义是:总分最高的两个同学的学号依次是75号。这两名同学的总分都是279(总分等于输入的语文、数学、英语三科成绩之和),但学号为7的学生语文成绩更高一些。如果你的前两名的输出数据是:

1
2
55 279279
77 279279

则按输出错误处理,不能得分。

输入格式

n+1行。

1行为一个正整数n(n≤300),表示该校参加评选的学生人数。

2n+1行,每行有3个用空格隔开的数字,每个数字都在0100之间。第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。每个学生的学号按照输入顺序编号为1~n(恰好是输入数据的行号减1)。

所给的数据都是正确的,不必检验。

输出格式

5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

输入输出样例

输入1
1
2
3
4
5
6
7
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出1
1
2
3
4
5
6 265
4 264
3 258
2 244
1 237
输入2
1
2
3
4
5
6
7
8
9
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
输出2
1
2
3
4
5
8 265
2 264
6 264
1 258
5 258

分析

这是一道很好的练习结构体的题,核心就是刚刚说的使用std::sort()函数对结构体进行排序,只不过这次的comp会复杂那么一点点。

结构体定义与comp大致如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
struct student {
int num, chinese, math, english;
};

bool cmp(student a,student b) {
if((a.chinese + a.math + a.english) > (b.chinese + b.math + b.english)) return 1;
else if((a.chinese + a.math + a.english) < (b.chinese + b.math + b.english)) return 0;
else {
if(a.chinese > b.chinese) return 1;
else if(a.chinese < b.chinese) return 0;
else {
if(a.num > b.num) return 0;
else return 1;
}
}
}

剩下的部分就不必多说了吧,直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
int main() {
int n;
std::cin>>n;
student stu[n];
for(int i = 0;i < n;i++) {
stu[i].num = i + 1;
std::cin>>stu[i].chinese>>stu[i].math>>stu[i].english;
}
std::sort(stu,stu + n,cmp);
for(int i = 0;i < 5;i++) std::cout<<stu[i].num<<' '<<stu[i].chinese + stu[i].math + stu[i].english<<std::endl;
return 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
32
#include<bits/stdc++.h>
using namespace std;

struct student {
int num, chinese, math, english;
};

bool cmp(student a,student b) {
if((a.chinese + a.math + a.english) > (b.chinese + b.math + b.english)) return 1;
else if((a.chinese + a.math + a.english) < (b.chinese + b.math + b.english)) return 0;
else {
if(a.chinese > b.chinese) return 1;
else if(a.chinese < b.chinese) return 0;
else {
if(a.num > b.num) return 0;
else return 1;
}
}
}

int main() {
int n;
cin>>n;
student stu[n];
for(int i = 0;i < n;i++) {
stu[i].num = i + 1;
cin>>stu[i].chinese>>stu[i].math>>stu[i].english;
}
sort(stu,stu + n,cmp);
for(int i = 0;i < 5;i++) cout<<stu[i].num<<' '<<stu[i].chinese + stu[i].math + stu[i].english<<endl;
return 0;
}

附加内容

std::sort()的平均时间复杂度是O(nlog(n)),原理是在数据量大时采用快速排序进行分段递归排序,而一旦分段后的数据量小于某个门槛,为避免快速排序的递归调用带来过大的额外负荷,就改用直接插入排序(不是插入排序)。如果递归层次过深,还会改用堆排序。

sort的速度够快,但若是追求极致速度且数据量很大,仍建议手写快速排序或归并排序。

题外话

写这篇文章真的累死…

写了足足一个小时啊啊啊啊啊

白里个白(逃


第五种排序—— std::sort() 函数
https://www.ordchaos.com/posts/97a1a73e/
作者
序炁
发布于
202282
更新于
202282
许可协议
\ No newline at end of file diff --git a/posts/ab8676cc/index.html b/posts/ab8676cc/index.html new file mode 100644 index 000000000..2726b94e7 --- /dev/null +++ b/posts/ab8676cc/index.html @@ -0,0 +1,3 @@ +适合自己的路 - 序炁的博客 + +

适合自己的路

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

看到他人的东西,觉得好自己买来,却并非如想象一般;看到他人制定了良好的学习计划,照搬过来,自己却完全无法实施;看到他人读了书,受益颇多,自己却无法读懂……这样的事件可能不常有,但总会在生活中不时发生。所以也就告诉了我们,适合他人的不一定适合自己。

我曾为提升自己而参考了他人的计划表准备施行于自己的日常生活之中,但不到三天便就放弃。无论是其中的两小时阅读时间,半小时健身亦或是额外的课外学习都远非我的课余时间可以容纳。计划不仅没有起到提升自己的作用,且打乱了我本稳定的作息,使我在那几天中萎靡不振,自然可以看出照搬他人经验是如此无用。“长者不为有余,短者不为不足”,长与短各有价值,没有高低贵贱之分,适合自己的远比他人的、华丽的、不切实际的好得多。自己的目标,自己的计划,也总是比他人的更贴合自己的要求。

鲁迅弃医从文,向全世界证明笔比手术刀更尖锐,最终成为世人铭记的文学大师;李白离开黑暗官场,漂泊天涯。一句“安能摧眉折腰事权贵,叫我不得开心颜。”让他领悟了人生的真谛;奥托-瓦拉赫放弃父母所选的文学,油画,而投身于化学,成为享誉全球的化学巨头……他们的人生都因为选择了自己的路而变得独特。若是没有选择适合自己的目标,他们也不会有如此的成就。

“尺有所短,寸有所长。”我们也要找到自己擅长的方面,发扬自己的长处,令自身拥有几个闪光点,不应见到他人便现慕他人的优点,因为自己也定有些地方远非他可以企及。世上的事业千千万万,只有适合自己的才是最好的。人无完人,故而所有人都需要认清自己的强项和弱势,看清自己,找准位置,均衡发展,从而更好的立足于社会之中。

“凫胫虽短,续之则忧,鹤胫虽长,断之则悲。”唯有找到自身定位,确定自我目标,制定自己的计划并为之付出汗水;践行思齐,见不贤而内自省,不断完善与提高自己;善假于物,发展自身特长,才能走上适合自己的路,取得令自身真正为之骄傲的成就。自己的人生需要自己演绎,自己的生活该有自己的选择。选择最适合自己的,才能活出自己的样子,活出自己的精彩。


适合自己的路
https://www.ordchaos.com/posts/ab8676cc/
作者
序炁
发布于
2022512
更新于
2022512
许可协议
\ No newline at end of file diff --git a/posts/b3d3143c/index.html b/posts/b3d3143c/index.html new file mode 100644 index 000000000..5bf0ed952 --- /dev/null +++ b/posts/b3d3143c/index.html @@ -0,0 +1,3 @@ +数字生命卡开箱——来自《流浪地球II》 - 序炁的博客 + +

数字生命卡开箱——来自《流浪地球II》

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!

《流浪地球II》的官方周边产品大部分都是赛凡做的。怎么说呢……我买的数字生命卡是第二批,看到很多第一批的都有程度不一的瑕疵。不过我这个就还好,没有什么大问题,看来还是有在改进运输和包装质量。

到手差不多就是这么些东西:

其它周边什么的就不多说了,重头戏还是数字生命卡。

数字生命卡

只说外观的话,看起来金属感不是很强,喷个漆观感应该会好一些,但我不会(

别的道具倒是挺还原的,比如说袋子。

别的也没什么可说的了,毕竟这也就是一个128GU盘和一个读卡器而已。

其它

不说什么了,放几张图吧。

题外话

不是很好评价赛凡的产品了……

我只能说我能接受这个做工,但的确,赛凡的破事很难让我提起好感。

就这样,886!


数字生命卡开箱——来自《流浪地球II》
https://www.ordchaos.com/posts/b3d3143c/
作者
序炁
发布于
2023723
更新于
2023723
许可协议
\ No newline at end of file diff --git a/posts/bb5ce830/index.html b/posts/bb5ce830/index.html new file mode 100644 index 000000000..fedd97f8f --- /dev/null +++ b/posts/bb5ce830/index.html @@ -0,0 +1,3 @@ +《钢铁是怎样炼成的》读后感 - 序炁的博客 + +

《钢铁是怎样炼成的》读后感

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

一个人的人生应当这样度过:当他回首往事时,不因虚度年华而悔恨,也不因碌碌无为而羞耻。

——题记

保尔是一个无私的人,他总是把党和祖国的利益放在第一位。在战争年代,保尔情愿与父兄们一起上战场;为保卫苏维埃政权,他甘愿同外国武装干涉者和白匪军拼个你死我活。这些都表现保尔了甘愿为革命事业的献身精神。在如此的艰难岁月中,他却能将自己全部的热情投入到了和平劳动之中。虽然他为国家、党与人民做过如此大的贡献,但他却从未骄傲过,也从未考虑过个人的名利、地位,而只想多为党和人民做点事情。党叫他修铁路,他答应;党调他当团干部,他同意——而且都是拼命地做。为了革命他甚至可以牺牲自己个人的私生活,即爱情。他虽然爱丽达,但受到了“牛虻”的影响,所以想要“彻底献身于革命事业”,最后按照“牛虻”的方式与她不告而别。在保尔全身瘫痪、双目失明后,他仍然想继续为党工作。这些都正如他所言:“我的整个生命和全部精力,都献给了世界上最壮丽的事业——为人类的解放而斗争。”

保尔是一个于平凡且伟大的人物。在他的一生中,一直没有过什么惊天动地的伟大业绩:他总是从最平凡的小事做起。面对疾病的沉重打击,虽然他也曾产生过自杀的念头,但是保尔后来也认识到了这是一种任性和不负责任,于是他又重拾了对生活的信心。也正是因为作者的这种塑造,所以保尔才会让我们感受到一种真实感。他是伟大的,也是平凡的。他既是在不断的困境与不幸中真正被煅炼的钢铁,也是一个有血有肉的、让人感到亲切的人。

书中对于保尔残疾后形象的塑造也同样不乏。保尔因不幸而残疾,但尽管自己身体行动不便,他也用自己顽强的毅力克服了种种困难。他在残疾后毫不灰心,反而更加的刻苦学习与奋力工作,同时还开始了文学创作。即使是他双目失明后他也未动摇过其信念,只是拿起了笔,摸索着尝试写作。即便是每写一字,他都需要付出常人根本无法想象的艰辛劳动他也坚持了下来,由此最后他才终于写出了小说《在艰苦暴风里诞生》的一部分。保尔是一个普通的革命战士,但却有着这样钢铁般的坚强意志,这与共产主义事业的召唤是不可分割的。他投身于革命事业,一次又一次的创造着奇迹。

世界上基本没有什么是天生的,所有事物都只有在经过火焰的煅炼后才可以使自身得到不断地升华。保尔是,我们也是。我们每一个人都只有树立伟大的理想、执着的追求,并且在正确的拼搏道路上不断砥砺前行,他才不会被生活的火焰所摧毁,不会被不幸的塑造所扭曲。这样的人会在一段段人生经历中坚强、成熟起来,去绽放自己的力量、迎接更好的自己。


《钢铁是怎样炼成的》读后感
https://www.ordchaos.com/posts/bb5ce830/
作者
序炁
发布于
2021423
更新于
2021423
许可协议
\ No newline at end of file diff --git a/posts/bff2b1a/index.html b/posts/bff2b1a/index.html new file mode 100644 index 000000000..92da1375d --- /dev/null +++ b/posts/bff2b1a/index.html @@ -0,0 +1,3 @@ +牺牲少数保护多数是不正义的——一辩发言 - 序炁的博客 + +

牺牲少数保护多数是不正义的——一辩发言

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

尊敬的老师及评委们,大家好!我们的观点十分明确,即牺牲少数保护多数是不正义的。请注意辩题中的措辞,是“不正义”而远非“邪恶”。不正义并非与正义成对立的关系,而是互补——任何称不上正义的行为都可以称之为不正义。不正义不是一个极端的点,而是除了正义这个点外的整条线。所以换句话说,我们认为,牺牲少数保护多数的行为不配称之为正义。“牺牲”本义指古希腊哲学家柏拉图在《理想国》中曾表明正义是客观存在的,所以并不存在所谓“相对的正义”,也不可能从两个角度分别看待一件事正义与否并得出不同的答案。既然我们已知牺牲少数保护多数从某些角度上来看并非正义,那么这件事自然便一直不在正义的范畴之中,于是其只能是不正义的。

著名德意志哲学家,德国古典哲学创始人伊曼努尔·康德认为:人,是目的本身,即在任何时候任何人(甚至上帝) 都不能把他只是当作工具来加以利用。若是牺牲少数来保护多数,那不正是把少数人放在了可以随时被“牺牲”、被消耗的“工具”的位置上吗?恶也油然而生。这样的行为无论如何加以粉饰也不可能被称之为正义。人同样存在最高权力,高过任何外界利益总和。我们拥有我们自身,是自由的个体。在此基础上可以构建出人人平等的前提,所以“使社会利益最大化”的行为,即牺牲少数保护多数并非正义。

常常有一句话说“公平即正义”,但是其逻辑性趋近于无。“正”即合于法则的(合于法律的)、规矩的(指相对的两方面中积极的一面),而“义”则是公正合宜的道理或举动(合乎正义或公益的)。所以可以得出正义是指合于法则的公正合宜的行为。而公平,“公”“私”相对,指属于国家或集体的;“平“则是指一般的,故而“公平”的意思是指集中而大多适用的道理。自然“牺牲少数保护多数”的行为只属于公平而非正义。

我们可以举一个例子,为了救活十个即将饿死的人,杀死其中一个人作食物给另外九个人吃,这样做对吗?从结果上看,活下来的人数比死去的人多,似乎就应该按照这样的办法去做。不过我们可以深思一下,假若按照上述价值观去做,虽然短时间内使社会利益得到了最大化,但是如此侵犯个人的基本权利最终会使社会整体幸福度降低。从长远看,若这种做法流行起来,社会将变得鸡犬不宁人人惶惶不可终日。

最后,我们社会的发展,社会的价值的提升,并不是通过牺牲少数人,牺牲弱势群体来达到的,而是通过平衡社会中不同阶级之间的关系,来使社会达到一种动态的平衡。当弱者出现时我们每个人献出一点爱让他们变得强大。当少数人的利益与多数人的利益冲突时,我们虽然会使少部分人做出牺牲来达到利益的最大化,但是我们不会自诩正义,我们心中会永远记得那些为多数而牺牲的少数,并为补偿他们而不懈奋斗着,因为“无正当补偿便不能剥夺”原则是对共同利益的最好保护。那些剥夺了他人的权益还自称正义的人是这个世界上最大的暴徒。

综上所述,我方认为牺牲少数保护多数是不正义的。谢谢!


牺牲少数保护多数是不正义的——一辩发言
https://www.ordchaos.com/posts/bff2b1a/
作者
序炁
发布于
20211213
更新于
20211213
许可协议
\ No newline at end of file diff --git a/posts/c2e7460a/index.html b/posts/c2e7460a/index.html new file mode 100644 index 000000000..c25b6cf4d --- /dev/null +++ b/posts/c2e7460a/index.html @@ -0,0 +1,3 @@ +哇!是毕业旅行! - 序炁的博客 + +

哇!是毕业旅行!

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!

前情提要

武汉今年中考在六月的二十、二十一、二十二号总共三天,考完以后休息放纵两日后,我们全班便踏上了高铁前往青岛。

怎么说呢……说是六天五夜,但武汉与青岛之间的高铁要坐8小时,所以第一天和最后一天都相当于是在高铁上玩一天手机(雾

Day 1 & 2

我们在武汉站登车,高铁从上午十一点一直开到了晚上七点。好在酒店离高铁站很近,走路也就5分钟路程,所以我们就前往了酒店开房。

该说不说,4个人挤双人房的安排是有点逆天的。就算我们没意见,酒店也没意见?!

第二天起来吃了早饭之后我们便走路前往了海边,很近,不过不是海滩。拍了几张照,早上天气真的很差,本来是小雨的天气,结果雨越来越大,风也越来越强。但过了一会天又晴了……

然后就是非常晒人。

下午乘坐青岛地铁去了中山公园附近的沙滩。只能说不愧是夏天,晚上五六点仍然晴空万里。

玩水玩得非常开心,不过也仅限于在海水中跑一跑了。毕竟我可不想和部分其他同学一样弄得浑身湿透。

请同学拍了两张照!

Day 3

走路去了圣弥勒尔大教堂,不过也没进去,就是在外面拍了几张照。

风景很不错,宝宝喜欢妈妈爱。

以及本来还以为会碰到什么传教士什么的,然后我就能回一句”我信铂金龙神巴哈姆特“(大雾,结果没有。

然后就去了老舍故居,看到了《骆驼祥子》相关的很多文物(?)。得亏武汉今年考的是《钢铁是怎样炼成的》,不是《骆驼祥子》,没有被祥子一车创si

然后就是坐地铁回酒店了,这次是从人民会堂到青岛站。

下午去坐船了,不大不小的船。

我只想说,快艇我不晕,轮船我不晕,所以就是这种两者之间的会晕是吗!!!

下午天气很不好,在海上飘着,外面还下大雨,甚至打雷……

坐了四小时,而后从原港口下了船,感觉像是自找了四小时的罪受,艹。

回酒店后第一时间点了外卖,不然真感觉要吐了。

Day 4

又是地铁!这几天地铁成了我们唯一的陆上交通工具,别的旅行团都会有大巴什么的,我们没有,我们就是坐地铁(

还是人民会堂站下车,这次我们去了小青岛公园。公园环境很好,玩得很开心,甚至还去看了鱼雷洞。

以及走的时候发现了一条绿意盎然的楼梯,拍了张照,很好看(

下午坐一号线去了台东,去了步行街吃晚饭。

兴致突然起来了,和同学一起买了地铁票进站而非使用手机app. 运气挺好,买到了不一样样式的单程票。

下车之后全班就直接分组分头行动了。穿梭于人来人往的小吃摊中,感受到烟火气的缭绕,对于一个忙碌了一整年的初三学生来说实在是太酷啦!

买了铁板豆腐、臭豆腐、鱿鱼和青岛啤酒,香的嘞。

然后去了五四广场,再之后就又回了酒店。

Day 5

又去了海边,不过是坐地铁去的,三号线转二号线。

所以又收集(?)到了两款不一样的地铁票。

还有在五四广场同站换乘。

说实话,天气真的不好,海边景色这几天也看腻了(

浅浅拍了几张照之后就坐地铁回去了,以及又收集到了一种地铁票。

下午老师组织看电影,一起看了端午档的《消失的她》

悬疑片嘛……不是很和我胃口,但是观感还不错。

然后就是吃完饭。老师给了每人80的预算,让分组一起吃晚饭,我就和另外三个同学一起去了海底捞。

第一次去海底捞,服务很好,很符合我的期待,价格也正常,不算很贵,起码没超预算。

点了两个菌菇和麻辣两个汤底,味道就很正常,跟我家里和父母一起煮的火锅差不多。

最后还送了一份面条,海底捞真的,我哭死(大雾

师傅的手艺很好,观赏性十足,爱了爱了。

随便贴几张图吧:

Day 6

早起前往高铁站,赶十点的高铁。

天气阴了这么多天,结果偏偏走的时候才好,我的评价是,6.

坐的复兴号高铁,不过站台另一侧有一辆绿皮火车,于是拍了一张个人觉得很好看的照片:

然后又是玩了一天手机……

最后,晚上6点,回到武汉,与老师同学告别后回到了家,结束了这一场旅行。

题外话

生活记录型的博文,尤其是这么长的,我还是第一次写,有什么不足请多多海涵!

什么?你问中考?

请观阅以下内容:

你说的对,但是《中考》是由武汉教育局自主研发的一款「互联网时代」全新开放世界冒险游戏。游戏发生在一个被称作「HappyPark」的幻想公园,在这里,被「往上提的溢水杯」选中的人将被授予「0.797g沉淀」,导引「两种酸」之力。你将扮演一位名为「有两块抹布的直径0.3m的扫地机器人」的神秘角色,在面积27m2的秘鲁考古遗址中邂逅的紫甘蓝味软糖,和百万年前出士的bright flowers化石一起,找回「简练明快,势巧形密」的家书同时,感受「尽责地爱」,且逐步发掘「点P过定线」的真相。

怎么说呢,今年的题真的很创人。

所以……考的差一点也不要紧啦,哈哈……

···

啊?你真以为我考砸了?

886!


哇!是毕业旅行!
https://www.ordchaos.com/posts/c2e7460a/
作者
序炁
发布于
202371
更新于
202371
许可协议
\ No newline at end of file diff --git a/posts/c9c6cb4f/index.html b/posts/c9c6cb4f/index.html new file mode 100644 index 000000000..cbdb4d9ad --- /dev/null +++ b/posts/c9c6cb4f/index.html @@ -0,0 +1,3 @@ +前、后与中——表达式求值 - 序炁的博客 + +

前、后与中——表达式求值

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi

如果你不知道这些表达式分别指什么东西,可以百度一下,这里不再赘述。

后缀表达式

这个应该是最常见的了,下面讲一下实现。

首先,还是定义函数废话

1
2
3
int main() {
//...
}

然后,进行文件读取,可以用freopen(),不过我这里用的是fopen()

1
2
3
4
5
6
7
8
9
10
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100]; //temp
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

//...
}

解释一下上面的程序:

  • stack<double> nums 这个栈后面会用到,这里先不用管
  • fscanf()scanf()用法一样,唯一的区别是fscanf()用于读取文件流中的信息而非输入流
  • feof()中的参数为文件流,用于判断是否读到结尾,读到则返回真

很显然,这段程序用于分别读入每一段字符,那么接下来便是判断输入了。

代码如下:

1
2
3
4
5
6
7
8
9
10
while(true) {
//...

if(isdigit(input[0])) {
nums.push(atof(input.c_cstr()));
}
else {
//...
}
}

如果输入为整数,则进入数字栈,否则开始计算。

这里使用了isdigit()函数,输入为char类型,用于判断参数是否在'0''9'之间。

计算过程很简单,弹出两个数字栈中的数,根据运算符计算即可:

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
//...
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();

double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}

尤其要注意减法与除法的操作数与被操作数顺序,毕竟它们可没有交换律。

此时已经计算完成,结果作为栈中唯一的元素处在栈顶,直接输出即可:

1
2
3
4
fclose(stream); //关文件是一个好习惯
cout<<nums.top()<<endl;

return 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main() {
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;
if(is_num(input)) {
nums.push(atof(input.c_str()));
}
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}
nums.push(temp);
}
}
fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

输入样例:

1
1 2 + 3 - 

输出样例:

1
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
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<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main(){
FILE* stream = fopen("input.txt", "r");

stack<double> nums;
vector<string> input; //存储读取数据
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
input.push_back(string(tstr));
}

for(int i = input.size() - 1;i >= 0;i--) { //倒序读取
if(is_num(input[i])) {
nums.push(atof(input[i].c_str()));
}
else {
double x = nums.top();
nums.pop();
double y = nums.top();
nums.pop();

double temp;
switch(input[i][0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}
}

fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

改成倒序读取即可。

输入样例:

1
- + 1 2 3 

输出样例:

1
0

中缀表达式

我们最常用的表达式,处理起来却是最复杂的,因为现在需要考虑优先级与括号了。

这里有几种方法:

递归

首先,定义函数用于取多项式的因子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int factor() {
int res = 0;
char c = cin.peek();
if(c == '(') {
cin.get();
res = expression();
cin.get();
}
else {
while(isdigit(c)) {
res = 10 * res + c - '0';
cin.get();
c = cin.peek();
}
}
return res;
}

先定义结果为0,然后判断输入。若为括号,则将其内容视为新表达式,交由马上要定义的expression()函数计算。否则,按位取出输入中的数即可。

顺带一提,这些代码中的cin.get()cin.peek()尤其重要,切勿移动位置或轻易替换。至于原因,自己模拟想一下吧。

然后,计算单项式的值,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int term() {
int res = factor();
while(true) {
char mark = cin.peek();
if(mark == '*' || mark == '/') {
cin.get();
int v = factor();
if(mark == '*') res *= v;
else res /= v;
}
else break;
}
return res;
}

先用factor()函数读入因子,然后循环判断该单项式是否读完。若未读完(即该因子与下一个因子间仍用乘号或除号连接)则取下一个因子并计算,否则返回该单项式的值即可。并且很显然,这样的写法就代表输入的表达式中不应当含有任何空格,也只支持整数运算(要浮点数自己改我不干了)。

最后是整个表达式,与计算单项式基本一样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int expression() {
int res = term();
while(true) {
char mark = cin.peek();
if(mark == '+' || mark == '-') {
cin.get();
int v = term();
if(mark == '+') res += v;
else res -= v;
}
else break;
}
return res;
}

读入单项式再计算,直到该表达式计算完毕(即mark取到)EOF

主函数其实已经一目了然了,重定向输入再调用expression()即可,就不写了。

输入样例:

1
(28/7)/2+(8-9)

输出样例:

1
1

这里又分为两种方案:

转为后/前缀表达式再计算

这里的重点是转换的过程,逻辑整体如下(中缀->后缀):

  • 输入若为数字,直接放入输出表达式中。若为符号:
    • 如果符号栈为空,则放入符号栈中
    • 如果符号栈栈顶元素优先级大于等于该符号,则出栈栈顶符号放入表达式,若此时栈顶符号优先级大于等于该符号,则重复以上流程直至小于,而后入栈该符号
    • 如果符号栈栈顶元素优先级小于该符号,该符号入栈
    • 如果该符号为左括号,直接入栈
    • 如果该符号为右括号,则依次出栈符号栈栈顶元素放入表达式中,直至左括号。最后抛弃左括号与右括号
  • 若输入完毕,符号栈中仍有符号,则依次出栈放入表达式

代码如下(转为后缀表达式):

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
map<char, int> markl;

markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

FILE* stream = fopen("input.txt", "r");

stack<char> marks;
vector<string> expression;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

if(isdigit(input[0])) {
expression.push_back(input);
}
else if(input[0] == '(') {
marks.push('(');
}
else if(input[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
}
else {
if(marks.empty() || marks.top() == '(') {
marks.push(input[0]);
}
else if(markl[input[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
marks.push(input[0]);
}
else {
marks.push(input[0]);
}
}
}

while(!marks.empty()) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}

和上面的逻辑完全一样,唯一要注意的是这里使用了map,可以理解为字典。

然后只需要计算就行,代码就不放了。

前缀表达式的逻辑与代码可以自己想想。

输入输出样例同下面。

直接计算

逻辑和转换本身是一样的,只不过没有了表达式向量,而是直接计算后放入数字栈。

即将所有的对于expression的操作改为计算即可:

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
#include <bits/stdc++.h>
using namespace std;

double calc(char mark, double x, double y) {
double temp = 0;
switch(mark) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

return temp;
}

int main() {
FILE* stream = fopen("input.txt", "r");

map<char, int> markl;
markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

stack<char> marks;
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string temp = tstr;

if(isdigit(temp[0])) {
nums.push(atof(temp.c_str()));
}
else if(temp[0] == '(') {
marks.push('(');
}
else if(temp[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}

double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
}
else if(marks.empty() || marks.top() == '(') {
marks.push(temp[0]);
}
else if(markl[temp[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
marks.push(temp[0]);
}
else {
marks.push(temp[0]);
}
}

while(!marks.empty()) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}

fclose(stream);

cout<<nums.top()<<endl;
return 0;
}

输入样例:

1
( 28 / 7 ) / 2 + ( 8 - 9 ) 

输出样例:

1
1

收工!

题外话

这篇大概是我最长的纯原创技术类博文了。。。。。。

好累QAQ

下次再见啦!886!

2023.04.03更新

ChatGPT改了一个支持浮点数的递归版本:

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void print_tab(int);
void print_log(string, int);
void print_log(string, int, double);
double expression(int);
double term(int);
double factor(int);

int main() {
freopen("input.txt", "r", stdin);
cout << expression(0) << endl;
return 0;
}

void print_tab(int deep) {
for(int i = 0;i < deep;i++) {
cout << "\t";
}
return;
}

void print_log(string name, int deep) {
print_tab(deep);
cout << name << " {" << endl;
return;
}

void print_log(string name, int deep, double res) {
print_tab(deep);
cout << "} -> res =" << res << endl;
return;
}

double expression(int deep) {
print_log("expression", deep);

double res = term(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '+' || mark == '-') {
cin.get(); //skip
double v = term(deep + 1);
if(mark == '+') res += v;
else res -= v;
}
else break;
}

print_log("expression", deep, res);

return res;
}

double term(int deep) {
print_log("term", deep);

double res = factor(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '*' || mark == '/') {
cin.get(); //skip
double v = factor(deep + 1);
if(mark == '*') res *= v;
else res /= v;
}
else break;
}

print_log("term", deep, res);

return res;
}

double factor(int deep) {
print_log("factor", deep);

double res = 0;
double base = 1.0;
char c = cin.peek(); //get
if(c == '(') {
cin.get(); //skip
res = expression(deep + 1);
cin.get(); //skip
}
else {
while(isdigit(c) || c == '.') { // == GET A NUMBER ==
if(c == '.') {
cin.get(); //skip the '.'
c = cin.peek(); //get the next character
while(isdigit(c)) { //collect digits for the decimal part
res = res + (c - '0') * (base /= 10.0);
cin.get();
c = cin.peek();
}
break;
}
res = res * 10 + c - '0'; //get num
cin.get(); //skip
c = cin.peek(); //get
}
}

print_tab(deep + 1);
cout << "get_num();" << endl;
print_log("factor", deep, res);

return res;
}


前、后与中——表达式求值
https://www.ordchaos.com/posts/c9c6cb4f/
作者
序炁
发布于
202342
更新于
202343
许可协议
\ No newline at end of file diff --git a/posts/d29e300c/index.html b/posts/d29e300c/index.html new file mode 100644 index 000000000..f50417383 --- /dev/null +++ b/posts/d29e300c/index.html @@ -0,0 +1,3 @@ +浅探魏晋名士的精神世界 - 序炁的博客 + +

浅探魏晋名士的精神世界

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

提起魏晋,“名士风流”四个字是现代人对它的基本认知,在中华民族几千年的历史长河中,也唯有魏晋南北朝时期独有的世族门阀在政治、经济、文化领域与皇权分庭抗礼甚至占主导地位的条件下,才能形成“魏晋风度”这一独特的文化现象。代表家族如王谢世家,代表人物如竹林七贤等,除了留下大量诗歌、书法、音乐等文化遗产外,还留下了处变不惊、旷达任率、不拘礼法、风神潇洒、不滞于物的精神风貌和思想风格供后世研究探讨。

魏晋名士如此“特立独行”的精神世界,它的形成有一个长期过程。东汉末年开始的南北分裂和战乱,党锢之祸、黄巾起义、三国鼎立、司马氏篡权,百多年的血雨腥风,动荡不安,使“汉末名教”作为思想束缚的礼教开始崩塌,士人们不再对皇权盲目崇拜,开始拥有了自我意识,而其中一些有识之士不安于现状,不断追求思想上的创新与突破。他们会去对规则本身的合理性进行考虑,以探寻规则外的广阔天地;他们不仅行为上不愿再受规则的束缚,精神世界也同样不甘压迫;他们开始探索宇宙自然与人生本体的关系,追求新的思辨哲理。

现在看这些名士们的行为,可以发现其实连带着魏晋风度本身,有些只是反常的叛逆性极强的怪异举动,可以认为是在名教长时间压迫下的剧烈反弹。甚至会出现一些较为过激的行为,如在《世说新语》任诞篇中对刘伶的记载:“刘伶恒纵酒放达,或脱衣裸形在屋中。人见讥之,伶曰:我以天地为栋宇,屋市为裈衣,诸君何为入我裈中?”如此行为,只能称得上是“率性而为,任诞放达”了,其叛逆性之强不容否认。

除了战乱,魏晋时期残酷的政治清洗同样令人不安,无论是个人的生命还是家族的命运,全都在统治者、权贵的争权夺势中难以独善,所以魏晋士人在放达不羁的行为中也折射出深深的忧惧和哀伤。故而反抗礼教的名士们便只得走向崇尚老庄,酗酒佯狂,傲啸山林,不与时务的道路,个人认为,这一点是促成魏晋风度中“隐居”行为的重要因素。而从嵇康的性情刚直,阮籍纵酒放达等都能看出些许佐证。

在这样政治黑暗,礼教束缚的年代,尽管出现了文人集体失语的现象,但魏晋名士的特点就是不会停止对成为累赘的礼教的批判与反抗,不会停止对自由人格的永恒追求。在魏晋名士眼中,自由就是顺从自己的天性,任性而为,随心而动。他们具有超脱世俗自由独立的人格理想,所以能一边否定外界社会一边重构自我人格,“人生贵得适意尔”。随着道教的兴起、佛教的传入,开创出儒道互补的士大夫精神,奠定了中国知识分子的人格基础,不可不谓影响深远。

当然任何事情都有其两面性。对于魏晋名士的思想和行为,被后世最为诟病的是“五石散”的服用和空谈玄理的风气。或出于养生、或出于美容、或出于对长生的追求、或出于身份地位的昭示,士人们刻意忽视它的副作用,使服用五石散成为一种“时尚”,造成了了大量人力物力的浪费和对身体的伤害。甚至连家境并不富裕、买不起五石散的人们都会争相模仿:当众倒地,自称“石发”。闹出不少笑话。在《太平广记》中《启颜录﹒魏市人》便有“有一人,于市门前卧,宛转称热”的记载,可见一斑。而魏晋名士的清谈,考验的是口才和思辨,但从开始的成就自己的政治抱负发展到只关心自己一家一姓一族的得失,崇拜浮虚、寄情酒色、不管国事,致使朝野颓唐,甚至间接导致了西晋的亡国,从此流传下来“清谈误国”这句话。

动荡时期的不安全处境和残酷的政治斗争中,要么顺应环境保全生命,要么纵情于山水追求的精神解放,要么饮酒服药带来短暂的麻痹,这种焦灼矛盾的状态或许就是魏晋名士精神世界的形成原因,我们在研究和探索的过程中,不应该将狂放、酗酒、服药等视为风流,而忽视了它所产生的时代背景,不能只看到他们狂放洒脱的一面,更要看到深刻沉重的一面。

我认为,魏晋名士之所以为名士,不是因为不羁和自由,而是因为才学。如竹林七贤中阮籍的诗歌、山涛的文集、嵇康的文集和音乐等等,更有世家中的高门大户王家的书法和谢家的政治成就。但是他们中的大多数却选择清谈、避世,选择隐居甚至堕落。精神上的虚无主义,使他们留名后世,却在当时无所作为,未能为动荡的社会做些什么,亦未能解救悲苦的百姓。历史上每逢乱世,必会产生开放的思想,并由此造福于百姓,有破有立。唯有魏晋名士,思想开放却是破而未立。他们的反抗仅仅只是反抗,却未有切实可行的主张去改变社会现状。

所以,魏晋风度对当世可能仅仅是一种浮于表面的行为艺术,一种看破世俗的有识之士的无能呐喊,一场雷声大雨点小的思想革命。虽然为后世留下了丰富的文学经典,但却几乎未在当时的社会中产生任何正向作用。名士们的精神世界中除了繁多的思想外,难说是否有未民生的思考,抑或是仅仅停留在了“人生贵得适意尔”“适意”上。故而我们既要学习他们对自由与创新的向往,更要善于学习,善于以辩证的思想去看待他们本身、他们的行为及他们的精神世界,而非盲目追随。


浅探魏晋名士的精神世界
https://www.ordchaos.com/posts/d29e300c/
作者
序炁
发布于
2021623
更新于
2021623
许可协议
\ No newline at end of file diff --git a/posts/d4140423/index.html b/posts/d4140423/index.html new file mode 100644 index 000000000..344ffcaac --- /dev/null +++ b/posts/d4140423/index.html @@ -0,0 +1,3 @@ +学习笔记——树 - 序炁的博客 + +

学习笔记——树

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

tree

介绍

  • n(n>0)个元素组成的有限结合,是一种非线性的有序结构。
  • 每一个其中的元素都被称为结点,除根节点外,其余节点组成的子集称为子树。
  • 一棵树由根节点与结点组成,除根节点外每个节点都有前驱结点。一棵树至少有一个节点,此时,该节点即为根节点。换而言之,每棵树有且仅有一个根节点。在一个mk叉数中最多有1km+11k\frac{1-k^{m+1}}{1-k}个节点(k>=1, m>=0)。
  • 树是递归定义的,即在一棵子树中,其根节点同样在树中作为结点。
  • 一个节点的子树个数称为这个节点的度(degree)。度为零的节点称为叶节点(leaf),不为零的节点称为分支节点(包括根节点),根以外的分支节点被称为内部节点。一棵树中度最大的节点的度被称为这棵树的度。
  • 树状结构的图形中,连接两个相关联的结点的线段称位树枝。上端节点为下端节点的父节点,相对应的下端节点为上端节点的子节点,同一个父节点的所有子节点互为兄弟结点。从根节点出发到某个子节点所经过的所有节点均为该子节点的祖先,同理,此此节点为其所有祖先的子孙。
  • 一棵树中根节点的层次(level)0,其余的节点的层次为其父节点的层次加1。与度一样,树中层次最大的节点的层级被称为树的深度(depth)。
  • 在树中,从一个节点出发,自上而下的沿着节点与树枝可以到达另一节点,则称它们间存在一条路径(所以显而易见不同子树上的节点间不存在路径)。用路径上的节点个数减一(即树枝个数,或是用层级较大的节点的层数减去较小的节点的层数)表示路径长度。
  • 互不相交的数的集合称为森林,即森林是m棵互不相交的树的集合。

如下图即为一颗经典的树:

存储结构

父亲表示法
1
2
3
4
#define MAX_LENGTH 10 //最大节点数
struct node { //定义节点
int data, father; //作用域与指针域
}tree[MAX_LENGTH]; //定义树

这种方法容易找到树根,但是找孩子就需要遍历整个线性表,即时间换空间

孩子表示法
1
2
3
4
5
6
7
8
#define MAX_DEGREE 10 //最大度数
struct node {
int data; //数据域
node* children[MAX_DEGREE]; //指向若干个子节点的指针域
};
struct tree {
node* root;
}t;

这种方法不可以从子节点返回父节点

父亲孩子表示法
1
2
3
4
5
6
7
8
#define MAX_DEGREE 10 //最大度数
struct node {
int data; //数据域
node* children[MAX_DEGREE], father; //指向若干个子节点的指针域
};
struct tree {
node* root;
}t;

是孩子表示法的优化版,可以直接访问任意子节点的父节点,是一种空间换时间的方法

孩子兄弟表示法
1
2
3
4
5
6
7
struct node {
int data; //数据域
node* firstChild, next; //分别指向第一个子节点与下一个兄弟节点
};
struct tree {
node* root;
}t;
总结

这些方法没有好坏之分,应当视情况选用

遍历

  • 先序遍历(深度优先搜索dfs,从左至右先输出再搜索)
  • 后序遍历(深度优先搜索dfs,从左至右先搜索到叶节点再依次输出并回溯)
  • 层次遍历(广度优先搜索bfs,按层次从左至右搜索,搜索完一层后搜索下一层)
  • 叶节点遍历(按先序遍历的方法遍历,但只访问叶节点)

题外话

这玩意是放暑假前在学校无聊看《信息学奥赛一本通》写的,大概还是有参考价值的吧。

另外还有一篇二叉树的,大概也会发上来。


学习笔记——树
https://www.ordchaos.com/posts/d4140423/
作者
序炁
发布于
202271
更新于
202271
许可协议
\ No newline at end of file diff --git a/posts/d9bb8734/index.html b/posts/d9bb8734/index.html new file mode 100644 index 000000000..dfc0e52f9 --- /dev/null +++ b/posts/d9bb8734/index.html @@ -0,0 +1,3 @@ +无需流量费用!阿里云 oss 图床配合阿里云轻量应用服务器部署 - 序炁的博客 + +

无需流量费用!阿里云 oss 图床配合阿里云轻量应用服务器部署

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

我已经有了一台阿里云的香港轻量应用服务器,正好阿里云oss内网下行流量免费,再加上oss上行流量同样免费,于是就可以在省掉所有的流量费用的同时获得一个拥有不错速度的私人图床。

创建

打开阿里云oss页面,点击bucket列表,选择创建bucket:

名称随意,但是地域要选择于自己的服务器相同的地区,这样才可以通过内网访问。存储类型选择标准存储,读写权限选择公共读,其余一律默认。

oss桶默认是按量计费,标准可以参考官方文档。你也可以像我一样购买资源包,点击资源包管理,再在新页面中点击购买资源包:

然后在资源包类型一栏中选择标准(LRS)存储包,其余按需选择即可:

一年仅需9元,个人认为十分划算。

此时存储桶便已创建完成。

服务器反向代理

内网下行流量免费,所以我们要先访问内网,通过服务器反向代理就可以做到这一点。这里通过宝塔面板进行配置。

点击侧栏的网站,然后点击新建站点:

域名填写最终用来访问图片的域名,如这里的 assets.ordchaos.com。其余默认即可,然后选择提交。

之后点击对应网站的设置——反向代理——添加反向代理。名称随意填写,目标URL填写内容如图所示:

填写对应的内网Bucket域名。

然后点击提交即可。也可以配置缓存,在添加反向代理时点击开启缓存并配置时间就可以了。记得在域名供应商那里添加对应的域名解析到服务器上。

之后可以配置SSL证书,在SSL页面自行配置即可。现在你的桶已经可以通过反向代理来访问了,下面我们来做一些额外的工作。

PicGo配置

PicGo作为一个图片上传工具是非常不错的,拓展性很高。同时作为一款开源软件,其发布在了GitHub上。这里默认已经安装完成了PicGo。

安装S3桶插件

打开PicGo,点击“插件设置”,在搜索框中搜索“s3”,安装第一个就可以了:

我这里安装过了,所以就显示的是“已安装”。这个插件支持所有s3桶,包括阿里云oss。其实可以直接配置阿里云oss,但是使用s3插件可以自动按规则重命名文件。

获取配置信息

把鼠标移到右上角头像上悬浮,在出现的界面上点击访问控制:

然后点击侧栏的用户,再点击创建用户:

登陆名称与显示名称随意,然后勾选下方的“Open API 调用访问”:

点击确定,验证身份,然后就会出现AccessKey ID 与 Secret,记得保存下来:

然后返回到用户管理页面,点击刚刚创建的RAM账号旁边的添加权限,然后添加控制oss桶的权限即可:

配置PicGo图床

点击图床设置-AmazonS3,填写对应参数即可,大致如下:

  • 应用密钥ID:上述获取到的AccessKey ID
  • 应用密钥:上述获取到的AccessKey Secret
  • 桶:你创建的oss桶的名字
  • 权限:public-read(桶权限,公共读)
  • 地区:在对应桶的概览页面可以看到桶的外网访问Endpoint,假设是 oss-xxx.aliyuncs.com,则地区为oss-xxx
  • 自定义节点:上述的Endpoint
  • 文件路径:{year}/{month}/{md5}.{extName}(默认上传到桶的文件路径,格式如下:)
格式描述
{year}当前日期 - 年
{month}当前日期 - 月
{day}当前日期 - 日
{fullName}完整文件名(含扩展名)
{fileName}文件名(不含扩展名)
{extName}扩展名(不含.
{md5}图片 MD5 计算值
{sha1}图片 SHA1 计算值
{sha256}图片 SHA256 计算值

然后点击确定并设为默认图床即可。

大功告成!之后只需要在“上传区”页面就可以一键上传图片并复制链接了。

题外话

目前全站图片都已更换为阿里云oss存储,不得不说速度是真的快。

还有这大概是我目前图最多的一篇博文了吧。


无需流量费用!阿里云 oss 图床配合阿里云轻量应用服务器部署
https://www.ordchaos.com/posts/d9bb8734/
作者
序炁
发布于
202289
更新于
202289
许可协议
\ No newline at end of file diff --git a/posts/da7075f0/index.html b/posts/da7075f0/index.html new file mode 100644 index 000000000..606f46a8c --- /dev/null +++ b/posts/da7075f0/index.html @@ -0,0 +1,3 @@ +C++ 数组实现队列 - 序炁的博客 + +

C++ 数组实现队列

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

队列是常用的数据结构,是广度优先算法中不可或缺的一部分。队列一般使用数组或链表构建,这里会介绍使用数组实现队列的方法。

结构搭建

首先,定义队列结构:

1
2
3
4
5
6
7
#define MAXSIZE 10000

struct myqueue {
int first;
int last;
int v[MAXSIZE];
};

变量first指向首项,last指向尾项其实不是,数据则存在数组v中。为了防止数据溢出,此时定义数组v的范围要尽量大,此处是10000。

再就是初始化队列:

1
2
3
4
void init(myqueue &t) {
t.first = t.last = 0;
return;
}

firstlast都指向数组开头的第0项,很好理解。

之后,开始数据操作。第一个是push函数,将数值存入队列的最后:

1
2
3
4
5
void push(myqueue &t, int s) {
t.v[t.last] = s;
t.last++;
return;
}

注意将last指向后面一项,此时变量last始终指向队列最后一项的下一项,是一个空值。

第二个是pop函数,删除队列首项。不过这里有一个坑,如果队列为空删除便有可能出错,所以要先判断队列是否为空:

1
2
3
4
5
6
7
8
9
10
bool isempty(myqueue &t) {
if(t.last == t.first) return 1;
else return 0;
}

void pop(myqueue &t) {
if(isempty(t)) return;
t.first++;
return;
}

判断队列是否为空很简单,当first=last时,有队列为空(队列非空时,last在最后的数据项的后一位,所以first不可能等于last)。

pop时只需要移动首项的标识,避免了繁琐的数据移送,也无需置空数组的某一项,原因显而易见。但永远抛弃了一部分内存,故而要小心溢出。

再就是获取队列的首项、尾项、第n项以及长度,代码相对简单:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int getf(myqueue t) {
return t.v[t.first];
}

int getl(myqueue t) {
return t.v[t.last - 1];
}

int getn(myqueue t, int n) {
return t.v[t.first + n];
}

int getlength(myqueue &t) {
return (t.last - t.first);
}

这里对于长度的获取需要说一下,理论上长度应当是(last - first + 1),但这里last本身就是数据项的后一项,所以自然就省掉了。

解决问题

现在整个队列已经完全可用了,我们可以尝试用其解决一些实际问题。

问题背景

n(n <= 100)个小朋友排队打针,他们每个人都有依次自己的编号为1, 2, 3, 4, …, n。他们都很害怕打针,所以当排在自己前面的小朋友打针时就会跑走到队伍最后。试设计一程序,输入小朋友数量,输出他们打针的顺序。

样例输入:5
样例输出:1 3 5 4 2

问题分析

很显然,这样需要模拟过程的题目用队列解答会非常容易,直接使用队列出入队模拟这一过程即可。

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int main() {
myqueue test;
init(test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(test, i); //编号依次入队
for(int i = 1;!isempty(test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(test);
pop(test);
push(test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(test)<<" ";
pop(test);
}
}
return 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
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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 10000

struct myqueue {
int first;
int last;
int v[MAXSIZE];
};

void init(myqueue &t) {
t.first = t.last = 0;
return;
}

bool isempty(myqueue &t) {
if(t.last == t.first) return 1;
else return 0;
}

void push(myqueue &t, int s) {
t.v[t.last] = s;
t.last++;
return;
}

void pop(myqueue &t) {
if(isempty(t)) return;
t.first++;
return;
}

int getf(myqueue t) {
return t.v[t.first];
}

int getl(myqueue t) {
return t.v[t.last - 1];
}

int getn(myqueue t, int n) {
return t.v[t.first + n];
}

int getlength(myqueue &t) {
return (t.last - t.first);
}

int main() {
myqueue test;
init(test);
int n;
cin>>n;
for(int i = 1;i <=n;i++) push(test, i); //编号依次入队
for(int i = 1;!isempty(test);i++) {
if(i%2 == 0) { //如果是第偶数个打针的,排到最后
int temp = getf(test);
pop(test);
push(test, temp);
}
else { //如果是第奇数个打针的,输出后出队
cout<<getf(test)<<" ";
pop(test);
}
}
return 0;
}

C++ 数组实现队列
https://www.ordchaos.com/posts/da7075f0/
作者
序炁
发布于
202249
更新于
202249
许可协议
\ No newline at end of file diff --git a/posts/e84bad58/index.html b/posts/e84bad58/index.html new file mode 100644 index 000000000..2ee34cdf7 --- /dev/null +++ b/posts/e84bad58/index.html @@ -0,0 +1,3 @@ +满十四,进十五。愿我青春无悔,不负韶华 - 序炁的博客 + +

满十四,进十五。愿我青春无悔,不负韶华

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

又大了一岁呢…

令青春无悔,愿韶华不负!

希望明年的此刻,我能够无愧于自己。


满十四,进十五。愿我青春无悔,不负韶华
https://www.ordchaos.com/posts/e84bad58/
作者
序炁
发布于
2022824
更新于
2022824
许可协议
\ No newline at end of file diff --git a/posts/e8587b82/index.html b/posts/e8587b82/index.html new file mode 100644 index 000000000..54d649348 --- /dev/null +++ b/posts/e8587b82/index.html @@ -0,0 +1,3 @@ +Phigros 版本迁移——从 Google Play 到 Tap Tap - 序炁的博客 + +

Phigros 版本迁移——从 Google Play 到 Tap Tap

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

起因

Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档。

过程

大体参考这一篇文章Phigros存档跨版本转移教程(免root)即可,在这里稍微提一下我遇到的问题

解决问题

在使用abe.jar时,Java报错:

1
Error: A JNI error has occurred, please check your installation and try again

首先在网上查询,找到的第一个方法是删除电脑里共存的JDK,只留下一个,使java -versionjavac -version有相同的版本。

我照做,删除了java8,只留下了openjdk17,但是毫无卵用。

于是我继续查询,发现在跨!系!统!转!移!支持安卓和IOS的跨系统存档转移工具!Phigros 存档 IOS 跨系统 备份 还原 转移 同步这一视频中所提供的工具里的abe.jar可用。

总结

如果你也遇到了一样的问题,可以参考我的方法看看是否有效。

若不想下载整个备份工具而只想要abe.jar的话,可以从这里下载:链接(如有侵权,请联系我删除)


Phigros 版本迁移——从 Google Play 到 Tap Tap
https://www.ordchaos.com/posts/e8587b82/
作者
序炁
发布于
2022821
更新于
2022821
许可协议
\ No newline at end of file diff --git a/posts/e8ce405d/index.html b/posts/e8ce405d/index.html new file mode 100644 index 000000000..6ea842bae --- /dev/null +++ b/posts/e8ce405d/index.html @@ -0,0 +1,3 @@ +空气成分手抄报 - 序炁的博客 + +

空气成分手抄报

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

化学的暑假作业,浅浅地用sai2摸了一个图出来,大家看看就好。


空气成分手抄报
https://www.ordchaos.com/posts/e8ce405d/
作者
序炁
发布于
202288
更新于
202286
许可协议
\ No newline at end of file diff --git a/posts/e9c784c5/index.html b/posts/e9c784c5/index.html new file mode 100644 index 000000000..65ccafc73 --- /dev/null +++ b/posts/e9c784c5/index.html @@ -0,0 +1,3 @@ +使用Github Action定时重启邮件服务 - 序炁的博客 + +

使用Github Action定时重启邮件服务

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。

情景引入

邮件服务器性能羸弱,无法胜任设置定时任务这样的重担,所以只能用一些盘外招试试了。

设置 Action

那么首先,本着轻量化的原则,新建一个仓库拿来干这种事:

然后切到Action页面:

选择新建一个空白模板:

修改Action名称、内容并设置定时,参考我的:

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
# This is a basic workflow to help you get started with Actions

name: REMX

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
schedule:
- cron: "0 20 * * *"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout Codes
uses: actions/checkout@v3

- name: Restart MX Service
uses: garygrossgarten/github-action-ssh@release
with:
command: ./restart.sh
host: ${{ secrets.HOST }}
username: root
password: ${{ secrets.PASSWORD }}

- name: Finish
run: echo "Action Finish"

SSH相关配置自行查看官方文档

保存,然后去设置Secret:

分别设置服务器地址、密码等即可:

大功告成!

结语

上高中之后就没写博文了……

除夕赶出一篇博文,祝新年快乐!!!

也迟来的祝博客两周年快乐!!!


使用Github Action定时重启邮件服务
https://www.ordchaos.com/posts/e9c784c5/
作者
序炁
发布于
202429
更新于
202429
许可协议
\ No newline at end of file diff --git a/posts/ec8c9790/index.html b/posts/ec8c9790/index.html new file mode 100644 index 000000000..1b838c23c --- /dev/null +++ b/posts/ec8c9790/index.html @@ -0,0 +1,3 @@ +文章AI摘要?太酷啦! - 序炁的博客 + +

文章AI摘要?太酷啦!

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

看了HEO如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要,甚是手痒……整一个!

前情提要

的确,我可以直接把HEO现成的部署方案拿来用,但我是一个有追求的人(雾。事实上,直接使用这种解决方案得到的摘要栏与我博客的设计风格并不是很搭,这就要求我自己写一个前端后端是不可能的,这辈子也不可能的

好,开干!但首先,第一个问题出现了:我博客的设计风格本身就不太统一。首页的说说轮播和说说页面的数量统计用了fluid主题自带的info,而友链朋友圈页面又没有,直接使用了圆角矩形承载统计信息。

为了解决这个问题,我需要用一样东西代替info标签。经过再三深思熟虑,我选用圆角矩形统一替换info.

而后便有了枯燥的漫长(?)css编写时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
div.ocxqntcontainer {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
}

div.ocxqnt {
    border: 1px solid #e9e9e9;
    border-radius: 1rem;
    padding: 1rem;
    text-align: left;
    width: 100%;
}

span.memos-t {
    margin: 0 1rem;
}

就这样,圆角矩形大功告成。

摘要部署

现在这个步骤就变得很简单了,对于我用的fluid主题,编辑layout/post.ejs即可,在article标签中,类为markdown-bodydiv标签之前加入以下内容:

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
<style>
i.icon-ordchaos-blog-robot, span.ocxq-ai-title {
font-weight: bold;
font-size: 1.2em;
}

span.ocxq-ai-warn {
font-weight: bold;
}

.ocxq-ai-text.typing::after {
content: "_";
margin-left: 2px;
animation: blink 0.7s infinite;
}

@keyframes blink {
50% {
opacity: 0;
}
}
</style>
<script>
let tianliGPT_postSelector = '#board .post-content .markdown-body';
let tianliGPT_key = '5Q5mpqRK5DkwT1X9Gi5e';
</script>
<div class="ocxqntcontainer">
<div class="ocxqnt">
<span id='memos-t'>
<i class="iconfont icon-ordchaos-blog-robot"></i><span id="memos-index-space"> </span><span class="ocxq-ai-title">AI摘要</span>
<br>
<span class="ocxq-ai-text">
生成中...
</span>
<br>
<span class="ocxq-ai-warn">摘要由AI自动生成,仅供参考!</span>
</span>
</div>
</div>
<br>

<!--正文部分-->

<script src="https://www.ordchaos.com/js/aisummary.js"></script>

这里有几个问题:

  • 为什么内容在idmemos-tspan标签中:因为它同样套用了刚刚写好的圆角矩形,而这个圆角矩形为了适配原有的memos说说而要求内部文字必须拥有memos-tid.
  • iconfont icon-ordchaos-blog-robot是什么图标:我在iconfont.cn中取用的,因为加入了我的图标库所以拥有图标库前缀icon-ordchaos-blog,若也想选用的话可以直接在iconfont.cn搜索关键词robot找到并添加到自己的图标库
  • 为什么不把样式代码写到css里面去:我懒

最后在文件的末尾处加上对js文件的引用。

说到js,由于HEO提供的js文件中含有生成前端容器的部分,所以必须要删除这部分内容并对其做出部分修改。过程这里就不放了,实在看不懂的可以参考我改好的被压缩了怎么看啊自己想办法

而后去爱发电订阅TianliGPT并将api key填入即可。

效果

题外话

最开始因为不想写css而拖了好久……最终因为实在眼馋,欲望盖过了懒病才动身做完。

话说我这样改别人写好的js应该没问题吧……

那就这样,886!


文章AI摘要?太酷啦!
https://www.ordchaos.com/posts/ec8c9790/
作者
序炁
发布于
202376
更新于
202376
许可协议
\ No newline at end of file diff --git a/posts/f0f71147/index.html b/posts/f0f71147/index.html new file mode 100644 index 000000000..7032beaeb --- /dev/null +++ b/posts/f0f71147/index.html @@ -0,0 +1,3 @@ +一名初中生的 GitHub 学生包申请之路 - 序炁的博客 + +

一名初中生的 GitHub 学生包申请之路

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

现在上百度搜索“github学生包申请”,结果要么只适用于大学生,要么就是通过各种国外社区大学的录取通知书来白嫖这不欺骗别人大学感情吗。而作为一名初中生,显然这两种方法都不太适合:前者需要大学学籍,后者…后患无穷且麻烦,成功率也不高。这里我就分享一下我与GitHub学生包的经历以及我的申请经验,帮助更多像我一样被同样问题困扰的人。

我与GitHub学生包

小时候没有零花钱,但又想建站,于是整天在Google、百度、Youtube等等地方搜索“免费域名”、“免费空间”…一类内容。终于,让我发现了GitHub学生包这个东西。然并卵,它有年龄限制(13岁以上),这让当时11岁的我感到弱小可怜又无助。然后我就在Youtube上看到了这个:

哇你知道这对我的内心造成了多大的震撼吗?我立马跟着操作了一番,但是却是在最关键也是最重要的一步上卡住了——人家GitHub没有过我的申请。

后来在别的地方看见了freedom的免费域名与忘记是什么地方的免费空间,用wordpress简单做了一个博客懒得写博文,结果到头来一篇文章也没有,这件事也就告一段落。

去年年中突然想起来这一茬,想到那一年我就13岁了,年龄限制已经跨越,我这正经学生身份还不得通过的手到擒来?然后我就上传了自己绝对真实的申请所需的一切信息,然后…又没有过。其实也不是没有过,单纯是审核了两周还一直状态显示pending,我一怒之下就撤销了申请而已自己不是说最多两周吗,于是这件事就又被放下。

再然后又到了今年年初,又想起GitHub学生包来。我一想到我一个学生申请不到学生包就来气,于是又申请了一次。与上一次不同,上一次的材料我交的是期末成绩单,这一次是学校发的奖状。说实话,对用奖状申请这回事我是很不抱希望的,但又没想到在三天后我打开电脑例行检查进度时…

一个绿底白字的Approved就这么糊到了我的脸上。哇我真的,你能理解吗就是那种,无法言表的欣喜,那种恨不得让全世界的人都知道你干成了什么的自豪感,就是这种感觉充满了我当时的脑海。没有别的原因,就是太高兴了。

附一张当时我的聊天记录:

然后自然是各种折腾、体验、白嫖,这些就不在这篇文章的讨论范围之内了。

我的申请经验

第一,千万不要挂梯子,尽量直连GitHub。GitHub会通过地理位置校验你是否可能真正在你所填写的学校就读,所以同样如果浏览器提示你开启地理位置就点同意。

第二,邮箱用自己的也可以,不限定教育邮箱。但是证明你学生身份的材料一定要详细真实,另外可以在How do you plan to use GitHub?(你怎么计划去使用GitHub)中附上材料的英文翻译。

第三,How do you plan to use GitHub?一定要认真填写,不要在网上随便找然后就直接粘贴上去。有能力的就直接用英语写,否则用有道翻译也行。

第四,学校信息越详细越好这不废话,有官网的记得把官网填上当然要是GitHub数据库里有你的学校直接选择就完了

第五,记得每天看一下申请进度,没准它就会给你一个惊喜。

题外话

相信细心的各位也发现了,申请是在三月就过了的,为什么现在才发博文呢?

答案嘛…因为懒(逃

最后就以一张我现在GitHubProfile的截图来收尾吧!


一名初中生的 GitHub 学生包申请之路
https://www.ordchaos.com/posts/f0f71147/
作者
序炁
发布于
2022727
更新于
2022727
许可协议
\ No newline at end of file diff --git a/posts/fab451a5/index.html b/posts/fab451a5/index.html new file mode 100644 index 000000000..5b1cda4b4 --- /dev/null +++ b/posts/fab451a5/index.html @@ -0,0 +1,3 @@ +堆 - 序炁的博客 + +

AI摘要
生成中...
摘要由AI自动生成,仅供参考!

马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。

讲解

按照惯例哪里来的惯例,还是看一下堆是什么东西:

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

  • 堆中某个结点的值总是不大于或不小于其父结点的值;
  • 堆总是一棵完全二叉树。

将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。

——百度百科

很显然,为了储存堆,我们需要一棵完全二叉树。这里很多人就会想到建树,但其实不用。如果你看过我的学习笔记——二叉树的话,应该会记得完全二叉树的性质之一:

在有n个节点的完全二叉树中,对于编号为i的节点:

  • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
  • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
  • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

——序炁 学习笔记——二叉树

所以我们只需要一个数组就可以存储堆了:数组最开始填入根节点,其左右孩子节点便依次为其后面的两个下标,再往后就以此类推。

那么现在建立一个数据结构用来建堆,很简单,参照下列代码:

1
2
3
4
5
6
#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

对于每一个堆都申请一个MAXSIZE大小的数组用于存储,而后用length变量存储目前的总节点数即可。

那么如何初始化就显而易见,只需要

1
2
3
4
inline void init(myHeap &heap) {
heap.length = 0;
return;
}

像这样将length设为0就大功告成。

插入元素

如果要往一个堆里插入元素,那我们就要先确定这个堆是小根堆还是大根堆,下面的所有代码均默认是小根堆,大根堆自己改去自己想想吧。

首先,在堆末尾加入要插入的元素:

1
2
3
4
void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
//...
}

length永远指向数组中最后一个存储了数据的位置的下一个位置,所以在value[length]的位置存储数据,然后增加length即可。

但现在这个堆可能不满足小根堆的性质了,怎么办呢?很简单,进行调整即可。将新节点设为当前节点,如果它大于父节点则结束,若小于则交换,而后将交换后的父节点(没错,还是新插入的数据)设为当前节点,重复这个过程直到其大于父节点或其为根节点则结束。

听着有些复杂,但用while循环即可轻松实现:

1
2
3
4
5
6
7
8
9
void push(myHeap &heap, int v) {
//...
int now = length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

完事!

删除元素

删除元素即出队,会弹出根节点。故而这里的方法是把最后一个节点移到根节点的位置覆盖掉它,再进行调整。

覆盖很简单:

1
2
3
4
void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
//...
}

不要忘记将节点数减一即可。这里用了一个小技巧,本来要写成这样:

1
2
heap.value[0] = heap.value[heap.length - 1];
heap.length--;

竞赛常考之一,++ii++的区别。不要觉得没用,比如用在这里就非常合适。包括前面的

1
heap.value[heap.length++] = v;

也用了这个方法。

好了,言归正传,下一步是调整节点。显然,这一次需要从上往下调整:将根节点设为当前节点,与自己左右孩子中较小的一个比较,若小于则结束,否则与其交换位置并将当前节点设为交换好的孩子节点(一样指向同样的数据),重复这个过程直到当前节点为叶节点或当前节点小于自己任何一个孩子为止。

同样,上代码:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myHeap &heap) {
//...
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

需要额外注意的是对当前节点是否为叶节点以及是否拥有右孩子的判断,避免因失误导致数据溢出。

应用

其实堆的操作也只有插入与删除,不过就是这么简单的东西也可以玩出不同的花样,下面是两个例子。

洛谷 P1090 NOIP2004 提高组 合并果子

原题链接:洛谷 P1090 NOIP2004 提高组 合并果子

题目描述

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为1,2,9. 可以先将1、2堆合并,新堆数目为3,耗费体力为3. 接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力为3+12=15。可以证明15为最小的体力耗费值。

输入格式

共两行。

第一行是一个整数n(1≤n≤10000),表示果子的种类数。

第二行包含n个整数,用空格分隔,第i个整数ai(1≤ai≤20000)是第i种果子的数目。

输出格式

一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231.

输入输出样例

输入

1
2
3
1 2 9

输出

1
15
分析

简单的贪心算法,每次从所有果子中取两堆数量最小的合并,然后放回去即可。

不一定非要用堆,不过如果只是简单的排序的话会超时。不过你同样也可以用优先队列,或者看看洛谷上那些神犇的题解。

我的方法很简单,只需要建堆,然后从堆中取两个最小值(即小根堆堆顶元素)相加再插回去,直到只剩一个元素即可。其中每一次合并时用一个变量累计总体力,最后输出就行了。

代码如下:

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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
int now = heap.length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

inline int get(myHeap heap) {
return heap.value[0];
}

int getPop(myHeap &heap) {
int temp = get(heap);
pop(heap);
return temp;
}

int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
int power = 0;
while(test.length != 1) {
int quick[2] = {getPop(test), getPop(test)};
power += quick[0] + quick[1];
push(test, quick[0] + quick[1]);
}
cout<<power<<endl;
return 0;
}

其中get函数用于返回堆顶元素,不要也可以,毕竟很简单。

对于这一题是可以AC的,没有问题。

堆排序

既然小根堆的堆顶元素永远最小,那么只要每次都取出堆顶元素直到堆为空不就可以排序了吗?没错,这就是堆排序,时间复杂度为O(nlogn),十分优秀。

代码我就不讲了,自己看吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//...
int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
for(int i = 0; i < n; i++) cout<<getPop(test)<<" ";
cout<<endl;
return 0;
}

数据量大的时候可以考虑堆排序,因为堆排序的耗时主要在建堆上,建好堆后的调整实际上非常快。

题外话

终于写完了…写了我整整三小时啊!

明天大概也许会有一篇关于图的,以及一篇关于类的。

886!


https://www.ordchaos.com/posts/fab451a5/
作者
序炁
发布于
2022916
更新于
2022916
许可协议
\ No newline at end of file diff --git a/robots.txt b/robots.txt new file mode 100644 index 000000000..971c204d7 --- /dev/null +++ b/robots.txt @@ -0,0 +1,16 @@ +User-agent: *Allow: / +Allow: /archives/ +Allow: /tags/ +Allow: /categories/ +Allow: /about/ +Allow: /links/ +Allow: /bangumis/ +Allow: /page/ +Allow: /posts/ +Disallow: /js/ +Disallow: /css/ +Disallow: /lib/ +Disallow: /img/ + +Sitemap: https://www.ordchaos.com/sitemap.xml +Sitemap: https://www.ordchaos.com/baidusitemap.xml \ No newline at end of file diff --git a/rss2.xml b/rss2.xml new file mode 100644 index 000000000..625f1ea1e --- /dev/null +++ b/rss2.xml @@ -0,0 +1,634 @@ + + + + 序炁的博客 + https://www.ordchaos.com/ + + + + + Fri, 09 Feb 2024 18:52:38 GMT + http://hexo.io/ + + + 使用Github Action定时重启邮件服务 + https://www.ordchaos.com/posts/e9c784c5/ + https://www.ordchaos.com/posts/e9c784c5/ + Fri, 09 Feb 2024 18:52:38 GMT + + <p>主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。</p> + + + + 主要是邮件服务器的容器经常崩溃,所以尝试设置定时任务来解决这个问题。

情景引入

邮件服务器性能羸弱,无法胜任设置定时任务这样的重担,所以只能用一些盘外招试试了。

设置 Action

那么首先,本着轻量化的原则,新建一个仓库拿来干这种事:

然后切到Action页面:

选择新建一个空白模板:

修改Action名称、内容并设置定时,参考我的:

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
# This is a basic workflow to help you get started with Actions

name: REMX

# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the "main" branch
push:
branches: [ "main" ]
schedule:
- cron: "0 20 * * *"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Checkout Codes
uses: actions/checkout@v3

- name: Restart MX Service
uses: garygrossgarten/github-action-ssh@release
with:
command: ./restart.sh
host: ${{ secrets.HOST }}
username: root
password: ${{ secrets.PASSWORD }}

- name: Finish
run: echo "Action Finish"

SSH相关配置自行查看官方文档

保存,然后去设置Secret:

分别设置服务器地址、密码等即可:

大功告成!

结语

上高中之后就没写博文了……

除夕赶出一篇博文,祝新年快乐!!!

也迟来的祝博客两周年快乐!!!

]]>
+ + + 教程 + + + 计算机 + + 编程 + + 教程 + + 白嫖 + + + https://www.ordchaos.com/posts/e9c784c5/#disqus_thread + +
+ + + 年中总结,及进16岁生贺 + https://www.ordchaos.com/posts/95bd9bb8/ + https://www.ordchaos.com/posts/95bd9bb8/ + Thu, 24 Aug 2023 17:28:53 GMT + + 与初中生活告别,迈入新的人生阶段 + + + + 又是一年生日了,回想上次生日,好像还是在上次一样,那时还是在初三开学前的补课。补课放学的很早,五点就回家了。当时在超市里买了一根价值14块大洋的钟薛糕……

说起来真的像是发生在昨天。

1~2月

经过了疫情的洗礼,九年级下学期的开学总算是如期而至,但紧随而来便是对二月调考的紧张。原本武汉是只有元调、四调的,不过由于众所周知的疫情因素,元调从原定的1月4号挪到了2月21号。让我们过了一个安心的元旦和一个安心的寒假。

但该来的还是要来,二调总归也是调考,压迫感并未消失,只是转移到了一个月后。故而新学期伊始,我们就全身心投入到了复习之中。那时我的心里总会浮现出七年级刚开学时班主任在班里说的话,她告诉我们三年很短,元调很重要。初听不知话中意,而现在,已为语中人。

二调的成绩中规中矩吧,523分(523/600),随后便立下了四调要进步15分的目标。但那时我还不知道,这个目标永远没有机会达成了。

3~4月

二调完了就是四调,没什么可说的,该复习复习,该上新课上新课。伴随着一本又一本教材被翻至最后一课、最后一面,初中即将毕业的感受才开始从心中滋生。不论是Graduation还是“从这里出发”,课本中的一句句话,一段段文章都正提醒着我们即将分别的事实。

四调成绩说实话,很不好,只有508。以至于我的母亲对我这个分数不抱什么期望了,也便没有如同二调结束后那样跑前跑后地签各种约。也正因如此,已然退休的她只能在家里独自心焦,这是我的问题。

5~6月

五月有各个区自己的五调,六月便是全武汉市的中考。志愿早在五月九日便截至提交,在此之前,我终于说服了我的父母为我填写武钢三中为第一志愿。“说服”,无奈的选择,毕竟要说二调成绩勉强足够的话,四调成绩面对钢三简直就是依托答辩。但我仍然坚定的选择了这条路,算是对自己的压迫吧,同时也伴随着一股气,一股不服输的精神。

五调前举行了理化生实验考试,和八年级的地理生物一样,采用机考的形式。没什么难度,几乎全班满分通过,只有3人被扣了1分。加上由于疫情取消的体育中考,近乎就是给每个人送了80分。

六月初,抽了一个上午,我们全班在学校里拍了毕业照。学校不大,很快就走遍了整个校园。伴随着感慨,拍完室外照后回班,我们齐心协力在十分钟内办好了一面黑板报。站在黑板报前,我们拍了最后的几张照片。

中考日以前,最后一个在校日,是一个周六。老师在上午或看自习,或做最后的查漏补缺。而下午,老师开了一场动员会,给每个人发了一块粽子玩偶。既代表端午将临,亦有一举高中之意。一场班会结束,打扫完教室,离开学校,颇有一种或解脱、或不舍的情愫。

中考前一天,周一,下午我便前往了考点处。每个文化课老师都在考点门口,为我们一张张派发着准考证。面对那一句句叮嘱,我明白,不能当做是像以前那样的老生常谈了。

中考结束的那一天,考完历史道法的上午。连续更改了两道选择题的我放下了手中的笔,一根根地把中性笔、2B铅笔、涂卡笔以及橡皮擦、垫板、准考证装入了文具袋。走回休息室,再和全班同学及老师走出了考场。此时此刻,心中只有解脱,无暇再顾及其它。

随后就是毕业旅行了,很愉快的出行经历,也为初中三年画上了一个圆满的句号。

7~8月

七月一号一早,昨天刚从青岛回到家的我点进了武汉招考网,惊心动魄的输入姓名、报名号和身份证号。按下蓝色按钮的那一刻,时间仿佛凝滞。好在接下来引入眼帘的数字令我终于放下了心,614分(614/680),是我最高的一次了。

毫无疑问的被钢三录取,之后是钢三的夏令营,一直到七月二十一。食堂很美味,与同学相处得很愉快,校园环境很好,近乎无可挑剔了。

八月,很放松的一个月,这个月一直在玩master duel和原神,开始了摆烂状态(笑)

直到今天,我的生日为止,一切都很放松。

未来……

马上就是钢三的军训了,再之后就是开学,祝我一路顺利吧!

也希望三年后的暑假能像现在一样无忧无虑。

Happy Birthday for Me!

顺便晒一下毕业纪念册!

]]>
+ + + 日常 + + + 生日 + + 总结 + + 个人 + + + https://www.ordchaos.com/posts/95bd9bb8/#disqus_thread + +
+ + + 数字生命卡开箱——来自《流浪地球II》 + https://www.ordchaos.com/posts/b3d3143c/ + https://www.ordchaos.com/posts/b3d3143c/ + Sun, 23 Jul 2023 16:00:58 GMT + + <p>过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!</p> + + + + 过年档的电影,看完就买了周边。历经半年,终于到手啦!哈哈!

《流浪地球II》的官方周边产品大部分都是赛凡做的。怎么说呢……我买的数字生命卡是第二批,看到很多第一批的都有程度不一的瑕疵。不过我这个就还好,没有什么大问题,看来还是有在改进运输和包装质量。

到手差不多就是这么些东西:

其它周边什么的就不多说了,重头戏还是数字生命卡。

数字生命卡

只说外观的话,看起来金属感不是很强,喷个漆观感应该会好一些,但我不会(

别的道具倒是挺还原的,比如说袋子。

别的也没什么可说的了,毕竟这也就是一个128G的U盘和一个读卡器而已。

其它

不说什么了,放几张图吧。

题外话

不是很好评价赛凡的产品了……

我只能说我能接受这个做工,但的确,赛凡的破事很难让我提起好感。

就这样,886!

]]>
+ + + 日常 + + + 电影 + + 开箱 + + 科技 + + U盘 + + 周边 + + + https://www.ordchaos.com/posts/b3d3143c/#disqus_thread + +
+ + + 文章AI摘要?太酷啦! + https://www.ordchaos.com/posts/ec8c9790/ + https://www.ordchaos.com/posts/ec8c9790/ + Thu, 06 Jul 2023 16:05:00 GMT + + <p>看了HEO的<a href="https://blog.zhheo.com/p/ec57d8b2.html">如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要</a>,甚是手痒……整一个!</p> + + + + 看了HEO的如何让博客支持AI摘要,使用TianliGPT自动生成文章的AI摘要,甚是手痒……整一个!

前情提要

的确,我可以直接把HEO现成的部署方案拿来用,但我是一个有追求的人(雾。事实上,直接使用这种解决方案得到的摘要栏与我博客的设计风格并不是很搭,这就要求我自己写一个前端后端是不可能的,这辈子也不可能的

好,开干!但首先,第一个问题出现了:我博客的设计风格本身就不太统一。首页的说说轮播和说说页面的数量统计用了fluid主题自带的info,而友链朋友圈页面又没有,直接使用了圆角矩形承载统计信息。

为了解决这个问题,我需要用一样东西代替info标签。经过再三深思熟虑,我选用圆角矩形统一替换info.

而后便有了枯燥的漫长(?)css编写时间:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
div.ocxqntcontainer {
    display: flex;
    align-items: center;
    justify-content: center;
    height: auto;
}

div.ocxqnt {
    border: 1px solid #e9e9e9;
    border-radius: 1rem;
    padding: 1rem;
    text-align: left;
    width: 100%;
}

span.memos-t {
    margin: 0 1rem;
}

就这样,圆角矩形大功告成。

摘要部署

现在这个步骤就变得很简单了,对于我用的fluid主题,编辑layout/post.ejs即可,在article标签中,类为markdown-bodydiv标签之前加入以下内容:

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
<style>
i.icon-ordchaos-blog-robot, span.ocxq-ai-title {
font-weight: bold;
font-size: 1.2em;
}

span.ocxq-ai-warn {
font-weight: bold;
}

.ocxq-ai-text.typing::after {
content: "_";
margin-left: 2px;
animation: blink 0.7s infinite;
}

@keyframes blink {
50% {
opacity: 0;
}
}
</style>
<script>
let tianliGPT_postSelector = '#board .post-content .markdown-body';
let tianliGPT_key = '5Q5mpqRK5DkwT1X9Gi5e';
</script>
<div class="ocxqntcontainer">
<div class="ocxqnt">
<span id='memos-t'>
<i class="iconfont icon-ordchaos-blog-robot"></i><span id="memos-index-space"> </span><span class="ocxq-ai-title">AI摘要</span>
<br>
<span class="ocxq-ai-text">
生成中...
</span>
<br>
<span class="ocxq-ai-warn">摘要由AI自动生成,仅供参考!</span>
</span>
</div>
</div>
<br>

<!--正文部分-->

<script src="https://www.ordchaos.com/js/aisummary.js"></script>

这里有几个问题:

  • 为什么内容在idmemos-tspan标签中:因为它同样套用了刚刚写好的圆角矩形,而这个圆角矩形为了适配原有的memos说说而要求内部文字必须拥有memos-tid.
  • iconfont icon-ordchaos-blog-robot是什么图标:我在iconfont.cn中取用的,因为加入了我的图标库所以拥有图标库前缀icon-ordchaos-blog,若也想选用的话可以直接在iconfont.cn搜索关键词robot找到并添加到自己的图标库
  • 为什么不把样式代码写到css里面去:我懒

最后在文件的末尾处加上对js文件的引用。

说到js,由于HEO提供的js文件中含有生成前端容器的部分,所以必须要删除这部分内容并对其做出部分修改。过程这里就不放了,实在看不懂的可以参考我改好的被压缩了怎么看啊自己想办法

而后去爱发电订阅TianliGPT并将api key填入即可。

效果

题外话

最开始因为不想写css而拖了好久……最终因为实在眼馋,欲望盖过了懒病才动身做完。

话说我这样改别人写好的js应该没问题吧……

那就这样,886!

]]>
+ + + 编程 + + 教程 + + + 计算机 + + 编程 + + 教程 + + javascript + + css + + AI + + + https://www.ordchaos.com/posts/ec8c9790/#disqus_thread + +
+ + + 哇!是毕业旅行! + https://www.ordchaos.com/posts/c2e7460a/ + https://www.ordchaos.com/posts/c2e7460a/ + Sat, 01 Jul 2023 16:17:37 GMT + + <p>初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!</p> + + + + 初三毕业,结束了忙碌的一年,老师带我们全班去了青岛毕业旅行!

前情提要

武汉今年中考在六月的二十、二十一、二十二号总共三天,考完以后休息放纵两日后,我们全班便踏上了高铁前往青岛。

怎么说呢……说是六天五夜,但武汉与青岛之间的高铁要坐8小时,所以第一天和最后一天都相当于是在高铁上玩一天手机(雾

Day 1 & 2

我们在武汉站登车,高铁从上午十一点一直开到了晚上七点。好在酒店离高铁站很近,走路也就5分钟路程,所以我们就前往了酒店开房。

该说不说,4个人挤双人房的安排是有点逆天的。就算我们没意见,酒店也没意见?!

第二天起来吃了早饭之后我们便走路前往了海边,很近,不过不是海滩。拍了几张照,早上天气真的很差,本来是小雨的天气,结果雨越来越大,风也越来越强。但过了一会天又晴了……

然后就是非常晒人。

下午乘坐青岛地铁去了中山公园附近的沙滩。只能说不愧是夏天,晚上五六点仍然晴空万里。

玩水玩得非常开心,不过也仅限于在海水中跑一跑了。毕竟我可不想和部分其他同学一样弄得浑身湿透。

请同学拍了两张照!

Day 3

走路去了圣弥勒尔大教堂,不过也没进去,就是在外面拍了几张照。

风景很不错,宝宝喜欢妈妈爱。

以及本来还以为会碰到什么传教士什么的,然后我就能回一句”我信铂金龙神巴哈姆特“(大雾,结果没有。

然后就去了老舍故居,看到了《骆驼祥子》相关的很多文物(?)。得亏武汉今年考的是《钢铁是怎样炼成的》,不是《骆驼祥子》,没有被祥子一车创si

然后就是坐地铁回酒店了,这次是从人民会堂到青岛站。

下午去坐船了,不大不小的船。

我只想说,快艇我不晕,轮船我不晕,所以就是这种两者之间的会晕是吗!!!

下午天气很不好,在海上飘着,外面还下大雨,甚至打雷……

坐了四小时,而后从原港口下了船,感觉像是自找了四小时的罪受,艹。

回酒店后第一时间点了外卖,不然真感觉要吐了。

Day 4

又是地铁!这几天地铁成了我们唯一的陆上交通工具,别的旅行团都会有大巴什么的,我们没有,我们就是坐地铁(

还是人民会堂站下车,这次我们去了小青岛公园。公园环境很好,玩得很开心,甚至还去看了鱼雷洞。

以及走的时候发现了一条绿意盎然的楼梯,拍了张照,很好看(

下午坐一号线去了台东,去了步行街吃晚饭。

兴致突然起来了,和同学一起买了地铁票进站而非使用手机app. 运气挺好,买到了不一样样式的单程票。

下车之后全班就直接分组分头行动了。穿梭于人来人往的小吃摊中,感受到烟火气的缭绕,对于一个忙碌了一整年的初三学生来说实在是太酷啦!

买了铁板豆腐、臭豆腐、鱿鱼和青岛啤酒,香的嘞。

然后去了五四广场,再之后就又回了酒店。

Day 5

又去了海边,不过是坐地铁去的,三号线转二号线。

所以又收集(?)到了两款不一样的地铁票。

还有在五四广场同站换乘。

说实话,天气真的不好,海边景色这几天也看腻了(

浅浅拍了几张照之后就坐地铁回去了,以及又收集到了一种地铁票。

下午老师组织看电影,一起看了端午档的《消失的她》

悬疑片嘛……不是很和我胃口,但是观感还不错。

然后就是吃完饭。老师给了每人80的预算,让分组一起吃晚饭,我就和另外三个同学一起去了海底捞。

第一次去海底捞,服务很好,很符合我的期待,价格也正常,不算很贵,起码没超预算。

点了两个菌菇和麻辣两个汤底,味道就很正常,跟我家里和父母一起煮的火锅差不多。

最后还送了一份面条,海底捞真的,我哭死(大雾

师傅的手艺很好,观赏性十足,爱了爱了。

随便贴几张图吧:

Day 6

早起前往高铁站,赶十点的高铁。

天气阴了这么多天,结果偏偏走的时候才好,我的评价是,6.

坐的复兴号高铁,不过站台另一侧有一辆绿皮火车,于是拍了一张个人觉得很好看的照片:

然后又是玩了一天手机……

最后,晚上6点,回到武汉,与老师同学告别后回到了家,结束了这一场旅行。

题外话

生活记录型的博文,尤其是这么长的,我还是第一次写,有什么不足请多多海涵!

什么?你问中考?

请观阅以下内容:

你说的对,但是《中考》是由武汉教育局自主研发的一款「互联网时代」全新开放世界冒险游戏。游戏发生在一个被称作「HappyPark」的幻想公园,在这里,被「往上提的溢水杯」选中的人将被授予「0.797g沉淀」,导引「两种酸」之力。你将扮演一位名为「有两块抹布的直径0.3m的扫地机器人」的神秘角色,在面积27m2的秘鲁考古遗址中邂逅的紫甘蓝味软糖,和百万年前出士的bright flowers化石一起,找回「简练明快,势巧形密」的家书同时,感受「尽责地爱」,且逐步发掘「点P过定线」的真相。

怎么说呢,今年的题真的很创人。

所以……考的差一点也不要紧啦,哈哈……

···

啊?你真以为我考砸了?

886!

]]>
+ + + 日常 + + + 日常 + + 旅行 + + + https://www.ordchaos.com/posts/c2e7460a/#disqus_thread + +
+ + + 前、后与中——表达式求值 + https://www.ordchaos.com/posts/c9c6cb4f/ + https://www.ordchaos.com/posts/c9c6cb4f/ + Sun, 02 Apr 2023 10:09:31 GMT + + <p>记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi</p> + + + + 记录一下最近的练习程序与做法,加深记忆,也当个教程吧,毕竟赠人玫瑰手留余香(bushi

如果你不知道这些表达式分别指什么东西,可以百度一下,这里不再赘述。

后缀表达式

这个应该是最常见的了,下面讲一下实现。

首先,还是定义函数废话

1
2
3
int main() {
//...
}

然后,进行文件读取,可以用freopen(),不过我这里用的是fopen()

1
2
3
4
5
6
7
8
9
10
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100]; //temp
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

//...
}

解释一下上面的程序:

  • stack<double> nums 这个栈后面会用到,这里先不用管
  • fscanf()scanf()用法一样,唯一的区别是fscanf()用于读取文件流中的信息而非输入流
  • feof()中的参数为文件流,用于判断是否读到结尾,读到则返回真

很显然,这段程序用于分别读入每一段字符,那么接下来便是判断输入了。

代码如下:

1
2
3
4
5
6
7
8
9
10
while(true) {
//...

if(isdigit(input[0])) {
nums.push(atof(input.c_cstr()));
}
else {
//...
}
}

如果输入为整数,则进入数字栈,否则开始计算。

这里使用了isdigit()函数,输入为char类型,用于判断参数是否在'0''9'之间。

计算过程很简单,弹出两个数字栈中的数,根据运算符计算即可:

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
//...
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();

double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}

尤其要注意减法与除法的操作数与被操作数顺序,毕竟它们可没有交换律。

此时已经计算完成,结果作为栈中唯一的元素处在栈顶,直接输出即可:

1
2
3
4
fclose(stream); //关文件是一个好习惯
cout<<nums.top()<<endl;

return 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main() {
FILE* stream = fopen("input.txt", "r");
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;
if(is_num(input)) {
nums.push(atof(input.c_str()));
}
else {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
double temp;
switch(input[0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}
nums.push(temp);
}
}
fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

输入样例:

1
1 2 + 3 - 

输出样例:

1
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
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<bits/stdc++.h>
using namespace std;

inline bool is_num(string str) {
if(str[0] >= '0' && str[0] <= '9') return true;
else return false;
}

int main(){
FILE* stream = fopen("input.txt", "r");

stack<double> nums;
vector<string> input; //存储读取数据
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
input.push_back(string(tstr));
}

for(int i = input.size() - 1;i >= 0;i--) { //倒序读取
if(is_num(input[i])) {
nums.push(atof(input[i].c_str()));
}
else {
double x = nums.top();
nums.pop();
double y = nums.top();
nums.pop();

double temp;
switch(input[i][0]) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

nums.push(temp);
}
}

fclose(stream);
cout<<nums.top()<<endl;

return 0;
}

改成倒序读取即可。

输入样例:

1
- + 1 2 3 

输出样例:

1
0

中缀表达式

我们最常用的表达式,处理起来却是最复杂的,因为现在需要考虑优先级与括号了。

这里有几种方法:

递归

首先,定义函数用于取多项式的因子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int factor() {
int res = 0;
char c = cin.peek();
if(c == '(') {
cin.get();
res = expression();
cin.get();
}
else {
while(isdigit(c)) {
res = 10 * res + c - '0';
cin.get();
c = cin.peek();
}
}
return res;
}

先定义结果为0,然后判断输入。若为括号,则将其内容视为新表达式,交由马上要定义的expression()函数计算。否则,按位取出输入中的数即可。

顺带一提,这些代码中的cin.get()cin.peek()尤其重要,切勿移动位置或轻易替换。至于原因,自己模拟想一下吧。

然后,计算单项式的值,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int term() {
int res = factor();
while(true) {
char mark = cin.peek();
if(mark == '*' || mark == '/') {
cin.get();
int v = factor();
if(mark == '*') res *= v;
else res /= v;
}
else break;
}
return res;
}

先用factor()函数读入因子,然后循环判断该单项式是否读完。若未读完(即该因子与下一个因子间仍用乘号或除号连接)则取下一个因子并计算,否则返回该单项式的值即可。并且很显然,这样的写法就代表输入的表达式中不应当含有任何空格,也只支持整数运算(要浮点数自己改我不干了)。

最后是整个表达式,与计算单项式基本一样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int expression() {
int res = term();
while(true) {
char mark = cin.peek();
if(mark == '+' || mark == '-') {
cin.get();
int v = term();
if(mark == '+') res += v;
else res -= v;
}
else break;
}
return res;
}

读入单项式再计算,直到该表达式计算完毕(即mark取到)EOF

主函数其实已经一目了然了,重定向输入再调用expression()即可,就不写了。

输入样例:

1
(28/7)/2+(8-9)

输出样例:

1
1

这里又分为两种方案:

转为后/前缀表达式再计算

这里的重点是转换的过程,逻辑整体如下(中缀->后缀):

  • 输入若为数字,直接放入输出表达式中。若为符号:
    • 如果符号栈为空,则放入符号栈中
    • 如果符号栈栈顶元素优先级大于等于该符号,则出栈栈顶符号放入表达式,若此时栈顶符号优先级大于等于该符号,则重复以上流程直至小于,而后入栈该符号
    • 如果符号栈栈顶元素优先级小于该符号,该符号入栈
    • 如果该符号为左括号,直接入栈
    • 如果该符号为右括号,则依次出栈符号栈栈顶元素放入表达式中,直至左括号。最后抛弃左括号与右括号
  • 若输入完毕,符号栈中仍有符号,则依次出栈放入表达式

代码如下(转为后缀表达式):

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
map<char, int> markl;

markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

FILE* stream = fopen("input.txt", "r");

stack<char> marks;
vector<string> expression;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string input = tstr;

if(isdigit(input[0])) {
expression.push_back(input);
}
else if(input[0] == '(') {
marks.push('(');
}
else if(input[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
}
else {
if(marks.empty() || marks.top() == '(') {
marks.push(input[0]);
}
else if(markl[input[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}
marks.push(input[0]);
}
else {
marks.push(input[0]);
}
}
}

while(!marks.empty()) {
char t[2] = {marks.top(), '\0'};
expression.push_back(string(t));
marks.pop();
}

和上面的逻辑完全一样,唯一要注意的是这里使用了map,可以理解为字典。

然后只需要计算就行,代码就不放了。

前缀表达式的逻辑与代码可以自己想想。

输入输出样例同下面。

直接计算

逻辑和转换本身是一样的,只不过没有了表达式向量,而是直接计算后放入数字栈。

即将所有的对于expression的操作改为计算即可:

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
#include <bits/stdc++.h>
using namespace std;

double calc(char mark, double x, double y) {
double temp = 0;
switch(mark) {
case '+':
temp = x + y;
break;

case '-':
temp = x - y;
break;

case '*':
temp = x * y;
break;

case '/':
temp = x / y;
break;
}

return temp;
}

int main() {
FILE* stream = fopen("input.txt", "r");

map<char, int> markl;
markl['+'] = 0;
markl['-'] = 0;
markl['*'] = 1;
markl['/'] = 1;

stack<char> marks;
stack<double> nums;
while(true) {
char tstr[100];
fscanf(stream, "%s", tstr);
if(feof(stream)) break;
string temp = tstr;

if(isdigit(temp[0])) {
nums.push(atof(temp.c_str()));
}
else if(temp[0] == '(') {
marks.push('(');
}
else if(temp[0] == ')') {
while(true) {
if(marks.top() == '(') {
marks.pop();
break;
}

double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
}
else if(marks.empty() || marks.top() == '(') {
marks.push(temp[0]);
}
else if(markl[temp[0]] <= markl[marks.top()]) {
while(!marks.empty() && markl[temp[0]] <= markl[marks.top()]) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}
marks.push(temp[0]);
}
else {
marks.push(temp[0]);
}
}

while(!marks.empty()) {
double y = nums.top();
nums.pop();
double x = nums.top();
nums.pop();
nums.push(calc(marks.top(), x, y));

marks.pop();
}

fclose(stream);

cout<<nums.top()<<endl;
return 0;
}

输入样例:

1
( 28 / 7 ) / 2 + ( 8 - 9 ) 

输出样例:

1
1

收工!

题外话

这篇大概是我最长的纯原创技术类博文了。。。。。。

好累QAQ

下次再见啦!886!

2023.04.03更新

让ChatGPT改了一个支持浮点数的递归版本:

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
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

void print_tab(int);
void print_log(string, int);
void print_log(string, int, double);
double expression(int);
double term(int);
double factor(int);

int main() {
freopen("input.txt", "r", stdin);
cout << expression(0) << endl;
return 0;
}

void print_tab(int deep) {
for(int i = 0;i < deep;i++) {
cout << "\t";
}
return;
}

void print_log(string name, int deep) {
print_tab(deep);
cout << name << " {" << endl;
return;
}

void print_log(string name, int deep, double res) {
print_tab(deep);
cout << "} -> res =" << res << endl;
return;
}

double expression(int deep) {
print_log("expression", deep);

double res = term(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '+' || mark == '-') {
cin.get(); //skip
double v = term(deep + 1);
if(mark == '+') res += v;
else res -= v;
}
else break;
}

print_log("expression", deep, res);

return res;
}

double term(int deep) {
print_log("term", deep);

double res = factor(deep + 1);
while(true) {
char mark = cin.peek(); //get
if(mark == '*' || mark == '/') {
cin.get(); //skip
double v = factor(deep + 1);
if(mark == '*') res *= v;
else res /= v;
}
else break;
}

print_log("term", deep, res);

return res;
}

double factor(int deep) {
print_log("factor", deep);

double res = 0;
double base = 1.0;
char c = cin.peek(); //get
if(c == '(') {
cin.get(); //skip
res = expression(deep + 1);
cin.get(); //skip
}
else {
while(isdigit(c) || c == '.') { // == GET A NUMBER ==
if(c == '.') {
cin.get(); //skip the '.'
c = cin.peek(); //get the next character
while(isdigit(c)) { //collect digits for the decimal part
res = res + (c - '0') * (base /= 10.0);
cin.get();
c = cin.peek();
}
break;
}
res = res * 10 + c - '0'; //get num
cin.get(); //skip
c = cin.peek(); //get
}
}

print_tab(deep + 1);
cout << "get_num();" << endl;
print_log("factor", deep, res);

return res;
}

]]>
+ + + 编程 + + + 计算机 + + 编程 + + c++ + + 算法 + + + https://www.ordchaos.com/posts/c9c6cb4f/#disqus_thread + +
+ + + 迟来的二月调考总结 + https://www.ordchaos.com/posts/7eb4319/ + https://www.ordchaos.com/posts/7eb4319/ + Sun, 26 Mar 2023 10:14:38 GMT + + 一些自己的话 + + + + 各位,好久不见,距离上次发文的时间过的有点久,其中最大的原因就是万恶的二月调考。现在已经考完一个多月了离四调也就一个月了,这里我来总结一下。

背景要素

以防不知道,本人生在武汉,学籍武汉,参加武汉的统一考试。武汉在九年级时会有几场全市统考,分别为九上的元月调考(期末)与九下的四月调考(期中)和中考(期末)。今年闹疫情,于是原定在一月四号的元调被挪到了二月二十一号(九下开头)。

武汉的中考在我这一届改革了,下面对比一下以往和之后的不同:

科目分数(前)分数(后)
语文120120
数学120120
英语120120
物理7070
化学5050
历史\60
道德与法治4060
实验030
体育3050
总分550680

详解:

  • 原本不考历史
  • 道德与法治原先只有选择题,现在新加入了材料题,分数构成为28分选择 + 32分材料。历史分数构成与其一样,且二者合卷
  • 实验考试以往不计分,为实操。现在为机考答卷,在120道题(40物理,40化学,40生物)中每个科目随机选10道题目作答,每题一分
  • 体育由30分改为50分,构成为15分平时 + 35分考试。本届由于新冠疫情的原因,取消体育中考(即所有人考试分数计为35)

二调情况

先明确二调的考试内容,为中考所有科目除去体育与实验(四调亦然)

分数不是很方便透露,大致说一下考试情况吧。说来惭愧,正正好好是语数英垮了(bushi

语文选择题眼瞎,错了两题。英语则是阅读理解B篇,神你以为我会说脏话吗?Live a colorful life,我真感觉不到这么大,真的。

总之就是很意难平。

好消息是化学满分,终于!

签约的话倒不是不能签,只能说是比上不足,比下有余余余余余…

总结

也没什么可说的,给自己加油吧。我是想打竞赛的,文化课成绩必然需要更上一层楼才行。

886!

(鬼知道下次什么时候更新)

]]>
+ + + 个人 + + + 总结 + + 学习 + + 考试 + + + https://www.ordchaos.com/posts/7eb4319/#disqus_thread + +
+ + + 全站 webp 自动切换,加速访问好帮手 + https://www.ordchaos.com/posts/23e22de2/ + https://www.ordchaos.com/posts/23e22de2/ + Thu, 12 Jan 2023 09:42:10 GMT + + <p>原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。</p> + + + + 原本博客用的都是普通图片,就算有懒加载,一堆圈圈一起转也惹人心烦。现在改为了原图/webp的自适应切换,效果好上不少。

前期准备

首要任务是拿到webp格式的图片,这个看自己。像我用的vps上的Lsky Pro,本地存储。有高性能vps可以试试用Webp-Server配合。但我的轻量应用承受不起,遂作罢。改为了定时shell脚本,一分钟触发一次:

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
#!/bin/bash

find . -type f -iname "*.png" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.jpeg" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

find . -type f -iname "*.tif" | while read file; do
if [ ! -f "${file%.*}.webp" ]; then
cwebp -q 85 "$file" -o "${file%.*}.webp"
fi
done

脚本运行时会遍历自己所在的文件夹及其子文件夹,转换所有没有对应webp格式的图片(pngjpgjpegtiff)为webp图片(原图还在,放心)。

这段脚本中使用了cwebp指令,它来源于libwebp。安装可以参考下方:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装编译器以及依赖包
yum install -y gcc make autoconf automake libtool libjpeg-devel libpng-devel
# 请到官网下载最新版本,版本列表:https://storage.googleapis.com/downloads.webmproject.org/releases/webp/
wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.2.4.tar.gz
# 解压
tar -zxvf libwebp-1.2.4.tar.gz
# 进入目录
cd libwebp-1.2.4
# 源代码安装环境检查
./configure
# 编译
make
# 安装
make install

安装过程中遇到问题请善用百度/Google,本人不对此负责(bushi

做好以上所有工作后,就可以开始下面的内容。

Service Worker

安装

不知道是什么、如何部署的,可以看看CYF大佬的这两篇文章:

如果你已经部署了Service Worker就可以继续了。

脚本

添加一个监听器,监听fetch事件:

1
2
3
self.addEventListener('fetch', async event => {
//...
});

(或者在本来的监听器里面加上)

然后判断流量是否是对图站的请求,可以用一个if来判断:

1
2
3
4
if(event.request.url.indexOf('your.image.site') !== -1) {
var requestUrl = event.request.url;
//...
}

event.request.url是请求的地址,用indexOf()方法来判断地址中是否包含图站地址,若不反回代表没有的-1即为是对图站的请求。

接下来判断浏览器是否支持webp图片,定义一个变量supportsWebp

1
2
3
4
5
6
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}

如果可以获取到浏览器的Accept头,且头中包含image/webp,即为支持webp,否则为不支持。

然后就可以进一步处理了,若浏览器支持webp,则进行下一步:

1
2
3
4
5
6
if (supportsWebp) {
//...
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}

然后获取请求的文件类型。最开始的脚本只支持pngjpgjpegtiff这四种格式的图片,所以我们也只能篡改这四种格式图片的请求到webp图片上:

1
2
3
4
5
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg') {
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
//...
}

newUrl中存储了新的请求地址,接下来对它发起请求即可:

1
2
3
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");

当请求完成并图片被完整下载以后,进行缓存,代码如下:

1
2
3
4
5
6
7
8
9
10
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);

若获取失败则提示,成功则缓存。

最后,要打断之前的请求,避免降低速度,可以调用event.stopImmediatePropagation()方法打断原始请求。

最后完整代码如下:

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
if(event.request.url.indexOf('img.ordchaos.com') !== -1) {
var requestUrl = event.request.url;
var supportsWebp = false;
if (event.request.headers.has('accept')){
supportsWebp = event.request.headers
.get('accept')
.includes('webp');
}
if (supportsWebp) {
var imageUrl = requestUrl.split(".");
if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg'){
var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp');
var newRequest = new Request(newUrl);
event.respondWith(fetch(newRequest));
console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " .");
event.waitUntil(
fetch(newRequest).then(function(response) {
if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl);
caches.open(CACHE_NAME).then(function(cache) {
cache.put(newRequest, response);
});
}).catch(function(error) {
console.log(error);
})
);
event.stopImmediatePropagation();
return;
}
}
else {
console.log("[SW] Don't support webp image, skip " + requestUrl + " .");
}
}

你学会了吗?

测试

进入网站,若一切正常,当加载到一张图片时,控制台(F12打开)会提示[SW] Redirect https://your.image.site/path/to/img.png to https://your.image.site/path/to/img.webp .这样的信息。

要测试无webp支持的情景,则点击右上角的三个点。

选择更多工具,找到“渲染”并点击。

勾选“停用webp”即可。

此时,加载图片时会提示[SW] Don't support webp image, skip https://your.image.site/path/to/img.png .

可以试试我这里的这张图片:

若浏览器支持webp则会显示Webp Accept!,否则为Webp Reject!This is a jpg file.

题外话

刚刚放寒假,舒坦。

但与之对应,九上已经结束,还有一学期就中考。。。

加油!我可以的!

那就这样,886!

]]>
+ + + 编程 + + 教程 + + + 计算机 + + 编程 + + 教程 + + 优化 + + + https://www.ordchaos.com/posts/23e22de2/#disqus_thread + +
+ + + 自托管 E-mail ,宝宝喜欢妈妈爱 + https://www.ordchaos.com/posts/3b90dbec/ + https://www.ordchaos.com/posts/3b90dbec/ + Mon, 28 Nov 2022 13:40:50 GMT + + <p>本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进<code>https://qiye.aliyun.com</code>登录。于是趁着黑色星期五<a href="https://racknerd.com/">RackNerd</a>的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。</p> + + + + 本来一直在用阿里云的企业邮箱,但感觉总是不太好,主要每次都需要进https://qiye.aliyun.com登录。于是趁着黑色星期五RackNerd的优惠,搞了一台vps来搭电子邮局(如果你想搭建,请确认服务器是否支持rDNS以及是否开启25端口)。

配置如下(年付$10.28)

硬件配置
CPU1核
RAM768MB
SSD10GB
流量1TB

还是比较磕碜的,不过价格在这,无所谓了。

经历

首先,我需要为vps开通rDNS记录到mx.ordchaos.com上。后台可以自主设置,很方便…

bang!

好,很好,我沉得住气。发个工单问一下:

工单截图

哦!原来如此!好的,继续交流后,rDNS设置成功,但然而我却发现无法访问?!一番探查之后,发现这样一个事实——被墙啦!

于是只得继续发工单:

终于搞定。

Mailu.io部署

设置主机名

在vps的bash中输入:

1
nano /etc/hosts

在其中具有服务器ip地址的一行中,将后面的内容改为(假设你的域名是example.com,服务器ip是88.88.88.88):

1
88.88.88.88    mx.example.com   mx

编辑好后,在vps中执行:

1
2
echo "mx" > /etc/hostname
hostname -F /etc/hostname

这样就设置好了主机名,可以通过hostname命令确认是否设置成功:

1
2
hostname
hostname -f

前者只会输出mx,后者则会输出mx.example.com。如果不是,那就是设置错了。

设置DNS解析

去你的域名DNS解析服务商,设置以下DNS解析(假设你的域名是example.com,服务器ip是88.88.88.88):

主机名解析类型内容
@A(如果已有解析就不管,没有就解析到127.0.0.1,注意不能有CNAME记录)
mxA88.88.88.88
@MXmx.example.com(优先级为10)
@TXTv=spf1 mx a:mx.example.com ~all
_dmarcTXTv=DMARC1; p=reject; rua=mailto:admin@example.com; ruf=mailto:admin@example.com; adkim=s; aspf=s
example.com._report._dmarcTXTv=DMARC1

然后去vps服务商,设置rDNS(或者叫做PTR)解析,将88.88.88.88解析到mx.example.com

获取配置

访问Mailu.io的配置生成网页:https://setup.mailu.io

写文时最新版本为1.9,保持不变。下方部署方式选择Compose.

  • 1:在此处填写自己的域名

  • 2:自己起个名字(如“序炁的电子邮局”)

  • 3:若你的域名为example.com,则在此处填写https://mx.example.com

  • 4:点击勾选

  • 1:推荐选择rainloop,更加现代好看

  • 2:填写自己vps的ip地址

  • 3:若你的域名为example.com,则在此处填写mx.example.com

最后,你会看到如下界面:

照着界面的指示,回到vps执行指令:

1
2
mkdir /mailu
cd /mailu

然后回到刚刚的页面,下载配置文件:

1
2
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/docker-compose.yml
wget http://setup.mailu.io/1.7/file/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/mailu.env

最后执行(假设你的域名是example.com,密码设置为PASSWORD):

1
2
docker-compose -p mailu up -d
docker-compose -p mailu exec admin flask mailu admin admin example.com PASSWORD

就安装完成了。

配置

在浏览器中访问https://mx.example.com登录您的管理员面板:

管理员面板

使用账号admin@example.com和密码PASSWORD登录即可(假设你的域名是example.com,密码设置为PASSWORD)。

然后点击左侧的“邮件域”:

然后点击如下的按钮:

在新界面中点击“生成密钥”,然后复制dkim配置:

1
dkim._domainkey.example.com. 600 IN TXT "v=DKIM1; k=rsa; p=xxxxxxxxxxxxxxxxxxxxxxxxxxxx" "xxxxxxxxxxxxxxxxxxxxxxxxxxxx"

进行域名解析即可。

创建账号

邮件域>用户>添加用户,按需配置即可。

使用

退出管理员账号,访问https://mx.example.com/webmail,登录即可(选择“登录Webmail”)。

主页面

测试

MailTester上可以进行测试,如下是我测试结果:

很完美了,对吧(

以前没有超过8过

题外话

完成了很久以前的夙愿。

欢迎跟着做一遍哦!也欢迎提问!

]]>
+ + + 教程 + + + 计算机 + + 编程 + + 教程 + + 电子邮件 + + vps + + + https://www.ordchaos.com/posts/3b90dbec/#disqus_thread + +
+ + + 船新说说页面—— Memos 初体验 + https://www.ordchaos.com/posts/3386e07f/ + https://www.ordchaos.com/posts/3386e07f/ + Sat, 26 Nov 2022 12:42:15 GMT + + <p>博客的说说真的是一波三折…</p> + + + + 博客的说说真的是一波三折…

最开始用的是HexoPlusPlus的说说,很好用也很流畅小巧,但是自Hpp停止开发后就用不了了。

然后改用了bber,也很不错,但是辣鸡腾讯云也是离谱,好好的羊毛突然就不让薅了,同时我的twikoo也被迫迁移到了vercel,只得抛弃。

中途也用过别的说说系统,比如说大名鼎鼎的Artitalk亦或者是iSpeak等等,但是都不太满意,而后因为各式各样的原因放弃。

本来我会一直被这玩意困扰…现在不会了!只因为我发现了它——Memos

开源,私有部署,这不就是我要的完美的说说系统吗?!

后端部署

很简单,首先你要有一台vps,然后装上docker.

随后一句指令即可搞定:

1
docker run -d --name memos -p 5230:5230 -v ${PWD}/.memos/:/var/opt/memos neosmemo/memos:latest

随后Memos就会被部署到5230端口,觉得不方便也可以反向代理,这个教程有很多,这里就不写了。

前端

单页

可以看看我的:说说

样式完全是自己写的…你知道对一位学C++的初三学生而言css是什么东西吗?!好吧随便写写也不算难

js来自immmmm,稍微改了一点点,可以在这里看看被压缩了根本看不了

总体而言,如果你也想要部署一个和我完全一样的页面,可以用以下html代码:(记得下载js文件)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div class='memo-nums'>
<p class='note note-info memo-nums-text'>
共有 <span id='memonums'>「数待载之」</span> 条说说
</p>
</div>
<div id="bber"></div>
<script type="text/javascript">
var bbMemos = {
memos : 'https://memos.ordchaos.top/',//修改为自己部署Memos的网址,末尾有斜杠
limit : '',//默认每次显示10条
creatorId:'1' ,//默认为101用户
domId: '',//默认为bber类
}
</script>
<script src="//jsd.ordchaos.top/marked/marked.min.js"></script>
<script src="/js/talk.js"></script>

注意这里用了Tag插件,如果用不了记得改改。

首页轮播

这个就比较简单了,直接在主题的index.ejs里加上以下代码即可:

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
<p class='note note-info memo-nums-text'>
<i class="iconfont icon-speakernotes"></i><span id="memos-index-space"> </span><span id='memos-t'>首页说说轮播加载中...</span>
</p>
<script src="/js/lately.min.js"></script>
<script>
let jsonUrl =
"https://memos.ordchaos.top/api/memo?creatorId=1&rowStatus=NORMAL" +
"&t=" +
Date.parse(new Date());

fetch(jsonUrl)
.then((res) => res.json())
.then((resdata) => {
data = resdata.data,
resultIndexMemos = new Array(data.length);
for (var i = 0; i < data.length; i++) {
var talkTime = new Date(
data[i].createdTs * 1000
).toLocaleString();
var talkContent = data[i].content;
var newtalkContent = talkContent
.replace(/```([\s\S]*?)```[\s]*/g, " <code>$1</code> ") //全局匹配代码块
.replace(/`([\s\S ]*?)`[\s]*/g, " <code>$1</code> ") //全局匹配内联代码块
.replace(/<iframe([\s\S ]*?)iframe>[\s]*/g, "📺") //全局匹配视频
.replace(/\!\[[\s\S]*?\]\([\s\S]*?\)/g, "🌅") //全局匹配图片
.replace(/\[[\s\S]*?\]\([\s\S]*?\)/g, "🔗") //全局匹配连接
.replace(
/\bhttps?:\/\/(?!\S+(?:jpe?g|png|bmp|gif|webp|jfif|gif))\S+/g,
"🔗"
); //全局匹配纯文本连接
if(newtalkContent.length > 25) {
newtalkContent = newtalkContent.substring(0, 25) + '...';
}
resultIndexMemos[i] = `<span class="datetime">${talkTime}</span>: <a href="https://www.ordchaos.com/talk/">${newtalkContent}</a>`;
}
});

// 滚动效果
var i = 0;
setInterval(function () {
document.getElementById("memos-t").innerHTML = resultIndexMemos[i];
window.Lately && Lately.init({ target: ".datetime" });
i++;
if(i == resultIndexMemos.length) i = 0;
}, 3000);
</script>

Tag仍然是不能用就记得改。代码来自eallion,仍然是改了一下原本的逻辑怎么看怎么怪好吧也可能是我没看懂——总而言之,无意冒犯

javascript总算是好些那么一点点,起码与c++还有那么一点像,外加上自己写GDScript的经验,稍稍改点也不算难事改了一小时

效果

自己去看看不行吗,动动手指的事

说说页面

首页轮播

题外话

前前后后搞了半个月了,终于是在学习的闲暇时间整完,中途也是收获良多。

那就这样,886!

]]>
+ + + 编程 + + 教程 + + + javascript + + css + + memos + + html + + 说说 + + 前端 + + + https://www.ordchaos.com/posts/3386e07f/#disqus_thread + +
+ + + Picgo ,我 ...... 我 ...... + https://www.ordchaos.com/posts/28b74a2d/ + https://www.ordchaos.com/posts/28b74a2d/ + Fri, 04 Nov 2022 08:40:50 GMT + + <p>如题,我要被这个神仙软件气死了。</p> + + + + 如题,我要被这个神仙软件气死了。

起因

准备装unity写个游戏,学一学C#,然后就发现C盘爆满飘红。用SpaceSniffer看了一下——好家伙!

Picgo的日志文件,占了我58.6GB.

解释

当Picgo上传图片失败时就会开始疯狂写日志,然后文件大小就爆炸。

解决

删掉日志,从组策略里设置一下日志文件大小限制就好了。

可以参考这个:如何在Windows10系统设置日志文件的最大大小

题外话

就离谱!!!

]]>
+ + + 教程 + + + 计算机 + + 编程 + + 教程 + + Picgo + + + https://www.ordchaos.com/posts/28b74a2d/#disqus_thread + +
+ + + + https://www.ordchaos.com/posts/fab451a5/ + https://www.ordchaos.com/posts/fab451a5/ + Fri, 16 Sep 2022 19:22:59 GMT + + <p>马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。</p> + + + + 马上就是今年的CSP-J了,一想起自己还有那么多数据结构没学就有点头皮发麻…这篇博文里我就来讲一下堆(Heap),一是方便他人,二是给自己巩固思路。

讲解

按照惯例哪里来的惯例,还是看一下堆是什么东西:

堆(heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质:

  • 堆中某个结点的值总是不大于或不小于其父结点的值;
  • 堆总是一棵完全二叉树。

将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。

——百度百科

很显然,为了储存堆,我们需要一棵完全二叉树。这里很多人就会想到建树,但其实不用。如果你看过我的学习笔记——二叉树的话,应该会记得完全二叉树的性质之一:

在有n个节点的完全二叉树中,对于编号为i的节点:

  • i=1i=1,则其无父节点,为根节点,否则其父节点编号为floor(i2)floor\left( \frac{i}{2} \right)
  • 2i>n2i>n,则i为叶节点,否则其左孩子的编号为2i。
  • 2i<n<2i+12i<n<2i+1,则i无右孩子,否则其右孩子的编号为2i+1。

——序炁 学习笔记——二叉树

所以我们只需要一个数组就可以存储堆了:数组最开始填入根节点,其左右孩子节点便依次为其后面的两个下标,再往后就以此类推。

那么现在建立一个数据结构用来建堆,很简单,参照下列代码:

1
2
3
4
5
6
#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

对于每一个堆都申请一个MAXSIZE大小的数组用于存储,而后用length变量存储目前的总节点数即可。

那么如何初始化就显而易见,只需要

1
2
3
4
inline void init(myHeap &heap) {
heap.length = 0;
return;
}

像这样将length设为0就大功告成。

插入元素

如果要往一个堆里插入元素,那我们就要先确定这个堆是小根堆还是大根堆,下面的所有代码均默认是小根堆,大根堆自己改去自己想想吧。

首先,在堆末尾加入要插入的元素:

1
2
3
4
void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
//...
}

length永远指向数组中最后一个存储了数据的位置的下一个位置,所以在value[length]的位置存储数据,然后增加length即可。

但现在这个堆可能不满足小根堆的性质了,怎么办呢?很简单,进行调整即可。将新节点设为当前节点,如果它大于父节点则结束,若小于则交换,而后将交换后的父节点(没错,还是新插入的数据)设为当前节点,重复这个过程直到其大于父节点或其为根节点则结束。

听着有些复杂,但用while循环即可轻松实现:

1
2
3
4
5
6
7
8
9
void push(myHeap &heap, int v) {
//...
int now = length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

完事!

删除元素

删除元素即出队,会弹出根节点。故而这里的方法是把最后一个节点移到根节点的位置覆盖掉它,再进行调整。

覆盖很简单:

1
2
3
4
void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
//...
}

不要忘记将节点数减一即可。这里用了一个小技巧,本来要写成这样:

1
2
heap.value[0] = heap.value[heap.length - 1];
heap.length--;

竞赛常考之一,++ii++的区别。不要觉得没用,比如用在这里就非常合适。包括前面的

1
heap.value[heap.length++] = v;

也用了这个方法。

好了,言归正传,下一步是调整节点。显然,这一次需要从上往下调整:将根节点设为当前节点,与自己左右孩子中较小的一个比较,若小于则结束,否则与其交换位置并将当前节点设为交换好的孩子节点(一样指向同样的数据),重复这个过程直到当前节点为叶节点或当前节点小于自己任何一个孩子为止。

同样,上代码:

1
2
3
4
5
6
7
8
9
10
11
12
void pop(myHeap &heap) {
//...
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

需要额外注意的是对当前节点是否为叶节点以及是否拥有右孩子的判断,避免因失误导致数据溢出。

应用

其实堆的操作也只有插入与删除,不过就是这么简单的东西也可以玩出不同的花样,下面是两个例子。

洛谷 P1090 NOIP2004 提高组 合并果子

原题链接:洛谷 P1090 NOIP2004 提高组 合并果子

题目描述

在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。

每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。

因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每个果子重量都为1,并且已知果子的种类 数和每种果子的数目,你的任务是设计出合并的次序方案,使多多耗费的体力最少,并输出这个最小的体力耗费值。

例如有3种果子,数目依次为1,2,9. 可以先将1、2堆合并,新堆数目为3,耗费体力为3. 接着,将新堆与原先的第三堆合并,又得到新的堆,数目为12,耗费体力为12。所以多多总共耗费体力为3+12=15。可以证明15为最小的体力耗费值。

输入格式

共两行。

第一行是一个整数n(1≤n≤10000),表示果子的种类数。

第二行包含n个整数,用空格分隔,第i个整数ai(1≤ai≤20000)是第i种果子的数目。

输出格式

一个整数,也就是最小的体力耗费值。输入数据保证这个值小于231.

输入输出样例

输入

1
2
3
1 2 9

输出

1
15
分析

简单的贪心算法,每次从所有果子中取两堆数量最小的合并,然后放回去即可。

不一定非要用堆,不过如果只是简单的排序的话会超时。不过你同样也可以用优先队列,或者看看洛谷上那些神犇的题解。

我的方法很简单,只需要建堆,然后从堆中取两个最小值(即小根堆堆顶元素)相加再插回去,直到只剩一个元素即可。其中每一次合并时用一个变量累计总体力,最后输出就行了。

代码如下:

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
#include <bits/stdc++.h>
using namespace std;

#define MAXSIZE 100000

struct myHeap {
int value[MAXSIZE];
int length;
};

void push(myHeap &heap, int v) {
heap.value[heap.length++] = v;
int now = heap.length;
while(heap.value[now - 1] < heap.value[now / 2 - 1] && now != 1) {
swap(heap.value[now - 1], heap.value[now / 2 - 1]);
now /= 2;
}
return;
}

void pop(myHeap &heap) {
heap.value[0] = heap.value[--heap.length];
int now = 1;
while(2 * now <= heap.length) {
int temp = 2 * now - 1;
if(temp + 2 <= heap.length && heap.value[temp] > heap.value[temp + 1]) temp++;
if(heap.value[now - 1] > heap.value[temp]) swap(heap.value[now - 1], heap.value[temp]);
else break;
now = temp + 1;
}
return;
}

inline int get(myHeap heap) {
return heap.value[0];
}

int getPop(myHeap &heap) {
int temp = get(heap);
pop(heap);
return temp;
}

int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
int power = 0;
while(test.length != 1) {
int quick[2] = {getPop(test), getPop(test)};
power += quick[0] + quick[1];
push(test, quick[0] + quick[1]);
}
cout<<power<<endl;
return 0;
}

其中get函数用于返回堆顶元素,不要也可以,毕竟很简单。

对于这一题是可以AC的,没有问题。

堆排序

既然小根堆的堆顶元素永远最小,那么只要每次都取出堆顶元素直到堆为空不就可以排序了吗?没错,这就是堆排序,时间复杂度为O(nlogn),十分优秀。

代码我就不讲了,自己看吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//...
int main() {
int n;
cin>>n;
int temp;
myHeap test;
test.length = 0;
for(int i = 0;i < n;i++) {
cin>>temp;
push(test, temp);
}
for(int i = 0; i < n; i++) cout<<getPop(test)<<" ";
cout<<endl;
return 0;
}

数据量大的时候可以考虑堆排序,因为堆排序的耗时主要在建堆上,建好堆后的调整实际上非常快。

题外话

终于写完了…写了我整整三小时啊!

明天大概也许会有一篇关于图的,以及一篇关于类的。

886!

]]>
+ + + 编程 + + + 计算机 + + 编程 + + c++ + + + https://www.ordchaos.com/posts/fab451a5/#disqus_thread + +
+ + + 在线写作与博文分享—— NetlifyCMS 与 ShareThis + https://www.ordchaos.com/posts/8e1b39a3/ + https://www.ordchaos.com/posts/8e1b39a3/ + Sat, 10 Sep 2022 15:10:28 GMT + + <p>没错,任何正常人都不会把标题里这两样东西联系起来,包括我。</p> + + + + 没错,任何正常人都不会把标题里这两样东西联系起来,包括我。

NetlifyCMS

最开始看到这玩意是在fluid的官方博客的这一篇博文Hexo Netlify CMS 在线编辑博客(转载的,原文地址在这里),当时就觉得非常不错,但可惜未能按照教程配置成功,只得转投于更贴合于Hexo的HexoPlusPlusHexo艹

直到前几天上个月看到 @Xingyang 在一键推流工具——BlogPusher这一篇文章下的评论

如果静态博客是部署在 Github 上的话可以试试用 Netlify CMS。相当于架设一个能进行 Git Commit 的 Web app,最重要的就是 0 花费,Private Repo 也可以用。我自己的博客也在用(虽然文章数不是很多())

参考文章:https://cnly.github.io/2018/04/14/just-3-steps-adding-netlify-cms-to-existing-github-pages-site-within-10-minutes.html

很好,但是不太符合我的情况。于是随即翻了翻——

瞳 孔 地 震.jpg

完全可用!撒花!

如果你也没有成功配置Netlify CMS的话也可以试试,教程十分甚至九分简单,个人感觉几乎不存在出错的可能性。

感谢Xingyang!顺便他的博文链接:简单搭建一个 GitHub Repo 静态博客的 CMS 后台内容管理系统

ShareThis

最开始捣鼓了一阵子分享系统,share.js啊,Social Share Button啊等等都尝试过一遍,但我都不太满意,况且分享也不是刚需,于是就此作罢。

直到昨天,我妈问我:“你这个博客怎么分享给别人看啊?”

我突然感觉分享还是有必要的,遂继续开始寻觅,然后就发现了ShareThis

注册

非常简单,进入首页:https://sharethis.com

点击“从分享按钮开始”,然后点击第一个选项:

不要急着点击下一步,先用滚轮滚动到页面下方,点击“Customize your Inline Share Buttons”按钮。

在弹出的选项中对按钮进行配置,可以配置包括颜色、媒体、形状等等内容。

最下方的语言记得调整为中文,然后点击下一步,在新页面中注册登录即可。

随后,你会得到两串代码,分别是js安装代码与按钮引入代码。安装代码放在head中,按钮放在你想插入的地方就好。

大概如下:

1
2
<!-- 安装 -->
<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=不告诉你&product=inline-share-buttons' async='async'></script>
1
2
<!-- 按钮插入 -->
<div class="sharethis-inline-share-buttons"></div>

效果

滑到这篇文章底下看吧。

题外话

这篇博文算是对近期我对博客的大改动,但是单独发太短,所以就这么整合在一起了。

那就这样,这篇博文就到这里,886!

]]>
+ + + 教程 + + + 计算机 + + 教程 + + Hexo + + + https://www.ordchaos.com/posts/8e1b39a3/#disqus_thread + +
+ + + 满十四,进十五。愿我青春无悔,不负韶华 + https://www.ordchaos.com/posts/e84bad58/ + https://www.ordchaos.com/posts/e84bad58/ + Wed, 24 Aug 2022 20:00:00 GMT + + 十五岁啦!希望初三及中考顺利! + + + + 又大了一岁呢…

令青春无悔,愿韶华不负!

希望明年的此刻,我能够无愧于自己。

]]>
+ + + 日常 + + 短文 + + + 生日 + + 短文 + + + https://www.ordchaos.com/posts/e84bad58/#disqus_thread + +
+ + + 生日当天全款提下第一支(打八折)钟薛糕 + https://www.ordchaos.com/posts/7e920bb4/ + https://www.ordchaos.com/posts/7e920bb4/ + Wed, 24 Aug 2022 17:46:00 GMT + + 记我的第一支(不知道是不是最后一支)钟薛糕 + + + + 送给自己的生日礼物

我是大怨种

]]>
+ + + 日常 + + 短文 + + + 生日 + + 短文 + + + https://www.ordchaos.com/posts/7e920bb4/#disqus_thread + +
+ + + Phigros 版本迁移——从 Google Play 到 Tap Tap + https://www.ordchaos.com/posts/e8587b82/ + https://www.ordchaos.com/posts/e8587b82/ + Sun, 21 Aug 2022 18:20:50 GMT + + Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档 + + + + 起因

Google Play的版本更新总是慢一些,不知道你行不行,但是我是忍不了别人都玩上了新曲而我却还不能玩的感觉,遂决定迁移存档。

过程

大体参考这一篇文章Phigros存档跨版本转移教程(免root)即可,在这里稍微提一下我遇到的问题

解决问题

在使用abe.jar时,Java报错:

1
Error: A JNI error has occurred, please check your installation and try again

首先在网上查询,找到的第一个方法是删除电脑里共存的JDK,只留下一个,使java -versionjavac -version有相同的版本。

我照做,删除了java8,只留下了openjdk17,但是毫无卵用。

于是我继续查询,发现在跨!系!统!转!移!支持安卓和IOS的跨系统存档转移工具!Phigros 存档 IOS 跨系统 备份 还原 转移 同步这一视频中所提供的工具里的abe.jar可用。

总结

如果你也遇到了一样的问题,可以参考我的方法看看是否有效。

若不想下载整个备份工具而只想要abe.jar的话,可以从这里下载:链接(如有侵权,请联系我删除)

]]>
+ + + 教程 + + Phigros + + + 计算机 + + 编程 + + 教程 + + adb + + 手机 + + phigros + + + https://www.ordchaos.com/posts/e8587b82/#disqus_thread + +
+ + + 【多图预警】 AwtrixPro 开源项目的复现 + https://www.ordchaos.com/posts/774674fe/ + https://www.ordchaos.com/posts/774674fe/ + Fri, 19 Aug 2022 18:04:08 GMT + + <p>本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。</p> + + + + 本人对AwtrixPro垂涎已久,但却懒得复现。暑假的物理作业包含一个对电学有关的实验,遂趁此机会复现一个出来。

材料采购

并不难,跟着官网这个网页一步步在淘宝上找就可以了。就是记得买焊接工具以及足够量的耗材(指Gpio线材、热熔胶、电工胶带等等)以及外壳(可以用官网上的文件3D打印,淘宝上也有直接卖的)。

这里贴出我购买材料的链接,有兴趣的话可以试一试(加粗的为非必需品,没有注明数量默认1个,没有注明平台默认淘宝天猫):

材料链接
Wemos D1 mini主板ESP8266 ESP-12 Wemos D1 Mini 微型WiFi开发板Micro USB 3.3V
32x8 点阵屏幕led柔性全彩像素屏 ws2812b SK6812B点阵rgb屏软屏8x8 8x32 16*16
5V电源供应器(大于3A)5V4A20W插墙式广告机LED灯条平板蓝牙音响直流稳压开关电源适配器
3×1k电阻10支价 进口 10K MRS25000C1002FRP00 0207 0.6W 低噪金属膜电阻
线材若干树莓派gpio拓展40P彩色杜邦线20CM 母对母 公对母 公对公 1排40根,买到了请自己根据需要进行剪裁
2×肖特基二极管(1N1004)(官网上说必须,但我没看出来哪里需要)1N4007 10A10 1N5408 1N5819 1N4001 5822直插整流二极管级IN4007(颜色分类:1N4004 1A/400V整流二极管直插(50个))
1000uF 10V电容直插铝电解电容器元件10/16/25V/35/50v/10uF/47/220/1000/2200uF(颜色分类:10V 1000UF 体积8x12mm(20个))
GL5528光敏电阻立创商城GL5528
DF Mini Player模块开源 Mini MP3 Player 播放器 模块 SD卡 音乐 arduino DFPlayer
Htui21d温湿度传感器GY-213v-HTU21D HDC1080温湿度传感器检测模块/替SHT20 SHT21
外壳+电源插口智能像素时钟Awtrix Pro创客创意彩色B站粉丝数全套外壳WS2812,跟客服商量好了只要外壳与DC电源插口
扬声器(52.5mm×52.5mm)1.5寸40mm喇叭小米小钢炮低音全频3欧4欧3瓦5W音箱嗽叭扬声器配件
3×TTP223触摸传感器触摸按键模块 TTP223 自锁 点动 电容式 开关 单路改造 电容触摸

硬件制作

PCB+针脚焊接

本人未成功通过此方法复现,下列内容不一定完全正确,仅供参考

参考B站UP主三三三三三文啊的视频【AWTRIX PRO】一起动手做一个高颜值的像素灯,在嘉立创打好板子(注意有贴片,需要开钢网),买好GPIO接口公母头再焊接即可。打板流程可以参考【0基础】从零开始电子DIY!第三集:PCB电路板设计和打样!,这一套教程非常不错,推荐。

打好的板子如下:

焊接好之后(贴片是用的钢网+锡焊膏+风枪):

焊接针脚时若是无法直接使用锡丝与电烙铁焊接完成,也可以用锡焊膏+电烙铁。把锡焊膏涂抹在针脚背面,不用担心粘连,然后用电烙铁分别探入每两个针脚间的空隙,随后依次处理每个针脚就可以了。

然后刷程序、接线、通电、启动即可(至少理论上是这样):

很明显,这里并未启动成功,望高手赐教。

手动飞线

根据官网的接线图进行手动飞线即可,这里因为缺少一个电容(C1, 100nF)且不知道哪里有卖的而未接上DFPlayer模块及喇叭。

这里除了基础配件外,额外加装了光敏电阻、触摸以及Htui21d温湿度模块。基础部分依据教你做一个可编程像素屏制作成功,然后通过自主飞线完成了其它组件的安装。

开机成功

没有什么难点,注意需要连接多根导线时用钳子分别剪开线的外皮,露出里面的铜/铁/其他金属丝,拧在一起然后用电烙铁与锡焊在一起就可以了。

裸露的金属丝记得用电工胶带或者热熔胶包裹起来,防止意外:

然后装入外壳即可:

再放上格栅、均光片及亚克力面板就完成了:

安装格栅

安装均光片

安装亚克力面板

软件配置

软件这里就不再多提,官网上就有(点击这里访问)。就是说一下我这里是部署在我自己的服务器上,就无需本地服务器如树莓派一类了。

宝塔面板就可以轻松完成配置,也无需ssh连接。

然后安装自己喜欢的软件即可,我这里是这几个:

成品

室温

湿度

日期

B站粉丝数量(还不关注我?)

Youtube粉丝数(香港服务器的好处之一就是能够获取到这种信息)(没错,我没有粉丝——当然是因为我没发任何视频)

GitHub Followers

题外话

从暑假开始一直做到了倒数第二天…心累,不过总算是完成了,也让我发现了我的电工天赋(bushi

那就这样,这篇报告(?)就完成了,感谢你的观看,886

]]>
+ + + 编程 + + 硬件 + + + 计算机 + + 编程 + + github + + 开源软件 + + awtrix + + 硬件 + + 复现 + + + https://www.ordchaos.com/posts/774674fe/#disqus_thread + +
+ + + 解决一件困扰我很久的小事 + https://www.ordchaos.com/posts/8ad10849/ + https://www.ordchaos.com/posts/8ad10849/ + Fri, 19 Aug 2022 09:40:50 GMT + + 偶然间看到了这个视频——[Phigros/技术革新]快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却...... + + + + 起因

偶然间看到了这个视频——[Phigros/技术革新] 快速获取自己的B19成绩图,眼馋,也想要,遂跟着做,结果却…

大☆失☆败

手机自始至终没有弹出“完全备份”界面,我百思不得其解,于是在stackoverflow上发了一个问题:

Adb backup does not work on my HarmonyOS 2.0 phone

直到今天之前,没有任何人给出有效回答。

解决

把之前在手机里安装的软件“冰箱”卸载之后就正常了,我也不知道为什么。

从这件事就可以看出我是个…欸,我不说,就是玩

自己去把问题给解答了,这件事就此完结。

题外话

生成都生成了,那就晒一下吧:

小菜一枚,大佬轻喷。

那就这样,886

]]>
+ + + 教程 + + Phigros + + + 计算机 + + 编程 + + 教程 + + adb + + 手机 + + phigros + + 安卓 + + 鸿蒙 + + + https://www.ordchaos.com/posts/8ad10849/#disqus_thread + +
+ + + Hexo 通过 GitHub Action 自动部署到云虚拟主机 + https://www.ordchaos.com/posts/1e44a102/ + https://www.ordchaos.com/posts/1e44a102/ + Tue, 16 Aug 2022 18:04:50 GMT + + <p>购买了<a href="https://www.foreverblog.cn/">十年之约</a>的优惠价<a href="https://www.vpsor.cn/">硅云</a>虚拟主机用于加速访问,记录一下部署过程。</p> + + + + 购买了十年之约的优惠价硅云虚拟主机用于加速访问,记录一下部署过程。

前提条件

你需要已经配置好了GitHub Action的Hexo自动部署,若是没有,推荐观看以下文章:

这里就不讲了。

编辑Action

打开(本地博客仓库目录)/.github/workflows/(Action配置文件).yml,在最后添加:

1
2
3
4
5
6
7
8
9
- name: Deploy Files on Ftp Server
uses: SamKirkland/FTP-Deploy-Action@4.3.0
with:
server: (FTP服务器地址)
username: (FTP用户名)
password: (FTP密码)
local-dir: ./public/
server-dir: (FTP服务器文件目录)
port: (FTP服务器端口,一般是21)

将括号及内部内容换成自己的信息即可。

这里的方法是使用ftp来上传文件到虚拟主机,是对于所有虚拟主机而言最通用的一种方式了。./public是Hexo默认的静态文件生成本地地址,无需更改。

最后推流到GitHub即可使用。

题外话

本来以为挺复杂,结果就这么点。

最开始使用的是hexo-deployer-ftpsync插件,结果却根本无法正常使用,于是便转为使用docker镜像。

对了,如果有兴趣购买硅云的主机,那请帮个小忙,用我的邀请链接注册吧:邀请链接

那就这样,886

]]>
+ + + 教程 + + + 计算机 + + 编程 + + 教程 + + Hexo + + 虚拟主机 + + 网站 + + GitHub + + 自动化 + + GitHub Action + + + https://www.ordchaos.com/posts/1e44a102/#disqus_thread + +
+ + + 《梁启超传》议论文素材积累 + https://www.ordchaos.com/posts/2f728g0f/ + https://www.ordchaos.com/posts/2f728g0f/ + Sat, 13 Aug 2022 13:33:00 GMT + + <p>与<a href="https://www.ordchaos.com/posts/1e617f9e/">之前那一篇</a>一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。</p> + + + + 之前那一篇一样是暑假的语文作业,也是对这本书全本的分节概括以及议论文的素材积累,外加上对应适用的议论文题材。

第一章 一世纪以来中国的命运——从鸦片战争至梁氏诞生的前夕

第一节 绪说

梁启超生在中国近代最悲惨的100年(1842-1943)年中,虽屡次想跳海自尽,但仍坚决地相信中国必然不亡且断然复兴,所以他才在全然无望中挣扎奋斗。

作文:坚持、毅力、精神

第二节 梁氏生前中国一般的惨况

  • 《奴才好》中足以令人怒发冲冠的描写在当时黑暗社会的情境下甚至不被人认为是严重的怪象。

  • 慈禧太后奢靡无度,倾尽全国财力为自己所用,掏空了国库,令全中国上下不得安宁。

  • 清末国家机构的腐败,如“外交部”(总理衙门)工作人员甚至无法分清澳门与澳洲。

  • 清末军队素质极差,上下组织腐败,不能防国,只能累民。

  • 清末经济建设几乎毫无成效,只因“官与民争”就扩大为了导致清朝覆灭的致命伤。

作文:珍惜、强国、学习

第三节 梁氏生前中国一般的教育状况

  • 清末满朝士大夫都有一种目中无人的气势,自觉这清朝乃是天下第一。

  • 清末全国几乎没有半个学校的教育,教导孩子不去烟馆、青楼而在家里抽大烟、挑“丫头”都成为了“教子有方”。

  • 清末文人及有志青年深受八股文之害,令八股文成为活埋青年的天坑。

  • 清末人民对“洋”存在极深的偏见,如官办“洋学堂”都十分遭人唾弃,只能拉到一批不三不四的学生。校内不教德育、爱国,而只是学习西方下等人的恶俗。

作文:环境、强国、学习

第四节 梁氏后来对于祖国命运的影响

  • 梁启超在混乱的社会环境成功改革文体,大幅推进国民阅读的程度,收获神州文字革命成功之果。

  • 梁启超在国内外创办大量报纸,让报馆完成了“辅助教育,启发民众,指导社会,介绍新学,宣传主义,主持公论,监督行政,纠弹非法,为民喉舌”的神圣工作,同时收获文体、报纸、政体改革的成功,乃至最后的“国体改革”。

作文:坚持、偶像、伟人

第二章 亡国现象与维新初潮——从梁氏诞生至戊戌政变

第五节 综叙

1873年,梁启超出生。此时近代伟人俱全,又冲破了鸦片战争以来中国所带之枷锁,正是突破了低于底层的黑暗,看见天际的一缕祥光。

作文:努力、坚持、时代

第六节 亡国现象的种种——梁氏生后的中国惨况

  • 梁启超出生之后的中国同样是战争不断,且更偏向于内乱。

  • 此时国际形势大好,西方列强都成为了天之骄子,合力来对付中国一国,令中国无辜受到车裂及凌迟之刑。

  • 日本对中国早有图谋,在其只是一个弹丸之地的效果时就已经企图占据朝鲜与中国,且当时日本名士几乎都有着不一的“吞华论”。

作文:毅力、黑暗、光明、社会、时代

第七节 梁氏幼年的家庭生活及家乡环境

  • 梁启超自幼就受到“光荣”与“悲痛”两大思想刺激,产生了爱国主义思想,因此埋下了其一生命运的种子。

  • 他虽然受逼迫不能追随孙中山革命,但仍具有浓烈的革命思想,也发表了激烈的革命党言论。

作文:爱国、强国、富国、伟人、偶像

第八节 康梁会接

  • 康有为把各种书乱读一通,完全没有遵循求学问的正确轨道,只是自以为恍然大悟,妙不可言。养成了“予智自圣“的夸大狂态度,不肯随时代而进步。

  • 康有为上书不达,但他的热忱与胆气倒真可佩服。在这样的背景下,他只得在广州长兴里万木草堂开门讲学。梁启超受了陈千秋与曹丁泰两位志士的介绍脱离了陈腐过时的学海堂,而转学入这个新鲜自由的长兴学舍,在这样的学风与学科之下受熏陶四年。

作文:智慧、计划、学习

第九节 梁氏独立事业的开始

  • 梁启超脱胎于长兴学社创立新学。在这样一种不拘形式而朝气蓬勃的学风之下,造就出了许多具有新思想人才,当时一般的学生只有四十人,而五分之二都成为了革命先烈或开国名人。

  • 梁启超创学会启发心智,推行维新,学会中政治性质强大。在戊戌八月政变失败之后,所有的学会都秘密含有了革命的使命,与前期的学会性质有根本上的不同。

  • 梁启超为推行维新而创办报纸。此时,他已明白,学校、学会、报纸是三位一体互相为用的,缺一不可。所以,在北京办学会的时候,他就已经开始办报。这是梁启超生平新闻事业开始的第一章,也是近代中国有正式意义的新闻开始的第一页。

作文:智慧、方法、强国

第三章 维新的失败与革命的成功

第十节 促成戊戌变法的原因

  • 外因-远因:清政府的闭关锁国政策、杀沙俄实力的突飞猛进、列强对中国的围攻、洋务运动的失败。

  • 外因-近因:日本民治维新的胜利、甲午战争失败的国耻、中国被蚕食的痛苦、防止陷入土耳其不变法而衰弱的覆辙。

  • 内因-远因:清政府长期积累政治恶习的崩溃、满族战斗能力与战斗意识的降低、太平天国运动后实际政权的转移、以慈禧太后为核心的宫廷政变。

  • 内因-近因:慈禧太后与皇帝权力的争夺、满族嫉妒汉族情感的具象化、孙中山先生领导的革命运动的激进,国内舆论更加倾向于维新。

  • 由于以上这十六点各种各样的原因,到戊戌年间维新运动已成瓜熟蒂落的现象,除了冥顽无耻,卖身求荣的少数败类以外,几乎所有人都是渴望政治改革有如甘霖一般。

作文:强国、因果、历史

第十一节 戊戌政变史剧的绘影

  • 戊戌变法的规模既不如日本明治维新,就连康有为公车上书的内容也还有千里之差。但就算只是这样,对于当时的清政府而言,也已经算是大刀阔斧了,此时正是光绪帝把皇威发扬到顶点的时候。

  • 光绪帝想趁着改革的机会罢免几个守旧的大臣,但这些顽固的大臣转而向“老佛爷”求助,于是慈禧太后勃然大怒,将光绪帝囚禁而自己垂帘听政,在实际上掌握了清政府的权力。

  • 康有为、梁启超等“小人”“大逆”受“可恶透顶”的“洋鬼子”的保护,躲开了慈禧太后的清算。其中,谭嗣同本来由日本严密保护,但却自己重新自动出来,愿抛头颅以改造祖国百年的命运。如此的忠与侠实属罕见,也值得我们敬佩。

作文:强国、历史、光明、黑暗、方法

第十二节 政变失败原因的解析

  • 清政府内部早已腐朽不堪,全国大权都在慈禧太后之手,而满人的猜疑程度又大到难以想象,更是有许多守旧的大臣。变法本就是一个不可能完成的任务。

  • 康有为虽然魄力强大、精神勇猛、感情丰富、毅力坚韧,但他同样心胸不广、态度傲慢、个性执拗、理智不强、做事无序、缺乏科学训练、不求上进、所学太杂而不适用其时代,却反而骄然不惭,自谓贯通天地人。

  • 满人生来仇视汉人,排挤汉人,甚至在百维新期间出现了满洲人所谓闹鬼的趣事。在这样的排挤、压迫、攻击之下,维新救国、变法图强本就是一个荒唐的幻想。

  • 一些守旧分子自满于既得利益而不愿其被损伤分毫,故而极力阻挠变法。

作文:方法、强国、历史、革命、国庆

]]>
+ + + 文学 + + + 文学 + + 作文 + + 读后感 + + 议论文 + + 素材 + + + https://www.ordchaos.com/posts/2f728g0f/#disqus_thread + +
+ +
+
diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 000000000..df19cc75d --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,1025 @@ + + + + + https://www.ordchaos.com/manifest.json + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/owo.json + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/leave/index.html + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/talk/index.html + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/23e22de2/ + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/about/index.html + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/fcircle/index.html + + 2024-02-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/e9c784c5/ + + 2024-02-09 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/95bd9bb8/ + + 2023-08-24 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/b3d3143c/ + + 2023-07-23 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/ec8c9790/ + + 2023-07-06 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/c2e7460a/ + + 2023-07-01 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/c9c6cb4f/ + + 2023-04-03 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/7eb4319/ + + 2023-03-26 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/3b90dbec/ + + 2022-11-28 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/3386e07f/ + + 2022-11-26 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/28b74a2d/ + + 2022-11-04 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/fab451a5/ + + 2022-09-16 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/8e1b39a3/ + + 2022-09-10 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/e84bad58/ + + 2022-08-24 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/7e920bb4/ + + 2022-08-24 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/e8587b82/ + + 2022-08-21 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/774674fe/ + + 2022-08-19 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/8ad10849/ + + 2022-08-19 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/1e44a102/ + + 2022-08-16 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/2f728g0f/ + + 2022-08-13 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/618137f7/ + + 2022-08-10 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/d9bb8734/ + + 2022-08-09 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/46d2370f/ + + 2022-08-09 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/e8ce405d/ + + 2022-08-06 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/1e617f9e/ + + 2022-08-05 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/97a1a73e/ + + 2022-08-02 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/6a062b97/ + + 2022-08-01 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/f0f71147/ + + 2022-07-27 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/10824f12/ + + 2022-07-25 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/340b325e/ + + 2022-07-01 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/d4140423/ + + 2022-07-01 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/79cc3297/ + + 2022-06-15 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/6270475f/ + + 2022-06-04 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/ab8676cc/ + + 2022-05-12 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/4996fe6c/ + + 2022-05-04 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/da7075f0/ + + 2022-04-09 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/7e535678/ + + 2022-01-27 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/8f132c87/ + + 2021-12-25 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/bff2b1a/ + + 2021-12-13 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/92674965/ + + 2021-07-31 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/d29e300c/ + + 2021-06-23 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/bb5ce830/ + + 2021-04-23 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/53c0d957/ + + 2021-03-20 + + monthly + 0.6 + + + + https://www.ordchaos.com/posts/7b015599/ + + 2020-12-10 + + monthly + 0.6 + + + + + https://www.ordchaos.com/ + 2024-02-12 + daily + 1.0 + + + + + https://www.ordchaos.com/tags/%E6%BC%94%E8%AE%B2%E7%A8%BF/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%BA%AF%E8%8B%B1%E6%96%87/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/English/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%90%88%E5%94%B1/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E9%9F%B3%E4%B9%90/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%BC%96%E7%A8%8B/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/c/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%95%99%E7%A8%8B/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/Hexo/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%BD%91%E7%AB%99/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/GitHub/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%87%AA%E5%8A%A8%E5%8C%96/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/GitHub-Action/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/adb/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%89%8B%E6%9C%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/phigros/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/Picgo/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%96%87%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E4%BD%9C%E6%96%87/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%AF%BB%E5%90%8E%E6%84%9F/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%AE%AE%E8%AE%BA%E6%96%87/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%B4%A0%E6%9D%90/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%99%BD%E5%AB%96/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%A6%8F%E5%88%A9/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/s3%E6%A1%B6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/github/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/awtrix/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%A1%AC%E4%BB%B6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%A4%8D%E7%8E%B0/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%AD%A6%E7%94%9F/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%95%B0%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E4%BC%98%E5%8C%96/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%AE%97%E6%B3%95/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%97%A5%E5%B8%B8/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%97%85%E8%A1%8C/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%94%9F%E6%97%A5/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%80%BB%E7%BB%93/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E4%B8%AA%E4%BA%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%94%B5%E5%BD%B1/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%BC%80%E7%AE%B1/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%A7%91%E6%8A%80/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/U%E7%9B%98/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%91%A8%E8%BE%B9/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/javascript/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/css/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/AI/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%9F%AD%E6%96%87/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%BE%A9%E8%AE%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%89%BA%E7%89%B2/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/sai/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E6%89%8B%E7%BB%98/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%94%BB%E7%94%BB/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%8C%96%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E7%94%B5%E5%AD%90%E9%82%AE%E4%BB%B6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/vps/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/memos/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/html/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%AF%B4%E8%AF%B4/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%89%8D%E7%AB%AF/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%AE%89%E5%8D%93/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E9%B8%BF%E8%92%99/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E5%AD%A6%E4%B9%A0/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/tags/%E8%80%83%E8%AF%95/ + 2024-02-12 + weekly + 0.2 + + + + + + https://www.ordchaos.com/categories/%E8%8B%B1%E8%AF%AD/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E7%BC%96%E7%A8%8B/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E6%95%99%E7%A8%8B/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E9%9F%B3%E4%B9%90/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E6%96%87%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E7%A1%AC%E4%BB%B6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E6%95%B0%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/Phigros/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E6%97%A5%E5%B8%B8/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E8%BE%A9%E8%AE%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E7%BE%8E%E6%9C%AF/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E7%9F%AD%E6%96%87/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E4%B8%AA%E4%BA%BA/ + 2024-02-12 + weekly + 0.2 + + + + https://www.ordchaos.com/categories/%E5%8C%96%E5%AD%A6/ + 2024-02-12 + weekly + 0.2 + + + diff --git a/sw.js b/sw.js new file mode 100644 index 000000000..9a6f631d7 --- /dev/null +++ b/sw.js @@ -0,0 +1 @@ +const CACHE_NAME="OCXQCache";let cachelist=["https://img.ordchaos.com/img/2023/01/557e41f1eba9dab1399774a8ef7e679a.jpg","https://img.ordchaos.com/img/2023/01/557e41f1eba9dab1399774a8ef7e679a.webp","/img/loading.gif","/css/navbar.css","/css/custom.css","/css/fcircle-ext.css","/css/notice.css","/js/jump.js","/js/tw_cn_tran.js","/js/rand.js","/js/lately.min.js","/js/duration.js","/js/jquery.min.js","/js/moment.min.js","/js/aisummary.js","/owo.json"];self.addEventListener("install",async function(t){self.skipWaiting(),t.waitUntil(caches.open(CACHE_NAME).then(function(t){return console.log("[SW] Opened cache."),t.addAll(cachelist)}))}),self.addEventListener("fetch",async t=>{var e=t.request.url;if(-1===t.request.url.indexOf("hm.baidu.com")){if(-1!==t.request.url.indexOf("img.ordchaos.com")){var n=!1;if(t.request.headers.has("accept")&&(n=t.request.headers.get("accept").includes("webp")),n){var s=e.split(".");if("jpg"===s[s.length-1]||"tif"===s[s.length-1]||"png"===s[s.length-1]||"jpeg"===s[s.length-1]){var r=e.replace(s[s.length-1],"webp"),c=new Request(r);return t.respondWith(fetch(c)),console.log("[SW] Redirect "+e+" to "+r+" ."),t.waitUntil(fetch(c).then(function(t){if(!t.ok)throw new Error("[SW] Failed to load image: "+r);caches.open(CACHE_NAME).then(function(e){e.put(c,t)})}).catch(function(t){console.log(t)})),void t.stopImmediatePropagation()}}else console.log("[SW] Don't support webp image, skip "+e+" .")}try{t.respondWith(handle(t.request))}catch(e){t.respondWith(handleerr(t.request,e))}}});const handleerr=async(t,e)=>new Response(`

CDN分流器遇到了致命错误

\n ${e}`,{headers:{"content-type":"text/html; charset=utf-8"}});let cdn={gh:{jsdelivr:{url:"https://cdn.jsdelivr.net/gh"},jsdelivr_fastly:{url:"https://fastly.jsdelivr.net/gh"},jsdelivr_gcore:{url:"https://gcore.jsdelivr.net/gh"},jsdelivr_ocxq:{url:"https://jsd.ordchaos.top/gh"}},combine:{jsdelivr:{url:"https://cdn.jsdelivr.net/combine"},jsdelivr_fastly:{url:"https://fastly.jsdelivr.net/combine"},jsdelivr_gcore:{url:"https://gcore.jsdelivr.net/combine"},jsdelivr_ocxq:{url:"https://jsd.ordchaos.top/combine"}},npm:{eleme:{url:"https://npm.elemecdn.com"},jsdelivr:{url:"https://cdn.jsdelivr.net/npm"},zhimg:{url:"https://unpkg.zhimg.com"},unpkg:{url:"https://unpkg.com"},bdstatic:{url:"https://code.bdstatic.com/npm"},tianli:{url:"https://cdn1.tianli0.top/npm"},sourcegcdn:{url:"https://npm.sourcegcdn.com/npm"},jsdelivr_ocxq:{url:"https://jsd.ordchaos.top/npm"}}};const is_latest=t=>"latest"===t.replace("https://","").split("/")[1].split("@")[1],cache_url_list=[/(http:\/\/|https:\/\/)cdn\.jsdelivr\.net/g,/(http:\/\/|https:\/\/)fastly\.jsdelivr\.net/g,/(http:\/\/|https:\/\/)gcore\.jsdelivr\.net/g,/(http:\/\/|https:\/\/)jsd\.ordchaos\.top/g,/(http:\/\/|https:\/\/)npm\.elemecdn\.com/g,/(http:\/\/|https:\/\/)cdn\.bootcss\.com/g,/(http:\/\/|https:\/\/)zhimg\.unpkg\.com/g,/(http:\/\/|https:\/\/)unpkg\.com/g,/(http:\/\/|https:\/\/)code\.bdstatic\.com/g,/(http:\/\/|https:\/\/)cdn1\.tianli0\.top/g,/(http:\/\/|https:\/\/)npm\.sourcegcdn\.com/g,/(http:\/\/|https:\/\/)cdn\.bootcdn\.net/g],handle=async function(t){const e=t.url,n=e.split("/")[2];let s=[];for(let r in cdn)for(let c in cdn[r])if(n==cdn[r][c].url.split("https://")[1].split("/")[0]&&e.match(cdn[r][c].url)){s=[];for(let t in cdn[r])s.push(e.replace(cdn[r][c].url,cdn[r][t].url));return e.indexOf("@latest/")>-1?lfetch(s,e):caches.match(t).then(function(n){return n||lfetch(s,e).then(function(e){return caches.open(CACHE_NAME).then(function(n){return n.put(t,e.clone()),e})})})}for(var r in cache_url_list){if(is_latest(t.url))return fetch(t);if(t.url.match(cache_url_list[r]))return caches.match(t).then(function(e){return e||fetch(t).then(function(e){return caches.open(CACHE_NAME).then(function(n){return n.put(t,e.clone()),e})})})}return fetch(t)},lfetch=async(t,e)=>{let n=new AbortController;const s=async t=>new Response(await t.arrayBuffer(),{status:t.status,headers:t.headers});return Promise.any||(Promise.any=function(t){return new Promise((e,n)=>{let s=(t=Array.isArray(t)?t:[]).length,r=[];if(0===s)return n(new AggregateError("All promises were rejected"));t.forEach(t=>{t.then(t=>{e(t)},t=>{s--,r.push(t),0===s&&n(new AggregateError(r))})})})}),Promise.any(t.map(t=>new Promise((e,r)=>{fetch(t,{signal:n.signal}).then(s).then(t=>{200==t.status?(n.abort(),e(t)):r(t)})})))}; \ No newline at end of file diff --git a/sw.origin.js b/sw.origin.js new file mode 100644 index 000000000..449dc7ccf --- /dev/null +++ b/sw.origin.js @@ -0,0 +1,244 @@ +const CACHE_NAME = 'OCXQCache'; +let cachelist = [ + 'https://img.ordchaos.com/img/2023/01/557e41f1eba9dab1399774a8ef7e679a.jpg', + 'https://img.ordchaos.com/img/2023/01/557e41f1eba9dab1399774a8ef7e679a.webp', + '/img/loading.gif', + '/css/navbar.css', + '/css/custom.css', + '/css/fcircle-ext.css', + '/css/notice.css', + '/js/jump.js', + '/js/tw_cn_tran.js', + '/js/rand.js', + '/js/lately.min.js', + '/js/duration.js', + '/js/jquery.min.js', + '/js/moment.min.js', + '/js/aisummary.js', + '/owo.json' +]; +self.addEventListener('install', async function (installEvent) { + self.skipWaiting(); + installEvent.waitUntil( + caches.open(CACHE_NAME) + .then(function (cache) { + console.log('[SW] Opened cache.'); + return cache.addAll(cachelist); + }) + ); +}); +self.addEventListener('fetch', async event => { + var requestUrl = event.request.url; + if(event.request.url.indexOf('hm.baidu.com') !== -1) { + return; + } + + if(event.request.url.indexOf('img.ordchaos.com') !== -1) { + var supportsWebp = false; + if (event.request.headers.has('accept')){ + supportsWebp = event.request.headers + .get('accept') + .includes('webp'); + } + if (supportsWebp) { + var imageUrl = requestUrl.split("."); + if(imageUrl[imageUrl.length - 1] === 'jpg' || imageUrl[imageUrl.length - 1] === 'tif' || imageUrl[imageUrl.length - 1] === 'png' || imageUrl[imageUrl.length - 1] === 'jpeg'){ + var newUrl = requestUrl.replace(imageUrl[imageUrl.length - 1], 'webp'); + var newRequest = new Request(newUrl); + event.respondWith(fetch(newRequest)); + console.log("[SW] Redirect " + requestUrl + " to " + newUrl + " ."); + event.waitUntil( + fetch(newRequest).then(function(response) { + if (!response.ok) throw new Error("[SW] Failed to load image: " + newUrl); + caches.open(CACHE_NAME).then(function(cache) { + cache.put(newRequest, response); + }); + }).catch(function(error) { + console.log(error); + }) + ); + event.stopImmediatePropagation(); + return; + } + } + else { + console.log("[SW] Don't support webp image, skip " + requestUrl + " ."); + } + } + + try { + event.respondWith(handle(event.request)) + } catch (msg) { + event.respondWith(handleerr(event.request, msg)) + } +}); +const handleerr = async (req, msg) => { + return new Response(`

CDN分流器遇到了致命错误

+ ${msg}`, { headers: { "content-type": "text/html; charset=utf-8" } }) +} +let cdn = {//镜像列表 + "gh": { + jsdelivr: { + "url": "https://cdn.jsdelivr.net/gh" + }, + jsdelivr_fastly: { + "url": "https://fastly.jsdelivr.net/gh" + }, + jsdelivr_gcore: { + "url": "https://gcore.jsdelivr.net/gh" + }, + jsdelivr_ocxq: { + "url": "https://jsd.ordchaos.top/gh" + } + }, + "combine": { + jsdelivr: { + "url": "https://cdn.jsdelivr.net/combine" + }, + jsdelivr_fastly: { + "url": "https://fastly.jsdelivr.net/combine" + }, + jsdelivr_gcore: { + "url": "https://gcore.jsdelivr.net/combine" + }, + jsdelivr_ocxq: { + "url": "https://jsd.ordchaos.top/combine" + } + }, + "npm": { + eleme: { + "url": "https://npm.elemecdn.com" + }, + jsdelivr: { + "url": "https://cdn.jsdelivr.net/npm" + }, + zhimg: { + "url": "https://unpkg.zhimg.com" + }, + unpkg: { + "url": "https://unpkg.com" + }, + bdstatic: { + "url": "https://code.bdstatic.com/npm" + }, + tianli: { + "url": "https://cdn1.tianli0.top/npm" + }, + sourcegcdn: { + "url": "https://npm.sourcegcdn.com/npm" + }, + jsdelivr_ocxq: { + "url": "https://jsd.ordchaos.top/npm" + } + + } +} + +const is_latest = (url) => { + return url.replace('https://', '').split('/')[1].split('@')[1] === 'latest'; +} + +const cache_url_list = [ + /(http:\/\/|https:\/\/)cdn\.jsdelivr\.net/g, + /(http:\/\/|https:\/\/)fastly\.jsdelivr\.net/g, + /(http:\/\/|https:\/\/)gcore\.jsdelivr\.net/g, + /(http:\/\/|https:\/\/)jsd\.ordchaos\.top/g, + /(http:\/\/|https:\/\/)npm\.elemecdn\.com/g, + /(http:\/\/|https:\/\/)cdn\.bootcss\.com/g, + /(http:\/\/|https:\/\/)zhimg\.unpkg\.com/g, + /(http:\/\/|https:\/\/)unpkg\.com/g, + /(http:\/\/|https:\/\/)code\.bdstatic\.com/g, + /(http:\/\/|https:\/\/)cdn1\.tianli0\.top/g, + /(http:\/\/|https:\/\/)npm\.sourcegcdn\.com/g, + /(http:\/\/|https:\/\/)cdn\.bootcdn\.net/g +]; + +//主控函数 +const handle = async function (req) { + const urlStr = req.url + const domain = (urlStr.split('/'))[2] + + let urls = [] + for (let i in cdn) { + for (let j in cdn[i]) { + if (domain == cdn[i][j].url.split('https://')[1].split('/')[0] && urlStr.match(cdn[i][j].url)) { + urls = [] + for (let k in cdn[i]) { + urls.push(urlStr.replace(cdn[i][j].url, cdn[i][k].url)) + } + if (urlStr.indexOf('@latest/') > -1) { + return lfetch(urls, urlStr) + } else { + return caches.match(req).then(function (resp) { + return resp || lfetch(urls, urlStr).then(function (res) { + return caches.open(CACHE_NAME).then(function (cache) { + cache.put(req, res.clone()); + return res; + }); + }); + }) + } + } + } + } + + for (var i in cache_url_list) { + if (is_latest(req.url)) { return fetch(req) } + if (req.url.match(cache_url_list[i])) { + return caches.match(req).then(function (resp) { + return resp || fetch(req).then(function (res) { + return caches.open(CACHE_NAME).then(function (cache) { + cache.put(req, res.clone()); + return res; + }); + }); + }) + } + } + + return fetch(req); +} + +const lfetch = async (urls, url) => { + let controller = new AbortController(); + const PauseProgress = async (res) => { + return new Response(await (res).arrayBuffer(), { status: res.status, headers: res.headers }); + }; + if (!Promise.any) { + Promise.any = function (promises) { + return new Promise((resolve, reject) => { + promises = Array.isArray(promises) ? promises : [] + let len = promises.length + let errs = [] + if (len === 0) return reject(new AggregateError('All promises were rejected')) + promises.forEach((promise) => { + promise.then(value => { + resolve(value) + }, err => { + len-- + errs.push(err) + if (len === 0) { + reject(new AggregateError(errs)) + } + }) + }) + }) + } + } + return Promise.any(urls.map(urls => { + return new Promise((resolve, reject) => { + fetch(urls, { + signal: controller.signal + }) + .then(PauseProgress) + .then(res => { + if (res.status == 200) { + controller.abort(); + resolve(res) + } else { + reject(res) + } + }) + }) + })) +} \ No newline at end of file diff --git a/tags/AI/index.html b/tags/AI/index.html new file mode 100644 index 000000000..b12569e2a --- /dev/null +++ b/tags/AI/index.html @@ -0,0 +1,3 @@ +标签 - AI - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/English/index.html b/tags/English/index.html new file mode 100644 index 000000000..3717a64ba --- /dev/null +++ b/tags/English/index.html @@ -0,0 +1,3 @@ +标签 - English - 序炁的博客 + +

共计 2 篇文章


2022

About Choir

2021

About Food
\ No newline at end of file diff --git a/tags/GitHub-Action/index.html b/tags/GitHub-Action/index.html new file mode 100644 index 000000000..98ea7ce44 --- /dev/null +++ b/tags/GitHub-Action/index.html @@ -0,0 +1,3 @@ +标签 - GitHub Action - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/GitHub/index.html b/tags/GitHub/index.html new file mode 100644 index 000000000..079dda1cc --- /dev/null +++ b/tags/GitHub/index.html @@ -0,0 +1,3 @@ +标签 - GitHub - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/Hexo/index.html b/tags/Hexo/index.html new file mode 100644 index 000000000..7a9ec7d36 --- /dev/null +++ b/tags/Hexo/index.html @@ -0,0 +1,3 @@ +标签 - Hexo - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/Picgo/index.html b/tags/Picgo/index.html new file mode 100644 index 000000000..2f7053940 --- /dev/null +++ b/tags/Picgo/index.html @@ -0,0 +1,3 @@ +标签 - Picgo - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/U\347\233\230/index.html" "b/tags/U\347\233\230/index.html" new file mode 100644 index 000000000..dd104b954 --- /dev/null +++ "b/tags/U\347\233\230/index.html" @@ -0,0 +1,3 @@ +标签 - U盘 - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/adb/index.html b/tags/adb/index.html new file mode 100644 index 000000000..e233c15f2 --- /dev/null +++ b/tags/adb/index.html @@ -0,0 +1,3 @@ +标签 - adb - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/awtrix/index.html b/tags/awtrix/index.html new file mode 100644 index 000000000..c49072a54 --- /dev/null +++ b/tags/awtrix/index.html @@ -0,0 +1,3 @@ +标签 - awtrix - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/c/index.html b/tags/c/index.html new file mode 100644 index 000000000..736acc08d --- /dev/null +++ b/tags/c/index.html @@ -0,0 +1,3 @@ +标签 - c++ - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/css/index.html b/tags/css/index.html new file mode 100644 index 000000000..67e2e618e --- /dev/null +++ b/tags/css/index.html @@ -0,0 +1,3 @@ +标签 - css - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/github/index.html b/tags/github/index.html new file mode 100644 index 000000000..fe9a97d75 --- /dev/null +++ b/tags/github/index.html @@ -0,0 +1,3 @@ +标签 - github - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/html/index.html b/tags/html/index.html new file mode 100644 index 000000000..6a6491108 --- /dev/null +++ b/tags/html/index.html @@ -0,0 +1,3 @@ +标签 - html - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 000000000..3fa776183 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,3 @@ +标签 - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/javascript/index.html b/tags/javascript/index.html new file mode 100644 index 000000000..a3c86beb0 --- /dev/null +++ b/tags/javascript/index.html @@ -0,0 +1,3 @@ +标签 - javascript - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/memos/index.html b/tags/memos/index.html new file mode 100644 index 000000000..be17900cd --- /dev/null +++ b/tags/memos/index.html @@ -0,0 +1,3 @@ +标签 - memos - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/phigros/index.html b/tags/phigros/index.html new file mode 100644 index 000000000..e6703ed5a --- /dev/null +++ b/tags/phigros/index.html @@ -0,0 +1,3 @@ +标签 - phigros - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/s3\346\241\266/index.html" "b/tags/s3\346\241\266/index.html" new file mode 100644 index 000000000..9e8631839 --- /dev/null +++ "b/tags/s3\346\241\266/index.html" @@ -0,0 +1,3 @@ +标签 - s3桶 - 序炁的博客 + +
\ No newline at end of file diff --git a/tags/sai/index.html b/tags/sai/index.html new file mode 100644 index 000000000..ebacfc160 --- /dev/null +++ b/tags/sai/index.html @@ -0,0 +1,3 @@ +标签 - sai - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git a/tags/vps/index.html b/tags/vps/index.html new file mode 100644 index 000000000..e97075372 --- /dev/null +++ b/tags/vps/index.html @@ -0,0 +1,3 @@ +标签 - vps - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\344\270\252\344\272\272/index.html" "b/tags/\344\270\252\344\272\272/index.html" new file mode 100644 index 000000000..097956048 --- /dev/null +++ "b/tags/\344\270\252\344\272\272/index.html" @@ -0,0 +1,3 @@ +标签 - 个人 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\344\274\230\345\214\226/index.html" "b/tags/\344\274\230\345\214\226/index.html" new file mode 100644 index 000000000..b4d848597 --- /dev/null +++ "b/tags/\344\274\230\345\214\226/index.html" @@ -0,0 +1,3 @@ +标签 - 优化 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\344\275\234\346\226\207/index.html" "b/tags/\344\275\234\346\226\207/index.html" new file mode 100644 index 000000000..be01e636b --- /dev/null +++ "b/tags/\344\275\234\346\226\207/index.html" @@ -0,0 +1,3 @@ +标签 - 作文 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\211\215\347\253\257/index.html" "b/tags/\345\211\215\347\253\257/index.html" new file mode 100644 index 000000000..0b340e809 --- /dev/null +++ "b/tags/\345\211\215\347\253\257/index.html" @@ -0,0 +1,3 @@ +标签 - 前端 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\214\226\345\255\246/index.html" "b/tags/\345\214\226\345\255\246/index.html" new file mode 100644 index 000000000..4e1dcc5c1 --- /dev/null +++ "b/tags/\345\214\226\345\255\246/index.html" @@ -0,0 +1,3 @@ +标签 - 化学 - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git "a/tags/\345\220\210\345\224\261/index.html" "b/tags/\345\220\210\345\224\261/index.html" new file mode 100644 index 000000000..2ef80ec1b --- /dev/null +++ "b/tags/\345\220\210\345\224\261/index.html" @@ -0,0 +1,3 @@ +标签 - 合唱 - 序炁的博客 + +

共计 1 篇文章


2022

About Choir
\ No newline at end of file diff --git "a/tags/\345\221\250\350\276\271/index.html" "b/tags/\345\221\250\350\276\271/index.html" new file mode 100644 index 000000000..05d21029f --- /dev/null +++ "b/tags/\345\221\250\350\276\271/index.html" @@ -0,0 +1,3 @@ +标签 - 周边 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\244\215\347\216\260/index.html" "b/tags/\345\244\215\347\216\260/index.html" new file mode 100644 index 000000000..4508da469 --- /dev/null +++ "b/tags/\345\244\215\347\216\260/index.html" @@ -0,0 +1,3 @@ +标签 - 复现 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\255\246\344\271\240/index.html" "b/tags/\345\255\246\344\271\240/index.html" new file mode 100644 index 000000000..3cbb8ab59 --- /dev/null +++ "b/tags/\345\255\246\344\271\240/index.html" @@ -0,0 +1,3 @@ +标签 - 学习 - 序炁的博客 + +

共计 1 篇文章


2023

迟来的二月调考总结
\ No newline at end of file diff --git "a/tags/\345\255\246\347\224\237/index.html" "b/tags/\345\255\246\347\224\237/index.html" new file mode 100644 index 000000000..a359f6cdf --- /dev/null +++ "b/tags/\345\255\246\347\224\237/index.html" @@ -0,0 +1,3 @@ +标签 - 学生 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\256\211\345\215\223/index.html" "b/tags/\345\256\211\345\215\223/index.html" new file mode 100644 index 000000000..4a357c13f --- /dev/null +++ "b/tags/\345\256\211\345\215\223/index.html" @@ -0,0 +1,3 @@ +标签 - 安卓 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\274\200\346\272\220\350\275\257\344\273\266/index.html" "b/tags/\345\274\200\346\272\220\350\275\257\344\273\266/index.html" new file mode 100644 index 000000000..03e1b15e9 --- /dev/null +++ "b/tags/\345\274\200\346\272\220\350\275\257\344\273\266/index.html" @@ -0,0 +1,3 @@ +标签 - 开源软件 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\345\274\200\347\256\261/index.html" "b/tags/\345\274\200\347\256\261/index.html" new file mode 100644 index 000000000..15db91afa --- /dev/null +++ "b/tags/\345\274\200\347\256\261/index.html" @@ -0,0 +1,3 @@ +标签 - 开箱 - 序炁的博客 + +
\ 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 000000000..c4fa0164c --- /dev/null +++ "b/tags/\346\200\273\347\273\223/index.html" @@ -0,0 +1,3 @@ +标签 - 总结 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\346\211\213\346\234\272/index.html" "b/tags/\346\211\213\346\234\272/index.html" new file mode 100644 index 000000000..44c8e5f76 --- /dev/null +++ "b/tags/\346\211\213\346\234\272/index.html" @@ -0,0 +1,3 @@ +标签 - 手机 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\346\211\213\347\273\230/index.html" "b/tags/\346\211\213\347\273\230/index.html" new file mode 100644 index 000000000..4d95acdf2 --- /dev/null +++ "b/tags/\346\211\213\347\273\230/index.html" @@ -0,0 +1,3 @@ +标签 - 手绘 - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git "a/tags/\346\225\231\347\250\213/index.html" "b/tags/\346\225\231\347\250\213/index.html" new file mode 100644 index 000000000..d6da64c9a --- /dev/null +++ "b/tags/\346\225\231\347\250\213/index.html" @@ -0,0 +1,3 @@ +标签 - 教程 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\346\225\260\345\255\246/index.html" "b/tags/\346\225\260\345\255\246/index.html" new file mode 100644 index 000000000..9e3b3e83a --- /dev/null +++ "b/tags/\346\225\260\345\255\246/index.html" @@ -0,0 +1,3 @@ +标签 - 数学 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\346\226\207\345\255\246/index.html" "b/tags/\346\226\207\345\255\246/index.html" new file mode 100644 index 000000000..64fd688be --- /dev/null +++ "b/tags/\346\226\207\345\255\246/index.html" @@ -0,0 +1,3 @@ +标签 - 文学 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\346\227\205\350\241\214/index.html" "b/tags/\346\227\205\350\241\214/index.html" new file mode 100644 index 000000000..d586d22ec --- /dev/null +++ "b/tags/\346\227\205\350\241\214/index.html" @@ -0,0 +1,3 @@ +标签 - 旅行 - 序炁的博客 + +

共计 1 篇文章


2023

哇!是毕业旅行!
\ No newline at end of file diff --git "a/tags/\346\227\245\345\270\270/index.html" "b/tags/\346\227\245\345\270\270/index.html" new file mode 100644 index 000000000..d8f5c7403 --- /dev/null +++ "b/tags/\346\227\245\345\270\270/index.html" @@ -0,0 +1,3 @@ +标签 - 日常 - 序炁的博客 + +

共计 1 篇文章


2023

哇!是毕业旅行!
\ No newline at end of file diff --git "a/tags/\346\274\224\350\256\262\347\250\277/index.html" "b/tags/\346\274\224\350\256\262\347\250\277/index.html" new file mode 100644 index 000000000..917a4d53a --- /dev/null +++ "b/tags/\346\274\224\350\256\262\347\250\277/index.html" @@ -0,0 +1,3 @@ +标签 - 演讲稿 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\211\272\347\211\262/index.html" "b/tags/\347\211\272\347\211\262/index.html" new file mode 100644 index 000000000..4a347e8e7 --- /dev/null +++ "b/tags/\347\211\272\347\211\262/index.html" @@ -0,0 +1,3 @@ +标签 - 牺牲 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\224\237\346\227\245/index.html" "b/tags/\347\224\237\346\227\245/index.html" new file mode 100644 index 000000000..0e8f910a4 --- /dev/null +++ "b/tags/\347\224\237\346\227\245/index.html" @@ -0,0 +1,3 @@ +标签 - 生日 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\224\265\345\255\220\351\202\256\344\273\266/index.html" "b/tags/\347\224\265\345\255\220\351\202\256\344\273\266/index.html" new file mode 100644 index 000000000..b9d452a98 --- /dev/null +++ "b/tags/\347\224\265\345\255\220\351\202\256\344\273\266/index.html" @@ -0,0 +1,3 @@ +标签 - 电子邮件 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\224\265\345\275\261/index.html" "b/tags/\347\224\265\345\275\261/index.html" new file mode 100644 index 000000000..c377b0401 --- /dev/null +++ "b/tags/\347\224\265\345\275\261/index.html" @@ -0,0 +1,3 @@ +标签 - 电影 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\224\273\347\224\273/index.html" "b/tags/\347\224\273\347\224\273/index.html" new file mode 100644 index 000000000..4f1369382 --- /dev/null +++ "b/tags/\347\224\273\347\224\273/index.html" @@ -0,0 +1,3 @@ +标签 - 画画 - 序炁的博客 + +

共计 1 篇文章


2022

空气成分手抄报
\ No newline at end of file diff --git "a/tags/\347\231\275\345\253\226/index.html" "b/tags/\347\231\275\345\253\226/index.html" new file mode 100644 index 000000000..4bce367f8 --- /dev/null +++ "b/tags/\347\231\275\345\253\226/index.html" @@ -0,0 +1,3 @@ +标签 - 白嫖 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\237\255\346\226\207/index.html" "b/tags/\347\237\255\346\226\207/index.html" new file mode 100644 index 000000000..c935798b1 --- /dev/null +++ "b/tags/\347\237\255\346\226\207/index.html" @@ -0,0 +1,3 @@ +标签 - 短文 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\241\254\344\273\266/index.html" "b/tags/\347\241\254\344\273\266/index.html" new file mode 100644 index 000000000..656df94b2 --- /dev/null +++ "b/tags/\347\241\254\344\273\266/index.html" @@ -0,0 +1,3 @@ +标签 - 硬件 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\246\217\345\210\251/index.html" "b/tags/\347\246\217\345\210\251/index.html" new file mode 100644 index 000000000..03e877720 --- /dev/null +++ "b/tags/\347\246\217\345\210\251/index.html" @@ -0,0 +1,3 @@ +标签 - 福利 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\247\221\346\212\200/index.html" "b/tags/\347\247\221\346\212\200/index.html" new file mode 100644 index 000000000..6eead3235 --- /dev/null +++ "b/tags/\347\247\221\346\212\200/index.html" @@ -0,0 +1,3 @@ +标签 - 科技 - 序炁的博客 + +
\ 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 000000000..fae7ee9c2 --- /dev/null +++ "b/tags/\347\256\227\346\263\225/index.html" @@ -0,0 +1,3 @@ +标签 - 算法 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\264\240\346\235\220/index.html" "b/tags/\347\264\240\346\235\220/index.html" new file mode 100644 index 000000000..d4eeaeea7 --- /dev/null +++ "b/tags/\347\264\240\346\235\220/index.html" @@ -0,0 +1,3 @@ +标签 - 素材 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\272\257\350\213\261\346\226\207/index.html" "b/tags/\347\272\257\350\213\261\346\226\207/index.html" new file mode 100644 index 000000000..5a27245b4 --- /dev/null +++ "b/tags/\347\272\257\350\213\261\346\226\207/index.html" @@ -0,0 +1,3 @@ +标签 - 纯英文 - 序炁的博客 + +

共计 2 篇文章


2022

About Choir

2021

About Food
\ No newline at end of file diff --git "a/tags/\347\274\226\347\250\213/index.html" "b/tags/\347\274\226\347\250\213/index.html" new file mode 100644 index 000000000..68b584b0e --- /dev/null +++ "b/tags/\347\274\226\347\250\213/index.html" @@ -0,0 +1,3 @@ +标签 - 编程 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\274\226\347\250\213/page/2/index.html" "b/tags/\347\274\226\347\250\213/page/2/index.html" new file mode 100644 index 000000000..fbfc1d99c --- /dev/null +++ "b/tags/\347\274\226\347\250\213/page/2/index.html" @@ -0,0 +1,3 @@ +标签 - 编程 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\347\275\221\347\253\231/index.html" "b/tags/\347\275\221\347\253\231/index.html" new file mode 100644 index 000000000..94e66ac54 --- /dev/null +++ "b/tags/\347\275\221\347\253\231/index.html" @@ -0,0 +1,3 @@ +标签 - 网站 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\200\203\350\257\225/index.html" "b/tags/\350\200\203\350\257\225/index.html" new file mode 100644 index 000000000..bbce81f90 --- /dev/null +++ "b/tags/\350\200\203\350\257\225/index.html" @@ -0,0 +1,3 @@ +标签 - 考试 - 序炁的博客 + +

共计 1 篇文章


2023

迟来的二月调考总结
\ No newline at end of file diff --git "a/tags/\350\207\252\345\212\250\345\214\226/index.html" "b/tags/\350\207\252\345\212\250\345\214\226/index.html" new file mode 100644 index 000000000..382779a57 --- /dev/null +++ "b/tags/\350\207\252\345\212\250\345\214\226/index.html" @@ -0,0 +1,3 @@ +标签 - 自动化 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\231\232\346\213\237\344\270\273\346\234\272/index.html" "b/tags/\350\231\232\346\213\237\344\270\273\346\234\272/index.html" new file mode 100644 index 000000000..7b620c162 --- /dev/null +++ "b/tags/\350\231\232\346\213\237\344\270\273\346\234\272/index.html" @@ -0,0 +1,3 @@ +标签 - 虚拟主机 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\256\241\347\256\227\346\234\272/index.html" "b/tags/\350\256\241\347\256\227\346\234\272/index.html" new file mode 100644 index 000000000..38c2af6d4 --- /dev/null +++ "b/tags/\350\256\241\347\256\227\346\234\272/index.html" @@ -0,0 +1,3 @@ +标签 - 计算机 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\256\241\347\256\227\346\234\272/page/2/index.html" "b/tags/\350\256\241\347\256\227\346\234\272/page/2/index.html" new file mode 100644 index 000000000..a0af156a4 --- /dev/null +++ "b/tags/\350\256\241\347\256\227\346\234\272/page/2/index.html" @@ -0,0 +1,3 @@ +标签 - 计算机 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\256\256\350\256\272\346\226\207/index.html" "b/tags/\350\256\256\350\256\272\346\226\207/index.html" new file mode 100644 index 000000000..27e6f59e4 --- /dev/null +++ "b/tags/\350\256\256\350\256\272\346\226\207/index.html" @@ -0,0 +1,3 @@ +标签 - 议论文 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\257\264\350\257\264/index.html" "b/tags/\350\257\264\350\257\264/index.html" new file mode 100644 index 000000000..bbff0386e --- /dev/null +++ "b/tags/\350\257\264\350\257\264/index.html" @@ -0,0 +1,3 @@ +标签 - 说说 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\257\273\345\220\216\346\204\237/index.html" "b/tags/\350\257\273\345\220\216\346\204\237/index.html" new file mode 100644 index 000000000..4d98b8fdc --- /dev/null +++ "b/tags/\350\257\273\345\220\216\346\204\237/index.html" @@ -0,0 +1,3 @@ +标签 - 读后感 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\350\276\251\350\256\272/index.html" "b/tags/\350\276\251\350\256\272/index.html" new file mode 100644 index 000000000..5626ab850 --- /dev/null +++ "b/tags/\350\276\251\350\256\272/index.html" @@ -0,0 +1,3 @@ +标签 - 辩论 - 序炁的博客 + +
\ No newline at end of file diff --git "a/tags/\351\237\263\344\271\220/index.html" "b/tags/\351\237\263\344\271\220/index.html" new file mode 100644 index 000000000..0fdc9b34f --- /dev/null +++ "b/tags/\351\237\263\344\271\220/index.html" @@ -0,0 +1,3 @@ +标签 - 音乐 - 序炁的博客 + +

共计 1 篇文章


2022

About Choir
\ No newline at end of file diff --git "a/tags/\351\270\277\350\222\231/index.html" "b/tags/\351\270\277\350\222\231/index.html" new file mode 100644 index 000000000..765655e7b --- /dev/null +++ "b/tags/\351\270\277\350\222\231/index.html" @@ -0,0 +1,3 @@ +标签 - 鸿蒙 - 序炁的博客 + +
\ No newline at end of file diff --git a/talk/index.html b/talk/index.html new file mode 100644 index 000000000..00c245be7 --- /dev/null +++ b/talk/index.html @@ -0,0 +1,3 @@ +说说 - 序炁的博客 + +
共计 「数待载之」 条说说

\ No newline at end of file diff --git a/xml/local-search.xml b/xml/local-search.xml new file mode 100644 index 000000000..d7d0c01cf --- /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 %} +