From fc2c2a6c162e922b5a25cdfe7ef8ed0ecf3740d8 Mon Sep 17 00:00:00 2001
From: Tiago <70700766+tiagorangel1@users.noreply.github.com>
Date: Tue, 22 Apr 2025 13:01:57 +0100
Subject: [PATCH] improve readme and fix license
---
LICENSE.md | 15 ---------
README.md | 79 +++++++++++++++++++++++++++++++---------------
assets/banner.png | Bin 0 -> 36478 bytes
3 files changed, 53 insertions(+), 41 deletions(-)
delete mode 100644 LICENSE.md
create mode 100644 assets/banner.png
diff --git a/LICENSE.md b/LICENSE.md
deleted file mode 100644
index c849f18..0000000
--- a/LICENSE.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Cap — A modern, lightning-quick PoW captcha
-Copyright © 2025 Tiago Rangel
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU Affero General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU Affero General Public License for more details.
-
-You should have received a copy of the GNU Affero General Public License
-along with this program. If not, see .
\ No newline at end of file
diff --git a/README.md b/README.md
index 9c0ea31..fa58c7d 100644
--- a/README.md
+++ b/README.md
@@ -1,39 +1,66 @@
-
+
+
+
-# cap — modern, lightning-quick PoW captcha
+
-cap is a lightweight, modern open-source CAPTCHA alternative designed using SHA-256 PoW.
+### [Read the docs →](https://capjs.js.org)
-| [documentation →](https://capjs.js.org) | [demo](https://cap-starter.glitch.me)
-|----------|----------|
+## What is Cap?
+Cap is a lightweight, modern open-source CAPTCHA alternative using SHA-256 proof-of-work. It's fast, private, and extremely simple to integrate. Learn more about proof-of-work here.
-[](https://www.npmjs.com/package/@cap.js/server) [](https://www.npmjs.com/package/@cap.js/widget) [](https://www.npmjs.com/package/@cap.js/solver) [](https://www.bestpractices.dev/projects/9920)
+Cap is built into 2 main parts:
-
+- **[@cap.js/widget](https://capjs.js.org/guide/widget.html)**: A small JavaScript library that renders the CAPTCHA and handles solving it using Web Workers and WASM.
-## why Cap?
+- **[@cap.js/server](https://capjs.js.org/guide/server.html)**: An extremely simple, zero-dependencies library that handles creating and validating challenges.
-- ⚡️ **250x smaller than hCaptcha**
- cap's widget library is extremely small, only 12kb minified and brotli'd.
-- 🔒️ **Private**
- cap's usage of proof-of-work eliminates the need for any tracking, fingerprinting or data collection.
-- 🌈 **Fully customizable**
- cap is self-hostable so you can customize both the backend & frontend — or you can just use CSS variables
-- 🤖 **PoW-based**
- cap uses proof-of-work instead of complex puzzles, making it easier for humans and harder for bots
-- 🧩 **Standalone mode**
- cap offers a standalone mode with Docker, allowing you to use it with languages other than JS.
-- 💨 **Invisible mode**
- cap can run invisibly in the background using a simple JS API.
-- ☁️ **Floating mode**
- floating mode keeps your CAPTCHA hidden until it's needed
-- 🌳 **Fully FOSS**
- completely open source under the Apache license 2.0 license
+There are also some other helpful packages:
+
+- **[@cap.js/solver](https://capjs.js.org/guide/solver.html)**: Server-side solver for the CAPTCHA in case you want to use machine-to-machine.
+
+- **[Standalone mode](https://capjs.js.org/guide/standalone.html)**: Docker image that helps you use Cap with any language or framework. It runs a simple REST API that can be used to create and validate challenges and an interactive UI to manage your keys.
+
+It's designed to be a drop-in replacement for existing CAPTCHA solutions, with a focus on performance and UX.
+
+
+Cap is built with JavaScript, runs on any JS runtime (Bun, Node.js, Deno), and has no dependencies. If you're not using any JS runtime, you can also use the standalone mode with Docker, which relies entirely on a simple REST API to create and validate challenges.
+
+## Why Cap?
+
+- **250x smaller than hCaptcha**
+ `@cap.js/widget` is extremely small, only 12kb minified and brotli'd.
+- **Private**
+ Cap's usage of proof-of-work eliminates the need for any tracking, fingerprinting or data collection.
+- **Fully customizable**
+ Cap's self-hostable so you can customize both the backend & frontend — or you can just use CSS variables
+- **Proof-of-work**
+ Cap uses proof-of-work instead of complex puzzles, making it easier for humans and harder for bots
+- **Standalone mode**
+ Cap offers a standalone mode with Docker, allowing you to use it with languages other than JS.
+- **Invisible mode**
+ Cap can run invisibly in the background using a simple JS API.
+- **Floating mode**
+ Cap's floating mode keeps your CAPTCHA hidden until it's needed.
+- **Fully FOSS**
+ Completely open source under the Apache license 2.0 license.
+
+## License
+Cap is licensed under the Apache License 2.0. See [LICENSE](LICENSE) for more information.
## star history
[](https://www.star-history.com/#tiagorangel1/cap&Date)
-***
+---
-
\ No newline at end of file
+
diff --git a/assets/banner.png b/assets/banner.png
new file mode 100644
index 0000000000000000000000000000000000000000..16083e1201494f3083bc5bdf31f28231c0c2efca
GIT binary patch
literal 36478
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
z
zWXcCu`oP(F5&UtZY8dWgk1}vHW77A^Gf^IEZfo3I4{Yt<#Sq_S!XE-#&3h66rXA>O
z$N*J1?`2NsfyUgIz8FM?$;$C7q+5|?VuaIR9NiQBWB;-!f8r(1(dU%JOW4DJ&pONP
z6U>#+h*4ereBKVj%kJe(j>$iGuVxej0B?|x?&Yg#n(YXwNq+za?`h{HnYT?*es;a_
zu0C~KpEVRUdfh!~{$=hs{zdzU^0cQQ2Vri)URH`UuIGg;+ixcssKLNKqn8(
zWevmvLh`X)Y^*xg6Yp&%H)|=^jkpWdh{fEX6uH`TX3#^F5q7)d18&0=>M6KMt2uIO
zx9_V>l=a%tl0BE#|IEBfK)laN9*frPpf2L5@Y%*PxeVhk!~0uyR9GRJYjwun3yY|K
zT{Vch8;EoT4E2|FTOG?2e}-#3L-|-H>kW$0P3`zVv5w?@ip6(TEUN-d8+76}?x(og
zBCdZ(nJA^(Ayuq;iX=;1Tf~;2;o4^6Ed`@IF(ra^dHE{U9_l6Mp$>;Mk@w8MXi%B-DZ$ZF!
z4U4WL1G)oTR+6M%ZmzbW`bZl@JnuKd8sdkGV7c(tw}u^bIZGKveuXOR5KlL#dr^a=
zN)n3TXBR!oHs}eM@mBI_q?S`P~gL)e9RO#HblC4J@;}xAq5u73pmiy)sYU4hWn|#?C01hHK&F#oy;rD`N%O{s{H+%=pKwDjkQw=V87PZ@={*ei`mc
zGMqkc?KXpas6AQ{(|G5_CD|ILytpg?+c-i}*pzaV2C3G5)&5{#7blGc5j^jCfsw
z^xLHzkkx2f`g^31J{x?d?MnC8ue%NGIpC=(@+5F7xaiXR)VES{9Mn!-KJdVyNU{=uqSKH=?H*McuMGyYqnQ1%Fu8H&+V0^-A!jmM~_8xS(d1x4!uGs&DBLi}vD)7=0-%
z=v%@|JDvb9{Yr?^_XXo)9Keq!xgrwTYt-6utRV~`dzCGjHkR6?Hn&v_t+>qxr~V>V
zT(Q)NQhx28<r1hG<`~UrHrI8j%ck&)|yNOb}>ve)rLj7TuR@PUYraH
z5^0JFZxLwi8#A*X_$1@I{?K;S!sfop5)Q4D?zr3Uyx68kus?IqdqlD>xR$_D9drN1
zV3?ODy%{l)6Y#Js$e(Z~f9_!FeiYoN%$1`V@t}fDv1J+K_~`-eLCY$WC8k;&4wAx4
z#?yD^um>{i6{Sxqcte8LhOM-0sTYC3w@6dWr~K_lQHWcy{Q)WA)}=OslBq3)II7z$
zXHKGWUK^TpMb*_>IB0zi2EGyAGH=&VWKC_aq`$UU-ZtnRrq?(JzB#diTW0-uJlaQ}
zXs;89J^$qWp;qhsqd#Hokr>@S>E~&*f~L5VTPh&Jy7ITQHF7jq=vW>o%ygeK;2X>&
zw#Q#S)>}2sQ4cAI{ygW}fUADIVc(_)3FHbPft*PR
z7mElKJzN2YD|Q*W9f=GJi(?GkK1qQ`
zMJ}4>$oLmlkiRcIXm&%_7CX9gQJP?_b-6(wUsl5I=`pSEm$HS@d@kv?0r&;P-Kt7Z
zv^1ffK->)mE(mtjPGe~h`BM4z!CtPO1eT~wJC5X=eD^G+>>p*{##S7AH7GcgA>);N
zd1&|6dwOmYT_1_$vWS52M;^D_bXC&`v#eme3(Z+%->X^mxdm(*iLp^b5UmnrnN3Kx={OB|Hg!gaPSbRBAqV*ixv6x6a>P|>7sp(9vK-hGPO`=oD9046Vnp3z5^^@Gkr{bc_Ay7&u<`~-d)@`lp
zuX4Ppak*c=#4uZj>%9~F(z7Ulnq)&&A$v(#W&g$|=N)!IdO7@<9W^nT)FOF$iEfUQ
z_R3cV#_(3F=FRLTgb%vXM*1l)&Th?192et*(6)~kx`gAoGHB~hI>Apa9T!h!&Yv4B
z>iJ=tk!kYj7jla1w3H8vB3^vU#~r_sBDBP5%pTSi5+;1}SguwVjI*b|dMlyFKHD13
za=Fxgv+8)e{Y_R^l^yGPr>iLv-(~9ymMMB>KZl6@BI}ai;DVNxig5eFVlprJfO^eh
zU0vI^S?EzM^vr)YMc(&Kgan8?vSDfPFbc+$dJnaeo65*@2@*xUO-^d96q7?lho!<2
zE|^WAd8f6Y%WDJ~L{EMN@jcXcUs*--Gy4u5a+B+KETp@G^-~n*;7U(ex}m=e^y7!6
zu^tpMIq2Uh(-)z}F*8+vYEcv)C%nKfbm@J_8<4E9oBl==;mh>0B`-1tdOEtkv_}
z)h*TI)}`!5H!zcOT=)h+J|u-(jM81>wqLhKMI`Ymi(tA+MdlHQQWFqH2D{t2DscWqHBwFjNT~ss9O7El=2arQ*YXRFNcRP39=nN}G6rH7_AzmHUxtxGXMzC$BLW(e5Y$pKa5gKB~G0*Oz
z&LNFre6iXmK!MBH#ZoP%4vk|X)2sdu22_A*18OJS`LCZDD^IYa
z>CMzSL+n=9n>^6B?2oy-zcmZjd``BZE$)lau4m~-}hB&tJ-%s
z0^h6+6%MWlKAf6dck-%)(phxvonmTr)F93k?bdXzdlJUg)O-SAOzr#k0K%C!%A3d~
zU;+7=U>WL68zmvsPaxGm#=F`x3q37KN@)4fR;@$ODRI=YqY)M*HURA@mA_1;5Jf=#
z6US#amMj@cQ5m$c<$dM2B&LH5v4^I$;lkoE7D!<75e?Fr&7wD))O8HYGS=&&yX?p@
zIV)vHRXOOv&Ndd3!Y8e|z5pvU#%uk$IZD7(f-B0JN$ta!QNQ#GS=<`Ro04RP6+;lq
z7~TQeBc8GbNne7~
zQ}aVdx}!c_%usvwuqir37nH82z7u~f^idmbuFWrc0{xS#?n#piu}6+y|Mc{iO>O}A9`6sM{-*Rb#a7ia6ef&kiOmocyx-*v2!yxrSegrN4g2i
zbG?=7puh<$cNvW|XQ_rLME0+GQt145(kgPOguSuMp;S(0X85^U<<+>NwunwoS#`p=
z*ulFL`@Yfl{nC?#Wp_VG07dUyq`f5^9j!OHJJRulRe49&A5*!Qm<|LRc`d0t-`QX=
zUC}J4N0rqT$m_{qk~iNbEQLT1uqZyHxBo2D94PJ^bdMo@LneDe9dZy9_W^znfOe=_
zG=H?1lqNjnOt3zQK79w~M@Pia$XKcUrilqS_&
z?HXVh9)@POewv-LB1VZ=gtgdbGa8UeZ>~3#Z*%3Gjcc|0Mr;8ft%A6`z5(5pQ#hpW
zeJNp2*_@8SUu2lI|G|puz4L6(l_FEz!mQK|_8&AlzNCpT^4*njIO6fb!!!Bc6PkEnY;FR7$#}yFp?o>26ROX{5VLK@=Do
zX;6@o?ha{~p}TWHnxUJ!@x1Rj=e>Wy{e14>r}=F5nrE%`JbUdG-?b*gHifXiG$O8_
zGDOp2$n4kA(L|3qN=HRO=QxCs{@b)SVp#eofx%4~isDz#AJ^%W6NByu(Y+>y_`GYF
z`>bREwN%cLYx9qfY4D2%K|pN|HwC6@09rc?7NuFzh8M3!$A&G{;Trq;qAyk63bUN9j9A%qmG!kUYT_hfGQY9E)WoJ!@|&w%EdqjCF@kIt|W&ApEDtF+mQOqFs1!{}p`@>enRGOt)I(fZ%_2Q$4g>vQUTNA~yf0?iS>2+tob!;r)de(uH#EJ+W`+PNj^)f#0krj^_T-yvy)!yIDeu&Fs!sfHiCoAC{P~-rcg>cD5XW?q}BqYDX4=?
zPJh*yf0c0%hLg8WW8M=)3lr7mxedhHRxkITzR~@!5}jUqsL1^4M`x
z(ktKKXj&XI%=NF)GHnURw_#JM5@fc2viOo5Wa}w=3P0u=mZ-
z=vXh?5_@43&$3VbCJ)^q7l!tft=R&tK#si+p)|()Hci=M#M1(=L1zxhdGL%J)x+Og?#z)|1O3))?VK;5KKb~Qd989aDd4_QuT
zUME(GLwx(dghs4GlidLdysvdRo|nXw@m{&p((4Hqbv=vIjAb>86EJpW2P6t^)MSqL
zeAUMTn$&iNb@%~**#PVWC*E1p_1CyoyYMZaGI#}SM=;d@slS;2w{o6Tl#nxeO+0(;
zNEyJqB5-V@on#iC?}h&n~2Q=Hy>te6g1CYS37!OCnA_KhB3TZo)w(
zVBs;8;)>^t{SIk}_?FB;*6$0cjzJNW>1g=|>e^Ke{0`
z7lZSrD`OZmY(WjrLSNls=4-G3O+oxjNKFLi`6u!2Wt10)HS?
zQJTr5vXd-2vB?Gva||LM9yjYxc3og1=2Dg#pYw#85}#`q&wmtrJ`zvH!*(6fIhE;?
zETfs@mSA?nqbiF?{9$%zi#eO~{)LuQi}`4y0BjSR9C#G?YfFobk>sGPYee&F9oQ$Cr{QD&fX|Q*ISa);gQ7%D
zx{IlAc4skqESZ*{FAjHN@xAP$%Wg`w?snhW7+-;b7?i0~a;1-AUhU6vu2k8L$g1M?
z-JYq+X&@9_1iReSWDC>#0LfkLMRSdCCOTwdb}Woiq0#xb60l-S3~xKk_j?j$?P-&Svo9(~I?esrBF=|nOA!x3kTA)-sQ(`Z)4bW%5ke3FcE
z65AN#L(;qc^_%2j?h+=uQkvdpr8k0YIhu)e;6;uK?k;xbF#VTM`iL{CXEj=jr&-Rc
zsF`2_lxGf2ODzncmEa{jsSi3R!(locYv1eu0Zseq1!cDHG(93LUcx_vIG4g
z8l?<9940$cnrl{>h$Pqn)P)`m(GBK{!a7=VWo{l!xnj%=hPhO!BbY$vGObbpdj
zV~fR5
zkvRsZNA1hjCxsliWHSD_99(5R&j!QNPf`7HR!))P+a}&Bw_j1rolJ_~LBnx$!A>!!=rwRl%mZ6~TOu(zeZD5}>Vhrt&
z*4XKbcqms#qt<0tP`^f$2}BT&Z#3%}us$-2Btp=z+u($TC8cwmI-Kz171Qe63JAtW
zR}%E0sE*^R_#Qo`xad04%wT$(86j)+VhFZ77R-oLtjrxlRF7JfSbrD%Wy>_m?jRr|
zciS|UZYY5y6e}IYa{p>=Q6P4NV9Zn39+j_K+OLVz^lmuR-&*ghM-Pm;=c-{OzCg65WRz&e?94
zv72FQVQh-U0hr_H0%?ST&4$>T@3>0FDrK2Bvjh?{kNYhx1?KsKISBFO6CZsa_K%>L
zq@U{1vnQi|gp%+zl7#$4yYaX8Y+=w$g}`z6gzJ1iaAZ=M}B6tkCJJ
z*(lnztA=tz>IY=cpRvjO#7K_oT#v=VBDg*BDuOq0C+VL-gOXx6UKfqG|45TVbs?)b
zlosMnXR_!3w`Z%j*GX)oOJ$?HSaI5NY2wc4^CceQ$}^kQP5ewl=S=D)__<|qYrJM8
zuvsRHe#hN}GAu|*>Y{;r0^^NblQ6q#EEtNP^EB|Dbm2_9WTie2Hc)`?4H^)e1XxpP9NI@_(|%TtH1gWn)bT6^iv}15J_T%pOYv
z?WT4ucSAAnC@tF%JC2-A0$P|99-qhJlN_)dLH5RAA&_(}!jd$(4_?3YolijLlI4qK
zzn;ioa-S8H8h1dOJQ-GlMb5WDpDF%WkuWQ*cwAjzJtf^S$k^RKYOL1vSKajsCOj~R
z#wWXpC^6&0=nfXOYn7(R@ctkV4NsFD&Gm$TNfyuh#!yvG==%;cqvc`rekw;WN79B0
z;h8IK0I0h?$gXvP$|ShW60I8{O_dRuBbF14DB
z6P#3~;qBJUQ-VzIlA2!GNG?8S*rmTbAIt^wKomRTJB;i-ME=0!&KcoizHKT0WE`8r!*T**+n+
zNy#buhQqHL-_L>cl0ifkYTL1DveI~?qaa=rktq1smWp2Co0DZv7XdH+qrd}M*%t=G
zR*q`BCy&@B>_$dNTPWP&3tY`ajS2!YxQ2|l0Tx|3eX2`m3Z?43801{Rbu{$)HF&AV
zSScIm0ap&j@0S*)5Jgjr`y%}X-;o|&Kd;f6h5e~&TBCTf@AJefQU}dYwYh?4n3!c}
z(k$i|63oMs>$z%;yE$%MlTU0#I*&1zE`fM09Dy;}nE_n={+ibb>cUdPT~I0jefAv{
zdYJp>1#E+)1Q&tM0pDwb_Jb_qzDW+Bmy4dMImr+2Gd;qOA&R~;aTfEc$+jd))TXop
zHEUsz@9>sRGNl+#nZlx&6iNBr#(&$`zQKhbI(
zGGiL?U;6lyZr=2SFq_X6I_sl$KTM+v6uWK@xkds8sgqhGLN#U#L%tYz9rZ{C5mCmy
zS%f9;u<52K4C2c4o8?wCa?Q*nTq<=1`s{nT(dJ?qC|0;IC+(;i`-94B?S(kpRBJRJ^RkJ!o#s96YY0!-W{G87UrL(b3{xBu=?+Q
zy&$ib902AzG(eW
zMLm{%OcIw*&S-}aRPXew&H84N^(SwEa3G@&XoP2EbvhnkCGt3sL2ZIZ>j?p6fh%8rFlzS_PZb-9RSRZq;
z0Oo0#9}9?q)`lT9KxYvDKGOCMh7)`xqu9p-U7bdZaLT}o2ABmFZz0gOSM7EjU3!Yw
z3o}cjRT7{J9qB&pC5kABn7-=Ge4WZG_Xpo~mKcbhaGsc#12hVl0=YLYmXwd8L5AjA
zjG3oDvBVSEx{4!;UUw}?5#Jcs`Njx>w`QCz+CQ@Gz(`!sQ4gu5{CrqGiZhU+E+|2Ex+>pEE=>@Rdyr2mBIp)wyTBV1AI1pa}6HgafYm^bWC4ora29(|M
zY=~|5_4Y0#PS-=NTF3o$AO&NF=V}~Y&jwq+0F!vk8I@D`)2v0ycScq1)3t4{3YYLoEm65ORl@N-)|G$eRsQA@w5L!0Y3(IBqo%X3*NR;`OBnUA
z2S7_E;Pa7xRId5*P(sIfM8k%uI+MQqnsTi*{q~vL-Zt8!28@I`Pa}I;^IMMl{PM=8
z)6wUYxl~Tg);Cy5dLa+k1tJ=tQckq{LMgV*7sv7YQN#&zxIn#VoSt2terp&qrk$_m
zjVCvv*VBP-V-)@uo6ICOQI)vo?0h>%lh&foW8i=AUmTTyKDg(2iRprX5;R6*Nx@m2
ztNS7$nZ1uHX#QLHTDXU~CF8uuu2gVQ7iR9}nPVf&*v1rduPN^Zfoa#KT;AB!2`GJ^
zofvuU*;h6|I59+Ipt;2-+LiUsaEuYkz%U6i
zIDiY!a{8&};jI2Q;--xp1t>C*FDGmL^E!Y71cvc>eD#*l`wMmWZ!!Sw9be}YXsP|5
zn)e@uaFS>ra_8I6?Ec0W{=HU^@PqgLC`0GZzWjX^ATs{?kQXW7t9sbre*r1}V(?51
zh>egvE&jr@{G06{9iV$ZJ!f$k|NmZn`Y|Bl|BHeczr*wzVEUJeqT5F3903@P(8=&e
z0(L_okNw@$MORL~jUyOy(*qpGQ}}W{$HD(N+0S-;rjn1DiQpQ_J+zyZ<&=}4z!sYQ
z?oElJ5w>D}mVUc`NS?z%ji00nd@<%7crOcUc{e{T&67eQyS!=pm10z3#uOp&6x3n=
zL9IL4RPOzyOkmViZ_NV`Vez~r(;*%gkDnp4hvNS9cC-N~tgCGoYyP5yiQXJu@4(|s
z8Nv|h^Q?sw-0BVDVEZ`=naNMpO!4BVDIVZB^gm|QD83^w+Fgmfx1D;7*<`~7cAE5G
z#chSRJwAUkIGQ@G@n!z3tenBw?`Ey_ZUr;IY;KqCVXF}U{|kii*V*d%jL^O%L2=c{
zKq`{=!r|g~bc|J$v~>fu`?yF677vc4hvuvyjs_XkeILE3#MmL}eonsMP-D1A7PAY*
zNWNd~<}lh1>TPv_slhS<=!%n-QVkU#`b*$+VSe~&{&ycy41&q&7kZH|bqgW7y;R#k
zq_l2`wDJIsLSkDRKL}>=5tYh8S(s7#sAZ?qg7z)4+3i_y}SI-9=~EQ2HH&Zhm>#c@?#o5^i22+!x<#v
z?_W<<*j-{x`%sK@`D|s|fraXj;sVx^LY@oO)#w4KqOvI9xw=Lf%lb5b$4H
zRZ0P-z7m+hl3-bBRP{G*-T`SC93}k9T7|CW$<=sXhH>F{6A6QLq*&85J>J53WC~x0
z7=L2Do&^h?!SGa%BRWM`=UV$NwUo=YC8tjXR2pXST*@$P)*U&w+ug2l42MJ#uNo^U
zH;Mt*2WpnYV?O@aRo4rv>$eE)V=ei6Wx$d9K
z4ICu3f(`n!iybHn4Q+#6>vk@c{|`|QwhXWwE7Y&R
zJSt=gyp(9dtgXcoig{cqpVA>(RO{C&7zuZTuXfFARH0WpVy&$#e_m0Bl6Nt(ihetr
z3^#W)85MceG$J5Dq_CBnqKrOe9NhhPc6md|mWrrE=^Ikiq!fNv5_3FaeS3=TP4V
zRG--owA}jBu%xfIg9k$JX;TVjb!9oP3iylg8O03Z^B;_F9tAb{1YLT3Z+7|MSJk9{
zz2A;PZ`)mV)!wTA($4aVU#Uk6qjw>gAISmsBD9xV62g;S%{t+|B49BWBw1l=mV@*|
zeBY*frSztMi8<~aDHjgY)-k2j>)5_?@;N<5UuR^csB(4NwRcj&8$6nvE7}v?&Yy!R
zZY9G9-DrQ^k?%WDsOdIG5q7LS
zy}YY2_sHQjH1R^{c-I;P~7pw5<7S>G2g
zpz~Y#n=V@!c?L&xSm%jCGo&H~@%aH2EEs_{y24Od0CKX&>Z~;Ox{;xVp%us2QC*id
zwqxO$Y>5b4hoBgP9kbI;D=z0vh5SmKW0&$MMdT;1?SfBkRIa$CjIDOto*pl_zel-S
zikVV4t?c&xlu*{EAV2ZH(;b9J{En=U!>I2dB8SO8R0?E12cEBze;*vxL?y*}M2EY(
z*Z01*zsN-V6zZJ`_?EKasMf?PF(DCaCw2np6?Q31Wy#12$__%fHtrI|L$eSqzE9<(
z@_+sta*%c7jH>a88)|oIr$%hINf35b(M|Ol`{grm@#pAOTj9WA+FPCl-60=G&S`FQ
znP`k_`klFo^!nzx=TC7sKII*JV+?22Q%B`{^=O3$c0imk%5OW4H>Q7aI^cZF1k;yV
z$dIlzT*zqdiMaMEd>h<)&P10uJS}7P?zDeBVr}r%-8@IhSEmqC3!$|c=(MSlwrt$UcMkDwENHGoSg(zeYQ5UN@R3Dgd
zsM?a><7)2j3tG*Y(AVa}b*| uemA!6Ep`4Il!x&yGIYf}bVMIx}>QPIh96C53ctQ+m6?v2d%9uhQr=D
zRf!(L{wai41X@ee5S^u08U3^>glYBD>35#-;da4GzhSAlL5<296yjaL?$A+J`rAzs
zl_H3ZN0^*y=NCUs1us>g;5|mj+5~n?46&pG=_(*{mw++M55ovdbIs;Q)+XI
z;~Q~N`==6YXLU>}fzH;7**o0U%A7jugB>QZ!NzSMNrjzm(?5`Ak%>WAqA2>DER?E2
zA(8FfD`t}V6>$3wZCs)^XVlz!KWz66p$XWobg4~IzSB{dQ*66G)NJj9T$52~sYiB<
z@D*6r`sL4qU&yJMKO2k&GIP_M<6KH%`sQ1*p5i`EwB{=@a}a9BZ30LgTy!59g{?5_
z?e2H6lAKz6--vf^rfq1D2}WzRwPiws_P8Hw)+d?U1%7Xo^2{1T<6u3
zhnsj{TQ%uoHjGxJpQ?4vNbF}<2#1ndc#hwemSKrQe!`f}&(ng&8LYkt*kXiRd-EKrs%UDLt4r`%EE#e_!V
z?a>VFFfl)0Wh?e(3}}VqBU|$yY8U(wMt4Ut7f ;06!W;!uYl=w$e0
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 |