From 17665d538e73d3f3c8d0c6078e69cef1a59a6f49 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=90=99PiperYxzzy?= Date: Sun, 23 Apr 2023 18:11:27 +0200 Subject: [PATCH] Adding general overhauls, autobuild script and structuring --- build.sh | 22 + latest.pdf | Bin 0 -> 32644 bytes main.go | 2 + .../cards.tex => snapshot/20230423-18h11.tex | 478 +++++++++--------- {cards/template => template}/.gitignore | 0 {cards/template => template}/cards.pdf | Bin template/cards.tex | 280 ++++++++++ {cards/template => template}/texput.log | 0 8 files changed, 545 insertions(+), 237 deletions(-) create mode 100755 build.sh create mode 100644 latest.pdf rename cards/template/cards.tex => snapshot/20230423-18h11.tex (68%) rename {cards/template => template}/.gitignore (100%) rename {cards/template => template}/cards.pdf (100%) create mode 100644 template/cards.tex rename {cards/template => template}/texput.log (100%) diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..647d917 --- /dev/null +++ b/build.sh @@ -0,0 +1,22 @@ +#! /bin/bash + +# Setup tmp folder +mkdir tmp + +# Compile files & card items (incl. any args) +cp template/cards.tex tmp/cards.tex +go run main.go "$@" >> tmp/cards.tex +echo "\end{document}" >> tmp/cards.tex + +# Compile! +pdflatex tmp/cards.tex + +mv cards.pdf latest.pdf + +if [ "$1" == "-snap" ]; then + cp tmp/cards.tex "snapshot/$(date +"%Y%m%d-%Hh%M").tex" +fi + +rm cards.aux cards.log +rm tmp/* +rmdir tmp \ No newline at end of file diff --git a/latest.pdf b/latest.pdf new file mode 100644 index 0000000000000000000000000000000000000000..8ae388003d43b4ac7f269fb9eb342557cdba28e7 GIT binary patch literal 32644 zcmbT-Q*fmVyDi|bsYZFg+z%&hhQ8)vVJeNJw^RHf!k zDw*@C@s2?vCnQ3{K+6J6GBr221kH+1k8fjO4$aLCO($h+ZR+>~pOJxs1OKltXgU!y zOGjgSd^!xX#I%QpH*ia^d{a8VjId zUwv2o(?>GpK&Aay&&>M(~Wy2>|N(#;_FW)!)_u+uL z*YUzBy1xqQP0vo6572X)sM2Q>Ru)n>g^Zy+nRa(~e0%9SKp`Vr1mUG%O(Fk9?BnMB ze4|VBjlSRsE&9;s+hQrlpQoJRnwzw!VgpZ>!)BBw4?ibEnzNnZQ zzz?pda6=|PT;I2k+7BCVCo?!9p7S;u)sWvK?pHBTXzf_to zOwD>0$AR7v>9aodN8v6LUfaZ4dm;_;Kyi$WJR=)BGu3W6^CKEv*WD7U|L|Sp$N805 zV44JPI@nh}lo+Uz=n1ftn_(@X%S3Ed4QlSFQ3}l4D7@9)#E|b);;T38E`4Bk8;Vhus3rP1!1=NEe zy^+aoI2;CiY?Vh0+UF3_X@W&6^s(Q@e?XX?F2Qh6t-%YT^y*o&yQW$CK`n^X(U3?5 zHBLryP#n7MopN_EgKkd<&<=(gsx;_Pb@f3GXav0t;`a(4tYtNQH%V1d;B=%Va4eo1 z&xh%&m}<>TJ^fBkeAp@iN|XB)GKD##i!t#0@ZRSkWYKZkrall5HPU zeZJpbWi6P@vTqHKe;)Y<2kSm2fonBJ!=y=I4%Uufk^$nOkhw|{N<(?!pJE9#9e??s zyHl6h#}XuDeip(M!UB*UE6fzVs-a}85=pjdiIn7dl4|2W;`>w*U^!U?Q_`??7cj)r zRj~PII%yabU1$b9E_(CChE8Kp!k`xT*Lhmwj|Ia6k>SBzXgEx~g%WxWK>Bw(PWC}L z<6fQQ4m*JlPQrL>4Mt|b7GP}d&)~WOx-=4d7O?0Kc?bQwg`>x?OWOK*JJ-CheBj-Q zageO5MUru$HQdSDru+M-oP`Sv>Qx;_PeB6x*!&amN0(0DsMRqN`8=RWgQ35Yra)&+ zDN~zZLTt4nhKGvO*M3;8@c9h&a+z4plo4$sfxAozhQDRR!(8#weN1u6yY+{GyE zTe|LHfenM6<(-ztdUf?mrC z9XHKm4Hyp_bmY_Qtrg{+RvL#q=%Tk&9UNmG^6{XAERmqZQ}35h{nkK^!xD=cuBT8D zwe`a`RyPr4q>1&ttw9&*mM)*H2cE3s9XvF3W_m5g-+D{5Pu^l5Zq{h;R+~2K{VeR6 zZyZiBp@YUHt^roYG>|{Ozr`*5ja&!p8#{nb3z3 zkG2sB&`_Z}Ni%%KSO!qsCjDc5Ur5DI(naE0S4L*(5Q?CxeUz*mNLy9;IlzLky74>O z#ub#Tbn81ecax~s9mJBAG$b;R*T%?c+g^Ky64Un%l#x7`Uwb=eV=tOUHc@7KRG3gVlxF)Br%g~R({tyqNi#LnZTiYcTKY7;)i_ZbCC<)G zt8mbGmZhJOOF=Ac1jNa#me#J6eTypU9P(1kyKud2I`~lIE8-`Df=0r^xe|P)pvj)$ zBSwAh_I#&%5`y;ML54DRZk!U^5x>TRLJw6aY&oLY^j8A|1qj@|o1!U+gAS>({f~oZ{(O za$i-{a_rquqCiTC+#o9y4O-4F=6Up*M@i@%Ig9KNeoK)JkaZ+5U8rqXM8aw6m8Y1E zu-({B#Ym?%Vyssp{j-?M-39cS!{EJ+6x?y%(szaw!YTA2k;fuY6wCXy#_~X&Nn)Kw z{OGk!{mY>kiPWXcUw}}c%VbUoDT`do19@ZH8;YDh4|MG%c?*K+;Lk5E9cdf|8>Re> zKnG0f3$Ll5NR?nO3#{_lfGl1WGh-QSm1z@d@FV}jjhZhO^pGclJhgOktwPh26BN60 z7w8WCFC}e0Hl~p`JQKj1_e`w*SW8Gs+flh_*>mc5UHVJru$CzEqC>4aW`uv@^C;Uh6` zS&@6*JdCt+!)oD|#>8gVqCj84HSmb%66nQUw~FvKR^RQP#MxOlMJ}M(n63HUP+Q%$ z6huV`7u#=?I!1xc$p=YQ6e_)OcF$+THq3SKv8ScuGaSC6xm~S8gRif?p9tz0&SbV#k zi<{AP=Oj~7{&c1l>EfFeynXx5Lwo5Z?)RXo)~S`Jm#4e!i?d#v&CwdZtFb{9w--}n zj1SPBS}zzJudACjZC?A!Xr!dJPD}Wp`if-;cbH^cAl^;uZ~{Dd0CDL!^x`EokW(-_cM$6aH{!5N6D> zu%&1icZLpt(=-}^n#9yab5vtBO&iM`f)xtJ4uF;Vf-R`^e0n^1`nJZ_m&&c;eA*xC zOJr^@(o;zDxYcso17(Uo6659Vy}po(C8(EU5w0l`8+7UYr_Q2ikJ?9jVD+mm1m)U8 z3uxRn)INCkcQ^k;NNb^l*e6AfhFHv6n z7L~sGw4@~J{NHcP37iA(i#K;0AHpj#6-;M5oAi8)R8EWFL22LTePTM-CMVXM*v?j& zG@OxX`R?B>PgyHe^nNR#Ee+}$6qv8NzaSU3CbZ--gaqf}(O zZMr=lpA2vDc;9aA$nNpH2Wj6gj|{Kzvb(&wbLpaEhGqG@K0+6_cWq=hc|6|=VOlV5 z```?{+SRwVL(~Mw-0N40bCubI(Y@*~V{;&%fKsY*2PJ4#HBh37T1B$a{0ylHlzv`^ z0>$VUd9JHCZZiV`=`|{n^p^`r}J3gkge2@xRG2)!)bDoR`GXq$U+=3Rwp4CJhX& zf>9@L0WCMueoB#wLAjKwm78dS7J(T|Zi#6yh1kzIq1K*mNS>dJ9sdWKtbNWb!GF=4 zTg-skCx&<}yq{oNJ$}@y?E4>m;GIQhcu`vo`|F>HyU3CykwRg0$$snBthlB(DPs;u z=QT=Uew@s>!xe0@qlQ&4T9sZLo~;#3@L$GnQMp#wJ#>)P*Ki1a zhJ!2K(7IjxGU+ZePGL%8j=0*Br(-2l56x2j_;lqrGIxN?4YW!6&cbV_V^8WrUuM5 zY4Aj)4Y=drI^e=!?kl;<%fRH67vGeE&J_xCIssQWM;Bq8v7BQ=d-WHHPL;}EoRnw< z6ASZ8?4DDTj5w9w!ixvLr%Zmt%kJS%kQF8_&kKlR$;JbTw|q~OnDAVq!Px-`!3PAv4w@s~dsZ$DfDK`JkO8?0p2HBwEpCK)kh1i>_3xg@Ec}ITLe+&{ znC?^$IBMw{Tq1%S*y<8O{MID~8G$NvH(TF+M@Q=Qzty8q(CQarF_i8N6c+t1-A%uI3!!g{JMXIo`xvd5Ju`<8+cURXx{QKt_9Fs!iexLVp6h z1r)iRupT?<{6@daXnquay=|(g)fqgb{saf@naV4*XLvk~PULC3oyd3k+)*`%o4>tdB2tb z-ryErBaPpBATbutW+L#GJy!q^5(@O3Xi*Y(G@;0n*xU8wsECJ>n0bmr8Uk>m%^pP6 z83B_`hMmoCe~u~N4`&c|)dHiuAK;DqnLoAq8!M4T3c)uNcM4X1$zs|F$9_(Jqa@+p zv@#s5clTE3m+#f*x-eM7@8>1~bW~U{{BV{~<(C3-F!0CY*xmX|)Ns@&^Nf9c@>Oi) zl}WxFai8Fr_yh-;hvk!zYY&BZ1v37Z6?6>Rn2@c3DU~3eHb=4G7 z4&CNR&^z8_LQmv)W`MEEzMljHa>678Lg4RT@rcCr%l6ehIeYtoV?iWWk4y+s-i?Uu zsioM!ASpE1$3`$f0l3jk9oyd-R6q2%(wZGF#atN&=Es5hsg0W$Rf|~2!ajjhGdP8p zz};3%hXc=xr3N&%syNACH}_Tf7em#nb)K4b)(_VAFM4MTV&}m@xvd{)4w1Pv%fZ|hmiHnyneVLPZBC$clPClU~*RN zo`Dd);)%0o2Z*BpAdb72yO-JS7&4z%^6vLAUD~Gf=nou_T^}HfXgt3HI`1yL<`@cB zQK=$an_)%q<@r-kFEB}XK&oOBPLLBqQ2XboWVftsZ+Y0z+gtUM9APvfr`o$S&xO!v zqP>b70*+8L=+~M>z_xC&?5+mO zj4e=Gq>ZJ9jo3QGhW*lW2-VE#^r&<1zK^0OolJ`IN=2m4Cp86w#p{Jgk$}&%1^0hl zI$XRM##M5FJayQ2H3CzI%n8x4uS(3^UzP62x^&8of5vseCvBlFvSw|MRs2tKG@?W& zKx>%9DAWH<4&Jbg2C7%V-ucnA7iwO5LSq6P9DRaiM`Px`*Y!r=eplDyK-Es}p7;X| zO2}I#Vf0!mM{@sap~i13@VIn_-F0+7qELxbBgDm35T-gb$T9_4Z{~z>$F=<*+aESQ{YU8$=`eRlBGVe#s4oBwE1kD=O z%RJ~UVwJR-D_0v40oy~DlNd6AaT2^(Xb=M2eV2O@zU#fcp%9PjTKS{KX7i=~PJS#~EeP1gj~KMhv7_Sv$31N;6ye88s!$eU~>PVwc0Dj zB@pDwCbrlG>jg3y{_K_&!uH2Wz|%ldq9$*V?3<@FoVv6#iE zm)gVOOF>d)Y2xUC)p9ABsg{C(;DQ-Lhiu%+Os_Ws5r-vjL+#EV)U}hLd zPMa2ml6^Z+efs-P)l`sn%bplVv%sxZgQ>0zL~rv@c;%Ha1nkp9W&%PJ3ci8B1TUu` zk~X7xHA0c6{;}DMkI;Uekz2^K6y2C*%O>}y{m0dmZttk~vF4m^!os(d?p@2LvF4i7 z?vB?>?%d6&m_r-Bk0;EU{zadT*Q2A56qcv6TsG^}6Rru65Im$?V5Iqx@_K)jEY$V6 zkPkd7cHc7PpEd1lt|O34jrOg1h_lhEpB zACLF?DzoT`YL3SK(A3>KfQ(b7h9q!_tWUF?_DcYH79@RQ-qerC2^T~^KcUr36F_QW0WWNImsiSpmcHAGZUcj$z1#UXtd5uw zD1cPWgYsb?iElP|q@>{%2&6_9i27y2Ta=vzG3cq4MN3!5W5H{7$CGWO^)6Xv#kH|@ z^RdC9)8^VcbG6KSb-{x*R=UZ=JDNqXAT~!#XVxE#niWqfb5k<0&QL9DATdl|=vP+h zN#H=dk~Lb#ssevsSdy*D{ti1KGCScXpBD9y0etF%s$(SB)94cS{uwN9^qW=TCyWqU zdai2j1q;$|sk~1?=_0hzehO;w$HgK$x6dMh`cKkd2C}wvL@_u?*3J~-VW<^*_QV^- zkpi>$q?Rg+i|~8b`Jd^GLh#?|O!n%3OJ{lu(sP5R0qKm8RbSbBa-RldmD^`JlPL9f zIzxk70&1CNRyey*sKV9gs=Z>d#)kSFEow8?K6$73lSf=WcBTcw#+F!@`b{uC?_=!n zFD{ib#VX_n(;!S_ABuqxZ-dASG_D8&4U+8mt6$^9^eOx+ogp9F(-32p`l)FB+W|`3 z3UcD_bcX3Ooq<64MXiCHi!T?jz-=zLZF|{hIye%mXpM+W$V18gfDVLM5?gT844VX1 z@kgPi3Q@4?K2!Jj5J#x-J7w9&Ugn+j99Y}|Vr%?;o;T=b;ZNGN6%05x8!3Ax2sdbD z%Y>=pW((JldLp7FMx+Kp7k3O|rIsQ(KtPihjm>Rm7mv!c0e@6QkuMTdL-;VtjQ>Ke zuZ6ib-%ZspiMpD>t~1Ax#3lGXRdgtAmBI(A`K0KYzy~9%F2Ea{`9l)Pkc2D+H{+RP z`TKQ41fC3KYt+)r??8XgkWgoFuFfvG z#wdRI(x)DOC`BUmZ$FWj6LZ$DsYwF-)JhxBsw?k@H;z$2cJU{jz0jL1C>;5>aczgL z8%^QK)&d}|`HN53M`r!y06yVsU#``V_F@4(bL8MFVU%d)Zyg*)m*!sP*Dl}7&YNux z-?L2uY;2hSTUvt(z*8I65_$O|B(~^X7r%Zdlp3=7i0#}OrdqVdqd`n3ZyIhbI!$ol zy$V228=KV0*bp)dExWU;Fwv7{;kT$nz7VD4gnZ6dBKBRlm=MQ?)WVO9@yx9k`*OK= z`~o~s06pnc^S;2<;CLfNPc)xg1n1g`&HOv98E(@WW>jdfYxE+O0{OD|;8PIS-wB?X zdBfF|X`F8sMGQ${$FKlY&i*lDE!{0DEpTcKr{FPkwHC=?(Isn%<*pYf$whNpAemZ+ zU1B|aFPd-BE?d7D&}fnS0rD)pdh-u_V*f`zG5`PaN#TF;iR-(}(~Dc81k(Ju-6x;U zt-EREQ3fA`Mjc&W3ko>P@7%q-e4Zb!_G0kv_H$hA@{(O&59KgEpzy!(fefp?cHlMR z5xEWbwc-Hu6#Xk{FRUBl1QMVp9~9D@cB0F_^wjcaFvPHOG!+L3+phLz|=w0?HAZYk){>XV`_;-E~i+bfMxZRPe9IQ>azNC zY5AKmg(C|yG#y*yOYu-}*lMcRqd~N{6}G+>F4f5kJ!7t^w1gN2$4Ej%E6G>wuw1_T zo0FG1vUz$xFIuGNKw_e2?z{X7j*`Oe^}W?FHRQvk`xamVLL&y&=0W*z0w7}1L8j(g zhsFi5;a`}tq%q2n_f&Rua(2AtsS9!gA-|Fc#aF1a!O|EJ35M0g7zM%M_21Dn{4rz1 zvO>!j;V%o@u$YkEB6|^?gJOd8$Q{atu|h%*yEd25xuZ~pS|Y^NRlmD-sF8CH-I%Q1 z4F54!%@;GAdA01lXBZ0VWMSIc>0UWm8oOB;cQ`A4yB|%SEgX~e^6U-gC^X{e{62OZ zWZltpS*R_1%MHS;n99IF_SLPxIn;LeC6(12B9NX48+KdJKvh6ExKf5$%Cj=nFU$(c6 z2;1k-wS$$gq%co=!q`BP_?jf*I8bKgT_zXA$HW2f6tBSS@ck=<9f2^t8=*hRvzWbI zd%zTs9OsYwEwP>a<)~18##%G}5~QFl5$T!cHDw7@2lrG-tA717=*36~0$NNVG%+{j z8GHW6?Gb^?S|!U4tPH)tW`3^#l<$f9JiVkPC`z6@yh@<@MkWwd{j7A%h7?_U#n9mI zrU3|vG72y&V8UA(Up7;!e6_`JD$*PUFrb~p<(GINgA17tN^`-#O^M(!qfS!)Hodm8 z#0I7Xo{&=%BHl9r{ccCWglgMIQSa~PSVIr)yzILW}TlTGe zzI+Cxiju}rkpxDzw?{uZVLll>uXc8zF&_n#D2T@<9R-nUFM&n{f7l(?7s&#UTuE!x z&JzcGolu*N43f2pB!;Vr!mnzSX3*SD4}W0r*N%%^&7p{=?+9q~aCYC~%NJX+8+Fu^ zC%g_N^_#$q4v}v=#&#rpwkY`R0iPN}wtz2>FA16ox^edB^IWE$*t;N5+nSMj`7mN9 zysNccyQ#CyE8W4xbFbaI!HFvH6%wx`q-j4g7oX%#T^JY|h|0&+?fDH){w4k=a_iOg z2?H*+Z0D=}>)DuY_m_|T)k)pF$M>;KdH1*dRn;q99dFn3sf*{;o93L4*T|Zq6F!~y z+uQyzjh?9K4Eo5sEE7MTuk}T~Z40Tnn@vw*^9&fNG>}Oy{s9?QqW*?pI|IecG3+-E zmA z>qTxl$gTPv;5!-X)s_aKRuq-C7FuP2U+}hm|DsETk?}LZmvI}iI#=8uy?+VlHg>KW zx|IS#eAoP;08 z{FzYS8cG)sP{7RPDrEDra`q%oaHqrvlmdRtYcc(PgZe&znUsLZ_H7<2;#k3=BTlff zVMr|FM5tT?KZ!NO{r7XZxxduSh}K>us|$|CYF5#LHH|@%e9f7d2g;qaVug0+Hdp31 zs9(Xf#HO8>0fU=bEq&~7c-hud!a*=ViuZE^PACi?`FO)iY*PRyrS?=m{qNWCi#H80Ia4*m+8G}!)i z-KsTwDqdt+X>Kzp@NDwPUNIA3Bfghmw#gWuERu~ybO%Q&WS^)GscwpsLm#+t}@wYw`kGj#DpPf%4H?e({DL7neYzB zoD`|g-l1O+{GwDk41b`6pY>6qpGAUE+dSwaAJJ5OW5Llr=#{}+ak{(oska(7b37G^rC(xqX`(iR!0H8XNxs~|K$H)d%A08%;Q3xcIg5@FdPQmv=~^uqIb* zc1$l1wu(&pu2f0^*R>PfYO&k>(Tr0?w}y|>e+b2i+}t5v%Uw8sxNTz|TB5=G!b=2T zr<53FXjTYK`WH_6K@1gQPufE9jKB2qVtdLkJ8OYkmt-wSdny;nZc}veTde1dInfe|$oK5xnzf^zmr;xJzF!ZXg3`JKm6#ei=eDZFHSwQqn)IcG4+4TX^{}wZ7`dufx0U=sEZ<9 zE4IhPo`6hAv4Iel)p44HjGF`?rzuN`wAIW}SfLc`2v{j}Y{|8i)BXsKm&R{_@@}V< zIsKQu=PVSx`g{1YvVwSqcjsLjGE3=9 zL$2K~fshGFZb8U zvn^vaUf#XY{}-Hs?zmx@wNnXFkwZGZtMn?-&RXnAUVl z_N%!8K9b{0&kDn_9%g{liIrWvLyFaKSd_{+7<-V@ z#G|(M9%1X)7%jiq9f=e3<~X(hR4yjTaHfPQdBc9`p5Y_kPcemXldqTC__T$Pq_RS_ z!g%7e)-DJPK#5W} zi388;pfqdkd6hFFz@SEjsELrK7g)`0BS66?H@pjE;V8=OUEIyXf@EUi8sNma5nyWC zk+hc2`~G2xAW)bv7s<+xSeo4X(5TWwK^#2~nT1eH*j7kx3E@vb0f&j&kPBKj4dFD% z6mgU0nXzgDs2efmQ&1z>YyMX`-B#j*lvws$3>KaHAKvo6Si3&9YITSLwIEolN-9!N-EdF-_o z*i$%8SI5>$>Rd`h2M7opl$&nVa*Kuq*xc1zpR0#T<*dS^p^V```gLMWXGYY<01u(} zy|hSpV;rf`Qq4#dz}b&_iE$veKO`l!?x83;Z)9dI*67Ukrv;{!!ezlXF7e2NoH$~Y z0lBa!l94QU)PuP-kO8_o#Atkd;j6Z!_oynSc+oI*QfHqf*UbJ+>k5_BZd;jB?IFJ1HB{Z0!D}ABGE7}Z(5~`?rqbVJvW&@%3w86 zA81t$*0N$7-Lm2_NaIG^{#^aGDOQ)OQ}Y*uD?%WVL@R`cQze4^%k_3%1Ev-l$?e$% zzS=xJM_02SKzR$<81~ogDhj9jAkgY_+gNSf8lmoBDIi$hMI_LdGovMa>9zpTU`F}6qXaAFy8dYT{!@NY zPzJw2P|V2|VlM_rKsBcUMNsx!Qqob(onand1H|t~~c_Re(M85+|e1XE@lzS<4sK6W-#*DwBlj5TJ1G%dx zOA(sN_KCYkfUw+9F3~JpPo$qjcZEE%=z86j7u^qNN)>rca5ElAf<=?#iS2b*+tzyy zFOQm7PN(04S*vLJFo4F+woR|*WBnzhWPL2_^htSh^B*>t8=A)|5bxfKwrmAzBmbPT zeyhv+OVmV5KE@^+EOg`-l?X$^9IGIcQ|4l9g8OI|8?N9%RfB()GsXTKNQP#u)g1;lpU{-G_D%SccZEtKB)KbFt=oy*`~md7xF{CeK{t+ z`(5agaQrkvx7e7|Fa~)k2xiehB`6goP`A#T8yaW_PHmHdjePVLmc@diJq9?SHM9@s z^-~W-7UO?&GfR=vgZskIn-6ghPI;Jn<-jDtH}?Xr(fr;z-u*!S<|*sY(=0tIA_uDJ zPwPrl8U*2Ff@p)mTJaW@U%|A*-lh=>UbEv3{WEsE)C`nbl*Y4e*jcC_q{)SmxG^d@ zugvNf;Cu!wO5b8QyPCc4kWPA02jYs*xzWwHuwvoOgM_#m`C%R1+kSuk(FKldD0{y{Lz|0Ea&rvJTQBtOeKUH>lY>|dXRgNZ@bX^?pQ zm$FXMy0h}6ls(3oN%2i1-hTP>@pj17stu4dBbVBTiteOQsiXZ%eg=JZd)Xuaec=2E>OD+T+Ss4ZXsBL@%* zA;}5reR_&$>h`@B!zsv|B%1A&hP3*mgkuxJq@)oOB(zS>cLo#Q=fU)ZlL>HKQt%i$ z2~0S_&07JIMO-rMIQ-tHH#aBF&gHFOr&=7=m@;U6FV!hpR3xTPXMLN_e>mmD*N47^ zLQzVVMNH7{p%C?K3ET;-ziC;}1X-2%$1U%oz+Pk|7d(UJs@?kf2MQYnx@m@1*PT6~jx#dr$WuE#7B zi%-i+!olBjX`Z(SxjWG@Y;lIFitJ!I;|^%*NQu{_biuYf%6?=vt-%|fn*#uInY`XI zcF54ZGl1gIl&LcHQ)3#rhNk1kVlEFnI1M_frBs>$hddW)=&si&nYn0bZ4V&%F(g$r z3<&u{ipI32@(Gv(pSB6^ws6Cds(4N3Nl;p(icyu*mW3U?7Q|PcU}XKG_~zh#KZFN* z?p7px7h8m#uik7arS_OFs3`;ukMZp37spX`B2&~xqKPMZFNeeDy5_nBoSOk41h#*X#iVaH_K|{~KLjLn_z(lf89Fl(m1{0DAhGT#;RejpO z;8DX}sWcXFHp8E>JD1SJXA+{?YOhAs|2&&XqX(9S(sD2?`{{}Oc8K|+5eQc|EowK| zS$jkB$lE*#l;Vpfr1*n4x$BGXv3;IgFBI8$_!lHieHgW6Uz@?AZU2{R0ASo7t7&=j z6{zz{)=diH{aGm~+`|D)X<*P_IB9_Br!F3OxRIYi*dNA&bFdIh`)|Nd0{}Bc0{~2X zA1f)Q;}Gn+39hHOp}3pej8S0u7r0bBtCWF$gP&(ge%!=T?8+BwKrs0Y&~7ocL{Egm!s@aIXc=*LaLy zn?&N~p?R5{lCfMDl;eUfFbLgE9_;>sNlRn$Lu}D9Vz?}*I!kBzH+FD7t(6*i?-C>h z&S~&KaXx9Wjj>yjxnC!SpN=QmoHCtsLwHDH1XJ269q9E~5^8@)Vy3M&Wwmnno1(%H zc5{jR5@|vg2KH+ZDyEPuy_cvQe9RLlF;UWAjY@y2h?&)fWiH}yDxiEC!;BW&6dNl( z$~tUXzZ$TVEHAZ^KvgdK=AmVA^^cYyI4bXU{!rtg0*fcRO3Gv=meK za2jHPT$4oWsy{n*Bs}SF!0D~gP%S|SaC#G_C@UL=x*{?AL*wdD=pRVRF27-Kha-<~ zjX0f8C{i;>ir=g8Z1y-BDChq|YJ8#rXhyG=&cP#0KtTiDS~-yX0+g3<1cP)DifQXm zl$RIH7frcGi!`BsDM(2=)CYKAo(;AD{h}o~>M%?~$`M*k?4jHbc>Sw%4@?+YzDVq!cPcC64?#>LLrj`R;p(QkX5u@^rh%8Zsd- z>to&R^?3K$=kt0B#hvzfTqpY&D~UPfozyyqqs>;j!b7 zv94XF4I4yO#8bnE^oppVXc8 zO-NA8l68Bko9FC#>T6z9oH$;SUwW4k{{RQIG0!e-+ zRQ?!hwsa&f$YZROptTzMt(9@L0#iFFKzX>k{`(Qs{!fc4-7sn+M;7M=6r~i=qhmmq zA(OH4dP0n{;cBg>8bO;L@+Abvj&?49L;{zS!WiSuS)Hw+yW)8=YohkT8rE}pB@@zI zPf{*O7Oe5I@HgcfT)#?;ZGP!JGFi0wZeDE@m<16GW_0>NFQCf<;bDo#!lK7TE2yxV zjhVh8VqLdJZu=zwo3r!OaifId8bbvLUQR>k_rtt9Sjd`vPq0fJ%K2C#$q6BI(oCQ@ zFR6a~WzX2WS~swzJqNstkOAj=H5gV1v0_{yXbLA~d#H$3^$9yGmTHbiAE};gXIKAW zFcL9N3S3Rr$@tId#4lE{vSAT%U*zEOJi6nGH|t3V?&H63WNXIt)D5V=bP~-zCHF(S zwY{`x>o{7Rnn%y#A%1nZ7}@}wqw+q0!RvjT{{bXy{{Rw3`u}yL^4Ca;1@?0!g}lO} zB$f$Jrb_%>AQUxy+t+s%f2ki9iR_(sQk=xu=>b+DXZqZ6u|oo9xGv{R>fi0*tEboJ z%ZK}|W}E$8Sy#J{SJAK*Yr0j?!yWT0zYTxmFTRt_ zAp(25a$s0IuPr=EDPGrh8JjiGK?jtiBoXr0)g;zl^5Dzzmjjxiw5mCyB564DeUwH7 zlS@p3W5=3Gx58692H{4ei(3jmNLEQ;S)CB$V05UuGN;OxHH@tsD3}lt*@C2`0;LgC zSliv}O!yuG=qV?&q8w6j={t&1*ritd;b|RQGHuyEn>>e$XQxVvfJmjd1(jVL@}gbG zIjR-qFOe*9A{=@HM1n~=)>@IJMb07O+Z%Ko*7nl6paCckN5%~rqC*`jmui%9<_t=4 zqTYX&he_^~J;g2)g8=1WYzh9zVeg&?|<9*uS_;}8}F9pGZkVA?<{-YQ|k@rv|$adYTh{} z?fJesEY3FAz}qZGwZF0-sGg=8P_P!GHpo}~p{Szg5z2kPC=a5{u%$%M~OsN3S)? zVJ+Mus6P7%+Lz8@fb!EuewWF;CgqnzJqRHT*RwTecSUUKfwe05^Mw+KLeSk$ijoBS z$(@@SRG%~fba6Ws)!1@S^}JFpj}M#J_ekMLL{m>fE(-C2l4=J9dfx<18==@=TSCSN zf>1yr&4M{lc&R6fH=OD`GxKokWsMiK4lJ>^xK?bB7WBJQ5QP$;qB9cyCBD87iQO2q zYf!Qu{9!-fe*N}RTidf%VQ*^Iy1ue7*O)|Dw$f-@7(?t}q_U|aG%1t4nxqH^iuUwq zKpeBlpKsX!+!0_Bg3tAqZG2xcV7ibxG5E^McY1hVj*-NBD0EB+z=_|kDJzA3%W6-p#L!`EVZ07=3Jr2@$38@m)5QQ$x!C-Y6id?$2@^TUo#-pVW6@>oqq8CR<&8EGOT%7Ii+yJXrUW#?5w!0FZ;#GEjmHbf<7%HtrAX&MdLM*54 z%O~GpyW1WwJjolcYBc!}lUacRBShHFoAXkRv2@^%i_ODYO5 zNp`P1xn|Lt6+aGINQ_u!w*$&DL#25B=m5UFg!wTyK^HMxC%8?tQtT9%DW#@<3L*3W zjXw<~yE{~dZ*1f3>}3*E9@vBQ=mN>-SnEGYq8M+a5(pqk(kDq8QIywH8cuj{_h)DV zP$-IvT9*+$z&}YsL2LRqNd{JwI!psFn$;C^Hp?+Yew<=q-=86Rv_o}`v3?Aserd`q zy9{HY;l{MO?;V9&q00$X^f*DbGe@qjy&tyt27`IPoYi0~1A|v-a)D9|e0mm;C*z^4 z->P`QjP`(aBOTnOKRs6c;q_h^`V%supwP}m=agSy@110D>f`oF_cja*?2Jrebcb@5 zd{-PA-wr(%X)#{Z#;+P(x_yqLtAQ|5+2A`p(Z*EO;)aEC{4q1jA#%uX*1+xDIO^Mh zQmMha@4pGqj^?+&>LJwfTXYR%^99s&Qi=p+N=Ar37Y&WPzyO6Ql24CohL8FyyO!y; z_JnAhv2<%yB;r>F<;Gh8|ElkT%IKNp=2ji$ZMZ{u34$qE2xgw^WEcywial3yL|!~j zsdf!nli#xZ!?cLa2iUwOh3Zoy+$M&q~VaLMgF6%OpU>-pLKl+7(Ee=XD8 zH1B7_jQ)etlFepa-q%-#XZRfNXULN$`0nRZpT}EN-prOI6Ys_ zj@mf5!}y`->ivJVuRw2$15Sk9iCcvP4<-K-qZlc@hNC*sa@Fere_g--uv zYV}NGlB{577647@2c98sTJ;bubI3(pv3F#04@t7 zqjZWO0Mf}Y7#Y@wq;`L_^C+c#+1q99)!u3-Rm zXvbPJ{*yZHkN=`h@}MCq)XTr9^Y5J$pwjTUllr6%48=d~q>M!Xn~*kN?L28jN0M@@ zS?^2sn75&>To#qs|JX_8okE^TcMn@!)Kzd4{r(T?cwyLnQs=>*kJVujP+E@pu?#3J zv;S3Erue(G?7q_&gnowAak!m}+7}pBCbx&&Xc)|~acH0K90-Fstp|w*(~5;nC`4A5 zy4}>5y!s{Ub=K@)W*$e-x^eBN2d!<8C3z1*i8B#l2tv zl~YOO`6J7uqQVh-1X0wEeesk`5rI6X`f}Eex!oT8C|5L+hu1z)9`6rWs`He^2c_t3 z(GUMJpN&xaCBCI0KN^S7mo1Z?xJ@;XAPwl<*aLbuoI!(;q!gAczj76s9MfAbjicfU z%^DGjwO5gtoE8;2Ea1NiGn#alh=u8Wn_Evv0R6xf?u&-_ij9_}&?cJDV-mb=S6qD! zo;C8mRQjd@dedSEM?nUdsjGyjuD*b6e%Gaz(6fNUxZxh~-y|H~j?!M&-^4xNi0X#m zVPu6O`>)x{-!pYlM_MrpeAvUl%m8x33cw@pbx@I>VPGk>Z$xvP8jT57{_}Rk6zr7V z>dZ1MCq%gsf0Of6d0e zI|IK7&GbcG0A^#m#M>TETzzF>z?#>Ub6}!zx5vz7fZnsNk~X*16E^&xy@S>$$(Y* zmXtBose+Jyi*TuMkVs80DZT;C9kYS4fLO0rLW2`r!APc+(J@5m4j2^BanpYc$NsbS z3>c2h0ES}}@luj@fb0c)|8MA&0kRjAoPpI(=%m)F|1})@!s5Ii?B!u=!?xE>eIpxg zrdN>$o%8o7{TpDEes?X--q^$oRf4t+ZQ<2%P!}sNqbRPq-*A~{elMfX*|WimanzuS zs={?AV`x@mx2g088@IFad2>-VTr7f~LjlX>a1d7{bgi2h^I4boLy|WxAoo>BLS4%k z%Zyw6uiEpD#&s!;++F^U6z<^^6`?u_SbV0(VDrvnb;i_`d>4# z6pJLJ&(?D*TCBqYn>?~my6B$7O32S_gKpdHxxZS^L1+oB`Piub@U0-Fmf=&>V`Dsz>!l1QHK7h7=oXj>!8X zuTXhj51XG2vn|#Vr*JkpI&>X$UQmd=osp$7`6tyYP<4rQOsOHeoj!AFE`XhweZXJ4 z^bx>Ltnv2WJF(1g;>jTPf7hI8K5NbquLOdGfbPx}oBx~*ZEs8>y@>3_G)qbBi!ur2 zUpuk4|5Msq2368*+oC|@&@}F{pmANeySq2;?(XjH*0@9C?(XjH?hcLHV;^~OUYsxD z?i;US{iw{!6_t@Q=d6s(ImRG$B-~@@dq@jDz1A&`dH;bn7p&ZXCCT5qt=LrqX)z6b z_k~NRl}pV(J{qAgP_$9`!lk#hetPE8Ke({sa6!Av3#ioVTIwj8>D?cHT}`t+Y& z-!v6p;dgp7xPTn-(~YhE2N?Id@AkM0ID*Z0mn;0+`114 z-+qMl;tOLJN8XuplqWl!%S{a7e)`C%K%-&iOBBub1!PDQl)>Va;m57XUV1&C(z16y z8RA5kH6`&X21S8>+VT-JR^;FJ5TN!ls*82n82NrPe~jH7*R?GA7Iyk`LH{(oZ$7 zP)9Gtdb4B?MoY~@9UAB*h92sKVAi_;l&ARKlj(mQ$?H2p8I$Ue*@X* zZ&~{XGycOK9TO|tzi&oG&e}B~{J9sbCLiXmpg$Y`DJ#2wL_sxU0_Dk-bd12(;O#d!jRy%I)80ssx6SMd==A&8v+|;IYqb+6(9C=$ zr&7(lmbg|sN2?ltjK2jTOgq>WN042Rxa%||&i-;TC01j#{3;{?cLG<5Ro~kwH7JZN zT=4do#44BVMBdPx#cQ*#+CpDj3e_6~tFIL0Jr5jn8SszAEczhW!^n0TeL7EcLMmM? zGNdWuEo?p?XD~gmLMCSVqr~2c;fKj|Ik7{EVZ`(J?+OI5Q+AhgIce6X&58vxJyaTI z{4AvN`yxI3jRSBc5~=4-gUoGdN(<0FuR+)o1v%`yhoF1v1e?nO2;z?Ch2eGers~;= zaw_Foc8eHQiAShJ@A>>Etveoqwpq;QdYlawx_wtmV|u})q}9@e@_%6oA0rSl=q6(j ztDC}i)aRFAYs$r5AkGWyD7FN(GCF>H%wr6#C>%+C3`W$T5_H($6Rn*!+DBAEww=tC zmV)b(6R%r24@DdXuh-Y?kA$zmhXDoSA>PDhI3l#Lo(58@dbK0Nc}=i?N0YzjZ$l`pfA(0pxtZ z2RL`_dl(PXAL4~sFYo#`mURoI;Q_kiAo$QMpU|)h6e%6qW31FT?aFsMkcEap1g1ca zp3l1-H-Q!7`g0%#q(oRH}Gm%7LEGiD0XwD2uJIv%q=smc+42hBd_3J4$c_o9TcY_l{Dlp zLD2TItq`rSP5wPy+1Ks4lTDE%Xo#{8>>nHXIj>3q)$*(IY66~C=8W6;gt4{0W{|JeLUSe41OaE(@%P2MHPk|XEhr%TaX3_?QyG4F9I&<81sk90#e!DbkMj=M`5#&ua)05f+L9Z=TOHdr_idosX-%imQs=i8DL-xGxq=kn zioDDP>dZS!Y}>_uG0~ztEcNX`8C-prd1=ohMJEtoLolWuQ2-Mk)?Ytjcx&b=%&PWu z!g=SZ3?|6mOBrJsANqZWQt4p+1{OaXQ~VFZ{0}5t!o_e}!fVcgOA?mcn>&mbuD$1|li+Ybkv7KD zjPAFi@J3ine&HFCQLuZdG-FZG;UTbxapO=gi=Q#Z%yE-e&exn3DTWOpHrJgga*U7U z%SYNX%{L1Weoy?c3zBDGoq;Yr2d^JeM+o0L{o{&jK~H>MhLMD-u_Q&~`1`{(EdzGZ zTkao6>@aJVJa2|E;ym?PXC3i*t}^ei&ra$f!dHH8&?2s{QW5J~LGnX46g zsOWzH+$knQ0~YL0RK?P+_5f%s$Vm|Hd(4DjrMP-Z{IM+sY!r4``nIidP()e%D~4q} z)kJdhW~1=i&}bQcIRnqO_e@F*cAQlM#?>$oPWwzVsZX)5EgkurHm5lV;X+Xwehbl~ zqTWeBNb(`31TzasaHF(tdj-h5&L6X)t?!#lJaEs<@NP1FCpI_@TqYMkJ1zwe2(FYK zJ^r`#ng1b{F|o1yUwrw*qjBir+h4yHFwk~L;vIk^{;ci3@g9U&#m;PnwGEn~fbK?W z`Eq?bq?F(vDg0c64jr3xU1Nnw1P;&r0vxp|yhe;DAWs_v8pa9}+watrhDG@)Yt~}n zhx&zzaI7@?5^=kB{<3oon#-x~uF(UY>4!P`D| zYPGb2@++nvgi90Q-Kbiq|BteVUJp-s3xZ?G5%L zl~KR9D=aabknvjj!dEx_SE*ndjxl1*HHTaw|Ay$C8Ip~byhLE6^_pO!Onk5<6nB2i^=;;~E8{?zA9oq_~ zY_p)$`}dg7CBk4!a2)Z)#Kpkij!q)272|QZFNllSRMq*^f0sObabZ)bi3{N{)$x>I8ck*tr(LK2oeTt60sXZw)oeUO@cK#OBkNj zTQs=Z^j-o-%mBo#y%rJy<1(hxaV+6wv}jPwMWtF_{Ze7fTHvp-LYc2HUoB5KuRf0P zWNIsHP}~YTA1R}rObf@9!8GBgO%nrwJ82x@-7qFvmNvZI$ng}wB2v4!wDOe;T2b_f zxonbc+U{7CgUS0FC`1I#;ncQS+r_)hoWoxgn8^4iU)h`Br@?s%nq*Ee_6NMPxhQ)P z34Kf=8=^41>}-x%w$W? z!`xC_zqd%u6!l^k_t87-3*^x&>N6CbeYxpBco_TtTKv!h=vf$n|4p>Y0AK^Mvix`H z%OC&y7Qn{F{%>bHR=5}`&A+#@WcoV}<@f?NC^o*&as$7?({BSET~ZvOXE(ko0E80a z5+Mb?w|P@59@+Qpub%8CKEE42T(n#?AFs46FprtE>%{$WX}ayB<=AjAIE#UN-*{#! zGWfvIhVQuD1^IyYr({>uTNv!~dQ;pVp>q;AZ3zFe5F!JrqQ*tF;mh?2gr{mAf6kc{8TarHo6yTE-5 zf1-jvZ=^B4{!A`l1cA172GbD0@9Vxy)-B#5{pE{-c?e?X?EMDGmjSv61fYJfeQW*+ z0@hIP0{Tw7EpK!1R16^dy_X--mw$mI)i;B6X$cd+)&m-&#%#F%QHo;yE%0;l0^W`3 z8*T+YH-B_8ZI{N2fk&WQeXk$lA4U)a=aA1yBTz_Rz@*FrU(C>YjIIoDIGaH;gHZ0w zN4Xo;*RR447|Xr9@{Dwd^!n)du|T%n<@CeRzV`76<>G1RESs5cds5ef%9)z>awsGD zdT4zSksN*KN=rUaogJ+C3r-!Nnen0L0MYjWAA0gQ3FJiw1!oty;06IyqoIeS{d}V* z@%@6?FueLi?|*^}d?NXO{`~u~HT=#g`gwu$sk3#rm3yFhezD+-5CeC;6a~tKj|D)z zb~OQ^^xX;>#D{+U)b~X|^oaSSIKA3*-|iZHC+J4q=^m;P6R034*)cqNlZ3HL4rmVG z$3|=}{N4>~`pH(u>yAeb4PO_+*Auh;fkovT6_Idf!(xRKT8Q_T6~@yiwOej_i_^8> zO!gi3wzZXVwUzqwu=~Sq-c=L4xiMtU!0K}$s`Te^cCQU41%;@KF9r@q7r-}4Blhg( zog1CFf8y-UM&Sc=_a&tqHn0zH36ek5$=>qe_^H$7BTniQ5ErD*;qP5FX~BjF>%QLT zL+PDPqorFd8vlvwJ5>2e__^W%T*k8uyLaoEQ6OGsp<%?+7EEJgqBWRb>I>pR-Br@8 z(uzIOIat0(LH|(xv;Nk}5!j)p@T5{U^wv2yMN^ovM&K@XuH#tj8{<&onZ@{cxKjme zgsZlMvj2^~S3qzq?2$QMQl5)>>u_pa6=PwZioTIAFWY$64V0-&ea~(?d`6kkVc&UC zFIpTxa@l4EAkOb!5dcXqwRJi$F|qKm&v^tdHu4NdqWcUHLE~RYujWX4xX1M{?vuOZ zY_uRUs1EDW?n|#xoYuK0uFy42Prf*4knIZzZl+av#fYr!C8$;VDcbNtg7k;%G1}1# z3h|P%W`8kMT&T)%sqTN;tCEps7^k$5qr&xUnuV&z%6e#bH@(2=q=*aX>C(;tnLrD2 z#wbElD$R0m?#(59o00`G_D6*w!p9ya_S*QTkU z88qORqBZshaO7oRV7{$Qr$Ei995<;Kw%6?9FhXfWBM9Ni&x*pVYpt8580tAXJeX%6{R`^W_Vug>*bAU9unvS2s*m98XV>_Yr05)bV}x_ug$Vi+)^ ztVzadgi1EgJ&WMN;#?ifX9j*V8`+mO=Pg?zK~RSPn6<_fHa1jtNx-2v^F=kOX}&DB z=dFpP^$ICC3rSSEY<%lnpa_raF+-VKTVQtJ`S6k-*qlccy|fk1aApf3A!uONpA(?HhG!HkncF1g{LxzTX(t4gVsX$ZH665f4= zXmpc$Bk4Bh=-?&58`dd^^2(6%8TT3&Oh9s6VBI3q>84V1BOoKRnf8v!l^BT$L|Opj z#g##JiX;a1uQg>hQl7{yA0ofHp>fX&P8zbQSk9xlj;FkOX-ws2Xbze8nOM`K`ZF z4)Gmr|IR>1?qD0Hl~zMhOLo`Cf`2X4>L&GN#sQq(yJXFHIku}_X9N&g@ahzJm_DXL zzRl5c4GvN!`5-<IpVL<`ffS?tqaIzV`X!brKw4` zyM2^vRW|G4pOZy>7dq!Xrx)4Myz){c3#c83b_*`RuH4yP_ba>tou_LcVX@;by$y&m zCxv{JV2?EZVXf?PfyUjNVe0_veG`qiMNMYFB^V2OlZVjXG5PJ}4U8vIcvOx64=1C` zUDT%S^=G-}MBbSxY>$AtG=UA^=4qPFfsW&s3#B74cc&ihI_mN)-aCo+YPUK}vRv6# zjI7uGUFE~*SQ=Y%%TrTtZN3*IiXGcTQ$V1BkpxWmd4hTKucvn%*|5))k=@W*R5NCo zA`5utPa*BoiHQ8uPLV9Cs{YC+YOH;o^%s2EsZ)Y-IuR+>K(BA{TRlPTa%0eS*BDI< z@co6Hh7`Y}X=ElA&vl0Kut5XJ9o)H8(-fP=t)>h$<4^c-?B*@swbWE9k_=R284;C85lkBTyhP+sc99Dcp*SAzJuK`9tfV!jis@eoEv26V zw2?1rXKqortUe;t7YddO4H3AxZ))%U zn7+@QG-`WQ_+XtIm0q-Qm`+w-%_0@{-Gy_FvrnY#V;>s~MfQ3)S3#LWv7|4lW!yw$ zwRMsfV0IrQzZX#TyKAzFoZIr9DH}&}C=X$^y;IopazQ}%%eqYU0A?6x^}@D~WEa?Z z_f6f|(`~T%rGq`_n{Rg^Sh7nbtn7N!1!f^Zrl%~m1R#HWq=v$OMw)fys?pXQr8pT* z2D_sfs^-0go#HHYf_y8dm8msHj9U*>LC`2XJOQ>D0q-Q8OU(dBuYu{Ohh%K!=L1?y zWg#WvC>=WOTl(`GS_yw97l4W$)5VvwqY|cUSAI(=ZKh%w~ z-h+K+P1v#6WwMBHY`Zl*L=baxQ53966wKlmPd>YSBd_7QA4UF6e3j55f!0|gJ14d> z#2`UVNLS&DElqhVBomwbS9*p|TO&V0saA}O8i5`p2?s(pW z!Q>y`Dji65Q_EG(Vji+N#@9nJ^yy6#kTeO?i=hYlx9NG1R`o%26%X;yFl6p6FP|mO z0$HhKw1*2)c8)yb${TJNiQT_(P6%nr=c(m2m?kO) zt&~N0aS-A0`oFp=vV`!r<6lH#Il>Duk>S&TQ6j%h*N&8?U6F)xg zUP_#HA|a62UctUSKJ}NR(ol&e+bs>6E@R2c4i zp#t*jQ*Pi4gS)$IISu|$6XUc9X4OtPkA7X)h!{$Uv;0!t(<(23blDs5<8KZKo$(Qt zQnqV2v6cY;W=xfjz&hF~k((A>*{rAo+-b$k2 z207dEJtDM|ExDNzY`$5~CUWs%2I8QrEH0nqX(96Q{gwUJJfh)eitF`Crv|4b_@D7W zX>VL8%z8vO(GD!Edu_U3JKy!*XcAtB13|n7lOw5w6QSgDdT2bl>F-5bTYy+ogSRkx z?@1ziauYFt7~ppIO(|}ER0Dr?N}tDSI-EE(Z3|utc;&3j+g;G%*rw>T)3^ zIE40yUkCEOFwI%=F&$VtU(yKFQvKF{{pwX%FnkuOjp_)0*Eyp?{`@m3MRc5W6GnpQ zn6Nu<7~xVvhWEV9DKA!LieLR4p?nSz9g#^=pA+OpW0C>T`ezb| zEl!o>tWo->YRoA4+*@kr?vB+75q{G|G9w&ixs&HYu_zh+=C8VKXXAN|Z2N*5 zQ_Yl^64`33@JK2lL6~5R_e4*YS}sG7Sl~>e@LaB z7OPvpjyX{RKHqQ3cZ`K!Er#~yWlACrVJ(Dr*23ye>u4YV|p9-Bl@KqX^q3&4f zA#!9qW@}|^-Ar!Jdppck1q+NE4fWjO+DYvhTIT};}kz_ zO+Nv2DJVY&#AEDD^@@DhSZw&+tM^5g+ASUhd9ksyaEf}Q7Qh(2|H_7scY|v>;>K^5 zT%D{mTx8yF8I4jRmc79`trt==g05%;jp>vr5{8)*GY?2d?uwH~R9e+*#}WY^%}9ZC75wVEi9c6zg{=5N**mRVl}`q(Qj zzY78xY@$&OBR>}COu));dPl~K>vEl}?kUOSpU8Czk>-a<_Fj?hGrt>je3%q<7vmB( zTrg+9dd8uaWKn?N1~px7U3tmk)uP;)f7-DFdBqG{W|5+@5~Z~CybIc3;#bNER(XQY z{!q6pWTcWFk~T%j`*d&omI29aw@c=yQOIjn&O|de;&}GI&a`K@45Bgacvp;1u_#cC z@rEMIQ&m7dyPbfX%)PExYYLw^)%EPuXTyrKasj1Sm1?b`?l}1pH{Iz@=!vlC z)wW+Xa{M>q%8dK)0HXP@s;Qcls1bUtd%yY#qLZ|Nr=TiZ!D;-KduYx2mKG_qXNx24 zsL6(1h)*L>k^`zmt~D}lE}mcraLr<)OqB23vPW_&9{p`b-)r^k{_)Mf&A@Tsn+1tM z%;uQocU->icG5>~q;BC@VMpsl$i3jiMhO=;>lI1QqA|!s-qu?l*lck!6y zj{M}dqwqDL-N?KYd-1&0+zVFOCM!Lk0de#O}shw-UXLeAi z|LW5FmBb;XfmG#`gBFfvHf$nXtwitJe5J={vJ$*OnaYSU)+R)ph1&(8WI%$oP>%~# z+>++Y7(~5rUxX#IcDuAMP==vVR~f8v>VwPhR77$YPCbJfk@T0rs2&=Sney_W3{51+ zlO}t2dTanPehn}ym`w!YnUBgjP^tDq;Ti5jj|)4+xk^;6C=;WIgl&=h97^J{AyJlk z+VjLoxxC%3s3b-oSNV|Ipn7G#G{KtR$cgD@QbQuTKj^q%OnWL9;Fzm^VgjFkduKr;vd(#Qrv(*fshzSWe*qLW z7>ADsd0A?}qR9D?Q+nMj>Mo>a zLVAR$nfzWaUO1$&Jw9mAHIbJa7PP2p9GTYqhHD}@ol6b-lDFv4V&C6)H)$`2n@M*k zWE(H`%gL}Z!*h(QT=XB`PcArzLaB4r>&qfPj2MHPCpMR>J=_}n{lQ1d%Q&r`l;kIr z()LVVKwil>_+?4;Bf*kzTYGPr=w*V&sBVZmq%zpQ3tA|-?(c7|w1s&fU|&egLf83r%i;N2 z4y*W;b7lM$d>Gbb_jXJg_{hZV%T9|27#dSmk)X%qA<lvbp>mZ(p7Nb0 zpsm!GZm&G+vF{xdhSDF{ql!MGT;w1(v<+hku8UOCbP%}=< zsGT8y^1Tt2@RhP3qCs}%oIDojq!E8WSO;%n9$7p4_PFADs2TgIuj&UySXf!nQG@xf z*0^RZfmV)C|20uAtujn3S_uHy2HOn6g$^DwqN##OWeY!5{}v4hT-S*f9u!S?zbY6p zaf}Zqmc;4cajvv)P^3^pLo=o+b}gRTy<&NVoLf(mogRps{w+#u`ODO0+K11ofQ=wi zO<2ReuKS%yzC78@N0Ri(!uF{2hlb2A^Wq$UsIsPh!)6JTs*02kw6^ub&%G;`~)h)FR$LDA-@>Zo`PXX*0 zCw$?Q8-B^T;Q*Ksp{wkx&DhbB&KPv{Md+L-19rIJ&3A0W`S+P1}M{y-#gufx99 zm~$!4?Jkk3eR^BCqMJ&RK~zmJ7&HAg4L_3xynmP3d8|i1?M@eAQ3y_)c|Z5#3lxAs3L%aMuFOhr{#{G#DZx^U$KO$o`4@8U`#Q^b5qDpSVnY?^JJWQcI5i zRZF@vL-I`HOVZ{fWZcF)A7j(yI%-v7huKEb>uQ2tDoT@}G|&WNxn*hirk@W+M7m{v zHJyfN878jdg%;oDxLn*$XI6JnA09ojThI*dy-N8{r)(Ba@mm3TTL?CXd zdwjdaZ=@IUc%o-(6nS*z=rc>kG5ZR~2&-bS{>N4it$jIQ9W>P{8Mlt4_GneyO6KC} zK)y`ES#kog(0?Y4X>ToxkE3#diC$8jMJ&t3DI1lidk z6QYR4o!{pg1bL~CG!c@V#|u^J3@y8%EAT|!FQh2fG`V}h3B%3KHdI_C8=C0#)=0VI z3tD^7Ow(tHKqVA^3kH!X?6>G7B-(q(NVi==8xQtut!u0-kxG}ux9ffo&nZuHqn;LO zMhDgqn=?S^z>l{I)@HZ3>FLKCGDu&J#QSdS5f%v!#|s04^KTM{guA53f8}sWbIT7< zPGosiA<{LCsUpAJJx8FS*30UIafxl=-kJD21N3GgZv*~xrY62=+*LPlDAX5k2?{N9 z^iDAxxNOb;7V(BraA4FF3t!E<*>p^qeCc0xtLb9ja&~NvO|KX1j|=$)eq{Dr?oNJU zeTp;cIFIg%U_;(?G}cLyYubrf*30}JFDmwA@H%URH6p9BsS^gnI9}TnJo&P$()4xY zq4K=`<#f!c3*}_!xZu4pG+)0FJAzmm-S=Ez3u7Igy1xN?ybZJRENJZ3tmQTJVtV>m z+=fbcvAC|3xyGXB95p5GH#1@31O^T2yvyaqRyIcNOce?d>Kgo{J|6Z9yDjgZBD>(*?rc(&cyig1bE?J-g!d=IDs; zrF3uuB;RS&%X~b-(&9{H}Z@9rFzikkab4h z>fIh#2ki}qm=vAx*l~WSJ!}P4Hfo8G>Kqxn+rVu3k^e-K8SYqMny%so)u-E>}{AMPI1%lhv0r;lD)6W zb%tAu3xsrsI`1(rn=H@y>6Do>Ydl}u)$2zes6ADz3j^y3&2)95`Lr;s%E1^4Us@vQ zt-J@lEIM&uHZBybJgUR_1EAd~*3`At?i4{me#Ur1+|nJ~-8@#@JPd8udpTSG{$AP>kiK<)$%&ns2A9d7JZnqOIiu z8CxqGU3b|gllu2R`o(*{4_#y3#GUn#36*G>66BNGtbH3}Hdmfw9HA(4Mgu2DB2;)i zX1#W4GTnq`E)Cw7+xS9-z!-v;@_fk1#Cu=C(@;SDp2qWrX#)?M$IdOR|NAR$!8WVP zN+Z@WWj%{y=@0o>hVzzu4sfFxM2F?c?5|_7OQL4mTl6uK+2Nc}SlJHn8BbGiqPBZ& z9@_A%w|JV6^F+z_^9b!eC0k(`#!N*0z*XSp=gskLqAoc!Pg#gnQ4V4LX%BPwQMOG= zB@LO_dmt$zJod~Z+2>5$LQ>qXaN^H zzQK+#{#_N)l@&uSUI}WrsEzi3xYI^A595=9OdYY}o`f%|j@ZBbNscsgetR+8wsvsG z<^MQWexTvM0JRw0;B*VZhWBB75`ym?Ub5mlO^7My5OawWX-&%7Ode3{c^q9Gn(S=@ z`#M>O^@DeT6vK7y2sUv6EPeY%;MspelrgsES2@K_sy>kFEBThcUXX5Swsanzzxelk z6Zs3*@wjmSvZnKp7FW`q@8%QFD;-9wHX&rXsmhWU3Z=!(w*2!O1pD7(6O6Mm9Bj8M z~-%cjV(osC!&+)un;VxTI^_6 zwrw+9j5{904SY7G%^UvU)zM&$wtcSM@!pXGzK2wEw{G;B+m~>uqTrTt0(Gvxb@Kou zLvoNWNJ&s#t?ifJIr&E;@s|Eu@}2^{h?YWMWLS&4W`_S-wWCnO=-1f~6SoZguHlWF zMUU#>bAMc~(6$UXs28CvmVIeW#3s{vacvCPy#Gjl;c0`Ov}kTbbNWx~2gfJV(CL{q z*Et_W39}T+1jQhwEt#ZHC5XZ6T{=YU!E0kZ6D%?UEMXO7PnKUq^}U?aC7VJPkyxpB z^P$!TbcpUM+O5T@w|`s5?F7576oi}Tv~>)WUW|ZkpJG4IqpcvhpQU_wZqVO2?w*?r z_0-1Z)~io`;?>(8AHOaCaThlpj0$+0wmpJKPbzN`LOrd8SX!TvEhvHsOpT37m=8$3 z4dWi3bA^pU#}c>T51<(>-w~uw(DV|UQ@1mE19JwDyG6+ome%|rdF58T*@dBy-f7S- zm9N+Vu?ki|$qq$g9C5H46h70Phz=t5lSG?{7?C|XM}@_B!;CC1r?6R!3=z5)d#_k@ zxkpK;l~dcA{%9{3aXcJ-y2P+1uo6Qt8{W|fp(l~?wF-(86`b8H%04>8_GT6F3pgk5 z&_Oy?#iWHfw(xG!3>eTA%LSw@rRw4?cvSO2p_^h(Hqo}xZV@)lnby<@H%nL_ji8Wt zd}tdKENT1-8lI`jlZhx{ry^%1NbL@UoZO)an0&jGYL@L~bJEVTl1)Em$zCX|? zIOXvvlsP1n3~m3}Nz4kl^&ESz=(3MRtsvlqgZa`b%WRH;tLiw%$XD2!Mgv1)3ZRg0 z36iHqU`q_t^kT%glHH3oZV?w5};2EF}?F448GKd$!!gdm5fxsREwE_ zv<&nVuylf7^23fcUr)ZO|GQ{rV=eS0QVbv$;`rj`U<5KTFw(Qp(*s$lfDB|nAlX+t zX&b};Qxhe7JzHBN!!N~SJxd28SUNc+VO3fYCre9xJ!|WK^+n0l%mMKA`_Dd61AZCV zJAAzwz(`BaM9<95z`{(!K+E#qef^If0;J5GjR0Sr0@4W?>6__UQvfV%^&CwdjPwA` z|MhnkT1Hw1ihpS<|CeOp|D?cIa_=i(#ZgrnEr)Jv3GC;Ffuayzga`< zEdM^-VL^4xdXELsYe{9?AcANolgLlkZ=ykX&Jn5D3?rBTHQf%pA4BYx=>0V-ZvUJ` zBHdaZ_2C=$zOAvVF&iqoGx3PRxH!eELPES@0g=&&gzRW+LbQ?$KFX*f?azL4U2Wm; zQNvX}QHa@TWyJaESxnPESaRRE%X(r8aR2zVvu+FWn7}>*zF`fEVljMc!KB9eotT4O zln5oZJtu`{_Kn0sT%!nNKamv9?Z+wLN)Q0`%oRA!&*LhIaEqh_8kf}Htvl+=CXR3> zN#4^rgEZQG(hYvI`9*bd!1$elk2w7&8+5!%4uAa6>FEB-j6A8ew+9jo#XxO3Xl-FX4L)*;W{{T&;s%Y zLc^SE$PeOIWml_@u3e`9&uYEm8-&}QFYPeSVW=jY=j-PXvGSwGGjngzJ(I74EicOA zlb2oB-t1eutbBdGo;oX;ym`Lwd2xJP#^FSTd!GS=wG~`Tj9ztYlt{8gxIf^o?iw4s zP#qEc_IaAn1w*GCa<3fLMr&vv-Ml$5^t!HOJD2G@+hr8FD@L8_N?XUyOI39bcOM>Z z4`J9#~LqmLW!|05ou0gL!ru~dU_o)D6^+wmrn5hiIz z;*I{(?x!~rfpCp#aVc#wW6fc|o7AK9Qkm-O8p5#~%-Q8wh$=xq-GL)BRfdpn+NeMoB8cjN|9|^f68z(H>bsG#H-*&$5JBOxKja&g5KmZG~7A&2jnY+=~9W0#+K!YB@0HFV>Q?Rjd1bp#C0|5&EYHn-;_>XA( zuYwRjgNq(0z%C-d&%(gZLN5el;AdlHXJTd(5@F(J6=VQ1Gw=ZZ&rQDG@?RSB^sN8I zp7d|P6VQg(EB!z*gLbYkeKfuAxYi>$F*#<;#Sz1BB;~}YeR~y{@~Yu15QAha1t!=B z67KLBJ>15h3+PHwhIK3Le5$$4d`2Yk*<`(VpJP=^za$oJ{vgB!3<~1q0$ZV+5_zVt zNSbxPV$5-_n@-L{4^afdegzwP1RsAuo!YX4;cMux8omgI}WMg;c%0h8n>p#T5? literal 0 HcmV?d00001 diff --git a/main.go b/main.go index d4bcbaa..228d205 100644 --- a/main.go +++ b/main.go @@ -47,6 +47,7 @@ type Final struct { func main() { var lang = flag.String("lang", "en", "Language strings to use in the output") var version = flag.String("printvers", "", "Specific version to print out") + flag.Bool("snap", false, "") flag.Parse() @@ -199,4 +200,5 @@ func main() { if err := dec.Decode(&missions); err != nil { panic(err) } + } diff --git a/cards/template/cards.tex b/snapshot/20230423-18h11.tex similarity index 68% rename from cards/template/cards.tex rename to snapshot/20230423-18h11.tex index 236d3a9..b03930a 100644 --- a/cards/template/cards.tex +++ b/snapshot/20230423-18h11.tex @@ -172,7 +172,7 @@ } % Actions -\newcommand{\action}[4]{ % Name, Description, Instant?, Persistent? +\newcommand{\action}[6]{ % Name, Description, Instant?, Persistent?, Intro V, Updated V \begin{tikzpicture} \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); @@ -276,6 +276,8 @@ \playercard{8} + +\end{document} % SIGILS \sigil{QUEER THROATSLITTING COLLECTIVE}{Our found family will find yours.}{QTSC} \sigil{QUEER THROATSLITTING COLLECTIVE}{Our found family will find yours.}{QTSC} @@ -289,251 +291,253 @@ \sigil{LEAGUE of INORDINATE REPROBATES}{Trouble caused is trouble reified.}{LoIR} \sigil{LEAGUE of INORDINATE REPROBATES}{Trouble caused is trouble reified.}{LoIR} \sigil{LEAGUE of INORDINATE REPROBATES}{Trouble caused is trouble reified.}{LoIR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} -\sigil{CHURCH OF THE UNDYING ROSE}{Love heals all wounds, but we cause some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} +\sigil{CHURCH of the UNDYING ROSE}{Love heals all wounds. We caused some of them.}{CotUR} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} \sigil{VENGEFUL SACRIFICIUM}{Once burned, twice as petty.}{VS} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} -\sigil{YE BROTHERS JOYOUS}{Happiness, or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} +\sigil{YE BROTHERS JOYOUS}{Happiness or oblivion.}{YBJ} % ACTIONS -\action{NIL}{All players must immediately play a \stn{} card.}{}{} -\action{NIL}{All players must immediately play a \stn{} card.}{}{} -\action{CURIOSITY}{All players holding at least one \btr{} must raise their hands. You may swap any held \stn{} of yours for a \btr{} of their choice.}{}{} -\action{CURIOSITY}{All players holding at least one \btr{} must raise their hands. You may swap any held \stn{} of yours for a \btr{} of their choice.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{} -\action{MISERY}{All other players discard 2 \act{} cards. If \textbf{Joy} is in play, double this effect.}{}{true} -\action{MISERY}{All other players discard 2 \act{} cards. If \textbf{Joy} is in play, double this effect.}{}{true} -\action{JOY}{You may play 2 \act{} cards immediately. If \textbf{Misery} has been played this round, you may play 3 \act{} cards immediately instead.}{}{true} -\action{JOY}{You may play 2 \act{} cards immediately. If \textbf{Misery} has been played this round, you may play 3 \act{} cards immediately instead.}{}{true} -\action{IMPLOSION}{Cancel the effects of another player's \act{}.}{At any point while a player is playing an \act{}.}{} -\action{IMPLOSION}{Cancel the effects of another player's \act{}.}{At any point while a player is playing an \act{}.}{} -\action{IMPLOSION}{Cancel the effects of another player's \act{}.}{At any point while a player is playing an \act{}.}{} -\action{THAT WHICH is UNSEEN}{You may look at the \act{} draw deck. You may order it or shuffle it in any way you wish before putting it back.}{}{} -\action{THAT WHICH is UNSEEN}{You may look at the \act{} draw deck. You may order it or shuffle it in any way you wish before putting it back.}{}{} -\action{PARANOIA}{All players holding at least one \brg{} must raise their hands. You may swap any held \stn{} of yours with a \brg{} of their choice.}{}{} -\action{PARANOIA}{All players holding at least one \brg{} must raise their hands. You may swap any held \stn{} of yours with a \brg{} of their choice.}{}{} -\action{DUPLICITY}{You may swap two of your played \stn{} cards.}{}{} -\action{DUPLICITY}{You may swap two of your played \stn{} cards.}{}{} -\action{BURNING TRUTH}{Choose any player who must reveal their held \stn{} cards to everyone, then give that player this \textbf{Burning Truth} card instead of discarding it.}{}{} -\action{LANDMINE}{Negate that effect. The player must also discard all their \act{} cards.}{If a player tries to take or swap any of your held cards.}{} -\action{LANDMINE}{Negate that effect. The player must also discard all their \act{} cards.}{If a player tries to take or swap any of your held cards.}{} -\action{TOXIC SHOCK}{All other players must discard \act{} cards until they have one fewer than you.}{}{} -\action{TOXIC SHOCK}{All other players must discard \act{} cards until they have one fewer than you.}{}{} -\action{SUBTERFUGE}{You may look at the played \stn{} cards of any one other player.}{}{} -\action{SUBTERFUGE}{You may look at the played \stn{} cards of any one other player.}{}{} -\action{FAMINE}{While this card is in effect, no \act{} cards may be drawn.}{}{true} -\action{FAMINE}{While this card is in effect, no \act{} cards may be drawn.}{}{true} -\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{} -\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{} -\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{} -\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{} -\action{AMNESIA}{Remove all persistent \act{} cards from play.}{}{} -\action{AMNESIA}{Remove all persistent \act{} cards from play.}{}{} -\action{HONESTY}{You may turn any of your own played \stn{} cards face-up.}{}{} -\action{HONESTY}{You may turn any of your own played \stn{} cards face-up.}{}{} -\action{FEAR}{No effect. While you hold this card, you may not play any other \act{} cards.}{}{} -\action{FEAR}{No effect. While you hold this card, you may not play any other \act{} cards.}{}{} -\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{} -\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{} -\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{} -\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{} -\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{} -\action{TITHES}{All players must give you one of their \act{} cards, of their choosing.}{}{} -\action{TITHES}{All players must give you one of their \act{} cards, of their choosing.}{}{} -\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{} -\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{} -\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{} -\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{} -\action{TURNABOUT is FAIR PLAY}{You may pick the card up and play it yourself immediately afterwards.}{If an \act{} allows a player to take cards from your hand}{} -\action{TURNABOUT is FAIR PLAY}{You may pick the card up and play it yourself immediately afterwards.}{If an \act{} allows a player to take cards from your hand}{} -\action{SUCKER PUNCH}{Flip their \stn{} over and reveal it. If it is \brg{}, gain 1 \pnt{}. If it is \btr{}, take 2 \pnts{} from the player.}{When a player plays a \stn{} against you}{} -\action{SUCKER PUNCH}{Flip their \stn{} over and reveal it. If it is \brg{}, gain 1 \pnt{}. If it is \btr{}, take 2 \pnts{} from the player.}{When a player plays a \stn{} against you}{} -\action{SIDESWIPE}{You may replay this \act{} against a different player afterwards.}{When you play an \act{} that targets another player}{} -\action{SIDESWIPE}{You may replay this \act{} against a different player afterwards.}{When you play an \act{} that targets another player}{} -\action{SIDESTEP}{Deflect the effect of this \act{} to the player to your left.}{When an \act{} targets you}{} -\action{SIDESTEP}{Deflect the effect of this \act{} to the player to your left.}{When an \act{} targets you}{} -\action{CLIQUERY}{Gain 1 \pnt{}. All members of the \textbf{Queer Throatslitting Collective}, except yourself, must reveal themselves.}{}{} -\action{TATTLETALE}{Gain 1 \pnt{}. All members of the \textbf{League of Inordinate Reprobates}, except yourself, must reveal themselves.}{}{} -\action{BOTANICAL ARSON}{Gain 1 \pnt{}. All members of the \textbf{Church of the Undying Rose}, except yourself, must reveal themselves.}{}{} -\action{CYCLE of REVENGE}{Gain 1 \pnt{}. All members of the \textbf{Vengeful Sacrificium}, except yourself, must reveal themselves.}{}{} -\action{VICIOUSNESS}{Gain 1 \pnt{}. All members of \textbf{Ye Brothers Merry}, except yourself, must reveal themselves.}{}{} -\action{ALLEGATIONS}{You may accuse another player of being a member of any group. If you are correct, they must reveal themselves and give you 2 \pnts{}.}{}{} -\action{ALLEGATIONS}{You may accuse another player of being a member of any group. If you are correct, they must reveal themselves and give you 2 \pnts{}.}{}{} -\action{OPPORTUNISM}{Take 2 \pnts{} from that player.}{When a player is forced to reveal a card or their alliance}{} -\action{OPPORTUNISM}{Take 2 \pnts{} from that player.}{When a player is forced to reveal a card or their alliance}{} -\action{SAVOIR FAIRE}{Take that \act{} for yourself, and draw another \act{}.}{When a player draws an \act{}}{} -\action{SAVOIR FAIRE}{Take that \act{} for yourself, and draw another \act{}.}{When a player draws an \act{}}{} -\action{LOADSHEDDING}{While this card is in effect, any effect that allows or forces a player to reveal a card is negated.}{}{true} -\action{LOADSHEDDING}{While this card is in effect, any effect that allows or forces a player to reveal a card is negated.}{}{true} -\action{UNEXPECTED SURGE}{Remove \textbf{Loadshedding} from play. The players with the most \act{} cards lose 2 \pnts{}.}{}{} -\action{UNEXPECTED SURGE}{Remove \textbf{Loadshedding} from play. The players with the most \act{} cards lose 2 \pnts{}.}{}{} -\action{RALLYING CRY}{Reveal one of your alliances. Other players in this alliance may also reveal themselves. Each of you receives 1 \pnt{} per revealed player.}{}{} -\action{SOLE SURVIVOR}{Choose a player, who must reveal their alliance. All other members of this alliance must reveal themselves and lose 1 \pnt{}.}{}{} -\action{POISON PILL}{You must reveal 4 of your held \act{} cards.}{If this card gets passed to you by another player, you \textbf{must} play it}{} -\action{POISON PILL}{You must reveal 4 of your held \act{} cards.}{If this card gets passed to you by another player, you \textbf{must} play it}{} +\action{NIL}{All players must immediately play a \stn{} card.}{}{}{0.1.0}{0.1.0} +\action{NIL}{All players must immediately play a \stn{} card.}{}{}{0.1.0}{0.1.0} +\action{CURIOSITY}{All players holding at least one \btr{} must raise their hands. You may swap any held \stn{} of yours for a \btr{} of their choice.}{}{}{0.1.0}{0.1.0} +\action{CURIOSITY}{All players holding at least one \btr{} must raise their hands. You may swap any held \stn{} of yours for a \btr{} of their choice.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{CACOPHONY}{All players must immediately reveal their \textbf{Cacophony} cards. If there are 3 or fewer other \textbf{Cacophony} cards revealed, gain that many \pnts{}. Otherwise, discard all your \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{MISERY}{All other players discard 2 \act{} cards. If \textbf{Joy} is in play, double this effect.}{}{true}{0.1.0}{0.1.0} +\action{MISERY}{All other players discard 2 \act{} cards. If \textbf{Joy} is in play, double this effect.}{}{true}{0.1.0}{0.1.0} +\action{JOY}{You may play 2 \act{} cards immediately. If \textbf{Misery} has been played this round, you may play 3 \act{} cards immediately instead.}{}{true}{0.1.0}{0.1.1} +\action{JOY}{You may play 2 \act{} cards immediately. If \textbf{Misery} has been played this round, you may play 3 \act{} cards immediately instead.}{}{true}{0.1.0}{0.1.1} +\action{IMPLOSION}{Cancel the effects of that \act{}.}{At any point while a player is playing an \act{}.}{}{0.1.0}{0.1.1} +\action{IMPLOSION}{Cancel the effects of that \act{}.}{At any point while a player is playing an \act{}.}{}{0.1.0}{0.1.1} +\action{IMPLOSION}{Cancel the effects of that \act{}.}{At any point while a player is playing an \act{}.}{}{0.1.0}{0.1.1} +\action{THAT WHICH is UNSEEN}{For the next 30 seconds, you may look at the \act{} draw deck, and order it or shuffle it in any way you wish before putting it back.}{}{}{0.1.0}{0.1.1} +\action{THAT WHICH is UNSEEN}{For the next 30 seconds, you may look at the \act{} draw deck, and order it or shuffle it in any way you wish before putting it back.}{}{}{0.1.0}{0.1.1} +\action{PARANOIA}{All players holding at least one \brg{} must raise their hands. You may swap any held \stn{} of yours with a \brg{} of their choice.}{}{}{0.1.0}{0.1.0} +\action{PARANOIA}{All players holding at least one \brg{} must raise their hands. You may swap any held \stn{} of yours with a \brg{} of their choice.}{}{}{0.1.0}{0.1.0} +\action{DUPLICITY}{You may swap two of your played \stn{} cards.}{}{}{0.1.0}{0.1.0} +\action{DUPLICITY}{You may swap two of your played \stn{} cards.}{}{}{0.1.0}{0.1.0} +\action{BURNING TRUTH}{Choose any player who must reveal their held \stn{} cards to everyone, then give that player this \textbf{Burning Truth} card instead of discarding it.}{}{}{0.1.0}{0.1.0} +\action{LANDMINE}{Negate that effect. The player must also discard all their \act{} cards.}{If a player tries to take or swap any of your held cards.}{}{0.1.0}{0.1.0} +\action{LANDMINE}{Negate that effect. The player must also discard all their \act{} cards.}{If a player tries to take or swap any of your held cards.}{}{0.1.0}{0.1.0} +\action{TOXIC SHOCK}{All other players must discard \act{} cards until they have one fewer than you.}{}{}{0.1.0}{0.1.1} +\action{TOXIC SHOCK}{All other players must discard \act{} cards until they have one fewer than you.}{}{}{0.1.0}{0.1.1} +\action{SUBTERFUGE}{You may look at the played \stn{} cards of any one other player.}{}{}{0.1.0}{0.1.0} +\action{SUBTERFUGE}{You may look at the played \stn{} cards of any one other player.}{}{}{0.1.0}{0.1.0} +\action{FAMINE}{While this card is in effect, no \act{} cards may be drawn.}{}{true}{0.1.0}{0.1.0} +\action{FAMINE}{While this card is in effect, no \act{} cards may be drawn.}{}{true}{0.1.0}{0.1.0} +\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{}{0.1.0}{0.1.0} +\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{}{0.1.0}{0.1.0} +\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{}{0.1.0}{0.1.0} +\action{ABUNDANCE}{Remove \textbf{Famine} from play. Draw as many \act{} cards as there are players, then give each player one card of your choosing.}{}{}{0.1.0}{0.1.0} +\action{AMNESIA}{Remove all persistent \act{} cards from play.}{}{}{0.1.0}{0.1.0} +\action{AMNESIA}{Remove all persistent \act{} cards from play.}{}{}{0.1.0}{0.1.0} +\action{HONESTY}{You may turn any of your own played \stn{} cards face-up.}{}{}{0.1.0}{0.1.0} +\action{HONESTY}{You may turn any of your own played \stn{} cards face-up.}{}{}{0.1.0}{0.1.0} +\action{FEAR}{No effect. While you hold this card, you may not play any other \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{FEAR}{No effect. While you hold this card, you may not play any other \act{} cards.}{}{}{0.1.0}{0.1.0} +\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{LOVE}{If another player has \textbf{Love}, they may reveal it and discard it, and you both gain 2 \pnts{}. Only the first player to reveal will gain \pnts{}. If no player reveals \textbf{Love}, you lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{TITHES}{All players must give you one of their \act{} cards, of their choosing.}{}{}{0.1.0}{0.1.0} +\action{TITHES}{All players must give you one of their \act{} cards, of their choosing.}{}{}{0.1.0}{0.1.0} +\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{}{0.1.0}{0.1.0} +\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{}{0.1.0}{0.1.0} +\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{}{0.1.0}{0.1.0} +\action{PURIFICATION}{All players, including yourself, must reveal one of their played \stn{} cards and then return it to their hand.}{}{}{0.1.0}{0.1.0} +\action{TURNABOUT is FAIR PLAY}{You may pick the card up and play it yourself immediately afterwards.}{If an \act{} allows a player to take cards from your hand}{}{0.1.0}{0.1.0} +\action{TURNABOUT is FAIR PLAY}{You may pick the card up and play it yourself immediately afterwards.}{If an \act{} allows a player to take cards from your hand}{}{0.1.0}{0.1.0} +\action{SUCKER PUNCH}{Flip their \stn{} over and reveal it. If it is \brg{}, gain 1 \pnt{}. If it is \btr{}, take 2 \pnts{} from the player.}{When a player plays a \stn{} against you}{}{0.1.0}{0.1.0} +\action{SUCKER PUNCH}{Flip their \stn{} over and reveal it. If it is \brg{}, gain 1 \pnt{}. If it is \btr{}, take 2 \pnts{} from the player.}{When a player plays a \stn{} against you}{}{0.1.0}{0.1.0} +\action{SIDESWIPE}{You may replay this \act{} against a different player afterwards.}{When you play an \act{} that targets another player}{}{0.1.1}{0.1.1} +\action{SIDESWIPE}{You may replay this \act{} against a different player afterwards.}{When you play an \act{} that targets another player}{}{0.1.1}{0.1.1} +\action{SIDESTEP}{Deflect the effect of this \act{} to the player to your left.}{When an \act{} targets you}{}{0.1.1}{0.1.1} +\action{SIDESTEP}{Deflect the effect of this \act{} to the player to your left.}{When an \act{} targets you}{}{0.1.1}{0.1.1} +\action{CLIQUERY}{Gain 1 \pnt{}. All members of the \textbf{Queer Throatslitting Collective}, except yourself, must reveal themselves.}{}{}{0.1.0}{0.1.1} +\action{TATTLETALE}{Gain 1 \pnt{}. All members of the \textbf{League of Inordinate Reprobates}, except yourself, must reveal themselves.}{}{}{0.1.0}{0.1.1} +\action{BOTANICAL ARSON}{Gain 1 \pnt{}. All members of the \textbf{Church of the Undying Rose}, except yourself, must reveal themselves.}{}{}{0.1.0}{0.1.1} +\action{CYCLE of REVENGE}{Gain 1 \pnt{}. All members of the \textbf{Vengeful Sacrificium}, except yourself, must reveal themselves.}{}{}{0.1.0}{0.1.1} +\action{VICIOUSNESS}{Gain 1 \pnt{}. All members of \textbf{Ye Brothers Merry}, except yourself, must reveal themselves.}{}{}{0.1.0}{0.1.1} +\action{ALLEGATIONS}{You may accuse another player of being a member of any group. If you are correct, they must reveal themselves and give you 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{OPPORTUNISM}{Take 2 \pnts{} from that player.}{When a player is forced to reveal a card or their alliance}{}{0.1.1}{0.1.1} +\action{OPPORTUNISM}{Take 2 \pnts{} from that player.}{When a player is forced to reveal a card or their alliance}{}{0.1.1}{0.1.1} +\action{SAVOIR FAIRE}{Take that \act{} for yourself, and draw another \act{}.}{When a player draws an \act{}}{}{0.1.0}{0.1.1} +\action{SAVOIR FAIRE}{Take that \act{} for yourself, and draw another \act{}.}{When a player draws an \act{}}{}{0.1.0}{0.1.1} +\action{LOADSHEDDING}{While this card is in effect, any effect that allows or forces a player to reveal a card is negated.}{}{true}{0.1.0}{0.1.1} +\action{LOADSHEDDING}{While this card is in effect, any effect that allows or forces a player to reveal a card is negated.}{}{true}{0.1.0}{0.1.1} +\action{UNEXPECTED SURGE}{Remove \textbf{Loadshedding} from play. The players with the most \act{} cards lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{UNEXPECTED SURGE}{Remove \textbf{Loadshedding} from play. The players with the most \act{} cards lose 2 \pnts{}.}{}{}{0.1.0}{0.1.0} +\action{RALLYING CRY}{Reveal one of your alliances. Other players in this alliance may also reveal themselves. Each of you receives 1 \pnt{} per revealed player.}{}{}{0.1.0}{0.1.0} +\action{SOLE SURVIVOR}{Choose a player, who must reveal their alliance. All other members of this alliance must reveal themselves and lose 1 \pnt{}.}{}{}{0.1.0}{0.1.1} +\action{POISON PILL}{You must reveal 4 of your held \act{} cards.}{If this card gets passed to you by another player, you \textbf{must} play it}{}{0.1.1}{0.1.1} +\action{POISON PILL}{You must reveal 4 of your held \act{} cards.}{If this card gets passed to you by another player, you \textbf{must} play it}{}{0.1.1}{0.1.1} +\action{PETTY CRUELTY}{Look at their \act{} cards and take any two.}{If another player says the word 'love'}{}{0.1.1}{0.1.1} +\action{PETTY CRUELTY}{Look at their \act{} cards and take any two.}{If another player says the word 'love'}{}{0.1.1}{0.1.1} % STANCES -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BARGAIN}{}{BARGAIN}{3}{-1} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{BETRAYAL}{}{BETRAYAL}{2}{0} -\stance{SYMBIOSIS}{\brg{}: both players gain an additional 2 \pnt{}.}{BARGAIN}{3}{-1} -\stance{SYMBIOSIS}{\brg{}: both players gain an additional 2 \pnt{}.}{BARGAIN}{3}{-1} -\stance{EXCOMMUNICATION}{This card must be played face-up.}{BETRAYAL}{4}{0} -\stance{EXCOMMUNICATION}{This card must be played face-up.}{BETRAYAL}{4}{0} -\stance{QUID PRO QUO}{At any time once played, this card can be flipped face-up to negate a player's \act{}.}{BARGAIN}{3}{-1} -\stance{QUID PRO QUO}{At any time once played, this card can be flipped face-up to negate a player's \act{}.}{BARGAIN}{3}{-1} -\stance{ASSASSINATION}{\brg{}: the other player loses 2 additional \pnts{}.}{BETRAYAL}{1}{0} -\stance{ASSASSINATION}{\brg{}: the other player loses 2 additional \pnts{}.}{BETRAYAL}{1}{0} -\stance{FAIR DEAL}{This card must be played face-up.}{BARGAIN}{4}{-1} -\stance{FAIR DEAL}{This card must be played face-up.}{BARGAIN}{4}{-1} -\stance{COUP d'ETAT}{If played against the player with the most \pnts{} in the last round, they lose 2 additional \pnts{}.}{BETRAYAL}{2}{0} -\stance{COUP d'ETAT}{If played against the player with the most \pnts{} in the last round, they lose 2 additional \pnts{}.}{BETRAYAL}{2}{0} -\stance{CONTRACTUAL OBLIGATIONS}{\btr{}: the other player loses 3 \pnts{}.}{BARGAIN}{1}{1} -\stance{CONTRACTUAL OBLIGATIONS}{\btr{}: the other player loses 3 \pnts{}.}{BARGAIN}{1}{1} -\stance{A TRUE NAME, SPOKEN SOFTLY}{}{BETRAYAL}{1}{1} -\stance{A TRUE NAME, SPOKEN SOFTLY}{}{BETRAYAL}{1}{1} -\stance{PEACEKEEPING}{\btr{}: you may take all \act{} and \fin{} cards of the other player.}{BARGAIN}{3}{-1} -\stance{PEACEKEEPING}{\btr{}: you may take all \act{} and \fin{} cards of the other player.}{BARGAIN}{3}{-1} -\stance{\say{PEACEKEEPING}}{\brg{}: take all the \act{} cards of the other player.}{BETRAYAL}{2}{0} -\stance{\say{PEACEKEEPING}}{\brg{}: take all the \act{} cards of the other player.}{BETRAYAL}{2}{0} -\stance{CAMERADERIE}{}{BARGAIN}{4}{-2} -\stance{CAMERADERIE}{}{BARGAIN}{4}{-2} -\stance{BITTER TASTE}{The other player must also redraw all their \brg{} cards at the beginning of the next round.}{BETRAYAL}{2}{0} -\stance{BITTER TASTE}{The other player must also redraw all their \brg{} cards at the beginning of the next round.}{BETRAYAL}{2}{0} -\stance{LOVE-TACKLE}{If a player reveals this card during the game, it is flipped face-up, and they must give you all their \act{} cards.}{BARGAIN}{3}{-1} -\stance{LOVE-TACKLE}{If a player reveals this card during the game, it is flipped face-up, and they must give you all their \act{} cards.}{BARGAIN}{3}{-1} -\stance{THROWN to the LAMPREYS}{This card must be played face-up and cannot be moved or interacted with. The player this card is played against must immediately play 2 of their \stn{} cards.}{BETRAYAL}{0}{0} -\stance{THROWN to the LAMPREYS}{This card must be played face-up and cannot be moved or interacted with. The player this card is played against must immediately play 2 of their \stn{} cards.}{BETRAYAL}{0}{0} -\stance{QUISLING}{\brg{}: both players gain an additional 2 \pnts{}.}{BETRAYAL}{2}{0} -\stance{QUISLING}{\brg{}: both players gain an additional 2 \pnts{}.}{BETRAYAL}{2}{0} -\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3} -\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3} -\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3} -\stance{ZERO SUM}{Completely negate the \pnts{} gained or lost by both players in this interaction.}{BETRAYAL}{0}{0} -\stance{ZERO SUM}{Completely negate the \pnts{} gained or lost by both players in this interaction.}{BETRAYAL}{0}{0} -\stance{SONNET}{If this is played \brgbtr{}, you may sing a song to avoid losing \pnts{}.}{BARGAIN}{3}{-1} -\stance{SONNET}{If this is played \brgbtr{}, you may sing a song to avoid losing \pnts{}.}{BARGAIN}{3}{-1} -\stance{HOSTILE TAKEOVER}{Gain 1 \pnt{} for every \brg{} you have played.}{BETRAYAL}{-1}{-1} -\stance{HOSTILE TAKEOVER}{Gain 1 \pnt{} for every \brg{} you have played.}{BETRAYAL}{-1}{-1} -\stance{the SUBLIME}{}{BARGAIN}{2}{0} -\stance{the SUBLIME}{}{BARGAIN}{2}{0} -\stance{NIHILISM}{}{BETRAYAL}{1}{1} -\stance{NIHILISM}{}{BETRAYAL}{1}{1} -\stance{GATEKEEPING}{\btr{}: The other player must reveal themselves if they are a member of the \textbf{Queer Throatslitting Collective}.}{BETRAYAL}{2}{0} -\stance{RATTED OUT}{\btrbrg{}: if either player is a member of the \textbf{League of Inordinate Reprobates}, they must reveal themselves. If both are members, \brg{} loses 3 extra points.}{BETRAYAL}{2}{0} -\stance{CORPSES for ROSES}{\btr{}: If you are a member of the \textbf{Church of the Undying Rose}, you may reveal yourself and gain 4 \pnts{}.}{BARGAIN}{3}{-1} -\stance{BLOOD PRICE}{The other player must reveal all their alliances. If they are in the \textbf{Vengeful Sacrificium}, you lose 2 \pnts{}.}{BETRAYAL}{3}{1} -\stance{JAUNTY TUNE}{If either player is a member of \textbf{Ye Brothers Merry}, they may reveal themselves and gain 1 \pnt{}.}{BARGAIN}{3}{-1} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BARGAIN}{}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BETRAYAL}{}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{SYMBIOSIS}{\brg{}: both players gain an additional 2 \pnt{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{SYMBIOSIS}{\brg{}: both players gain an additional 2 \pnt{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{EXCOMMUNICATION}{This card must be played face-up.}{BETRAYAL}{4}{0}{0.1.0}{0.1.0} +\stance{EXCOMMUNICATION}{This card must be played face-up.}{BETRAYAL}{4}{0}{0.1.0}{0.1.0} +\stance{QUID PRO QUO}{At any time once played, this card can be flipped face-up to negate a player's \act{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{QUID PRO QUO}{At any time once played, this card can be flipped face-up to negate a player's \act{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{ASSASSINATION}{\brg{}: the other player loses 2 additional \pnts{}.}{BETRAYAL}{1}{0}{0.1.0}{0.1.0} +\stance{ASSASSINATION}{\brg{}: the other player loses 2 additional \pnts{}.}{BETRAYAL}{1}{0}{0.1.0}{0.1.0} +\stance{FAIR DEAL}{This card must be played face-up.}{BARGAIN}{4}{-1}{0.1.0}{0.1.0} +\stance{FAIR DEAL}{This card must be played face-up.}{BARGAIN}{4}{-1}{0.1.0}{0.1.0} +\stance{COUP d'ETAT}{If played against the player with the most \pnts{} in the last round, they lose 2 additional \pnts{}.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{COUP d'ETAT}{If played against the player with the most \pnts{} in the last round, they lose 2 additional \pnts{}.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{CONTRACTUAL OBLIGATIONS}{\btr{}: the other player loses 3 \pnts{}.}{BARGAIN}{1}{1}{0.1.0}{0.1.0} +\stance{CONTRACTUAL OBLIGATIONS}{\btr{}: the other player loses 3 \pnts{}.}{BARGAIN}{1}{1}{0.1.0}{0.1.0} +\stance{a TRUE NAME, SPOKEN SOFTLY}{}{BETRAYAL}{1}{1}{0.1.0}{0.1.0} +\stance{a TRUE NAME, SPOKEN SOFTLY}{}{BETRAYAL}{1}{1}{0.1.0}{0.1.0} +\stance{PEACEKEEPING}{\btr{}: you may take all \act{} and \fin{} cards of the other player.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{PEACEKEEPING}{\btr{}: you may take all \act{} and \fin{} cards of the other player.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{\say{PEACEKEEPING}}{\brg{}: take all the \act{} cards of the other player.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{\say{PEACEKEEPING}}{\brg{}: take all the \act{} cards of the other player.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{CAMERADERIE}{}{BARGAIN}{4}{-2}{0.1.0}{0.1.0} +\stance{CAMERADERIE}{}{BARGAIN}{4}{-2}{0.1.0}{0.1.0} +\stance{BITTER TASTE}{The other player must also redraw all their \brg{} cards at the beginning of the next round.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{BITTER TASTE}{The other player must also redraw all their \brg{} cards at the beginning of the next round.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{LOVE-TACKLE}{If a player reveals this card during the game, it is flipped face-up, and they must give you all their \act{} cards.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{LOVE-TACKLE}{If a player reveals this card during the game, it is flipped face-up, and they must give you all their \act{} cards.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{THROWN to the LAMPREYS}{This card must be played face-up and cannot be moved or interacted with. The player this card is played against must immediately play 2 of their \stn{} cards.}{BETRAYAL}{0}{0}{0.1.0}{0.1.0} +\stance{THROWN to the LAMPREYS}{This card must be played face-up and cannot be moved or interacted with. The player this card is played against must immediately play 2 of their \stn{} cards.}{BETRAYAL}{0}{0}{0.1.0}{0.1.0} +\stance{QUISLING}{\brg{}: both players gain an additional 2 \pnts{}.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{QUISLING}{\brg{}: both players gain an additional 2 \pnts{}.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3}{0.1.0}{0.1.0} +\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3}{0.1.0}{0.1.0} +\stance{TRUE LOVE}{If this card is \brgbrg{} with another \textbf{True Love}, you do not lose any base \pnts{} from \brgbtr{} in this round.}{BARGAIN}{3}{-3}{0.1.0}{0.1.0} +\stance{ZERO SUM}{Completely negate the \pnts{} gained or lost by both players in this interaction.}{BETRAYAL}{0}{0}{0.1.0}{0.1.0} +\stance{ZERO SUM}{Completely negate the \pnts{} gained or lost by both players in this interaction.}{BETRAYAL}{0}{0}{0.1.0}{0.1.0} +\stance{SONNET}{\btr{}: you may sing a song to avoid losing \pnts{}.}{BARGAIN}{3}{-3}{0.1.0}{0.1.1} +\stance{SONNET}{\btr{}: you may sing a song to avoid losing \pnts{}.}{BARGAIN}{3}{-3}{0.1.0}{0.1.1} +\stance{TOMFOOLERY}{\btr{}: you may tell a joke. If anyone laughs or chuckles, you avoid losing \pnts{}.}{BARGAIN}{3}{-3}{0.1.1}{0.1.1} +\stance{TOMFOOLERY}{\btr{}: you may tell a joke. If anyone laughs or chuckles, you avoid losing \pnts{}.}{BARGAIN}{3}{-3}{0.1.1}{0.1.1} +\stance{HOSTILE TAKEOVER}{Gain 1 \pnt{} for every \brg{} you have played.}{BETRAYAL}{-1}{-1}{0.1.0}{0.1.0} +\stance{HOSTILE TAKEOVER}{Gain 1 \pnt{} for every \brg{} you have played.}{BETRAYAL}{-1}{-1}{0.1.0}{0.1.0} +\stance{the SUBLIME}{}{BARGAIN}{2}{0}{0.1.0}{0.1.0} +\stance{the SUBLIME}{}{BARGAIN}{2}{0}{0.1.0}{0.1.0} +\stance{NIHILISM}{}{BETRAYAL}{1}{1}{0.1.0}{0.1.0} +\stance{NIHILISM}{}{BETRAYAL}{1}{1}{0.1.0}{0.1.0} +\stance{GATEKEEPING}{\btr{}: The other player must reveal themselves if they are a member of the \textbf{Queer Throatslitting Collective}.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{RATTED OUT}{\btrbrg{}: if either player is a member of the \textbf{League of Inordinate Reprobates}, they must reveal themselves. If both are members, \brg{} loses 3 extra points.}{BETRAYAL}{2}{0}{0.1.0}{0.1.0} +\stance{CORPSES for ROSES}{\btr{}: If you are a member of the \textbf{Church of the Undying Rose}, you may reveal yourself and gain 4 \pnts{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} +\stance{BLOOD PRICE}{The other player must reveal all their alliances. If they are in the \textbf{Vengeful Sacrificium}, you lose 2 \pnts{}.}{BETRAYAL}{3}{1}{0.1.0}{0.1.0} +\stance{JAUNTY TUNE}{If either player is a member of \textbf{Ye Brothers Merry}, they may reveal themselves and gain 1 \pnt{}.}{BARGAIN}{3}{-1}{0.1.0}{0.1.0} % FINALS -\final{ENTROPY}{Cancel the effects of all \fin{} cards this round.}{0} -\final{CURSED DECK}{Swap two played \stn{} cards between any two players other than yourself.}{1} -\final{STOIC HYMNAL}{Your \stn{} cards cannot be changed by any future \fin{} effects this round.}{2} -\final{VOW of VENGEANCE}{If you have played a \brgbtr{}, you may take all their held \act{} and \fin{} cards.}{3} -\final{ACT of PENANCE}{If you have played a \btrbrg{}, you may change your stance to a \brg{}, if you are holding one. If you do so, the other player gains 2 extra \pnts{}.}{4} -\final{LORD of the PIT}{Gain 3 \pnts{} for every time you have played a \btrbtr{} in this round.}{5} -\final{PIETY}{Gain 3 \pnts{} for each of your \brgbtr{} in this round.}{6} -\final{PERJURY}{Replace one of your played \stn{} cards with one of the opposite \stn{}, if you hold one.}{7} -\final{MARTYRDOM}{Choose another player. Both of you lose 5 \pnts{}. If you are already the player with the lowest score before losing these \pnts{}, only the other player loses 5 \pnts{}.}{8} -\final{PANTHEON}{If more than half the \fin{} cards have already been resolved, gain 3 \pnts{}. Otherwise, lose 1 \pnt{}.}{9} -\final{the ABYSS}{The player of the next \fin{} to resolve loses 4 \pnts{}.}{10} -\final{FLAGELLATION}{Lose 3 \pnts{}. You may not lose any further \pnts{} this round, for any reason.}{11} -\final{CHAOS}{Pick up 4 played \stn{} cards, shuffle them, and randomly deal them back to where they were taken from before revealing them.}{12} -\final{FUNERAL PYRE}{Take 3 \pnts{} from one player, and give 3 \pnts{} to a player other than yourself.}{13} -\final{INTERREGNUM}{Choose another player. All other players vote for you, or for the other player. If you win a majority of votes, take 3 \pnts{} from the other player. If you do not, give 3 \pnts{} to them.}{14} -\final{P'Zea-ia-Gwlfth}{If this is the last \fin{} to resolve, gain 5 \pnts{}.}{15} -\final{ANARCHY}{Every player gains 1 \pnt{} for every \brg{} they have played. You gain an extra \pnt{} for each \brg{} you have played.}{16} -\final{BURNT OFFERINGS}{You may ignore any \pnts{} lost due to any one \btr{}.}{17} -\final{MÓRRÍGAN}{Gain 1 \pnt{} for every \brgbtr{} in this round.}{18} -\final{SACRIFICE}{Gain 3 \pnts{} and discard all of your \act{} and \fin{} cards.}{19} -\final{CONTRITION}{Ask a player you have played a \btr{} against if they forgive you. If they do, you gain 3 \pnts{}, and they gain 1 \pnt{}.}{20} -\final{HAND STUFF, UNDER THE TABLE}{For each \brgbrg{} you have played, gain 1 \pnt{}, and you may replace any played \btr{} with a \btr{} from your hand.}{21} -\final{FINAL RITES}{Select up to 2 pairs of \brgbtr{} and swap them. You may only select 1 interaction per player.}{100} - -\end{document} \ No newline at end of file +\final{ENTROPY}{Cancel the effects of all \fin{} cards this round.}{0}{0.1.0}{0.1.0} +\final{CURSED DECK}{Swap two played \stn{} cards between any two players other than yourself.}{1}{0.1.0}{0.1.0} +\final{STOIC HYMNAL}{Your \stn{} cards cannot be changed by any future \fin{} effects this round.}{2}{0.1.0}{0.1.0} +\final{VOW of VENGEANCE}{If you have played a \brgbtr{}, you may take all their held \act{} and \fin{} cards.}{3}{0.1.0}{0.1.0} +\final{ACT of PENANCE}{If you have played a \btrbrg{}, you may change your stance to a \brg{}, if you are holding one. If you do so, the other player gains 2 extra \pnts{}.}{4}{0.1.0}{0.1.0} +\final{LORD of the PIT}{Gain 3 \pnts{} for every time you have played a \btrbtr{} in this round.}{5}{0.1.0}{0.1.0} +\final{PIETY}{Gain 3 \pnts{} for each of your \brgbtr{} in this round.}{6}{0.1.0}{0.1.0} +\final{PERJURY}{Replace one of your played \stn{} cards with one of the opposite \stn{}, if you hold one.}{7}{0.1.0}{0.1.0} +\final{MARTYRDOM}{Choose another player. Both of you lose 5 \pnts{}. If you are already the player with the lowest score before losing these \pnts{}, only the other player loses 5 \pnts{}.}{8}{0.1.0}{0.1.0} +\final{PANTHEON}{If more than half the \fin{} cards have already been resolved, gain 3 \pnts{}. Otherwise, lose 1 \pnt{}.}{9}{0.1.0}{0.1.0} +\final{the ABYSS}{The player of the next \fin{} to resolve loses 4 \pnts{}.}{10}{0.1.0}{0.1.0} +\final{FLAGELLATION}{Lose 3 \pnts{}. You may not lose any further \pnts{} this round, for any reason.}{11}{0.1.0}{0.1.0} +\final{CHAOS}{Pick up 4 played \stn{} cards, shuffle them, and randomly deal them back to where they were taken from before revealing them.}{12}{0.1.0}{0.1.0} +\final{FUNERAL PYRE}{Take 3 \pnts{} from one player, and give 3 \pnts{} to a player other than yourself.}{13}{0.1.0}{0.1.0} +\final{INTERREGNUM}{Choose another player. All other players vote for you, or for the other player. If you win a majority of votes, take 3 \pnts{} from the other player. If you do not, give 3 \pnts{} to them.}{14}{0.1.0}{0.1.0} +\final{P'Zea-ia-Gwlfth}{If this is the last \fin{} to resolve, gain 5 \pnts{}.}{15}{0.1.0}{0.1.0} +\final{ANARCHY}{Every player gains 1 \pnt{} for every \brg{} they have played. You gain an extra \pnt{} for each \brg{} you have played.}{16}{0.1.0}{0.1.0} +\final{BURNT OFFERINGS}{You may ignore any \pnts{} lost due to any one \btr{}.}{17}{0.1.0}{0.1.0} +\final{MÓRRÍGAN}{Gain 1 \pnt{} for every \brgbtr{} in this round.}{18}{0.1.0}{0.1.0} +\final{SACRIFICE}{Gain 3 \pnts{} and discard all of your \act{} and \fin{} cards.}{19}{0.1.0}{0.1.0} +\final{CONTRITION}{Ask a player you have played a \btr{} against if they forgive you. If they do, you gain 3 \pnts{}, and they gain 1 \pnt{}.}{20}{0.1.0}{0.1.0} +\final{HAND STUFF, UNDER the TABLE}{For each \brgbrg{} you have played, gain 1 \pnt{}, and you may replace any played \btr{} with a \btr{} from your hand.}{21}{0.1.1}{0.1.1} +\final{FINAL RITES}{Select up to 2 pairs of \brgbtr{} and swap them. You may only select 1 interaction per player.}{100}{0.1.0}{0.1.1} +\end{document} diff --git a/cards/template/.gitignore b/template/.gitignore similarity index 100% rename from cards/template/.gitignore rename to template/.gitignore diff --git a/cards/template/cards.pdf b/template/cards.pdf similarity index 100% rename from cards/template/cards.pdf rename to template/cards.pdf diff --git a/template/cards.tex b/template/cards.tex new file mode 100644 index 0000000..9feb881 --- /dev/null +++ b/template/cards.tex @@ -0,0 +1,280 @@ +\documentclass{scrartcl} + +% Compiled with assistance from a wonderful guide by Brett Witty: https://www.brettwitty.net/how-to-design-cards-1.html; https://www.brettwitty.net/how-to-design-cards-2.html; https://www.brettwitty.net/how-to-design-cards-3.html + +\usepackage{pdflscape} +\usepackage{xcolor} +\usepackage{tikz} +\usepackage{alchemy} +\usetikzlibrary{positioning} + +\usepackage{pifont} +\usepackage{graphicx} +\usepackage{etoolbox} +\usepackage[utf8]{inputenc} + +\usepackage{multicol} +\usepackage[margin=8mm]{geometry} + +\usepackage{nopageno} +\usepackage{graphicx, txfonts} +\usepackage{anyfontsize} +\usepackage{ifthen} +\usepackage{array} +\usepackage{dirtytalk} + +\RequirePackage[active,tightpage]{preview} +\PreviewEnvironment{tikzpicture} +\setlength{\PreviewBorder}{0.125in} + +\hyphenpenalty=100000 + +% All cards +\newcommand{\cardmargin}{2mm} +\newcommand{\cardcorners}{4mm} +\newcommand{\cardwidth}{63mm} +\newcommand{\cardheight}{88mm} +\newcommand{\cardnameheight}{10mm} +\newcommand{\carddescriptionheight}{30mm} +\newcommand{\carddescriptionmargin}{4mm} + +% TODO apply internationalization rules here too +\newcommand{\card}[1]{\textbf{#1}} +\newcommand{\act}{\textbf{Action}} +\newcommand{\stn}{\textbf{Stance}} +\newcommand{\fin}{\textbf{Final}} +\newcommand{\mis}{\textbf{Mission}} +%\newcommand{\brg}{\textcolor{white}\bargainheart{\textcolor{black}\bargainheartoutline}} +\newcommand{\brg}{{\ooalign{\textcolor{white}\bargainheart\cr\hss\textcolor{black}\bargainheartoutline\kern .025em\hss}}} +\newcommand{\btr}{\betrayalheart} +\newcommand{\pnt}{\textbf{Soul}} +\newcommand{\pnts}{\textbf{Souls}} + + +\newcommand{\brgbrg}{\brg\!\!\brg} +\newcommand{\btrbtr}{\btr\!\!\btr} +\newcommand{\btrbrg}{\btr\!\!\brg} +\newcommand{\brgbtr}{\brg\!\!\btr} + +% Stance Maps + +% PLAYER CARDS +\newcommand{\player}[1]{ + \ifthenelse{\equal{#1}{\string 1}}{\lead{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 2}}{\fermentation{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 3}}{\phosphorus{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 4}}{\incineration{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 5}}{\dissolution{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 6}}{\digestion{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 7}}{\silver{scale=8, line width=6pt}}{} + \ifthenelse{\equal{#1}{\string 8}}{\transmutation{scale=8, line width=6pt}}{} +} + +\newcommand{\playersml}[1]{ + \ifthenelse{\equal{#1}{\string 1}}{\lead{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 2}}{\fermentation{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 3}}{\phosphorus{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 4}}{\incineration{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 5}}{\dissolution{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 6}}{\digestion{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 7}}{\silver{scale=6, line width=4pt}}{} + \ifthenelse{\equal{#1}{\string 8}}{\transmutation{scale=6, line width=4pt}}{} +} + +\newcommand{\matmargins}{30mm} +\newcommand{\matwidth}{267mm} +\newcommand{\matheight}{180mm} +\newcommand{\matpadding}{3mm} + +\newcommand{\matbaseangle}{261} +\newcommand{\matrotationper}{33} + +\newcommand{\matcardexperimental}[2]{ + \draw[rounded corners = \cardcorners, #1, rotate around={\matbaseangle + #2 * \matrotationper:(0.5 * \matwidth, 0.8 * \cardwidth + \cardmargin)}] (0.5 * \matwidth - 0.5 * \cardwidth, 1.4 * \cardwidth + \cardmargin) rectangle ++(\cardwidth - \cardmargin, \cardheight - \cardmargin); +} + +\newcommand{\stancematexperimental}[1]{ % Name, Description, Instant?, Persistent? + \begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\matwidth, \matheight); + + \newcounter{Rotations} + + \matcard{red}{0} + \matcard{red}{1} + \matcard{red}{2} + \matcard{red}{3} + \matcard{red}{4} + \matcard{red}{5} + \matcard{red}{6} + + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large}; + + \end{tikzpicture} +} + +\newcommand{\matinner}{1mm} + +\newcommand{\matcard}[4]{ + + \ifthenelse{\equal{#3}{#4}} + { + \node (pname) at (\cardwidth * #1 + \matinner * #1 + \cardmargin + \cardwidth * 0.5, \matpadding + \cardheight * #2 + \cardheight * 0.9) [align = center] {YOU (NOTES \& SOULS)}; + } + { + \draw[rounded corners = \cardcorners, draw] (\matpadding + \cardwidth * #1 + \matinner * #1, \matpadding + \cardheight * #2) rectangle ++(\cardwidth - \cardmargin, \cardheight - \cardmargin); + \node (pname) at (\cardwidth * #1 + \matinner * #1 + \cardmargin + \cardwidth * 0.5, \matpadding + \cardheight * #2 + \cardheight * 0.5) [align = center] {\player{#3}}; + } +} + + +\newcommand{\playercard}[1]{ % Name, Description, Instant?, Persistent? + \begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); + + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.25) [text width = \cardwidth - 3 * \cardmargin, minimum height = 0, align = center] {\Large \playersml{#1}}; + + \end{tikzpicture} +} + +\newcommand{\stancemat}[1]{ % Player # + \begin{tikzpicture} + + \draw[white] (0,0) rectangle (\matwidth, \matheight); + + \matcard{0}{0}{1}{#1} + \matcard{1}{0}{2}{#1} + \matcard{2}{0}{3}{#1} + \matcard{3}{0}{4}{#1} + + \matcard{0}{1}{5}{#1} + \matcard{1}{1}{6}{#1} + \matcard{2}{1}{7}{#1} + \matcard{3}{1}{8}{#1} + + \end{tikzpicture} +} + +% Sigils +\newcommand{\sigil}[3]{ % Name, Description, Initials + \begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); + + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.85) [text width = \cardwidth - 2 * \cardmargin, align = center] {\Large #1}; + + \node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight * 0.125) [draw = none, fill = none, thick, text width = \cardwidth - 2 * \carddescriptionmargin, align = center] { + \small \say{\textit{#2}} + }; + + \end{tikzpicture} +} + +% Actions +\newcommand{\action}[6]{ % Name, Description, Instant?, Persistent?, Intro V, Updated V + \begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); + + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1}; + + \node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] { + \ifstrempty{#3}{}{ + % Instant, add the instant icon + \small \textbf{Instant}: \textit{#3} + + }\ifstrempty{#4}{}{ + % Persistent, add the instant icon + \small \textbf{Persistent}. + + } + \small #2 + }; + + \end{tikzpicture} +} + +% Stances +\newcommand{\bargainheart}{\ensuremath\varheartsuit} +\newcommand{\bargainheartoutline}{\ensuremath\heartsuit} +\newcommand{\betrayalheart}{\rotatebox[origin=c]{180}{\ensuremath\varheartsuit}} + +\newcommand{\heart}[1]{ + \ifthenelse{\equal{#1}{BARGAIN}} + {\bargainheartoutline} + {\betrayalheart} +} + +\newcommand{\stance}[5]{ % Name, Description, Type, AgainstBargain, AgainstBetrayal + \begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); + + \node (type) at (0.12 * \cardwidth + \cardmargin, 0.88 * \cardheight) [align = left] {\fontsize{50px}{50px} \heart{#3}}; + + \node (basevsbargain) at (0.75 * \cardwidth, 0.88 * \cardheight + 1.1mm) [rounded corners = \cardcorners, align = center] {\textcolor{white}{\fontsize{50px}{60px} \bargainheart{}}}; + \node (basevsbargainoutline) at (0.75 * \cardwidth, 0.88 * \cardheight + 1.1mm) [rounded corners = \cardcorners, align = center] {\fontsize{50px}{60px} \bargainheartoutline{}}; + \node (basevsbetrayal) at (0.86 * \cardwidth, 0.88 * \cardheight - 1.1mm) [rounded corners = \cardcorners, align = center] {\fontsize{50px}{60px} \betrayalheart{}}; + + \node (basevsbargaintext) at (0.75 * \cardwidth + 0.5mm, 0.88 * \cardheight + 1.5mm) [rounded corners = \cardcorners, align = center] {#4}; + \node (basevsbetrayaltext) at (0.86 * \cardwidth + 0.5mm, 0.875 * \cardheight - 1mm) [rounded corners = \cardcorners, align = center] {\textcolor{white}{#5}}; + + \ifstrempty{#2} + { + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1}; + } + { + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1}; + \node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] {\small #2}; + } + + \end{tikzpicture} +} + +%TODO Finals +\newcommand{\final}[3]{ % Name, Description, Priority +\begin{tikzpicture} + + \draw[rounded corners = \cardcorners] (0,0) rectangle (\cardwidth - \cardmargin, \cardheight - \cardmargin); + + \node (name) at (0.5 * \cardwidth - 0.5 * \cardmargin, \carddescriptionheight + \cardnameheight) [text width = \cardwidth - 3 * \cardmargin, minimum height = \cardnameheight, align = center] {\Large #1}; + + \node (priority) at (0.5 * \cardwidth - 0.5 * \cardmargin, \cardheight - \cardmargin - 0.5 * \cardnameheight) [minimum height = \cardnameheight, align = right] {\LARGE #3}; + + \node (description) at (0.5 * \cardwidth - 0.5 * \cardmargin, 0.5 * \carddescriptionheight + \carddescriptionmargin) [draw = lightgray, fill = white, thick, text width = \cardwidth - 3 * \carddescriptionmargin, minimum height = \carddescriptionheight, align = center] { + \small #2 + }; + +\end{tikzpicture} +} + +%TODO Missions + +%TODO images + +\begin{document} + +\thispagestyle{empty} + +\stancemat{1} +\stancemat{2} +\stancemat{3} +\stancemat{4} +\stancemat{5} +\stancemat{6} +\stancemat{7} +\stancemat{8} + +\playercard{1} +\playercard{2} +\playercard{3} +\playercard{4} +\playercard{5} +\playercard{6} +\playercard{7} +\playercard{8} + + + +\end{document} \ No newline at end of file diff --git a/cards/template/texput.log b/template/texput.log similarity index 100% rename from cards/template/texput.log rename to template/texput.log