From b2cd309daa4c6f9e0805f5d2c16e760cf75837c4 Mon Sep 17 00:00:00 2001 From: Lephenixnoir Date: Fri, 24 Jun 2022 20:59:49 +0100 Subject: [PATCH] add README --- README.md | 24 ++++++++++++++++++++++++ screenshots/editor.png | Bin 0 -> 5437 bytes screenshots/fileselect.png | Bin 0 -> 4425 bytes screenshots/hexedit.gif | Bin 0 -> 13300 bytes screenshots/memselect.png | Bin 0 -> 2707 bytes screenshots/stats.png | Bin 0 -> 2150 bytes 6 files changed, 24 insertions(+) create mode 100644 screenshots/editor.png create mode 100644 screenshots/fileselect.png create mode 100644 screenshots/hexedit.gif create mode 100644 screenshots/memselect.png create mode 100644 screenshots/stats.png diff --git a/README.md b/README.md index 04c229a..ca62a4e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,27 @@ # Hex Editor for fx-CG This is a hex editor for fx-CG. Builds with [gint](https://gitea.planet-casio.com/Lephenixnoir/gint) and [JustUI](https://gitea.planet-casio.com/Lephenixnoir/JustUI). + +![](screenshots/hexedit.gif) + +The main features are: + +* Open and files loaded to RAM (up to ~300 kiB) with both overwrite and insertion mode +* Load large files lazily and edit them in overwrite mode while partially loaded +* View and edit the calculator's main memory areas +* Create and save new files from scratch +* Basic navigation and statistics tools + +**Data sources and the front buffer** + +The data source is the file or memory being edited. Accesses to the data source are cached through the *front buffer*, which is required both for functionality (we're not going to do a flash write for every change in a lazily-loaded file) and for performance (inserting in a 300-kiB file is not ideal). + +The status bar shows `Buffer: @POSITION SIZE/CAPACITY`, which tells where the front buffer is in the file, how much data from the source is loaded in the buffer, and what the capacity of the buffer is. + +When the front buffer has been modified but not yet saved to the data source, the title bar has a double star `**` next to the source name. When the source itself has been modified but not saved, it shows a single star `*`. This only happens for loaded files, since for lazy files and memory the front buffer saves directly into the data source. + +**About editing G3A files** + +Writing to G3A files from within an add-in is not supported by the OS, as it add-in registration, which destroys any running add-in's MMU mappings. [See this Cemetech thread](https://www.cemetech.net/forum/viewtopic.php?p=299466). + +If you write to a G3A file from the hex editor, the editor is likely to System ERROR or crash after writing. However, that's still fairly safe, so if you really need to edit a G3A file this way you can do it. Prefer using the loaded file mode, as the lazy file mode saves automatically when you move around after editing. If a System ERROR or crash occurs after saving, or if the add-ins don't show up in the main menu after leaving, just RESET the calc. The writes to G3A files do work, it's just that the add-in can't keep running after they're done. diff --git a/screenshots/editor.png b/screenshots/editor.png new file mode 100644 index 0000000000000000000000000000000000000000..23199891da30df8e1758f6cd2b2c66785ea09490 GIT binary patch literal 5437 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 P12Kq>v39MdbKL&{yW?Ua literal 0 HcmV?d00001 diff --git a/screenshots/fileselect.png b/screenshots/fileselect.png new file mode 100644 index 0000000000000000000000000000000000000000..651750f68fd5f3246686f6ee2e23957737f23986 GIT binary patch literal 4425 zcmV-P5w`A$P)f!}}L??3O0`!nGKz=s;7O6TY!9crb~L_A)OS<)lf zs4Y8~{xiL9R(bkr`a|`Nc;7jI`~1^-!r8;KfTA6DR+Ysgv2a!_J>7FT06S7gQrd7S z{iilu`b3Rvl2{$T*h8D@tK~RLL^uQX(!3@$ah7z(vht#w zv!{-;jO#YlCL|b(Q%BE@InOeFS@_lRZBzhGP5Y$myL;k4#j}h~+8q|O@*irD0)Xq0 z76V{2JWmQhXpE!)gjWA@&=2Q;%UE<@u}yfbmem^Bi~y>dI-1d)#V&7b&-Nr6A7*!+wkB2G zsrCB#U7l$}wT}Yv6acMSJDR6EmlZmT9gV|4SCE=Aa;febwKtMwX8~~P>u6Qg?c>$! zrd1hjs7&|D@tZOAyApFfe7Se>d=-zmpYHw+s70l$@%=%HSOA3Oe2PF>_)6M!v&O%E zK1DAz^w2w_1?PpG^>`|DmI06|J6gx6s^cu9-Cn7mp&a~R-FKB z{sorjCm4%UN>3SL7O;r3i|w9ZtnN5B?gbn_w@2BF{{$&uP}!fg^_}W%_pDg;Uc7b- z≻KFHttne|L|x7yzM>76TwOf)s$z2vPt-t8YONZw=auVN=$*nid78Uyh|ZJV14S zwYa=Ja@@Fd`Kn#Rsj_fxB;$xn{nLZgH93If8{&D&&g;Ap-+kP;wAeOhj~m_0DMnWR zGbM~svI#H?2N=}exvbf6aR&rSDDy0;7YfA zpstvOG>@b@Hk6lnhUG4JEp@qL6k}&Wr^Un&)>H`)la@v6&zS4b8lhI@?sab^H^v}F zRq3?OlNdPiOBb)j&d4qHPLxOSE%6O(H@8wne*-ivr{c{%%9;u{Cz zaONaGVV~5q5p;m~rakm-7wjwt_VU#uDFE@2U<@F%&IIFKu<8Vih_G;88A*NW+Vt-G zrp*R|NOuvXHwU%j*@;y~4XMtw7%`8xn&Ru+h2Ys4P}XU0DG(dLI1BL8dWx|Faf;3a zVowN<$M$QCdb-E`e7*B2CU)rqjeAT(S1|Wjh&o2QTuW(_4aaK0VkOTa#M7mL$LkY&!K@f?@z+5C4 zTMcL(F_Cx-%tC_kXo9ilEVBQAZX_62u3~R&WnKpC>-h=BL?|F25{#{vNIV8^M1rw! zmi7{f$G|uejITp50`|3ig0Y6gW8fLSVk8A%UnCd<2<^562+5ET%&ql zyLunIHIev>5{x@iUM|p`jsslJNJlj`7;1$*iNt#(7-v_?qGopQzauflPDK{?F?e<= zXz@O4t=&SBY!HXmxBWvHqp(xB1mkQAxJPShv0eT%{nYlUi=P{Iynics$Wz`6uv%+~ znf1xKL4t8pYs#d=w376tYASMd_A72=_q5O$vKm(hZdCn)w0lQc(phaN_9oy5(Y1wZhg@!~)rG*12#7#MBg_W(}9h1?wrJjiKpY+On6D(A!kc z`NL~06}f30O1x?Ks^wKSy-i>dd(m23^Uca@fAB}~VO(~EtbBLljT%Uc`QHW8SOBda zn_%oDeoz32gOL<~&`2-_5L#urXD_^^$F=hI@xxpR61Ti-^%xhj=X6uj1^}DV{^qq#bMxIjakr7N5ovsDhISz)eR!CTwU?OYZ02k| z>)aBil__5;7m|#yQcmKw`;P$ziMe=b0q1A4y{kF9Rug9pop<-%T@Qr2EINoWuA{-g zH#qx+m>*O2oph_ZxbE!CvvKyypqn|f&HF2&+j)uf2L@UAPR_;R%j!v~BdILBRYRjz zzGJlYmU0xe22?L(xBT7s06$<~&H+w$`9&%_&R6V{a#nTx97Ecbc*=NABwFDaR_}X? zvQG*CZbw=SfY1n1074^30SK)*!B{))Trj%~yElPxO$+4Wtw3YXcD2}t>wEXg?FHg- z?cnu{76Ne6Hf?IhKm6NzMmKYIBn+q5&UV}z;~Md$>|iyW+HOo)*sc>mN$V`DlliY$ zlQPCN_K@d1Xl&FpPB#iOwgQ~aG?%Q`Xvfc2k4a%`C`fsdbi|QYHfStga$Y?<-M>qo z0Tkfmnb!4v>Zbu@euD8w%&uOBEdW+!r~S1z`sDH)PA zDPR}P3C88|Lwbs)=N6vv(iw(~A3UdPZ-={kfJa{U&300Jgy0JpiFSGr>4iV}R>byMX7BwjIZ{`t9Z!C6A78FxGz73S5up0^`e7yFhxI z+bG|9T&usMg{i$0jKwVleVZzP$MAQ7k$SXZ(>Eb*oM7CMFx-@o3_Q=oiG`S8ykg=q zv<0C$s5_*Q*Ez^CUTSSg8K=Y%6GJC_4{hPNwHIiUk96K6_UP`KGebejKZLnn`5QbK zI^mm$T|g`8d1OfU7-F!6U$mLizMTPliEMV3CeoG#X4OAp;{@aKibesWJn%4D7kDdQ z58hgjrnP>jy%UVZyL)2uvTJqBpMi~h%RZ^S5Ojb?+Ivl^8qNXi?l~hV0FOk1F@VrI z6O5fa>qJdUXx&(`0wyw6T0B9csn_>>gYgRQ;jhO5aE&xFXd8(fatpT2G5dP+6l^f-&4Jgm8wy+$~F~q}m?9J=bFW0jsC<0s zd0k*@9TDniUjy-%7rR?2N`kS*x#N8BD&^%~eD5((GkDia>~5v+N-*v)y+Yt#+1iNs zw{3)s>qSX0ZtDEi+R8e`GSvb`d0;!|L@Zk>(T)cZCBgVzJY=pqlB~Av&G#My3g`Ni z)+w|~?DASMqvSz?F+m3iZtrg}?&A#h03!JIkraU7NH7Kv+S&wTKYPRL>Z=3a!?=G{ z9#3CwS|GQ(ZPUW}1_{P&_y%SXJ9TM0K zt^K8AXfk~?GdaQd&{Kt-HERiavn~OkNmE=~u{bj`!8kpVGB&A;C94=c0fU^;#OSAG zdT?umikM&wAcAtJ;YkbAPPfy84Y3l8-+XN^5Q8{!G49;;)qnmx-q~j+7FeHcc^^n0a&;-a-WI$O-7j zNNUqRtfR;!+!1dff_+>5U`+P_gf^5GBaV&5hcg%tfzm1&X_#O2(Nx(J_?&NT?h~(! z`tAP$qe;#uQfrysiyrAEHge=`;sGY)?rG0jY5H@C`B(LM3u&B+`Be4R-(L0{#Vin~ zF~a{e=L^JX39iI+Z-VkUhsUx}#?cZS#Zx+-2zJdI%vuP15TsQ0W1DZ8R#d+}XUZuN ze97B{$Alo2J&W(gN-k4Is0+Tj#<+K;{q`o_ZoBfkd5jN+js8e5%aS#zyDGVc)=Mw= zh6t@@DT+KNb(T}HhgQhPIS=x-dn}84qQkGA5 zeOPaCu7dCN1n1}dH{rD8@xjKur0kErdi)x#SC5we(c1oOmK5PFc-;F(g1h{R*5A54 zU?Rp_h+vn&n)M%Lyf=hxs!5xA-3BldnfO42Q>Z$z$_FA>1WF-0cjiWwpf4KbcKkxDNkphOQD50(Ad~9WR(+|D;p)K}E--P3NdX*YcL40o&ZJ zroxV>WI^2-ilVQ$zC$#et;%G9bD4Lm3@EkI#o_|}*2Qb~%iD!f{72&L6VYRYW6rS= zc#zT)&MhWtZlKnllsR6br5V!D-0iY^#B$*fB;2wgjDP4UuQXT&iIzW&&QrF`RW@Q2 z>Fz=1!OCiem#8(OMMKM@U2mCC-$cv$2titN1SOm}9d87n>(#O1r9+A^z=Vz_CwSIS zNiXk5iGlK(;Y09toHl0Y^Gar8=j8z7P8VOd>x^bxZ);P$Ckz4WGqb>yhz*BV7u1l zi^^N2U-Npr+6m^Z-t6>wd45CXtJ(e&f=VnB#aH`pAc|Pf4~@TWcO;2PuPchbet#lE z(EA-tpy6<)KrUT`r4{aYA)2(t?+uc6Dqml}un%Q$jG=EerpbSbKsR8sPq8Y}GzB6izCcY?6I#V=<8QM<0?!dE&8vO{nbrE|bMWf3OPU(U@{V+kX*$;BA{72tw@@EnqcoV02W z#Icic@AwFG@tG$x!7b*i{YV?$jwW!{$$+REwl2o2iOA?D&FDaPf=vO3*^bWFO{SrI za0Aq_?qT?pasT*3DASTkkV(@m&W{Rn{r39lqb@`1_98vW4olKKK_If!ulMi_!IEC9 zN5y%n5gE>K+@65aVD7dluWt6Gj7+~UYd~2m`vG;?e9j0sU_JWTrlc1^&Z@Si%$zy* z8b&i_TR$m+YS%EUC}-E0RT>FsS~ihemJ&vf-{)f_+LLUV%4k^2!CjC&s2bQDt;hql zdG41LI9lfw_5V9b@9MfnJ&y1dIku^TCzf~UwPTGk?;hFHJLtv~lxL{<`TTOw|B*`n zvK@u|nRXbSRo1D8K+Gp^pa-tv+H;3!xo*fyh>0zaCtRL-5F&88=`UfTR^D`3w?-WB zqqw7BMqtjJYlzZc=yIY8*vvjEsAa%ms989~hiPR! z25yo0a9}xM6Ym#9oDgR8pAYgq{EI0zlu|dXYubwOK5x5tUujA-I&TYB zcsY2YKFZ39Y2U@@OcMBoImOc4QLo84Y4VH1t!90mZA+aLd+rf6l1g{jNJ& z{`KD3Wy7RDt@rilZbyrV-f}z5!Tatw@uK;@lEucZeCvnqVs6WdlBUro=)1GC$fp#C zAT^hT6Dzl}g9*%^SE!2!F8evJ8`XhZYx4J$(tmCZMuJ{Bp@S{FZMXVjM#w(K$Wkre zuFUsCzTR$aV&MOrN58at8U2gmE>73S;wVk6|IggRLxeobE-Yacdt@C^;1T8-8~GXS zAAGyG2r0@}TTLd_9c_q2oiT<-QauSrocjPp?-vt`js?WnkaDzrc0D3nW4tLOlCK{V zqWr{jDKMd_sFcp}Q8?%%#K7w+lKJ2bpjBT52Q`h#m*RCLya z3?dVX8mB3R{f`pbSu!c`%#@5$`LYc((V_7tlts)me`w*pgp<1F;Kh25ZI(Jlo^BUX znj*`aj5?;GapfV|9rc=p(LyXZF>%9r2aOC9L5o~PTu;0G3Sp}0X@840{RZT`KS!qA zL|JfyJ;iJ(6EkV`_Zd4^MlC02vv&I}1&m~-3C*8S%LG8oHW#84v}*i$F9XfXQfL1 zvK`8rvxz6BhRUIBO!t+Ul9817nl)!F5Wzsz?~v<`U&mSG%q;h6LUu zfh=6t@++@@5pHI<2hxBGf1}mk3MNm%)*mxo4pEY$_Elt`Oa9DC*ImeCnmjQozLZT= zkAF5b`3&XT+k6NL?qCrJMBRE1!zo3(H)G&soD~_xtZAymcCIU0y*G5rJjJ!CRtK!Z z_kAg$W~~J&Mg7Am_ZUbe1P~jMG$5f$W{PJ5G>xM+3C0Nec`=B`0O*g=qMR! zk~4)0ZjZ%ijt!H#q*R{vb0^-9B$5_6m1?SRAwEx9UZz?RCnx4X=2J%xeg)N1o z+NKi~Z&I);wb|-ZekYsX(D#zvo-mCyXCw&w{~l2td@(v9_>h-{HBiyIN<1v(;3 z0C|NEq+)faf%eKpp{<({WFD1^$4wmgZ{~PzUQ>@$uBD=REkV#WZv)t114k%7>lA1g+2CX%}F(XB)CQ>*No7ZF{J*zt=Ka_y2j) zpCjEY!FNviP_>O~upXtUbri|ER`d;wyG5fM9z=_HiV;WcSj)YXSZDJfXqDL|aB6tG zYFIz&R=R3x-JQ7bw%5V3(gHvET^isD{l#>!)xPk$@_~2OJY+rTJb7HndA696^nBV= zz0=KQO4Rzb>P!zNo6MX{DjTyq9@;e6VpBgEM4ohoSJRdyAU~KE6w*Xn`!aj<{_1Hi zpgktFQRC|0X-q?}Rf*YruOh;?hDo0c-D-cZpgf&^bbG@>ey_oDFmlJY(OnJCI__NU zs2-C(4pqyZlU8>O1zW!>zZJZcyuAPIRceA=-9SzL-npVhk9*G+yOh>*{iXXoJ^1Bz z$RcGZ;0w3W^Mi!a61jM>@h)C~HZQ$0FV9M%_)i{66ltIDJNg*IT;sf6lS}4W5Ww7$ z|EE-+172@jdL;*Em#=i*50)O8xgLN6+jB|N_y^zzDbKesVCsVj&79qCGTk3M6Wn6; z2*gko`cO6LP>o?}!IoeL3y;DOo#jCf`(`OqEgK{H5EiolrC~+21Iy~Yz~N?YlqAO- z3;Sb)aESx#S5yB!cR7Hx*1DFo+mf7HNl-fb&f#y9T6BqTE1WU+fRGN1F5nw};6Z0Rqoqy{M6IfXya2}{AWRP=9Z7(s6sB!`TpU@`3+CGcf8ula;toa$_ZqQ^{E!M} zr~m0mZ`%X(qSExRI#6{vFh$~HoV^d;Bd}?*Fon2>_?l{DB)i|F25VZyK19SmmBhY0 z{`@!Wv3nTW`^b1mU<@x~BX$V1fw<7$M{U7_V-Wq1w4#%Tg9c0dSfs^i7vt<)jnKt3 zm!&~XsnIx|@!;hshNk#4m8OD6QlnR5#`j~BzWB4c#JOABAQ0LG9zhfkU9BDiSRryhsiSOHk^x7F1<+(s z1{MOHpf4r#$C@en(6l;!P=hBo8;CcY!Ht%WjR-O5-8{X)D#fNW`4@lUOmEsh#I&d| z70vLJ{?asgP+Ag$o2j@l)n3VV253N-JUVYHP+7ZJ^mv<_vP; z&{LKYq1#@m!5}D89rh4a`;@VLlvT)|@d`?}d$jok2;Oe-c^?i&08S}g!6Jd0qnX|@i{$*>9Q)C{0r0eb<_4_b*-R$T!RZXTg*^#2Iw=c*EHVN4E@mj&eOe&B2x@=(k# zEta$~hK)Az5xcfN8!ko^7UN}*Su|EhRt=;@jNG}=q*m;Y#_*5jQH=pkM$48~O^rN_ zixQd=hJfECs%s*v|3$V!%UjdOTJd>XvfC>HBuUsAQ&9#h2|`$n*KFcEg>KteX#hD9 zUagJCjRq$U5ib#55X#|UdmGerA>CR;V)boo@LXPXFS6ZOV|6G&VR3Olcc~L&yDx5} zFTZs8(`bR|zX}wlBKuHRH1|>l{D{>@XF^F$X(ICco#1+KXVXbdG@Xh=sxo;PpCSw_ zrogGEy5{}lUGsoaf$G)S;9Y*6UN0ut&CJ+|PgG%qT&iD|n+J6`Ky5cT#j=|IN#eVM2OD$E0F@&g*S16ol7Iu!$Y6{#+N z2aM1L8G8myR47HCZ^4IxZmQ4C>>xzBR|%M zXl0X`8NxSQe{Htg=bjR1?u!PZjucn$CP(#j4-XHGjc8ipTLvFXN~;`i%nkIyhq%*jtIjNARG!E=h6(65=$4$xYTGR#oM*8Dyxs65FX zkg15+>*6@cH9g6BImr<>SvbR|$zG%D_VxJ#%_mP@PO4gY=4!%{Va&cdg*}$B-l_cg zi5IjoPMa}HuQ4y}sjuG)Jc3YT9IVEJ$QAHn*0FdLa?vUqA|L+*!%m}dguf7H z2A*Zukz7%*f5jqGz!SEarDU1oMxP_4SP;vcO;GET>Y&IXniPzln`A~2C7u40vB++) zfVzRCE$ppJie(p#_4VVIPnDRXrHRuS6c(M62AzvfQSDrncsy^&4HC1_3QKrr826D& zyVrAKol7y>OD_ZMnc?0C>vPv$GoZ}n>`EGXyM=4xues>hsCLsLl}jn;i%2Ys9lsVc zlO5RJaN^EZ?>n$veCAyAv0E}1%q3O?m{#S_*621?!x(v zijh=0(dnm+I!UP7*Z)=up{M4R)s~!U2sLyBN|sDiL{FY8OxlueL1`7HPR}NWoIfXQ zZ0>!ZI`dxK7h1lk+wk~J)B8K?CgB+fH2w2y>^ig-yt;N)A2w8 z5P>ChLyr$ggoJgP;e1xZw9-1Qd@bAbgp2}2qNVOh%SCb0ycWkY(u{&~avoMIqoc^p zdJsfC9VQ_X!sRwuiRS&g_9b})d1he+132C2%*x6?jc0G@WUL~aI97f!Syf$=o9FKs z~rRXQS6k|YFSOQ&3U z)9m@u1RFvjLI|pvbyno2qI~=u7Lf|d+Cj_GY74TN_R1?s$m-#gDFWTM^7j(TRN2xR z_t)GF=5lGG)o_#GcNXbkQDrCo+UIJEDhp+w{><|@2Sf3tn_&z zF_s%+k=<$rz=Mhr3hadv#1qk=_T%!@ld@1vkj+_1X&z#un$hvvQCi zb+-biWp_nbg3GC3exDTlK~dWHC)|FhZm^Ksz~9i*pNHE3G_uCffG3RzlgLH(2nsU% zNNKWg*1^L`HyUSZNa~Vd2@c42!f1xGM3>A zAy|9V!!Vlbeh{1#75!M4Y>@@pO{I8Fu!#Mw09{Q)29%HonrDG5BeyFHX+UXL{KZ($ zJy6TsFfswm+z8fDtNa)d6zhTnMOo{7yRu@d!ZZ%VolLo=#G@Rcm}cwJ%_~Grk1Vnf z##qTT6ec$@`;qzRtat`IdvCI^G|${YlnT-Orid(UvbHAd2q)NVp-iG*6_ITNs@+mi zj15s(ZgyJ#&PgD@ENYeWkn!_KxwC*wzg{+Ajk@x0m*7^syXxA1PRo9bxLZNG-a!x;xE_CH8&qYMxA>yPIKMX-x}&=IHPJU|4p$?JgSeD_3SrzRtz$kExdO zMfdar+7*c0`R%{g7?Ilp(O)8MyKAad%^)2keUI@;$|@vTX$cl@w=XYILW`NGWbM#? zd`#iwuTo0BcZ)``zV}|EWzF}s&t2E!6PQb#zjnOYD))W2PMXwO>PBA7dx?SaK~wqJ zmP?<`&sj_F#7dcKJ%_dPY{=i~-Gs6mr(6$47HoDc8Yj-ithxoa9{@|NSLTetJzza} zsn1y--%tJUDiWUIhFaZ|%7dK&B(>sJELbUyK!RJm34#^@WY$Xs07}}YKeT;>?}s6& zRB4bhO>u)OWzNcWrO%-)43|f-o}wYrxVaG$nlN-$u>NTtem9b2R`Lb8p1uJAInBV{ z42$}Kw|3dEyQK72C)*|6=@;pxX3)e`@Sk>6#wvoL1NnISQ#BmK?!kVtD!VvBxD1R> zrFrm@toC8>#!K^$qHE9@m!Bk5)a@?6=1I{l>6t0p^*{5D|CtWYdM&sDXpbV7IpW@O z0+znT!6BE@;ZnJCNXh2-CZrL@ zT4Df(*7p4kkX(^5S+urysUv=y*B{NQ0Y*J}a8mO6!IBL0$O|utok}Ir~9@#;7$pwjk2pSE*Pc26?lFaYuVfo% z^K508u`o5wriP-ogoCjEger?6Gaejm}CPmjW8n11K{=%-7;ID}4OY0}nYVQ0^L+feqEQ$D@N|7*s;RnT4-Xr6a zRq9}i_3hZT>`m4r?pkvg7_C8Rx|7A8bQVXm?cvw~4@%?I&rB9ta1PBu&Liusz$1NC zLbXPw$(%ih@_L^yltd|nzQPvD1fhSWFCtbb}2q z9p1*1&d}KvIBQoHYAYpEsWwmA61BkBMed3FSfv;H7>x;|feiQXYCk*sF-BTV$<}$E zLAPTZBA(Cp0!w{aW~nMqMmqJ=%fT2K@wZ;bFPC$blbRXn=1=Rrs@~3*XZiu0C^ls% zH!JNv&cLBJ9w=0=u#ve*YJ}K!!MDA7SMn?&RznV+?WK`5zuf#&;{|Py!*ENAdl>PV znVlN_>}42!DO1cF5=i9cf4|q)9NISPea47 zPc>R4g!1?1>YjDZG0gmJvYTYf9PIdLxR+GjvBwtc8LsfYt4Zf`kT}^2S9m?MR;54X z1a_4pCRz(XXs(79TY;Vm^Tc|e0j477P)os!D)XkPAI~>AS{wPk_xuC+?Rp4OtvRJ# zPU~wG>y>gw=RK9TnVBG4pCaEg51jTT2GjH_Mxz4{h`{0CU zb%Ix93;QS;1`tJBeYM!QA{LY=zxAUp_O6vOpm1~aZPY@2@Q?Zoh$%A0N2Eqi^-Q1) z#El3fED21RwSI$lCw^2XSp3x_<$T`Yefu*I;_lkC;P(m99PvQe4mUXB))NXbhzjQp z#gT`YGH*7CXt)P`ljf_a@gNPgujUOBFIM|W7lOMOv@@?pe&9V@7-9wSRTyR>mlBlI z@PD}T@lZ4K2@h3E4LQ~nFgP?qakE+)ax_IEpO&z|SqMv%Fil(Lkr;9h3_@~JmJ0G~VdduY2%-P32Q>e&?5)G6!--_s>~0gcY~+R%CM6yA z6UpKu4BN=lx=;RefG=GU-UBtt9a&^7^p`eKp5g4Dh6t9|yb)@7n8@X? z6cr(1b4@%@i)h&GV|ComkF9aoAN&H7KjK1JjT-&2lyxq?CXwY56vtE3Jz{jq^TgB{Bhd+1OlLs0G;H#tKy%S<_H~I=v({uXkPA;u5@;n3=O(!JTYS`$>xZx;3I<7w-w9f|8Ju4-nH>|A zlrsVBneQ!`A3QVV<6;q@ne<<>kQibQKv^29|H}a6KJoC5X?up&mva>%&uB1^$?4wn zIZusI#j8@JJYd}=kOi2#!`8?@5K}qU^b#!!X}m4pU^If9iLv2dEoe1c(57lY5Q|%e zJrE=Y2O&JAkl*x#$dcA!gpbXIam#$Nk<@f4N2PQFZZgZy_-*_n0xu}ir8+vJYhx}% z-tJoE?I?O9AaC$06kIxX$|PLrLSi?*?}ePv2!^!VfzP6e<$YsVf61ShL{;DcJKQ(c z4gFIY(!2fxATsf(?4CdeZBk_E{|A5?RG9MmK{!mh9TDvLgV8V&L9bUNj)LKMYPmEa z5J%x?GP7Qr4>D)bIF!p~wFAUiteA}H{d{VDRXm;hDVQusVsKkUN_vJ`wk-0?z9+l_{5i0-}yY+DU~lO!xf zCioq&{;8q2+4#O(F0O*uU`xLEc9(L8BA8AOkGFF{6=E>WPW1p7a?66|v&8k9?`?9z zxX0sLQ@W?i&&4EbRKo~kbV>7J<8bCvc#{aq7-WZiH;FgFr5d z$B-IK{^q-25=&23n54jku%c~2{Iv-^L3Z>J_p2Na0!fmk{GMqtEgWcFUfQD7)L&ci zmO5THgr7Fi%#VTAn4`aQi$snV(80z;6YM7wWDr2Px$OBr+ zx=0=_Ae33BW!OJU7slxF?Ugxs z$)3nn!vSoHOtLIXB|W`b0cE`@qX0;5-RI$oMi}c@VwHZct4)T@6@jKtXPdxLO>vpm zS;!g(s=f5wIZ9=HfU4zrn0}=vef#;Q_D+7Kg`8c>eWW;ZD|@t;eRe{Mi$f0_ro7`H z1o9}yUKF-*$3Bc7XzYJ}@6u~`;LSy__qi@w zZT@bPK2xrT1ty-eBhzKBVcwJ5T{^P&xel;s*T0`Jv_#=4mI5nKmWWzx*iKs&uis78 z_fFhZ3b<#mSBvgcnlu2b6=qx73(;FA!(ra-Zi~q#T+O9_7RMeV!_<5p;>jSDj~fyA zN5FN-ZVb1^J1h*Z!{{G&^?zBL?0~1o`!3v!mlh;UQ#J4Dr_oklN@D$ZtaZ@rL=y`$#` z`SxZ8B}1s5T6aj;&)@t^{(nusePS$u-~ z(EPk)p2*4@I2hh6=|eM5RD7hRL1) z*1)8#qtk1m4uS9EFLq5-gQ)nF&pJy|nlWeh4i|z-wBFN$iH5cw0^{L22J?PaRxTE zr_!K+pDFcu*rX=~fj6>#s-_EhIzzb5bIzV2)B=tCq8e2$;$}C-0xB&7#FDc=b=R}` zjUkGSGtSw(wUp)W46K_^DzFHs&lbOqwTu7)W(Jzw;p+OMVq%VrY5J})GABSu7y*z* zx-fDW`J}+-Cl`NHLG`T`q@0u>AI8G1e(TdGUw%~$B4R0~fbfs1W>tsU9a%@vTeDbJ zOr;A%Jt96w7O9iYa-n$%vj2GrXm*`%G@e#?aKAGP?lOo-KtzG%MC6f zmpYE!s(sGNjbJFtJt)AM5S9vKOz?6)YwO3r=8m&U2Y=M{Z4~#GewHey zSn&ETqkHQ(%&y8M8+GGQ*1c`MvdXO*ym1O}Z(l#Fa_>gnyo_}3*k!5qoC0s&mbrJH z+EsgRp>92nx_8}HR{LInw_cCkyI;?${b8uvA5cAd;8|+|F{8HOnLPfW+1CVjN zxNTXR*@G(~rE*q4a&d+^qB=h>RZJ|je6@hool4-zSPBFdC!+ZAG~kd@m#~+xf5lZY z>ASBr8muU3Sw=B70>E(2!ej{~?tYTAB6EsGB^|w3rW%E24XCBCXNreB3X8=I6;qIY zl#xoCpftNJ)IyKeY+s#n<9E&L6jSzE=btPfaVrZPInvoDoc_a;h2AG`rWfwDqVVRF z(~NdBss3}JyXdZF=kk=b$zp7vD6&o=f|VJQkaEo)r)dn$#?Kf%=*X~9G_~T$9xOQY z5|~Htnt4|E*>y%lk~iXpC72NP<2HK^5DWgDBB)&ZFEhe@_tz{qqnDrmgfD9bFmm*J3N^|ywjo1Gi;)2l27N|2$0QPgd#P_Y zRm4W9m6j*}bFZmKH`<@PkS`|ErU|l&eE-NMSPt@nh*fbHoHQ+dO}L5+Xj3HJu^?Nd zb~!-_5=^o{7HQlGI<)D4E@aCL=SdmMOyDNSGRy0H#4_9O9oZ@;2t(HDKi3;+l^6N{ za=nEqhLP4qY4)Sm#aVtRfRelzSwLw~RwSUTtg21tLq!)#NqNm=TX99hCZM>o<(#Ov zs^dMfsJaKEy`ZL_j48i%7{+RoQ#USRlUYBl*q+`nZ>R_T;H3k$YmT!{$8X+@X(wp$ z0Lj_6g+aaX+x%+F?b|LF_w0>s22aj9W#-2qU5|z*4qsl+aWA{4@q~JMyeMoh>yVf- z@cYooU%s1SDGAvQ?3rX-G~r=?WFIO6R1maNfTI{kK+vdbLpswk4in~P64nZKavsi! zv(?k9LAVni)+z26pT4nUBD#m!!@07}!^5`}zlWn&4-D_E zx?o}c-Q@bok`wqPk;k*1ZegLrUOm4@gY3ESm%Og6?Tc#`-s;1fPvS;GH$!S&&DSeR z-JRznYc#^6^K<~=`(X#N)`dXt?yjRV7hykxJ+O~R9;T6e$n*LIS=Wb4Hl%lK@)uV8 zs*k@g{b1hu?--5U=kXWb`=~i^)k8l&jba8KwEg}_&d2-(k1^;X{r9U0Z}+6<_h8Cb z4OB#l-sh_wKN9cU9Ft`}Y@W-2@?MG~*Ah|8l{iT;_#{jt#C}Q+Nzku`9QZRS(fjYU zVrsi{U;QEdCNPPzNbk0Pz1k%b(oQN$hEW6r$y|eQg%!N(cF~YQLozWH2}&IW z2_;-J#{`xyBv{0c>Yw0QV`-%3a17Js|&?8syDCh`v> z2i+v*MNxg93GH+P)(h|1DhN-xDtdS+WgY7OZft;ZC|=jcH0;tfvuZ=Vt0Z%cM=iP8 ztf$%D>tU(U>J$hst#WRLYI#!~XktHZW@z|vz>8elqU;AM0a<_olF&oR33~qVkOodp z1uQvZ-C2u&RaT3F@(Ox)li_|hg(ukGWLa+1Ca5(edEItIKwb(BR~YF?q2sE;^Xft8 z9C>M+0D1RSg0i;#GSbm9UQ`r~L|JYQlSWHrnPb(&poQ}PY`D=X<79J_Yl-vOv2NvR zR+&gx1qny__op(oZnES|5%g2-yU4kg*~V(^bXy)aLG9;w$(k67(?GOx`H`{-&8j-) zW5qR{3BRy<2ji;l419W~ezl$E~b=t8z3Y-ntG-ZiX{F^JR)0KKblXy`NxiCr7yLrU+^IOm^tJ z*ABgTZtA(2nCHSLSpl1T>HQLx5%N*qc>Wo?ndCewtTlb@_T0j7g1J^?MbPB)558Vl zx}&ew`rn?{<(`DU*|laB#6&}?e@Mf$f~A;y=+j$<=*c*^HF(W76bFYHF_IHvM|O!V zxrPL3t11*p_Hd>q6Tfvig86U$_2KajL-J~%5Fg7H4(PabN}a#ws->^a{pjvl9V`WW z3ZY6LowNfwq@P$>(nFrcg|ixRGUfT1O|?0lFwRWkg@`4~xyOG+bAeva%zi>v@=krZ zym&LAia(aj!`_ohY~%r)0?^rF!^RMniQ}j?BKAnUl#0+}0y96a8B6Xl{I&ANyKwBy}8q9sotpyA2Zx;g=GS^dVP$wqkF<40RRkfw4jX2Za9 z>ihaKDQ{Nzgc01e*XpSuZ{u2}#jk45+M4u-EW(qnlYe@v&rMX_I-Ex;keAXoVvn}! z%J!e>JRQ9lc`YUFb`g_!-|xFl`(5;}VmJkNhLY;4&I@h51hsdU5csD)!wmOcE!sAm z?e51B+IF(}y+*1(v8ph1Zta$??ACU)cuE-FMepeM3qWqCd?(Mp(`~dT)3hl@pK}+q zd$(ZHyXd{(`l@NUPB4W(XiS)2xQw)K!7v_G%^75m`6rhUlpa4rt<~1!qvP>n zYX=42rGj|BMzLak%jrat{wlDr9}Mp`taN$dQEjk?jsNqdL7j*Dai8mBY4OgBE!_3*V8KoENP54_s=rf7<<8r>b>#jQX?bOEq zW&NV-p&Rr4672uF%hvrg75jc$?*De`(EYN7340v#f4?>I`+mGd7r$pD3427uhJ9`D zdV|n{-6>S-XzY~(e6IZAq^aONyc-^9;+g}{=&3NY$rHlKKk^0QEK^|d(Gawdkqrj| zDT4@?X(&npKk^01sRkjZda_dzF}4KBPfx_u6{+&#yB(tL(IcniRMbQwM)Q>9p)kjDo;8e($Z9yukfev{ff8oxG$j)Y zZJv!3XEBLw?zWIL#DGl=?02;yW&Zqp+2;#AR4B1Q_=qMu`U0#nUKXWX0a*sCt z?zXKx*ZgXS-+-7d5I47P^FRQgYm@2-M5R=fCVXG}VgJ-@#GHT&{RGNdTf2=$F2k}d zu&a#A&8>S7T=@kACL`VR#JKql2D4Y<(AQTX%2Wy@TWR3pq_5Sl>8Y%&&?39$guMLq z7ucSmCx$sbg7KCb9v7M}`4ThLL~Z5jVHzkJf^pg;T&DQ^1;O4a=GQ#lm7RsS=}aLMq$`uBXpb>Q%9dtBN{PtF#?#Nhq zy&Uk6dBJWrkp7;u?x3Hj%&cs(&_B&hD;}a$ZDG+18<46zw#!ah@?(P*q9plE!xd4> z?gTp+SR4hj>AY37qsNPs7A*jY4JSraqNKeQl7^-2d3^FBF*;RxjvZ}V0^Pg&gVY=5BU`i{qWoS}w79@IdnHllx!0*QAuHp@kZm>p8*rsk zPT>Dq#v3JsQcl(0=xEing<4xe131zw>u3p3 zR0dM{fvZqv(^-y?0>b=ID2<=oB3u*a(w!smIAeA1_sn$yT(MApFUfT)2Skrt8-3$dIl zPEK7+sogWfh$gb9ziJEjJ@%cd1V^A#c*sM05*`^@y5ELRyQ>{EGXy&8_&A<006K?k zeCw@0@34H_8Amr2b6oJ7&f`586-GVRW_%Pw6*9E|EkYA9cPI@3GZ@Fyt#m{q0>P^8 z=mm}}3_A2uc@|V3hkLW7u?uEDAsv8#Z}E8vyPS{+1NlY!H)Rpe?Yf1v(iwESP)Xn? zYnRXj-h4dVr_q>>GpV`9JA%uR4StKmi9vs_VPt%OIM? zpL}XMG|K}i>4JG4uDSO;?|Q|-3WH>p`V_*5-H(j+@~bPthGFeE>G$;o@ng%;gZ%nq z>)T*(OY`!?xUR-3ZYe9#xX$~gKleG2_HN$y~nRV&rYg!bN23pcize1}mt*Ktg7`};36Z+v^nVd^D zeQO2ZXJ2>lo`zA!YF}ikEQ@Rwg-gs7eDy`)$!F-ob7ee`gVL# zkoDrO28`a#Z-QOBw@zHf`MjbAJIG2yuY`J;Wwz+wB>L-ywfNU|Dtp>lt~+^RuuTaD^ z4ai*DU-nTS3=nK)RSda4=`e?4NT0`Z z_ftgQR%8hI`5kr3FTvYBlZ>m&i9yugnf{YbFp9d(Wm$II$ig_dakO_LVnQg5f`2ce z(2MMV^MS@3IdEzM6OeeR394z65RU`me`8@-v8YkgE@?2U)Z_~hxeRD?nya-nKq91+ zii2r^Q3PLcSL-`IEJ?{xZY-mpB-RHE8La_c?$$*M<7&NsDt|2b_o6(l2RmbY+TAA+ z6~5i>KTmqP`Fol|bQyMyZYaH_{HBBQL!8P!HG@@q2MqDI>!L3wVw~`8Uexz_fm7q> z#Us!qjNs=TNAFnjvZzIQ=eDq zI$Sa|RvuV5z2)jGwF+`|k-C_tVOX5=lM_Wa7OKw;KIz(>0b-+V7f~0I9aE|7=8_XO zUw1W;;NlM>T-*zj^~#cB?`!);i3dZ4u;2`VNNw+Nf4Ah4TYVF!Q@0jKVQyoxq`&fS s6vq1*bYsu0MdC7z9nHt=_VaOSF>>R_jA4Jq#@Gb7pYd|8bBfIUCy+%2@c;k- literal 0 HcmV?d00001 diff --git a/screenshots/stats.png b/screenshots/stats.png new file mode 100644 index 0000000000000000000000000000000000000000..d422bf372327092754da66b53d3548b9e3267bc4 GIT binary patch literal 2150 zcmb7Gdo&wZ9!~10M}@Xh^=_R`XGgnqszkjXWzcEDL{LI?cB&+)SE{H;P^!kW)mB=M zFltrettBMl(N=UD6$BxoTCaFaJZeZI!e-|j|IDu4oj>mV-E;2w-S0c!cYnWofA)a6 zfRweB0RRBV&D9AG001*(>yL{2WOK1LGYtSxG;(utK*Sab#~FFgEVbo5L{-WQ4q<(2 zJO>-Byxt{`bN+eu4ILx4X$&8QuuO+p!R2C=nlTUnkO-8btwmCiB$|#V#P>e$*})mJ zsB3Qz6ZGB7yN1hSAkSiN*V8UQ2=x_m#CRkoA@ma~%U2hr(3I{enJZowG+Urx)g)`H zyt+6zen+}J`q##JWI?_EEA}gP!zvZ>862J-Lrz7oT}DmWTl~|osTt2Tt_EkUxT2`& zkvPsLu$h-gQiTaed*{{m&tR~W;PzjaW_w~hLMK~+m8a3vy6D!(D?9UrwUNEF z&WDZcECf(X);FKaDz;5@5@HZbnMjf+QtKfF@7LR%tp9^fv0qJPh*#(q-MdA1uJdd* ziem%Mw8kMYErH&m{x)bmjbnAhrg`JR>sW~Yorsds?m^$)mn=r9zOSku``GgN2A}Sb zbf&J?Lu2AfzB;y>;Olj*4?EQp(}xzd4(C4eQ(X30ybTl#&?dK{yzM%G0MZOGU(t0K z*JaUxR5U!!dv{WiwK_}6?Hh+nqQa;{$PsN0)%e)oym0U}8M?gCo4u%M{}ypmJah0{`Dp5zd?Y8hr zumajeZuXp_VJ~KlfvdHfE4m&LH1^KsHn8$1cUN98{mxFGVx&K4m? zJyBAl1Me`D8I*s2U#Zd_ftP5ozAjiChXPd3U3CSXI0UyhHCP8&Zt54ITT!G>g@Ik06uz!!> zvMFUR$CxMe{|{0A$n7&%^lu_=azEMO$24Vtd(((Q{Rg&;x8=*3-$`x521Q+-zbD6$^|&AB@DY)_GA!tV@&0+c zCeg-KPnDx5_(wPyx7On)sLO5fF>A$LNjUV|AAvHb=oej2#=mN%f|QVe=;n*Az`vZ7 z-L9Wf2NAq@sW>j^DW|0dpFAV<(fT?V@lz`JTb1AKEztA296+(hfL{@Ls-UI|Su#A3 z4*ZP1$%J54qnB70j*`~KEo}IY2iEd!pSrNhy|Z{nbs%MlXaCh1PC8QhLAKZIMXO;O z?8A`iNP^J_HkD-ZOMtTUlHo9%?n@JB*9>t#gbId3>Hgd{#zcFKoXr5K2fKcdsA%}H zl^}Zv2r)VUitUH-#3|Xs(neQWflS@9`b|ckDI0QmII44343&DhAYl<(!pXjX+0GSj zHO{}*tm8{YgPr?KKU@#pu4W~{tW>MT);2jVCfD83kNXV#1qOarAucvgvfP0E#$foG zaeWv#34L$Qbm2Ggs>QJ+3iMddUB?AT+J{^%}9Pmxq zEPcYk{`kE)3b1`#(h^s)Gx>nGg(S)q>G~C@#1?_S%{}lK*P*rR|DP=s(3iE&j+}?v zPI0R@I|;U$%%}mo@unM1ShcirzMS{w8P21i_sy1(w)k5X^f6h($YV}O2~Z<4Urtu? zC0oh=$l-=`1=`_LuxcZy^k1G2;~kYpP*0&wY@x0l>&}vU2dOn z=_