|+Ix{G4h$zRtpp3jX)vOS`R+55 z=HNnk91lKKVqsDDbYK^MAD`LumWpNBn0LaXFs5mY(UB8(ab#qoRiRf8 z@h^Ava!`L!h@E43)a<%%;Iy|);pt6NM;)N+qCZhS@&F%Dz!&|?hK Fu79lDevkkF delta 460 zcmWmAUr5tY6bEp=`^Rs0zw_G)exq&B8fG>V*V>{9KMEF;5JJ#Bq$mhQ4{O!q2m*r| z+CzH@HWndD5Cx6W8TZlQLxWHViAF^bOk}@T^(9E~+@}xcdoJhPdmB}4x2k=zbWqdM z_Y=&pb?+4DWj#O4MLXZpn1$IbH#2$ryN4Mlym2sJi_iQ45)nffrZ7ZS7~T*yXCB*W zZsu0y3FiOib61drS062!y6>b(`nXA&*VliZn)UWWHB{UFM+|;n(p)5})V$nX4{%@~ z9G(NoKViIbfoi2F;u;B|>q3xx8^up2cjx;s$ybs)aa;g ERM|0XdFIg-L7m9C}n z!pmN}iVUxmrR$h;$R9c6_#HBG0|jMy3?F%uOpjyQWGi=YE6VOY#e&N3FCyh Kbp;*l6rrO009`NC%4xXr?r+;C^;P2Szp~cMGh;#bRMmcs2 DkWqi! diff --git a/frontend/public/fontawesome/webfonts/fa-brands-400.woff b/frontend/public/fontawesome/webfonts/fa-brands-400.woff index e6a44f83ee9241e6b9ab844a170c7f18692a7f52..3470fc9b59ce92160d447f84ee240a5843d52a41 100644 GIT binary patch delta 14 VcmZqK&)U47bwm8C%?YnmN&z&82Oj_c delta 16 XcmZqP&)Tw|bwm6sM&8ZwuT)9_J?IB4 diff --git a/frontend/public/fontawesome/webfonts/fa-duotone-900.eot b/frontend/public/fontawesome/webfonts/fa-duotone-900.eot index b4a9aa8b2222616df5b69fde338f3e743ccecfd8..d6f9c46350b7330819174f104aaf76c311a86d95 100644 GIT binary patch delta 913 zcmaKpX-HII6o&b>yL`?a&B?LGYNlyY$<)e_Y#~~tv=l5 5GHNO?l0c({f}*;O zm(rLPD+;%|)k&k&&@qD%36nM=h%(9+DjL(aNgC@{f8O()!&%_G$7}3m)%LpVi;Nqo zP1KiPyp8@~RMiHoyJ}`q_1@)p9qVzDKKVv7!aPiC#>AvcH;-feOydu#x;++krH87` zEtVm6dmOs8H4+617S8105OcXvmW^`CpdRv5bg;zK63-aj?a9Ia>3tUH4cz*@zo`8# z3CyUgyb(j}_JpgtcfD%uNT!@kqUySi68%lbTt$z2vOGjT(A#FvGrw{NtQ?J!F`Toa ziddMJhMwBNz6n{dHfu9F3(q$rEWyj|sMrXr_n`~JG($Pc($ LYjHm5)>md8JkM z6WhO!hk<^Q!U7dnK6M1xAH%OU(k-HvAko-CW1v8yJtCxs(6Uf?VW$>$Et>9`411T+ z#ktURg}Ml=yG{=nps$6dBUs>}r#Zatq-Bv%>Z3bywVz9v3tUUt;}me7U~40^N7vbR z?Lj>&gN+Srs#)aivS<@!sOn_XmqO1t;aDh?CJG}Nl+O^X9Bw2F&R~em6uM#nmkRw1 zzV8v*6|L>4Pz76ELXZFBr-UbAkOac5FcW76Dn!}BM+DTwz~B|qB*?ihq$iH#NrUH1 tO2}_2`I|y(kT?(p%?aXLtkoupi{V?MxH}$p7KnXpZ*idr#f6f4!Y?(hLn#0N delta 1140 zcmaKsYfMx}6vs1n=Fa6_oZYS4U2s7jixrfx(5j?pQ)wecR0#C}H6^wtG-)N2E@{$; zAt6mltLcLj*cF9fj18#~tDugeVr>g$6P6G|_|OvjNC|#GOKan*sQ4dbP1B_PGQWGy zoHKLg{7-J6%X{#I_hi{ILs&MJVu+sdW8ab|M%wWzjfkGc6E83#nufZwVa#; h| z=aBzNYK$f|RSzUZb2 Ml^h-2nE+U##78<4VNq9|RIN^yAY`jO~np(q^@U!6p zj@omWXet`6$D_i-FAKmvzS99zP5rO{Sb5i4LWF#AF)7gG2g#&83s!Owx#k5QR1=RX zFRq4s3G-qN(a MLSok$r zxdE(;kW8QKd`9cdfVHbwTj2(qE3`X)@RKpE1t-eX>)IdciH<2P9%jar_L4g6?Z36F z99%P_eFlAGXja?g7Q(Vbo~hPsQ* m(PaqvYM5?MS%l86 zV>WZGAB*m1!g@{@CR?Wq`P~ibRK<<`NkfQ{ZswVEZP2UGbZqq?{4@78NRC(|G zh;?y8IP*PA^H1fKmb{z2%yq!^Fa0I-eM847YBGsvu`!4@Z=5M%`wdt>8Z2vGco`eR zCgGER*;!yA__3FHkS>p;vxaBEj2&$AYv6mQSqu6t&2#KiOoa@5&x%#;zxT5vs#^^s zEU*+zjIcVy2V1x3Eiips^`8nsvt55n4Wa*>{s4IAydIFWS6}6ZDk0NIF-#%Xj_9km zB6d$2Z&jr%%;k$zDVb|{vbthp0r%U%3)}c;Cir i;D9Q|xRq0*}! z-_m@}?Q@DcTYIOtJv!hoDDt?36ox0$*X}k9w^5tI@x+yMk`bOfoY8@$ A(1v>F}FtGo1}%=QEt*xD25ppVUz7C?Fjr$gLy41rh&%_^GlY +IXqHq=4ED>GH#v8Gxn|)y-tC#&{DtC+(sRc1M+mimgY0{T% zy)-i@e1%P+e6Nm=V(jgJPl{^pHr|LNKt#AK6Q;qd1@1mz7Ds%X4HNwIJ3C9&&Iz_f zO-!&M^iHyl^f+qU6BhXQI@uU~!fMkitE%TL^xr`AIr~sohR#b;TVSEi@9PM8c VFnOmFW+uYAM(2aJgJ>DaGpd^|<)7F|4C8?Aky3 E1$`|$4gdfE delta 1092 zcmY+DYiv|S6vs1n9=CVe*==ceE0;=_rJ);|Z4oJiMuSR;lxJZhm`F+jNJs_h#uy}~ zfiDQrK!R&~Q_wU4(G(F%HaN8e0;z;H-3 U`{)ppqBK|CHO5J4RsTa_B_|}!v|8E)X?xQ2g;?$UtGf5RD8d7h-znq#S z@S#aeCB~;WW5&JdmlSaGa$PPk^Ow^(fE<)1MCpPeGRxAhjwPQ&;SJ0s*TUer^~A*t z-mh jVAUNLwD#9W7)D;M+yIfeX9HQY53hi894id&x}+79S*2 zW`nW&q^w*wmROw;c+=)v&j!KzmDXS!TyfrNLQDPEE$escDk 64N)Nmp)&DyL{| zr{nB&l+OHYy=dCc_|rNoz`O_64k(~oGuGUo!bLURF}A`{pWiE>*+|_hrpvGZT^pq* zurQrlLob-gZpG+2!&n{dUj)u Wyg4$&I^IO6@7q0nvkbwG6e{6qSdjb`nFMTd3QKL~ak zG2QKB&7;7&am+;v{mumT-ZNlkDVz5iI48-P@SODZuh@1x3ca?AEiiL-e#7>d%`7{^ znkRsF2UsKOy@o}+2`*dAuhf9ock?w^sQ0qw{{qz=yjfrB;FUor(Bs%48+rxK@TwSU z7luWP8Re%bVze2BREc8qiBPqO`@x+t(N_k(zDYbV`Q=+gj}ak~5C`D)CB$u`< pAaqvWgHN5{=i26U0M|1Q pVd0?KXvLezyJUM diff --git a/frontend/public/fontawesome/webfonts/fa-duotone-900.woff b/frontend/public/fontawesome/webfonts/fa-duotone-900.woff index 09cc0ba54ff7d0a00dcbfbeab549b277769a44b9..02c61c8ca5e5a68fbe3bac49533316bc9933e5bb 100644 GIT binary patch delta 32 mcmZ4RoPXYP{teUgny2e+pRUJP711u#&IrUz+lAVh`*Hy4wG74p delta 36 pcmbRDoPWV{{teUg7 1_wnRS}H5?E>wLK+LpVpq;rd2LJ{|4B7wy diff --git a/frontend/public/fontawesome/webfonts/fa-duotone-900.woff2 b/frontend/public/fontawesome/webfonts/fa-duotone-900.woff2 index ac0d45be6dbf955f77327757cad3490f61a299d6..6847bc85a75b8256805fbd00c79291a9a99ff243 100644 GIT binary patch delta 43 zcmV+`0M!4$jtjbu3$U_ev$JGao3#u9uBx}YssR~px78Q|AX~Tga{>@Pw+FHUITgLk B5 fw8vQ70MEVin6q{D9S7_ ztjQ)ZC}T^Z$Y^xGTokp3$cMCuq70;m>Y>OWx|@|+_Rzz3&d2$khZ7ui_Plf6{NXjm zz5AF^vF?~?jBP3MSa|j>%IPl3Oj1}rH8xyG#76DKnaH?)=>XP}{dbJF{?k^>MXDX{ zjQQ(|cDr+%78i&y76lgJX{h zjG8oB-7<^P~vtG<8eU%@@d zkd`^rKscR8jG>`?WGD~Y;*6dTXF`lszn ~bktx)hJiX -%%{McboQRZa5ig=fFoWuU(l^3%rPl;eRK`W(o=mbN-y-WCjEtv zrTw9^OW5kE51LEZaC|7Ynk30&mCO>#bBLlNPl6LQtSv-$pJa*QoU@-nQ5+P-&x)!h jtE$B;NwDK2JI3MDS@v=k4EM75SQsB+EE33P<~jTu*^LZ4 delta 971 zcmZXST}TvB6vvslbMNlVde`0Dbkp6|4|3H$G|^QbOrta+3c+%<52^=)LP$w0QcI;$ z9|~i$$qGskm5P$KoZPasUJA;BzyvE0>ZM2}umX+x-wFhKncqF<{O|d=X9mBxLzC{l zxe|#7=SmJU;Lxs K7D1ps8|DE)qoeMA9 zhwWki=?Y)y3v{TM9B2qBfuxaXgq$zi7{*9bc<{!{^`i6XSG{o(*W-L7E;#VDDh#fa zU*mR(8`LgYtzd*ldIqKOHdgW!g0uUiTdCl+^HQ|~TzXwP?Kg2P(dSjU(I?AOCM3L~ z$(s=Tq{%zH7Ot5Ra+0&1Zl_5vDwbl51L^XhhOjqRuGkL-y5&pJ;HqJ{eFgaBi#)4> z55LQPC$hnxXKb~R0`zBexJbcb@cn9H$EzDt86;gah#7nq(7%=pD4?y7+!pc28;Q0Y zd|pj@u~DPCo;ZZArG@Nsfs {4-gi{#0sOVfD6q0ld5YjnowB3|w7yUtSi-sHh;?~oYn0pTk{#T5Gp4kQR24Hy zB7KIjwk&8Gz77mWM=za=j#nU~DKs|$=S_`^sXgl=!?IUzE%wI=n zju $L6mRFcNsIAw8wc;u4Pxg0yR-yvrH6$m zS`%;@`5}5iyx-VEnkh7Vh<0oQyH(Z{2`0s|GO_r^3^pZ}SeeIqgg>f;Wy|`OQWhgV zOZ3K4ma7kzvS@v@lwCyj$}*PvH-4{-ZToXF61TJQcn8;PCRH`rRIW RB&(*6+8nL|~$oiLHNYWhX_|+H>qf3b^|bi}x4}@0lseI5oqv8h-;M%?_sk diff --git a/frontend/public/fontawesome/webfonts/fa-light-300.ttf b/frontend/public/fontawesome/webfonts/fa-light-300.ttf index ea1f36c79bace0aed13506a42760bac155dbd6db..714bccb3ea367f2944727e654eb08959f9e650a7 100644 GIT binary patch delta 773 zcmY+4ZAg<*9L2fMeeT_!yE(VD`8u61 wG%(e=vKHuR!!F0=dmYS42jV zMY($@6Uo0`w@1rff1_HqEsW_vuSFUSL`R~R2&T-)yd6{}s3Qp;d(bHZB;QAuoP@>M zED}6J!i<7 <_&6=hNih0DaE9 cLFz;F*orE=>eeh1PQ9JwCW=tZjuiW9{)8_>hzh=G5q6x(>+ zIq^L&t`c8>#U+O3K>DEgL>0gcQ6`I^368Ls1Ouo?M2`t>&x%1R-nS^ub$64?0%T(1 zkf1?L&If{IBBg{Ut|eAzk0$YY7)~Lz=}>r@cm(dRAiKeSmTXZ$ 2e6nbQ`1HnQU*(aKqLc<8f8YU?e64R^*4N(dw`beh;vHiq~ zpkRR9*a_d2^g s}PjB$& z`84St)fLdaOAV?E=xB_dX%&*B&`JRk$_P^`!!jf|=A!Lt9#T)^xV@elA+Mg+Fc@>w V$#vlCr!i)j_&{kee4C}V>fc>n2`B&n delta 1017 zcmZvae`u9e7{@v1yyv_>?mc(A?QVB&@AYn)o8?Sx?52>;aPtRZgmd>g8 YD`6(AZ`Hw>H%!!qTbU!KK4@aADecHC$$@kCriHHy@ux zfc+<$SwK1#rGa3fK?2^jbkr+LcOmsn`jcFgT3mXK1JfU^T6$ZE^hSrG-d_VIL 4b7n~wbtIE&GYbjGYWr=cIs>6idgGIm1rmInO&8DxGgL4+pF$a_{(rsJ8 zou}#1BFH8~tXkC#(qsjKXYSHT8$2~ZQ-vUsAEQCFyO`DHgI~{QVN5~&RLP####*zb zYIYUN43HmbBJ`kc|70Q)x?zeFH9ywm6g7Jp#e1oE1Vt4NMC8`E9^$G kqwX+)|^KO3F;sI}up0q*zT`rDW!^86e8AVoAwd98Mw2=dk(u(z0R z Cw$+RXHicrncSi`w}{Y>%|_l%8bP=Uv)! z$4S0jzaRaA*Wrt+`V3#8Js<1kNxYRG>f?o+3=1I@mS^?z^ qY&)8x?F2BQqk>$u(`;%(bOWmK9l6(K39j2hE}fX8f*wqAV&M xM@(I?tYOQVh`8=-*9}P ~Jf&c&j delta 36 ucmV+<0Neki{SK)84zOOx0S&WW$jbWx4TmVi0k z=s}N=wdjLjP>o*j4>9egOCi&Ykc_kpghD9``fhgD#RI?R`8^Zk&bg>F5?>)~6)F-b zmBb>_4j!?H-lOf3iEGp)b8S`s+T;=WEmcSlp7<5dpKuGx{CxwRT9>hh7;HT*i$ABI zCptLuQBB$JV-|(_7*B4CHP%MO$NmFIln!K3y=|yopB|bwbCnQTHLDCGO?Mfo`m5o> z|3=|5`jEIc(m^nnjPhxmEJ{WvExIjSCr*anGkq$O5{pB>9NDwZVkMHP5^h=-8+B_` z`N!U9Kp%^yh}o!$^o8+i%2_TIg%etuD0$ FKj*ZQiP!hcDMlL7No9Oy>xb*^6tMGXN)r5?_ zL7YkW!)#-olT9!f#NKL{nZlX|i?6X)0{0U3Si!%Bn-U<(N!SgI9umMXpG%6fAfcA* zL(q7L3~V#L^^j8V_L3F~_xnht0zZaGxeTS(h`Sq(xoMsTqj|J!2fS;hyJbjkrvk%V zfYu<$IYS>SuyTQ>BCvMRyUfWmGPuR8G^9~(mL=x*Gf6gcyrn@g!%Pn?lz?BMx4H3P zgnD6hg!(WPT&2SWlov58Je#85^I?**mnz(eW5IOTTEtfD;HYGcsnFTXzQ_=0XG;`n z&$8|$SR7#I5Y+3;?*I{IhgGnRu^FmxYO~rgGHI~-i0vwZoKGyY6P|jckP}+VrH*)5 Ju9arH{sO%M-HQMK delta 823 zcmZ9JT}TvB6vw$U_s;Iz**m)~o13leN`kp1i&Cx<85)w%8jASQhsE}gJ*b7IqC!in zu`6Me4Z0Hf5fqWVEKPO8Rx|J=D6kBvpfu1P>>-5hMNB#q_R`Dw-SaW${Lh)s3D@+L zE1nWSOiu|Y2#{VbGJxmAIi~kEv`HpLRh(gB`bJX-@>=(W-wsA+DMQ}PanuHxt$g3b zCKG&^?D(*K2cx7Et8#5AVKN3o(_6qLEtu(xH;yC9sI@9sAFQe_jFr5>+w__N3x?ij z2ZLZ=4SrD>RYcLGSQH{4m1#=MqrD#T{} C()h(x@Fm}T1>KRvZ!`hCX^AgHCtBYY%7%O zj}yj`w5h2I32Jj;AKSFL3+B0(oDM*KGOrLZ-jIXJj-@gxnI*+;v)dJTP%C59q%c0y zg*IT@SR#acP`esJ6r}QGFB%ifj0#SK971gE8cO4O1ZB7&H-8t6?gzFkpbCY*{Dx}A zpn)SScp+F67J?PPkvTzCfseil#S-wxvf#6VSohLS?oSHksSxX-;zTAe$0xQ6z`MC( z;U3_plVT+-#=Z68z+PxQ85NHp_N-5A2Bo~YUo4mT^Fc8Hf0&CSVrB%Gm5K9=d3AZX z>;Q1I5tkVG#a65vy>GSSYQ$GM@Qe)J{VUjGOqdPh2e59eF^Y}NB2nxruedlbUK zVO$LE_%JRtdMw|@L-}y(0%B!6G>6ysL9i2(j|#BTM#5RZcYg8{j?ZTT $=m5EFNWdDYasq27$Qh&0lc!`JD~w{h)gd6W%J|Jma;Sj6T_fWM VA>Zti##~%EDs`vutEZ%eo +sOa` diff --git a/frontend/public/fontawesome/webfonts/fa-regular-400.ttf b/frontend/public/fontawesome/webfonts/fa-regular-400.ttf index 2d03c198bbd58a63e9dcd01c206ede970972839e..722837cb0b43d252766f0d7b22f06614635d9d38 100644 GIT binary patch delta 625 zcmY+4TS!z<7=_tq|NG3GeLQD$vZkDJL?KYol=6Z^Xbj0r#zaVEQb-_{XrQU(!=MR` zMHbptPjnj}qOuZ$E&kM4Js5^U7?@BGX3zyHA 1eDYfY_I#Y-#mU=v5 zxF`3&Q7-j#5ZP`uQ%SCUHN@QA!_wdXnThPd#AsZiYH;T&%kjZfopSrCSSw;8+CNT+ zG>XnhVl*x>7WpY6BLUzn3uNpQGg*3OUGXw+F*_fRr<3A6Yq)Axb!V*8sYii33~tkL z>@-;hYcxnQ@kfwwhAV9(tl*8aq|lA;`pC^~7@Q^n9bdjDrC}?%RY}E?R;40<1Cxqr z;>e6rsN%{8CDS21vzySjsFbY3UX9*M!J-V>s32~k`Dr*`M)wjdDyLoP)>Me@!i08O z3wZ7VEzxkgoBC~-be*Pz(3=d|CN^b3aREN9h9cW=JxB$I8laS*)&$Qq9B%;+!7r_F zhgn@AaN|G-a#j4;0k^ny-hx7$u)wRJ<0|y#0MBC%ygvy`Tk$q!Z***Nurr&H XGe6L8)8$Sad0}~6=FAW;t|`C ZhuQ)QZ^!-&HS9*8Pi>CF(L?HV+h22o+c^LL delta 826 zcmZ9JTS$~a6vvrwX1?8>Z)aB*ajW$b8sR0)rMzGfTS%KXjK#_>iiJ{$3JY$Tv1o$( zl8E-LZYro?V0OXilLlR>9_&pt$ifOG2zy8{!4i#%&L{QK%lVx%=gc|(Gc!KvxD$3f zUdcyXTgg`tV50zYz}A^+u9a6e$c!@!*=+#3rp{bR*9^7AP^OmF{fgpjnsJo;dk8gb z7wBc$rTSU}+@JN$@7To|%_A1m={(9!1PqJuLP))YYZD!1`n1T-6aw821uG$IU`Evy z%vIk72Q8c_7#kF`LM3G3>T-9yI^3Q0-?6sb-L7}>hOT4GnH*YuCB ?62 z{fL1mG24m;C170}ayfvHhS0!4VBs57qKMv)=+q!wT5Xn+31?6Ch5RNQE3#W8R|ynd zo0BXSVB4bPl7TNjN$FM)y15i9BG#p%XgIrI!uJz_avJvOgKq4{IVnKxEItYECh&RO zl?o$*0el?7_W@i7GKKpVE;5PRL0kwwDHi*2VgT`{3B;+-b7l~CF0iqN9M#hkUZUx} zYa2)@63>0)g$bhOW)iPY7-%6QG?ufZB*x9AsszH!2AO(1R5qBIw5Q5s=Atq{vh)pl z+R0r8YH~xw1z}T& 8Q><)Unk{5SxI9!wV$V2YLA+zWh=Nx#Bxh`s`P zIUa~==yzS+hL pSwbVsDc3{RRt vW2nZJkv0I%l} A$p8QV diff --git a/frontend/public/fontawesome/webfonts/fa-regular-400.woff2 b/frontend/public/fontawesome/webfonts/fa-regular-400.woff2 index 70fc754f4c42c2bfcf220d02af01f125d011b144..ef5f9ba4c4bc723d9b3f18df75de321f50edd4aa 100644 GIT binary patch delta 30 ocmV+(0O9}mrV90@3b2~YgPY8^o6G@3R=40H0xJ)<3^D?2VfvH}zyJUM delta 36 pcmeymjO)iTt_`!!F!DCfI L)koHL#QyZBBVo$B7zPovoa0YZVI!lFcr&3 z{!%HZAkBn|Up7%{s1VtSWkFIRQW|-5Qd9`-ZbpC1%=djW%rNkc-LegW?b`26nxd$3 zy6n&Md?5>U^ESj36OEF@q1>f-0`}w;F|n{9%b@F?1)|pzV-n*fElAw<4p9AU={hl9 zig8tWvwpL@OB7eMVlnrm3F(VZJrMS)S45AliPX*2iGdnjV-ue0CLAE?HARsMlQpw7 zSdwKa*lN~frl`!Q#mgo+UNbWPnD|taLId*|=aMFtI7HJqCI?7&{n`o9rsp>FQ-vi_ zJ-ad5@cb|ITz)CC8sk*46F!ED^^cwzMC$WPMD)HKw2JnTlra8{p_zQT0nO&Q29ykE z45$`CsuAs(!i#?*E40U=hXg8|C@B%zmLo?Pyvj$^&HFAOCm1fG#}s<%(S}HH-$NNP z?0briOyT1n&@t{EMn(L`Fj~Pw#*mF~96_sj>j*l|=a2dtw?@$_@HGm9{@$tniN0!Z zLdI$YoSBBdNW9F2qoB!!RXd-z8^^+%1-QT!fV^-Q?gpPIV?U3B!oB#q#G{Mx7YIF! zg#+%_;g!} )g!=tlbu_qy;{;s38+* p*?$Fs?JUv_2}@WNg0`iMV&0j}j>4iGHY*ek=dwBk5qT`z^9LfYC$azl delta 1131 zcmZ`&TWnNS6wN;8+_^Is_DtzxZaV}R+J^DbbZ9X{O2kLeVyI19G4?~P(TD{_D5QvD zP*bXDfkxUX+&&_S{pdg?NW7TC2PR6zSfo(_G5Q6@v_@JRt1+=P!F8v0{`@&>?Z@3` z?S0Q4*Y @#!EXR~E-;DJCI9s~`rYi)UvOtyk5YO?#<3$-F+jBVX*5WDy9sP+*j z54Kdn_@<>W2$*R-Pk_^HKPiNcbUXuNx 6^m3z0%2aAud&hV~O#65i6 z2xJ@|rW!LGWs{XBZWwGCt5x#O;g$ZYD$O}rbMiU_6%7|NV56SS1tczCLAS2|>JU`A zr>~Fa0eU9O3y7UB47vv}YtX%bgpbOIb(4?!(VZqg?OkfK)oX^AnPIcn;!sv&RwRNW z#JaPHzLL5jMrCMNw{NBh3hKe_q!K7KG)OU+V}mq?4t0Nuo<-Ao?jlv9DZTz{I AG9l~An_>nxeEybjBfz}_;)%R4TWi*GP7b$Lk9k1$V-^>% zzIjHZFd5xGA=cv$=!^e|LrYMjE+|`_Z-a6leAOYTJ?UbFto8$IV)E=FyzS9|88ri} z{cGg5jqvZ v9^i)CU~- 6@423GbJ5{47WC1ofj6@>(`9 zIxBziiu lk;s47;?h!f-Z0g72yXVPHm{}c3)TA}_O`1cy<>5xXf0R! zp -!)hAdO&_S)tUNsD#mX0p+W8A-j={R&yb=bM8Eam_y74o0)+?Jmss ?R?}2xT;llQob&tt^Z#&e za&CX8`O5{f{g3qyAq@Q!J=$kSN>@+TmjM@c=GD}Ojh~Y@c&W6UtDG%Cn^jpcPlYRd zb~Sk53aGP({$#p{BP2e-#f0^!%CwrQK30QOgjhr0U9jqp-c*~auM(AU+z!_C6Svg= zCmv8uaNUuZnqd7?Z(2`JX2)tZr?#8K8dheg+&UFXkM-33PyvfItf>w8u{wsGs-}VK zF@|Yj^P2bcjFzWXPHPquJfB&sTJI}=TZW-lbUsd2^Lp>ul>1&YRpEi56xA|P;Fb>= zd?+0pX32#d{J4)p9iUr-T@&T^K1jh9AM{eJ$b|fCJXZo9H(vV+SU~nPLKcoT!fl3^ znqh4^rd@|39lyK-hbATnJ!DI?g>+$j;g#*f;F8)ftdnKKP%eKPhGj-f0M5QntQ>)$ zY#M=Y<+RaA?93>v#PL!1I{x(@d;Wzd4%`+;j7hlf12U$`?K#AYH95p^N&hY~1-s{x zt+}sIF5f}=qLhKbo#ZdT2o7jc+fT;u`F^52c)pITNJ$pcXBtkYaWHs0I>0Ouh8sQY zq$Pk|L*%2B&i}~KBw20HgVJHAm3YKX(SftmX)q3tWzvp#P2AKqucqUI0=oG#?5Ly; zz@FWdrs0hr=)-B))I|?#IQ157bz|Qk?Iu_|MEfUT*)#fg94;knGc&~GPqSTtfa|z0 za&u*`jSXO<#twTh)5jVkCoPP^=t<}4*zae1ldxnC^BB0LnB}En!zQKy{#eS!3D%df zEFbn%Grxx87W v*g7#_841#V$Tzuf+sLrme+K>?M{w(nGw#T zzo!txVb-DH&KvA>0Fz#@pUpH;`0A-nBk>ItzjJUbm8VC7i+Byhi}^*Xi;8mHW@=dW gdAJwvF6IwFwiWYlFmDN;nT(|y`Ds8}%9reT33E0&2><{9 delta 1133 zcmY*YeN2^A7~gZwdGF R7n Z_xyg(^FHtM zJm);;PT7}x?PJ5$snW8f`J$PCr7%tD{aL-4{L%`DuwQy>H?C&?6K~TNgQPe2y>cH( zr=jr`klx0e0O0D!KM`PG%MAh7`>kt123r{e`TdJiINNp)KzhCHG$b!|PXN(Qc<-+u zBYUrLkd#i_X^8t_4e!gJ!r}4C+Iw`a$)M@6E#TW@vnN&WhggyR`(%)HXz>)TGu0nT zGN*{`@pq>1l+M2lX&H-!6YS1T`b{Kk=@fTeL9u3ct^^eH-kSl)I(rF|@WwC3Ig^%C zdd2p71}~&TY91|`Nz&~R^c-MF& O331IPb`b$^n7BF}kgNP#*>U~x z_uJWh_>O$UyiDNR2iP0w8PY0VBGc03&hqmb$gZ^HOsV>hvQA7u)!k;LdQRW|!*-`2 zM^y5iu9CbNS|q@gF7nPSUY-Ojp2ts4!>b-J{b9c;)p&&0E{9(A0T1fY*EDmU1+4v= zUtb7(sgLhMU8;Y8cj>9u-{ilbXjOEZUrq)3{^oad-f hMFbT_B7MMp4MuT)85u@)sx_gEE6S34qNBZ^nI%0wm}lKOA8Sd;-QtPy@) z*z=pjL;d50n?+s@u(C}=bYU%y7{czk)%(Tgpkw<*AJ)$Ou1h$8rQPD*W3bioBjRRq zIv(wG;mZr#p{Hk>Ayw&*f*Dw6EP9Dl%YGIob?%9NaWJaB`d9SXVQG~lMwTYgz+|PH5brT6g delta 27 gcmeBM&oN;=N5dAzS*eV?+kr$T6Od-kVC-HG0F8DDTmS$7 diff --git a/frontend/public/fonts/icomoon.eot b/frontend/public/fonts/icomoon.eot index 5c94ea1c79a87665e7ee1733bc8fdc7ba6aa13c5..dca77f5a0df72b5cd3d43a00edd7de30c6fa3f9d 100644 GIT binary patch delta 19 bcmeB~&Db@Yal;a|%}dozacwRzl#u}dQ&tD3 delta 23 dcmeC0&Db-Wal;ZdM&8X!)J|~$sXRj&831Sz2fzRT diff --git a/frontend/public/fonts/icomoon.ttf b/frontend/public/fonts/icomoon.ttf index 7ee9cc18c667edeec9157fb429a8c747a4599629..2ca82e112a55b9e6acc6056f5ab1d74637d2de65 100644 GIT binary patch delta 18 acmaDclkwS1#szAd8P!g4Z9ZclBLe_WE(cx! delta 21 dcmaDhlkvqszAOyqnZcaWV34K4l;y0{~tO2X+7e diff --git a/frontend/public/fonts/icomoon.woff b/frontend/public/fonts/icomoon.woff index 8ddca17d981b42a98fbd32be2ba68108a108ad12..cc78b73f4eb677db69b7516fb0f385c8eeea12e3 100644 GIT binary patch delta 19 bcmdloi*eH|#tlAdn|;+zac!0`l#u}dP!$I4 delta 23 dcmdlqi*d^=#tlAdjJ%tD)J|~$DKSGC831GW2L=ED diff --git a/frontend/public/icons/duty-dngs.png b/frontend/public/icons/duty-dngs.png index 1fad25625344bcc335bc6290444d0f4e64c990b7..bc62d91f5966f870af04b0efccb5ef6d4c6cb7bc 100644 GIT binary patch delta 23 ecmZpTXo_Iz4DfT`$oi0J^K+&s#?4MFht&aT G|JAZ5>TSRDX`>j=RB diff --git a/frontend/public/icons/duty-expl.png b/frontend/public/icons/duty-expl.png index ae11fddcdaa11385a8f173db96b1f719835b4f57..b23ba3392b2733204c207a6a5dcd495d50e4fefa 100644 GIT binary patch delta 13 Ucmdm_vr&hoGr-S%Bde|$03nbBCjbBd delta 14 Vcmdm}vq^`wGr-TCcO#3g7yu;%1T+8u diff --git a/frontend/public/icons/duty-guild.png b/frontend/public/icons/duty-guild.png index 9f022bf7aa6afe17b1bfa26276618dd638a073ae..c0b0caef318040bb104c6aff960478bac1444148 100644 GIT binary patch delta 13 Ucmca)aM6IJGr-S%Bdf0j03|8}kpKVy delta 14 Vcmca;aLItRGr-TCcO#3h1OO=J1fBo@ diff --git a/frontend/public/icons/duty-high.png b/frontend/public/icons/duty-high.png index b04850da8f01cb3c329b89e17ed4f82d7af636cc..bb929a80369541d35806dd3844fada53126f958b 100644 GIT binary patch delta 13 UcmbOqIxm!^Gr-S%BkL?J03
%Gr-TCcO#3SA^;>01Q!4R diff --git a/frontend/public/icons/gc-1-10.png b/frontend/public/icons/gc-1-10.png index 14ceb823af5b8eab0b214771eec22a5227747d65..bca3bfb8f47a0e815ccd1b2f9d2063557908be80 100644 GIT binary patch delta 13 UcmZqkY4u_04DfT`$jYb&03YZB^8f$< delta 14 VcmZqmY4c(24DfU3-N?eI1^^>O1ONa4 diff --git a/frontend/public/icons/gc-1-11.png b/frontend/public/icons/gc-1-11.png index 604ad4fecb4d6211734ff65a7123662b0081da6d..9587f11e397e0c502328f4e9c367d7ab1296d660 100644 GIT binary patch delta 13 UcmX@>d&ZZgGr-S%BkKt@04OvCN&o-= delta 14 VcmX@(d)Ak=Gr-TCcO%OQH2^Fi1y=w7 diff --git a/frontend/public/icons/gc-1-12.png b/frontend/public/icons/gc-1-12.png index 33c6db77d79a829187a2f17519e66088758a3127..dc586e77d1b2134f6a13d2d43987d8441aed1a7a 100644 GIT binary patch delta 13 UcmX>ddMcEqGr-S%BkM6O04THtSO5S3 delta 14 VcmX>VdODP~Gr-TCcO%O&EdVU61!VvL diff --git a/frontend/public/icons/gc-1-13.png b/frontend/public/icons/gc-1-13.png index 068fbf01b66e8dcf12c156a11ca6b56eb38a4716..24652641e60cd4e27495c2cd5ceef3536028abd7 100644 GIT binary patch delta 13 Ucmews{xzJXGr-S%BkM WyOQ4DfT`$jYe;03q`PE&u=k delta 14 VcmeB;>WgCS4DfU3-N?eJ3jig11Umo# diff --git a/frontend/public/icons/gc-1-15.png b/frontend/public/icons/gc-1-15.png index 1d7ab11beaf87ab324f8b73685c7f054b1b23d67..0c27fc218d873556fb53ed4445b7a2737c7a1615 100644 GIT binary patch delta 13 Ucmey6`#zVYGr-S%BkOB304|aS0{{R3 delta 14 VcmaE#`yrRLGr-TCcO%PdGXOIL1`q%M diff --git a/frontend/public/icons/gc-1-16.png b/frontend/public/icons/gc-1-16.png index ab485464a658e7e66167acc2cb566cc621d06047..c421fe5a86054c71a9b41cfdfab21cfcc2b31272 100644 GIT binary patch delta 13 UcmaEt|2ChcGr-S%BkN0Z04|FL0ssI2 delta 14 VcmaEx|1O`kGr-TCcO%P7a{w~^1`hxL diff --git a/frontend/public/icons/gc-1-17.png b/frontend/public/icons/gc-1-17.png index d3e758a738287e5f723938024fac3b23e95cf389..8be93a17bd05c88d4a8bfff363a2eb29591c8677 100644 GIT binary patch delta 13 UcmdmAyswz0Gr-S%BkL|p04g5^e*gdg delta 14 Vcmdm2yuX;WGr-TCcO%O#O8_oA1&jay diff --git a/frontend/public/icons/gc-1-18.png b/frontend/public/icons/gc-1-18.png index 5ed7fe8dd03fdd09c3413944bd18a1d6fc8bb456..251009094b96dbf6f3fdc02b8e66eb346e2d00a3 100644 GIT binary patch delta 13 UcmX?6a=e74Gr-S%BdfC&04g8_9RL6T delta 14 VcmX?Ja-xK_Gr-TCcO#3l6#y>W>1nmF- diff --git a/frontend/public/icons/gc-1-2.png b/frontend/public/icons/gc-1-2.png index a1ab5a4a84ce680c01c44c853b6899a4552719c8..58f8c670d325280d98a4bac1cedbedc0740e4ae3 100644 GIT binary patch delta 13 Ucmez8{MVVKGr-S%BkNB^04z-f!~g&Q delta 14 VcmezC{Lh)SGr-TCcO%PBMF22|1(izGr-S%BkK$$03x6SrT_o{ delta 14 VcmbQ^I@gu8Gr-TCcO%OTB>*NI1hW7D diff --git a/frontend/public/icons/gc-1-5.png b/frontend/public/icons/gc-1-5.png index dcabb02987dc86f93646665c9159a3e4752c254b..afb4dcb2d9a1b5c34f8266f15f2392640ef4e0e6 100644 GIT binary patch delta 13 UcmZqkX!T&}4DfT`$jYb!03VJ6=>Px# delta 14 VcmZqmX!Bt04DfU3-N?eI0stc71NHy_ diff --git a/frontend/public/icons/gc-1-6.png b/frontend/public/icons/gc-1-6.png index 40601cf23e1c0e19b0a340a4f8d4ce787a2f4ba4..70b99e346d32bf0ad351494d3df86d8fb3389f09 100644 GIT binary patch delta 13 UcmdnuvDt&AGr-S%Bdfj&03 GNUf4DfT`$jYS#03gx?4gdfE delta 14 VcmeD4>Gxsn4DfU3-N?eF1^^^L1RDSV diff --git a/frontend/public/icons/gc-2-1.png b/frontend/public/icons/gc-2-1.png index 2c26e53ad2dc6c110f06904481c015e785bf9787..f0ab2d6bf5475dd32abb51b33be676aaf3bcb913 100644 GIT binary patch delta 18 ZcmaEB_1cQ1Gr-S%BWo ^m0AE=LeE MoGr-S%BkOWK0472O4*&oF delta 14 VcmZ1-yC#;kGr-TCcO%PkJpd{U1snhX diff --git a/frontend/public/icons/gc-2-13.png b/frontend/public/icons/gc-2-13.png index 10c04a9c7f93bb6574d2bcec5183f00a045a3610..2901a6153fac1c3ac12a3a43c25dec04cf700ae4 100644 GIT binary patch delta 18 ZcmdlQw>gfbGr-S%Bda#YW 6HnGr-TCcO#272P5xheGV3N08W$zumAu6 diff --git a/frontend/public/icons/gc-2-14.png b/frontend/public/icons/gc-2-14.png index d1768ac97221dc9f3c8dd358d27076d9b4dd218b..f51e8b3eb5df57596fd95debf32320a542f3bf32 100644 GIT binary patch delta 13 UcmZ1(zapNcGr-S%BkK}<045;?3jhEB delta 14 VcmZ1xzcQY+Gr-TCcO%OZeE=!x1sDJT diff --git a/frontend/public/icons/gc-2-15.png b/frontend/public/icons/gc-2-15.png index bdf6aa8861c7b99c7842917e1c0fff8326a70efa..cdcbc2f9f1a22efa76b17988b10eeee1cba53c5d 100644 GIT binary patch delta 13 UcmbQ4J|mr_Gr-S%BkL4n03|g9?*IS* delta 14 VcmbP{J~N%QGr-TCcO%ObV*n`a1pEL1 diff --git a/frontend/public/icons/gc-2-16.png b/frontend/public/icons/gc-2-16.png index 9aeee5bd28fb0b99fbca901e4da379f6bc30dd45..88afd45e256ed94904369bcdbf217194a4f394a2 100644 GIT binary patch delta 13 Ucmey7{ym+gGr-S%BkN~l0501G3;+NC delta 14 VcmeyK{v(~WGr-TCcO%PZV*oQz1{nYV diff --git a/frontend/public/icons/gc-2-17.png b/frontend/public/icons/gc-2-17.png index 68c74dd22f872f934a24e5e2a0dba8d1a2737f3a..ce3cb5cb505ca8c389adb369a331daaf3a27571e 100644 GIT binary patch delta 13 Ucmcbcbtj9ZGr-S%BWr{y04reyLjV8( delta 14 VcmcbUbvKK(Gr-TCcOy%LDF8301yBG0 diff --git a/frontend/public/icons/gc-2-18.png b/frontend/public/icons/gc-2-18.png index 488bc328f27dd65990ca75f62b9fa44ccc407c09..f6ce676656553b8b42b18af5511ed80b0adfbf28 100644 GIT binary patch delta 13 UcmbQ9GcAXuGr-S%Bdd@Z03>n*b^rhX delta 14 VcmbQ1Gd+j3Gr-TCcO#3C82~6S1cLwo diff --git a/frontend/public/icons/gc-2-19.png b/frontend/public/icons/gc-2-19.png index 4d4ea826d9fd237f3209d69444e0f3b85a07d9cb..f967fe94221ea7fae2af7eed5eabe693b2371128 100644 GIT binary patch delta 13 UcmX?_b0mkQGr-S%BddcM04W{?00000 delta 14 VcmX?-b2NvwGr-TCcO#2~82~Lf1q}cI diff --git a/frontend/public/icons/gc-2-2.png b/frontend/public/icons/gc-2-2.png index 807138244d910c15eefe0d39c20a9ef9b54427a3..1aa11b7f683df2f1f6c26e99a2c159062c8af735 100644 GIT binary patch delta 13 UcmaEA{luE3Gr-S%BkKcM04WazWdHyG delta 14 VcmaE2{nVPZGr-TCcO%OKSpY2u1#$oY diff --git a/frontend/public/icons/gc-2-3.png b/frontend/public/icons/gc-2-3.png index 061cb1b895b480b09ed96e8c16eaccd438c8cf16..37cdce2732bca34869705da633bd861d7bde52f7 100644 GIT binary patch delta 13 UcmaE3{o0zPGr-S%BkOZn04c= _KO25 +waTL8Q|x>k+oY503reelK=n! delta 14 VcmeD8o#4yb8Q|y6yOE_^4FDx{1fT!_ diff --git a/frontend/public/icons/gc-3-1.png b/frontend/public/icons/gc-3-1.png index 63edb16b3201bacd49b5a69b5998e09c110584fe..2c3eb5ac9929ae13c389d80e4bad501c198bde41 100644 GIT binary patch delta 13 UcmezE_{)){Gr-S%BkMN>04vf3wg3PC delta 14 Vcmez6_}h`SGr-TCcO%O;1pqJt1;YRU diff --git a/frontend/public/icons/gc-3-10.png b/frontend/public/icons/gc-3-10.png index cf852088ce966e15dc281f1d2910a89ceb6e957c..8f7453405c62c2054fa2b0ce6ba7d606a466e67c 100644 GIT binary patch delta 13 UcmdlMu{DCFGr-S%Bdehf043H0p#T5? delta 14 VcmdlQu`PnNGr-TCcO#3T4ge{t1g-!8 diff --git a/frontend/public/icons/gc-3-11.png b/frontend/public/icons/gc-3-11.png index 48998ecdf965769d580667487359a31f88abe8b6..3ba7490f405b8b27c62c87700c2b0f928878a5b1 100644 GIT binary patch delta 13 UcmbOoJ1dr@Gr-S%BkMFh03?V6+yDRo delta 14 VcmbOgJ3E%OGr-TCcO%O*Jpd>$1nB?( diff --git a/frontend/public/icons/gc-3-12.png b/frontend/public/icons/gc-3-12.png index 1b4a9d170e66bd45657e5120f93c1628945f554f..c91919593831213b0f5590b9c250ef559ad502e9 100644 GIT binary patch delta 13 UcmaE#`Yx5FGr-S%BkL<804>A?>;M1& delta 14 VcmaEt`aYGlGr-TCcO%OyBLFfa1^EB~ diff --git a/frontend/public/icons/gc-3-13.png b/frontend/public/icons/gc-3-13.png index d54407e3d5c62c7d1fe3dc1ef2903ebafa4a2986..7cc5e6e32f503ce2f08c8b3d4d1b25d7cba5939b 100644 GIT binary patch delta 18 Zcmcbeb~BBoGr-S%BWt|==2ZP}%m7Sy2X_Df delta 21 ccmcbab~}x=Gr-TCcOy%@J|pkuWc_c<09(ZekN^Mx diff --git a/frontend/public/icons/gc-3-14.png b/frontend/public/icons/gc-3-14.png index 291c6eec6d6d0ac8ba4ea62cb2b9af808639b5a3..c8d99f7cc38d6a6456fdcd7e43b56a966fab229c 100644 GIT binary patch delta 13 UcmcbTeL0(@Gr-S%BkOrn04t3JssI20 delta 14 VcmcbdeI=W >hF1n2+& diff --git a/frontend/public/icons/gc-3-16.png b/frontend/public/icons/gc-3-16.png index ed1c0761434c3e5ffb62dc79b58c7303f4cf50f6..b6ede365be9c92c50a4e9835cbf86fe783ab8844 100644 GIT binary patch delta 13 Ucmdm)wIhqAGr-S%Bddui04KQw*8l(j delta 14 VcmdmywKI#gGr-TCcO#35DF7?C1mpk! diff --git a/frontend/public/icons/gc-3-17.png b/frontend/public/icons/gc-3-17.png index f8032b816af8255387be6444d1f0ce87fb4fb679..ffc28d1581e3f11c398c6171b601a646eecd9fbe 100644 GIT binary patch delta 13 UcmaEo{WzPYGr-S%BkO%r04*&A+5i9m delta 14 VcmaEy{Un>UGr-TCcO%PvQvfl81?K<& diff --git a/frontend/public/icons/gc-3-18.png b/frontend/public/icons/gc-3-18.png index e65c82616a128473990c7467105075623d327071..832e05b51a806df5852c9a0c8e6f992bcc3d359e 100644 GIT binary patch delta 13 Ucmexc@TY*KGr-S%BWr~P052#7vH$=8 delta 14 VcmexU@V9`qGr-TCcOy%M1pqU;1-}3Q diff --git a/frontend/public/icons/gc-3-19.png b/frontend/public/icons/gc-3-19.png index 2b4c7b1b1c1b1907bad5a266132f12d81b69f2c9..a987523775d172c68d36e34f81b74225400af1c5 100644 GIT binary patch delta 13 UcmZoKYb#^v4DfT`$jW3503)*mUjP6A delta 14 VcmZoGYcFH%4DfU3-N?dZ4FD%)1Z)5R diff --git a/frontend/public/icons/gc-3-2.png b/frontend/public/icons/gc-3-2.png index 1bbd7da4f45f0f9e9c961fd5765e037dd84d4be5..83746456adec811ed7a27fe2dba5f0533c7d5567 100644 GIT binary patch delta 13 Ucmdnsy55zgGr-S%BkO7<03?nC-v9sr delta 14 VcmZ4Qy1|vTGr-TCcO%PcB>*Te1nd9+ diff --git a/frontend/public/icons/gc-3-3.png b/frontend/public/icons/gc-3-3.png index cd765b5a249b4a18c418deb53d528dc47b894384..c444ad642819286d2dc64df3169e5ae0ec04593f 100644 GIT binary patch delta 13 UcmccQe$kz!Gr-S%BkNgZ04Og7N&o-= delta 14 VcmccUe#xD+Gr-TCcO%PLWdJN01y=w7 diff --git a/frontend/public/icons/gc-3-4.png b/frontend/public/icons/gc-3-4.png index 59dc695301abc17e6ed157d6870016a5588c22e0..f24fc313177023374e85de8f02227206c624e88f 100644 GIT binary patch delta 13 UcmeD6?D1sj4DfT`$l9R-03ligfB*mh delta 14 VcmeD2?Db^r4DfU3-N@3R0sthw1dRXy diff --git a/frontend/public/icons/gc-3-5.png b/frontend/public/icons/gc-3-5.png index 5bd9b35a7dfa1ecfbb0cfcb43b9377c7164c950a..b87e925eee7c5acd9e52a6142fde940120a2abd9 100644 GIT binary patch delta 13 UcmZ4Nv&e^~Gr-S%BdeSm03zB1N&o-= delta 14 VcmZ4Fv)G5VGr-TCcO#3O8UQA61Xln6 diff --git a/frontend/public/icons/gc-3-6.png b/frontend/public/icons/gc-3-6.png index c187830afd996a2ebba238592e057efcf5f6f261..e4f40564bdeebe6f8d3795f4c476839cca8a56d6 100644 GIT binary patch delta 13 UcmdlPxFe9IGr-S%BkL9o049b77ytkO delta 14 VcmdlHxHFKoGr-TCcO%Od4FD=q1tkCg diff --git a/frontend/public/icons/gc-3-7.png b/frontend/public/icons/gc-3-7.png index 955b1ee537534b7c252ae7ae7f79eb6f5dee43b4..e60c1a140eba0c7b5444602c772fc3ff204b8f27 100644 GIT binary patch delta 13 UcmZ1&vLJ+|Gr-S%Bdd%S03%uiSO5S3 delta 14 VcmZ1wvM_|TGr-TCcO#38762yv1Z4mK diff --git a/frontend/public/icons/gc-3-8.png b/frontend/public/icons/gc-3-8.png index a8cf5b3cd9fb51f2e9cf68d6c76846598c7c37f4..8b9fa2063a139b7c818f03e314e2356d3bc1d99f 100644 GIT binary patch delta 13 UcmaDF@g#z!Gr-S%BWr>V04kgXE&u=k delta 14 VcmaD7@ic<9Gr-TCcOy%J4gfCB1v>x$ diff --git a/frontend/public/icons/gc-3-9.png b/frontend/public/icons/gc-3-9.png index 82e44eeddbebb939fb60b35906ed4cb2cfc3121e..14dd8caf0238d96790cd5e43ef845f8f26d1d0c2 100644 GIT binary patch delta 13 UcmaDF@+5?%Gr-S%BWr>d04hQSBme*a delta 14 VcmaD7@-&3CGr-TCcOy%J762}61u*~s diff --git a/frontend/public/icons/town-1.png b/frontend/public/icons/town-1.png index 5b06ce4f1cd23ce14c548b38fdcfe56921f346f7..7408e2b1f528a38db467a59a4ca64b10c9ce919d 100644 GIT binary patch delta 13 UcmcbqeM6h2Gr-S%BkL7W048q*82|tP delta 14 VcmcbieN&sYGr-TCcO%OcQ2;701ttIh diff --git a/frontend/public/icons/town-2.png b/frontend/public/icons/town-2.png index 9bfe3df57cdb73da1c5918038191a4a90c0d77cf..4c25b8b64c73ecac7dea06d11325038140cc97bd 100644 GIT binary patch delta 13 UcmcbkdRvvHGr-S%BkOe`046pC6951J delta 14 VcmcbudPkMDGr-TCcO%PnApj}x1t0(b diff --git a/frontend/public/icons/town-3.png b/frontend/public/icons/town-3.png index 364a0e0bbdd35deece0620cbeec65a3617bdcc82..f8f70d8b1c0e7aa3b8225a3e5da63aa12c14ae16 100644 GIT binary patch delta 13 UcmaE*^HPVUGr-S%BWtP{04G2M&j0`b delta 14 VcmaE<^Gb)cGr-TCcOy%x7yv6I1l#}s diff --git a/frontend/public/index.html b/frontend/public/index.html index 1a8df5ce..a13888fa 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -1,63 +1,63 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XIV ToDo: Dashboards, checklists, and tools for FFXIV - - - --- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +--XIV ToDo
-- XIV ToDo provides useful dashboards, tailored checklists, and tools for Final Fantasy XIV; - whether you are a new player to the game or more experienced. In its current form, XIV ToDo - offers customizable daily and weekly checklists as well as automated completion trackers of - duties and questlines, with much more to come! -
-XIV ToDo: Dashboards, checklists, and tools for FFXIV + + + +++ + + + diff --git a/frontend/public/og_cover.png b/frontend/public/og_cover.png index ebaf4341cc8fedc77baaf969726d714c57ac6635..d94175ba20dae0fd2dc12c51b432478321e41b9f 100644 GIT binary patch delta 15 Wcmccilkw_LMwZS1KlhES7i$1L!3Pxp delta 16 XcmccmlkwV5M%K;%KX=}ZEEj74Ll_4l diff --git a/frontend/src/assets/img/brand.png b/frontend/src/assets/img/brand.png index 1b44f82c565f2f3304f69a3f20553cc66f69ae98..856c5b3c89e9d26f4e16111b40d7c811b3a002ac 100644 GIT binary patch delta 13 UcmbPbGt-8pGr-S%Bde$!03e722LJ#7 delta 14 VcmbPfGs}jxGr-TCcO#3a8~`Ki1QY-O diff --git a/frontend/src/assets/img/brand_grey.png b/frontend/src/assets/img/brand_grey.png index edf96a29df173875a1c1855e0e2076b31c1f7d7a..9bef86b6f2ebd96ba16989c641d92d38a9c20605 100644 GIT binary patch delta 13 UcmbPbJJXh>Gr-S%BkNQ-03n_Pi2wiq delta 14 VcmbPfJIj`}Gr-TCcO%PGIRGUD1eO2* diff --git a/frontend/src/assets/img/hamster_avatar.png b/frontend/src/assets/img/hamster_avatar.png index 36afdc47fc27eff8925069b7d44ec5487c6c495e..feabd49edcde4539a647cc49c35a39aa538f7691 100644 GIT binary patch delta 18 ZcmaE{jpg|^7M9KcKlet~t*ng6(f~@h26X@c delta 19 acmaF9jpfBQ7S_%HKX=|nmaQy|$++XIV ToDo
++ XIV ToDo provides useful dashboards, tailored checklists, and tools for Final Fantasy XIV; + whether you are a new player to the game or more experienced. In its current form, XIV ToDo + offers customizable daily and weekly checklists as well as automated completion trackers of + duties and questlines, with much more to come! +
+d1UoXS;A7bH*hAE0zxo delta 46 zcmey~Ao#mMkhL?w&z-lCrIm$oD+`m)L`L520TY=Xtq0OZj?8y;fHZ#|bH*hAa0CxH diff --git a/frontend/src/assets/screenshots/en-questlines.png b/frontend/src/assets/screenshots/en-questlines.png index cca04f4a38f35348f0306785997627785ed3357b..7dd8adadb511823f02d918bdc10f1cc58121aa1d 100644 GIT binary patch delta 46 zcmV+}0MY-Rrx2N^5Cn-(PDg sWu9o+x` delta 84 zcmX^5LFLQ`71quGKX=|nmR1(VRu-mK7Ur!iEEAO(dACnhW_fSQ$lKl$$+EpAlJ)N| lpjcxF+iyW2U6aN(^8k<*RcAjwAE@TeG4}0uj&Wob0szE89u)up diff --git a/godestone/core.go b/godestone/core.go index 78df7b5c..9b3f1fad 100644 --- a/godestone/core.go +++ b/godestone/core.go @@ -1,12 +1,12 @@ -package lodestone - -import ( - "github.com/karashiiro/bingode" - "github.com/xivapi/godestone/v2" -) - -var scraper *godestone.Scraper - -func init() { - scraper = godestone.NewScraper(bingode.New(), godestone.EN) -} +package lodestone + +import ( + "github.com/karashiiro/bingode" + "github.com/xivapi/godestone/v2" +) + +var scraper *godestone.Scraper + +func init() { + scraper = godestone.NewScraper(bingode.New(), godestone.EN) +} diff --git a/scripts/csv_to_json.py b/scripts/csv_to_json.py index ea3bad8d..68ab493c 100644 --- a/scripts/csv_to_json.py +++ b/scripts/csv_to_json.py @@ -1,50 +1,50 @@ -import csv -import json -import sys - -# This script converts multiple CSV files to a JSON file, grouping entries -# together that has a same 'Category' field. -# --> Usage: python3 csv_to_json.py db.json *.csv - -def loadInput(csvFilePath, jsonObject): - with open(csvFilePath, encoding='utf-8') as csvf: - csvReader = csv.DictReader(csvf) - - for row in csvReader: - rowRef = row.copy() - for key in rowRef.keys(): - if row[key] == 'TRUE' or row[key] == 'true': - row[key] = True - elif row[key] == 'FALSE' or row[key] == 'false': - row[key] = False - elif row[key] == '': - row.pop(key) - elif key in ['ID', 'MinID', 'SpoilersUntil']: - row[key] = int(row[key]) - elif key in ['MaxIDOneOf', 'MaxIDAllOf']: - idSplit = row[key].split(' ') - ids = [] - for id in idSplit: - ids.append(int(id)) - row[key] = ids - - if len(row) > 0: - if row['Category'] not in jsonObject: - jsonObject[row['Category']] = [] - jsonObject[row['Category']].append(row) - - return jsonObject - -def saveOutput(jsonFilePath, jsonObject, minified=True): - with open(jsonFilePath, 'w', encoding='utf-8') as jsonf: - if minified: - jsonString = json.dumps(jsonObject, separators=(',', ':')) - else: - jsonString = json.dumps(jsonObject, indent=4) - jsonf.write(jsonString) - -jsonObject = {} -for i in range(2, len(sys.argv)): - jsonObject = loadInput(sys.argv[i], jsonObject) - -saveOutput(sys.argv[1], jsonObject) +import csv +import json +import sys + +# This script converts multiple CSV files to a JSON file, grouping entries +# together that has a same 'Category' field. +# --> Usage: python3 csv_to_json.py db.json *.csv + +def loadInput(csvFilePath, jsonObject): + with open(csvFilePath, encoding='utf-8') as csvf: + csvReader = csv.DictReader(csvf) + + for row in csvReader: + rowRef = row.copy() + for key in rowRef.keys(): + if row[key] == 'TRUE' or row[key] == 'true': + row[key] = True + elif row[key] == 'FALSE' or row[key] == 'false': + row[key] = False + elif row[key] == '': + row.pop(key) + elif key in ['ID', 'MinID', 'SpoilersUntil']: + row[key] = int(row[key]) + elif key in ['MaxIDOneOf', 'MaxIDAllOf']: + idSplit = row[key].split(' ') + ids = [] + for id in idSplit: + ids.append(int(id)) + row[key] = ids + + if len(row) > 0: + if row['Category'] not in jsonObject: + jsonObject[row['Category']] = [] + jsonObject[row['Category']].append(row) + + return jsonObject + +def saveOutput(jsonFilePath, jsonObject, minified=True): + with open(jsonFilePath, 'w', encoding='utf-8') as jsonf: + if minified: + jsonString = json.dumps(jsonObject, separators=(',', ':')) + else: + jsonString = json.dumps(jsonObject, indent=4) + jsonf.write(jsonString) + +jsonObject = {} +for i in range(2, len(sys.argv)): + jsonObject = loadInput(sys.argv[i], jsonObject) + +saveOutput(sys.argv[1], jsonObject) diff --git a/scripts/duty_names.py b/scripts/duty_names.py index fa714fa8..2bf66d0e 100644 --- a/scripts/duty_names.py +++ b/scripts/duty_names.py @@ -1,41 +1,41 @@ -import csv -import requests -import time -from bs4 import BeautifulSoup - -# This script takes the duties CSV file and generate text files -# containing the duty names in each language. -# --> Usage: python3 duty_names.py - -names = { - "fr": [], - "de": [], - "jp": [] -} - -with open("duties.csv", encoding='utf-8') as csvf: - csvReader = csv.DictReader(csvf) - - for row in csvReader: - lodestoneID = row["LodestoneID"] - for locale in names: - if (lodestoneID == ""): - names[locale].append("") - continue - - url = "https://" + locale + ".finalfantasyxiv.com/lodestone/playguide/db/duty/" + row["LodestoneID"] - page = requests.get(url) - - soup = BeautifulSoup(page.content, "html.parser") - results = soup.find("h2", class_="db-view__detail__lname_name") - - name = results.text.strip() - names[locale].append(name) - print(name) - - time.sleep(1) - - for locale in names: - with open("duty_names_" + locale + ".txt", "w", encoding='utf-8') as f: - for name in names[locale]: +import csv +import requests +import time +from bs4 import BeautifulSoup + +# This script takes the duties CSV file and generate text files +# containing the duty names in each language. +# --> Usage: python3 duty_names.py + +names = { + "fr": [], + "de": [], + "jp": [] +} + +with open("duties.csv", encoding='utf-8') as csvf: + csvReader = csv.DictReader(csvf) + + for row in csvReader: + lodestoneID = row["LodestoneID"] + for locale in names: + if (lodestoneID == ""): + names[locale].append("") + continue + + url = "https://" + locale + ".finalfantasyxiv.com/lodestone/playguide/db/duty/" + row["LodestoneID"] + page = requests.get(url) + + soup = BeautifulSoup(page.content, "html.parser") + results = soup.find("h2", class_="db-view__detail__lname_name") + + name = results.text.strip() + names[locale].append(name) + print(name) + + time.sleep(1) + + for locale in names: + with open("duty_names_" + locale + ".txt", "w", encoding='utf-8') as f: + for name in names[locale]: f.write(name + "\n") \ No newline at end of file diff --git a/scripts/fetch_collect_json.py b/scripts/fetch_collect_json.py index 4bb07aa2..d9343259 100644 --- a/scripts/fetch_collect_json.py +++ b/scripts/fetch_collect_json.py @@ -1,30 +1,30 @@ -import json -import time -import requests - -for lang in ['en', 'fr', 'de', 'ja']: - for page in [ - 'achievements', - 'armoires', - 'bardings', - 'emotes', - 'fashions', - 'frames', - 'hairstyles', - 'mounts', - 'minions', - 'orchestrions', - 'records', - 'relics', - 'spells', - 'survey_records', - 'titles' - ]: - url = f'https://ffxivcollect.com/api/{page}?language={lang}' - print(url) - response = requests.get(url) - response_json = response.json() - with open(f'../frontend/src/assets/dbs/{lang}/{page}.json', 'w') as f: - json.dump(response_json, f) - f.write('\n') +import json +import time +import requests + +for lang in ['en', 'fr', 'de', 'ja']: + for page in [ + 'achievements', + 'armoires', + 'bardings', + 'emotes', + 'fashions', + 'frames', + 'hairstyles', + 'mounts', + 'minions', + 'orchestrions', + 'records', + 'relics', + 'spells', + 'survey_records', + 'titles' + ]: + url = f'https://ffxivcollect.com/api/{page}?language={lang}' + print(url) + response = requests.get(url) + response_json = response.json() + with open(f'../frontend/src/assets/dbs/{lang}/{page}.json', 'w') as f: + json.dump(response_json, f) + f.write('\n') time.sleep(1) \ No newline at end of file