From 75bb0ba40a6de8006bf98212138c72eb383e6782 Mon Sep 17 00:00:00 2001 From: gengteng Date: Thu, 2 Jan 2025 05:12:10 +0000 Subject: [PATCH] Site updated: 2025-01-02 05:12:10 --- .../30/zero-cost-async-io/CombinatorChain.jpg | Bin 0 -> 54005 bytes .../30/zero-cost-async-io/DanglingPointer.jpg | Bin 0 -> 61416 bytes .../30/zero-cost-async-io/PollWakeCycle.jpg | Bin 0 -> 60275 bytes .../30/zero-cost-async-io/PollWakeCycle1.jpg | Bin 0 -> 52642 bytes .../30/zero-cost-async-io/PollWakeCycle2.jpg | Bin 0 -> 43584 bytes .../30/zero-cost-async-io/PollWakeCycle3.jpg | Bin 0 -> 52509 bytes .../30/zero-cost-async-io/PollWakeCycle4.jpg | Bin 0 -> 51174 bytes 2021/01/30/zero-cost-async-io/QuiteFast.jpg | Bin 0 -> 32621 bytes .../SelfReferentialFuture.jpg | Bin 0 -> 28246 bytes .../30/zero-cost-async-io/StateMachines.jpg | Bin 0 -> 88657 bytes 2021/01/30/zero-cost-async-io/index.html | 567 ++++ 2021/08/24/design-pattern-1/index.html | 449 +++ 2021/08/24/design-pattern-2/index.html | 487 ++++ .../08/24/design-pattern-principle/index.html | 458 +++ 2021/08/24/how-many-threads/index.html | 511 ++++ 2021/08/28/search-local-minimum/index.html | 525 ++++ 2021/08/29/exclusive-or/index.html | 510 ++++ .../06/linked-list-build-reverse/index.html | 452 +++ .../index.html | 532 ++++ 2021/09/06/stack-and-queue/index.html | 474 +++ 2021/09/11/merge-sort/index.html | 810 ++++++ 2021/09/13/quick-sort/index.html | 668 +++++ 2021/09/14/design-pattern-3/index.html | 462 +++ .../sorting-algorithm-in-rust-std/index.html | 451 +++ 2021/09/23/redis-basics/index.html | 721 +++++ 2021/09/26/redis-practices/index.html | 501 ++++ 2021/10/08/heap-sort/index.html | 518 ++++ .../index.html | 498 ++++ .../05/relation-algebra-division/index.html | 768 +++++ 2024/04/26/zkp-note-0/index.html | 463 +++ 2024/05/25/zkp-note-1/index.html | 561 ++++ 2024/05/30/zkp-note-2/commit-and-prove.jpg | Bin 0 -> 409881 bytes 2024/05/30/zkp-note-2/index.html | 536 ++++ 2024/11/07/learn-index-0/index.html | 528 ++++ 2024/12/06/learn-solana-0/index.html | 506 ++++ 2024/12/23/learn-solana-1/index.html | 464 +++ 2024/12/23/learn-solana-2/PoHSequence0.png | Bin 0 -> 29173 bytes 2024/12/23/learn-solana-2/PoHSequence1.png | Bin 0 -> 31078 bytes 2024/12/23/learn-solana-2/PoHSequence2.png | Bin 0 -> 203161 bytes 2024/12/23/learn-solana-2/PoHSequence3.png | Bin 0 -> 170766 bytes 2024/12/23/learn-solana-2/PoHSequence4.png | Bin 0 -> 130478 bytes .../TransactionFlowThroughoutTheNetwork.png | Bin 0 -> 223118 bytes 2024/12/23/learn-solana-2/index.html | 528 ++++ 2024/12/24/learn-solana-3/index.html | 512 ++++ 2024/12/26/dex-dev-0/index.html | 573 ++++ CNAME | 1 + archives/2021/01/index.html | 388 +++ archives/2021/08/index.html | 488 ++++ archives/2021/09/index.html | 548 ++++ archives/2021/10/index.html | 388 +++ archives/2021/index.html | 571 ++++ archives/2021/page/2/index.html | 511 ++++ archives/2022/08/index.html | 388 +++ archives/2022/index.html | 388 +++ archives/2023/03/index.html | 388 +++ archives/2023/index.html | 388 +++ archives/2024/04/index.html | 388 +++ archives/2024/05/index.html | 408 +++ archives/2024/11/index.html | 388 +++ archives/2024/12/index.html | 468 +++ archives/2024/index.html | 548 ++++ archives/index.html | 574 ++++ archives/page/2/index.html | 574 ++++ archives/page/3/index.html | 531 ++++ css/main.css | 2585 +++++++++++++++++ images/algolia_logo.svg | 9 + images/apple-touch-icon-next.png | Bin 0 -> 1544 bytes images/avatar.gif | Bin 0 -> 1793 bytes images/cc-by-nc-nd.svg | 121 + images/cc-by-nc-sa.svg | 121 + images/cc-by-nc.svg | 121 + images/cc-by-nd.svg | 117 + images/cc-by-sa.svg | 121 + images/cc-by.svg | 121 + images/cc-zero.svg | 72 + images/favicon-16x16-next.png | Bin 0 -> 435 bytes images/favicon-32x32-next.png | Bin 0 -> 640 bytes images/logo.svg | 23 + index.html | 1777 +++++++++++ js/algolia-search.js | 124 + js/bookmark.js | 56 + js/local-search.js | 278 ++ js/motion.js | 177 ++ js/next-boot.js | 114 + js/schemes/muse.js | 113 + js/schemes/pisces.js | 86 + js/utils.js | 415 +++ lib/anime.min.js | 8 + lib/font-awesome/css/all.min.css | 5 + lib/font-awesome/webfonts/fa-brands-400.woff2 | Bin 0 -> 76612 bytes .../webfonts/fa-regular-400.woff2 | Bin 0 -> 13584 bytes lib/font-awesome/webfonts/fa-solid-900.woff2 | Bin 0 -> 79444 bytes lib/velocity/velocity.min.js | 4 + lib/velocity/velocity.ui.min.js | 2 + page/2/index.html | 1516 ++++++++++ page/3/index.html | 1181 ++++++++ placeholder | 0 sitemap.xml | 512 ++++ tags/Design-Pattern/index.html | 449 +++ tags/PDA/index.html | 389 +++ tags/PoH/index.html | 409 +++ tags/PoS/index.html | 409 +++ tags/Redis/index.html | 409 +++ tags/Rust/index.html | 409 +++ tags/Web3/index.html | 409 +++ tags/Zero-Knowledge-Proof/index.html | 409 +++ tags/algorithm/index.html | 572 ++++ tags/amm/index.html | 389 +++ tags/anchor/index.html | 389 +++ tags/asynchronous/index.html | 389 +++ tags/binary-search/index.html | 389 +++ tags/blocking/index.html | 389 +++ tags/data-structure/index.html | 389 +++ tags/database/index.html | 389 +++ tags/dex/index.html | 389 +++ tags/formula/index.html | 409 +++ tags/heap/index.html | 389 +++ tags/index.html | 389 +++ tags/index/index.html | 389 +++ tags/linked-list/index.html | 389 +++ tags/nonblocking/index.html | 389 +++ tags/queue/index.html | 389 +++ tags/recursive/index.html | 389 +++ tags/relation-algebra/index.html | 389 +++ tags/ring-buffer/index.html | 389 +++ tags/solana/index.html | 469 +++ tags/sort/index.html | 449 +++ tags/stack/index.html | 389 +++ tags/synchronous/index.html | 389 +++ tags/web3/index.html | 469 +++ tags/white-paper/index.html | 409 +++ tags/xor/index.html | 389 +++ .../index.html" | 389 +++ .../index.html" | 389 +++ 134 files changed, 47765 insertions(+) create mode 100644 2021/01/30/zero-cost-async-io/CombinatorChain.jpg create mode 100644 2021/01/30/zero-cost-async-io/DanglingPointer.jpg create mode 100644 2021/01/30/zero-cost-async-io/PollWakeCycle.jpg create mode 100644 2021/01/30/zero-cost-async-io/PollWakeCycle1.jpg create mode 100644 2021/01/30/zero-cost-async-io/PollWakeCycle2.jpg create mode 100644 2021/01/30/zero-cost-async-io/PollWakeCycle3.jpg create mode 100644 2021/01/30/zero-cost-async-io/PollWakeCycle4.jpg create mode 100644 2021/01/30/zero-cost-async-io/QuiteFast.jpg create mode 100644 2021/01/30/zero-cost-async-io/SelfReferentialFuture.jpg create mode 100644 2021/01/30/zero-cost-async-io/StateMachines.jpg create mode 100644 2021/01/30/zero-cost-async-io/index.html create mode 100644 2021/08/24/design-pattern-1/index.html create mode 100644 2021/08/24/design-pattern-2/index.html create mode 100644 2021/08/24/design-pattern-principle/index.html create mode 100644 2021/08/24/how-many-threads/index.html create mode 100644 2021/08/28/search-local-minimum/index.html create mode 100644 2021/08/29/exclusive-or/index.html create mode 100644 2021/09/06/linked-list-build-reverse/index.html create mode 100644 2021/09/06/recursive-time-complexity-formula/index.html create mode 100644 2021/09/06/stack-and-queue/index.html create mode 100644 2021/09/11/merge-sort/index.html create mode 100644 2021/09/13/quick-sort/index.html create mode 100644 2021/09/14/design-pattern-3/index.html create mode 100644 2021/09/14/sorting-algorithm-in-rust-std/index.html create mode 100644 2021/09/23/redis-basics/index.html create mode 100644 2021/09/26/redis-practices/index.html create mode 100644 2021/10/08/heap-sort/index.html create mode 100644 2022/08/13/sync-async-blocking-nonblocking/index.html create mode 100644 2023/03/05/relation-algebra-division/index.html create mode 100644 2024/04/26/zkp-note-0/index.html create mode 100644 2024/05/25/zkp-note-1/index.html create mode 100644 2024/05/30/zkp-note-2/commit-and-prove.jpg create mode 100644 2024/05/30/zkp-note-2/index.html create mode 100644 2024/11/07/learn-index-0/index.html create mode 100644 2024/12/06/learn-solana-0/index.html create mode 100644 2024/12/23/learn-solana-1/index.html create mode 100644 2024/12/23/learn-solana-2/PoHSequence0.png create mode 100644 2024/12/23/learn-solana-2/PoHSequence1.png create mode 100644 2024/12/23/learn-solana-2/PoHSequence2.png create mode 100644 2024/12/23/learn-solana-2/PoHSequence3.png create mode 100644 2024/12/23/learn-solana-2/PoHSequence4.png create mode 100644 2024/12/23/learn-solana-2/TransactionFlowThroughoutTheNetwork.png create mode 100644 2024/12/23/learn-solana-2/index.html create mode 100644 2024/12/24/learn-solana-3/index.html create mode 100644 2024/12/26/dex-dev-0/index.html create mode 100644 CNAME create mode 100644 archives/2021/01/index.html create mode 100644 archives/2021/08/index.html create mode 100644 archives/2021/09/index.html create mode 100644 archives/2021/10/index.html create mode 100644 archives/2021/index.html create mode 100644 archives/2021/page/2/index.html create mode 100644 archives/2022/08/index.html create mode 100644 archives/2022/index.html create mode 100644 archives/2023/03/index.html create mode 100644 archives/2023/index.html create mode 100644 archives/2024/04/index.html create mode 100644 archives/2024/05/index.html create mode 100644 archives/2024/11/index.html create mode 100644 archives/2024/12/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 css/main.css create mode 100644 images/algolia_logo.svg create mode 100644 images/apple-touch-icon-next.png create mode 100644 images/avatar.gif create mode 100644 images/cc-by-nc-nd.svg create mode 100644 images/cc-by-nc-sa.svg create mode 100644 images/cc-by-nc.svg create mode 100644 images/cc-by-nd.svg create mode 100644 images/cc-by-sa.svg create mode 100644 images/cc-by.svg create mode 100644 images/cc-zero.svg create mode 100644 images/favicon-16x16-next.png create mode 100644 images/favicon-32x32-next.png create mode 100644 images/logo.svg create mode 100644 index.html create mode 100644 js/algolia-search.js create mode 100644 js/bookmark.js create mode 100644 js/local-search.js create mode 100644 js/motion.js create mode 100644 js/next-boot.js create mode 100644 js/schemes/muse.js create mode 100644 js/schemes/pisces.js create mode 100644 js/utils.js create mode 100644 lib/anime.min.js create mode 100644 lib/font-awesome/css/all.min.css create mode 100644 lib/font-awesome/webfonts/fa-brands-400.woff2 create mode 100644 lib/font-awesome/webfonts/fa-regular-400.woff2 create mode 100644 lib/font-awesome/webfonts/fa-solid-900.woff2 create mode 100644 lib/velocity/velocity.min.js create mode 100644 lib/velocity/velocity.ui.min.js create mode 100644 page/2/index.html create mode 100644 page/3/index.html delete mode 100644 placeholder create mode 100644 sitemap.xml create mode 100644 tags/Design-Pattern/index.html create mode 100644 tags/PDA/index.html create mode 100644 tags/PoH/index.html create mode 100644 tags/PoS/index.html create mode 100644 tags/Redis/index.html create mode 100644 tags/Rust/index.html create mode 100644 tags/Web3/index.html create mode 100644 tags/Zero-Knowledge-Proof/index.html create mode 100644 tags/algorithm/index.html create mode 100644 tags/amm/index.html create mode 100644 tags/anchor/index.html create mode 100644 tags/asynchronous/index.html create mode 100644 tags/binary-search/index.html create mode 100644 tags/blocking/index.html create mode 100644 tags/data-structure/index.html create mode 100644 tags/database/index.html create mode 100644 tags/dex/index.html create mode 100644 tags/formula/index.html create mode 100644 tags/heap/index.html create mode 100644 tags/index.html create mode 100644 tags/index/index.html create mode 100644 tags/linked-list/index.html create mode 100644 tags/nonblocking/index.html create mode 100644 tags/queue/index.html create mode 100644 tags/recursive/index.html create mode 100644 tags/relation-algebra/index.html create mode 100644 tags/ring-buffer/index.html create mode 100644 tags/solana/index.html create mode 100644 tags/sort/index.html create mode 100644 tags/stack/index.html create mode 100644 tags/synchronous/index.html create mode 100644 tags/web3/index.html create mode 100644 tags/white-paper/index.html create mode 100644 tags/xor/index.html create mode 100644 "tags/\345\244\232\347\272\277\347\250\213/index.html" create mode 100644 "tags/\351\253\230\345\271\266\345\217\221/index.html" diff --git a/2021/01/30/zero-cost-async-io/CombinatorChain.jpg b/2021/01/30/zero-cost-async-io/CombinatorChain.jpg new file mode 100644 index 0000000000000000000000000000000000000000..90d6624f35d266d5f9166d1e978f842e00cb31a7 GIT binary patch literal 54005 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 O+txvpYj=5mPy8Q2Bk$h; literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/PollWakeCycle.jpg b/2021/01/30/zero-cost-async-io/PollWakeCycle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6f6390c093989d6ed58db613c044ee07f17bedd4 GIT binary patch literal 60275 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%0ApXg6)?=oG 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 CYV3Xh literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/PollWakeCycle2.jpg b/2021/01/30/zero-cost-async-io/PollWakeCycle2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c039bb0820a3754b6d3d36cab346547a2edfa976 GIT binary patch literal 43584 zcmeFZ2UJtrwm%#@is(V4gM}(VKuUmwc9bS92q6g_r4tCfBX~qXI#LoKH0h9#Ac2Gq z#{x(f2rU#vdY29&@aNoj?|09A@4oMi|2OVe#y9TH7};yjHRqaZtug0bzdhI7`*`^H zE8rJx4J{48sZ*x_*pnaNcod)tIDhu+xwB`_pF4N%{Q2`2E?&8Kk%8gjH72G@S6HvH zv9Vseex04`HV-?;P0s7rd4+jz^6?7_3bOHt+`S_pdRstH;EzU5orqp!xX66*BC`O; zbq<05?c?}&05ijxt7idcPVoUwGoL!ceCqfkfCq32aO&JiZ~uOrKXvxp1%}gSPHJs` z0h~H>=G2+9mzXY|J;!k2;tBKVGiT2+pTBVJHjCta1BUCY?C>Yg6Uuw}q+|?X2oKN1 zq~!cQHffNYPY$`_J-@&MZ$VjWuXh~ss-c+N$?rn8_AmOstqZHEYZxJ4hJB!&XyH0h zfBMXyyYL@c&Y#rDGoRF*I(0I0=g$4Xb<)jKrw{^Kb@)?4`8XQbNu^vnv{6!anH?NLT1xNS8>h`~=0;rOx&C|m zW7^Om1u;skxza=AdRBK$nc>UbnCv8D%NnmLi~-Dtv$o;s!#HW?3s^I!Q!{DMkQ@BH zcYXt00~o*|zZXlg;+mjlsBuk;5Q?D@g&D!QI2F4v4OdsTN(t1nwbd$Fj!RV6D37$b zR?}Y3%q&;^Jj49@9g;fqQYv`Y0`0qNMokZS-RE}@Op5x#oj3*hnrDZCf?lIsT`DU?8E+K+78H5m~~}7fxUGlCKkWz-0*&%h~$ForPh%WarU2R zmZcQQ*9nA1hnx%ih{>>N{VvT!cZBCls2=Gq#uFA5%c7e$0o{KSGX5sqO5> zlZC(CS?xGXqp%tbg&9F@^L5J(Hy(|TaO!&Dj`pcUv7$=53S*?~S8QEk?t}98ae)r< z6MCyWvLmJ0llqaaFI8+Pt^%`9yGwni22FR5QoSOVx4Mc z5fVF0;uei9E-9G`3FJPTc66=(y?ewIC;A5O<9^UMHvL}i4kqOiN&e`4ipt00$Ib`h z#lQr!f=auc@7vI;#skICy~!vAWzTE#P(YYVg$2U7OO}3s!I8Q=V%ysm9KzNo16k|Z zFzOFfy=Xh40;S;#0aa$x3393Jc&r);S~+3VCe4wd&F9&E=Hk9rfwHuT@;Li9MN)m= z!&!=tQhY#1cvV$yN6N?au?HrfpEwNGS|;MPwPQ6MLJNgm+b&ZQD9e@wsJc6_jXCY7 z_T=DNiI3-9IP^O*Mb>d`JM&G<9xelHqMd6+R7)adQ&KLIS4>CH3q~}+SDz93*WV+Y z6xM9d7gSi1eCKyGOP1c`7ALX|{yKsH(}#cpk%v)*?3{B}$>ZTQqk|QCtQBSyTTj

*Mb`75S*M+fduL^5qzn;4Uc+Yu(B1 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 literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/PollWakeCycle4.jpg b/2021/01/30/zero-cost-async-io/PollWakeCycle4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2ae10b7066ced4a6c66274cdf1622b5ef2b27083 GIT binary patch literal 51174 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 literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/SelfReferentialFuture.jpg b/2021/01/30/zero-cost-async-io/SelfReferentialFuture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e08010c2c5f35c2745ab007eee7189b374995705 GIT binary patch literal 28246 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

eT?=~z>t~hI_FnB1TRHkloq|R z;~2>+e-=AIJ%0)v74iQuGyl(04Mmfd4E>QU&P9tubDToTNfl1-r#;ZH;^lYwu-OV`s=%+L3!uQ)yY36)FsALxHQq7K`Gx{O_QHRe)VjtvwN znhAAQB9D0_!>&9C7z|pP%6doV59dmCsJs`eqsvtnUeXl5eEp%=iHGBN1+*aA%(!?s z+@F~;OqVDzz(})|$rzVk5&2%EHhkX7~oy`ak6elmm%kcfk zlbi{u$x}`%U2O8>Ky5TCB3+>vW%dV{+lww_Q=Y_Fr8dr>-G|;D6_qA{Y^38o({< z6`RG*G3+Vb-+3PM5$$z~T;k2e(hUhUvlsYu{iu&OKkSsMmjL|_(pvq+K^FnT3?pgE zaq}YSNGy;Ga@_j@^#OSoB>hqdzImU_1?}?NqN79XXD;CaL$A-I-yV8zab<@3`Nq27 z{S?Ul+3+t1g9xi2%HCSo6GBPJ>x9|n;Z9Bt=M88rHwtrWFEjH3fBsz%|S$10O93%{a^{9URU4`!*ULu=~h zjR)@p{yL(u>NC*Zli+wifmIl^ZoO<%Q;7C+mf~tIKS7xC$#Kdn9V$;9eD6A~y48U^U zXEZBzf)j}I8=}b(tKw=*nIq_`4o9@FAC>hIU=<37fMez9g=A0KPBhB))dYNuUc$_$_N24aZ zpQBr`6=bsA8Vj222`Hy0>W8d9G{Sv$ndsWClgs+old!68=C0&6(9xx-leiW`i<)m^ zJ(dXq4aOEpLOJui(5sf)<=fp10J%MW@4dnSHb zePSDsVmH4=zD$;V_mLm*#TnmbGUtTE$Lh+{RV~W#tvZohFrBaXC;nRV`%SXQlOTvebi4HR7wx+h8U&-J-7+@^?tk^4b!mPw}b$}o;qFDY-ihQAV zgAFfvC3(U)_qtjNACQZo+mP{?E)Fz5Dm-?Fpe?saL916DDPf1d^a4Os&P zz$?DJ-+6GQG58%}uHDdvD;oaSTU=Z20ti3f6WI-&TG(L!3V4&L(tn|<|D>$HB;CZV zpW`2>N0M4#qc~FIQQe|P@7Grjo!sU24u#|HF>^yErbs+sr*^`fAdl{AcE*E?gT=e> zqVkWji8owoK9mMA6j|~N+|141J5KCiX-QhsZq?;FzqOcLFO!e?tQEcRqNT>j#q)=jD&<(w0!KVsi2=1(46J~#( zo-_kPHtJQ98Q5eXWj&NuCns@Aq#E7fRT2A7W|o$#%jh#^XSx8{{q({Ae0%%D?>T2( zX`Hm&0Llmyon~3X(k~ylHiexmTL~CMeehh?DiMp*wBy$PgOGB({;DqhQKm;e8F@sM zr;8g6jI@dmFt9G~!kjr}7d_Oh-z=rL1rBa6Be&HEfMNXL>Y9q0;x5}{M&O25R&~|X*d-dQq3L7t690ZGJa z+(u<-5|wK8=R4~gr8`=v?>rhPIXHI*n)VxmEp^!V$I9rm#KWx;P~St<7q?H<^~3vrvJ&kbs5RLm$VniwxvCe{x|EDN>u^k&QyB(zvFUN=HJR-y%k zttkoQZq9b_eOw)nPfRaE1&f+lu$YsKv-(W%G?P6C3?By^k((4#xG*0wL}+#uDU5Lo8`(U-ae|U#N?Y#_X;Yl2qlkQyZoF;miL={ zH2R&#ZuGNGLIs7&+RtEfRs&nSxhqxt08X`^46@HRIp2EabwSf25vNlLGaycy5*%rR z*th;q5;Pe&eb^3a_B&6RT~ykZmD9;Cf;$vb#F;vyLgBLw*@Ao9I#+f0t05WwvESt<86P%5FA<-(@X&Gg9_;1oh@>mu+YHny9YJf zs#VN%_;ji24fk8NmXq+9;F`9tJjF9YO*!9^mKl4qtB*1;W5;fuuMIMKVo(@m`{RKe z9_u$HaI~l8}`t6k0i(-`{nr<$gb@z7t0@7sf@n-=D z&+6s- literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/StateMachines.jpg b/2021/01/30/zero-cost-async-io/StateMachines.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d8ce0f02f0dd7be0150012c361f0a0b54fe56c1b GIT binary patch literal 88657 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 P@ivYBC0|+o@6dk$LB+LW literal 0 HcmV?d00001 diff --git a/2021/01/30/zero-cost-async-io/index.html b/2021/01/30/zero-cost-async-io/index.html new file mode 100644 index 0000000..b9098e7 --- /dev/null +++ b/2021/01/30/zero-cost-async-io/index.html @@ -0,0 +1,567 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 零成本异步IO | 耿腾的博客 + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/24/design-pattern-1/index.html b/2021/08/24/design-pattern-1/index.html new file mode 100644 index 0000000..7798467 --- /dev/null +++ b/2021/08/24/design-pattern-1/index.html @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计模式(一) | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 设计模式(一) +

+ + +
+ + + + +
+ + +

单例模式

一个单一的类,负责创建自己的对象,同时确保只有单个对象被创建。

+

单例模式三种最典型的懒加载单例写法:

+

双重检查锁

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class Singleton {

// 定义为 volatile,防止指令重排序,导致未完成初始化的对象被使用
private static volatile Singleton INSTANCE = null;

public static Singleton getInstance() {
// 基于性能考量,第一次检查,避免每一次都加锁
if (INSTANCE == null) {
// 加锁
synchronized (Singleton1.class) {
// 检查这之前是否有其他线程已经获得过锁并初始化
if (INSTANCE == null) {
INSTANCE = new Singleton();
}
}
}

return INSTANCE;
}
}
+

静态内部类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class Singleton {

// 外部类被加载时,内部类还不会被加载
private static class SingletonHolder {
private final static Singleton INSTANCE = new Singleton();
}

public static Singleton getInstance() {
// 调用这里时,内部类被加载,实现初始化
// 由JVM保证只加载一次,线程安全
return SingletonHolder.INSTANCE;
}

private Singleton() {}
}
+

枚举

1
2
3
4
5
6
7
8
// 懒加载,线程安全,还可以防止反序列化
public enum Singleton {
INSTANCE;

public static Singleton getInstance() {
return Singleton.INSTANCE;
}
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/24/design-pattern-2/index.html b/2021/08/24/design-pattern-2/index.html new file mode 100644 index 0000000..44ffada --- /dev/null +++ b/2021/08/24/design-pattern-2/index.html @@ -0,0 +1,487 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计模式(二) | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 设计模式(二) +

+ + +
+ + + + +
+ + +

策略模式(Strategy)

策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不通过的对象管理。

+

最典型的例子就是使用比较器(Comparator<T>):

+
1
2
3
4
5
6
@FunctionalInterface
public interface Comparator<T> {
int compare(T o1, T o2);

// 省略其他...
}
+
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
import java.util.Arrays;
import java.util.Comparator;

public class Cat {
int weight;

public int GetWeight() {
return weight;
}

public Cat(int weight) {
this.weight = weight;
}

@Override
public String toString() {
return "Cat{" +
"weight=" + weight +
'}';
}

public static void main(String[] args) {
Cat[] cats = {new Cat(12), new Cat(21), new Cat(4), new Cat(8)};

// 这里可以new一个实现了Comparator的类,也可以使用Lambda表达式
Arrays.sort(cats, Comparator.comparingInt(Cat::GetWeight));

System.out.println(Arrays.toString(cats));
}
}
+
+

注:

+
    +
  1. 开闭原则(OCP,Open-Closed Principle),对修改关闭,对扩展开放。
  2. +
  3. 自定义静态泛型函数时,将类型参数列表写在 static 和返回值类型之间,例如:
    1
    static <T> void sort(T[] array, Comparator c);
    +
  4. +
+
+
+

抽象工厂(Abstract Factory)

一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

+

例如,农场可以生产动物、蔬菜。农场A生产牛,白菜,农场B生产羊,花椰菜。编码如下:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
// 农场抽象
public abstract class Farm {
public abstract Animal createAnimal();
public abstract Vegetable createVegetable();
}

// 动物抽象
public interface Animal {
}

// 蔬菜抽象
public interface Vegetable {
}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 农场A
public class FarmA extends Farm {
@Override
public Animal createAnimal() {
return new Cow();
}

@Override
public Vegetable createVegetable() {
return new Cabbage();
}
}

public class Cow implements Animal {
}

public class Cabbage implements Vegetable {
}
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 农场B
public class FarmB extends Farm {
@Override
public Animal createAnimal() {
return new Sheep();
}

@Override
public Vegetable createVegetable() {
return new Cauliflower();
}
}

public class Sheep implements Animal {
}

public class Cauliflower implements Vegetable {
}
+
1
2
3
4
5
6
7
8
// 实际调用
public class Main {
public static void main(String[] args) {
Farm farm = new FarmA();
System.out.println(farm.createAnimal().getClass().getSimpleName());
System.out.println(farm.createVegetable().getClass().getSimpleName());
}
}
+

输出:

+
1
2
Cow
Cabbage
+

使用 Rust 语言编写如下:

+
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
use std::fmt::Debug;

// 产品抽象
trait Animal {}
trait Vegetable {}

// 工厂抽象
trait Farm {
type A: Animal;
type V: Vegetable;
const NAME: &'static str;

fn create_animal() -> Self::A;
fn create_vegetable() -> Self::V;
}

#[derive(Debug)]
struct Cow;
impl Animal for Cow {}
#[derive(Debug)]
struct Cabbage;
impl Vegetable for Cabbage {}
struct FarmA;
impl Farm for FarmA {
type A = Cow;
type V = Cabbage;
const NAME: &'static str = "A";

fn create_animal() -> Self::A {
Cow
}

fn create_vegetable() -> Self::V {
Cabbage
}
}

#[derive(Debug)]
struct Sheep;
impl Animal for Sheep {}
#[derive(Debug)]
struct Cauliflower;
impl Vegetable for Cauliflower {}
struct FarmB;
impl Farm for FarmB {
type A = Sheep;
type V = Cauliflower;
const NAME: &'static str = "B";

fn create_animal() -> Self::A {
Sheep
}

fn create_vegetable() -> Self::V {
Cauliflower
}
}

// 实际调用
fn run_a_farm<F>()
where
F: Farm,
F::A: Debug,
F::V: Debug,
{
println!("Farm {}:", F::NAME);
println!("\tAnimal: {:?}", F::create_animal());
println!("\tVegetable: {:?}", F::create_vegetable());
}

fn main() {
run_a_farm::<FarmA>();
run_a_farm::<FarmB>();
}
+

输出结果为:

+
1
2
3
4
5
6
Farm A:
Animal: Cow
Vegetable: Cabbage
Farm B:
Animal: Sheep
Vegetable: Cauliflower
+

典型应用场景

    +
  1. 界面换肤,一款皮肤下,不同的控件的样式;
  2. +
+
+

注:

+
    +
  1. 增加新的产品族,只需要新增工厂实现,满足开闭原则;
  2. +
  3. 产品族需要新增产品的时候,需要修改所有工厂,不满足开闭原则。
  4. +
  5. 当系统只存在一类产品时,抽象工厂退化到工厂方法模式。
  6. +
+
+
+

外观/门面(Facade)

通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。

+

它是迪米特法则的典型应用。降低了子系统与客户端之间的耦合度。

+
+

迪米特法则(LOD,Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。

+
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/24/design-pattern-principle/index.html b/2021/08/24/design-pattern-principle/index.html new file mode 100644 index 0000000..933af54 --- /dev/null +++ b/2021/08/24/design-pattern-principle/index.html @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计模式的六大原则 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 设计模式的六大原则 +

+ + +
+ + + + +
+ + +
    +
  1. 开闭原则(Open Close Principle)。对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

    +
  2. +
  3. 里氏代换原则(Liskov Substitution Principle)。里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

    +
  4. +
  5. 依赖倒转原则(Dependence Inversion Principle)。开闭原则的基础,具体内容是针对接口编程,依赖于抽象而不依赖于具体。

    +
  6. +
  7. 接口隔离原则(Interface Segregation Principle)。使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

    +
  8. +
  9. 迪米特法则,又称最少知道原则(Demeter Principle)。一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

    +
  10. +
  11. 合成复用原则(Composite Reuse Principle)。尽量使用合成/聚合的方式,而不是使用继承。

    +
  12. +
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/24/how-many-threads/index.html b/2021/08/24/how-many-threads/index.html new file mode 100644 index 0000000..ec81853 --- /dev/null +++ b/2021/08/24/how-many-threads/index.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 工作线程数设多少合适 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 工作线程数设多少合适 +

+ + +
+ + + + +
+ + +

遵循以下公式:

+
    +
  • 其中,$N_C$ 为处理器的核的数目,可以通过 Runtime.getRuntime().avaliableProcessors() 得到
  • +
  • $U_C$ 是期望的 CPU 利用率(介于 0 到 1 之间)
  • +
  • $W / C$ 是等待时间与计算时间的比值
  • +
+

例如,对于 CPU 密集型应用,期望 CPU 利用率为 100%,无等待纯计算,则有:

+

即工作线程数设置为处理器的核心数最合适。

+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/28/search-local-minimum/index.html b/2021/08/28/search-local-minimum/index.html new file mode 100644 index 0000000..807dcae --- /dev/null +++ b/2021/08/28/search-local-minimum/index.html @@ -0,0 +1,525 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 寻找局部最小 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 寻找局部最小 +

+ + +
+ + + + +
+ + +

给你一个数组,长度为N,相邻元素互不相等,请返回任意局部最小值的索引。

+

局部最小定义:

+
    +
  1. 0 位置如果比 1 位置数小,则 0 位置为局部最小;
  2. +
  3. N-1 位置如果比 N-2 位置数小,则 N-1 位置为局部最小;
  4. +
  5. i 位置的数,如果比 i-1i+1 位置的数都小,则 i 位置为局部最小。
  6. +
+
+
    +
  • Java 实现
  • +
+

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
public static int getLocalMinimumIndex(int[] array) {
if (array == null || array.length == 0) {
return -1;
}

if (array.length == 1) {
return 0;
}

if (array[0] < array[1]) {
return 0;
}

if (array[array.length - 1] < array[array.length - 2]) {
return array.length - 1;
}

int left = 1;
int right = array.length - 2;
while (left < right) {
int mid = left + ((right - left) >> 1);
if (array[mid] > array[mid - 1]) {
right = mid - 1;
} else if (array[mid] > array[mid + 1]) {
left = mid + 1;
} else {
return mid;
}
}

return left;
}

    +
  • Rust 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
fn get_local_minimum_index(array: &[i32]) -> Option<usize> {
let len = array.len();
if len == 0 {
return None;
}
if len == 1 {
return Some(0);
}

if array[0] < array[1] {
return Some(0);
}

if array[len - 1] < array[len - 2] {
return Some(len - 1);
}

let mut left = 1;
let mut right = len - 2;
while left < right {
let mid = mid(left, right);
if array[mid] > array[mid - 1] {
right = mid - 1;
} else if array[mid] > array[mid + 1] {
left = mid + 1;
} else {
return Some(mid);
}
}

Some(left)
}

/// 计算两个无符号值的中间值
fn mid<T: Ord + Div<Output = T> + Add<Output = T> + Copy + Sub<Output = T> + From<u8>>(
v1: T,
v2: T,
) -> T {
match v1.cmp(&v2) {
Ordering::Less => {
let v = v2 - v1;
v1 + v / T::from(2u8)
}
Ordering::Equal => v1,
Ordering::Greater => {
let v = v1 - v2;
v2 + v / T::from(2u8)
}
}
}

/// 判断一个索引是否为局部最小值的索引
fn is_local_minimum(array: &[i32], index: usize) -> bool {
let len = array.len();
if len == 0 {
return false;
}
if len == 1 {
return index == 0;
}

let range = 0..len;
if !range.contains(&index) {
return false;
}

// 1. `0` 位置如果比 `1` 位置数小,则 `0` 位置为局部最小;
if index == 0 && array[0] < array[1] {
return true;
}

// 2. `N-1` 位置如果比 `N-2` 位置数小,则 `N-1` 位置为局部最小;
if index == len - 1 && array[len - 1] < array[len - 2] {
return true;
}

// 3. `i` 位置的数,如果比 `i-1` 和 `i+1` 位置的数逗笑,则 `i` 位置为局部最小。
array[index] < array[index - 1] && array[index] < array[index + 1]
}

// 判断一个数组是否符合要求
fn is_array_valid(array: &[i32]) -> bool {
if array.is_empty() {
return false;
}

let mut last = array[0];

for v in &array[1..] {
if last == *v {
return false;
}

last = *v;
}

true
}

/// 测试代码
#[test]
fn test_get_local_minimum_index() {
for _ in 0..1000 {
// 生成随机数组
let array = loop {
// Cargo.toml里加上rand = "0.8"
let array: [i32; 32] = rand::random();
// 确保数组符合条件
if !is_array_valid(&array) {
continue;
}
break array;
};

if let Some(index) = get_local_minimum_index(&array) {
assert!(is_local_minimum(&array, index));
} else {
assert!(false);
}
}
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/08/29/exclusive-or/index.html b/2021/08/29/exclusive-or/index.html new file mode 100644 index 0000000..f2bc890 --- /dev/null +++ b/2021/08/29/exclusive-or/index.html @@ -0,0 +1,510 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 异或运算 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 异或运算 +

+ + +
+ + + + +
+ + +

运算特性

    +
  1. 两个数进行异或运算,二进制位相同为 0,不同为 1
  2. +
  3. 满足交换律和结合律;
  4. +
  5. 异或运算可以认为是无进位相加(二进制);
  6. +
  7. 任何数与 0 异或仍得这个数,即0 ^ N = N
  8. +
  9. 任何数与自身异或得 0,即 N ^ N = N
  10. +
+
+

典型应用场景

1. 交换

1
2
3
4
5
6
int a = 1;
int b = 2;

a = a ^ b; // a = 1 ^ 2, b = 2
b = a ^ b; // a = 1 ^ 2, b = 1 ^ 2 ^ 2 = 1
a = a ^ b; // a = 1 ^ 2 ^ 1 = 2, b = 1
+

数组元素交换时,要确保交换的不是一个空间,可以相等,但不能是同一块内存跟自己进行异或运算:

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
void swap(int[] array, int i, int j) {
if (i == j) {
// 无法确保 i != j 一定要加这个检查,否则该位置值变为 0
return;
}

array[i] = array[i] ^ array[j];
array[j] = array[i] ^ array[j];
array[i] = array[i] ^ array[j];
}
+

2. 找到出现奇数次的数

题目: 一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到这种数。

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
int getOddTimesNumber(int[] array) {
int xor = 0;
for (int i: array) {
xor ^= i;
}
return xor;
}
+
    +
  • Rust 实现
  • +
+
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
fn get_odd_times_number_0(array: &[i32]) -> i32 {
let mut xor = 0;
for i in array {
xor ^= *i;
}
xor
}

fn get_odd_times_number_1(array: &[i32]) -> i32 {
array.iter().fold(0, |a, b| a ^ *b)
}

#[test]
fn test_get_odd_times_number() {
use rand::prelude::*;

let mut rng = thread_rng();

for _ in 0..100 {
let mut vec = Vec::new();
let odd_number = rng.gen_range(0..5);
for i in 0..5 {
let times: usize = rng.gen_range(1..3) * 2 + if i == odd_number { 1 } else { 0 };
for _ in 0..times {
vec.push(i);
}
}
vec.shuffle(&mut rng);

let get0 = get_odd_times_number_0(&vec);
let get1 = get_odd_times_number_1(&vec);
assert_eq!(odd_number, get0);
assert_eq!(odd_number, get1);
}
}
+

3. 提取整型数最右侧的 1

题目: 提取整型数最右侧的 1

+

例如:

1
2
0b10101000 ----> 0b00001000
^---只留这个 `1`

+
    +
  • Java 实现
  • +
+
1
2
3
int getRightmostOne(int value) {
return value & (~value + 1);
}
+
    +
  • Rust 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
fn get_rightmost_one(value: i32) -> i32 {
value & (!value + 1)
}

#[test]
fn test_get_rightmost_one() {
for _ in 0..1000 {
let a: i32 = rand::random();
let b = get_rightmost_one(a);
assert_eq!(b >> b.trailing_zeros(), 1);
let bits = b.leading_zeros() + 1 + b.trailing_zeros();
assert_eq!(bits, size_of::<i32>() as u32 * 8);
}
}
+

4. 找到两个出现奇数次的数

题目: 一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到这两种数。

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
int[] getOddTimesNumbers(int[] array) {
int xor = 0;
for (int i: array) {
xor ^= i;
}

// xor == a ^ b
// 因为 a != b (两种数),所以 a ^ b != 0,则必然存在为 1 的二进制位
// 不妨就使用最后一个 1,即
int one = xor & (~xor + 1);
// 假设这个 1 在第 N 位
int a = 0;
for (int i: array) {
// 将数组分为两类:1. N 位上为 1 的;2. N 位上为 0 的。
// a 和 b 一定分别属于这两类,不会同属一类,因为 a ^ b 的 N 位是 1
// 这里只把第 1 类异或起来,得到一种数
if ((i & one) != 0) {
a ^= i;
}
}

// 用之前得到的这种数异或 xor,得到另一种
return new int[]{a, a ^ xor};
}
+
    +
  • Java 实现(函数式)
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int[] getOddTimesNumbers(int[] array) {
int xor = Arrays.stream(array).reduce(0, (a, b) -> a ^ b);

int one = xor & (~xor + 1);
int a = Arrays.stream(array).reduce(0, (v1, v2) -> {
if ((v2 & one) != 0) {
return v1 ^ v2;
} else {
return v1;
}
});

return new int[] {a, xor ^ a};
}
+
    +
  • Rust 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
fn get_odd_times_numbers(array: &[i32]) -> (i32, i32) {
let mut xor = 0;
for i in array {
xor ^= *i;
}

let one = xor & (!xor + 1);
let mut a = 0;
for i in array {
if one & *i != 0 {
a ^= *i;
}
}

(a, xor ^ a)
}
+
    +
  • Rust 实现(函数式)
  • +
+
1
2
3
4
5
6
7
8
9
10
11
fn get_odd_times_numbers(array: &[i32]) -> (i32, i32) {
let xor = array.iter().fold(0, |a, b| a ^ *b);

let one = xor & (!xor + 1);
let a = array
.iter()
.fold(0, |a, b| if one & b != 0 { a ^ *b } else { a });

(a, xor ^ a)
}

+
    +
  • Rust 测试代码
  • +
+
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
#[test]
fn test_get_odd_times_numbers() {
use rand::prelude::*;

let mut rng = thread_rng();

for _ in 0..1000 {
let mut vec = Vec::new();
let odd_number_a = rng.gen_range(0..5);
let odd_number_b = loop {
let b = rng.gen_range(0..5);
if b != odd_number_a {
break b;
} else {
continue;
}
};
for i in 0..5 {
let times: usize = rng.gen_range(1..3) * 2
+ if i == odd_number_a || i == odd_number_b {
1
} else {
0
};
for _ in 0..times {
vec.push(i);
}
}
vec.shuffle(&mut rng);

let get = get_odd_times_numbers(&vec);
assert!(get == (odd_number_a, odd_number_b) || get == (odd_number_b, odd_number_a));
}
}
+

5. 计算某个数为 1 的二进制位数

例如:

+
1
0b00101100 --> 3
+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
int countOnes(int a) {
int count = 0;

while (a != 0) {
count += 1;
int one = a & (~a + 1);
a ^= one; // 把这个 1 给去掉
}

return count;
}

+
    +
  • Rust 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
fn count_ones(mut a: i32) -> u32 {
let mut count = 0;

while a != 0 {
count += 1;
// a ^= a & (!a + 1) 在 debug 编译条件下可能溢出,无法通过测试,release 无所谓;wrapping_add 在 debug 条件下也没问题
a ^= a & (!a).wrapping_add(1);
}

count
}


#[test]
fn test_count_ones() {
for _ in 0..1000 {
let a = rand::random();
assert_eq!(count_ones(a), a.count_ones());
}
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/06/linked-list-build-reverse/index.html b/2021/09/06/linked-list-build-reverse/index.html new file mode 100644 index 0000000..aa212fb --- /dev/null +++ b/2021/09/06/linked-list-build-reverse/index.html @@ -0,0 +1,452 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 链表的构造和反转 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 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
public class Node<T> {
private final T value;
private Node<T> next;

public static void main(String[] args) {
Node<String> list = Node.build("hello", "world", "are", "you", "ok");
System.out.println("build: " + list);
Node<String> reversed = list.reverse();
System.out.println("reversed: " + reversed);
Node<String> origin = reversed.reverse();
System.out.println("origin: " + origin);
}

public static <T> Node<T> build(T ...values) {
Node<T> list = null;
Node<T> cur = null;

for (T value: values) {
if (cur == null) {
cur = new Node<>(value);
list = cur;
} else {
cur.setNext(new Node<>(value));
cur = cur.getNext();
}
}

return list;
}

public Node(T value) {
this.value = value;
this.next = null;
}

public Node setNext(Node<T> next) {
this.next = next;
return this;
}

public Node getNext() {
return this.next;
}

public T getValue() {
return this.value;
}

public Node<T> reverse() {
Node<T> head = this;
Node<T> pre = null;

while (head != null) {
Node<T> next = head.getNext();

head.setNext(pre);
pre = head;

head = next;
}

return pre;
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
Node<T> cur = this;
while (cur != null) {
sb.append(cur.getValue());
sb.append(" -> ");
cur = cur.getNext();
}
sb.append("null");
return sb.toString();
}
}
+

输出内容:

+
1
2
3
build: hello -> world -> are -> you -> ok -> null
reversed: ok -> you -> are -> world -> hello -> null
origin: hello -> world -> are -> you -> ok -> null
+

双向链表

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
public class DoubleNode<T> {
private final T value;
private DoubleNode<T> previous;
private DoubleNode<T> next;

public static void main(String[] args) {
DoubleNode<String> list = DoubleNode.build("hello", "world", "are", "you", "ok");
System.out.println("build: " + list);
DoubleNode<String> reversed = list.reverse();
System.out.println("reversed: " + reversed);
DoubleNode<String> origin = reversed.reverse();
System.out.println("origin: " + origin);
DoubleNode<String> tail = origin.getTailNode();
System.out.println("back: " + tail.toStringBack());
}

public static <T> DoubleNode<T> build(T ...values) {
DoubleNode<T> list = null;
DoubleNode<T> cur = null;

for (T value: values) {
if (cur == null) {
cur = new DoubleNode<>(value);
list = cur;
} else {
DoubleNode<T> node = new DoubleNode<>(value);
node.setPrevious(cur);
cur.setNext(node);
cur = cur.getNext();
}
}

return list;
}

public DoubleNode(T value) {
this.value = value;
this.previous = this.next = null;
}

public DoubleNode<T> setNext(DoubleNode<T> next) {
this.next = next;
return this;
}

public DoubleNode<T> getNext() {
return this.next;
}

public T getValue() {
return this.value;
}

public DoubleNode<T> getTailNode() {
DoubleNode<T> cur = this;
while (cur.getNext() != null) {
cur = cur.getNext();
}
return cur;
}

public DoubleNode<T> getPrevious() {
return this.previous;
}

public DoubleNode<T> setPrevious(DoubleNode<T> previous) {
this.previous = previous;
return this;
}

public DoubleNode<T> reverse() {
DoubleNode<T> head = this;
DoubleNode<T> pre = null;

while (head != null) {
DoubleNode<T> next = head.getNext();

// 其他都跟单链表一样,指针多设置一个
head.setNext(pre);
head.setPrevious(next);
pre = head;

head = next;
}

return pre;
}

@Override
public String toString() {
StringBuilder sb = new StringBuilder();
DoubleNode<T> cur = this;
while (cur != null) {
sb.append(cur.getValue());
sb.append(" -> ");
cur = cur.getNext();
}
sb.append("null");
return sb.toString();
}

public String toStringBack() {
StringBuilder sb = new StringBuilder("null");
DoubleNode<T> cur = this;
while (cur != null) {
sb.append(" <- ");
sb.append(cur.getValue());
cur = cur.getPrevious();
}
return sb.toString();
}
}
+

输出内容:

+
1
2
3
4
build: hello -> world -> are -> you -> ok -> null
reversed: ok -> you -> are -> world -> hello -> null
origin: hello -> world -> are -> you -> ok -> null
back: null <- ok <- you <- are <- world <- hello
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/06/recursive-time-complexity-formula/index.html b/2021/09/06/recursive-time-complexity-formula/index.html new file mode 100644 index 0000000..4a0b018 --- /dev/null +++ b/2021/09/06/recursive-time-complexity-formula/index.html @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 递归算法时间复杂度公式 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 递归算法时间复杂度公式 +

+ + +
+ + + + +
+ + +

当递归函数的时间执行函数满足如下的关系式时,可以使用公式法计算时间复杂度:

+
+

其中:

+
    +
  1. $a$ 为递归次数;
  2. +
  3. $\frac {N} {b}$ 为子问题规模;
  4. +
  5. $O(N^d)$ 为每次递归完毕之后额外执行的操作的时间复杂度;
  6. +
+
+
    +
  • 如果 $\log_b a < d$,时间复杂度为 $O(N^d)$
  • +
  • 如果 $\log_b a > d$,时间复杂度为 $O(N^{\log_b a})$
  • +
  • 如果 $\log_b a = d$,时间复杂度为 $O(N^d \times \log N)$
  • +
+
+

例子

求数组 arr[l..r]中的最大值,用递归方法实现。

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class RecursiveMax {
public static void main(String[] args) {
Integer[] array = {6, 3, 5, 2, 1, 4, 0, 1, 7};
System.out.println(getMax(array, 0, array.length - 1));
}

public static <T extends Comparable<T>> T getMax(T[] arr, int l, int r) {
if (l == r) {
return arr[l];
}

int mid = l + ((r - l) >> 1);
T left = getMax(arr, l, mid);
T right = getMax(arr, mid + 1, r);
return left.compareTo(right) >= 0 ? left : right;
}
}
+

其中:

+
    +
  1. 递归次数 $a$ 为 $2$;
  2. +
  3. 子问题规模 $\frac {N} {b}$ 为 $\frac {N} {2}$,即 $b$ 为 $2$;
  4. +
  5. 每次递归完毕之后额外执行的操作的时间复杂度 $O(N^d)$ 为 $O(1)$,即 $d$ 为 $0$。
  6. +
+

满足:

+

所以,该算法复杂度为 $O(N^{\log_2 2}) = O(N)$

+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/06/stack-and-queue/index.html b/2021/09/06/stack-and-queue/index.html new file mode 100644 index 0000000..90b71a3 --- /dev/null +++ b/2021/09/06/stack-and-queue/index.html @@ -0,0 +1,474 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 栈和队列 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 栈和队列 +

+ + +
+ + + + +
+ + +

1. 环形队列

    +
  • Java 实现
  • +
+
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
public class RingBuffer<T> {
// 队列缓冲区
private final Object[] array;

// 队列尺寸
private final int limit;

// 表示即将入队的索引位置
private int pushIndex;

// 表示即将出队的索引位置
private int popIndex;

// 表示当前队列中元素的个数
private int size;

private RingBuffer(int limit) {
if (limit <= 0) {
throw new IllegalArgumentException("limit should be greater than 0");
}
this.limit = limit;
this.array = new Object[limit];
this.popIndex = this.pushIndex = this.size = 0;
}

public static <T> RingBuffer<T> create(int limit) {
return new RingBuffer<>(limit);
}

public Optional<T> pop() {
if (size == 0) {
return Optional.empty();
}

T value = (T) this.array[this.popIndex];
this.array[this.popIndex] = null; // 去掉引用,避免泄漏
this.size -= 1;
this.popIndex = getNextIndex(this.popIndex);
return Optional.of(value);
}

public boolean empty() {
return this.size == 0;
}

public void push(T value) {
if (size == this.limit) {
throw new IllegalArgumentException("The size has reached the limit");
}

this.array[this.pushIndex] = value;
this.size += 1;
this.pushIndex = getNextIndex(this.pushIndex);
}

@Override
public String toString() {
return "RingBuffer{" +
"array=" + Arrays.toString(array) +
", limit=" + limit +
", pushIndex=" + pushIndex +
", popIndex=" + popIndex +
", size=" + size +
'}';
}

private int getNextIndex(int index) {
return index == this.limit - 1 ? 0 : index + 1;
}

public static void main(String[] args) {
RingBuffer<String> rb = RingBuffer.create(4);
System.out.println("new rb: " + rb);
String[] data = {"hello", "world", "are", "you", "ok"};
for (String s: data) {
try {
rb.push(s);
System.out.println("push " + s);
System.out.println("rb: " + rb);
} catch (Exception e) {
System.out.println("Push '" + s + "' error: " + e);
}
}

Optional<String> op = rb.pop();

while (op.isPresent()) {
System.out.println("pop " + op.get());
System.out.println("rb: " + rb);
op = rb.pop();
}
}
}
+

输出内容:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
new rb: RingBuffer{array=[null, null, null, null], limit=4, pushIndex=0, popIndex=0, size=0}
push hello
rb: RingBuffer{array=[hello, null, null, null], limit=4, pushIndex=1, popIndex=0, size=1}
push world
rb: RingBuffer{array=[hello, world, null, null], limit=4, pushIndex=2, popIndex=0, size=2}
push are
rb: RingBuffer{array=[hello, world, are, null], limit=4, pushIndex=3, popIndex=0, size=3}
push you
rb: RingBuffer{array=[hello, world, are, you], limit=4, pushIndex=0, popIndex=0, size=4}
Push 'ok' error: java.lang.IllegalArgumentException: The size has reached the limit
pop hello
rb: RingBuffer{array=[null, world, are, you], limit=4, pushIndex=0, popIndex=1, size=3}
pop world
rb: RingBuffer{array=[null, null, are, you], limit=4, pushIndex=0, popIndex=2, size=2}
pop are
rb: RingBuffer{array=[null, null, null, you], limit=4, pushIndex=0, popIndex=3, size=1}
pop you
rb: RingBuffer{array=[null, null, null, null], limit=4, pushIndex=0, popIndex=0, size=0}
+

2. 时间复杂度为 $O(1)$ 的栈中最小值获取方法

    +
  • Java 实现
  • +
+
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
import java.util.Collection;
import java.util.Collections;
import java.util.Optional;
import java.util.Stack;

public class GetMinStack<E extends Comparable<E>> extends Stack<E> {
private final Stack<E> minStack;

public static void main(String[] args) {
GetMinStack<Integer> stack = new GetMinStack<>();
int[] data = {8, 4, 2, 6, 1, 9, -1, 3};
for (int i: data) {
stack.push(i);
Optional<Integer> min = stack.getMin();
System.out.println("push " + i + ", min: " + min.get() + ", stack" + stack + ", minStack: " + stack.getMinStack());
}

while (!stack.empty()) {
int i = stack.pop();
Optional<Integer> min = stack.getMin();
if (min.isPresent()) {
System.out.println("pop " + i + ", min: " + min.get() + ", stack" + stack + ", minStack: " + stack.getMinStack());
} else {
System.out.println("pop " + i + ", stack is empty");
}
}
}

public GetMinStack() {
minStack = new Stack<>();
}

@Override
public synchronized E pop() {
E item = super.pop();
E min = minStack.peek();
// 如果出栈的元素跟最小栈顶元素相等,则最小栈顶也出栈
if (min == item) {
minStack.pop();
}
return item;
}

@Override
public E push(E item) {
if (!minStack.empty()) {
E min = minStack.peek();
// 如果栈不空,看最小栈顶与入栈元素哪个小;
// 一样大或者入栈元素小,则该元素入最小栈;
// 否则不做任何操作
if (min.compareTo(item) >= 0) {
minStack.push(item);
}
} else {
// 栈空就直接入栈
minStack.push(item);
}
return super.push(item);
}

public Optional<E> getMin() {
if (empty()) {
return Optional.empty();
} else {
return Optional.of(minStack.peek());
}
}

public Collection<E> getMinStack() {
return Collections.unmodifiableCollection(this.minStack);
}
}
+

输出内容:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
push 8, min: 8, stack[8], minStack: [8]
push 4, min: 4, stack[8, 4], minStack: [8, 4]
push 2, min: 2, stack[8, 4, 2], minStack: [8, 4, 2]
push 6, min: 2, stack[8, 4, 2, 6], minStack: [8, 4, 2]
push 1, min: 1, stack[8, 4, 2, 6, 1], minStack: [8, 4, 2, 1]
push 9, min: 1, stack[8, 4, 2, 6, 1, 9], minStack: [8, 4, 2, 1]
push -1, min: -1, stack[8, 4, 2, 6, 1, 9, -1], minStack: [8, 4, 2, 1, -1]
push 3, min: -1, stack[8, 4, 2, 6, 1, 9, -1, 3], minStack: [8, 4, 2, 1, -1]
pop 3, min: -1, stack[8, 4, 2, 6, 1, 9, -1], minStack: [8, 4, 2, 1, -1]
pop -1, min: 1, stack[8, 4, 2, 6, 1, 9], minStack: [8, 4, 2, 1]
pop 9, min: 1, stack[8, 4, 2, 6, 1], minStack: [8, 4, 2, 1]
pop 1, min: 2, stack[8, 4, 2, 6], minStack: [8, 4, 2]
pop 6, min: 2, stack[8, 4, 2], minStack: [8, 4, 2]
pop 2, min: 4, stack[8, 4], minStack: [8, 4]
pop 4, min: 8, stack[8], minStack: [8]
pop 8, stack is empty
+

3. 用栈实现队列

    +
  • Java 实现
  • +
+
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
import java.util.Optional;
import java.util.Stack;

public class StackQueue<E> {
// 用来入队
private final Stack<E> pushStack;
// 用来出队
private final Stack<E> popStack;

public static void main(String[] args) {
StackQueue<String> queue = new StackQueue<>();
String[] data = {"hello", "world", "how", "are", "you"};
for (String s: data) {
queue.push(s);
}
System.out.println(queue);
Optional<String> op = queue.poll();
while (op.isPresent()) {
System.out.println(op.get());
op = queue.poll();
}
System.out.println(queue);
for (String s: data) {
queue.push(s);
}
System.out.println(queue);
op = queue.poll();
for (String s: data) {
queue.push(s);
}
System.out.println(queue);
while (op.isPresent()) {
System.out.println(op.get());
op = queue.poll();
}
System.out.println(queue);
}

public StackQueue() {
pushStack = new Stack<>();
popStack = new Stack<>();
}

public int size() {
return pushStack.size() + popStack.size();
}

public boolean empty() {
return pushStack.empty() && popStack.empty();
}

public boolean contains(Object o) {
return pushStack.contains(o) || popStack.contains(o);
}

public void push(E element) {
pushStack.push(element);
}

public Optional<E> poll() {
if (popStack.empty()) {
while (!pushStack.empty()) {
popStack.push(pushStack.pop());
}
if (popStack.empty()) {
return Optional.empty();
}
}

return Optional.of(popStack.pop());
}

@Override
public String toString() {
// => 表示栈顶
return "StackQueue{" +
"pushStack=" + pushStack +
"=>, popStack=" + popStack +
"=>}";
}
}
+

输出内容:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[]=>}
hello
world
how
are
you
StackQueue{pushStack=[]=>, popStack=[]=>}
StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[]=>}
StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[you, are, how, world]=>}
hello
world
how
are
you
hello
world
how
are
you
StackQueue{pushStack=[]=>, popStack=[]=>}
+

4. 用队列实现栈

    +
  • Java 实现
  • +
+
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
import java.util.LinkedList;
import java.util.Optional;
import java.util.Queue;

public class QueueStack<E> {
private Queue<E> data;
private Queue<E> help;

public static void main(String[] args) {
QueueStack<String> stack = new QueueStack<>();
String[] data = {"hello", "world", "how", "are", "you"};
for (String s: data) {
stack.push(s);
}
Optional<String> op = stack.pop();
while (op.isPresent()) {
System.out.println(op.get());
op = stack.pop();
}
}

public QueueStack() {
data = new LinkedList<>();
help = new LinkedList<>();
}

public boolean empty() {
return data.isEmpty() && help.isEmpty();
}

public boolean contains(E object) {
return data.contains(object) || help.contains(object);
}

public int size() {
return data.size() + help.size();
}

public void push(E e) {
data.add(e);
}

public Optional<E> pop() {
int size = data.size();
if (size == 0) {
return Optional.empty();
}

for (int i=0;i<size-1;++i) {
help.add(data.poll());
}

E e = data.poll();

// swap
Queue<E> temp = help;
help = data;
data = temp;

return Optional.of(e);
}
}
+

输出内容:

+
1
2
3
4
5
you
are
how
world
hello
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/11/merge-sort/index.html b/2021/09/11/merge-sort/index.html new file mode 100644 index 0000000..530fe1a --- /dev/null +++ b/2021/09/11/merge-sort/index.html @@ -0,0 +1,810 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归并排序及应用 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 归并排序及应用 +

+ + +
+ + + + +
+ + +

归并排序

    +
  • 算法时间复杂度: $O(NlogN)$
  • +
  • 相比冒泡、选择等时间复杂度为 $O(N^2)$ 的排序算法,没有浪费比较行为;
  • +
  • 插入排序时即便使用二分查找插入位置,也需要将插入位置后的元素依次向右移动,每次插入复杂度不是 $O(1)$。
  • +
+

递归方法

    +
  • Java 实现
  • +
+
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
public class MergeSort {

public static void main(String[] args) {
Integer[] data = {12, 3, 2, 6, 4, 8, 6, 0, 9, 3};
System.out.println(Arrays.toString(data));
mergeSort(data);
System.out.println(Arrays.toString(data));
}

static <T extends Comparable> void mergeSort(T[] array) {
T[] help = (T[]) new Comparable[array.length];
doMergeSort(array, help, 0, array.length);
}

static <T extends Comparable> void doMergeSort(T[] array, T[] help, int start, int end) {
if (start == end - 1) {
return;
}

int mid = start + ((end - start) >> 1);
doMergeSort(array, help, start, mid);
doMergeSort(array, help, mid, end);
mergeSorted(array, help, start, mid, end);
}

static <T extends Comparable> void mergeSorted(T[] array, T[] help, int start, int mid, int end) {
int h = start;
int i = start;
int j = mid;

while (i < mid && j < end) {
if (array[i].compareTo(array[j]) <= 0) {
help[h++] = array[i++];
} else {
help[h++] = array[j++];
}
}

while (i < mid) {
help[h++] = array[i++];
}

while (j < end) {
help[h++] = array[j++];
}

assert h == end;
for (int n = start; n < end; n++) {
array[n] = help[n];
}
}
}
+

输出内容:

+
1
2
[12, 3, 2, 6, 4, 8, 6, 0, 9, 3]
[0, 2, 3, 3, 4, 6, 6, 8, 9, 12]
+
    +
  • Rust 实现
  • +
+
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
#[test]
fn test_merge_sort() {
for _ in 0..100 {
let mut array0: [u8; 32] = rand::random();
let mut array1 = array0.clone();
array0.merge_sort();
array1.sort();
assert_eq!(array0, array1);
}
}

trait MergeSort {
fn merge_sort(&mut self);
}

impl<T: Ord + Clone> MergeSort for [T] {
fn merge_sort(&mut self) {
let len = self.len();
if len == 0 || len == 1 {
return;
}

let mid = len >> 1;
self[..mid].merge_sort();
self[mid..].merge_sort();

let mut i = 0;
let mut j = mid;
let mut vec = Vec::with_capacity(len);

while i < mid && j < len {
if self[i] <= self[j] {
vec.push(self[i].clone());
i += 1;
} else {
vec.push(self[j].clone());
j += 1;
}
}

while i < mid {
vec.push(self[i].clone());
i += 1;
}

while j < len {
vec.push(self[j].clone());
j += 1;
}

self.clone_from_slice(&vec);
}
}
+

非递归方法

    +
  • Java 实现
  • +
+
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
public static <T extends Comparable<T>> void mergeSortLoop(T[] array) {
if (array == null || array.length < 2) {
return;
}

Comparable[] help = (T[]) new Comparable[array.length];

int mergeSize = 1;

while (mergeSize < array.length) {
int left = 0;

while (left < array.length) {
int mid = left + mergeSize;

if (mid >= array.length) {
break;
}

int right = Math.min(mid + mergeSize, array.length);
mergeSorted(array, help, left, mid, right);
left = right;
}


if (mergeSize >= array.length >> 1) {
break;
}

mergeSize <<= 1;
}
}
+
    +
  • Rust 实现
  • +
+

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
#[test]
fn test_loop_merge_sort() {
for _ in 0..100 {
let mut array0: [u8; 32] = rand::random();
let mut array1 = array0.clone();
array0.loop_merge_sort();
array1.sort();
assert_eq!(array0, array1);
}
}

impl<T: Ord + Clone> MergeSort for [T] {
fn merge_sort(&mut self) {
//...
}

fn loop_merge_sort(&mut self) {
let len = self.len();
if len < 2 {
return;
}

let mut merge_size: usize = 1;
while merge_size < len {
let mut left = 0;

while left < len {
let mid = left + merge_size;
if mid >= len {
break;
}

let right = (mid + merge_size).min(len);

// merge sorted
let mut vec = Vec::with_capacity(right - left);

let mut i = left;
let mut j = mid;
while i < mid && j < right {
if self[i] <= self[j] {
vec.push(self[i].clone());
i += 1;
} else {
vec.push(self[j].clone());
j += 1;
}
}

while i < mid {
vec.push(self[i].clone());
i += 1;
}

while j < right {
vec.push(self[j].clone());
j += 1;
}

(&mut self[left..right]).clone_from_slice(&vec);

left = right;
}

if merge_size > len >> 1 {
break;
}

merge_size <<= 1;
}
}
}

求数组的小和

在一个数组中,一个数左边比它小的数的总和,叫数的小和,所有数的小和加起来叫数组小和。求数组小和。

+
+

例子:[1, 3, 4, 2, 5]

+

1 左边比自己小的数:没有
3 左边比自己小的数:1
4 左边比自己小的数:1 3
2 左边比自己小的数:1
5 左边比自己小的数:1 3 4 2

+

所以,数组的小和为 $1 + 1 + 3 + 1 + 1 + 3 + 4 + 2 = 16$

+
+
    +
  • Java 实现
  • +
+

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
public class SmallSum {
public static void main(String[] args) {
System.out.println(smallSum(new int[]{1, 3, 4, 2, 5}) + " == " + getSmallSumSimple(new int[]{1, 3, 4, 2, 5}));
}

static int getSmallSumSimple(int[] array) {
int smallSum = 0;
for (int i = 0; i < array.length; ++i) {
for (int j = 0; j < i; ++j) {
if (array[j] < array[i]) {
smallSum += array[j];
}
}
}
return smallSum;
}

static int smallSum(int[] array) {
int[] help = new int[array.length];
return doMergeSmallSum(array, help, 0, help.length);
}

static int doMergeSmallSum(int[] array, int[] help, int start, int end) {
if (end - start < 2) {
return 0;
}

int mid = start + ((end - start) >> 1);
int left = doMergeSmallSum(array, help, start, mid);
int right = doMergeSmallSum(array, help, mid, end);
return left + right + doMerge(array, help, start, mid, end);
}

static int doMerge(int[] array, int[] help, int start, int mid, int end) {
int i = start;
int j = mid;
int k = start;
int sum = 0;

while (i < mid && j < end) {
if (array[i] < array[j]) {
int t = array[i++];
help[k++] = t;
sum += t * (end - j);
} else {
help[k++] = array[j++];
}
}

while (i < mid) {
help[k++] = array[i++];
}

while (j < end) {
help[k++] = array[j++];
}

for (k = start; k < end; k++) {
array[k] = help[k];
}

return sum;
}
}

求数组中的降序对

+

例如:[3, 1, 7, 0, 2] 中的降序对有 (3, 1)(3, 0)(3, 2)(1, 0)(7, 0)(7, 2)

+
+

即求数组中每个数右边有多少个数比它小,就有多少个降序对。

+
    +
  • Rust 实现
  • +
+
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
#[test]
fn test_get_descending_pairs() {
for _ in 0..100 {
let mut array0: [u8; 32] = rand::random();
let mut array1 = array0.clone();
let set0 = array0.get_descending_pairs();
let set1 = array1.get_descending_pairs_simple();
assert_eq!(set0, set1);
}
}

trait DescendingPair<T> {
fn get_descending_pairs(&mut self) -> HashSet<(T, T)>;
fn get_descending_pairs_simple(&mut self) -> HashSet<(T, T)>;
}

impl<T: Ord + Clone + Hash> DescendingPair<T> for [T] {
fn get_descending_pairs(&mut self) -> HashSet<(T, T)> {
let mut set = HashSet::new();
if self.len() < 2 {
return set;
}

let mid = self.len() >> 1;
let mut left = self[..mid].get_descending_pairs();
let mut right = self[mid..].get_descending_pairs();
set.extend(left.drain());
set.extend(right.drain());

let mut help = Vec::with_capacity(self.len());
let mut j = 0;
let mut k = mid;
let len = self.len();

while j < mid && k < len {
if self[j] > self[k] {
let mut temp = self[k..]
.iter()
.map(|v| (self[j].clone(), v.clone()))
.collect::<HashSet<_>>();
set.extend(temp.drain());

help.push(self[j].clone());
j += 1;
} else {
help.push(self[k].clone());
k += 1;
}
}

help.extend_from_slice(&self[j..mid]);
help.extend_from_slice(&self[k..]);

assert_eq!(help.len(), self.len());
self.clone_from_slice(&help);

set
}

fn get_descending_pairs_simple(&mut self) -> HashSet<(T, T)> {
let mut set = HashSet::new();
for i in 0..self.len() {
for j in 0..i {
if self[j] > self[i] {
set.insert((self[j].clone(), self[i].clone()));
}
}
}
set
}
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/13/quick-sort/index.html b/2021/09/13/quick-sort/index.html new file mode 100644 index 0000000..61e3adc --- /dev/null +++ b/2021/09/13/quick-sort/index.html @@ -0,0 +1,668 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 快速排序 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 快速排序 +

+ + +
+ + + + +
+ + +

分区问题

二分

将一个数组分为两个区域,小于等于N在左,大于N的在右;返回右侧的起始位置。

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
static int partition(int[] array, int value, int start, int end) {
if (array == null || start >= end) {
return -1;
}

int left = -1;

for (int i = start; i < end; i++) {
if (array[i] <= value) {
if (left == -1) {
left = start;
} else {
left += 1;
}
swap(array, i, left);
}
}

return left + 1;
}

static int partition(int[] array, int value) {
return partition(array, value, 0, array.length);
}
+

输出内容:

+
1
2
3
[2, 3, 5, 1, 2, 6, 4, 3, 8, 4, 3, 5, 1, 3, 5, 8]
10
[2, 3, 1, 2, 4, 3, 4, 3, 1, 3, 6, 5, 8, 5, 5, 8]
+
    +
  • Rust 实现
  • +
+

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
#[test]
fn test_partition() {
let mut array = [4, 2, 5, 7, 5, 4, 2, 9, 3, 5, 1];
assert_eq!(array.partition(5), Index::Position(9));
assert_eq!(array.partition(3), Index::Position(4));
assert_eq!(array.partition(11), Index::Greater);
assert_eq!(array.partition(0), Index::Less);
}

#[derive(Debug, Eq, PartialEq)]
pub enum Index {
// 值比所有数组元素都小
Less,
// 能找到一个分区位置
Position(usize),
// 值比所有数组元素都大
Greater,
}

pub trait Partition<T> {
fn partition(&mut self, value: T) -> Index;
}

impl<T: Ord> Partition<T> for [T] {
// 返回大于部分的起始索引
fn partition(&mut self, value: T) -> Index {
let mut left = None;
for i in 0..self.len() {
if self[i] <= value {
if let Some(left_val) = left {
let new_left_val = left_val + 1;
self.swap(i, new_left_val);
left = Some(new_left_val);
} else {
self.swap(i, 0);
left = Some(0);
}
}
}

match left {
None => Index::Less,
Some(i) if i == self.len() - 1 => Index::Greater,
Some(i) => Index::Position(i + 1),
}
}
}

荷兰 🇳🇱 国旗问题(三分)

将一个数组分为三个区域,小于N在左,等于N在中间,大于N的在右;返回中间和右侧的起始位置。

+
    +
  • Java 实现
  • +
+
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
static void swap(int[] array, int i, int j) {
if (i == j) {
return;
}

array[i] = array[i] ^ array[j];
array[j] = array[i] ^ array[j];
array[i] = array[i] ^ array[j];
}

static int[] netherlandsFlagPartition(int[] array, int value) {
return netherlandsFlagPartition(array, value, 0, array.length);
}

static int[] netherlandsFlagPartition(int[] array, int value, int start, int end) {
if (array == null || start >= end) {
return null;
}

int left = -1;
int right = end;
int i = start;

while (i < right) {
if (array[i] < value) {
left = left == -1 ? start : (left + 1);
swap(array, left, i);
i += 1;
} else if (array[i] > value) {
right -= 1;
swap(array, right, i);
} else { // array[i] == value
i += 1;
}
}

return new int[]{left + 1, right};
}
+

输出内容:

+
1
2
[10, 13]
[2, 3, 1, 2, 4, 3, 4, 3, 1, 3, 5, 5, 5, 8, 6, 8]
+
    +
  • Rust 实现
  • +
+
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
use std::cmp::Ordering;

#[test]
fn test_netherlands_flag_partition() {
let mut array = [7, 1, 2, 0, 8, 5, 3, 9, 2, 6, 5, 1, 0, 8, 7, 4];
// sorted: [0, 0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9]
// index(hex): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]
assert_eq!(array.netherlands_flag_partition(2), (Some(4), Some(6)));
assert_eq!(array.netherlands_flag_partition(7), (Some(0xB), Some(0xD)));
assert_eq!(array.netherlands_flag_partition(-1), (None, Some(0)));
assert_eq!(array.netherlands_flag_partition(0), (None, Some(2)));
assert_eq!(
array.netherlands_flag_partition(10),
(Some(array.len()), None)
);
assert_eq!(
array.netherlands_flag_partition(9),
(Some(array.len() - 1), None)
);
}

pub trait NetherlandsFlagPartition<T> {
fn netherlands_flag_partition(&mut self, value: T) -> (Option<usize>, Option<usize>);
}

impl<T: Ord> NetherlandsFlagPartition<T> for [T] {
// 返回相等部分和大于部分的起始索引
fn netherlands_flag_partition(&mut self, value: T) -> (Option<usize>, Option<usize>) {
let len = self.len();
let mut left = None;
let mut right = None;
let mut i = 0;
while i < right.unwrap_or(len) {
match self[i].cmp(&value) {
Ordering::Less => {
match left {
None => {
self.swap(0, i);
left = Some(0);
}
Some(left_value) => {
let new_left = left_value + 1;
self.swap(new_left, i);
left = Some(new_left);
}
}
i += 1;
}
Ordering::Equal => {
i += 1;
}
Ordering::Greater => {
match right {
None => {
self.swap(len - 1, i);
right = Some(len - 1);
}
Some(right_value) => {
let new_right = right_value - 1;
self.swap(new_right, i);
right = Some(new_right);
}
}

// i 不要自增,让下一次循环检查新换到前面的值
}
}
}

(left.map(|v| v + 1), right)
}
}
+
    +
  • Rust 实现(用枚举表示结果)
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
use std::cmp::Ordering;

#[test]
fn test_netherlands_flag_partition() {
let mut array = [7, 1, 2, 0, 8, 5, 3, 9, 2, 6, 5, 1, 0, 8, 7, 4];
assert_eq!(
array.netherlands_flag_partition(2),
NetherlandsFlagResult::Three(4, 6)
);
assert_eq!(
array.netherlands_flag_partition(7),
NetherlandsFlagResult::Three(11, 13)
);
assert_eq!(
array.netherlands_flag_partition(-1),
NetherlandsFlagResult::Greater
);
assert_eq!(
array.netherlands_flag_partition(0),
NetherlandsFlagResult::ValueStart(2)
);
assert_eq!(
array.netherlands_flag_partition(10),
NetherlandsFlagResult::Less
);
assert_eq!(
array.netherlands_flag_partition(9),
NetherlandsFlagResult::ValueEnd(15)
);

let mut array = [2, 2, 2, 2, 2];
assert_eq!(
array.netherlands_flag_partition(2),
NetherlandsFlagResult::Equal
);
}

#[derive(Debug, Eq, PartialEq)]
pub enum NetherlandsFlagResult {
/// 分为三部分,分别是 < value, == value, > value, 返回后两部分的起始索引
Three(usize, usize),
/// 分为两部分,== value, > value, 返回第二部分的起始索引
ValueStart(usize),
/// 分为两部分,< value, == value, 返回第二部分的起始索引
ValueEnd(usize),
/// 所有值都小于 value
Less,
/// 所有值都大于 value
Greater,
/// 所有值都等于 value
Equal,
}

pub trait NetherlandsFlagPartition<T> {
fn netherlands_flag_partition(&mut self, value: T) -> NetherlandsFlagResult;
}

impl<T: Ord> NetherlandsFlagPartition<T> for [T] {
// 返回相等部分和大于部分的起始索引
fn netherlands_flag_partition(&mut self, value: T) -> NetherlandsFlagResult {
let len = self.len();
let mut left = None;
let mut right = None;
let mut i = 0;
while i < right.unwrap_or(len) {
match self[i].cmp(&value) {
Ordering::Less => {
match left {
None => {
self.swap(0, i);
left = Some(0);
}
Some(left_value) => {
let new_left = left_value + 1;
self.swap(new_left, i);
left = Some(new_left);
}
}
i += 1;
}
Ordering::Equal => {
i += 1;
}
Ordering::Greater => {
match right {
None => {
self.swap(len - 1, i);
right = Some(len - 1);
}
Some(right_value) => {
let new_right = right_value - 1;
self.swap(new_right, i);
right = Some(new_right);
}
}

// i 不要自增,让下一次循环检查新换到前面的值
}
}
}

match (left.map(|v| v + 1), right) {
(None, Some(i)) => {
if i == 0 {
NetherlandsFlagResult::Greater
} else {
NetherlandsFlagResult::ValueStart(i)
}
}
(Some(i), None) => {
if i >= self.len() {
NetherlandsFlagResult::Less
} else {
NetherlandsFlagResult::ValueEnd(i)
}
}
(Some(i), Some(j)) => {
if i >= self.len() {
NetherlandsFlagResult::Greater
} else {
NetherlandsFlagResult::Three(i, j)
}
}
(None, None) => NetherlandsFlagResult::Equal,
}
}
}
+

快速排序

v1.0

步骤:

+
    +
  1. 选择数组最后一个元素 X,在 0..array.length-1 的范围上进行二分,小于等于 X 的在左,大于 X 的在右;
  2. +
  3. X 与右侧的第一个元素交换;
  4. +
  5. X 左侧与右侧的数组分别进行上述操作,进行递归,过程中 X 不需要再移动。
  6. +
+

时间复杂度:$O(N)$

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void quickSort1(int[] array) {
recurse1(array, 0, array.length);
}

static void recurse1(int[] array, int start, int end) {
if (array == null || start >= end - 1) {
return;
}

int pivot = array[end - 1];
int idx = partition(array, pivot, start, end - 1);
swap(array, idx, end - 1);
recurse1(array, start, idx);
recurse1(array, idx + 1, end);
}
+
    +
  • Rust 实现
  • +
+
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
#[test]
fn test_quick_sort1() {
for _ in 0..1000 {
let mut array0: [u8; 32] = rand::random();
let mut array1 = array0.clone();

array0.sort();
array1.quick_sort1();

assert_eq!(array0, array1);
}
}

pub trait QuickSort1 {
fn quick_sort1(&mut self);
}

impl<T: Ord + Clone> QuickSort1 for [T] {
fn quick_sort1(&mut self) {
let len = self.len();
if len < 2 {
return;
}

let value = self[len - 1].clone();

match self[..len - 1].partition(value) {
// value 比所有元素都小,把 value 挪到第一个位置,排序剩下的
Index::Less => {
self.swap(0, len - 1);
self[1..].quick_sort1();
}
// 把 value 与第一个大于区的数交换
Index::Position(i) => {
self.swap(i, len - 1);
self[..i].quick_sort1();
self[i + 1..].quick_sort1();
}
// value比所有元素都大,不动,排序前面所有的
Index::Greater => {
self[..len - 1].quick_sort1();
}
}
}
}
+

v2.0

    +
  1. 选择数组一个元素 X,进行荷兰国旗三分,小于 X 的在左,等于 X 的在中间,大于 X 的在右;
  2. +
  3. X 左侧与右侧的数组分别进行上述操作,进行递归,过程中位于中间的所有 X 不需要再移动。
  4. +
+

时间复杂度:$O(N)$

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static void quickSort2(int[] array) {
recurse2(array, 0, array.length);
}

static void recurse2(int[] array, int start, int end) {
if (array == null || start >= end - 1) {
return;
}

int pivot = array[end - 1];
int[] idxs = netherlandsFlagPartition(array, pivot, start, end);
if (idxs == null) {
return;
}
recurse2(array, start, idxs[0]);

if (idxs[1] < end - 1) {
recurse2(array, idxs[1], end);
}
}
+
    +
  • Rust 实现
  • +
+
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
#[test]
fn test_quick_sort2() {
for _ in 0..1000 {
let mut array0: [i32; 32] = random();
let mut array1 = array0.clone();

array0.sort();
array1.quick_sort2();

assert_eq!(array0, array1);
}
}

pub trait QuickSort2 {
fn quick_sort2(&mut self);
}

impl<T: Ord + Clone> QuickSort2 for [T] {
fn quick_sort2(&mut self) {
if self.len() < 2 {
return;
}

let value = self[0].clone();

match self.netherlands_flag_partition(value) {
NetherlandsFlagResult::Three(start, end) => {
self[..start].quick_sort2();
self[end..].quick_sort2();
}
NetherlandsFlagResult::ValueStart(start) => {
self[start..].quick_sort2();
}
NetherlandsFlagResult::ValueEnd(end) => {
self[..end].quick_sort2();
}
NetherlandsFlagResult::Less | NetherlandsFlagResult::Greater => {
self.quick_sort2();
}
NetherlandsFlagResult::Equal => {
return;
}
}
}
}
+

v3.0

将 v2.0 中选择数组元素改为随机选择,其他不变。

+
+
    +
  1. 划分值越靠近中间,性能越好;越靠近两边性能越差;
  2. +
  3. 随机算一个数进行划分的目的就是让好情况和坏情况都变成概率事件;
  4. +
  5. 把每一种情况都列出来,会有每种情况下的复杂度,但概率都是 $1/N$;
  6. +
  7. 所有情况都考虑,则时间复杂度就是这种概率模型下的长期期望。
  8. +
+
+

时间复杂度:$O(N \times logN)$
额外空间复杂度:$O(N \times logN)$

+
    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
static void quickSort3(int[] array) {
recurse3(array, 0, array.length);
}

static void recurse3(int[] array, int start, int end) {
if (array == null || start >= end - 1) {
return;
}

int pi = (int) (Math.random() * (end - start));
System.out.println(start + pi);
int pivot = array[start + pi];
int[] idxs = netherlandsFlagPartition(array, pivot, start, end);
if (idxs == null) {
return;
}
recurse3(array, start, idxs[0]);

if (idxs[1] < end - 1) {
recurse3(array, idxs[1], end);
}
}
+
    +
  • Rust 实现
  • +
+
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
#[test]
fn test_quick_sort3() {
for _ in 0..1000 {
let mut array0: [i32; 32] = random();
let mut array1 = array0.clone();

array0.sort();
array1.quick_sort3();

assert_eq!(array0, array1);
}
}

pub trait QuickSort3 {
fn quick_sort3(&mut self);
}

impl<T: Ord + Clone> QuickSort for [T] {
fn quick_sort3(&mut self) {
if self.len() < 2 {
return;
}

let index = rand::thread_rng().gen_range(0..self.len());
let value = self[index].clone();

match self.netherlands_flag_partition(value) {
NetherlandsFlagResult::Three(start, end) => {
self[..start].quick_sort3();
self[end..].quick_sort3();
}
NetherlandsFlagResult::ValueStart(start) => {
self[start..].quick_sort3();
}
NetherlandsFlagResult::ValueEnd(end) => {
self[..end].quick_sort3();
}
NetherlandsFlagResult::Less | NetherlandsFlagResult::Greater => {
self.quick_sort3();
}
NetherlandsFlagResult::Equal => {
return;
}
}
}
}
+

Swap 函数

    +
  • Java 实现
  • +
+
1
2
3
4
5
6
7
8
9
static void swap(int[] array, int i, int j) {
if (i == j) {
return;
}

array[i] = array[i] ^ array[j];
array[j] = array[i] ^ array[j];
array[i] = array[i] ^ array[j];
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/14/design-pattern-3/index.html b/2021/09/14/design-pattern-3/index.html new file mode 100644 index 0000000..8fa8662 --- /dev/null +++ b/2021/09/14/design-pattern-3/index.html @@ -0,0 +1,462 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 设计模式(三) | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 设计模式(三) +

+ + +
+ + + + +
+ + +

装饰器(Decorator)

+

Component:定义一个对象接口,可以给这些对象动态地添加职责。
ConcreteComponent:定义对象,可以给这个对象添加一些职责。
Decorator:维持一个指向 Component 对象的指针,并定义一个与 Component 接口一致的接口。
ConcreteDecorator:实际的装饰对象,向组件添加职责。

+
+
    +
  • Java 实现
  • +
+
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
public class DecoratorPattern {

public static void main(String[] args) {
Component component0 = new ADecorator(new BDecorator(new Component0()));
component0.doSth();
System.out.println();
Component component1 = new BDecorator(new ADecorator(new BDecorator(new ADecorator(new Component1()))));
component1.doSth();
System.out.println();
}

public interface Component {
void doSth();
}

public static class Component0 implements Component {

@Override
public void doSth() {
System.out.print("0");
}
}

public static class Component1 implements Component {

@Override
public void doSth() {
System.out.print("1");
}
}

public static abstract class Decorator implements Component {
protected Component component;
public Decorator(Component component) {
this.component = component;
}
}

public static class ADecorator extends Decorator {

public ADecorator(Component component) {
super(component);
}

@Override
public void doSth() {
component.doSth();
System.out.print("A");
}
}

public static class BDecorator extends Decorator {

public BDecorator(Component component) {
super(component);
}

@Override
public void doSth() {
component.doSth();
System.out.print("B");
}
}
}
+
    +
  • Rust 实现
  • +
+
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
pub trait Component {
fn do_sth(&self);
}

pub struct Component1;

impl Component for Component1 {
fn do_sth(&self) {
print!("1");
}
}

pub struct Component2;

impl Component for Component2 {
fn do_sth(&self) {
print!("2");
}
}

pub trait Decorator<T: Component>: Component {
fn wrap(inner: T) -> Self;
}

struct DecoratorA<T> {
inner: T,
}

impl<T: Component> Component for DecoratorA<T> {
fn do_sth(&self) {
self.inner.do_sth();
print!("A");
}
}

impl<T: Component> Decorator<T> for DecoratorA<T> {
fn wrap(inner: T) -> Self {
Self { inner }
}
}

struct DecoratorB<T> {
inner: T,
}

impl<T: Component> Component for DecoratorB<T> {
fn do_sth(&self) {
self.inner.do_sth();
print!("B");
}
}

impl<T: Component> Decorator<T> for DecoratorB<T> {
fn wrap(inner: T) -> Self {
Self { inner }
}
}

#[test]
fn test_decorator() {
let c1 = Component1;
c1.do_sth();
println!();
let ab1 = DecoratorA::wrap(DecoratorB::wrap(Component1));
ab1.do_sth();
println!();
let abbaa2 = DecoratorA::wrap(DecoratorB::wrap(DecoratorB::wrap(DecoratorA::wrap(
DecoratorA::wrap(Component2),
))));
abbaa2.do_sth();
println!();

// 在Rust中,如果不需要运行时动态装饰,就没有必要产生很多小对象
// 装饰了好几轮,最后占用内存还是 Component2 的大小
assert_eq!(
std::mem::size_of::<
DecoratorA<DecoratorB<DecoratorB<DecoratorA<DecoratorA<Component2>>>>>,
>(),
0
);
}
+

输出内容:

+
1
2
3
1
1BA
2AABBA
+
+

优点:比继承更灵活,避免类爆炸;可以组合;装饰器和构件可以独立变化,符合开闭原则。
缺点:产生很多小对象,增加系统复杂度和理解难度,调试困难。

+
+
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/14/sorting-algorithm-in-rust-std/index.html b/2021/09/14/sorting-algorithm-in-rust-std/index.html new file mode 100644 index 0000000..56cd642 --- /dev/null +++ b/2021/09/14/sorting-algorithm-in-rust-std/index.html @@ -0,0 +1,451 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Rust 标准库中的排序算法[WIP] | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + + + + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/23/redis-basics/index.html b/2021/09/23/redis-basics/index.html new file mode 100644 index 0000000..5212fc1 --- /dev/null +++ b/2021/09/23/redis-basics/index.html @@ -0,0 +1,721 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Redis 学习笔记(基础)[WIP] | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ Redis 学习笔记(基础)[WIP] +

+ + +
+ + + + +
+ + +

1. 基本架构

一个键值数据库需要有哪些功能/结构/特性。

+
    +
  • 支持多种数据结构
  • +
  • PUT、GET、DELETE、SCAN
  • +
  • 设置过期
  • +
  • 索引结构
  • +
  • 对外接口,Socket、动态链接库等等
  • +
  • 存储方式,内存、硬盘(持久化)
  • +
  • 高可用
  • +
  • 横向扩展
  • +
  • 功能可扩展性
  • +
+
+

2. 数据结构

Redis 接收到一个键值对操作后,能以 微秒 级别的速度找到数据,并快速完成操作。

+

Redis 的值有如下数据类型:

+
    +
  • String(字符串)
  • +
  • List(列表)
  • +
  • Hash(哈希)
  • +
  • Set(集合)
  • +
  • Sorted Set(有序集合)
  • +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
数据类型数据结构
String简单动态字符串
List双向链表/压缩列表
Hash压缩列表/哈希表
Set整数数组/哈希表
Sorted Set压缩列表/跳表
+
+

Redis 使用一个全局的哈希表来保存所有键值对,可以在 $O(1)$ 的时间内查找到键值对。

+

一个哈希表就是一个数组,数组元素为哈希桶,每个哈希桶存放一个链表,连接着哈希值映射到该桶中的多个键值对。

+
1
2
3
4
5
|0|1|2|3|4|5|
| |
| ---> entry4
|
---> entry1 ---> entry2 ---> entry3
+

哈希冲突及rehash

当哈希冲突过多时,链表过长,导致查找效率下降,Redis会对哈希表进行rehash。

+

为了 使 rehash 更高效,Redis 使用了两个全局哈希表:哈希表 1 和 哈希表 2 。默认情况下使用哈希表 1 ,哈希表 2 没有分配空间,当键值对增多时,Redis开始进行rehash:

+
    +
  1. 给哈希表 2 分配更大的空间,例如是当前哈希表 1 大小的两倍;
  2. +
  3. 把哈希表 1 中的数据重新映射并拷贝到哈希表 2 中;
  4. +
  5. 释放哈希表 1 的空间。
  6. +
+

然后使用哈希表 2 保存数据,下次rehash再使用哈希表 1 。

+

避免一次性拷贝大量数据造成 Redis 线程阻塞,Redis采用了渐进式rehash。

+

渐进式rehash

Redis可以保持处理用户请求,每处理一个请求,就顺带将哈希表 1 中的一个桶的所有entries拷贝到哈希表 2 中。这样就能把一次性大量拷贝的开销,分摊到了多次请求中,避免了耗时可能造成的阻塞。

+

数据结构的操作效率

整数数组双向链表 都是顺序读写,操作复杂度都是 $O(N)$。

+

压缩列表

压缩列表表头有 列表长度(zlbytes)列表尾偏移量(zltail)列表中entry个数(zllen) 三个字段,表尾有一个 zlend 字段表示 列表结束

+
1
| zlbytes | zltail | zllen | entry1 | entry2 | ... | entryN | zlend |
+

查找表头、表尾元素的复杂度为 $O(1)$,查找其他元素的复杂度为 $O(N)$。

+

跳表

跳表 是在 有序链表 的基础上增加了多级索引,通过索引位置的几次跳转,实现数据快速定位。

+
1
2
3
4
5
1 ----------------------> 27 -----------------------> 100 // 二级索引
↓ ↓ ↓
1 --------> 11 ---------> 27 ---------> 50 ---------> 100 // 一级索引
↓ ↓ ↓ ↓ ↓
1 --> 5 --> 11 --> 20 --> 27 --> 33 --> 50 --> 62 --> 100 --> 156 // 链表
+

跳表 的查找复杂度为 $O(logN)$。

+

时间复杂度

数据结构的时间复杂度

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
数据结构时间复杂度
哈希表$O(1)$
跳表$O(logN)$
双向链表$O(N)$
压缩列表$O(N)$
整数数组$O(N)$
+
+

不同操作的时间复杂度

    +
  1. 单元数操作是基础。每一种集合类型对单个数据实现的增删改查操作,复杂度由数据结构决定。
  2. +
  3. 范围操作很耗时。返回一个范围内的数据,复杂度一般是 $O(N)$,应尽量避免,可以使用 2.8 版本之后的 HSCANSSCANZSCAN 等命令进行渐进式遍历。
  4. +
  5. 统计操作通常高效。集合类型对集合中的元素个数由记录,例如 LLENSCARD
  6. +
  7. 例外情况只有几个。压缩列表和双向列表的会记录表头和表尾的偏移量,对它们的操作复杂度只有 $O(1)$,例如 LPOPRPOPLPUSHRPUSH
  8. +
+

问题

整数数组和压缩列表在查找时间复杂度方面并没有很大优势,为什么Redis还会把它作为底层数据结构?

+

主要有两方面原因:

+
    +
  1. 内存利用率。Redis 是内存数据库,大量数据存储在内存中,整数数组和压缩列表结构比较紧凑,相比链表结构占用内存更少,可以提高内存利用率。
  2. +
  3. 数组对CPU高速缓存支持更友好。集合元素较少时,使用内存紧凑的排列方式,可以利用CPU高速缓存,尤其在一个缓存行内(64字节)有更高效的访问效率。当元素数量超过阈值后,为避免复杂度太高,可以转为哈希表和跳表。
  4. +
+

3. 高性能 IO 模型

Redis 的网络 IO 和键值对读写是由单个线程完成的;其他功能,例如持久化、异步删除、集群数据同步,是由额外的线程执行的。

+

Redis使用 IO多路复用,即一个线程处理多个 IO 流。

+

可能存在的瓶颈(来自Kaito):

+
    +
  1. 单个请求耗时会导致后续所有请求阻塞等待,包括以下几种:
      +
    • 操作bigkey,分配、释放内存(4.0推出了lazy-free,可以异步执行bigkey释放)
    • +
    • 使用复杂度较高的命令,排序、union、查询全量数据
    • +
    • 大量key集中过期
    • +
    • 淘汰策略,内存超过Redis内存上线,每次写入都要淘汰一些key,导致耗时变长
    • +
    • AOF 开启 always
    • +
    • 主从同步生成 RDB 时的 fork
    • +
    +
  2. +
  3. 并发量大时,单线程处理客户端请求,无法利用多核(6.0推出了多线程,可利用多核CPU处理用户请求)
  4. +
+
+

4. AOF(Append Only File)

Redis 的 AOF 是写后日志,先执行命令,把数据写入内存,然后再记录日志。

+

不会阻塞当前写操作,执行完命令还没来得及记日志就宕机的话,会有数据丢失的风险。

+
1
2
3
4
5
6
7
*3 --> 这个命令有三个部分
$3 --> 第一部分的长度
set --> 第一部分的内容
$5
hello
$5
world
+

三种写回策略

    +
  • Always,同步写回,每个命令执行完立马写回磁盘
  • +
  • EverySec,每秒写回,写到AOF内存缓存,每秒写回一次
  • +
  • No,写到AOF内存缓存,由操作系统决定何时将其写回
  • +
+

日志重写

当日志文件过大时,可以对日志进行重写。可以把某些多条修改同一个键值对的命令合并为一条。

+

重写流程:

+
    +
  1. 主线程 fork 出 bgrewriteaof 子进程,主线程在将新指令写入 AOF 缓存时,还会写入 AOF 重写缓存;
  2. +
  3. 子进程将 fork 拷贝出来的内存快照写成命令日志;
  4. +
  5. 写完后将AOF重写缓存中的日志写到这个新的日志中,然后就可以用这个新日志替换旧日志了。
  6. +
+

其他要点

    +
  1. fork 使用的是操作系统的写时复制(Copy On Write)机制,并不会直接拷贝所有内存。但是会拷贝父进程的的内存页表,如果页表较大,可能导致阻塞。
  2. +
  3. 主进程在提供服务时,如果操作的是bigkey,写时复制会导致内存分配;如果开启了内存大页(huge page)机制,内存分配会产生阻塞。(所以使用Redis通常要关闭内存大页,其对使用 fork 的程序不友好)
  4. +
  5. AOF 重写可以使用 bgrewriteaof 命令手动执行,也由两个配置项控制自动触发:
      +
    • auto-aof-rewrite-min-size:表示运行AOF重写的最小大小,默认为 64MB;
    • +
    • auto-aof-rewrite-percentage:当前AOF文件大小和上一次重写后AOF文件大小的差值,除以上一次重写AOF文件大小,即增量和上一次全量的比值,默认为 100。
      AOF 文件大小同时满足这两个配置项,会自动触发 AOF 重写。
    • +
    +
  6. +
+
+

5. 内存快照 RDB

把某一时刻的内存数据以文件的形式写到磁盘上,即快照。这个快照文件即 RDB 文件(Redis DataBase 的缩写)。

+

在数据恢复时,可直接把 RDB 文件读入内存,很快完成恢复。

+

Redis 执行的是全量快照。

+

可以使用 savebgsave 来生成 RDB 文件;save在主线程中执行,会阻塞;bgsave 会创建子进程专门进行 RDB 文件写入,不会阻塞。

+

快照进行时数据如何修改

使用 fork 创建子进程,该子进程会跟主线程共享所有内存数据;利用操作系统的写时复制技术,当主进程修改数据时,会重新分配空间生成该数据的副本,并使用该副本提供服务,bgsave 子进程仍然使用未修改的数据进行快照写入。

+

快照频率

频繁执行全量快照有两方面开销:

+
    +
  1. 给磁盘带来压力
  2. +
  3. fork 本身可能阻塞主线程,如果频繁 fork 会导致主线程阻塞所以,如果有一个 bgsave 在运行,就不会启动第二个了
  4. +
+

4.0 中提出了混合使用AOF和RDB的方法,即快照以一定的频率执行,在快照间以AOF的形式记录这期间的命令。实现:

+
    +
  1. 避免了频繁 fork 对主线程的影响
  2. +
  3. 减少了 AOF 文件大小,提高了数据恢复效率
  4. +
+

在配置文件中设置:

+
1
aof-use-rdb-preamble yes
+

三点建议

    +
  1. 数据不能丢失时,使用 AOF 和 RDB 混合方案
  2. +
  3. 允许分钟级别的数据丢失,使用 RDB
  4. +
  5. 只用 AOF 的话,优先使用 everysec,在可靠性和性能之间比较平衡
  6. +
+

课后题:资源风险(Kaito)

+
    +
  1. 考虑 fork 导致多大程度的写时复制,是否会造成 OOM,或者 swap 到磁盘上导致性能降低;
  2. +
  3. CPU 核数较少时,Redis的其他子进程会跟主线程竞争CPU,导致性能下降;
  4. +
  5. 如果 Redis 进程绑定了 CPU,子进程会继承它的 CPU 亲和属性,与父进程争夺同一个 CPU 资源,导致效率下降。所以如果开启RDB和AOF,一定不要绑定CPU。
  6. +
+
+

6. 主从同步

可靠性分两方面:

+
    +
  1. 数据少丢失(由RDB、AOF保证);
  2. +
  3. 服务少中断(通过增加副本冗余量保证)
  4. +
+

读写分离:主库、从库都可以执行读操作,主库限制性写操作,然后同步给从库。

+

如果都允许写,会造成各实例副本不一致,需要涉及加锁、协商等各种操作,产生巨额开销。

+

主从第一次同步

在从库实例上执行:

+
1
replicaof [主库ip] [主库port]
+

三个阶段

    +
  1. 主从建立链接、协商同步,从库给主库发送 psync 命令,表示要进行数据同步,主库根据这个命令的参数来启动复制。psync 命令包含了主库的 runID 和复制进度 offset 两个参数。主库收到 psync 命令后,用 FULLRESYNC 响应命令带上两个参数,主库的 runID 和主库目前的复制进度 offset 给从库,从库会记住这两个参数。
  2. +
+
+

runID:每个 Redis 实例启动时自动生成的一个随机 ID,唯一标识一个实例。第一次复制时从库不知道主库的 runID,使用 ?
offset:第一次复制设置为 -1

+
+
    +
  1. 主库执行 bgsave 生成 RDB 文件,并发送给从库。从库收到 RDB 文件后,清空数据库并加载 RDB 文件。此时主库不会停止服务,但在内存中会有专门的 replication buffer,记录 RDB 文件生成后收到的所有写操作。
  2. +
  3. 主库把 replication buffer 中的修改操作发送给从库执行。
  4. +
+

主从级联

使用“主-从-从”模式分担主库压力。二级从库可以选择一个内存较高的从库进行同步。

+

主从间使用基于长连接的命令传播。

+

网络断开

2.8 前网络闪断会造成重新全量复制,2.8 后可以增量复制,实现继续同步。

+

(Kaito)主库除了将所有写命令传给从库之外,也会在 repl_backlog_buffer 中记录一份。当从库断线重连后,会发送 psync $master_runid $offset,主库就能通过 $offsetrepl_backlog_buffer 中找到从库断开的位置,只发送 $offset 之后的增量给从库。

+
+

repl_backlog_buffer:为了解决从库断开后找到主从差异而设计的环形缓冲区。配置大一点,可以减少全量同步的频率。

+

replication buffer:客户端、从库与 Redis 通信时,Redis 都会分配一个内存 buffer 用于交互,把数据写进去并通过 socket 发送到对端。当对端为从库时,该 buffer 只负责传播写命令,通常叫做 replication buffer。这个 buffer 由 client-output-buffer-limit 参数控制,如果过小或者从库处理过慢,Redis 会强制断开这个链接。

+
+

为啥不用 AOF 同步

    +
  1. 相比 RDB 文件更大,效率低;
  2. +
  3. 必须打开 AOF,数据丢失不敏感业务没必要开启
  4. +
+
+

7. 哨兵


+

8. 哨兵集群


+

9. 切片集群


+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/09/26/redis-practices/index.html b/2021/09/26/redis-practices/index.html new file mode 100644 index 0000000..e95498f --- /dev/null +++ b/2021/09/26/redis-practices/index.html @@ -0,0 +1,501 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Redis 学习笔记(实践)[WIP] | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ Redis 学习笔记(实践)[WIP] +

+ + +
+ + + + +
+ + +

1. 降低 String 内存开销


+

2. 统计


+

3. GEO


+

4. 时间序列数据

+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2021/10/08/heap-sort/index.html b/2021/10/08/heap-sort/index.html new file mode 100644 index 0000000..1cee93e --- /dev/null +++ b/2021/10/08/heap-sort/index.html @@ -0,0 +1,518 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 堆排序 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 堆排序 +

+ + +
+ + + + +
+ + +

使用数组结构表示堆结构,元素从索引 0 开始,则索引 i 位置:

+
    +
  • 父节点索引为 $(i - 1) / 2$
  • +
  • 左孩子索引为 $2 \times i + 1$
  • +
  • 右孩子索引为 $2 \times i + 2$
  • +
+
+

实现

    +
  • Java 实现
  • +
+
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
public class Heap {

public static void main(String[] args) {
Heap heap = new Heap(1000);
heap.push(-6);
heap.push(3);
heap.push(-1);
heap.push(0);
heap.push(9);
heap.push(-4);
heap.push(5);
heap.push(7);
heap.push(-2);
heap.push(9);
heap.push(13);

System.out.println(heap);

while (!heap.isEmpty()) {
System.out.println(heap.pop());
System.out.println(heap);
}
}

private final int[] data;
private final int limit;
private int heapSize;

public Heap(int limit) {
this.limit = limit;
this.data = new int[limit];
this.heapSize = 0;
}

public void push(int value) {
if (heapSize >= limit) {
throw new RuntimeException("heapSize must not exceed limit");
}

this.data[heapSize++] = value;
heapInsert(heapSize - 1);
}

public boolean isEmpty() {
return heapSize == 0;
}

public Integer pop() {
if (isEmpty()) {
return null;
}

swap(--heapSize, 0);
int result = this.data[heapSize];
this.data[heapSize] = 0;
heapify(0);
return result;
}

private void heapInsert(int index) {
while (index > 0 && this.data[index] > this.data[(index - 1) / 2]) {
swap(index, (index - 1) / 2);
index = (index - 1) / 2;
}
}

private void swap(int i, int j) {
if (i != j) {
this.data[i] = this.data[i] ^ this.data[j];
this.data[j] = this.data[i] ^ this.data[j];
this.data[i] = this.data[i] ^ this.data[j];
}
}

private void heapify(int index) {
int leftIndex = 2 * index + 1;

while (leftIndex < heapSize) {
int rightIndex = leftIndex + 1;
int greatestIndex = rightIndex < heapSize && this.data[rightIndex] > this.data[leftIndex] ? rightIndex : leftIndex;

if (this.data[greatestIndex] <= this.data[index]) {
break;
}

swap(index, greatestIndex);
index = greatestIndex;
leftIndex = 2 * index + 1;
}
}

@Override
public String toString() {
StringBuilder b = new StringBuilder();
b.append('[');
for (int i = 0; i<heapSize; i++) {
b.append(data[i]);
if (i != heapSize - 1)
b.append(", ");
}
b.append(']');

return b.toString();
}
}
+

输出内容:

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
[13, 9, 5, 3, 9, -4, -1, -6, -2, 0, 7]
13
[9, 9, 5, 3, 7, -4, -1, -6, -2, 0]
9
[9, 7, 5, 3, 0, -4, -1, -6, -2]
9
[7, 3, 5, -2, 0, -4, -1, -6]
7
[5, 3, -1, -2, 0, -4, -6]
5
[3, 0, -1, -2, -6, -4]
3
[0, -2, -1, -4, -6]
0
[-1, -2, -6, -4]
-1
[-2, -4, -6]
-2
[-4, -6]
-4
[-6]
-6
[]
+
    +
  • Rust 实现
  • +
+
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
pub struct Heap<T>(Vec<T>);

impl<T: Ord> Heap<T> {
pub fn new() -> Self {
Self(Vec::new())
}

pub fn push(&mut self, value: T) {
self.0.push(value);
self.heap_insert();
}

pub fn pop(&mut self) -> Option<T> {
if self.0.is_empty() {
return None;
}

let last = self.0.len() - 1;
self.0.swap(0, last);
let result = self.0.pop();
self.heapify();
result
}

fn heapify(&mut self) {
let len = self.0.len();

let mut index = 0;
let mut left = index * 2 + 1;

while left < len {
let right = left + 1;
let greatest = if right < len && self.0[left] < self.0[right] {
right
} else {
left
};

if self.0[greatest] <= self.0[index] {
break;
}

self.0.swap(index, greatest);
index = greatest;
left = index * 2 + 1;
}
}

fn heap_insert(&mut self) {
if self.0.is_empty() {
return;
}

let mut index = self.0.len() - 1;
if index == 0 {
return;
}
let mut parent = (index - 1) / 2;

while self.0[parent] < self.0[index] {
self.0.swap(index, parent);
index = parent;
if index == 0 {
break;
}
parent = (index - 1) / 2;
}
}
}

impl<T: Ord> Iterator for Heap<T> {
type Item = T;

fn next(&mut self) -> Option<Self::Item> {
self.pop()
}
}

#[test]
fn test_heap() {
for _ in 0..1000 {
let array: [u8; 32] = rand::random();
let sorted = {
let mut s = array.clone();
s.sort_by(|a, b| b.cmp(a));
s
};

let mut heap = Heap::new();

for a in array {
heap.push(a);
}

let heap_sorted: Vec<u8> = heap.collect();

assert_eq!(heap_sorted, sorted);
}
}
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2022/08/13/sync-async-blocking-nonblocking/index.html b/2022/08/13/sync-async-blocking-nonblocking/index.html new file mode 100644 index 0000000..6c9d2a2 --- /dev/null +++ b/2022/08/13/sync-async-blocking-nonblocking/index.html @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 同步与异步,阻塞与非阻塞 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 同步与异步,阻塞与非阻塞 +

+ + +
+ + + + +
+ + +

想写这样一篇总结也是因为在互联网上看了太多乱七八糟的说法,往往让读者越看越糊涂。这些说法往往给我这样的感觉:

+
    +
  1. 没有先讲清楚在形容什么:同步、异步、阻塞、非阻塞通常作为形容词使用,无论是用在日常语境,还是用在编程领域内部,如果你不知道这些形容词是放在什么名词之前就开始讲什么意思,甚至一段话中掺杂多个名词去形容而不说明,那就会给人不知所云的感觉。
  2. +
  3. 概念与实现混为一谈:同步阻塞、异步非阻塞是非常常见的组合方式,所以在讲同步、异步的概念时,它们忍不住拿这些具体实现来讲概念,也就顶多能让读者理解这些固定搭配,难以活学活用(其实能不能做到前者都存疑,甚至作者自己真的懂吗?)。
  4. +
  5. 不恰当的比喻:比喻的使用是为了帮助表达,本体和喻体之间当然是不同的事物(否则就不是比喻了),但是讲了个生动的比喻,却没有把本体与喻体之间的对应关系讲清楚,或者没有讲清楚这个比喻的边界,给话题引入了不必要的复杂性,起到了相反的作用。
  6. +
+

所以,我打算好好聊一下我对这个话题的理解,尽可能不要犯我认为别人犯过的这些错误,欢迎读者监督。

+

同步与异步

同步这个词在日常语境下与计算机是有着一些不同的。日常语境下,同步经常用在同时进行的事情上,比如“多个平台同步直播卖货”,“推动新时代四化同步发展”,当然它们之间是经过协调一致的,不是无组织无纪律各行其是的。

+

而在编程领域,“同步”和“异步”通常用来是形容“任务”、“函数”等可执行对象的(以下统一称作“任务”);当然也有用来形容“API”的,此时它们表示的是一种具体实现的风格,即“同步风格的API”、“异步风格的API”,它跟前者有关系也有区别。

+

那它们究竟是什么意思呢?

+

无论是同步还是异步,都一定是用来形容多个任务的,我们可以说这两个任务或者这三个函数是同步或者异步执行的,但是一个任务不存在同步或者异步。同步指的是多个任务一个一个执行,不存在时间重叠的情况,异步指的是多个任务不一个一个执行,可能存在时间重叠的情况。

+
+

有的说法硬要在讲清楚这个概念之前,先把这个任务假设成一个异步函数,再把它分成调用和获取结果两个步骤,开始谈什么消息,打比方讲什么先打了个电话订餐,又接了个电话通知,然后告诉你这叫异步,这是很容易造成误解的。即便要拆成俩,单个任务的调用和获取结果也一定是一前一后,不可能先获取结果再调用,也不可能同时进行,这两个步骤是同步的,不以具体实现为转移,它们只是可能跟另一个任务是异步的,拆成俩徒增复杂度,没有任何必要。所以干脆不要拆,也不要聊具体实现,我们说一个任务,它就是一个任务,就是执行一段时间拿到结果,不要拆开。比如“吃外卖”,就等于“下单-收到电话-取餐-吃”这整个过程,反正经过了一段时间,不要在意内部细节

+
+

那么,同步和异步应该怎么使用呢,比如;

+
    +
  1. 我先吃了个外卖,然后打了一会游戏,吃外卖和打游戏这两个任务就是同步的。
  2. +
  3. 我先吃了个外卖,然后打了一会游戏,又写了会代码,这三个任务也是同步的。
  4. +
  5. 在 2. 的基础上,我在吃外卖的过程中还听了一段时间的音乐,那么听音乐和吃外卖是异步的(不要管我什么时候开的音乐,什么时候关的音乐)。
  6. +
  7. 在 2. 的基础上,打游戏期间都是保证把音乐关掉了的,但是吃外卖和写代码期间都听了一会音乐,那么听音乐和玩游戏是同步的,和吃外卖、写代码是异步的。
  8. +
+

是不是很简单,只要按照那个定义去套就行了。但是有一点要注意,4. 里面的 “打游戏期间都是保证把音乐关掉了” 的 “保证” 二字是很关键的,它确保了听音乐和玩游戏之间的 “一个一个执行” 的条件,这需要我在玩游戏之前确保音乐是关掉的,又保证玩游戏期间没有突然去把音乐打开,如果你只是凭运气,只是偶然造成了 “玩游戏期间音乐是关掉的” 的结果,那么它仍然是异步的,因为异步的定义里说的是“可能存在时间重叠”,你没有确保完全排除这个可能,它们就是异步的。

+

我们再回到日常语境下的“同步”,会发现它跟编程的“同步”是相通的。比如“多个平台同步直播卖货”,虽然整体上各平台是同时在直播一个流媒体源,看上去更符合异步的定义,但其实把“直播”拆分成“录制”、“拉流”、“转场”、“互动”、“上链接”等任务时,会发现它们之间还是存在一些比较严格的先后顺序的,比如你不可能在媒体源录制之前拉流,也不可能在某个重要互动之前就享受某些优惠。也就是说,日常语境下的同步,更多的是描述两件相关的大任务,它们的子任务只要存在一定程度的“保证”就可以说“同步”,并没有编程领域这么严格。

+

阻塞与非阻塞

这确实是一对很难脱离具体实现讲的概念。

+

不过相比同步与异步,阻塞与非阻塞更简单,是用来形容单个可执行对象(以下仍统一称作“任务”)的执行状态的。

+

可能被形容的有线程、协程、某一段业务逻辑等等:

+
    +
  1. 我在某线程用 BIO 接口读一个文件,造成该线程无法继续运行,这就是线程阻塞了
  2. +
  3. 我在某协程内使用该语言/框架提供的 sleep 方法,造成协程无法继续运行,这就是协程阻塞了(所在线程并没有阻塞)
  4. +
  5. 我写了一段代码,反正调用 IO 或者 sleep 了,我也不知道运行在哪个线程上,哪个协程上,或者只是一个异步的 setTimeout, 反正就是在等,这就是业务逻辑阻塞了(可能线程和协程都没有被阻塞)
  6. +
+

但其实这样说有点扩大概念外延的意思,99.9% 的情况下,我们说阻塞指的都是线程。而非阻塞,通常指的也是某个任务不会造成线程阻塞。

+

为什么线程阻塞是最常讨论的话题呢?因为:

+
    +
  1. 线程的调度和空间占用,都是比较消耗系统资源的。一个 I/O 密集型业务(比如最常见的 Web 服务),如果会因为 I/O 阻塞线程,那么为了支持多个并发同时进行,就需要为每个独立的并发单独开一个线程。在并发较高时,就需要开大量的线程,占用大量 CPU 和内存资源,所以我们有了 C10K 问题。
  2. +
  3. 这是一个已经被用各种方式花式解决了的问题了。Linux 上的 epoll、Windows 上的 IOCP、MacOS 上的 kqueue(先不要管它们是异步/同步、阻塞/非阻塞,总之 —>),都提供了可以让调用者不必开一堆线程而只需要复用固定数量的线程即可支撑较高并发的接口。不管是 Nodejs,还是 Vert.X 的异步回调,Go 的有栈协程,Rust 的无栈协程,甭管它们封装成异步风格还是同步风格的API,是甜还是咸,都是建立在前者基础上的。简单说,目的只有一个:不阻塞调用者的线程,或者说线程复用
  4. +
+

业务要你等3秒,网络数据包要等几百毫秒才能到,硬盘读写要有时间,这些都会造成业务逻辑的阻塞,如果使用 BIO 接口,则业务逻辑的阻塞也会导致线程的阻塞。而使用了上述的框架/语言,让你不用在这些时候阻塞自己的线程,被阻塞的就只有当前业务逻辑,线程可以去跑别的业务逻辑,实现了线程复用。

+

组合起来

现在,单讲同步、异步、阻塞、非阻塞,应该没什么问题了,我们再聊聊那些常见的搭配。

+

我们经常听说同步阻塞、异步非阻塞这种搭配方式,而如果按照前文的定义,这种搭配方式是很奇怪的——同步和异步是用来形容多个任务的,阻塞和非阻塞时是说单个任务的,这样组合在一起是在干嘛?

+

一般来讲,它们是用来形容某种 API 的风格和实现的。

+

同步和异步是表示这种 API 的接口风格。比如常见的 Linux 的 BIO 接口、Go 的 IO 接口、Rust 里的 async 函数,这些都是同步风格的接口,先后调用这样的两个接口,它们默认是同步执行的,你要异步执行,需要另外开线程或者协程;Node.js、Vert.X 的绝大部分接口,都是异步风格的接口,先后调用这样的两个接口,它们默认是异步执行的,你要同步执行,需要把第二个接口写到前一个接口的回调函数里。

+

阻塞和非阻塞是表示这种 API 需要调用者配合使用的线程模型。比如 Linux 的 BIO 接口会阻塞调用者的线程,它就是阻塞的,而 Go 的 IO 接口、Rust 的 async 函数、Node.js 和 Vert.X 里的异步接口,都不会阻塞调用者的线程,它们就是非阻塞的。

+

在没有协程的年代,同步风格的 BIO 接口就是会导致线程阻塞,它意味着心智负担小,开发方便,但是吃资源;而不会阻塞线程的 NIO/AIO 接口往往是异步风格(或者封装为异步风格),代码写起来心智负担重,性能好,比如 Node.js 和 Vert.X。所以经常有人拿同步代指阻塞,拿异步代指非阻塞,它们成为了同义词两两绑定在一起,即“同步阻塞”和“异步非阻塞”。

+

而 Go 、Rust 等语言提供的协程,相当于是对“异步非阻塞”的一种高级封装,可以像写同步代码那样写不阻塞线程的代码,让你即拥有高性能,又没有很高的心智负担。但是也很少见他们讨论自己是同步还是异步,阻塞还是非阻塞,因为风格上确实是同步的,封装的实际上是异步常用的非阻塞接口,确实不会阻塞线程,但是协程是可能被阻塞。所以不要套概念,理解原理,理解同步具体指的是谁和谁,异步具体指的是谁和谁,阻塞和非阻塞指的具体是谁,搞清楚对象,套定义就可以了。

+

总结

在写这篇文章的时候,我并没有查询很多资料,但自认为这算是一个可以简化问题,帮助理解的模型。

+

希望能给读者一些启发,也欢迎批评指正。

+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2023/03/05/relation-algebra-division/index.html b/2023/03/05/relation-algebra-division/index.html new file mode 100644 index 0000000..3a6aa08 --- /dev/null +++ b/2023/03/05/relation-algebra-division/index.html @@ -0,0 +1,768 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 关系代数除法 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 关系代数除法 +

+ + +
+ + + + +
+ + +

定义

    +
  • $S$、$R$ 为关系模式,$s$、$r$ 为关系实例。
  • +
  • 要计算关系除法,需要满足 $S ⊆ R$。
  • +
  • 给定一个元组 $t$,令 $t[S]$ 代表元组 $t$ 在 $S$ 中属性上的投影;那么,$r ÷ s$ 是 $R-S$ 模式的一个关系。
  • +
  • 元组 $t$ 在 $r ÷ s$ 中的充要条件是满足以下两个
      +
    1. $t$ 在 $Π_{R-S}(r)$ 中
    2. +
    3. 对于 $s$ 中的每个元组 $t_s$,在 $r$ 中存在一个元组 $t_r$ 且满足:
        +
      • $t_r[S] = t_s[S]$
      • +
      • $t_r[R-S] = t$
      • +
      +
    4. +
    +
  • +
  • 例子:
  • +
+

$r$:

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
A1A2
ae
af
be
bg
ce
cf
df
+
+

$s$:

+
+ + + + + + + + + + + + + + +
A2
e
f
+
+

$r ÷ s$:

+
+ + + + + + + + + + + + + + +
A1
a
c
+
+

公式

关系代数除法可以使用其它关系代数运算替代:

+

用上一节的例子就是:

+
+ + + + + + + + + + + + + + + + + + + + +
A1
a
b
c
d
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
A1A2
ae
af
be
bf
ce
cf
de
df
+
+
+

公式中是为了计算差($-$)的时候两个操作数模式相同,对 $r$ 做了一下模式的颠倒,其实还是 $r$。

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
A1A2
ae
af
be
bg
ce
cf
df
+
+
+
+ + + + + + + + + + + + + + + + + +
A1A2
bf
de
+
+
+
+ + + + + + + + + + + + + + +
A1
b
d
+
+
+
+ + + + + + + + + + + + + + +
A1
a
c
+
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/04/26/zkp-note-0/index.html b/2024/04/26/zkp-note-0/index.html new file mode 100644 index 0000000..e15f291 --- /dev/null +++ b/2024/04/26/zkp-note-0/index.html @@ -0,0 +1,463 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 零知识证明笔记-0-目标与计划 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 零知识证明笔记-0-目标与计划 +

+ + +
+ + + + +
+ + +

目标

从今天开始,学习零知识证明相关知识,暂定 3 个月(到2024年7月26日完成)的学习目标为:

+
    +
  1. 完成零知识证明常见算法、实现的学习,至少能够知道它们解决的是什么问题,分别适用于什么业务场景。
  2. +
  3. 学会并熟练掌握使用至少一个流行的 Rust 零知识证明库。
  4. +
  5. 参与至少一个零知识证明的(开源?)项目,需要提交有质量的代码。
  6. +
+
+

初步计划

V20240426

    +
  1. 第一个月: World of Z2O-K7E 的学习;产出为“能够在朋友、同事甚至是小学生(如果我有幸能认识一个愿意听我讲的)面前把学到的哲学、原理、应用讲出来,讲清楚”。
  2. +
  3. 第二个月: 完成 World of Z2O-K7E 的学习并开始学习 Rust 相关库,写 demo;学习产出参考上一个月,写 demo 的产出为能够全面反映该 Rust 库的各种功能的一个 repo。
  4. +
  5. 第三个月: 继续写 demo,看相关开源项目源码,参与项目;产出物为 项目地址 / commit / PR 记录等等。
  6. +
+
+

介于本人在该领域是完全的“零知识”,以上仅为初步计划,如果有任何修改(即使是放弃)都需要更新本文。

+
+

20240530

一个多月了,公司的事有点烦。实际上我话太少,并没有找人验证过我是否能证明我能讲出所有我学到的东西,目前学习进度并不快,只是能够把 RSA 和 schnorr 的流程完整复述出来(并用小质数作为例子介绍)。报了一个课,希望能学到我想学的东西,后面打算整理这个课的笔记了。继续加油!

+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/05/25/zkp-note-1/index.html b/2024/05/25/zkp-note-1/index.html new file mode 100644 index 0000000..9abdb47 --- /dev/null +++ b/2024/05/25/zkp-note-1/index.html @@ -0,0 +1,561 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 零知识证明笔记-1-密码学基础 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 零知识证明笔记-1-密码学基础 +

+ + +
+ + + + +
+ + +

这是结诚浩的《图解密码技术》一书的读书笔记,我是在去北京的火车上把其中感兴趣的部分草草过完的。World of Z2O-K7E 只是建议过一下,我就只是过一下,感觉还是很有帮助的,至少看过了之后,我能感觉自己的大脑切换到了“密码学的上下文”,接收零知识证明相关的知识似乎更高效了。

+

基本常识

    +
  1. 不要使用保密的密码算法(即隐蔽式的安全性),应该使用得到广为验证的公开的密码算法,而保护好密钥。
  2. +
  3. 使用低强度的密码会给人一种错误的安全感,比不进行加密更危险。
  4. +
  5. 任何密码总有一天会被破解,除了不实用的一次性密码本和传说中的量子密码。
  6. +
  7. 密码只是信息安全的一部分,提防“社会工程学”。
  8. +
+

对称密码

DES / 3DES

一种将 64 位明文加密为 64 位密文的对称密码算法,需要以分组为单位对输入进行处理(这样的密码算法称为分组密码,block cipher)。DES 已经可以在现实时间内被破解。

+

三重DES(3DES)是为了增加 DES 的强度设计的。三重 DES 并不是三轮加密,而是加密、解密、加密。如果三轮的密钥都相同,就跟 DES 一样了。

+

第一轮和第三轮使用同样的密钥则称为 DES-EDE2。
三轮都不同则称为 DES-EDE3。

+

AES

Rijndael 算法在 2000 年被选为 AES。

+

分组长度固定为 128 比特,密钥长度有 128、192、256 比特三种。

+

加密过程:SubBytes -> ShiftRows -> MixColumns -> AddRoundKey

+

解密过程: AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBytes

+

如何选择

不用 DES,少用 3DES,尽量用 AES。

+

分组密码的模式

    +
  • ECB(Electronic CodeBook,电子密码本):简单,快速,支持并行计算;明文中重复排列会反映在密文中,并且通过删除、替换密文分组可以对明文进行操作,对包含某些比特错误的密文解密时对应的分组会出错,不能抵御重放攻击。不要用。
  • +
  • CBC(Cipher Book Chaining,密文分组连接模式):推荐使用,重复的明文不会导致重复的密文,可以解密任意密文分组。必须是先加密再 XOR,如果反过来,则其效果等同于 ECB,可以直接从 IV (初始化向量)开始,依次将前后两组密文执行 XOR,得到的每组结果恰好就等于 ECB 每组的结果。
  • +
  • CFB / OFB:不需要填充(padding)。
  • +
  • CTR(CounTeR,计数器模式):推荐使用,主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转。
  • +
+

公钥密码

RSA 的基本步骤:

+
    +
  1. 取两个比较大的质数 p 和 q。
  2. +
  3. 求两者的乘积 $N = p \times q$。
  4. +
  5. ,即 p 和 q 的最小公倍数;有的资料说的是求欧拉函数值 $\phi = (p-1) \times (q-1)$,以下统称 $\phi$。
  6. +
+
+

GPT: 两者都有各自的使用场景,但在实际使用中,求欧拉函数值 ($\phi$) 更为常见。

+
+
    +
  1. 选择公钥 $E$,$E$ 与 $\phi$ 互质并且 $1 < E < \phi$。
  2. +
  3. 求私钥 $D$,$D \times E \equiv 1$ (mod $\phi$),即 D 为 E 的乘法逆元。
  4. +
  5. 这样得到公钥为 $(E, N)$,私钥为 $(D, N)$。
  6. +
+

一个使用小质数实现的简单的 RSA:

+
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
use num::BigInt;
use rand::seq::index::sample;
use rand::{thread_rng, Rng};

const SMALL_PRIMES: [u64; 50] = [
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,
197, 199, 211, 223, 227, 229,
];

#[derive(Debug)]
struct KeyPair {
private_key: u64,
public_key: u64,
modulus: u64,
}

impl KeyPair {
pub fn generate() -> Self {
let mut rng = thread_rng();
let indices = sample(&mut rng, SMALL_PRIMES.len(), 2);
// use crate rand to select two random prime numbers
let p = SMALL_PRIMES[indices.index(0)];
let q = SMALL_PRIMES[indices.index(1)];
let modulus = p * q;
let phi = (p - 1) * (q - 1);
let public_key = loop {
let public_key = SMALL_PRIMES[thread_rng().gen_range(0..SMALL_PRIMES.len())];
if public_key < phi && gcd(public_key, phi) == 1 {
break public_key;
}
};

let mut private_key = 1;
while (public_key * private_key) % phi != 1 {
private_key += 1;
}

Self {
private_key,
public_key,
modulus,
}
}

pub fn encrypt(&self, message: BigInt) -> BigInt {
message.pow(self.public_key as u32) % self.modulus
}

pub fn decrypt(&self, encrypted_message: BigInt) -> BigInt {
encrypted_message.pow(self.private_key as u32) % self.modulus
}

// getters

pub fn get_private_key(&self) -> (u64, u64) {
(self.private_key, self.modulus)
}

pub fn get_public_key(&self) -> (u64, u64) {
(self.public_key, self.modulus)
}

pub fn get_modulus(&self) -> u64 {
self.modulus
}
}

fn gcd(p0: u64, p1: u64) -> u64 {
let mut p0 = p0;
let mut p1 = p1;
while p1 != 0 {
let temp = p1;
p1 = p0 % p1;
p0 = temp;
}
p0
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_rsa() {
for _ in 0..100 {
let key_pair = KeyPair::generate();
let message = BigInt::from(rand::thread_rng().gen_range(6..key_pair.get_modulus()));
let encrypted_message = key_pair.encrypt(message.clone());
let decrypted_message = key_pair.decrypt(encrypted_message.clone());
assert_eq!(decrypted_message, message);
println!(
"public key: ({}, {}), private key: ({}, {}), message: {}, encrypted: {}, decrypted: {}",
key_pair.get_public_key().0, key_pair.get_public_key().1,
key_pair.get_private_key().0, key_pair.get_private_key().1,
message,
encrypted_message,
decrypted_message
)
}
}
}
+

单向散列函数

单向散列函数(也称为消息摘要函数、哈希函数、杂凑函数),用来保证消息的完整性(integrity),也称为一致性。

+

输入的消息也称为原像(pre-image)。

+

输出的散列值也称为消息摘要(message digest)或者指纹(fingerprint)。

+

难以发现碰撞的性质称为抗碰撞性(collision resistance)。

+

算法选择

MD5 是不安全的。

+

SHA-1 不应该用于新用途。

+

SHA-2 (SHA-256以上) 、SHA-3 是安全的,可以使用。

+

消息认证码

消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术。

+

实现方法

    +
  • 单向散列函数,例如 HMAC。
  • +
  • 分组密码,例如 AES-CMAC。
  • +
  • 其他,例如流密码和公钥密码。
  • +
+

数字签名

使用公钥密码(比如 RSA、椭圆曲线)来实现。

+
    +
  • 绝对不要对意思不清楚的消息进行签名,可能无意中解密了公钥加密的密文。
  • +
  • 依赖公钥基础设施,公钥必须属于真正的发送者,即使用证书来确认。
  • +
+

密钥交换

Diffie-Hellman

一个使用小质数实现的简单的 Diffie-Hellman:

+
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
use num::BigInt;
use rand::thread_rng;
use rand::Rng;

const P_AND_G: [(u64, u64); 20] = [
(7, 3),
(11, 2),
(13, 2),
(17, 3),
(19, 2),
(23, 5),
(29, 2),
(31, 3),
(37, 2),
(41, 6),
(43, 3),
(47, 5),
(53, 2),
(59, 2),
(61, 2),
(67, 2),
(71, 7),
(73, 5),
(79, 3),
(83, 2),
];

// prime P and generator G
#[derive(Debug)]
pub struct PnG {
prime: u64,
generator: u64,
}

impl PnG {
pub fn generate() -> Self {
let (prime, generator) = P_AND_G[thread_rng().gen_range(0..P_AND_G.len())];
Self { prime, generator }
}

pub fn get_prime(&self) -> u64 {
self.prime
}

pub fn get_generator(&self) -> u64 {
self.generator
}

pub fn generate_random_number(&self) -> u64 {
// generate a number in the range of 1 to prime - 2
thread_rng().gen_range(1..self.prime - 2)
}
}

#[cfg(test)]
mod tests {
use super::*;

#[test]
fn test_diffie_hellman() {
for round in 0..10 {
let pg = PnG::generate();
println!(
"{round}) Prime: {}, Generator: {}",
pg.get_prime(),
pg.get_generator()
);
let alice_number = pg.generate_random_number();
let bob_number = pg.generate_random_number();
println!(
"{round}) Alice number: {}, Bob number: {}",
alice_number, bob_number
);
let alice_partial_key =
BigInt::from(pg.get_generator()).pow(alice_number as u32) % pg.get_prime();
let bob_partial_key =
BigInt::from(pg.get_generator()).pow(bob_number as u32) % pg.get_prime();
println!(
"{round}) Alice partial key: {}, Bob partial key: {}",
alice_partial_key, bob_partial_key
);
let alice_full_key =
BigInt::from(bob_partial_key).pow(alice_number as u32) % pg.get_prime();
let bob_full_key =
BigInt::from(alice_partial_key).pow(bob_number as u32) % pg.get_prime();
println!(
"{round}) Alice full key: {}, Bob full key: {}",
alice_full_key, bob_full_key
);
assert_eq!(alice_full_key, bob_full_key);
}
}
}
+

椭圆曲线密码

椭圆曲线密码是利用“椭圆曲线上的离散对数问题”的复杂度来实现的。

+

使用了椭圆曲线的 schnorr 的一个简单实现:

+
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
use k256::{NonZeroScalar, ProjectivePoint, PublicKey};
use rand::rngs::OsRng;

fn main() {
// 使用操作系统级别的 RNG
let mut rng = OsRng;

// Alice 拥有一个私钥 a,计算公钥 aG
// 私钥 a
let a = NonZeroScalar::random(&mut rng);
// 公钥 aG
let a_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&a));

// 知道 G 和 aG,求 a,属于椭圆曲线上的离散对数问题,目前没有有效的解法
let r = NonZeroScalar::random(&mut rng);
// Alice 生成一个随机数 r,并计算 R = rG
let r_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&r));

// Bob 提供一个挑战 c
let c = NonZeroScalar::random(&mut rng);

// Alice 计算响应 z = r + a * c (mod q)
let ac = a * c; // 计算 a * c
let z = r.add(&ac);

let Some(z) = NonZeroScalar::new(z).into() else {
eprintln!("计算 z 为零。");
return;
};

// Alice 将 z 发送给 Bob,Bob 验证 zG ?= R + c*PK
let z_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&z));

// 计算 c * PK
let c_pk = a_g * *c;

// 计算 rG + c*PK
let r_plus_cpk = r_g + c_pk;

// 验证 zG ?= rG + c*PK
// c * PK 与 a * c 的关系是?
// 为什么这个证明是成立的
// 为什么这个证明是不可伪造的
// 回答:
// c * PK = c * a * G = a * c * G = a * c * G = ac * G
// PK = aG ?
if z_g == r_plus_cpk {
println!("验证成功,Alice 证明了她拥有私钥.");
} else {
println!("验证失败.");
}
}

// 与 GPT 的交谈:
// 为什么 Alice 要先生成一个随机数?
// 答:为了证明她拥有私钥,她需要一个随机数 r,然后计算 R = rG,然后计算 z = r + a * c (mod q)
// 可以让 Bob 先生成随机数并发送给 Alice 吗?(然后 Alice 再生成 r ,发送 rG)
// 答:可以,但是这样会暴露 Bob 的私钥,因为 Bob 会发送 c * PK,PK = aG,所以 Bob 的私钥就会暴露
// 不对啊,Bob 只需要发送 c,不会暴露私钥啊
// 答:对,Bob 只需要发送 c,不会暴露私钥,但是这样会暴露 Bob 的公钥,Bob 的公钥是 aG,这样会暴露 Bob 的身份
// 不对啊,aG 是 Alice 使用私钥 a 计算出来的公钥,怎么会是 Bob 的公钥呢?
// 答:对,我理解错了,Bob 只需要发送 c,不会暴露私钥,也不会暴露公钥,这样是可以的
// Bob 先发送随机数给 Alice 真的没问题吗?Alice 不会获得没有 a 但是证明她拥有 a 的超能力吗?
// 答:Alice 不会获得没有 a 但是证明她拥有 a 的超能力,因为 Alice 需要 a 来计算 z = r + a * c (mod q),如果没有 a,Alice 就无法计算 z
// Alice 不能用假的 a' 来计算 z 吗?一直用假的 a', 是否也能通过验证?
// 答:不能,因为 Bob 会用 a' 来计算 c * PK,然后验证 zG ?= R + c * PK,如果 a' 是错误的,那么 c * PK 也是错误的,验证就会失败
// PK 和 zG 都是用 a' 计算出来的,所以 Bob 永远都会验证成功,不管 Alice 用了什么 a',验证都会成功,这样 Alice 是否就获得的超能力
// 答:不会,因为 Alice 无法计算出正确的 z,验证会失败
// z' = r + a' * c (mod q),所以 z'G = R + c * a' * G 验证肯定成功吧?
// 答:不会,因为 c * a' * G != c * a * G,验证会失败
// 你好像没有理解,如果 Bob 实现发送了挑战 c,Alice 可以使用任何除了 a 之外的密钥替换 a(比如 a'),这样整个流程只是证明了 Alice 拥有一个密钥(这个密钥并不一定是 a)
// 答:对,我理解错了,如果 Bob 先发送了挑战 c,Alice 可以使用任何除了 a 之外的密钥替换 a(比如 a'),这样整个流程只是证明了 Alice 拥有一个密钥(这个密钥并不一定是 a)
// 所以 Alice 即使没有任何密钥,她临时编造一个,在这种情况下,Bob 永远都无法验证 Alice 是否拥有私钥,这样 Alice 就获得了超能力
// 所以顺序不能调换,对吗?
// 答:对,顺序不能调换,Alice 必须先生成一个随机数 r,然后计算 R = rG,然后计算 z = r + a * c (mod q),然后发送 z 给 Bob,Bob 验证 zG ?= R + c * PK
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/05/30/zkp-note-2/commit-and-prove.jpg b/2024/05/30/zkp-note-2/commit-and-prove.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2280d92be4b4025e254b7d487e4050993956d2c5 GIT binary patch literal 409881 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 z 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 z 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 e#_b8s;ko87udT7)xQq1{tH98U2** zcPNh@m9p7M6Vhm1Uyxt_MAY(LDXSOp#KL_#Io?(?RL&_nrc z9RKt<{ASx-k`Hy<*FM~kBh}ZL)k9sc&zb*W_h{Q)Dj#tR;;7vBKV#B^rQlH4>vJ~# zUf{%LN)2-y6!t{^G=!yi5_*j#PG){u|wPW;c_|J&h@92|N3>+`=pn1&q{?ZU69 zG7j`bOlRd^jnt%uA$u5=o$-$^43^Obz0(CsSwY@XALElgk;;J;{Gll>Yos1uH+JGn zd44bt=m9@?jbxKPssG_m=-r7g%I7%$@n;-=e4UJ7weGF|{)#4W#}n07Ka4+iR0-tW z@X4JVS)FYc*)5g8plnx}u>fta?>f99{T_wl|qLiwA;p2fHK*OGg;Q**Wd0f3;(89rT zTVLDIWyOoSC+C8fpjg(jE`8Hy{BNwywKE@Yx1Ya$xvekUXwN-&v^}JSs}Da|YybJr zUT(kq*^BKDeqWa%pZNWDR12I)W4q57%{i$X?12g|j{9%lgc@|aLp zv98o_5(M)=WKl?azWK0E860&^N^y!pPuJu&JPkgesr&7GLBNQ&4LqtYC$?;9KzPF zP3ff1_=;uBKj>G1tXD*esv61amSYxK6p;;0JK}GkE*P;he#qi=;A@MmHgLcRh#8+fHq*zvNweY)AWV>hC-`7Ofx2vH=!K7E$xyPW zT8uxk+=7C09yzPgb1{2PkIn($_6R+%`SGA2;KK)$gXe8*iWYeg5rl(rVE*wBCH(4v zf0|PkGOw;(yV}m4Kh-W?I-?(49*~Qhx~H#}GsSA1>=i?uz}-GLzuo@JU%lCW__u%4 zwpK5+Z+_#M_VB|GwLMGAw$btFR)LHLj3*Af|3Fc(pVT67wPpUN9z8)FzyBgeT*_DY zqLdV^poVneLlecg#WE>9NS6N4X&*vasFqmxRY*ui35~JciC?yh*DS$@{->j$64@fWoW_P!eT!haA;edyike`iR>S@>3y`4v9h%kjVO zf5dlY{yRNmOd^wK#2<07^y4oES%l!N(PQr}<$Jt$A|y)w$Txv6vUx+bw_ycT<|A~d zN}*$nZ{n~Cxj`D{nE#UI`A>B>gNAgdFRwx>sI&1?L8vi&*cuvR8#>4MqI?#|{~hDY zqtDoXo03tv??2JFKmL63P#8G4D10bUaib0w4veDFo4k=h!JpEI203_QVvumk6K)qV zC6b$Y7+c!%W(!_V5GfzpCx9pLVcQ))^zDvM&*#T~&*|OY!MEN0x971D)6V$Q_1XHL ziRD4si65h9`|VEnwA=XKz5hM?jL!yycn$ea6ykj#`1xW&J819)FZfa85DH$l;aBub z=YODyeP;Zzi7l^SiRQO;P`Vz<& zT{DF@`f3_&oN?0CKIo{35{qX(t4cD~S)H7A7YQ7!s4#|_s@q5R>>hu|z%ud;d33YK z%;=2vh^OLj=$U*K+KToa;sXsndvC4WRz!PMu{X7ykKdJAH1ey>oWE{q^6TZ9o3opXf5vQ*Hgms-Cp&w{&B3qL-JlIy6Qr7Zf~u zswQ20?qATx4-kT2=RyzjA7w*}o2xh0^jg(or=+ce9xaA!Yf(1TCO7eqJh3`$BK_RT z<1)uc8a&6MDy5UlwmCNuHW6Dwj`5F{Na~AmfHv^Ny)sia3;;w-;^LTa9dXHc8fRHq zbp}%W(C2*?TJq2*S&uUYOqIf;$9ZQK@{d=%PauLkmf{kx9sb*7G(=x#?EE$ZYdkxY zb@Ag`P|>+41&l3TaWOQ7OW1u6RkySe*<%G5aS1jxAe3fT6SVvnO+gPYs$Xps=;aXB zpjcJt^FUb+AkkE($3JdN;77bb=p}VSqU!yG?xH8YhnU!-A+W3tc~?YL-Ch9K@lig; zM}dXBi}5cKeM5ifji|&p$Jld*W}St}d&h>b7?;pnxtLa=j^j!TjaY#LgtBx)awxP9 z$%<0#p{Bh!FC_~+fQqr7*S$0|{#d!JGrU*XXrMJTiT2Y9K{n55={Acr*pT&gA?wUe_%?gvAl6#$xNkiL)(es8@= zT(btS5PD!jLFkMAS}xGmG|1aXFhBft}M3?KU{1t{Onr$n;-sL`}oR-?Ww1~+`j#-=i0$T`@JBF zu<_U!52aSDrWPPH2!;@8OZDi9Ea0p%E>T6!IwZNewxu(?uC;5|*Y$uD7DS_ORS!k_ z@UmVXuc=>8EHPMt8o28SPsE|_>G(%q%4ugwZ=g}w#|v_dfB1;)RpKnL-%(2ka^K)Wh*bPEhDBU{rHV;}c`GDGV-A-`w2L+0Ysz?(+bHm2z~(9HHM4+6`UZ zzNQHS8lz9f`vGDBU>vb!8D?!_;4T{{N8#qMxY+KIeYv=Lv42i2MCqf_<(&D z_~DO%b2A&C&QFU!mH%VVQGGW4E&PwLhkXjXIr;TO^qdA#yYM|QbU=cWSC)KJ@w^m9 zxO?LLCly-C8!Ji$)N^i{IsYVVfLEi?`~I%|?~()lo#)@k|I{-ZpHB1#|Ly$`W#j0S zhVJ-uXNcUB{NF9a0hz$w-S(e|I)=V!{LueJ@V`gOp^SJI?UVRF$fTAW zo8890^Cxs~OFW}K)WkDsVYF(D3##mAUwya5PoYWt!uvIh|DJ7f3;6)*773#i5~+sgCUgNv$=37#Z{ zQO1dW=I|aIG1;chJkf;#UDB3F7V!d$52$M8fuB2b)Ta6>Y$2aIv>QRIHO&9eDdv~r zh<~=DOMPigDjCaky=9aLrXfemq7#YfFn?WFKcuKKAJT_RRAq+uP^fY3I*h zXm7uJrG4Y6qwT7dcKY<&y7%VM z_Q!wxgZ7QDKic;B-kq{RHWEwz0v`k8oH3ra?gbE$ZfHUE%IaEM+uCeh z6`5f*Qp;P(4C9|9)66hza_qpb%UH`{5x@bh24e=l zGX`b|Ie5?@aSzORm=L;BpY;TXPYm?|fjs@)JM)WbN@!EvV`MNZtacoqB4yXeR1<6d z!913V1{4saU4ks+vgC$2)o&ky!&1Y+WBs|0@eyB=3*SQ}u?c+X%OOk^!iS*NuK4P<_FxNr zs_*K*EkOt-{ZrK+w;b5iv2$&8vt7HURYLi*a&SpMC@gtVo#T2-3+dZB{n=l#wTj8v z+AJ`x=~sj+`Z3|crK@daWwAYc{E!|-6lZjjf6NVGSlVij96da<4#!1yu#g!K3DYBj zbhhQf!h&#h|6cJOI6T+B_lJ+S2Oj;O+ldGEwG)T;dXW-exuTtQ*AG70Y(M((FWT#; ze$tMgIMM#}KmDLR|K$gDU)P*b#2in27Xd*5dz5p~u_r7mld(PHuWFR=C-OhkNT}4A zMVcWEL=o!vkDgH0`P_82SPr@*!j=(!NVzlmRIPkX#OTcJ&i9`}l%}e7i2)y7LoBi; zk-!hxVg8dM;ut$?>#B<=LgZTXRFpfPr3QTHl)#(DufDWqQb}~yme{2h$I~Jqx6}X0 zkPK?4@e{YAkvjy8R#f?)t>|-`;=Ac%Vk{mH&`9+vAq`pLt`H#C80WZnf0WQ>FlD z8gZklMh;qv0h~;=3!WOqh`0KB5kDfM5_*F?-0zQe>P931?W<(R_(78vI}wVjf0(z^ z70gTQ%0IV@7+xkv;;YqbiP52E=HGzP<)j0MXb0F#d@1gx6sm;AeqdbZ$?^BNl~L-f z{;?c1fAP*>77yGk1Z?}-P4I8F2ae3OZ+`n=``Is#ws%jx*Z%ci-_Y5ZUug#p9d26V z)Cz(YBD4~6@yeDK8Ry%+Ll3sS`}ei8=Qi4z_s_N^EqXll^waH|-+H_qJF@J{%(X0$ zZ`Zy+L&nIl$|rQH&Lz{EI{WhMxwZDfPv2-~J~-FD^w`n%{XclR?LB$Kxn5CZfpdNR zh8AL25?S&B2#ac*iT3KR-fDmOpMTsA9cu05v47v5dh9^}FkCR=QnlhQ;wX1!#9#e= z98sZCp^p3yLeD=d4n18C76d6tEPUwJhfQ7%I5F!>gh%6<;%ogD2 zyQy0{T>R*2d-c`RZB>hwPkrt2cJzTGUdUWn;DJ8k)GDHLA@Mm|^U~Ed%ba@sSMA}) zj<+NK?%VCaejU%!U-08IQ9+!x+Yh7?{l<-(I=;$OJ6#nd*`A@N3(tq zdH9h%qCfBXW<@vE)wB>el3l&N*?#uZv+b3ae$^J2=G%Av;JfYjzV$@gyA*&dfbw2K z1P1@{-b%!TUG(TBk{8oW6tx>26}YIm73`jCU>_g>gf0>7aFs-)F2Wh3->$?k3~znRV&8MFZ`&>z9M%2 z2Tc}bGb)q*hh;d^O)2~d|3?a_j{G-1yd_7sUe=dNN1ntuqeG=kpN%g)k`FzhDAi5i zcO~8b5k4438aCxWlsNMrj!*9YfInb${}c9i%m2yzBLutqU!yZC{xinE*nJFTlq-oi zCUUg<4;||B0!$cTONz&1PBK_$@>v%&5uMY?U36(M#rdDcxQ~tzzC1Qxvh40ZhEWp7 z_4G@-dzJsGF_37egxlF8AJSCyBn|(IK6F}keEi?f{|t_H6{c~#3D|FX{A18!`@1~< z#cgtQRQVWia=R9h8C4^xgKr>btq8T3^!V`cJDf6sgO@U5OG0*NmzE?wcHVkYndlul zOJVJYo~Y%dM$#2R)YF#Ff&czuLv%a|%kJFUrS#i0)29L<|A~F~A0EF_&nNaj16^>n zca(EXVX62hX~Y%^DlzWa_>Zv1_?da&mkq8@`A=+Iv?FHzbN*$!;#XRde;ohm{4YI- z4184|@|s%5=L={5!>1YJkD=0OkJD`1KHgOPVay{8y%cY!{C7w1%+~1m+X0h=o7hWi z^!J(hZ|xbkva#@|$E6(EE&tW;SWo+(<4JJhtEVb8{?b)6!?H1d`riF_2c44TD{J(_ zTQL$bMCs1rOsLCa6;B^K*6D*oTEr|em(YgoZkWcG@KD&5G2Ed;d&VUSHO45!`a*;V zEQvv)Kxh=uf^2mz01C|p0ms@>eBRo`^nk%`mbJXmoHv2Cj699x(xW? zdd9Cf#TM@cfPdiY3JkGiiY{md7Jp-{Es;#^z);MGq&)<8iPcpV!!Ost8fhixJsp6-^&Xx z;3^0FKp~vc3ru=KM`*B2`iXuo0F?5WYQmZ^e)XewT*?5OI_f0)kBnDy!90%6c7Ock(eKnN=r!2fW#o(DGk!yIS5LpAl*nK-Q6MGFf>Ew3^~9s zb9gV_+jD#Vfakf}dw*lC&w8BsAXK>4;~G%vpqmQ+tGQ3hAk4+c$(XwKa_M+l)&k4f zj#x{e+#uhrw!j++8(@cDe*5`_`pHgqXC6y(=NYer8NKtf^nF@6mw4^&-p{YU8MOwq zKa50n+F=GUS9>QI6eM6}ZE~eMwIEVYY5;IaH+hgEuh-R<+ly)0rTs?284q&5*1O+~ zHJUwP0otr1=Xp=?Ajm`ttK=(~%uGh#SBYQS1-CEC&DcJ8Cuz9_lYc`Tf{dz)OE+_a zUts7CtfotP95OJ{W@o0r!~!~N=f9u&#XWO=cBrao%!e5$8hi91_L)`l#^nG^28a+_YM)cUS-~UHvD~5NJ z-8+@XWL0*(9RcuUc?FEe(Dw-t&5o1MEcvcuM&I|$Uc}18>hUQQqtf4Is)~xC|4qER z)nUUYn=_t>G_%+uR|D=Q+VWshcw%&|8f5ZA{%R^r03lfscVP^Iin6H0_En_vep4{& z1|jfo^~>!uS`s$C(-I`u>7zpTvHdNCau73wFcD{ggDGAI{F1RNVHT+?i+37KiAQ7{ z6X`beYv1Rx*!+a7L;CYw1cP=?D7{cHPZuWfKX25<=iwQLQGcGlZ26@v63QX6H74Q` zX^;5562r*+w08Ev>F$|;o31*dnyY=3*bMb0>w9Iu?KWjrN}yWrUKix^wltBDcBcvn zgTcl&2vWuTlCezqu%Gh4>&dh1`6(0WiosCzQa@Ry$wmNVplZOm5xE|TNPhpcFCe*w z8qMd6P>g{%NwfDtw&crMJM0JL$AJLoc$dZEQMkT!Hp{@iui1BX{>Vvsa|j_$ItTAK4QhBj2^Hi zJhZTixuF#nOo}2y3W%$jVTh{8)_IQ6@&ple64JLk1D~*Izwz^8agwMvrKamj(G56D zoZ!72tH+$$5;wqD0M-D5rul$#wS+qqWkd%840lxF!EJiVJdmyNIW~glzDb&z!woO7foF^f=RImF=}F1u4P+|6 zqTN03i}cmjm8r#`^6QKF#eA_#+>T3MxW$YjZRj%USq>f7$4aYsXGu$WNI8IIzJ8wv0QC{MN9&)|Ya2O$?lwE?I`1kg8(aZvPF!f0Y^`!JPv_cppRe)}2NoI6SHfL-WXRD1q}+-kGs9#0=Y`t5>|_Zy zK~3@4qNYG1XmN%FX4&^mwF7{4AM_^mX_s&1fDsfj?ESg!g| zWg2^Bpi2(zVlRVKokq9lF3W%5m1D)bZ+0Q_kslVjOkWUC6GXE8g3J<&=uKf2C23w2 zSx8**E;xnXU0)Yoor0P=X+_&6=iSXZKN(`G4BEXUEaS86)^FzSjL}eWd1P8f8!G6V@TTaJBhBYyH`iWvPhB8 zWT?tGoc1!6LuWA}P;5KxZ_t14ZxzNsxoV%Yx+Y2FQj}HSc$1xBB}ocDJg11N_86Id z5%J+eF|QH-Vx%!>M?JZLcXH(UNeMI9+}EYHH}n`haI3u5q?~A6|B%aXL86Huev4E# zSQez4q(Vvz;@TW^9@%J##*>dB8}JkbJ~SRSDsI8C{QF6sBjn~CV&O0(9@)-YhN~-V zW#Ks961%6W0%vf5H+d)1wpTbw#EuB?wcAsM2ho%fqq>ujSoZ#J9e>$RY<;!pCe!wA zJrJ;T;fv<_9e>h$@ZE<)vCmC?X#Z3X27n%lBlOdsT!T zX4t@=$wy@}Tt7D=bm+88J2o`@>cA2UTB8ftU%Eyw@t$NGd1)s90j;68i2?TDmx$he zzt+5wMabP@!F5mMWAU#}++djv%#(*ULMM!Tlr4Q78n_@Qx|#3MQX)A;FT5S#$iX*N zRl_>cea~guvR}O!c>Th|RCno6%>3aNd31|M^!y6>W(Md_u=e%MWp&d&yji2q4I zPfLn5E%{z9Hoq}?H*Uc8`e*x#CLIGLJ$8pEM`52NWa4paKlmB1hWS0e3|3%n=Of(c zznMA{;*KaTKhuz)%t6p-!|X!>dcip%1!|F~@=b&VgwZ7zt9WCSVnsZy!e!KA;EwWj z3TH6pc_D^o-b~&s_*hPF80U2*n}|`7k9~GFjhQ{o@WuKof2G zLu&YA49KS@80I*L;wncTlcnT7vuus~^5FGRC(0LtvP@(DKmuo)iv>-cC~g*c?q`Ui z1Es$#n%3tIdjkgDQ#{x(o-~*r(*NR|9oDe2$>`pl+f{dEJp=ko17Z2<_JS+qxOmZs zY5Z=$&E>z{sCP|0aU&2r22L1-1I@VQ;iWNx}aycGChSXwb(hgN1{hGOmsR>COX_)8doI8LpY0?A=25j}7>gTL^gQK1 z8jL{<<`nZ1H4%%6M3`iB&B6Pth))DXX>_ZfB?G(6#h}g6nThY86jWZTWcH=C?m7N3f5=p!U$Ezktd~Gqo^Y zAgj1acqPB;#NS@I&Z4kw4PW+ebdGBK^DuzIccJTS1h4yl=j zYfvwDeR>oq!nn%m_^SUKxLWUxWgmtDsU=omhu3ij&h_YZVc4?#g?Vav#C(3XaM&3& ziFt-z-G$H?3jJssUgEhWhv|TyGT2oeb8;4cS5}lZ5@%rHs}kdIF`N_)3ovglF!Gda z;9Pri+x42`Jhh$AM5E+L|a zH>_duQfJ?OiZ!9i_t&DLgC~*%VCw947lMh|>p;lU`0D{%qet5X+Qk?4cjknJ3%H^r zdamP(obp~RbFCJ;`0amEV02<{Iqvjr&z&QHZb334rV$2ydFZ0~6KepUC9vWu3p2V{xK@p)bN8#g<(Y2p$g{3H*cXch$N#nAQ0=u|>{SB5APp2ra z7;mnwAD0c#t)6f90~ZtZd)biUgZUiQAD>u!duIMrGoYhfCqUFzwNKUA)UzdW$ouQ< zDC)O})9XU2mRNY1zNBh7^_1yIDe6B>pc!cVc#}-=I@+^U$9G012cS4f-w zA{ptdmeth7!pWV=vdtk$`CBEa^-)*>SB6Hvhy}f6Mrl){L?u-Wob(( z{w^-k0CWz$EB4s3YtgQkpx76V^dlOUV zRk9@5$^NGQ2_6Q$fbBY_y}d=q+-@LBP&YoFHcRa$24nAq#%f1u~=syI==)~bDr@l!V`h#0J3FRi6Fz z%}C4gjuE4Tpt<8KT>HhOyBryCv={eo6MeEm07g|bWjz#TlzH%Z0VfxW?ex*8daXD1 zowRqp$Iv#<-}M;Vv)yp+Eg~Hy&CFg_uDTPq%hp z!kL;vP=Mg;I1ALM$g4BL?8&hR$l-I;!R?tAI`kP&%1)=)+j~qnoc9B*obzdb=a!P6 zr}ae%!f^+)U;G3-MH`D@xq!UEz&RVMv88OvRDGue(SyiCm!uffO>XBhG99op0|UJ2 zMc^rH&C^xuUJyTQ#I9p(&=Sn-mq0x`%MH)veeHuLYrMJxq&_nu0aA$3BJr^qL4ivI zeluDO9!~(SEq765&~ICW=G z`(-CD{oJH2yRHVr-R_3}1)xffD$duh^Uw}kppCO3(2+WZ6+P<+!UWX7FrPLdQ61Qd z8yd%FZYuju9xBdM&ac1R=bQ`3A^ZfOH(!jFc<3u-9Lv7D=ftjCD%0J4xwjU#Mr$Cu@j z)N;-?m6-F^cMA{NmQID{RbWZSD0F{a9J32~iPuluXOSU-GeVBQNifn{d@y^G>ciAl zPzFzp!2pEfq7v(ePpX;J!rZs`=q-<}3tv7>iuGdhGcU(=Y4NqTiX%Vbx334a&Y#4{ zZ>9gaGq}wzH7)t4#4!?FqI1#MrC7Wi}>R_q>{_fYrMY8H=Xx89+&&c%Y&4a z4U`bH-u(d=&~C4uwWo3b95Y@Y40bq-s+zy9Sg|9{T3pETL#2$DLKD`ipmHe+!Sy4>jQ*kLxPW6U2ntG@8g@6O=fHxu%mqIi}e z51Hu^1z$Z|j8sMcF4xnVTrN#)yH~@Tbv{6unQqPp{2*R#zlLBzqpM1fE1MS3z<`*v zK?q+^>2=Zva!_a;v2SJ6J25e=+?_&7?JFiJ!9=lpeGzAuPRFOth)1ONHOfZcfC1q4 z-_Z^)Ilruvk^Ztxryor2e!q7_crCWE5_r!qwu-76hfAq1ivMPaVp6_#u5%s&8|H`W zOV2iO9a&o_i+SWcOc7@}U^XFlhQ1q{mQdfbwsrI=z|h*!s0muJpOx;|*?M{(9N<@Q zU^m|Hq19M{?6*CuCkBenyrf%MpcAeJ6EjD6rbsKk7-bX~)|#0f85DEPesg7ntnbW* zL{&YS+6HyWx+evunbNk$ni>Hf?WP@3=Gs#~HQ(RTJ7LS;SR&OA84PonHohL3!BrETv#VC9m2&@uuknS5t8*h+ZDEo>E**b!#4 zesBm+SDYR#RLnT1{y24JHlE(15GJF2ME1LjOc84>79s82j1%zofXgZPWWP72t4Qw4 z_PK^AHwyQm(WJNJp-*`1Ww31|Z{kx;tJM^l##%*~~ zm5{E2D~gKBgb=n~A2Qh3rF;g40eDP!%(1dP0N#i6!wq{FH&pM}>ZspB$Bj`SiWQ3N zlpG_ZUv3G4W*`n&uF=efAqhh=0Fl-YwZ)0Q8TNhQP= zmuFjCqyv-ysl)I?d8+tiQlmRZgNRJieXgCYI$`rV6}&%JpWPT(qa+RVu)s2`gtD1% zyvB(yb$RC?#vitHF$G;;l#V2>3myI)`W~A6v`eu>s3>iM77}H?c83qqW3%!U^ESgf z@N`x$Ib?}jn*1}BIxmlMv|eTTnOAaxL3udie?9JkJ(mf%#1^l`yz0bUTyisKbhW63 zd*vICZG9;lpqtoGF8d?veOr6Q2#TF3vw!c3D0syRjg1pHl76QdH*J4iD6qA+kRV7B z4!-Eiy}n~RtN*0bzN*yzVC<_v%-&K`J8b@KMl#X8v*W6vkXP{LSYLJYMqu@ARr@XU z%H!d%{(3(lwh>GR%pK`<^`i2(1`Ai~kyTL6S~a(&e>G65phwa8lEBj~WouvRm)s`L8rohKQ94_e{<8G@$#ac-G%VD&O}=w&bVvK#A&!~3whs| zzi`%dJ+*SWeEe$fL+wL`&+KHg?10FI?HVToJ_xc?$A;IenY?gyRiD;AK%|n zjVTunzq~icxa&vaa0o^?FW+Emu20uovRmbz%Zi|fdQbQ>`){Xhi+pwF!x`^I=OVv;O-*z2Xbt5V| zc<;^pqD|$?&e^pi#5@Cn}XBw zWxkC^O)*L`f;S{wxvx;4t|jnQEU~7#Le=$FXz#ZT$fax^`-|495)^TnOS<|+1)9fbq_RyKtr3IWo6#tqqeYO3C-||2e*-riT}=} z6?Vbp5@X`D{tx3clgbeJGk;8{f!MO7g$;A^@s}#xs6I+&`}4CdDbyPXTB>+p9nJen zZ9_Lz$b(xaBOW7$>4Q3tf*r^MqGGA`^Mh>W3N+IO9(Dc(A-%zdy23BZSmPmdH$e2e z*huq1n4@i%XHYXK0!-<$*cT$h;bSqkTq1Wj zkO8Ce6zb3Tr9bFZEz1G`l?{SA3^JR&FP+WH1^xdJbqhokK8Rg_?9(zZgD_<=zbGDN z%Y49~=LH1OGf2t4FQIt9H1`B&SQ1~83&=NF7;Z}Q5}iT_Uypa|vh5;e+-48Nl6%v^ z)}c8zfH(Lw>${N=XLUVs#MI)Cv4cK;40((J>}-E52J?XE%*JFd!;HLXnRWrnx(fKh z6e;GZBRVTvWQi~!QWy3 zN|`-~1kc?oUSp5okl?nhlP^;HqamucNnjxPg+4RRev;#gRu9i_$C!FT?!<;qjc{!) z6C?v4j|vB49Wu@ysmRQ%k#nIO>emaR8^F$#m!tGLbbdB(ihdCd+p^qz#kVX^J6Iq~ zAKpmQA5)Vf9b_Sf@Y5}FxRX3b$t@c~^NT3C`2Nx#j*c>|vN;wQw7988#!xPwqvx*S z!_C*-;1)Ww8{k^`?Szs zjPPbQnGBQX!#ulyqVu{JViE?M9O>6Ju z6Kp)MkYZ;y>FVDy%OZtNqWVQ@LeEB&+{Aszv}|x$bnJayCVt=nj?@(|#?|g%f7)=c z>$;RKpy2-K)LT}4#U!)3IS+vUvhhk@+uhE{_TFvOpp6xq;<{c@jOhrQ!%kpzesd?e zavz=UXv4m+j4)$yOS&>`?I^8Y)v-OIZc+T<^sXoc;(g#jey92!2V=kco~Wm%M{c>b z7?09A-d!@XsO-+!)b~JqdChf*pk&3hkpo}{I7oR2h3MEWfMh%>#1NyBTMK#RyC*Y% z{jPOA$Iuv>nVzF+kB2Qik&CrZ`-!c>t@6mdpFEva>|bejddw^S`<8W);(GaxIf{!9 zv(cTxT``{fChhID&hCFmi6T=u$!z%G+3+toX5s_N{lGI3+Ym zAyvwv9U$&utW{W)!3S<{$`Iq$FHxQQVH*hvpOwsrFtFQD*hE08BDHxrV`+d_dicIt zJQ04E8Y1xP;H#^Oz^_+`FtxQ-yw*GaZ41hasSK^k6@oJO5G~g!HfhWc>wlgfsz|h} z?4r%+YTiAQ)U<+i9wYXMiTD9HD$5UW6s4(<-ysW2NT4fCLgNZ<|Jg7%6xUv}vbn=p z-B*t)=`_M9_`m32Q8ZIPlkjD;za?_slM=m7+S&Hrw@P~_<{??s*%CD@-)0tT7Ee3J zTw}_}>7nlKGT}~89o`T!jAWL5;Xh6l!!`WhACK)XZmH7#jXoHY3c4-gst6ARI^l#d z=yQxKb*zxfYz_0kK;iOo3Pi&K*aIXM%R_>{%z2os1dbCJen43DCFRn{zZWS<11+iv8SL3ZX!b^Uy#jbQ)uecqC^HqC3W`ka4n~|e2C94B?O`n#u;C$DLuicJ zbh%|F^5}ecDr+g4aaJ>~*+t=#gmhygWYx~!6LK2rOslJz@>uCu4lHOsa9;Fj{%pkb zGu`fRVT@nM`@G%_%QjUW{d8$e*MVPKEdNkQfv1yl75e-jyfX5fY*5JSkN5YVSpM;Q z%hZvDL%1LWqp2*3Go)QRx+ht{-z1?mQcuC8Tf9oGglqmSCOZ1cLz3Xlg)l>8MypWe z*Nys|P#oG6#|b}g$UVG=$DqPTlK6GYqTy|Sv&ZT2b1tW^?S6kbM(rEgTRuE=1#tZO zFeX5rUv{)$|6G}G{adw6WZ_p?xi+1RZFUX+=*#uH!ttJI({0qR@un5w9K2|n1&d^R?JV{*-7 zA8ukW4P58^YWSOW;dL3kwpZNcn7!|5@hkP3@5tNl>@^{%Jwhz3Ka%3rdyzqS;}<+I z2de5>e;kG$=sR$w#}#_e*bBL+64bBB*KhTcusH=<3;ID)P2;U(Uq6G0m_yGb}Nt#9Z@NV-4M*V4F> zL}uvp@i>4^@*lmiKy>$zv-F5!fRu6egMJ!|;JDi>`Mr?c_~4U1Nuw#Uf6Dcq%8<#5 zzg+cKwv<;-vfG6j?u#i!Kpj=kfICOW##k=DVt^2xHL)o2M^G&uFhGE-p`EtKq-)(*D(E4h}nqwMm)}B3fE}+KvZ!k?Hm)A%4Ha%CsvU z0f@pg6^5yfM!wfh_vdB=_L|9Mop;c=>$PRahKDpWI^W~;7NP<5G!{yWWC!(J?}$J_ z<}^#e$Z6LU_Wy*C7c^x;6Zt#0Y6gUyh-u&F@zHoe+bLxnEVE-?BhLqaul(T*utG5m z$!w5V@|$gNShlk_=_<9nqO79Si(iP0mobW>@a~R^^JZ8bHzN%T65F39SdOE&hL8TF z^;t5hJt1Yzgg(nMRn*4;c3P%$T}6D3R`b(v62i$d@iXxvk^d+lqtJ&fLIw~+JF6gK zymAHYSn@bG)Z@P*^BVAZ8cR$Y!i?ZW&wt4iG0T6y-UuddnKYvt;+s83G8sj2fI_Az zxnd;OsHF+hRmHVWpB;Hv1q*XG6~^!Ydy`GV1$$=Y7r!9Gu;`c)y=iN=>J1T0E9`zc z2jAAJIC)Y5)Wxlo!yn+zjc(W2K$^aFWO(SaOOb9cCtNk?RVrJ=k(JsP;S5zGeJk}4 z7_p%stCrnTg&boYxGTsu4B{0vb=^r2&K1@7Atdduza*udUjq@w`k){L)XQqN(5%5%-n_w@t{k2Ht;Vhg%$4?5mUUnD5`%s;_`uSay1IJ^YKith9Nm>G58{A zhft@NsphkmU+jITSTBW>-cfNGbX^XU`q5!%K&*>z&oIGCPw@QMyIfxA>*o zW0#S8C1?&8lf9^(A_Jux9KSmIm(BM1b`<5wUFWxWvX(_ z{lSz3`9_>ZcqxSkGrdFdaSS!Ci2`FCP1=)hNjHX@To+S4y9=^vQ-O!0VxNTCi3Vr?r0-Ty$U_X}SSu z$XYB!k?4an-~D5g@Y!$bx$w-hiwHx7iZp-Z1*P%Wdp+od`MBx!b%a-BvIPBo5! zNAb>EWl+bgcJ0T~TfLV0`W1@$s(MQR;Pka*I|FBRSIHdk8yiJ#N@`cGmy+4HWLow@ zZ^L?~Ei*&X@Y_%3W?4NHK=EQQs!1vUEP zouAZig>V~|(LOyAlRmC(fg-jMB=(e%zuj3UsbR5WF5(0^;oaEZ1FpxP*sD_`b4MRw zH;~%nyIaZQ?pGoJ$_RoMQb4*;%%Z2?t(j4vwh1^(dPXd%O7^e^k0U#MuwpTKI^3-f zXUr;sqYj?^#4NmdmJ0Se9nNf0UEQ@u^Eo&bp?~osW{`tJ#leQ>YVoU0KMsF}jDwUw5hcQ$fF8 z5Oa*^-&ISyQdi=vsn;1FvH1AXje0UKodC#n!e%O^zGB5Su??6kauei1OOY_Aw_01;$GTB){TvC6XL%6L$-vB5;01Yi-9kf9P5r z&>c6E^!($pPTUXW^Qc@HF)b~&k((KVzmIh=FhJw`5a7OPmJXMlzM@UJRQ|ep|KyW8 zqCaCI=p)#UCLU=8uD2xY#_B%WWUPIjWK2m|C22C zT#-fLS44_h@K9>0&cAFK896a7Ge&xGsh>POhLEQNvhMRnf#UBS1{~q*FD8FNoO080 z%-Q2yiML4DFZy_b>tqscm`#afpg+m^atAsub0niH$ox^g<^HkF)RS=>xQx9NDe8Z0 z+1lM?dmc1|JGvgjMFayfk)Jz%V@NB9QM&u9*?n+tPB&i^ z#76w13%%Xt6vM0KUmwTackm$QwHKZDfj^oubw)uc-|ZKJu@qk(etNk)iaj{a4p$2r zM2puvEjS)_+c|)Knm;BKCjf7E@3d6&!x*x;~pTi5NF&1$R zT*p(Sg%icpEc>BNa9vQ$sN@WL;&c|2HXf^U-_Q02yz~{`Gzc?%iYcatr<3Z3G~Sgp z9TbMtx1vN%{-z?UPAZ>a0tSc5AYu@D!&HxevLr!Q1O^=afG+Z z-K6$vobHlv$X2U~%8Y&O9fxo)razRD{q5 z9;Q-so%4C)$S3q3)m|IM?L=sN@^RMZQw+RQ;~@x57W|xOI7g^}j$`nn%DgBS1{6WR z*m^(!ro)1}gbG$4P@b%Xv7PH#u+D)GE-58Kmb*jN6Er@c1)3f(iy`}@_1H+H;R>6* zE&;^0?BZm4P}odm{YEf7-g$w1Sg%V>GtxGLs1~d|Ww2dBq=rQh>Figu8#$MU&p-1b z;&_T?*!gh+6o;2RBmZz%Bc@@W{_OU%tE;OLLFjUe(bibQ2j6*%qr#3p!{$Qiva*GG zuX@haJ9zQ$3Y`rpRwra;Jn^TD_k5M|WZHF$jg}L?Is(`2?r%;n)N5}}GiUPXfhHh; z=npQQPP;_bJXnH-_&-L0>vxVkr7{a0hk1b`RQEHJA$ytyo2w8J`v-&*m%$> zGdw807^@j3z~IH%Pnn=193aPMGsm{hh+V1e_NRYIcKI`NOUbgg(>orgFJ|sa1U1ge z|Jd~0zG`NEhqaGd7Q6xiU;UFAFVvf6f_?qwV|*4dKK^x@DO*o=65Bh5Mo)|VCe>4( zpuzTQVbO02fB$)=17B$U$sn|UWLbFRNO2YWLZ;RE0Op}?xmID=k|RG;S)af{_jo;? zOP-L31)A&LOs_y!_Lykb7Tiq#Ui?DrCF<-Y(fk}=`g$Rp@2O`usazx}F+5vOm+-7x9sbtbLqhTJDS=9%{AvdAIw!q1(8L>sYb^TEuQf zbFbmS=KmtbBMfZh32XeG=#jv6rkTgt-%7AF4s!!99c<{O7)l!nIhx8G$Gqh$SYK}G zCW11Sc#H_rwj_+~*)V^Nq}F^GcehI4_<4j=AI5P4^z#<>VmBy*fBy+m!+&x`0#tmF z0VDmz6xK$ zGi(_<{{uusW{2Z@YZSlum?A*W6U+~Pu=p@`!FjYR5xyKxT#(RlfV{6_3%Itn9sSIz zim<0}%b1!i%z@YBb<&vN1#2k}y`H>_$@iG<=3tTOM5gcLRfbOul72ty`JWMGPwG=@?xxfcF*c2nq zuo?txEUwxWt@&v;`ZUdFVRl`8{+kTHo-4Y9MMW8`f1TG%^KllayQ~)9; zcf{d?-D3Ez)8^V823egvP~Rnmp;|BNV=EjQFZLW7j*^qF0{9o!eC}=Zjb^rXuID^9 zgL%_xDWIR~hwj=PX%WPJ6^xzV{cu z22F~2Q<@Q+C=yVEV9YO=SQPyqQU(Pa@qK6)mB`%OyHgw9n8iK<=Zu>rMOMDd$|BVa zOkSj2)Q0xTA6dt#c}>eOtPLFLfsZ?gg^yUh^FOK@CS`%#r2DU_@{4`HMKyGWhS@24 zVEJNwXTA~~{~YR{z}iBZnG{K1yfmpZA9b^t5-x--YTg$fE9W;J<;p2EEKgyCe5&oT zbrG;_a7(<_QBjDUQ6=u2XUG%Qu@3$pOMt# z#(;d!HY*05cPuI5UB~~V1k2*6O6>q6J3( zi<|4$PyA=MPgq6RsKiz39)m08T9FE^<`y!&llP9SrjV%+b!9FCkr>L@IG49RPt|^F z4!?6384(d%JCPNc-cjBG7|*# z6uBqf6^=9pP*ie$%y?ZTm=ne;ul=<8i+_-cVDDBS5Q-+E z_Ks8itETi6rbDFrI$PSxSZQI75%8SO$~`lig%k_B%$T4ga*{@5bB?F5Bk+inKKg3Cx?CpjB=<52g z`1$Z1-=LBg|8Qa(h3MA*@y~aiIX>Y!VvUd1CLHWdHvAb+5p+GZx$p1H*h%QH^)77f zj^e}nEx;}5II~MsZZQP?N$6r9G(R59`=-I}YQ{tO$0+woPn4v{M#IR1Guxe4ZE-r; zdvDu_7*W^TxNnp)(I(e0;{X7Aig^oH1cx@fX8>nFH3hT zr;GKC_R9?fVgf~E{*e>mZsoS?R70Z*;?3Gv!+R@)S$CqwixQfj=HPU`7X#$D_Z6^C zTYK*VHUC4-0^&2E;J&01)g(M3Lvi$QwTC5de0H_o6Z|M#4L%tLd)6_8Ho&O_uX&#Q zYjWO}KRd)dqT897^N8vm9Xt7H^wr*Sg1wP?#B$mH6K7rKXq^wdJ9Npw8?;k-Zl9Sw zEvZl)mX%Jc5W2t$N>cPTW0ri+6d67^`s?*S_VIk`bxwrtPF{vi6t`|9b8z;}6Q7&i@J$Ofri&rfG@Dg)BgegYtf zn6R>}B!sR9{3XRqf1KlA+k}bAl#7AI@Hs43kC3B=O`GT|G=sJKw6P?hKhq=di0BY~ zMLo*8*WXJ@)Vd?!B8`*n$!G04CuP(Z|L1R`q7qBS$7rndl;-ySrR6rKCD{Uxd1y8E z{nF5$UaR*m%}o$(U9K-w%kqnn?s`&kWx8^vL}^4)uu>VrJRA3BDvUbt^Drr`)_B@kMvfEkzO7}i)8Zg)v+aZ3*R zD<$m&h35YekN@{^mAf+$FQ`BG$snOUMdcp8h(prehLfE8$B+5Hw1v00l^<%`GYRk) zsD@v?0rLCuCgvjO^hm|D&m2uKeWfq_oiwF6zz>za3Uv{5)wG|FjFy!39>8baGi5i@ zJHoO?+9vrF<2;(c7kFOUn29N(O6F9xg&=TS#l?k`3tlb8Xb2D!&QOHkAzM-=0J;@$ zVJ3q0Xw&m>aoD@#pTBYL4R$pk$nObWr;(TQepwM2r&AU)7v-xaM#aVV)N&c@|ulrARmtY1=d zck_ve-5;XiOt+lTsuy)yXoJzOW#@gi9A_kzM<~(wm4xgJeXrXr3?%jr#3pk|`!Ae8 zTTSV`t2@J6g>dEHp2p)ZzTt?ly$cUs*bIL6#BrKdCHc0QuayOpg*p4(iB{n`+-tvE zSWccw(}4YQb+r7aDMgA`*^AeIHiP~XpGW^Mn1pbkR}yf|kgEUE+q6Lt-k23Lt?090 zx%6IOr`eI|-rf1+Z`?J-0HiX=`7iu`{&KzcncuqZc zx0e&n_fu*DVrxUE0b^d{r7GPYTS>!$%f}fJGlpXZ;Jq35Jx;@xSxy5tt(VkO-0r&q z!R4PE&Py2X9CBeT-@AwI{Gvkzgganl9?Rb>{|Y|Y*c*K*Rc|-HIUu`071y>>QFYXB z?{k~JRBU=5BStuGFF&|c5B}u1)FUIbIIxk&>rE5r`s9eYrqZyzM`2q2q~~{}+iqoF zXhr`)&OS5lxyRY^sz+@hj1!mfDwLP|Q}y>TT#x@67*4){*!;90y}DtGKH1o{UmYh8 zj7+0j(iM0w$y_{dI=V(Dc9?+9MlFFIerjXvlk&+2eb|pTakXS30miFx+-#Lk=7NVG%lRU9 zR!5=GrBjegx!B!M!pRg1alIt5oz?Q2jRD)#t9r-#mg}D^8Qv}Vv}?Zkk5P@5%fn>a zddv0M6OSjrXyamvV>xBYItykwQUF9q4E0uFe@Ifs@GOgJ320|#n1^2b>U`Lovy^3j-HxMW?6UJ4=Qc*=-&p*OPM743ZMq; zgz!+QKlHJ|U755VIP0ysQp|ZmPojex?bk*f# zKUYx_3-L=`0?sa5TSRQfKKnNs=SZQUpJx}_?B`1EM^2De(;p|34Z}$o#vDYqmPk0g zs_-l7@Cf-8Hx(X(m1Tyi;VL5>(*6&0*m-@VpYpVnQ}g(j5nNpJ&$T3{A?@V%Uv0bv z8Dwv7_X!Zew79_v_ZH0KqX8t{7o-NQDr3&?8nM$$VWWzg#*eC`3jgU@FKYU@uRdPk zy4y*<$-`eeJR&LCKUud{*2&k&CnxK;UT@(Tropj-1(-VI*SY~FZ1_Ww6hH23HX680 z@p;=81T1o51)^DOj~-qo1wvbIUUAjE3>=Y9mp{6F?MJ|sPJ@yH9E&=i3-F>VXBt** zL_B8#)L1xqdLRA=oj_v08fE^J;}D zXG6Iun(eMWU}&>#W!CqWtvi@)zpHJftv+zza9h81YrFK}O53vT8tE(TnlEhNb9Lz= ze!Sdvv$iiyOFQ}Q$@Wjo7+<-1fj0Fbe0@>J3pwh&FW~B)LAyx1zk_yaKZBx&kL+p( z4{UDRXiMtl1^HvvkzW~f#s4;$9(C!F0wr%p{Ws?Yqe*$sK;{I1Jzkru> z4Db)V*{4+lN1h~#7^UG=Nv0Hh zMq9k)Ig)}!3_96BQtcM<=l8#!mujl7hjzxx|L`fNsczR!SP9ZEdFJ5Wns@Pnk>{*# zQIwrP^ic0W!Rb7@4UsRZ#PEu#68B~zjDoBFosHTCUmEz%o_|CII6JG$kl$M;RVhKi z6ubOC-#Y3S%fT$1w>MbMsYPI~zD$@!**ERCvia%Cs=uTJ`RryvkvpVXeL1IAc z;98i>k<}!X2_Gk48p%52;;8&ptRi$uLsH~S@`=LZ50XEOxo7{q{7+H5SN>Cztq*G| zb08#+D)ZlS{hyixjp3%2=1GfCzCQ6s0iVCPLcrLL7ohndc`9WAEC&;hhlVF#Q~lj(ugY#nbhJe1gG zkzSvA({}RkbM3mb4{LVldS-sow`Rb?4lc6}d5G}SuZ_&u*}Qo>9o%iqjNHsjJO-2Y z?`S*sY;Bvi`F@KTkLDQzjrY-MD*KhlJuBZhn{RyTNoU+n{f8f1ZSOL>@9c*s*>U$O zoh@hiFf)@~w%0KeXaj?^u0!g;jxJOWx!z=u_c|NlxXbYR4Y$x^XWM)5a65RAPc#p+ z(arv?ZO>jlDQ6q;EqsdZjHgY`Y-PZABUcChRL6BDQ;y*6O+weXEBF;=H(lpja(#E1 z4RJ12@;WjO+-#CT7the^Udn6d`n(xvO|JvJ9P z^WmxD$KL}006+jqL_t(`je(OTe#;EZZrOC89eenJ_Sr8VY)?GCw;kHEn?VPBfFHJQ zt_Qde&#^w=uU6XI$1k^STUXlWKEIG|_dwKK&p z>U>i9!K?Cz>5G9z!~CV)vi*>0*R-TSC;|DC0oLJwu7c6vTZf7{!M0JcgN;{?xeul&jm2lx)#0)VEdjP>vxIJ2}0#=x?_=Wfi9z8|GP z^cPrgwJR9|QrFUL$TyGGaXKI_x@!NX_BRM1{yy#Bry(D0N^d_fT-I8TRT{nE6*>iI z4j4&FGGX}&Nr5SyC;6n*(h4C9pYk6%L8pD)J8}yTd6%9B0vrKF0~^v4iTuE{IRvH8 zge8xpRsD{xcvN1#aPw;Zsebe(E$a@;0J!Ac!j3z$U;2Iw{}(oX98ANZGYf9%S^gL9 zQ3|M=ucj>)ai_uwL_Pwl{CD}Ld8l{r5=>4XO1cr3@pQvWU z;a=-dL||MK#2I(`-;^QA@M{16KK94ggO!qD_p$z;CC=-AOye|TW&bPV<*=O{(Y+ia zbP!A?O@To(0}vb!`EgViSQrbu5gOOQDc1liWu88TCl7S0d3+767(@Tcu8Iv_F}cjB6!OUn#C`C|ag0k~}9 z(QDAUOn*~8GTERe-6wjA>lwVX<9U_Oi0@l}omoRW>7?%A^YLBGzT zSvL(WRH^!uiyL)!MJ{UTOurlGmVDp|&zVq+1t7CJrq050Fw%00Y{E~8I^FVQGo=^}s)I;wA$)3@l%}*v?!y z%?#SJl)EKnf}P0#%QZefy?JXh`Ne4nM`UJ3mwZ7Ctta`CHfTes zenAkm%LPz)#uYJ>FP8GdZ^2VU`TF4QFJn_0NjWN83Rf(~cN*_}SjUwY9@Opg%!0hc zuHhFxTy7`ax%~V&W+Gm17a3gq;Ph#hePBS7HdbHS_}u3VYRaNB-1kr)ckSB2O9p0b zQ_syYott(IU*D$k-OSP+zO-^iH-m_5Vzk1`f@{kcX(!KR2Ivh2Rd4a)Wtlp8{Tl5F z%X{2rujdmrysE&AEla(>>U~nNQnq@lwQH<{fn0#30`W206_LXTZ9_o-=N*(r#Sj zi-8rUZToq;ORub3x2YZACDwuc`C6 zWbPA)=r4~f6Xv~noDQ)!8SuXhif~*%rU(#)({oKXu^X<$q z-2#8>mOuZ;MM>73Yu-P&>R#`Ys zwcBWM5NI1Qub)F!e4$R(uZf2P+qAt7aB@Geef8c@?e0tt4hfC^i5i~J3!u*!LuT~C zXl>GW%1nC`Y+-0KlP}J&pCE_&Ny;hzWxpB^tHP4Rx<*XlhF(F%Q{J|D<9Q%np2^o= zbN@#^w1~Y!{_ub4p}4!qhpv<=U5)(S^0iX`bmK~1N&By9zrLt4_dD#@x9ApMLX-T} z7y51Z9~&zFDX{|iO{F)6`6d^M!53G4%E!wFEbXQxT!G>L?%+xiRVG2PltTcaoG0GPu#uswrsjSM&~SrQ@JC)o_G#-J?qpL_hlvB6*+Eev?wK ziI>N!9G0i=QvSiu5g$cb`MCScwle-9$?}mGF9=Ck7>w&VLOeJDQ;HrL`L8~kg<2($Bq&|!Ct4`9EpzTCLmPg?&ihdF2)dc*FW+>KA{NZw*F$Q$N)28@37>!tR+fA}pO z%G2#%ee0?AXU`sOTlu6fpV-oQ&TK&j{Cp6(WzWf5G#w8IH<#$BEmOywk+|74JJFAR zI)ieSS7r_|j&yCAO((897iOwt3qPI+M(TqtkBZ z+%+IKGn;b*ol`q$K4|2o0)KCr<7QUXd(r;so^kKd1sN~_klA^3rf#6Oo8zo-btdUe zlqJZo9#ldL)9}rS4kA9-&g`RY3>>)r^LiA@XU(?53h5VvrH`P}(Db~qGp+xMCU+|! zA?&rG*6qjk%52Ammbb{F<^b0Ezi{zPJIDH{u1UCs zJUhVVMtk?|V<6)y1KaO2z`+Jk&itiky_uy7cCv=xMwS)uw}Zj;ZHxwQWLB?(%dU&+ z)3Sp|=^Sx!-N94u9dGZy|1N{C%u>TwTiJZ&OJDh7``fQS-JX1qK^+Iz(J-HErBGQS zv=-zw{;yo%ycT}f_yG3n>dRetfDrk!q`_hm+yevN3$YiE6csDhUG6`HYFQ6fghX7> zJxNcRW`mr%&{>7~5Ml&)*c4OngAve_s2+txddW=3D!LVqRD(`z*!A)}!q$`jW@qP< zM8gwn0%1Z*iIAFqnN3KQXq57i`bTi$(Sri=SPh+nYGV+=GIN!3e~!V-6KAfqw@;j6 zmhw5`%*s4-v0XTGwp~8^A#LzY+MR8*#}2Yl##x_t1Lb@Z*DX7E5wveh+jnd|SJuki z$qOlGk7IAO6}HD^iZ4?r$r)5~B9KA2>kW z^U46-Zf1!(6Oxw)F5zH%WUlC5UFcoqCjRwveP{W*$=p>o6}rr9&5M^D^t6%Yr5Fa? zLWWuD+Rwh2aznS}E7us{T-OdCVixBcufHDr--h1~t zFICPlOZ}a8iNWOSzM!M6Qz!3x_0mW!)skT%voK5Mbh? zuGdwYtP>7a`ch9f%h!pd&P2XW8ONR2t33cYl*a_x`a%RE;~x5&$C3!dUC~pgO;rvb zWiB#_qN%SPS!dRdfl2Z8cdp{_^H8mkWJEuBjPyiA3N3{s*EvEbnw04>Lo%0Nq>&M+ z%0LQqC7*CuDU5^5P`B`e70`=E>1d?*6y)ROr;8kFvDeCnwwO-xCxGxzLH_S&KSH~$ zaYiD-^g}noi%L_dV^6@HZr=V1m&P}=exi}909#?7H>j}TBO<}NaIN||@KhXRj!k(KkxruQyXb}q=S;;MGj2D7e%dv-J+3lP!sZM8&XHq&_<`q z=BUrAW>|cwySN@Gt0O;&#?^e}f6)v&uePh|9Dg9nL%7P;{T97dc#5lI;gxy5CfYI#;3uqq@x$O6eY(7!!MZnxIwZ_V1q?^AiVsla zrrhY15P&WY=b#o$9^E|@Ga|;t3#zz5o~m2X7cBY^9P%d{1}uDrMs+P!yZ_Z}mOMeb zLW7?=4f|z19idg1Dr4d)vW`wP7Z9UJo!7rP4YY+`Os1qMFnBLSEaU-Og-0a*AHaSc z7q2ml%cQd)5@P=>2RoM;_$`9PxDTAT^D5O{16u_{C=dSU=)%m$6d z-NCOrU=B}V2(HDpBlOGQRsIDS_)Id6iO zUS#8$GZ#{+tGyvw?avTH=LUcsrpydP5nsrzz}J~A=~tR2 zH{h-_Cr6h>ync#JXy`oeXJ*gggM8WxK97Vx*JW1SIv-HM&%+*RrnoV&H&l5!3sPPx zlsDYQ!6!L~ovzGg0n0&CXV>_6%5rUm2bOw?E~oNJZ~pNSX#9>+cb+ z{P$vqPrSNI8JAZEQ3=RH$y($ix0qf^o?&79eA>%loQ^N&`xq1qNhNR&v|`BVOnRzx zVyMX~%z~>|Ptoty2`?UY9vvL<6Gs)<=6a)i;(m-}0-kwnPdoL&(RPwSn72=yY;U~v z9$Zk!9qK&H*Z{J@R1Fy+}%D8=>Qq9xWz2Y>(|)j zof%`C>0m>uLJ+1hHy-q`+r7TU7~uq;w)ol z?|s1fm2VzjZpYudN&Pv)Ec#zFTk$k6bZ+sYpxVwoY|OQtr8zq8Wc;bU#VpPDPJGzjd;hl# zpxthdKfJqr;i*FmsyefoLBPv=F3++NcHr%>*-7_>hXZfEeA>vknstUwx9#jL{gZAkf zQ`)byZt}{_^Td7OrzW;r=0872&0{~Ux&xKoXT49LZ1lA)F^p_|dE2iU9QAY572Ngg zcvge)_*yy!XDp8&Faq!n8SD#~?PU0_Jt)DC~!0muR zUczxzmbRi@jE~29Symkn+c?ACzr8m}Q)Rjk>TG#89skP;VBiF90J{kTH_G#?hwI$a zFI>FQ&YZo`&arOl#f!Aj%)(uv06NgQfsER_ZxdfcY-)!NZfrZYGbm5{>(?CK;2p$v z^QSG&PS&sL!=WAP@Uho%r2c7L3`3&?NF7&#R!gaKi6;y}&@UorQ}Re3m_%CD@E!(; znX%t%o)wG-mzWNbApk&yTcbt9I7IB%;+s+cxcnNT5W*vhSZ4J2Aj58ya{g}eK?48z z<;6)d+H%zWWkMx}M`m$HzGS53r>!MFwh7koyT~tIrh|m6w1bm~Ki>YD38pR?Hk|w) z`#F`Kq!D&zY) z_)PL65&Gi(k@Ab`w{q2+Egxox9yL`Q>gfD67$R_r(rI40_S~${5%uo1;8ZgYS2NU=7``8}_gHrz^bd~)h%_|9! zzY127IXvO$S}&!$)^n6%Hu0GyX^>K)L=W47>Bv0LlHi|5V7Vr`>J*GZTP=UUCIOIr zg!~0~WMn}m7V30|{7TK4Q?5Z;gZT;M$DmGo&;EP)f3N&g5C2D~|Ebfo3|>7()4F3@>{&;roLMwT^FinWo#qoKnKk;#yX}QvJrC|u zd+y6$Yk&FGhuiwS)tNnecBP#=a~b(pS=W&@E*XH@!7LVM=-7$(A3_3HsVuq6z&~~Jhp=o zd6tW^zskz6tRy%{v0*!#>}=i04(3OA)<4uPUU{Ou`R%D9b^BlUOm`8|MbCj_JTV+Z)^KlD|HJ4 zHjDu<2yieD$u*}!e${!f5xk$-VCAQT~PtOVzR~XHK~$!Bbj;)X&AhBrxk$B_%vnv(Qgo zMy<;8betebO0Hc&g(*f@1b4WwUj70xK0{ERgC=!2OWdUu9N<~U?%%iDkAL)j`~DAp z)jqty8kOMQyvaI}Y~pt8*uM7Y<44SgI|86-k4w5pL%1W`@Kg{zX-$s9aIdaNJXV`*r{qn z!KxNQ3a;o5qOxpo=R@6qZ)y+M`aICQ#vce9vl1QDwf)uB3`!7}PM&GodzkUp#`tmD zMO*X0q5bgKo8Lzh6%d*1H+3B?Y zDu<$4;9*;fP%`DFgO=PpH_+~F=96~^BYjDuvhjoYY6x`w=S#7x%oxAKnxf~=Gw^!; zbUSs5B|>hzlnv8%GIMK$cvz@yrkU9Ao)&qo43tOIY30NsH8Y& zu&%J&Om?|v*EheUSYgoC&FkFIF4{;i*`O^Fr-tOJ|JPF<)p41b>=)T6@673Q?Sl`_ zw$mS+L08snW@ha*){CwCrt+8_i>i5j9#= z_;dN;0czdTdwSP>(f)TiA0t1?%oX|+?9Z1e+N87jxBh34kxZ%~X{<$eTL}--;zy&s z{q@DlG=mp#*=r8_vZYGMcy1$`iJA~^|pcConlLLluF z@-532n5@4`UG{MB(q|m&wrznrt16S=W0NF)KjqVh8}C`JlBYZ&vCHpD`{he#+mC+yW;=2GB|Z^+n@;_XcJZ;#u?C~N zm*2Rr)rx-rG##f&56z3;Fgh4J^IzAvuJ6d`l9QA>REwuMed(RHC$}@OF z4*UxyGT6EQ02%yD6hj^w;w3%>Dn5U)4|z^@Oc)#=dVTT}Hyr|^dB_bTB9Th^2&u1j z^+DJ?1jJ5pl*0k9*ez<;+l`8PYB3{L`45zb7-th`lbzfByO>$@$fow_jXmHVVOQe^ zm?e2N8>1}Kv30FhXI|y)YWznS$7WCx!~CSv_3gGZ$hmv>wzh{so$U;u*7~XDl{3Yn zVn3-89_mJVak_DNkuZR*tdF{L%WgXCJ2TL}zIXDw`=k)9Xr@5t+fz~!urYEZ#Ba%} zWE%qq&>dyaeH}BX-hA@GcKq#ESRaqwpP5;gVh}N&2MnS2;0$iVvbJX-2w@{W3(B`~V9l#g)|fT2jJg zXV*wTScYigYZeWnv`#pmH{*mGzXo8@e6 zTNwmne6I#9RWOA?F$_E+i#d}FkX~)y`TnolnRhR=KmGDE?Q_rUXJE_S&h11~^`l_v z%j>CpwdsqNQ>SjV?|l26_LG13&+XdMJMFVy`9k}%zxrx>;OI_f&s~cQJK$*vz_;V? z%xm)^t*f@iPiWK2dMr*oDS2^-jIr24c zY~AJB{ZAybSBY0UPNGMcTa(2mACxbgllG{K@wCr4+T3vt_)gdG+*wVdo$++Yb9I*D z&J1R1mY>JFiIan5w;6!&Wnc!eW$X+%9F)8cH(Wj3_C#7s+nS1$3HKkKmGys?BXmRW3yUV6FmKmJlN zUn&AMu6HvFm7SqhSi5!U%2K}ZhZ}9@?8cT#+zjmRW zI`MXU>vab9ckFKa_8sJQ%Eo_JFR;dGYr7BZZ4W;3V0-$h1MLxJs_x$5+Oo{Br>$3Z z^`&b7$c(k#df&2+Sf0jUU>N~^$}l+CB(WFITBjk#%OLsmxTrdzgoz!UfneEl6R^x(hhKeU(;1Ll~r(G$%UHjN2GH%eetWd76=f#R^A=itC8`LY?F>9a)8l`P5gD5>DdjC_N>xz5b zzy^peC9;FBVYc#h%oe{=VTS!C?k^c+^u=)4LEr6{Fs@O6VI!Uh=Tm!w7?Nhrw$Nu` zBAIbdB<+1j@Gb2{?t^q3gzNN;w0&FsN@oj`7Q9i}M8MoO%C^-!v>zf}UR)!$?la(m zr@DF-G|saFz@q*sTLip4Apw}eqy6)&67UtBR;WE9%msbTdgmWRO{%X849fEG-7s zpD5@%F-_uRzbrn={wR@ju!0zI1Q+(3Tyn=%B?Oh$o}(5pSwt`N&%k2<0g`COg2{hW zC0aHNPT+~^?|0cBytVR&7RBU~ z!@U3tU{9|*KYx%CW=imW8 zlV0H=2VwB!%XT`E=%XIoj5gA~`i@?kYqx6^uNzRVB;=;)HBWJNau$t5I&zLwrt@C3 z`YK&Gcvr2_W?bQGWF5%Khp;?_@ttFR4n&$WIss>cB~ih(efFw?YL(z{XE-G(4++(l z%K?}_U2lO7O8zj-K_a9fbLt`mULT z9LPavW=0r|kv`<&Q<%h-Fe@GHJkY17%owU;(f$+CSK%XVrH5Crds?TgqN4xQwd;UT z<1%qpt98bWOq|)egV}cVd8`sa2%XXrsIs7QdR-Mfjtb7tq>S`jXK4v)KLNvCL>Cj5 z0d)h_Wh#FISFBBF@P+BLeYksmymmCTY;=Y_1ESg2DXG()~A9X?A2X6KHDhr!}S7#JBQl0zWHSP?30@^W0Hw%jlF9!Yb63X`I3N*(leuH(^lAl zbB=+jAN}(O?R($(2?Rkt;E#*y`Z6GYavvuAI$AO7TQ`{9rN z9-Oz^U;O2tw*UAa|E4|t$U!>3;Ie_3wcr*V(i?PIeR-sz@hdzs;HV`C5D(3=DN)vE zreK%@`J@sZ>&27xry9L{C2AWYCF#Y3fPCOLKG}?41Fczhw)wtLS;x&O*wR8X%75Ah ze5_wm0t^sZ?@KxH(&9*=%#xipNVKGjT{J=r#a>Q%Ax69;+Z*@Sk1!40; zPaK0{vq_|RE0MoA4sa$8j9};Q+2$Xo7m>o@hMfp{xlGzV_K+JA?8&*;H!p-rWpt?ru*!^>llb`@2hj zsKaJHvG-*aj|HrIdaAwh>dWo7Z@$66C~J}4{-7=MV(b!|8D2YglcgJe+kW%v^X;V< z4zwqqc)UII@Z&7gaHt(S!YBGJp@YLLJ3b0{tfQRXX2YutBB?Ptsk8Tn=+CKM+yNsY z_Y4V5^wO^*Frp(q@Cv#7p@dQXN|=l$mXrL@bcE=XQ$go^OXeiG5JoiD1xB^MpIpAR zbda(mQPIwu8w8JNX)F@9sUk0AU?pmhaiN-3=%iY~-fnbH7K( zxyoIydA6NWknzmA#n{{z0Iy)zH8!fd%1G@pI$pZO8tSeqLVInqKL$Jfn&$>Lu?;wA zJ6|j8WWDnvM|bem0&6)V-@4?VepISmj|^6OPr}xup@(Mc-?jBmItjgaME5DK0aBRI znHcWK`YHDfVH|_U6bQgmw3rY^`SY35!l-Uyctm2)qaG{RO#H+@+7|y1a|)MYwJH)T z!WVfZq_datTKR)p2@QG$JI|gT`z0~{1Zy~H|~b9TgI9g5}U?OLA>}4UURPUs$WuvHRJjb@JV@IEN8UyrK%EsfIsiZ!0;o@r^6)QU zQa+LCq=lt_F2!FP0K4jCUW+N5)d>gVBL2-4Xl zU5Xrb4oDYGn_{oQ{FK3uU8i$|kHb1V*!vkPGokKd^CZ`j+s-Tr#+NuuMZRLyiN8cl z!q<~r;|i%vFxKO%0);Y9O1SH57>30&%tk8LI!Zn`BCQfmyvr{=D_;BtuZ2njB8!9v zuW_Ae8kykL0RjXcCx23G2$^`@DPNw^cgP*rF0H3dv0;B~pK!aNTqdClVXNeqcV<|X zI(YSK)&Jx?q6AV8FgmYcaH{t2Vutav&m3(pJpbi(=~q8vaB#Wpa;I!Q3Ac}F2e}Rg zMxl3Z5MA1K9bz|;v3Fi@ z&R#l?Oa`1DK9YfDf73qq$N@e}SE{_752>!!6K&vU zT}hZID!3wDIt|tpu~9sqIZ6k_N}4*>X$tBYA;A0#sWSBoMq5+kIY+H%PYkEB6H*Tc zEUa}o$_;QUX;r7J!(kuF;vf(C^6NHKXUDcdT==H28!z1^CgD=lrOP-AiyJhhj-dvz zj1%CyF#s_ks7e$mh-celTNQn6Vv?hmse=GKV(t>p1aaCJH*IR|$o<<`gYyA4c-qer zA)jR(UT^2lvIgdbYiycysa@c+_A8e!v+4aZgMrJ8vopXz4{AG0zii#cj`M6* zwTbnWGqB7WpxcCP-kQNp*Gy(a86B|*XJv*YI;l(Y#de>+P0YY|nUTZ$H?_|kb)8V| z1PIyAVCNPVVbw8rO+EK&dM(4`d zWHv9m!SldPmU>uTVGUmgCY{wx;+5qa)YBUbT-F-3u2;LfbdBbXE6$W3I(ft}T zxNp+VxTbJ41Sd3%=(=g+x^-?)$BgbxJJ^Jd7Z^{mB+LDK+Wx(J+kySN+wPq#OG2IA z#5yCDC!vNHd<^1zZxLii{O=2>98oY04~y3*S}Da81(RlW*nW!OO76&ODk*U5an0iOH<`v#)Hd8$k$TJgl(~T zI@c>c9B>r1HP!#+3N!##_s)VX`WDJZo=PY`Y(GN2C}GHT936j3=xTLF!5W}(6*#wF zp32vzDwZXG_$|6YJp5mpc5WU1$?Y#qLp^L6*D`)+7v1Xw!c6`wVe;3oe;VMNcuHA0 z4BaRMi&UAFGQ-?rADC&Nnq?D3;^GX*BC`hfd8*u}&Ji@lchHLY$>bL%=T2(*ONPL4 zXg9cvyO03lJ^Q;uhKCm3(O1b6D&fMD9cCJ+_ws*~uqs&Pz2U=!*M@iX=}6U+_sT#1 zi$jKo7T(cUpQQYWm!p&Z?)o3Dkj&~og*oLpNuCNP=am0(%d#%`@B%*51aIA9hiV4v z94Inl#V3KE-3~y^!ng^&)GN#)InT_^U;N@y`v+zZz4PwB@JZRx_9tKaM*EYmJj&(= z>+>1rYj0d{|M2bC+w;Hp0qZgzXU(mB?N7e?RQvj0J=Y$6DvM;x1E?EgZ2#h$^<%e3(wLcyy%doCM#yT zo2!Rpo=orntAMgoK=0g^OnC_tCxeMjNf5}UK}t}*&MRqz;VnsKa~b6)KoOETWRZN! zV5I(Wpu*DWAW5)cQ8_xgu=2{_CfAx#P8vm%J2Xf6v zLnX4pz-w^RXbsxr6D^U@k>&B)#S5$#dt;f-0<+{?+Cla?kS$AaQ|r{#sA&YW-*8#3q%T>W%$ z478i(CwYesY-Y#uL+#~PH`2Mi$QsCembk*ekbO+#)e8hWgEh>bml>2Tn@c|+|BxAc zKlsV}?VaPt+mVMJX@C2_evO%Khok3*bf!<9xY2&~t26C|U;czn`K9*wlV4zJNCEkM+2?ASj`*0hC%9mJFWeO1e1aM`j`lbl9PUhHEuIkt;tL z+O&<-@QM zSGez9Z0A@X`NE|uO~zn+TsWBZ zYx%CU7;YbW7XE-j@Vn~2`6pV=p3GOQ3_x2=Tcj2SF!O(w^3n38fGY^ab3rw@o4$|$ z;$-x|SfqxR_;<)JEro%ZVok8u`X@9QgI{Co9z z!Wq3jzg?#cFR$>4w>ygQJW%xyRMI5z$i3O-P5%IN5R)&(b2aW@q05R~;F))MIoJ%| z`5erwMK;u0=Gk@W3Umx|X0|2m`SO+14EkNkZm`mV%p)U z6&q3pcSYr1ux=e+aUtJ!I4?%PSx?);>u?3MtIXQIcI70?Y`oWwzx6h=Irq~)IMN<^ z=;8LrBYWHZ_it!>cGExLMU1|-ebLSh8k9I9djXN_RQ}N`Du~Qs`);UI4Q3z?PHRG8 znXazEnt+R1w+M~e1(S(3+;O@-k%RKJdwvLC_51_Cd=e{Zv(O-&%0GefyLv2+g)TCS z08cZ1;ub|ETV{k6`moA-o5w`ig;;-VQ!N{1TbCbOWfHCi7V=5Uv&sO;m?N0hFQg0` zCTai+D99aQvVTT3bd=}dGszE({6}YtiTo=ctiwo-{E}tb(B=2Gze}FWx1A_A4h9+Ew!dXVm4gMoA1js!jR3B5ig~4I+~Oux?8Omz6`n~P#ky$gT=2ztAzbVUhrnF^ z$i7c5zc|ggFJvOAl$|uJw2zkG-Plc^w1li@>T-9l{9CiiC-YiU_099V zhJJMY`>$UAqug9RVN|=b{S&cnW&oo=T)(5e3l-pTqm*jg{IfInZD#GTK2{#=VCqfU z%5s~huiFfKI=9F**xV%MJTo_c^0N!=yWjg~*35i`4Gx}cU-^r_YG3{GQ8sH}78^5> zu0Z}S8(v)JZ8q&Ywd6T&ExIi&+N=+ly-QXqjY|$wIBZUO8eeF{2x1{EPOruN=-p&C73IYTy6JKX}S8Q5A#F;1QN} z(+HIm$uAP*GH_#$$o0?jg#mBe^eQ=q{Sx`G9>ktf3U-s*U>Q6)L2dHkd04~awm!k(&AD!W>KmsS@f&E*gq_Lq@e zosX7ZdGu-7KPjamB|9L?T-TI%h0Cs~T?yWx_v*kQ-l1L$``t^L%E0-^QKotKaxs`;+I6F!PQ!_ssS7 zv!A}vUiifu`E2|U3+?T<-fh4A&8uzC-u>4ImhW+3g87{7Pumr_hux10EU#rW551aBvC(snJJ0 zN?zcKQ(BZPctHJR-qvS+;y6sBK6S_^?R}tK4-(bI`(TB0~wWOr<8I%=%eM|S^qzw{gcpv-}M@PpX{G&3J&?{vKW>mQGL>6Z$n8n8F*x1@$ALR z?ZY$YnLWAOZnBQ08y?z<+16Tj9K^}s5U|@X002M$Nklj$vlB0~j04ZJ&K`8R5!ahMd)BX%E~A4>JZ%F`TYcNl$gfb(*wAhBdR`d#;(+yV z*$}L;S>i2bZ#pY_^Hw&HV>yRC{I>C;VLeMYY-Ii4ovfS7*W_%l$p%}z2-rrQ-o^4i z4)nQ16St1!vGp(aocKwgeyh@JUYMS$z)VPAY+X3-%x;z)VX#;EH-S0edGUf9L|$R= z)j?N`gH8b%AhltUk-T+S_|lqJgA@2B-s*02YB~CC*uZ9>Teijzs+D^gSJB-a-I>

6Qy|o$R1K=4zHS5szchCRN!MrVAEFZxQro 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

3Us9)SGK-3f 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%0DWSIJwp22eL@o{jY?Vp7(6o&% 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

DbPWr$XkpJANl3 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 p6Tf^6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 零知识证明笔记-2-PLONK概述笔记 | 耿腾的博客 + + + + + + + + + + + + + + + + +

+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 零知识证明笔记-2-PLONK概述笔记 +

+ + +
+ + + + +
+ + +

Why ZKP?

零知识证明 Zero-knowledge Proofs

+

其中的 Proof($\pi$) 必须是个有用的:$Theorem / Statement / Proposition$

+
    +
  1. 不要把 Proof 这个词忘掉,到底证明了什么?
  2. +
  3. 两个角色,证明者(prover)、验证者(verifier),是双方的。写代码的时候要时刻关注写的到底是哪部分,是证明者的代码,还是验证者的代码。
  4. +
+

Prover Code: 需要关注,有没有产生一个有效的证明,产生这个证明的时候有没有泄漏不该泄漏的信息。
Verifier Code:关注,这个证明是不是有效的。

+
+

写代码的时候容易忘掉。
这是一个 Two-party interaction

+
+
    +
  1. 关注以下三个性质:
  2. +
+
    +
  • 完备性(Completeness):诚实的证明者(honest prover)一定能成功证明。
  • +
  • 可靠性(Soundness):恶意的证明者(malicious prover)一定通不过验证。很难测试,需要非常认真、仔细、深入的考虑这个问题:如何保证 verifier 不会被欺骗。
  • +
  • 零知识(Zero-knowledge):恶意的验证者(malicious verifier)无法获得有用的知识。
  • +
+
+

关注 Meta Theorems (Completeness and Soundness)的证明
如何保证我们写的 babyplonk 是 sound 的。

+
+
    +
  • Prover 和 Verifier 之间有大量的交互。Verifier 会发送大量的 challenge 给 Prover。challenge 越多,Proof Size 就越大。
  • +
  • 交互过程中的步骤顺序不能调换。
  • +
  • 实际项目中如果有安全漏洞是非常严重的。
  • +
  • 攻击本身也可能是 ZK 的,不知道谁干的。
  • +
+

Non-interactive

BlockChain 中经常使用 Non-interactive ZKP。 Fiat-Shamir Transformation 能把 public-coin protocol 转换成 non-interactive protocol。

+
+

public-coin 指的是掷硬币,公开的发随机数 challenge。
借助 Random Oracle (RO) 工具来辅助 Prover 来产生这些硬币。随机数不一定是由 verifier 作为来源,由可信第三方来提供也可以。
Prover 与 RO 交互,产生证明 $\pi$ 直接发送给 Verifier。不需要等待 Verifier 回复,Verifier 可以在未来异步验证这个证明。
通常使用一个足够安全的哈希函数(Cryptographic Hash Function)来替代 RO 的角色。没有严格的证明,大概率不会出问题。

+
+

Commitment

    +
  1. $O(1)$ Size。无论数据多大,比如 10 GB 的文件,都可以产生一个很小的串来代表它。
  2. +
  3. Binding。$CM(D1)\not ={CM(D2)} \iff D1\not ={D2}$。
  4. +
  5. Hiding。能够保护数据,可以混入随机数。同一个文件两次 Commit 可以得到不同的 Commitment。
  6. +
+

Blockchain: Put commitment on chain (EIP-4844,Rollup-blob)

+

Commit-and-Prove

alt text

+

Why zkSNARK

+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/11/07/learn-index-0/index.html b/2024/11/07/learn-index-0/index.html new file mode 100644 index 0000000..11c6cdb --- /dev/null +++ b/2024/11/07/learn-index-0/index.html @@ -0,0 +1,528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 常见索引结构-0 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ 常见索引结构-0 +

+ + +
+ + + + +
+ + +

以下是各种索引算法的简要对比表,包括其原理、性能优势、适用场景和缺点。

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
索引算法原理介绍为什么性能高适用场景缺点/性能差的场景
B+ 树B+ 树是一种平衡多叉树,数据仅存储在叶节点,所有叶节点按顺序连接,适合范围查询和顺序访问。结构层次分明,叶节点通过链表相连,实现快速范围查找和顺序遍历。适用于数据库索引、大量顺序读取或范围查询的场景。高维数据或频繁更新的场景性能较差。插入、删除操作复杂,维护成本高。
倒排索引建立词项到文档的映射关系,将每个词项关联到出现该词的文档列表,通常用于全文搜索。通过直接访问词项位置,可快速找到包含该词的所有文档。适用于文本搜索、日志检索等全文检索场景。对于非文本数据无效,处理频繁更新的文档集时性能较差,占用内存大。
HNSWHNSW 基于分层的小世界图结构,通过近似最近邻的方法实现高效向量检索。通过多层图索引和邻居节点搜索,实现快速的近似最近邻查找。适用于向量相似度检索、推荐系统、图像搜索等高维向量场景。构建和维护图的成本较高,尤其是频繁更新和插入向量的情况下。对高精度要求场景不适合。
跳表(Skip List)通过多级链表实现快速搜索,每级链表跳过部分节点,提高查找速度。基于多级链表,可在 O(log n) 时间内查找目标节点。适用于键值存储、顺序查询需求的场景,作为简单替代结构。在超大数据集或高频率更新的场景下不够高效,性能会下降。
LSM 树LSM 树通过分层排序和合并,将数据写入磁盘前缓存在内存,适合高写入量的场景。数据批量写入减少随机写的开销,分层合并提升读取效率。适合写密集型的键值数据库,如 RocksDB、LevelDB。读性能可能较差,特别是大量读操作时,需通过多层合并查询。
Trie 树用树结构保存字符串的前缀,每个节点代表一个字符,用于高效的前缀匹配。可以快速定位字符串的前缀路径,适合匹配和自动补全。适用于自动补全、前缀匹配等需要快速定位前缀的场景。占用内存较大,无法很好地处理非字符串数据,不适合范围查询。
Annoy使用多棵随机 KD 树构建索引,用于近似最近邻查询,查询时从多棵树中查找相似点。随机生成多棵树,提高查找相似度的效率,查询速度快。适用于低维度、高性能要求的向量检索,推荐系统等。处理高维数据时性能较差,存储空间需求大。更新不便。
LSH(Locality-Sensitive Hashing)将相似数据哈希到相同的桶中,快速找到相似数据的近似最近邻索引方法。通过哈希实现分桶,减少相似数据查询范围,查询速度快。适用于低维向量的相似性搜索,处理文本等场景。高维度数据上效率低,近似度精度差,占用较多内存。
+
+

简要总结

    +
  • B+ 树倒排索引 是经典的数据库和全文搜索引擎中常用的索引结构,适合关系型数据和文本数据的检索。
  • +
  • HNSWAnnoy 是面向高维向量的近似最近邻索引结构,常用于推荐系统、语义搜索等场景。
  • +
  • LSM 树 适合写密集的场景,如键值数据库。
  • +
  • Trie 树跳表 更适合简单的键值存储和字符串匹配,但不适合复杂的数据查询和高维向量检索。
  • +
  • LSH 在维度较低的数据上表现较好,但对高维数据表现有限。
  • +
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/12/06/learn-solana-0/index.html b/2024/12/06/learn-solana-0/index.html new file mode 100644 index 0000000..e365527 --- /dev/null +++ b/2024/12/06/learn-solana-0/index.html @@ -0,0 +1,506 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Solana / Anchor 学习笔记 - 账户 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ Solana / Anchor 学习笔记 - 账户 +

+ + +
+ + + + +
+ + +

AccountInfo

+

solana_program::account_info::AccountInfo

+
+

账户信息(AccountInfo),合约中对于账户基本信息的引用(余额和数据可变)。

+
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/// Account information
#[derive(Clone)]
#[repr(C)]
pub struct AccountInfo<'a> {
/// Public key of the account
pub key: &'a Pubkey,
/// The lamports in the account. Modifiable by programs.
pub lamports: Rc<RefCell<&'a mut u64>>,
/// The data held in this account. Modifiable by programs.
pub data: Rc<RefCell<&'a mut [u8]>>,
/// Program that owns this account
pub owner: &'a Pubkey,
/// The epoch at which this account will next owe rent
pub rent_epoch: Epoch,
/// Was the transaction signed by this account's public key?
pub is_signer: bool,
/// Is the account writable?
pub is_writable: bool,
/// This account's data contains a loaded program (and is now read-only)
pub executable: bool,
}
+

Account

+

anchor_lang::accounts::account::Account

+
+

账户(Account),对 AccountInfo 的包装,并能够自动反序列化 T

+
1
2
3
4
5
#[derive(Clone)]
pub struct Account<'info, T: AccountSerialize + AccountDeserialize + Clone> {
account: T,
info: &'info AccountInfo<'info>,
}
+

基本功能

    +
  1. 检查 T::owner() 是否等于 info.owner,这就要求 T: Owner。通常使用 #[account] 宏来自动为 T 实现 Owner,并使用 crate::ID() 也就是合约地址作为它的 owner。
  2. +
  3. 此外,它还会保证 !(Account.info.owner == SystemProgram && Account.info.lamports() == 0),即账户所有者不是系统程序(必须是非系统合约),并且账户的 SOL 余额不能为 0。
  4. +
+

AccountLoader

+

anchor_lang::accounts::account_loader::AccountLoader

+
+

账户加载器,用于按需零拷贝反序列化的提取器,类型 T 需要实现 ZeroCopy

+
1
2
3
4
5
#[derive(Clone)]
pub struct AccountLoader<'info, T: ZeroCopy + Owner> {
acc_info: &'info AccountInfo<'info>,
phantom: PhantomData<&'info T>,
}
+

基本功能

load_init: 在初始化时(只能)运行一次,得到一个 RefMut<T>,可读写。
load: 加载只读引用 Ref<T>
load_mut: 加载读写引用 RefMut<T>

+

InterfaceAccount

+

anchor_lang::accounts::interface_account::InterfaceAccount

+
+

接口账户,用来支持 T: Owners 的情况。即有多个程序拥有这种类型的账户数据,引入时是为了支持 token-2022 #2386

+
1
2
3
4
5
6
7
#[derive(Clone)]
pub struct InterfaceAccount<'info, T: AccountSerialize + AccountDeserialize + Clone> {
account: Account<'info, T>,
// The owner here is used to make sure that changes aren't incorrectly propagated
// to an account with a modified owner
owner: Pubkey,
}
+

基本功能

    +
  1. 检查所有者,即 T::owners().contains(InterfaceAccount.info.owner)
  2. +
  3. Account 的第二项。
  4. +
+

Interface

+

anchor_lang::accounts::interface::Interface

+
+

接口,用来表示实现了某种接口的程序中的某一个。

+
1
2
#[derive(Clone)]
pub struct Interface<'info, T>(Program<'info, T>);
+

TODO: 例子。

+

Program

+

anchor_lang::accounts::program::Program

+
+

程序,表示一个程序/合约。

+
1
2
3
4
5
#[derive(Clone)]
pub struct Program<'info, T> {
info: &'info AccountInfo<'info>,
_phantom: PhantomData<T>,
}
+

Signer

+

anchor_lang::accounts::signer::Signer

+
+

签名者,检查 Signer.info.is_signer == true

+
1
2
3
4
#[derive(Debug, Clone)]
pub struct Signer<'info> {
info: &'info AccountInfo<'info>,
}
+

SystemAccount

+

anchor_lang::accounts::system_account::SystemAccount

+
+

系统账户,检查账户的拥有者是不是系统程序(即 SystemAccount.info.owner == SystemProgram)。

+
1
2
3
4
#[derive(Debug, Clone)]
pub struct SystemAccount<'info> {
info: &'info AccountInfo<'info>,
}
+

Sysvar

+

anchor_lang::accounts::sysvar::Sysvar

+
+

系统变量,检查账户是否是系统变量。

+
1
2
3
4
5

pub struct Sysvar<'info, T: solana_program::sysvar::Sysvar> {
info: &'info AccountInfo<'info>,
account: T,
}
+

TODO: 写一篇 post 单独介绍实现了 solana_program::sysvar::Sysvar 的类型。

+

UncheckedAccount

强调不做任何检查的账户,需要手动在合约指令中做检查。

+
1
2
#[derive(Debug, Clone)]
pub struct UncheckedAccount<'info>(&'info AccountInfo<'info>);
+
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/12/23/learn-solana-1/index.html b/2024/12/23/learn-solana-1/index.html new file mode 100644 index 0000000..c88c654 --- /dev/null +++ b/2024/12/23/learn-solana-1/index.html @@ -0,0 +1,464 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Solana / Anchor 学习笔记 - PDA 派生 | 耿腾的博客 + + + + + + + + + + + + + + + + +
+
+ +
+
+ + +
+ + + +

耿腾的博客

+ +
+

常期望安定,还期望即兴。

+
+ + +
+ + + + + + + + + +
+
+ + +
+ + 0% +
+
+ + +
+
+
+ + +
+ + + + + +
+ + + + + +
+

+ Solana / Anchor 学习笔记 - PDA 派生 +

+ + +
+ + + + +
+ + +

Pubkey

1
pub struct Pubkey(pub(crate) [u8; 32]);
+

find_program_address

1
2
3
4
pub fn find_program_address(seeds: &[&[u8]], program_id: &Pubkey) -> (Pubkey, u8) {
Self::try_find_program_address(seeds, program_id)
.unwrap_or_else(|| panic!("Unable to find a viable program address bump seed"))
}
+

try_find_program_address

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
pub fn try_find_program_address(seeds: &[&[u8]], program_id: &Pubkey) -> Option<(Pubkey, u8)> {
// Perform the calculation inline, calling this from within a program is
// not supported
#[cfg(not(target_os = "solana"))]
{
let mut bump_seed = [std::u8::MAX]; // 从 std::u8::MAX 开始尝试
for _ in 0..std::u8::MAX {
{
let mut seeds_with_bump = seeds.to_vec();
seeds_with_bump.push(&bump_seed); // 将 bump 作为种子的最后一部分
match Self::create_program_address(&seeds_with_bump, program_id) {
Ok(address) => return Some((address, bump_seed[0])),
Err(PubkeyError::InvalidSeeds) => (),
_ => break,
}
}
bump_seed[0] -= 1; // 尝试失败了就减 1 再尝试
}
None
}
// Call via a system call to perform the calculation
#[cfg(target_os = "solana")]
{
// ...
}
}
+

create_program_address

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
pub fn create_program_address(
seeds: &[&[u8]],
program_id: &Pubkey,
) -> Result<Pubkey, PubkeyError> {
if seeds.len() > MAX_SEEDS { // 种子最多有 16 个
return Err(PubkeyError::MaxSeedLengthExceeded);
}
for seed in seeds.iter() {
if seed.len() > MAX_SEED_LEN { // 每个种子最长 32
return Err(PubkeyError::MaxSeedLengthExceeded);
}
}

// Perform the calculation inline, calling this from within a program is
// not supported
#[cfg(not(target_os = "solana"))]
{
let mut hasher = crate::hash::Hasher::default(); // 就是一个 Sha256
for seed in seeds.iter() {
hasher.hash(seed);
}
// PDA_MARKER 是一个 21 字节长的字符串
// const PDA_MARKER: &[u8; 21] = b"ProgramDerivedAddress";
hasher.hashv(&[program_id.as_ref(), PDA_MARKER]);
let hash = hasher.result();

if bytes_are_curve_point(hash) { // PDA 账户需要确保不在爱德华曲线上
return Err(PubkeyError::InvalidSeeds);
}

Ok(Pubkey::from(hash.to_bytes()))
}
// Call via a system call to perform the calculation
#[cfg(target_os = "solana")]
{
let mut bytes = [0; 32];
let result = unsafe {
crate::syscalls::sol_create_program_address(
seeds as *const _ as *const u8,
seeds.len() as u64,
program_id as *const _ as *const u8,
&mut bytes as *mut _ as *mut u8,
)
};
match result {
crate::entrypoint::SUCCESS => Ok(Pubkey::from(bytes)),
_ => Err(result.into()),
}
}
}
+

bytes_are_curve_point

1
2
3
4
5
6
7
8
9
10
pub fn bytes_are_curve_point<T: AsRef<[u8]>>(_bytes: T) -> bool {
#[cfg(not(target_os = "solana"))]
{
curve25519_dalek::edwards::CompressedEdwardsY::from_slice(_bytes.as_ref())
.decompress()
.is_some()
}
#[cfg(target_os = "solana")]
unimplemented!();
}
+

总结

整体流程

    +
  1. [std::u8::MAX] (即 [255]) 开始作为 bump 尝试,值依次递减至 0,bump 就是最后一个种子。
  2. +
  3. 检查种子数是否不超过 16 (包含 bump,也就是用户能输入的只有 15 个),所有种子长度不超过 32.
  4. +
  5. 使用所有种子依次输入 Sha256 进行哈希,然后将 program_id 及一个 21 字节的常量 PDA_MARKER (b"ProgramDerivedAddress") 输入进行哈希。
  6. +
  7. 计算哈希结果并判断是否在 Curve25519 上,如果不在,表示是合法的 PDA 地址,否则 bump 自减 1 从第二步开始重试。
  8. +
  9. 如果从 [255][0] 都找不到,则返回 None / 报错。
  10. +
+
+

Curve25519 是一种特定的爱德华曲线,它设计用于实现高效、安全的 Diffie-Hellman 密钥交换。

+
+ +
+ + + + + + + +
+ + + + + + +
+ + + +
+ +
+ + + + + +
+ + + + + + + + +
+
+ +
+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/12/23/learn-solana-2/PoHSequence0.png b/2024/12/23/learn-solana-2/PoHSequence0.png new file mode 100644 index 0000000000000000000000000000000000000000..fd42df8c9e4ad4c5746b4bc7523f532d4be8e3ab GIT binary patch literal 29173 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%0DVK^mb%gXl~fPkRvrGJwv_*VDwa8&Bx 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%0A(yI4ZGWj>vLKAo3ZES1 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

3}~UpWi#{6>qH*O zB0#e%yS@$ZykJ(#gdiAL={ei6I`0L{($2L3;9^IG5COFS&8bX0(FqhdO@+7a{-XSr z@?3K+wYv9B>?^SKAbJZph&jC+K=wD`PXVIP#!ji*KwW?(^c{Hd#qyTjN_n>f;&_SK zDjq#_2Y&ou`+w?>K#xAwKb@B*1bAXa>Why)DSqO`mhgsM6vCk$Ugxv7!D%tt1GuyM z_zs*nubT(j62GSi0w=%=AYzq`Tmd-pv(;We6n+CmUdma%ylwU}*}_YgV10nF5RV>b?D6l~ zeL7(h*Ve=lk+St6%kBDu08#zY#?Mr!7xUxPXcB~{yw_-9>%G_K++#c?^HKO*Yxuys z4E{abl*T?ZyJAD8JZ;ZQduT@Kx6+fRoyO3;&h4QwYJOhQGXQ7Bv9bi6 zz&QqrQCPciTLU)f8G>N0)$e=OI}5#}jc~7zQKRU4_w1?Tw{BlPJDm9X#PHs`??nrS zVc))e!4|l-Ueu(wc?-hofqnUyfw-aXG9sl2pIq3i?4>W ziFex?@VPhi@7c4rmXBIVRotvUk6xvK0PVj02Zl3d$pPqg+=sa~|80C+VOO((GBfRkG=DijPbgD= z*AjZ(LCA((>kFKCvf)P`eKed(tmUou-mTx=v+ISeZ6FU&p}SGU#*7qeV)uBOk+=LX z`}5=Z`gi0>O;_3-J{$M}LdPJxR8-hNenSsls7Jy(6FoaQniZUDc;e-WQd}+1TKb->c%y z-n4mBfpFylv>Yzv2B1|Y;K(MTSHF@kg3XcR8k$`988{|WK9ezkvd*fHCs;U0J-lbs zRvt{T<5n}3;RVzx%h6!kh^Kg>e@;g3>A=*ksmN8Mg9FV()SaYCM_{n=^#SJ5P1KE zC+I&}76>DuC2;@@h2p_{<<(cqV7&i-F4g(6yf$Xk`}gOOnwvJa*?c^%1eoIRPS{Xp zMt}6^u>hoRN)Zpe{CZ+mU#?gmvsS6i7~7yqxSMiE(Pk+d4`(S?3=IWr3RQYEqoAY0 zV&s<03}hx53`qmX5AwL)({+}h(;N0pOcYo%!(}L+Ch;aSaxcac!%!ak`gqO$wUgKO zjkn(^12!H7W`G!puEut4Tc(@SG-EKV8MG7lMt}r< zu&3ICrkR1h?*3)|s8f4^1Ix_5qtQkqd|UIImDQhOLGc6sx)&Cm0GNBU!NlD?Cgym& zEdWX%SdjysEFH7U+D4dW+M6%chbfQOjwiPDsqdDpiC^R|Hj?dE2mS$(R?W`G*`S|z z#yyb3671ICRip6HhBr%(I>pG zH7U&P#!USo)B`xzJ`*T_6wgh^8ZmLY|X9o!fKP+=n0_3K>C&s#na=&dl5{MGy~veKJavCGB_}%{C@; zgKnn$-4MdHLn?ica6UI(!|)KNExV`6r(xmgoGiDKo&$ z2}>{&l+2Pn2A8M$w3%^?rrGY!gS&<|-g-L^OL%427!a)NGDNA5H#HiVdfNnGtb{yE z8xi<65dd&e)n27wQIMvd?OylTeYz;i`VTUJxDPxgwrMQJ*Xak>GUGjQ>U4nl^*l8x zn@YB98@6X7*9OKkhDhCBv(uyB(vRuQ6|2|8v%5b}SvryU!*z)-KATXCGsD(xIjSYc zTrqmY9_Gcwmi>`7T>uGOTK79uJygQR1nHpg?ebLR`gbmCHhH6AX&sl0SdSe$@#p`3(GR zj2!{)%KH`o1Y{cr?XSL4QOJ+0D0azHq7@enN+OJJO1(D8`rE@@yPnFuBEZTW4Xq$;kt?Qc9_d@&K_P5-3#_gR-A?XMjxj^q zY}Ny20a7x=D@~@+MZN$=UTtmUMb)=nbuDF7Thr&p?iw3IA6epM2F8-P_^m!PtO(C; zramArl>R-_CK7 zebT1xI-)K#k!3v5_xe)1cxaVh?aJN>zugOP)+YR~$wkVbbMn~BG9GWQe(ZqLJ>^ly zi{vc;U#e-vu>slKP-PZB@)=O=NuHAXl<8h&)S-ol4qD`6((;Y{vXrJU%bK^2%`NwKr&ynB41 z@|)s4EdNQL3=Hbs7{vtOE6ys0+EUWdqj^eB45(PCl`*P3(2SpQ?~eE}9>YGTi9zWp z?P!Tqw#txQ^3!w3oFGnxhsD*BxK^{#@|KeF)(~id9R)=!?%azvNX3ONQFt6A+ z*R|O)xMU-6FW}ax#Gv7{&sgtL_w59_HLDKd>*K_wMmUKUqXWz48sMKC^|u8R={EcVOP0 z8fT)nEgo8-c*r1M=v82|wrJzI_h5x~ss_)jC#I<%2o~yPk_9NYF*S0ZKJvS9hxeEx zNnV6>K#p&8feagaiyvtxnza%A625s!z~++W?X)02Yg3b(v@5jxZk5x-L;2OF(4{PT z>eb7t@^X)Q-PiiDdBUB9VFIJfdN|Lh{zZ$(LF?lp=sEc_$7moO9m7uf>OCD#NLEDw zw{6{=9l`5rN9Da3g*!2v0qpYe_&XcCdH8C3+`JLM?F&#_!%>z3irp+kvVdvVwwP;2&RPys$;<;&9| zE@|KX{ljm5`xoV5Ihg#LbL5Fr0(fr?JT)PX<~Hw5lrh(u=QI5fx&h=38#k8+nBuI? z^3k5X`{PkfaDR3hJ9_ItPBhrLcV7XuR|2lrZP=9Mn1IgAOw{vzd$yYCNRe5r-(-Q| ztg}kP{B8()?uGaH$AOyUMF>pFdot)WjkhtsStxd39*GQdyAZh5MhCyagm$%n&N z(R<#zJDE7XliwS#2%wB!nBaRoDSgl7$FeqB$QrWP6n27_&1M;1KHm+V71}fcVC8ws zbzx4xEYB>jsnrFOvP%KEbv9@QUdbTKekg}N*W+4qpJifz0bs%xx(gs%lD0fwljYo- z;kp3C-2f8w*azSRWIRZ@cmX_DTygBDbFnK-s(AfalYhpqzz=&3%!&IHhiNhbBm($! z9fZN<;xtcVc&ed5(|G8|S9ZX1e_QcdRPFyZlXl@4HZVEq0ATmoGWD`}=si))Siph6 zVF4VU&pp8Amh4wxOUii=`if`y9q$25Koai?9HFCtXTWQ0dXoix6`C{t$ShomgRRcylG1|zJ)fzWD}LK$XJFSXee2UOo*Sg7sNg4^IOxEw)xR_0GJ%= zTXJFIpijxQ2@dDQ_Bgiiy~$TL*oK!&I9T$|`(2*;k``mz!MHIMZ`f|~N{+pFwu{OT3ee+&&0`nirMH?2 zGz+N_hfc=X0%D2}%A*J5*rvL(dAg?W=bK=qr$Ax41a1g^U!B)XW_Hm zS(Kt?wjq;oBy^>)5k|@Zi~@?{$=-VFty&Udln6Y-f-|n_M6h> z9?HbP@t_<$c(4YOS6_XtW~scV1|#uH=wKX`y=c6}-8KbkN`Rv^V~zoMEl+ZJ>7_%% zuikmP>RA^fg$6INNOq~}8vxkyqS-Cu*$1~={=vksxu3z=9{_Gy>979kugWuoW=pkr z#9$eWvtU_t;3M8nCKO_B6Vuk9cBg}EcED}`)IJ^;e9?D6jo%rhye*`8%mKPtn?5p; zEX7WL>ermT?n4H2`ro`}-Lqm9L(I6dRhJ~}$4Mt2e)wU59sr>Iwz&YyPh|}qFPjtk zh#Ol3IF*fw4Okp|!BYgJSwR4n*rn#_Yq7H0<1AQbr<#-jt2PDMNMn`8&UrD4@=mT^RZG}VGmVgV`%>Db&czz3e8y3f!JQ-_AV6 zZ!1x3CyINyArH`rH(Q_JAz)=PpxyF_HD*)rL^uFCdjF9zb?I+)i{F>m#6(%Z zo%^QCE&-Bb0ZF&ZYc59C-UxNS_12qZqAa)TH+@S6ct5Y-I2StG!y9S?mCi_gXwZMR z!ZYI<8*hcxJKkxB@A};-Myqc*HOCXbcz4?=1>L?+?48K*mS45ais2uxzh!^&<^%-1 z(;j01{@ZvV-&caHef;(F1o?XDZIgm3h7+sRb3)$NoIpq%`=X5xW=fUmKb z)lXA~JNb<+eER8U!{NhURsP*MIpkNr`gO+I7OG(^Z2*%vivxd96C>W^fBeUPEWYB? z%Lzj~aNs~~lG7f%YAkIb4EmST>+{b)ul*)?{15-|50$U=DSS~XliQ+C;qUX7<{Z$9 zi#50}$$5gU|HP8CINBF7`w(MP%5P>G;a{33Y6)f^&rFWtd)5 zwi^V!3@#=l2J|viX#>vCdhZ6AN@w{SBd3dZ2C=;NlBevpw8_(}IuEz@%kkt?F2N)dD<-mOdIw0hJr>p?+ zLJ_nJNVNe;nL-c%DFZkg!aLv0T1wH^G^!j~!2Jl-sGRZaN@CXC2Ca}v=4}d1I zYiyL?`l?mgC%i0vR<>X4k8W*Xq=js71k?loz2PAeJT_Lm?CQ0vTXA^3PS4-6F zJX_8l@L*~$kVz(ZH}Oo{fIIeqS9eF^n*qz)qj+52T;50fOz=#MwRqCo84K%lh1ef9 zNMBh^6Yd}cg4~FkWyjedkBc>S)T-!oJ5SgIMc1tk4GEjWe4f z6YAqx=cUJ<0?!x)<=mO{~R|W@!FX$lm z?C82UZ`NILuI#-!0f!voC&$c|3VqlRo-9qdo@CeJZB5XCLh`AtLNx$fWpr;cn!J|h z2arus~TycSJ2Jq!WQO`3B+ z`v|8aL==RPAW)2%V?PKEfX862&8gIYjhPPNi=52sWRTL{G^j1l1h7(6MvDP4px}d9 zy>|NzZ<>c9+=}2Xq`BjO>6pHg$SzrBxF&<@8AF~I29aUriPwh!aIAI#5|0&LNPos0 zXrl2*14rT#$yt=+`}WoVdpD~w&RBi#z4yusSDP>+KL)6!WgFV+4sd4@W$-gl|Csjk zDzO!95Vq@mLjhTXDiF0M;MmblWYsm`%DX{dUF@%oLOfd+&gYn^ltq>cXk^0s=9_QU zL~dPTG${ajJ?XKIrb`(HYlE&GED6ZrcGvw!lJ7LSS_CZtl2DK;KCwSo;d`RBFW7>^~V1DcIbJa52jJ2om0 zjtSr?=R?||OeljhxA+z4}%?RbT4#yGfWmCu9&W@sM1oizgfK=IkNE zo>qpg<_Y!4;T$2hq^;_qkdxTwo z;SDdmlZ#Ar+-u{R`+!q4X-gX&@^>T`oF4$ZbCx-hY*?e4cwk78Z}vUOQhMgpie2$8 zn@9up$^hm&CUB2i-QW8}zdSE#?g4Fi;DEaJVia{K8E{h;a(S8}h z?dlV`8bwda|8&AuQR3jSHTTA|-3t##`Q#LZ+t>CUtXioE7FG(oGnM`zY%0htahV>h2!UY@} zGx1y9_`haNVv@seUg180P^RB_oPj{8WHR^RkxkgVtgr>|tQ8EK54B0()(Tt3Wqii>)(XcCU6edw<9>XWnUxxA%2$)~-~Q<{4~JHu_ACxIvgFGr80b9Y1$&3c?gcQ!_3 z`|kbKNfDFk(7I(F{}F!|`7HtLLEy8Mx+{Vvc7gTT_4>`1g*0~@(0N^SLq)}PPdnkE zol4<}XFLkxCHn>${pfc_ho^QS{rPgh;POyF*fy!@u1|4J)!?>!_a0w|sSJYRF+cq9 zqnz?_q-4i{$}F~tQwtH|#VT-;V~2h$5i^6j%_BTmz+)Mm+^7ulXj2d%Yd=FxsB_(5 z$i^6)0jAB_5Cp>^lV2w#CBoz_r1%fJN%+AcD*T0^SYqt_z<6uI23@wR>m9C@Noj z(IvlefCmj9c#YlXGp`=t_{%1qt`LL!p^GPQ3s4k5Ql}b(KP!0!ZC(XNk~&SmpLV!M z`^97mE6|U4%CpGBi!TLeQx-mJbGQ3|iwOXL>N=1pkG|1&_hU!UHpD3UOH5?@n*`y zI}h0Lv}#kozhtHOmQxDyPy5Ku-LyToRePLU?7nLMNCt$%;Gyfh)B3$8P05Q+UVENt zbk%0-OeoYeba>op0iwT@yEqZ@@6nOs{xtg>$G!0zUD*Ldqh4V!xa1Zt>OV z1*GNC7kG+~z%)MB7_X6`5g7HL4)v3Pg9i_d_}*4UOc3!|-qHj2;aHG=>)$-uIAz-u zh>xY4`HmiX-P%cS!&ZNuvoz;`ws~385u|q1=`m&Lj4a7SFzpnyTy^T~SGB`a43^Uk z(s#9d!O+d;^dJIHFbSkKwKNjUd?^K(`JwTMpcZfn9L|9{002M$NklM=m~ke(>@tn~1DzxZf5{pz3ky$l;t z^if{5auE4slMGaru51k3H?cdj>YOqW!zme<7jfIobNQ{tEd2R?4vYqsF0CahOcvJ^ z{iXl;xN6O+oKu@eg=TQ#A$#`^@8{UUZ{k53d3g-*`OgDK)!aSHVEFdEiLDqLOQ_38 z_F6`DE5iPT=G}6=Y>OX8bX(RoU;`3>mFqlHK$`)7c?RZE{oDeebZ}7sEmX442Ko+; zYv7G?xEDxUV!1SVfDrdqOtLygdD`-GziynNNC;T=BMU}iF_UD_bVbu3_Q>9X`e^1CiQ2#+n(FE!D~ ztEZ|X46jK^`c=@0YvrvS^(D{W*y2r99#11Wi`IZUdDZK?WFmt1ynNmPDjr<@D{qt2 zw7vf2hS8||(|%!-`8E)X{=BL!9a$ok~{ z{1zT-@6t>dR%UfpJ>-Xs$!m;!Kqt~9ZEJE)R+@vsy`?u*{^(Dx=?AO8O~%^f4G+Y} znqaZjDPo2`G^$IgwvOaG9Bpk20VNChUE94HPf|Aip*7d=mreq;>(&R1rk!Xf*JxEw z=ViW*+SvMB+sF|wvqZm&-{|V~rEI;cyy}C>`F#ADb3i-8=B8imt6t1^UI52}*obiR z#{2bP0S4gDsgqh;NbN{TiVw{I5o*8pJpDP%@|p=!g4t|yeId;O2S%MxeWg$GGSGRv3MrkOB`ex-n19fXxB93swHEfm)&8^S2L-b#I8MLAeILHh=>(fK)rkzu6U&tr(pd zy4+*O{#fb+7=RIjr9Aash3Bh(8LYjlmxr?1E?FOPz;DW_(`|CE&-qg=sP+YD$Ujo6 zGIHva`Zd4Pv0plMk6Qx=5Baw^8~D)O0Z2WuFvQ6R)MzalfhC`TvI6V@N+zp@&a+WEXDB4qJyHE9@C$BUv5{J;1M2OXOU-OylxYsrP>;8PH@72c9ecC0T zBfuWs-`ehaf7QbY;t^gJPc0d!{Rt!bl#ka1F{@sM`_^@Wu7s@onZ5d1Wsl0hKYfOV zDl6}(kf*OY0I}7MluTFjqu=R;e#*zHwR5G~qs@M()ZSh92`$e5^}YV349p{Ijn4L4 zzqiqq-_Vf)a$C{t_qub$b3atwskhhM%6NYM&N-m%LeN;AZkQ2*7DH>PrXT;pfD77o zy20Y5S#pYTU{L0BnxY`H8qizQ-}{Wc^MxY$TuPby;@_Bc_kZVOujz;H?ZeB%+&^4z zQ{5jf)33eUhdEmf6uqT~H9pMq?0hPtG%{2SU^7f@XRoK#SauSpwJJ+t9yvLgUCCuY z?dH(5-ppsGNeh(x3>@fEYw)R57e)h(fyc$X^VR?riwgK8Q?8ZQB^kukwQO=Xo%h`U zSA(O`x{uv{_@2~lMYka}=%qa3+DdMs==Rw|q5A-Bz{%$hhPx*bxGFE%sNSAOnFZ{C z@O-K30XA6BehUzZX9+;LAJElP4cH+{el*V5zGQH%Qm*^lUugLyQ>v>}wdb?%>eg-> zoND|*8+rkK8Cs?SAb5mtE#CDZrJa7Eb(KAwX+Wp7)3P-l@*=i60)q5eUc95sN6=OB zxG#W8Uyf)~HapYmXnoo}s%WVz0YS-L0J-v~Ej2+%KXve1a#>(28B;jQ+|ww`ha?_d z_jlRwxl-N$YTpakh32~1kMheWPwMOU`bqgsK7DKS;UQYw*W-WXsh#|J#|q2%id1NC zqi+%#`fqB$C->ut`in;2^RK|;=$cU4To$BfP$g9inIw+4Q;e z)`gKE`?!$ih68P&NXMiv+6>x&(aufgp{+q79p?;B%S5+sU9aEeEn^i=&q8`WIMDUB zv^g^2ou{e>x_qbiju!ehVJgnG{P^RKYXCFome(x5w}HHQ>dI@|3;iAzmM!T6UIt^} zKpA9@3|cOgObKl{=Epl7GCrnXt6;SzCyJcu->>zS(In=6O0x@{N{e zcghQ#a(e=#fld<$eNp$P|Hy#{CWw7?KYrV2=T7%jzoi`cTKNqqYTxYS9NXS5^4R68 z1Ag{VNR4u}x4)Xy@oa`a;e|5#Z{BC@V?KAfT}NlH!#(;Ymy3suPSoLf)tLM#+m+-6 zI{l`c-Um^vhrcI}!fH~IoDw=rHr*p>f9F9f$Mxt;VwhX~>S%3M7Tl5_>i)&?xSN3R z&bBgIeXZoWE%};kptFE!?rjs?CO^H6jT~)KS*k~Om5nDR35_p!^*p7yZ*4ugG(D1z ztVDR~L!Ne$r(-S3!TC!PdaxnOwT_Ruo_NIT@qA6^fdH$LcfO~|7%9o{Mo6_@jPO|T zC1O2#a6se9tkyQY$&Kw8lxSTkREC#UUd}h|0|H@RoV6j!kf5Y`_XusO(X> z=#kvg2EQmszAuW=qBtm)7N>s7S!KJ*ST}8}Ym~k#de2ig=DHH%qp7by_9trnV_D|p z_sQvSJnj;rSYDNIw2sX=b!@nK<@~TL8n%7^?rb>7(%*x`(`8wCGCWFTVw30k1 z&zA!RU;}b39jBSVU)KpBby0xJy?b}!#Tth5XU`4Cj~*R93y|HC9p-DZiRkXFoJXDW zD#fZUjZQm%`(C~;9c?%YocKZJsmrS;v^*(Qjwt(V9d)fwxDD(*&6Jn?_0*{R&|pD6 zlx;8^$JFF%?T*jq87fQfLlf^}uBSqOn{AmzXT?pP40Ga zc6-{Lf85^&JZJGGMJu`U)h4;p`{=YE00|%5*ZRKkjZI`5-B&pPqqIE>-VAJBtzVo1 zVgE=a83VX@-fB$9^$J69&DwJ&1kkJ8`Yke$GzDW!|kbN<^LM`ybHTk^I<(gMY zE6}NY^^K?9fH4}EjY2EjgI^8s2Kc9J^|W$Pj#i9o$%M$&YE?BHjliO|hQ>IIs?5}h z4S6VM?hn65_W+gpz^NqV4G-IoD>oPn@-s-{>(Au3o&2^uxa45g=J780}`OVAq z<%!pIrmt0Jc>vIdAQTUk(`c(c2%lyrMfFte$d|^?e)ai!pL;<2Bm5?;V#{jRW;RH) zGx@IMF#dM-+>hKoFMe(+@hGX3i?BB1l+SdO9(c{H@ylnXb(NDtxhul|+ z+RzyTGz}^}$lypWcx5kLxD=1e|NEb6P*g^XPi)?- z((N)51q-W+=kX7)gBRt&p0SYu4&e=b1fG6MsyO8WOv;HJjlG;5YEVEdI$icMc9MBa zwaxZc|BUQra-b=HW|6~gH%Ec{ffsTib^D5bVCObqnV*0i-g2MiDGy*i^R5;za;=`I zSRkmE$JVrR^PvIikbx5NShVLGpx41_cT51YmE4yb)Z1638m%rSN0p~Uzdr=7%AWyf z`5FIQL%Za}1pRk^s-1uVfQJzUr0+in$V(o1J6~`UfVOFCd{I1}qlth#EgT_tgr1r} zjOZx4oI09^wgG*fZ`k5?oD6O-Y0$Rn$$ZGSx{h{bPxS#fpPR=yzvsV=jcBX!SOH0W z(x_bkZ6){RgS?f0B$sr*j-|`wRRaD^<`C1y_`1CC=P5Zb=YY0}b;-tKB$p@$EO;8t z%Hf5?(%y^kcoN6AXU`66)@=yL%VFO0JW)`o{T(%?n36yF-#sLLFJ%~I>Gx5ZsA^tq z_RkPiVKE$j>k7GuAx$Br=*m!h@-PgKq;B{|6wMg8k+N3aD5r#`ZkQO}uB>edwSBK8 z)lpe0b*nPFCnEn8W40c^MaZs0XClzwidHqTy@C4jw+1pbyx#GB~e zvc<-N6y|dgUS&6%(|80sS}|yK#)TSs8x<8sQZkE=?)ERu@JjpD>&7XbSO4<4%cOVT zfkXhdj|~82U#T!IwNQw~6$T*`f;YJIrM!@>z77amy{*n(4@!++H3p{6KBlDR85-qn zEtXsA`I;VTTWg9M@@s+mX3z1(_**3?M;%HlMzl8f@wM8lu-sH_&wXvO)$Xgp^Jk_V z`HU}~JO^Cc4z%coM5k&;jr)}<6HM$3D2qLh%Ql_D*QQR*{j3R659-Q#m?jK8DupTN7v z=%L^)HKkU4GtgaWr$@UrdmGRctkKgMqR&kUcPsOQ-(M#V3;hg zkx}xxd(X}~1e+&L!Vdz>J8f9FBBy=17>r(u9y?6v#yRUY+p zdW--?K!`9Fc#<7HXSiu#yMT2HNw#WZDw|GRX|+3iVE5eTJK6xn7B103&H&fO=d_!B z3@yOCyvmdCK{@OzFJ`JT)Ks~M1_G5Yp}+I6Iat&iT|{DjQ|5Fwt&J_ApLH?ULSJ}? zPHtHD30P2Oo+8_lpOl|lRMq&LEBU=*+Vd;=i)MpuzN5MRr!8*k^~>XoTjf~EaUD-< zY{<2~IyzSQJ89V_*UU3< zS&UViVbj4ZXT_L4k{CfPO(&*3EDvw;Vt>N7pOOHt$tWt@SD-U}QInB) z)-3m1c>#og5CCj>9!S6z^w5L`SYkWV=e&?6F|1&JByEAE^kK6jICl5XdwQ}qxx?5!p=sJ?lgOY6UwvuI{=Ai`j z;D=25)mi!y+KfH;C2!+fiYgjfyYXPz=+VB$8oZD^f>vmvdu(vS74-9j+GLGBo9f7n zb8wAkGv3|gGr$($4R3BnPt~&|XW-&v2*B(D--gOXX`V+0tIIw5U0=9I`#rFvdL^{A zanz=}HkrL2I?0v(buXufN8NMa`EDF>PVPc_dJa4TfcA%pC1{>-;)!8r6Ke4Bmq%J> zj|3=^`ojf0>%T@RDvb+y*l) z{mS$A?&(~3&_O}xa}3{obw_x_y#%q!XSdAW{{1n5jEm^EMoDBHAYb3F>T zymdT^xldSuM;Kqty}%rMDX)8%)LFgh-*g@DTy{L4c|d``lP6D9omM871t7if!j5`; zvABGBfj{@MKWsfu-}M{Ut1h5(N6s}yTLIGKDH#gCBzD@Epd5VD9yY7MWY`wefZ~LGvwb9ob2P)JoO4K8}dXs zbty|dlXo8EvAVbG(Z82G{x@wa&v)`F+hpS4ONa6;yvuz$LVWYh*xw7uf9>kEYD>`; zD)DG_fcE-4GS|Z=JWknWYQJ+N)iQtj3r|f5j9nKmT&&~s)+PUV^4BDZ)5drlo_V^N zmADfpP7If?T(0Y$0JrmnofSG%VH9ycocO_KgU_^{er4T+ayr*>K^} zc=I?BSw`hyYTvY5x{-}Vp4KDQ?p9`tX2)$grp+*&5@0sGI?owzJ6L0!qM&f1d}HzC z*dZIOErW9VMtB#)63r_EH5Daq3Ad%u`^ZyExg9sJ1^NAPaL1vlC zWw6aw`@q6TQdTs2nVc|;Kw!;^$J=p0t?v2v*8rg%jGOi^n!aB=FsLxH3^oHl9^SQN z=`jGfx@300&%d@WP&{L;y4HM$B|u67{gN?y9gmNv#-0A=^zh{upVuIG@AjSH;Qj-{ zU;X7@3@-)L?%ln+Jg^2owxN4`4A%4}N?jg9`pi??we~v|KPMM}rE7py076(CeQS0G zkYtzW=TAvM9nfOci*0kH+Lg;!3TyyWcj85pcwpJQ@&u+|x{U)`Zrk*C@lpXfWuTGg zcKwEtC(wPNvuI9z?5FmSm5TvpoC*@JTILrbOEFb0bt*Ld$vFp z+s*q)N_qNtB(VceW?LSUCkep(HjkGFRwd4q`+4-PB#$=n=(Y#OTngB`Ff0iuuTX%L z>Akg^m-j(=Tk*shu{^K9?AgSNU(Ay~wNaU9VJpw%x^}J)aO6EL;G8@r4*(-RqPcXS zJgON#!t<8!j>fcQdSzeFipS;4mul?Me!qE<5o1pQ=Fr%~K9qz1a@~$jo(mr?oWD?@ zc4JOhTI!L$c{&_@Zev#_9GR$`zj(QxWO^(8IvM(bV~^9l61v6EZr!$ZSTb#6b?%D{ zJ&0Gq7b<3z}>?_z@S&V;9V|9cxzxR8E~10Bu$SiU*?ouE?wjT;*{;D$GA z10Dz^5uER-sp2eH+pSIBkA3}hJu&FQ`SWGmC=1PGY=FawJv(Ztaym23wNbW30kDjS zgm<;1lz7(308WPC()qJ7ELZbA&)#OBO3i0;klIV_-4a?E#S}Rf<5)&WJ)=4(qa~i} z0p4fNemi`V$90}N_iY(R2Fmi7`*-Zvk=f@9H46o7TOfQq5v{U$`?tV6v%CeEw#*)o6givN^WQ%_~xOKg+o<>j6EWjA~QjYwmPMr!k zJY5fS0SwW>n+a%1>ZageAre~g(aSwNndFyev)yO3jW;}H0%gXLx8HoTY}|^B z6MciRF@fE~hw^@=4R@#R7SL0N-*@iZSz`fE$NLQA3ab$su`wRX4va4Wzu}oj^KOg> z7k|;>cl?tY`$nL4#LEU+r-q4r`)abFPJkY;*EY1dmaye2ppR!fy!e0i%-MLyPqs$_ zXBEH-fKj!{RU2bXVm|!v!z#ZvcWNgDN|W1vXvnpMk&4eQqqt5+@?ZpF)Z z?efLp#?{L?k8e>a#+`s%sg`~t5Z(!oS>v;u?q>FG;{oNg#L?nsriY_Pj+SDb`1*K2 z?XlsTlc!pHGSjn!MbLRZ&zwA5O8(-Zmxq1(_6=LM?=0hYFP>aHT$&hLj|+Bw<^8+2 zhmSt^ui@)}SP&yG~NpMUY5hZEtOIDiHW_#-aM~<+qUg7P8(|ANe9(#SG~@-GJp(C zn+eYX`Oj!4niLo`RxVpr?KpDy%NlSDLU_kJi>IsBu8ASLT}E4M730k~W<+{MTed*f z({R85tbZ*n(zo$ig3gDL7s&ugU#9Z=rGS(#KKpF=^pj7s(sX0kvvXH%0(8W_=YWd3fSj7t1(3KV4@R+d zyinSRKHsT=OxKcKmdDK<Q(j+CG_Es&<3^)z;ey<@WyyZfe-duyeAN)efWfjWg|ly2aG)ExE9Z$ zPy&3xvjU_cK$&dj(oAUZ_r!^ly1Z7kw#Cc0X3g57nK$}oJh#9QTJUN^0HDcF1Fy~N zX*F*wZN^utM7{h64N;%iFDY37xS>6XAy>E$^_Fib^O(Y}gIUCR` ztzEmefP4pE>hW2^3*}m6AaA$gVHSGfcYxNt?4t=D5Dn}CvnC5UsJj8|I7!yTc5X=C zwE?qYi1j}m;W@W8jHi^Os*i1zoCWS-HbA{cj{8kp0AjLa5`vB!#$UWos94Ex+R3}> z$VDBEVPYn##*iOzq0>{vc!^&p_X!U)1|?V}qNdJz0mBAZFx8Qy&7*YWu5%@cT*%@}xt?Y($p&EDUC|NY^E4?d_(b;`LF1J4LC zaK0NTaBy*ArWoBV0kek=9U5Ld@M0Mn1Ejbw++`$Aojf|c_uhL|?x|DXlrmCwVB7DM z*kB5<@7lF%cT1a#_XnJN_d`99z)TV-sVT&k*`K~2HjDgRNPkjipOGI zHdNrPc2)n5^1E*#{dsV}ASsapG3EDbvf02M(6llWKLFr-j&S?@^UsHO-+i|RuUB4v zdHD6Oe^cIBlRaQ(b}D&Ec|SFE*(>@|7_dYq4WNLU7)`bWP}sD2Qw_4~62nVh0YG-u zqz%}*nwUi1KVZRic3@&+BC?%j)#$wZ`BD$Qv04+cugNgJ01beFl^pc~M?elQBj9OO z16}7YoG*}QRfng{QnYe`vMq_V1n$%;u|-y{&Se9peE4irjdDyfc)QmI3;`u3k8EvU zRz_P${m~?gywD9Gv*N?VO< zIDZ{-cx_Fex0lgf0xPMt`>yq;vP!VXf8b~a#3AKMeoRBnaRt6gihSUbqXojWZw z1h1{Mndse!j2o}?5k9yVolTF@q}=OsrO`Y6K$po}lk;2kxrMyw-nQ37S!5P(nzuNo zIOwa9?$ZyRUAoYC+xx0jxA6DJIWXsdwq!AMc2DgL$q@pH@YIYtLcJ>9*@->7Dt4Ba z_ROgh!-`EiB6KYDN@ncXrbLvPuKj+H$Pbc7)=H;l*cZIvjq&pSEa^8B}FhU3SM z3@48ti^qFq3}rmt$uHK2f*F-590hbr0`CYeR39>G9>I;1pYa#({Cqm!jiY z??;lxh~XJej13QF;0D$gvLS=f)h@s1PxGp=Q}ahepY<-7Q~LC+GeQlp1|gnUeQlEo zF%|<4+RM&cvZN^BTMcF>g5>~J7aEqSChV|_~4X_cj9g@ zCeC+DP7~reG(q6W?Z8|C&5i-FRYJ;-r#43U9@@edXpc3n|GH}N9cj^!NfuSb;5KqcJZF-Pi@hDAp+O0-xk~c&SWdo;nSXcSUZq?D)FyU{zL3*mHeb{7SiaX8Z+8U8lQNDlcYY z)mB%QX0OZ5ikCNbmR(4{7ayukne?PxHGxTaVv6YtPdX2|a(R~V9&gmKke;3ca}H>K zoYa7v2(TAn-sy&{1ngg!pY$?Vmv&n(nZ6h%LJ^w@Ch z=+QcGedo@d6=(C-8*dg+1ZWv(%Evf<`r+?~ufF?>nrsS6L;q*A^Nr)31f%-z|jGBGhx^)g~+u;?`S z{Qmd9%b<3&l>Ci1-Y75e{{8#QuG@ihNFUguA0Ah0|rZg6`*_u5U{%1EeN z{`{%;-iN+F%ZZ`m$@VU0jsd)!L4W_mt~xteUul;G*o_IV&u0Byj&aof0M?C~<00Z@7F zg~O4RH3?mj-%J1EkG3e!J=)5NBgDs;f;M3wufFkm-774Ct(8~*lGRID6_La*P>SSzAz^VGIhR8#Ijerj{at40lanksZvgV+$4?Aje)&~7 zHvnexx_#A-;#0C#J9zhba)EKYzIN^Ia4Gt+Xwk8faT7Z_#4C>e)XFCH8=X30B#g2c|o_+7ga&tU@WQ^%^z0QXJoset~ydBmpjmL=Ykk?M*c zlT}K{P%<(+wBp64<5lp)HX9Sf3BCJ=Ka_I5_~MJhU;f2!i%y%r3|x{E8rG~{RoJ6j8Wp=Ny05K~1^1JddJLBAcW<1Tpr{Wzq)3&*RF*6|RFUGw1 zI+9IIYf0-CX5XC~^YvX^tKH3nwKkl@Tf`2DOB6GDB!k?^O#GZXYsd53Z@xAB#jk%e zY!B!%SO;E}j01DNdr73DX+Zzn-u>z~X><@t`|>@13ozw3pur%@qh`<-x&;Vs&wy+R z9T+h%HxK9tkVXf!!HZYYfXjnt5C^ziHvp@{L=Lb5h{(KhcuCd8^U7;#Kwq0xAwah7 zPkq3N_SD26<*+e4$;#mE+_h_GKHJn3ucNZU*Ohta1x1epQ2Q<(bVF8#tYpa#XaPrn zPS->EJq8w=@w)TJ^(Q6Z6Tn-Xll8U9BwTqCy#|_16!2Co@0Eb{4$R~s3wmsJ->MwA z6=PqUjlzIMT>6zlTi(%!PCV5&E~1s=!+7C$zoEf3@9L3f1`H=tm#0>CYqQVnmbQ6H zok@o}*{mM(-$3QV<@WN{rq3m|-Gh!yDjuZ2^qqS3r58B@kk_TJ)UTg-Rsp~|0U(nS z{eh3_2JqxT16wM&4-Fe51KOz$lZ4jJb_AHRtSYd(RvUZ2*vKrtSsT%+4}fxEcb7sF zK8e-UewFfO-^yx*kQ$Q)lR0wD!wNL_37Wb~Uqc(+tp0E<->Z)F6WMj$=5^zwHtA9L z#DuEf!`p0fwrTs;fcpCd*iAAvYzQ96c+8d)rUF*iss1Co~l4lPC5dCI#{gI1IjUksTB6t+hRs+$ zJg!AAFiIZJc|0?7o>qq3rhzxJ+f{t5fPMpud$o&E;I%=gS-<=euLhd7>}q{m7n5Id zU;eaLjK#B@co|S_Ahv^99~!)Y1${zh@xtNk+SQ_kTZ^h`t;x@F6BlUv0S=H(UD&42 z0Meu9%>L8={-;_I;hB9s`r&0a^z!A+^jZy(ny$4;x$kt)0QYkwG_i$%k@!~wy^xq4 znRxP80Ssi59>11+WY(rl9xG3x|Z{vGl>Z4^}G52CLO_M z^49ST_J;|mOZknTjiCgDQQ~dH2)qKs zl2OsgS8p?aniqJoLQDWVz)!!JkeIx<7p=guRC1mQ@KAr)$jA$NKmF1tBf?qm;$Gy1 zo#)+L%L|%3CV0+vb>t&H@?<-2`D{WRj8BqxyaRUSL&MHpy8>3%*Kfs#@LPFg({X4f z5bD~vaZ|wH`f8`RTOl*NutGIjXvz=(*-n8l))q~vZ)qkeCP`PaDsesICqPf`@PmU% zd+AH(Gj`$yy|uB|sXoe5msnUbB}BptsPDSf`=1WhBrY9N?aK-*9pU^ie%KTVqyyaT zp%%rOg+EWpfq4OF2~<=$LY9N2;~g-25);bvNC5~)d1xaf1dqTm0EFvVPuez>ou`tS zoL!oPd0$QhFbjSyp#gSD0*2Z~!4_-d$e?YH*JnrK&DKSU&u3OgVQ${Alh%m=@lwPX zTB>7Qcy!e#@Ak|LckWEN82~6$J8RJrQ!~2CZ~SY6be`-`MjDM~)yD(6j~zQ&#*OiK z^UXIx^F$fN*~+hM29N>MPnL0bT6RT|%WIN))D^<2eK;|e&+{dP>Kb4e?Br;-p-k|RJwovzTvmO z`R(xb+iwpq#521zXJ_kwVqdbKl6iRmvYPPZy#bS1Rd%@%JRmE*T6uKuu859Q5796ji; ziq^*$p=A0IxMRm|WGvCgCJKE*P!pbv!NtFT>jJbX8_4t-xCi6_MSvE#tC;BkW#Mi- z=)%%~XCC|00fkn!0BNAt#9(R8Cnq;#LI0OGH4Pv)+GPw9+I8;2`2v(^CZpucJ)1Ud zE;+>~v?yzNCO+B+fGV%O@>^&&ZW#LkKZZ?hx1)MJ8$MmmKb_K%n(I?X`2z_`$!GiT4#q*I;+KwGT+qy9Ym zfR+)U=xG+ETe@O(z{1)RKmuZRMi?hYfUjB~AuaQpv!F{q3J3r3NJC-B?~`o}Z(ugYL%khoU{ z8+RF6Mv&2E=o#@g=&Dn4A4OJ%^YU!oVAKS$Tk7kc7Yf`BH3Q5587L1PJebXGn=1y_ z5|LSTKjA?6^69N^h%-pe9 zTzf3ji*;^e7@ncG(V;AK8C$)ufPC}zJBn;gXc98g!eg?En7YV_^JsbeHzm|Y_`{Nb zV*IU?GK_g-09e-FXfr9}=`|5B!9%yUS=sb7v6}Ft&Ry|7yU+MZh5`4cGah6C%x6Wm zbf#6e@b||#Fz0~wy96{rE}aYgnMVza(z&s2dC#mZO0afac98GfR_=aJzPfbo%&>gv zo)WIRIRKl1ymOBrxA+!p=w83EcpBUHHaou;!#S5}I`xkw@cVw~9$%i=q#YB(%GI07 zFjCkJn|7t`i-tS-U4Z!bcog3gM;-*oPX)+lP&{|xa+D`At}(bd)N9xhFT(V_%r=*X zXOnqSSJ-#{+}S$2cSUBKK=h@n*N4MLj}MtMmV(_6zsln>-eTa^tlC({XU*z_Bt%h{ zk1xyp*K#dK-(-ONIvc(2-MTSs-IW8Sw{6a|uE&S#H?P)tg<^y5+{yvs8RVBPiK0ib zS7ahW(f3Xq%0QHOsnAdZLSo0Xllfr`x{<2yF=F25GL`2n{FmA=&<2~LIdm^u9M4q3 z3@%+flQRd;Cxl~VJ?&=2n#9g7W%Of2r?M+NWsJvLo6)(-TAH?%S8pbEt}ZY9`6D^- z;7(hjGzbDjwSo~j;#C87=!JLogM0yH!b1$EJbP1l5XO^Imph=V4M-!qkuu1{jGW#h z=NZhSdsnjS{L4>29X`uBvv*>bCU$Kfe*M;K!@h}q!^G}A1;A2Rj8OxQOQOe~qU3(S zumC~^*)*aCTR?6sgw!kMs=w#y$;R&?&rA8y1OORy8*t2%qcU&{iQ%c@(W2Y*kmrbV zpa%Pt-4CF5{;9#%?|>6<;l;(^Iu8}^TY2%yy9)rea40K6jrUD|5bK(wxqA4MU-S!* zpkLT-edD~=Fs6CWLZ3dc85IE0*FYT*3$UQO0D7+TDEf{bUM{~kAk^9S3$D%(EOm-r$ z&PE>(=v)>McQ;S@L=SyThvu=uIqECk+3CpG(f~Zn6?RuV%y0S}4a&0@<6>40uIHUh z?A$3d#qoG;RZ<)1BY6c9@!yeHoI2WC{h#~rh$cFjWO?$e&#Iawf7iA9O7@-HjDC;b z&)N5Bmm~SsB;UBUrjD_UgEw-vJ3DeMc4$Xdkb&fz=f52mXR=|#*@hL%hC6v*x+KSv z<=U;ZJ5+|30m8Tf{HHz+CX+b)C?{0fBE*8ZSV&LLf$!qUr@!}4lGDtrCkjU)8C2fI z?!IRn3BEHQS$eZx3hVW(C&pGAwTn_Nn$8Yhh9i28e!nw3OEUAW8F~!9R7ZTpSYEvF z@R5oPi!cSTa1^--ChSy(t zXE<=+z_2%`ATT7$R<>ABMpb#<89e2$@K76v-z23^bhU5LHVj;;m?1A1Hgj;Kw2E0b9`B9ZavmE&hVnT9z`o%>&FMt zr|MWYe@`k8o8NLjSs?R@D*KZ14Dvvr*ul>}Yv;^5w(ZqC#`f3Q{N*$cON$lb+3O%v zvt+4X{-xf@qJa}gHIVvlfOnjj$EUKV+6AluQQG-JKmrev6{1t$oT^QrCaP=|&!`Cl zU}cjh+e_}Zrk$3UyH`^`0ASsVWfR#q3CB2*9pUY1RLf>;I8dM*Ae9YguK=g=x@C|D zTpaEX@S;}&SO85jpdZ>Q)xDw%IABwq)e4;9_k#y5EP+>&2XOiFHkqixzUL3nu0Hji zKYyY4gMT}AY)>fI3kBq~%f1DC+qHXL>3;)JHbu3Q4%kfIKX#Mmi_feF(}bVo7p+7> ze&5+|AQqqcIDr37pa8mnLADod?UWTB|JHWlPvn+-1H1T&pJ-ARo~g&X<$p4vof2=Y zl~5B5_gE4KdV74RKEHIS9pT2K`SMFI6+l!TxfgCjANGd+vV$3KfbXt5c&H3*biMDZ z(9hb8J`)mvRQ>j8kPV?8#zDUWrl(Gws(Yb0dA_0Si{%ga;S{i+|~_Qs3MO#N#cR$R?d4lYqFr6n=9;P?J*+ z3$c>9zQPcMOwf&Y-hQX*Fc~86WUI?UUy;=>3+d@N@XP~R!t!`xz-(wDz?A4hj^)^% zKyI<2tOa8xxs~uqqqp|O-|rUt@V7tVCz}YmL9?8-BwpCnA$oCuAi=(U`(_j_Ml0@_ zyE)fTgBWAyRSG5e43?2Tf^HFP&K z(wny&J}s;v#y*D0S)0HtkHCpMEli;Nt(yt-4~=*4-mf^RGiT3Lu=|S#uMYbXQz-D> z`MNiw^yLK&4Gax$k)+>s(Rcc-e*M$^VTdcCXY{$~8hx*gh%ws0EKkU`OeO#UJEB)) z;0F{&1&rQDZ=)Vn?RiV03-L6*De|4F)-CRvl)1u$$ULtINr6l-h6BLtH1iooM-7t zTB~OSnLM=}?Y)LsmHq-B=}{Y`c@=YHQ2?v~)?j-!@p^z2dukvBXn79VAvQ*A=<@CH zDp@KGND$v>GA!YT_&}asXP*M?o&abm8IUsguZ?#XC;&_xhor@hQu4bxfh6_T#COy$ zHh8%v@ow_G0$Xgom%KLQP#-UC;YC(I#|9eDtpiTv|9>d#YDkE?+#JaD{}TpaUP&k7jKFQ0qW`06QyI znd6si0(N4E$*B+k{Q?jJg6Jhr;+egQch$$)jF$58z~(GGL!WxkUG_BX1w8Rs+2~lZ zq@5N)F6of52pD9`@eTh;I-Z%(S2=lS*XmT4(57BV-@0xe2*51{RGam+_5qvZ1&{-L z)k)rXCA9@W2d)`?G@}vy+I;nD3m?!IK&h9uJ0cC>ByUY4+r56{MKwX|&K>>6X=Fl1 zX3075UEn(HHqp^elYsJ$rY)N{ZLWOUK<355PG=lM8z9Vi1bpj%`qbLg;%ZG|@xkQ4 zbubTm0WCqGMEzaE2p2$0LCytCoy+sl zDOaWBwLC#N=R-mz13eZ)$Ko?M-Dse{Hf!Yv2C6SdP-@1FQTVU--!Cr-BeZMR?qT1= zL}rD%%E&8=fnns#^eOjLlt#iY^}PJ@%cam+6{+~1b7wErWB)$*@PpyV(IW+#^=23Ye)XciGbHbk4Qgw=b3V;`HgWbqM>hoOAiBU;TQB^QsJj z;l#b}Nx`k3)4uxd+8p;|$z5?Qq=cSO^a#i{_{w8h5T7@1*o0Wa<&_dJFM zplbnopM3Ih9)vPFXZBFenf>*zhBsf$IkOp@tr|6{5tbM4?x_AMGiCkK3H=4)BDH`F z;Aeofpg9hB4J6|X;wR!WV@CkK`%GN3em<8aE9XmF|Lv~o`f~R=dIAnLa zs4gHvJ^w#@Z}uHWlBN0GKy26nVkbe61j!^blgVW6TXl6+cURBRQO}t^XVedpM(6au zq(?pI9~e#RNnNGUOt-2vy;N0KZk5SQuF2%SVkLIOrtiDv76^g_xPS!Uh|kD?NBC;~ zGjsRPuU)%FOBe4uYz=bZ05LXx^r*Mm@ZQGtcnn@gystBV%rC83yx;i;%XrZ-546^? z`J8zUFBl=*6km|(pGX4-?{!fKagd1a7FyRBN{sPnAxv;$@jljAzE3I(=9w=hO;JTzCbXqOk~xDGN91neBRqxf0#FlPbR(~c?U3vZhtnxO3ILK{Sbl7Kc5pp zX!5xhhRLN>J6KTXedIg}JTjrcWXC8P0+=^;Zet$!?BTgHI>+?%b+@|GubZNttp_xU z@EH8C9C#dl_?x1ff{}d4j`=-u*q> zpTd>TVb%$o&Gp)Yn`n0D+wc-^i{Zw{%7^Vjdi0@z z$C=NL(`2O`n|Q}A)?9xr#a~!2cmY;xxWQpQZrix2;ARMGD6K_V+$1d}9nl#LmRc zuZA00NXe7K&yaJ%eo?T=a!p=@Ko(+v*9&pR`vZOA_+a9EiYm^hNb&~@S4EjcQ45*7 z>0yJ#CRo||5aWks%DA$8(EfPw0!H3zh%8q2w@3r~m&b^>KMK?*w_lN~`Rb|^OZfT!@_l;uOK6h#UXkIB11up$O=!{5Ar zaanMC2$n)V54cY@JCirp3BsbqJEPKKN`b)bXes2fTGE$-$J#7W#JFn;R-(X)LXli} zPE2e@c5wx66x-ZC`S5&ciDSMg-Wg8HML$@x9*{ZDKe%Y{P9G9EQY`VjIAU5HAb{&q z@Y79z%P6>5m3S=fi`LY@4dM}bh}T09bbJ{IZe!fSuNfSX9Kv_bWk-81;V&eYU+C{4__Ypc+A*uxO#Ag^k@dbg~@t8P(=a1(^{XO}!9BpQzVr2|}e9(2`U%x0cLtdH@W z=)Si0Mk~bj6qhu3g0UgaeAu~(3S<_lU3(WyocK9}Z>eOl9KOb_uVXVUC z;KId=p5O1$BumTCl`B8m_>rUVHyg7I!ldw`XC7km8w-By1}l5aOU#?sN1S`G3Zm%= z4-wwb+3ZLQ9N+vovTh$S=4`~x|<5_ zMWIJ~JSxiFUuGVC;eL)RJ=3c7`isMo0R>%{hJgZj@8I2s4{HhqiWM%8=Sy~El|%k{ zo%1)v8~4la+`e(YemuNn!0*FdK4`Jz1D}F}`()4jw#0f!QO5a96tuh-QgkrI{qTOp z{qz1n(ae3YT%(X--npC~3MOtx0UMgxTU_|D>72*Hrd~I=fBI2#8@i=zox6ItMR!Q&r#Ej3G8}7%ZkYqA4L2f1uZZ3r3L!n zph*S3rWG_lRw}&8St)oSh0q?{CTZcV%Lg_x?1q#<#(1A#C1#d*y7aO0e^@|^Z1ArM zgCkt|;j(@4#TV{saO>tR+cz*|Cr+O95xQQ7nC$Kwz^g5SNrTBMdSUVcYeS@h!$*%} z-0K1NTjR~)Em)FhEvY0ueceico58^Y94#g9?hLok8Dw(e9xTAH+TOZ`-uoCyrnegx zDBjNV$Y=$=VQ}{t#D0!p{~x^np}qd*DStc7;>O6E4{wA$SkCPIRa9Kf);$j6uEB#e z5}d}pfyPOKB_YAx-QC?S!QBER!5V0SySpX0djgHS{yR^e^Pb~OJZEkj)iii#AUghG;=CxZ)Iqzu|z(zX1Q8@#AH2WZX6_>`?s9EGAWu+6*?c|s;|887rqw6*E7+etW z=2kP}u4n+;3MRTM(HP5m$QSJ>uV^IVBq1j_Tf|+!4QHmdKN+WPtDN-thTj{p!_xpn zAa?@opyLaxs9?tD@*5A4(oq{3g%LbP`&X!2$crf)BdltNm(mq+d6Y}h%#c+zY%z$l)>cBe_twzRY ze4cH@>07FA<)7Z(7NQ#|4U0bbug@eNq>USCL%nEpnG82|Pks6s{ zDblQtQ|~G$!hhP&tmr?ZA02|4K8rM)VAlEYHsRQNLyRdGx&5x%(X>sp-v@D*4-7qg zS6(9!8awBd(!X0nyVs2!dGsbAH>0DH3|j5nKh(u%(p%zy1wK#Nh?tR7e|*ijWUCdT z)tE#OJC0-8tg(f8Q{kp;+=S%AS>) zfGdxu1Z=)bTeBo@9d;m7!B-p&T4~6{Ey%od#dq2#`P~Z_5iWD46<^QEwxDgC+y?{+ z<@!mhkQ_F9De{&eN-PKdb@erjV`if@vViMD&|(nyaiYV?>2@kpD=3q=O*V$7gz9xmiDTmR1Rnmm;rwL_zpl&HCcc?c4#{^0 zo9Jjq+)z@0zsE`Ug(G;g`ren0dsD)bYQ^F@3;zsDf;j(RS$R@wpQB2EW*oE~h>IF= z=D|Yne2kkQdRO}G+IGUjX-CWW$#phax!3wq4q~NTF6iv2tH+>WRy({a7x18{$Oam5 zzA6WI2Fn-7wf|tGasWyP0f^2TdC$huZs#=UqN#Gh!@2i21z$G((!I8M$FO%hvZa>{ z16*ZHqO-4a_I)0@Zf+%w~6&-yQ&Kr#dO)1BH&^atGLB8-)lP1P7Z*H zCS+A4kNP8n&FNM(dCdrLL>NC6zuW#J*R08gXnurWzYXzrh}(7H9t$Ks4-`M0{xXUk zg)nCJ&0)eg);RkW%*M0ro@TVAm)h9s%b6>C{?Fw0?we0^?15g&( zY?}@NXnr5VMP*!X^y!gr3A3JSd$c6S_R0_(+%}1SzB+l60Jj zd{s-z=Oq|)3D*0^9!5`sPwzuxqGz;L+@08i$u0Iit((nUu+-04z z<@ks=RYAP|J)5eJX90HslhvjRI{=mWksp2zl>ln$i>dYAk$YZU%nF|SQQt$;jhJUQ z$DLhis1n+mA*a`4W6X+su?n-;yuyKGK{JAvsoRRk!QCdk{ig{$>oQo=u_$(3o4rh4 znn=IgA;_aPNZbx|55N?TeDqB@hRb!l-i$+V{p>>WF;W>xIjR)e zXJ6n8&d5m|Hy#o%;c#Yy(9^Py-X5O0Tb}2)#?a;UC&V@@;sXUflpk>=2vbWWZ(KQk zWZrFvb8D)8JZY)9?&-Oc-E^L@1z$Bt^IpJybD0~NYjQ=t8q->|AqbG*5+McZ5!(@m zCJOuO-F1r+D(cRnqLeIg4TrK~i9J;xChTJFJ5&4P-<(u&!}pD3nH@W52kAaO=Ap3on=OSD^Uo3U|wPczQA z#h8uEx8>IJ)N_h=b$6lLkdWSx&>-dL%T-kEU5W$Y(~5*zfa-&yn~Ye7m8837aafS~|Z5Pp@~LKY_Uo2=i}a$ij7elCrQI zy!?^7kXK$qzDsAH7>#)CnHwoKyn53!=^ev9Rd1p8%pu>lWD9i+e>jlL#8>Bn4AF+ofySpaX;mqMd5du+G+m=jZaOcT zE^AKO5ygKH(8YDrGiY+Cx)k5g3iT#yZLB`w*uWK53AreC!u1PqM#3U8j1u+^kfvvLy&h`1wAcX=QCY?{*D%jZg>&@P)er8X{7qjX9Fr$Jw!gV{% zF#pqe!2Dtls2($xcwvIMQf4Fv5_+qY2OOW;q$tKlvG zSHkw#8+*J4w!s#S@7W!Rw6xCMScvt6H^{<5V~`ALupeo`!Z{s8H!n1DpBp?E{x-h6 zSZ`>T8T!wNId2|k8j$jgM|AW!(+B%u&>O$U+t|H&jL1NY$PPuuL{X{zV0uC*vH1b( zVD6I|Ibrw--c>>zD1V~py12%h5mW?;Z4-um=6yk0gv;G`052tlB>Vg0UX&+P1RT_!^O9vhW2LG`KR zSvb&ih?a`%p@f_+NQTAv>42qUvZG~}i6j1gv>^yuGxcrw!pm2M@FB)WYBy*?tk=a@ ze-E8>wg}l*X`~EWb}NUiBMjJnR!jNr6aG%PZ-&BaHUHfkG1&oLcQlY=;JV>uqZ!D& z8D%z2Y!ydLYKfaM=~%{_+1YdQE4pYzlymlPxL0eA1Op;3ayepW<-Izj= zMl?#IQ@=|la;7UsDHm{GVD>3E=_bJOiE|0NO-i$pi~Dv$YYSe%JTHS$cOgNK+2YWj zz+jBHQU5MB)v=Olb6FL=^hYpLKzc@bY{UtcJfe2*?q%Hm<>8AbwDGVrbq|*RT=ki`O8BzQVwKavuv;Fx6 zsxdp=koJ_^q`*6~!nU>E=*Yp`Gz1;o1*ZU7m_k&4GkVedN%|GUx!OZfjg*Qa(7s8@&!pYsW?XZ;DI}Rt`qZl%- zgCY%w@_ipo_bUBy5IQ1+)b`8<^;2T(an1SI6(rWV!y+c9SkFWB#E)=|;&ylPXANr`RQWjvONG?-m`4i!AkW{sZtfLMk@UWWP(htvf zwq|@vUy(-I99G&U&Wxzf*Wh@3nz%I7;whc*yHACj5|&y_$eFRl#RRw60lmVt$68>- z;R789fu0OI<@kuEHO!mimC?A~VY89EPk&7aJ2TvbQ1)^RLI!=v8Jw3W8j#uN*}7g= zNFsExVX|9PhULVQ7c%hQFeOlv`M}Rk&R$MTSCF`x;~(GIXV>tDz^g@`rOqF5XAV(k zuM(7J=wZwy@Dx;YqV9x5p+jDx#&8A`H{`K(M>zs~znmg2glt~tt3NpKuvkBIob>Y)@m*bKh=5JZ8I>=F zl!8sl-507&m?xy{x>C(c{e(wqS934$_|fBYJ0_Y<$d`hhZuVTXtB1k5)$C+#Jb2}j zd9rv;p5)zUG+hy$rQ+v!KwBO}46_dHqm>53yV4QlusUpJs@$CYp=)lXS)8Fl93!2u z;+CwDll7O@?_c7~%2d;Mt2umf_-0T{#`H!Hk5Kt~Au)s5M;isnOL9E}u@&vVOLSxAwt+yO-8?^T;PJnfmRXOT@yBb-DS zozOYJ`9i3bAfh*PPS!wV1Uh)TtYUlm8^ED;iw6b!8e=3qlyIeP_agwQKhvZ;BQ65I?24*?{X1J+Zsu zI~12Mqb86M-T*i=TF2WHnx@v>4Yo$g4dB?%VUyqK1d;Owyx}>3kPg|*SB$#$8nTeh zNGTBr(D!t1xf3gP!issW2Im=bx__{ie;hpva9~9etz+;Bq1#?NlwNi8$ny%{&wE@V zET7GALg}qQx6r}ZiDpd;ySq=Ei!6`+e>>^a(4P5gvfG?FmSt?q0Rh^UT*Q~_c8Sm zlglRSr3q_M;OIb33I0yR0O2qu2zltXoH`QUnZ%7x0MsO`2F$9H?M|xQWsi33UQadF zeisAVxJ05Vevf^9yw(|-(|uCa$(u4x27}eF)T@<(YmyvVta{@m%1pH@CP+5A-SJWm zgbRV$*X!Ba+|Or5DTQE*M{U)p*F&5mOKxdMO_YwF6Z_=*kGJ?~wiGk-3<@f=ue;F& z#oVWw?(lV3;mO)67K99PyqKGU#R2!vRPp`qFJ2O*(=Sn~#Re0KF47%P$nP1(NLFf} zRv#ScDNxYWpsipNgt&s`4P^pd-Q5+Ho??G#hFES}x~VF;RWo42h;GDomD&Ih3<~!$ zERP~KdN*3xc8}A-B(J*gn`_gzG&EMo+dabLbyLm_@dV3;Xk5u;Cp8{;PUc>AR3gI0 zM|mP>b8A+2uj4O< z++R!eujBp78=M3S7ZW(;O{EfG+@w(ZmVx?e$0P7V^NY+f)Ztua)z9!deR*A#cqVrYrw;})aN)Z&Wmr2*qJaiwof3r^xVdyS?*GVl6}HWL zoAi!*y6ZsIH_|i}xz`$9mg}rzoWiwy9$d4UQ2)WV%G(F;lcWbS8Q3?fL*y)bhjwgt zcW2on^|AIGn<<24WRTxK;HTG*MM1auZ~72Xo*uZ$m%POpLST4gMtQr=+;}%*mq|RrxGT50#R-8<~p7)aBR?cJNz{1p=6SW&1pJ z%}Z=+J_@g`dQF&rDsD`f!F}UGX#JTZPL7dE_>QY)v&LGMu2xtW))59&eME;Ax~xK|q~eYmJ;3o1 zvNtJbNRo3vzPz^HO#$NNMbW=|pz`9W#Yul*PTd{X%5G}I# zxJqMjiL^1&B?>|ZySEXa7VpFNUi(fH8$L^JF;gX8-&Iw{0`e~zf}`$041S@Yb8PKo zK!pi9c><|=?W^mom5@2n(}n1mm_EZ&X&%`1;Xp?bk8wki5qe)z%_XRE{_) zy7ibR1ESica1&)0Ml8Ks58iVE1=XTe4wHUo8p6#G3*xyT9s_a%CQ+d3Nt0Mj^cm0z_gcr|g(Zph` zW%IGEww8~kKb6{*d^9k)5V@_@@4=7!n^88nEzYJeVXw!++o?lw3rW?Q@=LF zB3RHLO7ZT7->(tR8GcY*;>21KR-J}1CiY(R?uQBhdos*olpTMryIm2`?Y7A<4^$av z&l5%R-97qTUS>t|#iU8c6O(=~sYl$9Eqdk{kozeu?N}y24!%$&QQSXu16O1#E7AuAbycsc^9?$mlL7}-3ao?K=G}cdI-xH9=DgO+6u_lpiwLacr zNQ8elztNR_!9+K@cPWjyfA<-|oXDf~P`u4x)T<8V-dghF+j?>IM;6bzS}K=FF+@=F zXg4s*9!-PG077|uQVI85XO`JoRr@UCd-aE0EG-=kGK_y0t)7gbDu#BrLZRFz2IIyj z4i3xnn9bwQZ_Jv}E|Ykr*OiUZLNq^PI0L}^HWsumDJWA(naKP-1LdWLSE2r=_YKO~ zs`JBUov4TfF%U8Bq^>iv(W-+u+@Qgmr2zJg)fxs;qA&}>YMWnWirrkh)0wZ?8Qax{ zZXc^T^@w$Q8h>I9Lv-*06xUw|jYeYVM$jiz5>2w{$j|p|I%(=APgJUmFuVj2T@A}W zYW0^G&YKhpWSw|vq0bH(Rg}A53<^l?{9Z^RL-2QewmCAjdzaQOo2_-7k{4)p354o% z!}%(0Uh?jYC{nGwjV4S^-sA?QbX9}P&qM{|Q-HriK+OQRTi5}Dg0(J*2z^4ulDgp^ zoGB!-soLu1svn8Fk*({~HNWk-!5*p!S5rPls1HF%q(e5DMd^9C102~SXTSkpHZq3r zE_A{8>`-v=iFl76?x$(k7vhXab;){^+d*}kz5Lz)PhpE%)CAKvfri^{tp0vjdHMhq z;`Hn0HzV}#Warb=mfjM-d3hH?WBmMMOgV~$Ui6+=56_j3tpYmVeUU&6JprGSeqtEJ z{T-DHh2L`>+U$?j)MfW#jl;Zz*r;Qzw5B7|raNORcN01AG0H zCV7WpONC@)mbXI~+(S|vGBlwzNdSE=uNLCd-f^85YYaa7eacr?C4d`x(M!0=t4~N0 zu08Lyz(&2=nI&lRD&)0SB5vB>72urp_&aKLj1Ya8-F~OROy@P^w=9=;GUl>q9tA7n*)Dm6<{?=!pz`y>-BJqv8Q@J;#Mzt*H1(Z{wE zbYpSNCZENUrpS5T032t|28>5Mwhe%0=3$wEEtYTlSiMVyztEFyOTsSVb}1`ri6I}+ zOF6RkboRL~EEX}3w}4DL6`1SR}?;_1dX45AmG4Rde_ z%To_-EEr=^^L2Z)tQ+F7A?SdT|9}Iy%|ZQRrp451L^O@K?T$JUzajgn%k8n_VR7@^ z1TwvL4Sx>j`2SZljcx)#Y01$%GB!O7Wej1}~HpZOW8e#SaxOGa~|Z)qg1 zoE$sxGOn?4iyBivpM1ek1dvF>{p0Y_V+dbjm-CpF6mclT6jlYG>BqN`CQuV+5UDa1 zS_)~#_taI5G%N3tDVP4tiwa)j#(KV6JO4O|;6nApk6JkHm`9FXbN96UA>&@HAl4ZAwlg?Jj=0+C_S<+t#?|;cwji(p2YE?? z#I95%8o->C*~}6bh&-L7M)U3vX>){=V}V@Ms4a%u84joj71N!}btS!e^p_!=$VLo^1c4na)CPP`Z%4A$uks$3OM=$>VGa_J+>TO$@iY2}|llEIL zYv{e&L{l^RP+SF>Ykh|NZodOh=JKpTz$RC-gYoglX@Xkfn)9F?3?HMri7vw7NsHeJ zf8*0iX87_S{%$|;PSA=^|3$Y4ke(D6)*pg?WkhPY8+v+C6M!E{B! z?AbsbzMftZ&c}84Vr&<);|Y5+JK&nEANOCFjQP!lf5g>&lQN-FNd4CFx;gL*8qw8} zv1FLm{t>K3#sqz-Skk}dC6XM^d-dvv(qe|_f6#&$^Pg!b;q(mFyK){| zEgFZ2Y)+Vvs-8N#g2AJ1!e^{0Vk>Eb2he>@4^AUhF~p~G! z%IC|WbqCC>U^#MwJsZDFxXN6A|K5|C``Vk2XN=cG&E>qQ)}q}5u%K4Da@r}bk|Vl} z90K{kyn@08>8eVhLp>?t@@Z3hAp9rJoJ&EO;<7v;2uUlV)N$Fn?(u}yJFI@+_ZTnw zMcBPsc=M4p0#DH>5mDRf#>n=SE!onxd$}V4pJ9LeD6$5D;&+~2Zn^xQ!j!AsiXEAc z3GK60_4c);_pxnds#>rV;L7#&`hANDTubmY_+PZ6Jch}B9H7)KCu<(AOGO9=; z^`T^yM^DRQv zP{o7LSGPxESm$sdY~tLE7U9pdg-~J~;1bDB(9meOk)K$Kh?2;m1M8@=10|rHt$_^I zPTLSf)QC?Qw(^0b+VUd#k{c0(tb3}826p~)6bG+fx$VDtuRkhgt+-&-I!%usG@R)_ z)`EV2JKKJF*8!J+-OXF%QTSO<8tgAs2nB0J;}_doDN@b6PO_6A1dW@ zkmM~88YR4~R{mzh#PX-qelK!N=X9ElA`MD_83}_^!L%khlVFe1HlMAK>;1rsnc|#p z96We7%WGSkKSG$0edz7B7$|2~tsiYbcJ!(p%%xfPU0%%E;iRBGF1;?twixU)0_8HA z(q!XQqm8|If+Shn7u9}hSX!hc`zF`nGvu<|>yC3d)H#QWK6`8Fe)ogS@aAUYsYkpMfh|j+!`q#ZOK`!}M)?;md9S_Qccfy*ZQICRD0)(|~g^AfK z1i~y|DVEnv?%FH%|LpV0MTod7P6@!9k?7+wQ(7}F*n@YaaYJ#^o2U8lDi^&DjtUd? ze19FU=S}h?N6mVxdf*q5;mqYd-mAjYG|dy@0d;MDetSLrL9eg7NTrvZsDxElsyV*> zl%?;_Gs1l!`8z>-QQmP`vZvPb(pXw@oNHD<$q%~?QLEx$^)`F+EwPT`YC=^yMh9PX z?AbF4`^z}A$|`13aW^etmM8B$=A<*qPyw59w6Y;2E!f>`J_mHF?bb(1C`1+YVhVmT zKSPq`{JwE=%#XC*34#Ue7zkb!MH(!usGraLHl+N_gD-O32IK z`G=v;Wk~dvTGXVc(6**kimrf67-~)(9@^J`8!h^pp5wEph}~S#|IIci@dS?+#9>K! zR&@kYq~%!wr()iYjnUR1_CAy8o}8-xcywSwY17Bf+%aaT)RHSA+*NJTzZCokPee7Q zZ@1F+WyEECL>2!u@&1qJyF?2Tr?V`|EA5X9bqbR@x+-#+L&}V@nBcKRVu-*^py`ZM zm718!>|;UK66BL7+FD^z&FMXR=4hf@jsiceSLq%nn7QTLQ8EnVVeiAz;Ez+%G2tjN z!W&9#P?+qViV(&j2ON%_b=S~H3()t033vz<)@7e%6kf-*dkF4|HvP5T!}Jj5+`jX? z7;0&ZaB6Ac4kQHx<2{-_yyBEmKNuuiE&SkAa3@Xf-Q7GgiZt-sQy65lz{;D#EuvtJ zT%ZV_kRLBT?&gbY%_%IGepg_$N1fciu*2@$CH}0zUN_(>JII;-A5I5Cg7lRP3T-x} zv)oT5yXP!4nS1RwCsBWqhc7|>f&3@5+kO-&^w#ACykTHHOcV2$3g zhn!vX>gar`F}5#cmnyQ1ldk8fC$1;%irfD$+H)nGLnhU}9+e92kRp9ZIibe?rmks; zj(%HFRo|Zm92uRT+6b;FR8z&|v1*j4aIksDq!(7Q)Fz9BBfKwV5t8lpDyFG(a`!qT zJKJ$z0_c0=JLB!+(`usG*DdBmS)9Wp**T<2{B_d0dHQDR;aCo6aM2guRp{ILdJNYI8Uhws|J zO){Sn22W8AYh+8BL)fqHevlt3om1|BHmHE6bA|ee-BL}~n6p}?!Ly)um_-A0G^_@( zH6qb;N+->Ab%sPq_)9<6HhRwl1>GlBME!;u{82ABB0lcwp0s`TwG`r#4`is5BODe# z_9=qc-LH6}RL(Z&ZSwm4rD$IQf_`8x1d3IEYh32=SFqsGv_wNgD@R5KPDIR9*d2e} zwp6Ww6j#->MN`%1%NP*|y2`w=CTe@XX7EY~S$;rMdf6zwQtAg|pP)Oy_O)RH6HC-T zAOUVH4#a}QX)RefzR0c-DH^FBm0Ti?`JUG$)!g&oCgnAnl~k&t#<^=2p{=GMHl?MbW0n5{W|#jzGMwO2W-L)asj<=u?#AsHPv*SWtk*5ze1Wn~9;v5$8XvotNxAh{K$#iBJmNW(-1&T?BO1 zSsZ`mi3o_8F=8zG5kR4rwNZ<}T1`&CNDd1Rwc0;ioFobjGXxz4SW#npi(4qDX=9Tb z!eSMYPyPIPXxR7hogJEmo`*YiDchmvzLuY zR{;u5=Y7QZhNQlR=1wM_&fBg4otmpOlZ#+4)|^whg!Kc+5i5URgz;Dc4ChR>&3(MR zZBe>e>q)v^y0|(OK;jl{E&Sa${_%DqOt7)WJqzjc5w|jf=i#m|l4k=G6e-^6MBSG>Cm`lA?TA z6tplwhf_4gcrm)K?Xo#NAM^K}cU00sgitDqa5&NJzZK`p87CuOs_aJ4U_z(fl^=K0 z9AGVOrf1%&enF1EK9b?vkc z=!DZ|_}6eDWyizGSAEffSB@(SgoH)vm0Bxo>Uw(LDK$9fhVG%b=k5!87`k{(O=~qs zgjq)r-^yO~weTF74>5Ii2^*7Et;R?hLz#=ONvZJ^J?F>B)@G5?QlD*5r+vfVn+wL^ z1d`a;4KJSl{!~Zi@*UD(S>ZX!_TlHyd34OnX801D3zT%HV6aSe#Mc2XI(v;_%~Rz@ zQG_<>)_nhNh+@6Ozf!RQb($Z(&h?hMfG()aE=rg%Oz-y#D}&X=PaYwrx@F?bJY0GdVNUS$d&p= zh(Ub;`pd>=t4gN@{8KUrsm9o#T|SIMU= zOu1tD9$Z`JQmWIc#${PV?sxxvjPX217K$thh6Dsy%7?#fOfb9&VL(5onT!zl1pMkt zIkkCbqxq%ECmdl|1bsG{yNL?zec($?Nef8EFRMJ7=gSUvR|%R5KFzbqmXov1W4T|E zKtA-Ze z*sN;*rFN^-_dX5!j-7CDC9kktOJR?4IEDvVasFAkQ7t~8$&#FkDl}gl0kAOBfrLel zJla_2e$+il(dLcxMTy{Bxew4j1$X(mCi4yb82P}}(Q^IMt-)j2!;XQ!N!j)2Oz;PM zaHL(Cv$xlU*=Gj0=@W~R1fkVxhu%&9_>oL4;X7wA)R>C`OR^N77Hh)k_z~BhP;#6_ z+8`)~Adi1g-|S((cry&9Cxv}W(MSbGgl#Jbof<4Lm0bA5oe3;c!Z))sF%7{A5V5`!$nK^7A+bU9d@*Sh^$k7 zVVJ&+zxveCBr0l$cleGb!>kTfeV$4}>!>3=Vz&Mtw10pS#9@5P_vr^5h8^U1tT?d) z&pIt$OuIMJ9(Z8`gGeU^jXf>r6mW{*#l3!0#|0n8))LfJHS0Oelh9+proY+uhV>Z; ziu5M71K;u(vbz8letoqHI6L@#0F{X4Pg5X@)^Vis?(WsDV)em|8nd9p3^i(CHTc-Y z2UkuQR9?asE&hl~VbzIbOT7qhg(2_of>SHe%bR;sKW`gSo|Vh|aV!X!9HXO}H0y80 zcfh$xMV6SmXCKF3t2Ekz)PAGdLB>v<-UK{H@#lA6qwMny{t2`}erTOZSXaa)Z7gQQ z(7yKP$miDfx%GQc*m^~8PI>j*{ad?FoFu8)GLq998QqQTpK>~^!1?ZZEzR!NGs{0Q zEw0=bXQyGQI{Nuq@3G?P<)wmbNV#Nv;v&Z^K$!2>+mZZ!r)s&s-V!ejzJ*izR3k+W z`K$UM|0Q6)NG{U6x z{)y!xHbyMKdm}|%@q4h5G8rjpd0q23fNB5gEV4td{Z0E7PS7=4BlP|0m{7{LS5IEf zmC!JuD;j%O)9TF3Z)uYU)FDJt%jpl#g2)&XQLubJTUE+4+r5|>HCrl;#sHC1#tP^8 z*Bx;8C3nZ9{C(}jh<$dYfyFb%WpB^(%-E;hOJU#*MTzdc7m|ze5Qi7&`SiUJ_`zcL z^w>9~fL~TPtusDN3wGWcZ2>feXZUj1esj7ILu66{Y-WC7`xcIkM{_iSLR?uV{dfGf z8nbJ4gXY^JV5fl-LeVe`K=Hkx6A?e7N2%7or|E5woDdgJb=eSaT*jc+h!%#L5}%`& z(U1WDbltlVWB87cCu*VTajT7O|LJO*ry3WJfd6XL{b&6N33mQAj)|#0Bge%>5UqBq zt+)4(5B6C_S1-FPuq{-tCh(KA_l${U>p5ZmMQ)DWb%E*yf0x^2dlT7X4DtiA{c-{s zd+AA18{dcc{{V`kXD?gxi|=usB|BiO13P2bqt$L**Fb5m(E0`PLTVh`gWBF3t>%EM z?>eh2mL{*aY&UZ^=#{T%5pNNArVzogS+6YAjZ7qr9*WIFIpr zVtsR0Z?_JmUWgViOVX~)%_tKxq8Dt>NHo)x4Tb!PFb>fEz<$+`fgMx#Ya?T52>c-3 zLJF^e2SyQM``Fz*@g<`^yX0P+-Otc^OxYOr;r4fxk`pVJ>E6(>_`*uan5+SK})8yrQ6go&QVxKN!yqEw+E4R;bAb&rmL&uO+~A;P%e@V0{FtywtusIR!GcgTp{MGNLpuCU5@x@DM6>&g}qvH_^wZVoj;B^QJiA zLL_0|iVbP}W&R27Errme_22j*foSgRE#7@{(irH#PbgAFLR`ERG9eM_ZYPCN#i+Ss z*ja4Cr(VJZG{a634MWBAx#3cXHW6R5WWG;+ZFW92qOD;;hO~H<&u8>Zf$LVCnftxa zrE|qZ<6nIFIZo0ALz|1FrwF)J-d+bl9QIkl4a%*<#+Zc0sz};uyWi<-n6HH=^=M~( zm;T_NmxF-3IQYxbyNmxA?eW+DrCDC|J!!Lq)5 zKX?5E(>51)kg1X2jnEzl#K&jia^^zg{+XyKq^_=>Va8&H_m$EFIVJzQk70uUMz?>c z-CTI=0o!Cw#4)1;(m)zgXf?4d)j4T($#Jq%;&QrJEUO-`i&`Hp7bBn2Yqg89 zuXn=^RLBCwfD~I-+eqB7J6En)wT7Zm6eMRFLUtULzlVrycx=J24 z?3H9w`o(hJx&sl+p1YabQNhf1fANPuus4W_5z?4B&+x|5&Q6Ki@*NEo)wyR86-hK8 zo(f)1iN(|R#Z33zrSEw81%~xf@50qW(Ve~yM10j!&)&|)B`u0TwJx+pgWI=6%ckvT zMM7?pY@}3tcNDD==Rylg%2uJ(-wFL!qyN$Js&B_R_4|rdlfeV{ zGTctFuHi?8ZkLA@l&K+KvhqZ%mmL)bIt(@0t0e0_lvik;e=HE>+Rdq(AgQ6aI&)oz zr+Q(8f9Y4E9tFC$W5ebgb0u>)y!1^`sH{~cpfb}ITP?f z>K~~qpmon=?M~?vU&ZgD2Xy7Z&yBs|(e50YDqL=G|Jm(EE#f=ShZk>55HFY@bmy7M z=mM}P6#2XI=pnWL^tne~N^uExoUqgmZlGGq%sEYmV#67?5DIouqYt60FJ>*KMJjT$ zN~ph2Onn<^aeg_&)}w{k{)-fX_4bvGi(u3-0`T`&31yY&E|1#xy%H?yU#$nj0NNj{ zer~lXk|zfC4;uDEe@tx$N~h&icn)05oLuw|9dLs^;v`Eu?ydkG(#ZLt9mtOtitU0VK0Jw1eu*hj@8Mbv? zO5E10H<8M&*twklde~^xxfgHzY=hTVhfdUm{3_=wV|B8zZuyo+y1J$M@{8(PU2HwU zV@yu8&Y@91wQX}97R#Gg932GHoVL{xrNkXs#i==@(4QpDPMammLB(zL^|Rq`xxxt+ zDiFwGu=KH(G~8>6CjKfY|4deDX2>q8-3zK^To(0T!II#?^>w3W|A#d9yGuKe&t*Bb z=5LALLRZRmc44%OEw5JGH4{JBltI|Y3|Wg&Np{sOU8I^@w4L${>no9@^(L4q(caEU zC{Hw{kaYd*){)Adil){Rwj{B)+n%TXeM2s!wtuzS%C6Bup}!F z&_Cg<$X?zK1g@LWhIDSti;a)DTC|JBd?E0&ECCxnKAx}=5gA)Q## z)E{Yl)ecm3tB;GvS@5w?S$tflvr!<9T~g~U?>W3o`4s1ir~35!^#IZ-2a~f@wV6w0o`u z+%gB)AGJTV)on!!wnGeirOPb9JG|lh!N8xpe7v0{m_I{;XZlsUnY0|sf>sX>$~_8i zSD)&ieyX&34f$Wzg1_@wjA=4=>GSB4>EU8QsHVM}wHBNJ+6{)#0)0rx8iu}eUw?vO z!y^5V#OC_Yf_BWS%OtXpi?m@iT|q&R2axD*01p?riJ)Azgb5lKrkfR}2x?nf6_|;l zvfF7BnW@*ks|mP%dd#|eXnQ&YUH<9^XfevHY7I@${xGt*P>X$wUYPHvJ;(W5D142r zTQzlQi2Qk~bjl%GUch5x9NvYFnOUd*=?VHJoU->)5N+d@?Q71lNxZOWv`xOUF?P3W zyes0r|Do}JL4FQ1#LMS+Y*$s}j{x}pK0(Tu{BdFKGFbb{u9TGxlff4f-zY1tqIYJy z?NPIA;tmlXUrDF*GM#)rd;VaMQ5crGZ=Y(pS+Pd`;ShZq%XsY6MB#q5Z53D@|4YO82A%)IR`wmYlaQZONC4K1AG%Q8UCSe|54;&3`pNu zH&|EwYmnjJ(IPF%!aD#AS(*0;roxF8!7)w@;j*Nd<|w)UVNE^}7()LdRo>r5X)^rz z=9E0hj4Dbnes6f2>Yg@+^=k3mS8c>R+eY(>ZMIA8`f=k{$7JrK$xQ*8yU8QaaKcB* ze^bP8C^4lhse0y`mgmg%pZ?GyDXU5bfB#h$i14q;_=9DdFkeoTG~Xxt{CC7Gy^)?l zl?_l){z*5(@Ada~!Gg=%rAz;EJb#)_6D8)`-Lm~nSpD;G^ojQHroTAB+xq{qXYi(( zxq&El(;A3~|Ibu(g*R39xM98e@6b$~qr9-pYQw_#YtH_;e$Ik7Z5mc>{7X~*xj|3~ zGp*F(`3Fgaza9H?rCo+Mo!0XoYW>edfQy;L5iu7^s*sTWcI=<)FD6>4tiw~a!+(K3 zylMU~`11?;kq{vK_xWE6!JGbX=>9i!|C@FHSrkG4Td@DLb^mh{|8o=ne|gxg%-jw< zrb>U=ZrEPExKHQjohmp)V&*S+hF4l7Lg zX0}?MiP`@}+cP3+nzT%;W--;X#Z;SB1EP8WO5>xc{_&~$b%}YIrc>{?)czy3u>xp~ zDLlv9UVrTSjj??6-b7(3QH?2=2&|N@QI}YSvvZc0RbS6(uD-6~Z7 z#F?!2XY_~Hj88v$IePU)BHxZ9U92$x?mI+(#Ahh6$gAjR*QAEPlf6dVfDdZrt~ zW?NOU_wU&Wh6nZe2(kt4H>C>D0Ymj+-dzyxZ zot0OwI=7x4@a-;I8C$)6d*>$KMrE$>sI)Hcr1R@)3gA~DLH<1lM_TzD9=skqvRW)F z;wOo_fo3FjSTMF4S-C(qJgjqlTnl1tJ$QwiLu!fQ_0jy~bU7{`#>CX)9OU$SoR5-dX&OmZNqN~AGC!M^n|JL39 z!GRFOpo*_KxbENP$5m+Y!Lx&dubSQN;+0iZ7p=b@ASIA$VNL7O7!!WAFNlj4)V4Lc zxxc(~flO3tTWFM;Rr{k_C$&M$8qiI3f;(bGzB$lXh?%`!*D4+)lNQAO_{sxmr%ZYl zd1SoqYVQ0#`r)w5!LB$n?1P{~MMcGTZt!j}v8bS?hZEX)MMY<8uyj`Hd?EJwH`r?X zDjt>a+M-kYJ@?xmZ2yiO?As^ zoWjaJb8l6n=fKYyN@J;{WUzif)dKu9)@5)?Ft>qi9n$05C40t3RgO^hFb)s7m>QkH zlbjh%?T=Lk?dAbzLIEc5lKux^>W6adu1qg$2b|KQGj#N8m@4hjE z7F)3N($3_T1UJ9!-Q`86=yMcX0YWImMdH(DY)W}q?Qnda@3KnENy)`IuI4Dnv|vyo zEh68SKU!)j9qCN#Sp~#Nxqe34a*8BSeJ*!J-)FxyVFU|ys0spu9m?4EmS$>xR3L6=oxW6v(ubS?fK%+l!~VH|)~EQ1L^(?fi-^{%P6hX!5el3Ay>lvgI!a*OBx(Ux=feEF6};*f z8We;Gaz9`RHC_QlG)gLoy0z|Ed1G)!Y7ZG>DG%91D{CA0_;?>wJ^rpbSoT=0i@$Uy ztE7-sw}ht~e|>#r6GkG4K8tkCWQg?(H)elye-^gr&<-yU3kYq{gW!YjCssT+aVeia zcedd;JE+7N5K1Wh53vEC%&H8u@Jz0Bm8VFzk(-Cxd=`P*nTyLFy_p~gg#C8TK7_z4 zq#M1QEOkO!r@4amlT@R&%RWn(1Lo)rh5bY#i>nd&1q%|8AnfgRWyLdC1)PYxlXn`F zwP9VxpW}%=L~w!hU0z)2xO+~>;{)8%P_W)$X$(y~=cvUw3Hwq9d6p)w0^8b3&NBgr zdSEZHHH@oD-1O+dYgpUF)S+Xi=_f+%?ElYHmWM}BLiDxDXED8E_b=DAx%F$!_`An} zoby+!ehxzROOW=b=JtB<)6t_(edOhi5p1N}8WT~mpdSP29$Nq1PE94xmpmM^i0-Ex z$LWXQNHgiHD#OXJVU#n)`e3++PUoCpV0b@HfV+-8694mgiu@5Jz0mjSJuszwC538&d?S~7r9wDMc zet$Kl@CbA+I}io75+(RUC+F<#G*IuapEhJYkadf)72rh7aaWSJ0{A`Xj zm%H3nzgu8~wyTbU&Sd@Op|NaOy2s7`?;+wq1|V6gU5Shu&MgGB>H9p?nS95X4VjT1 z^M6QauhxMJ3fK1qal&+J82a^V;SxQEOam=_=|z8=Ps4^bdJaLoxqdeb_ZNcmb&Ooj zO~hL`!*Y3A(Th}F6cCfyt}e0iYM0CIUKjW6Q^u?eUqhMhZugxEwf~Q)t8i%g``UDO zOCt&@jF4tD0xA-Ubc1x~=q{y1kdD#PvC-YqU8B3ZWAM&zy}$hfpSyGKspp*MoXZo; zquJvTgM}tPHO+d;V`(cpvPwrGw-}O9{(n;X5ii7(0x2X(Ye-pr8o`&oZhDZNg%Q15 zzJ$MPaN6RyR~q(+^E1-Uzf0LfNQwyyzcKskX<~cq%g$jLs@K;j;Ew>wG zjihskinNF#N45|bHEM^C3^Gmdo(K2d7AE~abn3qx$P+~3KDce&QHemvO}LFHN+4>0 zx@h*2R7^y9{nDt-baV3nv9ql5Xh^?$ZyMn@K!icoU9yBxb-Av5UsW2!iiWApT;Z<6 zcPY)4^vU6)b&Ta(hDl8>XL-6JS4|GBVZk?{uItB4cl+Z?B6zd@F$gMO?GyXo+O`p7 zfXb5@vf9xE{(p+Rf4fwKI3yd0lWdZeik@}Hb&WEfyrPmRia^FRXj(5X$D6)Deu}L8 zVhB(=a{vVGBQyh~|M|S7Qee@`DaEnw#Blp+7yD`4M@kk3k#Ynt`P@sd&avxZ-%R{! zrWP@U?ARQGmMH=yUV8a9Zm9y$B4;Si-M?;qpYrgZ{R~6I7YOAxg#hGVmoVv&qua<= zl!y^fMJCWufx&*tx~#HH95wUQt)Ljeaz1DZa|%r*_#C7NH$lAmK)=h9ecXyP2DhOFK4xJB1kZj8+eE;r z)QFqRCx)$T+;}Y#(2HOZhixMh#e|24i)GE+IBi7)zHWq%drzUr+g2zC$v`ZN64fQw z11V~`$Z&1|Tj_Ue%Ge{7YW_&MVJ6=wCO<^*glBs0Y~9^0!67|K-e(uaN>My>j3qD4 zr*W;9>i$<)PDJ0q-UJ%J3QK4uy{HG;ZJA}iJlm!Ffm2El-+4G^3v_kakh0O(*fo;aX>`Dw&{J(=kj!&gyhRol19{@Q3~l5AGEVziDR z6kCi01Vaj!Xf}ce7}uEu-%)z}?IAqJ&1;94J!qY>AzAP}R-^=2?(?5P3~O~FMjVPm zXRhUS%I!`*Z0rXF6;t*AlHp}q66S;0bo(&Hq1$Zjd)+b3FD|~t1bJZ@-lYZ-1)o6B z_IA}&2&DI46K+>*s?D+^$bicG?pamw0hhEv`v|JSN^{fsp7+rL=wM)Hx@lYsDD1~X zlwj5Yx7oR;Vdkm*wO~n5^O=UXH-8pQIWF~ zW-O8vL*;P^nM}9#PrJ@8*9a4q#qU}>BGcN;%@C8tnj`Tp+Nkk-HIGZ$Uug$^&*d7b zB&7{zCnP1P>X(<8{SSqoIrw99Jh7R4Bb(q5Di+X}FP%e;aDL&)s=3FL{+61rU$LWK zE&G%ZMd&Dgq{+sxz93tW!aaF%w&GyAVrqYND0;V1=3`kezWUXz5EJcArvHG*U zI=9WG?JQ6NgWhZkm}J8j3i}V>1ScU7#KY6Ee3$t4xQ9aPn|udIL&LaYs-OjGV4&;T zL!54lPY27V}}*t63cV%otReC$?-1}#Ju?K z&f)V~OwRXz0{Je)!I}jdY-V5gJ2=EpCI57=6xv3Su~D+C3EjHw;(VC*xtm*>vGY08 zj#in2Ev}?>;EC1TT^>M0vKXwNmqhd2wXO~5RU8o|hdY=)o^OfQWXnavdJ*JEAQx39 zdsP{m+ADjn<1`=WsL?)RV+}z`_5WI9RRk8S{k&FTZv29m|K{xbM1W}dL^EPdleVsx z`59z9jMsklaG}{^>9ZQs)1oPdUBJ<=$;nBJI;o;K zm7Wn4nGgM(c&$XGszp*%m`vYHh#H-UDoF`h_WN?r%7=VH;Yzc=4H%@H(yBAyqxn;j zR1n=TJ{l9N$x!H^6yCUS{|n5IE8Tq6f#0H-{;d{_d_bs@iXO}v_qSx6t83NVUU_$E zeBq(=9Xwe6@}S17q^W3nf#9@+Zfa?XFlIKuMNPCF2>_Yrf5VMMF-z;==WrbK{)u6W z!RUn`WNUa@Bzs#{;}#gI_-GDf_pjudo$@vmRBGuG*kxWrD~K=+u)6AC|nB9^D`<}?xebd>6O&Rn9x6N98ujxeEP26e4KWQ z$eR)MW3uEH!1caw9fyCUg%Fi9wfdo1tij0_Woq(egY!;S^r@=(Uis+g$9|)?+6-`9 zW?%OSWb=<9u;i2!2!hq@8RKADrVByGEAsp+oPj8b4DD}oNjs4*2v8uC&I?8`yd9OJ z$TPyR)-bDc%Z5@Ag0lH|_5TMoiA2P~5C_Dfa}y~M&SZ4}>Z9iFds(jSz{Fh6{g%h8 zN5oJF@%updVR+fWUfCnkbf7C<-1n-7OhYyU(VDT-eMTvDuFr>G5W=`Sl1iNwzq=XU zrz(c9B2MDx@InuPOK9xuNHEbg8|)52p%kHBydh8Ks*rwi|92k~q%)P^lK6zCd=bwc zo~rBePuD1j4sU`j7VI;sl!=5DLiJuFBtO9O!)KEg%)m`Zng;quJduwYo3TfXb5m*( zZ%a_A0PJ=UQdaBDHXDY*%gvjz5?1X>shynAIZKNp2ZwrSt--j;xGTKRq~ZR6!P>-i zY>|oq5^cC6iWs@q%}q_UfVcczo}8wS=&4|$;Y-UTK?Y)iWf;+x8&ha-?~=XV#YQx{ z{7Q65`db?zp`9H1FYOZ4Zh(`U+}B+QPowXZSTmg}7_ zmP42RwGiMZSk^aRd&-qQ9Lmp1M2N2M$Z6(aod#iYKR9*%QkYQepie)s8j%~WJzdm} zlpgo^Htv%DHUm~OoGPjLWgpaXm!|u$f(c?XU^+j))EEUinv7ywBd;_!L&{q2+gVsy z_B&4;?#{=D_kYJQ^9L9@YtPMfq`x#WUgf6o>7G^KQ#fup7LxO!+0TDY6U2dTiJf*O z<;Q0r=f>+MBks814#oKr6n}CJ4?fGq|EIdfD1%nbZjPT8nRt!#r*%FNC)icvt9ex< z1*<;(UhocVsmHV!;1O>}gXM2F>&#gkD2S4hE=!>{CmkBC!RBSwPb4$W199D(0^DH) zKAT{C8`>RZ^rb9fq29e?D5J%XOV^3N(YK}P?C|dLgf#;u79l$|`xOhj*Kl3}7q^&c z6Od|ad}5azD%xaUG$~N$v+D9mzLaw0;&aI=IZFMT>YM0rR~}m zIIih`tOz3iCRs*Qrur(m*X&;V5$g{>h-A-u@zNruf)2Asj-S~IW`Wo}oYCPP1SnXw zRkjDeL^`bN>&L#=SAKG2x+A|gZ@FH@4LYm0JS#`E8=UDQCPAS!_!AgJgxIfMf4n>H zAUrrvDVy7F`)DO?&PlyeH~qSgAN6DE#S=k}B7&}xv2fB~ZDy_G*&LW3M;w>=sV$y# zWubq3F+YcDqTF@dt$8iM2`FoCLgS=;Yfb+08OMv0%J^~@-rK)x(B(bY*0WN3vKm@R z2C`Z@8kO?qW9jMXAxM@E8Dh68uScn=J|&KAkVc!`V>j3IN-3nrBIOL$14xF@BH{)& zb++wCP`eY-^mVF#e(EY+YK;7inNVB;8eu`i_1zbHM1`7rJ3H0AJ5L&}JEC1Lx)rkf z^TMBY7UaG)vTzhVYzk;EGkhFOC4q59Fk(9NeO6f9H?j`9PB~&**8@nmX7T7FbBFA( z%|%^zAbwNfVH6)nN-4|cZQ+fSL%;aR{_b4x*ZpA7PXW_{@CKS->- zdN9=s?<)W)ETB3bOABguy|`*u?Imc2rR92R3HY+|bj;|ESnOaO;pfHSoR5%$&~U7T ziqtx>G8x;BbpY#w!oM+@!4b(!r8@v)&20R#Gw|izW(wqTGQqd}a>&-o&PopQ!edd| zDzj}OACGfGpCtT14IO|{V7WUXrLU$$+?hQdk?BMqKW;QsOG1vcw|h{N3CAqS&K^G$ zOYAJKOXK)q?vN|v>QeQ^iOPcgDD8VWxoc}lU=`;%7}OSo{*#3gI(saZ5Z895RQc{i zCfpiYdxrk~B@NI`_1Gxp<=lDSkHO*Lxz5gKURgX3qOt;D^aM`8zwz9N^&e$s=GvV= zF+z;wMa&=_SoGP_{SXaf^!Uv)y84EuLX6a#gSUIcC#nruSF7!jCfn zv%i1)MAOl-A2ZP)6z0|5e*8CCn!h_1a>82U(E(D%t8Gu-DA7m(F9`A4m7Iv_z7fpM zWHP&&-zVbZCoRcKvFfBoQ{M7u?n~?hV}ofH>umzRZ}bP`yP(vFiO;^e zwSGNhVXSpWx7pJa@vIAHjm1quGuWNRv0$Q&Cs1mzR!+^aj!Ty}jMCoi?FLqUn zl`BZ}6irzUnQz}vdZl~rI+)*Nks!EcJ8fC?S2+d$ptSqCDB2Xz3MC?RLQf5zLknQg z!E4zxqoW&Djd*j(Z-iRY3K~g!ta_N938h0H(5m0ImeFYp?5MTAz(7#VucC$&8Spu7 z2f91ncK(N|@sj!jaAC3~Xgl5);7NabAEc-{^)YdtUTZNBv1DeYm|)Vq!A1E?5Z2CGsWP7;`~*?uF4!8fWwc4Uxp=v{nfuZGREaf7%MGcq8E&Orm`>>uJf5OZOCy5A(^xZYig@Bh3< z8q!}CydHc>OMJ|=s5O%xZ@vlx znw;vGeG30bKo99;X()((Lk@sCT&;lcdM>VuWHg%jec_je;MAq=6fM$ z*Oj4rMbD$B@PcZzWrG4SW3S-PD~j^_Lx}2&!lDu@&eXG2t4}=H9sZL+8OcmN82t&u z6TEQ|*`L(1nB{uTpWOw4d(rC~xh6+4(aXB&f}dGsKI!^CKjTASk#4C-%u3~u>C^Ts z00*Fs(1svt50SY!`MMB5i5Bqam$aPz$ppbdh$KgnX7xukqn|H<+Kjh%)71D}WcrNZ z+hKRKeSJ;MYKk{}zuJ@4SFX?Epw6zXX5M9oTV2hQt(U`|jSJO2`*bbwW#;b`@=gX< zD$Fshw1e!Fs(+W(&`$ZXrfh9vEp%EGi9xL>U`X8cD--g>)4#_~vj#sX&9twIETUP3 zoy?nhQ!zz|?U`R4U1__ea> z{)Z5{J}2la5l>@M07E@gjL$vXB~}fXc6mmm(H>?CF+W-UZA;r%OG->o&qalyEt~$# zJi}~BOZ}f1^%CXJo43v+&sIXuOlGTQexr`xcGIwbVJvrmh+6r@MNL4&cs{%-H4hIy zY?}1Ve*IXIZ~AQqPm^-wW^u=gN5oo7y%9hkTin zhlN{`dv9U>Y*N3&h$HTMs01;gfrT66z zMSlPP-Czh&h?CRkVt`FVT?`C@V`2;=c*H~V#-604rj`d%(M51zIxB&-SsA8i^Tp~J ze@VOnKf&g`Z4Nmjw2V(u&zx=OX2PJC@nuzxr-#O{0|!ZLK8wjN?Twe1Ls{`CoBvsrhC}AAMwsFq=*vL7NE8a zm?rS}Ea21rHr(^_+{NgRA|B8GQADdfls%paB0xFx*-4xBn{jh;ZgX{cs(L5)E@O-M z_s_2~OI|M~{J`SnM#iC3+DrbSJF;vNGc_9=jD7{&y6BvWrdnaF{?@5${^}nbVeq{{ zzZlfLv*SxvSnjaCGqXnU(o%D}?cDU7yf|8lOlZ94cELi6?|`?3Mb}1P9hv~zb7FHf zl#SC@_l7HC%B8h5in#&t1hs2q;phzxXL%sBltecJxo$!P&QnYNErPS3QWDQJz$I=> z!H@F-fMxjGlQj~VR)pF4nx_Hum@fLJe=3qjfcw;FcI(bOoQufqT6!W@$EBbDt2657 zKb?TC5fb=-GhXQN!z6AAXn%%VpngOqD*5|x<-rGpBc?Hl7cl##eLMC#Y7?gzf*=ZN zsXrDjMHGc$>8)%VzJEH>iRMUk)31+mGS(A@(TIEu`$_>rxFy)w7zqa34m7h(a!=OU z%(=zd$jI|xVvpZLoI75ef#4UKJzo;!@jBxn+xu$a%3d@{=5yi?Ko*Ca6!{AyK?gR` zdbnP8_8G$3&vcrA8zIdwmraz2jf`NCZo!VOp*;h)fK$~lg?!&BJc#tuB2 zkx7Huas-i2N~)Zk2#GJ2OYtKjwD6^>)%rCiy)kOk+m6t_Ajr-9Prvs%Vr^4RGHU2G zsZi;-UqAhQ4PmSGAvhFYu1K4kn=5DgMunXenV4rG_I@e+b#vD7MhGV_+lxC3s3rXH zs-*^(l0$=j%1z5weWmng;6{gl^kdLzWdw@FE4vL*sj4($j*wtr_?0tUwPB z&W|H3HDAQcPJRZ&Gl$So(On2aw>WfN177d=I%UB0;2e?>jQQbP4hCwpG_o}=EQ zFu#a3tI(`|Y3m`@X^B<%uw&p&&*!cWDTRkWK9fB6I0E3U_}_W6flxxfzy0|pfNTDp zZK~7d;*OeW=|%rfHuZF|@UO_jfiZSglY0YJIM(9mP)Sg(kxa%w;hJ?xzC5>%9-&qBcqAfpxP4!}nV^(6$86G#)clKuq zKLrl@(H+oPM7@i`3FI3pDv(z2Pe$QGuMR{xuwpA_^#1v9!tlsVfJ8DO{8BydrfL7m zP20p1)vtQ2Z+A^X50ANf&e~02yM58_iyIXXh8#bf{;6$}Xudhm;1X;8r`G6sHLQNf z4D*wO5(a^n_~Zot$V{P^ZnvqUg99?Kuc4r(Mj+lrR!*)w^WYbf4Tc!7{Jl$z4+^^T z_*7q^Dz;%rd-UuUq@bz^;C+3Tk*g2iRlkfUA{o{=8CwUND5UHPPmuk3sjRYmpaQ0h z%30m0X@T3&W^IH#l6F%R}3OIDhHre zZ*Z%2kE1@dN*<9o;l?(|27Wa_H>G3s5OBL)x1gG~0v3sSs5kh@5G1S; zho?>>ptJFOrH+HN>R3c~L;hkq$CQ`|hcGI`68hDIA*D(y91Xy0#Px^+)k@PCY=?Hz zb*7WCidRiuID+v@@-X#A>0BM)ds)*6NtK7cL=ykxpgI5U)S<$% zfsMJr0`k^Ilg#IF9IGeJKsnb}-?_!Y+%7VbQI4LXqrCt`pdJ`?#8b#FbC2?vn~5qL zIy>{?gVQFf5;D1PSldnb?>WY7$|l^=K{hr+@2y9$l9Ec7hvb2~6l#@TJce;7WOw*TCxo}*{#^b;9;=$Az3?bd$HN7#nRbXZz^LWp;d zJ#9>&GLwOra6wfar`C}80UbmuX!-L@|9TWa1%Cl>=0c9V?qd=k^kIL0_iZQv{o9TXX^Y+2 z@$>IIeF+H^M2nizDNFO_p+AB$To4jSc)4tQ$v;wnH2KgRlD%sY73OokZRim->(7FD z*CVSETKy9*PGd4`*kiFK;Z8=k=8wJmqp;TwWHXNVC7-ltVDP&hBg-%gaMuxikbF);d5& zaQLfli}3Y_JHs<8#0)NJEp~Ax|M_DG35utnl$B&ozMBro<~S=kFTsJmpQ)~?S&er6 zZso^JpD;eZ@2r)W(sh8BAF9e7QAhuZOS^y9<=ce*1tX4N=c> zicN2ARVEBB8+Z$j_C;~FM$Q>HzS-iib3*hBI9tWDH3q7Fms(XLNGc& zUAR0Q`5FV=o6Ztv-vsA;8TpHe`^yWSS?$)d9(8^A%R$HYGo9C&&IXU>Gs7Gf$QNM*SS`G8PW zoIqBBh&fQjOwQ~&`$Dh>T@g3M=q$WlD>KJWZJR7jWmFcfe0y=0jM9*VQY1J!JuX+Q z1x|CBlror_o9;2hVMf-Y!+p-{%Xzi9F>Iv7j;|%;(BH4jyJTaV$Gp8(-kQR&B&A4qciK+a~F*JT#j~N&crL_GKY4L#W07iUAN*HJuyUDdd*^K z6*!NZ6G?3)jeJM{-r;O>Fp)7jGO}xQ4n>Z{Mr4rz%-R*);l4mUnVHwBm+RNmFsPsp3ovp7hq!*lH$uI;O}dWEEsb&&p^1a> z)Ke)bB0XWBcSfmwC~rI;^6t~eNmM1h+aAq6=X^ZnL^kC!LsW|byKPn;29%Dl1H#?g zfpX>b?SHHMOdy$?jl`Wa@5enYu7a(pXr>%Y42&^If!X1+aFv*NVlJ_@E#d2uu5-eV z)jrMYFTivM?Pqno(Yke7TK-dvwuiU3cb`Jd)lz~?@tMW@pE;C`Eay*Uk4S#kLMr5K z^nrT_`#yM$ob9O0qoR0--ycgW>H?|qFk$QhJvRk6(2vaDzNP*R)`FpF5gkf%rR>-(@5 zf{b3pjf0$m}j-`|GL2KkeVN{;=>I&<)dNI*~S zl*zsoGh;3JB#Ktq`_xBe{=XFI2Z|*Dx_+q!`*KPh9VG|_*8K30I6@AtUU|$eG!^9v zAUeegbbjSpiK4kv_;sAq_ojcD+0rUJPmO5Ll-uTZ?~mR8%fWaCqLksApEa+T8d+Zp z9or(Q2ZhsU3Jcd8k!twbDG58BYOv!DiMhue>bArSN6{%UGc#M5;D5($)zui|u$4X= zlcElh?Q6E6F_aDye}^_}OJD`yv{k#QaIw%V(J~NC>jNF#9=(#;PL`e&+qkL^C}YfF zxSj}syo45)uqrPMwg@b~YUwxon(CWy$qu@LLX!wumc%j{EPI zSKz$7uRFVYdnf#dH~Cuu-BmGCxU9h&5|(eQJF2S*X6X_P)C{!uje$U*=FU5dFV5@= z^kVV#NpE~TAEfFX&TMa2m6mdb4t)j)sb^ji<|y(m0}`E~hNo|yl7C$hJ*KSMxWCbR zo$vsME42u`_lErIf~&v(kE&)9UV|HkRUKggGg$74|F6QA5)17Na6BBFvk#e{t+)w z9%5$!i!RcPScW$}>AsRUoc99%68Q^q>C^GP^>=z3h+FL?UXiW8_|JpRSdh6DeS(;O z646*`^+$c@8>2Fup4Ssi|8#&7tZ*6T$KLA-9fVD1;k-O8ykE2+gU4*#l!lziu^hw7 zC+;cS=9i|``vKaDCr(L;HddZq*-!ID&bE1`=783Z4GEY|&Koag8g+!d z9-Id|ln=Y3ZJK^n@qtrpc}?$cQ>|%JF>o12t`Ddngkq#t-IdI^tc|ImO4ds(i2PPeG9$iO}y_I+?t^MTnvxmKeQ{z7ii71dn8{5hbnY%oKtr~`ypRRE3D)zTz@0NCJr zO{6PPa_GN*e7MnQ9PfSRi8V~pC09bzy^DPT`lYq>Pp}u2+p3KUMbShLlG2gb<1j`K z6Jur&Ij$W}((ur=f%Y7(b&0EZUUALo829*d>~3y9CNByS z)C)I!BBWutI+&yMa~(`m;M6{|RV;o;XKfjgtf!tB@~FymnS2gjWKNZjh>FUKWmUrX zt?G2wumtC*`}C~rW;;82)qO=J*i0tiPula3*hk6S*!Lje=BYv|(fq}_ zWFyT|O~gAc4;0g#exo!*h;E+A0HvN%qEB{H#?Du*xSaF}d%u#TXMOiB^3*f!wdRQ3 ze3?&+LH;b+Q7CVfYJJKU&EB9&Zi6jQ+oa~9;adv=bjI*$s`Wex5BugCLl%WuR=^rP zj_0~=BSN$8T#l^cx`UpR=AU_2Fx72(`voUqY7Ts*_iTo6+M+4N)<;##Gc$LR`3-J< z1;AK(ZmM^8r1Om>lH=71>7DO1O%0 zo&gPhp;QHE-#wgd4R`3N3>F(paaq~lG&FhhfFtEDGALgtFT-&K0uN!U3B7@K7JW>^ z7MSaW{_sINpR}PgU_$fe3tPBhnSt~jBm*8{9C`)eE<5W&+tdGB{D`35_+|NqU$u4d zu}a&jV|r%o3u<~;XuYM7sOL9vSVPU&cH6tf(II|L(jiWh8r?2e3g*sliA$WFg`vRB z>;=eLRnq!vjop!Zqbeocl8$t@o>&tF`R*wyj1&JT@T1h?+J&OM;IhR`Xy^k9DKjg6DeSA3c(85WIo!po zFRo6^2O?Lo+T_xf)Dg_%3ai3{zwP&xf6#U{%y|rr@%}-- z)RGXzAe0)#Al^+{9)pZG(0AJ@q+Q)8!hZOqVpVXtVU4pT zs6@;ggx&zN)Y8_uzWw)tjTZz-Y37i|sS0NEU$OtKi-qrjwL~* zL2L|?`rQX~5OA3MRPO*;0=?*99oe3xOfB9B5NGnuQKq2Kk?FqQ;(dTsKWt$%4IStZ zte#g?Vm48XZG(-N=`r4(Wm|yck{E;K*H-10YbiH3Jsquk^8h8h`sCu~L{`qgA38s{e>}edBOFv8TF0IY4yPQ? zl}|9LH1+g8?aj9k&--|iwH9|`kb-Vr%3_`iNICoU|2gYieycVz6vw~)x*rrAfV4Fe zgAI)t9v_$(N5shoydLJXeo(w$qrsHzSorCNx?HL+^3APjP{4GwWD!#fM%rVh!rPyH zZGsgf$A{N6hVrcy9k4wpY+|%j(0}ogTsM5!jhTZZi~Kta;1`UpA!$e{A%C1Y`Qx}6 z&2zvtCy@_^sEa(WOfrPsf#M}ch+AOSG9+AflO zra6|JWpj7}eIBVq`=0swlI&N3knIi_FSYthxefkDxn}JLa@grq$=ptFHm2Wp@XX24 zSNl*_R-?0Vl%s+QC_%h9@9Y>Gb2K<9+SLl{Sb8N_VI)*3P)iya-lQ!sPNKEfi)w6f zzx*&Ur{XT~YcV{bWlKqM!;`+zs^%G58mqNMO4z67+np@M=0xRdU6UHWxFTP3E|*JJ zGl1~$1DxFD4d4FXj=~TxTx?4bB(WKpS|GeGS13kbBgMB`Wqy{6*V>?g`r$ZFU0cHhJ*v zUzh4O#M4WLSMDvCc()Z(t6Sto=05N$r3%Ij`5a3MJFdUoWk6I2%xq?~HofA%il>z7 zG^cW8Io!e-9*FW#5$kbMhSK4FwMV(Oe&v3=Eg7sdnWCGrNbjg6d{Zq4TW)uY-frzV z>8nIdo$r`sblM)DoJd=gJAJ<#kno@@j|s79sP4wrK&lSCI?7vme7Hgi_Ei80iGb;l zN+MT%ALf=ix8Co)kLwb&{58prOM_N7_6q5c;}BC*g#hp?B@p08;X;OI@xySbW-%}j z^#hq~fNMp=Vs}ADO0LAt(z#c!m43psAorZFf$w<_A8hsh=4|Jb96lkYm?q-Xc=2I3 zf9f4SBL$h2&LGL|f5A8~5XBCEBz_miON#0R4?pQQ@Az1iT zVM1;-C}<~uN84u78qiDzQrLu~f$0LemCsPNzxVC=ONq;H=P3M_zV~ZeI|R$F*kCq$ zJVxAW?PuvMRLRed1$7%dxEGqdMF+(*-s7H)?_3v5jm)@0*Yrt~OTd$AklV2F>Cy_% zJHnPn^`LS+Pa3y)D#ch*xk?HO!+p(*{zM)!F8Q_>IvctH!zKfGhmdDJ$jFa&zSrJ~ z0(kiNU{&!S1Sm*Q!gS`AV-A_mZ7Ir3tuGz6Mn!z27aq>LwsxW)FGHPEaG)Q%RZm4+ zR?U;q$Z7}-XmtEtt;x1g%u4_%&M-rpo7iut3jD2Nru^p?zPR>jBOJ4*?zx^~S->un=D73JUYA$#}H52+G4%mjH zrG1`pLaTDLX57pjt?B=8iwQVm@Q>&dgBQi3i5jS_7??cI{d;${$nh?oAbg{af8 z_bz>T_vmB(O~l^F*_j<5Trr*_0m$FP94_bdK}_25@I!r&7Yxe4gnHCZEL9N(*;oNn z%I4ovf`9Y|_|4oy?Z`z6H2biKC9n;&^khjnuF-hqz?#tBD(|Q1U|c}S5`^EK8>t*T z4f-&AXZ4l;HRJjkmHyd!oy+I(;;Ea5z&q7Dlz}bEcCQtL>;IV07UhkENG0n!sp~+A z^ey07TfzX(szF8S38*&bP9D56k5MUc!hEZdFhLg<3#zPBDiQlReDN4HSGu4WbHLUD zXLE)?{o$~prl0r*ANEu2g-v-wKQcE&EPz;PI{$QscX!5GsNW)1!j8Wfo*e035BFL8 z)IEHuS~OJmZzcu)W3@VlRve!OioIY-V>xmD$Na4_+YDnqf2)ZC#$fM z`@ovAIE$@Mo*eR2f;@G6CP%N?OUV1-W^3p1KI4&YSXNGU9Kns0PTb7~Ewwfub1+^L zk63DZUJWgrAKciDci~cwCa23!m+2`Qhen}tB)He$5{ZNgFmp_S=%je5B}U~dOQ@Lyt(K-4gQfK-3sABm zUBFhSr{~xjiGSSV@|w8CY)s)$zuB2PjV^te%YX4Lsnq)L?vZe<_sSv1oncxITUS*0 zC8vQtzBgfPJ$>VoeQ9Ycns3I;*OkdI>Jc?G_lurzQM0uLm-;z8sLV0(Tu%Lr549eC zDtMNIUPwet=t(T0jhWq2?axx3x*x(P11mGvXyR3ht%JjeY{sfb*7SdpLw=k_a*4Z2 z7XZ@yojD%yaf1lfD|Fr>9OVGm*v`(5{cO&oeANVIdARD`S-AfF zQ#$eZ;hzHO^cZBxmL(Ttj7Z6EX6l7L0L8~|Zi~vKTj@76hP|O42@ROh4hw2X< zd1g=yd?~&kJ$uf=IU~CV>j(GBR5NU1@|JX@fLmq7J^Zuov52&9QmT|duM4*GMWI}v z*Ef6mkHX#vrktVtVMEb8@NOm4O`J-eK0*6GTy^HjpQM9dLRWR^=&qDe$Yqx|CFC$S zMZhj|kmhZuQaU!^ZOjf%7Lv9U=LYHW%Yc60IqGj=15%KCl*NtJO!sOZ`EVz5;W-sM zIjdx!Q%2o~%OdBiP1SpSjyz^L%rVvsIQcXuQto~|#&3>QU-d{+%XOCIv=pTSR7k<7 z?~B2_X6LhB$9l)dBIwbr`p)HK+xb0&Pz7`q6NGM?JPzXQ8qHO&p?)zjyCAaDy=2Em zJv&t$#oP3)Wb^cukCBihb{STQo4m4TFs^|F?_rf&OUY>O)fTiv#3d2cJm!UkJ7TfB zJmvBS(opO8@_<2WYd@=Eq$%F$+OHJ1Rv(!EKnD!@`VXr|fdp*f!v*SA^$rIZ{WaM$ z-xuG9_7LW6@r+BBU6#`CHV0*B*#tl|0|~WW+4oOXxDobzIr(}hBv!Mhw6TorxD~Ho zbZdNw?-tz})S3l?uA#d4#K*P@kE5^=PY*qESFww<>DyU(F!=szQq+t8h2NrXPI%`* zLmE<;yf?{K1<2SVTpZ;rW{ z&LXWjStW(M&#*rL#RE~3v%<#d z;`#Z9{rhx``Cs_%8=99m(Kze(%C~bjBD^VaDuX+>ZJ58fCliO5-7rTmcA6vrE&|jU zla?Q?&cVp|&1%#77*$`2MMkBuN2V>ezk+wx&! z!BkDg$dCgAYFT}W{3uDkjN4JM;38bHlKeCwr{ zn3WOsVTa$+{TDPlqk(cK_w*@4^Q}|kHJrPwT*~1kkp=lZ7MtZMfz+COs|WaMv^k_U zd%Xt3_W60*d~=R&Zei7E&r}CytF3H)j!ZPx*Q8jK|1_EA*L>R5{q9zQEjAaU2tzUT z;wjU?f-{wOvVgq!Wjal3GtCE1d7;=Tf#WCl6Z}*V5ByQ3665JX!wjEWi(MLeMo+(@ z(ZWkz24H}etQw*K@egjl_p&lImTlyeylTQjosH#hwFX6+C(v6=C01V=^K%nd5SO4;-%K4eKn(b9gT^W zX7aGfk6H?OeDYT3;8VAg@3=@Gv;aDm_B87&KOc#Ew%$+-Xz2?CT7cYE+JgmoB^37k zQ8BY4=cvsCdgWAtFbNrQ_uP!A#GSe5gj`7&iv5HcK8X>gjD&z{FfCA$vlPHjT6?eq z{PdlO%Q|`p)V16d(Tj)xIX~y;iai%a``& zqZnyuFAQcnqj)HEsIohoEZw#+RD5>fXaKt{fRl(1#w&@5kjD1w4ft7`h0J<{ zjjv4kHeKg7nkFNPbBHp1{zq^`b_PX5RMqs0a%Q9w6k{W!r@U&2sv(w59}0gW6K^t? z0!C$@ckbY!IZn7HQVBK8B>v|dQHW@hDDrxSi2XY;E4B+Sa5ZZq4H((dplo_?1$zQS z@A0eRycUKacjdL*HMGe8nZTSzB7X~;AaMFpuJ!WZVSqFA!?Ru!BI`okv2ZjDbjhA5 zMSl)hA(xF`yX8-!0YhWlw_Llpen{;_CcJJ-yiI6B4-{e8=4E+ju)%HEmAT zc|~Y>XGd_7p_wi_Ft9+-h~R7Kud(y4hE+>yF$sbvLq9{KxQ16+zrQk8M~9veB#&>2 z`aPc?mo#Rz2^sTEOZ-W+bRFCC0i)W3a1=H8A$A%*p*Q4X*^u}=T`=ZgaYOyqj=!>q zesELuIsEqj@!=4ZIRbO?S11Y6n1r3OnFZnxFZqYJQOWDlwUAsfY)HxZGm|c4V3Ap3Y<0?o82^o*Xk@H%~i6R3IsmAPSu4suin60-y zxc$EZr16YY^wm9uecVL&HA|4cqZJgDSc4Hv0OsX{QLYnJI(AbmcjKA%d#C-+8HO!) zFBC3Z^6MtZcS@=T&=?P_4-IIwD`cup509`#QrW zbyL=Mlm!KgZ|GLd`*I)K#vSOl$9VXwc#jC!5h^GMZYtqf=vJ#Q^JTO$FVj&B6@0$e zk>UMYRwC^g(y!4Un#fArb4Xjc4o)3K*-Q9L(8`J4UJWQit1ATrmoRB0ceYA9e~bj; zXE8wJk+eROHu+Sz0t+7)8zq1G;|unOtJ zZ8&~RMD|Y#=;QrnH^}p&Y-OANy(JBMN8q;%*zu)5kP~rHQ%Zm}*RS^rjCnm2Jw_`Q zql=uJ9`Kw$vFCJdD?!3znRb)#Lv(g)wY+>%OL81HFJl)&3F8MP%)>bSB7T_y^z#MU ziGua?#_>DI<@fYtlUdX+PZ_I{L|t}2Cnu-Bzp~YNcg0n4o$q_QrI81+c)+68KnBZS zh+~5YIs$g{5lT($(DTBIN_tH;?fT@aiC1EnzeL?nxmsb~ z(7{b_ET;hDo~YcF%oTg-skRW_0}D)hc@~>P`*OccY+G9GoP{~zlYHF73{2k8cNjMM7b9xR?640WR*+ z=xlnrar?@vVO};=#e0f!U`ud#11YOwCo&fOXA-1%9~!OWvCstvbqstHD8trZ=;c|W zN-#bMNu@jOvNi=i@o)%g!Sys>`h)VeTLmxK09lQRLAZPRtp6aN$tZ~3k_6_&G!;66 ztH`*iMWv#fPH1By)Ll=I^oN_z~5pBH+dPO=O zS?!82TUfBN>~|1&#q-J_PJV9Z~k2eJ9 z)MtQ--cmw9LCV2A@2tE&u)G(hr+qzZUmYoqrVMn5Y+W^q^ z^t}qOsG#lj!FZeH4^~rNjB=7!E_s#em)poD;Ebr4q3E8AgwAH)f3WyQaRJ zhriqjzA~6z-Oew}^Tk&>By)5b7-GA`vdd(UY|O%~rCAjZ*~qKUWL%sWKA!z@K*6A? zo-D_g%k1T_XTwpxVpk$?_|l^{mPA5ES$0K3kK?_r(x_C&POpLf!%qK1&*-lJ+BJ(% zkDzQb1O$|XfL!AVGJM35Y_heI5i?d)UO1pEpK2?ig6wJd`7YS2^qOMpXTA6!`~KKA z>>zOh5)816Ij%V$vW2mx>$mY<>JlVv*R^5J+IO5as>Bzc!>U#6%`(ys=cgOmQ2T7= z3W6sWuZa8_>Avr8rbW5Jp0sj{ant*_94)m_A`L%xc@rNX|EX-phn@Lo0b&lf_gxxq<+Xj_te$dWlffBUtT|Cu zbBI|hH+((n8S?s0osdobTi>avOTYYP)dw4a4dut;f6M#;aBDTH7U;NPN2+tWNcL#` zt02iGJ$084lC2y_$@;ej647-OwG^K&{m;VVFF5=w2bu-<(el6@< zr>CBzN3-*37>&@O!^gutmae;8-j=3w03x-(3SaXL!AyES_n&sJX+>=yF*l%fb#+jV8Pb{!(*{wd8(xfKXydc^ptUW(`Q}_Y|Lr$`weA3I9^)(6XppB` z>Nx;H2fjbgd~g=v`#25u_Xg0rNSx83fi!|?1(vfhsS)rk>bilTuB-XeJG&t`X_yCS z^-~v*ExvsDGH%Kqt)Gzh@n@f9H*5f0H;c{TZ&=#e?lfE0D(;4gZc`c8!l>KKOaCYZ z$^BE05i`%#h-aGWWkSGP`cuTBE5)RliAU*Gp`;~N8{WY;o?gxF0#!LBoxnm6DR`H4F#3C-f z>taye*bdF4kBSWQvE1@`H%mrd)S--dqOIre-h{0TmLu}BhXfsSIkIvh=PV7J*cVzD zA=BJX{fX=x?d&c#iX}MBpxeO|8Ok29-^5s1prnQ26k*=8r zd4scUVj0ap6gf5zg)puraK-JTW=G~}olHO4kN1q1X=llEzw)>7t!tR`QSK5a-i3DV zjd1nMy4PXnP+;2uZ3`Wz1P8mP^w_B#h@PaRW-E6pdur}*c3ApcT={NEVF!Lj0sWI1 zxwd?kJu|!%n%dCV?jH-kmbxu_j7Ib!8ro-QR4-q=6dKQmfFYNvUCMvPiD8e}NOtkk z#q^8+w2+P;KhE;!XkO|J2Ali4pUK0 z4SY8XEjzbn3Ol}c?}aA%k#!KbIKE=ouz_=bTES1PH!fVverg3Lj`L4G`IHmIMoB*g zd5m4woLl7v)uw09nxh*I%WW688ZvZbuJ|> zARs_oxhZ$xeX*x`@pt`6&|v*nML&MaYYO<&&6xnB*pTxm_`hYbK>5S63GCummCt&@ zZ~TkED%Ul)S*drXNfayR8HKds*1g0(*}qwph6dwE~*C78{8 zP?|zB`c$+>&^G5G7&JdK&d>6Dx|H+2V9&TkhMKl=!S|(gp}!z{bu|NX^DLJu6ee$< zF+JPWK2<=ptA7O?Yu@I4-^l=-!+h2ODlYWMTYhJr2Hz`n6s#^$9_bzR;JI}ZOj}mz zlqUt!ECViGi!=;RIe>A&Zh+V5H>BvhBw&1LV;{8Nh3w;=?`n(h zbLr(_KtV_D2QA?NK;BZ6`g4a+VA}yLy(*J}ekzka#8UjTCy$w3&7?Bf zG-TP(jx}5ernN#D2bRTJDXo!ejb{{mbT?I4-k7uo2cz_$2h~E z&3fd+c=n_#XW37mJPkYDdv|U}+4t@1jS0y)G`0fq7MP6rz^16ChYQT7JD4XdW6EIp zZ(@gd6aTu8AKXv#Xw+Id0N62WFTi$lOGj@An(=4H2J5Ww)rNMCUHF=jI8hrK=+Az6 z>GP|!(V_x{TC54=xjZUa@F7F3!^yCg?UydI4axKAWcN{7~v|DAj5ZzXa0^Od1}am=7iQ$e6wHFvu0BSg(0LoxJ3FEyu)O*)M=iWx-XVQK<~< z8Ell(#h4POq@|lY;|iRmBX338DoK3D)iAZcjsg3+?^&k;TrF?JV^g)@UD<0Hb&+Ym zlt%mT)MI~C8|}Mmq-EKnh$c{n9YcZb2efpW08*SNU?-bAd^mQz-?*E1-#b_wtTLAP z(o8ygR30nMcX!lxg@a5(aOr>&oV$FZ-~dtPX8_2uiNxhl-|OU_gQ#)pL=4P1gpnH4 zTbLYZulFZ}<}Hp17BD(U-}~_607x$9OE1|$Ax)&mpjWV}F+JcR793kE-8(#x0p`-i zQMNLJ22xo-yEr!;%;e6Uk=TG{9V~aLPaNw>2Kv*ze{VX4-`SftgLy8q#Qu13o-%$J zCo8#0Mt`9>Zd=r^(b5*cyalEs)Ah8lyX;KA4ItJIcW`W+{y-h7Ww0I9s6V1G3LLc( zEx|AsLKFSy(c^Sv@=(}A%Z#P1?-^_>FWW}p&95JkTm9;rr$9B5s=*|XS|3=B816e> zw26PgPwkcLr`B3y6Gns{9fLNC+i6~D)EWY_7H>H?0f7xq{_Uc!zTnPZ+X3hPq z3R(83koBV|xikuEe`FwKa&e#E`L?BofAOPe`(ic0hw>0WocylzYd^i8KaG~t_jSj< zC%U=PrHK{{t$GsEvq`_A~<#_ z9G5c9v90#e-||{lqihF3=C6MBs{o8$Y+RIPCal?!Ji-acbOZ)g0lr@?X=)2vOzy)aKp(aP!SF#WJ#w%&|`E1n3 ziG%w&s-}wkGz0Qgt6l8~OiBAxN2!ka9psY? z+@4;1ZZeykgP~lSS08RU7X2WzNc9IX|gUEm1a>F3xnb-;{Tu_J`eUZI(ip`oE&rc4cNT%SFCk}h7j zkZ!2`H@M*YGa7XoW;PTM#eD>H)*Hh)dAL27?bEA{V$2`vKH(bVE0;l|`- z>gwZ!CTOAvG0@`iS^kvYQO|O72YyQ9b~F#GFyaN;OAW1z-HmSwrgk(LAe(R+A$b%! zYG+qLPPQV-z&gBw0-H6d>*UJaW>c^EZbIe#>h72IAf?S`E^eSQMJ z(oRU#Q0b@kihgSGiL0MnPa0F0dStGJip_p89-7kLg0BJ|FUOvmC*8#v*1r)uAm7o$lC&xo4&lpNCe-@AVe^lCu-dA30IDn z`Jv^a&&&7d_X4>GtU3v{CglN?bAd8P8Hp)qjPg;IoDLrqfAHH@1T}P7+qqFc%j$}g zG_lUPu9k_?@LPIkO*cFeprqNC{X+lK0`~Lg&j;Z0UA2|g&ooPX^K;e9JrH@7CWAWL z!U=$&b`UV9wpEWe#`Ti?MXP8U{#LGN&Lpq(SvPx92HAwFt*+rIyxSwV)r<$|=APv; z9|5$hg8t6S?kXd4omDjH_u0+N@_gf44>hW#F6L)k+i;F6?+wWs(5w|z-qA0K?=$0R zr>mJjP?NZhErZXbv$V9$EuUce;k^g3q4pq?pB6W3BK;QOv-j`bk20xgHBC30s}xdG z>#Bn?w}*TTYG#$kn)A7OrkoYzT1M;O#KP55H)ap)8$gcoEXonl>pwe)0y_ZE(otP@ zqqEwHoIT0-?N|nxumh`2qjG)+i1iEaZ!s@3`_~Q*L}!1?FgXXIv-5AiJs&eweZzkE z@n@WpHi;R)crfxj)2{$L1G+E>hH_qh!E|8$^gO`mK`@eskM2jhPZ)61&};y(>cBV1 zOcWwTxD-JnQ}T2$H+L;@^sdW4SR7@Nf?9n)Y@lE!4qSzn4A}v098;HhMZGvW)B%47 z*It@J$Ta%cFmw97Q|TaORa0TR3TR{bl6<8@S7%SOZJND{-E@Dtavj%TFg6*aePI09 zsj&6Md)KZH(rFRlq}Kvzr9GG0^4{J)TtY#2Yv`Y7w=6JhyV8!ko&dYJ0(k`G3fLY_ zusj+!0w3*6_5@i17{|wEKefO8?QcVqgqTksfBZ4NrAKI2gfj2P_zZBibp*0Y$%6!m zE>R0i%s-Zq9nT19!HKq=dMnWs%6IIuf+?4cEoZ(mNV1r}?5^@vc>JJVVDwUF8>(+)wCD{MDz+zikpp9}slyL(Ce zv_GlIl-~+GH8sm13qRqQd5w&;24Is%TTbPp<#Q9RJlpcQL01}^zWm!4^9HNcm_R6F zonTuY`-nkaT$b!@FUz1@*5*~ygc-o3@WfB(MFvie-WthqwSimKnKNp&JGK-a`# z0+TlSKi#bZyyH+DYK~C{X6$UjtG3Ep(|nb zJOVVz0^1L0^C*NE?s!EY;G=YifsuDCYHu_X?r>zlg{k_kazJ2K&Hr}#41(Oj{e((0=gS0o)10 z&=bHRK=7S=_fs#99mlgm@OKf1MXajj7n3j@YjdDnX{cURT=|6Yo>o55B?OW+FW&_&1O>zwHU;Xlz zxEDJb%ZV}#0j)D{Hy+3=ySlRdS0@KMTt$<$u=syN@Ly+1$|b9xfA*JbWIKe(ZJtG2 zG(#melx@2r$Nb4ZJ30p?~ z(cOcVxj5^;Usk%RLqYlorGGWQ9w0W_hPzc8`DtSU@xrTtOZy5wmsj;uD^PLLa{I=u zyvz>}uuVVt=;IKYW+zB#1u$-9uunN^1SA5+(Abf$nmGls_Ns1v5$rheblEnJ+a{L$ zN^s)RubY3KW8)edn&_YQYcBz>+CBlZX?xGr2x*~~(Kv!9flGj2o(p7*W7^tSdXS27 zU2e{k->k`0BPP#q6Qv-oj2mr#ty5^m3*y-#B8Gwio-7pwNCF!*lWLQ#UyM=5EB|bB zwcas#uwKwy8Ko9>hE*AXn-d55VS_yjo^DrwpY_Sw+ze0$0JJWN3ouPnrGs=6e9o|x zUO>P0q4L}Yvcj^d2$JSDyYH(|D63?eK6x*<5&02EkS)Iv^tz-zJUqm2`^VErO91Ue zTrH*`T|g`!6QH_p!UJK3up>W+*?=cpsxh`-Sx?*D)e7TjQ!Z%s68PHhqHFT!>J|1+ z+`0t`=7^`4o;>M_G-!7zsHDT7b>JHEbA%DJ_nwR*%sya%Q7_`lr1egq)?te8BO^o1icf_$YMhz4g3EN~ z=a)iwtpR8S_1)cl)-1Ko+>Q4B(>LeSLjbXiQcbTO9&G#Wz83*)6l@p$u`TVto(h+l zXe)w>?OOV9v=|K*Z3%rPa2%?TyZbJx@!l`0@W#ID01Mt!E#KPDJMmK++BM#B zod5dQzYdptUw!peyt~T1vmbtl_k*$6tQqNSG06%KD3d3Jx0x6#fD)wSoG$ zZo{5YASvJ!yr{WyT&msD=20KXzHfTt02yrOTm_H?+K5iqa#sA>8RHlUG_;!LAxN!gLIroNGpSRgr*z*E{z1e(!#n6npGSa z-%B7JeGQLyRFOjnR4de42}hT=9$e1aC=3Y z+CD}U02)oeEJ&6Hr%s&;ZKj9un5S_|`K`M^+%iZH>7>@#vI}-iR+*yaR?sTQl`jgC z7XasTvudFqN4@R|L@`0MA80!)y&QX9Rz_N>Nw!{^@=06M*UZCwZ5x9V0)zLQJS|cV z0km|q{9e}G_hTYK{|i9PB*HwUhxL*kzE_8xMS*Pxw5#rB2R~VmhTl1Xs*jCE@1Ho5 z?Q@#gj$eQ2CIW~er^F<*$3$n z8$3MyYigk-br0@i1I0Lu^Z+>6*(s9*^7mS7bj4Zo&)4uvi#B*|O@@U#l4S-cLa7U5 ze{Eq~R-dB@M!Yt#=W11munf5}4|DQ}TsDp^(n8qN@^a#p)YHC_rXJno=-wOY>ZNlm zsn4V?mJtt697YTE2__ULu!B2{vNzjmtzvU#aGR4`1&ZdeWpOAC&Mv2;XFpDt@8Y=u zjlkn6HV<66lqNVfcVav*muj;X02n4M6La=1Lt2u9ZEGkSdxAStJN+ptoLnLW`e2gL z3T^M*=7?jigNH_Q`RmM(N|6qFW>;OWsH_b6-W@f)g-(0$iMz%W+4{2fL zfd$;uWglUjySrO6ph!o-EYR>Yz7kkU_2C+yUUrnMovzAX-rMx47OoqunZj65B$&{y zP>>^VXuy2c?y1RJ#%BJ`wHv8riKW{2PRFwCJ~oZ6z;j>*X$gR_hBpFzPiyqO0zcB! zNC7_v81^6u0fTuhlZPue(`>4l1%#<>RD&tiR_OCn?5gh=art@?K%6~52*3ohF0HG@ zD;hc{^8ye7%{14>!4~++o>x5tdz-f60*%#8UR@4e%y$%KVuxFWnfs26*^ANFoWzd%ZW(3d(OD^-jAoR>q?YG~C=HvYNZ=(}Ss{`z^9>Ok2;j*@twXWG!i8f~r zx-wuKATF7>ti!;G9I64rZzNmX@vr$R=o~=4Z+Waw3>?$r-8*{70=+Ow!v7rcrp8_ z4FLx)`}EUKQy)vbF~Eo=kZ5Pj7>rv4RowWAe-wsA3+Q-u{K{M8JpzyMk+B%#f)_70 z0o})So?aW|6Y?C*C?+N*Vky>Q$jj7DDflm3xeR~F%eexxEOfJJmEd3>AYhQZCfFn3 zAr68=&B)BhcZ=4~GFo4?!j6yeaoiAcw6Nnv?V@pfUmCfK-FSsR{zTIJS<%$k<$Ux$ zAh3KEN(PtM<>L(imJ@`cAysRsR?v7VF$7NnQnlNzZs}phI$3{}6`|;$O>A)Ob)~oU z^qDk~cc>k|a^(uw<KFz#)Z{PhU157}Z5Ruk_#|LJf3CfY+cVfJdv<`?_0^!WPgbD`l>Tkrk}Jyz(o z;Oqw@QLt(5b&V_D_YY|{2sUY5(UIDYtp=^nD!8�L zj)66IUqfVpZOB^Q_2}&!k4HYPLcDK!+$6bpKfmBasYv(o_TK+&rsuZQHrk@fxhSTz z;nG!xGji>89MF?=VjE8<;nCbQmYv9^+{wWX?TkCX3*Q}3x+Z(?^y#q6xxAPUQuw!j z{~TMMWe!Yu5(C=-?y`p+S}#V77_o2v!;l z*^PvyJlom+FVsekQbN!;Yg=u%yK2)BC}}8RYIZR`96Wv)WgcFucTV$ z1sQ0@GB0mCi7de90Dx8ipg?!ijKIewRwrND66SF)|8Nr)0vev%T!zQ2sJM)-`y>^| zYRcr$f)G!2Y^R>`Fs8zlaL3LRu%WqupiFRJ83n`gCW9skF3UUq1snoIWq_`l0#q_N z)N_dWZgsHi(ndRCy^{!Hq@PC{AJ#mBIt!M(1VDl@L6#>}$tMM}P7nf^L7Opm{gHkp?+m{@dPO3^f+BfsX zgoFO?kK_^QJ+=_bnaNOO zlFK11GLx~bE5DgcihJpx0`Hg4M5 zC6P;bR$(Rzj<3O%OTK~5mBI5CBOC0BxdF( z>v>UJf&zghNrZ>O%ME}|&`zB^9>P#YYaMpGpWXFJzoTCqO9$; zrxqadf}h&U*-vdZ{rAN2<6SS);}*dzL`{!JGb2LostPadrx7KA9g)mT2Aa)Z${X|l_n zH05os-ngS&pq7_dOt zp7)WT(o(Yx%d1BA0W!=9$YEUXy@$DteN_2*7`Y_f1hP&_47PJjK*-nfWQ9+bn;B4+ z$s2vzw&Xp7?(r;VZs*+JOF6w4_o<#ryEXh{Mn4b;W8P!D0O~M?vJzsNwztf}v1VFO znhoB@^=YP+-`Lhf3Y*}3fJ48IMV)>by)wP=RG z(uU{MN3bDCKy9wWPa7ZwT_3ha{V=5gd>5LQK5$!GJ%gKNMQo6k@I$NTg#-AwJ#zFo zvure~yxT_I9E6Jd=J4V#oNK6>nUFjh6RwyVot+TU6K?jGCPLGKJ4jdi6t zZazA>IiI)nJ!)8K z@&NtRsvT=XQ0k}lG9dBaKmTLcxc8uK)W4;5(Y$$b)8QnS=sZ76B@2fP`7>N>}!0VC2M4kPw?ld8QWE%jI-=r{hI% zC)f&?PNZ#pLgV$4y1$9r(%L$?#4JCvjDkDqV4W6t=EPc_Z2Jki4ZiE7U%Ki~cL?w# z;F7*>F7ufH&h`lnFn~#In!LNTk$|QEC-YQ;t+|B?1UH$52cXF#!K(}35AAE!#?r@p zTjKS)>U-N9I~ei7gP#bsHHt2SF@iGAha*WJ1uaOEGgFMOkB8Sa(f4vOj$KH}Bd{Z1*T1`B{Fo!D5z}aPVBf z>&k_66eug-h(aByD|NEmnpVa*f_F%3fxMxOXPTub5A8Gjgzma`b3CH#Gk^2oU!Evt zARUq4kw4oGXbYWX{H-h_+wczJVq@x{TVeo&TMY)k?x$Q9S)_N{acKFH#E$$7P-l-N z*op1s^M+!?xg z$wVA<3MU7=49Fd-$B!Qm24Ws27+F~9SA?=8BLmU@pne0h+nMY##e6~lz!)9udc!Db zyF^#j;uSe;@gobczV1wAt9l15p}WhaQGWWdK7;8XMk$Guu1$C8_-)ByeNcfSh(tH8DIPfkt*qlnFtI=|EmdnBldTku#F@lp=Hb(oXt0rw1t*4+XyN{ZV6$$x+ zz*%=kYL?WJ8BboPPu7D+CL>Px_9W9-1wuO|$kH64tBdmTe`Bc^Ud3X7c(%knQ=WdJ@RC!;8gdj{454GK!iTiIp;IW>~Goi*K{pD7~&*AmJ0w5+ZU`ONQ`b{XvGiJ}d= z2`3ctV1bqW!8X-?*LTg+{TNwpWII*cRFE$KHgD5bURY-Pfim3kd0!AGAJ;rUa3~$M zE!WIous;)ay>BodFVpg#KsP`yV~eDtF7jR5 z${&`mtqUN`L;I$|c-CEc)}VeJlqKpC+UE=;bDi?!&2dXY(A87Z@IXO-aaB{djQzB8 z1S+PSb5*p_mcizdZ9+e~gG(@5TV<2-T`v!|g<4-}@3T@T>1sdH^Midb*GV(RZ0cgW zX~yK_fzd%cW4~Kr`vEP)55nWSP_W_*L=EjIGeS27ctY6h>~!pAbh# zv*NO}k18|<1BnOoaImVG9VX3Fr_uB!)V30G9 zfgbHq=AV7^F`9r8ctquQQs>vy!42QiQVoXmQ{XG~Tx8kaVE)aF!|!>*AfxvPOP95L z#~HZ7OTnSww&**1I<~!(-4(e<^ScgF`ha~t_X+#B|J2T^Iay{Lb}(-AQ`VCCBw=-}6OHlJ7a5^e6g+l>#T#PMqzF zo?zx6&F-ks{NXxJ-sCBS{q*0mye#huut{Cio~e0UK;R3qW&un3pdK3?0nE6Xh9?$; zu6alo#iIQHv~()Xr2hq?;sG*}n!xm?{XFyYw{fX(lMLZ8Xc z)vl@y41Nm@G8lCdA=uFi1y1}~26sc1d_#aE&=M@_<(?2&iU0sW07*naR6%8j+UsE^ zM*>>AgBn!RzXwpB=DCN}*zWSmyL!ZV@G#2PCwK*AwA^lXaIEk}P_BYeAtWH+-6rq+? z6S*7IO|J{K%bEAyOC!)k*^AIZBmgvNk#@?jt@#`@e@vVF{$Kw!=%)FE6I~TgwvF0Y z>uMRi4Cd>Yx^(GM)+kfIzxu1cif2w3m5-h>xy~Ts$-DJu+X1b!mYC*Nbhq&w7y=wS zs-3Ou&a^?@0q6#b&?eA;J3S~I)MU!E{BC!1W@vDRF0;@-pi2{jbV}`!3@#ry7zDEl zMVXnjaiGcM1(yQ7He6{L*LMp|nrHrMx}D9b8ImzO1NXVX^o&E%7z5`I`Sq3DY^#}opNrIp{%pOQz!1}6?wHttE@){u@H+yKuv>Y42 z)Gta_L;TI>}FFw(vn+hq!fadT_&i;Kw4#Of&%B& z^x2eZ{d1>NAmm9UROtU|z-)K#*ay1sQ|lOV?8yi8Q+w{*x%Ac7Ux%%#Kt;Ph?a&=x zuNy+hF{bTf#`vQRB5ghG9udNL7TeX}5xzJwHhBIhsrG?ATy*!t8wxxha8jO$U9rl`#sUUE5 zP2Oo;^&}u&)X)mt)PT!3LvtJLy%s#<#*OO%UYsDv<1(Gx_>{d)cnYH%rwx68zln*7 zunoP1U05Ti6XBKXE+D=W)4^ zA=vE*T6gPf*{)$KrzT&UY$qt16u3J0{`(&UIJ5n%>jm<#{REY2qmA!ISr~qNmsxtC z&Y3f3!q>3YK6c4`m3O=`6=7% zkAi>Gx1NifHYdopKk5JcF70vk%9W6)qwV%yzeoDibXizp+S_JW){^?;! zVwGdZkMrJ8m^x&Qb>{JTr9?9sT$53LU9tW1KmSYchwNV&S76k|$zQXK77M5$pTal0 z{qAdc#kFhKW8A&}!3QypU}Vf&KPqT+ zZiiPBTo5;zq+z7Jt7OUTiTpLFjwf&;j5c9mB0z{3`LPPx6y|`g)X^gadbPl-DB8 z+y5h@R4~cZ1rORg$>=-UyRq520Rw*wBflJOi=2J?jpHq&Yn$u2><73if&N{a-JNdQ*>;iV zm^0a*oqQ`?MKL}zPAr=VmX84t>8fqE;_@Xmi!lKwT{Teq z0bv3?1+hU8Z22Z9CgW2c>2t@I{7Ctr4ZoUQ!I;mH01U5+I2_2-_;Vz z+qElR=jS3mK|3_E%)PX+r=Zzpg8EQs@Q#4$%=_<$R#ebtJGca`Yb^P2oU*6&-S^=v*%WZx07i8K_dH@JN?SN?ya4}dO&ABXtJiV(2?IV53iI#coKe(T` zStDzoa=(V8wciQ!oOmb^8Z9o@XWzlLt*+f}1F$+;aL-5_`>M(&%cbVmBhX9#v0go- zWB;)I)zn+=1^A|AFl5atCKAv?I@;c)4|{h4%aBNalf80UjSa@%C3O&))i zNANCv9SS*mgksGGg0!b_P421Ktkp5=YrngZKM zfpE1W_m_iIm)%lkCb)I>?opXCLItACR!|#`j1VfkR)=?r0@XyEPNJ+ifTqnbk1+KF zstXq`#Ks?mn9Hak{CGDetn`~@1fl{=Te;woKOnCZplz6PX|Cj{T!IaOjUYvhmZm}i zM?r=gdropb69R~s`^HvD^TOsX=keW5YLu{Vpxh}HQl1)xd1U*8#h(=gVU;#s0)rABM${{Ba zkRa-yxq~vvu!P3XdI_AuW)pg(S8*t^!Huo~WIIM%t@X<#{rRyxIPyM_faqF?@{g+%6g&lj=o+df7a6uZ#^`#un(F>4$=X|3MPLlDva)A zQ5skW`>HD-w!iid0ane2DX8Pi{2f34^}qf<5!XDlD|VvdcyPSLsw{c1GJFrE*xT7pTyHipduY1_S zjN*6IcVLb2J~4K6@C2~e3y#R29@gT}1>#qPjDhV>jgSmBjG_9iW;TAtUl{F=%zpFh z4)GU5`Mv3LQ#m%`Y;O;csaXX}5ln`4tg@{X7GPSYMVJ2q^;cT;L`NQ1iJN5TT z9dF=hi4WB$@fP4n&@1`SgD*(`EUdC78FHlFdj@@X&x&a0*>t;=4 zc4K6o3VT7A0^XGn=_ZKIh231^H~YH)1j{HG8XAHgp-DwfQ4q(rV6Ol`!M^4R0+O)t zl|K-uGN6N_$NM{CiF@q;l^~dI0V0Ag8`QQK?HUa_mB~PWSrQT0NO$F2pDmAR^x9 z9R)4Qr36$W9RN9k(|%k`D~w|qi*R-vczNG6e6~6GuE10pD42a$fLGpk{0ItLIUO)! z#~*7UU=%=SE$QZT-{kKAAr*+pAOXPUAur@_{ayaI+|sdt9qHpg>tP#N_X2VY9gM>( zq#?-h$`b<19ut=)Fj8n((i1S5msfatsc0KCho0>Xw5cXe2;j$e+iOMtrc%=X=IKA~ zySd4<1=0r7HBZYNV3vE)N6d$0ja%B+cl}+;W_^9;J=-t(i1aZ%0VKiizT>;Im_`V? z?R%EXe&?spyr(IH?}xV#!6E6E_~u#FBJNw>NZ&%nfAS$tybr*$jr?aE>jMQNUMZ95 zdHKF&_0r^^`M34m(469m(|*f8>!W!|OJ_xE-g9Nn$ylVnYJ*A-E9nOK4E%MgW}i0? zWyo?xBh#}ie)39`7g!(V^&YQB5FfmzJOo7cqb1MV(;qU-pAJquSDx_|$f2$E7CC zjT>$#P%~vemVp&*_jXsI&i|)Vp!Cugd-XzQP znL$mL@y*jqo~%|b0>54IE%h@_YdZk0ML(wk1~z{o>;urT-$CEk3R>%sHBi*W`wH_Y zSJr%G0W5FN*rUp3p7ZV5DO%SPlt--W1KdZPr<+R$~H;!p7AdmgD9K0M}16q*h z+@b*F1Gu&h)+d8O_ixbec%hB=?SBE_<1Ncgzu=!^B2I?nw|%6oo%^Q2{TKtj$Llc> zq8`@ObRsVv#5??=B_hozxn&|=t_5F-??fVKOBzu(`y%x-l)lfK@lFPkmd`sT#Uw`h zlb`hPW@tyb7xY-gbin%tBS3d*5TI302YEc?$$)7`I#u4%YmEs=Oy($~WD$MiKX z@Ouu@A%pDPhw}I|t&(;1;ydxN0{|^_w#}vRjq`8U}HkC1FKdS z>9r|Pv9(A?0jRKEpUBWxLOa7#Cpup4R@a8_E?xnSA3q*$wgMap{CF=5D#3x;9yD|~ z4tiB^SGPh?;jGXX5SfM{1TsKTjh`AY`*8?no@L>fg}nES=lg1g?Z5sOpqQp0Bhp0( zD}Z@ny`1Y>GxBh$H7c>3^RXOi@yyHe88YZ8Wz0ar`@Yj0avgF#n(x2q@6GvCWFrg5 zI{z#av}gd#Gr%sn=lWZ>P`>yMmj}Wa&;Jo9emfhjaws=V(g}dS1v%E8SlpAwktR2# zhu~8R6w1g;a(>3i+P(Nq{MJU!$NaOVGWR9>mhG1{boq5;3YTA~O*iqLEm^acgy+|Tb z$!%nMW^eFWwt?n7(vNX$n(;z@NlmSFHvc@?%w>wYkhf(tU;Be;6w{+dBaadLMh3dJ zPuAR)F=Sc1_b!Dpnzpgd(R4O{b@5??(~zqBb!nw9KWFH1>>)tGlb2dMvR}{L?)HeT z{#vwuz1ZK)x*ChQIec7cOgHk`_!f^}Qhr7E)`l0$v9)=cR2|z=p{y$wmJ$-MG)6W_s9$mf!ciAMtp{`z~!8 zPcS7v$|+C|zLy%BW@vz|vt_ZfMPB*soF;L2rozy>+J=(^X_&WK{7o8Y>Sc14!Dasr z+P>s(dV;gixFgi>df0v;q_-6Bov!taunp9b%hIMRDP@HJ~cGYx!_ zL1WdHC2mDW`?WRA8dU1Y&(a>=2dJ#)V;OF#@}`ZjlyF`AirJ0 z)uu*6?+%V%%>%S4a!I8AtSRu8C;%IYe`Y5$kwJy;M{L6cwc1d*!N(oRvB_d-J~Xp3 zB9|jQsi_X{76t4v@;O0*AA(x@jy895^cj75oyeQ^7|ID$ z#wVl5vP3dZ`=rklf>{t!Anpq)d>&dQ!Hi`kL^^!>TkX<30$jkXhBx|u1>^)0f+01! zYN-S*0#e^Gu9t!v+0L`9sWtulENjfl@1m`9X|;gb$iD(BzPD8&YsD;&05Ss^8?EFo zJ-qK_$mLfvmNn}Bj^{kv{7yUza8;!j2?Y7qK>&I{g}9<23Gc^QU>!Z z8gwTzUINxgwxW6b;E(B8V#{P5U8weZEVtWNst_7fpK-6Wz2zzORN)~YwEDJ9)(kso z$y$5uN=y0tESlpI-|~mME)yWU&=2{oOD)UfeM9ss%4>Xss~KUkLEWvtd3gEUcT2pI zpK<)Y(H6PhM2Y*-#pl-1xTam`ZxMOyi}9(As>f63mT+uPXFz=9P2bm4!ZET2ZYeZ~ zcS)#}Q5$8;>2Ec(8~rTTIns(utMqx#_oIKsc%r_fm#LBKA|)M@uK28*yjbyfAnXW0 ztF2ZZU33_aHZ|B;0Igk&w01tCKE8e9ZW`<#PDf9iN~>&$umi;F@h8NDts2Ss z>0sT-p~WR=dLTvRf-wYxlW{RXDSMv1Qy&J31KZzratA^zCp5A<6Igw8>eXrq%il7g zVk1Wa5x2oEX$NF021KSa+fo^=S41LKe9P>P_JF(&HX_I1&P$5iLy$Q;4x20UCaoMY zvj{H<)@l7&ZU^fbcNvTkXO*3xuMD|7#@UHs9*wIe1${Wo*I9NaD+g1Hv+3fuU$W_D zHVyQ%19ozp-Lf)fc67_2VO*>209kzSO4mB#R& z9M7)^F?QFV3%u5U#20OA4VF8=Q2c88Lj;BYrf6}`8bw{;Noy6lHk}yP#95`zi&ec% z(K;IBZHC}=BrNL?3~hvsau(oGo)z#^e!E0ocw|ne&^7}qh5u^>>an=A5a7UN=oL15 z%6A2N0T#$qt#_FKNN>w*zFx&dpp-${L?7{!OKo*|*LV>hY6nOoz9x3Ow*I@+M>+^( zlo2FAJP67EylhQw)ia-4hJ3POE|dA&o_@lGBY(duU-F6p&rH`q-)ysOEQ5bYmxn>~ z742`GlviLwX8=vpiKgI&3^SSBjg+n`D z%iweEUR&&M)}Qo>hS?Qd`$D0Q&m4EQQ~4h8DVwyljM89@{^@t`8FYi@dsZagqu`DU z-{C>fsK{W)vSuXK!Tf!voqNU$Kup=!T4-O=4S6md4b}z0YF(D2Kjn>GxnDT}$dgMw z;xzZ4(oamnGCILCL?7VOdK$F*HoR+K);jM9Kx;u>6`X14V@}^|v7B3d+G!jq{{7xy zC*0w|PMBF-9%K%DJ8R7Ldfu)9`Iyr!Jq)h&rATpOy(`T z8o;z!t7?`cQ<7fKSJ`9w0cMS8Y9VKQ+4LgSxL+biJ;>X*9liPBi0~RvO==1l6>Lf) z(<@+1kZPjJl|n0l*Al;dCOv)EXY$9gf)JowSw=|$NLFduCS_xBp{MmJVTrL7W33{9 z?^w&`GL^gp&MIhPBb>CX%CIg&tuY0#4CY~(^d4e)LK9xq$@H_#)~y!(v%240t^mu9 z|EjK@;^y;Qf51J`R=QZuI{f(**g1f!7FuOd^ycGtqcOVLsoJ|WF6?mbU zbpQc84S7JoQ2ZVY&?aXl$qj|6z^XZ{)2)!R0@Tb?Bfo4@Cu0|=0!TxkmRPbl2fdfG zS{ZAVdIfkXvaBLA+-S2Bx49I%=X+=fq<6*4?T0!6_lU;_Xxt8s=i?HcZOgFoB{;GD zAWjWvcTZ#gh?16Gt>98(saXnttCQbjU}vpyZ1eHugwF%QqFPP)K4T35w6#Z+1tN-ISZjP?i;* zw9h5`EJ*eJd61z9fI8p zF62X`*2Xerz}l@Gip!^h4DO$fKKg35qs=~#z5#7c}psI7x@enR1C@|Ad-~=@^ ztrhZT%8Whwo{Q!M#ETZyG=h4T4u=3UGYu_Q7%4WQsW>e*I%)jGatMJq2)1MbAyypZ z!)DkBi|TlP!k*g^L^g9)Y@AX=9U%({(FTs?r1%|?RL+430m6#qUlXi?V?{@aa!xnr zr=P#@xt(^$nea()av!+r&BGx_02!4+?0b=9VP|ccd>yrUO9v@jmze=t{R`(Wgo`?T z>AcQpzkBblY5391B?6?e&-y=&Ck@&u{!j9~un#3nUXfkzgUg0I>LANR^-L}!JEN^= zToOk+mxz>U_#`8#m%Ij2WQM~u5Oc^y>Me!THXtyThJHi#+w;1H)^z9YSl^}zR0PNm z+64I{9@AQ8*G-B`+W;Zjl(~et=#tHKl2s{vh!!3iOkV4vjU(h8`Hl?NHPWlJNmSGj zN4XW{7bMumCFO;D=gXsKZLHEYo=3uObB)14A+=lHDR)dGVwT#u-KXa{>KM|;y(n); z$I7le@=hib$z?nvKJGCYt4Jt2_p$ee{82{BlkyYs+acbTFWno*#W-M@_Xow7#$nTv zD{U*U#U--{^<{`RadWyF@2PG`n|rO^RR-$QCbxPgZZjWJzAR7Rt`~6;7`r)v&BOi? zC;>v7x@>Ih`5sJTRiFuAf7mAt?UTo2Veb2%)Zo;B)KM!XD6-pLDshUDi&?BM{a#96 z*x+Hdv1SjW(q;ltGQ>LK#zs7YeOo&{5v0`;Kv8f|c9l*Yz%bMATOy~)c9j`A11NS) zbi!@UkXOfwomR6_FjU8>lkdpFpzasHqJC9aH=!jTmAY<%!s3-s;Ya=1R{lsIDsF)v zBvcTVR1P~Wt#d0LzOw-!2~KW(y9Hp3vXuWKfEXyMMC=(nB z_?$Qs2PoYqOe7LjkF-=!@NifWV8GuQprk2ciCXPtMF%KwZv4HQH^W06pnzt!Q!WZG zUc4B-{Nk#e>hUpS7IQ^k-Mtk!Uh zDJPC$BMS*j#E10w3{j2VQgj@xs1Y_79NKBztLbF)ZkXW|R9kS{2PGZH{Mn8Rp6}ii(QuDy^KxvRQf6 z9$2==O(Eu1DIT8VcQC+95gP@;f@fQrbwZbpItDue*U1kyu~juycDM+~-V>LluksoW zI%b$tx@s!p30vE8?n+JYEcem(zzNf@7cX8&HgD-fv?fc>aMQiCom9SLDwdAE1z+-q zxg+jF?YLiIlKL}w-4xE$7ZU)mTUlPQaze80Pztp_%7vykX}}rtZQRha9Ykjl9CQto-Lah zCsYrySt$Y_lg&1ep&dZTsI^-M;&*m2#~EMdPf(rMgrho5>J+?JA(RA(x}FWFAQgS> zMVyjm7HUdJ#1`ZJcuDChU$z{g4dFwHGX*#Ploie`vqQx`AYq5wp2c z{v}Q9xpMtugQsw@B~M|$toDiUMGzvi5Kigbbn2@DA+0uxur=_k;>)%4p6~r4K%b-^ zQr*a~si`U3orhwcD(g0)8NJDZ5fh&r@#Oy zPVq?x`X2<2{)UE>15DVYX}C#A0C{-dK)pdIpHENQDQ@&{#-ylNh_ORhAZ1;hT{=p( z*~kpfEotI{<{i%!6FRyb(u802;Zwt^-}21yv$Tho4X**FBV?d;W3mCvdZu58Nh6Y)9;LUDh{sm`xE(BwtJC} zN)tS~y1KM+_Lv>(3JFfQTK;qoWc0zv10$x$P~t?ULNred3|M}uYNfn^bYlvqfAlxX zKpgb7k&zMWccgXv_;ITPPDV>7fzc-?Cnv+`=xCUloU+La6B+W?rz4q%hK8&>*z`hF znPj5LH8)zqe_5wNQns!}<&Snnv%F<>`1zSo-_~Wf z?cA-e*|S_rv8K36?p+;^z^oFo3SXrouC6RvXIfiZGXJ{^3$yl}v)t(rw0Js2LygYi zmH=sKYd05XmDO<*1G|nlHzK*kbqYE`1ncw3r(t$(R#VH&rOT!?tO}_f5|Q0TMXXSv z*)Q6Jj;go|Ci_9hORLX8+Jw}5Lt>LqbySEEnoH6_ z&N1m|6QMFM5vnUQCr};JzgZo#I>ZmFw2J)3i{<475l!qlIpUb#Sh0$703>5NkSlyx zW3sfcp!<>Es&_P$m@-k$Hj(EJ5o0zzAz#TKd4+(1$DCw5+F#@matL`;C~){n+p<)% z@^LSOcub@YtuG2Blt#8Oj!e>q^+Jx3$9d)L;lqbUq#^F)D-nJ2Lw+H}cnN^KE~@Q= z-?OLBD5}XtekU$SE&(FkET7$&8KB9X)+B;w%(PDNFlixuj)cam3>sueX$=Y+il`U) z1aFRRo)HHyr9o$_o;IxSKv+OCV$lbv#Cjw0}mfQ5=n1X{jC^|c9+WG z;nyKh7Hoo!(xBaxjhcP)*$AHu$?1Ugt(`A*)KvV~aMHKZeUF+tRuHvRCP7%ivI(78 z4I6U!|NX!Jk7k&Y;ql`~HiKMUrNgk~f~K!34D_Ee`{K_&KNn7(91iW>J$9xvOWFt@ zgds>!Dbjn@9 zgy5#W7&m7D#vpZEgD7EB*<6Xn zEt(*p$%VwB9W<9?G!Eox#$BT9$8=!9mZDD%4{M3M+2jaI(`<<59<-gy(oEAXC~J+# z7R0qpij5V?dh&o)IkumuETJrrSf1x)@;Q^|Nn4r}6ZH+O4v@8^Xvvnz)t=Ezl0GDm z7vsxO9oyW~(_?wyIj$l9Y^)$%2%Ly0`DxLKiD+-Zk9g3aCPIle6U{XmQ0jG58c&`x zrAm8;OmM1=Ktett!jzSAAcqOWpRk57LX?Rc@|hDR;6mQ)9$~Pupo5we2YAz0!J3H* z`DoJX@#DvKzmZ-|WEgY7nK*c1o6F{3h&_2g`^)%7T4}Pu{g^9|CLNYHBmB~!KhSfK zbD99-1o87bD-Sl2uu}P-{UT6wLYoLpn!D`M)T)t~>k^fysj*&!=wx`L+04|l@zB=N z7^)jvts~Lka81R`(gcZ!1P#=d==O_7QSOs#7UdP$%aT!Doowt>=G)pR^5DTp`1$7_ zty4}-PFTmStVAGbK+Be(7GErd@yDaq`Eem~Qf2Py>efbtI9sL@ZRxyiG}`mCFTxMs z{WV;>b}cl>E}4#8t4+2D9h<9juLv#QE9Co^nPyGBh^G`rXV0FK9Z1I)(8eh0p;`7(Psg7qk54q)o(wY*M3*jI5=s8d zgvOf6!Y))5-vk$e6+uBBD5nX;qSVX&5@oPsX%FFz@Vu#d!)6P+unuVtAoB>^dXb802ZhXy>e6jW|e4CHqMYvF4K%ZPU%`*X_WB zWeuPMT4uedO<*Tao(%n3LT2E@w%s&tYA;NNY!D=3{kJ1CnFv|`MDwc`OD1m#rp48> zY*d6b)oEbG3kQS%jUj1~|2U9F(nUU4Rp2`0i++r(fLJ7rF=UBlaPH~RBpMtbl(n+e zoE7n!nx3+_=?9Pq2-1R%f+il)XSJwZqCc$&&J%w3(PxB|B5hcj!;_ zBkmzCjzfoxuq4gF6krc#lsme-(xzgi!Lw+}Y`=o)hR=}Gw3PoQ2+cL2@*6h=ZCc+J zoXS_!0yBXHLo0`f7_!`UwP*Fh@-&kW2pkxrgh3$z!GXDuAA;pgWn%n-g!xrIDQGpNa71M%Zih%rlpmtYLp#z9A0!Lcr-ipjCfD`#4 zP`}_lF)?mLtXt-N*n>i-kipoY62O&f(+ksPF2i&D&K?2CEX(=eOx*Mbw5)t5zq)AU zNgCq;nF>G}(a3_w{d@PUJhUaqT$NTD=`YhFyNn5V{lF{%5=(uO7s`(|nsJJB(2mn* zAop`3pY!tHJT5Z;?9ZEIs$mle{SLlpcR8@By1v@Jqm`alTxO0SxlNstKi)AXxIc2= z+F7$~aKV%^VwwP1hL96CIB~M+QJEPKaM?#cT9W-VZ34V$`_)y_rmL;Ln0_8Ly1Gt# z0$bWP{S=~3FipRG@<01Qpy-5l&rGV}q(H-`fgm(#l+0{8)Tt0|kU;A++08UKUZoxo zJ|=+mPUk^LkB*Lo|M=5?gkOICMdbayI%%~CQlklsc9~sp--^sGmekR1{&ZU!(aA9V zVm1y^TIRZVF&El8x@?ePLjw3P+nt)4HX9#iz3nYchEJUi0*F{?1}yaQWQX>`%E-VvJUkpWb9HhqFB+}#Q-4fKEC+fQFm|n!>yWx5AlMVL`*f#heFHp`&3E|Q1XVQ__1HRyym2L8$CFU(Hv z+F!33c{uy|+3?kuUj+tsY$78OU?_`$wvyV``@j-+eOGI+a>=e+bs`?Xfk2rS!4+^142j}#~wZrP4dh=cxXUgKoGDi?XK=N zGRG>>Giezip?$r5wrUf$>#XlQ)za{-TQ^Ovppm0L5hw$Mu~(!prc0lSa%yz+QFx$D zb@!Csya+Stqs62wlnWb1;(~CQExVSSqlS|Hs?A+lU$lf?^9Pa)A%d7fHX-e}kHlUQ zQa%T%6b6vFb}i92idaE{NxL!EXe1rdj2wV$5f6kdwhxsd7Q^b@>Rb6wlLq7iH$*M0 zRw&h$kgt$emf(@+C=3Y1ncI%5c93K2T+vVy2XftH4Q-Mbt!)x-d|_`pCHqk(J=7;{ zk?&**93kD{#QlUsfGIy(R)`<W)C1JWn~u3)*oMDddlMFc%|0 zDvccL9?C=A5*KlDFZ*}MJM~BVK{JajF&b){ys4i-Mo9-d_%;00inov#>x+8l_gVEj zOjsbYq)*-mvF@W3APo<{4uPT*+E{g}$gF4Y4DdU@&|vYuSXWyuA=s_PFfALTdClIQ zh5n4tred2=;0ukR3>pO92iDhBKxsc&X2dnwE%~GTP6OY~o3|t&b<$M-v2acUAcJ35 zSBEWqVIzf>rFyf{ObABq-L+GNn$-b2MSAI!HQG&&?W}r9SQ7!BpLs3~>6CqL?LQ(x z-x2Dxe1@=1?oBqZyVbvH5n8S{G&YB08kE>2OUJ8~@jbDk?S1liH2nC}&(b3QViSx` z4P2i~<8=A*C8du^L8S)odCk7>hg-LAn-*o_sRX6!rC%lp-5O+SS~O6o^XI#6sy7KV zT0s7Ks^AiPM>vyzgfp{#26JZZ?X7WRM4HVb1e5j|Tqs){WJ;_+o}FKX00Whg2N4|x zEKbKl2AMsd8tcW&JdH*Q>)4dq81-rGN#J(|YBY)vZ3c17 zhiKOjC^T#Y27AgqC(YiBWQYnKwk3Or5AD;Eo}nMKif}b(^18X+ZsORM%ZX2ua5f~J z7&u{s2%A^PBSew3h}(`lSGfnTsd~%uN<5}1SNTyG zfW^EtvCC>JC~hG8lyz1_ds6nSkjXZ+NpJxlUXVoM7E4C}E9yx4NsIW2mwY9;4xxp( zuc{o7UdjWOv?jDAP z<ZybO#J8WcyAPj+=OXq-^JT)A>Z`TfE)uj;y19cU!_WmD9q z88pJ=)~!3HfqAMOzw9dQZD|{pJpE!2JmI|o@ z%EWyHFhtA4H)iA7DPY(APkAE1Ah|Q(YS5H-59*pDJ2%xH*pzZzW(MD1`%dI=C4BbT zXSVYkQv(Lh#>`eR5it55fq|BG^1dO-7Y67Vk-^c?Q5!tbsIi3GB%4n=o>#xKNeyir zWkO~^2;xfE3lW%k(>NVF)^8JGw0{ilk4MLhAWUfx=R1UeWpIcQrUbNqi%T*BC;BI3 zFHG4W)7+1SoBn|YnI(0|DjGjzSiiJhcr0M)n7l(^&9!44G-A@YZfL-aq~o*mOQ z`W6#M;wDcG!kU125JZ;i98;Qz-kWfSWPlwc6I^hu#_AKBvRGy65aB`Vj4XrbkrsrO zUQPK-qo};#K9P8=evL~-J62V4LDH%%<&FH2e_lp%bPE_lpupWorpiX%X=~ia^(rYa z;%|}MB1B(LiWD~+))Xg`3hKg4CsbDQPnxL>5Fc@ncT5OKljkTaTH?ER?wai|_i>H! zn6^bbVkMR9H8NkL?jnxJ$><3NY#8sD@Ie|$m&pR=Cj^i|twDRq2i03)p!}Gf5O|(? zislm&!hcmtph3eFGRnARIO;R`12^)AOeXM7o_JAr#LZ{Q%y;YSx{sA&@5a!kBT3h_vB{@gj^Er8o&o^6r(45L{p>g&1_u2-j>(_6Hq($F!{77R+Gtm@>&A?yj0EKCl!si@9NTh}a zyvVLm5z@PN?x<7FX@fyixNz=bxODMKICu7Z930fyO~`b}E~`h{ldcJAeP-?0%qLn# z9Dnjyn$Y{!OOJfn{E<<&1j-)Y&#YS4ku(mBoc zNgWyd5o8EFgdEpxiB5H~r~zi|;Yhf5=XMx*IBEkIn%Qsu=5NF4)1QfWcSvx=6HqiP zoB2YJsRHD9O@fq;x~5(JFXk4)5v4bW>j+TO@PnMt1 zaDi=_2t-UH0WvLtmAV{CS(@0FLay*QfGWkqPLLo+IJP zrOV-KnHu!!Gkx9$YduTdXXz)f>J(KKN(xe%e zR1n$r*7m&1EC|Y`UT9o-v1E?TB5tD0)sk=^Po&FA5vxnsWipY59L>+mZc+V+$pOTH z%~0$JMmuO zfFzp%j8_5hnzbc7Y}~kzC7*G7pZ( zI@$%8pkPTPm}3C&dV_r{&vi>v%j#aG#%}7XL#u*3N4%uNeZ)mtY?z}DaGkLSvw+uy zgaPlgt4-a<*iR*+C1+zBF4iEh{ZjZ4AEcc!k#{iR-YPvWN^f`=c7m@kZqnviUIg+6 znWfFf@euN@NtWsyQTPJV4Xv<*13xyL{VjGP%IN^zc z$;18;czui6|MLfPXVy=tWI70Bfrdh$^DuL@*_pm4;a%9Z?Zy)QW1UwWi+nGs6R`YZ zog8~633HbF(WufX=tu}idJm1?1b_s4S68RmZXv>W7UO<|t1Tx=$XlF>m*qq{IdLVs zCpsy!RkTMYuoMY{sTl!Sr;i$^B-lw8!GP`1$jE&YM*YY7P1`#-IAjBjb$rPTG#PZx zdJRy0($b#OY*kU3@a)s(1@ghYXl|*mRCiQW5-fZ!^1_ad+J9*g+ji4q_ zH!4)VoZw)1bKOJPB4F)SxmOR4fAvNmV`78m=@0+>2kUG2n7we}f=&WEZ<_@%-6;(8 zZAcdSC_>>tT6o{D{hZnuOZ4Yov`hLYnlrKvVTGt>E!Fxa8aZSJ!~)Hv9T1{t zqRfg8s ztP0a=nZmL86Ad7w1Y-C?V-w`ihztqj(?{#Bmwq!MsP|1fP$%U=dE<9pme07lX7yvw zAWIThKV*#EXhyz8(`o^G?E7RsXm`#E< zt|^1GE&TUJQX5HQlAZb7>%N`31Shp)>Ol2Fo{+z6>|(sb6oB!RaSFT=aik6MqP@Z! z)B9e|4_XJ7(JB|hS%K1q{jP^i&&_|57-?I00;aNvd61c5w&5i18gPd_0(utuBD zbL3%UWW?@eJlp4E)f>WioYM;e)N4X;cIWrVI=a388)x%qabwKZ1oSZ-0FWe>Y4FpRlnH&$_lCmH>G#*XlRqP6q=AeO zQA%==C0RBwC1OYahFBOW)P0ag2J}Qmc~=v*_DsAyD@LZ3AeN{hP8oSpCe`HaKHDH= z8baezN(<5uH=o&ZDmO}IaB3d7AbTLTXj>srXcCDVS!6Gh6_Jox-ZDZ1Ij)dgjAdkH z3HcXY>5*4RWF(4ld6`uAvz!Z=CQdNoy-8X`>Y233XSK@AMlf(AK-O7yhZIqLq`9RR zpLyBe3>zwwd|1$rV9WjBNS+BO8%!>$FleJuJg~%0UXU}iJ?>2e-s+NqE1q;cJx^-7 zs-I#`xQ%;QMS`pmC;5R0LJo;PwGDeFJ{HrKxdloQ+?O#X(rae__4nhfy_M4fAp ze#~6V9i@~sscu+_z{>&~z!>Y&@#koAS$!ZshE1053e_vCpu9FVqK66M^00pdicVpG&gWMr} zuz{lv8nraXMw9xw2D6j0nLBw@nl`|ux>8yes6Txm?NSb43^6c#)eb2S0-N%Il?hN4 zK*dF=CMW;^KmbWZK~#yKRU8I&3dg{u0+w>|Ja2m-5bX+elLp2WP2i@beYt;s$ItBV zA%>u(x1^jGI&ECkPFBod~j~74E(O!6(IFu>iR;u+y{x_ zI$CQ;1*8~lFxME+$yd~}MlBml`&=VW4D2y2PGyRkGs`owfexhrapZn}C+{!I3%Nv; z?6l5iche(d;AtBlV#c$pyWf}q5GVGz5OK;+;2K$=?39g(3(MNbR5a3gKeOP${dyVc zR6EhE))WY4?qHhOm_sX*A|=g8YU6d}emo>0o`^ zJlsdWpuSNw5v;A~dLrRmhx{9XR9ZZT{j5C?TKdmtCNXACpg2&vU?#zs&r!lCv+9&z zNHOh0k5!%0ru^y^&|?5i$!7wgRkp2sTdX z9o%v0QXmDGdN=;X%bL`ptYuc zQ`@&6{Lj7+C_15y9_|YB`tpo~22I0Ob5aA;5`Y?XqlC(tlY_RwVM#mppN%~VwN*pb zxMYc@h9cv1wZToDGo1tb`N-C09xSLhoUmd#bfVObrQ zGSyeH1fsz}RzI6tnl-M*O%-TeAB~Nh0Hm|D$iM7yZKkN$)P@8d(xACssFm;9=kf?K z`E0`C0G}U!zAm4#8{x^*aWmiG8bYB_wqYzU_4OY>q+ZshK#Zku}<^nh6C`aePuc zTBSAaYHkgkjV)pJ`E(f7_4#GFfYFlD+~S-KG|WaZIp}CwvrOm)+EhlR~c3Fa-cExX1+Y-u)Gs1REyH+PdS5K==2rAUD zYjqgNhE8^ijD>-bj}nv;h_pl#+B5(U?~DNbAP!_YJVXNzlLZDejXFj)=rhOm0A?SAu%9NF~xrb{u=xYFm%;35U_k6r?69~r02ee`M=Y;4& zEZXFK1&8!GrM0E@UEkCYmQ*)$l24G+dU*$^61m|1`wt(4X^{)a7#XBvxQ4lBu*InUI$>QHX@z zZhzySbT4fRBK2Hy&M;DZ(KTU^&t3UTmFFEoL#u3Sy9}tssXmu$hj!2S0G8E~!&wET>0SHAQV`qwoYP1QO5TX`@MaE{nvAnT2(o&Y2T- zJjW!YQS!V0_%WrWyr>MbN@qordKK1)Flkk3($vw|745tgN437A`JGb!l6f2P%}CL* zs1?O-l^6T!O0|g%wJp=kYwYMg(qrvoTw~XoRx=^5tTs+b!%I7EJ$6iOPv#CHhN8n^ zOMR+AM1MfufoLnVy=m;5^&7ua#xIe5Unms!>)Wz%Im_Ch$c4L%PJG5 z7ZBn$VaH~_D#?R25pN_3xE&iB6t?p^0(d@D%BlN?`txMgP9exSDUaH^JHv)1i8J!d zR44bF{pt&>qS6;=mv$1Guz?JNFa3}9%jYy6DnSqXK%nS^b{~1nI-A;?1TulnjR3=r z7JE*XEP7P=3_LVhgb4RCb2ZI_Jyo86SjuAH+|&tSECJSvq%!Cs#Bd#hL+X2aJ(FgL z&T(8FoPmIW3IWeMvtVp%5d?JbaS4?_{_&6DFMs{3o_lKdAiRdzT z45kntUQvSz>57DwydYcqB}X6+tg0Y?Sb>^z>HbC5oWKwnl`DT0?Q+Y-nJTU*R)CHUKkQwBiBW&^LKpv?Na70d1wi`FDTibz9 zLrft#u?)3VE*le-8J5X$RW&j)Vuv!|MTQMV`1WNYMZVb3cU%)IR{p3T%ErlN>$NO% zud5tP8fL;{Z7iP90Xfv~(9ocbA&etv4e3XGW?TZ3@4x@SG?JW>2GNE@VrDWRcWft= z9@rB0XA>Z*^434zd6c;$~{OQxD^?W>G z3%pGds9cak;-$U75jdKbwndzn)?gk$pg&ui)n_o^q|1ec`_@(|BlfPeTk3`h0d0x6 zDLY-bM~6^QHt?Pn8KylD4`VZC7N39qx$0Px9MvnB^H7vjngr{2$Sjz%;z>W{U?SQ# z@nF(Gc|GhOfwCa9NvP0y`AjE4&>~1?w3IM4*&^~as6LPesi-}9sWGJSBgwDyeg9Z} zq&r{E$j&#YIZJ9<#+DFKzqiJXhJlXsLfQ<3bp)&t6lNhbr%%!L>73CqK1d}nmfLB+ySsA-Vf9-Rh;gogM|OA|98ACXU=PDubil<;b_ z<BS}q4TX%{rIDp$j!E-?PeFEKvrL7yc5QV$JbLiR1k%ca zp3?wXaZ1jxwWPIGgElSe;>rWdG1PIY^N$4jzN1ae#R{tYSs@+@gFkTH-F4fn9anSu89t>|YKt=JI_NS7~N4&Q$J zO=!{1Zrdo5Z#pbh^ChK_Qv5jY5D?lY=`k?l1%N(Ao*`O^?D9KJ5`w{i%|QzgVEQ4X zfO{c05CGbA?4JU!qf&4HY^k_Vwo*@RL6A6b^u%1xRy~Ibb-b;HC z4m|U=069S`Pg?0-)9&lptu4$XurbDrqsfRUT0FF(+)LibGvgG`W7~6mB1Lq zZ?q}$1NM+EFd`1{q)t*^X-oJIhv*SE8grhfWCpW7@w`ngMDn=@?JZ>>=vKQQEQr&N z%~ifgm+xo>TNO7Nd$jQ6k9aXLp9oFUviPrBd$VFf4fhVYaBEyhaW1$m_1v7FE8 zUXW94khvb8jU*UiOgiL&6$rGsO!y$1>c2PM-PpjgR93BW(2)_xEcG$Fzj@<^X2{>$QWhO` zU~s^+pv?A}b<*MKWDGzE5QHC{idp9Q^XCo2p;IRv~*q*MiNK_26*n>zNaBVS+fDN??||K>0)S7C&t!@8Sa?kc_ecDP_ONE z1_B*tEFo(~_07?+p0W`)gRL@@uWL)Fn17JQsSWY2?+B&zjs_1wNn6BSOk=|-6QJBe znHcP1NCRi~p7~zdazdNo^KNgI+LT04i!mRtl?>j(on}P6F~FMEHq{;VN1f_^`hs+C zdc8RmPKwc*q;|?uK7--Bv`%Otzq=+svl?_iJ0m}{UtSHD&P6}7tWHF_ftF8$ozhNn zOp(1g;ScnSVWECXUxkb?iDUrh9c>zY4mn}kBXTN87<^l0Bgr*n2L!-Q{L1>jwfzi7 z`ZA;fLcqX}eByUxH1S@&deyYE*zA&*h$nt%mn>dnkv*q`xd(^*$PGvpLi4jfZpoW^{l zT}%Gp!2QHSo-p^}q`j@Je&M4PNA)j$r{2H~%rJ$c%r;q7dQ28$d8jkB6C=rWHre8N zo@J6i`vxP@guL>(O?ki*&(hL>+R(b;)2oRW8@l3TO?k2WVMZ1wD5S-2Ot6^n5iIX2 zFF4b-&25>m%;SOF0dw7hX$kEXZ$@kcr96=DMoon258&fr{|J;kp`|D^kQ8WmG+@;7 zXc-n4Zi;-#@0(^-m1@jYYAm)qquu*7{)&p1i>NCWRTKp&*5bV*lnaBJy?w372v0+O zbWXi3PXue&Ldgz?<&$52xgLJ{NvCw(xNZ0hp870Yyz*5TJar~Cw{^*$N6SO%WUCuX zAy=nm@SeWVKQLsrQxM-PUw&<8$R82;rBe$mTT(lA;(_dmIyFH5HEwRvk{3&Bm(FSF zM0QEl5(t&Dsgf~A*jm#;5RVt*0Hc{Go%6!w%XVyLgE}U{8O=^-rv@o)^S^!Pwh>^2 zFLu8D$0Vp~qU$a+&(y8)5FtPNE8N2|)l^p2&~#N#1zjA!2EMK_?%{ zvAfzJLYvKf_#?%+K7&RKsixC=Y=@F!2UV0qnGW6oVmpZw2wD!Ob>W$V>kP2S5Bfdr z3zETgND3<-`uNts1S<_H^b;F&H2|(?IhQ5q2Wrz}4gAxJRTp}7MOUfcsw zqfC$=25g8N!8EA4c0{BjlFI1xKBW&~LK{dtRzJ!MM2DsEmTuBQe3~3@Bi%abQQcGSFaRq0}Mc(Z`VGbPBQ6!WoPNdCO zU4j*PAWiP2u85y@MS8?beGw<#3_vyA&+j}#i1)VzoQ%iGuk70raY97iAiiXu{|Mwz?)ZJMW5ke0AznCtA}5Qz{_m!*FAfn zchfMe;i_RILW{6MOM=hGg>3V|c4hPzCq8TUtBsX+Po3CZF_obG*kC~95SJNR9R-EE>OosezS`wqv@(lP@OW1M`lK^Js3>*yh z9ML(a<-4b{T^fHfZsrXPHqH8-{Lm%YNQPtifx*G>wU$>&V?gn8*h%J1qpiD7F?(y&*2&isS|F8j9<_El2XuyS3VUGzBK$q?^Kp8-stxU8Uhx5>=jTEck$yZwa_LN-ls zh7Tk(F6+`yQ(&N`oX8HICD;-v{gI$POc@y92@Kpk&md0V*(j$eo(6s!*wNOa?cH%v z$bCFVz97kbCQk0-H{?1m$PC{h)5wEZ50OAa$iOkxCvl;8$0R7m13_bJZo)B=S+uN>He@dCFOrz*oUmGtcq9U36D_4relS;B)5csC z&&o(Sc@c<!DAiI?$?`x&o@PX)L9#WnzrN>TYW_()veX@_xl%}#EtO)Cz_Ea?(| z$`f}%MrqsRMbR1gr9Svf-H{%7M#D`xZC{J>$2IDZ_;^J!pX!Q!80(rea8*aWA)jKO zQJji{F_4TSGx*KJ{t?)#H}5~Dk8~#uhX!H|HcJBn2D!raL~Tx5TAk-C%_S#dNgb(~ z8^+gkaAtY=rX8P-@n|2snDP$r3!T!gx8@FN9ZW?_e@#@+*pgkE zPhJbqJZVj9M`MiTKhz6gb@fsuADK9YA_CWUMJt)aq}&z9W_PJO0M6+E-bwel_|J)T zncX?JiBsJy6bC$Xk=_xiiDZ(Lhh_p2mQ@I*Y7C1oWnNt3JcHcgdJ@MAgal7Zh&tDv z@ne{9q1Xk~?Su@99jqlzi*UN7k)yyW74=Kf0HK4OBMq?{Qbf@-7vF(*&HW3`MvpHMW4=Wg8+E7-5FQ$(ME zO>{>4BnPAZmFMy-yhC>`?lE~kvkxy@{j?%&+}>v$ng%WmBP4V#-|Y|wvL^ zi6e=Df(Vh5f*&sCEA-4w&bMwBy5Ucf3M`MQpGdI46XRKEMZqB;gxYUfZ6WB@1!g|H zc#B)4-^RGeFqb>S#fy3l_%qpo_*HX#h;*)nHNs)Oy5`ZS5a(TUvU|VR z4Vv@_N}QPMh&1m|p4bVjuo0I>rj@me9_>rV<*ilHEf#-=qotv-DlEK~TJ_LDk9a{) zZ(!l*PCk-na$Wn1#sWC@Gtked=SwXMt37oAWkhV?QK$F)WaHl0Siu@BsaV|QXyc(W zsU?8mwK`V8-}%0ry@bRjjf(ToYAYPVj5=z$04F^?A%!3fGoGBvVhSZ-&-T-UkdOJx zM#r-#Dmr?w@m*^DH5;5HrRo)rk}4vfPHk5bMTt{AGmXo9eA7-I;9iIdOX%K)wtCpV ziaKT)C;2WYJ9HsfDcr=!Z%@=H&#=F#DR?wzjUEkujixI{ub10F?4n5Em`MbuW58!z z!wza8>K#~@LIZ3hlZ^UtkT^!R;t=C1f#>$hj5SJN8@OCTO7^hxv}^T)C5<140ph9e zV!UwdxZ|oQ41X~gGBtCt#uQ^LwST1H9gt!VTz2oozTx-1safFc;)e z#_5(?4dPKTW*I%ZFl*k6>Fa4*ms)q*j81R(oF#AzTZ=O+-cjROBK0%_k2}z>G2AJp z<$oIX)Ja`0<@eXhCO{v%q0%~pLO*13c=02B8IeaG|BiVTEYRUPL zdUIc_orZA|Qf_%iN`;bZMie#%^Q#6+X0R$O(0%AEk~cw#URO7Lz0%w?=B%CB#RxF4 zSu=`-%Q2!cOB5iIj#pK0GURGNyq5~z!)IVfR&U%6aLXEDvTaXKWHh1UqUwx}687il z#_KXDdfQz;Sw47-(?)?+GVv~FVNQ$0wyZ3oTcsVaU~pjajwc;RGa2pS?gnr?oG1k5 z`n>0`Gyw}-4fwv?od1T_f5wWNfHsIyIH`g_$O<`QqZD3y)*lczYt?pr$|e#kol7Ay z;ynZ#wT#E-KN}}UC>EzfVEXB+%qk2}i$#1L4jiEojhZpuD+Jy!Svvtz3e=VHla!tvWKQ$Jw!EKUYOI82lj+ z_G+4It>7LX$x?~LLxFNtvV#5ct6HejFv$X?8Iv?r$(hIpo&0xaZNu}!VwheqU#>FE zQF0Zi=Aw2^3Lg7}cdCO(3*ibweye!hTWhmceyz#B6u-aK&qMM;7IMKN(dlLqkpd$! z86xpaEADK#wM#XHVMr1O^oOBB!-reKR3_LnN*?kq-_FAwdOMaAE*qS@_wKZP8N`rc zoW(8*W2coC7%4y@1K)>mJeK2bmMzq$4N$&VgsZxpd0nYKNK)3vd#~s#@K3q#$6|84 zC7}&dCT1g>GDCq3Eq0oG<|t?-*bNen_Z@>)f5tO5z3yPd4*Ps!?fazYH)@cO3hU}= z$u{nFt#e!9n(R~J|IHXe@oom6yo)8u(;jCPSk3&=ZsSlB$0`6@C<$tN9Rz0(9Zg<^b| z4aYsO9}m2J0}e+VZW{x|zY(KI8$}Jp!0FDC@Y@FKq`t<*j&Ob{J6oK@ip926p9djn zJCu@fbA3*J!-AWjtK6isZgG9QXK^B+=NcsECaTV(sMp}HFyUzrAcd8K62=06;jfeU z=$Hpi8F=%7x&B)I__?=k0s=hU z6tt!z9l3`aR3y5R-V}9#Gh$*ytKe~-A1Qq6ZuVvpa-~FH#y>Tg5*M);>Z3_9gg7&+ z>feW$N+@mBsOoFzF3_XuzuQRpqWf&rjIcm^d>h$*A@Gb5^_7=yQyaDa8+9(pbY#xK z%Ixt{lFjIk(u7p1ghT%Y{riOiGYvn6+(kiiFWZwn$M<*vYt*dIXdH@wc&UeGSo z8}TZ^heszvdpci|j-6zUez5>9xYOJ*&Z1!q&{@^qA&(Xj*L^+recH(GiIm?j^QTXF zBlWpjsbO?g?IK4+0>_%0o=-0Q1AG$_oh;~|}99Z>)-x>HUfryQ{Y_=^$`856B8=vKeJptI!$MAK6;QQ&~ZRI>qa ze7{KrREpvRzLzGsdQVd1^L&?lzT&o)DhJP7DEAN@i~@Od`CYcQ@0_SL_B>2*KxjxG3 zqqP@xY*Mz&%neFE&##uIiCAG>fR-sD!BWck^*TY>fBO)k6n3`hSfNG3=uE zepWP9NEXIan#q`}=K9>C+bV_$LKG_`cE-2%{@JfVoxUt^5M*(gE4G-*=QK%2f9`x`5XlQ3wFH_y_hE&vdr?)+sx%Fnc=tNm-6;EM9cXU zgZTiQfU_S%6Xo|a7P@3zjfZ`|h9+27QB44rfm4@O%8>Xd1GMX5|CiH0QuU)br@~|; zkxWOnhTw#1%UZV7_q5lx(TzsHkmS$@(Xayux@tOibksW8KIj`iOGNw+-> zcuFpfX88Gq$jFyFIBq_O1s#dKFfOg{HRK+BeeCq{_#F;{5&HhC!upVSl-F1)fOU)M zGh^_R;F1J0Hq*)B&v6YyY%r;>FtN|w0YausJ2hxiV;@)WB&p}%^$BHPZFn3I3+5O( z%tj>(jr<^GXlg3NTr6Vih{k(Ba;+LCH@DzZJE-xu2WO<1CpmfKBVpE&Pu)ijXDdBx zPhnk5y&W_%&0wY;NmszuBIAIpXd~TyRu(&$?9g3VS)o{wCrquaP*=SWy@q%-Bk9uk zHkM)sBb~Kf%6`gZ3k{BYsYKbX?Gi?v29;mybhs202mX4wt>u1)t(&I)^02%8lq`bT zd8@x@(t_NZCbhoadzdR>&h>cDy~!o2OTe)_4zl7NB;X^g4vQGVlPfgo=5^dNApEv+ zAKp$8hY-M0lgf6*GlGwyr>>S>jG0=%wx>z!zd%Qz^x4a6*hz|ZsMG`Qu9!z7#m!TrO-mMn2!2vT<%7B&{naPF5c zBm@G3R)IM=Z~Ae&`O5Y)U4y+ZzssZZ)y<=u_4~i*=;(%4Nm-c)X+^chuOt&i1FsC4 zdpb@jV0qNl^?u9)=D)6+$#gUJwg64PKBfqchoPNgO+V z>oX)jndG}4HfK#eHS3bCFeJcTg3K|*KB3%v^W{4yC5YRt<5t1{teG0;fF-R}ImZFf zE!&eu57&{{_V;4KxYk(ZMDf3sGM^fp9w(L=B{?hu!TAL@l%}mTUF2spny>MGv1{w` z^+JKuV}a0BGMhluD%v{>rRgo)3yh|#wT-$>NQgn)#dz4MlbjbV6+WSISoEn%Fdg@o zEUAb3=-!S9=9S-TJQNBk*(qyu!mW6ee!2xMKsyV>82)2VZ|DAiLvPIzN=Zu$53H(< z-bx3VGeI&Bf+0I#3?*uDV!)HN6Lp5A%-Kqd9YmGaA5*54#^k>l;juz_C>w{58_=AXS&K`^6rQQR8K^_a3C3At}URtFm z{x1gpbEsw1Kuzrr^P_=*VGB`5{LZ%n^0!ZCz7)a1uXpI}KH9?V$Tf?q#OtUT(G^#| zP2h-K;1yKY@2`nEIsFFzvht6rOHo2qeV&(52k7QKZ}g#}pl?DYvl^$EzCSB4I;p|l zhxb3mteX?jbhvRAKjObj!vgBZRg|h+ z#=F7RRq>#(e2Hr3yH*x-d!3MvmX@8(A95Mtcs1cS?&$twS^iU#{VLS3A;t_;nRy#q z)N_oJR__(4ay$7sq+*G?s%8)-(*JG(N!G&Sn=*v!h!@nw*;mtp5FeBrqN9B(wwzi< z3$PqareVMVSMe`gWPDZmXDO0K51#i|2lf}2+Hc#A6GgO3!VsR_G}|=fn#g)&e^W}< zU&<^FClwXw)t?FMH|Fr`OVsllWztDqR4)*v#))1Y zI$k^@()UhRn@I`_i$;Cf(|ae4ps6=0uL&tC5>Yr%wu8=?+8e+9SnSxCOkX(~(t{67 zfA^Xpz@OrzvZ7+FZecxz9)COC6QzTog*Dsce(Fizd0o}lXb!$Y2!XZu=O_ht4V>NU zln4EXqc`b`naPG59A@URkE5GMf)ueN!pHwuyc|OXz zN668HTir+Cwqmi+>VR~d^dM`V2!WE4WL?PHp45p6#RsrCvGQeGav^tCbCx`Zh3^7b zw&ueoCSM|+-sdDmaAcq7+LY)LV}D^KUFLkB?Auf8$suS7+a7ps1OY)W=BtCIWvk}v z&E||jJ_ADggg`rvO;a~tZM}q5k}>q;w}d1lJp5KD)5DuZctQrp83+hE4I*Z`hVtxz zesquD&r&_=(ONG>ur$0bu`R{QAbtWgc4)2anSxdz4A#vvF1RcwN$XhL-x$9;^U-+% zE3AOp1^shZy-Jc-eaEw@UMu5JQG7iOeH=AN;t#Ovc%rW>J|VbIjdBSW_bAB4txwEq z`i~zheutx5-Tqck!(u^LakWuS7R3LSFPHVsywHWHC~9TeYKn(rs~^(QvS9gL0bgYeNNjVb&lV3k!>)xK$qy)sKln z6&XnuVBsFD)(m$o4o77F9WovmMDCC`M%Dq=ppk})&`B*ea1E}fzG6+U_vx}= zDqp#bWLCi^mK&oK%AB!nffaXp5B)<9^2-NBq9_AaPvO_Nst76a_TfvTqvgUv`rMl_ zu5Fw--qE)N2EQi|qF}iFL?sMke9ZIO1ijJIA3Vs~{j$Mll~7mq@OLfGCC|gooc)3R zCC^fh1&xP{=0q+My%?i>+}JmCVnx-7Ki8hWhU_{t{{xxk({YM#xn{b#@2%iZt!bdP zIescwK23MZidy5NJZ0`;pleI1thD-G#t42xL$09n%`it9A}w)&3-HyAqe!qDLb2e^ zyOGUAlxfCO;2AePesj3os7cloRXl_S2UdRJ=i~GxdCa&Lt#m%YL=7*B{~O72wVgO1zOovI<7CUsv!AjR@{yLcX9Fg zPakH;wGzrHTQO6;-OpSJXJkk5lutR+n;q}W#Ai7FUcE^;@!N+kP(-R%L}lsU%|m|Q_hbw}G} z(3((jh|#V3Sk<3uXmm(+*kI;Ow{%D$+}J@X>}V=|QpQp(^L1u@=n9+c#@H67mn8+>2$&Z6eoAU-F#yLp(emi( zP!EnE61y4a*c!HdxNY%u{fFdG0}N+RBD2?}Md>Q=J}6-!%M(3Yf@$%QDqd5_w%RCd zj=g3U#f|=ofb6X_Dj##HZdU16I=X{dL_vh~zL_%14&|a)FSJm;}gcryU6m-6Q~?kLP&+4wGdy=|d* ztx$buD?7kP2MPLOoJ-vLddPeF@8WNJDO3?z9ACAf=|9QpaohYJkM`hwAx(jiwKS&^ z!!(fW7M_!so`u9b7cnAEx>gukYBZD&%{hTZ7{qF0A-=aiIxwJ6=dG~m$B?MOiSpwM zBw@J~CtP-a(RXXrFkqP!T&2lPjDNvG&PT*VkzBJI!OCyFWp#=j>>0$OMC4J?!4|3v zrfZ9&jx{H}F9)Uap|Z5lI;^^15o@eFzH^hSsg)y(-|19HVduES4j^MKT{VY0y}vZdy1LbeY(05j*dr=uQ8r-e(qkyeLdya)ig@V*is>Nk+*4gQT#K3rO2U@Q zOQi{Ke*b35{OWf0EZ>wTrSQSU2HIQ0-HXcZHS~W;7lh^&!S);pLJ%fp{|S5zsSOmK zw-`|J;Lo)}7bFhG(Iv5$roBb*x16UZbG`e_FfgRI0wI0vV1k6Dk$fRQLxG8j5#70j z>F2&RU(U?XVpLD#HBouwc`1hCz-%KIl)Z-k=3`M1nF#X?ijt=Kv!%)}IjFMC; z!IBm3B7K@@5cn!{leZ*uf8cenO|poQm4rb6UI01#ht}>jlVHo0hf~4Hs;5(oqjv{2 z248#_#DbWac5y;L<}LB3xO?i?R#eh=pd^GV9@z~@G}fRU^ZJe-`^gwx%z@pmnH zI;-&-`V4SQ2Y|LYv ze+RMuBjWU_~<3eAV6>_#v(O*A?=|@cSdykpx`-1KvUtJQ|CQJ-VvdSdubQ<4K*(5wK* zlu@QByOHXgR@R2mb{SWPBFOJwcYL3o0g^`8|;W^=!;|U0Ekh67zCWf+H*Un7OI+o%* z>(AUKD4`EZH78VKgy+d!>jEeXSq(YZ*@AT+d$AM7-2{e^9{#t(*T>-6UE7Mn*AKd3V(F7i_-*N=Lw0ZxIIA%R zFsgry6jajd0hDUj#1JxFW@X*zyiY>T$JXhBU3-l(%>|NrJsYr`9}(HM1I#u@uTBGC z?keNnrzoGbh*n(Y2hgl?h3Drg1&WagbPbsVk}ZLgaR%42vzc2TAD%nD_1BpUv`CD4 zI37gYyoQX7&c08X^GAMjSv-}W=TBAFM5~w^J4r7Dxk~Tw6$VtLDpSqDlE{F!WyrL` ziph`8FgotWv^QGOl?5D3CV6Wa%{IE|;X|ou`tJ6*iQ+cLJI;6?AL(BHdKrE+YF>ch ztVw#Y1WWDn1YNy!6y-7HU6MpDE1eM5oQf`)WCsqk_W=12teDLO|Gk_*ti^ail*%Rn zGSrTK8{vF!hxH(`rr7!-=|Y7j#t?4nqv>JD#pKoA=oNg0paG*m{4Is=3&uvron|HcH}S z*27A|IC(Bu%Z)>roRa*v7$hU)*~l^DYoA&>rppCR1Fnq@>)DrJWUbJ+1-m~P=Ap~o z%8{j56=Ez7%&6Ee=?e6Z?y%#3=Y3k}%h{ms}PDGO~2y`|x(jyFlTKiGnSA>&49R&aY zOIeWRyYXAS?Y$-`bG8Qc(Q0NS=>F4H31W=hou605EtF~h2wq(^NO*;YhQ_h;?WbAy z=D+NuJ*B-oBItb?(6<)2Kumo2CYEf9KFh=DyJ(OYr0ZK`&b~9}+)9HD%}j|_NFH+= z?%CH)TTNI9wkcmcthu*wpcBO31W03^huLGA-Vc4zvMyHlGuX z5~jxDr?mqDU$=i&YXKPc0Y&X>YCp+*FF2T~PWtre)AZzc2oq?(dW-ALIo*BXMWWda<2u8(^eqb_3dpF*`h>x_ksfmw1ObNly|F!NV@o=RM2z4TOi2WG z9S+wt8#xRrBR8`ZXWxQ@&NSoC0dfw9%?>x4s$f?Ey%f;y+g1kUO>`pom@Sd^e zNkM(Rp!3L!jkic3KASCg0;ytf=bj;zBtOim#w>W&gc&Y3Dj}iRLG|XFwTH;sKi2k# z-1=l>zvT=fsy(WSh=@pTTboGvpesJw$!7O=ps65IF}*g8hF$@hnAyahp<$Vi%M0Si z+Az=nIrfjBZ4)6yJzWC>zL(m%JS*kEw6wHQ`dSqzBUiLx=$*}DL@ zrv&<>u>P_Hv{NS3AK2^NYmc@60$wV$>%?gPu-H|i#?qZ(1Z7<*sl1af=JtAqdX4b- zlXalMT8WxkmJa4$q`vZi%b(!nJC*z8t`zJBgn(hd)L^Fwn{GO|y%*E+} zEa^(Ax@o5*CxI>xG=X#T$_Wv>Ni@nLUJyhZoAQ#eDn)Y8Q3GOZ^t%tW#R&uf2L~nR z`U4DN-h5cE5fHi$c#5PzWPGXAHDB;-1@7zASq%Vk@I zE&jSQ!z6#^g7w^*#b!wIPO7K!s=rXSHmH~4BrWvxL*d-m+A)Qw4xlO`DxV>X_giB% zF16()eO5cHGx$BEdUvBHLii<^$2_TecT^ zZW9joExY24DV89(s0ia4`h{fqYies7iz&S&gYW2a}H- z(XGeF$8`x={S5S@Q$JS%zK(^yV|pL3m-`WM{WqM@h%(s3#2R${ZL@6AywaSUyQ;%B z;STvEGz{AuDQ*^mTl!Jw#`zyy2Ym;n6cq96R%6Tzo6~ViMj!+rgC*vJX;wt2smY9u zZP}HSMNvqOj?{6AEJlUC@&~CB!`4+7X3F$%L|GRAZ35!v>+7{@vp*SZ3@({_jPLWd zfQ2u9BTX@^xVAz&-Tu{yf`HBq`(9lmLBILAEAtu$X{jYD?j`UP)7~wM@h8PW($7{5 zfniNXLO=*)x&&il2$m++#+-$@?p>8ed)U;t0=y!Lj=uiv)DX{ZV@lrp3y^;D68ap( zk5Qx|Znd-&0zY2Ou=gLoh_EE_yTgO`+=r_QBL4}v`I}J2CZw*eQ2Yo{a40FvFim+aXJ9^Gf~vJ^u&WAm z;c4^T7xu-T#zeTSsHku~OkiUex$?W&kGW>k>p6dOxS>X)miIZnI<;>J)*JzEdX|0U zj8!zEIvWH6Ayshel~k0C*bzqfxi1OKqHV#TXcr$?)KlKeRH8+yu z9w%OSeIY}q={GL*(26L3WQq&#Z*?MK{9{OyOm}W-DsDnjWjCu2F(hP?-Y2e6P@ZD@ zM4T_StxXQ__|=AHuRFh$jFjSSi3h-QxfVgj99b&7@;uE~)C-YNP_4SEL{`Zv1K zwty=YS=2{a51ny)ZjglL(b1uludlEB#iK`)2)9)LEJH9Cr43%w1o9g6v`7y&~zP%l)`emAOJC<{yuz}qHH0SMz;zmF>CR)i6 zw@31q8L=nL+ud}#(bcu>ZxH6dBv%xy)$3HPuj6abn`7M%YY{WX%F3$7oALM!5iv1$ zbK*9RTmpruz~Zc^!caW>o4mZc9~Uj-{?m>QQFS(Q-T(AUFhyx*_pK|NZmJ$_71Crv z_VE~-XrVY~F^lNL=Zh${7d9Z|R}10*BAK~f2Z7Lgw*6@AoaWLV?SHHy*~fOfYBa#O z_eVsFr;$pS&scB=l?fzWOnx!)Q6nVeY+ATR#eH7S{(H3vPy(h2Q}`fxw^WN+eqY1x zVa*sw;UrrS-b<2_K(exINl4G-S_-=;J%ll(z+vL~^jc~LcsFnRTYd%lGCKh#9d{hx zOiwy$r0BZ>zwf~+v26E;8ngQqa}T1b4r=;WDhhOU&`c)AXi7E$ua|o0Lwt%{0I`3)H#?plzbO zwB%>S$OdH3S5VTzlN!bW%6f!Nn&`$JPcE9qy$;4e)2LhlCw>N-N98I)i%X~a@q~s(jYcfX22i#DONz6l+MVaw*gf4Xx&JL}c(OBW z(lei-yi7#gX6#rT)cv*+qE%Tckan~{%KAPKxH7%5lle)vhXZ0T;G19{U zYo4sgk$1pl9p0m7A->Y=lSc2~9rf>q>ylagtgADXOaBgQoYXZ+-G*v!PD+8}5z|78 znKQmHzmxD0@XeJ|jNc-G54Gp??rF(SmkfIAFbrh| z2lg(SGC|{kr4>ny0jHcoJY-1(dpp)wIs(IC!qnVM`L~gy_^}&TEgcl>0A^`Rerd}_ zmr~MI4yaol3;L~3czA{;w^JEmwkmHj*KL21RF71fEuydH4jjhvr>z?1I?MXwBr)0n z6qJtKZr{|I)B@e?+cLH=G6*^O1r{eZ1t`$iKEsWS%j!$pvx@6a?_JtDW<7{tiW9`p z<9kA&)tUqMF144zV613z5nXZ1&$M`NiTYe_JYf#Sg#NW;2$6qSnEkyY0}s+Z#e`36 z*OpJytu8JNM;~Vn&Yd@_!E%lq*FX&7|EuXN^_y-_~;P&}>$(Qx$CD^u}?aBlvj zoPl3{v$LpG{yB;d+kl@8cL5w(P=L2EF3%JAr=dFmXgv%P~eGD1KSj9%eMxx{lw}VS19adB!+7jSL59mG5(`^Y=2~WiZCu2vb{W^;V35;0-j*! zU_&r)HA&>H!-VYY;ML}BHzS|;_*ySsW9?MjCf>%>L&*pGuI->ORXI7&{V8)!B{h8{ zz0GfXV5k3Vl|6tPAc`cJu2O3Rk68#{gLJK~t#NGrB&FXu$SG;3XC*(wSRt#(t@$ar z?W&d5SfN&gCZU&pPf_O%*`Y_QalcOPGq&2V-t)LjwQrYFdwUGjmZBxQ9Fsv2z zXR?j*IQ)07I&J^HD?AgCtte>YGp<x#6IMBer_%`IBCMta$y0*wXrA^ zdF_*wUZ^bCyT6~9#A;M^a`eXeX8UPEL5D-z)=ZmrqUx{r2Oa!;h{}E+i4B2ay)pvk zU0*(oZygk??j`}ZuJg`syG)w!`MMu}S-5hf>8*gC-+Am-bRnJSZ7}_&Xlz*MSzNRv z^cBVzIBh6u88Hy_5b8vw({|c#kuTAX+xr{n`xDk##POFB)0HwpYIU-QJF_&Ps%vX& z+vo~-nc=PXeg2glHJQ^V^Ld~x16iv8&D0J}#c~Z*R}XvdlPqqV@7d=@W<0}}zr5)Sd9m6YwCdlf(K%Fro^-^IxP z2;QGYjVfxJp=&Yz0G2O-m2S)K3fkGi*vDaxx9;F3e@Z4|q|LKut9Q3k?*u`~{kZpkzZzS;lBuKJ%DOG?*buUn&uxu=`R%t)$iAEA*;czs%nN> zQzv(wW&Ex0oNf-ipWAS;7DvKln0CRxw*QM+IB3?1A;}l#cK@#MKS;nV*w5N>t+9L6 z#`&(D>){uIf2ZqoRYxwhTZ#Re{hGw~+{{0(gFgHhsG)-_bZ-*;cXofy{O~K-g~^}Y z75b1vx#7L^$l@C-LeHn?xSFG>xBp($(Vgr7eW?}{?2dm($bY#=6~rbAh+`?+MA^T} z`S+Xu_s<1#*@_^St^XbQ&q|IZJCRP< YMeQw*d1mzh1O2>{QIW2cH2V5~0KrOj_5c6? literal 0 HcmV?d00001 diff --git a/2024/12/23/learn-solana-2/PoHSequence3.png b/2024/12/23/learn-solana-2/PoHSequence3.png new file mode 100644 index 0000000000000000000000000000000000000000..38d1f52000d80a5cf94076391c312360648e02d9 GIT binary patch literal 170766 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

mt-rFpd*D$D3#GZ#aV26YJPXBY}4(SC=Y3{|+r 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 IHxB;a0I<5QyZ`_I literal 0 HcmV?d00001 diff --git a/2024/12/23/learn-solana-2/PoHSequence4.png b/2024/12/23/learn-solana-2/PoHSequence4.png new file mode 100644 index 0000000000000000000000000000000000000000..8914cc77741f2cbc04dbef58437379baec326625 GIT binary patch literal 130478 zcmeFYbx>VR&?iiAmtesI1b5fq65QP(L4vz;AvgqgcXxujy9Rfc;1|DebMNxJyYIVC z?f2*R)mOV!d#k3-oSr`2GjmSQ^zHd|q^hzk1}ZTs3=9m0+!rZz7#KKa7?^jY$cS$g z8e4WE7#Q@=HjJ+}Mxj!N{en^u zx}6mh506YUBBt6<6pdPI#B3_5BaK(hEmWwhi|1>?OizDq-e21#_s-}k%gs)dr+a{borA#(g!zWaXEO9N787YMYzENk z$(K*jRE4Qt19*h$EbIdB+F?Gy8pNUxJXL!*r!9T3FiLI-iIVDo*5Zto==Xctv4!&l|TaFO4s7D-+trSWAT zITH`@&dI_zXyzqAf|ZYVxEI2C1hS{hnDe5il40RNg@!Zt&|jp`jawHQNsek$jq&&4 zL-Hr+=N?Q}F6nqxVw-e|aX)|P;_hR?=1x(VCnwUN$i=@Fg>Cu~R1?hwtwxTbAP28v z?|(FN_}cbEWfmL0fijE`ktCnJ9L#pl#W$#kE?|~8eia$I(10?t~HQ9 zl@0wd?c5@iXg^;!6kuZvne%I4(S!9UhNYk%i^57+L9#t^`3f3rH%$XcSPsNvii!&O zS+fcUh~@iT>0+6rW0%c=J~H0KrNj+06mD9FiaLzUVx-<$Vs{=AjxdbuMX<+)G1A3f$v z;sf#?2PR&SDCK@Ic+VNqXe>e>0$wrG4se4ZYTTAsiy*zh+ZV=0blGc`;+5woWx){+ z`ngLnFHrAn*3(`u_X_&m!)=a5l{*fc_g9JL&`aWVC)>UZuU=fAg z3_sk{hs;q=z<`DX-5$=KU_rE#Z(_bKSR)lDAMFf@;d=tag2joc{7=;D!L}+HmZ#*NtOr%mSEELXwd0e7N{`CgLB`+uP+bb| z+CPI2mKaZ9(!2-B2k#rw$6s_U$U+g#W@Ytvt7_Hn<{EHysh4BPlJ@tO9;8}2!U~5c zZpVWJe*lI^I)43@KNecze-QLfc*4IaliQgO%*ES+`J8RW*Q0ybB!Au94y=8T0jT0dW}f|ExpdhfC~^ze#gHuloEk< zM9TUZd)Gh$L&WB#??XBq2|tC^E@D?81u}fWN7SKUJa!z*JcO0@4~hs}{lcoS6MZiA zh;}ep{k-*P7YImVaQvvsLBDpX+R$r*JDncff(i2}y5RC~;3+9JL&8p}X(MRN2XA;?K`;!skFTT*N&T8Ydx+;k{zuAz8Y{v0kmnXvP%h*e7FyN$sA-;c&>dP zKA=Sps5hW1{+u3>Z*Zwbts2hU^Y4jrH}hYW&5l@b61;-ZaYD`wbOkaz+xemNyxR#~ zIjDKo0#k0s0jO0`!r*;>&;==dq5b;4^u0XtQ3zScU!F@S%Iv|I0pcK`gqzk$2V*2;tnqrKUHFTGhIUkKE-IGM<8JIHY1(*;R zN*Ga6qEaSOJebIIItuR<|8VK$*vUP9l1=bF{B!v2@bb{|md1q-#3dbUt^_O{(r9G3 zqd%u_PUcGXP3D`Jn6R86pWv8)J!+pgPkv&^(+DUBt4V7ND~FbF8cP>8YJMx5kW1NM zbS&4b#9xZblxN9jEz#Cc(V$QjE&r`arnOcnyd+SGU-?j}qiIr^u*AHS{vCHIYH?x- zv(iZYT!XI4pyJn}z}c@Qrp2s9$4V^gIc^zSDVswZ=K0kcXX7H-q+**AqVn+t!~Axo zyQX6cVi~To25ZB0zjcpwBK=kZwMqTxnv@!?(q^41$tn{AjSXobHQ!8+&_|9-Rx-s= z`S6;gs$YsHfioC6DjhN%ibg$G=3Dw(OdZz`GN+(Fzz6wKJsYKLd{iBsRv zZM}R}cXV}@f5WR8=zL&|n;97w+4r@193|<*&0a7mSHVQqvE(U>I5R9=Ua>XPBRzok z7q0?46K@q)r=v25Rk~Gr9j_zDbt`*AM18uAnuYUdqTP7?RHLEonk8s^Vx4jPdx2K4 zR$Ox~&ql{s$H+@A#?r`&Wt39NG><_c%OLNlN73asp~aac*2&s|tHjUWuPxc?cdT~= z64`%S6gz!g8q30D#8eEI2qz8?j}?sFiye-|h-H)2`zcS>Y_7Rc?xz?is*f!|y^g9)?5i#)V@Kf>^=+Wwl15f?+3J?P4a@c3AO?{q9gD6AHp@WcXz1(WO z>ZEtNVoqWTnd8hieTI8KVz4#5I z&?jHl$Jgxg>>PpMcDZ(UZ+UMUZzTyOv)Fp~M&O}Ml92Rc;d`|eyjcd@();MaA)(s@ zFbXIJLH|a!$H<%-Bz;>yS5{wmGq^ZZfmCLrh^uUy=fLL=ytk4Tm+qbJvvRU(n&Qq8 za6BH=o6<9|qW-mD)jGwI_sdlIX>+%|^H}ZpXzI0lwZiKga04WFmqqx2CB1VO$kyMx zm|UJ3q2R!Juixg4)AOai+yaXX zYOk+s$Z8m15qceE#KfabP~+FdXs-45`^(wyCC3#-eb=7N62CkB3H|Z)TKBzk;uV8x zlOD)qST)896PW3Y5rc_Pr)Otu!|PkpPU-rzOx7eXV4Z5!#n$#_`Gv8n^45OHK6E43 zL1lCMk>sHDj0{m|!ozQiVRNmS$wSAs+1LHSVQ_2m`y8>H(seG-m-QNBbwl@DwX<2d ztk#ZVm2U0H53mj)K^nkpBK=BQ{rRhR`7QgUlg(#!(e9pJ%Bq4Yj*^C73{4d!YgM2d zoKb3_xJ>dI{!)LtHRlN+!YGmoUd{)82EjE?#=FIXR5=z;6}r5hW#WZ(XWEOY_Fv*w zDyO*S6m$F|K)ftI^x{2ivU zT13OozA^rn`wwI1IehOOHai3$mMbjVHMtw@ttMLxU3Z|XP2UjTlBcEXG*Nax)ras) z3U?z1qfv51VLJfc)9IDP)d8W(ZJysBGp1Z1oiP)00R5!+)s2E<7@c9OjsCf4H-JNMAm`D5Y4Yu++Uh+U|Mi?MD3>lYY8^-0**H`%p zoIMd!g{hVMF1H&;#hw!|<#pbySmhaPfCv;#c-cmNm z{5xV8gtywew<7Y6UkwB@D zqW!ckH6DoG^_18OwOzHn?7r^4rdf|SrEqy94)Cq>53suQfAl`tcAX@3=p(`Z_B>m~ zDAZJuAs=^RUTotZhIctN`NIZB*+3lC2I6Xc-R$V^FXtp@Zfd`V8=CNp55ZWJ#Xe*kD#9 zo$Ls|wGfU<5SnU9+wMNZ5V zQO-l)DDy6BJ(ZvL^6fMAk3^-6-_B(vf$^=vkpFjVyh*^5yn5BL!V61|#(5MBWZ%Sr zmertix2hE)aq8?yT6Wgu2qEHZyJ#}CXsYG&pK~}fQn)UDUq4z>-{sx0#q|n9Z?dsf z(C2?Lns?72lkF*T2RS#Sp5zHb4?%RZqQZ1TxRTsOhoJBeu_kQDpOJa;{4ftv9K8DDxAkJfI7xfJ;{p0ov2ja{LMa9^O=vOoa z@n)&We?1S4kIDv68t9@{(#Zdd9Tcv42u52QP*-J9GuL1y>4OI@$8k8#h!*cpCIc`| zhZYES@*@;YJ`^e8Feaw;$ZLI%uHR5@g&yA8d}_#T|xOA}0x7hoaiSGDwVYuMQ^b4nO*KdT~H4FXV(_7 z#a5CJ1IlhborOrWgZ-7S!P;Bn;qcyL^^-!?52Pm6Y6DKI$b2KJ$2%GccWe_VQ-maf z$sFSSeiFmy-e3kReN>K01{E1ya)38vk7$ka(`;{UlrU6AAP84B-DRFUSs41BC^ydU z?|k;WdW4#iH|N0ZL)qa2Qm@-J*96xI54oNAamI!Rn0G246y~qsf%ruh0b1rU;a4(O z3fnzg)lZ=UPw+F8RPGwA!TBgnIRO%0lF$U!KibvHOI&UeHSwVXEKX>GL?Z|6ntM0oF(-~~$j2CY5~azHY@d=%Rq zc+ethZS3xv@bpCkE}C`|zBj-bA@6OiI|8XJD|U{Nodq zoy@k2jGZ7n7;Wf1@6qhyzW#)5_zWryCB`nMIQ--nd#!iZWd(7C=*bNIKu>0mx_yo= zjZLQ?r=UR<&kKO)p9h5!V5O9p_Vaaa%M?n&4i0xM;WWCslDrF^pP0l-4MI; z=r$WWecfBaTGprFzb}h~UISIvI$&N&?!{4!rUV9H7?!P3n z1pVhQ&4bc}0*nZ|f>9aR# zBlFJaN0<9=bpUWDxo(u3y`_AHz}*}tn^`jU80a84cxA667%M2+3dRlk=Z^hye`fx< z&q)~CgB6D^gdGc=mRR*TrLI4WeOKT7sq=Xy4SKb6vx#5U-M z-6{Xbo2o*{`h%B-9zTYe8_jWoe5qeai}h^=XaC{R{tq7e8IaC$F$(u` zthtE|ZpvefX=m-=UK(E>rhTen$oyacdQ#ea62a|Xq!Ws~OzyQGXS{(U2E3@*1;b+l z=>~Q|Dmr6L2#+y-O$kA~tZO7voLuA0H}i)aH{Xz<2vST4oj zj_pmhDy~m$wb6U-WJJ7;uwmKimdK@M1l}XiC~gHjjt)iN-2v@j;;~oiigGY8X~*&< zgzp>M-7Gpinc?p%(GP%4)v4Z-R8;$&p)u@NSHIb}9ZWsw!+g{4_c@v3b`y6LF;tt$ z`5z}R(1Z~3haypUYLW!IjB*P4RVlyV$Y(CJG))0N!@V2{(|me!SY}To_H_5e-{uHc ziT&)yaGadIf`SrXbwZ}FkJqz#A};k|c?#-j3pmx>(T3y-?ZGKGCPourDn;15Y1C zpwp&M*B&IRfEb5VcCXLC_Qp^iv(LakeSW%3`_Esc0(o^JzI6)Xd@n??L`_v0haTfW zlhVuv4#@WQT`|ML>hW@kpSZguRSMm?=0n(4fPkf0fJnf!8-u{KWUWCXQhzZr4eyb< zf~~-;C<9G7gZF=o13vRV#?hMxxD1mfR`MNgDW7#S=HWM~J79{{(xS`;KjZeCm83?U zZ0t7cTK`VBEDB)f9>^+}h^*<4+FOk7%w1Qvh!N*Ugq8Z8QJ79p9S~+vk{cES-T$eS7J17kZ~@%s}eb)=Ij7 z5I(ighv8XJ>mKN2_rNA;_m6S#ZZ=nV-`;b4$?^EkV6da+cw}MsZwHBE69&-iNFD|5 z>X$Yjc!4_6#NtU%*?8(`US5(&76_@%i<9(-LrahwM4B%*6FLgIS_J`poN=fN8Q`+! zQxC_}R@$)j)^Cx1mXhXu01A5-T6lC<SKll5aE&7!u#m1>!=dTgAtR3=-~4haQ2%bEMqa)1V;e7yWFah*qN;~5lc5i$sXO)6Rbzr$S&o`VPeCz9mI*7KW z^BTQ@YT;K{NO{6|jIx+P0Y;cXK}8gSIy$?aM)K2uo$tH}?rYW8|_&7!5`466et#KFWqm81Y6}5?Pc{XYHavHT@x$%wcGo)cFUja(V z?sAIaq*`XoeqU-+zv-$Tw)6U7%goj~&@&rjB2#iW1{!$8t?jhZQ&NvLM|O`Qut-*5S7n1IXkhWGf>xl7GsXX(WMd~`WvEcU#G*X??#^^*ptmNc8GlziHlrQYFQ}>l%BdbQs5B>K?ybA%C4Ft^=*} z`cz*V+^1yNG?Hbz*=Qxxd7#`q7jwG2{y_TL!5i}}#`k*f*JiDoa7t3cl66()^$5m! z#NW+9EoEbJf#vp;g*uOJ{U%qqYrie6UuDZR241Z~B}ybKzEiFaDde7)#H~)7Yqex{ zmyer?=L2n?uj*-#(98>FcVk`#8LE8nyRd|M&!5Ew^Kl6YV|r9@c%> zI7r(*S9XXxsWhYTygVPPve(y9xK`Dgq(6Q+FgRew+rw=|oZ}pQDn`MPiAEuDg5ds$ z21XieEd3VJTH?$DSk%zx*+Y1~P~q*NbrllNSA4g`jheNJ&12Uu-!-utAg~^aU%G~4eHw+M`3bR4!`4Ie>{gI#Nu{WG(i|t1ZPEDJU+QCaZTwZR*Q|SV_oUvcPv&vkXt^9|U}Ps4t}c&n z>;jvv6u4{nz#KU0@_%%#?ktz%DFK zF&<3!FDe+N$xLsGi{?Zs{IQ1UJ@N5b?$j6^7+Y)!qjor?b~Xb@3^ge(ShFBO!?Xp< z{=2zoZ|d$ote_${EYAh!DwPF}`%i8$ApY>;eRAG7*8rx-!MrwQ*O zw%Y7xVzzM!h+YjcT=@w*&OO6>o|p^nOl~e-yL)1g+&iyKqw?V>4o_7X>RA8riTf+N zJM~gQ7TpnB$`0*1Cnp!|GvW<)aC0{}y!zbE^XN{p;yx9m!MJVk(yMoixrT`OSIDG#QPbfJ1vXej3^4ixP#Pu}G0rC(0!Pv3n zy_3hHlczka@H2&lO&FkOSXg1&XPm3NlLi)dyylbxCh-iww;xF%9s!32zv&D)VW{9ulnd{B(A4m0%CJVc{w#vb9`Y%=lt0|ni=yBW6LS8lf zluqWoMygK~u=BXB!#(V~B$uYclD#3F#zqITOtIeC0FYrvP5!yJr)#y<+lSzHY{O8d z?2jJcAz|yFCJJ*?F$-9Oiaq@r88`${1R98-(e4Nlu#z~xPi`HKqp0yCy5j%K+;)`` z=hvIscWAPOR#$V04EJ&w$!6Gs)wH{jwjmKG(kV9WnzT3WS-E@AyN#)%qK6)XB?=ct zzG`^30p20)pzvUyLz*T9c*`oMs!JSX#pT)l0b3cr9OmpS_czLU4qO6|PWg9LS4k-M zo?Cy!e(oHMwYBOiQt77lii!i4m(;}aBfhjO6N+nqIaeD|x>@WIx_Yal4&bW8bgrKT zHhbIfNndNI^J6^3J0|UUH@jIbT6l7=O8`M8TQ7XNDLX;+ze@mQ|)eCIdaZmtg258S5{lhp)N2P^*LCJR$vU4%M_18monC?2DI z$N{0Xb<%*8vpQ06Fhi7ze?sYih#+Kl5*V33CHgC$A?H|mMwDDq*m9t+pc=&^_4fG} zsLm7u79$8WspYzZtfSHFlWbPnW=A(6n56PP02yG(JMgJD(w*e5??N`?&6s`(|Sw)YrfQ=1JzqR6`Jm5NEpa9Zavb@m4z zvr3ZYh5kaZb^3>cI$SD##Eu*-!EhZH#9LyN*igs&=Fg@ot+1uDh97sr3l5%QxYrBt zMRwG*E6l!AT!(xqPF;QA73Mm^0L#s76)22ej`fr9&0iq5nawcj3O)Jo<57gvc$;ww zgZl+nOAQEDllH$Ptzz;ndeN==*VXh-d*NFy*dBmeARsFi<{aU7kgjKu4{K$xj6Qq4 zQKiiA)OX-AbnLnKbMCPpwj!j$#6Ng=c1v{-< zy9w zN~e0+2T1Yh(i^19%{^y&g&`ut;6ap6ML4||;tWTwmAN3tHFMoI;-F{#Aae9C+?8?% zx_5C+aeFnMsRR1(+>~75IPlVm*`NbZH}iob1#pRyK^!$ z$558Xz#`UO^qDv5PLn3N;VUcTNT1WX5L|W4ij+$GYoJeL=@DdA4>d0It#m(0z3EBU z3f^_SviEQj0l+RBmImIXsQU+%(U2rM=0nLCL0tuwKhr3!-$#u{(1iD-bafFOXN>wk zrw432<==92L=JSUvN@ntd6Ijxk~%LMKjUT*=TRk40f*&BRgi+oX;D1kD?xNq8FH=P zH^hF~mm{pT^<1Yobr7U>H6v@AWyO?jArk(~M8+5w7kdY@OZXy78i02}mMPu}D}OU9 zp4xYSrPGhE(uGXuZhcl{3nUj7tVTkAo@Q>lo(J^BVGiwB&FlUakGy`BYmVAFk7mQL zaU~XLkt6zmb$7{7k=i&Y8X;Cl;?3MJDug$^xD z;dGW}&$755gEf4LrQQOw8>@F%3Gz^l-}Yh<9!CTrP%~}!yu$H-7o=zdXLF(@a9M~O z34%hn!;2r1{6&};KH9f2W$#iV@ivkwzhf5qUH4^~M70~wvB=|l#HDF;=-q6~vk~N+5)fT0-?yEizwEPs{1BKJkY^*cPR&0k?_jr*W?n@z5vQQ`%OFQ z2m~nyUu-*4p6;Gf5FY{-GsW%*+>#nG?gdW-+e!cm$we_vBLZvly8`CgdIWIJ3?f5L zcFZK);g_BRk3d}K=hDz}GjY{Ckl#MpZ|&)p5k5}=>-AUC=i%wU4OYJu)%+Z2M4-fZ zFQpviSRX9*q@FK@KJQuiF7RE{obL}}g=l5ZA+76zmtN5Klt+LX zkh=$+)7mV6*c*WNlTdm!zzli*^1`KNV9RF|+VO`y;I{;HDU2U>9M79YQ>QMNw!2eO=Y@MC z_Er4)FHmj%48;CK29i^Zwb24T3|vqB5MUx6T=6CSS*K`>aaRf@OJ#qGD8>Y#26&{! z4G-axxd!KRg6Ol!y@(e3CQ|O_>DH}rqzr8N%RP|}?F70+tRj00>w`W0z)R2{y|a4C zTAxHxKk55P&;o%E(1|S5ur; zy1ff@0l%6DTQt+qI4w^MzGO(Fj&b5U8L)AR z2UwRh&+sRy{xxdQubnh;#848SMK8TLe1$gmC0 zFG&XKj#dIel)#NNXE4vMsP&R_-z{=(>}DK8so9{1R0}r~fbuI%B(;33qZB?)7U+aB z>n&(0+FnW+6W@W6w*{8GBY@mh=;>fF2j~esA3rG%Uh{MzV<}}%QlKRX20&iF5(qyW z_U3!{x|(WUKcl>3od8m+HgT7+Wvt*Ur(K2qt$)@{I)8CMB4sH_?H@V^AgIh=_a(0r zKoQ8jswqjK(;|Vh3OD4HaOmyNU#)*#(RiKC-W6KRPoSA?N*9?8BsSMeUvuq+|J~>t z#k~#|W$rWal-sZSp~p5oU{WgXdRorixYRO7>KJ>vngptQWbt}&ewj{fD=4jhikE-( z$XdD?kW}ddM|`p&5UqR&r|55w>!Hr$#+~rD`fD#|=64kR+Cp|Oa)*Ap?Zg2F1<@Ui zOs=GwGYET6Yq2}1;d8H^;I&z+3h6!#Slq0F8IKJIP@q>^q65PxqVJn2w+jze9&Jws zsGkC0WS_Q@1fnpNaA2mfejLPYkUg~D%u%x)grg1;U{+n-shkQP{F;>=F8m6{uKh9r zq|t~JIA&Egu(bVrB6^n>3oS&i+KIorp3DH;pA@?t%%Z&hk)u$fmNDB-T2_n6hUD#6 zSjPL?Gk4(;xA6MG6`wp0$RF>xjNQuI(XjHk*P{!(1)ZJt)&>U@IMfEdl0(OWt;(Dr z6}2N2+Mjk9b=xb4sPYUUCc9mf+@km4PERU616}8Jfd-bWM|8xb1uypLUVonUT3A$q zO?E`^))&f(k^$i=eBVz!iU}sMqt7W7d51J3>sl&_v5lz$wm{c6S!6<2H(1ZW`Czkq z|GF^~sJ~w;X|J8AIeM4N1&`BKtLGEN=67_VTrVDBb{|nM_xpCIlD}hA!$zoF01ia* zQ@?jVH_I4AKCY1{_x>T~cW*t}yPe1zMDJlJ#H+%99SR)nv?{5?s`JUJvoRkV8RE`%rn)AX{ z>7XlvmU&eYeKjFLV+##yE}813!-<||hdKoeumrs0B0*Im&*x|P%!{|L+M0T-f}Zd` zGD=CwSfeNvwMCuuY`L-Ta%qg@e}5WADRHaUrl;Zct)$^-PUg!bWq^LUyX;C)S00Ig zLxFa``ga>67KHkB7QcO39q&(&fJr&4wuC`tx9*My=U~>(+37`!m`}Tjz}iO7cA;X6 z^PAvU3{RIFAI&yn>XG*0kc!;n+Rv3~OxMfHdq_=wdHQW0NTmA{aUIJ_D?9n0?7C>k ze70gPJ)=6^w~2Kg9&xV-39~Ocnz!EpOiIhD`15l%DvSU+0*@$9yil0Jy7C8Gpf0V^ zL0GbP(kJH}QZEHiDO+dB3+Sx6*id`n-bd%VSv}aAtD@@&eSu5Z z^c0S-n;;8%VAc~{u;{Ql{tRqKqOD52YOr1`4egJr;Z|GM>p z?--#qwURM*g63dz>^8R6UGg(D@b6WifWX{ew-I^FVkd3uv=3A?@A0!TyGmtP@a;KH)bpW7-k~En+Y~;_3fzNJQ1wZ!#DE=nfbCIW#pttN2Ii zu-P%pt@)vsz;qjbnITHDM=A^ck$K{!ve*cl>$ zFDi>TpBw@Ui+;n$e~FviueZecS8q$CnF#(?U6N&NKANR)0b5!9rxuLJGO!RjkkJxhX~UMyUz605bb!XjF96T@ zvy%NA_Uv%rn~y9imnsb5#`Q`*1X=yc1bicB%I^Jw)glZ9*_bexd2m-%XojbH#Z0f5 zsOaZHxi$EOZo#d3({G^(>ha2hw26-=pjoVMDspXR^HVLoS7qEU-{tJPRTe>NlbnAW zF&k?ZU8OY@WyQ~bv5h`$6645cw2p?>mxCFu^(`U(sYhV6gP7k)Ho&R+e9&OVHybP1 zER5OAtD(vVp6jM5(23q8i10Q>9m!^Xs-mJ|gkpSX<)hBZDFvCo%Mo}%?U*52i;XF| z=RWxeNOyk-lD++*ePVn&bowlbPbLWXwGftrVyAqjz@$#}q;GPkJUIn8&eJ&J8WZg_ z>u(W2C`wL6i`<#qkZdDqS@^pAipzo!7+H4`gI-=L*}sWC3;Zl6pQ&p3It4I$3<1w~ zEhOSbHL{#gX!K9*)y9jH^}@fMis`-O>_|V~R{vQ_Hx1AzKF&$qAMyDIm1c?UY1kt~ zZnCophbj2_^vuLkWjdlo*B8{?gR;^i)!QI}{7vgF#kOEyfimqWN^`pz4|$&p`j!k6 z-YJ2YA_{v1oc&KQn+pU-e7scgPuqgJ*q8x1KoP+T`^t}&D13r~==Rxyz==>7r$^W} z0K8XqB}ZkEY{V?XOU3>1d0l*b{C|b1m5;sw3G!U2lz-9}NmZ{975oEVI|NH2n)BX1 zPu{7#;VZ$Dt`fo=Qe2f04}#QgAzbtDBg6XtfLfAH^6HMkZ?R`of=~R?A+Ooi#*wA5 zUa$;OLmj)YnI-we+`Pk$?-a2e|9*gb4b>L=g{KKOQmV@vh_YWpVX;d}Q4t|pHPe;y zk&SoQ#Z;Z<4Lhb*eeC|f^7%m$qWmC|E%kVs3dyT@lZfo%T@M!M*>_kKV<5uD(2{)p z!lC~uHXHCodZss?_|;=HQgDm7?8ABQE`absf# zaVI&#(9`sJ_4krI)3^%hZ|K=`tT@uic)!0u&BJrYWL$pd5Czut;KaIKsjw4j69BhW z6P~%IM()pg!CKMhgnIpIo27bk4B6koLwDL;MY;u1-l)@+3Pjg6sHjoz4I+p?-6qf1 z;ET(R0H~ty+&o^5&d}074xeg1eqc4%Q!PM9_(9&9_ySA&g+nmqb6B+Q3@|dNFaL{p zoSvfpJKW+AITPfA(#&X#O&`_g4z$%x`rsL4${I(Va3%#rIIut9F`RNlSFoA>z$?;N zvuKO>CLT&4h3c~@|1UKHqjZR{!BhyJEjb<#6ywd^7=6(R8<@-Ie!QtMko%XKljk8Z zQ`O@9QRdQ~Kos?#%HQJls8SK|^|2XFotgfn=IHGt92q?d?>>Eak&sgu#sQo56YA|m?Iku23O!FWX=A?8S?N{Vn(fmh`lRxJ70Gy;y7>p0m|((Ce`4C3fX+Qc|qnJ;)-elfAyd4DZKR@-Vs~H?}bthVi;U zFAE|-OyWrCg|(OuJmL0ez%5Zcyh*ribnL6@R;vX$jycohKlZO4ynxI_^$DAVrSrnv zEHxXTC_RM4NpKo1ON_&8U^jh$B{2TaT3~H`!#;7R!X3oUz}tBUB0ND=zLt>0B^eF zV*LK936@W-P^iGFkeFSKt?bO6yhQUcb4rd5z89sV6<}mdSi>vO#e<1FX6PGV4^pPH z@7XFwwr7X;B%y(<6FF_ocNgfy&CHdm5pnlztTi^4&Xq1us;UK`8itE%(r&Hl0#^n) zdnw>q1e7IzE@3$sswx4Jj}9Q4aXU%vYWoLq-CB>8fw?&zVKRPx-{!1Ol;?gG61uFR z`BmEv4aAXVJITk?5x z;Dt{z)gQP7pcZdS?up+j{EA6#@gIHGq_jgiCWOgA_Ar0^>I3Kf_gq=bll}wY9dDyL zdd^FQHsAD5y_!wcL*`0c9r?Xizm$`DaB8}3QoLZia%?`Gsq67^>}5drL7q52>x5Am zeLQZ@XArxtHZzuUx@SXy*R{i769hJ60BW+1Td>D;R({@cSxmlnr-Q1RGpeDeMaf~; zTqp1raEZq5lV|^lJbYI%$f_WwE(pO_Q z(t^;ESQZLVPVAgnbyECxYDp0&!q3P`bQ?WXJU?;9p@ym z2xmLJ)NeYyoaub})=KJYZdLi{&v&4Go2*`qdlfnPSxbMj%^L6ECUw;!xfd2e4avkVn)*%DQ0|b?L8{VAtZg_)R!sI` zWsm7WoC6f>kI(i;$&!h+le!M{oQmGOi$>8MA;!!p6SSJ^w;+wN_~p}redx|=huVIc zcoIwIm#Ua7F$+kN0-meIsN*fqvyZQ$_<9qR*dd8j^wGj%n9UYhDU*9>u=0qvSx^0W zk!Otz^Yc?0J8(YQ>|~Vf2V|!M!E%KjWndKG0nzC@oS*~`MOptfKceu^iF_%{100LI zA-v*bJ4>2l0F!Yaoz70cgc7&UJMb%jVv&=bm%BP2)=i;%cz$3l%N~-7QeYm|I+ngn zngjg?c?V_(d9IfWp5~Sh<2^+HR+nDQ0l3!$s-@C{{SuQ?gE7GneUKF%GV24;d#7RD z&5@TU`YAzrE&jRfYUqL1u?=D;ArP_j`$2_>d)oyqpDnQy(Lf9r{3+gn*`IcF2fM|# zm#(QrjIy*W<#V2q-#%*;h+$<1T;fZ~`JK+^Q`Kln@@3xgj{RurvWd$P=)ZvfHhF@nT7u)TFCxMsAeyj&p4^DajeAFyszg zrty}5B3}d0?rWmJ3g)^pg8j_)7bSaT3EHox>49Z_fqNUkRW{Wt9)SFcmAuV14+>{h9QdERSfGjqCzEAv$|c zlagB_MYrAhDlmtXmIm`l=HPq#{K2bS5LOhm!}`JK=`y|`hR>#cK-57iaM((HmZbHH z1EnAiuc_TsG(p@6F&Esh0L zaPKsa5c=f0bA;*IAHs=N>K{n8e|9(#3esWSn2xnBj5W4ry=Q%@{p# zJ(@Oy)cM~Dc=>57xfKl5t^x1%oJ?%!WR0JIzmQh)41IKkp@JI4 zlZ63&l2~UlhTMdBu}$A0`T1o9tH(7`pLZT@`YCwuen&+>#W>n2m*3 z`JEkCgb6}3_c9CMTJ7G#Tx}@1xxi%`;5?&tFx=?I;&Koqd3hj19%Kq17)QEzOF3^x zrDfKo{x;+tW{IS9AnP^_^ri7v-2?ukhC*L`LTnQblmi9w={GeUs9vRO*}n+ zf)i8;;`IvpYFwrlcrsK9-hyk*>CiGvOtmN~JKOXJA9-~U*I(ExSuMYNdD46iGI|NX ze8i=UbhH&kY1z)`!!(3HA1kI{vComgnvY`ao-d}xg<;_ZjVSoFuEvA5hD=DdC=6Bp zTp$=CRNJ$`E50kI7X*A#IKhI63T90o% z@DkI|-P>Px4YgeipNMZ`_$;a(b+MKz@w?h~+9&>LyiH?6e~)-Wbm_14^kPgJac81g zQiktpL={8!kv(RND-Bn=5A1iVZ5PKiW>pdY$}MJ+#~4y(I@teA$|S>3fbd1#TFjgA z%cb-yy`E!y{k{FoPi-J8*rSERqi$T4!5*CZ{_Df|s-fq+U5|(DraMr$6R8b!D0%9Y zGy(J(oioPRg`H7uJ7iXO^bD1+otUY(7Oy?VIdPPXOe=~5w3cL05+qmQnmAI zUsF*OvrWv9&mS}?FcQhO|FeY^(>LDs|NpA0R~MTgWe0_mH!Z(AspqfWqh)+2ZEFCf zM=t)+3z%Jh>ga4*gwKleoSrnPJD$iY=ify;{5?+$!EZ7-OBY%4D9lLJAFwr;FHERf z_Sw-IZ=Svz3`n+*a%673Rcm~;sm{1+qvOiIHhf18`=$5$o7(~hERo{=FC$*M4EMCr ziDs(|Xwu`%d42umqQ@Flm7J))`ZyW`p-On*_C2ng5K`e-{!E!X0Rhses1bG`z)HHl)K9vUyIIn2oUDDyu< zf!~bVJgMd}Tx|EK9>$&p6I12XfPJYsj$26bMH#voJVX4@LYk{GBK40!T+WXxYteCs zw%##OlXM*(k>}Xl_}t0_ox@c%jwu3G887fVH%Y2UZ{6cPMYmvA%ImpW2kcu}#lO2V zbxUOijYJWGPLGX1Jl9yTgubY`O59+tv!2vbcS>&(Q#~!iBaSJ1MZmoXX#j+8>8atVa(3dVI>-SVh;gy;0kPi~WRIhAMMS(4(X zbkRR#;;idk8NAl*y-FMUJsFD7okY8nqgy20d_YTX!)Lv1zG_L?KF?Xl$M<_sZ*uKG zKy8;}otA`)KgKm){6Mr?h)5{rvu85EZ85WjY^u!RmHuP_4|PvlAMI{9pl1}A$!E{} zWwSBE*r4qC!S*glCp#M$)4Tl(5eP2y(H{n%4rZxu$LY)2AkJ~#A?Zh-CI=+k5B?<*WZ+IR@%96Wh z@b`|fF9B0|CsiGiZSXG6lZzFymU`>2ZSd+{ELX7j7b}mNqu(|{kz2?VjA5u3=Od0EeSJd6;P@7;A08sxQHYg-4mQETBHbC% zZ=cPBBzLWH!lNT5JNYL4@A4#BXR6$|!~^>Kt|$t}O?#c=N@PvG=MU;hyfuSOa}7|3 zGZ$;K2vFV~yx#Q0y5PGdbn3sNl6Wb8O0hRJ!1OFJ1h7AAj#E(w7OznWN%DU_dkzNM zOIiIV3xMG>+?YuSlZNd4-Dh5Xo+7gP#~k)lA#q(NMdRzrhn~$vk3h4h^R&-6RUh>Z zoew!wVW;L^*GBw55PuA|3n>PAhVH9-@1!`xb<6w^cqd^payjp>6z(H}z-YE+&;omE ze#r^U5V1;MqOX3;2U*r=%I_%hHo$Kx2L>m92ZC=)rSRVp4Yw^P{VZ(@VK&m`w0(6+}f`_Vws>}(?Rc~l@g!{IuDUZp6B@9 zshlsUd;9(Tsp020NQqTgQ@G#^glnMZNsHv=2($PFtSapS{$Ao+QK&T4SF0bwDhO=?9B>e<3*!56u$@Z|GGG=tSwC z^lAAjAp7daL4%AQurN(`c^%0|e#4xjfVb^%-DB{{g-zr8n8 z(8q5yQ!2Ch++g!catMzH5=BRDWl&|C(nN)S_o-je>uQ@YQyHu42UuXgc@m0|Z6rbD zVJqX$0=mEqyUSU)S_FQ*q7XFgYY!fTt34ONyO;(ShQcFx?-LdUcWg&=2gt8+2cTi# z{=v;$*z?qSQ*^->tlzppapG8YDIHh{pKG!%3tUI?&TW+5?c(0S-iXeQ=dq-oulbfr zd2i2`aqz^QNuxz>P?zNJF>Q|$_~AL4Q#~R~1_yT}RI==U*)j&+p3PDLUsJ6a`$3(3 zDF;;+iY5RW_m+wxB(X0t>U9k96K2ANy&Ma`XBK4Pkmn{bN=GL}&1!I*FAm z$8;9p^R~1-CN}3pnzF*51|DIwyP#xyi1OtR;c|V_b_~JOra#60cKdU`Yt*%SU=mju z0V1X>ctow>a?{%hhE$iE@1;47Nx)$TztqP75;LN=bWP_K2HWlZig}R%!3hFJ@!BjB zXh^YpY4(MdZUUvb{7Tsc^yypVar{RIyc+QbS~f2bm7SaI;oQ@QF1+C&0E~_e0k?>N#ueJLsmdKqt&n9MXvg zBsqfs&0+>>PSo0Sc{i)4*65=A4H0wvh{N>v@9-89TNoCN4hgMFR9#@xZnjpk<;yC` zy-zedVI#s4R9Gu+7Fs)xqk_B=dF-elXiQXpu?KWNE{3lhv>JYsvj9Xb@rBV|6%~OO zcHT4drhm^fd>xaB(X=qG#+}_ zo?bT4@ymj4@w{0zv+a47Q$;tZKK^imR6=`Y?W@M-SRlgF@wmfHmsB?ED_!Q#_|mI2 zLV|VEyQ~;8mj&iOk=f_a&~0GY+TQK5K2@PY=e)B@E{w{PIF= zzC|JoAYU=FT>}ICoQ&eE!UUgO6W67HgWsz6m=HHJE>S5PUSvehOjUv{;%sy$*i^O2?Q|8`yDi8IN3lFTa-1n++7|8! zBF?4il+Cv^;~~q%0VF@%hLCix-8lZJ^XSKK&}@Icct`V$WD-Dm?sw%bWY9_fm7gr9 zN!7UQ4D{uwu?v8q0Y@H2A-yIQjV9Y*>1~`OMEZm7O!roDoDtJEkva&}RoyB106Gbx zsoNfPfh~HgD9Yc8A+CDr8E(k~Fe&|R`nk^Tm@mPZIJqYha9&gQOoY2@POu!}2e97W z@4cU;7e4eoff1WGUQybwMWj7aDQ&uGyLnXP+zD<7;jXMbe5@*GgTe z`-U?wpI*y;!tT)|mWF%r`$^9?ZoKGNz+Ob(%?CpZyQ-;nZZ28}!>o+^Zhki^yXfOd z1Q&C(k?tEg@n-&21mU*9PafmQD=cB%l=7B)`yuAXlpR55e@}9OIin^Hn?_x?jT7I+ zk6Ia)#VdoCd0_^54}R`9*t>0IIZRQZo^kRs zDE;UDCqm<2@A@5Vj$9+-Opc=_1sQKcT#jO?I;k6zr<@#xZc7@TXW&wM%?o z|2r#G2-~*E>oGjgM=!o$rZMa7 zBDs9njGO$>Vl{MP2KBjtCChY0krH*U0e; zRLLw6`0LG}|H#+iy}{t5E9#$z($Ehz8(!7b=E+_ulr#7<98)wf2zul>08szQWEJ;O za282{fFlw(VbFugdKyW$AqeyU`k<3=gD4k+Q+QBf1KKa&S~cB!H(d=BZ_}qydWEX0 zRXrB6hcG#`p#82~C2r9dBA+<_R84wg2!z$&;itL7)SkHgng|vJz0MXIdhWuAZ{1*W zaXGm*whLWyIj^$!nGtdR>WXZrOgDp^0IV-sNgqKHVcp&1ut?h2xVJsdgxU*L`WW>D z@f|<2Ol|#uLEF9xCo$UP76b5$jf7t(+kF3%T%&@>bLtQ33@i5$ z3{GKGIk>`&&GS+1SFBI0%--lN}b5LK| z`}Rtn;!mNhbb6Q#B;C3@$%^TlyoSN2&`0Xfx8ir^v_1^!8_tm${&^CAvoY_UGQ{`#{QiPn}K{e?@a#6FMLb?~V1*D(9s z;f^Gy(Km9apCQ~|V__6SqLc!s;G)erw^C3F8of~|h>6#}dmoT$q&sMqXUCW|1p*S8K*xIC_ASnVbT4}F%6X+ph!H0qv^)QRH{NM&FHMnFG1yk6~zHDIC!;CNlSlRd)fIB*gdN$o*chw%W(5n=XiCQn(cFzS>7^m`e#wtOBeRIe?V+%Y0 z^(H3(^Bec)1)vGs_W3Gb0iaOxBR?=Y@x_AFbQ{xfz89>f(IeW7G=-^`5>)yZVK zpviuH(N;sxW{K_OMb_`wt$XehIm(?9c$MN?Ot#yJ0bP_!U>>B;9q5F@ce26Cnqpu;rks714o1|5-AnsU*=phFNkEwdQ%SlV9Ga-^6i&T0?k*&5bu$Fql-u7Ng@6-K zB#!<}9su5n9B}MKSeC>Rk+@P#WFp2sP$PI|vB{bmJ0JHTo^=^O@(bLc3$N$r0AGrx zi&duHlFf-WP#Pa^ZgApmtN(6%qFGsEDMS*uN80d zuuo>ve%oHHYi;0P)OStxXmJJ$5?4(xha7CmuEz$=w*Km7jgtrgoPF^AgPxsw`Qr8{ zVza*n3}>{QsC1gv0QNsisb0HqIdMtn|1hK70T23+$kJG#?R$H_^xl{ZYO{Aac zOO=C^!cWtDy$Iuem_U=%oXo*-oQ;XV%)jf4*!*4<1OIUngQ0G*?8>#>3(Lgq6s3LEK1X#;Kyln`-Nkg>4%1JJFH36vn5X1f~lN3)bSE z;LeVd3|S}?Yb(8&yt{jKdsSsq7d6MPjda7IjrCMgG4Bo7KZQmd9S26^0dY!E4#7gK zp-zYt2=YCECg;0^iUc@~}Ia29R5t|tEAX`jJwE<#a%e&};6vIsL7#(voOi)H|U`wqoD8nLLhCV<+)Gre2Sg9;Va3g1ay$6=SIj-DnN$<5z}ihO z{WD_amH}Mmi(`=os(0=_R2M9czTJqeX-Po`Y0t$L+8kXwGuFlj3(h9;-I9e$H{OBU z9{6P?;iGO-!}?=O0*F{A&XjhlbzhNaVs}ZZAnkri<`6{df{UG6=&EJ{ zRNcY++tBm|{Dd6~fYx@WJ+yL5#km-Wo?gUK`~9ZiKK!&;WG3i&J5|1RVaZV`XmL1L zcL0D&d5#(SHajrky3z`at4{rcjFI$-C2Oltt%&O3nSntfmIa#$e*0rsUo`3mM@m@y4XT zOaaS__NyL1!wfjl;_v!-4&UK*Z+JqL!Ogn<+rVD`QB*)V;Alr@IVzZ9fVg<-p z&||_U-I!N6#N9C&uM9SJf_0gQQJV1Z9+V$vf|NbUY6)|ei*uV}J`^9f} zCPF=fzZj2WFz%+0^92aiZF*gK!O}qwTaQLc=T^)RX-s49Ha_i96!-YDTnyybV^K*5 zIWT-g|A0m8R;NM!6A9H~j!^i9Rjh4|uQ?2n>l@bmSttfa5;P+c4mObpH@^4cGDwwP z2YiO1(A>kW<;3xhi1ZEs+fL>%Gl9>!=4Ew`G01elu|yQIJ2>HYM%hOUOzE*-X|#{8 ze4i1INkwZtPjZurc;Cflf@qqGFuUZrQ_E7t8{v8+XH>DSX=CrdkZ4OBK0>retrY zmW(4wUqLo*KjK8knKR5$SzS69m`$rk9<#7J4L`}#z5>t^)|(1DAjj$?q_{U+kxI&x zh&>KqNiQ1rO9TO4#Dc| z?XgaUZ1O?P_8l>yCpg6g886bC-R^sM2rO1u+FoLQ2U|oY`qwCwz*j3v5g5dhp@~#Fi)aJ+$q>rAMS*x!`8wUVbT|*1%FjA(!vX%Zk02WCT$o@S{ z|2^wi|L4`$e;%XfRdHySN6VWq^^(|_ZQcf5sD;k z$G~wYR>0R0NLcd^^W7^svv>c%`-;S-mb(wo--zXe3iBHQQ-3+7nS}llWI@xS9tJ#r z@6rKh{Q`LmBKu+P_joc%M{2Z8<3sI73?&9i^^7->V^V74$r%Zv8U4w;xhNNa_oSSk zt!3oisALtJsj;TM`G=4i{C^3l|L0<1eaEwFhO!*7 z8DkuynqS2z1y}<0t|VRRBt1JfCitDTmI4)I^WNh@=F+#oYx6+$f z?LM9mO3(o6zPENoUhe6PLJ9v7ky~$AGr!&amyDe(STsj|An#f(6v;>ZPrNEMP+Ij5 z^B0lxdZJg?$%9C>`~OC?Fsjr%&Z=*Ccx+DNe5|63dHbJ;s2B{g!Mmf|1e>i2&mSA}wbg>*TH|5kMF z0uQk>VJ=C2|34K!pixHxMgLpOD(4q?(llpaa))pp=U5U0*2$!Vx~f*ooJBFZdQP%A zj^^}^KY3>binw|nT$SpStaQ!QCQjh$lbR$W`eHF$$De2Wjs@687BCkvYcz89(xT>)YW>ep^wI4Sa`i`zumRyZ!!O>RKb9z~V_<`8>aO>M+!ey?xzFGCD1>bh+Ijp_9^Wxy48*HG3v`P46bYHdi0YR0~&G)Z}_}lJkQ3#2|jmxb!VR>G7IM} ztn<670Fw2Ji@oM{PvqcL%~y+)q*MbxSR@bYO!%bbUTx5D4$9G#9Gotn)P|uPUL6jq zg3C%{LLzM<$_5k0?0?zUgU=1Tu6rb=5Dngx@7w^f7r8#&=uLiGv{OZ!#-zfh=!Y9c zG|?^g-teeJ zBa`oan#qDrux5|Py&4rW^EX)9Iy#~ynSXjXW$Z&nK1w`YH4=P_mLMhHeyA?x#7&P2 z9-g1Rf}pL%-{6lHcZEDP0aws24E6byRL5!1NG(_L$|v_)_%6VvYaA zkJWE&7Z>aj7ofPEkdV69uUcqwtX)&|fk=>Xg>{8350152#Wct9vxwmX(zCSMww&)R zZw0HY^~@KohzV&K>*5zoVmwX>-<>UzblwN0Y*(o<^~ej31@mjzGS_TMQp_pbWju6E z(Rbq1#WfQeX8UnMuVceZ9%nbhh&^A1I_h6(bTHovoskJ?F4w=-*N(`bInr9S z?pBR-xr#Z5{z$bA{~*3n<^V{=2E5}CIw<+F9jc`zHLu&3B8IRv?ruN$(5dFSwS<)& z%KWf~=NX-Ytzs}wa4xj3=LB)RfQ4NNgDQF}lA>wA_&H?j;1eMH6Db35jUCF^;r1%V z@LDq1RPEWj^f1=c{U_z#2!Tyq^<1nwRkXbrVjw%zcMYOCUCPh5?EeaSeldDUO%ycm zV(I6Y4|br9euCp~!_Pu{4rlK%+vF`j>x^zV4ddel>6meZ)bdLF8d=*`P0Tdu>?(-I0NN0*5ti6FWZv zJw=<|qz#A(&+WPURW9`0*Yzw2Jm_Up%@B)b;@ystvziZX>DI)bG|@?M~zFudh|pPL)6N)(9ks!018 z#TNb51)-gGcPQ=^N+kAu;NFYKuEhNBsQKuxRgb6&r4AX~5xlDooRGjzT8^}hb#-;T zqIGq?tq<#G`LA3@C=fwcOr*fTs{8b=52Dc4`I$lStP6O*Mj9T66q2?j`oVz`6L0~Uw>&RkM6t# zQtC{GlJslWevU7UWNPMW>c8$rfpb_IpA%_H)MzSjYv?W?xz46Co*%P_;Q(zkjVk z?Xk<(6`~}!k!+DfLYvfmv4Gieb4A^bSCTs~6B8M83cswo-eS*k0yzWHo^W_%}7 z5?RG0_f5{O$5|1CL;xZY@b1#4cWhioZe#ibM%oCPuIcZj=1{|g6~73N_k3vv=H&Om zi#jt4Oe!6^+QGNwehR7TbiwOOZ6*MQ$eC)cj+OUC=AcB*;F%g%5>D+o1x+<_9~qmZ z1gkK~#4HJz1`HKqj^z;b>K?Gk;j+2a%1#Xio z&H_z7y8p%7y3ZZ*&y!V52Jucu7|G#jbiYFCg&ntkpct8|^t-D0O``g>w(+#!QijW| zXe`$0&3+8uK)D(6e9gwx=od5t29W{h0z*QEx(I#fV_u_YM7CH>{Paq+o)HK_(VNRt z7wR4D`>C5Gw0!NV{X4*(`R3rKRil-jLwnN#37u2(M&R3=wS}eiz8|o^7^ujRp0mpQTp*}1>YHQ2 z|N4v1PcO(rjLpPI>|<jDU5U7c@c0Yl;p z!!Uvz20IsSyHygae?WVJ{rT)!s9UbTQ5ODqsELtu<4r2@ldQwQeZTm%#g9c z4*`bT0``r6&#*Mqlm(U6ePk6GN$jDFAm)39qty+2J+_tF>U|ScsvP2%Z14GYl-_7x zmwr{`^~&+sr^%A$uB2f;5 zCy8@^cf5A(qQD`;?yyb266%l=A7qX}F$n`o=AXRGiXen!2aMii*# zT``0Yium31+L*7B)g^bozG75}*ecJ8`ZK0~8+}#iqxwlg`#_(Cmh7~5?P0U434zyT zaKVw3v5);|)B1IEbqX}21itJ@04FHJ;|tY0SVkB9_C_DMLQp6n4Zl)GGh;2F#TZd# zf$Du<bz6H@0DX(Ov5YgUqpYqQN!^l0|UI;#V(Z4ys1jXI4p++;HAG%{b4sNn7p(W;8T> zgkP=r6XOC9kRxHBMN1SZ*&P_heew4PshB-`+s)eoHSQ}Lea&gaZ#=~pZ(4|`bhUUW z=U_}Ck;Lj@H5Mlhx;4882z|mmd^gOZm$Fpj(fMnnOiF~h%sCM+UJ2psfhMHn)4uY| zk4o;T6(}=@-vL0ycSoAQe)(B$d~7_=kRexhX5}@oN_DXH0FMh1uUA>Py5{s%+s5aW zH--il{;@CAA>iB(!0hzAwU#j-E>Gdx>ow$AOfWyByxon3u?beZi?J4f}V;o_epDC7KA$+zq zqmRMl=bg|mYcyn0BI5*86&iBTa!;+>>i*7J?ejn3;T#b>3|4v4UYsRFlcmeN?L5?P zKuw!2ne?63szq0J`?q0=YiU8RMhfbDvXjLbiz;giLKjHRfs*(bgJK9%200LC0|de7BK@_kS)6-Yr)$$L90bW=WSj~Y zU4O*7F69Vt?}q+_I_`<4_j{_NKC0w^Y0_eIkP zp(PP7hq&EKz4RiPV_$#f>Gy|7=s?n~t(YnO%^Y#vSpKWk0MdOw00FZ-r!<>@+4Sw? z~q?J(PlZDJ3CdB0u&bc zNsbXQm*@*m%l`2)*{Fq0VVW8(av7z99Pv(MzB0VUGrEUo=52==_W5VF%Hwg?_ju|Z zs2VHft@%@KKQ#~bk{u(#r`2BjwLoo{IOG;5kxBJ>{>>ZZkMt@F!+8hw8BBk_e6Bz@ zQjhuxa5xIIjD_Zxcz;y#d2kX;u3Z1vS?HB6|K62wfvw1(Z)9Gk4RU$xSk&n-3bcE| zdMxiK6S1a7EQ+t3RYza@yeKZIFztCk<~PjSg2*VtdUWl@IJ@v}z^V z92+xWK1FvKo>ND?33q&vPkz^Pd396E%t~mj_!vuN>av2y3;6pw)oK=3!D^Ss+{yM^iWD%t^ zp0SGp)2&bDY*T92f74`q%=1#ZI@U@pk(d>#h_}c)s7GpjBA;!tr)RC(owx*lEb!G} zuwY46X5?pO3$+j7+p^l)V=mN{eqCYR=J%~Up5S0IK3aTE{+Ehm&uEMX$;I+Zb6jV4k}TPR=y6 z20np2*&(?Fn4vq^;(dIod(+18I=U0M3JJ5etgb~v0OVmt0d^c`cE6i9gbIFp+PG8= zaw+(t5{)~c6>gJ5?VeJxOx`F4 zL6HC+yGV~^#a;-0J63Pun*>J0?3yp7^%K3A{rd~P^#IiB7}L}!C^!A`;)VR3)lIei zQd81~ftfFh1~ULhRM4^Cl(19fxt;l2MJx8h_ zEW>oE&4pd;bV0Kia@nonY=jL(t#(yN>5C$UA(D0lh9Pu4=Aih#vg3Oj9rA2xI}((# z+{VcIzI6H`l|aAc=VjOG$_|h`U9Fw_1&bPoQ@*hj#}G0YZ>{sSmmmGkbfqmJQHp|y z4@~A3u#Rj@#ldL_Wex{mzbHSPW(hgR-6c>_5xizzQ;0d-#o91*$n`@r0t>VWu!hoi z?$Ny171w=$YOWzCu}fuNXm?oVF6p-Oo^jdgaAO%o;=GLrk1+viW^o~sT&!kp#JE|_(X%Pc@x zf${n8dh|C&9s5pIzf^R11nS35*yfI%&~%gZBRGrM7`zKe6$5G&*6qU)SlFvp2wIY87IE}^d-P|0r?9ma>aJR=s@C`5 zPgreOym9*FaW+q+d|*2bE2lTOmw&qClw(YBJw#-f)7VMD?AKfwWhHdB68LuWj_-`K zcnX2~gmwQQ+tP&?BR%m6A+L(D7wYE<1JNLY;0L-ZOW?V6AR4j=U>;<&utqWs&yK6L z+m@`@$caJSJIPhM8+D#6jw`q>0d6C|P}~#fZF{H~D;ZwtOIyaY5v5|(jJc%8^*F?s@WEL*t4zm22-Tc zd_i;W$1{aZb{0%&JZv?GtV;^R-&OGd$By8|Z+gKAGaL@p|yOcvSbqMKul?^~qe7S!q|JVuzCF zUI2}x2d{7aV~!StzR!cOKtGt6=-M|hgnS=3!OmaU3t#%E*t`A@+2VZ>}M2}cXEqhr<7%1N=$A4gmRgOUnd_U7eEhQR6gEA(KrA+2meN>s=Q z-b%}itc28&UF7vgUv%Iz2(qk{G0-Bc3qC_u7zd`5$q38$o1*Tf`OtBlx%CR1^9SkP z{C{`LDHBeTuxToD?GfO|eO)+J(Bzf0S1e4_l;7|N^W*!t_=FDQ#-?}V!@ViKyTOA3 z@tpP~OMuJHT!e5?D32@`JYL=}U_0$SDe%r9j1Jd(0D=~Nl%x~%6jx70(R*OY^7^)O z&Etxa^$^&ys8&cjDFl4R?T_3~_ynxJ8uVuP?E8#U-CXfWmL#i`lF2W&KBnjfUm3G< zJ)ADUfRiofLx3^xh}5KA3QvFA6%}z4b8HerbPHH+4*X|_s}vY~LAOiELvQE61)t)g z*x=~~Q$%-u%TCEjM1RQHf=d+)IDA_=T;psi;|gt@t8F$Uc6S*dyo1z z>O1?MTI$QPI+egt&UlskYaKbV>`Kxlqjfd|ph;^gvc<{q@1p7A(gNYdVhp4}D1G$F z`);tJ1VMCXmEw}9Fzw#d&Lm#}rv(ct@7OLaFWE=Ljc=-L$v?j5dvbXeU3(WCqWdB3Jy2?Id^qN6hM4Dj#7z=4xRXZ>9y*edNC7HhH-AQmbw9a? z`v0y!v--9Ru`IpuF{e!=@rN0f$A`b!!v{x%NyDuhS6q>}MGRY0bOf4Qd5G#T~PE!?fba#nipbB5^Q5oEh(% z5TqBXcxLJosrfvGl`l(50-q+YHh|Xwy{2pxW&-tOv+Zm_{Iw~)uP%O7C?D_Q2ec`j zHT{8>*X%Myg>qiF;Ha3?FnTDWUn9*K9O-LOTl{N;AO~VQaQ2L+34wVNXAEa>#NBB;lS+G6U-H~5?O>Wqi`8HZXdm+O z3^Led;72Fk#`0ShFhK!0r~b<0b5XLB$NeD#Mloto((Y2BWVCo6qfe-(E@k{Wpex0m zkob}?OrA`Ee)0cS_kU>Hi4;k+6bC<2PpFJBk0fX{ldHwIr!xs&i*om*Ym-dH@$g}p z76|V#PlkW!s7E!3)`)3GeX6rSMU1Zdim7nJCi-R!*H-IUhkv>ak9XhHBPTs5?$q4v zs!b9Sbx+x zfTgL7v8XF0JbQTrd?X>R`UP4iaC2JAr4E5H$n31W%)bhw z|0Yt1mxaOp_Gs;w&aixD#_@hB;*kY!? zrOu{wrci%QC?VavQ<{Iad3RH{@Lo=Y6GQ{-e$bN-)+S3?e#H4CBKRh{^Iw*=*b@4; zIv67I&RxwhYwy;!_@w2wnR%@~|E7dtmw~-B%Ed&{7$wQqoLsRYj4e)A(r|{LE9ei&^2ufH{lTR{{8A58W{d=s2Tae&Ze!YV>_AR5iSMtNoG3*q4(o@Ia8&xJ0leK($NBK6VhwnZXjc%#~*X;i z8+F5NDU2H_B-;~IS7%Gl@zeLi z7Gm%MAv~mgh2nEh8TaRIqDcHS$-ttJs@Lb|9R(WtJs{u-5%QR0?ZIn|4pW)@YKJcz z`lN!cFrYPXfd&s5w7kw|I0P<)H&>XfPoN?PG?AgX}%NHK*41 zrj2$fq#*6|#M#chzMnH=Ooce!Vz_w&=+{O3;!l|$?>Bicnb`@Z>m4wNa#IB9kE%a} zv>>x2Uq;+6ig73GNWbH&48m61#s5Wv-T&5PN&Uzi7se47)!O~#dy zAk0a^@_B~!{M7-<8%e`D;F}tJlUwS3{|KPe|mqU zvFThPmMb|_p2&pZ_0ol#Ns`9C$}a0RQnc^odFEU79c*kO72?EMjqElNb0&?BQkr$~ z8OC*n9jgfqHt#=E8nw-_DEt%BU)A6_0xE5Zex>0F59Mq2(h%L8Ue*o5^&OkYi3_#{ z9v2VgH!yOIH{)2J2}R$C4$pp4Mdd@Ig50$IdUa%aCTbwPSD1%%3xgAYcJRR@5nYIb zf!Gr3`TPH;E8&^&?9U|FyR5cIYbc~itxCI_#Bt4zazR$x7-=>nhE~JHer9#6r6@2_ zRLsRQG^CSoePTpj{QNVS&PsmUPI}z9+V`j=C*(2Z3V;q(P3`tJCL@eu()NSo;XQs* zKZc-0%p#3_AW{}96%gBXn+BP0I6{G2y1dw;koA;il&NH_FVu;#7uIyjaGK6!#`QF+U$tQ$0IyJPO zg}O-;Mdp7H_f}DHbYIx#n-D^RJHdmyyLRy49-I#D?%Dx@ySux)TX1)W1b4Sa8oGP< z&syJ_i<$emty6YRoxQ7eo&Ef_b}UyNoKzh?lNKeUhcUqTW8LH{o`y#%_)DU%!0C^u zzIIZX-4$qPvY%2LOv=f=+C>aNA6gGsnIg&#D6E6CDkz=Aq-v#aVR55q>edSpLSvtf zZs2N8Wmq=;M;dr>r&)~8KaRd9RpE!;HpDFclA+1<4<`AC6n=w;>2?|I312bb|C2n^ z3SBXt9Ejc7;}p4mnrgnU?WC^IKoPz_Hq*Ypm-xczG2^rjAkwsNBW|_xLyV0zEUoAl zlr0RY?_B~SC`@dto+!J5f?qHyagJxIGg{%YRrW3f=<8cPGzw@B^WH5I4Bvcw11p^W z4+|i9#xcq9<9{EYj~wJ>Lo~(wjcLTdpCgNBpGg>W)dSPDwco=yIfn?+OX;79MgdX} zd{ceEYeBoCR*=!+ znCQSVF8-AvV7T5B@Y7tf-gXLEwJOj0S*a+rm_i|l31MvU^8$caXrwnLKQkkLV=1{< zN4eT}`Q+0DXdVnefBp*}_3$b?u!g*BNk@@Ci1Ie~zSA12C_YYKfopr9gQj7|C(3Dx zHkg`|OlK!RLQ-I6#1`+xNRB4X_4i25gomQz+*+t+w`U&vEcy71PLNllM<6*x1}8Fq zI+P9YVq??bU!ldBk4o19=aR2Qi~jW&ayPiFy%T#t@aA6^Gm=Tzrrn z@De$cYjjK?gt1l;4iX!o9CoJNB zfH(s?Xat&*@;EVrct=)XzX8TC3$+~OfS>-$I%R70+*_Yb>-Lltm>Kbr+s*O#aQdT4Jv$w5T4vz>>!kab`O|;oe=ztkaMN| za_|5;11Z!BPm_BIrv(OqLCM8&?N1fxN68|Zw^WM^aTQ7ratO&krV6^S`Xsyr`4?Lb zBa}qfRATu)<#T~?KBeytk7Y4lDA6s$BHG(UUe0p`2pMGA zOq%1#HPJrH;w>@ZSm?f3)C?DeUiI&7T~N>!=rxo#-g3(w9f71lQpXEhDLlVQb|@_} zU?WR#^xemHb$0)8O0ZZ3_ZSCcD`o8qfaSM&xSPr>#8NKnWZs^{xT_;6c`DpTw9K%7uQGetr+|BnJhrzf zaU%r2GnX^7EyTqjs{Xo_7VYL_RG2x`2`lA7LrWDhgj123CJ665ZGg!A(;NRwrw>2X zJWl1uiGmgyI~nqL=Q~4Zp1isrD{?5_a(g7J!LeoWVZ2MrJCO{%2^cnsAMbLzdd$up zP^WG!-hH#YqT#kpMi*IcL8lxhYD(hoB8n{g2Y;2Psl-1>lB)$(Ves#c<#2tM+ z_a5HJWg4}srhPVK!nU7LvYpYWuEZ_S;>v*oxC{8y8vMPnw0No`k>i^d^P`)nc+vSUVBbEq&>IoL00VHv4>y!Sbb3*Tnp3wT zN{88oL>b`|6aNm-ExI;zj2k;S%$c_2nznGdOQ}qvVI-Yi776f$7(Qa!owZ9X%JRF5 zHZB^(v40zT5oCVxS+k!dv`Q1P4vl{Xsg0Y*-=9iEYzD}b)3`~jD|9V3GqBqFBP943 zMteJ@QkadZ-1oxX3ZPjrZYs-4R$BOrOP~I?$eMRSF4td|OdJmx{?}IG$45=)QB3TL zx7ZB>Jc%lbh&(_*=ns=QAt!4*vu&_7xe_YidiFd;J!$!XPod)3^l`j1v7mtl3Rn;j za8rrFZzu7vW$bQmOwJTAC+sd@Z>x4cSk<8wse$$`~foR1phHRkwUvR^i zX!H5Bm+Y60Q;$i~wUu?clUEnjR+Np1dN7MkR@#%^%R)NeUYmo#s`O(uq;3B}E51Yi8T6ok z+NgNCoAth8CM04+HJ7v+!mN1H;_Htzz2e7PF!*dK>-QsB_?PA$xkRToTHInafw#ML zU`Oi1AXE9qK_f>>ZZ_nDH3#tWD!yrf@MUsTw5^2nIm*7$vt>-Fn|mxh)`+x5ytPzx zB*ISsv-cHgg-^cd-)FDXe%>~h$&V|pRrP4nZdM3dAPFbjNAh|fQBktlV8|bu+dznrww$0CW(1AgQZ8_CJGVI^^q>oV*``hoKA0GZQ$7_b;DAzx-BXa7v9QK)tRdf; zu@>gfI|GQf)mHuQW9o5_zqb979ZzGU8;3;>)qU91iSYQW-dV$bbnnJBxG@$jm9!?t zROP$QZ~%6vM3$254!HYpfpid@Wm|9K>Y>^-S7 zX!AZv^p4!6r^OCsjrUYH(x;d~T9Ylc@TJ)Q9@Nt_Y|;q&D9@>8VP8 zr9hv-Qs%2*^N!gl+InezSi~8Hs9t8iVm0A{zxG6kp_CAxRD>~J4JHPtIb+<3>_!>LD0;3dBRQ;3 z3z=E3m|(~`kq6>eqs)ERy%&zZzy44UtGk(o8V`lGhPRD67p(0qG_z0(b(lu_0Ys^= zO?D+qJ@6U)2sBj?$x^O6Dnf_95DhI3FXKK@b(L$yv+3z8+G+UG@-7NB7?my-T)m*53sIA>@ z7OlT;M{`(sw`^BqASACyhQFCy(311nWR3e+qB=oG1 zZ>bvYC!I2zdM`^E4EdUokqwDDREv|bO4u(=OqikSwJkm`x}n{`|N0xl0vdarNf*`= z%^2QxdF8W*c~DyGnd_e7?5@x>`H8>l8*1kvFNZN1W zNKrwdM((2AgUe-Ky#|>OWl&{TAYp{pK-6LccaE+H_2%_^6&LHoVn}b)b3!E)Pv%OF zx+F~UkQrM7NA44@6@5ZY=}ppxS_o?WNp{R)uXThenKDC}v#Vk$#O-UgADAk8Pd>6O z6M${g?w`OfLy`fHveZ97=ZML19Q*c^l~rv#9Hc0T8(mwe57k1)`^=rpI)9Js>GxRmb`g zF=UF=v!#hQmZ&HiEi2K*A**(1i@yMwPt&LleYz5~SP@NTpkZV;U?yA48cx47zPB&! zqgOwa-%+@fC#)h6T0?flR4_~6JedkcR0N4VweLfBzl_Qal?( z7Cck_<-m(xE4=+MBiWh||NiKapxigM{v0DhDo8NWz7VuhmThd_D@|GO&4t5qPHaee z!JN%kSN~T+!CQ&0EUDP`dJX(+nd+NW=dqz6Nh(}?9>~l?i#Dy{Nn(OkpPD!|>Yam! zRV8(?VEKS`->#iaRfU`Difz5${Zs+rhW_s505~UXQdL3 z_1k>vl&&H#_)F7j>jw%wHXN#i8mxi8c8*%8IBzvcJ#VRnD5mq#V)(ij0%*(8hD=-@ zy%L;%M0%{x#Yt4No-b7*h!9n8)%#(*q}F@1H;e*$Gw{9MksC1x@d{q8j~T8EDg%1mLusD zYfkDerKnT=fT!TK8m&`o(q-O?+r?HgOKM80F&TfMA{9tR_qLVl%u4HbdhlANoPghQ z$~B})eD1yd;Q*y*Lz|_rWqxf3<%`A5Jz}tw#@pORJY#jE$R$jW6eVMD;})fAESiZ^ zv=%KH{*3>JuuAW8%L@8XJy~{wqD*!7udZ`hbwsa8g$Pq(tX$p|7jo{%5QNZ^mjh>uWI# z&{y3SNFctyk5Gl7@*Gfl6Ej=B%RDo3<@n!jIDiPXk~#oY9NUF)l*GrTJVfU4fvo>t zCNTOV@-};Aj1DIW@A+^V{qMTwsCsHVnAvXVz<75`0)Y!?!C3g?a+{;mh6 zNTvQbNY1=S3t5qwmQc!G{$7!f-o*tYP(4#?Vs0g99G)4LuFPNVoh@$Tm0b!nkQ3ln=othkpRTN>XZ6QJf%shGqpQ@Ws$+dtpY()ab-fBBkH?u9-lQS0 zGSDf&yPIa@4~hEvp=!q6{+8$@=$>*EVY?Z3NVxVD^F%Mskj2aI&qP|sWnNK=M!rkj zY`K7Oq*^MUU-*iAMzDB2?B3Ahlot@G%ifr1}Gkk{58UzqVVG{zcblGhrWib7AjXI#H3aq#-j#+T|B8)kcU^n`wTiJ z+zNdJH)IPV=p(>{l!||~f*mtpw^&}Kv+`$S1YcjY!5O8`(2FMwXWg;yV62Ent^jpq z>0_W2VN=_QZdPvNf3Muo~SBvJygKJl%x?p>TgE1vEO<7k#$Sef5v)}tPt9iLa$dg>-uO8aBS zn)60-ms}nS8xHUq=c0uPp0sU$(TdDY>-oCnMuvYYRaHC_WkrGP#Q10y51~5W{8^SX z!3oG>?-tz@Cwu{tI8&!sXN7c6Y;8z5ku;R?8^xQyrBkk*zo7XxJ(M^KipOg6@Z#xy zYmVFAKvh%ovrBeiVVcZ&VX3j4)?%xs}y_eR5MJcF_rc(;%F)gY%Jj#X^^p zHU7Cu(=%qYz(jseZ9L3J_DR17w>8d4p;hFbB?i(n#ZL#<6K&0?gKaWWmpy?3~M9Z)_=9A3o&IZbk?yWG&Bf9H||EfO3DY)a>GWrX|u{<HHbFY))Roh=02kDCO|)$iKigm!rV;=@VHBv!qI^Q3Us45YfgBs+~L z@nY4Gb%t7)eha2zk(DY{kOlmc*NRq4>uz{uQZ1Iz1-U9pH?4!X@-6|kl{V*r%cOP( zo{&Ere~Yx_)*VPr>sajEe<$hi$`JAtc{=;sQq?HEn7XPd)ORm8g{^s1C;W=`Ci69QclTqlnbp8%3*s7g7K}L;?o`9DccScP^C0Ql z&O|I#8!eMX5!albpo-_n3a%!BV0tk$`_bsuhKM)i9ZUN?To^rV52PP&HHa98J@%#N zZr?=;s^%^w9tYiV+)TJ(O0kUuFL|OM)6?=3DBeVGtuBj9F$N4rz&5i`b=L|f;7 zKq>xt+7Dwp?xZ8ORfR~`>N+T_gW1LlAXmCk4#%0nG#f2@kL6tFyr=C4M^_*@+Pkc_ z%GUW@Po*4w;t6-#fvYWF8J^?QyKGv(f#RB~pifTSO+8Y`<^aSj7?#Wsf~&l<$v$ zGtS8^DHqBB?GzR?K`;6!s9SW@x{}p_1oZ+Pa9PC}yWnfYNSRb;eec*o8p|jQ>Gr9i z_`aQ+oAw`v6^=I+ucTkrNKv|ctI^BVmhnfP-xh8dw`*JI9p@l@zC(xm202fDaap17 zQAkImARaM(C@Ff*Z@?{xg(>bzo2{<*W@zC6#NDZ`8Rw^KV7n4Wy6MiSSn47&!beKu zajwR1kh1#4Ow$5w|8Dkir4H~f&9$)t-)+6?Cr{Igcb z^hG^?u;$opC-WHafTG~j!&1Z4h{GkS7qiSKBDY}h5UgNp*h%&>`c<`@%F*Fgi#jp* zur7I31M|ipe*P4B@fNzD$7DXpm5-|b&8uC32wph$aVyf(cx1=&e1>ESZP+n2c)(CU zLj4$?KW_PW$USL)&z(aABcz4h5|{WrFhRQ`S2le<;tX#_qaZiXoaAywS9O?XAt|JdrIra-)h5R#4j>=D)Gh*|1j(osmKw= zGagET4J2&wb@zPYp~!d=PPfgo0o+9wQy<6A|EwQ$7KKg`K4YrU=1ASkff$nhJne%D zmo$&g5Co!q&24^~ftVJ?OZ(Tj=kz*(4XEW%7E`}3eQNxUw*0ccUB-YQh_*lYBc_F9 zX;1jeRo4E^Pw<-kVrzmPFg)X)HfJ92yML-oFR5{i?nfqKKIJ!R7jUp?H^NqagOgO_wk65E9XJFLU=A@9|91Mu;H=?3AqttrW2 zw7v#0lM*vq;`OVWFw0-LawH=)B0KH3id!<**RvXfu5D7WvPTmf;jMp{St?dXD{Vk% z>V*~Vnw;G?E60hQP@e2V>oO9G_HU{E$!t?%9f)rUZH*JJ&9AZE`R=xa0x@>iIdTne zA_vAi+#l(#W}?_bd<>WPjAdz@ZH3lZnT2ryzB3s)$+${-D(Na2N;}=y>yJtmP?!6j z2mN=sucNwc9PKIAYU%L-(Y@7@;dj$5wI!q2h^N~fH3U01FLZnVKA$<-ZRFnU%pZET zm3xPbDMzCaFul)Uo7+8vU*BHy=Ai{w&Fnt_G*JwQO^^wR;d{TGaT~QrE)Rp|&NHnh`j0O)v$|d@hT8S=M z`^4=F+aK`klw|9IiW6)x0V_T<8l4@7B;?Hjb#&CO4b~pul=KEUv?ym*YI%{)UMQTk z_qpu+g6!wlA zGjzqNIO9%F#G6w*>k_XYRM~pzBA=_`MpRc=*uybyqBcL!Mll54S{%$)@}{dPKmSUb z)s@F(5c7+iM=WDf$80;KA^->JX9WwXAB64$uN)@Iw5VM!}HG?T7+ixbIcqTryzAJgBoO^;Yhf$^K zpmNm#4yXo+K6s1(4!q?2A@AqYPg@JnmK>I<%cN~Qmw8S9M7 z{=Zyvqandf4`q=a6}MuWVcIGkxytKXH%wqKxg2Kez#aQjM5PlvV&dlE?@(Jc(MqBf z9h2(czV-qQHXczY1}XrOPCDW5QY~e9Mt@qF_JBP&GR1_PyWquX?e*y?CYhM%9OVAd z8h=!)<+`f8>sLK;>3jgR7^PmP$v`;LYETy3`-!V+f@pS#jK~D5MV=vw>suM^J<$)* z7-L4+J!S=MI&|Sr<3BO0GLc+E&D-3%05 zveLEGNVougY8Kr3HBs2|bH3B$<|5UkzFvZOkzM!%XX-XOqu`yQKRUB+2>2XF&B-sm z3&VJzmZ?tf*3Fqg*}O86g^poAdT`cROp{>+?#zkt^NOO`tN~9}%9NoHK@k&;0520a zIqoeYfB^jNuAf=xhxCqa(WrU>o44t=PqD3_6jy95R4~$X^47LCA+z+4c{YI0+(?_- zHrz6!_#jj+|Hs+J%^(QSuO5!b?lDdR5$&TlsoEa;3m=>>PjjBz(7rd++s>qDJBnAX ztJ(Z-GUFM0T}xG&NXM1zc`$X0ZzXzrEqsWh-r$_0fZuo~|MS(nW|w(=-x)kz`(+cy zGi!9FkyddRF|wP5ja2Un zHt(Kd--+g5m&+%4WPvmv|0yWeR`#UI)p7Y0j_{NXS!PY9{s3nS)6KRo679rG+$>zV z9rg=XBt0fjYA2fKVbCI};qclcF?UN#{yc)$l^uF+B2GKcfWEek2Q9N+rzi@tTy`QcI6zfia8i{=;{Z*&FxYZ=dNfDr2jN6e-hlIrT46 zN5KTI$~FMVcsRP-1)~z$y-uNm#6uTwAwCo6&iADDir_AC)zaaPN2F~mvP6jJFTMTB z*kKh7mXF0JC#jPh2sh+piTr7dC`6UZRi!|F`E{V}?E^rfDuPp4Mw|@l*FMY}1M`0l zNu;BSyIKphGaDhdgZ+VtVhCNpMiwX+xGR7+f0P0MFrL1kwp+69A}&eJ5@Ff%xu*mo z76-nJ@(JZR#)5A>yqIfCK`_RL(tN);i!V351^lhpA_1J2KX)0mc2XYd@3Ag_-g{FZ z@p%XWdrC~!0UDhsmz_O~&i+rxaJ}RlEjSBsyQg!+gbUBnPJ)Z@`NK3$*)0v)OXD60 zODbZ)E-1&-EKOO)#nBN+JDzmFS6r_D1+Fy|jh!&bmW%k^h%8!eUhzs0JSTEjjK=2d zXRB;AykJ8?3!vM0`41p7EAtqu&kQPeeu=CqtqAF9fW1#&=;=?Ivc~&ai4!3eEl8t! zeLml$!459cvW-#=3o0lsE$FQs><>~cTfF!F3m%mJBKj&I>}rFeQ9?H)^Y%eAqyGw- z&`Kg{I)w*gX;m^JldMNfxo&<$q5}38-Q6Na#>R9t7Z$0b&On;}O(;mP3{xwfYj7we{bw$=nM{O+XDj&Ay>xBtQ4xyXClFx z`Yf<~6)wZbR)S@UFI`R8T1YJ&)YRXSf~Xj9jPO_-xs=dv#N?v7O|saN_W|8*H7fge z{Bwx_J^E5XkDCceg9RwK_D4ygZ(_OSP)dDU>x}2Dk~y=|#}IMNnj}A7n`Qaq8*%&& z4_64Yy40d{E0SQoxI1G{TALcIW5ALLST%I~@?!G$khwp2VQaPma&3--dgJ|PnYw`e zBJx`=hMDPC1FE5XD8F_`6l{19lZnih#hyrj!DP?63D}cAMU#7s!gCcYvp#4HUr}d| z1Q{1@uQ8FHrBs((2s7&;npF+=3z$ArHe)I)Z&kzYi^s;dQbvPg6F~nF6IAuvpE$(R z>t^*pu?h3YhfOheG0{o#rtqG8>L;7Euc<@=zvh7VsdeVAJ$RY?4Jgm@*pcd;U~+<7 zVQ#xC^F70(@j&Ap`=wr35^U#OSziR2ELjdbB+>!k7TTUb5bxBgif;_<)jkq!b0>ZTQ zTq@mGxc%=0XzOd$*$+R>nImSlEZoI(gdJfFnx>2i|4L5W8XBD;7!O7K0V?3&e7(=Q zJ$f5|wyh+J^o(*FWhtBc$0Bb`d3G>Qmqt}hNUcnvr!`Tu=sL`T|BdxP^ZwCRE^XG8>V;Zk(cMarQXjV|Xc$wi+B-bLCg&BN&ujKLH8L`59J z=fU|#z%ktuD%Yg$a}#i4=)!3N@y`rA^P`|v@VYBbNwm=K6vc`7B6e7+EP4LjKQ=0Z zp$<{Q>}1vH4{!o2lbgXp?y(Yt4O^)D@vvEMJq%$fGN96#@Std{%9&l+2;1jc)AClYyz zw%7QPawbN9Yxz$1@?E65;a-m9h1IB=XwFb>$)RM0!r|M!kn&D@`t(hJF_XE7KY32> zjIu-P&u2L(Q_Qm1@9}(hsNCqQ8N)KB9#cq}*}xp15@~2p_(;10*q5yFoQ+Jf^NbD^ z^y_80x=bRptKz5cF-h$V?|E1Y-t!P=D(GEO?}LCZXPzkjeJ_ggsh~WoF&#cSh$wgX zQS53Ru^GlaouIgCc;cO6Pn}>wnTU~Z_MtU6Niy|4*zq3=8WzVDv9DqzOUu!8ZK;vN zMC1urbSVS|lkuHjYti9GtyAuRS)@6iZ`0_uf+Q9HzUdE-@u7qtggs=aW}@|-iWI4snO=Kx1|o2?D8}Lz>^W(c5+xk9on$r>nF4m7U+?L;S<{2v zY%onhcOtVKnXHMB!`Y^^lffh;}`p`tVc=?5ka3J?<6Y zktKq!fWvA)w@RohcDU&Kpr+`Ag-{r&cD*M~_o)KX6l8O#Xe*omRV=mAVWjssby9}b zp%Kz(SOYEYX}`Go3Wan+6BUb)<@`lU&<*bdo$lDiR1B2jU#k{j_kK*#rLXSdk|b)h zSE9wY#cXnkmm_~ih!@`A(A{J#;0QVsPJx@bja+m^vh=_d@c%Lat((MDWi@Q>9HO!$ zLa(hGy{AUgg0uy8WCcf)&@V3JLLc1i15tE0!{f_eJE(%yO+m`=#BI=GxZ8GgjLVfz z)qJ}%ce2D;3fDP*3Zj7^Ut)tF67@j>Wn_6nyEE*!uONxTFiwGDrp(YF7%AyG%g*@l z*My`(SyY}(-bO<+ZD6lUm(UM)xX5FhEM8nmgCd!l514g| zV7z`7q#BH3)6rtbvR)d6>*78y zCLx(1aD?b&CXS%mELqg#W@>9NM;(8WNPE~d8}8f6_{_S|mKRpNq0KEnCrT51PH%IwN4XD+&tf%}c&z1_jUOETE7VXA+i+sIqbVDGvy&2Ji{}!HviIPj(+OOZ$`_H=+ z==BFv_ADtDJoefb2m-0pq+vfXHj{W|ZNE-4;pf|_$#7e_r+(=UMyK|R_bo9ZX{LCz zX!!iBKnZSCEP?s{XDNrHTCb+=v|yJl)tRK~nwCd87;c@LCT}7xE?!`%rWdO?n$R6%fex}2SlG?S55=#Gv5RCMhlMYKRA{7#b1^;ybsH6q*VB>n*+AQ;VkD$ zh@bJ03`2qHPzB{qNv70Mi{D^baz(5YOGCQF7L%mD0^VHGI#auiUi@OT*CiH{%s+}# zJT2kSk_-g&*0I`*H$D3);P8+Jn?rAGWC`W;PkkMg5~K@3!HCx`M_=A_%{_s=86Sib~s?z%!P@{hS0&R%z7oy-cNpODxZJr?0o+iIiuJ8O;m@z4$v9y z7W|e<5&G{m@@ZoW8)g2ljuNdO@k{lWM7e^%Uc9uFj{`+RtcA*wrF zfYVb7u4XAnkPhRaz58?k{i`vKo5&znq^y8HbZly~CFazT7n|awhEI?|?M=XkVyozz z6dzm47N07XV=HZWrla!SYvM5U=7u|5Vk=BE*~*w(O)*MAC(&;H2T1&Tz1JsZvz}kI zVQlfO-`@_%LWSN%q@;mLd<8!=xRDE}LM%?N1O`r)05T+bNS~7nYVfI6PIYYf;iUt< zdO}Fg-pv>o&#t#LxARA1=ybr{+mtDcy}kbpYdoFactUF88+)LyX+U>@WClcEmQZr$ zu6ED~ISbOZ>f@Z#sq>UOA_FxJ<&-~$LkvW5GyU)m8BV{?m9VpHo77-YX_d*GDkLP;_)QaUb}%zQG=yPG;}b!nm#*>!%$}OgaT6Yw8`Qlp z@>A~avQ3Gc-|Rp}Ln1Xtwu$Q1T*2Rs`S_I&Ti#)SjWpT_Xj_>3FJs=wv1Zp5(;#tT zmeQNmko39Qw^aWiXAHu`l_UBF(OZj#>pqlDy`x1PG%%^y>pOB7Mx;5>6xl#K&g;^h zn!8-4yB^!{ps?Q|_;QyB`Kk~5IPfp!rRH=xOE3bayk&jgMT%zOA2la`g6OE16Rg`8 zk{mT9b#QnAI#pCN_)IBi{nCg{_YIc2klU>4CX&Ag?316nt65KbKICU!u6;)@Tk8Bu z6Al`NDZF~r1Bf#R((^#ev{fvI#LdTe)IM;oZt;#y*=s;CG(8`{7l>Y}1-DCs?0m?3 zD-03f?w8n%YyzJ|(^Glvzw2tubOnpBBylokd%Ox!4U?NVR_v?B_S(k3LD#H6pLVT= zyB4nC4Xh1Q&6@p9z1F>UPxg!Nxv%{2#%=U69%A`hS-cJOKCeR2LO_tp`$Ej__uZz8 znNPkRnu6j58IRWWO&}|M@8_W~!>4!B{@t3LBjjTiR=NcMPL@g+srdb+X8z{h=~m(^TLt-XWkhMNG#rag^;hTRf)t%_Yi{43*>JB?$7o-@F-udg0kBY zre5~bzc-kdt5Av%WsWO09E+Mb)KcSDXe9(deC&BqTjdK`-x@8w52gXLkEKGyy=Qw)lp#$ykr+XgrvXHb6-WiXE$Jhi8YJ7$u^!!@sj3F9s$eZu>z%i z@O^)L(+^z3xk~WV$5axC-?tyMy$>tZsm<@VlrsY;s&VFQUcJM)srXco-B_#SLPUNI z0bt0_ZYGu}YQ1_<=cCSLD$_6ga?Nj1T3B?kA{Fn?)5+xf;xD0qIJS-R$$Nm?r)CSZ z@|gBjmd(-8`DxlcdgBr;+w7$*Gyg;qq@HCy7Ca()SMIQjY#&2= zQFTS1KItk#F+!#uQvE*B8F5D6=?Bm2##-q9V?sRRw7mKP!e4#*JMHgBK@E!cC zG|z!-$6_$+DHJ*V$0@@A;p(aVe=`*=Z_t6`WApi8G76t)ccpQYfp4aG?W|Nc#N6|2D}E^ zE$QtY($Ve)PfRBxVG^;J`9{IW8Mod^0JK9|{D6{o9I+Jj+;C?JzXeyykIi5I1&Y>l z)_b9<)qt?LelQo=X<(RKs*^h2q@p?P$vf=u02{cd(pm zN;Hrmm&N`ZVl)dE#>tg?vG@r^8sO;s=jU16(5{s&_bm3pghDb{;Xyu-rviL^tnoh0 z`(Yg-{3d_FCKv9;w9EBHJ{o^C^qif`8OY-;wHGtd2Ti66rWNSVCqa+?!Jm?8AgPVf z?i=1D2=G<}JjVYjOC|@0L;N^y!JtAb1_2Ik^FnBO_`}l3^=cb;mU{JvOGZRJZVP6nbP-tJ)=*~@YWNa5rD{jV;*(Tc7P zY{QF*`wTx9LGs0ydbpB*#}LAZj7*;&I*S-gt^Hj^QtU%lVL7*KS8rg1w$eALD_k(@ zDZ?=-eqGj2v80~?h2^0)(Lv zcB)?u{5BC!n!iPyMKzLV(7*F979*`eh^WdnWv7s1=x&nO4(MS_q{hpTy z>L6V9VJcD;GnUZB8LFwd$~bxcMMm%*d&Snnjld@RmkD@AQ0an1rRrJsBThjQrLFuF zW=oQhZIGZo60Qzl?5B8=+HbpZ!u}M_C_9zVvtN{Fbc70FY7uoTJQAyFA@yjdj-)E4 zQ0k!1s&ZH@#pa*%#@So`zix}SY{2bXJU9`RR+2$#H6??>mSJG^qgxv?^B+=_tC5Ks zzju6?myWWVZ$IV@AG}=4tFH$a;NVrb_&k%d( zhT3pF7rzj#QdDE0=X4OYqj)lHawFCiKz>8&uQlp(Ju?2~HKej8F@DFmK^6z}VlHR%mu< zGm!HswtqaSG~^eK)Di{r+Ni~&4iD`-d&(f_)^m68#2B{8GwquiV*?R1i0lbgeugy1 zbE)3!+@nsaRm#qvrZCYNKZ+(gMNi2K!u*AiaZGR=x9{D)+vp2s?&X#**HIOG``VwO_;u<=tH?GT9So|{q z!cxLz@LH__lAERHvrO9X`O_WOg$izFzo_O>E=~qKpD2#|(#;bJ`FO7#m%Sf&!$vqv zvGe_w8N(&3w~_K-F*+t zg$o&J7BlSx^hD=HrNhN}HoiHF3p_bpT3nL?1Sa#h`EmU}vxz(~zMjQ&?hKLKtpfb| zFTYXz9~QvM>2B27b|AUo?~NQC@vC2HuWYYGhCcR$S!-=%8jblyK%5F%F-RQx>5vB- ze2w1@sa33)$swQz%oK8g6G-XM11CTwm94_VV5Yei1GM~H&@D9^r46ofyWcTW`Qo9pWRy)*7`2oM4^$WE0 z?SeHT>K?l34&#_9Z4Qj-kyxfzyfj(yXkE>x8A!$tUepyK4dF1qWWo54RpR!F;~(hzXW%I7qB-K9>=PjyB*i2r{gJ`cZ9_m-<^9ngp+yBaINg0Tdp9w z1U6a=9QY`yhQ*WRea9yVwphJ-wTjCR!tmIx5II*TBh}F zmE!eT4Ws<4@DX-<1Pmg|1iscyN%T!QuJRKrwBk3(+9!+uP7O3j5%_{xEH*c!&yq$# z$AV?AXkPdNm{!V)eUty(9GdI*m54*dE=7`?u5jmRm`SJ8otmD~mv>Z;`FLYRSxE1e zM_H7BX?U^C4d`sN$Hx5U1)0eE)F&sp5&E-2%re1&+()n-H|?btrO z5$UHA=w##^3^cJzdCOqUFhwr%gS7NB5(9sTR4;V{U~0>`p_w2hkaB5|%oyvw@p z8!rJ7(saxWNf(PG}(^S5uyF(cEI z>GrnO6ebwNXmeSoC-v~$%vc~zw?K^N6eWM#^FN4E>%Iho^b2a8Qm#(FPuh|%X+bVD zTDb3_h56;ZR2--Nr}B8^=XzqE2OazKB8RG?H)(Xw{s zL2OOGRqzy6zyr$T!5)QFmobz;;=Bv!e~@CYYi=?i_WHGgUKejTyq01L!#htBg3T@n z&0J%r4@J#u0_mdwO(OGPMh7O*^hMMvuPTf+=p$MxZ0gzc4_{WUyoK2hF60r z)Vn-asV(pFULV-|vlo8Y_z_NtWRCPbr3bb>>BsPoE9GJ(y}{Auw$Un?%Uyo&CNvrp zhl2~Tu|h=n?}FVoT8AofN5JF3d>asHBAWRLi>W}Jv-0U;eg58i!=o=c-*%@{M^_)j zD)zMpR`?N~cIm!(n=J>~ZbHgUf~L=|O<#JMIL`-dH-9l`PYhr&l|9u|XssnFac9hH zO+FXS+f8-N78o}p%~(B}i$OEc30rjP8ouBcb*xm}ClWYCS(S!WnLcFS*602f7x~6y z6yr3M@-11)9F_5X*Eqm8!|X5baI+J2f!Mw1+Inq>=8xOU!Qt?l8&li`Ho{5yR>Tz< z@*qk9hvEa&KFEQ6Vd2iN&8RA(4EhA+6FXn>Iy6!36^CuV*=@=PT~Eq>7+v(gFBl{r z^)V=>>ubp@MD)RWT&>w5{;7Ty^==A<>ikx7>tD@KQ%Ke!c<6DexRC+Yf)FDNy*BHM zyzl#ajV<{cpT8+=(5rWwp)pVN&Mwx$*&*#C1qF;ZgOJjkr@JTFLcHvj_igm00j%78%=v%(Y;ScFU zmm{{)rz8Gvt5!4sRmql!(>2Lrz}ylI>y#+Z;9&lmahOzlnP`y8aRxsy{bm24k?y=xhN z)rGJhZHL6grM%TjvQbX-PCKhT!iles|44UL81~RKOCyW;+udhnYH*p|_k^AnQ$v_P z(15G;oBB*cuKv&$Ih8!vm#2%kw|wSh;y$Bqh@V%uTZ@a_w9USo@WkT4Iw*UGWeBK? zpg5_W>VLg?z6qtB9Uzl&z+8WG?pQW|2)-)O@ie%N+Lote3fo^(IEE+T;cunRH+SQY za;Us`&%CTgP~tv<_^>v@Qt1eJ252?lM`g{EcbWv6qYt>|(VAJdWl0>)rf7{ImMPKHF3Vb*gx$J*w(?2&mq zOFeCO@GE-T5ZMO_@qGNT9U_(sEIuC9-5TAyB$@a@utF#4Yq59(81bvK3!U9RRF^V) zZ2f!lGt$0|-#ch0meBDoLDwYkbt=f{?7nR{)5WZ7WZef|=;=u8CoCrEl+c<sm{EK){o5Ct}(}ou`@xym-X>)DeEmc|-*L^5L1uFcVj$AlZf7Q7VTK3NgUpw_VHPWQNCEyrBJ!78X7_z82 zKYTPh=~rA+h}|Ed1cf>-1gSjzN#ezIDd=cCUUhmbfFq_f#4CU9bjejpA7fI`$+>y?NmgOv$~>m|j7zpRfY6cPEqnCj=iWq(@+U53{Fr?q zJVH9t1w^~zb%V1Yd>sn@2%T=8`bVTwLT?6!Xb+OEQ8ubp;9#t$4QsJyOb`;=CbRS( znbBj)BBMyRS#GCKCh_sNCr?~UYv9X^redxxS-^hElIZ`fuX_J-aYt)cLj3F`gN0b@ zbVuH)_?lcKBcuSu{JPZ3g84E(rMaN||Jf6c(fh1{AjU$STk~`VvI!Tu*Q{IJADgp> ztPG+|4P}&byjx$h|4aRdZ8v?*8WT+i+qr3wX#6d8eF!GGBJ(U4Lm!#>A0_JjNwSEB zT(Uu{@!qTfOUPbjHxojunaxo8+XmU~_P`cF_uV%>u8$e16hys;Ap*1a`dBq^D}RO< zGKHFj_zPSKqy?;h z{!$tvve6^a@ELd8p=VjdQ)TxXU|*>Px2>qLk2%htcK^H^!R4a23jgQKQqcI|gk}a( zkmEbyx>x;HZVyF~XeWunW(ZQ3D~gbU@YSE_`yHFf2jyqqYQjRlnIT3RP${iTz2Fr- zZiFtIPs-ljPy-Xn0yDfy;yEa8!x8$+5-Arf7Qf=|@3jY-dmD#+Yc-BN3T!oR3wqbS zHKNKC?nYiwBB^*irIhfFyena!$+xb~2ff*d@-*cwC zr;`Sa#h&!G&@Rl4JN@!%P9bkE>~!^`rLrsb@=d~6Ze$y`XPsh<21-tgGf+wQx6r31 zW+=_-Xt(=!K_-iDl?r2jfcG6nYoDfuGRJwvF6gXgks>!DWI%%zQ8ILzaHO*mbI(+1 z-%iybl--z=ssjhV7t_(jugumU`;R#SD07;n#+{ZgA<&7T**C&F_$QgtPA_w^8-#1O zC}e_XBBH0WiebO{N07%UohkPP+>)Sxdg7sayP%FD=w^#xJXF~NbPY{;`xqc4w+Xy& zO(O@Tao6bU@DY$pn(D7;iZ>m@x5ko^| zsMB$1w6m*(BV18I*AGKMm4Q{KWpr9jwoc?lg;v5)?2FL9v-aIXgx?1GY>T%y`ct{``#v;gau5HsNscd;(~JBnwl{St%~lX1TSfyc<9xrIk7 zPdB)P1TONXcRnHb?5e*q_MeE~s`GK>Nxd(cdVs6l)Fhj04*00!0q73eVjEXxYJwg8 z+R1vZ(ak`wSrz$zfHx#?aPuFz-8q3z5 z*^@4y07sU38YbpT)w7byp-+dziC$oPI3E-s_=0vM0b`@Cu zRDWLH`qJZebY6)DM^k8>t&8nkNN}oKd-}PxxZX~Zr~swA=5Evd(u(%L>rU&4eKw)? zPeAsd77^>9LT#&QX#vO#Y%iowDSHR}tv3Swv{;U-*{LGl*@_+V@o&h1w*jCrn?*%@b1x3~&>cy=|tsDmuIUr znDzTz|GNzSk9cQ!r^-=UX3_4-^}het0Lvx)<*d^W76Of|k)E|#MgB|X+SK9&yc5^Q z5>@p9FU&v5RS1nz&ezLus5H{|J#VRW4SM_t#;_RCs}$WGwBO<|DPOmH#j#YHc12i( zCL%2rwly&$h9wnwn*8U@fdl_fD*JE4y+I^}t#uPQc%dIH-J-@95Av#>eNw7@tB$=J zUy>IYLW86HPu6FO7!$5!0E7oYo(Qickq_#47RkANE>t7Z zim)ciz2NglVgJV^SQXp7;S7Z&B^#Fu_J`3ROT}H>{1WjF1jfF+z;^yn!O+{q5A%tR zyKy_{!bz%j6z=Gh4?qG+-7P(z?jCEtG(bnvt$!$_?g+s4ds-jS&5|1?eRm#bKmP5Q zT!Q`S61p7bHC+u^HJ$Oz-=crA?9qIAKcl(V{(=l0s68eFcXzJcr34lkSNrR1O#15* zT{PlqXedmbfqqj9S<*K+H7w;iNe^>9rg&vl+@V1K4zH5!v8un2+<+XRv) zIE%nJ=XR-<1G{#QtCV8!A_nj6omeDuQQ~*eqxb1th5L?mb#(e3-JN6>LhscWFqC`# zIV3Z&C7|j!9#LtyzakRFpx^r#VX5%whZdcOSYmmynkLQb8DUxddlXuRAIh-kiunr{ zl$AsDvq-?iN2Th${xY+RyfY~W@`wTe!Y-+GmHWr zb=I$zddFAoLy1V&P*v}3#aT8}mASH>YRb4r88E0`mslwpH2IOpCKJ(kTcCT@rBj{d zJS+o$5BMk&eufRvL=1RP#L*JIWFH2RM{IaO)lHy^SF!ARH*{6^nV%%7^>F`M8`j=V zqP_|ADfykiTYEAgB7H(CtJ8bgGX47(?n6qL+*b&fCh>(&}8=u`Pt zUz4t;flMFCH@w^`c`cG9`dHZS=^9P<=AwmVD7KCION)RT&#>AIo`+oJ-Md1akTRb+ zvfK;v5h^t)xNDcqziq8j*ZbC-R6EFr3!U^vf)6Bm31gAmvyP}U%wNno{8Mp^DZmO} zMpS!S*QPdGGQ4_{5kh({p(&Dq29>!}8-xK+H2g}eIv<*w<{M!T(?uJDzSB28FVY~n zyyT7tfY2Ucs@Y=uK^fWDgE*sR&(50Yjn< zutkaZHa}SuVl-`}vI)V$xC0 z(4pbC_iqV*`#($T%eT^lKP@LgX)Zao;-`_oDRLgABowsqZ;MmH&}UxThXJUu(WSCA zaY)j`Ns=2M3A~ec=7t2lmdukG3m#~`D1dMYVach>U{|kDdh)u%1;m;DZTPi#H=e<{ zyk6gfPpGHQh(pEmy#^hyaNE7J<6mT%i;NU3j4-5>Qx@LaJS0B;_L#tvKb$c3NWUdy5J?Oh(nqJXqs?y^HMGY-)>zh7WZu<`<#7=3tyL&A#mw@a z^lL-fOQWYvVSoQIF49G+l;cZ7BYm$;s&5+_GLd z(Sp2=@22o=RcNxNYnF7~VVlw^9oVI;Y^BLNgb1L{Ik9vGD9~jso2D$jV6XsRB;p2* znp<~;r5viJ+C`e-UWpKvSwtFa0%^8_2a(5q^Wvy*;1c~}dI??<`z##RB~9~sNNUJA zGW8wNZ%gtPc0CyH0h7GqW!BOr2#~hRqnbkB8+PLIef|C_$c( z(imRo0>gqO-8+PZ=ab_Xh?HBkznQPxd3n?31jntrgqH20 z#MAZ!sp*(D?N;ON`?9RyoG#?pj%&QA&PR)3uCBL1WyaE7_4Of?CQug9Yo;#4oyLvl zW${)O)EW$t9^)EEh}?0$Oi?VaK)ly*^U*uCOD$cAOVGQe6&wmVa$ zsZZ>tvho+-R3Dr9!5ffz?hRxtc)+Om(`$x_Z<2t8(neW338EXJlD|lihg*b=2Oq|n z3Hs*h{Z>cyBdO$THjY4LC|ieYUlthv6hRE*QY-Z$2otNpK~-Wj)+)fYlCLj}dv#lE85+ zXR;;>3L2?SlHrJ%pdzfvv5?@>JwM5tQ^%=oZbaJRfJo7kso!BUYO+o#C1Y_60~p;h z1=AknaX@2WB3<&yUsJ^;USWW;aCjsD158EnP*hLLEkAY0w^B8Zz+uQJmDiKx9iL+G z{9y6p3dO>%Wb^KLN6lf!z$Ly*6v*oVHFqs|nzoW(8IT>SW=HaYR2b2)@nV5O&ZN0j z#|vhAt=jQL5m{w9?&UViviQWwGF$&*C* z1?B5slcLz^T1CX_sSAoR3coStt>0l2Y@+Dh48%rkx8yyWM0|b%8s2^R?o8sE#8CgV;HK{Dc2b^*85_w>9C-_akS!q|X{ddAI1>ZP8)Q)_T% zV`Tn(iRYoRM0+;AT#`0-4^p1jtV^Xr2bf(BpEAId3-y7M8EKJbb^Fs$yF>m<=Ms|} zAtf&`J^|p{cWj@#+0SyPDHzEW6(}D_TK`m;lrtm+y4Bc_16dV)m6Vz5_g55q00Qj+z>5a z9KB*oew25$jEY6t1y_B6pYST0{F(NM$c6ZzJ4x`_C`)=OCgfyVPSh?J1E+sOM*2V_ z4%Dd?4_BnHp5+hLEu`SB9AorDF+FQ#dm@T32Y0~?Jsj3$UffLP!s5j0n*Q3s@p%hA zcERRYJ-l_PGuMk+9&M^^s(!|nq8{*l!2Yy6W=aow$l}iiMLc4;*b$Tv$^xyoqt&#v z?^MO#PH-UOX<4FG?21Vr#V5$l@arj&TA+plRNoJV7bnXI8a?P_DvUk%pV zqCQM?;pr-^*TO!O%s<9*=6-+6ujEbeam9Sa<11?W!@lQq(=|zBv^uzt%2xN|X*v(t z@tHm&WSzN1Dh3DiBnM%!+GY#fUPe{*FCnw<{M%>{~2&{c)%-Hom&23tkrMz(fz&+p49e zL)DYak)ef(j!?!Q+&dvM)v|e}X_rR{@t2Q`thsc*wEE>Zp>F}V_+a?|2_jYqfAxlZQcyJ z<^EG^hh*2SNM*vO&@>L`yHmY+4eCAPX_HtPa65GK&2lOkq(mBGh%j^P38|NdzcO2W zigpc`?h;^4!)US?=kI!ZxJtv^9{xg|@1py4lqYK@f1s1M7rq_WSczNy*(&6BZW_(l z7u?2NDaXf%3eWfRDEuuHc-LD{#Z1t|ZE)9%2EkO<&IBj9!sDIeOU?Dx2mti98dQ%| zb*hhk$DWC*sNvlU9J3Z$_zZu&G!cYy(MrU?UWFkR0>y1Dya}=;wGWW5D+<@NFGUR& zLS?kD_>{pdM{V~4Wn7T0T~6G*i@NWy-y6Ja`kOv?wOE=Wg?~(Y2E_QF^jKSam5J96 z@sN|R!mc%lxO1AenU`{0x?y+R(8b>>0+-f2R1-;j+9$1}X7#T;0Tl$llk9eDJuA9b zUjIXZB6o^@RGLyM%rtjewuZzRw=Dpks@vSdz6fAnnh)x@-U#Fq3zZ~wIV=BC_*6C@ zwtfO_vSyp0E!v08-bH4AWx06WF6@_f;G#n`GX)7HAZ}zI2pRbNwjS`sX0WbQKZ*C| zDMSnA^1#wW>56`$4R*axkQIb260tH&2^#s7-17%yNu14~YPg!AP2y1~Q!%mW8p(}d zG$6fN&293yyE)`4_Ie%_B@%m4tmp>aWnS;{85#@b164_0ZXb2Sb@p1}*u8v6Al~4N z%f&KkM^d(LxdIm4yG!Cx2RdV-F>LbJ9f+bxVaLopA|;%!ahRMuhe>e{b3G{;F)P{YsgJLb z?@@n#=Yj_oC*X6|Po_9};%WDrAQt**1mg)W6U=WzF#!TV2oC?PQt*_?I)>PV@P<#h z^bo+|(R_Muo2!QZmgxcVOiH!hPNc;ds$9p%ezcMO_eZCpa`9-)ic&d0K?@+hHrv55J%Shqu$6XJ2>O>pg74@@6#XI9vW>12>{ZCTLIOjv7?*KF*~l+G_wAW|TEC06KflVAa;7=Dqx zO2GLIR%j)4Rd9+700aHb_zmsgtu_(Mc8X$cL|!!K4weB_xBC6Jl_{t)6({A@9mOw) zy8h|U$VIU_J}7_)F5vT#A^XO@8s##T^DE3J^Um=7^}DRSXo>Ps@pm1^E-a!h-XdY_ zPZ&_IvAG&n)iLW@;w%Bz8xe80?RKY@QI}bRT%E;S8%w_i%fO{5iCz zgER!>SP_=Q6H&(AuAUniqi|qFd>j(m-i<^;dOMgSEg1uXhP|{th8EfJXlZY$D(}U~ zt<=VwSJ%s1@aoL2Cp(rYS@tJ%&T^+R^Hx-*VKHiK=FooL{vvrMvlQ2hru%AXOt8Y! zCA=C2qp4p@B>RNp{U#n>Nh0`gQ@xror{_cp%k`E2Z5{*A+si_Tvv zCWjq=Ny=W;c#(2-hs-f*%`+^MFYFo+-wt_v_~nkbJ~c9@BnvOlh1s+riq5Y%SMo&- zBoK(iN81aSNyh#xt6L&{KNxw)?wMDr$VIlU`(~lslk&S3yRS$oHGb9|DM@F^L*e5P zVM9!RKk+re?%2zo6xav`cD!{4wuSaet)`M_=swO)v8GWmjgp9j=2) z^=yev=EXVD=Q`q;zH)JIy#vNf4HcF8Q zYLo<^r;qJj{HiqetFeab0qQUT{KjUhX%$F=;+$$xXjW=(3T`v{vj*NZ+!@9iVC z%Vk7j=%GfdU2gPvO<_sVQtx3WSnc7+o7utcIT~(F7(pgF6&2F*J_n{IdPBCD%s!gZ zy(4AfZ}1`_<(9w0vF5ec^K$|qbvTYFSKx3Wr|4%5tMjd8F5D=NY{653W!%*jb_0gS zZbDwwmwy-yBA2JNl05z2x{GFo!yBQ330f%eYUP<_$w@#qI)Z+po?@pGh<88I0Wo{}AX+ zx;_u;g4K5Vfy5!^)LHkl`i|;wyBT%BzgT6YVmdB*e^=(*bZ*qX9i}~sMs-}W5Q{vR z=}B{FoQUQ&^nYgyE|%@Wo`88F(3NZ?=;z0=iylVae)5bPqLgr5RVAW3PLL(#cPm2w z`CYfijZNxuufnrNrlYTe|Vg0B|dDs4n1CnPz0jVh`z&QL~Rh8J^rR35KdG9s;ZR&HX zkb8LT~Dw}gWArh3ki#S1!H4q@rQ72f3!80ShX$Y4A2jQvMPTJ{#5@a) zzqZsOq=W7uf8G8&OZzdch@(U6Vhz2jN~J5k-vr}D)4CRZx!|hIb*Bs8S;y|joW_cz z%l!~>p?lN|<)WX?!g+rwy~mmE-K~l@wLW~5Y#%11T)c#n%o|#(f&=0}V-87(D096A zIMCJYE$N>3&WMat4ohiJYp#k*O^zHddepXcId#9x^B(u4JJb);OaX*mK z1$Lq9yez=@hZ@+5n+-RU77c`8j|l?a<8n|M!jD^U`4)g_eQdr^Dt)ZxmMrx8Q)G@} zhrfZddP5#q&AL(L)l=7mT}OEqEnhh$<+bW>&yn1hj!I;z@Z`FtaY>@mEQ-21Pb<=o zJ}}=Ogw^3BdG~S3d;LE3cKVHy%Gc=9mypd%zrQte$pSmO^neU(^RuB-*6G)2nFCONA^iy}GzMCV`C|{egmD1GpD)#Kec~X?y^I(!W9a`TdZabG% zjtWdcbC357Zc5$hUbnz2-*g*8jnRpRLBglQytYrf8_1d2*&*b3Hf6CizwIk6iKtFg zHa>rhk$XZ~#=pEO(9z>yml^obY6<_n*$1B8B0kJ!Z@YJf$TT09a?^f{H`x@{0^CfB zPciq|YfYVZ|1fZ+pmYKg^c{B=s7m9<$k2@#Xb$R3P5bsyWu)w8YtZ_LXnVOKvGxM9 z<8n00dVPp^0Je22c#!uaHEBBGDeUZfUlI!pn^B!IJnVT!T9dZ;L-)iS3|oXA=#R>0 zjrq-YGOVmpehmm9)^C(~agl3|i0;9WVf-R_noU{tJ=x{`A| ze~;E4c4ev2sL9B}cJ07ENjmf1Fa{WLC9lCoQyDk=;oJ)aB}*M)F5B4rEyczd$jnnz z3QT}|Wo8r|vW%mpz_Eg;|4SXS&-bqI#Y{RfqADqbx+E!Ps=Es_0!yd=p{Yk(T)N%I zu9m*g42{|1)i==)=79`us%1hA3rkUz!&CY<&qiONQ(uwPTdWGLKrPR`U-T`F(vM}_$A%DtG7Xq^hmS|JbJXMn@Hh_ zIA&1SQwi6J1G#=AC1i|=Rzw@zC>4Uv2jaDsuSMcj{~nKQ*4xVF%NUxIe&HtUkr~`c z3~1rk-~~wOU(5XfrB(a~j~9*3a~J@&g5S!iOC=r$Fr)Rn?msC&m!bEYkK|c-?)V*O z*(x$;oZK+Kkl3P0m#T4o@)2ar zC!JsDVK6uXbC_Je7v-EO)(|{!&IH#sl=aJ(AhG=Y<7547?r zTy?1C;I4ag>SXMfb*QR6{D5inZX+Fji2K(Z@NgoSdaA>9g)~}I`XTrfl?>_Xh^N;O z2Sgr91!X4Dig~~r2nvnR7|!lir^@+A+m7^DymOhc59A`#bEUk=G@{J*>jcbmNJ+eI zOm`@DH&BNGXEekxvpMom`r)n(H)ya&FjqCcvSGodyV668A@f5E-|A8?K=KIlXF`=F z`6tzB>i3-gS*x$VnE$Lxi$qTLkS-uo`+?Q)VrKZ+%S)syj6L@R;4=b)90*5h} zllG*LDIV|`y1$e_D-~r5P0m+kl0b_A^ngQUR2?ChFZVK0tk=PY#Obmbc~tXTZDMx3SEknMV}OiqIQEcMb{+Z z<&LfoW$WdR0^&0rBSH=3-Y~te`=$~y8FMD!tAHKRQK<^2@+oI%3ejbpdzmQgso@H4 z+HTAY3S4{SR0Ie5*y#L|KF0br-Z?F*jLC(^yKfW-? z&i#e8UK2&=giQm4ge+)|On%sw{>x(+8rj-a;DjB{;Ei`#E^emvW@s95rhR=vOc5q>NRqenI`VTJB1VU-33TOTlM3F%=zBMdvL;>cR!SBp~+K_q@yu2W~R8l+8DVW z)aohcS^4#cQk+KgFnEZ+co>~9ebR8^9^MM#f7Gq8VLlV+7JIqaUl!;uyQ8uds z(}~|`e?6s-Plp)jPHbMUs$R+m#xbV71!lG zk9UC>TFRnC{C`C-&JF98jVu1#K~(Djg0Q-miBiR|fj}rsduPL>=8%OXo7GNkgv!AZ zK7Ltz=0=5X?@3x=g8qLZ`+pNk=b*kuZID(x)n~xm>LO|24PgXsjf7nDx;kox2nOn> z*wO`zgoH$DA$k&FT#mF&75Rx=ov8g#NvAl-F0*~o`Td49%>2Cg(n#h#uc{sPx1Dmy z5@++ntKtJHk*4Xpq}`6BvYEAGO<|aOcYAy#6$1kt@}wU2lPu=_=>Mg?lLH7KmtQ@<^+-#U(dFNT3iHzHxBkrXa^43UgdSakQ!) zaa;@p1^a;sprQL4XK`Xe2<$d9Xu^%rq0O%l;+*e1N~6$aA_R^(&=%NgmG{t?K4g2! z#hCu^%YMt{!vRHd`@ zHhdEHYsyq9aZWiqG*`oma5v+-A~iViyCSMM<@0zp1_@D9z&`n^c!z>Tt_H*+j_Xl# z*iBgCX4z!@p2y7S0zKDr<&7Mr4`01QJn~T@ATVpzo@qcR`4@*@;XI8nG_Q=PCx;P; zI`;H}%1|w~`PKVL31bqZ_3kU9dNSBK;VSkysGKhUPWP^>L3~h2F-d#flZ`%GQm;23 z87ic}V1ozp@(JRH`V=g`;zS1=Yd;5;^jd^r8dAht7sA6-GFiX=&}4)T0C)1wSTv9a z%ry2DviP7j8oKsFdz!MJHTEL@d>v=hJG^l|$~Er~AQZGd<5(BM9x8Mj5~*9B5Zn$rE%YtoO%ruHE5=M*Q3fx^tROsr7ip@ao~H z6D;L-r40>qJbhV5{@3rC^VB77|--knw3j(}tD|f&D;p(ZH(X)*p&Ldz1H$ zQWSgmiO$w!#hKwaS^fw`)l$mZtaUC?ub5?p!2#Fj`<>%)mKw6DV0_)yL9#y!&cnF5 zv{n-6AFPRLCK?6ehMfsZ}iXx0iQ9_z!@d@{|N4{xRcex)C2iGet?-;KSrbt(jqpS+4u!?Cvel`c3U zoHR9Tnj-#4PUKa%;y9oPf9b#+0qqPNVkff+xBGPOFC?lTjSRNvKeW*i-Law;w8;L% z)whmhtfazj2w)!xuJlLZy&vY*`O`m}s1p}zAd#}$tJ4kt??x7%%$Mr^@q)PpBt_X) zQzqZl*bSA#DDAm}RQ%V9QD|3cw!QQ%H3T*O`xN?vXq2@to-Q(`W!9m#s(q_Y=V833 zJl}l(cnC(FFdBy!OYrKPUtv_a5r{Pr&f2NUNl?6JD4xOlqr=XfPp*TS+qkE%6}PP85o?nbhwILg}PLX-p2i&Ff!~>|A?3hN9+ z-TE`bQ>8g72WF7at*+EpyABY@W^AZbG(9imh$;u=jUQ;b7) zsCE++nY88_dAWbkiS2wd#JXH5dXlyOa~e^05TTNH%7yJlR96F~?at^=9bH_*halRY z|3uaEL(zFlZs$K!h2_6Zm0}pC{84i5X~KVQdR4T{7lc=`TMZA?9v6A`(@z>w>bwC9 z`!6{30EH3sYZ~gV$(jODu`;)g4qDr=m8wOv1TV8iCx-V}Bajb-4@AbOyVH-ah0Th#YNE8=5Zmr)(CNKZ!S`*S@o|&mx3O4Fc}d8utbx zOTDhOW#a4Cz}KAmdbO_z?w z{*khcT|a?(pX?Nf4{gN1m}RkDAsm)J*ySPSQ!98+^myO?_J;C-2wzL#nQx@FRD7Qz z_HoGJZ)Dy9(7P!6vp?dECbjGp5Yd}(+#g%S7)7_doyf2NUz-xjS&y#e&lYz(Zg?3j z@Bd4C&TQLIBv&GZ?yDVhUL;PYU(bM}dYawCbKSKWw(dQ^8npcLG8EddnI&5!-gs@7 zVV^&*IVAlI@Pb-fyK^jxrq>T>W%tT)7iF>1zv}a@Yd<{bZQXA8DXbfCpSYs+0ot^4 zk>$S9jw7z}Ia7;27hr5*>Le#GK2P6^Ec+6d{S!Ak(9`QP)n#>`FY`dobNX{=k=PM~ zl)CZp4XDJP=WCr6j~&}|re+l^vMcnFvg$Vb*?pytj~#NSncB9^C8ykuYN4`y5+?r;ZYax$G-ZS)PX@VcOV*g5GhSl4MJo{&J_9shDWNjPZ4xIA z#eL;D=QQRkvC8C5ECh}5O?a?8P%W*+W{$8#t5$2@9lDEa0i8+qW%bFwW*it0A0({E zNjuO#6GQsTn=|8%U!<5h;gx8Y?nOd$p*E;4D^C5&E+RJ%5vtAG@sQaI*5ymiI)Xuj z;YhnMv!V2{Ld34=Ss%r1O;?T;Y(Tail@U%txU|H^>80A9p zIai6~W6xyZU+?SFg5oEY71cG^Bn0p_j_;r)p9~emZ5k}a%=vilGqQr7IUBp}mQ{3MOtl>I=Bj&!NZ4j-K?p}gU zTRVC!{O0{C&`q>qmp`X&(>@2~EU-KAuiahQ~mC-|(R z&kzJnHF*M86JH5*qCg|hS^rlpfO`yIoc%eWdL`M4y@g;5!BvMG*xK7G`{VOwolS>} zoWF9)y2pFuXb?4V6TFb!mHp<00tVloUS_(?G6^1McPR_GrmhieU*jT*+%e!>2Zf+=%lv zRO$aR3xp93#4cga;ecD}m!os66WA+2PWH#S`Cph@?h-91pwV>}*nXpaxWc7gNmZn? zSo#k8jK{K@(4vI6ahw?KmSv_)g%a z4gHvk!coZBLyyfK+QRLkLPro26rlPdLe&3G@To^5YwX zS@yv7z)(q8J%i)-x^>R;1q&}X>Lbv?t6NEU+322dZJ`pgl6^jQTe=*bPw_{O>Wq!_ z%`j>tfrd}|)u?Ct6<+1>?UzZ0h$*(|mog})kKodYsNCVT;6SKLx~tDMhuHUrh4OkY z+)CH^MwAAa%pqujfOFFU-89su&9iD?UUBHo>R~s3Dlb>x@T;+LHFo9Ec{bTzb+G&S zsfzgt_j^MD@#;IaEy?$Witfk%gRr;!itCBiKfe(mL4yZ(*A5=s-QC^YolbBk!QI{6 z-Q8V-HV%!`K=<&wcjnd1TJs0guCq>^U8icx=Lw)!Gi}DptU6V=2LUpm)OPAgg;C_h z4bF2vJ=iT+@&FYaXua)ez)%KEUD1>e14d3YsDHfrzIoB>j_8}ri=Bru2gxO|wFt#s zCbA8@h~kc?S#VmGI*U(`HoR9)d%}2YJ%H%{xYC@M;?^jMTl7gyArjTt!TB>`%2%C8 zEZy9g+ihJaTN<+&4$sD`PyDb`3^)!90ulMZ*ypDPTfEL6&1md3o@96U@u(-Cs`Hzb z6&z<&Q7KWHNT}zcyKmXNe5|;n&iKDT*;^5+SXXg;Vluw&OqA=6!-St~_JmpscRpQT zu6JQg6tULL4E^b^V7V!eVwW6e5q_6HasA52afc{%#un~U#oJi5g71?c?-LV|MLhC6 zLWzajDYGZvwL1=Mp;wyfv2xoT+DQ zy%t2x@Susp)QBy)gni&+niy&V`#e#9CpMP+^EI?}i(Pn;HiLS%mPw)==K!LIElf+3 zt`WTa09CIRuVKf(Ymy6!`@&e}VH*^ANeV#Bly6veT8cdp2~IKav*E;eqMM&|0}dp8 ziazY_$K4q4^Q9v3ddxpHnlvJAsd9;=EE=$K2gSs{-hV35oN+&1K#hVCh4(<0-Rrs5l35 z-fIW|ETDEu+g@+yl^Z6bZ2=dj3S4-x@Ydkop2$!F41#VuP->V3#6MEjRjqsn+811k=_Q4~1GmxaF^g1dWp@`<&2tE<&0OuNQr$Hb4c z2xs~9jjuYXNH=nMZ&3iOMfFVfYS&YFFAC-Aj1~1#&scuDF8%I(=GXu=S(iBU)2XGIA5cHEoiAl#^Tsz7~rq&ZU}czfwkz zKeDQc;)n-k@&Y|iTdUd4r>BEG`*l$R)amb=iN(j9+_d}fgf}-frg1j4)`$k$@5<9? zK$6FGh!e_#=|d{#mlCvL&qrB)^>Fw5#Q?$T(et=28vnC3hHaTBvc|quNDw$C=8~Xq zbN#KAx`Cl;6DtPWRzK8p#sJiGc5Rcn-1AjJv-|T1^XBPdu*O%&rL^2WZau^DKx2o+ z+^LF6$Xlz&>Ae;UL{1J*wgOI>QB8iS`pcuaU@)Ef-qNYa^PsT{I5eeBaY`rkM*yH| z+I&4JCujkIYPQunhReyXSjJB(d(Ty!CsGme(i*mfkL^=Lz%@f0a#7Ac6rf?y0stKn zunL5p61W()bGb9TVvVpfhG8R26DTbM4Uz6B0f_Plji&ZgSKEcI#=Mi_5h0KR_o8r5sKC6$MOQI8wvfkvoSg$lhu zYw(Kh4}!zVyS}fBp`6gvKQiEA+-sT0F&=tq72Np(+{>_$ImBEdHh|>$>ilAibA`!= zLD5_AbSS%|Sj+Gn(urF~O2vKsQX59nJZ3s?hG>e?H8X5+AKPLxaioRsIzO8h{}1EElsN+>y_99ggdBdsaWGNYa@f6(S z=$hRd>*k=DH(>5{@h8Ozg#<~BXk|CC!s@W)CztUuG3xQ$dJh3^oP)Hh8l0UN1BggX zy<`Y3{@F_dZJ|LD*MX+Rx;_hcrf4jE-U+Yct#Eyd;W}+XG{Jt=?JG z-SMwk-{_HhPdX^#g?Qc7$iEiHp#Na>ZhWxCv%mfF@@0dW?7Aj@H*_%cM|cm4ETz%S z&JVjq@?T%jQ3Uym<{i`-X4v1pj>i6&zV z93zLis~^d``sJ?YzIz(j%E_FDyQN^V$dyK%u8Fi8&Cy_F=L?l@Lg61OFoI^ikS!`c zecv#jCeu-`tJ5gSfz<7v zL=baPABvZXH?6R$(tlm#5^@sWmN`Zoc2*+0_r+(n1xv-c`CfO(OtHm@q>J^SLn z@j+cqh&VCBu4Hf|+GUy|7(UKmPwt3htLe!(+l$imLo<^fOYdYb?WveDxYm;pVlDXf z`BQF}-I2R1XPFkZZ_`9EQEgX=#`akXJ5Kf%^h;d$6?fT@x{KndXSJ&<+<8PyAzPyt zu1DwnJZ|wg<-Q2al)fs8RRg~3H=zCF_PQ_XR^}y5o5U32_X-h_L+y=(4Qk?dw?~Dh zRJ3ssi#wMPt;imbzg&$zd;!5$B*_&z3jHnU7;|^9E>)i9x__>BrqM^$6j{7w5S@gV z#@ZLOdpwBvU9h{6d5#Ck$mPW`=#U65rBe$Z(gUQ;qw*aTE{J zuEOi0VYNslIVqt>x42^6|#<73vlC!^wgRD~|rq$Dg;KmqIkZ z>?7f1TPAjD>~$4f4zTmTliki__iH|KPI{rWBm}p3a|T=3V^

D!R2T}0IcS2c$Y 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

  • ${highlightKeyword(title, slicesOfTitle[0])}`; + } else { + resultItem += `
  • ${title}`; + } + + slicesOfContent.forEach(slice => { + resultItem += `

    ${highlightKeyword(content, slice)}...

    `; + }); + + resultItem += '
  • '; + resultItems.push({ + item: resultItem, + id : resultItems.length, + hitCount, + searchTextCount + }); + } + }); + } + if (keywords.length === 1 && keywords[0] === '') { + resultContent.innerHTML = '
    '; + } else if (resultItems.length === 0) { + resultContent.innerHTML = '
    '; + } else { + resultItems.sort((resultLeft, resultRight) => { + if (resultLeft.searchTextCount !== resultRight.searchTextCount) { + return resultRight.searchTextCount - resultLeft.searchTextCount; + } else if (resultLeft.hitCount !== resultRight.hitCount) { + return resultRight.hitCount - resultLeft.hitCount; + } + return resultRight.id - resultLeft.id; + }); + resultContent.innerHTML = `
      ${resultItems.map(result => result.item).join('')}
    `; + window.pjax && window.pjax.refresh(resultContent); + } + }; + + const fetchData = () => { + fetch(CONFIG.root + searchPath) + .then(response => response.text()) + .then(res => { + // Get the contents from search data + isfetched = true; + datas = isXml ? [...new DOMParser().parseFromString(res, 'text/xml').querySelectorAll('entry')].map(element => { + return { + title : element.querySelector('title').textContent, + content: element.querySelector('content').textContent, + url : element.querySelector('url').textContent + }; + }) : JSON.parse(res); + // Only match articles with not empty titles + datas = datas.filter(data => data.title).map(data => { + data.title = data.title.trim(); + data.content = data.content ? data.content.trim().replace(/<[^>]+>/g, '') : ''; + data.url = decodeURIComponent(data.url).replace(/\/{2,}/g, '/'); + return data; + }); + // Remove loading animation + document.getElementById('no-result').innerHTML = ''; + inputEventFunction(); + }); + }; + + if (CONFIG.localsearch.preload) { + fetchData(); + } + + if (CONFIG.localsearch.trigger === 'auto') { + input.addEventListener('input', inputEventFunction); + } else { + document.querySelector('.search-icon').addEventListener('click', inputEventFunction); + input.addEventListener('keypress', event => { + if (event.key === 'Enter') { + inputEventFunction(); + } + }); + } + + // Handle and trigger popup window + document.querySelectorAll('.popup-trigger').forEach(element => { + element.addEventListener('click', () => { + document.body.style.overflow = 'hidden'; + document.querySelector('.search-pop-overlay').classList.add('search-active'); + input.focus(); + if (!isfetched) fetchData(); + }); + }); + + // Monitor main search box + const onPopupClose = () => { + document.body.style.overflow = ''; + document.querySelector('.search-pop-overlay').classList.remove('search-active'); + }; + + document.querySelector('.search-pop-overlay').addEventListener('click', event => { + if (event.target === document.querySelector('.search-pop-overlay')) { + onPopupClose(); + } + }); + document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose); + window.addEventListener('pjax:success', onPopupClose); + window.addEventListener('keyup', event => { + if (event.key === 'Escape') { + onPopupClose(); + } + }); +}); diff --git a/js/motion.js b/js/motion.js new file mode 100644 index 0000000..026199a --- /dev/null +++ b/js/motion.js @@ -0,0 +1,177 @@ +/* global NexT, CONFIG, Velocity */ + +if (window.$ && window.$.Velocity) window.Velocity = window.$.Velocity; + +NexT.motion = {}; + +NexT.motion.integrator = { + queue : [], + cursor: -1, + init : function() { + this.queue = []; + this.cursor = -1; + return this; + }, + add: function(fn) { + this.queue.push(fn); + return this; + }, + next: function() { + this.cursor++; + var fn = this.queue[this.cursor]; + typeof fn === 'function' && fn(NexT.motion.integrator); + }, + bootstrap: function() { + this.next(); + } +}; + +NexT.motion.middleWares = { + logo: function(integrator) { + var sequence = []; + var brand = document.querySelector('.brand'); + var image = document.querySelector('.custom-logo-image'); + var title = document.querySelector('.site-title'); + var subtitle = document.querySelector('.site-subtitle'); + var logoLineTop = document.querySelector('.logo-line-before i'); + var logoLineBottom = document.querySelector('.logo-line-after i'); + + brand && sequence.push({ + e: brand, + p: {opacity: 1}, + o: {duration: 200} + }); + + function getMistLineSettings(element, translateX) { + return { + e: element, + p: {translateX}, + o: { + duration : 500, + sequenceQueue: false + } + }; + } + + function pushImageToSequence() { + sequence.push({ + e: image, + p: {opacity: 1, top: 0}, + o: {duration: 200} + }); + } + + CONFIG.scheme === 'Mist' && logoLineTop && logoLineBottom + && sequence.push( + getMistLineSettings(logoLineTop, '100%'), + getMistLineSettings(logoLineBottom, '-100%') + ); + + CONFIG.scheme === 'Muse' && image && pushImageToSequence(); + + title && sequence.push({ + e: title, + p: {opacity: 1, top: 0}, + o: {duration: 200} + }); + + subtitle && sequence.push({ + e: subtitle, + p: {opacity: 1, top: 0}, + o: {duration: 200} + }); + + (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') && image && pushImageToSequence(); + + if (sequence.length > 0) { + sequence[sequence.length - 1].o.complete = function() { + integrator.next(); + }; + Velocity.RunSequence(sequence); + } else { + integrator.next(); + } + + if (CONFIG.motion.async) { + integrator.next(); + } + }, + + menu: function(integrator) { + Velocity(document.querySelectorAll('.menu-item'), 'transition.slideDownIn', { + display : null, + duration: 200, + complete: function() { + integrator.next(); + } + }); + + if (CONFIG.motion.async) { + integrator.next(); + } + }, + + subMenu: function(integrator) { + var subMenuItem = document.querySelectorAll('.sub-menu .menu-item'); + if (subMenuItem.length > 0) { + subMenuItem.forEach(element => { + element.style.opacity = 1; + }); + } + integrator.next(); + }, + + postList: function(integrator) { + var postBlock = document.querySelectorAll('.post-block, .pagination, .comments'); + var postBlockTransition = CONFIG.motion.transition.post_block; + var postHeader = document.querySelectorAll('.post-header'); + var postHeaderTransition = CONFIG.motion.transition.post_header; + var postBody = document.querySelectorAll('.post-body'); + var postBodyTransition = CONFIG.motion.transition.post_body; + var collHeader = document.querySelectorAll('.collection-header'); + var collHeaderTransition = CONFIG.motion.transition.coll_header; + + if (postBlock.length > 0) { + var postMotionOptions = window.postMotionOptions || { + stagger : 100, + drag : true, + complete: function() { + integrator.next(); + } + }; + + if (CONFIG.motion.transition.post_block) { + Velocity(postBlock, 'transition.' + postBlockTransition, postMotionOptions); + } + if (CONFIG.motion.transition.post_header) { + Velocity(postHeader, 'transition.' + postHeaderTransition, postMotionOptions); + } + if (CONFIG.motion.transition.post_body) { + Velocity(postBody, 'transition.' + postBodyTransition, postMotionOptions); + } + if (CONFIG.motion.transition.coll_header) { + Velocity(collHeader, 'transition.' + collHeaderTransition, postMotionOptions); + } + } + if (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') { + integrator.next(); + } + }, + + sidebar: function(integrator) { + var sidebarAffix = document.querySelector('.sidebar-inner'); + var sidebarAffixTransition = CONFIG.motion.transition.sidebar; + // Only for Pisces | Gemini. + if (sidebarAffixTransition && (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini')) { + Velocity(sidebarAffix, 'transition.' + sidebarAffixTransition, { + display : null, + duration: 200, + complete: function() { + // After motion complete need to remove transform from sidebar to let affix work on Pisces | Gemini. + sidebarAffix.style.transform = 'initial'; + } + }); + } + integrator.next(); + } +}; diff --git a/js/next-boot.js b/js/next-boot.js new file mode 100644 index 0000000..52ec9ae --- /dev/null +++ b/js/next-boot.js @@ -0,0 +1,114 @@ +/* global NexT, CONFIG, Velocity */ + +NexT.boot = {}; + +NexT.boot.registerEvents = function() { + + NexT.utils.registerScrollPercent(); + NexT.utils.registerCanIUseTag(); + + // Mobile top menu bar. + document.querySelector('.site-nav-toggle .toggle').addEventListener('click', () => { + event.currentTarget.classList.toggle('toggle-close'); + var siteNav = document.querySelector('.site-nav'); + var animateAction = siteNav.classList.contains('site-nav-on') ? 'slideUp' : 'slideDown'; + + if (typeof Velocity === 'function') { + Velocity(siteNav, animateAction, { + duration: 200, + complete: function() { + siteNav.classList.toggle('site-nav-on'); + } + }); + } else { + siteNav.classList.toggle('site-nav-on'); + } + }); + + var TAB_ANIMATE_DURATION = 200; + document.querySelectorAll('.sidebar-nav li').forEach((element, index) => { + element.addEventListener('click', event => { + var item = event.currentTarget; + var activeTabClassName = 'sidebar-nav-active'; + var activePanelClassName = 'sidebar-panel-active'; + if (item.classList.contains(activeTabClassName)) return; + + var targets = document.querySelectorAll('.sidebar-panel'); + var target = targets[index]; + var currentTarget = targets[1 - index]; + window.anime({ + targets : currentTarget, + duration: TAB_ANIMATE_DURATION, + easing : 'linear', + opacity : 0, + complete: () => { + // Prevent adding TOC to Overview if Overview was selected when close & open sidebar. + currentTarget.classList.remove(activePanelClassName); + target.style.opacity = 0; + target.classList.add(activePanelClassName); + window.anime({ + targets : target, + duration: TAB_ANIMATE_DURATION, + easing : 'linear', + opacity : 1 + }); + } + }); + + [...item.parentNode.children].forEach(element => { + element.classList.remove(activeTabClassName); + }); + item.classList.add(activeTabClassName); + }); + }); + + window.addEventListener('resize', NexT.utils.initSidebarDimension); + + window.addEventListener('hashchange', () => { + var tHash = location.hash; + if (tHash !== '' && !tHash.match(/%\S{2}/)) { + var target = document.querySelector(`.tabs ul.nav-tabs li a[href="${tHash}"]`); + target && target.click(); + } + }); +}; + +NexT.boot.refresh = function() { + + /** + * Register JS handlers by condition option. + * Need to add config option in Front-End at 'layout/_partials/head.swig' file. + */ + CONFIG.fancybox && NexT.utils.wrapImageWithFancyBox(); + CONFIG.mediumzoom && window.mediumZoom('.post-body :not(a) > img, .post-body > img'); + CONFIG.lazyload && window.lozad('.post-body img').observe(); + CONFIG.pangu && window.pangu.spacingPage(); + + CONFIG.exturl && NexT.utils.registerExtURL(); + CONFIG.copycode.enable && NexT.utils.registerCopyCode(); + NexT.utils.registerTabsTag(); + NexT.utils.registerActiveMenuItem(); + NexT.utils.registerLangSelect(); + NexT.utils.registerSidebarTOC(); + NexT.utils.wrapTableWithBox(); + NexT.utils.registerVideoIframe(); +}; + +NexT.boot.motion = function() { + // Define Motion Sequence & Bootstrap Motion. + if (CONFIG.motion.enable) { + NexT.motion.integrator + .add(NexT.motion.middleWares.logo) + .add(NexT.motion.middleWares.menu) + .add(NexT.motion.middleWares.postList) + .add(NexT.motion.middleWares.sidebar) + .bootstrap(); + } + NexT.utils.updateSidebarPosition(); +}; + +document.addEventListener('DOMContentLoaded', () => { + NexT.boot.registerEvents(); + NexT.boot.refresh(); + NexT.boot.motion(); +}); diff --git a/js/schemes/muse.js b/js/schemes/muse.js new file mode 100644 index 0000000..f4be56d --- /dev/null +++ b/js/schemes/muse.js @@ -0,0 +1,113 @@ +/* global NexT, CONFIG, Velocity */ + +document.addEventListener('DOMContentLoaded', () => { + + var isRight = CONFIG.sidebar.position === 'right'; + var SIDEBAR_WIDTH = CONFIG.sidebar.width || 320; + var SIDEBAR_DISPLAY_DURATION = 200; + var mousePos = {}; + + var sidebarToggleLines = { + lines: document.querySelector('.sidebar-toggle'), + init : function() { + this.lines.classList.remove('toggle-arrow', 'toggle-close'); + }, + arrow: function() { + this.lines.classList.remove('toggle-close'); + this.lines.classList.add('toggle-arrow'); + }, + close: function() { + this.lines.classList.remove('toggle-arrow'); + this.lines.classList.add('toggle-close'); + } + }; + + var sidebarToggleMotion = { + sidebarEl : document.querySelector('.sidebar'), + isSidebarVisible: false, + init : function() { + sidebarToggleLines.init(); + + window.addEventListener('mousedown', this.mousedownHandler.bind(this)); + window.addEventListener('mouseup', this.mouseupHandler.bind(this)); + document.querySelector('#sidebar-dimmer').addEventListener('click', this.clickHandler.bind(this)); + document.querySelector('.sidebar-toggle').addEventListener('click', this.clickHandler.bind(this)); + document.querySelector('.sidebar-toggle').addEventListener('mouseenter', this.mouseEnterHandler.bind(this)); + document.querySelector('.sidebar-toggle').addEventListener('mouseleave', this.mouseLeaveHandler.bind(this)); + window.addEventListener('sidebar:show', this.showSidebar.bind(this)); + window.addEventListener('sidebar:hide', this.hideSidebar.bind(this)); + }, + mousedownHandler: function(event) { + mousePos.X = event.pageX; + mousePos.Y = event.pageY; + }, + mouseupHandler: function(event) { + var deltaX = event.pageX - mousePos.X; + var deltaY = event.pageY - mousePos.Y; + var clickingBlankPart = Math.sqrt((deltaX * deltaX) + (deltaY * deltaY)) < 20 && event.target.matches('.main'); + if (this.isSidebarVisible && (clickingBlankPart || event.target.matches('img.medium-zoom-image, .fancybox img'))) { + this.hideSidebar(); + } + }, + clickHandler: function() { + this.isSidebarVisible ? this.hideSidebar() : this.showSidebar(); + }, + mouseEnterHandler: function() { + if (!this.isSidebarVisible) { + sidebarToggleLines.arrow(); + } + }, + mouseLeaveHandler: function() { + if (!this.isSidebarVisible) { + sidebarToggleLines.init(); + } + }, + showSidebar: function() { + this.isSidebarVisible = true; + this.sidebarEl.classList.add('sidebar-active'); + if (typeof Velocity === 'function') { + Velocity(document.querySelectorAll('.sidebar .motion-element'), isRight ? 'transition.slideRightIn' : 'transition.slideLeftIn', { + stagger: 50, + drag : true + }); + } + + sidebarToggleLines.close(); + NexT.utils.isDesktop() && window.anime(Object.assign({ + targets : document.body, + duration: SIDEBAR_DISPLAY_DURATION, + easing : 'linear' + }, isRight ? { + 'padding-right': SIDEBAR_WIDTH + } : { + 'padding-left': SIDEBAR_WIDTH + })); + }, + hideSidebar: function() { + this.isSidebarVisible = false; + this.sidebarEl.classList.remove('sidebar-active'); + + sidebarToggleLines.init(); + NexT.utils.isDesktop() && window.anime(Object.assign({ + targets : document.body, + duration: SIDEBAR_DISPLAY_DURATION, + easing : 'linear' + }, isRight ? { + 'padding-right': 0 + } : { + 'padding-left': 0 + })); + } + }; + sidebarToggleMotion.init(); + + function updateFooterPosition() { + var footer = document.querySelector('.footer'); + var containerHeight = document.querySelector('.header').offsetHeight + document.querySelector('.main').offsetHeight + footer.offsetHeight; + footer.classList.toggle('footer-fixed', containerHeight <= window.innerHeight); + } + + updateFooterPosition(); + window.addEventListener('resize', updateFooterPosition); + window.addEventListener('scroll', updateFooterPosition); +}); diff --git a/js/schemes/pisces.js b/js/schemes/pisces.js new file mode 100644 index 0000000..41633ea --- /dev/null +++ b/js/schemes/pisces.js @@ -0,0 +1,86 @@ +/* global NexT, CONFIG */ + +var Affix = { + init: function(element, options) { + this.element = element; + this.offset = options || 0; + this.affixed = null; + this.unpin = null; + this.pinnedOffset = null; + this.checkPosition(); + window.addEventListener('scroll', this.checkPosition.bind(this)); + window.addEventListener('click', this.checkPositionWithEventLoop.bind(this)); + window.matchMedia('(min-width: 992px)').addListener(event => { + if (event.matches) { + this.offset = NexT.utils.getAffixParam(); + this.checkPosition(); + } + }); + }, + getState: function(scrollHeight, height, offsetTop, offsetBottom) { + let scrollTop = window.scrollY; + let targetHeight = window.innerHeight; + if (offsetTop != null && this.affixed === 'top') { + if (document.querySelector('.content-wrap').offsetHeight < offsetTop) return 'top'; + return scrollTop < offsetTop ? 'top' : false; + } + if (this.affixed === 'bottom') { + if (offsetTop != null) return this.unpin <= this.element.getBoundingClientRect().top ? false : 'bottom'; + return scrollTop + targetHeight <= scrollHeight - offsetBottom ? false : 'bottom'; + } + let initializing = this.affixed === null; + let colliderTop = initializing ? scrollTop : this.element.getBoundingClientRect().top + scrollTop; + let colliderHeight = initializing ? targetHeight : height; + if (offsetTop != null && scrollTop <= offsetTop) return 'top'; + if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'; + return false; + }, + getPinnedOffset: function() { + if (this.pinnedOffset) return this.pinnedOffset; + this.element.classList.remove('affix-top', 'affix-bottom'); + this.element.classList.add('affix'); + return (this.pinnedOffset = this.element.getBoundingClientRect().top); + }, + checkPositionWithEventLoop() { + setTimeout(this.checkPosition.bind(this), 1); + }, + checkPosition: function() { + if (window.getComputedStyle(this.element).display === 'none') return; + let height = this.element.offsetHeight; + let { offset } = this; + let offsetTop = offset.top; + let offsetBottom = offset.bottom; + let { scrollHeight } = document.body; + let affix = this.getState(scrollHeight, height, offsetTop, offsetBottom); + if (this.affixed !== affix) { + if (this.unpin != null) this.element.style.top = ''; + let affixType = 'affix' + (affix ? '-' + affix : ''); + this.affixed = affix; + this.unpin = affix === 'bottom' ? this.getPinnedOffset() : null; + this.element.classList.remove('affix', 'affix-top', 'affix-bottom'); + this.element.classList.add(affixType); + } + if (affix === 'bottom') { + this.element.style.top = scrollHeight - height - offsetBottom + 'px'; + } + } +}; + +NexT.utils.getAffixParam = function() { + const sidebarOffset = CONFIG.sidebar.offset || 12; + + let headerOffset = document.querySelector('.header-inner').offsetHeight; + let footerOffset = document.querySelector('.footer').offsetHeight; + + document.querySelector('.sidebar').style.marginTop = headerOffset + sidebarOffset + 'px'; + + return { + top : headerOffset, + bottom: footerOffset + }; +}; + +document.addEventListener('DOMContentLoaded', () => { + + Affix.init(document.querySelector('.sidebar-inner'), NexT.utils.getAffixParam()); +}); diff --git a/js/utils.js b/js/utils.js new file mode 100644 index 0000000..74a6dfd --- /dev/null +++ b/js/utils.js @@ -0,0 +1,415 @@ +/* global NexT, CONFIG */ + +HTMLElement.prototype.wrap = function(wrapper) { + this.parentNode.insertBefore(wrapper, this); + this.parentNode.removeChild(this); + wrapper.appendChild(this); +}; + +NexT.utils = { + + /** + * Wrap images with fancybox. + */ + wrapImageWithFancyBox: function() { + document.querySelectorAll('.post-body :not(a) > img, .post-body > img').forEach(element => { + var $image = $(element); + var imageLink = $image.attr('data-src') || $image.attr('src'); + var $imageWrapLink = $image.wrap(``).parent('a'); + if ($image.is('.post-gallery img')) { + $imageWrapLink.attr('data-fancybox', 'gallery').attr('rel', 'gallery'); + } else if ($image.is('.group-picture img')) { + $imageWrapLink.attr('data-fancybox', 'group').attr('rel', 'group'); + } else { + $imageWrapLink.attr('data-fancybox', 'default').attr('rel', 'default'); + } + + var imageTitle = $image.attr('title') || $image.attr('alt'); + if (imageTitle) { + $imageWrapLink.append(`

    ${imageTitle}

    `); + // Make sure img title tag will show correctly in fancybox + $imageWrapLink.attr('title', imageTitle).attr('data-caption', imageTitle); + } + }); + + $.fancybox.defaults.hash = false; + $('.fancybox').fancybox({ + loop : true, + helpers: { + overlay: { + locked: false + } + } + }); + }, + + registerExtURL: function() { + document.querySelectorAll('span.exturl').forEach(element => { + let link = document.createElement('a'); + // https://stackoverflow.com/questions/30106476/using-javascripts-atob-to-decode-base64-doesnt-properly-decode-utf-8-strings + link.href = decodeURIComponent(atob(element.dataset.url).split('').map(c => { + return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); + }).join('')); + link.rel = 'noopener external nofollow noreferrer'; + link.target = '_blank'; + link.className = element.className; + link.title = element.title; + link.innerHTML = element.innerHTML; + element.parentNode.replaceChild(link, element); + }); + }, + + /** + * One-click copy code support. + */ + registerCopyCode: function() { + document.querySelectorAll('figure.highlight').forEach(element => { + const box = document.createElement('div'); + element.wrap(box); + box.classList.add('highlight-container'); + box.insertAdjacentHTML('beforeend', '
    '); + var button = element.parentNode.querySelector('.copy-btn'); + button.addEventListener('click', event => { + var target = event.currentTarget; + var code = [...target.parentNode.querySelectorAll('.code .line')].map(line => line.innerText).join('\n'); + var ta = document.createElement('textarea'); + ta.style.top = window.scrollY + 'px'; // Prevent page scrolling + ta.style.position = 'absolute'; + ta.style.opacity = '0'; + ta.readOnly = true; + ta.value = code; + document.body.append(ta); + const selection = document.getSelection(); + const selected = selection.rangeCount > 0 ? selection.getRangeAt(0) : false; + ta.select(); + ta.setSelectionRange(0, code.length); + ta.readOnly = false; + var result = document.execCommand('copy'); + if (CONFIG.copycode.show_result) { + target.querySelector('i').className = result ? 'fa fa-check fa-fw' : 'fa fa-times fa-fw'; + } + ta.blur(); // For iOS + target.blur(); + if (selected) { + selection.removeAllRanges(); + selection.addRange(selected); + } + document.body.removeChild(ta); + }); + button.addEventListener('mouseleave', event => { + setTimeout(() => { + event.target.querySelector('i').className = 'fa fa-clipboard fa-fw'; + }, 300); + }); + }); + }, + + wrapTableWithBox: function() { + document.querySelectorAll('table').forEach(element => { + const box = document.createElement('div'); + box.className = 'table-container'; + element.wrap(box); + }); + }, + + registerVideoIframe: function() { + document.querySelectorAll('iframe').forEach(element => { + const supported = [ + 'www.youtube.com', + 'player.vimeo.com', + 'player.youku.com', + 'player.bilibili.com', + 'www.tudou.com' + ].some(host => element.src.includes(host)); + if (supported && !element.parentNode.matches('.video-container')) { + const box = document.createElement('div'); + box.className = 'video-container'; + element.wrap(box); + let width = Number(element.width); + let height = Number(element.height); + if (width && height) { + element.parentNode.style.paddingTop = (height / width * 100) + '%'; + } + } + }); + }, + + registerScrollPercent: function() { + var THRESHOLD = 50; + var backToTop = document.querySelector('.back-to-top'); + var readingProgressBar = document.querySelector('.reading-progress-bar'); + // For init back to top in sidebar if page was scrolled after page refresh. + window.addEventListener('scroll', () => { + if (backToTop || readingProgressBar) { + var docHeight = document.querySelector('.container').offsetHeight; + var winHeight = window.innerHeight; + var contentVisibilityHeight = docHeight > winHeight ? docHeight - winHeight : document.body.scrollHeight - winHeight; + var scrollPercent = Math.min(100 * window.scrollY / contentVisibilityHeight, 100); + if (backToTop) { + backToTop.classList.toggle('back-to-top-on', window.scrollY > THRESHOLD); + backToTop.querySelector('span').innerText = Math.round(scrollPercent) + '%'; + } + if (readingProgressBar) { + readingProgressBar.style.width = scrollPercent.toFixed(2) + '%'; + } + } + }); + + backToTop && backToTop.addEventListener('click', () => { + window.anime({ + targets : document.scrollingElement, + duration : 500, + easing : 'linear', + scrollTop: 0 + }); + }); + }, + + /** + * Tabs tag listener (without twitter bootstrap). + */ + registerTabsTag: function() { + // Binding `nav-tabs` & `tab-content` by real time permalink changing. + document.querySelectorAll('.tabs ul.nav-tabs .tab').forEach(element => { + element.addEventListener('click', event => { + event.preventDefault(); + var target = event.currentTarget; + // Prevent selected tab to select again. + if (!target.classList.contains('active')) { + // Add & Remove active class on `nav-tabs` & `tab-content`. + [...target.parentNode.children].forEach(element => { + element.classList.remove('active'); + }); + target.classList.add('active'); + var tActive = document.getElementById(target.querySelector('a').getAttribute('href').replace('#', '')); + [...tActive.parentNode.children].forEach(element => { + element.classList.remove('active'); + }); + tActive.classList.add('active'); + // Trigger event + tActive.dispatchEvent(new Event('tabs:click', { + bubbles: true + })); + } + }); + }); + + window.dispatchEvent(new Event('tabs:register')); + }, + + registerCanIUseTag: function() { + // Get responsive height passed from iframe. + window.addEventListener('message', ({ data }) => { + if ((typeof data === 'string') && data.includes('ciu_embed')) { + var featureID = data.split(':')[1]; + var height = data.split(':')[2]; + document.querySelector(`iframe[data-feature=${featureID}]`).style.height = parseInt(height, 10) + 5 + 'px'; + } + }, false); + }, + + registerActiveMenuItem: function() { + document.querySelectorAll('.menu-item').forEach(element => { + var target = element.querySelector('a[href]'); + if (!target) return; + var isSamePath = target.pathname === location.pathname || target.pathname === location.pathname.replace('index.html', ''); + var isSubPath = !CONFIG.root.startsWith(target.pathname) && location.pathname.startsWith(target.pathname); + element.classList.toggle('menu-item-active', target.hostname === location.hostname && (isSamePath || isSubPath)); + }); + }, + + registerLangSelect: function() { + let selects = document.querySelectorAll('.lang-select'); + selects.forEach(sel => { + sel.value = CONFIG.page.lang; + sel.addEventListener('change', () => { + let target = sel.options[sel.selectedIndex]; + document.querySelectorAll('.lang-select-label span').forEach(span => span.innerText = target.text); + let url = target.dataset.href; + window.pjax ? window.pjax.loadUrl(url) : window.location.href = url; + }); + }); + }, + + registerSidebarTOC: function() { + const navItems = document.querySelectorAll('.post-toc li'); + const sections = [...navItems].map(element => { + var link = element.querySelector('a.nav-link'); + var target = document.getElementById(decodeURI(link.getAttribute('href')).replace('#', '')); + // TOC item animation navigate. + link.addEventListener('click', event => { + event.preventDefault(); + var offset = target.getBoundingClientRect().top + window.scrollY; + window.anime({ + targets : document.scrollingElement, + duration : 500, + easing : 'linear', + scrollTop: offset + 10 + }); + }); + return target; + }); + + var tocElement = document.querySelector('.post-toc-wrap'); + function activateNavByIndex(target) { + if (target.classList.contains('active-current')) return; + + document.querySelectorAll('.post-toc .active').forEach(element => { + element.classList.remove('active', 'active-current'); + }); + target.classList.add('active', 'active-current'); + var parent = target.parentNode; + while (!parent.matches('.post-toc')) { + if (parent.matches('li')) parent.classList.add('active'); + parent = parent.parentNode; + } + // Scrolling to center active TOC element if TOC content is taller then viewport. + window.anime({ + targets : tocElement, + duration : 200, + easing : 'linear', + scrollTop: tocElement.scrollTop - (tocElement.offsetHeight / 2) + target.getBoundingClientRect().top - tocElement.getBoundingClientRect().top + }); + } + + function findIndex(entries) { + let index = 0; + let entry = entries[index]; + if (entry.boundingClientRect.top > 0) { + index = sections.indexOf(entry.target); + return index === 0 ? 0 : index - 1; + } + for (; index < entries.length; index++) { + if (entries[index].boundingClientRect.top <= 0) { + entry = entries[index]; + } else { + return sections.indexOf(entry.target); + } + } + return sections.indexOf(entry.target); + } + + function createIntersectionObserver(marginTop) { + marginTop = Math.floor(marginTop + 10000); + let intersectionObserver = new IntersectionObserver((entries, observe) => { + let scrollHeight = document.documentElement.scrollHeight + 100; + if (scrollHeight > marginTop) { + observe.disconnect(); + createIntersectionObserver(scrollHeight); + return; + } + let index = findIndex(entries); + activateNavByIndex(navItems[index]); + }, { + rootMargin: marginTop + 'px 0px -100% 0px', + threshold : 0 + }); + sections.forEach(element => { + element && intersectionObserver.observe(element); + }); + } + createIntersectionObserver(document.documentElement.scrollHeight); + }, + + hasMobileUA: function() { + let ua = navigator.userAgent; + let pa = /iPad|iPhone|Android|Opera Mini|BlackBerry|webOS|UCWEB|Blazer|PSP|IEMobile|Symbian/g; + return pa.test(ua); + }, + + isTablet: function() { + return window.screen.width < 992 && window.screen.width > 767 && this.hasMobileUA(); + }, + + isMobile: function() { + return window.screen.width < 767 && this.hasMobileUA(); + }, + + isDesktop: function() { + return !this.isTablet() && !this.isMobile(); + }, + + supportsPDFs: function() { + let ua = navigator.userAgent; + let isFirefoxWithPDFJS = ua.includes('irefox') && parseInt(ua.split('rv:')[1].split('.')[0], 10) > 18; + let supportsPdfMimeType = typeof navigator.mimeTypes['application/pdf'] !== 'undefined'; + let isIOS = /iphone|ipad|ipod/i.test(ua.toLowerCase()); + return isFirefoxWithPDFJS || (supportsPdfMimeType && !isIOS); + }, + + /** + * Init Sidebar & TOC inner dimensions on all pages and for all schemes. + * Need for Sidebar/TOC inner scrolling if content taller then viewport. + */ + initSidebarDimension: function() { + var sidebarNav = document.querySelector('.sidebar-nav'); + var sidebarNavHeight = sidebarNav.style.display !== 'none' ? sidebarNav.offsetHeight : 0; + var sidebarOffset = CONFIG.sidebar.offset || 12; + var sidebarb2tHeight = CONFIG.back2top.enable && CONFIG.back2top.sidebar ? document.querySelector('.back-to-top').offsetHeight : 0; + var sidebarSchemePadding = (CONFIG.sidebar.padding * 2) + sidebarNavHeight + sidebarb2tHeight; + // Margin of sidebar b2t: -4px -10px -18px, brings a different of 22px. + if (CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') sidebarSchemePadding += (sidebarOffset * 2) - 22; + // Initialize Sidebar & TOC Height. + var sidebarWrapperHeight = document.body.offsetHeight - sidebarSchemePadding + 'px'; + document.querySelector('.site-overview-wrap').style.maxHeight = sidebarWrapperHeight; + document.querySelector('.post-toc-wrap').style.maxHeight = sidebarWrapperHeight; + }, + + updateSidebarPosition: function() { + var sidebarNav = document.querySelector('.sidebar-nav'); + var hasTOC = document.querySelector('.post-toc'); + if (hasTOC) { + sidebarNav.style.display = ''; + sidebarNav.classList.add('motion-element'); + document.querySelector('.sidebar-nav-toc').click(); + } else { + sidebarNav.style.display = 'none'; + sidebarNav.classList.remove('motion-element'); + document.querySelector('.sidebar-nav-overview').click(); + } + NexT.utils.initSidebarDimension(); + if (!this.isDesktop() || CONFIG.scheme === 'Pisces' || CONFIG.scheme === 'Gemini') return; + // Expand sidebar on post detail page by default, when post has a toc. + var display = CONFIG.page.sidebar; + if (typeof display !== 'boolean') { + // There's no definition sidebar in the page front-matter. + display = CONFIG.sidebar.display === 'always' || (CONFIG.sidebar.display === 'post' && hasTOC); + } + if (display) { + window.dispatchEvent(new Event('sidebar:show')); + } + }, + + getScript: function(url, callback, condition) { + if (condition) { + callback(); + } else { + var script = document.createElement('script'); + script.onload = script.onreadystatechange = function(_, isAbort) { + if (isAbort || !script.readyState || /loaded|complete/.test(script.readyState)) { + script.onload = script.onreadystatechange = null; + script = undefined; + if (!isAbort && callback) setTimeout(callback, 0); + } + }; + script.src = url; + document.head.appendChild(script); + } + }, + + loadComments: function(element, callback) { + if (!CONFIG.comments.lazyload || !element) { + callback(); + return; + } + let intersectionObserver = new IntersectionObserver((entries, observer) => { + let entry = entries[0]; + if (entry.isIntersecting) { + callback(); + observer.disconnect(); + } + }); + intersectionObserver.observe(element); + return intersectionObserver; + } +}; diff --git a/lib/anime.min.js b/lib/anime.min.js new file mode 100644 index 0000000..99b263a --- /dev/null +++ b/lib/anime.min.js @@ -0,0 +1,8 @@ +/* + * anime.js v3.1.0 + * (c) 2019 Julian Garnier + * Released under the MIT license + * animejs.com + */ + +!function(n,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):n.anime=e()}(this,function(){"use strict";var n={update:null,begin:null,loopBegin:null,changeBegin:null,change:null,changeComplete:null,loopComplete:null,complete:null,loop:1,direction:"normal",autoplay:!0,timelineOffset:0},e={duration:1e3,delay:0,endDelay:0,easing:"easeOutElastic(1, .5)",round:0},r=["translateX","translateY","translateZ","rotate","rotateX","rotateY","rotateZ","scale","scaleX","scaleY","scaleZ","skew","skewX","skewY","perspective"],t={CSS:{},springs:{}};function a(n,e,r){return Math.min(Math.max(n,e),r)}function o(n,e){return n.indexOf(e)>-1}function u(n,e){return n.apply(null,e)}var i={arr:function(n){return Array.isArray(n)},obj:function(n){return o(Object.prototype.toString.call(n),"Object")},pth:function(n){return i.obj(n)&&n.hasOwnProperty("totalLength")},svg:function(n){return n instanceof SVGElement},inp:function(n){return n instanceof HTMLInputElement},dom:function(n){return n.nodeType||i.svg(n)},str:function(n){return"string"==typeof n},fnc:function(n){return"function"==typeof n},und:function(n){return void 0===n},hex:function(n){return/(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(n)},rgb:function(n){return/^rgb/.test(n)},hsl:function(n){return/^hsl/.test(n)},col:function(n){return i.hex(n)||i.rgb(n)||i.hsl(n)},key:function(r){return!n.hasOwnProperty(r)&&!e.hasOwnProperty(r)&&"targets"!==r&&"keyframes"!==r}};function c(n){var e=/\(([^)]+)\)/.exec(n);return e?e[1].split(",").map(function(n){return parseFloat(n)}):[]}function s(n,e){var r=c(n),o=a(i.und(r[0])?1:r[0],.1,100),u=a(i.und(r[1])?100:r[1],.1,100),s=a(i.und(r[2])?10:r[2],.1,100),f=a(i.und(r[3])?0:r[3],.1,100),l=Math.sqrt(u/o),d=s/(2*Math.sqrt(u*o)),p=d<1?l*Math.sqrt(1-d*d):0,h=1,v=d<1?(d*l-f)/p:-f+l;function g(n){var r=e?e*n/1e3:n;return r=d<1?Math.exp(-r*d*l)*(h*Math.cos(p*r)+v*Math.sin(p*r)):(h+v*r)*Math.exp(-r*l),0===n||1===n?n:1-r}return e?g:function(){var e=t.springs[n];if(e)return e;for(var r=0,a=0;;)if(1===g(r+=1/6)){if(++a>=16)break}else a=0;var o=r*(1/6)*1e3;return t.springs[n]=o,o}}function f(n){return void 0===n&&(n=10),function(e){return Math.round(e*n)*(1/n)}}var l,d,p=function(){var n=11,e=1/(n-1);function r(n,e){return 1-3*e+3*n}function t(n,e){return 3*e-6*n}function a(n){return 3*n}function o(n,e,o){return((r(e,o)*n+t(e,o))*n+a(e))*n}function u(n,e,o){return 3*r(e,o)*n*n+2*t(e,o)*n+a(e)}return function(r,t,a,i){if(0<=r&&r<=1&&0<=a&&a<=1){var c=new Float32Array(n);if(r!==t||a!==i)for(var s=0;s=.001?function(n,e,r,t){for(var a=0;a<4;++a){var i=u(e,r,t);if(0===i)return e;e-=(o(e,r,t)-n)/i}return e}(t,l,r,a):0===d?l:function(n,e,r,t,a){for(var u,i,c=0;(u=o(i=e+(r-e)/2,t,a)-n)>0?r=i:e=i,Math.abs(u)>1e-7&&++c<10;);return i}(t,i,i+e,r,a)}}}(),h=(l={linear:function(){return function(n){return n}}},d={Sine:function(){return function(n){return 1-Math.cos(n*Math.PI/2)}},Circ:function(){return function(n){return 1-Math.sqrt(1-n*n)}},Back:function(){return function(n){return n*n*(3*n-2)}},Bounce:function(){return function(n){for(var e,r=4;n<((e=Math.pow(2,--r))-1)/11;);return 1/Math.pow(4,3-r)-7.5625*Math.pow((3*e-2)/22-n,2)}},Elastic:function(n,e){void 0===n&&(n=1),void 0===e&&(e=.5);var r=a(n,1,10),t=a(e,.1,2);return function(n){return 0===n||1===n?n:-r*Math.pow(2,10*(n-1))*Math.sin((n-1-t/(2*Math.PI)*Math.asin(1/r))*(2*Math.PI)/t)}}},["Quad","Cubic","Quart","Quint","Expo"].forEach(function(n,e){d[n]=function(){return function(n){return Math.pow(n,e+2)}}}),Object.keys(d).forEach(function(n){var e=d[n];l["easeIn"+n]=e,l["easeOut"+n]=function(n,r){return function(t){return 1-e(n,r)(1-t)}},l["easeInOut"+n]=function(n,r){return function(t){return t<.5?e(n,r)(2*t)/2:1-e(n,r)(-2*t+2)/2}}}),l);function v(n,e){if(i.fnc(n))return n;var r=n.split("(")[0],t=h[r],a=c(n);switch(r){case"spring":return s(n,e);case"cubicBezier":return u(p,a);case"steps":return u(f,a);default:return u(t,a)}}function g(n){try{return document.querySelectorAll(n)}catch(n){return}}function m(n,e){for(var r=n.length,t=arguments.length>=2?arguments[1]:void 0,a=[],o=0;o1&&(r-=1),r<1/6?n+6*(e-n)*r:r<.5?e:r<2/3?n+(e-n)*(2/3-r)*6:n}if(0==u)e=r=t=i;else{var f=i<.5?i*(1+u):i+u-i*u,l=2*i-f;e=s(l,f,o+1/3),r=s(l,f,o),t=s(l,f,o-1/3)}return"rgba("+255*e+","+255*r+","+255*t+","+c+")"}(n):void 0;var e,r,t,a}function C(n){var e=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(n);if(e)return e[1]}function B(n,e){return i.fnc(n)?n(e.target,e.id,e.total):n}function P(n,e){return n.getAttribute(e)}function I(n,e,r){if(M([r,"deg","rad","turn"],C(e)))return e;var a=t.CSS[e+r];if(!i.und(a))return a;var o=document.createElement(n.tagName),u=n.parentNode&&n.parentNode!==document?n.parentNode:document.body;u.appendChild(o),o.style.position="absolute",o.style.width=100+r;var c=100/o.offsetWidth;u.removeChild(o);var s=c*parseFloat(e);return t.CSS[e+r]=s,s}function T(n,e,r){if(e in n.style){var t=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase(),a=n.style[e]||getComputedStyle(n).getPropertyValue(t)||"0";return r?I(n,a,r):a}}function D(n,e){return i.dom(n)&&!i.inp(n)&&(P(n,e)||i.svg(n)&&n[e])?"attribute":i.dom(n)&&M(r,e)?"transform":i.dom(n)&&"transform"!==e&&T(n,e)?"css":null!=n[e]?"object":void 0}function E(n){if(i.dom(n)){for(var e,r=n.style.transform||"",t=/(\w+)\(([^)]*)\)/g,a=new Map;e=t.exec(r);)a.set(e[1],e[2]);return a}}function F(n,e,r,t){var a,u=o(e,"scale")?1:0+(o(a=e,"translate")||"perspective"===a?"px":o(a,"rotate")||o(a,"skew")?"deg":void 0),i=E(n).get(e)||u;return r&&(r.transforms.list.set(e,i),r.transforms.last=e),t?I(n,i,t):i}function N(n,e,r,t){switch(D(n,e)){case"transform":return F(n,e,t,r);case"css":return T(n,e,r);case"attribute":return P(n,e);default:return n[e]||0}}function A(n,e){var r=/^(\*=|\+=|-=)/.exec(n);if(!r)return n;var t=C(n)||0,a=parseFloat(e),o=parseFloat(n.replace(r[0],""));switch(r[0][0]){case"+":return a+o+t;case"-":return a-o+t;case"*":return a*o+t}}function L(n,e){if(i.col(n))return O(n);if(/\s/g.test(n))return n;var r=C(n),t=r?n.substr(0,n.length-r.length):n;return e?t+e:t}function j(n,e){return Math.sqrt(Math.pow(e.x-n.x,2)+Math.pow(e.y-n.y,2))}function S(n){for(var e,r=n.points,t=0,a=0;a0&&(t+=j(e,o)),e=o}return t}function q(n){if(n.getTotalLength)return n.getTotalLength();switch(n.tagName.toLowerCase()){case"circle":return o=n,2*Math.PI*P(o,"r");case"rect":return 2*P(a=n,"width")+2*P(a,"height");case"line":return j({x:P(t=n,"x1"),y:P(t,"y1")},{x:P(t,"x2"),y:P(t,"y2")});case"polyline":return S(n);case"polygon":return r=(e=n).points,S(e)+j(r.getItem(r.numberOfItems-1),r.getItem(0))}var e,r,t,a,o}function $(n,e){var r=e||{},t=r.el||function(n){for(var e=n.parentNode;i.svg(e)&&i.svg(e.parentNode);)e=e.parentNode;return e}(n),a=t.getBoundingClientRect(),o=P(t,"viewBox"),u=a.width,c=a.height,s=r.viewBox||(o?o.split(" "):[0,0,u,c]);return{el:t,viewBox:s,x:s[0]/1,y:s[1]/1,w:u/s[2],h:c/s[3]}}function X(n,e){function r(r){void 0===r&&(r=0);var t=e+r>=1?e+r:0;return n.el.getPointAtLength(t)}var t=$(n.el,n.svg),a=r(),o=r(-1),u=r(1);switch(n.property){case"x":return(a.x-t.x)*t.w;case"y":return(a.y-t.y)*t.h;case"angle":return 180*Math.atan2(u.y-o.y,u.x-o.x)/Math.PI}}function Y(n,e){var r=/[+-]?\d*\.?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?/g,t=L(i.pth(n)?n.totalLength:n,e)+"";return{original:t,numbers:t.match(r)?t.match(r).map(Number):[0],strings:i.str(n)||e?t.split(r):[]}}function Z(n){return m(n?y(i.arr(n)?n.map(b):b(n)):[],function(n,e,r){return r.indexOf(n)===e})}function Q(n){var e=Z(n);return e.map(function(n,r){return{target:n,id:r,total:e.length,transforms:{list:E(n)}}})}function V(n,e){var r=x(e);if(/^spring/.test(r.easing)&&(r.duration=s(r.easing)),i.arr(n)){var t=n.length;2===t&&!i.obj(n[0])?n={value:n}:i.fnc(e.duration)||(r.duration=e.duration/t)}var a=i.arr(n)?n:[n];return a.map(function(n,r){var t=i.obj(n)&&!i.pth(n)?n:{value:n};return i.und(t.delay)&&(t.delay=r?0:e.delay),i.und(t.endDelay)&&(t.endDelay=r===a.length-1?e.endDelay:0),t}).map(function(n){return k(n,r)})}function z(n,e){var r=[],t=e.keyframes;for(var a in t&&(e=k(function(n){for(var e=m(y(n.map(function(n){return Object.keys(n)})),function(n){return i.key(n)}).reduce(function(n,e){return n.indexOf(e)<0&&n.push(e),n},[]),r={},t=function(t){var a=e[t];r[a]=n.map(function(n){var e={};for(var r in n)i.key(r)?r==a&&(e.value=n[r]):e[r]=n[r];return e})},a=0;a-1&&(_.splice(o,1),r=_.length)}else a.tick(e);t++}n()}else U=cancelAnimationFrame(U)}return n}();function rn(r){void 0===r&&(r={});var t,o=0,u=0,i=0,c=0,s=null;function f(n){var e=window.Promise&&new Promise(function(n){return s=n});return n.finished=e,e}var l,d,p,h,v,g,y,b,M=(d=w(n,l=r),p=w(e,l),h=z(p,l),v=Q(l.targets),g=W(v,h),y=J(g,p),b=K,K++,k(d,{id:b,children:[],animatables:v,animations:g,duration:y.duration,delay:y.delay,endDelay:y.endDelay}));f(M);function x(){var n=M.direction;"alternate"!==n&&(M.direction="normal"!==n?"normal":"reverse"),M.reversed=!M.reversed,t.forEach(function(n){return n.reversed=M.reversed})}function O(n){return M.reversed?M.duration-n:n}function C(){o=0,u=O(M.currentTime)*(1/rn.speed)}function B(n,e){e&&e.seek(n-e.timelineOffset)}function P(n){for(var e=0,r=M.animations,t=r.length;e2||(b=Math.round(b*p)/p)),h.push(b)}var k=d.length;if(k){g=d[0];for(var O=0;O0&&(M.began=!0,I("begin")),!M.loopBegan&&M.currentTime>0&&(M.loopBegan=!0,I("loopBegin")),d<=r&&0!==M.currentTime&&P(0),(d>=l&&M.currentTime!==e||!e)&&P(e),d>r&&d=e&&(u=0,M.remaining&&!0!==M.remaining&&M.remaining--,M.remaining?(o=i,I("loopComplete"),M.loopBegan=!1,"alternate"===M.direction&&x()):(M.paused=!0,M.completed||(M.completed=!0,I("loopComplete"),I("complete"),!M.passThrough&&"Promise"in window&&(s(),f(M)))))}return M.reset=function(){var n=M.direction;M.passThrough=!1,M.currentTime=0,M.progress=0,M.paused=!0,M.began=!1,M.loopBegan=!1,M.changeBegan=!1,M.completed=!1,M.changeCompleted=!1,M.reversePlayback=!1,M.reversed="reverse"===n,M.remaining=M.loop,t=M.children;for(var e=c=t.length;e--;)M.children[e].reset();(M.reversed&&!0!==M.loop||"alternate"===n&&1===M.loop)&&M.remaining++,P(M.reversed?M.duration:0)},M.set=function(n,e){return R(n,e),M},M.tick=function(n){i=n,o||(o=i),T((i+(u-o))*rn.speed)},M.seek=function(n){T(O(n))},M.pause=function(){M.paused=!0,C()},M.play=function(){M.paused&&(M.completed&&M.reset(),M.paused=!1,_.push(M),C(),U||en())},M.reverse=function(){x(),C()},M.restart=function(){M.reset(),M.play()},M.reset(),M.autoplay&&M.play(),M}function tn(n,e){for(var r=e.length;r--;)M(n,e[r].animatable.target)&&e.splice(r,1)}return"undefined"!=typeof document&&document.addEventListener("visibilitychange",function(){document.hidden?(_.forEach(function(n){return n.pause()}),nn=_.slice(0),rn.running=_=[]):nn.forEach(function(n){return n.play()})}),rn.version="3.1.0",rn.speed=1,rn.running=_,rn.remove=function(n){for(var e=Z(n),r=_.length;r--;){var t=_[r],a=t.animations,o=t.children;tn(e,a);for(var u=o.length;u--;){var i=o[u],c=i.animations;tn(e,c),c.length||i.children.length||o.splice(u,1)}a.length||o.length||t.pause()}},rn.get=N,rn.set=R,rn.convertPx=I,rn.path=function(n,e){var r=i.str(n)?g(n)[0]:n,t=e||100;return function(n){return{property:n,el:r,svg:$(r),totalLength:q(r)*(t/100)}}},rn.setDashoffset=function(n){var e=q(n);return n.setAttribute("stroke-dasharray",e),e},rn.stagger=function(n,e){void 0===e&&(e={});var r=e.direction||"normal",t=e.easing?v(e.easing):null,a=e.grid,o=e.axis,u=e.from||0,c="first"===u,s="center"===u,f="last"===u,l=i.arr(n),d=l?parseFloat(n[0]):parseFloat(n),p=l?parseFloat(n[1]):0,h=C(l?n[1]:n)||0,g=e.start||0+(l?d:0),m=[],y=0;return function(n,e,i){if(c&&(u=0),s&&(u=(i-1)/2),f&&(u=i-1),!m.length){for(var v=0;v-1&&_.splice(o,1);for(var s=0;sli{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-box-tissue:before{content:"\f95b"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-disease:before{content:"\f7fa"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-faucet:before{content:"\f905"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-medical:before{content:"\f95c"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-holding-water:before{content:"\f4c1"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-sparkles:before{content:"\f95d"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-hands-wash:before{content:"\f95e"}.fa-handshake:before{content:"\f2b5"}.fa-handshake-alt-slash:before{content:"\f95f"}.fa-handshake-slash:before{content:"\f960"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-head-side-cough:before{content:"\f961"}.fa-head-side-cough-slash:before{content:"\f962"}.fa-head-side-mask:before{content:"\f963"}.fa-head-side-virus:before{content:"\f964"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hospital-user:before{content:"\f80d"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-house-user:before{content:"\f965"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-house:before{content:"\f966"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lungs:before{content:"\f604"}.fa-lungs-virus:before{content:"\f967"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-arrows:before{content:"\f968"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-plane-slash:before{content:"\f969"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pump-medical:before{content:"\f96a"}.fa-pump-soap:before{content:"\f96b"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-shield-virus:before{content:"\f96c"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-soap:before{content:"\f96e"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-stopwatch-20:before{content:"\f96f"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-store-alt-slash:before{content:"\f970"}.fa-store-slash:before{content:"\f971"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toilet-paper-slash:before{content:"\f972"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-virus:before{content:"\f974"}.fa-virus-slash:before{content:"\f975"}.fa-viruses:before{content:"\f976"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900} \ No newline at end of file diff --git a/lib/font-awesome/webfonts/fa-brands-400.woff2 b/lib/font-awesome/webfonts/fa-brands-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..141a90a9e0a4b5a794557efa098a5c52320fb226 GIT binary patch literal 76612 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 literal 0 HcmV?d00001 diff --git a/lib/font-awesome/webfonts/fa-regular-400.woff2 b/lib/font-awesome/webfonts/fa-regular-400.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..7e0118e526eb53511cb57e7cfaf515784fee4345 GIT binary patch literal 13584 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 W8!VVrwhAGt$p&j$lnnbyiU9!e_&Ztv literal 0 HcmV?d00001 diff --git a/lib/font-awesome/webfonts/fa-solid-900.woff2 b/lib/font-awesome/webfonts/fa-solid-900.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..978a681a10ff0478581436eaca5c5695c97445d4 GIT binary patch literal 79444 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

    wQH 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 literal 0 HcmV?d00001 diff --git a/lib/velocity/velocity.min.js b/lib/velocity/velocity.min.js new file mode 100644 index 0000000..58244c8 --- /dev/null +++ b/lib/velocity/velocity.min.js @@ -0,0 +1,4 @@ +/*! VelocityJS.org (1.2.2). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License */ +/*! VelocityJS.org jQuery Shim (1.0.1). (C) 2014 The jQuery Foundation. MIT @license: en.wikipedia.org/wiki/MIT_License. */ +!function(e){function t(e){var t=e.length,r=$.type(e);return"function"===r||$.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===r||0===t||"number"==typeof t&&t>0&&t-1 in e}if(!e.jQuery){var $=function(e,t){return new $.fn.init(e,t)};$.isWindow=function(e){return null!=e&&e==e.window},$.type=function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?a[o.call(e)]||"object":typeof e},$.isArray=Array.isArray||function(e){return"array"===$.type(e)},$.isPlainObject=function(e){var t;if(!e||"object"!==$.type(e)||e.nodeType||$.isWindow(e))return!1;try{if(e.constructor&&!n.call(e,"constructor")&&!n.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}for(t in e);return void 0===t||n.call(e,t)},$.each=function(e,r,a){var n,o=0,i=e.length,s=t(e);if(a){if(s)for(;i>o&&(n=r.apply(e[o],a),n!==!1);o++);else for(o in e)if(n=r.apply(e[o],a),n===!1)break}else if(s)for(;i>o&&(n=r.call(e[o],o,e[o]),n!==!1);o++);else for(o in e)if(n=r.call(e[o],o,e[o]),n===!1)break;return e},$.data=function(e,t,a){if(void 0===a){var n=e[$.expando],o=n&&r[n];if(void 0===t)return o;if(o&&t in o)return o[t]}else if(void 0!==t){var n=e[$.expando]||(e[$.expando]=++$.uuid);return r[n]=r[n]||{},r[n][t]=a,a}},$.removeData=function(e,t){var a=e[$.expando],n=a&&r[a];n&&$.each(t,function(e,t){delete n[t]})},$.extend=function(){var e,t,r,a,n,o,i=arguments[0]||{},s=1,l=arguments.length,u=!1;for("boolean"==typeof i&&(u=i,i=arguments[s]||{},s++),"object"!=typeof i&&"function"!==$.type(i)&&(i={}),s===l&&(i=this,s--);l>s;s++)if(null!=(n=arguments[s]))for(a in n)e=i[a],r=n[a],i!==r&&(u&&r&&($.isPlainObject(r)||(t=$.isArray(r)))?(t?(t=!1,o=e&&$.isArray(e)?e:[]):o=e&&$.isPlainObject(e)?e:{},i[a]=$.extend(u,o,r)):void 0!==r&&(i[a]=r));return i},$.queue=function(e,r,a){function n(e,r){var a=r||[];return null!=e&&(t(Object(e))?!function(e,t){for(var r=+t.length,a=0,n=e.length;r>a;)e[n++]=t[a++];if(r!==r)for(;void 0!==t[a];)e[n++]=t[a++];return e.length=n,e}(a,"string"==typeof e?[e]:e):[].push.call(a,e)),a}if(e){r=(r||"fx")+"queue";var o=$.data(e,r);return a?(!o||$.isArray(a)?o=$.data(e,r,n(a)):o.push(a),o):o||[]}},$.dequeue=function(e,t){$.each(e.nodeType?[e]:e,function(e,r){t=t||"fx";var a=$.queue(r,t),n=a.shift();"inprogress"===n&&(n=a.shift()),n&&("fx"===t&&a.unshift("inprogress"),n.call(r,function(){$.dequeue(r,t)}))})},$.fn=$.prototype={init:function(e){if(e.nodeType)return this[0]=e,this;throw new Error("Not a DOM node.")},offset:function(){var t=this[0].getBoundingClientRect?this[0].getBoundingClientRect():{top:0,left:0};return{top:t.top+(e.pageYOffset||document.scrollTop||0)-(document.clientTop||0),left:t.left+(e.pageXOffset||document.scrollLeft||0)-(document.clientLeft||0)}},position:function(){function e(){for(var e=this.offsetParent||document;e&&"html"===!e.nodeType.toLowerCase&&"static"===e.style.position;)e=e.offsetParent;return e||document}var t=this[0],e=e.apply(t),r=this.offset(),a=/^(?:body|html)$/i.test(e.nodeName)?{top:0,left:0}:$(e).offset();return r.top-=parseFloat(t.style.marginTop)||0,r.left-=parseFloat(t.style.marginLeft)||0,e.style&&(a.top+=parseFloat(e.style.borderTopWidth)||0,a.left+=parseFloat(e.style.borderLeftWidth)||0),{top:r.top-a.top,left:r.left-a.left}}};var r={};$.expando="velocity"+(new Date).getTime(),$.uuid=0;for(var a={},n=a.hasOwnProperty,o=a.toString,i="Boolean Number String Function Array Date RegExp Object Error".split(" "),s=0;sn;++n){var o=u(r,e,a);if(0===o)return r;var i=l(r,e,a)-t;r-=i/o}return r}function p(){for(var t=0;b>t;++t)w[t]=l(t*x,e,a)}function f(t,r,n){var o,i,s=0;do i=r+(n-r)/2,o=l(i,e,a)-t,o>0?n=i:r=i;while(Math.abs(o)>h&&++s=y?c(t,s):0==l?s:f(t,r,r+x)}function g(){V=!0,(e!=r||a!=n)&&p()}var m=4,y=.001,h=1e-7,v=10,b=11,x=1/(b-1),S="Float32Array"in t;if(4!==arguments.length)return!1;for(var P=0;4>P;++P)if("number"!=typeof arguments[P]||isNaN(arguments[P])||!isFinite(arguments[P]))return!1;e=Math.min(e,1),a=Math.min(a,1),e=Math.max(e,0),a=Math.max(a,0);var w=S?new Float32Array(b):new Array(b),V=!1,C=function(t){return V||g(),e===r&&a===n?t:0===t?0:1===t?1:l(d(t),r,n)};C.getControlPoints=function(){return[{x:e,y:r},{x:a,y:n}]};var T="generateBezier("+[e,r,a,n]+")";return C.toString=function(){return T},C}function u(e,t){var r=e;return g.isString(e)?v.Easings[e]||(r=!1):r=g.isArray(e)&&1===e.length?s.apply(null,e):g.isArray(e)&&2===e.length?b.apply(null,e.concat([t])):g.isArray(e)&&4===e.length?l.apply(null,e):!1,r===!1&&(r=v.Easings[v.defaults.easing]?v.defaults.easing:h),r}function c(e){if(e){var t=(new Date).getTime(),r=v.State.calls.length;r>1e4&&(v.State.calls=n(v.State.calls));for(var o=0;r>o;o++)if(v.State.calls[o]){var s=v.State.calls[o],l=s[0],u=s[2],f=s[3],d=!!f,m=null;f||(f=v.State.calls[o][3]=t-16);for(var y=Math.min((t-f)/u.duration,1),h=0,b=l.length;b>h;h++){var S=l[h],w=S.element;if(i(w)){var V=!1;if(u.display!==a&&null!==u.display&&"none"!==u.display){if("flex"===u.display){var C=["-webkit-box","-moz-box","-ms-flexbox","-webkit-flex"];$.each(C,function(e,t){x.setPropertyValue(w,"display",t)})}x.setPropertyValue(w,"display",u.display)}u.visibility!==a&&"hidden"!==u.visibility&&x.setPropertyValue(w,"visibility",u.visibility);for(var T in S)if("element"!==T){var k=S[T],A,F=g.isString(k.easing)?v.Easings[k.easing]:k.easing;if(1===y)A=k.endValue;else{var E=k.endValue-k.startValue;if(A=k.startValue+E*F(y,u,E),!d&&A===k.currentValue)continue}if(k.currentValue=A,"tween"===T)m=A;else{if(x.Hooks.registered[T]){var j=x.Hooks.getRoot(T),H=i(w).rootPropertyValueCache[j];H&&(k.rootPropertyValue=H)}var N=x.setPropertyValue(w,T,k.currentValue+(0===parseFloat(A)?"":k.unitType),k.rootPropertyValue,k.scrollData);x.Hooks.registered[T]&&(i(w).rootPropertyValueCache[j]=x.Normalizations.registered[j]?x.Normalizations.registered[j]("extract",null,N[1]):N[1]),"transform"===N[0]&&(V=!0)}}u.mobileHA&&i(w).transformCache.translate3d===a&&(i(w).transformCache.translate3d="(0px, 0px, 0px)",V=!0),V&&x.flushTransformCache(w)}}u.display!==a&&"none"!==u.display&&(v.State.calls[o][2].display=!1),u.visibility!==a&&"hidden"!==u.visibility&&(v.State.calls[o][2].visibility=!1),u.progress&&u.progress.call(s[1],s[1],y,Math.max(0,f+u.duration-t),f,m),1===y&&p(o)}}v.State.isTicking&&P(c)}function p(e,t){if(!v.State.calls[e])return!1;for(var r=v.State.calls[e][0],n=v.State.calls[e][1],o=v.State.calls[e][2],s=v.State.calls[e][4],l=!1,u=0,c=r.length;c>u;u++){var p=r[u].element;if(t||o.loop||("none"===o.display&&x.setPropertyValue(p,"display",o.display),"hidden"===o.visibility&&x.setPropertyValue(p,"visibility",o.visibility)),o.loop!==!0&&($.queue(p)[1]===a||!/\.velocityQueueEntryFlag/i.test($.queue(p)[1]))&&i(p)){i(p).isAnimating=!1,i(p).rootPropertyValueCache={};var f=!1;$.each(x.Lists.transforms3D,function(e,t){var r=/^scale/.test(t)?1:0,n=i(p).transformCache[t];i(p).transformCache[t]!==a&&new RegExp("^\\("+r+"[^.]").test(n)&&(f=!0,delete i(p).transformCache[t])}),o.mobileHA&&(f=!0,delete i(p).transformCache.translate3d),f&&x.flushTransformCache(p),x.Values.removeClass(p,"velocity-animating")}if(!t&&o.complete&&!o.loop&&u===c-1)try{o.complete.call(n,n)}catch(d){setTimeout(function(){throw d},1)}s&&o.loop!==!0&&s(n),i(p)&&o.loop===!0&&!t&&($.each(i(p).tweensContainer,function(e,t){/^rotate/.test(e)&&360===parseFloat(t.endValue)&&(t.endValue=0,t.startValue=360),/^backgroundPosition/.test(e)&&100===parseFloat(t.endValue)&&"%"===t.unitType&&(t.endValue=0,t.startValue=100)}),v(p,"reverse",{loop:!0,delay:o.delay})),o.queue!==!1&&$.dequeue(p,o.queue)}v.State.calls[e]=!1;for(var g=0,m=v.State.calls.length;m>g;g++)if(v.State.calls[g]!==!1){l=!0;break}l===!1&&(v.State.isTicking=!1,delete v.State.calls,v.State.calls=[])}var f=function(){if(r.documentMode)return r.documentMode;for(var e=7;e>4;e--){var t=r.createElement("div");if(t.innerHTML="",t.getElementsByTagName("span").length)return t=null,e}return a}(),d=function(){var e=0;return t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||function(t){var r=(new Date).getTime(),a;return a=Math.max(0,16-(r-e)),e=r+a,setTimeout(function(){t(r+a)},a)}}(),g={isString:function(e){return"string"==typeof e},isArray:Array.isArray||function(e){return"[object Array]"===Object.prototype.toString.call(e)},isFunction:function(e){return"[object Function]"===Object.prototype.toString.call(e)},isNode:function(e){return e&&e.nodeType},isNodeList:function(e){return"object"==typeof e&&/^\[object (HTMLCollection|NodeList|Object)\]$/.test(Object.prototype.toString.call(e))&&e.length!==a&&(0===e.length||"object"==typeof e[0]&&e[0].nodeType>0)},isWrapped:function(e){return e&&(e.jquery||t.Zepto&&t.Zepto.zepto.isZ(e))},isSVG:function(e){return t.SVGElement&&e instanceof t.SVGElement},isEmptyObject:function(e){for(var t in e)return!1;return!0}},$,m=!1;if(e.fn&&e.fn.jquery?($=e,m=!0):$=t.Velocity.Utilities,8>=f&&!m)throw new Error("Velocity: IE8 and below require jQuery to be loaded before Velocity.");if(7>=f)return void(jQuery.fn.velocity=jQuery.fn.animate);var y=400,h="swing",v={State:{isMobile:/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent),isAndroid:/Android/i.test(navigator.userAgent),isGingerbread:/Android 2\.3\.[3-7]/i.test(navigator.userAgent),isChrome:t.chrome,isFirefox:/Firefox/i.test(navigator.userAgent),prefixElement:r.createElement("div"),prefixMatches:{},scrollAnchor:null,scrollPropertyLeft:null,scrollPropertyTop:null,isTicking:!1,calls:[]},CSS:{},Utilities:$,Redirects:{},Easings:{},Promise:t.Promise,defaults:{queue:"",duration:y,easing:h,begin:a,complete:a,progress:a,display:a,visibility:a,loop:!1,delay:!1,mobileHA:!0,_cacheValues:!0},init:function(e){$.data(e,"velocity",{isSVG:g.isSVG(e),isAnimating:!1,computedStyle:null,tweensContainer:null,rootPropertyValueCache:{},transformCache:{}})},hook:null,mock:!1,version:{major:1,minor:2,patch:2},debug:!1};t.pageYOffset!==a?(v.State.scrollAnchor=t,v.State.scrollPropertyLeft="pageXOffset",v.State.scrollPropertyTop="pageYOffset"):(v.State.scrollAnchor=r.documentElement||r.body.parentNode||r.body,v.State.scrollPropertyLeft="scrollLeft",v.State.scrollPropertyTop="scrollTop");var b=function(){function e(e){return-e.tension*e.x-e.friction*e.v}function t(t,r,a){var n={x:t.x+a.dx*r,v:t.v+a.dv*r,tension:t.tension,friction:t.friction};return{dx:n.v,dv:e(n)}}function r(r,a){var n={dx:r.v,dv:e(r)},o=t(r,.5*a,n),i=t(r,.5*a,o),s=t(r,a,i),l=1/6*(n.dx+2*(o.dx+i.dx)+s.dx),u=1/6*(n.dv+2*(o.dv+i.dv)+s.dv);return r.x=r.x+l*a,r.v=r.v+u*a,r}return function a(e,t,n){var o={x:-1,v:0,tension:null,friction:null},i=[0],s=0,l=1e-4,u=.016,c,p,f;for(e=parseFloat(e)||500,t=parseFloat(t)||20,n=n||null,o.tension=e,o.friction=t,c=null!==n,c?(s=a(e,t),p=s/n*u):p=u;;)if(f=r(f||o,p),i.push(1+f.x),s+=16,!(Math.abs(f.x)>l&&Math.abs(f.v)>l))break;return c?function(e){return i[e*(i.length-1)|0]}:s}}();v.Easings={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},spring:function(e){return 1-Math.cos(4.5*e*Math.PI)*Math.exp(6*-e)}},$.each([["ease",[.25,.1,.25,1]],["ease-in",[.42,0,1,1]],["ease-out",[0,0,.58,1]],["ease-in-out",[.42,0,.58,1]],["easeInSine",[.47,0,.745,.715]],["easeOutSine",[.39,.575,.565,1]],["easeInOutSine",[.445,.05,.55,.95]],["easeInQuad",[.55,.085,.68,.53]],["easeOutQuad",[.25,.46,.45,.94]],["easeInOutQuad",[.455,.03,.515,.955]],["easeInCubic",[.55,.055,.675,.19]],["easeOutCubic",[.215,.61,.355,1]],["easeInOutCubic",[.645,.045,.355,1]],["easeInQuart",[.895,.03,.685,.22]],["easeOutQuart",[.165,.84,.44,1]],["easeInOutQuart",[.77,0,.175,1]],["easeInQuint",[.755,.05,.855,.06]],["easeOutQuint",[.23,1,.32,1]],["easeInOutQuint",[.86,0,.07,1]],["easeInExpo",[.95,.05,.795,.035]],["easeOutExpo",[.19,1,.22,1]],["easeInOutExpo",[1,0,0,1]],["easeInCirc",[.6,.04,.98,.335]],["easeOutCirc",[.075,.82,.165,1]],["easeInOutCirc",[.785,.135,.15,.86]]],function(e,t){v.Easings[t[0]]=l.apply(null,t[1])});var x=v.CSS={RegEx:{isHex:/^#([A-f\d]{3}){1,2}$/i,valueUnwrap:/^[A-z]+\((.*)\)$/i,wrappedValueAlreadyExtracted:/[0-9.]+ [0-9.]+ [0-9.]+( [0-9.]+)?/,valueSplit:/([A-z]+\(.+\))|(([A-z0-9#-.]+?)(?=\s|$))/gi},Lists:{colors:["fill","stroke","stopColor","color","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","outlineColor"],transformsBase:["translateX","translateY","scale","scaleX","scaleY","skewX","skewY","rotateZ"],transforms3D:["transformPerspective","translateZ","scaleZ","rotateX","rotateY"]},Hooks:{templates:{textShadow:["Color X Y Blur","black 0px 0px 0px"],boxShadow:["Color X Y Blur Spread","black 0px 0px 0px 0px"],clip:["Top Right Bottom Left","0px 0px 0px 0px"],backgroundPosition:["X Y","0% 0%"],transformOrigin:["X Y Z","50% 50% 0px"],perspectiveOrigin:["X Y","50% 50%"]},registered:{},register:function(){for(var e=0;e=f)switch(e){case"name":return"filter";case"extract":var a=r.toString().match(/alpha\(opacity=(.*)\)/i);return r=a?a[1]/100:1;case"inject":return t.style.zoom=1,parseFloat(r)>=1?"":"alpha(opacity="+parseInt(100*parseFloat(r),10)+")"}else switch(e){case"name":return"opacity";case"extract":return r;case"inject":return r}}},register:function(){9>=f||v.State.isGingerbread||(x.Lists.transformsBase=x.Lists.transformsBase.concat(x.Lists.transforms3D));for(var e=0;en&&(n=1),o=!/(\d)$/i.test(n);break;case"skew":o=!/(deg|\d)$/i.test(n);break;case"rotate":o=!/(deg|\d)$/i.test(n)}return o||(i(r).transformCache[t]="("+n+")"),i(r).transformCache[t]}}}();for(var e=0;e=f||3!==o.split(" ").length||(o+=" 1"),o;case"inject":return 8>=f?4===n.split(" ").length&&(n=n.split(/\s+/).slice(0,3).join(" ")):3===n.split(" ").length&&(n+=" 1"),(8>=f?"rgb":"rgba")+"("+n.replace(/\s+/g,",").replace(/\.(\d)+(?=,)/g,"")+")"}}}()}},Names:{camelCase:function(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})},SVGAttribute:function(e){var t="width|height|x|y|cx|cy|r|rx|ry|x1|x2|y1|y2";return(f||v.State.isAndroid&&!v.State.isChrome)&&(t+="|transform"),new RegExp("^("+t+")$","i").test(e)},prefixCheck:function(e){if(v.State.prefixMatches[e])return[v.State.prefixMatches[e],!0];for(var t=["","Webkit","Moz","ms","O"],r=0,a=t.length;a>r;r++){var n;if(n=0===r?e:t[r]+e.replace(/^\w/,function(e){return e.toUpperCase()}),g.isString(v.State.prefixElement.style[n]))return v.State.prefixMatches[e]=n,[n,!0]}return[e,!1]}},Values:{hexToRgb:function(e){var t=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,r=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,a;return e=e.replace(t,function(e,t,r,a){return t+t+r+r+a+a}),a=r.exec(e),a?[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]:[0,0,0]},isCSSNullValue:function(e){return 0==e||/^(none|auto|transparent|(rgba\(0, ?0, ?0, ?0\)))$/i.test(e)},getUnitType:function(e){return/^(rotate|skew)/i.test(e)?"deg":/(^(scale|scaleX|scaleY|scaleZ|alpha|flexGrow|flexHeight|zIndex|fontWeight)$)|((opacity|red|green|blue|alpha)$)/i.test(e)?"":"px"},getDisplayType:function(e){var t=e&&e.tagName.toString().toLowerCase();return/^(b|big|i|small|tt|abbr|acronym|cite|code|dfn|em|kbd|strong|samp|var|a|bdo|br|img|map|object|q|script|span|sub|sup|button|input|label|select|textarea)$/i.test(t)?"inline":/^(li)$/i.test(t)?"list-item":/^(tr)$/i.test(t)?"table-row":/^(table)$/i.test(t)?"table":/^(tbody)$/i.test(t)?"table-row-group":"block"},addClass:function(e,t){e.classList?e.classList.add(t):e.className+=(e.className.length?" ":"")+t},removeClass:function(e,t){e.classList?e.classList.remove(t):e.className=e.className.toString().replace(new RegExp("(^|\\s)"+t.split(" ").join("|")+"(\\s|$)","gi")," ")}},getPropertyValue:function(e,r,n,o){function s(e,r){function n(){u&&x.setPropertyValue(e,"display","none")}var l=0;if(8>=f)l=$.css(e,r);else{var u=!1;if(/^(width|height)$/.test(r)&&0===x.getPropertyValue(e,"display")&&(u=!0,x.setPropertyValue(e,"display",x.Values.getDisplayType(e))),!o){if("height"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var c=e.offsetHeight-(parseFloat(x.getPropertyValue(e,"borderTopWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderBottomWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingTop"))||0)-(parseFloat(x.getPropertyValue(e,"paddingBottom"))||0);return n(),c}if("width"===r&&"border-box"!==x.getPropertyValue(e,"boxSizing").toString().toLowerCase()){var p=e.offsetWidth-(parseFloat(x.getPropertyValue(e,"borderLeftWidth"))||0)-(parseFloat(x.getPropertyValue(e,"borderRightWidth"))||0)-(parseFloat(x.getPropertyValue(e,"paddingLeft"))||0)-(parseFloat(x.getPropertyValue(e,"paddingRight"))||0);return n(),p}}var d;d=i(e)===a?t.getComputedStyle(e,null):i(e).computedStyle?i(e).computedStyle:i(e).computedStyle=t.getComputedStyle(e,null),"borderColor"===r&&(r="borderTopColor"),l=9===f&&"filter"===r?d.getPropertyValue(r):d[r],(""===l||null===l)&&(l=e.style[r]),n()}if("auto"===l&&/^(top|right|bottom|left)$/i.test(r)){var g=s(e,"position");("fixed"===g||"absolute"===g&&/top|left/i.test(r))&&(l=$(e).position()[r]+"px")}return l}var l;if(x.Hooks.registered[r]){var u=r,c=x.Hooks.getRoot(u);n===a&&(n=x.getPropertyValue(e,x.Names.prefixCheck(c)[0])),x.Normalizations.registered[c]&&(n=x.Normalizations.registered[c]("extract",e,n)),l=x.Hooks.extractValue(u,n)}else if(x.Normalizations.registered[r]){var p,d;p=x.Normalizations.registered[r]("name",e),"transform"!==p&&(d=s(e,x.Names.prefixCheck(p)[0]),x.Values.isCSSNullValue(d)&&x.Hooks.templates[r]&&(d=x.Hooks.templates[r][1])),l=x.Normalizations.registered[r]("extract",e,d)}if(!/^[\d-]/.test(l))if(i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r))if(/^(height|width)$/i.test(r))try{l=e.getBBox()[r]}catch(g){l=0}else l=e.getAttribute(r);else l=s(e,x.Names.prefixCheck(r)[0]);return x.Values.isCSSNullValue(l)&&(l=0),v.debug>=2&&console.log("Get "+r+": "+l),l},setPropertyValue:function(e,r,a,n,o){var s=r;if("scroll"===r)o.container?o.container["scroll"+o.direction]=a:"Left"===o.direction?t.scrollTo(a,o.alternateValue):t.scrollTo(o.alternateValue,a);else if(x.Normalizations.registered[r]&&"transform"===x.Normalizations.registered[r]("name",e))x.Normalizations.registered[r]("inject",e,a),s="transform",a=i(e).transformCache[r];else{if(x.Hooks.registered[r]){var l=r,u=x.Hooks.getRoot(r);n=n||x.getPropertyValue(e,u),a=x.Hooks.injectValue(l,a,n),r=u}if(x.Normalizations.registered[r]&&(a=x.Normalizations.registered[r]("inject",e,a),r=x.Normalizations.registered[r]("name",e)),s=x.Names.prefixCheck(r)[0],8>=f)try{e.style[s]=a}catch(c){v.debug&&console.log("Browser does not support ["+a+"] for ["+s+"]")}else i(e)&&i(e).isSVG&&x.Names.SVGAttribute(r)?e.setAttribute(r,a):e.style[s]=a;v.debug>=2&&console.log("Set "+r+" ("+s+"): "+a)}return[s,a]},flushTransformCache:function(e){function t(t){return parseFloat(x.getPropertyValue(e,t))}var r="";if((f||v.State.isAndroid&&!v.State.isChrome)&&i(e).isSVG){var a={translate:[t("translateX"),t("translateY")],skewX:[t("skewX")],skewY:[t("skewY")],scale:1!==t("scale")?[t("scale"),t("scale")]:[t("scaleX"),t("scaleY")],rotate:[t("rotateZ"),0,0]};$.each(i(e).transformCache,function(e){/^translate/i.test(e)?e="translate":/^scale/i.test(e)?e="scale":/^rotate/i.test(e)&&(e="rotate"),a[e]&&(r+=e+"("+a[e].join(" ")+") ",delete a[e])})}else{var n,o;$.each(i(e).transformCache,function(t){return n=i(e).transformCache[t],"transformPerspective"===t?(o=n,!0):(9===f&&"rotateZ"===t&&(t="rotate"),void(r+=t+n+" "))}),o&&(r="perspective"+o+" "+r)}x.setPropertyValue(e,"transform",r)}};x.Hooks.register(),x.Normalizations.register(),v.hook=function(e,t,r){var n=a;return e=o(e),$.each(e,function(e,o){if(i(o)===a&&v.init(o),r===a)n===a&&(n=v.CSS.getPropertyValue(o,t));else{var s=v.CSS.setPropertyValue(o,t,r);"transform"===s[0]&&v.CSS.flushTransformCache(o),n=s}}),n};var S=function(){function e(){return l?T.promise||null:f}function n(){function e(e){function p(e,t){var r=a,i=a,s=a;return g.isArray(e)?(r=e[0],!g.isArray(e[1])&&/^[\d-]/.test(e[1])||g.isFunction(e[1])||x.RegEx.isHex.test(e[1])?s=e[1]:(g.isString(e[1])&&!x.RegEx.isHex.test(e[1])||g.isArray(e[1]))&&(i=t?e[1]:u(e[1],o.duration),e[2]!==a&&(s=e[2]))):r=e,t||(i=i||o.easing),g.isFunction(r)&&(r=r.call(n,w,P)),g.isFunction(s)&&(s=s.call(n,w,P)),[r||0,i,s]}function f(e,t){var r,a;return a=(t||"0").toString().toLowerCase().replace(/[%A-z]+$/,function(e){return r=e,""}),r||(r=x.Values.getUnitType(e)),[a,r]}function d(){var e={myParent:n.parentNode||r.body,position:x.getPropertyValue(n,"position"),fontSize:x.getPropertyValue(n,"fontSize")},a=e.position===N.lastPosition&&e.myParent===N.lastParent,o=e.fontSize===N.lastFontSize;N.lastParent=e.myParent,N.lastPosition=e.position,N.lastFontSize=e.fontSize;var s=100,l={};if(o&&a)l.emToPx=N.lastEmToPx,l.percentToPxWidth=N.lastPercentToPxWidth,l.percentToPxHeight=N.lastPercentToPxHeight;else{var u=i(n).isSVG?r.createElementNS("http://www.w3.org/2000/svg","rect"):r.createElement("div");v.init(u),e.myParent.appendChild(u),$.each(["overflow","overflowX","overflowY"],function(e,t){v.CSS.setPropertyValue(u,t,"hidden")}),v.CSS.setPropertyValue(u,"position",e.position),v.CSS.setPropertyValue(u,"fontSize",e.fontSize),v.CSS.setPropertyValue(u,"boxSizing","content-box"),$.each(["minWidth","maxWidth","width","minHeight","maxHeight","height"],function(e,t){v.CSS.setPropertyValue(u,t,s+"%")}),v.CSS.setPropertyValue(u,"paddingLeft",s+"em"),l.percentToPxWidth=N.lastPercentToPxWidth=(parseFloat(x.getPropertyValue(u,"width",null,!0))||1)/s,l.percentToPxHeight=N.lastPercentToPxHeight=(parseFloat(x.getPropertyValue(u,"height",null,!0))||1)/s,l.emToPx=N.lastEmToPx=(parseFloat(x.getPropertyValue(u,"paddingLeft"))||1)/s,e.myParent.removeChild(u)}return null===N.remToPx&&(N.remToPx=parseFloat(x.getPropertyValue(r.body,"fontSize"))||16),null===N.vwToPx&&(N.vwToPx=parseFloat(t.innerWidth)/100,N.vhToPx=parseFloat(t.innerHeight)/100),l.remToPx=N.remToPx,l.vwToPx=N.vwToPx,l.vhToPx=N.vhToPx,v.debug>=1&&console.log("Unit ratios: "+JSON.stringify(l),n),l}if(o.begin&&0===w)try{o.begin.call(m,m)}catch(y){setTimeout(function(){throw y},1)}if("scroll"===k){var S=/^x$/i.test(o.axis)?"Left":"Top",V=parseFloat(o.offset)||0,C,A,F;o.container?g.isWrapped(o.container)||g.isNode(o.container)?(o.container=o.container[0]||o.container,C=o.container["scroll"+S],F=C+$(n).position()[S.toLowerCase()]+V):o.container=null:(C=v.State.scrollAnchor[v.State["scrollProperty"+S]],A=v.State.scrollAnchor[v.State["scrollProperty"+("Left"===S?"Top":"Left")]],F=$(n).offset()[S.toLowerCase()]+V),s={scroll:{rootPropertyValue:!1,startValue:C,currentValue:C,endValue:F,unitType:"",easing:o.easing,scrollData:{container:o.container,direction:S,alternateValue:A}},element:n},v.debug&&console.log("tweensContainer (scroll): ",s.scroll,n)}else if("reverse"===k){if(!i(n).tweensContainer)return void $.dequeue(n,o.queue);"none"===i(n).opts.display&&(i(n).opts.display="auto"),"hidden"===i(n).opts.visibility&&(i(n).opts.visibility="visible"),i(n).opts.loop=!1,i(n).opts.begin=null,i(n).opts.complete=null,b.easing||delete o.easing,b.duration||delete o.duration,o=$.extend({},i(n).opts,o);var E=$.extend(!0,{},i(n).tweensContainer);for(var j in E)if("element"!==j){var H=E[j].startValue;E[j].startValue=E[j].currentValue=E[j].endValue,E[j].endValue=H,g.isEmptyObject(b)||(E[j].easing=o.easing),v.debug&&console.log("reverse tweensContainer ("+j+"): "+JSON.stringify(E[j]),n)}s=E}else if("start"===k){var E;i(n).tweensContainer&&i(n).isAnimating===!0&&(E=i(n).tweensContainer),$.each(h,function(e,t){if(RegExp("^"+x.Lists.colors.join("$|^")+"$").test(e)){var r=p(t,!0),n=r[0],o=r[1],i=r[2];if(x.RegEx.isHex.test(n)){for(var s=["Red","Green","Blue"],l=x.Values.hexToRgb(n),u=i?x.Values.hexToRgb(i):a,c=0;cO;O++){var z={delay:F.delay,progress:F.progress};O===R-1&&(z.display=F.display,z.visibility=F.visibility,z.complete=F.complete),S(m,"reverse",z)}return e()}};v=$.extend(S,v),v.animate=S;var P=t.requestAnimationFrame||d;return v.State.isMobile||r.hidden===a||r.addEventListener("visibilitychange",function(){r.hidden?(P=function(e){return setTimeout(function(){e(!0)},16)},c()):P=t.requestAnimationFrame||d}),e.Velocity=v,e!==t&&(e.fn.velocity=S,e.fn.velocity.defaults=v.defaults),$.each(["Down","Up"],function(e,t){v.Redirects["slide"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u=l.begin,c=l.complete,p={height:"",marginTop:"",marginBottom:"",paddingTop:"",paddingBottom:""},f={};l.display===a&&(l.display="Down"===t?"inline"===v.CSS.Values.getDisplayType(e)?"inline-block":"block":"none"),l.begin=function(){u&&u.call(i,i);for(var r in p){f[r]=e.style[r];var a=v.CSS.getPropertyValue(e,r);p[r]="Down"===t?[a,0]:[0,a]}f.overflow=e.style.overflow,e.style.overflow="hidden"},l.complete=function(){for(var t in f)e.style[t]=f[t];c&&c.call(i,i),s&&s.resolver(i)},v(e,p,l)}}),$.each(["In","Out"],function(e,t){v.Redirects["fade"+t]=function(e,r,n,o,i,s){var l=$.extend({},r),u={opacity:"In"===t?1:0},c=l.complete;l.complete=n!==o-1?l.begin=null:function(){c&&c.call(i,i),s&&s.resolver(i)},l.display===a&&(l.display="In"===t?"auto":"none"),v(this,u,l)}}),v}(window.jQuery||window.Zepto||window,window,document)}); \ No newline at end of file diff --git a/lib/velocity/velocity.ui.min.js b/lib/velocity/velocity.ui.min.js new file mode 100644 index 0000000..8706945 --- /dev/null +++ b/lib/velocity/velocity.ui.min.js @@ -0,0 +1,2 @@ +/* VelocityJS.org UI Pack (5.0.4). (C) 2014 Julian Shapiro. MIT @license: en.wikipedia.org/wiki/MIT_License. Portions copyright Daniel Eden, Christian Pucci. */ +!function(t){"function"==typeof require&&"object"==typeof exports?module.exports=t():"function"==typeof define&&define.amd?define(["velocity"],t):t()}(function(){return function(t,a,e,r){function n(t,a){var e=[];return t&&a?($.each([t,a],function(t,a){var r=[];$.each(a,function(t,a){for(;a.toString().length<5;)a="0"+a;r.push(a)}),e.push(r.join(""))}),parseFloat(e[0])>parseFloat(e[1])):!1}if(!t.Velocity||!t.Velocity.Utilities)return void(a.console&&console.log("Velocity UI Pack: Velocity must be loaded first. Aborting."));var i=t.Velocity,$=i.Utilities,s=i.version,o={major:1,minor:1,patch:0};if(n(o,s)){var l="Velocity UI Pack: You need to update Velocity (jquery.velocity.js) to a newer version. Visit http://github.com/julianshapiro/velocity.";throw alert(l),new Error(l)}i.RegisterEffect=i.RegisterUI=function(t,a){function e(t,a,e,r){var n=0,s;$.each(t.nodeType?[t]:t,function(t,a){r&&(e+=t*r),s=a.parentNode,$.each(["height","paddingTop","paddingBottom","marginTop","marginBottom"],function(t,e){n+=parseFloat(i.CSS.getPropertyValue(a,e))})}),i.animate(s,{height:("In"===a?"+":"-")+"="+n},{queue:!1,easing:"ease-in-out",duration:e*("In"===a?.6:1)})}return i.Redirects[t]=function(n,s,o,l,c,u){function f(){s.display!==r&&"none"!==s.display||!/Out$/.test(t)||$.each(c.nodeType?[c]:c,function(t,a){i.CSS.setPropertyValue(a,"display","none")}),s.complete&&s.complete.call(c,c),u&&u.resolver(c||n)}var p=o===l-1;a.defaultDuration="function"==typeof a.defaultDuration?a.defaultDuration.call(c,c):parseFloat(a.defaultDuration);for(var d=0;d1&&($.each(a.reverse(),function(t,e){var r=a[t+1];if(r){var n=e.o||e.options,s=r.o||r.options,o=n&&n.sequenceQueue===!1?"begin":"complete",l=s&&s[o],c={};c[o]=function(){var t=r.e||r.elements,a=t.nodeType?[t]:t;l&&l.call(a,a),i(e)},r.o?r.o=$.extend({},s,c):r.options=$.extend({},s,c)}}),a.reverse()),i(a[0])}}(window.jQuery||window.Zepto||window,window,document)}); \ No newline at end of file diff --git a/page/2/index.html b/page/2/index.html new file mode 100644 index 0000000..676587d --- /dev/null +++ b/page/2/index.html @@ -0,0 +1,1516 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 耿腾的博客 + + + + + + + + + + + + + + + + +

    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    想写这样一篇总结也是因为在互联网上看了太多乱七八糟的说法,往往让读者越看越糊涂。这些说法往往给我这样的感觉:

    +
      +
    1. 没有先讲清楚在形容什么:同步、异步、阻塞、非阻塞通常作为形容词使用,无论是用在日常语境,还是用在编程领域内部,如果你不知道这些形容词是放在什么名词之前就开始讲什么意思,甚至一段话中掺杂多个名词去形容而不说明,那就会给人不知所云的感觉。
    2. +
    3. 概念与实现混为一谈:同步阻塞、异步非阻塞是非常常见的组合方式,所以在讲同步、异步的概念时,它们忍不住拿这些具体实现来讲概念,也就顶多能让读者理解这些固定搭配,难以活学活用(其实能不能做到前者都存疑,甚至作者自己真的懂吗?)。
    4. +
    5. 不恰当的比喻:比喻的使用是为了帮助表达,本体和喻体之间当然是不同的事物(否则就不是比喻了),但是讲了个生动的比喻,却没有把本体与喻体之间的对应关系讲清楚,或者没有讲清楚这个比喻的边界,给话题引入了不必要的复杂性,起到了相反的作用。
    6. +
    +

    所以,我打算好好聊一下我对这个话题的理解,尽可能不要犯我认为别人犯过的这些错误,欢迎读者监督。

    +

    同步与异步

    同步这个词在日常语境下与计算机是有着一些不同的。日常语境下,同步经常用在同时进行的事情上,比如“多个平台同步直播卖货”,“推动新时代四化同步发展”,当然它们之间是经过协调一致的,不是无组织无纪律各行其是的。

    +

    而在编程领域,“同步”和“异步”通常用来是形容“任务”、“函数”等可执行对象的(以下统一称作“任务”);当然也有用来形容“API”的,此时它们表示的是一种具体实现的风格,即“同步风格的API”、“异步风格的API”,它跟前者有关系也有区别。

    +

    那它们究竟是什么意思呢?

    +

    无论是同步还是异步,都一定是用来形容多个任务的,我们可以说这两个任务或者这三个函数是同步或者异步执行的,但是一个任务不存在同步或者异步。同步指的是多个任务一个一个执行,不存在时间重叠的情况,异步指的是多个任务不一个一个执行,可能存在时间重叠的情况。

    +
    +

    有的说法硬要在讲清楚这个概念之前,先把这个任务假设成一个异步函数,再把它分成调用和获取结果两个步骤,开始谈什么消息,打比方讲什么先打了个电话订餐,又接了个电话通知,然后告诉你这叫异步,这是很容易造成误解的。即便要拆成俩,单个任务的调用和获取结果也一定是一前一后,不可能先获取结果再调用,也不可能同时进行,这两个步骤是同步的,不以具体实现为转移,它们只是可能跟另一个任务是异步的,拆成俩徒增复杂度,没有任何必要。所以干脆不要拆,也不要聊具体实现,我们说一个任务,它就是一个任务,就是执行一段时间拿到结果,不要拆开。比如“吃外卖”,就等于“下单-收到电话-取餐-吃”这整个过程,反正经过了一段时间,不要在意内部细节

    +
    +

    那么,同步和异步应该怎么使用呢,比如;

    +
      +
    1. 我先吃了个外卖,然后打了一会游戏,吃外卖和打游戏这两个任务就是同步的。
    2. +
    3. 我先吃了个外卖,然后打了一会游戏,又写了会代码,这三个任务也是同步的。
    4. +
    5. 在 2. 的基础上,我在吃外卖的过程中还听了一段时间的音乐,那么听音乐和吃外卖是异步的(不要管我什么时候开的音乐,什么时候关的音乐)。
    6. +
    7. 在 2. 的基础上,打游戏期间都是保证把音乐关掉了的,但是吃外卖和写代码期间都听了一会音乐,那么听音乐和玩游戏是同步的,和吃外卖、写代码是异步的。
    8. +
    +

    是不是很简单,只要按照那个定义去套就行了。但是有一点要注意,4. 里面的 “打游戏期间都是保证把音乐关掉了” 的 “保证” 二字是很关键的,它确保了听音乐和玩游戏之间的 “一个一个执行” 的条件,这需要我在玩游戏之前确保音乐是关掉的,又保证玩游戏期间没有突然去把音乐打开,如果你只是凭运气,只是偶然造成了 “玩游戏期间音乐是关掉的” 的结果,那么它仍然是异步的,因为异步的定义里说的是“可能存在时间重叠”,你没有确保完全排除这个可能,它们就是异步的。

    +

    我们再回到日常语境下的“同步”,会发现它跟编程的“同步”是相通的。比如“多个平台同步直播卖货”,虽然整体上各平台是同时在直播一个流媒体源,看上去更符合异步的定义,但其实把“直播”拆分成“录制”、“拉流”、“转场”、“互动”、“上链接”等任务时,会发现它们之间还是存在一些比较严格的先后顺序的,比如你不可能在媒体源录制之前拉流,也不可能在某个重要互动之前就享受某些优惠。也就是说,日常语境下的同步,更多的是描述两件相关的大任务,它们的子任务只要存在一定程度的“保证”就可以说“同步”,并没有编程领域这么严格。

    +

    阻塞与非阻塞

    这确实是一对很难脱离具体实现讲的概念。

    +

    不过相比同步与异步,阻塞与非阻塞更简单,是用来形容单个可执行对象(以下仍统一称作“任务”)的执行状态的。

    +

    可能被形容的有线程、协程、某一段业务逻辑等等:

    +
      +
    1. 我在某线程用 BIO 接口读一个文件,造成该线程无法继续运行,这就是线程阻塞了
    2. +
    3. 我在某协程内使用该语言/框架提供的 sleep 方法,造成协程无法继续运行,这就是协程阻塞了(所在线程并没有阻塞)
    4. +
    5. 我写了一段代码,反正调用 IO 或者 sleep 了,我也不知道运行在哪个线程上,哪个协程上,或者只是一个异步的 setTimeout, 反正就是在等,这就是业务逻辑阻塞了(可能线程和协程都没有被阻塞)
    6. +
    +

    但其实这样说有点扩大概念外延的意思,99.9% 的情况下,我们说阻塞指的都是线程。而非阻塞,通常指的也是某个任务不会造成线程阻塞。

    +

    为什么线程阻塞是最常讨论的话题呢?因为:

    +
      +
    1. 线程的调度和空间占用,都是比较消耗系统资源的。一个 I/O 密集型业务(比如最常见的 Web 服务),如果会因为 I/O 阻塞线程,那么为了支持多个并发同时进行,就需要为每个独立的并发单独开一个线程。在并发较高时,就需要开大量的线程,占用大量 CPU 和内存资源,所以我们有了 C10K 问题。
    2. +
    3. 这是一个已经被用各种方式花式解决了的问题了。Linux 上的 epoll、Windows 上的 IOCP、MacOS 上的 kqueue(先不要管它们是异步/同步、阻塞/非阻塞,总之 —>),都提供了可以让调用者不必开一堆线程而只需要复用固定数量的线程即可支撑较高并发的接口。不管是 Nodejs,还是 Vert.X 的异步回调,Go 的有栈协程,Rust 的无栈协程,甭管它们封装成异步风格还是同步风格的API,是甜还是咸,都是建立在前者基础上的。简单说,目的只有一个:不阻塞调用者的线程,或者说线程复用
    4. +
    +

    业务要你等3秒,网络数据包要等几百毫秒才能到,硬盘读写要有时间,这些都会造成业务逻辑的阻塞,如果使用 BIO 接口,则业务逻辑的阻塞也会导致线程的阻塞。而使用了上述的框架/语言,让你不用在这些时候阻塞自己的线程,被阻塞的就只有当前业务逻辑,线程可以去跑别的业务逻辑,实现了线程复用。

    +

    组合起来

    现在,单讲同步、异步、阻塞、非阻塞,应该没什么问题了,我们再聊聊那些常见的搭配。

    +

    我们经常听说同步阻塞、异步非阻塞这种搭配方式,而如果按照前文的定义,这种搭配方式是很奇怪的——同步和异步是用来形容多个任务的,阻塞和非阻塞时是说单个任务的,这样组合在一起是在干嘛?

    +

    一般来讲,它们是用来形容某种 API 的风格和实现的。

    +

    同步和异步是表示这种 API 的接口风格。比如常见的 Linux 的 BIO 接口、Go 的 IO 接口、Rust 里的 async 函数,这些都是同步风格的接口,先后调用这样的两个接口,它们默认是同步执行的,你要异步执行,需要另外开线程或者协程;Node.js、Vert.X 的绝大部分接口,都是异步风格的接口,先后调用这样的两个接口,它们默认是异步执行的,你要同步执行,需要把第二个接口写到前一个接口的回调函数里。

    +

    阻塞和非阻塞是表示这种 API 需要调用者配合使用的线程模型。比如 Linux 的 BIO 接口会阻塞调用者的线程,它就是阻塞的,而 Go 的 IO 接口、Rust 的 async 函数、Node.js 和 Vert.X 里的异步接口,都不会阻塞调用者的线程,它们就是非阻塞的。

    +

    在没有协程的年代,同步风格的 BIO 接口就是会导致线程阻塞,它意味着心智负担小,开发方便,但是吃资源;而不会阻塞线程的 NIO/AIO 接口往往是异步风格(或者封装为异步风格),代码写起来心智负担重,性能好,比如 Node.js 和 Vert.X。所以经常有人拿同步代指阻塞,拿异步代指非阻塞,它们成为了同义词两两绑定在一起,即“同步阻塞”和“异步非阻塞”。

    +

    而 Go 、Rust 等语言提供的协程,相当于是对“异步非阻塞”的一种高级封装,可以像写同步代码那样写不阻塞线程的代码,让你即拥有高性能,又没有很高的心智负担。但是也很少见他们讨论自己是同步还是异步,阻塞还是非阻塞,因为风格上确实是同步的,封装的实际上是异步常用的非阻塞接口,确实不会阻塞线程,但是协程是可能被阻塞。所以不要套概念,理解原理,理解同步具体指的是谁和谁,异步具体指的是谁和谁,阻塞和非阻塞指的具体是谁,搞清楚对象,套定义就可以了。

    +

    总结

    在写这篇文章的时候,我并没有查询很多资料,但自认为这算是一个可以简化问题,帮助理解的模型。

    +

    希望能给读者一些启发,也欢迎批评指正。

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    使用数组结构表示堆结构,元素从索引 0 开始,则索引 i 位置:

    +
      +
    • 父节点索引为 $(i - 1) / 2$
    • +
    • 左孩子索引为 $2 \times i + 1$
    • +
    • 右孩子索引为 $2 \times i + 2$
    • +
    +
    +

    实现

      +
    • Java 实现
    • +
    +
    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
    public class Heap {

    public static void main(String[] args) {
    Heap heap = new Heap(1000);
    heap.push(-6);
    heap.push(3);
    heap.push(-1);
    heap.push(0);
    heap.push(9);
    heap.push(-4);
    heap.push(5);
    heap.push(7);
    heap.push(-2);
    heap.push(9);
    heap.push(13);

    System.out.println(heap);

    while (!heap.isEmpty()) {
    System.out.println(heap.pop());
    System.out.println(heap);
    }
    }

    private final int[] data;
    private final int limit;
    private int heapSize;

    public Heap(int limit) {
    this.limit = limit;
    this.data = new int[limit];
    this.heapSize = 0;
    }

    public void push(int value) {
    if (heapSize >= limit) {
    throw new RuntimeException("heapSize must not exceed limit");
    }

    this.data[heapSize++] = value;
    heapInsert(heapSize - 1);
    }

    public boolean isEmpty() {
    return heapSize == 0;
    }

    public Integer pop() {
    if (isEmpty()) {
    return null;
    }

    swap(--heapSize, 0);
    int result = this.data[heapSize];
    this.data[heapSize] = 0;
    heapify(0);
    return result;
    }

    private void heapInsert(int index) {
    while (index > 0 && this.data[index] > this.data[(index - 1) / 2]) {
    swap(index, (index - 1) / 2);
    index = (index - 1) / 2;
    }
    }

    private void swap(int i, int j) {
    if (i != j) {
    this.data[i] = this.data[i] ^ this.data[j];
    this.data[j] = this.data[i] ^ this.data[j];
    this.data[i] = this.data[i] ^ this.data[j];
    }
    }

    private void heapify(int index) {
    int leftIndex = 2 * index + 1;

    while (leftIndex < heapSize) {
    int rightIndex = leftIndex + 1;
    int greatestIndex = rightIndex < heapSize && this.data[rightIndex] > this.data[leftIndex] ? rightIndex : leftIndex;

    if (this.data[greatestIndex] <= this.data[index]) {
    break;
    }

    swap(index, greatestIndex);
    index = greatestIndex;
    leftIndex = 2 * index + 1;
    }
    }

    @Override
    public String toString() {
    StringBuilder b = new StringBuilder();
    b.append('[');
    for (int i = 0; i<heapSize; i++) {
    b.append(data[i]);
    if (i != heapSize - 1)
    b.append(", ");
    }
    b.append(']');

    return b.toString();
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    [13, 9, 5, 3, 9, -4, -1, -6, -2, 0, 7]
    13
    [9, 9, 5, 3, 7, -4, -1, -6, -2, 0]
    9
    [9, 7, 5, 3, 0, -4, -1, -6, -2]
    9
    [7, 3, 5, -2, 0, -4, -1, -6]
    7
    [5, 3, -1, -2, 0, -4, -6]
    5
    [3, 0, -1, -2, -6, -4]
    3
    [0, -2, -1, -4, -6]
    0
    [-1, -2, -6, -4]
    -1
    [-2, -4, -6]
    -2
    [-4, -6]
    -4
    [-6]
    -6
    []
    +
      +
    • Rust 实现
    • +
    +
    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
    pub struct Heap<T>(Vec<T>);

    impl<T: Ord> Heap<T> {
    pub fn new() -> Self {
    Self(Vec::new())
    }

    pub fn push(&mut self, value: T) {
    self.0.push(value);
    self.heap_insert();
    }

    pub fn pop(&mut self) -> Option<T> {
    if self.0.is_empty() {
    return None;
    }

    let last = self.0.len() - 1;
    self.0.swap(0, last);
    let result = self.0.pop();
    self.heapify();
    result
    }

    fn heapify(&mut self) {
    let len = self.0.len();

    let mut index = 0;
    let mut left = index * 2 + 1;

    while left < len {
    let right = left + 1;
    let greatest = if right < len && self.0[left] < self.0[right] {
    right
    } else {
    left
    };

    if self.0[greatest] <= self.0[index] {
    break;
    }

    self.0.swap(index, greatest);
    index = greatest;
    left = index * 2 + 1;
    }
    }

    fn heap_insert(&mut self) {
    if self.0.is_empty() {
    return;
    }

    let mut index = self.0.len() - 1;
    if index == 0 {
    return;
    }
    let mut parent = (index - 1) / 2;

    while self.0[parent] < self.0[index] {
    self.0.swap(index, parent);
    index = parent;
    if index == 0 {
    break;
    }
    parent = (index - 1) / 2;
    }
    }
    }

    impl<T: Ord> Iterator for Heap<T> {
    type Item = T;

    fn next(&mut self) -> Option<Self::Item> {
    self.pop()
    }
    }

    #[test]
    fn test_heap() {
    for _ in 0..1000 {
    let array: [u8; 32] = rand::random();
    let sorted = {
    let mut s = array.clone();
    s.sort_by(|a, b| b.cmp(a));
    s
    };

    let mut heap = Heap::new();

    for a in array {
    heap.push(a);
    }

    let heap_sorted: Vec<u8> = heap.collect();

    assert_eq!(heap_sorted, sorted);
    }
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    1. 降低 String 内存开销


    +

    2. 统计


    +

    3. GEO


    +

    4. 时间序列数据

    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    1. 基本架构

    一个键值数据库需要有哪些功能/结构/特性。

    +
      +
    • 支持多种数据结构
    • +
    • PUT、GET、DELETE、SCAN
    • +
    • 设置过期
    • +
    • 索引结构
    • +
    • 对外接口,Socket、动态链接库等等
    • +
    • 存储方式,内存、硬盘(持久化)
    • +
    • 高可用
    • +
    • 横向扩展
    • +
    • 功能可扩展性
    • +
    +
    +

    2. 数据结构

    Redis 接收到一个键值对操作后,能以 微秒 级别的速度找到数据,并快速完成操作。

    +

    Redis 的值有如下数据类型:

    +
      +
    • String(字符串)
    • +
    • List(列表)
    • +
    • Hash(哈希)
    • +
    • Set(集合)
    • +
    • Sorted Set(有序集合)
    • +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    数据类型数据结构
    String简单动态字符串
    List双向链表/压缩列表
    Hash压缩列表/哈希表
    Set整数数组/哈希表
    Sorted Set压缩列表/跳表
    +
    +

    Redis 使用一个全局的哈希表来保存所有键值对,可以在 $O(1)$ 的时间内查找到键值对。

    +

    一个哈希表就是一个数组,数组元素为哈希桶,每个哈希桶存放一个链表,连接着哈希值映射到该桶中的多个键值对。

    +
    1
    2
    3
    4
    5
    |0|1|2|3|4|5|
    | |
    | ---> entry4
    |
    ---> entry1 ---> entry2 ---> entry3
    +

    哈希冲突及rehash

    当哈希冲突过多时,链表过长,导致查找效率下降,Redis会对哈希表进行rehash。

    +

    为了 使 rehash 更高效,Redis 使用了两个全局哈希表:哈希表 1 和 哈希表 2 。默认情况下使用哈希表 1 ,哈希表 2 没有分配空间,当键值对增多时,Redis开始进行rehash:

    +
      +
    1. 给哈希表 2 分配更大的空间,例如是当前哈希表 1 大小的两倍;
    2. +
    3. 把哈希表 1 中的数据重新映射并拷贝到哈希表 2 中;
    4. +
    5. 释放哈希表 1 的空间。
    6. +
    +

    然后使用哈希表 2 保存数据,下次rehash再使用哈希表 1 。

    +

    避免一次性拷贝大量数据造成 Redis 线程阻塞,Redis采用了渐进式rehash。

    +

    渐进式rehash

    Redis可以保持处理用户请求,每处理一个请求,就顺带将哈希表 1 中的一个桶的所有entries拷贝到哈希表 2 中。这样就能把一次性大量拷贝的开销,分摊到了多次请求中,避免了耗时可能造成的阻塞。

    +

    数据结构的操作效率

    整数数组双向链表 都是顺序读写,操作复杂度都是 $O(N)$。

    +

    压缩列表

    压缩列表表头有 列表长度(zlbytes)列表尾偏移量(zltail)列表中entry个数(zllen) 三个字段,表尾有一个 zlend 字段表示 列表结束

    +
    1
    | zlbytes | zltail | zllen | entry1 | entry2 | ... | entryN | zlend |
    +

    查找表头、表尾元素的复杂度为 $O(1)$,查找其他元素的复杂度为 $O(N)$。

    +

    跳表

    跳表 是在 有序链表 的基础上增加了多级索引,通过索引位置的几次跳转,实现数据快速定位。

    +
    1
    2
    3
    4
    5
    1 ----------------------> 27 -----------------------> 100 // 二级索引
    ↓ ↓ ↓
    1 --------> 11 ---------> 27 ---------> 50 ---------> 100 // 一级索引
    ↓ ↓ ↓ ↓ ↓
    1 --> 5 --> 11 --> 20 --> 27 --> 33 --> 50 --> 62 --> 100 --> 156 // 链表
    +

    跳表 的查找复杂度为 $O(logN)$。

    +

    时间复杂度

    数据结构的时间复杂度

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    数据结构时间复杂度
    哈希表$O(1)$
    跳表$O(logN)$
    双向链表$O(N)$
    压缩列表$O(N)$
    整数数组$O(N)$
    +
    +

    不同操作的时间复杂度

      +
    1. 单元数操作是基础。每一种集合类型对单个数据实现的增删改查操作,复杂度由数据结构决定。
    2. +
    3. 范围操作很耗时。返回一个范围内的数据,复杂度一般是 $O(N)$,应尽量避免,可以使用 2.8 版本之后的 HSCANSSCANZSCAN 等命令进行渐进式遍历。
    4. +
    5. 统计操作通常高效。集合类型对集合中的元素个数由记录,例如 LLENSCARD
    6. +
    7. 例外情况只有几个。压缩列表和双向列表的会记录表头和表尾的偏移量,对它们的操作复杂度只有 $O(1)$,例如 LPOPRPOPLPUSHRPUSH
    8. +
    +

    问题

    整数数组和压缩列表在查找时间复杂度方面并没有很大优势,为什么Redis还会把它作为底层数据结构?

    +

    主要有两方面原因:

    +
      +
    1. 内存利用率。Redis 是内存数据库,大量数据存储在内存中,整数数组和压缩列表结构比较紧凑,相比链表结构占用内存更少,可以提高内存利用率。
    2. +
    3. 数组对CPU高速缓存支持更友好。集合元素较少时,使用内存紧凑的排列方式,可以利用CPU高速缓存,尤其在一个缓存行内(64字节)有更高效的访问效率。当元素数量超过阈值后,为避免复杂度太高,可以转为哈希表和跳表。
    4. +
    +

    3. 高性能 IO 模型

    Redis 的网络 IO 和键值对读写是由单个线程完成的;其他功能,例如持久化、异步删除、集群数据同步,是由额外的线程执行的。

    +

    Redis使用 IO多路复用,即一个线程处理多个 IO 流。

    +

    可能存在的瓶颈(来自Kaito):

    +
      +
    1. 单个请求耗时会导致后续所有请求阻塞等待,包括以下几种:
        +
      • 操作bigkey,分配、释放内存(4.0推出了lazy-free,可以异步执行bigkey释放)
      • +
      • 使用复杂度较高的命令,排序、union、查询全量数据
      • +
      • 大量key集中过期
      • +
      • 淘汰策略,内存超过Redis内存上线,每次写入都要淘汰一些key,导致耗时变长
      • +
      • AOF 开启 always
      • +
      • 主从同步生成 RDB 时的 fork
      • +
      +
    2. +
    3. 并发量大时,单线程处理客户端请求,无法利用多核(6.0推出了多线程,可利用多核CPU处理用户请求)
    4. +
    +
    +

    4. AOF(Append Only File)

    Redis 的 AOF 是写后日志,先执行命令,把数据写入内存,然后再记录日志。

    +

    不会阻塞当前写操作,执行完命令还没来得及记日志就宕机的话,会有数据丢失的风险。

    +
    1
    2
    3
    4
    5
    6
    7
    *3 --> 这个命令有三个部分
    $3 --> 第一部分的长度
    set --> 第一部分的内容
    $5
    hello
    $5
    world
    +

    三种写回策略

      +
    • Always,同步写回,每个命令执行完立马写回磁盘
    • +
    • EverySec,每秒写回,写到AOF内存缓存,每秒写回一次
    • +
    • No,写到AOF内存缓存,由操作系统决定何时将其写回
    • +
    +

    日志重写

    当日志文件过大时,可以对日志进行重写。可以把某些多条修改同一个键值对的命令合并为一条。

    +

    重写流程:

    +
      +
    1. 主线程 fork 出 bgrewriteaof 子进程,主线程在将新指令写入 AOF 缓存时,还会写入 AOF 重写缓存;
    2. +
    3. 子进程将 fork 拷贝出来的内存快照写成命令日志;
    4. +
    5. 写完后将AOF重写缓存中的日志写到这个新的日志中,然后就可以用这个新日志替换旧日志了。
    6. +
    +

    其他要点

      +
    1. fork 使用的是操作系统的写时复制(Copy On Write)机制,并不会直接拷贝所有内存。但是会拷贝父进程的的内存页表,如果页表较大,可能导致阻塞。
    2. +
    3. 主进程在提供服务时,如果操作的是bigkey,写时复制会导致内存分配;如果开启了内存大页(huge page)机制,内存分配会产生阻塞。(所以使用Redis通常要关闭内存大页,其对使用 fork 的程序不友好)
    4. +
    5. AOF 重写可以使用 bgrewriteaof 命令手动执行,也由两个配置项控制自动触发:
        +
      • auto-aof-rewrite-min-size:表示运行AOF重写的最小大小,默认为 64MB;
      • +
      • auto-aof-rewrite-percentage:当前AOF文件大小和上一次重写后AOF文件大小的差值,除以上一次重写AOF文件大小,即增量和上一次全量的比值,默认为 100。
        AOF 文件大小同时满足这两个配置项,会自动触发 AOF 重写。
      • +
      +
    6. +
    +
    +

    5. 内存快照 RDB

    把某一时刻的内存数据以文件的形式写到磁盘上,即快照。这个快照文件即 RDB 文件(Redis DataBase 的缩写)。

    +

    在数据恢复时,可直接把 RDB 文件读入内存,很快完成恢复。

    +

    Redis 执行的是全量快照。

    +

    可以使用 savebgsave 来生成 RDB 文件;save在主线程中执行,会阻塞;bgsave 会创建子进程专门进行 RDB 文件写入,不会阻塞。

    +

    快照进行时数据如何修改

    使用 fork 创建子进程,该子进程会跟主线程共享所有内存数据;利用操作系统的写时复制技术,当主进程修改数据时,会重新分配空间生成该数据的副本,并使用该副本提供服务,bgsave 子进程仍然使用未修改的数据进行快照写入。

    +

    快照频率

    频繁执行全量快照有两方面开销:

    +
      +
    1. 给磁盘带来压力
    2. +
    3. fork 本身可能阻塞主线程,如果频繁 fork 会导致主线程阻塞所以,如果有一个 bgsave 在运行,就不会启动第二个了
    4. +
    +

    4.0 中提出了混合使用AOF和RDB的方法,即快照以一定的频率执行,在快照间以AOF的形式记录这期间的命令。实现:

    +
      +
    1. 避免了频繁 fork 对主线程的影响
    2. +
    3. 减少了 AOF 文件大小,提高了数据恢复效率
    4. +
    +

    在配置文件中设置:

    +
    1
    aof-use-rdb-preamble yes
    +

    三点建议

      +
    1. 数据不能丢失时,使用 AOF 和 RDB 混合方案
    2. +
    3. 允许分钟级别的数据丢失,使用 RDB
    4. +
    5. 只用 AOF 的话,优先使用 everysec,在可靠性和性能之间比较平衡
    6. +
    +

    课后题:资源风险(Kaito)

    +
      +
    1. 考虑 fork 导致多大程度的写时复制,是否会造成 OOM,或者 swap 到磁盘上导致性能降低;
    2. +
    3. CPU 核数较少时,Redis的其他子进程会跟主线程竞争CPU,导致性能下降;
    4. +
    5. 如果 Redis 进程绑定了 CPU,子进程会继承它的 CPU 亲和属性,与父进程争夺同一个 CPU 资源,导致效率下降。所以如果开启RDB和AOF,一定不要绑定CPU。
    6. +
    +
    +

    6. 主从同步

    可靠性分两方面:

    +
      +
    1. 数据少丢失(由RDB、AOF保证);
    2. +
    3. 服务少中断(通过增加副本冗余量保证)
    4. +
    +

    读写分离:主库、从库都可以执行读操作,主库限制性写操作,然后同步给从库。

    +

    如果都允许写,会造成各实例副本不一致,需要涉及加锁、协商等各种操作,产生巨额开销。

    +

    主从第一次同步

    在从库实例上执行:

    +
    1
    replicaof [主库ip] [主库port]
    +

    三个阶段

      +
    1. 主从建立链接、协商同步,从库给主库发送 psync 命令,表示要进行数据同步,主库根据这个命令的参数来启动复制。psync 命令包含了主库的 runID 和复制进度 offset 两个参数。主库收到 psync 命令后,用 FULLRESYNC 响应命令带上两个参数,主库的 runID 和主库目前的复制进度 offset 给从库,从库会记住这两个参数。
    2. +
    +
    +

    runID:每个 Redis 实例启动时自动生成的一个随机 ID,唯一标识一个实例。第一次复制时从库不知道主库的 runID,使用 ?
    offset:第一次复制设置为 -1

    +
    +
      +
    1. 主库执行 bgsave 生成 RDB 文件,并发送给从库。从库收到 RDB 文件后,清空数据库并加载 RDB 文件。此时主库不会停止服务,但在内存中会有专门的 replication buffer,记录 RDB 文件生成后收到的所有写操作。
    2. +
    3. 主库把 replication buffer 中的修改操作发送给从库执行。
    4. +
    +

    主从级联

    使用“主-从-从”模式分担主库压力。二级从库可以选择一个内存较高的从库进行同步。

    +

    主从间使用基于长连接的命令传播。

    +

    网络断开

    2.8 前网络闪断会造成重新全量复制,2.8 后可以增量复制,实现继续同步。

    +

    (Kaito)主库除了将所有写命令传给从库之外,也会在 repl_backlog_buffer 中记录一份。当从库断线重连后,会发送 psync $master_runid $offset,主库就能通过 $offsetrepl_backlog_buffer 中找到从库断开的位置,只发送 $offset 之后的增量给从库。

    +
    +

    repl_backlog_buffer:为了解决从库断开后找到主从差异而设计的环形缓冲区。配置大一点,可以减少全量同步的频率。

    +

    replication buffer:客户端、从库与 Redis 通信时,Redis 都会分配一个内存 buffer 用于交互,把数据写进去并通过 socket 发送到对端。当对端为从库时,该 buffer 只负责传播写命令,通常叫做 replication buffer。这个 buffer 由 client-output-buffer-limit 参数控制,如果过小或者从库处理过慢,Redis 会强制断开这个链接。

    +
    +

    为啥不用 AOF 同步

      +
    1. 相比 RDB 文件更大,效率低;
    2. +
    3. 必须打开 AOF,数据丢失不敏感业务没必要开启
    4. +
    +
    +

    7. 哨兵


    +

    8. 哨兵集群


    +

    9. 切片集群


    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    TimSort


    +

    Pattern-defeating Quicksort(pdqsort)


    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    装饰器(Decorator)

    +

    Component:定义一个对象接口,可以给这些对象动态地添加职责。
    ConcreteComponent:定义对象,可以给这个对象添加一些职责。
    Decorator:维持一个指向 Component 对象的指针,并定义一个与 Component 接口一致的接口。
    ConcreteDecorator:实际的装饰对象,向组件添加职责。

    +
    +
      +
    • Java 实现
    • +
    +
    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
    public class DecoratorPattern {

    public static void main(String[] args) {
    Component component0 = new ADecorator(new BDecorator(new Component0()));
    component0.doSth();
    System.out.println();
    Component component1 = new BDecorator(new ADecorator(new BDecorator(new ADecorator(new Component1()))));
    component1.doSth();
    System.out.println();
    }

    public interface Component {
    void doSth();
    }

    public static class Component0 implements Component {

    @Override
    public void doSth() {
    System.out.print("0");
    }
    }

    public static class Component1 implements Component {

    @Override
    public void doSth() {
    System.out.print("1");
    }
    }

    public static abstract class Decorator implements Component {
    protected Component component;
    public Decorator(Component component) {
    this.component = component;
    }
    }

    public static class ADecorator extends Decorator {

    public ADecorator(Component component) {
    super(component);
    }

    @Override
    public void doSth() {
    component.doSth();
    System.out.print("A");
    }
    }

    public static class BDecorator extends Decorator {

    public BDecorator(Component component) {
    super(component);
    }

    @Override
    public void doSth() {
    component.doSth();
    System.out.print("B");
    }
    }
    }
    +
      +
    • Rust 实现
    • +
    +
    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
    pub trait Component {
    fn do_sth(&self);
    }

    pub struct Component1;

    impl Component for Component1 {
    fn do_sth(&self) {
    print!("1");
    }
    }

    pub struct Component2;

    impl Component for Component2 {
    fn do_sth(&self) {
    print!("2");
    }
    }

    pub trait Decorator<T: Component>: Component {
    fn wrap(inner: T) -> Self;
    }

    struct DecoratorA<T> {
    inner: T,
    }

    impl<T: Component> Component for DecoratorA<T> {
    fn do_sth(&self) {
    self.inner.do_sth();
    print!("A");
    }
    }

    impl<T: Component> Decorator<T> for DecoratorA<T> {
    fn wrap(inner: T) -> Self {
    Self { inner }
    }
    }

    struct DecoratorB<T> {
    inner: T,
    }

    impl<T: Component> Component for DecoratorB<T> {
    fn do_sth(&self) {
    self.inner.do_sth();
    print!("B");
    }
    }

    impl<T: Component> Decorator<T> for DecoratorB<T> {
    fn wrap(inner: T) -> Self {
    Self { inner }
    }
    }

    #[test]
    fn test_decorator() {
    let c1 = Component1;
    c1.do_sth();
    println!();
    let ab1 = DecoratorA::wrap(DecoratorB::wrap(Component1));
    ab1.do_sth();
    println!();
    let abbaa2 = DecoratorA::wrap(DecoratorB::wrap(DecoratorB::wrap(DecoratorA::wrap(
    DecoratorA::wrap(Component2),
    ))));
    abbaa2.do_sth();
    println!();

    // 在Rust中,如果不需要运行时动态装饰,就没有必要产生很多小对象
    // 装饰了好几轮,最后占用内存还是 Component2 的大小
    assert_eq!(
    std::mem::size_of::<
    DecoratorA<DecoratorB<DecoratorB<DecoratorA<DecoratorA<Component2>>>>>,
    >(),
    0
    );
    }
    +

    输出内容:

    +
    1
    2
    3
    1
    1BA
    2AABBA
    +
    +

    优点:比继承更灵活,避免类爆炸;可以组合;装饰器和构件可以独立变化,符合开闭原则。
    缺点:产生很多小对象,增加系统复杂度和理解难度,调试困难。

    +
    +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    分区问题

    二分

    将一个数组分为两个区域,小于等于N在左,大于N的在右;返回右侧的起始位置。

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    static int partition(int[] array, int value, int start, int end) {
    if (array == null || start >= end) {
    return -1;
    }

    int left = -1;

    for (int i = start; i < end; i++) {
    if (array[i] <= value) {
    if (left == -1) {
    left = start;
    } else {
    left += 1;
    }
    swap(array, i, left);
    }
    }

    return left + 1;
    }

    static int partition(int[] array, int value) {
    return partition(array, value, 0, array.length);
    }
    +

    输出内容:

    +
    1
    2
    3
    [2, 3, 5, 1, 2, 6, 4, 3, 8, 4, 3, 5, 1, 3, 5, 8]
    10
    [2, 3, 1, 2, 4, 3, 4, 3, 1, 3, 6, 5, 8, 5, 5, 8]
    +
      +
    • Rust 实现
    • +
    +

    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
    #[test]
    fn test_partition() {
    let mut array = [4, 2, 5, 7, 5, 4, 2, 9, 3, 5, 1];
    assert_eq!(array.partition(5), Index::Position(9));
    assert_eq!(array.partition(3), Index::Position(4));
    assert_eq!(array.partition(11), Index::Greater);
    assert_eq!(array.partition(0), Index::Less);
    }

    #[derive(Debug, Eq, PartialEq)]
    pub enum Index {
    // 值比所有数组元素都小
    Less,
    // 能找到一个分区位置
    Position(usize),
    // 值比所有数组元素都大
    Greater,
    }

    pub trait Partition<T> {
    fn partition(&mut self, value: T) -> Index;
    }

    impl<T: Ord> Partition<T> for [T] {
    // 返回大于部分的起始索引
    fn partition(&mut self, value: T) -> Index {
    let mut left = None;
    for i in 0..self.len() {
    if self[i] <= value {
    if let Some(left_val) = left {
    let new_left_val = left_val + 1;
    self.swap(i, new_left_val);
    left = Some(new_left_val);
    } else {
    self.swap(i, 0);
    left = Some(0);
    }
    }
    }

    match left {
    None => Index::Less,
    Some(i) if i == self.len() - 1 => Index::Greater,
    Some(i) => Index::Position(i + 1),
    }
    }
    }

    荷兰 🇳🇱 国旗问题(三分)

    将一个数组分为三个区域,小于N在左,等于N在中间,大于N的在右;返回中间和右侧的起始位置。

    +
      +
    • Java 实现
    • +
    +
    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
    static void swap(int[] array, int i, int j) {
    if (i == j) {
    return;
    }

    array[i] = array[i] ^ array[j];
    array[j] = array[i] ^ array[j];
    array[i] = array[i] ^ array[j];
    }

    static int[] netherlandsFlagPartition(int[] array, int value) {
    return netherlandsFlagPartition(array, value, 0, array.length);
    }

    static int[] netherlandsFlagPartition(int[] array, int value, int start, int end) {
    if (array == null || start >= end) {
    return null;
    }

    int left = -1;
    int right = end;
    int i = start;

    while (i < right) {
    if (array[i] < value) {
    left = left == -1 ? start : (left + 1);
    swap(array, left, i);
    i += 1;
    } else if (array[i] > value) {
    right -= 1;
    swap(array, right, i);
    } else { // array[i] == value
    i += 1;
    }
    }

    return new int[]{left + 1, right};
    }
    +

    输出内容:

    +
    1
    2
    [10, 13]
    [2, 3, 1, 2, 4, 3, 4, 3, 1, 3, 5, 5, 5, 8, 6, 8]
    +
      +
    • Rust 实现
    • +
    +
    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
    use std::cmp::Ordering;

    #[test]
    fn test_netherlands_flag_partition() {
    let mut array = [7, 1, 2, 0, 8, 5, 3, 9, 2, 6, 5, 1, 0, 8, 7, 4];
    // sorted: [0, 0, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 8, 9]
    // index(hex): [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F]
    assert_eq!(array.netherlands_flag_partition(2), (Some(4), Some(6)));
    assert_eq!(array.netherlands_flag_partition(7), (Some(0xB), Some(0xD)));
    assert_eq!(array.netherlands_flag_partition(-1), (None, Some(0)));
    assert_eq!(array.netherlands_flag_partition(0), (None, Some(2)));
    assert_eq!(
    array.netherlands_flag_partition(10),
    (Some(array.len()), None)
    );
    assert_eq!(
    array.netherlands_flag_partition(9),
    (Some(array.len() - 1), None)
    );
    }

    pub trait NetherlandsFlagPartition<T> {
    fn netherlands_flag_partition(&mut self, value: T) -> (Option<usize>, Option<usize>);
    }

    impl<T: Ord> NetherlandsFlagPartition<T> for [T] {
    // 返回相等部分和大于部分的起始索引
    fn netherlands_flag_partition(&mut self, value: T) -> (Option<usize>, Option<usize>) {
    let len = self.len();
    let mut left = None;
    let mut right = None;
    let mut i = 0;
    while i < right.unwrap_or(len) {
    match self[i].cmp(&value) {
    Ordering::Less => {
    match left {
    None => {
    self.swap(0, i);
    left = Some(0);
    }
    Some(left_value) => {
    let new_left = left_value + 1;
    self.swap(new_left, i);
    left = Some(new_left);
    }
    }
    i += 1;
    }
    Ordering::Equal => {
    i += 1;
    }
    Ordering::Greater => {
    match right {
    None => {
    self.swap(len - 1, i);
    right = Some(len - 1);
    }
    Some(right_value) => {
    let new_right = right_value - 1;
    self.swap(new_right, i);
    right = Some(new_right);
    }
    }

    // i 不要自增,让下一次循环检查新换到前面的值
    }
    }
    }

    (left.map(|v| v + 1), right)
    }
    }
    +
      +
    • Rust 实现(用枚举表示结果)
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    use std::cmp::Ordering;

    #[test]
    fn test_netherlands_flag_partition() {
    let mut array = [7, 1, 2, 0, 8, 5, 3, 9, 2, 6, 5, 1, 0, 8, 7, 4];
    assert_eq!(
    array.netherlands_flag_partition(2),
    NetherlandsFlagResult::Three(4, 6)
    );
    assert_eq!(
    array.netherlands_flag_partition(7),
    NetherlandsFlagResult::Three(11, 13)
    );
    assert_eq!(
    array.netherlands_flag_partition(-1),
    NetherlandsFlagResult::Greater
    );
    assert_eq!(
    array.netherlands_flag_partition(0),
    NetherlandsFlagResult::ValueStart(2)
    );
    assert_eq!(
    array.netherlands_flag_partition(10),
    NetherlandsFlagResult::Less
    );
    assert_eq!(
    array.netherlands_flag_partition(9),
    NetherlandsFlagResult::ValueEnd(15)
    );

    let mut array = [2, 2, 2, 2, 2];
    assert_eq!(
    array.netherlands_flag_partition(2),
    NetherlandsFlagResult::Equal
    );
    }

    #[derive(Debug, Eq, PartialEq)]
    pub enum NetherlandsFlagResult {
    /// 分为三部分,分别是 < value, == value, > value, 返回后两部分的起始索引
    Three(usize, usize),
    /// 分为两部分,== value, > value, 返回第二部分的起始索引
    ValueStart(usize),
    /// 分为两部分,< value, == value, 返回第二部分的起始索引
    ValueEnd(usize),
    /// 所有值都小于 value
    Less,
    /// 所有值都大于 value
    Greater,
    /// 所有值都等于 value
    Equal,
    }

    pub trait NetherlandsFlagPartition<T> {
    fn netherlands_flag_partition(&mut self, value: T) -> NetherlandsFlagResult;
    }

    impl<T: Ord> NetherlandsFlagPartition<T> for [T] {
    // 返回相等部分和大于部分的起始索引
    fn netherlands_flag_partition(&mut self, value: T) -> NetherlandsFlagResult {
    let len = self.len();
    let mut left = None;
    let mut right = None;
    let mut i = 0;
    while i < right.unwrap_or(len) {
    match self[i].cmp(&value) {
    Ordering::Less => {
    match left {
    None => {
    self.swap(0, i);
    left = Some(0);
    }
    Some(left_value) => {
    let new_left = left_value + 1;
    self.swap(new_left, i);
    left = Some(new_left);
    }
    }
    i += 1;
    }
    Ordering::Equal => {
    i += 1;
    }
    Ordering::Greater => {
    match right {
    None => {
    self.swap(len - 1, i);
    right = Some(len - 1);
    }
    Some(right_value) => {
    let new_right = right_value - 1;
    self.swap(new_right, i);
    right = Some(new_right);
    }
    }

    // i 不要自增,让下一次循环检查新换到前面的值
    }
    }
    }

    match (left.map(|v| v + 1), right) {
    (None, Some(i)) => {
    if i == 0 {
    NetherlandsFlagResult::Greater
    } else {
    NetherlandsFlagResult::ValueStart(i)
    }
    }
    (Some(i), None) => {
    if i >= self.len() {
    NetherlandsFlagResult::Less
    } else {
    NetherlandsFlagResult::ValueEnd(i)
    }
    }
    (Some(i), Some(j)) => {
    if i >= self.len() {
    NetherlandsFlagResult::Greater
    } else {
    NetherlandsFlagResult::Three(i, j)
    }
    }
    (None, None) => NetherlandsFlagResult::Equal,
    }
    }
    }
    +

    快速排序

    v1.0

    步骤:

    +
      +
    1. 选择数组最后一个元素 X,在 0..array.length-1 的范围上进行二分,小于等于 X 的在左,大于 X 的在右;
    2. +
    3. X 与右侧的第一个元素交换;
    4. +
    5. X 左侧与右侧的数组分别进行上述操作,进行递归,过程中 X 不需要再移动。
    6. +
    +

    时间复杂度:$O(N)$

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    static void quickSort1(int[] array) {
    recurse1(array, 0, array.length);
    }

    static void recurse1(int[] array, int start, int end) {
    if (array == null || start >= end - 1) {
    return;
    }

    int pivot = array[end - 1];
    int idx = partition(array, pivot, start, end - 1);
    swap(array, idx, end - 1);
    recurse1(array, start, idx);
    recurse1(array, idx + 1, end);
    }
    +
      +
    • Rust 实现
    • +
    +
    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
    #[test]
    fn test_quick_sort1() {
    for _ in 0..1000 {
    let mut array0: [u8; 32] = rand::random();
    let mut array1 = array0.clone();

    array0.sort();
    array1.quick_sort1();

    assert_eq!(array0, array1);
    }
    }

    pub trait QuickSort1 {
    fn quick_sort1(&mut self);
    }

    impl<T: Ord + Clone> QuickSort1 for [T] {
    fn quick_sort1(&mut self) {
    let len = self.len();
    if len < 2 {
    return;
    }

    let value = self[len - 1].clone();

    match self[..len - 1].partition(value) {
    // value 比所有元素都小,把 value 挪到第一个位置,排序剩下的
    Index::Less => {
    self.swap(0, len - 1);
    self[1..].quick_sort1();
    }
    // 把 value 与第一个大于区的数交换
    Index::Position(i) => {
    self.swap(i, len - 1);
    self[..i].quick_sort1();
    self[i + 1..].quick_sort1();
    }
    // value比所有元素都大,不动,排序前面所有的
    Index::Greater => {
    self[..len - 1].quick_sort1();
    }
    }
    }
    }
    +

    v2.0

      +
    1. 选择数组一个元素 X,进行荷兰国旗三分,小于 X 的在左,等于 X 的在中间,大于 X 的在右;
    2. +
    3. X 左侧与右侧的数组分别进行上述操作,进行递归,过程中位于中间的所有 X 不需要再移动。
    4. +
    +

    时间复杂度:$O(N)$

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    static void quickSort2(int[] array) {
    recurse2(array, 0, array.length);
    }

    static void recurse2(int[] array, int start, int end) {
    if (array == null || start >= end - 1) {
    return;
    }

    int pivot = array[end - 1];
    int[] idxs = netherlandsFlagPartition(array, pivot, start, end);
    if (idxs == null) {
    return;
    }
    recurse2(array, start, idxs[0]);

    if (idxs[1] < end - 1) {
    recurse2(array, idxs[1], end);
    }
    }
    +
      +
    • Rust 实现
    • +
    +
    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
    #[test]
    fn test_quick_sort2() {
    for _ in 0..1000 {
    let mut array0: [i32; 32] = random();
    let mut array1 = array0.clone();

    array0.sort();
    array1.quick_sort2();

    assert_eq!(array0, array1);
    }
    }

    pub trait QuickSort2 {
    fn quick_sort2(&mut self);
    }

    impl<T: Ord + Clone> QuickSort2 for [T] {
    fn quick_sort2(&mut self) {
    if self.len() < 2 {
    return;
    }

    let value = self[0].clone();

    match self.netherlands_flag_partition(value) {
    NetherlandsFlagResult::Three(start, end) => {
    self[..start].quick_sort2();
    self[end..].quick_sort2();
    }
    NetherlandsFlagResult::ValueStart(start) => {
    self[start..].quick_sort2();
    }
    NetherlandsFlagResult::ValueEnd(end) => {
    self[..end].quick_sort2();
    }
    NetherlandsFlagResult::Less | NetherlandsFlagResult::Greater => {
    self.quick_sort2();
    }
    NetherlandsFlagResult::Equal => {
    return;
    }
    }
    }
    }
    +

    v3.0

    将 v2.0 中选择数组元素改为随机选择,其他不变。

    +
    +
      +
    1. 划分值越靠近中间,性能越好;越靠近两边性能越差;
    2. +
    3. 随机算一个数进行划分的目的就是让好情况和坏情况都变成概率事件;
    4. +
    5. 把每一种情况都列出来,会有每种情况下的复杂度,但概率都是 $1/N$;
    6. +
    7. 所有情况都考虑,则时间复杂度就是这种概率模型下的长期期望。
    8. +
    +
    +

    时间复杂度:$O(N \times logN)$
    额外空间复杂度:$O(N \times logN)$

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    static void quickSort3(int[] array) {
    recurse3(array, 0, array.length);
    }

    static void recurse3(int[] array, int start, int end) {
    if (array == null || start >= end - 1) {
    return;
    }

    int pi = (int) (Math.random() * (end - start));
    System.out.println(start + pi);
    int pivot = array[start + pi];
    int[] idxs = netherlandsFlagPartition(array, pivot, start, end);
    if (idxs == null) {
    return;
    }
    recurse3(array, start, idxs[0]);

    if (idxs[1] < end - 1) {
    recurse3(array, idxs[1], end);
    }
    }
    +
      +
    • Rust 实现
    • +
    +
    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
    #[test]
    fn test_quick_sort3() {
    for _ in 0..1000 {
    let mut array0: [i32; 32] = random();
    let mut array1 = array0.clone();

    array0.sort();
    array1.quick_sort3();

    assert_eq!(array0, array1);
    }
    }

    pub trait QuickSort3 {
    fn quick_sort3(&mut self);
    }

    impl<T: Ord + Clone> QuickSort for [T] {
    fn quick_sort3(&mut self) {
    if self.len() < 2 {
    return;
    }

    let index = rand::thread_rng().gen_range(0..self.len());
    let value = self[index].clone();

    match self.netherlands_flag_partition(value) {
    NetherlandsFlagResult::Three(start, end) => {
    self[..start].quick_sort3();
    self[end..].quick_sort3();
    }
    NetherlandsFlagResult::ValueStart(start) => {
    self[start..].quick_sort3();
    }
    NetherlandsFlagResult::ValueEnd(end) => {
    self[..end].quick_sort3();
    }
    NetherlandsFlagResult::Less | NetherlandsFlagResult::Greater => {
    self.quick_sort3();
    }
    NetherlandsFlagResult::Equal => {
    return;
    }
    }
    }
    }
    +

    Swap 函数

      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    static void swap(int[] array, int i, int j) {
    if (i == j) {
    return;
    }

    array[i] = array[i] ^ array[j];
    array[j] = array[i] ^ array[j];
    array[i] = array[i] ^ array[j];
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    归并排序

      +
    • 算法时间复杂度: $O(NlogN)$
    • +
    • 相比冒泡、选择等时间复杂度为 $O(N^2)$ 的排序算法,没有浪费比较行为;
    • +
    • 插入排序时即便使用二分查找插入位置,也需要将插入位置后的元素依次向右移动,每次插入复杂度不是 $O(1)$。
    • +
    +

    递归方法

      +
    • Java 实现
    • +
    +
    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
    public class MergeSort {

    public static void main(String[] args) {
    Integer[] data = {12, 3, 2, 6, 4, 8, 6, 0, 9, 3};
    System.out.println(Arrays.toString(data));
    mergeSort(data);
    System.out.println(Arrays.toString(data));
    }

    static <T extends Comparable> void mergeSort(T[] array) {
    T[] help = (T[]) new Comparable[array.length];
    doMergeSort(array, help, 0, array.length);
    }

    static <T extends Comparable> void doMergeSort(T[] array, T[] help, int start, int end) {
    if (start == end - 1) {
    return;
    }

    int mid = start + ((end - start) >> 1);
    doMergeSort(array, help, start, mid);
    doMergeSort(array, help, mid, end);
    mergeSorted(array, help, start, mid, end);
    }

    static <T extends Comparable> void mergeSorted(T[] array, T[] help, int start, int mid, int end) {
    int h = start;
    int i = start;
    int j = mid;

    while (i < mid && j < end) {
    if (array[i].compareTo(array[j]) <= 0) {
    help[h++] = array[i++];
    } else {
    help[h++] = array[j++];
    }
    }

    while (i < mid) {
    help[h++] = array[i++];
    }

    while (j < end) {
    help[h++] = array[j++];
    }

    assert h == end;
    for (int n = start; n < end; n++) {
    array[n] = help[n];
    }
    }
    }
    +

    输出内容:

    +
    1
    2
    [12, 3, 2, 6, 4, 8, 6, 0, 9, 3]
    [0, 2, 3, 3, 4, 6, 6, 8, 9, 12]
    +
      +
    • Rust 实现
    • +
    +
    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
    #[test]
    fn test_merge_sort() {
    for _ in 0..100 {
    let mut array0: [u8; 32] = rand::random();
    let mut array1 = array0.clone();
    array0.merge_sort();
    array1.sort();
    assert_eq!(array0, array1);
    }
    }

    trait MergeSort {
    fn merge_sort(&mut self);
    }

    impl<T: Ord + Clone> MergeSort for [T] {
    fn merge_sort(&mut self) {
    let len = self.len();
    if len == 0 || len == 1 {
    return;
    }

    let mid = len >> 1;
    self[..mid].merge_sort();
    self[mid..].merge_sort();

    let mut i = 0;
    let mut j = mid;
    let mut vec = Vec::with_capacity(len);

    while i < mid && j < len {
    if self[i] <= self[j] {
    vec.push(self[i].clone());
    i += 1;
    } else {
    vec.push(self[j].clone());
    j += 1;
    }
    }

    while i < mid {
    vec.push(self[i].clone());
    i += 1;
    }

    while j < len {
    vec.push(self[j].clone());
    j += 1;
    }

    self.clone_from_slice(&vec);
    }
    }
    +

    非递归方法

      +
    • Java 实现
    • +
    +
    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
    public static <T extends Comparable<T>> void mergeSortLoop(T[] array) {
    if (array == null || array.length < 2) {
    return;
    }

    Comparable[] help = (T[]) new Comparable[array.length];

    int mergeSize = 1;

    while (mergeSize < array.length) {
    int left = 0;

    while (left < array.length) {
    int mid = left + mergeSize;

    if (mid >= array.length) {
    break;
    }

    int right = Math.min(mid + mergeSize, array.length);
    mergeSorted(array, help, left, mid, right);
    left = right;
    }


    if (mergeSize >= array.length >> 1) {
    break;
    }

    mergeSize <<= 1;
    }
    }
    +
      +
    • Rust 实现
    • +
    +

    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
    #[test]
    fn test_loop_merge_sort() {
    for _ in 0..100 {
    let mut array0: [u8; 32] = rand::random();
    let mut array1 = array0.clone();
    array0.loop_merge_sort();
    array1.sort();
    assert_eq!(array0, array1);
    }
    }

    impl<T: Ord + Clone> MergeSort for [T] {
    fn merge_sort(&mut self) {
    //...
    }

    fn loop_merge_sort(&mut self) {
    let len = self.len();
    if len < 2 {
    return;
    }

    let mut merge_size: usize = 1;
    while merge_size < len {
    let mut left = 0;

    while left < len {
    let mid = left + merge_size;
    if mid >= len {
    break;
    }

    let right = (mid + merge_size).min(len);

    // merge sorted
    let mut vec = Vec::with_capacity(right - left);

    let mut i = left;
    let mut j = mid;
    while i < mid && j < right {
    if self[i] <= self[j] {
    vec.push(self[i].clone());
    i += 1;
    } else {
    vec.push(self[j].clone());
    j += 1;
    }
    }

    while i < mid {
    vec.push(self[i].clone());
    i += 1;
    }

    while j < right {
    vec.push(self[j].clone());
    j += 1;
    }

    (&mut self[left..right]).clone_from_slice(&vec);

    left = right;
    }

    if merge_size > len >> 1 {
    break;
    }

    merge_size <<= 1;
    }
    }
    }

    求数组的小和

    在一个数组中,一个数左边比它小的数的总和,叫数的小和,所有数的小和加起来叫数组小和。求数组小和。

    +
    +

    例子:[1, 3, 4, 2, 5]

    +

    1 左边比自己小的数:没有
    3 左边比自己小的数:1
    4 左边比自己小的数:1 3
    2 左边比自己小的数:1
    5 左边比自己小的数:1 3 4 2

    +

    所以,数组的小和为 $1 + 1 + 3 + 1 + 1 + 3 + 4 + 2 = 16$

    +
    +
      +
    • Java 实现
    • +
    +

    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
    public class SmallSum {
    public static void main(String[] args) {
    System.out.println(smallSum(new int[]{1, 3, 4, 2, 5}) + " == " + getSmallSumSimple(new int[]{1, 3, 4, 2, 5}));
    }

    static int getSmallSumSimple(int[] array) {
    int smallSum = 0;
    for (int i = 0; i < array.length; ++i) {
    for (int j = 0; j < i; ++j) {
    if (array[j] < array[i]) {
    smallSum += array[j];
    }
    }
    }
    return smallSum;
    }

    static int smallSum(int[] array) {
    int[] help = new int[array.length];
    return doMergeSmallSum(array, help, 0, help.length);
    }

    static int doMergeSmallSum(int[] array, int[] help, int start, int end) {
    if (end - start < 2) {
    return 0;
    }

    int mid = start + ((end - start) >> 1);
    int left = doMergeSmallSum(array, help, start, mid);
    int right = doMergeSmallSum(array, help, mid, end);
    return left + right + doMerge(array, help, start, mid, end);
    }

    static int doMerge(int[] array, int[] help, int start, int mid, int end) {
    int i = start;
    int j = mid;
    int k = start;
    int sum = 0;

    while (i < mid && j < end) {
    if (array[i] < array[j]) {
    int t = array[i++];
    help[k++] = t;
    sum += t * (end - j);
    } else {
    help[k++] = array[j++];
    }
    }

    while (i < mid) {
    help[k++] = array[i++];
    }

    while (j < end) {
    help[k++] = array[j++];
    }

    for (k = start; k < end; k++) {
    array[k] = help[k];
    }

    return sum;
    }
    }

    求数组中的降序对

    +

    例如:[3, 1, 7, 0, 2] 中的降序对有 (3, 1)(3, 0)(3, 2)(1, 0)(7, 0)(7, 2)

    +
    +

    即求数组中每个数右边有多少个数比它小,就有多少个降序对。

    +
      +
    • Rust 实现
    • +
    +
    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
    #[test]
    fn test_get_descending_pairs() {
    for _ in 0..100 {
    let mut array0: [u8; 32] = rand::random();
    let mut array1 = array0.clone();
    let set0 = array0.get_descending_pairs();
    let set1 = array1.get_descending_pairs_simple();
    assert_eq!(set0, set1);
    }
    }

    trait DescendingPair<T> {
    fn get_descending_pairs(&mut self) -> HashSet<(T, T)>;
    fn get_descending_pairs_simple(&mut self) -> HashSet<(T, T)>;
    }

    impl<T: Ord + Clone + Hash> DescendingPair<T> for [T] {
    fn get_descending_pairs(&mut self) -> HashSet<(T, T)> {
    let mut set = HashSet::new();
    if self.len() < 2 {
    return set;
    }

    let mid = self.len() >> 1;
    let mut left = self[..mid].get_descending_pairs();
    let mut right = self[mid..].get_descending_pairs();
    set.extend(left.drain());
    set.extend(right.drain());

    let mut help = Vec::with_capacity(self.len());
    let mut j = 0;
    let mut k = mid;
    let len = self.len();

    while j < mid && k < len {
    if self[j] > self[k] {
    let mut temp = self[k..]
    .iter()
    .map(|v| (self[j].clone(), v.clone()))
    .collect::<HashSet<_>>();
    set.extend(temp.drain());

    help.push(self[j].clone());
    j += 1;
    } else {
    help.push(self[k].clone());
    k += 1;
    }
    }

    help.extend_from_slice(&self[j..mid]);
    help.extend_from_slice(&self[k..]);

    assert_eq!(help.len(), self.len());
    self.clone_from_slice(&help);

    set
    }

    fn get_descending_pairs_simple(&mut self) -> HashSet<(T, T)> {
    let mut set = HashSet::new();
    for i in 0..self.len() {
    for j in 0..i {
    if self[j] > self[i] {
    set.insert((self[j].clone(), self[i].clone()));
    }
    }
    }
    set
    }
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    当递归函数的时间执行函数满足如下的关系式时,可以使用公式法计算时间复杂度:

    +
    +

    其中:

    +
      +
    1. $a$ 为递归次数;
    2. +
    3. $\frac {N} {b}$ 为子问题规模;
    4. +
    5. $O(N^d)$ 为每次递归完毕之后额外执行的操作的时间复杂度;
    6. +
    +
    +
      +
    • 如果 $\log_b a < d$,时间复杂度为 $O(N^d)$
    • +
    • 如果 $\log_b a > d$,时间复杂度为 $O(N^{\log_b a})$
    • +
    • 如果 $\log_b a = d$,时间复杂度为 $O(N^d \times \log N)$
    • +
    +
    +

    例子

    求数组 arr[l..r]中的最大值,用递归方法实现。

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public class RecursiveMax {
    public static void main(String[] args) {
    Integer[] array = {6, 3, 5, 2, 1, 4, 0, 1, 7};
    System.out.println(getMax(array, 0, array.length - 1));
    }

    public static <T extends Comparable<T>> T getMax(T[] arr, int l, int r) {
    if (l == r) {
    return arr[l];
    }

    int mid = l + ((r - l) >> 1);
    T left = getMax(arr, l, mid);
    T right = getMax(arr, mid + 1, r);
    return left.compareTo(right) >= 0 ? left : right;
    }
    }
    +

    其中:

    +
      +
    1. 递归次数 $a$ 为 $2$;
    2. +
    3. 子问题规模 $\frac {N} {b}$ 为 $\frac {N} {2}$,即 $b$ 为 $2$;
    4. +
    5. 每次递归完毕之后额外执行的操作的时间复杂度 $O(N^d)$ 为 $O(1)$,即 $d$ 为 $0$。
    6. +
    +

    满足:

    +

    所以,该算法复杂度为 $O(N^{\log_2 2}) = O(N)$

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    1. 环形队列

      +
    • Java 实现
    • +
    +
    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
    public class RingBuffer<T> {
    // 队列缓冲区
    private final Object[] array;

    // 队列尺寸
    private final int limit;

    // 表示即将入队的索引位置
    private int pushIndex;

    // 表示即将出队的索引位置
    private int popIndex;

    // 表示当前队列中元素的个数
    private int size;

    private RingBuffer(int limit) {
    if (limit <= 0) {
    throw new IllegalArgumentException("limit should be greater than 0");
    }
    this.limit = limit;
    this.array = new Object[limit];
    this.popIndex = this.pushIndex = this.size = 0;
    }

    public static <T> RingBuffer<T> create(int limit) {
    return new RingBuffer<>(limit);
    }

    public Optional<T> pop() {
    if (size == 0) {
    return Optional.empty();
    }

    T value = (T) this.array[this.popIndex];
    this.array[this.popIndex] = null; // 去掉引用,避免泄漏
    this.size -= 1;
    this.popIndex = getNextIndex(this.popIndex);
    return Optional.of(value);
    }

    public boolean empty() {
    return this.size == 0;
    }

    public void push(T value) {
    if (size == this.limit) {
    throw new IllegalArgumentException("The size has reached the limit");
    }

    this.array[this.pushIndex] = value;
    this.size += 1;
    this.pushIndex = getNextIndex(this.pushIndex);
    }

    @Override
    public String toString() {
    return "RingBuffer{" +
    "array=" + Arrays.toString(array) +
    ", limit=" + limit +
    ", pushIndex=" + pushIndex +
    ", popIndex=" + popIndex +
    ", size=" + size +
    '}';
    }

    private int getNextIndex(int index) {
    return index == this.limit - 1 ? 0 : index + 1;
    }

    public static void main(String[] args) {
    RingBuffer<String> rb = RingBuffer.create(4);
    System.out.println("new rb: " + rb);
    String[] data = {"hello", "world", "are", "you", "ok"};
    for (String s: data) {
    try {
    rb.push(s);
    System.out.println("push " + s);
    System.out.println("rb: " + rb);
    } catch (Exception e) {
    System.out.println("Push '" + s + "' error: " + e);
    }
    }

    Optional<String> op = rb.pop();

    while (op.isPresent()) {
    System.out.println("pop " + op.get());
    System.out.println("rb: " + rb);
    op = rb.pop();
    }
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    new rb: RingBuffer{array=[null, null, null, null], limit=4, pushIndex=0, popIndex=0, size=0}
    push hello
    rb: RingBuffer{array=[hello, null, null, null], limit=4, pushIndex=1, popIndex=0, size=1}
    push world
    rb: RingBuffer{array=[hello, world, null, null], limit=4, pushIndex=2, popIndex=0, size=2}
    push are
    rb: RingBuffer{array=[hello, world, are, null], limit=4, pushIndex=3, popIndex=0, size=3}
    push you
    rb: RingBuffer{array=[hello, world, are, you], limit=4, pushIndex=0, popIndex=0, size=4}
    Push 'ok' error: java.lang.IllegalArgumentException: The size has reached the limit
    pop hello
    rb: RingBuffer{array=[null, world, are, you], limit=4, pushIndex=0, popIndex=1, size=3}
    pop world
    rb: RingBuffer{array=[null, null, are, you], limit=4, pushIndex=0, popIndex=2, size=2}
    pop are
    rb: RingBuffer{array=[null, null, null, you], limit=4, pushIndex=0, popIndex=3, size=1}
    pop you
    rb: RingBuffer{array=[null, null, null, null], limit=4, pushIndex=0, popIndex=0, size=0}
    +

    2. 时间复杂度为 $O(1)$ 的栈中最小值获取方法

      +
    • Java 实现
    • +
    +
    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
    import java.util.Collection;
    import java.util.Collections;
    import java.util.Optional;
    import java.util.Stack;

    public class GetMinStack<E extends Comparable<E>> extends Stack<E> {
    private final Stack<E> minStack;

    public static void main(String[] args) {
    GetMinStack<Integer> stack = new GetMinStack<>();
    int[] data = {8, 4, 2, 6, 1, 9, -1, 3};
    for (int i: data) {
    stack.push(i);
    Optional<Integer> min = stack.getMin();
    System.out.println("push " + i + ", min: " + min.get() + ", stack" + stack + ", minStack: " + stack.getMinStack());
    }

    while (!stack.empty()) {
    int i = stack.pop();
    Optional<Integer> min = stack.getMin();
    if (min.isPresent()) {
    System.out.println("pop " + i + ", min: " + min.get() + ", stack" + stack + ", minStack: " + stack.getMinStack());
    } else {
    System.out.println("pop " + i + ", stack is empty");
    }
    }
    }

    public GetMinStack() {
    minStack = new Stack<>();
    }

    @Override
    public synchronized E pop() {
    E item = super.pop();
    E min = minStack.peek();
    // 如果出栈的元素跟最小栈顶元素相等,则最小栈顶也出栈
    if (min == item) {
    minStack.pop();
    }
    return item;
    }

    @Override
    public E push(E item) {
    if (!minStack.empty()) {
    E min = minStack.peek();
    // 如果栈不空,看最小栈顶与入栈元素哪个小;
    // 一样大或者入栈元素小,则该元素入最小栈;
    // 否则不做任何操作
    if (min.compareTo(item) >= 0) {
    minStack.push(item);
    }
    } else {
    // 栈空就直接入栈
    minStack.push(item);
    }
    return super.push(item);
    }

    public Optional<E> getMin() {
    if (empty()) {
    return Optional.empty();
    } else {
    return Optional.of(minStack.peek());
    }
    }

    public Collection<E> getMinStack() {
    return Collections.unmodifiableCollection(this.minStack);
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    push 8, min: 8, stack[8], minStack: [8]
    push 4, min: 4, stack[8, 4], minStack: [8, 4]
    push 2, min: 2, stack[8, 4, 2], minStack: [8, 4, 2]
    push 6, min: 2, stack[8, 4, 2, 6], minStack: [8, 4, 2]
    push 1, min: 1, stack[8, 4, 2, 6, 1], minStack: [8, 4, 2, 1]
    push 9, min: 1, stack[8, 4, 2, 6, 1, 9], minStack: [8, 4, 2, 1]
    push -1, min: -1, stack[8, 4, 2, 6, 1, 9, -1], minStack: [8, 4, 2, 1, -1]
    push 3, min: -1, stack[8, 4, 2, 6, 1, 9, -1, 3], minStack: [8, 4, 2, 1, -1]
    pop 3, min: -1, stack[8, 4, 2, 6, 1, 9, -1], minStack: [8, 4, 2, 1, -1]
    pop -1, min: 1, stack[8, 4, 2, 6, 1, 9], minStack: [8, 4, 2, 1]
    pop 9, min: 1, stack[8, 4, 2, 6, 1], minStack: [8, 4, 2, 1]
    pop 1, min: 2, stack[8, 4, 2, 6], minStack: [8, 4, 2]
    pop 6, min: 2, stack[8, 4, 2], minStack: [8, 4, 2]
    pop 2, min: 4, stack[8, 4], minStack: [8, 4]
    pop 4, min: 8, stack[8], minStack: [8]
    pop 8, stack is empty
    +

    3. 用栈实现队列

      +
    • Java 实现
    • +
    +
    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
    import java.util.Optional;
    import java.util.Stack;

    public class StackQueue<E> {
    // 用来入队
    private final Stack<E> pushStack;
    // 用来出队
    private final Stack<E> popStack;

    public static void main(String[] args) {
    StackQueue<String> queue = new StackQueue<>();
    String[] data = {"hello", "world", "how", "are", "you"};
    for (String s: data) {
    queue.push(s);
    }
    System.out.println(queue);
    Optional<String> op = queue.poll();
    while (op.isPresent()) {
    System.out.println(op.get());
    op = queue.poll();
    }
    System.out.println(queue);
    for (String s: data) {
    queue.push(s);
    }
    System.out.println(queue);
    op = queue.poll();
    for (String s: data) {
    queue.push(s);
    }
    System.out.println(queue);
    while (op.isPresent()) {
    System.out.println(op.get());
    op = queue.poll();
    }
    System.out.println(queue);
    }

    public StackQueue() {
    pushStack = new Stack<>();
    popStack = new Stack<>();
    }

    public int size() {
    return pushStack.size() + popStack.size();
    }

    public boolean empty() {
    return pushStack.empty() && popStack.empty();
    }

    public boolean contains(Object o) {
    return pushStack.contains(o) || popStack.contains(o);
    }

    public void push(E element) {
    pushStack.push(element);
    }

    public Optional<E> poll() {
    if (popStack.empty()) {
    while (!pushStack.empty()) {
    popStack.push(pushStack.pop());
    }
    if (popStack.empty()) {
    return Optional.empty();
    }
    }

    return Optional.of(popStack.pop());
    }

    @Override
    public String toString() {
    // => 表示栈顶
    return "StackQueue{" +
    "pushStack=" + pushStack +
    "=>, popStack=" + popStack +
    "=>}";
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[]=>}
    hello
    world
    how
    are
    you
    StackQueue{pushStack=[]=>, popStack=[]=>}
    StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[]=>}
    StackQueue{pushStack=[hello, world, how, are, you]=>, popStack=[you, are, how, world]=>}
    hello
    world
    how
    are
    you
    hello
    world
    how
    are
    you
    StackQueue{pushStack=[]=>, popStack=[]=>}
    +

    4. 用队列实现栈

      +
    • Java 实现
    • +
    +
    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
    import java.util.LinkedList;
    import java.util.Optional;
    import java.util.Queue;

    public class QueueStack<E> {
    private Queue<E> data;
    private Queue<E> help;

    public static void main(String[] args) {
    QueueStack<String> stack = new QueueStack<>();
    String[] data = {"hello", "world", "how", "are", "you"};
    for (String s: data) {
    stack.push(s);
    }
    Optional<String> op = stack.pop();
    while (op.isPresent()) {
    System.out.println(op.get());
    op = stack.pop();
    }
    }

    public QueueStack() {
    data = new LinkedList<>();
    help = new LinkedList<>();
    }

    public boolean empty() {
    return data.isEmpty() && help.isEmpty();
    }

    public boolean contains(E object) {
    return data.contains(object) || help.contains(object);
    }

    public int size() {
    return data.size() + help.size();
    }

    public void push(E e) {
    data.add(e);
    }

    public Optional<E> pop() {
    int size = data.size();
    if (size == 0) {
    return Optional.empty();
    }

    for (int i=0;i<size-1;++i) {
    help.add(data.poll());
    }

    E e = data.poll();

    // swap
    Queue<E> temp = help;
    help = data;
    data = temp;

    return Optional.of(e);
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    5
    you
    are
    how
    world
    hello
    + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/page/3/index.html b/page/3/index.html new file mode 100644 index 0000000..dd2bb6d --- /dev/null +++ b/page/3/index.html @@ -0,0 +1,1181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 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
    public class Node<T> {
    private final T value;
    private Node<T> next;

    public static void main(String[] args) {
    Node<String> list = Node.build("hello", "world", "are", "you", "ok");
    System.out.println("build: " + list);
    Node<String> reversed = list.reverse();
    System.out.println("reversed: " + reversed);
    Node<String> origin = reversed.reverse();
    System.out.println("origin: " + origin);
    }

    public static <T> Node<T> build(T ...values) {
    Node<T> list = null;
    Node<T> cur = null;

    for (T value: values) {
    if (cur == null) {
    cur = new Node<>(value);
    list = cur;
    } else {
    cur.setNext(new Node<>(value));
    cur = cur.getNext();
    }
    }

    return list;
    }

    public Node(T value) {
    this.value = value;
    this.next = null;
    }

    public Node setNext(Node<T> next) {
    this.next = next;
    return this;
    }

    public Node getNext() {
    return this.next;
    }

    public T getValue() {
    return this.value;
    }

    public Node<T> reverse() {
    Node<T> head = this;
    Node<T> pre = null;

    while (head != null) {
    Node<T> next = head.getNext();

    head.setNext(pre);
    pre = head;

    head = next;
    }

    return pre;
    }

    @Override
    public String toString() {
    StringBuilder sb = new StringBuilder();
    Node<T> cur = this;
    while (cur != null) {
    sb.append(cur.getValue());
    sb.append(" -> ");
    cur = cur.getNext();
    }
    sb.append("null");
    return sb.toString();
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    build: hello -> world -> are -> you -> ok -> null
    reversed: ok -> you -> are -> world -> hello -> null
    origin: hello -> world -> are -> you -> ok -> null
    +

    双向链表

    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
    public class DoubleNode<T> {
    private final T value;
    private DoubleNode<T> previous;
    private DoubleNode<T> next;

    public static void main(String[] args) {
    DoubleNode<String> list = DoubleNode.build("hello", "world", "are", "you", "ok");
    System.out.println("build: " + list);
    DoubleNode<String> reversed = list.reverse();
    System.out.println("reversed: " + reversed);
    DoubleNode<String> origin = reversed.reverse();
    System.out.println("origin: " + origin);
    DoubleNode<String> tail = origin.getTailNode();
    System.out.println("back: " + tail.toStringBack());
    }

    public static <T> DoubleNode<T> build(T ...values) {
    DoubleNode<T> list = null;
    DoubleNode<T> cur = null;

    for (T value: values) {
    if (cur == null) {
    cur = new DoubleNode<>(value);
    list = cur;
    } else {
    DoubleNode<T> node = new DoubleNode<>(value);
    node.setPrevious(cur);
    cur.setNext(node);
    cur = cur.getNext();
    }
    }

    return list;
    }

    public DoubleNode(T value) {
    this.value = value;
    this.previous = this.next = null;
    }

    public DoubleNode<T> setNext(DoubleNode<T> next) {
    this.next = next;
    return this;
    }

    public DoubleNode<T> getNext() {
    return this.next;
    }

    public T getValue() {
    return this.value;
    }

    public DoubleNode<T> getTailNode() {
    DoubleNode<T> cur = this;
    while (cur.getNext() != null) {
    cur = cur.getNext();
    }
    return cur;
    }

    public DoubleNode<T> getPrevious() {
    return this.previous;
    }

    public DoubleNode<T> setPrevious(DoubleNode<T> previous) {
    this.previous = previous;
    return this;
    }

    public DoubleNode<T> reverse() {
    DoubleNode<T> head = this;
    DoubleNode<T> pre = null;

    while (head != null) {
    DoubleNode<T> next = head.getNext();

    // 其他都跟单链表一样,指针多设置一个
    head.setNext(pre);
    head.setPrevious(next);
    pre = head;

    head = next;
    }

    return pre;
    }

    @Override
    public String toString() {
    StringBuilder sb = new StringBuilder();
    DoubleNode<T> cur = this;
    while (cur != null) {
    sb.append(cur.getValue());
    sb.append(" -> ");
    cur = cur.getNext();
    }
    sb.append("null");
    return sb.toString();
    }

    public String toStringBack() {
    StringBuilder sb = new StringBuilder("null");
    DoubleNode<T> cur = this;
    while (cur != null) {
    sb.append(" <- ");
    sb.append(cur.getValue());
    cur = cur.getPrevious();
    }
    return sb.toString();
    }
    }
    +

    输出内容:

    +
    1
    2
    3
    4
    build: hello -> world -> are -> you -> ok -> null
    reversed: ok -> you -> are -> world -> hello -> null
    origin: hello -> world -> are -> you -> ok -> null
    back: null <- ok <- you <- are <- world <- hello
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    运算特性

      +
    1. 两个数进行异或运算,二进制位相同为 0,不同为 1
    2. +
    3. 满足交换律和结合律;
    4. +
    5. 异或运算可以认为是无进位相加(二进制);
    6. +
    7. 任何数与 0 异或仍得这个数,即0 ^ N = N
    8. +
    9. 任何数与自身异或得 0,即 N ^ N = N
    10. +
    +
    +

    典型应用场景

    1. 交换

    1
    2
    3
    4
    5
    6
    int a = 1;
    int b = 2;

    a = a ^ b; // a = 1 ^ 2, b = 2
    b = a ^ b; // a = 1 ^ 2, b = 1 ^ 2 ^ 2 = 1
    a = a ^ b; // a = 1 ^ 2 ^ 1 = 2, b = 1
    +

    数组元素交换时,要确保交换的不是一个空间,可以相等,但不能是同一块内存跟自己进行异或运算:

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void swap(int[] array, int i, int j) {
    if (i == j) {
    // 无法确保 i != j 一定要加这个检查,否则该位置值变为 0
    return;
    }

    array[i] = array[i] ^ array[j];
    array[j] = array[i] ^ array[j];
    array[i] = array[i] ^ array[j];
    }
    +

    2. 找到出现奇数次的数

    题目: 一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到这种数。

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    int getOddTimesNumber(int[] array) {
    int xor = 0;
    for (int i: array) {
    xor ^= i;
    }
    return xor;
    }
    +
      +
    • Rust 实现
    • +
    +
    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
    fn get_odd_times_number_0(array: &[i32]) -> i32 {
    let mut xor = 0;
    for i in array {
    xor ^= *i;
    }
    xor
    }

    fn get_odd_times_number_1(array: &[i32]) -> i32 {
    array.iter().fold(0, |a, b| a ^ *b)
    }

    #[test]
    fn test_get_odd_times_number() {
    use rand::prelude::*;

    let mut rng = thread_rng();

    for _ in 0..100 {
    let mut vec = Vec::new();
    let odd_number = rng.gen_range(0..5);
    for i in 0..5 {
    let times: usize = rng.gen_range(1..3) * 2 + if i == odd_number { 1 } else { 0 };
    for _ in 0..times {
    vec.push(i);
    }
    }
    vec.shuffle(&mut rng);

    let get0 = get_odd_times_number_0(&vec);
    let get1 = get_odd_times_number_1(&vec);
    assert_eq!(odd_number, get0);
    assert_eq!(odd_number, get1);
    }
    }
    +

    3. 提取整型数最右侧的 1

    题目: 提取整型数最右侧的 1

    +

    例如:

    1
    2
    0b10101000 ----> 0b00001000
    ^---只留这个 `1`

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    int getRightmostOne(int value) {
    return value & (~value + 1);
    }
    +
      +
    • Rust 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    fn get_rightmost_one(value: i32) -> i32 {
    value & (!value + 1)
    }

    #[test]
    fn test_get_rightmost_one() {
    for _ in 0..1000 {
    let a: i32 = rand::random();
    let b = get_rightmost_one(a);
    assert_eq!(b >> b.trailing_zeros(), 1);
    let bits = b.leading_zeros() + 1 + b.trailing_zeros();
    assert_eq!(bits, size_of::<i32>() as u32 * 8);
    }
    }
    +

    4. 找到两个出现奇数次的数

    题目: 一个数组中有两种数出现了奇数次,其他数都出现了偶数次,怎么找到这两种数。

    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    int[] getOddTimesNumbers(int[] array) {
    int xor = 0;
    for (int i: array) {
    xor ^= i;
    }

    // xor == a ^ b
    // 因为 a != b (两种数),所以 a ^ b != 0,则必然存在为 1 的二进制位
    // 不妨就使用最后一个 1,即
    int one = xor & (~xor + 1);
    // 假设这个 1 在第 N 位
    int a = 0;
    for (int i: array) {
    // 将数组分为两类:1. N 位上为 1 的;2. N 位上为 0 的。
    // a 和 b 一定分别属于这两类,不会同属一类,因为 a ^ b 的 N 位是 1
    // 这里只把第 1 类异或起来,得到一种数
    if ((i & one) != 0) {
    a ^= i;
    }
    }

    // 用之前得到的这种数异或 xor,得到另一种
    return new int[]{a, a ^ xor};
    }
    +
      +
    • Java 实现(函数式)
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    int[] getOddTimesNumbers(int[] array) {
    int xor = Arrays.stream(array).reduce(0, (a, b) -> a ^ b);

    int one = xor & (~xor + 1);
    int a = Arrays.stream(array).reduce(0, (v1, v2) -> {
    if ((v2 & one) != 0) {
    return v1 ^ v2;
    } else {
    return v1;
    }
    });

    return new int[] {a, xor ^ a};
    }
    +
      +
    • Rust 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    fn get_odd_times_numbers(array: &[i32]) -> (i32, i32) {
    let mut xor = 0;
    for i in array {
    xor ^= *i;
    }

    let one = xor & (!xor + 1);
    let mut a = 0;
    for i in array {
    if one & *i != 0 {
    a ^= *i;
    }
    }

    (a, xor ^ a)
    }
    +
      +
    • Rust 实现(函数式)
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    fn get_odd_times_numbers(array: &[i32]) -> (i32, i32) {
    let xor = array.iter().fold(0, |a, b| a ^ *b);

    let one = xor & (!xor + 1);
    let a = array
    .iter()
    .fold(0, |a, b| if one & b != 0 { a ^ *b } else { a });

    (a, xor ^ a)
    }

    +
      +
    • Rust 测试代码
    • +
    +
    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
    #[test]
    fn test_get_odd_times_numbers() {
    use rand::prelude::*;

    let mut rng = thread_rng();

    for _ in 0..1000 {
    let mut vec = Vec::new();
    let odd_number_a = rng.gen_range(0..5);
    let odd_number_b = loop {
    let b = rng.gen_range(0..5);
    if b != odd_number_a {
    break b;
    } else {
    continue;
    }
    };
    for i in 0..5 {
    let times: usize = rng.gen_range(1..3) * 2
    + if i == odd_number_a || i == odd_number_b {
    1
    } else {
    0
    };
    for _ in 0..times {
    vec.push(i);
    }
    }
    vec.shuffle(&mut rng);

    let get = get_odd_times_numbers(&vec);
    assert!(get == (odd_number_a, odd_number_b) || get == (odd_number_b, odd_number_a));
    }
    }
    +

    5. 计算某个数为 1 的二进制位数

    例如:

    +
    1
    0b00101100 --> 3
    +
      +
    • Java 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int countOnes(int a) {
    int count = 0;

    while (a != 0) {
    count += 1;
    int one = a & (~a + 1);
    a ^= one; // 把这个 1 给去掉
    }

    return count;
    }

    +
      +
    • Rust 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    fn count_ones(mut a: i32) -> u32 {
    let mut count = 0;

    while a != 0 {
    count += 1;
    // a ^= a & (!a + 1) 在 debug 编译条件下可能溢出,无法通过测试,release 无所谓;wrapping_add 在 debug 条件下也没问题
    a ^= a & (!a).wrapping_add(1);
    }

    count
    }


    #[test]
    fn test_count_ones() {
    for _ in 0..1000 {
    let a = rand::random();
    assert_eq!(count_ones(a), a.count_ones());
    }
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    给你一个数组,长度为N,相邻元素互不相等,请返回任意局部最小值的索引。

    +

    局部最小定义:

    +
      +
    1. 0 位置如果比 1 位置数小,则 0 位置为局部最小;
    2. +
    3. N-1 位置如果比 N-2 位置数小,则 N-1 位置为局部最小;
    4. +
    5. i 位置的数,如果比 i-1i+1 位置的数都小,则 i 位置为局部最小。
    6. +
    +
    +
      +
    • Java 实现
    • +
    +

    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
    public static int getLocalMinimumIndex(int[] array) {
    if (array == null || array.length == 0) {
    return -1;
    }

    if (array.length == 1) {
    return 0;
    }

    if (array[0] < array[1]) {
    return 0;
    }

    if (array[array.length - 1] < array[array.length - 2]) {
    return array.length - 1;
    }

    int left = 1;
    int right = array.length - 2;
    while (left < right) {
    int mid = left + ((right - left) >> 1);
    if (array[mid] > array[mid - 1]) {
    right = mid - 1;
    } else if (array[mid] > array[mid + 1]) {
    left = mid + 1;
    } else {
    return mid;
    }
    }

    return left;
    }

      +
    • Rust 实现
    • +
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    fn get_local_minimum_index(array: &[i32]) -> Option<usize> {
    let len = array.len();
    if len == 0 {
    return None;
    }
    if len == 1 {
    return Some(0);
    }

    if array[0] < array[1] {
    return Some(0);
    }

    if array[len - 1] < array[len - 2] {
    return Some(len - 1);
    }

    let mut left = 1;
    let mut right = len - 2;
    while left < right {
    let mid = mid(left, right);
    if array[mid] > array[mid - 1] {
    right = mid - 1;
    } else if array[mid] > array[mid + 1] {
    left = mid + 1;
    } else {
    return Some(mid);
    }
    }

    Some(left)
    }

    /// 计算两个无符号值的中间值
    fn mid<T: Ord + Div<Output = T> + Add<Output = T> + Copy + Sub<Output = T> + From<u8>>(
    v1: T,
    v2: T,
    ) -> T {
    match v1.cmp(&v2) {
    Ordering::Less => {
    let v = v2 - v1;
    v1 + v / T::from(2u8)
    }
    Ordering::Equal => v1,
    Ordering::Greater => {
    let v = v1 - v2;
    v2 + v / T::from(2u8)
    }
    }
    }

    /// 判断一个索引是否为局部最小值的索引
    fn is_local_minimum(array: &[i32], index: usize) -> bool {
    let len = array.len();
    if len == 0 {
    return false;
    }
    if len == 1 {
    return index == 0;
    }

    let range = 0..len;
    if !range.contains(&index) {
    return false;
    }

    // 1. `0` 位置如果比 `1` 位置数小,则 `0` 位置为局部最小;
    if index == 0 && array[0] < array[1] {
    return true;
    }

    // 2. `N-1` 位置如果比 `N-2` 位置数小,则 `N-1` 位置为局部最小;
    if index == len - 1 && array[len - 1] < array[len - 2] {
    return true;
    }

    // 3. `i` 位置的数,如果比 `i-1` 和 `i+1` 位置的数逗笑,则 `i` 位置为局部最小。
    array[index] < array[index - 1] && array[index] < array[index + 1]
    }

    // 判断一个数组是否符合要求
    fn is_array_valid(array: &[i32]) -> bool {
    if array.is_empty() {
    return false;
    }

    let mut last = array[0];

    for v in &array[1..] {
    if last == *v {
    return false;
    }

    last = *v;
    }

    true
    }

    /// 测试代码
    #[test]
    fn test_get_local_minimum_index() {
    for _ in 0..1000 {
    // 生成随机数组
    let array = loop {
    // Cargo.toml里加上rand = "0.8"
    let array: [i32; 32] = rand::random();
    // 确保数组符合条件
    if !is_array_valid(&array) {
    continue;
    }
    break array;
    };

    if let Some(index) = get_local_minimum_index(&array) {
    assert!(is_local_minimum(&array, index));
    } else {
    assert!(false);
    }
    }
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    遵循以下公式:

    +
      +
    • 其中,$N_C$ 为处理器的核的数目,可以通过 Runtime.getRuntime().avaliableProcessors() 得到
    • +
    • $U_C$ 是期望的 CPU 利用率(介于 0 到 1 之间)
    • +
    • $W / C$ 是等待时间与计算时间的比值
    • +
    +

    例如,对于 CPU 密集型应用,期望 CPU 利用率为 100%,无等待纯计算,则有:

    +

    即工作线程数设置为处理器的核心数最合适。

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +
      +
    1. 开闭原则(Open Close Principle)。对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。

      +
    2. +
    3. 里氏代换原则(Liskov Substitution Principle)。里氏代换原则是面向对象设计的基本原则之一。 里氏代换原则中说,任何基类可以出现的地方,子类一定可以出现。LSP 是继承复用的基石,只有当派生类可以替换掉基类,且软件单位的功能不受到影响时,基类才能真正被复用,而派生类也能够在基类的基础上增加新的行为。里氏代换原则是对开闭原则的补充。实现开闭原则的关键步骤就是抽象化,而基类与子类的继承关系就是抽象化的具体实现,所以里氏代换原则是对实现抽象化的具体步骤的规范。

      +
    4. +
    5. 依赖倒转原则(Dependence Inversion Principle)。开闭原则的基础,具体内容是针对接口编程,依赖于抽象而不依赖于具体。

      +
    6. +
    7. 接口隔离原则(Interface Segregation Principle)。使用多个隔离的接口,比使用单个接口要好。它还有另外一个意思是:降低类之间的耦合度。由此可见,其实设计模式就是从大型软件架构出发、便于升级和维护的软件设计思想,它强调降低依赖,降低耦合。

      +
    8. +
    9. 迪米特法则,又称最少知道原则(Demeter Principle)。一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立。

      +
    10. +
    11. 合成复用原则(Composite Reuse Principle)。尽量使用合成/聚合的方式,而不是使用继承。

      +
    12. +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    单例模式

    一个单一的类,负责创建自己的对象,同时确保只有单个对象被创建。

    +

    单例模式三种最典型的懒加载单例写法:

    +

    双重检查锁

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    public class Singleton {

    // 定义为 volatile,防止指令重排序,导致未完成初始化的对象被使用
    private static volatile Singleton INSTANCE = null;

    public static Singleton getInstance() {
    // 基于性能考量,第一次检查,避免每一次都加锁
    if (INSTANCE == null) {
    // 加锁
    synchronized (Singleton1.class) {
    // 检查这之前是否有其他线程已经获得过锁并初始化
    if (INSTANCE == null) {
    INSTANCE = new Singleton();
    }
    }
    }

    return INSTANCE;
    }
    }
    +

    静态内部类

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    public class Singleton {

    // 外部类被加载时,内部类还不会被加载
    private static class SingletonHolder {
    private final static Singleton INSTANCE = new Singleton();
    }

    public static Singleton getInstance() {
    // 调用这里时,内部类被加载,实现初始化
    // 由JVM保证只加载一次,线程安全
    return SingletonHolder.INSTANCE;
    }

    private Singleton() {}
    }
    +

    枚举

    1
    2
    3
    4
    5
    6
    7
    8
    // 懒加载,线程安全,还可以防止反序列化
    public enum Singleton {
    INSTANCE;

    public static Singleton getInstance() {
    return Singleton.INSTANCE;
    }
    }
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    策略模式(Strategy)

    策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不通过的对象管理。

    +

    最典型的例子就是使用比较器(Comparator<T>):

    +
    1
    2
    3
    4
    5
    6
    @FunctionalInterface
    public interface Comparator<T> {
    int compare(T o1, T o2);

    // 省略其他...
    }
    +
    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
    import java.util.Arrays;
    import java.util.Comparator;

    public class Cat {
    int weight;

    public int GetWeight() {
    return weight;
    }

    public Cat(int weight) {
    this.weight = weight;
    }

    @Override
    public String toString() {
    return "Cat{" +
    "weight=" + weight +
    '}';
    }

    public static void main(String[] args) {
    Cat[] cats = {new Cat(12), new Cat(21), new Cat(4), new Cat(8)};

    // 这里可以new一个实现了Comparator的类,也可以使用Lambda表达式
    Arrays.sort(cats, Comparator.comparingInt(Cat::GetWeight));

    System.out.println(Arrays.toString(cats));
    }
    }
    +
    +

    注:

    +
      +
    1. 开闭原则(OCP,Open-Closed Principle),对修改关闭,对扩展开放。
    2. +
    3. 自定义静态泛型函数时,将类型参数列表写在 static 和返回值类型之间,例如:
      1
      static <T> void sort(T[] array, Comparator c);
      +
    4. +
    +
    +
    +

    抽象工厂(Abstract Factory)

    一种为访问类提供一个创建一组相关或相互依赖对象的接口,且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。

    +

    例如,农场可以生产动物、蔬菜。农场A生产牛,白菜,农场B生产羊,花椰菜。编码如下:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    // 农场抽象
    public abstract class Farm {
    public abstract Animal createAnimal();
    public abstract Vegetable createVegetable();
    }

    // 动物抽象
    public interface Animal {
    }

    // 蔬菜抽象
    public interface Vegetable {
    }
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // 农场A
    public class FarmA extends Farm {
    @Override
    public Animal createAnimal() {
    return new Cow();
    }

    @Override
    public Vegetable createVegetable() {
    return new Cabbage();
    }
    }

    public class Cow implements Animal {
    }

    public class Cabbage implements Vegetable {
    }
    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    // 农场B
    public class FarmB extends Farm {
    @Override
    public Animal createAnimal() {
    return new Sheep();
    }

    @Override
    public Vegetable createVegetable() {
    return new Cauliflower();
    }
    }

    public class Sheep implements Animal {
    }

    public class Cauliflower implements Vegetable {
    }
    +
    1
    2
    3
    4
    5
    6
    7
    8
    // 实际调用
    public class Main {
    public static void main(String[] args) {
    Farm farm = new FarmA();
    System.out.println(farm.createAnimal().getClass().getSimpleName());
    System.out.println(farm.createVegetable().getClass().getSimpleName());
    }
    }
    +

    输出:

    +
    1
    2
    Cow
    Cabbage
    +

    使用 Rust 语言编写如下:

    +
    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
    use std::fmt::Debug;

    // 产品抽象
    trait Animal {}
    trait Vegetable {}

    // 工厂抽象
    trait Farm {
    type A: Animal;
    type V: Vegetable;
    const NAME: &'static str;

    fn create_animal() -> Self::A;
    fn create_vegetable() -> Self::V;
    }

    #[derive(Debug)]
    struct Cow;
    impl Animal for Cow {}
    #[derive(Debug)]
    struct Cabbage;
    impl Vegetable for Cabbage {}
    struct FarmA;
    impl Farm for FarmA {
    type A = Cow;
    type V = Cabbage;
    const NAME: &'static str = "A";

    fn create_animal() -> Self::A {
    Cow
    }

    fn create_vegetable() -> Self::V {
    Cabbage
    }
    }

    #[derive(Debug)]
    struct Sheep;
    impl Animal for Sheep {}
    #[derive(Debug)]
    struct Cauliflower;
    impl Vegetable for Cauliflower {}
    struct FarmB;
    impl Farm for FarmB {
    type A = Sheep;
    type V = Cauliflower;
    const NAME: &'static str = "B";

    fn create_animal() -> Self::A {
    Sheep
    }

    fn create_vegetable() -> Self::V {
    Cauliflower
    }
    }

    // 实际调用
    fn run_a_farm<F>()
    where
    F: Farm,
    F::A: Debug,
    F::V: Debug,
    {
    println!("Farm {}:", F::NAME);
    println!("\tAnimal: {:?}", F::create_animal());
    println!("\tVegetable: {:?}", F::create_vegetable());
    }

    fn main() {
    run_a_farm::<FarmA>();
    run_a_farm::<FarmB>();
    }
    +

    输出结果为:

    +
    1
    2
    3
    4
    5
    6
    Farm A:
    Animal: Cow
    Vegetable: Cabbage
    Farm B:
    Animal: Sheep
    Vegetable: Cauliflower
    +

    典型应用场景

      +
    1. 界面换肤,一款皮肤下,不同的控件的样式;
    2. +
    +
    +

    注:

    +
      +
    1. 增加新的产品族,只需要新增工厂实现,满足开闭原则;
    2. +
    3. 产品族需要新增产品的时候,需要修改所有工厂,不满足开闭原则。
    4. +
    5. 当系统只存在一类产品时,抽象工厂退化到工厂方法模式。
    6. +
    +
    +
    +

    外观/门面(Facade)

    通过为多个复杂的子系统提供一个一致的接口,而使这些子系统更加容易被访问的模式。

    +

    它是迪米特法则的典型应用。降低了子系统与客户端之间的耦合度。

    +
    +

    迪米特法则(LOD,Law of Demeter)又叫作最少知识原则(The Least Knowledge Principle),一个类对于其他类知道的越少越好,就是说一个对象应当对其他对象有尽可能少的了解,只和朋友通信,不和陌生人说话。

    +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +
    +

    这是 Withoutboats 在 2019 年 3 月的 Rust Latam 上所做报告的一个整理。这个报告主要介绍他参与开发了一年半的语言特性,包括 Rust 异步 I/O 的发展历程,以及目前已经稳定的零成本抽象的async/await 语法的关键实现原理。

    +

    Withoutboats 是就职于 Mozilla 的一名研究员,主要从事 Rust 语言开发。他开发的这个语言特性叫做 async/await,这可能是本年度我们在 Rust 语言上做的最重要的事。这解决了困扰我们很久的问题,即我们如何能在 Rust 中拥有零成本抽象的异步IO。

    +

    注:因个人水平有限,翻译和整理难免有错误或疏漏之处,欢迎读者批评指正。

    +
    +

    async/await

    首先,介绍一下 async/await

    +

    async 是一个修饰符,它可以应用在函数上,这种函数不会在调用时一句句运行完成,而是立即返回一个 Future 对象,这个 Future 对象最终将给出这个函数的实际返回结果。而在一个这样的 async 函数中,我们可以使用await运算符,将它用在其它会返回 Future 的函数上,直到那些 Future 返回实际结果。通过这种方法,异步并发开发更加方便了。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let user = await db.get_user("withoutboats");

    impl Database {
    async fn get_user(&mut self, user: &str) -> User {
    let sql = format!("select FROM users WHERE username = {}", user);
    let db_response = await self.query(&sql);
    User::from(db_response)
    }
    }
    +

    这是一段简短的代码样例,我们具体解释一下 Future 。这段代码基本上做的就是一种类似于 ORM 框架所作的事。你有一个叫 get_user 的函数,它接受一个字符串类型的用户名参数,并通过在数据库中查找对应用户的记录来返回一个User对象。它使用的是异步 I/O ,这意味着它得是一个异步函数,而不是普通函数,因此当你调用它时,你可以异步等待(await)它;然后我们看一下函数的实现,首先是用用户名参数拼接出要执行的 SQL 语句,然后是查询数据库,这就是我们实际执行 I/O 的地方,所以这个查询(query)返回的是 Future ,因为它使用的是异步 I/O 。所以在查询数据库时,你只需要使用异步等待(await)来等待响应,在获得响应后就可以从中解析出用户。这个函数看起来像个玩具,但我想强调的是,它与使用阻塞式 I/O 的唯一区别就是这些注解(指async/await)了,你只需将函数标记为异步(async),并在调用它们时加上 await 就行了,开发的心智负担很小,以至于你会忘了自己是在写异步 I/O 而不是阻塞 I/O 。而 Rust 的这种实现让我尤其感到兴奋的是,它的 async/awaitFuture 都是零成本抽象的。

    +

    零成本抽象

    零成本抽象是 Rust 比较独特的一项准则,这是使 Rust 与其他许多语言相区别的原因之一。在添加新功能时,我们非常关心这些新功能是不是零成本的。不过这并不是我们想出来的点子,它在 C++ 中也很重要,所以我认为最好的解释是 Bjarne Stroustrup 的这句话:

    +
    +

    零成本抽象意味着你不使用的东西,你不用为它付出任何代价,进一步讲,你使用的东西,你无法写出比这更好的代码。

    +

    Zero Cost Abstractions: What you don’t use, you don’t pay for. And further: What you do use, you couldn’t hand code any better.

    +
    +

    也就是说零成本抽象有两个方面:

    +
      +
    1. 该功能不会给不使用该功能的用户增加成本,因此我们不能为了增加新的特性而增加那些会减慢所有程序运行的全局性开销。
    2. +
    3. 当你确实要使用该功能时,它的速度不会比不使用它的速度慢。如果你觉得,我想使用这个非常好用的功能把开发工作变得轻松,但是它会使我的程序变慢,所以我打算自己造一个,那么这实际上是带来了更大的痛苦。
    4. +
    +

    所以,我将回顾一下我们如何尝试解决异步 I/O 和 Rust 的问题,以及在我们实现这一目标的过程中,某些未能通过这两项零成本测试的特性。

    +

    绿色线程的尝试

    我们要解决的问题是 异步 I/O 。通常 I/O 处于阻塞状态,因此当你使用 I/O 时,它会阻塞线程,中止你的程序,然后必须通过操作系统重新调度。阻塞式 I/O 的问题是当你尝试通过同一程序提供大量连接时,它无法真正实现扩展。因此对于真正的大规模网络服务,你需要某种形式的非阻塞的或者说异步的 I/O 。尤其是 Rust 是针对具有真正的高性能要求而设计的语言,它是一种系统编程语言,面向那些真正在乎计算资源的人。要在网络的世界中真正取得成功,我们就需要某种解决方案来解决这个异步 I/O 问题。

    +

    但是 异步 I/O 的最大问题是它的工作方式 :在你调用 I/O 时,系统调用会立即返回,然后你可以继续进行其他工作,但你的程序需要决定如何回到调用该异步 I/O 暂停的那个任务线上,这就使得在编码上,异步 I/O 的代码要比阻塞 I/O 的代码复杂得多。所以,很多,尤其是以可扩展的网络服务这类特性为目标的语言,一直在试图解决这个问题。比如,让它不再是最终用户需要解决的问题,而是编程语言的一部分或者某个库的一部分等等。

    +

    Rust 最初使用的第一个解决方案是 绿色线程,它已经在许多语言中获得成功。绿色线程基本上就像阻塞式 I/O 一样,使用的时候就像是普通的线程,它们会在执行 I/O 时阻塞,一切看起来就跟你在使用操作系统的原生方式一样。但是,它们被设计为语言运行时的一部分,来对那些需要同时运行成千上万甚至数百万个绿色线程的网络服务用例进行优化。一个使用该模型的典型的成功案例就是 Go 语言,它的绿色线程被称为 goroutine。对于 Go 程序来说,同时运行成千上万个 goroutine 是很正常的,因为与操作系统线程不同,创建它们的成本很低。

    +
    + + + + + + + + + + + + + + + + + + + + +
    操作系统线程绿色线程
    内存开销较大的堆栈,增加大量内存占用初始堆栈非常小
    CPU开销上下文切换至操作系统的调度器,成本很高由程序本身的运行时调度
    +
    +

    绿色线程的优点 在于,产生操作系统线程时的内存开销要高得多,因为每个操作系统线程会创建一个很大的堆栈,而绿色线程通常的工作方式是,你将产生一个以很小的堆栈,它只会随着时间的推移而增长,而产生一堆不使用大量内存的新线程并不便宜;并且使用类似操作系统原语的问题还在于你依赖于操作系统调度,这意味着你必须从程序的内存空间切换到内核空间,如果成千上万的线程都在快速切换,上下文切换就会增加很多开销。而将调度保持在同一程序中,你将避免使用这些上下文,进而减少开销。所以我相信绿色线程是一个非常好的模型,适用于许多语言,包括 Go 和 Java。

    +

    在很长一段时间内, Rust 都有绿色线程,但是在 1.0 版本之前删掉了。我们删掉它是因为它不是零成本抽象的,准确的说就是我在第一个问题中谈到的,它给那些不需要它的人增加了成本。比如你只想编写一个不是网络服务的屏幕打印的 Rust 程序,你必须引入负责调度所有绿色线程的语言运行时。这种方法,尤其是对于试图把 Rust 集成到一个大的 C 应用程序中的人来说,就成为一个问题。很多 Rust 的采用者拥有一些大型C程序,他们想开始使用 Rust 并将 Rust 集成到他们的程序中,只是一小段 Rust 代码。问题是,如果你必须设置运行时才能调用 Rust ,那么这一小部分的 Rust 程序的成本就太高了。因此从 1.0 开始,我们就从语言中删除了绿色线程,并删除了语言的运行时。现在我们都知道它的运行时与 C 基本上相同,这就使得在 Rust 和 C 之间调用非常容易,而且成本很低,这是使 Rust 真正成功的关键因素之一。删除了绿色线程,我们还是需要某种异步 I/O 解决方案;但是我们意识到 这应该是一个基于库的解决方案,我们需要为异步 I/O 提供良好的抽象,它不是语言的一部分,也不是每个程序附带的运行时的一部分,只是可选的并按需使用的库。

    +

    Future 的解决方案

    最成功的库解决方案是一个叫做 Future 的概念,在 JavaScript 中也叫做 PromiseFuture 表示一个尚未得出的值,你可以在它被解决(resolved)以得出那个值之前对它进行各种操作。在许多语言中,对 Future 所做的工作并不多,这种实现支持很多特性比如组合器(Combinator),尤其是能让我们在此基础上实现更符合人体工程学的 async/await 语法。

    +

    Future 可以表示各种各样的东西,尤其适用于表示异步 I/O :当你发起一次网络请求时,你将立即获得一个 Future 对象,而一旦网络请求完成,它将返回任何响应可能包含的值;你也可以表示诸如“超时”之类的东西,“超时”其实就是一个在过了特定时间后被解决的 Future ;甚至不属于 I/O 的工作或者需要放到某个线程池中运行的CPU密集型的工作,也可以通过一个 Future 来表示,这个 Future 将会在线程池完成工作后被解决。

    +
    1
    2
    3
    4
    5
    trait Future {
    type Output;
    fn schedule<F>(self, callback: F)
    where F: FnOnce(Self::Output);
    }
    +

    Future 存在的问题 是它在大多数语言中的表示方式是这种基于回调的方法,使用这种方式时,你可以指定在 Future 被解决之后运行什么回调函数。也就是说, Future 负责弄清楚什么时候被解决,无论你的回调是什么,它都会运行;而所有的不便也都建立在此模型上,它非常难用,因为已经有很多开发者进行了大量的尝试,发现他们不得不写很多分配性的代码以及使用动态派发;实际上,你尝试调度的每个回调都必须获得自己独立的存储空间,例如 crate 对象、堆内存分配,这些分配以及动态派发无处不在。这种方法没有满足零成本抽象的第二个原则,如果你要使用它,它将比你自己写要慢很多,那你为什么还要用它。

    +

    基于轮询的解决方案

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 基于轮询的 Future

    trait Future {
    type Output;
    fn poll(&mut self, waker: &Waker)
    -> Poll<Self::Output>;
    }

    enum Poll<T> {
    Ready(T),
    Pending,
    }
    +

    这个非常出色的基于轮询的新方案——我们编写了这个模型,我归功于 Alex 和 Aaron Turon,是他们提出了这个想法——不是由 Future 来调度回调函数,而是由我们去轮询 Future,所以还有另一个被称为执行器(executor)的组件,它负责实际运行 Future ;执行器的工作就是轮询 Future ,而 Future 可能返回“尚未准备就绪(Pending)”,也可能被解决就返回“已就绪(Ready)”。

    +

    该模型有很多优点。其中一个优点是,你可以非常容易地取消 Future ,因为取消 Future 只需要停止持有 Future。而如果采用基于回调的方法,要通过调度来取消并使其停止就没这么容易了。

    +

    同时它还能够使我们在程序的不同部分之间建立真正清晰的抽象边界,大多数 Future 库都带有事件循环(event loop),这也是调度你的 Future 执行 I/O 的方法,但你实际上对此没有任何控制权。而在 Rust 中,各组件之间的边界非常整洁,执行器(executor)负责调度你的 Future ,反应器(reactor)处理所有的 I/O ,然后是你的实际代码。因此最终用户可以自行决定使用什么执行器,使用他们想使用的反应器,从而获得更强的控制力,这在系统编程语言中真的很重要。而此模型最重要的真正优势在于,它使我们能够以一种真正零成本的完美方式实现这种状态机式的 Future 。也就是当你编写的 Future 代码被编译成实际的本地(native)代码时,它就像一个状态机;在该状态机中,每次 I/O 的暂停点都有一个变体(variant),而每个变体都保存了恢复执行所需的状态。这表示为一个枚举(enum)结构,即一个包含变体判别式及所有可能状态的联合体(union)。

    +

    StateMachines

    +
    +

    译者注:报告视频中的幻灯片比较模糊,我对其进行了重绘与翻译,下同。

    +
    +

    上面的幻灯片尽可能直观地表示了这个状态机模型。可以看到,你执行了两个 I/O 事件,所以它有这几个状态。对于每个状态它都提供了所需的内存空间,足够你在 I/O 事件后恢复执行。

    +

    整个 Future 只需要一次堆内存分配,其大小就是你将这个状态机分配到堆中的大小,并且没有额外的开销。你不需要装箱、回调之类的东西,只有真正零成本的完美模型。这些概念对于很多人来说比较难于理解,所以这是我力求做到最好的幻灯片,直观地呈现这个过程中发生了什么:你创建一个 Future,它被分配到某个内存中特定的位置,然后你可以在执行器(executor)中启动它。

    +

    PollWakeCycle1

    +

    执行器会轮询 Future,直到最终 Future 需要执行某种 I/O 。

    +

    PollWakeCycle2

    +

    在这种情况下,该 Future 将被移交给处理 I/O 的反应器,即 Future 会等待该特定 I/O 。最终,在该 I/O 事件发生时,反应器将使用你在轮询它时传递的Waker 参数唤醒 Future ,将其传回执行器;

    +

    PollWakeCycle3

    +

    然后当需要再次执行I/O时,执行器再将其放回反应器;它将像这样来回穿梭,直到最终被解决(resolved)。在被解决并得出最终结果时,执行器知道它已经完成,就会释放句柄和整个Future,整个调用过程就完成了。

    +

    PollWakeCycle4

    +

    总结一下:这种模型形成了一种循环,我们轮询 Future ,然后等待 I/O 将其唤醒,然后一次又一次地轮询和唤醒,直到最终整个过程完成为止。

    +

    PollWakeCycle

    +

    并且这种模型相当高效。

    +

    QuiteFast

    +

    这是在有关 Future 的第一篇文章中发布的基准测试,与其他语言的许多不同实现进行了对比。柱形越高表示性能越好,我们的 Future 模型在最左侧,所以说我们有了非常出色的零成本抽象,即使是与许多其他语言中最快的异步 I/O 实现相比也是相当有竞争力的。

    +

    但是,问题在于,你并不希望手动编写这些状态机,把整个应用程序所有状态写成一个状态机并不是件轻松愉快的事。而这种 Future 抽象的真正有用之处在于,我们可以在其之上构建其他 API 。

    +

    其它API

    组合器(Combinator)

    我们能使用的第一个解决方案是 Future 组合器(Combinator)。你可以通过将这些组合器方法应用于 Future 来构建状态机,它们的工作方式类似于迭代器(Iterator)的适配器(如 filtermap)。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    fn fetch_rust_lang(client: Client)
    -> impl Future<Output = String> {
    client.get("rust-lang.org").and_then(|response| {
    response.concat_body().map(|body| {
    String::from_utf8_lossy(body)
    })
    })
    }
    +

    这个函数的作用是请求 “rust-lang.org”,然后将响应转换为字符串。它并不返回一个字符串,而是返回一个字符串的 Future ,因为它是一个异步函数。函数体中有这样一个 Future,它包含一些会被调用的 I/O 操作,用 and_thenmap 之类的组合器将这些操作全部组合在一起。我们构建了所有这些用处各异的组合器,例如,and_thenmapfiltermap_error等等。我们已经知道这种方式是有一些缺点的,尤其是诸如嵌套回调之类,可读性非常差。

    +

    async / await 的实现

    因为组合器有这样的缺点,所以我们开始尝试实现 async / awaitasync / await 的第一个版本并不是 Rust 语言的一部分,而是由该库像语法插件一样提供的。

    +
    1
    2
    3
    4
    5
    6
    #[async]
    fn fetch_rust_lang(client: Client) -> String {
    let response = await!(client.get("rust-lang.org"));
    let body = await!(response.concat_body());
    String::from_utf9_lossy(body)
    }
    +

    这个函数与之前那个版本的一样,它只是获取 Rust 官网并将其转换为字符串;但是它使用 async / await 来实现,所以更像是顺序执行,看起来更像普通的阻塞 I/O 的工作方式;就像开头那个实例中呈现的一样,它们唯一区别是注解(指 async / await)。我们已经知道,async 注解会将此函数转换为一个返回 Future 的函数,而不是立即返回结果,并且我们需要异步等待(await)这些在函数内部构造的 Future

    +
    1
    2
    3
    4
    5
    6
    7
    8
    await!($future) => {
    loop {
    match $future.poll() {
    Poll::Pending => yield Poll::Pending,
    Poll::Ready(value) => break value,
    }
    }
    }
    +

    在我们的轮询模型中,await 是一种语法糖;它会进入上面这种循环,你要做的就是在循环中轮询,在一段时间内你将一直得到“尚未准备就绪(Pending)”,然后一直等到它再次被唤醒,终于你等待的 Future 完成了,然后你使用该值跳出了循环,这就是这些 await 表达式的计算结果。

    +

    这似乎是一个非常不错的解决方案,async / await 的写法会被编译成我们超棒的零成本的 Future。不过从已发布的 Future 的使用者的反馈看,我们还是发现了一些问题。

    +

    新的问题

    基本上所有试图使用 Future 的人都会遇到非常令人困惑的错误消息。在这些消息中,编译器会提示你的Future的生命周期不是静态的('static)或没有实现某个 trait 等等;这些提示你并不真正理解,但编译器想提出有用的建议,你也就跟着这个建议去做,直到编译成功;你可能会给闭包加上 move 关键字,或者把某些值放到引用计数的指针(Rc)中,然后将复制(clone)它;你将所有这些开销添加到了似乎并不必要的事情上,却不明白为什么要这样做,而当你已经疲于处理这些时,代码已经乱成一锅粥了,所以很多人都被 Future 的问题卡住了。

    +

    CombinatorChain

    +

    而且它对于组合器产生这种非常大的类型也没什么办法,你的整个终端窗口(terminal)将被其中一个组合器链的类型填满。你用了and_then,以及又一个 and_then,然后是 map_err 紧跟一个 TCP 流等等等等,你必须仔细研究一下,才能弄清楚所遇到的实际错误是什么。

    +
    +

    “When using Futures, error messages are inscrutable.”
    “当使用 Future 时,错误信息难以理解。”
    “Having to use RefCell or clone everything for each future leads to overcomplicated code that makes me wish Rust had garbage collection.”
    “不得不使用 RefCell 以及为每个 future 克隆所有它需要的值产生了过于复杂的代码,这让我开始期待 Rust 能具备垃圾回收功能了。”

    +
    +

    我在 reddit 上发现了这条消息,我认为它确实很好地总结了所有有关 Future 的抱怨。使用 Future 时,错误消息难以理解;不得不使用 RefCell 以及为每个 future 克隆所有它需要的值产生了过于复杂的代码,这让我开始期待 Rust 能具备垃圾回收功能了(观众笑)。是的,这不是什么好反馈。

    +

    因此,从大约一年半前的情况来看,很明显,有两个问题需要解决,才能让大家更容易使用。

    +

    首先,我们需要更好的错误消息,最简单的方法就是将语法构建到语言中,然后它们就可以在你所有的诊断和错误处理代码中加入钩子,从而使你能够真正拥有良好的 async / await 的错误消息。其次,人们遇到的大多数错误实际上是因为他们被一个晦涩难解的问题卡住了——借用问题。正是因为 Future 的设计方式存在着这种根本的局限性,导致一些很普通的编程范式都无法表达。所谓借用问题,就是在最初的 Future 的设计中你不能跨过异步等待点(await point)进行借用,也就是说,如果你要异步等待(await)某件事,你就不能在那个时候持有任何存活的引用。当人们遇到了这种问题,他们通常会被卡住,最终他们会尝试在 await 的时候进行借用然后发现实际上做不到。所以如果我们能够使这种借用被允许,那么大多数这些错误将消失,一切都将变得更易于使用,你可以使用 asyncawait 编写普通的 Rust 代码,并且一切都会正常进行。

    +

    这种跨越 await 的借用是非常普遍的,因为 Rust 的 API 天然就具有引用。当你实际编译 Future 时,它必须能够恢复所有状态,而当你拥有某些其它东西的引用时,它们位于同一栈帧中,最终你会得到一个自引用Future 结构(Self-Referential Future)。这是开头的那个 get_user 方法,我们有这样一个 SQL 字符串,而在使用 SQL 字符串调用 query 方法时,我们传递的是 SQL 字符串的引用。

    +
    1
    2
    let sql: String = format!("SELECT FROM users WHERE username = {}", user);
    let db_response = await self.query(&sql);
    +

    这里存在的问题是,对 SQL 字符串的引用是对存储在相同 Future 状态中的其他内容的引用,因此它成为一种自引用结构。

    +

    SelfReferentialFuture

    +

    如果把这个 Future 视作一个真的结构体的话,这就是理论上它所拥有的字段。除了代表数据库句柄的 self 之外,还有 SQL 字符串以及对这个 SQL 字符串的引用,即一个最终指回同一结构体中某个字段的引用。

    +

    一些新的潜在结构会成为非常棘手的问题,因为我们没有通用的解决方案。当你移动该结构时,我们不允许你使用自引用,是因为我们会在新位置创建一个原有结构的新副本,旧副本会变为无效,但是在复制时,新副本的引用仍指向旧副本的字段,该指针就变成了悬空指针(dangling pointer),而这正是 Rust 必须避免的内存问题。

    +

    DanglingPointer

    +

    所以我们不能使用自引用结构,因为如果你移动它们,那么它们将失效。然而,我们实际上并不需要真正移动这些 Future 。如果你还记得在堆中通过句柄使用 Future 的模型,它在反应器和执行器之间来回传递,所以 Future 本身永远不会真正移动;而只要你保证不移动,Future 包含自引用就完全没问题。

    +

    所以我们需要通过采用某种方式在 Future 的 API 中表达 “在你轮询时,你不允许随意移动它” 来解决这个问题。如果我们能够表达这一点,我们就可以允许 Future 中出现自引用,进而就可以在异步函数中真正使用这些引用,并且一切都会正常工作。因此我们研究了这个问题,最终开发出了被称为 Pin 的新 API 。

    +

    Pin

    Pin 是一种围绕其他指针类型的适配器,可以将其它指针变为 固定引用(pinned reference)。除了原有指针的保证外,它还保证这个引用再也不会被移动,所以我们可以确保它将一直处在同一内存位置,直到最终被释放。如果你的 API 中有一些内容已表明必须使用 Pin,那么你就知道了它再也不会被移动,这样就你可以使用那种自引用的结构体了。因此,我们修改了 Future 的工作方式,现在它变成了一个经过装箱(boxed)的 Future ,实际上是一个由 Pin 封装的 Box<Future> ;这样无论在哪里装箱,我们把它放在堆内存中,它可以保证永远不会再移动;而当你轮询 Future 时,不再使用一个普通引用,而是使用一个固定引用,这样 Future 就知道它不会被移动。而使这一切起作用的诀窍是,要从固定引用中获取非固定引用,你只能使用不安全的代码。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Pin<P>(P);

    impl<T> Pin<Box<T>> {
    fn new(boxed: Box<T>) -> Pin<Box<T>> { ... }
    fn as_mut(self) -> Pin<&mut T> { ... }
    }

    impl<T> Pin<&mut T> {
    unsafe fn get_unchecked_mut(self) -> &mut T { ... }
    }
    +

    所以 Pin API 大致就像这样。在这里你有一个 Pin 结构,它只是另一个指针类型的封装,它没有任何运行时开销或者其它东西,仅仅是将其划分为一个固定的(pinned)对象,然后一个固定的 Box 指针可以转换为一个固定引用,但是将一个固定引用转换为一个非固定引用的唯一方法是使用一个不安全的(unsafe)函数。

    +
    1
    2
    3
    4
    5
    6
    trait Future {
    type Output;

    fn poll(self: Pin<&mut self>, waker: &Waker)
    -> Poll<Self::Output>;
    }
    +

    这样一来,我们要做的就是修改 Future 的 API ,其轮询方法将不再接受一个普通引用,而是接受一个固定引用,而这其实就是我们将要稳定发布的 Future API。而做了这个修改之后,开头示例的写法就能正常工作了。这样你就可以像写阻塞 I/O 的代码那样编写异步 I/O 的代码了,只需要加上 asyncawait 注解,你就能得到这个出色的零成本抽象的异步实现,而即便你自己手写,这基本上也是你能写出的开销最低的实现了。

    +

    async / await 的现状及未来

    目前的情况是,Pinning 大约在一个月前的最新版本中稳定了,我们正在稳定 Future 的 API ,因此大概会在 1.35,也可能会推到 1.36 稳定,基本上在两三个月内就会知道了。并且我们希望今年的某个时候我们能够拥有 async / await,希望今年夏末能将其稳定下来,这样人们就可以使用这种类似阻塞 I/O 的语法编写无阻塞的 I/O 网络服务了。除了这些稳定化工作,我们也已经开始研究某些更长期的功能,比如流(Stream),我认为它可能是异步的下一个大功能。我们知道一个 Future 只产生一个值,而一个流可以异步地产生很多值;异步地产生值本质上就像是一个异步迭代器,你能够在一个流上进行异步的循环;这个功能对于许多用例来说非常重要,比如流式传输HTTP、WebSocket 推送请求之类的东西,不用像我们的 RPC 模型那样发出网络请求然后获得单个响应,而是能够使用请求流和响应流,在两者之间来回调用。

    +

    目前使用异步仍然存在一个限制,即不能在 trait 中使用 async。有许多编译器开发工作正在进行,使其能够支持这个特性。除了这些功能,有时候我们也希望能拥有生成器(Generator),类似于 Python 或 JavaScript 的生成器,除了拥有可以 return 的函数,还能使用可以 yield 的函数,这样你就可以在 yield 之后再次恢复执行;并且你可以将这些函数作为编写迭代器和流的方式,就像异步函数能够让你像编写普通函数那样编写 Future 一样。

    +

    最后,我想回顾一下成就这种零成本异步 I/O 的关键点:首先就是这种基于轮询的 Future,它将这些 Future 编译到这种相当紧凑的状态机中;其次是这种实现 async / await 语法的方式,即因为有了 Pin,我们能够跨越异步等待点使用引用。

    +

    谢谢大家。

    +
    +

    译者注:报告中计划稳定的特性均已稳定发布,参见 areweasyncyet.rs
    按照目前稳定的版本,await 已改为后置运算符 .await,所以本文开头的 get_user 方法应当修改为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    let user = db.get_user("withoutboats").await;

    impl Database {
    async fn get_user(&mut self, user: &str) -> User {
    let sql = format!("select FROM users WHERE username = {}", user);
    let db_response = self.query(&sql).await;
    User::from(db_response)
    }
    }

    +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/placeholder b/placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..4e57019 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1,512 @@ + + + + + https://gteng.org/2024/04/26/zkp-note-0/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/05/25/zkp-note-1/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/05/30/zkp-note-2/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/23/redis-basics/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/26/redis-practices/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2023/03/05/relation-algebra-division/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/28/search-local-minimum/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/14/sorting-algorithm-in-rust-std/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/06/stack-and-queue/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2022/08/13/sync-async-blocking-nonblocking/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/01/30/zero-cost-async-io/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/12/24/learn-solana-3/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/06/linked-list-build-reverse/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/11/merge-sort/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/06/recursive-time-complexity-formula/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/13/quick-sort/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/24/design-pattern-1/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/24/design-pattern-2/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/09/14/design-pattern-3/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/24/design-pattern-principle/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/12/26/dex-dev-0/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/29/exclusive-or/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/10/08/heap-sort/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2021/08/24/how-many-threads/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/11/07/learn-index-0/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/12/06/learn-solana-0/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/12/23/learn-solana-1/ + + 2025-01-02 + + monthly + 0.6 + + + + https://gteng.org/2024/12/23/learn-solana-2/ + + 2025-01-02 + + monthly + 0.6 + + + + + https://gteng.org/ + 2025-01-02 + daily + 1.0 + + + + + https://gteng.org/tags/Design-Pattern/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/solana/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/web3/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/dex/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/amm/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/algorithm/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/xor/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/sort/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/heap/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/%E5%A4%9A%E7%BA%BF%E7%A8%8B/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/%E9%AB%98%E5%B9%B6%E5%8F%91/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/formula/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/index/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/data-structure/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/anchor/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/PDA/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/white-paper/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/PoH/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/PoS/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/linked-list/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/recursive/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/Redis/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/database/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/relation-algebra/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/binary-search/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/Rust/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/queue/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/stack/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/ring-buffer/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/synchronous/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/asynchronous/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/blocking/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/nonblocking/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/Zero-Knowledge-Proof/ + 2025-01-02 + weekly + 0.2 + + + + https://gteng.org/tags/Web3/ + 2025-01-02 + weekly + 0.2 + + + + + \ No newline at end of file diff --git a/tags/Design-Pattern/index.html b/tags/Design-Pattern/index.html new file mode 100644 index 0000000..a5efefd --- /dev/null +++ b/tags/Design-Pattern/index.html @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: Design Pattern | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    Design Pattern + 标签 +

    +
    + + +
    + 2021 +
    + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/PDA/index.html b/tags/PDA/index.html new file mode 100644 index 0000000..7c8a914 --- /dev/null +++ b/tags/PDA/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: PDA | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    PDA + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/PoH/index.html b/tags/PoH/index.html new file mode 100644 index 0000000..4e91390 --- /dev/null +++ b/tags/PoH/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: PoH | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    PoH + 标签 +

    +
    + + +
    + 2024 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/PoS/index.html b/tags/PoS/index.html new file mode 100644 index 0000000..ba9b2ce --- /dev/null +++ b/tags/PoS/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: PoS | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    PoS + 标签 +

    +
    + + +
    + 2024 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/Redis/index.html b/tags/Redis/index.html new file mode 100644 index 0000000..30bf6e8 --- /dev/null +++ b/tags/Redis/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: Redis | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    Redis + 标签 +

    +
    + + +
    + 2021 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/Rust/index.html b/tags/Rust/index.html new file mode 100644 index 0000000..2b0e5f4 --- /dev/null +++ b/tags/Rust/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: Rust | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    Rust + 标签 +

    +
    + + +
    + 2021 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/Web3/index.html b/tags/Web3/index.html new file mode 100644 index 0000000..d2c6546 --- /dev/null +++ b/tags/Web3/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: Web3 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    Web3 + 标签 +

    +
    + + +
    + 2024 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/Zero-Knowledge-Proof/index.html b/tags/Zero-Knowledge-Proof/index.html new file mode 100644 index 0000000..4151e59 --- /dev/null +++ b/tags/Zero-Knowledge-Proof/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: Zero-Knowledge Proof | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    Zero-Knowledge Proof + 标签 +

    +
    + + +
    + 2024 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/algorithm/index.html b/tags/algorithm/index.html new file mode 100644 index 0000000..34305b3 --- /dev/null +++ b/tags/algorithm/index.html @@ -0,0 +1,572 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: algorithm | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    algorithm + 标签 +

    +
    + + +
    + 2024 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/amm/index.html b/tags/amm/index.html new file mode 100644 index 0000000..334c134 --- /dev/null +++ b/tags/amm/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: amm | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    amm + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/anchor/index.html b/tags/anchor/index.html new file mode 100644 index 0000000..ce62e00 --- /dev/null +++ b/tags/anchor/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: anchor | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    anchor + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/asynchronous/index.html b/tags/asynchronous/index.html new file mode 100644 index 0000000..f0a93bc --- /dev/null +++ b/tags/asynchronous/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: asynchronous | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    asynchronous + 标签 +

    +
    + + +
    + 2022 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/binary-search/index.html b/tags/binary-search/index.html new file mode 100644 index 0000000..db1255c --- /dev/null +++ b/tags/binary-search/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: binary search | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    binary search + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/blocking/index.html b/tags/blocking/index.html new file mode 100644 index 0000000..3224135 --- /dev/null +++ b/tags/blocking/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: blocking | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    blocking + 标签 +

    +
    + + +
    + 2022 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/data-structure/index.html b/tags/data-structure/index.html new file mode 100644 index 0000000..6d332d6 --- /dev/null +++ b/tags/data-structure/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: data structure | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    data structure + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/database/index.html b/tags/database/index.html new file mode 100644 index 0000000..feb81f9 --- /dev/null +++ b/tags/database/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: database | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    database + 标签 +

    +
    + + +
    + 2023 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/dex/index.html b/tags/dex/index.html new file mode 100644 index 0000000..cb9a636 --- /dev/null +++ b/tags/dex/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: dex | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    dex + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/formula/index.html b/tags/formula/index.html new file mode 100644 index 0000000..7355a84 --- /dev/null +++ b/tags/formula/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: formula | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    formula + 标签 +

    +
    + + +
    + 2021 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/heap/index.html b/tags/heap/index.html new file mode 100644 index 0000000..3f9cbdb --- /dev/null +++ b/tags/heap/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: heap | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    heap + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/index.html b/tags/index.html new file mode 100644 index 0000000..6233c56 --- /dev/null +++ b/tags/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签 | 耿腾的博客 + + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + + + + + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/index/index.html b/tags/index/index.html new file mode 100644 index 0000000..6f15957 --- /dev/null +++ b/tags/index/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: index | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    index + 标签 +

    +
    + + +
    + 2024 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/linked-list/index.html b/tags/linked-list/index.html new file mode 100644 index 0000000..14c8244 --- /dev/null +++ b/tags/linked-list/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: linked list | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    linked list + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/nonblocking/index.html b/tags/nonblocking/index.html new file mode 100644 index 0000000..b29811d --- /dev/null +++ b/tags/nonblocking/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: nonblocking | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    nonblocking + 标签 +

    +
    + + +
    + 2022 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/queue/index.html b/tags/queue/index.html new file mode 100644 index 0000000..3eb3fc5 --- /dev/null +++ b/tags/queue/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: queue | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    queue + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/recursive/index.html b/tags/recursive/index.html new file mode 100644 index 0000000..3a5cb0d --- /dev/null +++ b/tags/recursive/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: recursive | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    recursive + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/relation-algebra/index.html b/tags/relation-algebra/index.html new file mode 100644 index 0000000..c2b7744 --- /dev/null +++ b/tags/relation-algebra/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: relation algebra | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    relation algebra + 标签 +

    +
    + + +
    + 2023 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/ring-buffer/index.html b/tags/ring-buffer/index.html new file mode 100644 index 0000000..9f9b830 --- /dev/null +++ b/tags/ring-buffer/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: ring buffer | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    ring buffer + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/solana/index.html b/tags/solana/index.html new file mode 100644 index 0000000..a802a86 --- /dev/null +++ b/tags/solana/index.html @@ -0,0 +1,469 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: solana | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    solana + 标签 +

    +
    + + +
    + 2024 +
    + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/sort/index.html b/tags/sort/index.html new file mode 100644 index 0000000..72c57f8 --- /dev/null +++ b/tags/sort/index.html @@ -0,0 +1,449 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: sort | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    sort + 标签 +

    +
    + + +
    + 2021 +
    + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/stack/index.html b/tags/stack/index.html new file mode 100644 index 0000000..358e8fa --- /dev/null +++ b/tags/stack/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: stack | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    stack + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/synchronous/index.html b/tags/synchronous/index.html new file mode 100644 index 0000000..f43bbdf --- /dev/null +++ b/tags/synchronous/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: synchronous | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    synchronous + 标签 +

    +
    + + +
    + 2022 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/web3/index.html b/tags/web3/index.html new file mode 100644 index 0000000..f12f254 --- /dev/null +++ b/tags/web3/index.html @@ -0,0 +1,469 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: web3 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    web3 + 标签 +

    +
    + + +
    + 2024 +
    + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/white-paper/index.html b/tags/white-paper/index.html new file mode 100644 index 0000000..6fa3be4 --- /dev/null +++ b/tags/white-paper/index.html @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: white paper | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    white paper + 标签 +

    +
    + + +
    + 2024 +
    + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tags/xor/index.html b/tags/xor/index.html new file mode 100644 index 0000000..1f609aa --- /dev/null +++ b/tags/xor/index.html @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: xor | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    xor + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tags/\345\244\232\347\272\277\347\250\213/index.html" "b/tags/\345\244\232\347\272\277\347\250\213/index.html" new file mode 100644 index 0000000..2f32dd7 --- /dev/null +++ "b/tags/\345\244\232\347\272\277\347\250\213/index.html" @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: 多线程 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    多线程 + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/tags/\351\253\230\345\271\266\345\217\221/index.html" "b/tags/\351\253\230\345\271\266\345\217\221/index.html" new file mode 100644 index 0000000..a470f4b --- /dev/null +++ "b/tags/\351\253\230\345\271\266\345\217\221/index.html" @@ -0,0 +1,389 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 标签: 高并发 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    +

    高并发 + 标签 +

    +
    + + +
    + 2021 +
    + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  • 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

    wIHk%^)3j*wD>uErG+B0* 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%0AxoTYW`c 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%0D>1QTfp%=C@wvRbu?X`rE*`j|&d{RI3qon28lf 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%0D-*vhltATfl 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 literal 0 HcmV?d00001 diff --git a/2024/12/23/learn-solana-2/index.html b/2024/12/23/learn-solana-2/index.html new file mode 100644 index 0000000..eab57f2 --- /dev/null +++ b/2024/12/23/learn-solana-2/index.html @@ -0,0 +1,528 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Solana / Anchor 学习笔记 - Solana 白皮书(一) | 耿腾的博客 + + + + + + + + + + + + + + + + +

    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    + + + + + +
    +

    + Solana / Anchor 学习笔记 - Solana 白皮书(一) +

    + + +
    + + + + +
    + + +
    +

    PoH (Proof of History) 是⼀种⽤于验证事件之间的顺序和时间流逝的证明。
    PoH is a proof for verifying order and passage of time between events.

    +
    +

    1. 简介

    区块链本质上是一个容错复制状态机。

    +

    使用 PoH,网络中的节点可以不依靠其他信任机制验证账本记录的时间流逝。

    +
      +
    • 问题
    • +
    +
      +
    1. PoH 如何生成可验证的时间间隔。2. PoH 如何生成可验证的事件执行时间。
    2. +
    +

    2. 提纲

    3. 网络设计

      +
    1. 某个节点被选举为领导者(Leader),负责生成历史证明序列(提供网络全局读取一致性以及可验证的时间流逝)。
    2. +
    3. 领导者搜集用户消息并排序。
    4. +
    5. 领导者对内存中的交易进行处理,并将交易和签名发送到验证复制节点(Verifier)。
    6. +
    7. 验证复制节点在其状态副本上执行相同的交易,并发布处理的状态签名,作为交易确认及共识算法投票。
    8. +
    +

    整体网络的交易流向

    +
    +

    Leader 选举是基于 PoS 实现的。

    +
    +

    4. 历史证明

      +
    1. 历史证明是一个计算序列。
    2. +
    3. 依赖一个加密的安全函数,无法通过输入预测输出,必须完全执行函数才能生成输出。
    4. +
    5. 函数在单个核心上按顺序执行,上一步的输出作为下一步输入,定期记录当前输出及执行的次数。
    6. +
    7. 外部计算机可以通过检查其中的每个序列段来重新计算并验证输出。
    8. +
    +
      +
    • 问题
    • +
    +

    原文有 Data can be timestamped into this sequence by appending the data (or a hash of some data) into the state of the function. 这句话里的 timestamped 应该不是传统意义的时间戳的意思,而是某种反映执行顺序(和次数?)的更本质的标记。也就说,这种机制提供了“时间戳“的实现。

    +

    4.1 说明

    PoH序列

    +

    只需要每隔一段时间发布哈希和索引的子集,即:

    +

    PoH序列

    +

    只要选择的哈希函数是抗冲突的、不可预测结果的,产生的序列就只能由一个计算机线程按顺序计算得到。也就是,如果不从起始值开始计算 N 次,就无法获得索引 N 处的哈希值。

    +

    哈希的抗冲突、不可预测性和顺序计算,使得我们能够确定,某段序列的产生过程中发生了时间的流逝。

    +

    历史证明序列

    +

    4.2 事件时间戳

    将数据或数据的哈希通过“组合函数”插入到这个序列中参与计算,则这些附加的数据就拥有了时间顺序。

    +

    带数据的历史证明序列

    +

    4.3 验证

    可以利用多核,同时验证一个序列的多段。N 个核就可以同时验证 N 段。产生一段序列的预期时间如果是 T,验证时使用的核数是 C,则验证这段序列需要的时间只有 T / C

    +

    4.4 横向扩容

    两个 PoH 生成节点互相观察对方最近一次的状态,加入自己下一步哈希的数据,实现多个 PoH 链的混合 / 同步。

    +

    通过定期同步生成器,每个生成器都可以处理一部分外部流量,整个系统就可以处理更多事件。

    +
      +
    • 问题
    • +
    +
      +
    1. 混合的意义是什么,不混合仍然可以横向扩展多个 PoH 链。是为了保证系统整体的一致性,提高防篡改性?
    2. +
    +

    4.5 一致性

    为了防止恶意重排序攻击,客户端在创建事件时,需要获取最近的哈希,把该事件挂到某个 PoH 链上,即为事件打上 PoH 的时间戳。

    +

    为了防止恶意 PoH 生成器篡改客户端提交的事件关联的哈希,客户端可以提交数据和关联哈希的签名,而不仅仅是数据的签名。

    +

    客户端提交数据和最近哈希签名到PoH链

    +

    验证时只需验证两点:

    +
      +
    1. 签名是否正确。
    2. +
    3. 关联的哈希在 PoH 链上是否在当前的事件前面。
    4. +
    +
    1
    2
    3
    4
    5
    (Signature, PublicKey, hash30a, event3 data) = Event3

    Verify(Signature, PublicKey, Event3)

    Lookup(hash30a, PoHSequence)
    +

    4.6 开销

    每秒 4000 个哈希产生 160KB 额外数据。

    +

    这些数据,使用 4000 核的 GPU 需要 0.25-0.75 毫秒进行验证。

    +

    4.7 攻击

    4.7.1 逆序

    恶意攻击者需要从第二个事件开始伪造,但是这个延迟已经足够让其他正常节点对于初始序列达成共识。

    +

    4.7.2 速度

    使用多个 PoH 生成器可以增强抗攻击性。

    +

    一个生成器有高带宽,用来接收并混合事件,另一个高速低带宽,定期与高带宽链同步混合,它会生成辅助序列,让攻击者逆序更难。

    +

    4.7.3 长程攻击

      +
    • PoH 提供了时间上的不可篡改性。
    • +
    • PoRep 提供了存储数据的真实性证明。
    • +
    • 两者结合提供了对伪造账本的防御能力。
    • +
    +

    攻击者不仅需要耗费巨大的时间成本来伪造时间戳,还需要在存储上符合 PoRep 的要求。

    + +
    + + + + + + + +
    + + + + + + +
    + + + +
    + +
    + + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/12/24/learn-solana-3/index.html b/2024/12/24/learn-solana-3/index.html new file mode 100644 index 0000000..bf4d82f --- /dev/null +++ b/2024/12/24/learn-solana-3/index.html @@ -0,0 +1,512 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Solana / Anchor 学习笔记 - Solana 白皮书(二) | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    + + + + + +
    +

    + Solana / Anchor 学习笔记 - Solana 白皮书(二) +

    + + +
    + + + + +
    + + +

    5. 权益证明共识机制

    5.1 描述

    这个机制是用来:

    +
      +
    1. 快速确认由 PoH 生成器生成的当前序列。
    2. +
    3. 投票选出下一个 PoH 生成器。
    4. +
    5. 惩罚不当行为的验证者。
    6. +
    +

    这个算法依赖于所有参与节点在规定超时时间内最终接收到的消息。

    +

    5.2 术语

      +
    • 押金(bonds): 验证者在验证交易时的承诺作为抵押的代币。
    • +
    • 惩罚机制(slashing): 为解决无利害关系问题提出的方案,当不同的分支被发布时,当前分支可以销毁验证者的押金。
    • +
    • 超级多数(super majority): 由押金加权之后,验证者的总票数达到三分之二。这意味着发起攻击的经济成本等同于代币市值的三分之一。
    • +
    +
    +

    无利害关系问题(Nothing at Stake Problem): 在权益证明系统中,验证者不需要消耗物理资源(如电力),而是依赖于其押金(Stake)。因此,如果网络分叉,验证者可以选择在多个分支上投票,因为这样不会有额外成本。他们会试图最大化收益,而不关心网络的最终一致性。

    +
    +

    5.3 质押

    用户将代币转账到一个自己名下的质押账户,这笔押金在赎回之前需要保持不动。

    +

    质押账户有锁定期,锁定期结束才能赎回。

    +

    超级多数确认了质押交易之后,质押才有效。

    +

    5.4 投票

      +
    1. PoH 生成器会在预定义好的周期内发布一个自身状态的签名。
    2. +
    3. 每个质押的身份需要发布一份状态的签名,作为投票。
    4. +
    5. 投票只有同意票,没有反对票。
    6. +
    7. 如果在超时时间内,绝对多数达成了共识,这个分支就会被认为是合法的。
    8. +
    +

    5.5 解质押

    如果用户未能按时参与投票,质押的币会被标记为“过期”,旨在强制参与者保持活跃,否则将失去投票资格。

    +

    N 作为投票失效的次数阈值,会随着过期投票的数量增加而增长,N 的动态调整也可以为网络的自愈能力提供支持,减少对投票延迟的影响。

    +

    5.6 选举

      +
    1. 检测到 PoH 生成器故障时,新 PoH 生成器选举就会发生。
    2. +
    3. 拥有最高投票权重、更高的公钥地址的验证者会被选为新的 PoH 生成器。
    4. +
    5. 需要超级多数确认,如果在完成确认前新的生成器故障,就重新选择下一个新的 PoH 生成器。
    6. +
    7. 切换选票时,投票的验证者需要在一个更高的 PoH 序列计数器上投票,否则会触发惩罚。
    8. +
    9. 会选择一个次级生成器,用于主生成器故障时快速切换。
    10. +
    +

    5.7 选举触发条件

    5.7.1 分叉的 Proof of History 生成器

      +
    1. 只有当 PoH 生成器的标识被攻破时,才可能发生分叉。
    2. +
    3. 分叉的检测依据是同一个 PoH 标识发布了两个不同的历史记录。
    4. +
    +

    5.7.2 运行时异常

      +
    1. Bug、硬件故障、人为错误可能导致生成器生成无效状态,并发布与本地验证者不一致的签名。
    2. +
    3. 验证者将通过 Gossip 协议发布正确的签名,这一事件将触发新的选举。
    4. +
    5. 接收无效状态的验证者将收到惩罚。
    6. +
    +

    5.7.3 网络超时

    5.8 惩罚

      +
    1. 恶意投票:对两个不同的序列投票,受质押削减惩罚。
    2. +
    3. 非恶意的竞选序列冲突,投票会被撤销,不会惩罚。
    4. +
    5. 对 PoH 生成器的无效哈希进行投票,受质押削减惩罚。
    6. +
    +

    5.9 次级选举

      +
    1. 次级选举是在主序列上被提出的。
    2. +
    3. 在超时时间内通过绝对多数投票,次级生成器就当选了。
    4. +
    5. 主生成器通过在序列中插入指示交接的消息,来实现软交接。
    6. +
    7. 如果主生成器发生故障,已当选的次生成器会被作为第一备选。
    8. +
    +

    5.10 可用性

      +
    1. CAP 中 Solana 选择 A 可用性。
    2. +
    3. 最终一致性:在合理的人类时间范围内保持一定程度的一致性。
    4. +
    5. 利用 PoH(Proof of History)机制提供了时间的客观测量,结合 PoS 投票记录,可以动态地取消不可用验证者的质押,调整网络的活性和一致性需求。
    6. +
    7. 在合理的时间内,随着不可用验证者被逐步取消质押,网络可以逐步恢复到满足 2/3 共识的状态,从而达成一致性。
    8. +
    + +
    + + + + + + + +
    + + + + + + +
    + + + +
    + +
    + + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/2024/12/26/dex-dev-0/index.html b/2024/12/26/dex-dev-0/index.html new file mode 100644 index 0000000..7f39d84 --- /dev/null +++ b/2024/12/26/dex-dev-0/index.html @@ -0,0 +1,573 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + DEX 开发笔记 - Raydium 恒定乘积交换合约源码阅读 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    + + + + + +
    +

    + DEX 开发笔记 - Raydium 恒定乘积交换合约源码阅读 +

    + + +
    + + + + +
    + + +

    Raydium 是一个 Solana 平台上的 DEX,提供了各种代币的流动性池,为用户提供流动性挖矿、购买代币的功能。为了给 DEX 项目引入流动性池、对接 Raydium 的交换协议,对 raydium 恒定乘积交换合约的源码进行深入学习,这也是 Raydium 上最新的标准 AMM。

    +
    +

    Repository: https://github.com/raydium-io/raydium-cp-swap

    +
    +

    流动性池状态及创建时的基本流程

    流动性池状态定义如下:

    +
    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
    #[account(zero_copy(unsafe))]
    #[repr(packed)]
    #[derive(Default, Debug)]
    pub struct PoolState {
    /// 使用的配置,主要包括各种费率,控制标志,拥有者 / 受益者 等信息
    pub amm_config: Pubkey,
    /// 流动性池创建者
    pub pool_creator: Pubkey,
    /// Token A 的金库,用来存储流动性 Token 及收益
    pub token_0_vault: Pubkey,
    /// Token B 的金库,用来存储流动性 Token 及收益
    pub token_1_vault: Pubkey,

    /// 流动性池 token 会在存入 A 或 B 时发放
    /// 流动性池 token 可以被提取为对应的 A 或 B
    pub lp_mint: Pubkey,
    /// A 的铸币厂
    pub token_0_mint: Pubkey,
    /// B 的铸币厂
    pub token_1_mint: Pubkey,

    /// A 使用的 Token 程序,比如旧版本或者 2022
    pub token_0_program: Pubkey,
    /// B 使用的 Token 程序
    pub token_1_program: Pubkey,

    /// TWAP 计价账户的地址
    pub observation_key: Pubkey,

    /// 用于 PDA 签名时使用的 bump
    pub auth_bump: u8,
    /// Bitwise representation of the state of the pool
    /// bit0, 1: disable deposit(vaule is 1), 0: normal
    /// bit1, 1: disable withdraw(vaule is 2), 0: normal
    /// bit2, 1: disable swap(vaule is 4), 0: normal
    pub status: u8,

    pub lp_mint_decimals: u8,
    /// mint0 and mint1 decimals
    pub mint_0_decimals: u8,
    pub mint_1_decimals: u8,

    /// True circulating supply without burns and lock ups
    pub lp_supply: u64,
    /// 金库中欠流动性提供者的 A 和 B 的数额.
    pub protocol_fees_token_0: u64,
    pub protocol_fees_token_1: u64,

    pub fund_fees_token_0: u64,
    pub fund_fees_token_1: u64,

    /// The timestamp allowed for swap in the pool.
    pub open_time: u64,
    /// recent epoch
    pub recent_epoch: u64,
    /// padding for future updates
    pub padding: [u64; 31],
    }
    +

    初始化流动性池的指令函数签名如下:

    +
    1
    2
    3
    4
    5
    6
    pub fn initialize(
    ctx: Context<Initialize>, // 上下文
    init_amount_0: u64, // A 资产初始数额
    init_amount_1: u64, // B 资产初始数额
    mut open_time: u64, // 开始交易时间
    ) -> Result<()>;
    +

    初始化流动性池账户定义如下:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    #[derive(Accounts)]
    pub struct Initialize<'info> {
    /// Address paying to create the pool. Can be anyone
    #[account(mut)]
    pub creator: Signer<'info>,

    /// Which config the pool belongs to.
    pub amm_config: Box<Account<'info, AmmConfig>>,

    /// CHECK: pool vault and lp mint authority
    #[account(
    seeds = [
    crate::AUTH_SEED.as_bytes(),
    ],
    bump,
    )]
    pub authority: UncheckedAccount<'info>,

    /// CHECK: Initialize an account to store the pool state
    /// PDA account:
    /// seeds = [
    ///     POOL_SEED.as_bytes(),
    ///     amm_config.key().as_ref(),
    ///     token_0_mint.key().as_ref(),
    ///     token_1_mint.key().as_ref(),
    /// ],
    ///
    /// Or random account: must be signed by cli
    #[account(mut)]
    pub pool_state: UncheckedAccount<'info>,

    /// Token_0 mint, the key must smaller then token_1 mint.
    #[account(
    constraint = token_0_mint.key() < token_1_mint.key(),
    mint::token_program = token_0_program,
    )]
    pub token_0_mint: Box<InterfaceAccount<'info, Mint>>,

    /// Token_1 mint, the key must grater then token_0 mint.
    #[account(
    mint::token_program = token_1_program,
    )]
    pub token_1_mint: Box<InterfaceAccount<'info, Mint>>,

    /// pool lp mint
    #[account(
    init,
    seeds = [
    POOL_LP_MINT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    ],
    bump,
    mint::decimals = 9,
    mint::authority = authority,
    payer = creator,
    mint::token_program = token_program,
    )]
    pub lp_mint: Box<InterfaceAccount<'info, Mint>>,

    /// payer token0 account
    #[account(
    mut,
    token::mint = token_0_mint,
    token::authority = creator,
    )]
    pub creator_token_0: Box<InterfaceAccount<'info, TokenAccount>>,

    /// creator token1 account
    #[account(
    mut,
    token::mint = token_1_mint,
    token::authority = creator,
    )]
    pub creator_token_1: Box<InterfaceAccount<'info, TokenAccount>>,

    /// creator lp token account
    #[account(
    init,
    associated_token::mint = lp_mint,
    associated_token::authority = creator,
    payer = creator,
    token::token_program = token_program,
    )]
    pub creator_lp_token: Box<InterfaceAccount<'info, TokenAccount>>,

    /// CHECK: Token_0 vault for the pool, create by contract
    #[account(
    mut,
    seeds = [
    POOL_VAULT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    token_0_mint.key().as_ref()
    ],
    bump,
    )]
    pub token_0_vault: UncheckedAccount<'info>,

    /// CHECK: Token_1 vault for the pool, create by contract
    #[account(
    mut,
    seeds = [
    POOL_VAULT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    token_1_mint.key().as_ref()
    ],
    bump,
    )]
    pub token_1_vault: UncheckedAccount<'info>,

    /// create pool fee account
    #[account(
    mut,
    address= crate::create_pool_fee_reveiver::id(),
    )]
    pub create_pool_fee: Box<InterfaceAccount<'info, TokenAccount>>,

    /// an account to store oracle observations
    #[account(
    init,
    seeds = [
    OBSERVATION_SEED.as_bytes(),
    pool_state.key().as_ref(),
    ],
    bump,
    payer = creator,
    space = ObservationState::LEN
    )]
    pub observation_state: AccountLoader<'info, ObservationState>,

    /// Program to create mint account and mint tokens
    pub token_program: Program<'info, Token>,
    /// Spl token program or token program 2022
    pub token_0_program: Interface<'info, TokenInterface>,
    /// Spl token program or token program 2022
    pub token_1_program: Interface<'info, TokenInterface>,
    /// Program to create an ATA for receiving position NFT
    pub associated_token_program: Program<'info, AssociatedToken>,
    /// To create a new program account
    pub system_program: Program<'info, System>,
    /// Sysvar for program account
    pub rent: Sysvar<'info, Rent>,
    }
    +

    初始化流动性池流程如下:

    +
      +
    1. 判断两种资产的 Mint 账户是否合法,判断 AMM 配置中是否关闭创建 Pool。
    2. +
    3. 设定开始交易时间。
    4. +
    5. 创建两种资产的金库。
    6. +
    7. 创建 PoolState 数据账户。
    8. +
    9. 创建 ObservationState 数据账户。
    10. +
    11. 将两种初始资产从创建者账户转账到金库账户。
    12. +
    13. 判断两个金库账户的数额是否合法(实际上只要大于 0 就合法)。
    14. +
    15. 计算流动性值: $liquidity = \sqrt(amount0 * amount1)$。
    16. +
    17. 固定锁定 100 个流动性值: let lock_lp_amount = 100
    18. +
    19. 发放 liquidity - lock_lp_amount 个 LP token 给创建者。
    20. +
    21. 从创建者账户里收取创建费(lamports)到一个专门存放创建费的账户中(地址硬编码在合约里)。
    22. +
    23. 初始化流动性池数据的各个字段。
    24. +
    +

    资产交换

    资产交换分为两类:

    +
      +
    1. 基于输入资产: 输入资产额度固定,一部分会作为手续费,一部分作为购买资金输入。
    2. +
    3. 基于输出资产: 输出资产额度固定,需要额外购买一部分输出资产作为手续费,其他作为购买到的资产输出。
    4. +
    +

    基于输入资产

    指令函数签名:

    +
    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
    pub fn swap_base_input(
    ctx: Context<Swap>, // 上下文
    amount_in: u64, // 输入资产
    minimum_amount_out: u64 // 最小输出资产,由调用者按照当前价格及滑点计算得出
    ) -> Result<()>;

    #[derive(Accounts)]
    pub struct Swap<'info> {
    // 交换者
    pub payer: Signer<'info>,

    // 流动性池的金库和流动性 token mint 的权限账户
    /// CHECK: pool vault and lp mint authority
    #[account(
    seeds = [
    crate::AUTH_SEED.as_bytes(),
    ],
    bump,
    )]
    pub authority: UncheckedAccount<'info>,

    /// 用于读取协议费用
    #[account(address = pool_state.load()?.amm_config)]
    pub amm_config: Box<Account<'info, AmmConfig>>,

    /// 流动性池数据账户
    #[account(mut)]
    pub pool_state: AccountLoader<'info, PoolState>,

    /// 用户购买使用的 token ATA,即输入 token 的 ATA
    #[account(mut)]
    pub input_token_account: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 用户希望购买到的 token ATA,即输出 token 的 ATA
    #[account(mut)]
    pub output_token_account: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 接收用户购买使用的 token 的金库
    #[account(
    mut,
    constraint = input_vault.key() == pool_state.load()?.token_0_vault || input_vault.key() == pool_state.load()?.token_1_vault
    )]
    pub input_vault: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 输出用户希望购买到的 token 的金库
    #[account(
    mut,
    constraint = output_vault.key() == pool_state.load()?.token_0_vault || output_vault.key() == pool_state.load()?.token_1_vault
    )]
    pub output_vault: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 输入 token 的程序(可能是 2022)
    pub input_token_program: Interface<'info, TokenInterface>,

    /// 输出 token 的程序(可能是 2022)
    pub output_token_program: Interface<'info, TokenInterface>,

    /// 输入 token 的铸币厂
    #[account(
    address = input_vault.mint
    )]
    pub input_token_mint: Box<InterfaceAccount<'info, Mint>>,

    /// 输出 token 的铸币厂
    #[account(
    address = output_vault.mint
    )]
    pub output_token_mint: Box<InterfaceAccount<'info, Mint>>,

    /// 记录价格的数据账户,用于计算 TWAP 价格
    #[account(mut, address = pool_state.load()?.observation_key)]
    pub observation_state: AccountLoader<'info, ObservationState>,
    }
    +

    基于输入的资产交换流程如下:

    +
      +
    1. 检查时间、状态等是否允许交换。
    2. +
    3. 计算转账(应该指的是向金库中转账)费用,从总的输入费用中减去这部分,将剩余部分 actual_amount_in 作为实际购买资金。
    4. +
    5. 计算两个金库扣除协议费用和资金费用之后剩余的部分,即实际上提供流动性的两种资金。
    6. +
    7. 按照上一步计算得到了两种资金,计算两种资金置换另一种的价格,$A / B$ 和 $B / A$,同时转换为 u128 左移 32 位使用定点数来保存精度。
    8. +
    9. 将第 3 步得到的两种资金额度相乘,得到恒定乘积 $A * B$。
    10. +
    11. 计算交换结果,包括各种额度、费用。
    12. +
    13. 将上一步得到的计算结果中的交换后的的源资产额度减去交易费用,再乘以这个结果中交换后的目标资产额度,得到交换后的恒定乘积 $A’ * B’$。
    14. +
    15. 验证第 6 步计算结果中交换的源资产额度是否等于 actual_amount_in
    16. +
    17. 检查第 6 步计算结果中交换得到的目标资产额度减去转账费用之后,是否仍然大于 0 ;同时检查,是否大于等于 minimum_amount_out,如果不满足表示超过滑点限制。
    18. +
    19. 更新流动性池状态的协议费用及资金费用,用于记录金库中非流动性的部分的额度。
    20. +
    21. 发送一个 SwapEvent 事件。(为什么?怎么利用?)
    22. +
    23. 验证交换后的恒定乘积大于等于交换前的恒定乘积,即 $A’ B’ \geq A B$。
    24. +
    25. 根据计算后的结果,将相应额度的输入资产从用户账户转账到金库账户,将相应额度的输出资产从金库账户转账到用户账户。
    26. +
    27. 更新观测状态(ObservationState)的值。
    28. +
    +

    基于输出资产

    TODO

    +

    观测状态 / TWAP 计价器

    观测值及观测状态结构定义如下:

    +
    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
    #[zero_copy(unsafe)]
    #[repr(packed)]
    #[derive(Default, Debug)]
    pub struct Observation {
    /// The block timestamp of the observation
    pub block_timestamp: u64,
    /// the cumulative of token0 price during the duration time, Q32.32, the remaining 64 bit for overflow
    pub cumulative_token_0_price_x32: u128,
    /// the cumulative of token1 price during the duration time, Q32.32, the remaining 64 bit for overflow
    pub cumulative_token_1_price_x32: u128,
    }

    #[account(zero_copy(unsafe))]
    #[repr(packed)]
    #[cfg_attr(feature = "client", derive(Debug))]
    pub struct ObservationState {
    /// Whether the ObservationState is initialized
    pub initialized: bool,
    /// the most-recently updated index of the observations array
    pub observation_index: u16,
    pub pool_id: Pubkey,
    /// 固定长度的环形缓冲区,用于循环写入观测记录
    pub observations: [Observation; OBSERVATION_NUM], // OBSERVATION_NUM == 100
    /// padding for feature update
    pub padding: [u64; 4],
    }
    +

    其中最重要的函数是更新:

    +
    1
    2
    3
    4
    5
    6
    pub fn update(
    &mut self,
    block_timestamp: u64,
    token_0_price_x32: u128,
    token_1_price_x32: u128,
    );
    +
      +
    1. 该函数将一个 Oracle 观测值写入到当前状态中,并将当前索引自增一模 OBSERVATION_NUM,即循环写入。
    2. +
    3. 该函数一秒钟最多执行一次。
    4. +
    5. 将两种资产的当前价格与跟上一个记录的时间差值相乘,即: $Price * \Delta T$。
    6. +
    7. 然后将上一步求出的两个结果与上一个记录的两个值累加起来 (wrapping_add),作为新记录的两个值。
    8. +
    9. 更新索引。
    10. +
    +

    原理

    TWAP ,即时间加权平均价格(Time Weighted Average Price);用来平滑价格波动,减少大宗交易对市场价格的冲击。

    +

    计算公式为:

    +

    即某个特定时间内的 TWAP 为:每小段时间乘以当时的价格求和,除以总时间。

    +

    设计理由(猜测)

    我能想到的另外一种方案是:

    +
      +
    1. 观测状态中的每个观测记录,只记录 $Price * \Delta T$ 和时间戳即可。
    2. +
    3. 当要求某段时间的 TWAP 时,将这段时间的所有记录累加,除以总时长即可,时间复杂度 $O(n)$。
    4. +
    5. 这样看起来好像可以避免 wrapping_add,源码中不断累加更可能遇到这种情况。
    6. +
    +

    而源码在计算某段时间的 TWAP 时,只需要将最后一个记录的值和第一个记录的值的差除以总时间即可,即这种方案时间复杂度只有 $O(1)$ 。而且实际上 wrapping_add 得到的累加值在相减的时候仍然可以得到正确的结果,只要在这段时间内没有溢出两次就行了。

    + +
    + + + + + + + +
    + + + + + + +
    + + + +
    + +
    + + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..bfe3da0 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +gteng.org diff --git a/archives/2021/01/index.html b/archives/2021/01/index.html new file mode 100644 index 0000000..c33fec5 --- /dev/null +++ b/archives/2021/01/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2021/08/index.html b/archives/2021/08/index.html new file mode 100644 index 0000000..4fccd7a --- /dev/null +++ b/archives/2021/08/index.html @@ -0,0 +1,488 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2021/09/index.html b/archives/2021/09/index.html new file mode 100644 index 0000000..b556e67 --- /dev/null +++ b/archives/2021/09/index.html @@ -0,0 +1,548 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2021/10/index.html b/archives/2021/10/index.html new file mode 100644 index 0000000..1b1ae38 --- /dev/null +++ b/archives/2021/10/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2021/index.html b/archives/2021/index.html new file mode 100644 index 0000000..a26ee44 --- /dev/null +++ b/archives/2021/index.html @@ -0,0 +1,571 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2021/page/2/index.html b/archives/2021/page/2/index.html new file mode 100644 index 0000000..784cf39 --- /dev/null +++ b/archives/2021/page/2/index.html @@ -0,0 +1,511 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2022/08/index.html b/archives/2022/08/index.html new file mode 100644 index 0000000..cb0db42 --- /dev/null +++ b/archives/2022/08/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2022 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2022/index.html b/archives/2022/index.html new file mode 100644 index 0000000..d122cdf --- /dev/null +++ b/archives/2022/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2022 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2023/03/index.html b/archives/2023/03/index.html new file mode 100644 index 0000000..21019e8 --- /dev/null +++ b/archives/2023/03/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2023 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2023/index.html b/archives/2023/index.html new file mode 100644 index 0000000..d51fd74 --- /dev/null +++ b/archives/2023/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2023 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/04/index.html b/archives/2024/04/index.html new file mode 100644 index 0000000..e938a6e --- /dev/null +++ b/archives/2024/04/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/05/index.html b/archives/2024/05/index.html new file mode 100644 index 0000000..aec052c --- /dev/null +++ b/archives/2024/05/index.html @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/11/index.html b/archives/2024/11/index.html new file mode 100644 index 0000000..d6a8939 --- /dev/null +++ b/archives/2024/11/index.html @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/12/index.html b/archives/2024/12/index.html new file mode 100644 index 0000000..8ff8482 --- /dev/null +++ b/archives/2024/12/index.html @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/2024/index.html b/archives/2024/index.html new file mode 100644 index 0000000..8b04d43 --- /dev/null +++ b/archives/2024/index.html @@ -0,0 +1,548 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/index.html b/archives/index.html new file mode 100644 index 0000000..ca590ce --- /dev/null +++ b/archives/index.html @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2024 +
    + + + + + + + + + + + + + + + + + + +
    + 2023 +
    + + + + +
    +
    + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/page/2/index.html b/archives/page/2/index.html new file mode 100644 index 0000000..a94bb9b --- /dev/null +++ b/archives/page/2/index.html @@ -0,0 +1,574 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2022 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/archives/page/3/index.html b/archives/page/3/index.html new file mode 100644 index 0000000..272ca27 --- /dev/null +++ b/archives/page/3/index.html @@ -0,0 +1,531 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 归档 | 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    +
    +
    + 嗯..! 目前共计 28 篇日志。 继续努力。 +
    + + +
    + 2021 +
    + + + + + + + + + + + + + + + + + + +
    +
    + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..21b011f --- /dev/null +++ b/css/main.css @@ -0,0 +1,2585 @@ +:root { + --body-bg-color: #eee; + --content-bg-color: #fff; + --card-bg-color: #f5f5f5; + --text-color: #555; + --blockquote-color: #666; + --link-color: #555; + --link-hover-color: #222; + --brand-color: #fff; + --brand-hover-color: #fff; + --table-row-odd-bg-color: #f9f9f9; + --table-row-hover-bg-color: #f5f5f5; + --menu-item-bg-color: #f5f5f5; + --btn-default-bg: #fff; + --btn-default-color: #555; + --btn-default-border-color: #555; + --btn-default-hover-bg: #222; + --btn-default-hover-color: #fff; + --btn-default-hover-border-color: #222; +} +html { + line-height: 1.15; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ +} +body { + margin: 0; +} +main { + display: block; +} +h1 { + font-size: 2em; + margin: 0.67em 0; +} +hr { + box-sizing: content-box; /* 1 */ + height: 0; /* 1 */ + overflow: visible; /* 2 */ +} +pre { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +a { + background: transparent; +} +abbr[title] { + border-bottom: none; /* 1 */ + text-decoration: underline; /* 2 */ + text-decoration: underline dotted; /* 2 */ +} +b, +strong { + font-weight: bolder; +} +code, +kbd, +samp { + font-family: monospace, monospace; /* 1 */ + font-size: 1em; /* 2 */ +} +small { + font-size: 80%; +} +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} +sub { + bottom: -0.25em; +} +sup { + top: -0.5em; +} +img { + border-style: none; +} +button, +input, +optgroup, +select, +textarea { + font-family: inherit; /* 1 */ + font-size: 100%; /* 1 */ + line-height: 1.15; /* 1 */ + margin: 0; /* 2 */ +} +button, +input { +/* 1 */ + overflow: visible; +} +button, +select { +/* 1 */ + text-transform: none; +} +button, +[type='button'], +[type='reset'], +[type='submit'] { + -webkit-appearance: button; +} +button::-moz-focus-inner, +[type='button']::-moz-focus-inner, +[type='reset']::-moz-focus-inner, +[type='submit']::-moz-focus-inner { + border-style: none; + padding: 0; +} +button:-moz-focusring, +[type='button']:-moz-focusring, +[type='reset']:-moz-focusring, +[type='submit']:-moz-focusring { + outline: 1px dotted ButtonText; +} +fieldset { + padding: 0.35em 0.75em 0.625em; +} +legend { + box-sizing: border-box; /* 1 */ + color: inherit; /* 2 */ + display: table; /* 1 */ + max-width: 100%; /* 1 */ + padding: 0; /* 3 */ + white-space: normal; /* 1 */ +} +progress { + vertical-align: baseline; +} +textarea { + overflow: auto; +} +[type='checkbox'], +[type='radio'] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} +[type='number']::-webkit-inner-spin-button, +[type='number']::-webkit-outer-spin-button { + height: auto; +} +[type='search'] { + outline-offset: -2px; /* 2 */ + -webkit-appearance: textfield; /* 1 */ +} +[type='search']::-webkit-search-decoration { + -webkit-appearance: none; +} +::-webkit-file-upload-button { + font: inherit; /* 2 */ + -webkit-appearance: button; /* 1 */ +} +details { + display: block; +} +summary { + display: list-item; +} +template { + display: none; +} +[hidden] { + display: none; +} +::selection { + background: #262a30; + color: #eee; +} +html, +body { + height: 100%; +} +body { + background: var(--body-bg-color); + color: var(--text-color); + font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif; + font-size: 1em; + line-height: 2; +} +@media (max-width: 991px) { + body { + padding-left: 0 !important; + padding-right: 0 !important; + } +} +h1, +h2, +h3, +h4, +h5, +h6 { + font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif; + font-weight: bold; + line-height: 1.5; + margin: 20px 0 15px; +} +h1 { + font-size: 1.5em; +} +h2 { + font-size: 1.375em; +} +h3 { + font-size: 1.25em; +} +h4 { + font-size: 1.125em; +} +h5 { + font-size: 1em; +} +h6 { + font-size: 0.875em; +} +p { + margin: 0 0 20px 0; +} +a, +span.exturl { + border-bottom: 1px solid #999; + color: var(--link-color); + outline: 0; + text-decoration: none; + overflow-wrap: break-word; + word-wrap: break-word; + cursor: pointer; +} +a:hover, +span.exturl:hover { + border-bottom-color: var(--link-hover-color); + color: var(--link-hover-color); +} +iframe, +img, +video { + display: block; + margin-left: auto; + margin-right: auto; + max-width: 100%; +} +hr { + background-image: repeating-linear-gradient(-45deg, #ddd, #ddd 4px, transparent 4px, transparent 8px); + border: 0; + height: 3px; + margin: 40px 0; +} +blockquote { + border-left: 4px solid #ddd; + color: var(--blockquote-color); + margin: 0; + padding: 0 15px; +} +blockquote cite::before { + content: '-'; + padding: 0 5px; +} +dt { + font-weight: bold; +} +dd { + margin: 0; + padding: 0; +} +kbd { + background-color: #f5f5f5; + background-image: linear-gradient(#eee, #fff, #eee); + border: 1px solid #ccc; + border-radius: 0.2em; + box-shadow: 0.1em 0.1em 0.2em rgba(0,0,0,0.1); + color: #555; + font-family: inherit; + padding: 0.1em 0.3em; + white-space: nowrap; +} +.table-container { + overflow: auto; +} +table { + border-collapse: collapse; + border-spacing: 0; + font-size: 0.875em; + margin: 0 0 20px 0; + width: 100%; +} +tbody tr:nth-of-type(odd) { + background: var(--table-row-odd-bg-color); +} +tbody tr:hover { + background: var(--table-row-hover-bg-color); +} +caption, +th, +td { + font-weight: normal; + padding: 8px; + vertical-align: middle; +} +th, +td { + border: 1px solid #ddd; + border-bottom: 3px solid #ddd; +} +th { + font-weight: 700; + padding-bottom: 10px; +} +td { + border-bottom-width: 1px; +} +.btn { + background: var(--btn-default-bg); + border: 2px solid var(--btn-default-border-color); + border-radius: 2px; + color: var(--btn-default-color); + display: inline-block; + font-size: 0.875em; + line-height: 2; + padding: 0 20px; + text-decoration: none; + transition-property: background-color; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.btn:hover { + background: var(--btn-default-hover-bg); + border-color: var(--btn-default-hover-border-color); + color: var(--btn-default-hover-color); +} +.btn + .btn { + margin: 0 0 8px 8px; +} +.btn .fa-fw { + text-align: left; + width: 1.285714285714286em; +} +.toggle { + line-height: 0; +} +.toggle .toggle-line { + background: #fff; + display: inline-block; + height: 2px; + left: 0; + position: relative; + top: 0; + transition: all 0.4s; + vertical-align: top; + width: 100%; +} +.toggle .toggle-line:not(:first-child) { + margin-top: 3px; +} +.toggle.toggle-arrow .toggle-line-first { + left: 50%; + top: 2px; + transform: rotate(45deg); + width: 50%; +} +.toggle.toggle-arrow .toggle-line-middle { + left: 2px; + width: 90%; +} +.toggle.toggle-arrow .toggle-line-last { + left: 50%; + top: -2px; + transform: rotate(-45deg); + width: 50%; +} +.toggle.toggle-close .toggle-line-first { + transform: rotate(-45deg); + top: 5px; +} +.toggle.toggle-close .toggle-line-middle { + opacity: 0; +} +.toggle.toggle-close .toggle-line-last { + transform: rotate(45deg); + top: -5px; +} +.highlight, +pre { + background: #f7f7f7; + color: #4d4d4c; + line-height: 1.6; + margin: 0 auto 20px; +} +pre, +code { + font-family: consolas, Menlo, monospace, "PingFang SC", "Microsoft YaHei"; +} +code { + background: #eee; + border-radius: 3px; + color: #555; + padding: 2px 4px; + overflow-wrap: break-word; + word-wrap: break-word; +} +.highlight *::selection { + background: #d6d6d6; +} +.highlight pre { + border: 0; + margin: 0; + padding: 10px 0; +} +.highlight table { + border: 0; + margin: 0; + width: auto; +} +.highlight td { + border: 0; + padding: 0; +} +.highlight figcaption { + background: #eff2f3; + color: #4d4d4c; + display: flex; + font-size: 0.875em; + justify-content: space-between; + line-height: 1.2; + padding: 0.5em; +} +.highlight figcaption a { + color: #4d4d4c; +} +.highlight figcaption a:hover { + border-bottom-color: #4d4d4c; +} +.highlight .gutter { + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + user-select: none; +} +.highlight .gutter pre { + background: #eff2f3; + color: #869194; + padding-left: 10px; + padding-right: 10px; + text-align: right; +} +.highlight .code pre { + background: #f7f7f7; + padding-left: 10px; + width: 100%; +} +.gist table { + width: auto; +} +.gist table td { + border: 0; +} +pre { + overflow: auto; + padding: 10px; +} +pre code { + background: none; + color: #4d4d4c; + font-size: 0.875em; + padding: 0; + text-shadow: none; +} +pre .deletion { + background: #fdd; +} +pre .addition { + background: #dfd; +} +pre .meta { + color: #eab700; + -moz-user-select: none; + -ms-user-select: none; + -webkit-user-select: none; + user-select: none; +} +pre .comment { + color: #8e908c; +} +pre .variable, +pre .attribute, +pre .tag, +pre .name, +pre .regexp, +pre .ruby .constant, +pre .xml .tag .title, +pre .xml .pi, +pre .xml .doctype, +pre .html .doctype, +pre .css .id, +pre .css .class, +pre .css .pseudo { + color: #c82829; +} +pre .number, +pre .preprocessor, +pre .built_in, +pre .builtin-name, +pre .literal, +pre .params, +pre .constant, +pre .command { + color: #f5871f; +} +pre .ruby .class .title, +pre .css .rules .attribute, +pre .string, +pre .symbol, +pre .value, +pre .inheritance, +pre .header, +pre .ruby .symbol, +pre .xml .cdata, +pre .special, +pre .formula { + color: #718c00; +} +pre .title, +pre .css .hexcolor { + color: #3e999f; +} +pre .function, +pre .python .decorator, +pre .python .title, +pre .ruby .function .title, +pre .ruby .title .keyword, +pre .perl .sub, +pre .javascript .title, +pre .coffeescript .title { + color: #4271ae; +} +pre .keyword, +pre .javascript .function { + color: #8959a8; +} +.blockquote-center { + border-left: none; + margin: 40px 0; + padding: 0; + position: relative; + text-align: center; +} +.blockquote-center .fa { + display: block; + opacity: 0.6; + position: absolute; + width: 100%; +} +.blockquote-center .fa-quote-left { + border-top: 1px solid #ccc; + text-align: left; + top: -20px; +} +.blockquote-center .fa-quote-right { + border-bottom: 1px solid #ccc; + text-align: right; + bottom: -20px; +} +.blockquote-center p, +.blockquote-center div { + text-align: center; +} +.post-body .group-picture img { + margin: 0 auto; + padding: 0 3px; +} +.group-picture-row { + margin-bottom: 6px; + overflow: hidden; +} +.group-picture-column { + float: left; + margin-bottom: 10px; +} +.post-body .label { + color: #555; + display: inline; + padding: 0 2px; +} +.post-body .label.default { + background: #f0f0f0; +} +.post-body .label.primary { + background: #efe6f7; +} +.post-body .label.info { + background: #e5f2f8; +} +.post-body .label.success { + background: #e7f4e9; +} +.post-body .label.warning { + background: #fcf6e1; +} +.post-body .label.danger { + background: #fae8eb; +} +.post-body .tabs { + margin-bottom: 20px; +} +.post-body .tabs, +.tabs-comment { + display: block; + padding-top: 10px; + position: relative; +} +.post-body .tabs ul.nav-tabs, +.tabs-comment ul.nav-tabs { + display: flex; + flex-wrap: wrap; + margin: 0; + margin-bottom: -1px; + padding: 0; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs, + .tabs-comment ul.nav-tabs { + display: block; + margin-bottom: 5px; + } +} +.post-body .tabs ul.nav-tabs li.tab, +.tabs-comment ul.nav-tabs li.tab { + border-bottom: 1px solid #ddd; + border-left: 1px solid transparent; + border-right: 1px solid transparent; + border-top: 3px solid transparent; + flex-grow: 1; + list-style-type: none; + border-radius: 0 0 0 0; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab, + .tabs-comment ul.nav-tabs li.tab { + border-bottom: 1px solid transparent; + border-left: 3px solid transparent; + border-right: 1px solid transparent; + border-top: 1px solid transparent; + } +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab, + .tabs-comment ul.nav-tabs li.tab { + border-radius: 0; + } +} +.post-body .tabs ul.nav-tabs li.tab a, +.tabs-comment ul.nav-tabs li.tab a { + border-bottom: initial; + display: block; + line-height: 1.8; + outline: 0; + padding: 0.25em 0.75em; + text-align: center; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-out; +} +.post-body .tabs ul.nav-tabs li.tab a i, +.tabs-comment ul.nav-tabs li.tab a i { + width: 1.285714285714286em; +} +.post-body .tabs ul.nav-tabs li.tab.active, +.tabs-comment ul.nav-tabs li.tab.active { + border-bottom: 1px solid transparent; + border-left: 1px solid #ddd; + border-right: 1px solid #ddd; + border-top: 3px solid #fc6423; +} +@media (max-width: 413px) { + .post-body .tabs ul.nav-tabs li.tab.active, + .tabs-comment ul.nav-tabs li.tab.active { + border-bottom: 1px solid #ddd; + border-left: 3px solid #fc6423; + border-right: 1px solid #ddd; + border-top: 1px solid #ddd; + } +} +.post-body .tabs ul.nav-tabs li.tab.active a, +.tabs-comment ul.nav-tabs li.tab.active a { + color: var(--link-color); + cursor: default; +} +.post-body .tabs .tab-content .tab-pane, +.tabs-comment .tab-content .tab-pane { + border: 1px solid #ddd; + border-top: 0; + padding: 20px 20px 0 20px; + border-radius: 0; +} +.post-body .tabs .tab-content .tab-pane:not(.active), +.tabs-comment .tab-content .tab-pane:not(.active) { + display: none; +} +.post-body .tabs .tab-content .tab-pane.active, +.tabs-comment .tab-content .tab-pane.active { + display: block; +} +.post-body .tabs .tab-content .tab-pane.active:nth-of-type(1), +.tabs-comment .tab-content .tab-pane.active:nth-of-type(1) { + border-radius: 0 0 0 0; +} +@media (max-width: 413px) { + .post-body .tabs .tab-content .tab-pane.active:nth-of-type(1), + .tabs-comment .tab-content .tab-pane.active:nth-of-type(1) { + border-radius: 0; + } +} +.post-body .note { + border-radius: 3px; + margin-bottom: 20px; + padding: 1em; + position: relative; + border: 1px solid #eee; + border-left-width: 5px; +} +.post-body .note h2, +.post-body .note h3, +.post-body .note h4, +.post-body .note h5, +.post-body .note h6 { + margin-top: 0; + border-bottom: initial; + margin-bottom: 0; + padding-top: 0; +} +.post-body .note p:first-child, +.post-body .note ul:first-child, +.post-body .note ol:first-child, +.post-body .note table:first-child, +.post-body .note pre:first-child, +.post-body .note blockquote:first-child, +.post-body .note img:first-child { + margin-top: 0; +} +.post-body .note p:last-child, +.post-body .note ul:last-child, +.post-body .note ol:last-child, +.post-body .note table:last-child, +.post-body .note pre:last-child, +.post-body .note blockquote:last-child, +.post-body .note img:last-child { + margin-bottom: 0; +} +.post-body .note.default { + border-left-color: #777; +} +.post-body .note.default h2, +.post-body .note.default h3, +.post-body .note.default h4, +.post-body .note.default h5, +.post-body .note.default h6 { + color: #777; +} +.post-body .note.primary { + border-left-color: #6f42c1; +} +.post-body .note.primary h2, +.post-body .note.primary h3, +.post-body .note.primary h4, +.post-body .note.primary h5, +.post-body .note.primary h6 { + color: #6f42c1; +} +.post-body .note.info { + border-left-color: #428bca; +} +.post-body .note.info h2, +.post-body .note.info h3, +.post-body .note.info h4, +.post-body .note.info h5, +.post-body .note.info h6 { + color: #428bca; +} +.post-body .note.success { + border-left-color: #5cb85c; +} +.post-body .note.success h2, +.post-body .note.success h3, +.post-body .note.success h4, +.post-body .note.success h5, +.post-body .note.success h6 { + color: #5cb85c; +} +.post-body .note.warning { + border-left-color: #f0ad4e; +} +.post-body .note.warning h2, +.post-body .note.warning h3, +.post-body .note.warning h4, +.post-body .note.warning h5, +.post-body .note.warning h6 { + color: #f0ad4e; +} +.post-body .note.danger { + border-left-color: #d9534f; +} +.post-body .note.danger h2, +.post-body .note.danger h3, +.post-body .note.danger h4, +.post-body .note.danger h5, +.post-body .note.danger h6 { + color: #d9534f; +} +.pagination .prev, +.pagination .next, +.pagination .page-number, +.pagination .space { + display: inline-block; + margin: 0 10px; + padding: 0 11px; + position: relative; + top: -1px; +} +@media (max-width: 767px) { + .pagination .prev, + .pagination .next, + .pagination .page-number, + .pagination .space { + margin: 0 5px; + } +} +.pagination { + border-top: 1px solid #eee; + margin: 120px 0 0; + text-align: center; +} +.pagination .prev, +.pagination .next, +.pagination .page-number { + border-bottom: 0; + border-top: 1px solid #eee; + transition-property: border-color; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.pagination .prev:hover, +.pagination .next:hover, +.pagination .page-number:hover { + border-top-color: #222; +} +.pagination .space { + margin: 0; + padding: 0; +} +.pagination .prev { + margin-left: 0; +} +.pagination .next { + margin-right: 0; +} +.pagination .page-number.current { + background: #ccc; + border-top-color: #ccc; + color: #fff; +} +@media (max-width: 767px) { + .pagination { + border-top: none; + } + .pagination .prev, + .pagination .next, + .pagination .page-number { + border-bottom: 1px solid #eee; + border-top: 0; + margin-bottom: 10px; + padding: 0 10px; + } + .pagination .prev:hover, + .pagination .next:hover, + .pagination .page-number:hover { + border-bottom-color: #222; + } +} +.comments { + margin-top: 60px; + overflow: hidden; +} +.comment-button-group { + display: flex; + flex-wrap: wrap-reverse; + justify-content: center; + margin: 1em 0; +} +.comment-button-group .comment-button { + margin: 0.1em 0.2em; +} +.comment-button-group .comment-button.active { + background: var(--btn-default-hover-bg); + border-color: var(--btn-default-hover-border-color); + color: var(--btn-default-hover-color); +} +.comment-position { + display: none; +} +.comment-position.active { + display: block; +} +.tabs-comment { + background: var(--content-bg-color); + margin-top: 4em; + padding-top: 0; +} +.tabs-comment .comments { + border: 0; + box-shadow: none; + margin-top: 0; + padding-top: 0; +} +.container { + min-height: 100%; + position: relative; +} +.main-inner { + margin: 0 auto; + width: calc(100% - 20px); +} +@media (min-width: 1200px) { + .main-inner { + width: 1160px; + } +} +@media (min-width: 1600px) { + .main-inner { + width: 73%; + } +} +@media (max-width: 767px) { + .content-wrap { + padding: 0 20px; + } +} +.header { + background: transparent; +} +.header-inner { + margin: 0 auto; + width: calc(100% - 20px); +} +@media (min-width: 1200px) { + .header-inner { + width: 1160px; + } +} +@media (min-width: 1600px) { + .header-inner { + width: 73%; + } +} +.site-brand-container { + display: flex; + flex-shrink: 0; + padding: 0 10px; +} +.headband { + background: #222; + height: 3px; +} +.site-meta { + flex-grow: 1; + text-align: center; +} +@media (max-width: 767px) { + .site-meta { + text-align: center; + } +} +.brand { + border-bottom: none; + color: var(--brand-color); + display: inline-block; + line-height: 1.375em; + padding: 0 40px; + position: relative; +} +.brand:hover { + color: var(--brand-hover-color); +} +.site-title { + font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif; + font-size: 1.375em; + font-weight: normal; + margin: 0; +} +.site-subtitle { + color: #ddd; + font-size: 0.8125em; + margin: 10px 0; +} +.use-motion .brand { + opacity: 0; +} +.use-motion .site-title, +.use-motion .site-subtitle, +.use-motion .custom-logo-image { + opacity: 0; + position: relative; + top: -10px; +} +.site-nav-toggle, +.site-nav-right { + display: none; +} +@media (max-width: 767px) { + .site-nav-toggle, + .site-nav-right { + display: flex; + flex-direction: column; + justify-content: center; + } +} +.site-nav-toggle .toggle, +.site-nav-right .toggle { + color: var(--text-color); + padding: 10px; + width: 22px; +} +.site-nav-toggle .toggle .toggle-line, +.site-nav-right .toggle .toggle-line { + background: var(--text-color); + border-radius: 1px; +} +.site-nav { + display: block; +} +@media (max-width: 767px) { + .site-nav { + clear: both; + display: none; + } +} +.site-nav.site-nav-on { + display: block; +} +.menu { + margin-top: 20px; + padding-left: 0; + text-align: center; +} +.menu-item { + display: inline-block; + list-style: none; + margin: 0 10px; +} +@media (max-width: 767px) { + .menu-item { + display: block; + margin-top: 10px; + } + .menu-item.menu-item-search { + display: none; + } +} +.menu-item a, +.menu-item span.exturl { + border-bottom: 0; + display: block; + font-size: 0.8125em; + transition-property: border-color; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +@media (hover: none) { + .menu-item a:hover, + .menu-item span.exturl:hover { + border-bottom-color: transparent !important; + } +} +.menu-item .fa, +.menu-item .fab, +.menu-item .far, +.menu-item .fas { + margin-right: 8px; +} +.menu-item .badge { + display: inline-block; + font-weight: bold; + line-height: 1; + margin-left: 0.35em; + margin-top: 0.35em; + text-align: center; + white-space: nowrap; +} +@media (max-width: 767px) { + .menu-item .badge { + float: right; + margin-left: 0; + } +} +.menu-item-active a, +.menu .menu-item a:hover, +.menu .menu-item span.exturl:hover { + background: var(--menu-item-bg-color); +} +.use-motion .menu-item { + opacity: 0; +} +.sidebar { + background: #222; + bottom: 0; + box-shadow: inset 0 2px 6px #000; + position: fixed; + top: 0; +} +@media (max-width: 991px) { + .sidebar { + display: none; + } +} +.sidebar-inner { + color: #999; + padding: 18px 10px; + text-align: center; +} +.cc-license { + margin-top: 10px; + text-align: center; +} +.cc-license .cc-opacity { + border-bottom: none; + opacity: 0.7; +} +.cc-license .cc-opacity:hover { + opacity: 0.9; +} +.cc-license img { + display: inline-block; +} +.site-author-image { + border: 1px solid #eee; + display: block; + margin: 0 auto; + max-width: 120px; + padding: 2px; +} +.site-author-name { + color: var(--text-color); + font-weight: 600; + margin: 0; + text-align: center; +} +.site-description { + color: #999; + font-size: 0.8125em; + margin-top: 0; + text-align: center; +} +.links-of-author { + margin-top: 15px; +} +.links-of-author a, +.links-of-author span.exturl { + border-bottom-color: #555; + display: inline-block; + font-size: 0.8125em; + margin-bottom: 10px; + margin-right: 10px; + vertical-align: middle; +} +.links-of-author a::before, +.links-of-author span.exturl::before { + background: #ff6e78; + border-radius: 50%; + content: ' '; + display: inline-block; + height: 4px; + margin-right: 3px; + vertical-align: middle; + width: 4px; +} +.sidebar-button { + margin-top: 15px; +} +.sidebar-button a { + border: 1px solid #fc6423; + border-radius: 4px; + color: #fc6423; + display: inline-block; + padding: 0 15px; +} +.sidebar-button a .fa, +.sidebar-button a .fab, +.sidebar-button a .far, +.sidebar-button a .fas { + margin-right: 5px; +} +.sidebar-button a:hover { + background: #fc6423; + border: 1px solid #fc6423; + color: #fff; +} +.sidebar-button a:hover .fa, +.sidebar-button a:hover .fab, +.sidebar-button a:hover .far, +.sidebar-button a:hover .fas { + color: #fff; +} +.links-of-blogroll { + font-size: 0.8125em; + margin-top: 10px; +} +.links-of-blogroll-title { + font-size: 0.875em; + font-weight: 600; + margin-top: 0; +} +.links-of-blogroll-list { + list-style: none; + margin: 0; + padding: 0; +} +#sidebar-dimmer { + display: none; +} +@media (max-width: 767px) { + #sidebar-dimmer { + background: #000; + display: block; + height: 100%; + left: 100%; + opacity: 0; + position: fixed; + top: 0; + width: 100%; + z-index: 1100; + } + .sidebar-active + #sidebar-dimmer { + opacity: 0.7; + transform: translateX(-100%); + transition: opacity 0.5s; + } +} +.sidebar-nav { + margin: 0; + padding-bottom: 20px; + padding-left: 0; +} +.sidebar-nav li { + border-bottom: 1px solid transparent; + color: var(--text-color); + cursor: pointer; + display: inline-block; + font-size: 0.875em; +} +.sidebar-nav li.sidebar-nav-overview { + margin-left: 10px; +} +.sidebar-nav li:hover { + color: #fc6423; +} +.sidebar-nav .sidebar-nav-active { + border-bottom-color: #fc6423; + color: #fc6423; +} +.sidebar-nav .sidebar-nav-active:hover { + color: #fc6423; +} +.sidebar-panel { + display: none; + overflow-x: hidden; + overflow-y: auto; +} +.sidebar-panel-active { + display: block; +} +.sidebar-toggle { + background: #222; + bottom: 45px; + cursor: pointer; + height: 14px; + left: 30px; + padding: 5px; + position: fixed; + width: 14px; + z-index: 1300; +} +@media (max-width: 991px) { + .sidebar-toggle { + left: 20px; + opacity: 0.8; + display: none; + } +} +.sidebar-toggle:hover .toggle-line { + background: #fc6423; +} +.post-toc { + font-size: 0.875em; +} +.post-toc ol { + list-style: none; + margin: 0; + padding: 0 2px 5px 10px; + text-align: left; +} +.post-toc ol > ol { + padding-left: 0; +} +.post-toc ol a { + transition-property: all; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.post-toc .nav-item { + line-height: 1.8; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} +.post-toc .nav .nav-child { + display: none; +} +.post-toc .nav .active > .nav-child { + display: block; +} +.post-toc .nav .active-current > .nav-child { + display: block; +} +.post-toc .nav .active-current > .nav-child > .nav-item { + display: block; +} +.post-toc .nav .active > a { + border-bottom-color: #fc6423; + color: #fc6423; +} +.post-toc .nav .active-current > a { + color: #fc6423; +} +.post-toc .nav .active-current > a:hover { + color: #fc6423; +} +.site-state { + display: flex; + justify-content: center; + line-height: 1.4; + margin-top: 10px; + overflow: hidden; + text-align: center; + white-space: nowrap; +} +.site-state-item { + padding: 0 15px; +} +.site-state-item:not(:first-child) { + border-left: 1px solid #eee; +} +.site-state-item a { + border-bottom: none; +} +.site-state-item-count { + display: block; + font-size: 1em; + font-weight: 600; + text-align: center; +} +.site-state-item-name { + color: #999; + font-size: 0.8125em; +} +.footer { + color: #999; + font-size: 0.875em; + padding: 20px 0; +} +.footer.footer-fixed { + bottom: 0; + left: 0; + position: absolute; + right: 0; +} +.footer-inner { + box-sizing: border-box; + margin: 0 auto; + text-align: center; + width: calc(100% - 20px); +} +@media (min-width: 1200px) { + .footer-inner { + width: 1160px; + } +} +@media (min-width: 1600px) { + .footer-inner { + width: 73%; + } +} +.languages { + display: inline-block; + font-size: 1.125em; + position: relative; +} +.languages .lang-select-label span { + margin: 0 0.5em; +} +.languages .lang-select { + height: 100%; + left: 0; + opacity: 0; + position: absolute; + top: 0; + width: 100%; +} +.with-love { + color: #ff0000; + display: inline-block; + margin: 0 5px; +} +.powered-by, +.theme-info { + display: inline-block; +} +@-moz-keyframes iconAnimate { + 0%, 100% { + transform: scale(1); + } + 10%, 30% { + transform: scale(0.9); + } + 20%, 40%, 60%, 80% { + transform: scale(1.1); + } + 50%, 70% { + transform: scale(1.1); + } +} +@-webkit-keyframes iconAnimate { + 0%, 100% { + transform: scale(1); + } + 10%, 30% { + transform: scale(0.9); + } + 20%, 40%, 60%, 80% { + transform: scale(1.1); + } + 50%, 70% { + transform: scale(1.1); + } +} +@-o-keyframes iconAnimate { + 0%, 100% { + transform: scale(1); + } + 10%, 30% { + transform: scale(0.9); + } + 20%, 40%, 60%, 80% { + transform: scale(1.1); + } + 50%, 70% { + transform: scale(1.1); + } +} +@keyframes iconAnimate { + 0%, 100% { + transform: scale(1); + } + 10%, 30% { + transform: scale(0.9); + } + 20%, 40%, 60%, 80% { + transform: scale(1.1); + } + 50%, 70% { + transform: scale(1.1); + } +} +.back-to-top { + font-size: 12px; + text-align: center; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.back-to-top { + background: #222; + bottom: -100px; + box-sizing: border-box; + color: #fff; + cursor: pointer; + left: 30px; + opacity: 0.6; + padding: 0 6px; + position: fixed; + transition-property: bottom; + z-index: 1300; + width: 24px; +} +.back-to-top span { + display: none; +} +.back-to-top:hover { + color: #fc6423; +} +.back-to-top.back-to-top-on { + bottom: 30px; +} +@media (max-width: 991px) { + .back-to-top { + left: 20px; + opacity: 0.8; + } +} +.reading-progress-bar { + background: #000000; + display: block; + height: 3px; + left: 0; + position: fixed; + width: 0; + z-index: 1500; + top: 0; +} +.post-body { + font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif; + overflow-wrap: break-word; + word-wrap: break-word; +} +@media (min-width: 1200px) { + .post-body { + font-size: 1.125em; + } +} +.post-body .exturl .fa { + font-size: 0.875em; + margin-left: 4px; +} +.post-body .image-caption, +.post-body .figure .caption { + color: #999; + font-size: 0.875em; + font-weight: bold; + line-height: 1; + margin: -20px auto 15px; + text-align: center; +} +.post-sticky-flag { + display: inline-block; + transform: rotate(30deg); +} +.post-button { + margin-top: 40px; + text-align: center; +} +.use-motion .post-block, +.use-motion .pagination, +.use-motion .comments { + opacity: 0; +} +.use-motion .post-header { + opacity: 0; +} +.use-motion .post-body { + opacity: 0; +} +.use-motion .collection-header { + opacity: 0; +} +.posts-collapse { + margin-left: 35px; + position: relative; +} +@media (max-width: 767px) { + .posts-collapse { + margin-left: 0px; + margin-right: 0px; + } +} +.posts-collapse .collection-title { + font-size: 1.125em; + position: relative; +} +.posts-collapse .collection-title::before { + background: #999; + border: 1px solid #fff; + border-radius: 50%; + content: ' '; + height: 10px; + left: 0; + margin-left: -6px; + margin-top: -4px; + position: absolute; + top: 50%; + width: 10px; +} +.posts-collapse .collection-year { + font-size: 1.5em; + font-weight: bold; + margin: 60px 0; + position: relative; +} +.posts-collapse .collection-year::before { + background: #bbb; + border-radius: 50%; + content: ' '; + height: 8px; + left: 0; + margin-left: -4px; + margin-top: -4px; + position: absolute; + top: 50%; + width: 8px; +} +.posts-collapse .collection-header { + display: block; + margin: 0 0 0 20px; +} +.posts-collapse .collection-header small { + color: #bbb; + margin-left: 5px; +} +.posts-collapse .post-header { + border-bottom: 1px dashed #ccc; + margin: 30px 0; + padding-left: 15px; + position: relative; + transition-property: border; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.posts-collapse .post-header::before { + background: #bbb; + border: 1px solid #fff; + border-radius: 50%; + content: ' '; + height: 6px; + left: 0; + margin-left: -4px; + position: absolute; + top: 0.75em; + transition-property: background; + width: 6px; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.posts-collapse .post-header:hover { + border-bottom-color: #666; +} +.posts-collapse .post-header:hover::before { + background: #222; +} +.posts-collapse .post-meta { + display: inline; + font-size: 0.75em; + margin-right: 10px; +} +.posts-collapse .post-title { + display: inline; +} +.posts-collapse .post-title a, +.posts-collapse .post-title span.exturl { + border-bottom: none; + color: var(--link-color); +} +.posts-collapse .post-title .fa-external-link-alt { + font-size: 0.875em; + margin-left: 5px; +} +.posts-collapse::before { + background: #f5f5f5; + content: ' '; + height: 100%; + left: 0; + margin-left: -2px; + position: absolute; + top: 1.25em; + width: 4px; +} +.post-eof { + background: #ccc; + height: 1px; + margin: 80px auto 60px; + text-align: center; + width: 8%; +} +.post-block:last-of-type .post-eof { + display: none; +} +.content { + padding-top: 40px; +} +@media (min-width: 992px) { + .post-body { + text-align: justify; + } +} +@media (max-width: 991px) { + .post-body { + text-align: justify; + } +} +.post-body h1, +.post-body h2, +.post-body h3, +.post-body h4, +.post-body h5, +.post-body h6 { + padding-top: 10px; +} +.post-body h1 .header-anchor, +.post-body h2 .header-anchor, +.post-body h3 .header-anchor, +.post-body h4 .header-anchor, +.post-body h5 .header-anchor, +.post-body h6 .header-anchor { + border-bottom-style: none; + color: #ccc; + float: right; + margin-left: 10px; + visibility: hidden; +} +.post-body h1 .header-anchor:hover, +.post-body h2 .header-anchor:hover, +.post-body h3 .header-anchor:hover, +.post-body h4 .header-anchor:hover, +.post-body h5 .header-anchor:hover, +.post-body h6 .header-anchor:hover { + color: inherit; +} +.post-body h1:hover .header-anchor, +.post-body h2:hover .header-anchor, +.post-body h3:hover .header-anchor, +.post-body h4:hover .header-anchor, +.post-body h5:hover .header-anchor, +.post-body h6:hover .header-anchor { + visibility: visible; +} +.post-body iframe, +.post-body img, +.post-body video { + margin-bottom: 20px; +} +.post-body .video-container { + height: 0; + margin-bottom: 20px; + overflow: hidden; + padding-top: 75%; + position: relative; + width: 100%; +} +.post-body .video-container iframe, +.post-body .video-container object, +.post-body .video-container embed { + height: 100%; + left: 0; + margin: 0; + position: absolute; + top: 0; + width: 100%; +} +.post-gallery { + align-items: center; + display: grid; + grid-gap: 10px; + grid-template-columns: 1fr 1fr 1fr; + margin-bottom: 20px; +} +@media (max-width: 767px) { + .post-gallery { + grid-template-columns: 1fr 1fr; + } +} +.post-gallery a { + border: 0; +} +.post-gallery img { + margin: 0; +} +.posts-expand .post-header { + font-size: 1.125em; +} +.posts-expand .post-title { + font-size: 1.5em; + font-weight: normal; + margin: initial; + text-align: center; + overflow-wrap: break-word; + word-wrap: break-word; +} +.posts-expand .post-title-link { + border-bottom: none; + color: var(--link-color); + display: inline-block; + position: relative; + vertical-align: top; +} +.posts-expand .post-title-link::before { + background: var(--link-color); + bottom: 0; + content: ''; + height: 2px; + left: 0; + position: absolute; + transform: scaleX(0); + visibility: hidden; + width: 100%; + transition-delay: 0s; + transition-duration: 0.2s; + transition-timing-function: ease-in-out; +} +.posts-expand .post-title-link:hover::before { + transform: scaleX(1); + visibility: visible; +} +.posts-expand .post-title-link .fa-external-link-alt { + font-size: 0.875em; + margin-left: 5px; +} +.posts-expand .post-meta { + color: #999; + font-family: 'Lato', "PingFang SC", "Microsoft YaHei", sans-serif; + font-size: 0.75em; + margin: 3px 0 60px 0; + text-align: center; +} +.posts-expand .post-meta .post-description { + font-size: 0.875em; + margin-top: 2px; +} +.posts-expand .post-meta time { + border-bottom: 1px dashed #999; + cursor: pointer; +} +.post-meta .post-meta-item + .post-meta-item::before { + content: '|'; + margin: 0 0.5em; +} +.post-meta-divider { + margin: 0 0.5em; +} +.post-meta-item-icon { + margin-right: 3px; +} +@media (max-width: 991px) { + .post-meta-item-icon { + display: inline-block; + } +} +@media (max-width: 991px) { + .post-meta-item-text { + display: none; + } +} +.post-nav { + border-top: 1px solid #eee; + display: flex; + justify-content: space-between; + margin-top: 15px; + padding: 10px 5px 0; +} +.post-nav-item { + flex: 1; +} +.post-nav-item a { + border-bottom: none; + display: block; + font-size: 0.875em; + line-height: 1.6; + position: relative; +} +.post-nav-item a:active { + top: 2px; +} +.post-nav-item .fa { + font-size: 0.75em; +} +.post-nav-item:first-child { + margin-right: 15px; +} +.post-nav-item:first-child .fa { + margin-right: 5px; +} +.post-nav-item:last-child { + margin-left: 15px; + text-align: right; +} +.post-nav-item:last-child .fa { + margin-left: 5px; +} +.rtl.post-body p, +.rtl.post-body a, +.rtl.post-body h1, +.rtl.post-body h2, +.rtl.post-body h3, +.rtl.post-body h4, +.rtl.post-body h5, +.rtl.post-body h6, +.rtl.post-body li, +.rtl.post-body ul, +.rtl.post-body ol { + direction: rtl; + font-family: UKIJ Ekran; +} +.rtl.post-title { + font-family: UKIJ Ekran; +} +.post-tags { + margin-top: 40px; + text-align: center; +} +.post-tags a { + display: inline-block; + font-size: 0.8125em; +} +.post-tags a:not(:last-child) { + margin-right: 10px; +} +.post-widgets { + border-top: 1px solid #eee; + margin-top: 15px; + text-align: center; +} +.wp_rating { + height: 20px; + line-height: 20px; + margin-top: 10px; + padding-top: 6px; + text-align: center; +} +.social-like { + display: flex; + font-size: 0.875em; + justify-content: center; + text-align: center; +} +.reward-container { + margin: 20px auto; + padding: 10px 0; + text-align: center; + width: 90%; +} +.reward-container button { + background: transparent; + border: 1px solid #fc6423; + border-radius: 0; + color: #fc6423; + cursor: pointer; + line-height: 2; + outline: 0; + padding: 0 15px; + vertical-align: text-top; +} +.reward-container button:hover { + background: #fc6423; + border: 1px solid transparent; + color: #fa9366; +} +#qr { + padding-top: 20px; +} +#qr a { + border: 0; +} +#qr img { + display: inline-block; + margin: 0.8em 2em 0 2em; + max-width: 100%; + width: 180px; +} +#qr p { + text-align: center; +} +.category-all-page .category-all-title { + text-align: center; +} +.category-all-page .category-all { + margin-top: 20px; +} +.category-all-page .category-list { + list-style: none; + margin: 0; + padding: 0; +} +.category-all-page .category-list-item { + margin: 5px 10px; +} +.category-all-page .category-list-count { + color: #bbb; +} +.category-all-page .category-list-count::before { + content: ' ('; + display: inline; +} +.category-all-page .category-list-count::after { + content: ') '; + display: inline; +} +.category-all-page .category-list-child { + padding-left: 10px; +} +.event-list { + padding: 0; +} +.event-list hr { + background: #222; + margin: 20px 0 45px 0; +} +.event-list hr::after { + background: #222; + color: #fff; + content: 'NOW'; + display: inline-block; + font-weight: bold; + padding: 0 5px; + text-align: right; +} +.event-list .event { + background: #222; + margin: 20px 0; + min-height: 40px; + padding: 15px 0 15px 10px; +} +.event-list .event .event-summary { + color: #fff; + margin: 0; + padding-bottom: 3px; +} +.event-list .event .event-summary::before { + animation: dot-flash 1s alternate infinite ease-in-out; + color: #fff; + content: '\f111'; + display: inline-block; + font-size: 10px; + margin-right: 25px; + vertical-align: middle; + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} +.event-list .event .event-relative-time { + color: #bbb; + display: inline-block; + font-size: 12px; + font-weight: normal; + padding-left: 12px; +} +.event-list .event .event-details { + color: #fff; + display: block; + line-height: 18px; + margin-left: 56px; + padding-bottom: 6px; + padding-top: 3px; + text-indent: -24px; +} +.event-list .event .event-details::before { + color: #fff; + display: inline-block; + margin-right: 9px; + text-align: center; + text-indent: 0; + width: 14px; + font-family: 'Font Awesome 5 Free'; + font-weight: 900; +} +.event-list .event .event-details.event-location::before { + content: '\f041'; +} +.event-list .event .event-details.event-duration::before { + content: '\f017'; +} +.event-list .event-past { + background: #f5f5f5; +} +.event-list .event-past .event-summary, +.event-list .event-past .event-details { + color: #bbb; + opacity: 0.9; +} +.event-list .event-past .event-summary::before, +.event-list .event-past .event-details::before { + animation: none; + color: #bbb; +} +@-moz-keyframes dot-flash { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +@-webkit-keyframes dot-flash { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +@-o-keyframes dot-flash { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +@keyframes dot-flash { + from { + opacity: 1; + transform: scale(1); + } + to { + opacity: 0; + transform: scale(0.8); + } +} +ul.breadcrumb { + font-size: 0.75em; + list-style: none; + margin: 1em 0; + padding: 0 2em; + text-align: center; +} +ul.breadcrumb li { + display: inline; +} +ul.breadcrumb li + li::before { + content: '/\00a0'; + font-weight: normal; + padding: 0.5em; +} +ul.breadcrumb li + li:last-child { + font-weight: bold; +} +.tag-cloud { + text-align: center; +} +.tag-cloud a { + display: inline-block; + margin: 10px; +} +.tag-cloud a:hover { + color: var(--link-hover-color) !important; +} +mjx-container[jax="CHTML"][display="true"], +.has-jax { + overflow: auto hidden; +} +mjx-container + br { + display: none; +} +.header { + margin: 0 auto; + position: relative; + width: calc(100% - 20px); +} +@media (min-width: 1200px) { + .header { + width: 1160px; + } +} +@media (min-width: 1600px) { + .header { + width: 73%; + } +} +@media (max-width: 991px) { + .header { + width: auto; + } +} +.header-inner { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); + overflow: hidden; + padding: 0; + position: absolute; + top: 0; + width: 240px; +} +@media (min-width: 1200px) { + .header-inner { + width: 240px; + } +} +@media (max-width: 991px) { + .header-inner { + border-radius: initial; + position: relative; + width: auto; + } +} +.main-inner { + align-items: flex-start; + display: flex; + justify-content: space-between; + flex-direction: row-reverse; +} +@media (max-width: 991px) { + .main-inner { + width: auto; + } +} +.content-wrap { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); + box-sizing: border-box; + padding: 40px; + width: calc(100% - 252px); +} +@media (max-width: 991px) { + .content-wrap { + border-radius: initial; + padding: 20px; + width: 100%; + } +} +.footer-inner { + padding-left: 260px; +} +.back-to-top { + left: auto; + right: 30px; +} +@media (max-width: 991px) { + .back-to-top { + right: 20px; + } +} +@media (max-width: 991px) { + .footer-inner { + padding-left: 0; + padding-right: 0; + width: auto; + } +} +.site-brand-container { + background: #222; +} +@media (max-width: 991px) { + .site-brand-container { + box-shadow: 0 0 16px rgba(0,0,0,0.5); + } +} +.site-meta { + padding: 20px 0; +} +.brand { + padding: 0; +} +.site-subtitle { + margin: 10px 10px 0; +} +.custom-logo-image { + margin-top: 20px; +} +@media (max-width: 991px) { + .custom-logo-image { + display: none; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .site-nav-toggle, + .site-nav-right { + display: flex; + flex-direction: column; + justify-content: center; + } +} +.site-nav-toggle .toggle, +.site-nav-right .toggle { + color: #fff; +} +.site-nav-toggle .toggle .toggle-line, +.site-nav-right .toggle .toggle-line { + background: #fff; +} +@media (min-width: 768px) and (max-width: 991px) { + .site-nav { + display: none; + } +} +.menu .menu-item { + display: block; + margin: 0; +} +.menu .menu-item a, +.menu .menu-item span.exturl { + padding: 5px 20px; + position: relative; + text-align: left; + transition-property: background-color; +} +@media (max-width: 991px) { + .menu .menu-item.menu-item-search { + display: none; + } +} +.menu .menu-item .badge { + background: #ccc; + border-radius: 10px; + color: #fff; + float: right; + padding: 2px 5px; + text-shadow: 1px 1px 0 rgba(0,0,0,0.1); + vertical-align: middle; +} +.main-menu .menu-item-active a::after { + background: #bbb; + border-radius: 50%; + content: ' '; + height: 6px; + margin-top: -3px; + position: absolute; + right: 15px; + top: 50%; + width: 6px; +} +.sub-menu { + background: var(--content-bg-color); + border-bottom: 1px solid #ddd; + margin: 0; + padding: 6px 0; +} +.sub-menu .menu-item { + display: inline-block; +} +.sub-menu .menu-item a, +.sub-menu .menu-item span.exturl { + background: transparent; + margin: 5px 10px; + padding: initial; +} +.sub-menu .menu-item a:hover, +.sub-menu .menu-item span.exturl:hover { + background: transparent; + color: #fc6423; +} +.sub-menu .menu-item-active a { + border-bottom-color: #fc6423; + color: #fc6423; +} +.sub-menu .menu-item-active a:hover { + border-bottom-color: #fc6423; +} +.sidebar { + background: var(--body-bg-color); + box-shadow: none; + margin-top: 100%; + position: static; + width: 240px; +} +@media (max-width: 991px) { + .sidebar { + display: none; + } +} +.sidebar-toggle { + display: none; +} +.sidebar-inner { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + box-sizing: border-box; + color: var(--text-color); + width: 240px; + opacity: 0; +} +.sidebar-inner.affix { + position: fixed; + top: 12px; +} +.sidebar-inner.affix-bottom { + position: absolute; +} +.site-state-item { + padding: 0 10px; +} +.sidebar-button { + border-bottom: 1px dotted #ccc; + border-top: 1px dotted #ccc; + margin-top: 10px; + text-align: center; +} +.sidebar-button a { + border: 0; + color: #fc6423; + display: block; +} +.sidebar-button a:hover { + background: none; + border: 0; + color: #e34603; +} +.sidebar-button a:hover .fa, +.sidebar-button a:hover .fab, +.sidebar-button a:hover .far, +.sidebar-button a:hover .fas { + color: #e34603; +} +.links-of-author { + display: flex; + flex-wrap: wrap; + margin-top: 10px; + justify-content: center; +} +.links-of-author-item { + margin: 5px 0 0; + width: 50%; +} +.links-of-author-item a, +.links-of-author-item span.exturl { + box-sizing: border-box; + display: inline-block; + margin-bottom: 0; + margin-right: 0; + max-width: 216px; + overflow: hidden; + padding: 0 5px; + text-overflow: ellipsis; + white-space: nowrap; +} +.links-of-author-item a, +.links-of-author-item span.exturl { + border-bottom: none; + display: block; + text-decoration: none; +} +.links-of-author-item a::before, +.links-of-author-item span.exturl::before { + display: none; +} +.links-of-author-item a:hover, +.links-of-author-item span.exturl:hover { + background: var(--body-bg-color); + border-radius: 4px; +} +.links-of-author-item .fa, +.links-of-author-item .fab, +.links-of-author-item .far, +.links-of-author-item .fas { + margin-right: 2px; +} +.links-of-blogroll-item { + padding: 0; +} +.content-wrap { + background: initial; + box-shadow: initial; + padding: initial; +} +.post-block { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); + padding: 40px; +} +.post-block + .post-block { + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin-top: 12px; +} +.comments { + background: var(--content-bg-color); + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin-top: 12px; + padding: 40px; +} +.tabs-comment { + margin-top: 1em; +} +.content { + padding-top: initial; +} +.post-eof { + display: none; +} +.pagination { + background: var(--content-bg-color); + border-radius: initial; + border-top: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin: 12px 0 0; + padding: 10px 0 10px; +} +.pagination .prev, +.pagination .next, +.pagination .page-number { + margin-bottom: initial; + top: initial; +} +.main { + padding-bottom: initial; +} +.footer { + bottom: auto; +} +.sub-menu { + border-bottom: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12); +} +.sub-menu + .content .post-block { + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + margin-top: 12px; +} +@media (min-width: 768px) and (max-width: 991px) { + .sub-menu + .content .post-block { + margin-top: 10px; + } +} +@media (max-width: 767px) { + .sub-menu + .content .post-block { + margin-top: 8px; + } +} +.post-body h1, +.post-body h2 { + border-bottom: 1px solid #eee; +} +.post-body h3 { + border-bottom: 1px dotted #eee; +} +@media (min-width: 768px) and (max-width: 991px) { + .content-wrap { + padding: 10px; + } + .posts-expand .post-button { + margin-top: 20px; + } + .post-block { + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + padding: 20px; + } + .post-block + .post-block { + margin-top: 10px; + } + .comments { + margin-top: 10px; + padding: 10px 20px; + } + .pagination { + margin: 10px 0 0; + } +} +@media (max-width: 767px) { + .content-wrap { + padding: 8px; + } + .posts-expand .post-button { + margin: 12px 0; + } + .post-block { + border-radius: initial; + box-shadow: 0 2px 2px 0 rgba(0,0,0,0.12), 0 3px 1px -2px rgba(0,0,0,0.06), 0 1px 5px 0 rgba(0,0,0,0.12), 0 -1px 0.5px 0 rgba(0,0,0,0.09); + min-height: auto; + padding: 12px; + } + .post-block + .post-block { + margin-top: 8px; + } + .comments { + margin-top: 8px; + padding: 10px 12px; + } + .pagination { + margin: 8px 0 0; + } +} +.utterances { + max-width: unset; +} diff --git a/images/algolia_logo.svg b/images/algolia_logo.svg new file mode 100644 index 0000000..4702423 --- /dev/null +++ b/images/algolia_logo.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/images/apple-touch-icon-next.png b/images/apple-touch-icon-next.png new file mode 100644 index 0000000000000000000000000000000000000000..86a0d1d33bc2ae8a0416ebba67d1bbb60aa29c38 GIT binary patch literal 1544 zcmV+j2KV`iP)Px#OHfQyMIs_1FE20E)zv2_C(h2!$jHdT!ovUm|GT@p zWo2de_xJq#{8d#|IyyQ>M@Qx533`J9dBE>4W{r{KFjMLpp4N$2iMRJCGfPM7@le{)BPzVgz zp?ByVdWYVj|4-=tUS5SkR}Te{-Fr#UrxsqJ9+ed6YY9KmoXq6n^B9DRMwF@T2u)qH z!=wh-sAdPH_8fFy0-I1d68Zp);!FTtdweUZc2nr)?5^hh99w*FOU z@NYFT^!v%iPrGly0Q*+sLVtesYh+the|AET4WK8lR^dv1IZ-3FhAuiK5V|-?gf2#j z&_yW`x^K3G&OKl4kP$$ih@p!?B6M+)2(4Rz(6$=G6WT(;6uP)cgkEi(xI(Yi7`D(w zo(Y6r>FyarFV`4e&^@lk@PfWf|DSeM5}?agV`>aDXt-c%3^!*Ij0g0Q8X5*mjbRC$9oB0MOK51O_53LU8p`RzcozW; zx3wC>721@58xhdzx?E$}LW9xpjUu4UhOZO>Z8Us+D+1bR_}&sQXJ}B}yadb|8fraT zV|YUw4WF(>KpPF;mjp}*eTo5XG<+u!&}PFoihwq!uhI`XPYZ1{e1FDs0nqR?Ym5YF zqv0DwK${KUMFjNpqb>9(0vg8Y^d$otmiJc}L#s|8wD~Z~fHtQu8PG6DgwAq-&}PFY z1KMo(WI!7YpAcwxN`zJiV(2pgG_<|npE+y^Z8UsBppAx42(;Po$$&N*J{izP!?y+W zi2YsL=fkK`KXsymhWcmL#_y-S*Y&V_u#us^S9pDvbMSkxv7uidoc36Qa`CQ+5AC^d z=CTJ%0ZkrQ=v?t(E_)>OCL8YaU+nX$$--iAUNb;m^jBG2!5*5enU|exmY3aQcv=O- znjO}ft-yw2|VZs2g-W`Epf@n*5gsJ2LLtC^nFlq8+?%Xc!{Z3_|hFI~!oeU$ep z%4jE9Y9n1{ah68@W{++)8|fc~HIM4)QycHpg}3P<_K$M$L~}7jBXs?6bDwjvo+I;D zsoi}398La6+~*osM@45l#ptQ6MrZFz597*no3v)ffsUEletxWeW~`A+ntYvaeQj?e z*kSqGXZsrrhZ>IsxH$({IR{z11zkG`GR^j$#{%z41lp5(Ne#glJc5nj-BUaKR!X?# zzN6F-<0?&z;|30?9q0Z}oHG*G)Q)s%Db~RbjMU)mp-u&Dmm0zkF~o9eRh}p?ByVnjn4wmEZ*c=^{+H00012dQ@0+Qek%>aB^>E zX>4U6ba`-PAZc)PV*mhnoa6Eg2ys>@D9TUE%t_@^00ScnE@KN5BNI!L6ay0=M1VBI uWCJ6!R3OXP)X2ol#2my2%YaCrN-hBE7ZG&wLN%2D0000`v literal 0 HcmV?d00001 diff --git a/images/avatar.gif b/images/avatar.gif new file mode 100644 index 0000000000000000000000000000000000000000..28411fd0eadae59f521f6914983f61731b759e77 GIT binary patch literal 1793 zcmc(e`#al*0*AjzgfxoGy{05C>!#LYnzk<02ECx3bGphio%U$lDm65-%4+M{#3i&v zF)dm;w^A*|s?pmzaZMtK$W?-bB(5QZNKm$&f8xA9e13kP=kvU$gHL&RM+pD{pap>K z?d^{rKQig`f&P9LlQ}99ZEbD!GZ=ckeqnxIr_;%&rX*sqfX7oR6eGjKTn=YwU|>ul znHV4Eu-TiNo08GdRgGqCZH+xRs9IQ9RH^1>XE!!BhKGj6$Hs&L!K6&KzP>J#N(Fqr zR;wLkv2^R}tE;Qa%ge0(e$C3t(&C~Rwe+~VRQXLwjF5-F8RA)i0YW~)@HafxJI ztDT*l9U2_uak;ZIGkh*rIx(SEs}~j)c6N3ceSN_H8_49XM%yH8dPZgz zB|GQ#ox8bt`S%J6i+(M>|DdF_?BS#GipRfIR#n&3KB=pJ+VJdoW7CV~me${2w!NaZ zzkc)f-TOa2{MkY4?CS36?V~f8{j7n(A@(q5gv;X#grZTgWNdswDw~{=E0ohSvvWmY zGjmfr8#E|v4TQF_Gc`8@&-08hUU*RDV_F8x1dNvf-Q-&Xu=7I9zp8rf8bT6VFu-K1 zp`BZ_y|*WcV(5^u3r8Z?_Lqctc&JNK!cAN~et3&LSM%8m)RAlO)U=qKp>M&~miA0b zXA%^BkIE!eHSh{;JcHumYCCz&Hv4Tw58W8&TJUDzpa4EMr)`^Hk&pLH2#~xp+Q){T zG-#gq>4cV;j$FAa0T2e?IaPM3FG2TOT?&y331G&9%UI%3h^7{jcjWlZnLQlvaK26P z&Du^Nq0124n0#&HRTS@~)vg(wn2`PSjR|i?^*UZ1csS?N{1geB^pd#*wq=(WWX@1r zv5uJro0nX~&}D6Yd!Wu)zT+Ue>E{=z;@y4ScOiE3p8m&MiDr4no6=S6wRJ0iXM)6C z>5pRjYy47cB%WEd*@}L z)G5pbE$Ge-JTxqUc)`~&KYX(KG|XUNFEaMuwR^Y2g@rcImI_#CkxM7>ixb}G;9?cd z^^|X7xcI>?8NVEgi-@HW4-}Ub7>j!l$Wovi5owxWR~&d9OE??vXD<~+R;ZIoXph72 zS^L1LPNaHdal;oq)mV?S`yd78YGomCf{IVUjRFlwBDq0OKa}J>R-c=kw&xj^j*rW0 zJokM-@lH<&)bi_qsQp$(*Ii?w!M$!>g`Nv;bl`;yk4f(}y&Kco3r_*64>%zjTOCfdB@J*VqOvb=oZa>C@u2Lduq1`izsNs8+QAq_ECS490Gm#@C{iK=v!G1IsXpV z76Y`Dp+T;=aPS1u7-^6eAPsE=Fh7@&a6*rEQ0-lhxp>WU>m<>B4%df*W$pD4< zwi<>)ym@Zqoa-)!J73I;#~fq9mAj64U9-2aXsJvo1GRX7EFSwyF_W3m*mQ`Z=p-3( z>GXe!z@|YJ9AMi5`@}EICbT2b$BaPO()mC;$h}Hdi}&W0Cv1_IH70cDzqaN2JSbZ{ z@pl2olL|1mz}I#g;^OjPiAXY4L|Uj@Cb#<|4jBr+K^v+&jNRfP(-(RnH>Uj+<-koQ zK-&m;?TK*D0A<8f;Q`Fsn4l2KVgu@{NK)X|`%2r)S=kN5!CVj+xSEq1+Eb$0bDoB-XOPkoZY08jeqI*A;y_?flt= zh0FOL^(F`4ls>(Et~Gpqs*@n|@qZg1LiHe{HoHzns0oD{ebkq7Snv{|$@>0t7h-12 zVdLd19AD|Po + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/images/cc-by-nc-sa.svg b/images/cc-by-nc-sa.svg new file mode 100644 index 0000000..bf6bc26 --- /dev/null +++ b/images/cc-by-nc-sa.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/images/cc-by-nc.svg b/images/cc-by-nc.svg new file mode 100644 index 0000000..3697349 --- /dev/null +++ b/images/cc-by-nc.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/images/cc-by-nd.svg b/images/cc-by-nd.svg new file mode 100644 index 0000000..934c61e --- /dev/null +++ b/images/cc-by-nd.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + diff --git a/images/cc-by-sa.svg b/images/cc-by-sa.svg new file mode 100644 index 0000000..463276a --- /dev/null +++ b/images/cc-by-sa.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/images/cc-by.svg b/images/cc-by.svg new file mode 100644 index 0000000..4bccd14 --- /dev/null +++ b/images/cc-by.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/images/cc-zero.svg b/images/cc-zero.svg new file mode 100644 index 0000000..0f86639 --- /dev/null +++ b/images/cc-zero.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/images/favicon-16x16-next.png b/images/favicon-16x16-next.png new file mode 100644 index 0000000000000000000000000000000000000000..de8c5d3a5f8215c3f7b095c9e284e061bda65f86 GIT binary patch literal 435 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstUx|vage(c z!@6@aFM%A+0*}aIAe|4wj2{=>aRxHH1AIbUeKHFb!9Yn#DLy_vBO^maMdk0`zd#Zw z0tY~@yu3V6p{Ay$mX_Az$B+O0`?r4m`qisfPnj~MwY3$f@^9nqaG!lvI6;x#X;^) z4C~IxyaaMM3p^r=f%IJvW-JI^#13S11^9%x`eYU=fq|TyoQjGHgbgIWfB*jF%NI8{ zx2;>Zu3x`iO-&6bs0aoM3JPUqWq0n}*}Qo(P|Le_@AmKC57(%ytPE5IHwwrGiqzKD z{{8#c)YSCg!Gk}3{P_R>|Gj(no6k4eJyZq^Jd4Jw%*zpM57yY9pK zMcQgs21j>QigM54W!RCVazM0UCtHDVhG46xh5pA!(TqDDnlwLEm~eRS(JM@6p3293 zNMwDW(!P~x!s$%jghh-wOB)P19fJ88oOHECttPa5*~LF^Vp#0%pwrbyN~~|szWB|o z_J4%n&U>rEu5s2%I6jof{A;(j!|>g|;yo?%ZfFGheBJp^9_Zijs*s41pu}>8f};Gi z%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@stea7=?5CgL^w_Y;0u(GiCWD#az1(ybs x!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPlSn|oqbSlsa22WQ%mvv4FO#p=N1nU3* literal 0 HcmV?d00001 diff --git a/images/logo.svg b/images/logo.svg new file mode 100644 index 0000000..cbb3937 --- /dev/null +++ b/images/logo.svg @@ -0,0 +1,23 @@ + +image/svg+xml diff --git a/index.html b/index.html new file mode 100644 index 0000000..013bcc6 --- /dev/null +++ b/index.html @@ -0,0 +1,1777 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 耿腾的博客 + + + + + + + + + + + + + + + + +
    +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    Raydium 是一个 Solana 平台上的 DEX,提供了各种代币的流动性池,为用户提供流动性挖矿、购买代币的功能。为了给 DEX 项目引入流动性池、对接 Raydium 的交换协议,对 raydium 恒定乘积交换合约的源码进行深入学习,这也是 Raydium 上最新的标准 AMM。

    +
    +

    Repository: https://github.com/raydium-io/raydium-cp-swap

    +
    +

    流动性池状态及创建时的基本流程

    流动性池状态定义如下:

    +
    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
    #[account(zero_copy(unsafe))]
    #[repr(packed)]
    #[derive(Default, Debug)]
    pub struct PoolState {
    /// 使用的配置,主要包括各种费率,控制标志,拥有者 / 受益者 等信息
    pub amm_config: Pubkey,
    /// 流动性池创建者
    pub pool_creator: Pubkey,
    /// Token A 的金库,用来存储流动性 Token 及收益
    pub token_0_vault: Pubkey,
    /// Token B 的金库,用来存储流动性 Token 及收益
    pub token_1_vault: Pubkey,

    /// 流动性池 token 会在存入 A 或 B 时发放
    /// 流动性池 token 可以被提取为对应的 A 或 B
    pub lp_mint: Pubkey,
    /// A 的铸币厂
    pub token_0_mint: Pubkey,
    /// B 的铸币厂
    pub token_1_mint: Pubkey,

    /// A 使用的 Token 程序,比如旧版本或者 2022
    pub token_0_program: Pubkey,
    /// B 使用的 Token 程序
    pub token_1_program: Pubkey,

    /// TWAP 计价账户的地址
    pub observation_key: Pubkey,

    /// 用于 PDA 签名时使用的 bump
    pub auth_bump: u8,
    /// Bitwise representation of the state of the pool
    /// bit0, 1: disable deposit(vaule is 1), 0: normal
    /// bit1, 1: disable withdraw(vaule is 2), 0: normal
    /// bit2, 1: disable swap(vaule is 4), 0: normal
    pub status: u8,

    pub lp_mint_decimals: u8,
    /// mint0 and mint1 decimals
    pub mint_0_decimals: u8,
    pub mint_1_decimals: u8,

    /// True circulating supply without burns and lock ups
    pub lp_supply: u64,
    /// 金库中欠流动性提供者的 A 和 B 的数额.
    pub protocol_fees_token_0: u64,
    pub protocol_fees_token_1: u64,

    pub fund_fees_token_0: u64,
    pub fund_fees_token_1: u64,

    /// The timestamp allowed for swap in the pool.
    pub open_time: u64,
    /// recent epoch
    pub recent_epoch: u64,
    /// padding for future updates
    pub padding: [u64; 31],
    }
    +

    初始化流动性池的指令函数签名如下:

    +
    1
    2
    3
    4
    5
    6
    pub fn initialize(
    ctx: Context<Initialize>, // 上下文
    init_amount_0: u64, // A 资产初始数额
    init_amount_1: u64, // B 资产初始数额
    mut open_time: u64, // 开始交易时间
    ) -> Result<()>;
    +

    初始化流动性池账户定义如下:

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    #[derive(Accounts)]
    pub struct Initialize<'info> {
    /// Address paying to create the pool. Can be anyone
    #[account(mut)]
    pub creator: Signer<'info>,

    /// Which config the pool belongs to.
    pub amm_config: Box<Account<'info, AmmConfig>>,

    /// CHECK: pool vault and lp mint authority
    #[account(
    seeds = [
    crate::AUTH_SEED.as_bytes(),
    ],
    bump,
    )]
    pub authority: UncheckedAccount<'info>,

    /// CHECK: Initialize an account to store the pool state
    /// PDA account:
    /// seeds = [
    ///     POOL_SEED.as_bytes(),
    ///     amm_config.key().as_ref(),
    ///     token_0_mint.key().as_ref(),
    ///     token_1_mint.key().as_ref(),
    /// ],
    ///
    /// Or random account: must be signed by cli
    #[account(mut)]
    pub pool_state: UncheckedAccount<'info>,

    /// Token_0 mint, the key must smaller then token_1 mint.
    #[account(
    constraint = token_0_mint.key() < token_1_mint.key(),
    mint::token_program = token_0_program,
    )]
    pub token_0_mint: Box<InterfaceAccount<'info, Mint>>,

    /// Token_1 mint, the key must grater then token_0 mint.
    #[account(
    mint::token_program = token_1_program,
    )]
    pub token_1_mint: Box<InterfaceAccount<'info, Mint>>,

    /// pool lp mint
    #[account(
    init,
    seeds = [
    POOL_LP_MINT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    ],
    bump,
    mint::decimals = 9,
    mint::authority = authority,
    payer = creator,
    mint::token_program = token_program,
    )]
    pub lp_mint: Box<InterfaceAccount<'info, Mint>>,

    /// payer token0 account
    #[account(
    mut,
    token::mint = token_0_mint,
    token::authority = creator,
    )]
    pub creator_token_0: Box<InterfaceAccount<'info, TokenAccount>>,

    /// creator token1 account
    #[account(
    mut,
    token::mint = token_1_mint,
    token::authority = creator,
    )]
    pub creator_token_1: Box<InterfaceAccount<'info, TokenAccount>>,

    /// creator lp token account
    #[account(
    init,
    associated_token::mint = lp_mint,
    associated_token::authority = creator,
    payer = creator,
    token::token_program = token_program,
    )]
    pub creator_lp_token: Box<InterfaceAccount<'info, TokenAccount>>,

    /// CHECK: Token_0 vault for the pool, create by contract
    #[account(
    mut,
    seeds = [
    POOL_VAULT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    token_0_mint.key().as_ref()
    ],
    bump,
    )]
    pub token_0_vault: UncheckedAccount<'info>,

    /// CHECK: Token_1 vault for the pool, create by contract
    #[account(
    mut,
    seeds = [
    POOL_VAULT_SEED.as_bytes(),
    pool_state.key().as_ref(),
    token_1_mint.key().as_ref()
    ],
    bump,
    )]
    pub token_1_vault: UncheckedAccount<'info>,

    /// create pool fee account
    #[account(
    mut,
    address= crate::create_pool_fee_reveiver::id(),
    )]
    pub create_pool_fee: Box<InterfaceAccount<'info, TokenAccount>>,

    /// an account to store oracle observations
    #[account(
    init,
    seeds = [
    OBSERVATION_SEED.as_bytes(),
    pool_state.key().as_ref(),
    ],
    bump,
    payer = creator,
    space = ObservationState::LEN
    )]
    pub observation_state: AccountLoader<'info, ObservationState>,

    /// Program to create mint account and mint tokens
    pub token_program: Program<'info, Token>,
    /// Spl token program or token program 2022
    pub token_0_program: Interface<'info, TokenInterface>,
    /// Spl token program or token program 2022
    pub token_1_program: Interface<'info, TokenInterface>,
    /// Program to create an ATA for receiving position NFT
    pub associated_token_program: Program<'info, AssociatedToken>,
    /// To create a new program account
    pub system_program: Program<'info, System>,
    /// Sysvar for program account
    pub rent: Sysvar<'info, Rent>,
    }
    +

    初始化流动性池流程如下:

    +
      +
    1. 判断两种资产的 Mint 账户是否合法,判断 AMM 配置中是否关闭创建 Pool。
    2. +
    3. 设定开始交易时间。
    4. +
    5. 创建两种资产的金库。
    6. +
    7. 创建 PoolState 数据账户。
    8. +
    9. 创建 ObservationState 数据账户。
    10. +
    11. 将两种初始资产从创建者账户转账到金库账户。
    12. +
    13. 判断两个金库账户的数额是否合法(实际上只要大于 0 就合法)。
    14. +
    15. 计算流动性值: $liquidity = \sqrt(amount0 * amount1)$。
    16. +
    17. 固定锁定 100 个流动性值: let lock_lp_amount = 100
    18. +
    19. 发放 liquidity - lock_lp_amount 个 LP token 给创建者。
    20. +
    21. 从创建者账户里收取创建费(lamports)到一个专门存放创建费的账户中(地址硬编码在合约里)。
    22. +
    23. 初始化流动性池数据的各个字段。
    24. +
    +

    资产交换

    资产交换分为两类:

    +
      +
    1. 基于输入资产: 输入资产额度固定,一部分会作为手续费,一部分作为购买资金输入。
    2. +
    3. 基于输出资产: 输出资产额度固定,需要额外购买一部分输出资产作为手续费,其他作为购买到的资产输出。
    4. +
    +

    基于输入资产

    指令函数签名:

    +
    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
    pub fn swap_base_input(
    ctx: Context<Swap>, // 上下文
    amount_in: u64, // 输入资产
    minimum_amount_out: u64 // 最小输出资产,由调用者按照当前价格及滑点计算得出
    ) -> Result<()>;

    #[derive(Accounts)]
    pub struct Swap<'info> {
    // 交换者
    pub payer: Signer<'info>,

    // 流动性池的金库和流动性 token mint 的权限账户
    /// CHECK: pool vault and lp mint authority
    #[account(
    seeds = [
    crate::AUTH_SEED.as_bytes(),
    ],
    bump,
    )]
    pub authority: UncheckedAccount<'info>,

    /// 用于读取协议费用
    #[account(address = pool_state.load()?.amm_config)]
    pub amm_config: Box<Account<'info, AmmConfig>>,

    /// 流动性池数据账户
    #[account(mut)]
    pub pool_state: AccountLoader<'info, PoolState>,

    /// 用户购买使用的 token ATA,即输入 token 的 ATA
    #[account(mut)]
    pub input_token_account: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 用户希望购买到的 token ATA,即输出 token 的 ATA
    #[account(mut)]
    pub output_token_account: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 接收用户购买使用的 token 的金库
    #[account(
    mut,
    constraint = input_vault.key() == pool_state.load()?.token_0_vault || input_vault.key() == pool_state.load()?.token_1_vault
    )]
    pub input_vault: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 输出用户希望购买到的 token 的金库
    #[account(
    mut,
    constraint = output_vault.key() == pool_state.load()?.token_0_vault || output_vault.key() == pool_state.load()?.token_1_vault
    )]
    pub output_vault: Box<InterfaceAccount<'info, TokenAccount>>,

    /// 输入 token 的程序(可能是 2022)
    pub input_token_program: Interface<'info, TokenInterface>,

    /// 输出 token 的程序(可能是 2022)
    pub output_token_program: Interface<'info, TokenInterface>,

    /// 输入 token 的铸币厂
    #[account(
    address = input_vault.mint
    )]
    pub input_token_mint: Box<InterfaceAccount<'info, Mint>>,

    /// 输出 token 的铸币厂
    #[account(
    address = output_vault.mint
    )]
    pub output_token_mint: Box<InterfaceAccount<'info, Mint>>,

    /// 记录价格的数据账户,用于计算 TWAP 价格
    #[account(mut, address = pool_state.load()?.observation_key)]
    pub observation_state: AccountLoader<'info, ObservationState>,
    }
    +

    基于输入的资产交换流程如下:

    +
      +
    1. 检查时间、状态等是否允许交换。
    2. +
    3. 计算转账(应该指的是向金库中转账)费用,从总的输入费用中减去这部分,将剩余部分 actual_amount_in 作为实际购买资金。
    4. +
    5. 计算两个金库扣除协议费用和资金费用之后剩余的部分,即实际上提供流动性的两种资金。
    6. +
    7. 按照上一步计算得到了两种资金,计算两种资金置换另一种的价格,$A / B$ 和 $B / A$,同时转换为 u128 左移 32 位使用定点数来保存精度。
    8. +
    9. 将第 3 步得到的两种资金额度相乘,得到恒定乘积 $A * B$。
    10. +
    11. 计算交换结果,包括各种额度、费用。
    12. +
    13. 将上一步得到的计算结果中的交换后的的源资产额度减去交易费用,再乘以这个结果中交换后的目标资产额度,得到交换后的恒定乘积 $A’ * B’$。
    14. +
    15. 验证第 6 步计算结果中交换的源资产额度是否等于 actual_amount_in
    16. +
    17. 检查第 6 步计算结果中交换得到的目标资产额度减去转账费用之后,是否仍然大于 0 ;同时检查,是否大于等于 minimum_amount_out,如果不满足表示超过滑点限制。
    18. +
    19. 更新流动性池状态的协议费用及资金费用,用于记录金库中非流动性的部分的额度。
    20. +
    21. 发送一个 SwapEvent 事件。(为什么?怎么利用?)
    22. +
    23. 验证交换后的恒定乘积大于等于交换前的恒定乘积,即 $A’ B’ \geq A B$。
    24. +
    25. 根据计算后的结果,将相应额度的输入资产从用户账户转账到金库账户,将相应额度的输出资产从金库账户转账到用户账户。
    26. +
    27. 更新观测状态(ObservationState)的值。
    28. +
    +

    基于输出资产

    TODO

    +

    观测状态 / TWAP 计价器

    观测值及观测状态结构定义如下:

    +
    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
    #[zero_copy(unsafe)]
    #[repr(packed)]
    #[derive(Default, Debug)]
    pub struct Observation {
    /// The block timestamp of the observation
    pub block_timestamp: u64,
    /// the cumulative of token0 price during the duration time, Q32.32, the remaining 64 bit for overflow
    pub cumulative_token_0_price_x32: u128,
    /// the cumulative of token1 price during the duration time, Q32.32, the remaining 64 bit for overflow
    pub cumulative_token_1_price_x32: u128,
    }

    #[account(zero_copy(unsafe))]
    #[repr(packed)]
    #[cfg_attr(feature = "client", derive(Debug))]
    pub struct ObservationState {
    /// Whether the ObservationState is initialized
    pub initialized: bool,
    /// the most-recently updated index of the observations array
    pub observation_index: u16,
    pub pool_id: Pubkey,
    /// 固定长度的环形缓冲区,用于循环写入观测记录
    pub observations: [Observation; OBSERVATION_NUM], // OBSERVATION_NUM == 100
    /// padding for feature update
    pub padding: [u64; 4],
    }
    +

    其中最重要的函数是更新:

    +
    1
    2
    3
    4
    5
    6
    pub fn update(
    &mut self,
    block_timestamp: u64,
    token_0_price_x32: u128,
    token_1_price_x32: u128,
    );
    +
      +
    1. 该函数将一个 Oracle 观测值写入到当前状态中,并将当前索引自增一模 OBSERVATION_NUM,即循环写入。
    2. +
    3. 该函数一秒钟最多执行一次。
    4. +
    5. 将两种资产的当前价格与跟上一个记录的时间差值相乘,即: $Price * \Delta T$。
    6. +
    7. 然后将上一步求出的两个结果与上一个记录的两个值累加起来 (wrapping_add),作为新记录的两个值。
    8. +
    9. 更新索引。
    10. +
    +

    原理

    TWAP ,即时间加权平均价格(Time Weighted Average Price);用来平滑价格波动,减少大宗交易对市场价格的冲击。

    +

    计算公式为:

    +

    即某个特定时间内的 TWAP 为:每小段时间乘以当时的价格求和,除以总时间。

    +

    设计理由(猜测)

    我能想到的另外一种方案是:

    +
      +
    1. 观测状态中的每个观测记录,只记录 $Price * \Delta T$ 和时间戳即可。
    2. +
    3. 当要求某段时间的 TWAP 时,将这段时间的所有记录累加,除以总时长即可,时间复杂度 $O(n)$。
    4. +
    5. 这样看起来好像可以避免 wrapping_add,源码中不断累加更可能遇到这种情况。
    6. +
    +

    而源码在计算某段时间的 TWAP 时,只需要将最后一个记录的值和第一个记录的值的差除以总时间即可,即这种方案时间复杂度只有 $O(1)$ 。而且实际上 wrapping_add 得到的累加值在相减的时候仍然可以得到正确的结果,只要在这段时间内没有溢出两次就行了。

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    5. 权益证明共识机制

    5.1 描述

    这个机制是用来:

    +
      +
    1. 快速确认由 PoH 生成器生成的当前序列。
    2. +
    3. 投票选出下一个 PoH 生成器。
    4. +
    5. 惩罚不当行为的验证者。
    6. +
    +

    这个算法依赖于所有参与节点在规定超时时间内最终接收到的消息。

    +

    5.2 术语

      +
    • 押金(bonds): 验证者在验证交易时的承诺作为抵押的代币。
    • +
    • 惩罚机制(slashing): 为解决无利害关系问题提出的方案,当不同的分支被发布时,当前分支可以销毁验证者的押金。
    • +
    • 超级多数(super majority): 由押金加权之后,验证者的总票数达到三分之二。这意味着发起攻击的经济成本等同于代币市值的三分之一。
    • +
    +
    +

    无利害关系问题(Nothing at Stake Problem): 在权益证明系统中,验证者不需要消耗物理资源(如电力),而是依赖于其押金(Stake)。因此,如果网络分叉,验证者可以选择在多个分支上投票,因为这样不会有额外成本。他们会试图最大化收益,而不关心网络的最终一致性。

    +
    +

    5.3 质押

    用户将代币转账到一个自己名下的质押账户,这笔押金在赎回之前需要保持不动。

    +

    质押账户有锁定期,锁定期结束才能赎回。

    +

    超级多数确认了质押交易之后,质押才有效。

    +

    5.4 投票

      +
    1. PoH 生成器会在预定义好的周期内发布一个自身状态的签名。
    2. +
    3. 每个质押的身份需要发布一份状态的签名,作为投票。
    4. +
    5. 投票只有同意票,没有反对票。
    6. +
    7. 如果在超时时间内,绝对多数达成了共识,这个分支就会被认为是合法的。
    8. +
    +

    5.5 解质押

    如果用户未能按时参与投票,质押的币会被标记为“过期”,旨在强制参与者保持活跃,否则将失去投票资格。

    +

    N 作为投票失效的次数阈值,会随着过期投票的数量增加而增长,N 的动态调整也可以为网络的自愈能力提供支持,减少对投票延迟的影响。

    +

    5.6 选举

      +
    1. 检测到 PoH 生成器故障时,新 PoH 生成器选举就会发生。
    2. +
    3. 拥有最高投票权重、更高的公钥地址的验证者会被选为新的 PoH 生成器。
    4. +
    5. 需要超级多数确认,如果在完成确认前新的生成器故障,就重新选择下一个新的 PoH 生成器。
    6. +
    7. 切换选票时,投票的验证者需要在一个更高的 PoH 序列计数器上投票,否则会触发惩罚。
    8. +
    9. 会选择一个次级生成器,用于主生成器故障时快速切换。
    10. +
    +

    5.7 选举触发条件

    5.7.1 分叉的 Proof of History 生成器

      +
    1. 只有当 PoH 生成器的标识被攻破时,才可能发生分叉。
    2. +
    3. 分叉的检测依据是同一个 PoH 标识发布了两个不同的历史记录。
    4. +
    +

    5.7.2 运行时异常

      +
    1. Bug、硬件故障、人为错误可能导致生成器生成无效状态,并发布与本地验证者不一致的签名。
    2. +
    3. 验证者将通过 Gossip 协议发布正确的签名,这一事件将触发新的选举。
    4. +
    5. 接收无效状态的验证者将收到惩罚。
    6. +
    +

    5.7.3 网络超时

    5.8 惩罚

      +
    1. 恶意投票:对两个不同的序列投票,受质押削减惩罚。
    2. +
    3. 非恶意的竞选序列冲突,投票会被撤销,不会惩罚。
    4. +
    5. 对 PoH 生成器的无效哈希进行投票,受质押削减惩罚。
    6. +
    +

    5.9 次级选举

      +
    1. 次级选举是在主序列上被提出的。
    2. +
    3. 在超时时间内通过绝对多数投票,次级生成器就当选了。
    4. +
    5. 主生成器通过在序列中插入指示交接的消息,来实现软交接。
    6. +
    7. 如果主生成器发生故障,已当选的次生成器会被作为第一备选。
    8. +
    +

    5.10 可用性

      +
    1. CAP 中 Solana 选择 A 可用性。
    2. +
    3. 最终一致性:在合理的人类时间范围内保持一定程度的一致性。
    4. +
    5. 利用 PoH(Proof of History)机制提供了时间的客观测量,结合 PoS 投票记录,可以动态地取消不可用验证者的质押,调整网络的活性和一致性需求。
    6. +
    7. 在合理的时间内,随着不可用验证者被逐步取消质押,网络可以逐步恢复到满足 2/3 共识的状态,从而达成一致性。
    8. +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +
    +

    PoH (Proof of History) 是⼀种⽤于验证事件之间的顺序和时间流逝的证明。
    PoH is a proof for verifying order and passage of time between events.

    +
    +

    1. 简介

    区块链本质上是一个容错复制状态机。

    +

    使用 PoH,网络中的节点可以不依靠其他信任机制验证账本记录的时间流逝。

    +
      +
    • 问题
    • +
    +
      +
    1. PoH 如何生成可验证的时间间隔。2. PoH 如何生成可验证的事件执行时间。
    2. +
    +

    2. 提纲

    3. 网络设计

      +
    1. 某个节点被选举为领导者(Leader),负责生成历史证明序列(提供网络全局读取一致性以及可验证的时间流逝)。
    2. +
    3. 领导者搜集用户消息并排序。
    4. +
    5. 领导者对内存中的交易进行处理,并将交易和签名发送到验证复制节点(Verifier)。
    6. +
    7. 验证复制节点在其状态副本上执行相同的交易,并发布处理的状态签名,作为交易确认及共识算法投票。
    8. +
    +

    整体网络的交易流向

    +
    +

    Leader 选举是基于 PoS 实现的。

    +
    +

    4. 历史证明

      +
    1. 历史证明是一个计算序列。
    2. +
    3. 依赖一个加密的安全函数,无法通过输入预测输出,必须完全执行函数才能生成输出。
    4. +
    5. 函数在单个核心上按顺序执行,上一步的输出作为下一步输入,定期记录当前输出及执行的次数。
    6. +
    7. 外部计算机可以通过检查其中的每个序列段来重新计算并验证输出。
    8. +
    +
      +
    • 问题
    • +
    +

    原文有 Data can be timestamped into this sequence by appending the data (or a hash of some data) into the state of the function. 这句话里的 timestamped 应该不是传统意义的时间戳的意思,而是某种反映执行顺序(和次数?)的更本质的标记。也就说,这种机制提供了“时间戳“的实现。

    +

    4.1 说明

    PoH序列

    +

    只需要每隔一段时间发布哈希和索引的子集,即:

    +

    PoH序列

    +

    只要选择的哈希函数是抗冲突的、不可预测结果的,产生的序列就只能由一个计算机线程按顺序计算得到。也就是,如果不从起始值开始计算 N 次,就无法获得索引 N 处的哈希值。

    +

    哈希的抗冲突、不可预测性和顺序计算,使得我们能够确定,某段序列的产生过程中发生了时间的流逝。

    +

    历史证明序列

    +

    4.2 事件时间戳

    将数据或数据的哈希通过“组合函数”插入到这个序列中参与计算,则这些附加的数据就拥有了时间顺序。

    +

    带数据的历史证明序列

    +

    4.3 验证

    可以利用多核,同时验证一个序列的多段。N 个核就可以同时验证 N 段。产生一段序列的预期时间如果是 T,验证时使用的核数是 C,则验证这段序列需要的时间只有 T / C

    +

    4.4 横向扩容

    两个 PoH 生成节点互相观察对方最近一次的状态,加入自己下一步哈希的数据,实现多个 PoH 链的混合 / 同步。

    +

    通过定期同步生成器,每个生成器都可以处理一部分外部流量,整个系统就可以处理更多事件。

    +
      +
    • 问题
    • +
    +
      +
    1. 混合的意义是什么,不混合仍然可以横向扩展多个 PoH 链。是为了保证系统整体的一致性,提高防篡改性?
    2. +
    +

    4.5 一致性

    为了防止恶意重排序攻击,客户端在创建事件时,需要获取最近的哈希,把该事件挂到某个 PoH 链上,即为事件打上 PoH 的时间戳。

    +

    为了防止恶意 PoH 生成器篡改客户端提交的事件关联的哈希,客户端可以提交数据和关联哈希的签名,而不仅仅是数据的签名。

    +

    客户端提交数据和最近哈希签名到PoH链

    +

    验证时只需验证两点:

    +
      +
    1. 签名是否正确。
    2. +
    3. 关联的哈希在 PoH 链上是否在当前的事件前面。
    4. +
    +
    1
    2
    3
    4
    5
    (Signature, PublicKey, hash30a, event3 data) = Event3

    Verify(Signature, PublicKey, Event3)

    Lookup(hash30a, PoHSequence)
    +

    4.6 开销

    每秒 4000 个哈希产生 160KB 额外数据。

    +

    这些数据,使用 4000 核的 GPU 需要 0.25-0.75 毫秒进行验证。

    +

    4.7 攻击

    4.7.1 逆序

    恶意攻击者需要从第二个事件开始伪造,但是这个延迟已经足够让其他正常节点对于初始序列达成共识。

    +

    4.7.2 速度

    使用多个 PoH 生成器可以增强抗攻击性。

    +

    一个生成器有高带宽,用来接收并混合事件,另一个高速低带宽,定期与高带宽链同步混合,它会生成辅助序列,让攻击者逆序更难。

    +

    4.7.3 长程攻击

      +
    • PoH 提供了时间上的不可篡改性。
    • +
    • PoRep 提供了存储数据的真实性证明。
    • +
    • 两者结合提供了对伪造账本的防御能力。
    • +
    +

    攻击者不仅需要耗费巨大的时间成本来伪造时间戳,还需要在存储上符合 PoRep 的要求。

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    Pubkey

    1
    pub struct Pubkey(pub(crate) [u8; 32]);
    +

    find_program_address

    1
    2
    3
    4
    pub fn find_program_address(seeds: &[&[u8]], program_id: &Pubkey) -> (Pubkey, u8) {
    Self::try_find_program_address(seeds, program_id)
    .unwrap_or_else(|| panic!("Unable to find a viable program address bump seed"))
    }
    +

    try_find_program_address

    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
    pub fn try_find_program_address(seeds: &[&[u8]], program_id: &Pubkey) -> Option<(Pubkey, u8)> {
    // Perform the calculation inline, calling this from within a program is
    // not supported
    #[cfg(not(target_os = "solana"))]
    {
    let mut bump_seed = [std::u8::MAX]; // 从 std::u8::MAX 开始尝试
    for _ in 0..std::u8::MAX {
    {
    let mut seeds_with_bump = seeds.to_vec();
    seeds_with_bump.push(&bump_seed); // 将 bump 作为种子的最后一部分
    match Self::create_program_address(&seeds_with_bump, program_id) {
    Ok(address) => return Some((address, bump_seed[0])),
    Err(PubkeyError::InvalidSeeds) => (),
    _ => break,
    }
    }
    bump_seed[0] -= 1; // 尝试失败了就减 1 再尝试
    }
    None
    }
    // Call via a system call to perform the calculation
    #[cfg(target_os = "solana")]
    {
    // ...
    }
    }
    +

    create_program_address

    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
    pub fn create_program_address(
    seeds: &[&[u8]],
    program_id: &Pubkey,
    ) -> Result<Pubkey, PubkeyError> {
    if seeds.len() > MAX_SEEDS { // 种子最多有 16 个
    return Err(PubkeyError::MaxSeedLengthExceeded);
    }
    for seed in seeds.iter() {
    if seed.len() > MAX_SEED_LEN { // 每个种子最长 32
    return Err(PubkeyError::MaxSeedLengthExceeded);
    }
    }

    // Perform the calculation inline, calling this from within a program is
    // not supported
    #[cfg(not(target_os = "solana"))]
    {
    let mut hasher = crate::hash::Hasher::default(); // 就是一个 Sha256
    for seed in seeds.iter() {
    hasher.hash(seed);
    }
    // PDA_MARKER 是一个 21 字节长的字符串
    // const PDA_MARKER: &[u8; 21] = b"ProgramDerivedAddress";
    hasher.hashv(&[program_id.as_ref(), PDA_MARKER]);
    let hash = hasher.result();

    if bytes_are_curve_point(hash) { // PDA 账户需要确保不在爱德华曲线上
    return Err(PubkeyError::InvalidSeeds);
    }

    Ok(Pubkey::from(hash.to_bytes()))
    }
    // Call via a system call to perform the calculation
    #[cfg(target_os = "solana")]
    {
    let mut bytes = [0; 32];
    let result = unsafe {
    crate::syscalls::sol_create_program_address(
    seeds as *const _ as *const u8,
    seeds.len() as u64,
    program_id as *const _ as *const u8,
    &mut bytes as *mut _ as *mut u8,
    )
    };
    match result {
    crate::entrypoint::SUCCESS => Ok(Pubkey::from(bytes)),
    _ => Err(result.into()),
    }
    }
    }
    +

    bytes_are_curve_point

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    pub fn bytes_are_curve_point<T: AsRef<[u8]>>(_bytes: T) -> bool {
    #[cfg(not(target_os = "solana"))]
    {
    curve25519_dalek::edwards::CompressedEdwardsY::from_slice(_bytes.as_ref())
    .decompress()
    .is_some()
    }
    #[cfg(target_os = "solana")]
    unimplemented!();
    }
    +

    总结

    整体流程

      +
    1. [std::u8::MAX] (即 [255]) 开始作为 bump 尝试,值依次递减至 0,bump 就是最后一个种子。
    2. +
    3. 检查种子数是否不超过 16 (包含 bump,也就是用户能输入的只有 15 个),所有种子长度不超过 32.
    4. +
    5. 使用所有种子依次输入 Sha256 进行哈希,然后将 program_id 及一个 21 字节的常量 PDA_MARKER (b"ProgramDerivedAddress") 输入进行哈希。
    6. +
    7. 计算哈希结果并判断是否在 Curve25519 上,如果不在,表示是合法的 PDA 地址,否则 bump 自减 1 从第二步开始重试。
    8. +
    9. 如果从 [255][0] 都找不到,则返回 None / 报错。
    10. +
    +
    +

    Curve25519 是一种特定的爱德华曲线,它设计用于实现高效、安全的 Diffie-Hellman 密钥交换。

    +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    AccountInfo

    +

    solana_program::account_info::AccountInfo

    +
    +

    账户信息(AccountInfo),合约中对于账户基本信息的引用(余额和数据可变)。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /// Account information
    #[derive(Clone)]
    #[repr(C)]
    pub struct AccountInfo<'a> {
    /// Public key of the account
    pub key: &'a Pubkey,
    /// The lamports in the account. Modifiable by programs.
    pub lamports: Rc<RefCell<&'a mut u64>>,
    /// The data held in this account. Modifiable by programs.
    pub data: Rc<RefCell<&'a mut [u8]>>,
    /// Program that owns this account
    pub owner: &'a Pubkey,
    /// The epoch at which this account will next owe rent
    pub rent_epoch: Epoch,
    /// Was the transaction signed by this account's public key?
    pub is_signer: bool,
    /// Is the account writable?
    pub is_writable: bool,
    /// This account's data contains a loaded program (and is now read-only)
    pub executable: bool,
    }
    +

    Account

    +

    anchor_lang::accounts::account::Account

    +
    +

    账户(Account),对 AccountInfo 的包装,并能够自动反序列化 T

    +
    1
    2
    3
    4
    5
    #[derive(Clone)]
    pub struct Account<'info, T: AccountSerialize + AccountDeserialize + Clone> {
    account: T,
    info: &'info AccountInfo<'info>,
    }
    +

    基本功能

      +
    1. 检查 T::owner() 是否等于 info.owner,这就要求 T: Owner。通常使用 #[account] 宏来自动为 T 实现 Owner,并使用 crate::ID() 也就是合约地址作为它的 owner。
    2. +
    3. 此外,它还会保证 !(Account.info.owner == SystemProgram && Account.info.lamports() == 0),即账户所有者不是系统程序(必须是非系统合约),并且账户的 SOL 余额不能为 0。
    4. +
    +

    AccountLoader

    +

    anchor_lang::accounts::account_loader::AccountLoader

    +
    +

    账户加载器,用于按需零拷贝反序列化的提取器,类型 T 需要实现 ZeroCopy

    +
    1
    2
    3
    4
    5
    #[derive(Clone)]
    pub struct AccountLoader<'info, T: ZeroCopy + Owner> {
    acc_info: &'info AccountInfo<'info>,
    phantom: PhantomData<&'info T>,
    }
    +

    基本功能

    load_init: 在初始化时(只能)运行一次,得到一个 RefMut<T>,可读写。
    load: 加载只读引用 Ref<T>
    load_mut: 加载读写引用 RefMut<T>

    +

    InterfaceAccount

    +

    anchor_lang::accounts::interface_account::InterfaceAccount

    +
    +

    接口账户,用来支持 T: Owners 的情况。即有多个程序拥有这种类型的账户数据,引入时是为了支持 token-2022 #2386

    +
    1
    2
    3
    4
    5
    6
    7
    #[derive(Clone)]
    pub struct InterfaceAccount<'info, T: AccountSerialize + AccountDeserialize + Clone> {
    account: Account<'info, T>,
    // The owner here is used to make sure that changes aren't incorrectly propagated
    // to an account with a modified owner
    owner: Pubkey,
    }
    +

    基本功能

      +
    1. 检查所有者,即 T::owners().contains(InterfaceAccount.info.owner)
    2. +
    3. Account 的第二项。
    4. +
    +

    Interface

    +

    anchor_lang::accounts::interface::Interface

    +
    +

    接口,用来表示实现了某种接口的程序中的某一个。

    +
    1
    2
    #[derive(Clone)]
    pub struct Interface<'info, T>(Program<'info, T>);
    +

    TODO: 例子。

    +

    Program

    +

    anchor_lang::accounts::program::Program

    +
    +

    程序,表示一个程序/合约。

    +
    1
    2
    3
    4
    5
    #[derive(Clone)]
    pub struct Program<'info, T> {
    info: &'info AccountInfo<'info>,
    _phantom: PhantomData<T>,
    }
    +

    Signer

    +

    anchor_lang::accounts::signer::Signer

    +
    +

    签名者,检查 Signer.info.is_signer == true

    +
    1
    2
    3
    4
    #[derive(Debug, Clone)]
    pub struct Signer<'info> {
    info: &'info AccountInfo<'info>,
    }
    +

    SystemAccount

    +

    anchor_lang::accounts::system_account::SystemAccount

    +
    +

    系统账户,检查账户的拥有者是不是系统程序(即 SystemAccount.info.owner == SystemProgram)。

    +
    1
    2
    3
    4
    #[derive(Debug, Clone)]
    pub struct SystemAccount<'info> {
    info: &'info AccountInfo<'info>,
    }
    +

    Sysvar

    +

    anchor_lang::accounts::sysvar::Sysvar

    +
    +

    系统变量,检查账户是否是系统变量。

    +
    1
    2
    3
    4
    5

    pub struct Sysvar<'info, T: solana_program::sysvar::Sysvar> {
    info: &'info AccountInfo<'info>,
    account: T,
    }
    +

    TODO: 写一篇 post 单独介绍实现了 solana_program::sysvar::Sysvar 的类型。

    +

    UncheckedAccount

    强调不做任何检查的账户,需要手动在合约指令中做检查。

    +
    1
    2
    #[derive(Debug, Clone)]
    pub struct UncheckedAccount<'info>(&'info AccountInfo<'info>);
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    以下是各种索引算法的简要对比表,包括其原理、性能优势、适用场景和缺点。

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    索引算法原理介绍为什么性能高适用场景缺点/性能差的场景
    B+ 树B+ 树是一种平衡多叉树,数据仅存储在叶节点,所有叶节点按顺序连接,适合范围查询和顺序访问。结构层次分明,叶节点通过链表相连,实现快速范围查找和顺序遍历。适用于数据库索引、大量顺序读取或范围查询的场景。高维数据或频繁更新的场景性能较差。插入、删除操作复杂,维护成本高。
    倒排索引建立词项到文档的映射关系,将每个词项关联到出现该词的文档列表,通常用于全文搜索。通过直接访问词项位置,可快速找到包含该词的所有文档。适用于文本搜索、日志检索等全文检索场景。对于非文本数据无效,处理频繁更新的文档集时性能较差,占用内存大。
    HNSWHNSW 基于分层的小世界图结构,通过近似最近邻的方法实现高效向量检索。通过多层图索引和邻居节点搜索,实现快速的近似最近邻查找。适用于向量相似度检索、推荐系统、图像搜索等高维向量场景。构建和维护图的成本较高,尤其是频繁更新和插入向量的情况下。对高精度要求场景不适合。
    跳表(Skip List)通过多级链表实现快速搜索,每级链表跳过部分节点,提高查找速度。基于多级链表,可在 O(log n) 时间内查找目标节点。适用于键值存储、顺序查询需求的场景,作为简单替代结构。在超大数据集或高频率更新的场景下不够高效,性能会下降。
    LSM 树LSM 树通过分层排序和合并,将数据写入磁盘前缓存在内存,适合高写入量的场景。数据批量写入减少随机写的开销,分层合并提升读取效率。适合写密集型的键值数据库,如 RocksDB、LevelDB。读性能可能较差,特别是大量读操作时,需通过多层合并查询。
    Trie 树用树结构保存字符串的前缀,每个节点代表一个字符,用于高效的前缀匹配。可以快速定位字符串的前缀路径,适合匹配和自动补全。适用于自动补全、前缀匹配等需要快速定位前缀的场景。占用内存较大,无法很好地处理非字符串数据,不适合范围查询。
    Annoy使用多棵随机 KD 树构建索引,用于近似最近邻查询,查询时从多棵树中查找相似点。随机生成多棵树,提高查找相似度的效率,查询速度快。适用于低维度、高性能要求的向量检索,推荐系统等。处理高维数据时性能较差,存储空间需求大。更新不便。
    LSH(Locality-Sensitive Hashing)将相似数据哈希到相同的桶中,快速找到相似数据的近似最近邻索引方法。通过哈希实现分桶,减少相似数据查询范围,查询速度快。适用于低维向量的相似性搜索,处理文本等场景。高维度数据上效率低,近似度精度差,占用较多内存。
    +
    +

    简要总结

      +
    • B+ 树倒排索引 是经典的数据库和全文搜索引擎中常用的索引结构,适合关系型数据和文本数据的检索。
    • +
    • HNSWAnnoy 是面向高维向量的近似最近邻索引结构,常用于推荐系统、语义搜索等场景。
    • +
    • LSM 树 适合写密集的场景,如键值数据库。
    • +
    • Trie 树跳表 更适合简单的键值存储和字符串匹配,但不适合复杂的数据查询和高维向量检索。
    • +
    • LSH 在维度较低的数据上表现较好,但对高维数据表现有限。
    • +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    Why ZKP?

    零知识证明 Zero-knowledge Proofs

    +

    其中的 Proof($\pi$) 必须是个有用的:$Theorem / Statement / Proposition$

    +
      +
    1. 不要把 Proof 这个词忘掉,到底证明了什么?
    2. +
    3. 两个角色,证明者(prover)、验证者(verifier),是双方的。写代码的时候要时刻关注写的到底是哪部分,是证明者的代码,还是验证者的代码。
    4. +
    +

    Prover Code: 需要关注,有没有产生一个有效的证明,产生这个证明的时候有没有泄漏不该泄漏的信息。
    Verifier Code:关注,这个证明是不是有效的。

    +
    +

    写代码的时候容易忘掉。
    这是一个 Two-party interaction

    +
    +
      +
    1. 关注以下三个性质:
    2. +
    +
      +
    • 完备性(Completeness):诚实的证明者(honest prover)一定能成功证明。
    • +
    • 可靠性(Soundness):恶意的证明者(malicious prover)一定通不过验证。很难测试,需要非常认真、仔细、深入的考虑这个问题:如何保证 verifier 不会被欺骗。
    • +
    • 零知识(Zero-knowledge):恶意的验证者(malicious verifier)无法获得有用的知识。
    • +
    +
    +

    关注 Meta Theorems (Completeness and Soundness)的证明
    如何保证我们写的 babyplonk 是 sound 的。

    +
    +
      +
    • Prover 和 Verifier 之间有大量的交互。Verifier 会发送大量的 challenge 给 Prover。challenge 越多,Proof Size 就越大。
    • +
    • 交互过程中的步骤顺序不能调换。
    • +
    • 实际项目中如果有安全漏洞是非常严重的。
    • +
    • 攻击本身也可能是 ZK 的,不知道谁干的。
    • +
    +

    Non-interactive

    BlockChain 中经常使用 Non-interactive ZKP。 Fiat-Shamir Transformation 能把 public-coin protocol 转换成 non-interactive protocol。

    +
    +

    public-coin 指的是掷硬币,公开的发随机数 challenge。
    借助 Random Oracle (RO) 工具来辅助 Prover 来产生这些硬币。随机数不一定是由 verifier 作为来源,由可信第三方来提供也可以。
    Prover 与 RO 交互,产生证明 $\pi$ 直接发送给 Verifier。不需要等待 Verifier 回复,Verifier 可以在未来异步验证这个证明。
    通常使用一个足够安全的哈希函数(Cryptographic Hash Function)来替代 RO 的角色。没有严格的证明,大概率不会出问题。

    +
    +

    Commitment

      +
    1. $O(1)$ Size。无论数据多大,比如 10 GB 的文件,都可以产生一个很小的串来代表它。
    2. +
    3. Binding。$CM(D1)\not ={CM(D2)} \iff D1\not ={D2}$。
    4. +
    5. Hiding。能够保护数据,可以混入随机数。同一个文件两次 Commit 可以得到不同的 Commitment。
    6. +
    +

    Blockchain: Put commitment on chain (EIP-4844,Rollup-blob)

    +

    Commit-and-Prove

    alt text

    +

    Why zkSNARK

    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    这是结诚浩的《图解密码技术》一书的读书笔记,我是在去北京的火车上把其中感兴趣的部分草草过完的。World of Z2O-K7E 只是建议过一下,我就只是过一下,感觉还是很有帮助的,至少看过了之后,我能感觉自己的大脑切换到了“密码学的上下文”,接收零知识证明相关的知识似乎更高效了。

    +

    基本常识

      +
    1. 不要使用保密的密码算法(即隐蔽式的安全性),应该使用得到广为验证的公开的密码算法,而保护好密钥。
    2. +
    3. 使用低强度的密码会给人一种错误的安全感,比不进行加密更危险。
    4. +
    5. 任何密码总有一天会被破解,除了不实用的一次性密码本和传说中的量子密码。
    6. +
    7. 密码只是信息安全的一部分,提防“社会工程学”。
    8. +
    +

    对称密码

    DES / 3DES

    一种将 64 位明文加密为 64 位密文的对称密码算法,需要以分组为单位对输入进行处理(这样的密码算法称为分组密码,block cipher)。DES 已经可以在现实时间内被破解。

    +

    三重DES(3DES)是为了增加 DES 的强度设计的。三重 DES 并不是三轮加密,而是加密、解密、加密。如果三轮的密钥都相同,就跟 DES 一样了。

    +

    第一轮和第三轮使用同样的密钥则称为 DES-EDE2。
    三轮都不同则称为 DES-EDE3。

    +

    AES

    Rijndael 算法在 2000 年被选为 AES。

    +

    分组长度固定为 128 比特,密钥长度有 128、192、256 比特三种。

    +

    加密过程:SubBytes -> ShiftRows -> MixColumns -> AddRoundKey

    +

    解密过程: AddRoundKey -> InvMixColumns -> InvShiftRows -> InvSubBytes

    +

    如何选择

    不用 DES,少用 3DES,尽量用 AES。

    +

    分组密码的模式

      +
    • ECB(Electronic CodeBook,电子密码本):简单,快速,支持并行计算;明文中重复排列会反映在密文中,并且通过删除、替换密文分组可以对明文进行操作,对包含某些比特错误的密文解密时对应的分组会出错,不能抵御重放攻击。不要用。
    • +
    • CBC(Cipher Book Chaining,密文分组连接模式):推荐使用,重复的明文不会导致重复的密文,可以解密任意密文分组。必须是先加密再 XOR,如果反过来,则其效果等同于 ECB,可以直接从 IV (初始化向量)开始,依次将前后两组密文执行 XOR,得到的每组结果恰好就等于 ECB 每组的结果。
    • +
    • CFB / OFB:不需要填充(padding)。
    • +
    • CTR(CounTeR,计数器模式):推荐使用,主动攻击者反转密文分组中的某些比特时,明文分组中相对应的比特也会被反转。
    • +
    +

    公钥密码

    RSA 的基本步骤:

    +
      +
    1. 取两个比较大的质数 p 和 q。
    2. +
    3. 求两者的乘积 $N = p \times q$。
    4. +
    5. ,即 p 和 q 的最小公倍数;有的资料说的是求欧拉函数值 $\phi = (p-1) \times (q-1)$,以下统称 $\phi$。
    6. +
    +
    +

    GPT: 两者都有各自的使用场景,但在实际使用中,求欧拉函数值 ($\phi$) 更为常见。

    +
    +
      +
    1. 选择公钥 $E$,$E$ 与 $\phi$ 互质并且 $1 < E < \phi$。
    2. +
    3. 求私钥 $D$,$D \times E \equiv 1$ (mod $\phi$),即 D 为 E 的乘法逆元。
    4. +
    5. 这样得到公钥为 $(E, N)$,私钥为 $(D, N)$。
    6. +
    +

    一个使用小质数实现的简单的 RSA:

    +
    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
    use num::BigInt;
    use rand::seq::index::sample;
    use rand::{thread_rng, Rng};

    const SMALL_PRIMES: [u64; 50] = [
    2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97,
    101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193,
    197, 199, 211, 223, 227, 229,
    ];

    #[derive(Debug)]
    struct KeyPair {
    private_key: u64,
    public_key: u64,
    modulus: u64,
    }

    impl KeyPair {
    pub fn generate() -> Self {
    let mut rng = thread_rng();
    let indices = sample(&mut rng, SMALL_PRIMES.len(), 2);
    // use crate rand to select two random prime numbers
    let p = SMALL_PRIMES[indices.index(0)];
    let q = SMALL_PRIMES[indices.index(1)];
    let modulus = p * q;
    let phi = (p - 1) * (q - 1);
    let public_key = loop {
    let public_key = SMALL_PRIMES[thread_rng().gen_range(0..SMALL_PRIMES.len())];
    if public_key < phi && gcd(public_key, phi) == 1 {
    break public_key;
    }
    };

    let mut private_key = 1;
    while (public_key * private_key) % phi != 1 {
    private_key += 1;
    }

    Self {
    private_key,
    public_key,
    modulus,
    }
    }

    pub fn encrypt(&self, message: BigInt) -> BigInt {
    message.pow(self.public_key as u32) % self.modulus
    }

    pub fn decrypt(&self, encrypted_message: BigInt) -> BigInt {
    encrypted_message.pow(self.private_key as u32) % self.modulus
    }

    // getters

    pub fn get_private_key(&self) -> (u64, u64) {
    (self.private_key, self.modulus)
    }

    pub fn get_public_key(&self) -> (u64, u64) {
    (self.public_key, self.modulus)
    }

    pub fn get_modulus(&self) -> u64 {
    self.modulus
    }
    }

    fn gcd(p0: u64, p1: u64) -> u64 {
    let mut p0 = p0;
    let mut p1 = p1;
    while p1 != 0 {
    let temp = p1;
    p1 = p0 % p1;
    p0 = temp;
    }
    p0
    }

    #[cfg(test)]
    mod tests {
    use super::*;

    #[test]
    fn test_rsa() {
    for _ in 0..100 {
    let key_pair = KeyPair::generate();
    let message = BigInt::from(rand::thread_rng().gen_range(6..key_pair.get_modulus()));
    let encrypted_message = key_pair.encrypt(message.clone());
    let decrypted_message = key_pair.decrypt(encrypted_message.clone());
    assert_eq!(decrypted_message, message);
    println!(
    "public key: ({}, {}), private key: ({}, {}), message: {}, encrypted: {}, decrypted: {}",
    key_pair.get_public_key().0, key_pair.get_public_key().1,
    key_pair.get_private_key().0, key_pair.get_private_key().1,
    message,
    encrypted_message,
    decrypted_message
    )
    }
    }
    }
    +

    单向散列函数

    单向散列函数(也称为消息摘要函数、哈希函数、杂凑函数),用来保证消息的完整性(integrity),也称为一致性。

    +

    输入的消息也称为原像(pre-image)。

    +

    输出的散列值也称为消息摘要(message digest)或者指纹(fingerprint)。

    +

    难以发现碰撞的性质称为抗碰撞性(collision resistance)。

    +

    算法选择

    MD5 是不安全的。

    +

    SHA-1 不应该用于新用途。

    +

    SHA-2 (SHA-256以上) 、SHA-3 是安全的,可以使用。

    +

    消息认证码

    消息认证码(Message Authentication Code)是一种确认完整性并进行认证的技术。

    +

    实现方法

      +
    • 单向散列函数,例如 HMAC。
    • +
    • 分组密码,例如 AES-CMAC。
    • +
    • 其他,例如流密码和公钥密码。
    • +
    +

    数字签名

    使用公钥密码(比如 RSA、椭圆曲线)来实现。

    +
      +
    • 绝对不要对意思不清楚的消息进行签名,可能无意中解密了公钥加密的密文。
    • +
    • 依赖公钥基础设施,公钥必须属于真正的发送者,即使用证书来确认。
    • +
    +

    密钥交换

    Diffie-Hellman

    一个使用小质数实现的简单的 Diffie-Hellman:

    +
    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
    use num::BigInt;
    use rand::thread_rng;
    use rand::Rng;

    const P_AND_G: [(u64, u64); 20] = [
    (7, 3),
    (11, 2),
    (13, 2),
    (17, 3),
    (19, 2),
    (23, 5),
    (29, 2),
    (31, 3),
    (37, 2),
    (41, 6),
    (43, 3),
    (47, 5),
    (53, 2),
    (59, 2),
    (61, 2),
    (67, 2),
    (71, 7),
    (73, 5),
    (79, 3),
    (83, 2),
    ];

    // prime P and generator G
    #[derive(Debug)]
    pub struct PnG {
    prime: u64,
    generator: u64,
    }

    impl PnG {
    pub fn generate() -> Self {
    let (prime, generator) = P_AND_G[thread_rng().gen_range(0..P_AND_G.len())];
    Self { prime, generator }
    }

    pub fn get_prime(&self) -> u64 {
    self.prime
    }

    pub fn get_generator(&self) -> u64 {
    self.generator
    }

    pub fn generate_random_number(&self) -> u64 {
    // generate a number in the range of 1 to prime - 2
    thread_rng().gen_range(1..self.prime - 2)
    }
    }

    #[cfg(test)]
    mod tests {
    use super::*;

    #[test]
    fn test_diffie_hellman() {
    for round in 0..10 {
    let pg = PnG::generate();
    println!(
    "{round}) Prime: {}, Generator: {}",
    pg.get_prime(),
    pg.get_generator()
    );
    let alice_number = pg.generate_random_number();
    let bob_number = pg.generate_random_number();
    println!(
    "{round}) Alice number: {}, Bob number: {}",
    alice_number, bob_number
    );
    let alice_partial_key =
    BigInt::from(pg.get_generator()).pow(alice_number as u32) % pg.get_prime();
    let bob_partial_key =
    BigInt::from(pg.get_generator()).pow(bob_number as u32) % pg.get_prime();
    println!(
    "{round}) Alice partial key: {}, Bob partial key: {}",
    alice_partial_key, bob_partial_key
    );
    let alice_full_key =
    BigInt::from(bob_partial_key).pow(alice_number as u32) % pg.get_prime();
    let bob_full_key =
    BigInt::from(alice_partial_key).pow(bob_number as u32) % pg.get_prime();
    println!(
    "{round}) Alice full key: {}, Bob full key: {}",
    alice_full_key, bob_full_key
    );
    assert_eq!(alice_full_key, bob_full_key);
    }
    }
    }
    +

    椭圆曲线密码

    椭圆曲线密码是利用“椭圆曲线上的离散对数问题”的复杂度来实现的。

    +

    使用了椭圆曲线的 schnorr 的一个简单实现:

    +
    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
    use k256::{NonZeroScalar, ProjectivePoint, PublicKey};
    use rand::rngs::OsRng;

    fn main() {
    // 使用操作系统级别的 RNG
    let mut rng = OsRng;

    // Alice 拥有一个私钥 a,计算公钥 aG
    // 私钥 a
    let a = NonZeroScalar::random(&mut rng);
    // 公钥 aG
    let a_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&a));

    // 知道 G 和 aG,求 a,属于椭圆曲线上的离散对数问题,目前没有有效的解法
    let r = NonZeroScalar::random(&mut rng);
    // Alice 生成一个随机数 r,并计算 R = rG
    let r_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&r));

    // Bob 提供一个挑战 c
    let c = NonZeroScalar::random(&mut rng);

    // Alice 计算响应 z = r + a * c (mod q)
    let ac = a * c; // 计算 a * c
    let z = r.add(&ac);

    let Some(z) = NonZeroScalar::new(z).into() else {
    eprintln!("计算 z 为零。");
    return;
    };

    // Alice 将 z 发送给 Bob,Bob 验证 zG ?= R + c*PK
    let z_g = ProjectivePoint::from(PublicKey::from_secret_scalar(&z));

    // 计算 c * PK
    let c_pk = a_g * *c;

    // 计算 rG + c*PK
    let r_plus_cpk = r_g + c_pk;

    // 验证 zG ?= rG + c*PK
    // c * PK 与 a * c 的关系是?
    // 为什么这个证明是成立的
    // 为什么这个证明是不可伪造的
    // 回答:
    // c * PK = c * a * G = a * c * G = a * c * G = ac * G
    // PK = aG ?
    if z_g == r_plus_cpk {
    println!("验证成功,Alice 证明了她拥有私钥.");
    } else {
    println!("验证失败.");
    }
    }

    // 与 GPT 的交谈:
    // 为什么 Alice 要先生成一个随机数?
    // 答:为了证明她拥有私钥,她需要一个随机数 r,然后计算 R = rG,然后计算 z = r + a * c (mod q)
    // 可以让 Bob 先生成随机数并发送给 Alice 吗?(然后 Alice 再生成 r ,发送 rG)
    // 答:可以,但是这样会暴露 Bob 的私钥,因为 Bob 会发送 c * PK,PK = aG,所以 Bob 的私钥就会暴露
    // 不对啊,Bob 只需要发送 c,不会暴露私钥啊
    // 答:对,Bob 只需要发送 c,不会暴露私钥,但是这样会暴露 Bob 的公钥,Bob 的公钥是 aG,这样会暴露 Bob 的身份
    // 不对啊,aG 是 Alice 使用私钥 a 计算出来的公钥,怎么会是 Bob 的公钥呢?
    // 答:对,我理解错了,Bob 只需要发送 c,不会暴露私钥,也不会暴露公钥,这样是可以的
    // Bob 先发送随机数给 Alice 真的没问题吗?Alice 不会获得没有 a 但是证明她拥有 a 的超能力吗?
    // 答:Alice 不会获得没有 a 但是证明她拥有 a 的超能力,因为 Alice 需要 a 来计算 z = r + a * c (mod q),如果没有 a,Alice 就无法计算 z
    // Alice 不能用假的 a' 来计算 z 吗?一直用假的 a', 是否也能通过验证?
    // 答:不能,因为 Bob 会用 a' 来计算 c * PK,然后验证 zG ?= R + c * PK,如果 a' 是错误的,那么 c * PK 也是错误的,验证就会失败
    // PK 和 zG 都是用 a' 计算出来的,所以 Bob 永远都会验证成功,不管 Alice 用了什么 a',验证都会成功,这样 Alice 是否就获得的超能力
    // 答:不会,因为 Alice 无法计算出正确的 z,验证会失败
    // z' = r + a' * c (mod q),所以 z'G = R + c * a' * G 验证肯定成功吧?
    // 答:不会,因为 c * a' * G != c * a * G,验证会失败
    // 你好像没有理解,如果 Bob 实现发送了挑战 c,Alice 可以使用任何除了 a 之外的密钥替换 a(比如 a'),这样整个流程只是证明了 Alice 拥有一个密钥(这个密钥并不一定是 a)
    // 答:对,我理解错了,如果 Bob 先发送了挑战 c,Alice 可以使用任何除了 a 之外的密钥替换 a(比如 a'),这样整个流程只是证明了 Alice 拥有一个密钥(这个密钥并不一定是 a)
    // 所以 Alice 即使没有任何密钥,她临时编造一个,在这种情况下,Bob 永远都无法验证 Alice 是否拥有私钥,这样 Alice 就获得了超能力
    // 所以顺序不能调换,对吗?
    // 答:对,顺序不能调换,Alice 必须先生成一个随机数 r,然后计算 R = rG,然后计算 z = r + a * c (mod q),然后发送 z 给 Bob,Bob 验证 zG ?= R + c * PK
    + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    目标

    从今天开始,学习零知识证明相关知识,暂定 3 个月(到2024年7月26日完成)的学习目标为:

    +
      +
    1. 完成零知识证明常见算法、实现的学习,至少能够知道它们解决的是什么问题,分别适用于什么业务场景。
    2. +
    3. 学会并熟练掌握使用至少一个流行的 Rust 零知识证明库。
    4. +
    5. 参与至少一个零知识证明的(开源?)项目,需要提交有质量的代码。
    6. +
    +
    +

    初步计划

    V20240426

      +
    1. 第一个月: World of Z2O-K7E 的学习;产出为“能够在朋友、同事甚至是小学生(如果我有幸能认识一个愿意听我讲的)面前把学到的哲学、原理、应用讲出来,讲清楚”。
    2. +
    3. 第二个月: 完成 World of Z2O-K7E 的学习并开始学习 Rust 相关库,写 demo;学习产出参考上一个月,写 demo 的产出为能够全面反映该 Rust 库的各种功能的一个 repo。
    4. +
    5. 第三个月: 继续写 demo,看相关开源项目源码,参与项目;产出物为 项目地址 / commit / PR 记录等等。
    6. +
    +
    +

    介于本人在该领域是完全的“零知识”,以上仅为初步计划,如果有任何修改(即使是放弃)都需要更新本文。

    +
    +

    20240530

    一个多月了,公司的事有点烦。实际上我话太少,并没有找人验证过我是否能证明我能讲出所有我学到的东西,目前学习进度并不快,只是能够把 RSA 和 schnorr 的流程完整复述出来(并用小质数作为例子介绍)。报了一个课,希望能学到我想学的东西,后面打算整理这个课的笔记了。继续加油!

    + + +
    + + + + +
    +
    +
    +
    + + + + + + + +
    + + + + + +
    +

    + + +

    + + +
    + + + + +
    + + +

    定义

      +
    • $S$、$R$ 为关系模式,$s$、$r$ 为关系实例。
    • +
    • 要计算关系除法,需要满足 $S ⊆ R$。
    • +
    • 给定一个元组 $t$,令 $t[S]$ 代表元组 $t$ 在 $S$ 中属性上的投影;那么,$r ÷ s$ 是 $R-S$ 模式的一个关系。
    • +
    • 元组 $t$ 在 $r ÷ s$ 中的充要条件是满足以下两个
        +
      1. $t$ 在 $Π_{R-S}(r)$ 中
      2. +
      3. 对于 $s$ 中的每个元组 $t_s$,在 $r$ 中存在一个元组 $t_r$ 且满足:
          +
        • $t_r[S] = t_s[S]$
        • +
        • $t_r[R-S] = t$
        • +
        +
      4. +
      +
    • +
    • 例子:
    • +
    +

    $r$:

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A1A2
    ae
    af
    be
    bg
    ce
    cf
    df
    +
    +

    $s$:

    +
    + + + + + + + + + + + + + + +
    A2
    e
    f
    +
    +

    $r ÷ s$:

    +
    + + + + + + + + + + + + + + +
    A1
    a
    c
    +
    +

    公式

    关系代数除法可以使用其它关系代数运算替代:

    +

    用上一节的例子就是:

    +
    + + + + + + + + + + + + + + + + + + + + +
    A1
    a
    b
    c
    d
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A1A2
    ae
    af
    be
    bf
    ce
    cf
    de
    df
    +
    +
    +

    公式中是为了计算差($-$)的时候两个操作数模式相同,对 $r$ 做了一下模式的颠倒,其实还是 $r$。

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    A1A2
    ae
    af
    be
    bg
    ce
    cf
    df
    +
    +
    +
    + + + + + + + + + + + + + + + + + +
    A1A2
    bf
    de
    +
    +
    +
    + + + + + + + + + + + + + + +
    A1
    b
    d
    +
    +
    +
    + + + + + + + + + + + + + + +
    A1
    a
    c
    +
    + + +
    + + + + +
    +
    +
    +
    + + + + + + + + + + +
    + + + + +
    + + + + + + + + +
    +
    + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/js/algolia-search.js b/js/algolia-search.js new file mode 100644 index 0000000..01a5f0b --- /dev/null +++ b/js/algolia-search.js @@ -0,0 +1,124 @@ +/* global instantsearch, algoliasearch, CONFIG */ + +document.addEventListener('DOMContentLoaded', () => { + const algoliaSettings = CONFIG.algolia; + const { indexName, appID, apiKey } = algoliaSettings; + + let search = instantsearch({ + indexName, + searchClient : algoliasearch(appID, apiKey), + searchFunction: helper => { + let searchInput = document.querySelector('.search-input'); + if (searchInput.value) { + helper.search(); + } + } + }); + + window.pjax && search.on('render', () => { + window.pjax.refresh(document.getElementById('algolia-hits')); + }); + + // Registering Widgets + search.addWidgets([ + instantsearch.widgets.configure({ + hitsPerPage: algoliaSettings.hits.per_page || 10 + }), + + instantsearch.widgets.searchBox({ + container : '.search-input-container', + placeholder : algoliaSettings.labels.input_placeholder, + // Hide default icons of algolia search + showReset : false, + showSubmit : false, + showLoadingIndicator: false, + cssClasses : { + input: 'search-input' + } + }), + + instantsearch.widgets.stats({ + container: '#algolia-stats', + templates: { + text: data => { + let stats = algoliaSettings.labels.hits_stats + .replace(/\$\{hits}/, data.nbHits) + .replace(/\$\{time}/, data.processingTimeMS); + return `${stats} + + Algolia + +
    `; + } + } + }), + + instantsearch.widgets.hits({ + container: '#algolia-hits', + templates: { + item: data => { + let link = data.permalink ? data.permalink : CONFIG.root + data.path; + return `${data._highlightResult.title.value}`; + }, + empty: data => { + return `
    + ${algoliaSettings.labels.hits_empty.replace(/\$\{query}/, data.query)} +
    `; + } + }, + cssClasses: { + item: 'algolia-hit-item' + } + }), + + instantsearch.widgets.pagination({ + container: '#algolia-pagination', + scrollTo : false, + showFirst: false, + showLast : false, + templates: { + first : '', + last : '', + previous: '', + next : '' + }, + cssClasses: { + root : 'pagination', + item : 'pagination-item', + link : 'page-number', + selectedItem: 'current', + disabledItem: 'disabled-item' + } + }) + ]); + + search.start(); + + // Handle and trigger popup window + document.querySelectorAll('.popup-trigger').forEach(element => { + element.addEventListener('click', () => { + document.body.style.overflow = 'hidden'; + document.querySelector('.search-pop-overlay').classList.add('search-active'); + document.querySelector('.search-input').focus(); + }); + }); + + // Monitor main search box + const onPopupClose = () => { + document.body.style.overflow = ''; + document.querySelector('.search-pop-overlay').classList.remove('search-active'); + }; + + document.querySelector('.search-pop-overlay').addEventListener('click', event => { + if (event.target === document.querySelector('.search-pop-overlay')) { + onPopupClose(); + } + }); + document.querySelector('.popup-btn-close').addEventListener('click', onPopupClose); + window.addEventListener('pjax:success', onPopupClose); + window.addEventListener('keyup', event => { + if (event.key === 'Escape') { + onPopupClose(); + } + }); +}); diff --git a/js/bookmark.js b/js/bookmark.js new file mode 100644 index 0000000..7c2438e --- /dev/null +++ b/js/bookmark.js @@ -0,0 +1,56 @@ +/* global CONFIG */ + +document.addEventListener('DOMContentLoaded', () => { + 'use strict'; + + var doSaveScroll = () => { + localStorage.setItem('bookmark' + location.pathname, window.scrollY); + }; + + var scrollToMark = () => { + var top = localStorage.getItem('bookmark' + location.pathname); + top = parseInt(top, 10); + // If the page opens with a specific hash, just jump out + if (!isNaN(top) && location.hash === '') { + // Auto scroll to the position + window.anime({ + targets : document.scrollingElement, + duration : 200, + easing : 'linear', + scrollTop: top + }); + } + }; + // Register everything + var init = function(trigger) { + // Create a link element + var link = document.querySelector('.book-mark-link'); + // Scroll event + window.addEventListener('scroll', () => link.classList.toggle('book-mark-link-fixed', window.scrollY === 0)); + // Register beforeunload event when the trigger is auto + if (trigger === 'auto') { + // Register beforeunload event + window.addEventListener('beforeunload', doSaveScroll); + window.addEventListener('pjax:send', doSaveScroll); + } + // Save the position by clicking the icon + link.addEventListener('click', () => { + doSaveScroll(); + window.anime({ + targets : link, + duration: 200, + easing : 'linear', + top : -30, + complete: () => { + setTimeout(() => { + link.style.top = ''; + }, 400); + } + }); + }); + scrollToMark(); + window.addEventListener('pjax:success', scrollToMark); + }; + + init(CONFIG.bookmark.save); +}); diff --git a/js/local-search.js b/js/local-search.js new file mode 100644 index 0000000..31f945f --- /dev/null +++ b/js/local-search.js @@ -0,0 +1,278 @@ +/* global CONFIG */ + +document.addEventListener('DOMContentLoaded', () => { + // Popup Window + let isfetched = false; + let datas; + let isXml = true; + // Search DB path + let searchPath = CONFIG.path; + if (searchPath.length === 0) { + searchPath = 'search.xml'; + } else if (searchPath.endsWith('json')) { + isXml = false; + } + const input = document.querySelector('.search-input'); + const resultContent = document.getElementById('search-result'); + + const getIndexByWord = (word, text, caseSensitive) => { + if (CONFIG.localsearch.unescape) { + let div = document.createElement('div'); + div.innerText = word; + word = div.innerHTML; + } + let wordLen = word.length; + if (wordLen === 0) return []; + let startPosition = 0; + let position = []; + let index = []; + if (!caseSensitive) { + text = text.toLowerCase(); + word = word.toLowerCase(); + } + while ((position = text.indexOf(word, startPosition)) > -1) { + index.push({ position, word }); + startPosition = position + wordLen; + } + return index; + }; + + // Merge hits into slices + const mergeIntoSlice = (start, end, index, searchText) => { + let item = index[index.length - 1]; + let { position, word } = item; + let hits = []; + let searchTextCountInSlice = 0; + while (position + word.length <= end && index.length !== 0) { + if (word === searchText) { + searchTextCountInSlice++; + } + hits.push({ + position, + length: word.length + }); + let wordEnd = position + word.length; + + // Move to next position of hit + index.pop(); + while (index.length !== 0) { + item = index[index.length - 1]; + position = item.position; + word = item.word; + if (wordEnd > position) { + index.pop(); + } else { + break; + } + } + } + return { + hits, + start, + end, + searchTextCount: searchTextCountInSlice + }; + }; + + // Highlight title and content + const highlightKeyword = (text, slice) => { + let result = ''; + let prevEnd = slice.start; + slice.hits.forEach(hit => { + result += text.substring(prevEnd, hit.position); + let end = hit.position + hit.length; + result += `${text.substring(hit.position, end)}`; + prevEnd = end; + }); + result += text.substring(prevEnd, slice.end); + return result; + }; + + const inputEventFunction = () => { + if (!isfetched) return; + let searchText = input.value.trim().toLowerCase(); + let keywords = searchText.split(/[-\s]+/); + if (keywords.length > 1) { + keywords.push(searchText); + } + let resultItems = []; + if (searchText.length > 0) { + // Perform local searching + datas.forEach(({ title, content, url }) => { + let titleInLowerCase = title.toLowerCase(); + let contentInLowerCase = content.toLowerCase(); + let indexOfTitle = []; + let indexOfContent = []; + let searchTextCount = 0; + keywords.forEach(keyword => { + indexOfTitle = indexOfTitle.concat(getIndexByWord(keyword, titleInLowerCase, false)); + indexOfContent = indexOfContent.concat(getIndexByWord(keyword, contentInLowerCase, false)); + }); + + // Show search results + if (indexOfTitle.length > 0 || indexOfContent.length > 0) { + let hitCount = indexOfTitle.length + indexOfContent.length; + // Sort index by position of keyword + [indexOfTitle, indexOfContent].forEach(index => { + index.sort((itemLeft, itemRight) => { + if (itemRight.position !== itemLeft.position) { + return itemRight.position - itemLeft.position; + } + return itemLeft.word.length - itemRight.word.length; + }); + }); + + let slicesOfTitle = []; + if (indexOfTitle.length !== 0) { + let tmp = mergeIntoSlice(0, title.length, indexOfTitle, searchText); + searchTextCount += tmp.searchTextCountInSlice; + slicesOfTitle.push(tmp); + } + + let slicesOfContent = []; + while (indexOfContent.length !== 0) { + let item = indexOfContent[indexOfContent.length - 1]; + let { position, word } = item; + // Cut out 100 characters + let start = position - 20; + let end = position + 80; + if (start < 0) { + start = 0; + } + if (end < position + word.length) { + end = position + word.length; + } + if (end > content.length) { + end = content.length; + } + let tmp = mergeIntoSlice(start, end, indexOfContent, searchText); + searchTextCount += tmp.searchTextCountInSlice; + slicesOfContent.push(tmp); + } + + // Sort slices in content by search text's count and hits' count + slicesOfContent.sort((sliceLeft, sliceRight) => { + if (sliceLeft.searchTextCount !== sliceRight.searchTextCount) { + return sliceRight.searchTextCount - sliceLeft.searchTextCount; + } else if (sliceLeft.hits.length !== sliceRight.hits.length) { + return sliceRight.hits.length - sliceLeft.hits.length; + } + return sliceLeft.start - sliceRight.start; + }); + + // Select top N slices in content + let upperBound = parseInt(CONFIG.localsearch.top_n_per_article, 10); + if (upperBound >= 0) { + slicesOfContent = slicesOfContent.slice(0, upperBound); + } + + let resultItem = ''; + + if (slicesOfTitle.length !== 0) { + resultItem += `
  • +
    + +
    +
    + + +
    + + + +

    耿腾的博客

    + +
    +

    常期望安定,还期望即兴。

    +
    + + +
    + + + + + + + + + +
    +
    + + +
    + + 0% +
    +
    + + +
    +
    +
    + + +
    + + + + + +
    + + + + + +
    +

    + 零成本异步IO +

    + + +
    + + + + +
    + + +
    +

    这是 Withoutboats 在 2019 年 3 月的 Rust Latam 上所做报告的一个整理。这个报告主要介绍他参与开发了一年半的语言特性,包括 Rust 异步 I/O 的发展历程,以及目前已经稳定的零成本抽象的async/await 语法的关键实现原理。

    +

    Withoutboats 是就职于 Mozilla 的一名研究员,主要从事 Rust 语言开发。他开发的这个语言特性叫做 async/await,这可能是本年度我们在 Rust 语言上做的最重要的事。这解决了困扰我们很久的问题,即我们如何能在 Rust 中拥有零成本抽象的异步IO。

    +

    注:因个人水平有限,翻译和整理难免有错误或疏漏之处,欢迎读者批评指正。

    +
    +

    async/await

    首先,介绍一下 async/await

    +

    async 是一个修饰符,它可以应用在函数上,这种函数不会在调用时一句句运行完成,而是立即返回一个 Future 对象,这个 Future 对象最终将给出这个函数的实际返回结果。而在一个这样的 async 函数中,我们可以使用await运算符,将它用在其它会返回 Future 的函数上,直到那些 Future 返回实际结果。通过这种方法,异步并发开发更加方便了。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    let user = await db.get_user("withoutboats");

    impl Database {
    async fn get_user(&mut self, user: &str) -> User {
    let sql = format!("select FROM users WHERE username = {}", user);
    let db_response = await self.query(&sql);
    User::from(db_response)
    }
    }
    +

    这是一段简短的代码样例,我们具体解释一下 Future 。这段代码基本上做的就是一种类似于 ORM 框架所作的事。你有一个叫 get_user 的函数,它接受一个字符串类型的用户名参数,并通过在数据库中查找对应用户的记录来返回一个User对象。它使用的是异步 I/O ,这意味着它得是一个异步函数,而不是普通函数,因此当你调用它时,你可以异步等待(await)它;然后我们看一下函数的实现,首先是用用户名参数拼接出要执行的 SQL 语句,然后是查询数据库,这就是我们实际执行 I/O 的地方,所以这个查询(query)返回的是 Future ,因为它使用的是异步 I/O 。所以在查询数据库时,你只需要使用异步等待(await)来等待响应,在获得响应后就可以从中解析出用户。这个函数看起来像个玩具,但我想强调的是,它与使用阻塞式 I/O 的唯一区别就是这些注解(指async/await)了,你只需将函数标记为异步(async),并在调用它们时加上 await 就行了,开发的心智负担很小,以至于你会忘了自己是在写异步 I/O 而不是阻塞 I/O 。而 Rust 的这种实现让我尤其感到兴奋的是,它的 async/awaitFuture 都是零成本抽象的。

    +

    零成本抽象

    零成本抽象是 Rust 比较独特的一项准则,这是使 Rust 与其他许多语言相区别的原因之一。在添加新功能时,我们非常关心这些新功能是不是零成本的。不过这并不是我们想出来的点子,它在 C++ 中也很重要,所以我认为最好的解释是 Bjarne Stroustrup 的这句话:

    +
    +

    零成本抽象意味着你不使用的东西,你不用为它付出任何代价,进一步讲,你使用的东西,你无法写出比这更好的代码。

    +

    Zero Cost Abstractions: What you don’t use, you don’t pay for. And further: What you do use, you couldn’t hand code any better.

    +
    +

    也就是说零成本抽象有两个方面:

    +
      +
    1. 该功能不会给不使用该功能的用户增加成本,因此我们不能为了增加新的特性而增加那些会减慢所有程序运行的全局性开销。
    2. +
    3. 当你确实要使用该功能时,它的速度不会比不使用它的速度慢。如果你觉得,我想使用这个非常好用的功能把开发工作变得轻松,但是它会使我的程序变慢,所以我打算自己造一个,那么这实际上是带来了更大的痛苦。
    4. +
    +

    所以,我将回顾一下我们如何尝试解决异步 I/O 和 Rust 的问题,以及在我们实现这一目标的过程中,某些未能通过这两项零成本测试的特性。

    +

    绿色线程的尝试

    我们要解决的问题是 异步 I/O 。通常 I/O 处于阻塞状态,因此当你使用 I/O 时,它会阻塞线程,中止你的程序,然后必须通过操作系统重新调度。阻塞式 I/O 的问题是当你尝试通过同一程序提供大量连接时,它无法真正实现扩展。因此对于真正的大规模网络服务,你需要某种形式的非阻塞的或者说异步的 I/O 。尤其是 Rust 是针对具有真正的高性能要求而设计的语言,它是一种系统编程语言,面向那些真正在乎计算资源的人。要在网络的世界中真正取得成功,我们就需要某种解决方案来解决这个异步 I/O 问题。

    +

    但是 异步 I/O 的最大问题是它的工作方式 :在你调用 I/O 时,系统调用会立即返回,然后你可以继续进行其他工作,但你的程序需要决定如何回到调用该异步 I/O 暂停的那个任务线上,这就使得在编码上,异步 I/O 的代码要比阻塞 I/O 的代码复杂得多。所以,很多,尤其是以可扩展的网络服务这类特性为目标的语言,一直在试图解决这个问题。比如,让它不再是最终用户需要解决的问题,而是编程语言的一部分或者某个库的一部分等等。

    +

    Rust 最初使用的第一个解决方案是 绿色线程,它已经在许多语言中获得成功。绿色线程基本上就像阻塞式 I/O 一样,使用的时候就像是普通的线程,它们会在执行 I/O 时阻塞,一切看起来就跟你在使用操作系统的原生方式一样。但是,它们被设计为语言运行时的一部分,来对那些需要同时运行成千上万甚至数百万个绿色线程的网络服务用例进行优化。一个使用该模型的典型的成功案例就是 Go 语言,它的绿色线程被称为 goroutine。对于 Go 程序来说,同时运行成千上万个 goroutine 是很正常的,因为与操作系统线程不同,创建它们的成本很低。

    +
    + + + + + + + + + + + + + + + + + + + + +
    操作系统线程绿色线程
    内存开销较大的堆栈,增加大量内存占用初始堆栈非常小
    CPU开销上下文切换至操作系统的调度器,成本很高由程序本身的运行时调度
    +
    +

    绿色线程的优点 在于,产生操作系统线程时的内存开销要高得多,因为每个操作系统线程会创建一个很大的堆栈,而绿色线程通常的工作方式是,你将产生一个以很小的堆栈,它只会随着时间的推移而增长,而产生一堆不使用大量内存的新线程并不便宜;并且使用类似操作系统原语的问题还在于你依赖于操作系统调度,这意味着你必须从程序的内存空间切换到内核空间,如果成千上万的线程都在快速切换,上下文切换就会增加很多开销。而将调度保持在同一程序中,你将避免使用这些上下文,进而减少开销。所以我相信绿色线程是一个非常好的模型,适用于许多语言,包括 Go 和 Java。

    +

    在很长一段时间内, Rust 都有绿色线程,但是在 1.0 版本之前删掉了。我们删掉它是因为它不是零成本抽象的,准确的说就是我在第一个问题中谈到的,它给那些不需要它的人增加了成本。比如你只想编写一个不是网络服务的屏幕打印的 Rust 程序,你必须引入负责调度所有绿色线程的语言运行时。这种方法,尤其是对于试图把 Rust 集成到一个大的 C 应用程序中的人来说,就成为一个问题。很多 Rust 的采用者拥有一些大型C程序,他们想开始使用 Rust 并将 Rust 集成到他们的程序中,只是一小段 Rust 代码。问题是,如果你必须设置运行时才能调用 Rust ,那么这一小部分的 Rust 程序的成本就太高了。因此从 1.0 开始,我们就从语言中删除了绿色线程,并删除了语言的运行时。现在我们都知道它的运行时与 C 基本上相同,这就使得在 Rust 和 C 之间调用非常容易,而且成本很低,这是使 Rust 真正成功的关键因素之一。删除了绿色线程,我们还是需要某种异步 I/O 解决方案;但是我们意识到 这应该是一个基于库的解决方案,我们需要为异步 I/O 提供良好的抽象,它不是语言的一部分,也不是每个程序附带的运行时的一部分,只是可选的并按需使用的库。

    +

    Future 的解决方案

    最成功的库解决方案是一个叫做 Future 的概念,在 JavaScript 中也叫做 PromiseFuture 表示一个尚未得出的值,你可以在它被解决(resolved)以得出那个值之前对它进行各种操作。在许多语言中,对 Future 所做的工作并不多,这种实现支持很多特性比如组合器(Combinator),尤其是能让我们在此基础上实现更符合人体工程学的 async/await 语法。

    +

    Future 可以表示各种各样的东西,尤其适用于表示异步 I/O :当你发起一次网络请求时,你将立即获得一个 Future 对象,而一旦网络请求完成,它将返回任何响应可能包含的值;你也可以表示诸如“超时”之类的东西,“超时”其实就是一个在过了特定时间后被解决的 Future ;甚至不属于 I/O 的工作或者需要放到某个线程池中运行的CPU密集型的工作,也可以通过一个 Future 来表示,这个 Future 将会在线程池完成工作后被解决。

    +
    1
    2
    3
    4
    5
    trait Future {
    type Output;
    fn schedule<F>(self, callback: F)
    where F: FnOnce(Self::Output);
    }
    +

    Future 存在的问题 是它在大多数语言中的表示方式是这种基于回调的方法,使用这种方式时,你可以指定在 Future 被解决之后运行什么回调函数。也就是说, Future 负责弄清楚什么时候被解决,无论你的回调是什么,它都会运行;而所有的不便也都建立在此模型上,它非常难用,因为已经有很多开发者进行了大量的尝试,发现他们不得不写很多分配性的代码以及使用动态派发;实际上,你尝试调度的每个回调都必须获得自己独立的存储空间,例如 crate 对象、堆内存分配,这些分配以及动态派发无处不在。这种方法没有满足零成本抽象的第二个原则,如果你要使用它,它将比你自己写要慢很多,那你为什么还要用它。

    +

    基于轮询的解决方案

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // 基于轮询的 Future

    trait Future {
    type Output;
    fn poll(&mut self, waker: &Waker)
    -> Poll<Self::Output>;
    }

    enum Poll<T> {
    Ready(T),
    Pending,
    }
    +

    这个非常出色的基于轮询的新方案——我们编写了这个模型,我归功于 Alex 和 Aaron Turon,是他们提出了这个想法——不是由 Future 来调度回调函数,而是由我们去轮询 Future,所以还有另一个被称为执行器(executor)的组件,它负责实际运行 Future ;执行器的工作就是轮询 Future ,而 Future 可能返回“尚未准备就绪(Pending)”,也可能被解决就返回“已就绪(Ready)”。

    +

    该模型有很多优点。其中一个优点是,你可以非常容易地取消 Future ,因为取消 Future 只需要停止持有 Future。而如果采用基于回调的方法,要通过调度来取消并使其停止就没这么容易了。

    +

    同时它还能够使我们在程序的不同部分之间建立真正清晰的抽象边界,大多数 Future 库都带有事件循环(event loop),这也是调度你的 Future 执行 I/O 的方法,但你实际上对此没有任何控制权。而在 Rust 中,各组件之间的边界非常整洁,执行器(executor)负责调度你的 Future ,反应器(reactor)处理所有的 I/O ,然后是你的实际代码。因此最终用户可以自行决定使用什么执行器,使用他们想使用的反应器,从而获得更强的控制力,这在系统编程语言中真的很重要。而此模型最重要的真正优势在于,它使我们能够以一种真正零成本的完美方式实现这种状态机式的 Future 。也就是当你编写的 Future 代码被编译成实际的本地(native)代码时,它就像一个状态机;在该状态机中,每次 I/O 的暂停点都有一个变体(variant),而每个变体都保存了恢复执行所需的状态。这表示为一个枚举(enum)结构,即一个包含变体判别式及所有可能状态的联合体(union)。

    +

    StateMachines

    +
    +

    译者注:报告视频中的幻灯片比较模糊,我对其进行了重绘与翻译,下同。

    +
    +

    上面的幻灯片尽可能直观地表示了这个状态机模型。可以看到,你执行了两个 I/O 事件,所以它有这几个状态。对于每个状态它都提供了所需的内存空间,足够你在 I/O 事件后恢复执行。

    +

    整个 Future 只需要一次堆内存分配,其大小就是你将这个状态机分配到堆中的大小,并且没有额外的开销。你不需要装箱、回调之类的东西,只有真正零成本的完美模型。这些概念对于很多人来说比较难于理解,所以这是我力求做到最好的幻灯片,直观地呈现这个过程中发生了什么:你创建一个 Future,它被分配到某个内存中特定的位置,然后你可以在执行器(executor)中启动它。

    +

    PollWakeCycle1

    +

    执行器会轮询 Future,直到最终 Future 需要执行某种 I/O 。

    +

    PollWakeCycle2

    +

    在这种情况下,该 Future 将被移交给处理 I/O 的反应器,即 Future 会等待该特定 I/O 。最终,在该 I/O 事件发生时,反应器将使用你在轮询它时传递的Waker 参数唤醒 Future ,将其传回执行器;

    +

    PollWakeCycle3

    +

    然后当需要再次执行I/O时,执行器再将其放回反应器;它将像这样来回穿梭,直到最终被解决(resolved)。在被解决并得出最终结果时,执行器知道它已经完成,就会释放句柄和整个Future,整个调用过程就完成了。

    +

    PollWakeCycle4

    +

    总结一下:这种模型形成了一种循环,我们轮询 Future ,然后等待 I/O 将其唤醒,然后一次又一次地轮询和唤醒,直到最终整个过程完成为止。

    +

    PollWakeCycle

    +

    并且这种模型相当高效。

    +

    QuiteFast

    +

    这是在有关 Future 的第一篇文章中发布的基准测试,与其他语言的许多不同实现进行了对比。柱形越高表示性能越好,我们的 Future 模型在最左侧,所以说我们有了非常出色的零成本抽象,即使是与许多其他语言中最快的异步 I/O 实现相比也是相当有竞争力的。

    +

    但是,问题在于,你并不希望手动编写这些状态机,把整个应用程序所有状态写成一个状态机并不是件轻松愉快的事。而这种 Future 抽象的真正有用之处在于,我们可以在其之上构建其他 API 。

    +

    其它API

    组合器(Combinator)

    我们能使用的第一个解决方案是 Future 组合器(Combinator)。你可以通过将这些组合器方法应用于 Future 来构建状态机,它们的工作方式类似于迭代器(Iterator)的适配器(如 filtermap)。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    fn fetch_rust_lang(client: Client)
    -> impl Future<Output = String> {
    client.get("rust-lang.org").and_then(|response| {
    response.concat_body().map(|body| {
    String::from_utf8_lossy(body)
    })
    })
    }
    +

    这个函数的作用是请求 “rust-lang.org”,然后将响应转换为字符串。它并不返回一个字符串,而是返回一个字符串的 Future ,因为它是一个异步函数。函数体中有这样一个 Future,它包含一些会被调用的 I/O 操作,用 and_thenmap 之类的组合器将这些操作全部组合在一起。我们构建了所有这些用处各异的组合器,例如,and_thenmapfiltermap_error等等。我们已经知道这种方式是有一些缺点的,尤其是诸如嵌套回调之类,可读性非常差。

    +

    async / await 的实现

    因为组合器有这样的缺点,所以我们开始尝试实现 async / awaitasync / await 的第一个版本并不是 Rust 语言的一部分,而是由该库像语法插件一样提供的。

    +
    1
    2
    3
    4
    5
    6
    #[async]
    fn fetch_rust_lang(client: Client) -> String {
    let response = await!(client.get("rust-lang.org"));
    let body = await!(response.concat_body());
    String::from_utf9_lossy(body)
    }
    +

    这个函数与之前那个版本的一样,它只是获取 Rust 官网并将其转换为字符串;但是它使用 async / await 来实现,所以更像是顺序执行,看起来更像普通的阻塞 I/O 的工作方式;就像开头那个实例中呈现的一样,它们唯一区别是注解(指 async / await)。我们已经知道,async 注解会将此函数转换为一个返回 Future 的函数,而不是立即返回结果,并且我们需要异步等待(await)这些在函数内部构造的 Future

    +
    1
    2
    3
    4
    5
    6
    7
    8
    await!($future) => {
    loop {
    match $future.poll() {
    Poll::Pending => yield Poll::Pending,
    Poll::Ready(value) => break value,
    }
    }
    }
    +

    在我们的轮询模型中,await 是一种语法糖;它会进入上面这种循环,你要做的就是在循环中轮询,在一段时间内你将一直得到“尚未准备就绪(Pending)”,然后一直等到它再次被唤醒,终于你等待的 Future 完成了,然后你使用该值跳出了循环,这就是这些 await 表达式的计算结果。

    +

    这似乎是一个非常不错的解决方案,async / await 的写法会被编译成我们超棒的零成本的 Future。不过从已发布的 Future 的使用者的反馈看,我们还是发现了一些问题。

    +

    新的问题

    基本上所有试图使用 Future 的人都会遇到非常令人困惑的错误消息。在这些消息中,编译器会提示你的Future的生命周期不是静态的('static)或没有实现某个 trait 等等;这些提示你并不真正理解,但编译器想提出有用的建议,你也就跟着这个建议去做,直到编译成功;你可能会给闭包加上 move 关键字,或者把某些值放到引用计数的指针(Rc)中,然后将复制(clone)它;你将所有这些开销添加到了似乎并不必要的事情上,却不明白为什么要这样做,而当你已经疲于处理这些时,代码已经乱成一锅粥了,所以很多人都被 Future 的问题卡住了。

    +

    CombinatorChain

    +

    而且它对于组合器产生这种非常大的类型也没什么办法,你的整个终端窗口(terminal)将被其中一个组合器链的类型填满。你用了and_then,以及又一个 and_then,然后是 map_err 紧跟一个 TCP 流等等等等,你必须仔细研究一下,才能弄清楚所遇到的实际错误是什么。

    +
    +

    “When using Futures, error messages are inscrutable.”
    “当使用 Future 时,错误信息难以理解。”
    “Having to use RefCell or clone everything for each future leads to overcomplicated code that makes me wish Rust had garbage collection.”
    “不得不使用 RefCell 以及为每个 future 克隆所有它需要的值产生了过于复杂的代码,这让我开始期待 Rust 能具备垃圾回收功能了。”

    +
    +

    我在 reddit 上发现了这条消息,我认为它确实很好地总结了所有有关 Future 的抱怨。使用 Future 时,错误消息难以理解;不得不使用 RefCell 以及为每个 future 克隆所有它需要的值产生了过于复杂的代码,这让我开始期待 Rust 能具备垃圾回收功能了(观众笑)。是的,这不是什么好反馈。

    +

    因此,从大约一年半前的情况来看,很明显,有两个问题需要解决,才能让大家更容易使用。

    +

    首先,我们需要更好的错误消息,最简单的方法就是将语法构建到语言中,然后它们就可以在你所有的诊断和错误处理代码中加入钩子,从而使你能够真正拥有良好的 async / await 的错误消息。其次,人们遇到的大多数错误实际上是因为他们被一个晦涩难解的问题卡住了——借用问题。正是因为 Future 的设计方式存在着这种根本的局限性,导致一些很普通的编程范式都无法表达。所谓借用问题,就是在最初的 Future 的设计中你不能跨过异步等待点(await point)进行借用,也就是说,如果你要异步等待(await)某件事,你就不能在那个时候持有任何存活的引用。当人们遇到了这种问题,他们通常会被卡住,最终他们会尝试在 await 的时候进行借用然后发现实际上做不到。所以如果我们能够使这种借用被允许,那么大多数这些错误将消失,一切都将变得更易于使用,你可以使用 asyncawait 编写普通的 Rust 代码,并且一切都会正常进行。

    +

    这种跨越 await 的借用是非常普遍的,因为 Rust 的 API 天然就具有引用。当你实际编译 Future 时,它必须能够恢复所有状态,而当你拥有某些其它东西的引用时,它们位于同一栈帧中,最终你会得到一个自引用Future 结构(Self-Referential Future)。这是开头的那个 get_user 方法,我们有这样一个 SQL 字符串,而在使用 SQL 字符串调用 query 方法时,我们传递的是 SQL 字符串的引用。

    +
    1
    2
    let sql: String = format!("SELECT FROM users WHERE username = {}", user);
    let db_response = await self.query(&sql);
    +

    这里存在的问题是,对 SQL 字符串的引用是对存储在相同 Future 状态中的其他内容的引用,因此它成为一种自引用结构。

    +

    SelfReferentialFuture

    +

    如果把这个 Future 视作一个真的结构体的话,这就是理论上它所拥有的字段。除了代表数据库句柄的 self 之外,还有 SQL 字符串以及对这个 SQL 字符串的引用,即一个最终指回同一结构体中某个字段的引用。

    +

    一些新的潜在结构会成为非常棘手的问题,因为我们没有通用的解决方案。当你移动该结构时,我们不允许你使用自引用,是因为我们会在新位置创建一个原有结构的新副本,旧副本会变为无效,但是在复制时,新副本的引用仍指向旧副本的字段,该指针就变成了悬空指针(dangling pointer),而这正是 Rust 必须避免的内存问题。

    +

    DanglingPointer

    +

    所以我们不能使用自引用结构,因为如果你移动它们,那么它们将失效。然而,我们实际上并不需要真正移动这些 Future 。如果你还记得在堆中通过句柄使用 Future 的模型,它在反应器和执行器之间来回传递,所以 Future 本身永远不会真正移动;而只要你保证不移动,Future 包含自引用就完全没问题。

    +

    所以我们需要通过采用某种方式在 Future 的 API 中表达 “在你轮询时,你不允许随意移动它” 来解决这个问题。如果我们能够表达这一点,我们就可以允许 Future 中出现自引用,进而就可以在异步函数中真正使用这些引用,并且一切都会正常工作。因此我们研究了这个问题,最终开发出了被称为 Pin 的新 API 。

    +

    Pin

    Pin 是一种围绕其他指针类型的适配器,可以将其它指针变为 固定引用(pinned reference)。除了原有指针的保证外,它还保证这个引用再也不会被移动,所以我们可以确保它将一直处在同一内存位置,直到最终被释放。如果你的 API 中有一些内容已表明必须使用 Pin,那么你就知道了它再也不会被移动,这样就你可以使用那种自引用的结构体了。因此,我们修改了 Future 的工作方式,现在它变成了一个经过装箱(boxed)的 Future ,实际上是一个由 Pin 封装的 Box<Future> ;这样无论在哪里装箱,我们把它放在堆内存中,它可以保证永远不会再移动;而当你轮询 Future 时,不再使用一个普通引用,而是使用一个固定引用,这样 Future 就知道它不会被移动。而使这一切起作用的诀窍是,要从固定引用中获取非固定引用,你只能使用不安全的代码。

    +
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    struct Pin<P>(P);

    impl<T> Pin<Box<T>> {
    fn new(boxed: Box<T>) -> Pin<Box<T>> { ... }
    fn as_mut(self) -> Pin<&mut T> { ... }
    }

    impl<T> Pin<&mut T> {
    unsafe fn get_unchecked_mut(self) -> &mut T { ... }
    }
    +

    所以 Pin API 大致就像这样。在这里你有一个 Pin 结构,它只是另一个指针类型的封装,它没有任何运行时开销或者其它东西,仅仅是将其划分为一个固定的(pinned)对象,然后一个固定的 Box 指针可以转换为一个固定引用,但是将一个固定引用转换为一个非固定引用的唯一方法是使用一个不安全的(unsafe)函数。

    +
    1
    2
    3
    4
    5
    6
    trait Future {
    type Output;

    fn poll(self: Pin<&mut self>, waker: &Waker)
    -> Poll<Self::Output>;
    }
    +

    这样一来,我们要做的就是修改 Future 的 API ,其轮询方法将不再接受一个普通引用,而是接受一个固定引用,而这其实就是我们将要稳定发布的 Future API。而做了这个修改之后,开头示例的写法就能正常工作了。这样你就可以像写阻塞 I/O 的代码那样编写异步 I/O 的代码了,只需要加上 asyncawait 注解,你就能得到这个出色的零成本抽象的异步实现,而即便你自己手写,这基本上也是你能写出的开销最低的实现了。

    +

    async / await 的现状及未来

    目前的情况是,Pinning 大约在一个月前的最新版本中稳定了,我们正在稳定 Future 的 API ,因此大概会在 1.35,也可能会推到 1.36 稳定,基本上在两三个月内就会知道了。并且我们希望今年的某个时候我们能够拥有 async / await,希望今年夏末能将其稳定下来,这样人们就可以使用这种类似阻塞 I/O 的语法编写无阻塞的 I/O 网络服务了。除了这些稳定化工作,我们也已经开始研究某些更长期的功能,比如流(Stream),我认为它可能是异步的下一个大功能。我们知道一个 Future 只产生一个值,而一个流可以异步地产生很多值;异步地产生值本质上就像是一个异步迭代器,你能够在一个流上进行异步的循环;这个功能对于许多用例来说非常重要,比如流式传输HTTP、WebSocket 推送请求之类的东西,不用像我们的 RPC 模型那样发出网络请求然后获得单个响应,而是能够使用请求流和响应流,在两者之间来回调用。

    +

    目前使用异步仍然存在一个限制,即不能在 trait 中使用 async。有许多编译器开发工作正在进行,使其能够支持这个特性。除了这些功能,有时候我们也希望能拥有生成器(Generator),类似于 Python 或 JavaScript 的生成器,除了拥有可以 return 的函数,还能使用可以 yield 的函数,这样你就可以在 yield 之后再次恢复执行;并且你可以将这些函数作为编写迭代器和流的方式,就像异步函数能够让你像编写普通函数那样编写 Future 一样。

    +

    最后,我想回顾一下成就这种零成本异步 I/O 的关键点:首先就是这种基于轮询的 Future,它将这些 Future 编译到这种相当紧凑的状态机中;其次是这种实现 async / await 语法的方式,即因为有了 Pin,我们能够跨越异步等待点使用引用。

    +

    谢谢大家。

    +
    +

    译者注:报告中计划稳定的特性均已稳定发布,参见 areweasyncyet.rs
    按照目前稳定的版本,await 已改为后置运算符 .await,所以本文开头的 get_user 方法应当修改为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    let user = db.get_user("withoutboats").await;

    impl Database {
    async fn get_user(&mut self, user: &str) -> User {
    let sql = format!("select FROM users WHERE username = {}", user);
    let db_response = self.query(&sql).await;
    User::from(db_response)
    }
    }

    +
    + +
    + + + + + + + +
    + + + + + + +
    + + + +
    + +
    + + + + + +
    + + + + + + + + +
    +
    + + +