From cd9df16b7cd56794b7892aff18be5442a182977d Mon Sep 17 00:00:00 2001 From: Duncan Date: Thu, 21 Sep 2023 08:37:32 +0200 Subject: [PATCH] added write to rails section --- assets/images/writing_data_react_rails.png | Bin 0 -> 31363 bytes contributing/detailed_contributing_guide.md | 39 ++++++++++++++------ guides/passing_data_react_rails.md | 11 +++++- 3 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 assets/images/writing_data_react_rails.png diff --git a/assets/images/writing_data_react_rails.png b/assets/images/writing_data_react_rails.png new file mode 100644 index 0000000000000000000000000000000000000000..47cf54dbe7ca0dff2ef24debca0ce007bf97aece GIT binary patch literal 31363 zcmeFYWmJ{z*FAb;fC`96i3kWN9nuX70@5X&k^<5tje??dBQ4!s(jwB`9nv7(%~}55 z_Z{bq@&A7~W1REhd^q=T_-yyH(!qbO+X{)lzIE%?#2?vN_$Q&Ah^n2UrIDTE8yiE!*uv7>kik~p#?a8h z_N}Ge*7bS;1bK{zzkKofecbw#6Cd6b5whJtJIl*jt_U1Z+w_QC}x z9`;0!u0;RyMPFQ=UH;FbI;YFqU8WnS9Jy%!UV2ZcKC^HmA#dhEOFi~~o|q%?|G)Pr zVawz4wooQ!*Hq2oc|a^uIB8h5oc!s@&d`M8=M>TF2q}|gUsy}>uU}8545v;z9Jf$@ zo>tlp_r$ZBca7&9d2#K9-^1C+&nj~`%>8qnUfg%NO)-H=wvX30_8a@NXokUd_n)4B z(T=d9S&yvWJwk3I3b22dwM2SJED}|YQ4l@?2F*>D`02X9hG3R0H00OEkBJGQ#l{De zOdg39M~y2hlOKhwnVE_0+5Hmuqokty#bwGr-TD253hUd_uY_M69du6_r6#43@LqEO9(<2$>P-I-w$P-{{LC%;TV7{s!JmE%M%m5nMI}Z>(<|$#^Ta1? z8;%Wk=6>R%%g)vh4HIL~zW)essCno@ZzQ@zGFp3X2ZvhHT3Yhr z;;)6~>h`9mh{ZI2*q_Bp7!;|dEiU$ni~Bje=cYg2Qxv(m%rUY#lM!|C@nb!W$M}%T zRZx+uS3PUk@R^*Z4d;2=_tkt-->aE~g1y~$#@#kEwaX@Rexb!SqHb=NK3JDnLSl^S zeD(+9Jg6y^lL@u&Uob_5NAxu~5)B6oQ|3**QZr0j_5SyLpIZ2PXs9y{pB3BK2qlVC z=g)BIuI;alkCS%R7gvp&=PYM7NpAAFYpQB$&h%~tZp{ga>{7p7f%x|s|? z_5M##%hQc&YHH~5>BtxYWLy(sB$!%KQ&k@v-SC84@UO5$c`hV1_`BDWABW1!jNhCA z`A(gkoqjl+Qpo9ag3Ma)AM2u{cMGX>#Wm;^wc4}}WH7hUAi8E2MyA``8i&k-lo2XQ zPLFu4?Jmag%ioa33@IzJGWQy@sLATow8Fyk^WrNE&6Z{2-*rl9FlO3j$P9>aU3<>p z74j{C1RtkEuZV=tt$b#}c<1A9B|S~r5I81)w2C&osB z+BIxz{hyXZ$4v6-Cl?G2jDiTeqP^+@9a3-)nOMs(n&Vr7hz_34%+9LC^0gMngocX9 zQV0mt^&0nmYHD)&MEbcWHqmZMR#alQg~{BzSN78mrx5W+|8N7+S`yeM$azR#Hl^3I z9mf^LAAg-CC;tfVk$+neigVD=W~~Y*WlL0GGJ8|Zy@5i&?!af*F-4$ z?i**6c7AR?*_Aj}Md`V1|L@_EbIs?T6W-RSJUr6*4D^iCHs?2x?VVj`M)ec?>WRK}=26MIvtKGJy`E&73Ao%_YAh6|QvswFyQ-{tyZeOO#Kd`MhzZ+2 z^_!}blG0MOMi}TZ?+QA>1Fv%G$zc?-3t$L{2e(yhx{0dq>@) zlBT__JYDkjYo##Xkmegm{jBccadlvWs>jMRwFK5-r8ya#s5^oyrj+Rz9uX8)RMXYS0QS*iV81)ldy%SOI zz~%YP^hkL$q+q&^*XiIPa_jaT?Wqc%yLBkKox0WRCB`U7PF5r*^E1RVJeS`2p|G6- z3$j1N>A5wOX|X<@T1G^}z(jSC6qbwe@16pyPS?~}GXkw13H%HdsInB1AN1uPrp9pt@pjCH|GIzVsDIhxDx_BPVOU6cPjEq3_p9eSo&`x z#kRKMa-qS~*=;k(HV;!!XZX;_F#h>&hsy*xnf*%1TNaC!Rpn8N;#mPVp5^f~D%pik zpBKDuv`L7&nf0Y?thWj+RbRXZZw2Ef<5$lD!a@lT4mgEKuX)z^ zcl!6GRN1dyL!k9=-@G}a-Zm`R*7*e8fRFbXUtF6W%Fp9Bjj!?Wh|JeH+#lUOAfLmL z=;#;+4%T=!ub_zXv(QY1{pnNor)hB?KmHgTY{19A%`|{KSCS90Ma}SN_1Yh?Y_(C6 z?&|V+gZymis6Of8_!c^mx++6q;VmH5-Kkl7g}9;9 zB=iX^CppzSkKRq+WW{6GTL6->pGMc3D_bzYONm7q`Ev zptHJ%gWac~B;DN!48dfqpe+F91`}36R?-`**MlVl;>whi(Oc6I;Sqb=+xzUjmWzKp z$}CDbOg1PhtEFb%FHj?zbuL@GQ!dxe&z;BBo2RNZVq@-ZjQm67YFqac!}6*ZD)E%0 z3HqrM2W@-HNN{L`$j8~GQXo%lopbB=-S+p%8Q%|hL`FskzCXo4N{0sb?MubRN8=6; zt|K$wgTEdg8W5f47-2Cmbf2=V>E22T#F)4A=DFi8AV7x`rtv1IwG@Zt&a_4W8kF2f z2MzTXahW0(X7R3WR77Ks61Bd-hwlf;t|z~Uvc%e4H}P<~PPEnqh5htmUFWp9`)Mp^ zM*d0nBYs~ubMdj|q_OUJo}w0>5`K=e$(p7*!yiZ7I9`^qk6&O#*E7+QqvMKbq2ED8 zUZ9}tV*Ci<;E=`9K|HrEz7LCe8_3*5{7Z{a5h|j;@y6ZPJT2wq%;vU~$G0{HsM8#S zNC+G@dsik25rGH~_k2m)7ZKT^dNxLsNO(ABLY2PJKKJEkrm*^I`&Dwf6U_Q&rJ9_{ zdFs{TbjClj?bb^FuFtGmP9x9VgoX8-MfIGUPl!01L_{2`nQV#Kch79nJs4MVd!-uP zPs)<^&1{p$4{fS1AE(wO0s9>rM}GdSb2E7IRI;O^t>T5r?c2zAj}K%eilAs1|0Oq? z5J~KFi-spDv#=$|_ks^7$nUh&y3TIO`X&$iT~44_OHR9X=6hJ#XVx4>=}*pg`J9UT zG;i%Q1!Nr^N9{loakjpLIx;=BH* zrxQAq*7lqGl{o|+r~7&K!nf?Hxh?}BK(Z+CN#atnXr9wgE{6xMdwvTyU}5WSY}D5` z{Z&~VG~#gj0b^^rKC#%@+)hE^rE85x>y^i^OTwB+#@m7Zv@~=x4r^>K&Q#poG}b%C z?d{N{bK@QnAM_~7T|VG?UZzNeybsw~>z;3sUKqVo`H8gkV`L1i+INa?Jfi$g%jm97 zn=KRP=cD0+b*IicT^!H&YO>Q&k%iQ>wn9$i)mOhT(#wmF!jaO6!!~#GTrb|7FKjZcQ+8>sHlqL zfeg4YmdlI0uzHPrqOo*o^|Ks+=@v|47GQ$Nv7F{yvAY}e34A~My+4gx9rb5XpQSHZ zvT8$8RT2kcd^VLKo?ptj*x@VZbIl10LgGTIzdLJ`A zXm>pdbnC}P3RQEVgJ1XjQrP>7C^ph8@SdsTeC>q95 z|KEnj#=WE;-jm&Kv(*SMeI^_TgR)$qur}rR|` zU)+ihn&Cwzb6gyE@yO|@s2;PG_KibtDg5>T0i-UnSfjJBb>FtxL%&Ogg=enIQW4K1 z{V?p(^mKNWb=M5*BD{z7@-o2Y{UuA6{RQgC0nx(?sSo$ozJZ~UsZS<6Yk+jVQi-a$ zqoE+>k70`{aMwqf@5K8a&dGV*spx=^`{x7O#KX^Oi^j_BLuhr%Y+jKGRX2^KB_<$tKovwJ9NiLTYFloBa$OJHaY|w ziK|-b$SjDuhck3GF1N`!ggKsB7Mqfn{*dJ8-1^<*AHS&ST92MOS{8v1^!tMs-D3WG zyStm}<^J?c#qySG`M4*0Z%uW*vrATM@978n=yU1)z7a{6iMpvfDhskG`(1lF7@8E7E`C`hbB943NnzR2GroQ`SSzm!Jp9#`=R9)18lSNO3pkS4 z9c0|p6lcSyzN;rlM&cR*#7X5t#Te(d$2}hFCJAI4^G-B}o_A*9cH~WTBa6u!NNgZU zHOYOw=@Mget*Kfn?1dM?>e<R2id^$xOcY!)oN*v^L<>33k+1g*7 z8aFh=`{vEF0~QNubZKtHdH!X$Z=ai{gQXEh`HVsFojur@;%W&oXyd=i_qo6j@4;pPbY`7Qbv? z9sRWK{BB=dbos~w?dFyLaqPJS@{W}bTAU>@H;Z#yXw5Gy&|NP=Le?jO2;Wt>RJzz! zhU{3*i6xv*8BC35mjRP(6XqC$yW=eNs2|Yao9=9vl(cW&5mP*NcF0Z6mVmfmPUe&JD1Lt{0+IXg|v8Q9cyl&V+8+ZRn zuOg6weX=<#2V2Ln^!r;=lB#lr>}t`34?{C9r-HudUU{5SVb3nl6d72DYcC!xGlN%1-P+1gNkOHptqsIOQMggqOnFAY*<0%V zEnk1yoZK6pAKcDt>e^dYB~|B%Ci_#r%*iGSB?4eFV`Fz4M{68zO4|g=N_My&9e3t;L@CjjUiZBEu#Ki|Wl5nIAlT&tDYrg&`zJ1^kXcD(1u zjj|7iKtEI)0w{+NFvU$QnHayxPswMbr_Rj%t~)*O_EU~zbG(Ki%dvFpD{<6#9&3x( zr$SQG9=o{dC%d`xY7F{K;@n%bC8Q;LHdZ%ZYNN|LsCE zznS1~`_*d}uob-Y&${|AC;b1Z=Uo;{5p}6nl(B<8p<%^&{&nnkb3s!i$Ciqc;=sZo z1p)gGN1QsUe%A*tR0^?<15#aPlXfsZ^9p_*jaePP`bSUwk8QDO0$CSZz?ecm+N874 zql7<((>;3q;jP}@9Bt7{Rqpy~hKpZwRH8N~hu-43z3i1LsZfwG8t!H_Zrjb3Cb7q8 zb~HXRU>Y`IdrGyP|MxV&T&uuxSf~a3RBgxYdk9$0M~N%})d!|N zVKR;?r(xc#i(Lp%=N_Br@pt9V zWN+|LiE;O6;f`_rLsmxiveMi~NIB#Az+mt9wr~zIMp|{ky1vA<`I3@%3rr8WnS z^&TOLQZ~hLrQzW}-iMj3QhYRusg1DUbLILqeg`on#2_IdNgA$Q3FqY*kNQB`C)7fh zlletl9L3WjCI(Hpz;rKJ<88A8_o|&^nxHtBqWg{2{zm#Umzf_YUTS3fIv>H83K(K} zfL^iH`+#ro-CQcjcNE>FW@&KnQJ!o6@nIDHT+2l39GkdRI4f&NN2D~-V1S2Yj*c?S zl&CZ{=U2~v`MJGa)G=9&LC9e^^bp@K;_8pr&bOk0;asIhZw=X;rBaGGyYHju#+~gB z`v(T8RpplF2e#>5RGL@&2E_XYOhIEpbUQ;0F{O+Wt>>W$?Kda&B95q8lN^N)RC8no_b| z+14_?LiO~xwk4xkR6Mhg6_1Kh9L?-k6B@twygc#p@0efe7zv5|?XNH=0N`JeLh<}d zhJ_&(pj=cGTj*-IlOc;(&8-dHOqgKEkWnllnyax>)Bb~oe35#!!fWxdX7T5xVtQJw z`;=yEtAsd13`^GRdx93TCAW~xCr?n8A; z(L6e(%;OHjh=}>gD6_l70!D4clfQ%xDUxF^q}>IU377e#k?(A+r~llJxR~f6VM%mE zC^=y~COTR=4i}g3HgZ<$W+WPkdf7M(zDf z4YzI#I&fI}Pbk-GyW?(piZK_#Tqlei42{@{BR6?$<9{Xtvq86JP)bX#mT`Yxh@#wc zp3jXR1=0NkLw^$x5?)WQq}CYYVpRR6p?V9MqcoDj_sfmo*bBwyu^yGt82aheq|6y>D!A!<6&K-A@ZP11YL72+QC45V(D_ zqmb3ARc>nT)?HYEVU#t8ei(mnoE`GRS@6}2N%-k3nTN%Mc84yT;|D4A%IxL0#)fpU zVkWMa;THA{mz|)44E7{I^&u8v)Rto+U0Hne1b4HCr_%Q7ln|~D@~Fr-QPmq zPjND`g9-5-dF67UF0L)W$!0L)i#ITw&p=CKlJpYU{w6qM{_BVG@QLV3<7jyJg6H25 zf|?-B(`6XZxuYHK?CmsZ)sj;`er|cl#WCDx8jJ`E#upn6ccu-bb3BWN1e3M3>vTER zo&He-{|LLH!RhaxY7XkCa*RsW?Oy8Qyh~hTzh5|_W8CVI47 zrAb=H$4WZ=F=Sod!+he&Q=4>ywEQS;cMJZ#k1|IC!!6x5fSC zm8FBbdpB#hQw;L+YWBlrtv|}_)Y;L)_y}=q@c1!Ebxq7o9}=>$7Bntph1@HK;y5*1Nws=q%>VL+}qc`lpiks~iDDb-_RLgNgd zJdK@Dd7)h1W^penl$M6^a^-x+&Z~2@u*jHmiu1)0fpo$G5eysrPo0<3Ha8guinnH9 z@S;&Vl~Y+_yZ2`F_)p_BDjMd-jAi@U5UvRO*s(3A<%Mm(_eU`-&d%79&E6zRUT$NF zFgKH;sHm9G{@Cwl5JbY|x;QuTmnjNBl`f~N%7W^qE6o%3IifaiOglZg+@JgOts{y= zv?UJf$BTZZ={lT0^Tf6%3eVrJ%#W%b>T6b7))yAa9oGKz~GI!gOKf7`wh2 zmT-7_03*zN(n(Us#a%yt6{>tq^UZ6wef_I!&)?Q;Db;`1t)C5Eu2X@GnOWYD9@egO zyy`AWA#}8eii`@gOo)r3TF$s(EMc3*$#b3@8me@5h(;n9>BL!>S-NjCt98i8Ku9XbC!Ye|su9v$Whp{1*e! zmc-xEs1%ZW{yn{1#xt=#H#u~jx5J4I3#$jFUldweIM>~1tgX@K6Sk(~q@HU2&sl(a zG(2HN+>;IZPPD^Smo4#^=ufYCCX`1;W}DLerDtN$Qr8ZNiAYON-6uPjSHV1> z~-Au!I}#?**gbeiQQX= zidtLcNPv%9O8RUThMq{PxMYTbAq>biwCmO_d-4KyvvTu+4pEs;%QlU3Y+D}-Ry*wO z?Aj#IT%losZ{{#07Znm7H@|*B*M1gM8MNF_vXt~R#_TVTyBJ^5$8HhT$f$h zPefdo`Q-~D=yBe`hJtcgSl`qAfd9^D6&qrwq!J`9V6iXFI3rFcl8&47v<&RMeSemhQyim0f^Q%K0@_Z5 zCZWGtj-2xRfgom5s|~+aYNMmQPk?Qb^xKjJPFak|Qy81?gKT5&bN?~Y|8%`^nhg~0 z#~{)%MV6UbN#_U}kQwQ@FR4J!Efct{Q&KWAkb#4B9dWIx0Z%?4@Riodo-TtRX<|&M z0uaJ2-r!$zdhBUEX>_gayGVFs)OF7{D)FLEH+9Nv8vju6G+sSh$u4o*nL}}NE?K5v zq&?kfn-`6?O~^XO5{c)f2`-E0wI@ff{PamSp+%?GZ=6z7NK2zprl5|M7R@maow4VkauL z^_h)1dzBTHLZhgr5~z<=bE%n_b`6cJ2=MUwJ?%V#LqZ>!=nrJFuiWMjsOs{W3#B9y zTv#2L@<_y)T^<=)5$fj#yuM?s<9u+K_aiei_1gpSxM!{pT=KXi|NKtK_*}eumP}s! zuD6U%ZFc@bg)=idD=RxI?d)4sv5oc{GNiX_)Br10)_K|o3za9)MIhSW4r~rerh6vh zx2vw*fh{ldPs26Jsi2MnGC!_@0Rq)N(i2qcoz$Mb7Q;Z{w>*AETTd&>~wFSl-2=Ihk= z57~qDiG?MLC6+O~psB8`tfWXm2}4+Ljya)ChOxxb?Zhs)9nbRgn;di!g6A)#QF5p} zn!@b0!NpnfY_syW*$C*})xxdcLuQGzv>?C}HRM_&HIi%;8y5n4Da@tt>9!itp58p! z;=L!r&Aoe_A7%^@Mbr}NLf4R2E3*2!rJVRVMz_ATW|3a`Ozw?5C z+e75b*Dnw3Hk{|$l~{$n+?)BMHpiQiRTYVeQNHUi&1abnn`UQ^Vm**+(VcYPrv~%C zbC?0qH8(BZs*#=c`4!(0ss7;Td_wTKqKJs7L}{i%e>Br99_wUW}vupxKv(cx}aN_y1pP>FC? z#xZq;Y8-#Kyb0~}F(o-UE&Vxw&F^8SPoE^NESf1@9=rA985*vZ_2|^OhDFUx-s~@i zVIULcWgYNTM~`kc52s7B5?MSvnCZ&8*7ym!sn;3LY}WUff8+Jp>__BYE0B+MZgkwb z_-qA-!vX?Ii^i-L-ogr5zo`j$2wVReHXY!NP9%6a?uN zS`zfX2bc#sU6E~iP6>QX21O)IzXkjQN&0(|Kix-pym9as4zc9r?vtpgZ%tMU{D)z2u4jGv_I&}AKBhLqJf9*(ZeFX6lhRQ1-;p*WneySYZWrMC zs_NPT<{La$Otu(bV80en2k;9?u}vJhS*I6Fd}SnP8R+USR*D+Ge=s;Y5)paw>Ka1C zI#6&D& zH~a73zwi&Zx_hgTgB`^atUB=m?Xp5ky6O-9;i+Gf8iwbozR@ecpWOSsZ-+eFG6`3d zvjTQQ>{T?sPiWKQmHOjBrTy+8yN>hGw}l1XAVEhWV72y!hTY9fm#-4GR_wr30m9AGBf4vA8p;#ke zR>SKt-8NoTDe%v$j;3BT(63$m-FEu!K?yI$!{2pkAj$+*Wy(1Swr&_LFGYq& zFwE3)W_17o!i>`5eVFc4tJ#KX*WM?a<(ssG}Ey(MW4IGM~U?t2M|(_KN++wE$Mr^EO6=!I`F#Z#ZMGx8HzFE>T5rN zl+m}(%J)_6w{pH#KBxNYvelT(o8 zWTEMdyCL1*>jDDC6&9DKm?)lmQuZT*lQp_^UH)pr`K+H0w`7|$T1LkLNZuK9+gCNT z_GSC}(rIdqvcf1G5BFYXX0}B>?jgnL!3H`4aIrp= zf)-x_e9zFnEDL6>`>Y(B>0=^7Qu`gWifS~gGB(AaYj^uu_AxBqym&#OHC2atiuBe; zSsU83M;Gt*OjV=vRa6vO{;h7%iRIT*R2+JTX31;s+!x-4Jf@|0HJ?fNr|~gJPUn=G zFO}#J-HPh!<+d;huUws47cq~N2LeBB>W^-M&(t6<4+l;_A)WG!hY?@)l5)4}_2V|? zYq5v(7EF71{^No%>ylz41(NO&Sw?0R2fy1St7}%iu1iPuYe|;CwD5Mv)y(Y-E-s9X znfk5cuWrrK4|+4OqQ@pv-`FmP#AY1*s8)HcWCHd}x7*1y-X?t0daU)~^TV)d7l(c9PQa-~Q@l?5?2egJ)Au|61s}sHAqC z?~`|ZEDIxnAcWMMwK~=+&lgHtK6fm%V>rDs=&e@Jlv!i zNjSIw5(#A>JytsIb&D>2G*244i}Y!uz`h#W-zK0Q2%$j1z-Fxr=kDPbJ731M|D>xRQvkP|8*`} zDDQvkVPlENZ)lqOo1!c=NwD1kQPvI^ww# z;EI%4-u&-vU%NNX&v;I3=e@!Eg9@_EhGU}t<Ev>FV;r+$R6}_3Kz9e4~_V z7krhKm8{0yHxSA&8X6ikZEYEqv#}CmN=nL^sEutnelS@%5Q(>Fb+D#nY`jdVQu}`A z*XZcCCO!MDX)QT9c!iH(8RZJWP|;?6Zf52;7DL~pq(2{TqB|d~rDbNS%E{d$ARxfT zwm#W4Bqb$fW-dC+rx4Qo==jH~;iyTx9?pztZo6Hqo$M{IuCChH*mRl0SzBRYFHg_s zW;WHf%Yg|A(~hsbVw01T+dDc?JlhPWs~u$(6hiaM)6~L{$QCeC$A|zyWs`^Ma@Aj#ZJh7;V$fuAHc~Mc(FtdUFet&;| zS~|K)O*-#!5uYlKt48+jnfeTB z2{pBo(IS0XTG~&aK2=yuv9Pj+MMgSUSy9u_BvG$TRXci|@A%~YyVe7Vd8vKXD=gwY zJw0JD^DRMiw6sRuaarmAE{B~t5#QwO?Chn^=oEN)ULMHFOHuYe^!%Khj-B6_K~TrU z#C-Vh0T-r_PY>3H%%*Fc*4EY{BO^mXLL3|%`uqF;jud22)AIAzYE)PN(!%Q>K79D% z#fvA#OiWDt{QPQaYL1SMzRBko7lsA~gF{0{5G4D*!|Z0mg(?%n!-tm_XSg5?MAcPQ zUr9>F#>5yI8p`A1k&;^K=@siXT+`ChvbR52?nx{e5#-~W{PpW&GBp)dMgS3~y1KfA zq-0M#Z$;mmKtfidt{C=<(}S?^@EWT>zdmCU+1cAy+pUI%g$*o_DdOTidi2i7i1O*v z#m&v>4B5os;CsHwT(T{bmA0~RTrcDYJEEBE?d|Kch-UHHiHVcqC+bmegtf7;uw)k$ zSiXrJA0OAQb!Lv1${)Iubl8tAK~EPhu8S)*8_~^ z{ndeye684sh^Cg7iZ_j)A#Oi^K8K}*hlk513P4=)REuCOyu8)0mdL0mF)=apTesNQ z*q%MWu(sYAA6NHHrl+S@&Qn)XQE}W`l78``0Rj$zlZxfYOHF;k!lED}6IlB&E{*j8 zhQ9v1u+QC)N2zIP(NgIZ6&2sUsX|U`X~n}%r==N+h%}{$1>xf1(fC$DP`-bkO_Pj* ztvcMClGN)R%2AmZ8^a?YsCT~r?RwZ9&x9H;Z1s#KYq}wmwvgpcbAxFVQEQJKD?@` z%F9bwNeRBD;P~Xk&(Cj+6AB=PSzlCGxG_sH1Nk{Klh~v;Ha<=w=w8z%9O&!YKRhfW zEuEK}TUt@Eytv4~z+k>>x4${X%g7j*oQY1rC>6uD8e4^;oiy2pJzjZX_PjHJ|7SLiwXr(@n!jcaqZ5 z8%=%$6r%oCwzg)tLHFa*KsSyxG<=wTuBpifl{8jtXf~WnMgtiHWwZW?QKS6bFYnt1 z=5OAR-99xmG;CX87m-)Ykm0vmx#!mu8W~Bc-wer3NJwaRcWb)#?_?#bi2UAC*F=di z))*ZnrKp&gPjaS+AHH-vPsEdasJxCyhIOB3`py3EDS*k_J3DC^8H%_{ii#ApwC%dj zR?OSm+kZDTiT4Qz2nc`1AX|m|-99?9+zs}@BwE_okXE?7JhR+Q`?zN}I6N%z>Q!)Y zB)wX(<%~eLsKx)pSa{MyOn1&`xEQn-%ZwcrAegA*}fV|d2sLQ9T z3-`FNprB6rQpARbho2PH)J*>Vo!T}K5*++JBSWk`xratb`t24If-53lS62u1_HMBm zAnEAn=ql^rPt4u^%S?7YKE5Anj}9?6kB1%Z-oCv$UCXOhXFV?pNs^Y9hKYdzU?CzK zKu1meO~9=R3Lj8CAOQ2kDL(c3Px$85N%;B3`ue)M+J51iMvIv`Y5Bpmp&Xr>_b=qb zOG-)#3br_hNYC&bUCnq0C>o%zySln!Vq)To0PZm{6%-e!_$KFD#Tg?HLt!B#Zd{LlpV&*w~3AVIOK=8!Ia=k4wI>y28TkgTEut!aVktFh%5> znws=m0x$M@1XnR)>8JYpL+$u{li};);^L@%LqkGNj&~?TK<&TrLd7IE1N`?`XvGGq zKt}e$@hqO#u^Y;;CxJgdKmSQuRaK1LEQBn0=M18Mur-rdI}VwtU16c+=Ejfo9=UbJ zaoa-P(&I})|0bzXQBZ)Eo`UtELHCQVFJ$ogRCQEBl+E1luaMd$oX3D}1dN)mA_0F$ z1YBRq4?+gFzI)Uy%t%jFLX#AFfL$1pY%3%BLH0^74JVS(Y~ndsCnZffEP&(9wm9H2bc(YZ?WxTIlV=<4h&EiILL^$O4>n#Z2j zt3j6~8h8P}^ZxgoK7&<2EO&Qz$QCB;8lab|B}QEn6_!t*JZZI6PZ0Ew5uEw=BOk}D zX}CYgEC3>Qc6QjoiF%K#Y^9w21K79v#E1wb1qBxSwZRhOo??|yfuEu@=jZ2ew<`IX zZ;Di*G?J2%fHrn^cmE?H5fL{%kG5vu)}dt$_yotqfImz_Pv0rPczJ$e+s$kfDkP6f zh)(s@;5=b37{K=CjT;uzHEp`j?vn65z{NGt)9YVY{qprIS&+1pq@<#f5_G{U8h+G^ zQ=XUSU5$;x7m-1~$4gBVT~tuW_W9@L<{%26u}B%Isey+8brfG}0@Ud4>+9?2kOa0O zAz=y)XnJ}YK$*f!H;eT3mC)3jgv|sCJCae$)Yy0gNDoxU*u+Fwi;v^qVe|e}ai~JG zk^IH^`GLVfJ1Z+y;FGN(6jZVa^iQ5VVPdj0GBPqX<*}URJB(qYB}Vx8`B_<6f#OU} zPIkv}>l+zG1_%En84o>pv&!tri&p)Ks} zaKp^NAQgzF%aH}r+tUT`my?d|Q6@;bbOezCv{zrj>3(5{W)BQ7c`dUDy^MzumW?t&yF zQ@8i@1WmF}KDc)2n7@llFNccO+>M@Ki4} zEcd_K??2gyiM?IE%Y4ai&>9R|Qf4y`c-C7XalW?QT&HvEQuV`V7W{%SElvE@tIk+X zS!HDh*gwnZnl~)bupC%G0LO4|?|0*_uYP`{0T#7TR!-FF`?x9Omi< z1_rLKHRa{y$;o#6?{MlzhF~<;`t#*$M}<`>DI-4;1|?^+%~`{eeM!FgX997Ei5dA z?gPC#JKNO4!XkwM`fs(vhQ!tC!h*ruw=1iwZEC#$q0m1|ii?4pLa(KOi=2E#Ox%im zPZ`BCC}@i}2-6+`oMAQUyoHW#w&h#;0qPBeMmd-$iZ(XI>FGug2Dv6}ZgbI|R8!fa@TaOfHu0t^mLm%WumMMW*psqgOY#)s8z zRecZ4NpW?6tOsd$urcvZRZCk0hlc7|Sdb7Bwly|3E>>Oeaa~@ZH-sHb+{eQMDNz4@ zM-NnLeZ3&zz(Zb#br4WqUS5CK)(~1YUKFLJ+W&JF0PQ;3-FKzZ=H?qc zyxQRK2x^FZtw(tduY*SUcQ{W2U>+156eP-HLBT7aWI4)tyW87V@HVk!1$qo{J=U1;@6AD zx$9`>?XdZLeufS7w};0S{KOb;cmamUH*TD(cx?r;rh)$;oxm3z`!qc@HCMgNm)`Ho z7l>~k4PZJ&kL<+@vA{=P{r%5(TyLEhT_f|Bi@kOCuEiGZcZXr@`K=kWs0`c+D;G1U z9iStXYS9n{5izl_MbL%-Mm%YdQ}E|vhn$>(qN}URgYVx#(o9TlUS0qg7bhn$B;~3b zj;k*sA|vnIzOAIJe9hC#t8uo$3*~!xx$>)5)R5E6%zdz(01=~wZvY&Sdk-I)zI#Vc zMwXP4Vmsd)AX*7v4Q*3LRJ3_=l21T@1i6oclb4q_QlJCb>;aP?=L1v7^g6e*ZrGQ` z&zJ@U;2~gBh(3$%1O=Lznfcblq^~D>=ip#tI4}0&$6w!=^#$C|Zy`{6(6OM8D#^)l zz2Bbo#iIk&k9PObs|2gbGP4nAax~P`{|upta`Pu)P;DTN;hE8~v8La@aR~@y<9XOA zDL-RW1wCLU7ZgmCaRT}ewhrRiq-Q=__yRr|nj$mXrd_uxi6%@#UyL5DPRPrMLT&;j_YHI%~9Uz4v@mlDcmXm+`)XTKdn2S5#;ZR|kA*s%42V zj!$o8Wd*-8myBXG?n%fiC^*{LSsl(Ja`_BIiid|MLnhwz?OR~OHJ?ADdNn}u-owF} zC^IAQYS=zJ+=Re8Ii2_sFhT1bF3^#6cm!x8A`cpL0n-FS&0yx|&!3bPSI0XkAnAaGfYJvV3Z|h3 z*G;<#n@Y~hWnK@oo$9i^Er*(on-hd?5j8b@w;R3T`t-?heY8RM8IMp;rPZHnh-Q`D zSAKa}*#d}d-q_UWC>J+(Wt$RYm1?npIMM4JAA4_yrNiSRsBI^8OhmnYr+|x3T$YBC zskWoD6C^EMGBPrhSQi1lzF-Lv@jI7(`O+H6prNUyg)-X~Mg@z8Z9;li0vx}7{faBn zmB1ex6l4j^4;Bi{0(neLy#i;_9zV7M)8naRB<$aVhY$OE4B)}aSP2#UXwuaQ{+EJ+ z0;pFM6ciw1@HeCJMCl(>g0>J2# zMyL=lwaiRR7}QH!M@Be#d3m2cHS9|k0W5+Az`gwW^C!=Q6f6s97C=!z#}ud*{TdmG zN)00BRo2$70}lW|8!{%Wrp6VdEaXj9m9v^!bbdY~0>K5WWvjdZ(@9E7ik^YtMay`UTc{g<*!!KDMWQqC_mSgwARs6td+ zRAdrm)93iOp6dE@s4i$U>C&-AJqc5F@sZ#Ki(dJlBe015tF6pDE8a^=;nchvGrKnz zqw4qrZ+OVd%P%c0K|kM@+_JH?WoKh+< zS@4}g7l&((q7tN3%3VHx` z%4j=-=Z;NGY;I@>F8nLBc+eOwhwK0Be|RVO4^VwrkGOiNg(0{sVsWiqU9fc2@~8z6 zeP6q`;p+{^*xAcmjyAz>iAzk>fxCA344*=e@Aq;7&h~E-tGz!v%mbK#Y5;24PXJ;I z>Km%!uzyt_1xfIz_o4yg4Sa22wV)EAWH>D*e}MJ`j9lq4 z3pP9_#J<*jmFazEUTa$$gI3i(+z3P*D2}b2-9G3N6_x*^x-b8Sa{v3E7G)_pLPwM( z6&pI7Ic&;7U` z=ko`Azw^Uc3^UhU*Zci?J-632vC+{0T-hZha|Jf_4h|0g=7MG?Pqsc-!pBR7_yRyV z@R}+5goTBoT>~#ZEtWBKM<7?=SKyv9GWoEE#tZD9(WVqE+C+uR3!H&#G)Ct<0Nx=w zviqR?JS{HvgtGlxPfOeFwG0el8@Snj{Z(sac4j7xPkm%?&>cruT3U*Iy?)d7go9Up zv}Wo7>OgeV!TJW4^~rI8oD5obhxY(fv1hrtUk3(SPF1&@IkVLLXjH%mduYdwG-yo^ z=~!3TB`9Od3(I*Gigz5pn9|oP2dgqZT+OtY#mJy>NYg>H%(SRILom6h=xBH8 z6YKGw0k>cBKP09KUd}6jFM7lDTO0W*%bsT}dnCj-*$lYMLPAsd8+ZTA_A^br(fV_^=6tUv1RiGpJCvQ|SND=Rx7D0p?d#9>D5 zH3I`fzG?QQ!8bV1U+~Llm5>s^(_HF(+hJqm<>dH-P~w^8r6pcoUU}XIqI^7jcsDwF z)LKj1(Q&>=cxrC$&W#&@KToo<&>A);rpI1}I)hdRg$kwS_l^k^e^fZAZIm2eTnO;B zQe5J5=gxV1&r|5jE(Zdydi97si2-HXrs(<2TS*!E$`UPppWRW4qT7%bYnVH==b(!V z74>1PH8V3keZQ=%f}*0%z=Z?YJ6Oo`?bdCwd^0 z08SFl3nYDyvWe0rfDz!HYH0KCY$2VWfbPuJ@po5Adq zll1QRf$QJCb7#}WjZh~l+(&c`4GqD1Vfw)!Tma%kAF;6LLd|Lk>m^@~cxRiWaM=OB zp|srv>lpf0^xj{e<5UoD+t6?k#|UsmU?;sKbQPuLuh=f=*myN)CdCeISzteNFs9JG z?(RA+EhiT^HBbd*tkX>rMd9n$ua6!*LMi_~GjsCf$%x;6`|ak<{uvr{33w2#ZEcr5 zJtZV1V;^-`6%UnDD|uub46(q_hAJv5dSzuL#0{(`E4 zNJQY9TiobSUxoq zKvEv-KeZnWb7{#BGzLH&?io-3&(^KFkCe)wlO~#g!?Uom!eRT+)^_jh&>)qXl#uXt za0*4I)be7)5oK90e^5Ng=D?C0H~z*&Ew;ceH?j7&0nBtj?2~Zqq~BDf&+mqU4;1YNEge^78Ux zbp!5xcoSL)^R=PjwnV?HJo@brl3wu?mW;=JtMuJOe7-B_O4FIn=_bhM!!QU>UAsCs zEUX$xMq!!#$B!RCmXousdw5?}7#Jj43v(1-(i`J;>O8{F_V$5H#Mj91miwL!wYAOo zsNy9B1qA#tu(z{|jfxVmicU&Wfz%EZq+Ls_X6SBL{$$#`i&x1zvPVKhq<_krLlYVX zZD9ehWMz<#J_^4TRYW*^D?|`CH)%}+lwI`D=Y@qlau*X)QqJH6RZ~kIKYmkJ=P=n> zBxzjkfF}VK7eRkBqx1dPmjLByM zwDQq+0QnY?{j07HlM=b z*F*};K7zEjRr-O*@z;q+MHT9p9h5ewUHpScZ8R_(iX zHa5*XD6iNbxcn7(^0% zV^8tuc*+Egj*dcK!;w4yh+9~I{He1^FLuSE{)ed9>fqCmAR$m*12XqgajZV zyLS(4oSc^Mw}5wOHn72CYs()i+^1t#?3I;0RpelVg^yAO!SCtQG1OGya9~Ho1&EKL z%KzlqGeYf$>ofGSWS9aY4FW$j6%;us&k0jha|1(kRVeeq;dSrc$w*6gR{ASy8bAi4 z!?h6!2fZPCPYG%o%$`33WR;=U78L;Ntqr0ejFnJwwd%!zDzPHqPO z(-CYQv>FR56@lHm!`KQy{qs#<*uL9ZTQoE-P4`*#Dkfz_Yq}Q}gs-o!sBw0(@X=^G zcKfOPvp{lqRBcjO;%C1p98Pxazlu+O^JXn&<$IoF<^0u0^hH2jS2wpW5NUB%p|*(N zI=nyB%o%xvd+U>vs5tt#_R`gr=?S!{-N{ZpALQchP|*IyoKe8B`hBlpL86P@_BExKxdAH9AHFXVBpvxGnWX82!=avKpS{oRMcJOzI&Ns zWo&#O*RiPRGA^7XWeFc-@HxK8$#XwoB~2dza*Sadx5R9J;oyITTtN_(s}_+{*o>pBHd*poN)PGv(w- zj_-Ma%Z|0tJ7<+q3JdN<@dcuyCP*a6Upfn|0!$H^g3)LYEnksqTvJ}qO(B)-jK!%w ziuQ%N|NectJ2S8W6_s0&C-RFLaVeYJ<5D(E-kREdZ2oIGwbWALV0GpB3bQD!5Rr_2 zXa8%o2Te17Pyp_bz=EG5LZKZpU#= ze0unW102@nid*lePfI|>Ks?x(l>y7-*=$ANwK7yA?EU(>I>3A19}^-z<3I*iy5=L{ z@?)$4dMbhj4pe7?qBW4zQ7&bLVr% zb_w4Y#xYY$L2>c@W4cFmw6%%%>M~wqzn2og;yhszfW1Ai^rm%N z5(_nR%&l}%LQ8UzPTSc*;9V@{Sxd5CUz{r1bOAJ7CEOLznOzN@1~@RM)fVqfaMw_$ z`DWR}CwXSyMgu{iOh6*b+_Am(`FQlsyXVIbH)iVQ@#5^q+`n(@S-jnNb6 z)9b6H@8OSJ?Wx+0T)l6kp1BvrZLb{n>HWFEp`eY8DQ^)o{oS=+4X~<~JKbbWWN*;) z;=TP`5t@x(v>KBllaeIkSv>$Yjd5%xfG<=1TB$YQlMCo<3 zIsUnb+|qVrDs+{-_-FU|CV%x{uP;<89~ajy_M2Ef(AuFYXXfQ4B_>)K8Va#7rYFg# zk2uEqH(ake3-#i4b#-Bf)Al>#Qd(9dDTGU zP)9F{d70ZVT4~_ISSB(~c;J6b3=I)Ysc3f~6%;O_!E~e{vSgBN+T7F>85@fP%Dvdw zxrWZl9QR`W^7~hv4)&G>tR|`2jVVl(NMGqXYC@HvYrDG_qA?~Wc0*l}up$dByUPlk zpB}2^k#&M=ikHIUbiS#R?86@AO9N{wQt;c4A0KvE&%m&}FrGK7Bl|EXBSXgNBV31Y zt}QaMvX2|na&u9`B;vEmvaPIUu6bWy#FbhQ_v54*1PW2@IhM!`3Q@o%tzHpwmHgf%IcDYh0dt zdscMK8suB^9%p7M0?;TZ^pv@eAYujU%yH3ywByL_1oS>Y!*mv##d{OMI7UQXpe3O` z0+r9e`LlDjm`o@*-+m%8XGF1Gk3<^X&#c>Alks<-1wC2tN%JhnMSk{7w4ws)2`JD} zN*CUBW~8yT3z;31TrflN1}Q-E1)p6YYOUBNW0TlfkTTI}%zWw4E?L9W^%%w37;!}D zcrC67YdlCH@Bg_o=56*(2&*o_3Jwr`0;bp>2z!Kw3aTM zDK0K9@%t8fdV0v!WxCt)vf8~2T7@UYxau1l3B8iCG#vpgA0!U_RbRgeP?1ppRu7?h zQYaMY3Ao2ht7y3AlK2a&k;)8Nm|RNeTdZ*m{6HNc0t7ilS}WZ&p5? zcXb`#j#<&+7!(@r99GhvU+q=!ootQpc}Vjd*PiAK`}ZO z=_v#b93o!v@bDBpe~$e+8jE!Y%nanup~)2bC#pLL*1*8oG4%j^3U2)T(~d>nFKCn^=~{!3}SG4p-uUFLvcU&Fm56r&u!YU0c7IX z@#DZtxKq%913u7pW`oguGDf6~)vPLKM45~n?TpH;HKUwIjGh@kefA9SXivKGxBQnB zeOqC5#U1qJ=9-$CDd@lXTji)nkG5~y_HNki0Pk)1&dB04s?cF-^02WromC?#Nbd^4{kiR6 z>j0}_oj_RD*4B1;7Nh|;&djU>kQg1o59}Lk0-F{4DS$Q{J6jM4^bD}QS4L)dh6X=4 zBbM~Gt}c3MwJRtR)?>%Hi12VY8F^`G>IUzV4_zA_UVyUosk_@^{{@Q|?RPjyr038m zWgk{tXx#-!d|5GNAR;0c^3QK7K5V zWrQn)>j*~T4;ONl_l?UlP5~iB#l^x#<$co9f+5h)iXpUP)q#8CfhC3=fraehs<%>Z zOhb)9omAg~#1NE?kDZ-$+a1rHD})XKp$*y}kmLZsct|7w?T@P7xa@VLPF;RBEkWw% z&$hv;NP3NojO<>r{!LmV=Yqp=cgNS#=I<&*$UY=PtM+*M;<@)f1gcOsA>+MoX%VC= zUVI2`yBK}ew;UoLLSygVAEX+mowC>kK*7G}8&_f_S1ERx3 zD*|(k;1U-MfzK{}>V-E98Yfwc6;9yZo$(V8R3JXCUAK;14M^O~+B)e0#)L<;C>DPy z1;{CZ9)N}3kx&X)@`heuCU$=!AFE7hI~58Yb{0eFgRgKeus|+&WEm6PA2z|FONfbK`8;1 zEy>SEp6&|nW~8pZ=BL;WQkJnP_TUeIL~t5sfZ2-|bF;HO+}u(}I3KTBfN}$L=WAA8 zth&NO>bwYr8%?qq^}4k+O$T`<2I&y#^ZN$29Sg6weQj|(+#1PS^$l*JbEzM7S&p6f zGXL<=SSpL-V&njVTiQ#B5InX8W@cm{Kx>acV$Z#e?x+pePLd*dNF@pjN4|^FsjsQA zmyw$o90V2GjEum@3}`A^nos|q489L~kb}O(z3($b2ejn`$a>(AUSB_TI54CmOr|68 z{A?97mNZhwAp5xx1woPlLZI|{dU^5fJsSeW_2B#!=syHnZch6mD>#eq5tt^vBcK|l zy2|3jz6IBgbCl&D7OY{f2B(k-f zfzX+RC|_oRGs+P<5qdl|rtmVkcy8k;3HP;lK$OiVOQG>AC0xsp)lFVu(hH%q%oO&1|!pmRb9GV;(Qsfq}% z@C0Q;J4MCP?(C|r-Yq6J!AGAD6C9sC6A~6yVq^FU@?-VwZMfYxE>q*M8~2kqH_RV! zCN)y$eE?o7m!@@aQ=hwccW{@?=xzwKGQRFIlBL?#Y1a1D#Gt96NqO|ZTm9>v#(o>m z*A_=eKj(NN|GL*II;*HKt2-|>IWfimFD8`jF{o#rxLO3hr_N_e|BkDd^zr=;O(HR( zE04qc>#uhLKv}u*%U|aR)R3Yx;W-cHD!aa&<{K98w|!rCRrHl4e{w>TTwIF7WVXZH zGhur>d%js-qTz^Eu48w;z-nV(p!>e+Vy2_x;H!c}2LEf^Ssxm*JSpKb)OhB) z^z*`kTPha@>q@Mg_`TbC3|d3`;dPNniE2~5Bt`+aEEp%*Tj`URxJrTLv&vYsVNRma zWB@0_k6vxCvA3%lp`1K%Lc+T8(+_V2I913PutQkF_kyN}BX2CWF3t z7vtRz5bsyu}W3>vC0nRPq*4}${{C) zM?^THUH6{z_wxhmm=$nfXi`2p9du)l{!@9TF_nV)no|+f;yq*(Aq2_n-$=Y(@(^3#8sa~sj+~jAL$8^fm`KMBFA^6ZFo|a2yGiiaFh4re z3($|qZFAAjpV)7C>)X-ittE zM?V*NUitHnoilDt%^?N_{A+Gt&_6t^c}ELa{y4O?#; zKSf-2_Y4H8l7mRL$#P89g%$f#hc#z^zeernu^eKFTo>tJ3e51eqNRqiekQgp9 z<*G!~qNe6aS(%v-`_5gvnAcuKRfOU<2lvAdCJb!`qI^gs)J1|FvB}8TEUgglOZq0u z9AS;f1*AQ&npu3F6n$?%A1L8VGf8yZ9vVUcTo=^t>OrVdo7MhJdNZFm{JcmWA%70I zAWsK#3%)DLIP5OOrsYILYCn81K7QO87(wU0*xvp7KfxZwbQY7qzuBF!VG(vEiKK8< z(;y~wJlR`}3)@tc`>$1aD`_3^ z_FI)g$V93QE!nEvvq;|A-F*fNl;)?L)M#Dgz$q{UGKraul-`QV<6IS1W@ZP@{J9po zBgQXcVmKCFLcFjrHN{HAtVei{%AP%00ER%28hI%D<*ZY3sB(vZ*-nu? zE?^K1@)StHF~=4^Arn%sPON!?ELM)V_~g`J zHM9prxvnhDUwURjr_dKw9398eS@By7G#aE&Xb4mgD2)Bh58hD$dBnN!L8=HY_$df6 z!0WKk09&1kItzA^zU7}2B@^Fhlz69laCm5lNLXAF7r=aZ8X>gB))$qO(5LGq^&TnV zjkR&te&(}<9pEA|Qc}>g;p_e7ob3uhJkJ5>MqJmz$Os*HAGGN&UmVnG0OHLp$%u(d zNaVhFVR`bTdtHnOC=S{_-hq&TKjP3(1QHR8eEIS;J{$t)&{>5-p!_Kc3Z8|>SkQJ~ z9P!j`)42Ri44_R1y}!ML#@5=pZ|Ba?)F<%Nl9Ty?GZ5znS&)d;p?08N`Kn_gi*0(K ziUpPyS))Lpe{%95h{=W4$5Y-fP(0;iWsg#H?g)rrm=`pry*-l!H3hSIKzUApSFsy- zWV3O7@s3DUq>L9{>{i%*XSc0gxsjFsML(+02C2 zQ|=`xARqv5vnRgltTvyct*tSJ?_A*76v?~8MFck_g4icd60z#YNL9vPBC2M~F|HZH zrkrFAdJds&3)n+UY%FR3M5hD^7?uF0QhWEBm0a9rl{7RogbaHJmY&~@&#Ot-1+b5U za{sSfcO>l3m6a99^!E1lHTCs)M?{$%zkfu|5J!knA5(s|iJppbO^<+oIqbf$4KT+7 z(LGqzweRIBwHuho#0tU0UDu~ieo)-dO^|UH=jT6-eh0vd9RYV7O$6@=`(+PWa#q#@ zB_B6S%LJz)i;7=J^P>i;2KMXG&E9`)9HB3bsDJ=MSAqD3*#qn(gs2cB1%QMCgEf)n zH8|xBJ3YAsMHl(P|0~C50!PkXaCC6^OS^&!jJ12V=a z0AG`UVLl;H? zoX*c~W$w8p?n`pOkwCSNrzYiVu!01C$ zlWG20O=K95*}^=Ap33s;epj${qzO1MJ(hGpSop>}+fCaP-oJdAoSUor!-b>I(N$)G<08QIiuyc&Yda8<|Du>SH*k*NN=kl?f*2Lpzj z8o~z6$CnSp%-J~+^7ZF;JPSfUO{rN=Xdt5-u`$$cOmyJ23JMG16^?Z$BqkzC4h-`v z*`1`%OLVtnGHNiR0IXbS5hx#NERYZ&_My~5AVUSO!v}Jyr0o(A2xgm}=-B6*1UM2M z&5lZeI3I#BtpeVcF6GC^b62dvd}C$gL4U0xQF6%Vm$gRx|tE|(n5mgG81~g8e?gRZhe(cysCr=D^2@D~~ibFto!j^`KMQu(C zqfi1(P2;qL>S}8tZgE4?dlnmcunX~IXk*~X9Unjbx_$c!HIV+W+U3tYN{gcnx?=f5TO z5?`i{!vB&JAr;DPBr(52Cb#+Wf3|GQml;&_kTmmln2!O)VUYbAcL1o>FN4Fp>Yo7#2uy-i4Ugf zkyMqJ4j*O=5M4{W=Hs6qxGDZyf+*e#?OD}`U*i0_H#8jPuU>~3vEqXqUfONj*VI7b z=OaEf4wL4BH$>qM%2Ktg+3+@SHEFtEPFn4o#ZP)E#enBYK@A}zmSBR!4$WG9NnoE; z!+IPPP-yZVgDJsR&nWKj5Y@{Q+S&n7?1f$5FQ+4}El!#eIN&no>xv z!=OqjF%#o@`0jBDR9sB2j>Vz|VJjocB9Pq0a$IV0dV~%6PF$@5=IA?@10++jNXBAh1zu0l5V{`S&5j zADjrujTbuuCYrI8)o}_Gg&|jYkmpq4VAbCtF{7sCn~HT%K(C81YH;MC8?g zHQ-T{x~3q!IC~LpE9wXSGsBt?~0%J@BAYG0~J3MNSZR*o4ch(-h7s3W`9E7|yC~d595b^$ZO&wJ`q2OVR z9BjZd@hPtee@K60llaI;Rxqqvca%yU8$$q|({~XSiItVrQbG>?2e6w5WckpdqVLE# zjzRFZvpcfI*vQBXw{OsOLobb$v_|SkW8p1Gj?e7qFIHiowcz)jP^`h+0Ypm9CxO>{ zR%5CE+-gByXtTIx3oter1waE3ifo#flzr%rn}ujQ9Va{iTZ;iI-VE70G~DiP_;LX& zG`q27v^-qlQx+CH?Cb^b-$CCGii*}_&=a+>rysl(A|uoQzzYxUGiOqe^*X;^O$&=n zRW-=N9N>L=SO=Yr%nBo{Jufc4c&QUu1$j7(_FGCn?s8CcqqB>32Bqh(VyJm!K&`fq3TTT{bM*RcHZ|}!tO@>` z#=v_>oV5$aAvA%gq?fyUnzgd;?2S}m8q;S^QDcq6hv6+;0?0wh z2m7@Vq}1%k;Ae&&vM9QnWTNKB^C$=o*}jc~NA(p`<9;+ZwHgG&Jtsa+0iM*pJNu1^ zbaO-%A}nX~Klb)oFDN0%4)O$e0FMtm906z$Ji_Jx z>qD597*?XnB8rQfYQTzWmIMqRljNDahCcUq4fha|h*7!|2gN>dX_quMgWX;W@wYWK zu3lcT?q%RFy%krGN3aIYhyL{D&2=_uj9TN=u&_jcuj2+2*8>{dkn09ID*65QQqM`; zCEBj-{mKYk20#}PW`KU>BUk|WZ8%s0yh$c*j%H;>I60+?!tk8ri$YG9Jv;|%bx^c zo<@X>ZxpUWF{yv|?l|XFmzMrNc85eluS|crN|p8AycE=^7W6gPu4vD)kn0;N6YXkH4`02<5E0tww<|djed+I3ijKz5SBY;0dcu552TgJvab@v{ zyY^R0e%jqwwmK+W^=IE=+akSYkb*zHg$At885etv+ujbZ{dd3ndHSiNM8Ct@B?+$~ zdLJHdiN^e28X_9>&@198qhOx{alxMJNVK0AXY?5AF;K#7NRoR9u{=nccz--z@)GY% z8a?LS!1+(%`_DoB?6iVl_aM!wKqRhQ5uwq#l911Q=qjwFCv3L}07b}GKil{}nh^1- j{~YK~u=)SR4`_kh4opn}gU5izNF;4dU5#9|(^vlo-D76m literal 0 HcmV?d00001 diff --git a/contributing/detailed_contributing_guide.md b/contributing/detailed_contributing_guide.md index 301c5ef..bca555e 100644 --- a/contributing/detailed_contributing_guide.md +++ b/contributing/detailed_contributing_guide.md @@ -7,15 +7,17 @@ layout: default {: .help} > We could use contributions to add content/clarity to all h1's defined in this article. -# (1) Running the website on your machine +# Running the Website Locally + +## (1) Running the website on your machine This is an essential step of contributing to the WCA website, as you'll want to see the effect of the changes you make to the code. -## 1. Clone this repo! (And navigate into it) +### 1. Clone this repo! (And navigate into it) 1. `git clone https://github.com/thewca/worldcubeassociation.org` 2. `cd worldcubeassociation.org` -## 2. Run using Docker +### 2. Run using Docker 1. Install [Docker](https://docs.docker.com/get-docker/) (remember to complete the [Linux post-install steps](https://docs.docker.com/engine/install/linux-postinstall/) if you're on Linux) 2. Install docker-compose. The best way to get an up-to-date version is to get it from their [releases page](https://github.com/docker/compose/releases) @@ -24,25 +26,38 @@ This is an essential step of contributing to the WCA website, as you'll want to 5. To run tests, run `docker-compose exec wca_on_rails bash -c "RAILS_ENV=test bin/rake db:reset && RAILS_ENV=test bin/rake assets:precompile && bin/rspec"` 6. If you're using Visual Studio Code to develop, you can [attach it to the Docker container](https://code.visualstudio.com/docs/remote/containers) so that your extensions can take advantage of the Ruby environment and so the terminal runs from inside the container -## 3. Set up the database +### 3. Set up the database TODO -## 4. Run migrations (if necesary) +### 4. Run migrations (if necesary) -# (2) Find an issue you'd like to contribute to +## (2) Find an issue you'd like to contribute to You can look at our [good first issues](), find one that interests you, and add a comment saying that you'd like to work on the issue. -# (3) Create a new branch, and start writing your changes. -## Create a new branch +## (3) Create a new branch, and start writing your changes. + +### Create a new branch -## Start the Docker container +### Start the Docker container -## Start writing your code +### Start writing your code With the Docker container running, the website will automatically update with any changes you make to the code. -# (4) Commit and push your changes +## (4) Commit and push your changes + +# Opening A Pull Request + +# Reviewing Someone's Pull Request -# (5) When you're ready, open a PR (or start with a draft) +# Pulling from / Pushing to Someone's Pull Request + +- Pulling: `gh pr checkout {pr-number}` +- Pushing: `git push git@github.com:{author-username}@worldcubeassociation.org.git HEAD:{branch-name}` + +The "pushing" command allows you to push changes to someone's repo without adding them as REMOTE on your local git. + +{: .help} +> Add instructions for pushing to a repo by adding it as remote and then pushing to it diff --git a/guides/passing_data_react_rails.md b/guides/passing_data_react_rails.md index a64e168..46765ed 100644 --- a/guides/passing_data_react_rails.md +++ b/guides/passing_data_react_rails.md @@ -93,10 +93,17 @@ If `serializable_hash` doesn't produce data in the format you require, you shoul # Writing data to Rails +{: .info} +> Diagrams in this section are available for editing to WST members [here](https://app.diagrams.net/#G1V1mXsYcMw6cIaPJU3cA-s3pJ7psYovLD#%7B%22pageId%22%3A%22wrVvO56TNKLfE-PIFfzB%22%7D). + +As seen below, writing data to Rails is very similar to the best practice for reading data from Rails. Essentially, **the Rails backend exposes an API endpoint which the React frontend can make POST/PATCH calls to.** -## Option 1: API Communication +![](/assets/images/writing_data_react_rails.png) -## Option 2: Serializing Rails data +The process of finding an API endpoint to write data to is the same as the previous section: +- Check if the endpoint already exists +- If yes, modify it if necessary and make use of it +- If no, create one (see "Create a new endpoint" for details) ----