From edaa04f7c9acbf5ad833728259b4143a343129e5 Mon Sep 17 00:00:00 2001 From: Marvellanius Date: Wed, 4 May 2016 15:34:38 +0200 Subject: [PATCH 01/12] make buy-gems-model wider --- app/styles/play/modal/buy-gems-modal.sass | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/styles/play/modal/buy-gems-modal.sass b/app/styles/play/modal/buy-gems-modal.sass index 6dcbbaa72..5dccaf843 100644 --- a/app/styles/play/modal/buy-gems-modal.sass +++ b/app/styles/play/modal/buy-gems-modal.sass @@ -53,7 +53,7 @@ position: absolute left: 55px top: 242px - width: 960px + width: 1060px height: 140px .product @@ -78,7 +78,8 @@ width: 80% left: 10% bottom: -30px - + + //- Errors .alert position: absolute From 532dbda651e92d6485e000f6cd1ef40ae7593b93 Mon Sep 17 00:00:00 2001 From: Marvellanius Date: Wed, 4 May 2016 15:36:54 +0200 Subject: [PATCH 02/12] fix empty product bug --- app/views/play/modal/BuyGemsModal.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/play/modal/BuyGemsModal.coffee b/app/views/play/modal/BuyGemsModal.coffee index 0f153a7f9..3ec531ee1 100644 --- a/app/views/play/modal/BuyGemsModal.coffee +++ b/app/views/play/modal/BuyGemsModal.coffee @@ -68,6 +68,9 @@ module.exports = class BuyGemsModal extends ModalView onClickProductButton: (e) -> @playSound 'menu-button-click' productID = $(e.target).closest('button').val() + # Don't throw error when product is not found + if productID.length == 0 + return product = @products.findWhere { name: productID } if application.isIPadApp From cef1f95a5a176460fa2bf93e89b7e5ee16f7a8b7 Mon Sep 17 00:00:00 2001 From: Marvellanius Date: Wed, 4 May 2016 15:35:20 +0200 Subject: [PATCH 03/12] add dutch localisation to payment add dutch localisation static files --- .../button-background-ideal-active-border.png | Bin 0 -> 5357 bytes .../modal/lang-nl/buy-gems-background-NL.png | Bin 0 -> 258982 bytes .../play/modal/lang-nl/buy-gems-modal-nl.sass | 96 ++++++++++++++++++ app/templates/play/modal/buy-gems-modal.jade | 25 +++-- app/views/play/modal/BuyGemsModal.coffee | 6 +- 5 files changed, 120 insertions(+), 7 deletions(-) create mode 100644 app/assets/images/common/lang-nl/button-background-ideal-active-border.png create mode 100644 app/assets/images/pages/play/modal/lang-nl/buy-gems-background-NL.png create mode 100644 app/styles/play/modal/lang-nl/buy-gems-modal-nl.sass diff --git a/app/assets/images/common/lang-nl/button-background-ideal-active-border.png b/app/assets/images/common/lang-nl/button-background-ideal-active-border.png new file mode 100644 index 0000000000000000000000000000000000000000..b0544324373b34b38e5dfda4071c9822db56af2f GIT binary patch literal 5357 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

?`oJKcBpz4a`yF$Wh1y^Od`=L z8RCZ5+?pn#e38{4Sb~=Mb3s&H)W}tlT-fjFeA=Wjnds%K96ChNqmx@XPtYa<7K8?CK$<&1+ zHCZe5sJ30&abJ6@{n(IN{SMHcXpr3Yet^b8rU&?EIpu^BlmK`Ci!n{8KjY>Ht2e`*$aPFPpx@Yw z3wAq|p3pH^e}`&Z$Nk+ofnKZ0i?$)0kjTT6@O|GowklR!&D2W0ae9?TSwVHs(Fp$l zF>E2oCxs?KkXAH=Zq(hnEwXS{dqOCtk<4lsY?64$R2-j zXy`$R+55vkt?di!UC(mE|9s)VG~)x!_Q&DJquTZ}eTAEouAG;2GAS6sE_en@2TgwM z?gJ!5#7LxosUbnwxB;uleAZOLhV}!5c(DVTMBpxS0+13vzr@}j{{3Fpao^d-t11n7B1>v%xK6Uaxjx>qg}uDI-UiWHK+$}` zdO6Tu$Kiu~0@Ho|<9x3ENRRXWq^&oH@aOb}Sw1Ro!70_u0tN1@n1!27o*V^c|K(gu zie&?jJ%Py2AYG0^ktT_j$r2634_|K$PqcoxUXE@m*XFWQh6zt(iM_a)k4OY%YMcZu zbTktyGDYmAu74Wd*xWmT#o+}}eMHVRfna?m5L6VaR9p#G`P4>&gxNG!%R63(OomAZ zbONm7kx2dtLWJtoO)4}E{P;X+0!g;r2mhwFPGfvxKsI(;cNo3`E;eY4q!Ku zU(S%yVq;3}KP*FZPj!K}B z=(v~?g6fKNO~<7TAs*TJONFOj81LL(ovvB7!flq;HR9zrU`=xBqMmCg;w^Aqd^1U- zd1DGU>1>^mHgssY3FF0tSR|>YU99nk&ilHcKdJOAS()yM+~fCe-UvscR5Otz6Cs)m zLM{)UN$M(wI7>=YRh|!-2p@f;BWlOyf~FsCV0vc!K1y0YN)`@O%b8E^x(amA_1U7R zs!w`GJ444x6ph&2>r1}TcJPTo#ro}#0yv^t1|UL7y4NWk4{s8o{<;o7j42Z!&26zu zt;hlXE-BOd|2m0NNq;}+g#ZEkz8})Vm!pyEPxZ_1U+l2rLAovvDcSyS64zgMpt>DD z!UUGxaGiGa!i-q!T0p0b{o~51gaY98`SuFL3aE$Cr4LtUSjWDyxNqOZzC`N%2l-!3 zTGtb)Znr3@c2v#|DDNib;80Wq9iRaxZQHuQfE?=S;*&GG_|etf-=(*49W>pfKuM*% z6n3Hs5C2gYJQy)DndRdJsk_SG4u_!{kDlHWt51*4L|(bcuy^%zCqbz&~w)@EpTCFX|TAA#5-xBYqbG9zb-srv>A z6!wHg3v)DY7G)OO)W`2vTvZABPt-^G*ZIFAdT_NsZW9icG*Zue*snRk{%@st++APR zIKEe29$sE)izZk2=tfI-)QRSqd}Vd?B^GG#FELT!kbv56EK!rgVwR12jTG{UWB4Fo z!gD!{AvR_>(4|JD5TP|6upnSH`H}H7NMI{$tPSbn=G!+gw*_f6J<5zHQD?$I6e+79 zW8Auo3L_rG)}#ro^2ouhah6Z(b#r>@2~Yb!VX5XI14PA#SQ*MpWCKL6KJ!bA;|h2b zYIXPb3`zUUsC_3Ee*aLOJ)VjnN6*e97S^$dv)Gl{2rC8QP*^gm@g+dej9AOB{Aees zlR8(;0QSIZ!#|U1)6l?{n40Kv7>mb9j(oi{oZiZAymuUbd zfoJ6u8s;j~-j!U-7nHdOI^H3KT(Xs0`@p*?Lk+|_VnWr<)m`$fqw|`E&AUj-r?@gw z(gZyT>#Pj_;B+3Ey2KTAN)MAFlO|m5+8p>mFiwMz=?SFvLZogDT2~eLa;6|bv3Q&= zgN~sB-lE<40jhv6NvucRs1Q!Rzc(yDb~6#N3y=o93QYcN=kUA2$1&G+?1yYR)q+4) z0{M-w?H?UD%jW`>w5vSI;6epZ~7&_xFcLOiK7p>Mcv;@9o$BsDQT-=AdY=5Y1>5@5Qe+MUn1){$n)IewNZrm*Y5B1aN8S=;IFPXV+w=jjdpkv zJvUOr^=9p{S=Vz3^yM(~_FEbdo3$cNwys`I{dKl8w`lRp+K$Mo+Vx3LM1fJp8}ESN zI01>VCJv(Z$HW>wx%gw6?1~}df?I^VNn9QJQAvvS^Sdu{r1_T%gl79+RZh z9;(1T1zhEa0HpwGYTVeA!glN#NRA9F96^L{TVCmgQU&*5It)!m9*Nq;l+yeB-<*kd zP&@%yxdd~`%)B}bXjkDSl>p)DI#*6Oq_i2ktNK8roEkbx1l~mQWPv*>(sZ46AQNeP zMB)TFR@^Bz0UlWvEA+CY@*@$HRB0ksnB7r+Wh-k(GaVSnP`&L*ay|P2h#z69)n!bM z{r^=EOo0Pc;jj++Qe6CHl3|SQFO)WtDS%h@nn@aUQSupCuZNXmPyJjfLrW}1NMrRS zD|;xXooNQ*PyxpP zU-_Z$eox$Mch4K~!f*W?C29^+LSS#a-PThu!dtvF(}s2t|ug%yq!(0F^_Z(K*yKVIH$y zls{dH1^WTUfSlOfHC{hOkt+xhfGc2P(xt>b+2DHwX#*~BMY3k6(M|TP?=sc-JgTSr zR1fB$szyw8+4>Wd}Chep@(*A6@g1PIP~HE@K}@b(Yz2AuO#ha3mPY4rkHlMV=91}YV}w~<;PBO5`F zy`6+M>O8E3Mwi6yH1~f1+1i?@$orqjtz;lmiNWX-bB!EdhAB=xvBRymBl5@edQJ=0 zureAiXhsVoDOl&PC(S!d08}yN!QcN+(f)MhgD~Ia!=<|OoyK0<58?)X&~gw$k=8I~O1wLTs2uORY=liGmt@r1>9^-uxI;>ojDOO2*b-PZNu{#ZW~;e$AE% zJr#xFRO~)FLA3b>KU-Xrr*_UEOFrDr^dWIKNBMNJY%@6s&yE*ypSAd{n7VC4!4^4v z&s}ejQBYP?RTQ*zWaQQ&IBO966U&l^8XYsv?zz)t=s2+U?&PUB{}+C_qxN*Dp^5pH zfZUv^a}p=VWZ{Fdl$>uP_wFXfBt*m^?6~0Eh^Z$c&n4vj5hW+^jy1Z6#DXW>JWKg^ zXJWW-ce3Q>H{;9B8?7@bDVd5Dg(@~qq4Is0FiTRAh2fud)5LW#l%;wmIaK)-0P#po zPiJ)*F>;V(3NTLkWX_PW(1#$UhlN&FfPo0G$-7tptaS89z_7-_JaI1-uC1`H{0hwr zlJcsNwL4`S_oGZrX>%0pf2HZ{FFnN{-&G7IGUj;`DDdD4!GrQ;C?w-<4{GTeprZl| zgq5$ZroV+J<}ERnLa^Ots&l)tMYnyI#XcY1t(G~C)3e!_=u)IES_{tqYx}WI$S`X8vZq1$^d%enW0zr z{v}q``yZOFWnMas5KPVGOhHS6cTn@&H6Tf(} zmJq`5JoqD;-XC#c3#H_ALz%bgMwoQ%8ujj2vB7Pf#SHJWZxVZ16>Wu3*Jonw>QKn& zd%xX=59Qigd8-PdVd=VkkXT#(I*SLuPrBgnCGoiF?LN2;=r(7U|2s242tK_mc?L>> z+Des@KLdKzv)GP-Ae*p5n_3K^+2VA@HO^%OdeLJ zD@(HNxqyb%xGh7tk|hI;{I_ku?y7;sSbDpdrLk1;e|xzy`Y2i5gd3O#v;nUNF6J&( zjFa+$XCj*qY-a+-E@=;lydQ6M@Gh1-z!-y_Z9Dy_1|K|c!S2@9$Z((GJw-kidZfE^ zodf-aq_vuyO+NHi>5E4TJ8)U76m1OfD1R)k#s^!7H@OZikN3Bh{cYN8 zON-JHw0;k0g!#MSQiDvRaXSmmD*LlzQFOZVyWujDG`pf_BCvzI7cdwWnD_mKKO0Xo z1FcNa2PJ6POALePef-YyTr(0plISXdcZjcRo~ z(LT+$#>wofcCo=m)hZnj8Uuch20scuJY!K1z&}kPh| z!}h;YHs@d$<g6yaFO-Di#+w8q4F17XY70WRoLHsGti2d5dDKcN<-_`h>+q z`s;~6YVgK$?hC1OIwx+EA^gtSXS6bNWB&Hnt^0P^ zxiAPjs}kCPr%&R-0#>ORYk3Hb5=`MVMm#J0eW`SR9V&EKMMVS=%)`%;&CdTZcK{w` zesGGQf&Q=f$QF}nNaQaZ#56BbAxS7|QnL4C-s*1PZc%FcGG#TL6v?XjvkVm3{Z+By zoaD->Gwiw+E-Rb#u5q`9_=^=knn-PRiIKZ+6ZPwYU^xG(co%iubnMfN?doYPNp2z{1GvY;0}pq- zKeC$BCkbCYfH9%bZdaJ2PS<;IhD%WhbN)pV=&O__sdJFjhD5i|BQaMDLtfQZiRnmm zsgf1kW=>zRvn%ScDK2&A7n1|RzGHmsEJ0$039b|u@Nf}uSkvX;bR{fkqRZ)KMNHEL z$#iXts`RYhJRg3af5AC^jG=8dZ}8AIZPKU&am zXh}}hQ}%{0WIm3kRDC>C5THHN-I%O9zBFCT))vzu%bZAYF$1RAKJ5tTDRxC(tuZHF zYj}cr`WU9E?ym0t%E9Z7%D#VxL;EYk@`mxjHa5+QcigN+mm0MaTP>0qsRxj(-=7ka z{Js`<%{oRqedc?_a!lQY0E#Msf{Oj+NaWyOtApLPx4>p8%;m74>+W}s+Wk?W>G|&Q zLMj2dkk<>@WQEbU!y09AJ%x-FhkQmThQ&SToCq5;R*}|f5?(2C2`8-D1P`Tvu+e>H z(U!s2HFGrGG?j&@Kem@`#rhqF@;s+C`Q?EN%$u8I4sWcts1>;$Thv|cW&@{ z^zj`nyUKW6>ao@D(AG2F_j#$A(dS6);6L?Lt>002poZGOe6Za$j+1z;M!#Lb-HaI5 zWT+3HHLEWyKOCzmu4jCyrtQ9G>Ij#tEx zpF4j)Gk!dA>Z1F0(#D!Cv)}guJiNK9{C1{TI_|I;#?BI?Vt@$lF_&FQ63`9Pq15kZ z0EHE01Q$od29Fln-&pdhNk{s-7}N?2DS{}xGhwsUX$4*Leo<91h#H$9%g~fhm?ue+ zzC8j)Jl_VVvoPNZCK5@`+*vDixQu$*wwCm42|G$Y2xzH!TOt(j{39l^ye!U4Kh@$@ zXDJYJLCQ^Bj=1J@{g*rY_oxV3fn%{nz$xMlk$rKzMCRu@F-0OwMYMSHXk6_p73`Jl zpg;~1NJ07d1T%#9M+S1n#An8XXT^gV+>{WJl=(f_6VQ|eotg5KZaf7%yAj=#xpYYq zMMFqv<%iM}P-P_x4~~he>y~~W6^MF^JcJtYcvh($8Hv;AvQ)@Y@6|FMpMv~ zXUDFcXb5Tel*9@eK}b9DMTxR?tZ0*C9@ls&sa=ak1@va2dp$_)a9A=rKKeKg3kB$$ zXH+E*?_v|sQl5B(-6XkaV`AlQOI|zT3xj>b1m(;ImLnHX`xRI>;gTd0PhZ*1ka;6t%Mad z@@lI`Iy_pB@NX=;2d&2(Lj&0JLt8O5@5!{|r5lIAGTXcJ#q=91irlcbE)l()3Z?-5 zSGv!E@ZV`7J!)Jj#7dBdjk`k@9Y4a+}&p~h_+ zQVquVzX^XI?)F6*AA3GLtvPkUsW5W_L{}kldCnP-L?M8_CwK4N)J0gS7^G;K0RVW4CS4vVMrm4;*FRZEl z*%{ePmeH-9DJey*95QIi6GcvsCQj~vMeYcdUr-R6nMw85t-U}v-5qBuQPRO6)L*u^ zx*+M|OFwloW44HO`1b777@-ix0~w+CsqO^50Gp`^8kELkK$0PkybM~M-4WE{qUmgDng}XNP0}f@UrD7xnl_U#6^wCPa3LIm z1OOl=PT}J@ieyx;+||`mx{XLmW*AUF3KyU%3sX5>6zl$XZsCIm`wkoxIoH|ZZONQu zNF;z9SGl$@GGd&PYju`X<(rP3jDD~l3a10oN$F{Y^OVjON+Stbw~I{ zmmpH{R))zwPZTFb=q5{R1TX!lQK?4Pc3p%Y?6Oik4si8R;G*-3yb_~qCfVld!=3ZM zX@&8~biuwII>x&MLDhrxP`1pKp(t8v(SqTusMh(tKC|CijlbEDsoYWxD7!=~}orSg7C4-%V& zn4L$1#S=@w5*MCpmzSXb7SI#v_SpmH^&Zd_0{>Iw^iy=cYMnKZ+l;l4QY?+@l9{t- z-FQnJDM`!Hb$$~K5$S6i=%*Pa(PwhhG)){TxF|daEbI7np^*@x(K3yfaPI_vs3yv+$1HJ7cobDDN1yf2@CTQASd2jCF5B9~03*mG()Sl#JK&!7_tU}yRx zSAsMX<9?|%rr44e7P`6^z@9<2wgGQGFrcb~R4t4U2e>67kk)rhkN5Y9rLwY!1|%@3 z7RFU?q|8c7#W=H(ZH;cm1wBx4Z5(jF&8s7U^JI389n8%V|oCikP;$M4ckVuI14>eBtXkl3Jt4Fk2X`kw#&-**?%=DI_EIt&dK%gbltU9t>o9!1?9%+E4a!bx|UiDk3v69Y1XGo?b+b zjPfW%->ZbLq9Z3KS7=3p68L{?YsvYQgS}$EB|)beZ!a@@fGHJ*{)C zklTetF-Z1gvja@1>Wz}yYlp%ZA#_&J=cIbp)jx>>{Chl z)Z3|BBJH}aj`gp)gFfiVV%lC#=pY~ZVh%7AX_y3P46mg?AUqfUgt&9^b5VDb?ZFxb z^)|ZRH2i>IAzNwmzN(LuXnK&6`{{8g1||?(TCFu|Cg*&;9s=2tB6~VnVC;=_#AJ08C#dEaE#0ULjBm098;Fe z)B^i#pPWph=D?vq$d?M4ZEHc2k>|@S0)f@#@kxyA+pT!j58L4j*_i#E(02Im zSnZUKhvYAcn>bi|>mAoi7@eeM~uZRUkn9@8|(NhdgAB?$mI$~foQSkP+yWtsUpRCQvWt_0GaqO0{a zQM>-V3whb{JpRjJ&NiGAWDW#%NG!A@?Ox(A2?3;!J`%x^K?Nu@Wko<<|RoBHv~dP2qxbTaVsK=+*Lg37k0+iD}Qo(KG<_P`hAJqafyt~il#Wn#3|2=6*w?W#Lv#tm*MWj6p&G$``V%oa zx|JtQmC-{TxuPp+(#^>|QSGy%81s>FbNkuI{qiO~NrZWR#nn<1k@@8Xk)W|`@I?a2 z-xp$umfL<$pVL>c%yF})m^uhqBFK|jTJ@n_7BWTdTPz3{L`&UuX zY=1sx@pC7~WQD>M*JEpSw+1)*N%Gu*6>#>BYP+aY>T@P3#`@!<5NOO+CG#e)GtOH6L)J*{ACrAn zA)<5n$%QnN{U#{|u!=pCb~jdtnm8^6D5j~HwlpO$TrO!LP=6@Sg_LfUtkkCi|hohJtx5yc=Y`x?2CaFLjt1>Fy z3_)U}zHjTWxV}sy(4gJxxkg?q&E-b22-8?GmheKT!5Y~3Do&DT0m%No&%T?7Q2$pr z`h-2FHC0SU>3EZ%z!_OPb0Z8WT8?(F9&>-fy>CduLro8UA(j-1go%e5O8sL_Uf#F9 zwVbIiaC(2|yWcD(ZLK9O_aPgk>X*oLKyobt(lvygC_xLz6LEg=hY8_mJAOs8jpztv z`)9cQeNgr6pr>Ccaan%z;%n48NtfcfR<^8^Lx z^@aclNvJsKEXPi2CVbq&j>++)F!I5zgkJwoR<^+}=@d@^2VMvVsC6D+aSDBQq57#H z+#{Lr0gM zJey1q+uD}~io&#jK0ENeo000To1zqaZBKWSIjI+{yLscs(jLI*5>5M5U5#ye2{G|z z;{+T46vt;;?~yeSX+Ck_{p+Jn>w9jFutJvuE$?`#;Um+S6Aj^Eq3;Vs?_YSw$7$PL z)tE{= z+w$59^Sq#xi7IHRSpuiL8Zlr+qON{>$_s?}65z_qG1)<5r7KPlBF-s0{eyEU^ zX(NiP2nVg5qv#!RN$A|oX`&bW=b_XQlnhmLf$I zP)P$=*)(q8;roipm9ki72JPOIRWtz0uPAK(Z%@H@+)(oCaGs5v!q6~56|5p!`KiiZ zO~NomK$;27@pwJ2S_3UWjfROhdqP57rWx1Wsc@R13Tw?nJVg(yPP-gQohR;aa}gS8 zf@Wr)oed~WIrP!cgbQ0P7W9uXOsy*)8s9XjE_FZno)Qn^WYv-;eT8x=gDzLJsLXp{ zZ8FXre}edXr{tQ*ADTd78fT{|p=ej4clERGSX}jlJvu%QNl#$h^Rw1L`IfX4A927i za{GA#kv~~G6zh6=Fw|+9egL7J^RksPdUfv5Xep!2?8p6toC8m;w|_3z#qgVTqQXP$ zd((*@zi;RD>vp8-t*gsUV=wK-XOF!JL=;2-J*z7n$_cY>~!v3n4Nz@F|7Kf3etVfug6QpP*5KN|pLC9YhEM!6>0HOHH{|o4*;~XMQ zdVmlHVDu~o2W%@9XCc&6-}WwOTb=JhPw$HIb_Na=?I5p`_xoP&4zs)RGZ^(e7y#O; zKgr#1XOp&CD~WTtqF@uYRt5M!oE#gwi|Sle8>U`8d&fqh3C;OkQwLRTrrZy4q*|^(tKu(U2CgsJoT4E(xSwtaq%x*8-XNwqBEKW zI~e^!9mhBlr;J6kCijSptuC8J9s;#I0L$4%7|)Tp0L>RZR!q};W$~7vKxQ2bSSz~7 z=^LC95NK3IN0o1D(T%4O9agHN9ab;zKE$zzY$_{u1vxu5C8nL}%mvOnWEd76PT)6S z$Ls^^^&C3Ba;o4Z7#S@bfNK%<`aH?g%j<+TW~$i11%;m@`gyI?QDb^Yhjo5rP7weuOTvTP#ucK5#l54~}36`usIE zRbeT61EiG9cE3qEaiBu_89dzp)J?Bump`r)q9(rh@J~;0&rgOjUb?YysmbM)kr+^h zK!K&^#*uN$3GN5G--seN{*3!i7NkLb&N+Hi0(sjUlgdH~jklPCHp~kp)l(r6a}lYaIJ|35u5Il}1fJp%4KP8MDR{pl!A42siB()))Z2L$>$ zvyj3cZ9stgX?7dm;L}B=WmF9k0urj-;iF&L@jLI0Pg)?Dv*BJOgPthJl!;j&= z$Yn6%IyVnipO1mH+e1dGS*Cl0L$X&MxeqSV(p20{(&u3z5LyOR;+But=80XbaSD*E zo8O${AEm8DkL5JmLRV;V{Pi~{)khH`cXq(dkJqe2XG6EhY4-wZlLD@HJMH+p!MQeH zM>W`K-|Y02lFgpT4U7t=mlO>-`+RuTJzTHK0Fmp$H^UULM9U zadLAE-YQX?9fS1z9`7h6O%4!Mc#tLV@Z zWygp&aBK5_04GU@xqp8t{<=gVBmUsD>WZ#yq}?7FcJmos+DTs8ib}7aP^vr_&FcTz zm=F3nF2g$?;6_`)XPb+~sW0b&(xOvfs@KA>KF%=i1cLC(ADw}LlLYzmgh@=;7tTN$ zp!Co@Ygy1x5PO~LXWRj2{BeT}>ESf0?qJ?sno&Ew%nRT4QU=f~#>#X=`EpxZfT~y| z*l^RM5n~>PaztGz0C7sDBvC|ckZivmnAtN_h>vnq${CLWt!;*h$&4ga{# z&;U{8{oK0LOc&~~BSG&XlcNgyEO5Kxd+MP=2|;r4k& z!X}lL@|feL%@T>9Gp}%nX5!%sfuV|VJ5tN>qSQw_air8~ zDP265S%R?2Sf19EV7dp%2pQb7%zk6VO;B0f=8YWgzj-mri0AAtvnm$>2QS=5iewyL zsmg@14ElL`_^3ChH$E&`Ytof=p71(#Tsxe*AHnC}^7G>VJqlOYx!2nYoh$pAaYbPE z!s#zY^UYqEPB(*hbin$rS%iN%0F6TnH7^}(iVP=W@8Jz#8g->mB*Qaymj%6>Kuaah zkdtE}$m>tWfSEk!{9njA@cqx6!ZN+JxJ-TgGMF2k73kJtQ9|ci;zcqE? zyh_lqaDUXcicT)@5f$7-_M4;}e67eNb)#K~YSL6F^h6?6aXyY+EzebM(1{jZ7Yc%Kr41g6alybDuF^-7uzehBJQt8}t0E zIDI|VLri`I?Rz?^+Is#J23X9syRH6xF8wzIU9~c3`3ycubMv%bpN%n#BPAyWxZ*@w z>NDCk8I2BJ$c5&AoiOAMS$zMiEXFX zj@kJBIrGO6zDt#2(|7~M@K*F=6!^8R6zS#xD_IvetcfjYVgc;u)z}S43HwY4`wYlX zWEtPRp&-gn{|%%9lU4>j9IVB5gg699-`(D6|6=6q!xl zVkNWX*|^J|V4FGp7o*jEz-?qa9YP!n7u#^Qc9W%@6$KVt5?&rrbrk}ICHrEWSi|-O z*4cHlNn-;rIi4{W5>fF-MNACqJ);5f+w?;SXO8UAL6nf{!sR7$Wf(IbTxBE2{t8=3R9ZD#0TRRgm`xMX^lqd=wx z(o|khHJO*CbV#oOlqZUR4 z-f_RgVNc%SHzwh8)#rgwWPmj?5=O^phVEmj$NdYZZcuu(%lYpg&L(TR&rI;hIL8N+ z5T$W*muR>+BOQze&ul3&DS5IWYI?aPG8}~DRm3o>ggI=gNG`kojhk_dU_1iiRs#d> zc^8p0%!&jgixE@M2z4BSf|zM@HGAr}{Ed8D52w!Gc*<9jpQ*RDWpD^8m$e=!V3j;3y2MkERq+w=W;&O-gr(j(MMXc4NQ8;ZdMMN_1x>b; zGmAB7@sYS;4h1j{$czXlxk%Slj6Zs6oku*(aWw3=)|cGeo`XexmyJ-2eB;HNk7X+F z^H~`5v>q#XoQ1lWnBwi;u27imN9LGnFzGxsvD>_uA{sjpBv{%PrzmY2MXsGRzp;}S z54Dv`<~oE7CWRUvR}IwQiU9nD^Wn=oD`v7*;LFYWNUJa8Mz`}hbZ~%;K_-zBCJCOJ zY;{&taQznKWl(FnzZ^l`%`Y?RQs6bfnG9|}Lp*1U*Gf}8JVqj}xw_jq*x=8HK|^Ut z$J6(y`uEuU=*I*+{9^#*c>VqxtnKC^<|W|yh=PkFw%7KGlhgx?=}kND##)v6VC%2gmiur))5>sS4GKUeN) zTgp**rX3w|@1~e9uRqmba3JaQF1D?EmV_F1v^&&Be2nKZzoubR>wX(Xp07P%mm{hx z9>!s0eyO_MMj(%U$Un(V8-#JSM>(BKQi@N9NT9FQXiaV#e2~2Cd;#r#|1C-Dp5|eqO`#*(1h0dJVJl6Rlc_K} ziOh2<2O{EV`9d2qC`>n%i6Z3K5J9Gu8d_^31*Rb^y2Aut+>8VTw?u{or=+PF&Z16J zjPy#v3JnOhh#ZR;LCf{L16o9*>I?Ay1|`qsQp#!Xzj08 zG}I|V@rO_(5u`XuEF7FsHhSl3mvRdD_ktF&*hbs{E7=J?*HvB z3{3XA$dG9d_S|Y@fd}Z^#{_YRmDEVO3y0+%7`CV6IJHYZ+OheP-N-_-Nm{ysjt|9R z`Ki*%FgtiMZm%4rI3K3@$uJ>a3guf-0}Gv-F;%GZH1E<~p&+%$&7g@YET;~(v^~>( zRoTKlAYn$}i@Sgt63coh3wCAICDFi8BW-&NyXwL>sA%q{SVGqq!Wd*XBF8F!w<9$M zA)kXWhKj0<@AIozf+F^-YDBmosGCt3H_%R6^N%cWB%N4$c0rYcugkEoIbjW43KBU=#M> zjTn74qMv0(;muCDK$~B{km*kj2%jpN$`{@YlKNhi{Ovcg7Dnbf))*|5h_4z!PMAQ9u5fodvBb3oZ2^h~P8i62e(%FKmsnk6ARswrWTcibQkftridE48 zYBBj5DdSk=q6xomFuG6u-)w~zqJ=*Rq&|1tu@M|mr{7m2k zTy51-DNWA#rT|)CLqH!I=)|QQ^dCCVo_Gvu_a$7)XHlP_?U5n)p{ESe`eW?w(%jA( zt@|mX?zAtWR&_>6W7k|^0fR_wY3i`pXZcDNzlXr(Y^~`@Z8qvb_#DOCnYiC5tCzF6 z*PgyU@2sBP5LuEm&V{v=t!;7JrsNKba@>NCh_VuTO2R&IEZ+LuWYgMGgFXCvY})wB z+CqVd4VBcx;F}mFpPe z+K^Bh$F2q3*_xY*D5&Mr3|p?h0E(r}=A0PcM77rg^Zgt3rLA;?l{WacafIU9l|SZn zj8%FGuVp5MTZ=MI)&i;UwSroG6kM$i*qW+jtA0@)EFlZ`pnxhxAtu-vMUDtYC6 zeQ|_Xyh52&%u`VnO=gC0+%nQCn~q34D1o97MN$bxev?t_WY*fU5d_YgxD99AIK)ZS zd`ehZxXN@ECnf@a6a^WJngt^{TIk&!G)jbNL&%|ybqH^e^uKX9IlM5UtGb}tyc|=Oh8f}J&p92j$JJ| zVut)Q@$IjgqOAH_3HFb;IOVcFt#c+*_FCC_oGLQ4?fjvy^e|V3$M67e=)xBlH;diK zh;=3`Yp+|(x$v3ZJeHB9KWw_E%0owQyQISRp3DVYOU((X_G`HJd_M&M*#n0!eXVUy zQ#blFzQ&uq!M3!P3;2p1CA>qd(18CzMM8VNG4FeCV)$6&Z4{ahE3jf|0jY&xkp*;{ z)h{HintpH^v0`{UALrux^(nV@X1K#KVRkx@pgiezH}I+ycB2%=yuJ`by^fa0ovN2j zy6&{5c)kGz9X6zj-|&ia{2h}IHP-ffoOzytFMii1(>C^WJ^p~zCBx6Cug}LsPnrB@ zFF^yZ$@g6eB<74rDUASQEh>l^#~+E`ux_qm_ba~|eV$V3AfGWYC^Y_>Ln7=L2M49{ zqEn(lJI~B$-YW{ek!01aOKnbh<#tdG+49freus`|3X;FQ&Lmc~^`pBWKA1oG*^hq( zJw#hf5*ZdWj|&5RGV%pE{K#s-yI)kX{0%odj^d%OZM0j)*QMZ~ea@`6J31U(C9{2~ zH_$|X|Ll=&F9k4`eQO|>ut2{oC1|I!6$!xgz$}%COg5~BZwMPX(VE{O{O<3Z{WV9! zp!gnmeLf6mnDO%P{yg}5xZff2A~amBF*3IzBl=! z7KD+om#M`2A+sD^m+?>3XaQVN#JaZC#Y?dfYyL?K&aePSBCr1@#3OrWXRx=%OJJblB;>$27)zB zLBepQ7|U9lIdNmwxni+2Hw`v+^DL`3f!Qd~svV47YGruDtlN|y){)4b`?AC*D=&M0 zDH+%OY0`AFCU-Cjy4_9^6Bb4A*x0}pMM6hD+`tNLWJnvw#3i0QLtyi0s7D2EMZ&Mu zVOPIqE(|0}Z28A_DKYEKy5KLcD*T`If)8`laGr66?5P_StYn&mveuvsC!}ihbUi_g z6v0TLzSkZ83T~k>;d+VQ$?RgIibaWg`tzk?T83}Q4ZszoTQD09(zydeQG6*nxceVe z2#d~gvkn=`_*`|98AeuOP<>Ea(*1(wiwpAtMqrk+%=s2{>0|q_7u` zLMo(t_ar@TO_LZeq-rVSg!L~XeBT1@y|$)1CAo$ClwexvB{T`#=f89I!T*}lH*nVY z6my&863<>-hi*vUz1xo585Vf-t?FJAZ@xluzHg#OZ08H#?R2-W{>b?@9mxnG@G@NE^WGZ&L!sns zt3CN~Q&fN5DnTc>4iUkJ3;OC6?frTi&-Qi$d1ncZ6|>g)VZ7w>!{6X=qt`ozVdoCy zPBjyF#Ba@Aod7a*Z%Zzw%|3&URe1ai!dD-|um0^`i|~ygLX_Tv@!IxP6bg!7re#B5 z2ZO)=3g3I+sM7WBwj*qXfswZh?z7gBP^4qo#?is`m@(M-TROqvbn~nCXuA{nepCc% zMYqoJ>LXMN3gZ7f&GZonwfWWhiAVNO5Y^##z1qy`7h!f`#Hm-GXi0@^Cd@vFkf1f-5 z_{?cK!sviMS=As40>(l#hOgRoxM!|!40;yiG2`4@3Z7b$d;URb{rBMw2FiySkE~;9s^ac(Hfb@pvj0x(-LEAZZ1I|pvu#NXK(C!{E3^c zc}kkWArnIaT3wEBVrUr=`fxnAJ}*j%XYOPfgVXEg63a9}f*y&2OJKS|itMyt;G493 zQA_ML{rpFNEws`Gf-M%7jB3JEF;IMv2=#Uk845-Vpl$=7ic(%034-vWZ(urgoLCAx z8H_y96r`Z?1(ixRWAOXynOUR!<1287adlzj<7YI}!)sB8Tq!=oVpJcexlW6%A%Lq5ZfQ9^@7MOyr!Y9oooq$)O)!k#4w((Xgh z=zu(5dRUzbvcpL+hUxe0%->{zY(9uk{g*LvYv$J70%p6dJWhAHj|1DpBzfqU_r~iz z$5%2(ml5fEo?oKw36lEsOhPMq;iI#RbCD{wS`soCa3xBNzOgC$K`}9Sj4_GdY1q=R!oR`+8VHs}VTizQX1Z z*&x`AvMqm>-|4ky9j+rk*44M9Rr2nYxO^R4mRW{rutyw$_bSg zB;iHAHvP{;!>bsLp#nxpS2{>OWD53F3eFta7;aIbW4%5dnXG#)Umi_UA}5EO%+66c zytcsMoYV_v!80;W9Fx<}D^{1f_^>h{8#1cbMHVjPA2n`A6|G)+@vZt?QH4e}zN-I6 z6fiRt{P(7(-?8VTGtIMSu%_64S}!hDh8P;yT1jy9M3HweOov-$JJUw&`TRweS*mD& z#%a9)9Ulz&3={xSn;{dyb8VbE`~je#_OG`1KE`;3Z+Fj;CZIuRk{z`DT^JLqpY!tf zXRH--Ov15<2pO|>*_u%fKM*!|!`G;J)A; zU`O|K%NjJ|R0V-h;UQ`Ur*S}H_QAH!pM2A8v7^e_%s!A$ka!Vg-wkpqi`}hT3U)Gup zc4-C=2o!8h-pzYze17z~o;GMoCoOvSeD=zz<4Zl5yLxZCANM@%h#xLJMyq^YEjC>K z`2BHMpyBxq$v@C>E={MaCoqj49DIlvJpAT$Zhel0dwJl&I;<);c!J#EJ@R1dzpq5! z^`bny{p!}C@0qdtm$T4}oS0OBfJd!XM$#u>hxrcnRtA0utl3aJO~P1m6c(3tl!yK2 zM?eDL*bsRwy0!kYVM2<6;&pqaH>~o4GOCX^Or_+nIU2E`imIv_)s$I+Tc)1p7aa`5 zM|ou*YrNb7hirWc(N-|2DPnS?#klS(^wZu zs_b1~|H$dDi8)Q&LxyQ&<>aj0HD5;`Kf=sPROu7XZ{8f9+%Jr8pAlrGgf7=T6nJ5& z`u{#f@Amm3?J4FrZQOHioSS9WA_Squ< zcc{6&hJn;Ci9CN1=x0`7(jMvZ6re3!4-ZA745(Ng_-(y!UXGD-f_IFDR4v2Jt$CI$ zy%t+^czKwet$bblG?JZqb0i-f{Bd%(OxY|oR?zCPIWVaa6}4QvnOP|43Lq#VfWDa) z@uRsGeB!**vI?c@G*}|;UW=IKIgLn6G`OM}HlFu1v$f|S60_OtFW41dbh%#+{ zzve7`){gF$hjUM=u$ZIa1^gT!zK<56n1dCEqteTC5l#ukFL7}J8NZg4kCEk!yJ1wL zy^tCQ#G6joJevws*6RZQ$|Rw+;aM2in@1yN}M9dKHAa$85J$D1ShZfoTn+<%QT6x)0T&9(3F|QLHiR}vY0wIv^r zwC(+2rSI!W*h39sm`>~D60ueo&tjhWVjT}QKw-1BMUPFkBqU+t zlJb>9q@$a1ad{id@N_xC0+zRh*jS%loF7hqf6!ah38ej8(HGfaQAqrLWw>2gB>m)f zS@;X~4=gwqmW}&OoYVgbb-S}PR6u~D53Q4j^W)r){0;G(-9UzD zpF)#kg1{al)RsNkO1r#L83fLy7zIefrwt&FGJYP?kU-_#Vj8GCidJ~|-+%o+nLxsZ z)1IrIch0b2D@L{)dh#`K9f{hq5HiMgH!21EQjVQ9IJoh+P`L*)!$EBf0|rl3HQuZ) zk*cTSNX8sZ)XsB#&Sq)}XO0h_Wr_{-rU~thL*c#R0WV1U!l_`#sJGbckYn_wADmj> zkF1OnR~^@&aQ)+4_)Qml15RJAO&&1%gJo+t5P3yK&JxirT=){`>V*fanZYGkL9PVR z8&@SaN;hu6{$oP^rI!vA7QU){yiGb%$?i z?H3?gn!QgUq7=hI-GX9_8L(E@YYrmV(5P#TiGS@{3pAIw96RZV2Rn>|Q0e z*k!Wl;asw>;eZdjO1Nko~YY#f33jit<$*_p4k(& zuGjXz91<5#c?-~o^ifA2H7#(LR3!YpDB49x2@+(K;3z4#jx-3g?cF}%PF(g_2FKq8 zT1X-C%2*D+hG@?WYP43nq}$l_B*|?1FgBL?5^3B0{ z$(HW>!^BxsuxyNAJp%i72mR!ZTWP!RC?ZNNY?ba-zO!rabfyEgON^9vkfsalm)*KK z#2dOMO2{CUyX|*I?g83XWKmGS5R;(|3LsOfjQ)zKBLP&MVPaQhe;E zF=ZsyMtG;9ij_|~EoLw+dQr$&5&?b@|HepZ`x+G+NdGdZPX&A!`S{H%#9{GO+$F7i z0wYSCtbq47%*@vCvbx(%J@gPq&D_fu3n}l*sERI-@b5;f5qEW)zaKa$ zlzN9f_ONjj5i^^K!z3iMIxLAhGn!Fj#xB1GQF-cwVjWQ%De~D_PG`ma<7|Y&m_RsGYm1}~7r&o%-5Pmb@ zw&+fd-V*J++|z}S3VrzX%HY~mb^ugfi<_|7GD}GyG)tw(lPT=6T52;u#DF#;MifzL zDQlmg#9aQjbtK1^p&YW25hglG*hZIv+8TW7IffZQ{o)2G3FlQb{j)@x@}#ya2+(M?L?pb4A#%*0 zbj{3Y3fx3uT5#Hdol`m5yaS*h>u22r8iYcj+uBSRt*GaYx`__Rh{_&pux1%oN3%*P zNO3036Tgw9%^+J&>xta|2}65a49D1x7%9zDy4d)rULUKiO*k{*IBwFctcyuAWS@1^ zneED?T*s~$-5sK2fB)Nmew`-%x~@Ih;tuE_be_YBIl8d=1>^jc$rXZc*K5)9So80y zDaX>j{Qz{^bxrc;$V^~&uY@ZzR*~x z7S2IIMh6(q8NIAuxU$>L16$V3q?92AXAN3oPCu$-0t_ip53dM20%dj@eiMFPDEwzZ zFzEj2tsAi0wJuewzdi*#Ks336;bIn+^VeEG-l>jPgMfm%QOE&bc4yO!z&+`*meBTG zapPuU=8pL)l+ciJS^qdAp5)qOUn{h1Pn)}S+VP=BHp{)#`GQoglzF>Zew4RqaUx2> z-w{`1Oc=?13rX?FlHf@+@`=Ah{Ic_rWIbd2^mZBfKe-=2UC%*MuiL3JN~GQp`pc}5`RQrtek(CxAyygUfM0wXH87D!^dgMkmePY zU15m7bL-wPB~B+knTC8-$fdo2U!p4RqJN! zh}v8*PAT=gH~a5j!ZYj-z_*~hPuKkWS~D<4LfC_UDX73kC=v~DAW+I_C=rsECy{{q zQylf3%HVYTz8x=+b(EaW9r z%Kd*^sTo~Iz+8Y|=H&nHOa$%&1bkkTT@V2T-9YB^m9W-F6%0(fEOli*i!!&1>A0#& z8mJv85t@AQBrLP1ILe+=^lyyXlIa{EcRsy|yMSdcqeR`#2jw8RNR9P@V5V-qAae z6<%}1C*6r^UOIoebwx+vijv1AB-_2)aqF_}q^0TtgUp4cCRgSZ%;wUCVW>j@_#6gs zyk|?fIf(J{!X;BOC1XP_AHaEdg|Bd@A+R&-?e~%n55amuPvO1R8JXK089kjlVulOo z5EKjm0+_05=^H_MeNMnjcA`51Kw@3{mA(4s#_x(Dc_tRrHhrqB!2H|?YVc1@k$qX6 zK2G3aET_vnFEh42-izwg0|Kx-|8>uFZb#t)HjK5t+WGopJ4ZAhCW#($@pjMCB-%^( z`acJ;_rs3XxvDT*hIg1DryR&TngKP8k(N0U~Rp!IUPWc2dLSA z=Y5PzydG-sk8ch+OP7)XFCKAoi4`{!kj~JTV|xD3sfnfPn7WKICmWw5)8SX++8+*+ zhkD>G6ZSe^rw9EFC_Wtoer_IgJL&Ff@2O*kufmBn0%X(o~Oqw{6G4MDDYs}ct-lpvGwt%*O z8TQ?L`Q1rn#S??niZRXL^Q}tR7R%0V#Kt!a?ny&H^Wj{rU zQVng>cB)~xxbKKX-Bb$jtz6K~iQhYd+Z!nxM`$n57vI|2J|7Ux9njE{=w4%Obhn>c z)Uiwt#GwAS{rBOX`j3Y8-*f0Wh3NC57}Z7$Wc3v89W0o|<`SWBTKBVXwK__u21XAg zQQ*Z?8An}0TT{pX5pQjVBIJh(o1;ZUB0M|t?yTY&ikcJp@XnKvQb@fC8HwqGN3x6l zt-#HY-#}j3$X?jkzCDu}Azm}6*A9aMzz&(fTiHwvuN$@demqkMG(gP(i@)BW-mqs}OotXQnMN&T;W|#jR-Zf*Rmzv#5FsOWmYi_Poh998i5 z6|i4*NHALJ)zSUd`|@Td5z8+Vs+AW+|q%q))@(`^N(Gv*&+5hRTEu6 z5G9YE-waX>a2bZeV8xdO&qx=H8%Yp{!mcL1oo;P>Vb~sQfM@8FEPGw?{~{6i`g%_1 z@n`S27NAE9V2)5sFOvcGX0~tz!mi1N$+Cwlr~gYYmGbqalS6F2^t-e|>TZIE99u7i z;jq)6sfA7M%<~HK_j!Wxllz&&jx`~&3a!*TP#qzr4#&EX|C0wcOvu|k?rw|~-h6pM z5lvj_GN$NHBt)qhb5(m_z)maz=#z0B{Nmv#MG6=2GxL2qb$VgxZQ$vn8>>Yv;_} zR(S62ggdVw@Bazjjr`AoELFwre~*lBSg^qTV#2lNYD|3>19hKetNq<#I1J1$tXzT=+rfgF&XhomTha6p%JM=O` zPtLASg^#ZHFl5pQP!_jJqWc3Y4}Nf1{#P0)@vkE*SZ9ts|v zS84tMZ_OZHjH4O$-ZTs!FYF+8Z|l!5yWh{S*MyC|tD1zowNL6pk+|*wzt;C$Z@Wn# z6g;pTTPZHlS1o@#>t3{i4ypdGMOP;?-$B{&Zx4>t{XM2iAMNIW>@{N)qPA?1Xkie+ zd-2k2-N8(*hn@T$&N6EUjy|Ni4}alP9eG|I*@m3~J7NBS&+uNStyMdSiQ`ye)$(qg zn2Bt3=uzOj$|olPEXXn)sTJ_~V4b(NYH9v5nc1}_L4lKol7MXIjTwf#lPZsuBq7FS z{09~^E}M|-Htrx%mVdzhn`K3ce%)9}LkAY7GEltmp^lvOzz1adf0>dJc?b{Iep%&i znFGOY9TO?VFi_k64)h4k504sj)rxdc0=JoceIpC($*oF%`ag}=4udx}qc*&*kmz%} zkl%Qes(A}MID}ILE^oGxPw@08^^21!t==_*MY#s`r-&rN)9s)B*wITYf&Rk@G==z! zAtWeVlY(I)(*lF!B{+1adUWsk-};f?T_rg(%Gsb--RPU>bKBTUK2|)kFD=>t0W7-RypMP2I1`O&g{NzJ?(qq>VgiD`<+gyq zlDI2BG{b_PIIVGki2|G(di{OXwLWWAG)#AS|4$yDAbnlKeh^}L$JDYi3K^=DQ+rSb zD45*BWy+Xv`H>u2QU2I5@(a*vC9H)0A6*q#jlj$Ay@CH9Ne9GhB)RKkB;NTt2+-rQ z)jnB^oR{=}!LcBLI1X(7!b7n7o}Vmu=MG1(*@H~2T`vr$9g$A+c{RACaNvde>UsZ| zBSOjz{iXJ#5;4po)|;zz->O}BKs5p+3M(DMT+&@(6chlpdPT+-0F3;6bUQ`awgCJ$GxglEl)!oWhkjSINaJcl4Z_~S^hy(Diyt7f*bD2#nQ)OzzXrTX9oh((y# zhKsHFzVd7HW}X4EWLuv%M(UQ(?Xs~C?J>nGme2_ldfiYMD_1)rhn}!zus1jOhQGJg z#7;~B{vz<_ipanXC-7&StcA}*{hw>bntAFD&pKj+CE;hi4Og1y8));7sQ1E6f(+_`oD&hHjiJy#z2kjefiL{0fwk zN-HfZrKcG=T`U9Ap4?fmv+}h9KS`;`Sz!I%rwHpW_9)t(&l&3zDUCg(<6c)7k7MS(2i_37_*t*pZbnb(C09oraJ&poE z3<(B@y{`T&0T0{%>BJlZ11qbxpR0Y1A9g^m`;H75@dapgQ-gWWRvm7yfg5wR)=RHT z!kSVC!4CB=jkP7)UA2)s$hIx`U#W~bU3(c3p`~a^&nHJJ&sU+fow*2i^dVAB7-}nZ zPX4N*+qyb*S#~{c_red*3+o&Z+pl`j^0@VA40?VXd8xD5(5mq3?z-|S@VlH&LBaKMCA49_G%VOPmeRO|JZ(8-44Qa(Bc@f z&J1-tRyU;_-$-M>KUSkVRQoNlkRZ@6uXh9vGG*ag zYN2EWycDP7pj1QtfXtu-4|?BFo!&6~;}|T~Hz!sF8WdZD*mY88zdzrqJIT=NO9Aah zKnoi5pDXHd*pC1Gv^^q`K(k}rF3*R6MIergDNa!}#W3Om&{SVvkorHJn@jlc?xw$L z#yu+$&u7&3w)msr-C|6%0EG_$Q&12=k)WzYUPwN-qw@DBlY;oT!v9kyEL1!(bHm7W z9Dy};fKPkj^}EshINce2@WgZ(2&Tjd&)*Llt(DKmBs_MGx+-`S^3KAj^OC}AX^H@SU|q9s z8YVD9ptlNFa5>R{vI^EINJJYL;v(so9m2{J3A7ukHT=}l)0n?nn0_DGWNwvAUFg1e zcpXhD(K(*Z-pO{(eL(MbCv!hFew`ETi=%L>*s;4&j^0k z)!RkeWt5Fo*EJ3`8(})RquvMz^@0_v-iSK7aRr1g5GM_^aPD3kd}RmgF_5z6Kt?Nw zz}!WFKt$qFCg@dLS7tR)q3?~qGBfvHiZ|`tm^8H_Z`8wte{|VQksL3DtgbE0ID-do zHvhtc437(_iim+-Q7;g8?&WwhGRqlkVfuYCqGsGOSO^ymDIepgX2D2zM&NLYpON1~ zEo&l|{vSJrOc8z0E29F=FE36(;|w=5ztca&a=?%}shIp1V_9L4{t{V^ytD0&P;SqG z-S(5j&B)1uROv#ysJ+;a7v@~MwH0<*Tw(|~I3>D1{+ggV)BCtu#Lj+m%$bYbp56}? zptA?wp!Y&3E-nW2_LJi2cD2XkHRraBMjprR&TzZkN(KKKf8?Z8xB7(z#WEs`gN0PDRMO7l*ro0 zSfCrRKFjR<8x*-=ZLbKZ+n2A{jMi;vI4%6pCbX@!*3~5>T-!MBiYD)*qQIM+=B=sV zuh9p7rW>OqCcCLi1Wd6se850Pyn8e8Qu~Y)n6kyi@0hx~ZgwDEc-Q z;GjQ)zP;bH<`&@QN9C97U*ERYStir2x0Ol2*;jOf7MSzkvj#qf&ecuT0>A;ba$OD1 z>I-xIXBq}WxzL+^C_60A#;ubh`t?cZkHz~`!_b?c%&ICAW_<8 zg7h~aQ5vpn<@UzlviSaxFgn0}mDYY-=vHffnEMNCAR`#3$!Ipprt}QHAoqsc;wZg? zjZSQb+UC56#n=d(#yZQHBpA-R3(wdr>^ieu+Z`v1B>TMXGPdI5(7$VTR)BZ3vCgeUs;C3hT9L^lHbB5 zU{}N=721<@un{ozp+|<}BwnW`l&pPlR;DWsOn$j8s%iY$Lg|t=$ zj1WlWoK?{1=;&U8jg-}665RGv6-v#N)bym(mQYC!4nD2}J3T+7U?4IsZ-!*cB1MO}n*15`I^7*Dzxinw@>>dWqsGrCp*|z=BLzu{gReN- zn-qv4_|?RI*adk~Vu>oDDe@z$r?$B5*u+%!pl&zC5yR*q!+SOLSr%Fix)`&!Iia@ zz*MB3NI}*+GD*Rb}X%% zXVV28P!tiRvS~^#sFPX1iBW;WuQo{GkNEuz4mPnUOtk9{9-p5b*_(EL3E49qoNhe4 zlFIVY9HA05TFnhdx_*REr*+Dso_@{xzA;H_Tr2iNmVe7Gk@lS`9zJTqYDfO?kZoJQ z@2Vfuxo>PrLtogHb5z9}=~fu0dX!V$l=k_y+GQFZwPhtlYgv0_J{4!#mEBq1V&UIt z(@6mOj7Z8E0XuE|)QPe?HX3lUq$75 z7mB;%jA5|Z9i3a`Ygnq}{ao;LEfPlUcud=GcP6U7lAIoql8gsPBYfg70!>I3aw zARn6sJxyJS(h{n;lTLhNv!(Q9qxM-%_`}HQq{mKvv8-X;*k%Q}{ zxN2vm)lKJ^uGnHm9`(-}>4`daMYn=5$%D9vNzk~1XP5z!LtTn$C~;zthjM}>23XMJ zQf;{59j)wQXMTQ+AT^LI%;QF->ryay{yP-fylgm~_a9B6#5KjHBh}thEUkWXMBUe= z{i@5#!KVL4a7-+@)r!}uL2J-%^7FpxvT?Kf{vz9+Dq#MS93grGsXgBrfbMg%=|yi< zcQE9V`-4*=R3UUXddsmzOxdtlk>HaJi|Ra^s&bLcTJvXI9w$FKX{hm`y>?}ycyz1^ zVTuc*P*LCKy@%;1U)HcB2Yy;B({xij;>t32-3$~>%3YPEcW`YU`u zFDio+)EI5U#W0F4c|6ih*U2(u(O^On!a$2Aq>CHcL|Tvk z%u!jHf023d^H>s$-+=#<*Ex6UFN8`3rM6_r_T20|IiKUHTu1epSDwgkWNV)!I7H)A z!|?!Vy+U*8zfkMK4(;dl-pYF=u%SI6ruw6MP1NP+m~mLo{7r^NMY|xb zriv*#njpLRR|WHM%pHtyAkV-%bL1^z`&(vml=0hP5c+lG1)WXcl|A~zW!CTTr&lPU z*)>Va6N2;E{8O^+_WwIT0LQ_r%?lzFSjou+8zk6HF*4owWG5WvRl_WS_M{8=qvThY zpHm@16nQi=-66tO?J9$PrX4kJb?-n(ysQF7LrmKby)V2L{_eD>2NW|dX0st?ysLgxH#r9<%dG}dH3oZ6=@(Y4 z%RAv1*dv_F5?=Yp2b%s!M3X_m@z+;J-dXOQ;L0|1CzJN(RyK$yF6*`TnijA@cSlu8e^1T!(J$h733|%6vQUQQ^8Evu^)32kk`|<1jK5QivZaV3V z9IfvWlKWs@wcekP-p_G%z%df1jO{><_#$J$dUq%Gh&QhqCwYPecb@7KTYiti@22sKT z2?pAibtSZ-22N22JHMTtx60-zX7BC8>;VDi2Pa8(V()4sD|vBQ(?ptXCqCAvRIffZ#3VZpni3*iC@PhCA9 zhSWkbV}+_qAT>tp`aKHHLwZN4YW^l z01`riq&Cm+*Ai=hVNn(%ErpRW*mb+cUL?f?cu?GLvUO*HyB;|%!P|LU2J_FO3y({V zcoxSI0K$-jzZr!&Yfv3c5_sZO2l-_wQg#P<@o^Ray{o=G>f(6$LBjbQ1~&G(c*_4t zwu5LlSRj0rOpau{WZlmaa@3C!cb3J#4wucvda>JbO;u!&h>x`ok7;}@+5!pej3D%v z1TRRwmk-D+{PFanb?F^pwVf^he?z62hn@Ft7{*Z=#oCbFy3>y5c2KD9YaDL-Jw8WL z3!Pk7hl zzom;_U1&v)mKu1fCxh5@e+;+$n%3$K(qxTFWIwgl6y^R+_FGy>NlVJaxiKp@0~Ugl z--C#+PYA$@!dbp5JOtndP+JWR7*T^~w?$jK``s930#eOP0qeC*j7(fXzqBIOi6*!+ zBN2d7PWoR~+WAz|zK}gK)pL^Maq1t!#8yGc?In{-`O@J2FsTsu1X${vN$4(OYF_(E z+5!;hQi9EMYS1EZtYXZGs_9KYwbqmo_U6g~=G|~7rLU}8Da?zWXzQF&bKof~>JNc~oV-6;5TP$MJbklT~|j;qF`6Tkz^1D)Qc^lSKkASUMar zSd9dqJuB;tbu7MR31_vRInL`DHd?&C|3JPyHL|^vl6`h_(wv{p&Fs%SAO7dSQD*&e zShtr^&%yz#~-y&yp)3QElY7er$^P19fVcfbK83Z`Vpc5Wait&7S) z{{G@j(X-Nx_>xF$JDGSzDB6C~%sopiQq-{nlr#_Zr*nmSJL}^9=&wWpddk0ZqH_dX z9%jFHr_>X~j*cG;+2r8*2pw*z6kq3?4|fESzTGuz{Mj@tYpZrwxT^k?HqFu%~@ zupwQ!neAS8`~MptiRDg&K;Az$@FA^64s1Ixhn5-u zwF+o-J7{6~E!HWhD^wiV3z-jFs zC@3hjUH+(PjOcC89eV_>w0YBJ)PpJ7*N zwisjNR>Yh97er4@$IRFzl5Bu9)y47u9QQ*ze5 zO|E5xOsF!4*1q4qesIQ#5MhyE!C8EClg+opgP)G-62(t~LRY?*wB-kqvMTzXet{78 z68dvbAFdJs_l`z2)G)AdR|%5j_4v?wFt!^)O6ar;f+`s5%^VKfQC#U08)x{Lg=H2g zey%;Z6513EbQ#dE3#NE8VLS7N77M|`3g2#2%}8ky;S$wN%{<{wi{#{sliA=rfD zz&TSt24a~5dNz;IVA)*cWw)n|=9e;<5Ewk*hh}|5=42-} zc8ehZi#6`?X#0d?1G&-4o^Yr03=DWlI%!X4_U~?x5=tS3L-(LP{zP%+2X8>3oidQl?m9YU4+NNsH2JU6NJp zd_{5!Y&7I`x<8@FWz=2Zk6N7-{~A2%@^@tM?`q4n-qK6F{udBHu`Uby19~47HSXQ{ z$sH1uR6AkV^}ENxj=p|3h+|T$!X2KO8 z@sb@{?)Ra^l|LMl2jL0IxLAIhx4l!M1rNG(&*$dF6d^qqAf7Cgv=U%Xzr1H7Jifoh zceBOXQM)jw@?OuSz$1(Wisq)V%fh@o_ywpiMTkQF`FjT{B<5%~$o3mWM$mK|5rB<_ z0r5dkqt9PA0p4*_3*hh54k^;*K=>5o zII+)aqmG~!`&i-+YU4rOMZ5Vm#!r**qT9_qVGsxDJvF+6pxg=DnfVhgBDeX$$C$40UF4LNGvua*m6J3H#je=39o!&%l_F9PDZi zgS5j#j+pD9>9AM~$AcVo$|yF6A-|{qmMWY92B3q1#aGN>LDWqlAXa}aZi(4%F3bn! z8Gk`9CB9HoGcG{2SQV91ca#>wK~nXP{o72jI<}s{!|(ql+%YFgG}dxvDTv}!`~6!r zyC)WdD~Rs4D@vTDjPk(Pz$>TlVW;XI8;I}6B5KMBdbBe z_`E->p<-&={mJRVls<-t&}&Z)m7Z_udP@EH;~6ecI?y6m0uU75zI6e{)<6lu(hV+g zXP86-IK!3|ee#H!b64Wrnf|DxnOJ|Y&|Snx;0NuQ)M_#sNb&h}h=PVj>}jnGif^sN zYup`T#cSLfO0fwcaP3=J53Fkrj$&D9=QvSi9>L1?vSv}C3P%1KA@6ZJXy2?i7pk2> z4=+I9zV1$bz5Fw=X;4yz3vi)1^VG*)Q=(F+$zJ3HS2TZ@U|&)P@D>Mj>Vhy^y!ZTL zRuSvBpoFmL_8m0I*Iw-19)HA@)3RM(8JTGz7-f3VU)fM7Pii%A{K-*cFxY&h2I=1z zkf@d21Pi?%_s$1@kGN5H>G97n!SkfnWV`*sLqO`y{dzw-%fP(B0@;JNCuPorvS`F9 zufM`xguThA)g>sL&!QN?3mVajuN|~`i8%9O;PercpPgbdJ4WPtBV?FcZm6RE<$T-Z zV`JNdEY^yD^e?5?v%U*52vjXX+t<4LzReY-r}RD8@&cwEDpZ@Ntx_h6huKwATPUT%$>miJKinN|OXhHseJBq&r zIE<(PCxM(WJE?R@fj=->Bq|DlBtr)0iihlk2Z;pd+B?Q$+ayG1smWn%(dS9`JKTbJ ztKV117bR>MR_P*mYo@XY8!TmL)GTp1kFg zC?IxRu)o;Cb=9N@_3y1o&O*ko+mBOUknkcVaF&VjXj(gzQF=&_cxrgN%B(N@aOmNe zqt>s?dtj(VNxEK$5Y9`Uz*CP%vp2;6RaULpCc5PQD`Z;&+f26DF5K76e%^s0;1jW> zxjD7#$UR*1et&Kul2@c_eb)ifFArIL@dsjPKt^cZlQq<0%00}4EF=d*fpO6; z4PGTt@A0#0A}AtQAV^1TQDs&q?lm{i%R+`F!ONsoKm%8KW}vjt@FV5}r>wGaf@;1$ zLYXqWi~$Nw^#xNzSv7(}VJ~eE18LtJPD))FF`EUcQmLMTqGD0)>{EnmRc-Euo(^`M z)UHeggg8lsa*%MbtcgZoJXVnzbSfMrDg6S3xV9r9eb~DqPB2zUI_m?E@eAZ$YTtz# z5-CV3zWq~D6(S2P?ot*ec34(YYB)h!eq!)=VOE_HJipDFVI&PFER_~J^lT7AOv!ey z|M9pHz}$Z_3KLv8-r+ng$=-ZF?@DY|d5p5B#YKiGrS}HN==vUE$Xo71_V*(u&6E6| z<(B-Lr~vTKm1E|Aui>%>LbCsNU-{tRCwHSVoV)+BU2lyZ@PJE{%Jzi zh5YceUWhh|hVQ&h`@~5{IoLya{`{JYdbPSbu*v5=-ZK>?0bj9%!C=%kFF{bRcQdu# z|M(bkc0L|t4Wi`p&X+O9Pk(wu&%BGiY|yun71emHjRe6?`LN3JOKi}s53pPm3ZbWl z83MoD@as`q@8KQztcg5bh3?u#93%=PMif##iChb^bCOr#JDjcSEg4BlUf3p%K>%O+ zn-1rSp#Z~$aVcKwTX1N^8;d5c{!1prW4Io0!$z*jrUvg=8x2oIix1Hb6TH0W?6pk_JF_?*DLre?djG4cd z7(%&X2GgGfSA&=&9t9>`UkUb`{xD`KSzDMTb($4^^LR;PDuG4sv=Q8l0U4&&;1Dc` zW3hxQesHIW0xGY>crLUW@F2Tn*c10||IV0wwI)xNcCZ@W+B=}z_Ang%I-z7RR9V4xE{<>GGdB^j_s9J}7ch-h_{?m@a>pe=PC!?z`LVJ!G+4 zYv$m9a96-oYp!mV@_oYcd^%#ZTI8raLc7W^3d^^rg7WL4s%ph46ljj}}YO~1l9a=E?em9uVA-;rsLkc zR@@;JEBe~GcL~9a!=*DGDiu|?da$Z4|9Kk42Z31*Qx0^}#a*HxKo|5&X;O&R_s`^R zb~coVjkCbK_*!P2)e3}&qk;`IHn7eskV25pao-Dmnjvl6vuWfyLJ_~N>%Qzx4}2Vf zYqGg3Lf_VX8@|jQJ2JJc`6{x;H9d*CU91m=XQ zYY5)Y33;6VKZFnf>GDN5KRxAPo075kgv7Lz{4k(%Qvb(H^SyFpHv?Z{=wJRwCj(@m z>)6TQ8qBQ}0a*6cO+0(4B6%$d6_jwAwq|c)GWbj@57^yM2H_AIEo05L8X(kE5$W_7Q1=1%l-6sU!;QvH14*1@`e=C&vqRFl>v1iA%Cv!qxY&*t3#f0iV!CFngnUu zcn^{IwhdXUP&1cv(+iVwjrM+#G}#1cX{)i(M>0LwVf32`Vfaa&5^bLw98hZjJ`*9H zFD`a-^`-7uot3KW><%lVnRno^^TswRff$BCMTpG^6?6HWWEz<|X95~26W zk(GLzxtJOJr<~fh5Fp*jxt+ncYeuws6-Ae-s~P(GZ~8T&^fePaE1zIT;?@XpFC&LbPk!_g#TNVF(v zUrD;P%Os|a*UB&d^k6EH=%8eX5+WFkz!T7n1%^m*NYx)1Q6hAVmeq`@A6Tsc#5$jz z!YtV=diuNLk&6azA=7(V*;~WI_)JG} z#2cqzfxV@`yg=ZnaX5`lzX|8ko1DUKpa15k!8tr>g9occ89BiyVi2qeHJX(Iju%2( z&l_Z;?`iP=uB*%w!Ct;}C1MCPrA`o|XUoz9HksavWn(PDpLfUexe~wY)$SJd)##>x zsi=c&GyEfqn)-c>W)olG@!fSwmv-J)RviXw5*FPgX=!Sv{KGcL5ee$pal@ux%@dQ^ zB_V383TrIVW%Cq>!L6GP==#i;{TjX>`-89i{0=&OWsTU?rcQlu^FrTz3=`tZzAxaQ zKYuJY$qo2TP3JF@Bi#KIStg%^M6@X&#Y8MP#ocBOyj&Sfb|jEOiYnrrsSRI%)e5jhq4pTaJ1LN+a`Ib~jqOb<#(4WpM`6;h zY_!FEd!11Jle#i`ygTH-Um@Rkv;UsP{yLkfuYE_EhSWShf<8-1yf@kV`p2;cgV z@Dzu%#F#f>GIL?nXo3{~_2tRbxpUFF)AjoQ!8SmF%luM3SA@E`06JyMA;!OQ6fg+~ zJ<~hJ5g4B$<$nz4Q}p``l-)A<(pkC(-(e2!e*};`i2knZuO5Fo0PT3AC7kUeY8}B0 zjUzN;s`Ub2KME(S*`OQ7SlfvTH{=)4HONBJyEI2-=|g%2EU5hjpOED1o4q4y|AT!u zLE_A6ntdETe{QwAiNKa-{=t~R(IJD_UjG{{_59RRXx&YD$Wr$U3qEx6R|D(4uc8!Y zO+hL@F5I5YW(e!b)Y28{*NqUT?Y`&Xjcm2eB;1>sxmmBgM`YG!*fSNoQwaBW{cXLQTC%Q!oWnK2Pv|xxV8^J)H{A*I3+Qb{XO2Ob`&5LyvFp&_*__*PvR4`c$MI zX#qy;Or=UVcGJ`d*x>)^`Q|w55G?bArBog>^J*&EH2NeMFa?*WYx|BpXipB+w)Q`2Ui9BU4Vl{OBN^v2)V0gLPVBjkPkuB8~9|(Pa<@ z`dJa@(_+msU<8C8!`$yo3zPng`S@}p+Gcz&^mK|$X_2Zan67tVp4 zy5Q-rz>K&ld?+~-Xl{|q(ep#Dh8POKo)^}8$ytd2I&>kSPI`0H-gyNMA| zGZsHlarU+KZ-j;COZy1`{WR#;M=lHK6_+qo7?^C{tI*B>lJHqpN}`KOr*4(4!_{W@8gmy2N=kyY8T<8_c~F z{B~2<_PD!k%!j0D=n09P)0+G2cjCWrKd(`Z>`&BL3tI!o4yglES(i2?6ScNRZ%7d# zAuyjR~2wi~ID>t2Qc}AY#0$%qjn=f(Z++*>4sCr0%P0`Yu?9 z!^AQ&ODPNxEuPZcaI$%EdqqP=RY(oEA%N3Sk#~9QIzhgSY-P}B++j15~qUk zD3FQE?M0KPDbf8Zw|-YZwG~)%1IdhdwrnPUM{E3XXSj!pJ+W%VPozm8Pv!5p+_cgC z$+GRe9g54T|8y}9ChN(=@-ipT?epBAADY)tm1bD!<%Ul2w(eAXb}EqwdpPOSaD+a<*SD=VZqAMBJy$?a21IgQDkNV#SuQi>C; zER`xf(6_~aNW*xQFn41O;Yu$aUF-63#1IfY>W*=OCpx|4x>Kmy)*9b=SGvmNd@&ii zJIrw$cH+$O#o}u2cqWABsve-9(?1RuMD&_m1rLHITF-fZwfKHEX@Uan?&8k#*bnGM zhSq1PZ|iOyP-ICGyWiz!F@562xeKPa?Kz9c*TU2#CcP7hCFixh*jpRwmromm!|^{3GvPkC zoV8N40A($xGi4!JQyABBV&l|f_%rUmV>pPcB2_U3CdY3Nz{mUOp=3gF?adeXgde?@ zO}%9R=a=E9Mn1^R`u5??&`e3&gHx<^?Xnhtw6`>z@d~g`mY6V_0^bt}#D&T+!MrXN zk|N8q5%|$iixsdbaun#HfE0X?Wq&H3QZ@^LGpGnqRK4NfyE{L@$Z1fEMyI)gD_p+? zNSOH=;JCPMY~P1=pYtwfhK3QmpLN!I@2k@CZ>R4zbkhf{8gR$%!f-Hp8dQpvc-WZ5zm zmp=|P;`NPS3d^98+t*U+9F>*yu#jSEYHAJ#qbhG5$ZQ>-kVkrcm|q=l2r?tPJ8A^9 zA}SCarDPa^hb!&MLZ=7EHGTj^k{vM^2i9Cuv`DknV(0vzSmO>Opj43OnsvQF;NF{X z#BC;UUpr@f@?gnYb>z-w$sCuuI@G^JTH%iFaoGYY)`Wy#jWUw+sWucJ{78>@bQvj$`$#r#AqD2mP z1@~Dzpl{pvm07#P1-7VYKga*{uv*KHSLl5Xa34(k1r2x!SK8J4F4#!j`dgQ0xbcSh z^?Cf<^xpe}3|%#+#Q}5zYswqA=Ke1gAb_kI5n8uWKHbb&Pcq+(FC#6OoK_l$GiWn- z`=c&^20CSR&M~yb)D?~uwx`~_wH}twrRY6?HM*cirG3^-+@TZYfn4`QQJ=PwU`C?Z zdiDq%ib+L@bc#k+Fi2-l40Y~57NM7fxfQykWoH+guZH7RTBjj(x|8%5>37?#t&eO4 zO0PP18LyIY=3FtY5qlV8cg8<7lz2zT0bG$=eGgdEnwNl0(V+}@F~#C=GT$CK%p0%O z>)O`m4P;k)dKsSo#4DT5>7rdNmyN8?25}6UQ$cHa{YjP1;EEO>E!Ue!$>Q&t@n;Sj z&77m2zPmwkX?89TZiF(qP8e_S9&R8?G^hU{8r+t`di9E&%Fw3_(K!D&7WOziFQloW zXcEgH_Zruu=$KH(ghV~%dHTgEOu3vVcj#3zQL)_W*BM6DZaWbebUbZaeT=SYFu7<^ z`^(ORP-WyX%I61S4c%X>dcD9RG$;aW@g+!?-&f1xN4IQauJQb>l+>_2r~S^E>snk@ zGwK(}T16>dXgvlbM#%x!2)Z_eO822Wpc*0fADLBIz87uc$3P~LpIZ&83-4_DbH#ft zbW*oDiCRgOd(AmQ>WN?{HyxQ}P7?xwsxU$v1FG}2&b|jkxScWI!B?Pa>rrt{qbBF+ z#TBy_aRvb@Oe1gLUtc$f%{gx2k*@zlYTg?|>SJt(m`ED4J_PR5e5b&Scl&v7HHavP znNM3ab*AbvM5*?k(ur-VVv+`*Y-faOtcsgSx$_r4)24^93S*Am%+u8zNo2fKAisE&>UT^XHqmIuy!-OF))v z`WP3Q<6(aotz~WYDwhM5u!E5r3Y@U-6nh{UCa&8~%Ea%kYrACNhXFr@Q-CBx5aLvf z!On2h(C>JY|9ud~{bL6xp`=v{1r6t`SPVpV18$LV2<00~#xu-!B2*RRjSJkE@G5 zCLTNh0^QM+%k0;Hw0=;dh2V9=)xGkP&y?kJ~-3O4ru?D;J}yRg3!-TOnsN z4{06Ub)e+|K|!8{D6_DeDMp!N`LAFr0plag#E&qi{J=1BwU8sJduSMo0niUWA394sSp zw}l|jTk4JWDcKhxL}cH}3boQEMDNb&F#7_|al`1<|Jp{9Q_efWq3L2um}ZEA<<;&# zpSCOfrX^%p?{gzaUrqFkBd2WHKUfk>GfU)@Pa4CZUFiL5W3%9NFU2NHk+&VbeeL`% zO)5M6W1(OsL92AIah^Laq?RHZ38BymPf(xyLRA?OXdAUcBj=Q*Ignbwz)+t;#lJ~04l*?({`OL5ww*5lfe!I(?b*&Gd`5r)aut{e2*&oq!na1@wD!TSsIQ}29 zzap&6zuGu8kE3Mj)Iv25&T4{5E@;twDmPQta_V)7L4lf!ki;&XJn9~g*Qheu+#kiG#Wz?hrJhS_imL3Vc z(%kyrvh*5(0sfA%*6P-^C{IEgt(J(YX&vpo;HP6QgQ4YXuLRvIpM;8(K0Z6&1YJA5 znOJLVtV|lLYyCc;ae{1w)#htQ>hyb>@yc-FAf^v4w^Y~w<2oorLC5b96U#wn7SdTU zgz#iR%}!@~tjI4l-BsxAX-d9i-skLz`gJY#yxnmsXrug0Ve_toH43cMh!%{VH9lQ? zXSs^@DGb&-6S5srlE~))3UlJ8DK2yKYH+8QKaFW)RM(^)mRv!Jl;{03l6xpi; zj0!C@NG@=Do8)ufbQGFUfh86~qOboo^t;s0ookQ^*VX6Z?8y4Ll5*}qf>MF77d{o5T$|JGm$8WR z=dCaJ1ZdEzaMIVV)d%=3L{thWM3a&E>sSUnOs!#Og1XQfNxZ;pHax}{SkMfASE#kn zjT=^-)5x<8oMWoMv>E)wI|y({-JB%{7|Pr$EhLu7A*K~%X){(rCdikp{(Xhb^;~*H z)@yQm^uKO+=BVD>-t@+1zP>CpA49vc*XiSWUhKZ|6$zvBe8<#uT6p8oTQ^t%t)2|i zyYCNGHbUT&l+W@IqQl^KyOl3XH>M8|Lc&yUrpK9 zvIhhd*>dN(Gun@`iOp!86FnLI;fcuDiL5{LIBzDFYoj-aQjYt2k}Yzu=t96Dz$91< zs7EGCbQDgIrQ(8;^9U0AP5u)64@%vq2%S4FxDrl&fhtk9s1gqp zuonc;zp1PdLjNOq{xPS~7GGDEK&k`YUN0>1{4~w%+!B%kZ1+$ZmXh4lr6eyc)q)ha zG}J1KLe&akp*In2B#lQhaamMm3`bldpUF^c508dN#g}^4a?4l+yRuhFG zVT5CjWW=QqJvfed^-j1ZHZ@KCI&6P6_?Llb^>5?|kypk!I_%Q)p8Z4|ch1=>oxcU01AfhPuL<+bYF^ zm6i?VK~0_1md8w`>pQWcuTcKC{nnY{fdpP5OG?4XlJt+zx&$N5ux8~Oer=F%jCU3o z6@szEQ=|Umvuy8(Wyk64F7YvovF_LhJS}hXL;Z>~)A60xD^gC^$J>+KpJVo}G^1e) z*p7>tRX_w9)fxXhLK=J0V=mA#tR5Qz5Ax$QR@3pTQKIYn`x8GolEScU!t8a^$=kvk8{2IELkPD5QcHEhPB_(nfBszzQpa+Skd4;uYe%2ZL7R zb*494WdF=O2hMJ^=ATmu2ewIhZHx;txWF~C8(?&~)mH-~?o4C3znMFQlRl5q*>nl! z(UxdH@{iZYU;Txa6ZILTvWXHfp-N~5qpBD+zFXCAkAKsH9(~rV$oP5htpN#cfG<}# zyGjSpK6P0?ryn_#g>aVRE>*I^6J48IRnLv`78O!hD#XOH%`HnUC=-8n`vMaNL|q?4rnNQ6 zKyxc3DF0b8MZ5zW1xR}9igJ6PywCTUxG6p@=ePkM!`pYzd3m@95L|!FR@^|<@&dA2 zkdB(&9iB2nPjtU;xv7#&$-I0b*c_<0!)gM{JSWp_DbNc+hvZ${15im&MAey z3i`g7pa~Mtfj8fp*~wwR2}%f9Qbim5!J?*IC7t4hhbSnv8bRd2C-}KFMS<|G4T^XT zwK4a9mXVg#1@J&3VU|JCTF-aUCBp~1tM|hmz5LOyKhQ5Df1tIxexsTMo0N|^YP5=} z9$tX-rUd+WT%-ogLjlo}bVYM5&0~;4t1DKr@TvQ0<>$NH&Hs6URqOSR$)Lyb4Om=x z*IB+&eUH0alzL)mc@ldSneA-vvLs#13W8+N>WBc>pcNC;Gt9e>X2iJ;s>K{Z-~LkU z3tIp>i2A8(yMx*}4x^bncgs$Bt7_YVHjxEl%(TVH_q+Bxs$NE=gvNJfX|jnn2bKKa zR7+zhQnMz;RWKlR%OQ!31p#^E2o5{X?{luim1m7<#rsA&RFb^0R+%rn*iKuG67q^M zsL>yjmj_oMNGtXy^s43}ahR`of$V@D~<&8cNnP^mSrZ@aYW#49awpS7%U zdA@}(0Zey|JMP_ICM+>UC851imTy2Eg+?^ricT<3mKy^?&!NAbA?7c=(q9I8XingY zXQq2~&c`|LR$na6%Y-i-vDYgYc(tIP$2I~<&aN*;0~cpY4yvFcjYl<~2uuktx9+R7 zbvXI*Z&!FK&!~3<(fPn zR2q1<32a;}wQM1!cmuh6dv;tehjWgdW94~BP$1VMM2cc->34LFIao%x<+uVW?JrtS zY$l0-&M3JL_X(`!oDb2;b+Pt0L9GU_9%oCX}I z>mT?{KnlY_k$~cZU4i*~d$|QnEMa`?uDO8_E!;=;3wf4CTaNEobJa3;vr-OkH+4x4 zMF+6T1Qpr<81LuVx~z?-qD1q+H~L7*B(WASL^2ch$;@A}bpYh5j+2+n1<)VtuG1xr z1xV`IUr+9nLG}tjho&qxhK+hY$92`SWZeyBt z|Cba-iBgFG;UDBbI;NZD3{a3Jt`9m`cLn*G{3?X^n|HNb+_?6O-d7R3-{W%pM^Ko# zZTVSs#L{<<>11|UEW)$%J z64!-cmr`$|8aN}V;*vP@!_Jmd;Y1C+zH)t~JrhDBAkebdq_kp;=APGs?WQ5Et?_F8 zH8;Du2Z@P^W8>!?&h3WAAtF3J?1pwi+mFzYD6Wi3d%*b<=?4}U2uw)bzhcSr|MJ91 z8(4XP=u=Jzs3pfZECw1|e_vb*{Nvhpq@W@cU0isWOW4Ue*SE68LfHTUUeAV#O@6`S z-gfh^7uX*c*G_HMb_G1IiFnhHB@rv6cvoUDOkBiW_ICsOL`LT}?VXB{g7#+E{p06CS93pQeU zm8uk*Cod$ouQ2!(_u}|3DdNKJ_Q>b02SEbbIn2PnjA!S+BgDZ^IGT%9VQmTu&%F%j za9|FE!3$`lNBSD&=PM|}5+$wdhW+2P)oQiGj8>g$?W^~?UbutB#0c;S4@-RCJv|mo z81!B67E@C*T0)JpiszwP%#5?31oMd3TV%=*;|K-%mA6sBoO$Q4a^ny*_vB;u*r!FH z28uOpguP#J*~w##wGrav&9!*1t^z9qN-Jri=!yTiVghQ>AI@J~5CMi#njB!Dgc9mE z6_xlp2{OxRZA2z5BvC0sF3KQ~uB@-E_39M5aVI7#YV0pxsSKkLYkj@_0 z-*4dal3D+)TB-t^!vqVDfv_5y3xD?zL|X=!zt5OoNAkXN+yUR-l* z{{2M&|3KXy54Qh)JNzyYSy^~=1IBTPNDFgoH))w%K-u^IHOOz_33B831_$&`%Cy?N zc3kd2sbqwPf1NvkV|ZrPYAR)7+hZx0NF;je-XgMfs?ulJNogLHH>@rv_eZ0r%DR<2 zu)^MR{Z5Rgz@iL9U7b0kLiFx}gl{Z`pWT?0lkR!i;q<$c*Bomfm-XBB-sN38a;cvQ zB7(M4_}OB}UWq##!-}}_qb%6|dlUQRLK7f1GuM;zy$!qsF$naYo@H62@1cc`>^KPp zZ=!0SF!QX8z@r z(%C{-%8YirBu^rHn_`HOa67T%OjN9e5z^~%&Am`Z6VjSK?(|YLdfO8Uo%lreFFM#{ zyxU^e8jDSn4eGS6XzDm}$-eJ^ES1WyJloyciVpwWLmR%y9tr>`2mj_h4Kjaj?PuIn z>Dk7&aKej+GFyJyC_X%E(wKf@lPGKdYYd9d_VY=w%4d7B@n4o2c73J#__855Q`6-! z)C0~4IDr~(7CkOO?EP4CLap&m_lm zaF|l3K-~$%If^eMzGDY0=hF9b%6cH%K6($puZQ2Ct#@8FFG|H zvfNHkki_GAQ)8OX;h2;9xKA^Q#l{0I%sOx~A-`f)@7n7-RvaQKz`?<7tY2HWq1}KL z)A?|?g8cy*o=#L*R~<_0pWzUs9Puy3O;W-4b{)Yl&}U6}y!@tuhXUruP7~eTJ(J6wRmZpyl16O$WHS@R2QlS3o z)2{)753Ud9pUgcGR=8b%?s|U7R20f{xHfng zQ(+$(9FvA+dmv7qG7%fEX9WdUjC&}6gOtFutc)t9d+`5!d07F*y5@rG9);oi%E14rB=UIHG2H!X~DAn6w1q@nYW)*=TF%IFNcISzGqgoN(Z$4 z%f3%+2tpq;1xp%q=jSgcxb)oCSNval#DFPW{OSEIKK~)1jXOl3LFf3?(#n*TptQT2 zkeqj#$6C?lNYy=De5+V~l#b1Ye`*Xpmx}d+7a7JpttgO=M=8 znS&&ckAtqd1f@mwkY#z^^k$U=2ue8v0dh=CGR^vVa{8}5{TavQmVtIDi|(&lL1)au z+Bib2kKvFlbdZ7pIEH6TFuQh0QJPUh|68Tkb2OIOM}&{57BL=~dhUC&n^(iz<{nq| zHlx0+Kd@daQ4=UO%XcFuh#@Df8-Z0DJ7%)jZEbcc0uvu}d564z({m*+H%EZ-2Emsi zsrF0q^q;5C$LuS=vV1uc;U!TsB?1{b0!RD%yzzGGJ+ccul0}brWn_w_3tEdAiq!5x zI!5<~+2(RXEG)h=4bY0(qXk~^$A== zdh1-33?cSL{aEyD2Vd!DG8T&|*Rg1rPPF21%i&wo(%ubD!{FstZt^O8bj-7fsj4#- z?l}|+YAS*f9kF5b+HIrqm=T)_=!9&#TyF9$)Hi?L;UObremGX;30j*A&!pTagH6M> zall+1>sNOg&`m59xijBoP`OtM`d;yu9B(1dJ$4GFfJ-(qni2&N1*cr1xfZn0uYE!s zFxp^=ke64{R~J!mrEFeY1j12;bkq``J&7jQT??9XO%~Aaodj0^?>C6eEb~1SSUU-3cT0`6faYRP<(FvzV6xl_bEfo%jZ1)eGFO|ayUdZ3OLhV z-$Q69nNEj2&FW3i5LI-&WpZJ|ka6G*5EMUa{f*SQiDk+D`WWKir~c#W3c{@<s!B(EY8iiCovMp1AMh$sviMi05|u5{YIBRyTYf=h7Pb)6IwdMo{P zGoeks7J6lMzrG;NqU#Q<)9T4#o7S2RYns_B)o5MNZIk@o+NpN+J6Xsd$q~qK*lFle zx}N#E9x+EG@d)?ND@4iQ%NsKMu#WRPy#H7x1W;fgBuP_7ij$FGi0;AxW#U=polu|B zF)nZeEcF(c+VKpJA7qY*k<9yk_pL2fd0cmH4PEDXrt#R;@ZVlIZ@7)< zv$wQ3Z#HW>mv@HG1>~vmh5`Yoac_mZ81rZ$eHHq&H~Nv-B}Kg3W>NuwXFLppYu;rTJtP%N$N^{!gl*NGqpW$&}pbu@Z1!& zJ?dU*{-Dt+5{^Yq^TxU#aQpJ+Z))4l4Qo1Ha`5+ny@rR31pj>v)OLx#^v3^RIhG3g zbU+)cJ(xiP1_S(j7JNoQW)JP1gF{15$L#R{{WDhX2AOsQ8P z=|t#y_%~pKsz%T4BVV@LdV#SWANwRU7U%8jLY4zw=EVdQ9ECNT#p^Ic&m zn2+U(Q_#&>tLR7#H8Go{@(1I>LW^=Aq?_J&KVbl5x}l3o-zOdXj#=gaGkzWaoM(Sv zB*MDmAL81cJv64C9lcy%54P{e&MA3wkUn1>@I3Delyvu{yOwEQQEkGa6nO~~@gmsL zLdW0MmE{!`qN@K|{XTmFP3#p+oUgdHAU3UQnK!=w3CN&9=W%g2uA2hKlp>$E*Fkr! z;!T{jEmMcG!%R1vfYi>25c|qQ{W$;UQ>;Ok7kl!OMhmoNw3~Crd2ZsRn z%UHMw3ant~M&kMIb*j6K3hYIFHx=E^mc&ntyJ#@Bxu`g`VlJT*a^d{z3kSn(|&z%|u&S zsuw5(A4XYIv+cCu^ABbJ1y25vK=K*eu`yWtjvKur&S|DDBk{DY>wP3O27Sc^Xu3HEvhc-Jd_FnSGD=V7`JxpZ=$k?rnx2b3%bAB&Y= z=N?%zoLr6z#9iU;TQ^9*tEyfv$>VQQnZG$^?6;>~H4SB?bn!>R!lX+Ua54u~Bw#|6 zRYHR>%XicLzsfSqqyB$}cRBrBoK-Cpvv#=TSsID}njK%oIM9}q0p1vw#vG3@+=x4b zjxomtE>r$j*@EDFoj5f(>q=a#nVD(G{BRl)x1DIEDz~udfbtwhqMX!J zAPl-mj{B1KhQ~f40k=}wz z7)P_u*?!&*IPvTD#~Z*7nDqW?U6{NtZURduz_rI^`@g{^oQ!20ruX-He=j>jP6ku^ zYlxvlQoMSY{G#qZMl_>+!QmTfnesd03M*1_t{}AVtT+bAoVoSV@>vpmS9JgjqrjX| zlOB!wE)=GdBgD%agVkT2ZR@n+RvzIb;Xcu5uo2jw6W?^idT~-VOmJW)#W&)BH> z49u&WgLqY}?y4Pc+*#YN93;Ode|^~6z21RjdHT!;+Jq_O8`$ULe7ID)afyFg6rBvDB=X#h zg8TDZ-`Gyr%s{wAM>V4gXkn6KT96N;-v=8HZTI1&KQ0gOwIj|88pg zIn`jJgnhjTi7)Vv)5V#qVZYmU?cT_8crq|8&e!Gglox{mYn-S1 zG#fbOOX*7fN1S<*VmZlV+|2Yz`WNedwg**zv$-9wz3S|}GFXblNSUjybD|d8^|9et z?73B*?_ykUr7kxC=SH*WmjgsiRK5BLU#bsZxTi;KyOu!fO9$JPPo4Y@_;(XlKyRJO z-F|PqzL!1J%h|ps)f{zgm&a0GUB>-d?P2i2SzTAwP2)nO;5WhWD2fJu9088ezXsSE zf#}L+i+w{ksNb$r)mv4Pfv+pP<#>bjD)x7>;K zJKgFnW(*W{yF!3^tU}cv80sRjk(F&@dD3H+?8C(TTO-fgo`PI;1~U9tZ#A*Rg7Py( z$Ui!c&CvEyZ6^3yC!tqlq|nN13kzy8mAS=#d7x0Iiqe4brG`YpG~|k9Bqsy4Q#2^T zB8A{cwRM_dJW1RAX|JBOvB9>hIB636nNEF>pkR;^jv^ouFc^!U{0wW9oJwP|%a>0wofup!mh)Dj1=E&32`!-Sx7}ZdPY}!uocNi98Qb zk=$J|M`6?1*?+~w?$=c?QMP7arQ$Oe?@e;(-8I`cwl$>IeIIbP2!4b4zaKK+-y41e z#a_Rm_dJy-Ih;aT04n~U%tnyr-8;69tb{rcWG9=*!vMxVA7Ng&hOD-wr!m6HxU-h! zH|=u^L+tqRj~k9fC{EGoK5{AAf#xP{(bQ^nr=`-`bblU-Yoa!kLJNorZ;HH8cAOmN z4tqP2YBHVtZ^1-ay&3tF#Z=7KXifVD=j2SL0G7GhRHy{m5r-6Qx6aJFJ#F6iwQ4)t zSvw{Jhke2WnMC}SckPV>`=CMh9Lw+w1aNn+O8zN;uQT@u>ZA|ubJZ1I>#UhG zOdR5Bu;gpG&c&9>`mz&GbXZ2*9v0hxq5oTuC3;m> zHau@O2~WJ8VI8LfhXAY^9d{Q4!?M2V3xKbeq8w!PWt0_6?IgfA4+QHE^v{&=&qEIo zYmy(I42vMZk89xjefQL9NFuoB)i%4qb9w(1lRa6d#zVa`?r*XGs)>X!xn!Whx?$0o zbW9K-n~V8U6FCn{XL`^#v1DWs&?|$RANo^Zry=h%Koq!)gg7Lc=l>E0QL_n>+_y?#4qFS+;?|Ke$UC*Y%9(Q4Jurx&zWWa z74})&{)7}DVNq=aN!V_IzVce5u!imc;`PA0@*gl(_~%R9{jtoEf3NunQz&(=8XTBJ zZTFS}PS1l=IG-Jtg*=W12KGl)tpm6Ol%xd=IBhP3hAfyMHppLA-#HdzBRv-81^6d- z9y8FXWI~u~$Nc%kcCEs&d{dbkF|jZ#OWt}{=_$~lL!Aw8fLimijm360b4E?uRW6a= z1F-;brOT4zG7xt)54_VL`tR!OzAP~k$aBkriJ$%;VlLjS^Z(-n-cgGB`^e!h=A*5s~=@Q94T2kyX$7p&F{T4 z{PiJ;a?;9rU-=moLmiTI&V?A*&8(MCT=y0MUn=d@_Q=cLX zDgqe+jhL{2jCFjp7etaS^yr@S3?Icjt3rSe_vCs+b{I7(O4+sggd%EN>6cB6GWX!! zA-&dLQ`CV0F{4gWu*8NRZ(i>aiVFFfYG{_WQn%17Qeh~OIF&BS1nX1GQ=Wx<(zNe8_~viNex+J67x`$Lls@G0=+ zxA5c2!;_i#>ty7mKhHn+ewr^{==*Hh<9Pk~4*UB!*naJQj6HYDEW)nk{3t8R9G}Mz z)^Msa+4@psJQG;@3osDDKwg^c-dMCl)=YUMtr23>yO}X7O*o6IEApenK?7ED5T0GpbwX=FtPPP>PjCM#QymZ zQ_Ub22F3AM|L%z?v2Dh!SHuYD`Dq^LrQP_H0BKnpZl%NGv7d-JMwY{aOrvyexMPeu zo--4OZ%N)gzn=sf%8NEW_ZWPHL#%_OIQCTe|?WTps+a3Ykvw6n$Jjv2JQRo;XnlZ zaS@ZH3+2=PjTzdjsn&s>Z+hfz+mA@wZJ&nGkB3Od5ixytE2v*G%#3qEXnJ?Dy8-f( ziH1T`ESZTeQQ>qeCuh@J0UFAj+U$?csm4;h%gmfYs@FeR>=m{C#%=Q36RZ*Y^JXwaGsq1Wz6;aPrCleznKg(XU(Uow$+}#3 zy#w(itUX~xu*t+%{KK2jk{;K0=1ZKKK_Kf5k&^p3VL&rlX>$Y7W*y-1>{$WN`!oaa zy2D$5zVpTtq0L5jkStT%-^cSA3KWD+myvDs>Md{lG~h_;2P?2!Qs%^%gy>Sb{=gq> zoZOLiU!!`}^-&CGp?-I;GnY68d|j1}6&}^nnXy_*dlLJRKH~ug*?29##?wk}PKdoS zlQO2tU#ea@v$>q;-b*KI?8_kfq+^82FI9w@t^@KJct@w$NcK;cd|I`BbOJL1vaFm# z#)|yYh+KM#US52NkB@Tl3h^?zu-B@TksmYlj<2l|1$yN^hFFidh{FBHRKW!nTRT<8f`buPqcsf|7< zin@8rNj0sYLp?un|TBT_0D*gC*+o6q zZ`?xq9mvxJD!5f@uM2V|-&Id^fQVP7tTR(@ zG4f1&n2f*TG_VedVeHlKgxK(nMH?i(x8F?dUx*`s0ZHVME$%D=bi6z@_VAOoYnOKT zzLUW4(y9<=iv}C(%TVnx%o$Fp*6bs$vIJULb*ypXn0AcJ>ERL&a|uRW+!=DU7`HG` z#~}&vaF4}lrVDv`z71L#;+76vAr&L2PkTbMZJ?q3kyqL`O|##fWX0#-Nw;69nn7rd zKZ=}~6o1O{Pi`GR_AmHaCE9m6XE^>A=r~Tx_1MM=}Qk zpJ<9hVD?mn+$3U{fvc>9V`;LWFzIcQK4pT30F$#Blatx;V|yOatr>81+@qgOOX_qs z*9^QxN5C2j4B!i3;|R&gSs6nO=38rLkZYAg_tD>PH?CA)Z?!S__%{UVc`-4y^J`rw!maHlGBk0RW#aV4=RSHe~N z3kISTYGrQ)$Q_hGNeB|&w!5)Sp{dk6m4k<2)V-)Rt>|~sPTF*;ZqqxMpWyhqvolX& z&P4o=Ang(>G9($2SJrVgpx&(qM?^>13pFQ4tMMj%{sjgGjtj!f3=Wc73$Y=YNC3}# z;f5ZI-IDkWO^+kDys>kIsJ&1h(4G;Fhbk9ta%xZlds~lt;E^+nBEY{N0)-JbLePpsc!cDYbe5SS|A${H;fI0(|JXJ z=9_g5>G1N2!h6m1zbbF`iWiQk;X#dUX^_hsdFgHk2Zata2xly##xz=fev zoCD~IgXm*A|)4kMC{MHnB(OPB%y8G`BiMD)dpv|>0enA-?$0H)S3JnsW z;N%ma**-~9VUe%=odx-4P^)~ku#yJ`!!?Ht$6l}H0ALs0>g;H9mP7$ z)DRP;@#kE&oy4Y=HyOhn-?)VEA;2Sqe8HPPn%ehOH2G)1cH;@#Un2=|tSZ+WuB36B zfE6w_Ue>V}&BV}Q+HO&5Xeg`R5xU(<6q}d{AG(wVc4=R!jeGIq^E=mEcX#mqwoWp{Y@T2sYEmxN z&a0_=+y&B5NKb~83&2aB&(|=NaD>uz_L@o|gJwc`-e86?sbQvERj0nL6?g=KWM+-D zY|NAA^HL{1hqDYro4>7#u+kz)$4Kd8lPS6oP|aQ6W_qkT|Ll0%>|Lom>aKhdH?ANW zchWz*j><4}upOzIlfeFDqniyZS-*abQ+ya{V;j9+JNX-|Xa-iB$6|m4s`QVpa-&&T zS^?36E|;@s2IeQI0Zg5bD`bZ&_3M2%p|&K#*zf5}E*51N5Kd>(pg%p$ba*IDPD-K3 zBxva5Xz^ZGE~dTLt;=R#o%8n?Fumf~yp?<-dwG&-t{1_4f80R(G}4(fAt6fO!EZTp zuIj<5@=49J7rh>)CU1QntGHnb2|$1YB2&J-g~}MHKizs>gW>TCVZtpV!SGSb5^R^{9ev@K|d7y@$F z!m!*%i?V8?s}B!)UfUn&=n4EE9bq2(w^KTPm+FfvYO4DBVSy9burHqwAE5c4VfIAt z6s5G!lvFIxG5gfJIA+tH(x`Aha&m;lQ_IU~%YiyfbtNS*IjtOQgwoiLL|Gkj#Fd#o zL5)|Q6>Eg}CP9j_tg7s&a>@EHRRVQHgkf4hMF=$u}`%2AOyhue0I+BS&7(oAV+~#c;K*~fG$TFPmmdfE=yT=!17F&G#I0> zN1mXWfSPFn#)k?nX_R3Ze6YL9$^D1a=GRg&Eu5gfe{zfmM4-r3+coH~Vih$L@6mHq zHEqsgH4LZn+L`EU-!Y$PVgIKI&UuF+)0c91(2%)snAm7!V;B)&cx|=bPyqP*>9x=> za?fi>AkP~<=l>pE1IN=Oeg3r=w#%PCHPq2g`$LKkxPgDf?7JYs`ao9%Fl?OY;(x5f zd<-D+m^>zHT_u0P*20y3Dh$!`zl7|+hJgK4U7l6rfJQ8C$0t7`z&#}FAT z)*;~)Yqqaeyn{l0#-&~VhTr{G>tcPcSno9dsE z@+!_P_a7sCt>2&kwDHJniy(xV*;3_u-86UX0T1a_Y^oa9izC{x!c^1CW_)&5l&e>} zeTr*wvVbXD9oWDgi0Z_Q1iyz6NJkV&UYSEVdkC*?p0Y;i9ERLpVBqn+BD41ejJ)5S z>3$!IVo|CxW2UW^Vp^q*dvRf>CnV#2n{V;Z4^}!_XW!b&P;IQNflKV_-6w$S&3pm! zaq0rlLRd_aV};>QAxj|}r(i%nbz>7}zK6if_T-xnJn+&n0+9dn*UPW= zX2Fm}aBlg?f0#w3aSs{>Gg?7X3b_c*KPJi1(Qgtq)Q)EoIuCfm($DVv4LA*7^1?9N zpOkl%-AQ2w^n~rnN&iyjHai{*$EC}JH*WgJC*Xoqx{_l~KY)<*=1GV6ph7OB34mx~ z!O(Z0bIK!5?tf847B>}ji@rMWva*cDejSuJPv-y)Z}g>Qo$jT7cZ}Gr{i{Z%x7oih z;n-tWYv6$e+WlQ`{2zgOE=~Vp^lLM=!4xf;=cgLJTf+&18pyR<)Rj<;9U?K{0YoZ9+VB}pkvaDMKq_hNISN(nVRO5l$& z`$4qA!ijB%D0WxcXdaFL%t#}-D6$2b$#9sMxZ(8lLFp2y&PMbFR^h-i-b6fk$fA*C9hEco;OALt;LjFtrvs*u@5GIm9gQLeulZ2+&Uz}P1#C1DJDRY+e z^s#hj)Fi5|4mRaTN3F-VC-#0?C>9bv%zf__8;4kEGPfr{S)ZYxJAJdmq-em`D{6Kd zd_<^Ri2@&Z6E80;?9VolYpqvmGP*d`^pZ1d*PR0Ty^>uCoM zJBMKOL835<@r2<*XeJED9Z$wclC=zK6*Me}F7giazmgUGj<7s!SM3H8VKF_!DRgOW zQsWSrfaqS}V+8z1R!K_e2u4tktTPbo1h#6&$2@?B_e;P{&`9=CUl_3=>%K~N_F2YZ zS+_LjWZAJ_)^-%Dpa?ZeZeHCJgG!HG*MA;@Ar;I+4g=_BnJrdf!T z#MAtsAhm~YXCgCZmUE%_H8u_UiI;2Qf};8Vq?NR_Wo=y^wJk0L=GGshm=46ao8&2$ z@rMjVISbG2)+_#-K^un&p0@#87-h?t$53j=kZR=|A#D+3?|zMRTu3=RcTop+DjP-k zjLG2gy^c$!$&#%4dgJ|bKJTe`#O5a_%Aqj?dFI!8D&Y_UUeEiflw}r)jfS)H^P)at z48T1Y&>LcIb5TlO9&^v00-g`B;B*Kh=@~Q6#XPz=$lWLW?`)m7e-9-o$&ia*SUC-c z5SW@fyWoQ}!D?w`Q`lY}p~U=iW{)U)qdsZ5`4=93hGwTbY*3KcV1WbuLSZ|p6gL4S zFni_!dR8qhGD%Nd9K7PQc)GIgeNXSKND-LDX^7Ksn$>n#g0MvN z!fc3n*MIYU4g@h@U&{Fr!}AofmX7nKxILbE)YK88P5HGlFrfq@H4IX+0sGJB7M4z2 zwGH|);G(;ll=JL7&9BPEMDK*Rno;-5`ob={3}Rwp7h6q{)@U9F`wD7}=sF?KLT@;q zv4RpC!?LN*WwCYlU(h%j>aNg1-Ve5R1%Of1w-}-$KK*W7JA_$$zW?pvKCnQ*oEmH; zJ3XIIxw=eoA@XN^i=5w^PBe)8uwt+E^Hii0r6UvEqgmj44{Qv?rje%;i0F&k@*+ja zEPueYm4}o?Vu1Wb3vtO}@Q&R&5?N0in@j0vGxwkZPafA_5y^mZf^0M;-P`c49Rvgh z_CzJJLd@KC=y{sI>Za*v7q?tC>_XzltY1a*Pw25GNF$lf=L>p&v1aq}4{irIV0%mb ztXn>eHtun?k1ru(aZ@IKQr5;4UWnQGAx2ApezQToi2U93jI9{a_f2itIDz8K zg< z7srCIkY4ATk&)4Myl&0yd_uzKc9GBF>7Tf7KBzHZkQ zA-8I;i_5wDrS&kQVFkW?=%f`;*EnVIZ4m=Wji%g4n4v5Yo1_Oyclo3_@{@XDAV4uz z>*JJ^TL&SA+T%MpC2B1o0B8{#rlYgC1q>>D&YFqB0xR|HiNQiLp3#otu7#(;kYo5e zL!TIc4Ibo@@UHBcZ&Ui{WGkOHO`h=^dnn7j*hFw}2p&cc)&C!H`p;AHW%!S-RL7$o zrsDgN?POT`-}^xn?bA8kpQ7EaOHhCO9$>qD0YP$RlwyjH3M$02ZNAcEWCg}*zd~-` zeeCkye9oi0s-l8Zf<|Ut--(Tr+m{LxW|pExA<Kq3_RM zz^ZqAJ+0Jh3N-!qyO}`%==ZY0kKOF$d-C7?6@O?7CD0NDWQ^g{!V_(CUsW zy!dc#;J2xBv%?;Niv1ymsg~vS<4b%3RnV;x0ZQz|TtE189t$L%RZc0&G?98f=}TJL zbEV+{;&U}cf27|z3U4Ecj<@*|3Plr(Az3`37MH{34KYl5r0bck94;adMFvR?C0*fj zy@AK^drPO$5WEQyF*UT$X+~fMYyl`Vkg3E&sc=_f^6qIU33X*~-S-|#g1WQd9QMOA zG&N%k|#K*Sc3a;f_=&V&&AOfo-cYpuZl*t#x{W#Z;&H4ogD-OHGG<* zQTyixD~?oOm2>)-(Ha$|U@<%VuW2JD00g7ToZnC*+ZroVo^>H*G54Dz7yb2NdgFML z;fs4x2aYY~>qCh;P3*1;>3&V-Jm;q<>bN^!fI-F1Hyxt*p z=k)ErN7-8WdEO8Fh-)s!>aCW;<@V4K8|e08DD)Ied)ik)L<^6g8PRj! z>A2)tP3oY5zR`QP5Xnb3;0-Y~TMr7|F9SKZC);|(Dp2aapWG=-On(v@TCY^F;^1YZ z*y>9G5&bvuMmxQ%HoYs%a4>D#MDEfrkfHSHG+0isESLX## zo@{)V7&kx$dS7_ZFwa^jFz0vVXyKj!t>Fji5EpU%drOAp!2ZD_-ZoeIO?ZF4+^xZm z$g2vLOtz)b=_m@=2QVs87m&>^+^T|*5D7P--S+DgQQ zo0Eaqzzqwc2fKPD5R4!Tp#uTK+3B z4*c&4br}Z#S7CpQE*!S*i5yUXbPfkTO_6}+cDB?4_#)Hply&QfqZUZY&ldK{Og?7$HoGv80(1L8#3Z%FK1u z^4(doAwgEE_vd993)_pAxBR@|W4fqRI%Ku2+Ki;>dW87p`kkSR9GCI`Zz-9Q|NkQ; z)9beXIpGt1n$Ph&UPu4ZF;*ZF2Kh^=YC}YLG~GG`phB*{?gee`u8n43>g-)SBp1wy zEm!(GUMvAzQI%CyP~gBQ>8eK)-JssQDg}dy8l+Puo3iraiEszr&M6}i^G4;D|13~e z6Q?*qX62t1<4tq6O(!2TR#r(K8l8m+SBqC$KNjHH?j1@2hB04vCVW3D?ijMODu{^* z)M;iiD1K&-jp20X#x5^oc^~i|7^A+0g~7glE-tN7mj~K*RFX^pFMPreRvG^pXu*Is zUz&{8GQwT1B3TW?jn~^2CgK!_96zH+4!=CwU70@1dNEhA>%JqSMvvg)5fpnqY602% zIB*olj9Zr_Ifmciz&|bP=+;ZBAmCEA~2JKsIPQ+q9 z0Iqnw7G9-zfqdpF;?dv6x_<wO5%99{XcEs)R`PN8$jKXw%{S;?Vym0T>vs z#RKG{oshYwt&`Xu7azH94ko~y9JGu!;*k%j`9RS_Hu_W|2-buTJD2$rt!YL(I^2tL zUuTii5MfaDj(?>MMNAqUoKoBz^>vQAxxG8r zAt4$VKp7X zb#o>@O@1w;s(@i%nuLSUApo;Ga~18ML1z@B%J@U@lsc}!%}70Gml7DbC#NJ;XP%~y z!AJn+8y#~jBQcCVm_XThw4mMrMOt}oLmS@}j%H1oXyZ240e@uqneSXi$6pBwrDf71OAyMh2n&pas>Yma5QXGFQ*VTs4nKeTl-8?igEl3 z(8`^Khk|mL%I_lC6-0lMZx;;UQt$8K=)0`*_LnkM|2y_(W|0LAE?J97s6D5gbs8si z%2a46h$(%qHkh^e%Nh>f$_LkAc4pIG#{VO9j1Kh6YynNx;p&W#k_9(x2(Ui`63{j0 zTwQo@Ya-1&o1xu9wX(XgzAn14#K_Fe%-y?pMbzBYnh+quC9Qb|dhvw$cMxLSf{T=; zZxCYBsiuEAD=?DLc^oPNB-1Mf9t(>KK_6(<#j%n?i7o_%HvDkp!6S ztMW*gM6dU@3=T#|zPQc??q3Yf6kS$B1ER?biti}lgi%2|dW zcge(F<{BMIzFCUd0URty8Inz|~VIipuc`)ao}*PefDqNTDjDkTQoy#4mj z$z{w!-er&N|=D`LIE@c9LZM9aDhg1eg;$)n- zE$x{t(c}yN#mHNEBUti9$xBF4s^wE>-O@}u!zx7~V1PF}c6DE2K>jKH)D zhjdPBMJ-;;`mUr&aK(&Z`Xc*C{GP&N9o8tY@9n;y!~`D$&K+HFfm_5u9lMYJSyHXs z;3GkJ@@ksR+wSFZSMAzH9|7Wola)H|hv zHQ^+%(379LlgX2by#qX*Q9X)U?CO|c?XZtqv!;mnG++y3kX5JxD)B1n>aBd&3$^kI zYW(8Q(_+r_S&>2nqYQ;YdM`HwFV9i8Wi2sWPOUrM}C@tmk6XF)ietm*-qqiib1nbfr5H<8aAY zKt^mL8EDbuBk6@38^tC_^n+C}#;}!;zv#tjY(PPl3VX5_iXRmP#bAql@Z__hvy`wtrh>Uz!a1%Cw88p=vJEK&uj3zMVLCIRb5tR@Z);{onX4mwh%7+w0FHnX1&a zQ673$7l2#e%U|$txy%0)KvMcmkQf`K5g7`hR3Gd7f3MgsIyX%4FkfEi-gIE^vvbav zUUP6iDMMPy@&hUPB>dLR%A>-nwz$pL4}kGFL^#s7y?^ceI+uroT0m?%NUXgd)NQ?DQglJ>R6RGV%s zV{D2?=%E@_>h2eY9n6NUJ?w_9I4E*Od8EDC&FWGs&`JrpbhWkXh9XTt)fiy@VN_e> z1`7^HJ=TD(W)OpAY0)#^aS6zjVEfw$|2}?jdk%c2wtwmCRxR){uUN$YarIm8NSQ0j zQ?Hjx1SiDD+1O9^npG3gS^ccDZyj@Q9TVe7ZW3l@mK9>JxndYF*;%Bl@h%xqva#BKkXy}|Pb9z=#ZWwVgJSR*9LGe64`+xq$ zM(`o8wpAy-LV!x4SksB*`u!-(O{eRwj}=8fQTn*U;^(f|mab1Y2{P33@^TBSKW6Vw zgcoZK&?AjyWmSD~^N)Y4s(xVH7;7g(Gn1rTSi*;!u1ir7BcyR6*lbXm;=%l2QNco! zE^UsP7B8tg-jCFBT-LhqJfrz*#S9$U$wzoWi33reM7R_V&)#D{5 zA#BI|u{_FU{*t?&gJm_Etlp0i${1^y)+H?6mxMco3RvVU4g3nOirROIfaPpG%UQyy@RAf)*@KA za$t==Oz`hQQ)G(kAg3n%_EZ_298^w(`~7q7gTqOOki(S7hJXS?C(}P1`JS1`+Jl0r2czlPfdMH^+8_BIo^SL7cWz?1Gx;PQ@j+>t z?L%u)C#Q7`Iw^+=;{jG*zS8Q;u;Gb#w({BPn-d#S!eEl8saXp`fQM&tt^^m;{;0gR z-Up2Ms)2>En7EtQpq5AYbIXU3(KP+!voD=s?)J>Wo}E*O2_0xLZ>F4|vizXgS5(Pj z{F8kJS()%+IJ*I&5S$I6(MjxTXIf2X?4s5geLJ6Rlglb1J}@Q4W73g=3AS4xTM?RR zjbj=tFajPX`?Oam3|vnA@EZSzIP*>kt59jYGr5?h`ER8g_e+cMMU9%kRt%un6%>m0UpLI)`E z;)GKlImLK-?q86uM7X(Jv;CztP;_KFv{ZZ_+l(oBWk1Pa7P?BpEg%fja8Z5`Gq2P= zApBZRghoXe7<9GK+ipl9>*~6=zS`sRLZ0m~XF9DzH6aa93}{dPt)Sl)Ra`7#RbCA~4-m2|bF)x~ktmFoz@i`%>Hn~e=+Bh}VP zlN5|`pkf&6ilUR^j&PGh@L*8N?MP6h>fERBrZs!AUni35E;5~9eyK5=-x|?cTeGOp z09XDKn5p{e;bre0Mp85ruE@Y&5Q9+0_sq86$eKfzTlUSf+R{{uQ^8y`0SqZiAX)=8 zi)K8Hax(!r^cdUpox8vj-+``|!28wDwQP^7ttN(za}p1mwfZ9)NZCYcnSAQ-{8V(9 zz@Jcfc}~w$EoYs6YPJuyU}1ePCj+jwp7lqJNKNm-ea22{y`GcMz_)E_^^bxN3>VtH87Nox!j8uu3=+Da0C>wNIs|{fk z;$2#LPhPdGcuHSLQMH{b${*!-8w-!wIA0Zga9(0@0qn2%NZ*4>ITn*00AyQ|H}7ord&msZH~-? zgp%_^0=hhXO)+M!W+e9rV<*}2Yn0G!pWS1+gT4G$gwPDArglYQ7g9s!d=uKjbs_>@ zHQ9kia`7Ccr}g__z*(%A2k21Lbm&f|@j>&Z258S%wBFyH+gpd^Vny+vulhaKish}h zukrpML85M&@UiGyCh(R^g5MdN4iq!Q{OB#9;6}dbo9Oy;>(>>3vMR9j^G}-4z4q0! zw2+c1KX$TsLC;$b+HC2md_bQE&fzw@cqxY?U($W?2ipubbJZzRf%P z718%p;4Od;O|OeZf}Z;qOQaRgl+bYA3)tq=8SeK#k=5*KWohg zLfB||xQjjp#^dN;RlgbZu{fVD+CurRz3GC$!RZ{Ye0Wx;c#z~o-TLHXb;e(GwB~axzT}eFMy&ua0i! zjQO8G?g<10$Hs=lgEvfTH4W7LLh=x;Pp_|yZM-uBtU|n5kYP3zQmW7AEjZ(<0g+p7 z9gXX@XOB?Pzo&MDTliM7q!d*~u}6;_-M1LgQnU1P*K8c#9&p=rV_jS1+s^m`u7GYh zP1eiymmC^(u0{;T#ucT%=%jww!+E?xzj?S`JMrHxs?txrU)``d!Fzv2>hDjtbVbMI z{g8PjecpZ-f4bb70FwKoNALtZjxhhYo8?P3h927+c?th@Hog0$3&@Y)rNcf36W{&OV;V^hyB?c*xdywveNm<%*-2s5~$KNp59H{fkFD6 z0{uz*GML`hGx;$*f%;0?nBjaus-g+&RQ*p4XIiUL(BrSm_qE?%%GZIN<6;Q5j^>Fl zM~Q}A31RugXhX~9;BLwF!Jhsrg`nFtcH7Y~zUFV8!{wIk>Gz#)U)SsHDM`QQ0)D3t z9KPga`@p8Vg?UpI&rK4?-x-G3xaw#EYK-?zLZ7Od$wS{?#NTAs?i(4nghaEo_)|mJ z9$T4)+ynNZdr7f-vgt5t;L#7{wlhO$U>jI6u3z)qjQ|WR+*AtZV{0+Qe1F@9e6;gb zLyl@Fb?fE_E;ueE%VEOsT^l^UQoKKXUW6Ii`!6<#|3oMVB`mdOiRh)gjq*cuWi~^^ zGyA@{!7o=wtEY|Rx=+mQ1Wys}$b4$I0#eQdVNZ%d4C*SreX8N{BRwmw_QJfO^YNQ2 zIWtL@E;(%fJQ z+3kX6bpxhW@csnf%0h&y7b{y*8&#p$_LiHNkO<>?2fPivxDb%*H ztThN1pK;n3%4)2pE98pD!)z+mzdY)8x!q9GaMOJXl^op#e_+8k|9wdpT6#c72#O&# zo_5`|ae48JWw6-Es94gxU?&aaGKYP0LL!3<+Y^n+7$Qa9tP7pVvbuxc-lR;ucqJ-ufzO$q%mFZU5=f~;Bo{I z+8N&;N5d8W+TMJ3tktH`uxR2fTO}kW24uVSWMJ!ihEwIZ$A=GnvR8qb!v$s1N7b9W zI}HZ`gh~8&RNQCQ1(U5fVhDx$$YKSD0aslqWv93bIfC*HOGch%>D^YuMMmMa=oP2e z6|C)6iH>ceZ7Tis^mid((VpNnYsE`efmCHH_|98MvhcDnKY-8P;5~V?1mQ@1&_1+Z z-sKqMmRZ7r`Sfl(6`*(7T5M_zntS^ zfF?(K1ol&xu%EsVx^acawZQfM8C~_Rto|3PBofi_v)_Bm>+(v^^p$nBsfkJO2(ed` zl|HeZ?|p{*S($n1${CE|oJG@#bBD9;j%Mz{<7i66p)AFn55;&9Yf?Cedj-`fG6HL@ zEni50$T+$+wPNKEO^SnzDN0}oy?Yo-QpJ161mftX>TOfZ_f}%|AU%d7cM{wcusXfx zh{8q2sLG_eq!sqxe86jlVYRuG_6h`fj>w}6#kJy8{zzvnOVL5?Mws=Ydc%Dm9C_{E z`9kcu^ZUrjOiRyS_~Z0Ct*hg(wB&vG{RTt)xfOdi3OxG3jD%Ot*u#it!lQ&J`PbTe z9|9KQV*R>8`~mWP$>o<2;+b{r1+ay^_*H?4$c=6NKXnOH1i~se8Lj4=sWXJ4mf<|! zUM+^MI;vV~z>FhbCU8rlbOmh@B$oj&cxOE#m58};%dF5N6<2EdSDMfiG#rJVo%drH zKzu|@B!tqnFdhEG_n?cb-f60~&H}S+8CCQJ(;a?_b9oWAGmc}lI#S!(09rttG({FA z;0LY+A65>KK+Ya-v+X1c91I!5vOx?~_VEmDGZt)fU#Uj?JIG0I6O=@dp|vkNLs-;P znkYwOvRei|t5e?K^8S0dM^v{^Nc#rz6ZGrzpI*_Uwo|R5N0g9$sC8hD9n)-hlB7g0o+i!~AC#40CRTGVe7gr(TIK0uPA6zkN{l zM9wVYXsIIO1u#gJ!>EIFHPfe;hx+ZBRLnfho=A6Fo`<@0&`>le;adC@q~`> z77;Vs=IC2HzbrRUadTjve?69iZL0JAY}$~jCW@XQJY#gE#mv2CmdnBqWLPdfk2EBcw7q-$>1~Idg+l3(HrrmdN9(H`gZ@1R} z7(R(c9*Edadg4JU?ZWbc1nvEGq2A4At{UT@@1PB-Q`wQG%YE64=; zS>2wU$F#A8DI=kziu}iSgT{j;I`{v&smqGwk2ZJQi$7g9bSb*cNo0~Sck{AL%0SHhF3u z$C2hSr4;9FIJ7i>8#!2pyLJG37m`o#pv~Ln4NVUI{{JvieSzWsoap=aNe6Jl1rZ&HmYHkk6cJ?x2 z`TMs&nN;i=Et=9d-;c8>n(VjYlL+K7m2(*#7lI5&UJv@$pWhyI!b5!`kyc z^|#kPH>rYB3gSNX)cs?)Pn`Qi=vzAsE`UcPo34T<0_+!!5+Zse;YW4W4{&s$x36c1 zCCrZ3mG23r+cqZexVAPAg&f|oD!Z;M{nsV^y@s4udcU_4zwzaDl|?h0bQGJUc!vJt z;2R70KGh-8@6Vl2wC629A^n$mpH1gyH_24xx(y8)3f2m2Q)Pi{g+Tz2OO!H>%2e&q0ni4Wl)vC{~c5%#kuL zi^!}6K<9KkAJX?c#R72+$6p&VW^|+vg@xVV5&q zvxv06`QvGqh_kQ+Df^HOT@ZEEJS*q^NN1&ns1cIDkM&P8-%IrSOZ@&KFFX6_>?}&` zO#9~ZrgHa#4l=ez2tp?GpcJat!6+RbWlq@;gSYH(Q`an1qVQV@;tL}5c>ni(^&Y`B z-t=u-8WNQPQ=M5QUR*%Y?QJSXrmpB8JXLDp1|BKGpDJwcC^Y!-O4l+pG>hv&9EKm7 zED%2+MWuXNrL%;Wn<+(q?jI{7D&RmY-6!AWAGlf6=A^apBx9X3q4!8{7Vc|MBwzWY z(~xgyJUe{aC)LgQwv&$JnzFcMzh6yw6`IelOZ!CkZto{43td1Iw3*{sO#*N&=> z;0d9mfp!8XcU923SFhUyZk=1lD}EKL3x+RC+|whO1LPoHJfIa21}6~SL+ei8ndUJA z-3hgp7|lqp3K3l~&G1Z_5BfVud8Rz>1LrrPD`b^AZ<`&Ns()F$x$M?Q3EeiY(EZOY zI_3e}DFIt~0lsE$$C^4;nV22;oR#JSp^x+o3=R*Y%6i_X6yb|}H$!jWTT8zRM7q{Y%>EEf)W>Cy^v;r;bJ-kL zwQNovZ7?1PTzhiG94J*KmZ{M$p1a^pVNFRS_?S=EF2a=O5P4)KP$`mj5LIs&Iyl6U zjVLHpCZ5n~&?LjrGcev1pI09YYyua?f0dbP8HXFZOuQtUy<{}Wl zFXCV;t27MdZT3d&dIEJ*s?7g*BMv#Ho$Zn&SAlzSbi=N|2ju!unZghv6w4<`QSWJ- zR6z81BVDMq96s_ALcZM7SCKanIBz`9-Gx(IIq{UPd#W$vgDOwKdrR zM8rC3R;Pdm|KHQ-R0{S(`=X0xFKCSBHzylZ@R5MmUN$iaF5)Y zntki#F0AuogaO=8HiQ~)gaKA4qKS`)3m+NmM$+1qw05G_7ZDN%(di*xiae^D1fgh% zLG(Tq8e%DHD!Gk1N+G%r)4U$j-qz6ks&pk4rS(Vr96x$e(4FV)j<$Egmiwg|p~3Hu zi5|d2hSMpg ztT`FDq@#oO4W3mdk3%3+7B^Pbq2b%Ab+l5#TdStaE9bI~3uXo5&hSUwfj3}A2sI%9 z=zvDF1>XQK|EK+K(-p&v?>N7uGiD_ioGQ_8rAQI#%UkJ46YJ(ZC8_PK4)U0f(cJ8; zk|>%3cj)YKR8{ix$za+@*dqB79<|lHyiA~>OWpDu41Wp;i?6aeR7Q3pn=3O3=+HaNdQ*)2_Zf(CnB1rviBF9(q5dSA@}Z8b5+$NYK&$ z<~c4JT96gwc^Mny)lhf(xO~Zt3L8`)$oxq%Aigt46{{>N zlqpV{9K51=|KO#yMNbSx$j}fO>61&Y!B7V>wm8r{$E_ZWl)swA2*7Gh%^$?2qH>~bT=s7 zARPkIv2-jTB_Ji;qJ%U^cbCM1!~#n!ES*a)x##|!IrE(VJTvSoX7WxU;axE5N zrn|1Hx9I-R<SeA}O!lt(&|y}xd?|EZwLf*(=q`b5eQ50= z>pgbzFkQ?g%Jq)&|Ao_Q4R#^542`lF9gNG#%3D_pSP9=0UJAU=o_D|Y=7zOLCnvLI zWaV0~K2V($4oz7P?KFxBU(-$NOnZva=LK$2+m_e~gKqd|l_UI}@eB+-v(zdAL#+zF z)?mj)_%ZnJSg!aF9R{vSTpKj>ThE>U{GCa1ZFtQml-Ls$EtTI|XYu|2T$QPUbwslFUkPR$a zcUz6%$6rE_jCSxT{hLMbY!@1$yLze4aDOE=aq=v=9!5{Z;2Ukc>MzE4-6h#OB=z9l z2{g^OSh*+lxCDll&_yN7$=wBmQBkO<;2S$4da39jL~c@&!PjLIZmO|?2&mitELH|r zZiZD|YNo;Y5zgYSTV&dNO#?qQv{a5U8>@$fCkIk7VpXcdL-nlxf@>wG4Zd-8|vn#emEp?c$K{~I+ zeGUzWE{yeu6jo|$k}mxmqsrWnHB(!+6+7(1qTHGH=h@W*2%kBey#pN$QN-iH>?# zFfnfY?Wf(A@1c7qy&qL^=Y-vQpLc3_-bq=;B12eEqx2Lj_hV!Yicx%gUiyT$s+N{+ zAzP)t9_q*q6a+VlPomy`O;C0YC{242l^jrCFkAMB;*c}iMU76B@k1C3r9Z7lyO6&8 zbZVU19jG8PshtuMj3td4AbCX@6v$- z?bxA&3Ctm84`f!sQ>=T6iYaj94abwAg2U_Mc5tRz&4>DGo*Q0|T&S1{YZg(+(_zVUa?(r4J;kdbm}uKfDsZpW`4`>MYHKi}o%YO_jw$*EpVDD8SV zksz?(C^-}cLYkF~YcS3o<8wu@?lwa9zyz8>dyb@}8Q$U|I*1Pgaemef-OlB>sGY$_ zM<1oeELIrBu5{sjki4xcb*L}g^YB2ZaC%S#Nq!kxQZTK|is2KVk`#iN{}xZcCp_=7 z3-`f+bbO`=c4xKll(helZnI_fD1}|`=&m5&0z&TtLYGKRSYHL_*-i_Q`>nrO)!fJ` zpBUHt3h%RmjKCHRl-(8`d*UEb7TqnLRI)CYxVqw|VBX@*vpw82d+lNC5pr2hX#%u&^Nh zEUt;1%;J6jZGmHdlyj7Rr>dVt3XTxO(=i5XDB+(s&a)tH$Hoe~=ocbjjOQsq?PtjpAi zNms|@MK|R)B0}Ez)u9QFDhouv@Gpclon#;Z^bol;4M868K~8$l0!q2KJUndk;u#<+;N& zIOzP65PXNI$jY+Pfw!JldSqU;-@3eFW4qqNG9Ow5Q~cDmEt`t2aTF8$^((B$<*xmdH!$>Tcf;;o?vMQslv(uc-Pz}}oqviQYgO$|amK$sDLr~|j!R`EuXI$Q ztZ07W6GxaHzVNN^Ua@e5$&+-a*1bsm zLlJdj+=9*fH{%<*pkqf-Si||nYer4u@JB9(KB$&x%;2{RR<(1l^6RK~IN;yZx;yRG zzo+Wr1%zSiF3zQhhWg4swFxGj8+tw%^)9JW6I?00 z8)5>hf|A_{&h&^d;~~^dOJc|j%6L#A!Hc*+4M{wJ5wA*Ctw;ti?6cOKyihHQ(#S@xU16oZkG^XPSz zgCH=YhU5i#8p3S@E~BU)_f||w18A67`K(!X844>f;p^Lph3Npe-a%OYz)En+}8O2(P>*9>iW`PTKX1--~qqxN|CA zu0^lPnBwGf|ZZe76R{V_3l` z(g{_y+UA<>O)+l|07KQ;pS@ZQhYwIuA9+4E>B<}BSsmP#LgUyTGGFQm^~~TE?>&sy zIQ8rRzbBSH@KAP2^;E0Kf6^U69|vO}RpgVvKKkC*Pu?5uvD-{*liCRy#Qx3F7_Iuu z^K9#M>PZe}*pe2QiJVm!4~^=76c4$k9Rw-^S0QFF*Icoko(lZq*XgM1{A&#KE;KkB zQ6~VtH)q%s>N>V1y9d8{Cp35Gxh~mq@d{Xa^o9}KvjKt`Qf{q-^gPLczaiV*xMnfD zV&&Ha*Rkb&q*n^goiE;sPKZX6r>xscTrAhtNAJIf*5SLY_Ti?pVvQ?T1ljR!FXcrA z>?aCU!JJ4Rqh>D@7)*9fJ;!bQt3qw?a$c-XZo+Ui-XzG*KGpULDV#cWbb8Hys|pgw z&5n}plU}YXyR`~Bh5D3B98OYbVLQulT__AXMy$&6Lgq871%n+NUe%_ntf!y#9)A{j z6?MuZE^`D2dEy$Z#i_&N)ulV#^sPvK=(}o_Hwp8L^fl#+4WcO$!w^A!osNMa<&o?a zZ>X+^4I{wv^4jLfO$((Yp;Bi^-iJ$gjyl6(0QPOS&f>PSi|U^iKjw%NakQV4qj~(V zNBR{ba-K?aZu{?#D4MW&l%9agc84DAEGt$r*gWbIhMyF$*?C5-?&^HKec%R1g4lw{ zNV>g9T};^?pW-|jmdS+Z1l>4}<*<-ue9e@hJ;7~?cW<8a`-lxUo+Cb$NKbfYG~qb- zi1LfxFS&0Cahjau{$d#&k5Q(jpz3Qgqa{K-nbNTLg^yG-1IFzQpUwvkG~8`abd4g+ zuc?mE`%*TS=P%hb@E#7H35qq|Mly$C?LsyO_wV<5T&0{&W^p--ORQwyzQmGaM$VIt zY>IIckT!dDBVtH3STL@}jp#m}OI2$l@w!0*n57Nyf-uoXUpJYepoq#vx}Z_x4nnQp zR=JDBX6bAR_=guONdJwUEt|&S-THifGhTlF?yKO{04zf3mA9Z{jvkkSM7xVUQW7^? z2cv05CFQI`!Akw8%mu$ZSn${M_&oSz(zBU8!Yt>6&>oqa+nf2o14g3T)lUiO~oN{m?D6UvE0HEPo`vHqdPQA_pc2@5DKPydt1uIoy4=@PRmUz=-i*o zjTIKQ0TQ8Oi|X$CWROGfAS+^d#4!cL+Ez7Zt66%`%(_m2z|t5Oeh z{=3OswXIz(@H$;tSR@K7DglX_)&Ok^7$lDZ2vp*kULg??;X8i*v9-P-H#7ef#%lGe zvg`LGPwW1nL5o*(dwx!}7O|7tHpbmQKrUOMLdNtDtJe7b?$VWmRwXiq`}uX)_aaeA zU;5l$42@eQ;T{`R>`b2VVqR@C@KVcNNo3Y4z*; zol<09ptGv}|MllCk_mI5h2m%Xy4*iUpGibr13~AtWSOd822^h`;^(SBc%y9Z(4D3N zSkd$w`23;dzNfTM>LT>IMo& z5AF^mAG!kOPFw}A_|^?+UZCW0_fXCuC9ds{jJrp=K70?&N6$TSX|t7(3mVYNv3hWeIpam-M&et+`rdirJ$9Ls=kH#A{k|C? zTYQ{0&g)A=VQDvHf5WY4^78KKi`Nvf71WG!hJv88Gyd$u^Q#YScXe=|q4yDl_X_cx zsLGV!4{nLlqdm7$%+2{X0+Eh_C@2Ufz)jU zI&)gG1$9~QIA&m|92{78XdT>d)R`*Uf5Bq_r^+*)qz{6rRRE*sAFj!4rnU7wlgcJt zLsj9N154bc#gvOo8^!YXe`EISLFM*wu7k7;efzYc)%(8epXnt{RBY+xgLo$~RI4!p zk2lK!C&61)#W$4r{~i0C4k>{>c#8%+Tz6IdElpP|GrnNCy2k#qTWrX2UCW7oLet9De>=_!kCAwn##;&2>#$XOzIXoa{EoeX z7ReZ6u$rK|r8wz-IYBI#ZoU%pBb()P8Qol$mTHnwPu>TK2#1O_5?YFk#*Z*)|E~S~ zFp1#<0QrEbwpSSmtG=M)(E)B*O?HZpe7up)#$#jSI^_bHdATLaN2fDqJnnlN)MmoI z;rc^1rBk+ti+K8#6SWS3ghhez0*-_39z8Fp zrL|R{0Myin-oVt4wNFltlatFGwL@wq?wg26X0vZBZp^E~J?oQbrEvo2l48Cc; zlvtY^cD44ZSXNG>+*d6o@wGssaT$g3v{I&25ZRk*U4pos53g0RDP-G_<*{jBxPpFv z*upN9+gbUT-f9UgCKERZyL=aL3wz37F2x^3<>_!f7UuVTS3hc3ANMnIG80Di?W2(N9Kg_*JWhUUmvuvzFZ=Rt?*Zq*Vw(x=HxH#zQ9IqfYaDWBl)CpvFJK>QT9Fzhh(KvM1?n zR05=TG5XA(KqcYEc_QBP4MgJ|2ja?wl0y?y!=3rwRU?0$_*M3QL>c(g&#|wY29IZB zk(-UKbefHp(=Zpf8)@g+_9JRkLs!w+md~I5_qx;>ijNhs8Ef1qGt9whvOIMPsJ}7e zu1@SHuD}&;Gc9QpejSpYJLE!6X7sMl>w8$@;=*Rw1AmUYCj1R`)1hq*kD#Ua<%_c% zJO4ZC?TUdTZlXNwSRSKYa{|5{y&Cuek~PbcqJmRgZ1P8UDrQ^>3nz#|la{k}FR3EUbuq1^&C5&5-jpxB|pevK-)$)B(`nj_@uCzi@MZ zs0(*BISMV|&fZ&dHYUU}-brF!KnedtmHcj_e3t#$GlbK8O;U8U`)P!DnW~F|X3In>|G zR&~sWQS;t^f%1t*CZgdwW7CWg5$_uGqm0^AD)+TqeeAQ>yQ)+!MsAZp(3_^d5tdtA z_b3AdVcgmUF>`Jp#4*Fs=hv;t9rc6SK+pl6N*)*=hEmAh~THW@m0F;KJ7GuWfseXXfoh*HmmbF_g zNua%QaKm){#J2(Y?#8KqB6uJ(rpC-6r&+P*+`8>YKt$-ao!fL)EMdSB=6({H6JU;W zAllg1EzMXmF?JeJE#ChiHze$Tj-BU5()$yLt~dkUBWsx8(<02Ed#oAC^v^yp&o*vt zWuv%Ps(igSE)JqhaU^4y>c>{l(#oyFoQvZCb#gy1=ny&vV zE*bQi9Dl<@g!82ctf#RO-k{Ia1W)ogeWC(y`Cd=}Hi59@k0L%q>u^t>v~GAP6rK-n zo-s*;*X(+?b;?S8vHb<)gH1r=vrBiyLZCiEp&Hw9nk}mBg{xjL0~lr5d7fI$+f*|= zGV(zjg0-tvru&?R!Rlh3U6elkiw*Cj(2jML7I9vjLixf^L(V@g%c7A{k44-!UMEOC zU>lhGvF4pWr)DTN5p9aOmn-u@8w7i8xko!T?8{tMKJ7eE}lRSPDMDC4@W`+zh`_u1V zTC2%0vV?JvHGXLI*LqFD9i|!sS>0(cNdlAh?s#cKAi-*egv0%c8~u+TphFrSHUn$8 zksNpTIjeP2JJM}W$k!>?B5bqG@7tnK_l!XtWIOdRPciO8bt>rLJEsBK=sV~G5g<2t zHksgv1Y_+tEY1gYUZyM?6p4xD`)hQ80^^;xKVWl9?ls|5J3y{&aqI$Ia*661UP(1U z5e8R0NY^<7RLcd$W4hRYr*0ZACWSv^3EepNu3n#MFzv-^*;oX0vtg}z4u}d?$A8e! zb37ohHt?Z`>YdnqDb)bc*L!m)%IiBsS7 zUWR-%{u=Rh;1sb(o@u4wblwpmxTA$1`qr#GPsM*fMYGJSALqSSJKf#Zsfd0Ykq#$$ zMrN+H3piB0B$mx)&))vfxC2Rhx6ieY>o&GohVoy*5wlo2k=FTQhfbd&-WYQ7 z?K8(gpazAuudnaT0%NI&m8sAaWQ7lW5hoCY=@Uo~I^+fn1kirkF|lgVHz@fb4UF*k zUVC{sFv11~h`K=12_M%(A-(6NUtccQA!QxzO36KRpSJAS3W(8XnT}|ek6N{QH_FDOI+bv0$ygX9`fEHnqA6fm=uc`;O-_ciN%b z-o_jCe39|YX}iz-H1#xuqApRkzZBX4)0v5QQ*6rQq4$ZnP@-OvVH!Qj@7k|zB%N9X zB!ZjTNhT8oy6kI)n4{iq5>)NJJlh}84QZQ9oUu99(`lwoY`9gihr&-FXVKV0GRm*X z|86+pj*NT6Cw_M}o+yiYh+M0*PZO_*uI@4CQKQk0)LD!01XDAq8 zpvhd*ZzeK*{Y%$$-p=v=LfM$>s#?6$an&c3JZLcthz)#)_8tkw=^NI2jH$$yqz789 zB`14Tm2IImFDM#ur*C1(Z>M*VR6Jv+TB+ii3FR)uxA{^%JyH(|Ih|;ZB@YBZxvVrg_OUj&{1;mh?nC|^LPjuSuKGs3Wwxr{`R+caS7sd4 z@q&+xLPMD9F~y^`TZL?_(kox9H2xh?-a&Qs^2aIA&H=Q*&{hyJ!`gKK_qNiF(}UZ} z@veD=j6v_wILvo7;CRdR;l#WdC^Z42`OLQm3FYd=miyy;M1}Nu9P7rlV6@}CeCCgRIAZN-7i8M2x7-4HknpLEOoi~SUZCQ_V*m4mfqjR! zR-G8&Wj)M7xD!8>Oi^3Lt`_}Yc##Af4twGP!HMs;dfwW{aRIP zdBXV!)k(Qjv6Bzw%MP)E!`grpg%`mI1M?gAWzlsUWQ`0dc_|jUd!7y1*^> zhleJqv4hArl8cJ_|c&I?kI*%Ro^*3_WaB^Z7d1QXsXGWHnwJme^Hr5`% zq2b+>n4=!uWE&u&_!>74GN)Kf;L4%iM)zgzcxS|hhi|K-;0)|KGl%C=MP3H1@}_{6!L_sMy>n!+f9#XBPGMQ_ z^agX?EfRnvGTrTszu+}e8+b8_l8YH4tsUXVng}cBHq1MNP(A#Yb<1rzV z6*Qc*)9u!l!TCnLsp_2i?hj%1ac8z#g5*E}%MfZu4%hcGTWP-2MWD_5_@_~&BJ_d} z;F*HN^iPN(`5#!ZH;;tmn7-Sms`yrVJH)z`%)T%f&Yk9aQvQg3w>X(X0ynPTw8HYr z;Fs(D=BHe#;57nT4!@(1up#3?_NBVU{3{sp;kY$agA%@t)?~xl?0&N9fAbu4K@`wf zX{8(e5v=fI;;!<8%wHO|xz7h)fyFq`t-H$sBO~p>xyQUqRD;HTi7buGkCH?dIs|s8ae|9vbICZYm zJV2!$j2UiEx33R|z}dFW(Q;8Z!KfiYs0o+fzVmJ*a{(Bhy~3H1)#X;Y%K`1(L~PGJ z4s@bq5VIl)X(98t5d5^d!;$@R;~iREL>3d-Dgpi3;`a$)t$M4r{c`g1Hj~)$5Or6Q z-I)ubEam!V_s6#{8l9H=2QT)YGtd<-xae>j2=n@V_bwU5zs=i@pfdmD?GkU>pp_H1Q1 ztQx(upKm)>aB1G8yt%yZo{i&&OlSo%@8_$Zys}NeqkqpX;hyd)_l6^BXYoxwMXO!LgJPf5^>XPOuzphALUB|^Y+soXv&jw?IWFr^>kbRs(>CzgEAaU zS@Xa6dYLBgZA=-29F!ZBRbEq@&dO*SPe%XN#wfDEp3VL6oPt;er>75BLt!@LD6O1{ zsYhOtc*YOz8AmJ?kd<&ihgePqHk;)O1xaFW_z-v<>ngTxlRVCrf47py1n08hDu{ zb97xljyZYc$^VNa)ibGs?zKQJbBDho!l@q2S~_C-!P@7iUdfO8C+|Z`ZFw5B2PW5q zt2{_V!?{K7o{s)ZYK2EQZ&_IS z2ndOl)D2F2-&pDlS!KfIRxYFhnZ25h)2NV&jsr*-E z!|@Y9Ly`&e$0gQqBfsDG(jXG8@{YpLqUK)S+)*+a*jb*~u`M*N=_F1gIEDv(G4#lH zePmv9BXWP5P$4qP5|(;d&X5iz?2XI5cj&I8FQK}BDm{%i52$k@&9*JNC)d@#^tknl zpM|V?ZNuj4wvDV~#fIDX$-aZ5LyQeMUmEN?YjbCC|)AeCRQx!U{f;--eyjQ3q2Q6$edxXG&wc2fZB;v5tVY|i9!YP3~^WFg{^ScJ_-8`5Ko(MpYHUwb2!E z9dz5k7vzoxn=N(aJ63f>I#zeQYK@=r;Qmdb`$VQFOVOq6Y3(8VK~HTSckkL%p19&! zH`s_RepGz`X*x7egw}xxrDKjQ%Fb?SMPN_iK6#u7D(GaIxLu zP%|8s>~?d`50UK3f9PZn3evk_r*ImIsT>jbGx*#@E0#tJ*R;Nx-!VO6Vt0p2y6$0{a;g`-!;`p*Dd^9KsKoOuT$yes+R7~ zv{EaaX1-~gBD`l6JWsa>8lylJT7+kDUf5UBQ{Z-DEd%E4)T0(b7!lJ8MsF37HtS1Swvs9zr{3NLPESubq@+U^Q80fr^+9Q z%?`{Xq!p5nex`>j&l>URuQg?NBv6Ke8#4td*>fg>2rUTdA&|1k^ei?jwO-+W5IeC% zc#YONoRqIAP6>#vtGpv*8B`28$htUy@LVlNxH5{ZwtVl?V3UD^VYGlb1(8I(AaAwY z&SDh%qXqo70p(P&U=-T|sO0$V-F!Ma!uDC`jkMEik8wTG&j(8p_Jk{v;7jO?5pq%{ z45OZYW5>2V6mI|zrDvjW#e@-C#0=z#S(;Y-pA97P&emj)cT{7y0k2v~o?qUDqYx4# zb<20qdgoD*(^r}do*mV$Qz(ILp6~JnUN{oFp^%nawziliPw9qEgmz>B`F`Wf&qF<4 zw&1z_XF?)kgdYQ$Ijnr&%RT&A1L@XN9J--m!`I(=DBV2-WuG{W5|w#{yHz=kFxCDR} z^jKK<_XJ`h=qSG^n@1D@cYfD;(G{ksLR3NUA}mhqTw<3dmCBVLu){n(>oM`pg~%)N zI}x9bAaBgIbPgmwglos;$Kk6vV2IeqR_=|})`Am@JmQTEv>h9g6dembH~m=fKm4y( zDCWt*$6gy#>AraADH3{L%igSOBz)&h%*y*c@b1kmMiGvD;d2#^MV>+K0lP$-G5#ho zdRyD=%-meW#yRGyF#l%qzHwCy7*;-8`_!*Oo786tw>K(ZVw};mD@}^#%v>iOY`ho5 zm0@P9cHfWCcqiibz3r$qEKt(6OmXx&gv4ZAN-{V`=@r#)ACs;I7qpHrOSvV&Wob71 zr-Q^5%5sZAQl5heqeHRvMtZiAZ^qQ>cia2fO18Ouve*7x-dlSIhbi~$zmjnU*mOnS z#sG6hL^R&8j)C_Nja?0+k0t5uD`RG2=;B*2_4?L})73kEpf#ZL#J&}}65j?E3vLRI zM0?%7Hqbv^Vxn96(*FiUk#;Lu9XJ+Lw)>2tRK}qDpLX0p5lxQpK(};iLFl8%DBR)g z(=E#M8ARA*Hf%{s`+0-|4i3FCX;93?;X`=@pop}k+29rzXG5G^p6XQW>AmQu`Mpz>yJ%>I8w`B|;560A!sDDghbq2X_%b9$}g6}QKAj>~(?njq!$ zlEz()Y+0pI5k(chD%xYAqv`~6SnaR~kqFGv;)imP$xm&rWKfPg#kz9eagq2{9%0)* zR6qYgB+ztsYh9mQwy#XRYNykL46GI77wjRvgQ2_g#E!Nex^AB1=K1Bch@iGLj010B zUx1LC^|T^2(q&G;95ibL#)0>|3B#Z>OAu;js4!6$Me4o63Txs?i&^p?RRcb8)r}M zv^xM_fafAT9h*|eLZMOVJ5lkkhbWgHrqCkYG9b44xxx6ohSf(DQGtw#S=;h|LjAlT zC8oyvCF#1+KlGePfziStAS;Xc8`|nwRQS<#(!Fh7b`r0?!SO;AcO=DTe0iS;Hy}trJ6@n8HOEMQ)^m4W6FSbrfuCwsSX?Prf%*` z{h|}~{Hjx;UfbL}j6^<>LaiKc0zCs?$+)%y0$V8z$m0xmZB5}_TY#c^-fz;j3mH*4 zn*v*G|9g>RmG|)bON(mdY{A@-_P+lN%yjXeumQB_X5)Ui#qs{ce&^W#K5Xvv}J1Hx1a- z@_RESBc3ICSb<|oZP?SwT*3fVC+u(_To{c)2}j6=uB};?1?ee%5mbBwA2tb7QXi}H zDWeog#{7Ey=HU8`Fo`1=7%`5Y37Ysr4j2db8E1`Rf-v2~FUOBxpc}d_9wAW%cfR#t zF|_?E^}~Jx0>DqcH%0b>*j;tBDAyQH*;=C>4=0Ab?oS;GCA)UCPA_Q*e!5bAcwYPv zi^cF=appl1lCKkCmH$XR$$9$fQuP4NSInR$IFS(QcmV=O+BX(h%V6kQ7C!` zw{bKSswMyk zTc>ROy676Nw6s7G;uk?alku>k1qVyme_0KHthqbj9Ct~t+BU%RTI_Xw z|VX6YZ@XP#-cwdq@d z)|fD0CTWl0%>|sLa3(nLCOG4t##c+F&WS#skowPd0rM8=W09MRteA4*6@B;Qnye20 zj6ciS0f5z2qgk`h=tKj*>bDK7uQNv_(5>}PS-%rQ0l+v ze68iZsMGD{2W;`FP=8);7B!e7;Py2$IY5fxZe6&aciUOsq;x%`aR*TTBWz=jpi7md zV>HU;j;k8_zeP<8*csWKh^nMe4pUO4cfLvE@-)`@ez1#>2X5`W@bIFy!=Q%$L zq3nEEJ<4s%FyyN`Ue%LTeu4dg#hc)rCiLNDs5y*OSJ{R=l?;$CI+Y`G5GcqB*~#Dg zi!ZAxp8t&mU!fvRj#s_A0gCijhgI=-tQ90v-L&Os&aeCwfqmik`XN#uc+m;#m- zmFKh{g9Qkj-tV^ZdR zfWou2+cwO}9$+W08G`B#C+b-p;?wJz<>TTm2C*z@-(D z4L!0z(AxOMy#lC`=rGV-f+L&Zc}Pfp#!>gul=Z0iGH_2vz@>;cZhWt7rK085tbr?)RX7qD_+*!Vxn<<6DOd!iH7|ix0PJe>N;i zW|J{=iGl1u4klfLL2ISu8RZL78qvpVd@(vSTd40J z?8EvmGv7ZqhqVva8_^G_o6-<#{&-SarFzGV?X79LF;Cf&BWG?-;nQEV;4<}Fz@9&w z--ru9uzCBeCly91e^>goe4mzqGxX2pwS`pA-=YkOx)#ecvg*>_^OW$a$%ac`b{|KE zk})>7_TyHW^_?uRc6#j)XfWijS#adJ$TuBY!%;H6k-wFZCdOa$b4pJ(#$>?PVz}4I z#*HUEmDXcEMR~P3;&fd4K(2j=T7~5|aNvCWfre6XVx)m?wckja>b#`rl4aCrbk^b| ze@%&>607ic6Eh<45u2U$M{wJ>Cyz^2@k2Q1yEr}_#eEQ>Ua~82EHAMVs!-(DPnJC& zta|&URXF(IX+*}{#)qV(i$19yu46wb^M`%l-PQsQZU9`l(1p%yq^#Z$$Tz*m((IAPY}@le$m4!@Its#>Kin^83g3t>$zO*j zSrc4c)z&nBb%xa&n|g@Es+XuVO&1}&?3<|EBH+O78@R-b1!m=1 zoSdBhPFg)-&aKPb|HwGUARt@+G#%jVbX1u!b`}i<>rc2NzwEIR*Kh>YSg$o;MpY|Itu5ToLK*w+dVN|&0S)KL1 zjQ3Lt>&MyCoW!PA7<6Wo>x$^C>_7XeH^;K$lKH=oO1rRnm&@82ir zYIL@Q2{PyZ(&heVUit6HbGKd$sKQL!^J+B(^f0-$<$~oynl`1)IJpkW@K>b8QmYJ! z?{;2W!mmw`*`F^uFi@sKx|_IBWq0s~Y!Uxcf>lw^NVa&0n@QSkjPHeIzGP(3&2w>d z#_H3z;)*_pTOcyxhvg17fE#F@H57mFa<2VjcY>o9OCE@oxD0IQ0ax7Sw0gw~3bo(- zzp85%trFlYp!Gx=fDLZA$W?Hu2Xr++WYjSP+Os#TWotkpdK081b9XbL`VK7104cY{$!KmPS zXl7QX&0*F>1vPEKN8>M6Nqjmw--zPg@pi_rC=pG6_VGoD5hJ`r=_J74J^mlYzQQf) zZfhG6kd*H3?rs=*s9|WNOS-$HyBkDcU_e4Tq>(P^25FF%7DUi*d_3oQJ?HwK_xrAE z<`3Avz4yA;y4TwG-2~i_qI@GCmgngDFh`tcnBQeb9AY{a$$zb@{Em_oGI=y(f;a3$ zIC;gC8F#HanjVXIlt6Imm9+(tSWtgwZhpgbl|Qchl0c|=YFBG<`>bcp z%*bqq$0l-qcvu7f#K(_mm0ITuP9ZS~c=z`g0uD0IYvc)HlhqBPE0K(D-%%Q8g1C~3 ztA8rYcXkP%z1|Kyn{_7xH@5fxc>Azx*z&xF+`P8kXT8|DZx90}KgdgEoVvum?^yj} zb~2y;Q6pQ7XT$Q$Bf%n${cC=?Ya2n$Y!U(jz=V6KyUq5Qq}P?#J=(X$(?6iKb5Zt^ zt(%sYhKs+I4ZIjUvLK-?H|+5}&9;qOT!5m~A^tKo+@#0 z%0_W^ZBEcCqEh-wWY1HF0(NYcs~_Gz;fF6$FblcnAA^;kCwkiaDa&r zudWX?D1^lN9(I{y)7~a$Cg`$tzk^tL8bqso&olO4lYIr>`}8po9pjrdb!!85@)$x$ zZJW}YP2BPXJQe8rE#4y*q=d-7pZel{u*PC_DN&|%SADA3En25iu6-V|?lA52zFaUD zmZs$IZ?)zBoWGj*ZjgqAYWs>Xi!Ep|smA>Aj%EEB?Ad&F6lUJ;^a$d_E|RT*tG&w- zYGE^0)Cx>aIE|P8`7`Yf^Pig0LtWMEI$Aij232mSO^daTtIh7&LbEt;4xg?xJFu-@ z{xnS)6HSkmyZk0rVjf~ntx%`Om1kp?^Qt50!XIU#({>|b)46b9C83gLv@tY_O1f~L4b@v$cOq5&1^dU6j=#hZTohH1Je53F%sGM z9=j(6`PW`t!P=|!<=n9I7Ik#*TEIp`0c({eLAK1Sa9K<)I$l(zFE#tJuX3(_m@$7d zKw48W>-lZ4M>D|dj1CVt4B>8j?X{g)b9IZd@A9#!odj|Y!?<4!{?$m9hk#|leZP*h zIqdeD)Av}3dR@fpu&LZ%otHuQzdJ9-e7L8F?i6m{{%X9qz;;VE0(HzW&~a?A{-Je= zAe8lcrQxe@Z8jYFPF})XMmwTW>J8p*na6?&7Z!q!ZzXMXuWxT^X8)*NP4;&9>EUNt z7?tU}PiL<_p-sF!()TWR7V>)sUqVx9T0K!ReU%%Jc5f4h=C-Z7=k7Z=B(KjevMoBo z!Es?P^GGHlK17JAa&<5wS9;_q8;G6nk8tsc7DO%uQ<^fD#8kt)TGM+!=z zA!|iuteAS%hgL}`^9&}24}!s~NfXmHaB?7pyue4c@$guU%vChgUKJ;lk_TOmhH`LX zL93Ivs66Y#fF@&rx8>wOHK%dy#e4V0-o$BCe};QFr6vPNcMZ^_320(M?^2i=?#a?g zBDgb(RUWfskIyd8?r}guu;J`!$nXYa1%%>)OU2%Avf;G&?QAaM5R{mwfXn-(&T|uw zXY877_*T1WT^r;o*GiXd5ckOddr*sTmltO)j;*&d85 zmN59&p*_%?uD%OHTCTKF0Lf#o?UFXnOhuo|-9xPvQb~z#6j>9&4*g&Bu5gEl?9cyNcZt2qdQdg)bf;9}m`l@$?I`$&% zTik|pCR8SCYxRl^S?X(B`nQVHc2N;geWO(EVfJVTZ)>{YaYU-4(kT*msNmH7cHM%& za|8rcYR^`iiO5Mn@gbIT`Bkj;cQ2cr;M?+*8>Wkv?WXOTZ22B6jf$6J6?as_=mjt` z1I0BayWhg*pi;guygYI&J#x+X_^Y>|Ft&RYk#3pYLUmQ`xT=T}IL`z7;kex2-+emV zOcP; zUrkCpRJ^z!8}7~Ioi|jqo&nisD^2U!J0?H>p0^1=@2-yi&`8_3*_He_Zy@>Jpttfl ziJ9d^2AC(qlID}F{2{V!i!srdKC_1mx|smQw+#=ro)5v!;96r;0q1w_kJTbK@^PGE zfyp&pE}?;O`2~A=xe6z*Sp2eYb1?PW3|p_a>q9D67PGRE<|d?V;f=1#z=}4B5c{|r zs?d_U5Y46q{&7AJLbWC;gg!&+1a!W-n#B550raa<{-_IUQ(rduxVOJ#BM=f8B$T{CWj zKkMyqpelloX0(rv!4;9X)|u0fS+NfpbGLPcOoqgM56)B%kp%e2a)n=nXt1P3z{{CD#QA@*0 z<1l$yE+x7|3)s>|_TBK}d@sM{bt|F}utP4wu&Cad_LPaDS;AgQE#X5%^Xw3-qL=Kf zxmJX5#w-M!f11H-%zQeOW>9dnMzj>0?@bs`w zTh(G8XUKEWXv}-fQ#33rZ1hv5gx%u5Ym@8Vn^LP$vvCt`b|l?HPbQ&yZJXNxYpL6rcEewDA> z84GAMfPFj|Ayd6tlG?Bg8zp*%A3=4Hq0@bL^=0J;&sm29J|Eb1B z)$?(kIOi^*k;Sj-^*=wts~5zxcX`L_EWzjrl}6$tw#{1p`wv@N*q6SNyu3U-@3?M0 z6GMn~=n!C@bD49CidWVgCR&ybxi}J~y*B>9!)xqbt|xp=^Hv>S)GKvZL*N75(m^AibEoDp+)J9dPn8se8S$4b#u0 z{5%Zl6BD1cTsS;l2ITo)*s3v~HLTcOZ=y!NwyYY=}Ox2gbjomJQsUhLYzm@x_M$%XSV>%qt^}kDzGVN^ggQnOUE0? zmUQ5k44%5fWM=mYu8Yj^PC~@?Odgw4DV-g2i^clTjr#4|5p9Q0<|!4|AFg1cCiw{J zZH>9)D{If!5|!I$A*&ei*q=Doya?6(vidu|_f#&P!~QNl)jhBQwr>+XX)5imII4Vh zLQ%K2sif;ucAw_$Q`CNRAVvuZeh(>`s1r>@f6!%T z$Jve3yosJ6JqfSBOk4_}PJhCDo_4b)+AVL&AN{EMVug%=gk^pLjuH>CJ z{>>K?;;Tixr;WcXA7Jt?RbGtu-ms*5_NIZBrtVVJB=R+t^zyEvl8VFi=&t=?enT;U zXvEh{NHq8Ho;fl%H~6i{A>DQH+$%+TKd5-WRUXjIw}1)Os>i$h!8@`ahOTg~U9m@^ zkx0`_nKfpaKBvUTqM4LxL1V{GkA1E3V}>s?dHTJT)+tqy&f5e0Sf);WL455AsNPzv z`|4z;*#)WHfPT*|<3}Kk#-L{)yY&0x?KTRd#R1PXCbU&sZ&z_aAEQF)rJHjxLS3NP z;v$_P>?nTKZZ*Gk`t^=kRMe3{UB%7qlJ5It-gZfZK-xF#%oAwj{$L2s&#h)wCeh3S zqh^FeD_S;IF29Sj_m0cc-GMTg8+D6b4rD{HhvGwZt`4Ns?+}9K5iBD&1R1<;#!y)R zNAkz#`(s%0 zcg(miQpJ()ao9$Yf4uFt^{_gSc6ZfqY@F`vy<-}K`8@q@bKYJ^qP<@b^Uc=C4lkL* zz-lMREo|r67I6`3vAd&WfLrNc8t=1jduL?3>Q2jput{$24egbEiaRzHim!q>Ggi8% zT*4hvVA`@g%#|nJurbPU!3~%$F_qc`^_kF8bAr{fP$GV^YLD(15D2td8vp(Lh!nAp z82gT8007~A1Zc0K=GUV8Eka3f`W)IpVM)f@<_sv|ZDrb(@S)NS5wbVmaltnnDwQ|W zJ+$zpVq%j4QYtqZ+z&N@3mvnk_pd~ZHr5(f2Tr{XJRZ8e+l@X|D-U@ddbPPq2Be=S zYrsjhGREWwm_fZh<^b}nSd+n#!IkI{Ser{`R>^V`BU`%; zuu%ezVTW*?udN+F`8BK^hGp+?bE6rsjNmuekS`edi1Qj1v0IWF+%F=O;)haZ>PxNV z!uh_qCtWaT+OvWuUSLG?48$<^oe6IV5|H8kfZD!L8nW992rR0Vd4D|Z+5W`#05{@C z(a^xnr(oH1#ltOoocpuQ)~<%!0+_dMGUMYSDs^)H+xQx^I1}aRP29|%PWbH~o2y*aBIC3$X{!Zg2wuCOF6H^l4eNu#g#sc8mfOYz8*)v*Mcq!M~xTiKPaEYj<{3*pP87R~b6-@yX$jyTj zVs}%uG$Y5bp;VsHe4nk`&O)3KSfDx7rSZj?yh@(=dE^Tr4&BE^@6lzp0;#b+9gi^u z@O%`9BCt~3u$dv|ApbmJr>=GQ>Hou?&B4rU8KycR-CFknreULuFfaAI88OpQL9IY7 zxun+J3&czpx=Om6ew~Hy*-Q1i(MJSw9Aaw==d^#qKDKsU!BFrD9H(QQ8UqPv{;ZPeyGdf zn}5ByS`8Cc>p}^mqoRP9LEs$z@=X#KtAnBAohNSPUC)Jf#~G54+b%LDrPv59<7eSC zN+@$`DyiLfvohs{%KC$I@K`rK%&0@`>kZ6FC-p56Cu$+`2bhfehUem`q4!#o>vzM* zwYcU#pJ`IT`wQ08aOqqbVnSxd%@$;gRF#|FOOC#>@lA3GrbDZY(8C1E?vx5n+0M`hr`{&F0gB}|0D zgO^9QHyn#@pl{sjAd~%d3yd{eZu4|EcTX{cg+Jh6wUs`eEJcq0>E|_4=a$S{T3F9b z?CPU&*WIS~-NY_UTDq_dTPt=mrN|H_yp24f-S@4xNousE`ww2dn=P@t4wlp(uB?9% zaxj`A$LyBh;E&gA0PK*LN|aMC90E%yViQBKT!r1zW2DStA}AuakqLBbb5`5{_-*m# z;I^{vuij0@+O8%%IgS`+x!+T#I-hB;tRlA=lxcszQOWA7g~`pAYywcMab${ktB=q| z$NCD(5W6fZ6jBb+)-{=GG!d;c#?`M$&|j8s=6a-@OEmyW9hjlH7t=~8k^-Ew=bRZQ z@}MT_lDV*8yEKyhY(7RBN5i7@Jp~a&9&SULk#8Vx+VN+~XcM0ioZ51MbJkDFF=EbJ z`+GFq&k;H?3=Ka7r@$b?IdUT-2DU$0cwTWCERyGOKSN%8@ue(yTyl2bJRB-pr2l!P zz7p^)j^ONj%KCi>Obc3I(?Hp`BZGSPfWXo>Io%*J9lOMv0cHo7^J|*4>V*I-7l1|I zTlmR#7_TJQeQ2;Auts6MZ|(bexijE6h0)j2Ed*CfSSBWMhL50$65e&ua6i-rBS zPG>=zpq=#tPf~r$*LnM@FnhmA&&68LvCru3H8+3o-(#JfVhS8*9Wfu!e0-Q0wV8Iq zxV;Eo9qGDZMjU;mNxv)Af|l7{V;z(hcpNdKCZsIv1cTCu2MZa#BqbSy%xz?i+$te( zm80B5omN@~~yB-_xD=7?J6Kf;w9ni47=MoTW3o`9h&{lU~%0-;sW$=`K z%I^Qx>PTydHg!RF21^tFzCrsb%OI3wgOE7GxH3oXrg#o}VUet$>)BsZ!)gIo03-}tCnqD@U3lTN%?@)d`*=b&De;|bQmj48nM`cJ76^M4 z%uno0-1oKbQ=Gaxur(J$ZY0X9YOA_k0v5fbBG;5H|3~53EZBN+cAYz5(RyeW5;rr* z1|d~!Fapb(uB40!qhkA*J%xO2g0Lo(3guYAK_0# zIyQB=EDWVzgky+)MJBp*kWu5@NnBqQ@-FXsOOh;mCfCN-fRxgeqV@TyCcUB~qHOmh z_8p!&D@3bap{m1`3$&AHXiasHstoj!!tKcz)8bLI=%dv{_G@}BF;|zY)T1E{{8}~? zs9hr+n)+5#0%)fX$G-y!YBBswj2hUMXkKYN;k-^*t`1Ke#QR|V>zkY1rVf3nCUv&B zRegU^q8=3Q9CWYAXQwQ7kv)c+^ewRaEup!B>8l_a<${`EHzeBE(9BmJCAXxQSJ+IjyjS=8ane84t~S2gix&R6%R z*Mw-qUYvD*@X*xfs$9_$aAV*}`7-bYGV5COekvV2=O}~$S8G-Rf?ArpHwY#y$LkEQ znI_tjHGe@=Ujme;mB20!h(wmE!K{a36mV3tG-4(Va71uDt-8;TL`u0AQT38OvT7Lp zZr6r2xLasTbzNI?TM#y7%Iuf@9F4!Bn3(g(7X@M?Zi5>?$7^8&e=Iwp#mo!7MoNhc zMm8czsLjUNotq2KpX8Ec;*d*fARLLA>i8@>P)~pwLBZ#L?J&@VYo|j`!99wlYEWta zGwXjot2d(AZ8haLW~aye+pA^C#G9v0eO}3x@3%1CO&^iWWDSn266nA=t+ffm25Mn3 z0~W(e1kW;KXL==D6osm{; zw9kD?+g>mGN%eKk4{^DbB58q)1uBj5#B8NR+Omx`q(JpcWy_+~_ zBl&K;wjE}Z_D<`Yw2Wk}Ub)+t|N7*DU^l+)GMSJIa`5u9zP0t|D$(fDdXCtf-1`Tp>4$ zD1B|KcP!%-t~tno)^S0WXO8l<`G@cuB1Ypxa`dw)pqC$xqW0Qiqu;80>%NwqS$pC8 zwRh?ja)f@#gUSZx;e8#W)WC-Db~`>npET$wWo zy(T#O_|kc)aR~9QvzmK=z&O7zFaI|Z2|f?vJ*j3oQFB-xoD8@t&J#MPk*OSF)~V2l zkU2OawP2q(pPZQB=H*prSl;a4rF$XZ{1tIX&MhbZ_Z`d-KdUCMplht>IWac>o1#WX zk85yG*q71Z*ui(R)j=?}p#X(HRgFd9XXjq?3+?jqOsOnOt?-&n5h^S4q_X6!(5r(V z8kSN_5fRc>AcZVRD#h2oBu+=DT%<84z2cLhFSo(4DOmxlUuC;hRuon)Yu9v6oL_%+ zC9@;B9%YNxW97+(YQ1pNWb-6$3WZe@4HmHytj$4-yt-gwLCA{~sU{Bf5%IFU4Fhpk zK%kU652kXj=l5^tV&RZiD>5lc6~rt}a4(9YEOM~iGKMX;j9puyEl9_jY z&g)P9#tLt%ZP=X|9r)6pIkqWQEBebhXp;)A-TRDBXPMZG_tz=<{0jyC$GRB_yiJUTkd%7*wD=LO+?G+%2oH=}!fJFMrZa9{_INe@9{m{uy9*uiXQo{_hq82~ zR4so>xk2jD&rA{Rb@u8fM|9yUw;c0yofIvyKrF%#M1RY%Dz2a9PsXF(Am30y-GTt@ zXPLR;9enW8G_)yLkLhE)W5C^XmNl{xBfn?(CC1b~<)C^K@Kqq7GMDgT9|hZ%;$VlP zS#2>c2gBd*)I)WjZs$5<5lE~qU?!D?(?_cm=sxg`DZ3HM$0L-hEwbXuSM5>{|`y<>6i} zW99+DlDs^CD3bq0wco6k9Kq>4Q<;d`?o% z)5Nzn6MlL)_j0+xNoVlB3XJ&`kh^yP^HT@rH01WAGCUx*;dh`bx6Q`6M`(q;Rur0j z>&J-7i|hK;pROoa!JsTbOcDa|FeVRren{rAGYBlSA}!tsBv3x-wO ze}udMNVL>()BSlP_py+g3nizaxVhF0^G&LOR;lPH78dV~*|&FKr^=>eg}t`6b{qgZ zduHxN!y!CgcLHeXRrwxDk(0;Pi>^v%s(I=7m3a<+1&Q*!hACj;JSjBu{m~Qt1+`>s zcc<8xQbeBez@jO035^fY6capkRSFccU$Ys~c^n|~*Fe=(WPX|AA6=kOQ=jV5V_6sN za?Ll%DD8gy(cf>?xT^%OJ*-wvsOA}A6iv4K%cJotMg{R0Le+k=^7jPvJNg@q0ZH|? z22-=Vc7*VQzX8N32NpGdVZz`0YW(RBw1idl*~;X0@bAzZmQuWmfdlYx`TIsLIN)eF zqQOGKnGeBS9iTDZvHMC>D^YE!uSae9S0SIs ziPyKNfH%k%1_aVT{%PuMA&7C?w<&my**oHB%WcNFcC23H9r+31Q4UkNpBzg0%ZtYP zA9wILv|5T)9wPirB}c+#Vfsv0&3tO0F)pjWvcF#``G0PAlir^-2v$gW6dc>w%>AK> zWYpZV_8c8h&C-EVmb`EIRAekRR!P34V&~WskStRu35xa+UmF*QK$t>FhEDqELXm-O zJ_4IOY$~}ls_;<_2qL7WO-d!^uBR236)%~aoUa?9MQ!U;+)9j6UebY6)G#P(g*2{3=y|Gr zu@TN!Z)flkKW1c|?94zw`Squ5cQjrxjY0KN!%n@47KvY_2YR=&%EK?9`(v9qzx)Yo zDaaj#e0d0qSLepXD@q|#{>$SjrAP9k$$ElJugo&B#;hm}A2MW2}s8isG};_~hXooht!KK+0yPIN#_92(@;HzUrpFCVENYuP1jw@COBsZkeI zMn!v&I0Ng1=7Fqy=mc~p;ARl3uGFpzz>dnWjYR__d4R|Al-9l)7Vw6R5%@VN)`=31 zKH>r9X}EY5t=m|c)v)(Kmc2iRiPT4L!*i)|MuIu!Mud&IZ0@Nmyu!J8N)`-~e}fz> zA^07a|GntA&ObQ;p}YnwOt8K2WXj1EwErexW-#zk$kw)Xzvk01ujB7b?}Bq=E9D zrk5pL!;2zMlm<^4BQ_`OHdDOBx_C~_Qk*id+FXHyHU;J8JamNCjIJ8NbZytDfK*2L zE1sy2tx7(R5t$%&+~|^+5&O&MRmbyf);A(0seEa`@GJwbXrH24IsB>PgFVD@n3~9I z*vB~=?f>ty|7WOEVTpOwe8%~ccOU;vY!vZUqRqbcJ&Ay#+9ROfUt9M-dbE-aGrC;VM>cQ-;Z zIIAO3JH`x9Jo6BZfes@m!r2F~G0TFot9>iajbe&~ZCT(0ps7?44<8CHWlKAgCgS5q z^UBd7&KKe9y-k3Zfxe~2k!I2$sVNPx#0jsH29x&5f?F2KUxUs>PZm*GFOd=6IE+x<%V4D+Y zdEeIu2RalhJ`L$-i^JbLyp|rAC*%D3JWC=wcu7M-vvJu7{r!0=ht9? zt**mPlBRNQxZqG{Cx)`wu*?|b5`^yGnW7eq4h|pwZ_`B3kJq5t*78Pwv6obj+3n17675uiW^r3hduk;Wx~6 zdHtQb!Awt9jp0S%yv9ydzb>ch45{)Tdite?fTuj^;}STk8FzTbvRw5D^m=>i5n#+I zmL6d0o${wI^it1Ah%uSdP{Q5E8nF6$unbi1)GI$Vr_d|zH&|GkB#@5qDweaVxtty} zty-hgRS_FPH!z8x)wUok&gl!ipi^PI=Jzg3-_QKwO^5ppmEXcDHY3&TY!=G^vZpf zXtHS8qAt>vs+Bu@}6(m*&|-2$D<8Q z7)Ew;ra`pu!5QG6)(-m|v}oVv7?~2#Gd})x!GA^kKN1;O=4#*ickCN<=~3Dri50G7 zoIY9#O|&m@gH9|f8c+umP1eKYxH9*2uil_ddpGwfw`$DWE&p6bNP7}K z+cPR*ps2{tRB@L=tr{r-E0P+y<)IibP_VxiQq1mrJKr9gP8Rd!r&Dwg((=2)QX{5T zI$OQD<9$-GkWC3xcXL&xT&DFeu3VbS_lnK{-xDxO;a~@iX6J^Lho6QizV!!~G%A&+ z4#5hqHX{vWV&X?@9LPZjqxT>0`|=;qSM$Z}iSl8wn)zyI7dR2(mfuw*(`u^uQGb`b z`$!$RXH;BPtk&woCuPKC2>*L3>kzAYE`8TqogeJD@vcMxsrqm^Bn4^G)N-oYo*qe( z;!}dj29a`z!7ROptKOB^MkIA=EaJB`2gzCD814^+oZM;5W*~gP;Bw|vgyP^uaM{qh zjhyb;8@}v-o4WAuZvA`?5A`!HQ{|=(-3Eijkat#0y|0kP-Ko$;z4(c8ilrmJsHb3b z@J0I#Kv?h=625ftB-wukx|XVmui4nJ?nuwpfDHT1MJt6cLz4&hiQUS;BL~P$K96M9 z?|%n^uAcM1L*H+V>}>fX5_I3oZhoX!nCd)w^-(=K3Md;}Nd=}T0wFM4X@xq#++1U& zk*uoqs-B&Z3iFNVd4bDoRMRPL)s7CTRl%fVG*6h~-E<2E1{>Ryko>MXFDj*Qt!4+y z2fQ^{%!KBkii@Br9!6W-NWPcojc|m|s)cr-Sv5mD(%B)&Ek|NiRz`MxO8q*=imE{E z$H)Ftlzz<^htDMvlgxGW6PY7RZR9)r235`R%0ArMyw@>s<-n1_5dElv>Z!sEmDf28 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%0D!wcXDB@ zD8bk7Q}1I2^CmGWLv7zT`C*Xc!oeV1xS)BovZkH9C>6?2fLE?o_WRp+&9)EUBC}xewAewo^G?UtBRgP#Yc7+vw^55 zcMc@)==gf9;L~o9lLIZ(o~$f$NEt{!a5I3xILBhzsLzfMvpmZn6;7;8muP;*G|;pR zOi@USibw9sq(@(E=Ba0F<{+!0g~-4WH&SEI_-=w*BUx2+{{bmxKIlv6iWU{@j`AM4 zU#IyeihSm@=vE!HcpJf=$`hK3p-k)48qYP3dWRt@+1Z?~_AY}IiUIBLEJ-?cPU5v( z6zEi%rY zo&0BcL@!fe8JgYma73=c@ z#8XNCfyP);C-#{yL5ZyBn=swvV<1@v^Gqx*=Kgr&-c5`Sw}ufQ(U=RhQ$@D|L@{#$_>Q-z+B9#_VC)}oqR580|i=-ylKbaUPy`k`C=D3k%0i%~S&}wlB2(0t!(6S6rBX9&QU3u02hK)= z=>y{;eq|Ct2{aAdV-3~Vv#*eT!ykuQwd6XJ8|@aE_E7aI7qj{WXhSuafg{&%#u1pz zzbV1cD%)o)w`bZ$Rfr?C*Upkqd_GDfdHw0<2OWeuxSqxZ_h+mUS27M z^^@VVUXBu7vL*}9{5pa-ifm>_7m?`}M;VZC^BWOwp2cx| zqI3WGTcc&-PmpfqAtjx7s)>$_mOjWA3kZT5%C%Gpe{wwAzmKw8uJ__pkgwt7l<7h; zd44XDt@m>{ODM)R7a##MG0Qa73($JGiJ;f`;JT-)7C`o8h`LwhmdZOxIT1ccj)BF- z#g$Av>w?=_JLK{;`lgLW-?c#QA&9S3I1to+^7U44`+SPE6eZ4dNRV?B&h(Z}6>q^+ z=fc$2vKWdF;#C5SBN}D8QHfWRyf>bCESK|}j z#*s2K8_wKz2=NdRe!R-tx)=Q&J^XL%oN8oOqf<;}c@>%G1Ygc4laZ+gNUMx3)>;XM z^7JS4zJx;$f>{w0luZ zg%o?sop9~zjTKA8`l&IGYc)g4(sMbotJfA#p2M1J(l&JO?;I`ll6Yb*A}MhZ!jP z+E0BXkhoD8XTQq4hPw1?@Zk%&Zgch%Hx#a^YKR$XYkFdAx5hxmHWG_;0Fz->$%)Ou z3dE*jV%|IW)|8+Y(dz;vYe$sCE-;I3R@2-#tDp|fwcAj4@iMFVv78#Lim|o9^tkbT z0OlUHX~n)C2Z^j}EZCXSv`&QvPUUvkkoQ+uFHYK zEvbdiR;NhX5>;v+v1oAPOczH)H`^@<+YM1oeU?$^WfKf=E$`3fuxs7{=^P$$S>}Vq z+uX<#ZKkC8te0s^lK`8w5Cj5^91h{UX;OY%ilZ+t%Kg!WGDP{$M$|tWvqrfOckI-V zDxAZ#hA^)vU=ptb?-l(5K(nYZ-P=<|Lo)gYs}_CeEgLYD{DebOW%}xc;;)xk-%<`F zGIl&}uwUpJ9p}m$FW2`%Z}NzbIX4NA4?V19<|ah@*;*pJHGIpniot_Q9MY9W^jdGe z7Lb#~F}d-UL2?;xJSaBtEnuz&q>~;7G*8auv*BN9V(ng(PY1u3wbK2}kxl{Am-FKS zV(F}yw+1Lit@CQboSfi)kSMH}L4&v`6ecbgBc{ehL9qlcA25G^=q)Rk|7BmCa+G3|IRx5(+pM&E8jZiIw4prQ?m()npIe)0^4qnQ!IA zn+s2D6vWQ8CeygxtMgo%$qa-wGm$51?n+UA1YAll5)(hf6b<^g{mMh_vcKm({*2R% z5l547;8@}MhKEIaIJ?8}(@AwgJ2hFZH#8qDgEAY{pB(XHw#T>#)w=4MI&F}bHIT-$ zyuj{a(UBN6<65Z00{98IV8vfIfb9bztz-8=yN~Ea9K0unh=&zSI}tP> zzOnB9!GN%jCBbEr>HV!2T`s9G?;JIJYk}C)r1cB|lQuXUm&T{24ZE!v8N8tMt0IqR z^_T{E;$TzEj%V={Hxl&=s>n%LqJ(=e)N-YS;j4sS-R{!+zw34jmr5GPjv^}Id*hej zq|bd_F{i0dyLA|*CzwCpvl}7;Qz2h2m=Zt*37;SS(AF_KiztUmR4z+4jy(dntG-T3v{fvzM`r)I>)byHF+?y`?6GMW zqdERmOIy@3T^Vn>>S+mtbspNEEH|w6ICh(c4v`K}a#(mkdYekn2O}f5EzjN^6)YNh z4JD%6WW`kx@I{{R6F>4gqf^4M^FK9R+=Wba=wx-F?MEKY$ z2GB8Z^rDdM{u&to#3fbJ&O=+E4?_XgeBM-IYhWp=pRDTC=6WS#R;jn~nwU=hkhO!% z)te{79l$jqfzL3jjlzfzcdEWSjuD@MP&~D^7RHacKRd@2gX|Mf86#dn?>9`_YAH7> z0?({Ek+X90BK%trB^v+W{w z5$%eZZSvLD<t?62SDEm4Gv}w0xr8V?WOjo1InrCQX9;c^sxmNb4cL8V(7b2*W z9gB-vBU{|Dk>b{f=G+iV;?c7FJf`*h`bVCGoJGj`(`We|@@eRO*?U+e;G6O{Su_o9 zcv?lj!+s%uoeh@`U58)R-JL&cyDglmEa94|TsNz1Utef6W->x|d(x7jcOgu$GL2Kf zjKS8@OZa8)W^^4@nXCK=LA-=-lO;z;29iBGDR$7Myrd;VrT20aO!N01yTTmUgU>%5m-i;?ip@qR$6a_zU>qoFaxv7X{2cFzc zHD%D=8nt+6#uW(r4(&J?-_UfnM!85?)Q^|~!gGM(L+{u8B?iNNfqj2N_(!M03reI@ z9aEDo5rm}UsKx@}U0u$&4Njy#jT>04=h&icg$lz#gBhE32TG7uVqHFv6M5KYrCIjk zcX##BHmEPR%aY{l8XDNA4#GlS5Fk&(5sXhrWtaGL109jq!u!?sQ zk?T(Nk9o8VS=&Z4D`~M?Yv7=l)w0DjWF)6%?ibWNsz&W)ercF3v9%^vbhkFj8Ksvb zdSB3j7Vsf)TZ9p&TXXoa5T>Zm=xY8KJM4S#w>6k0`FS&locY|mqLx2KT28Qmu#|k* zy?H~|!Onq1b4FsTQ9}RGryw)Aq8Al1{qXX%l-z`i{kfwo*%EIb4+4t%pew1(Nf4NR z^E1jz78VAgv%ThGAmb9uI=y%EwuE-U@eK8w_Tg< z+G(ZXwH5~g+y(ZRFOodgA92rYnOV1LOjB?;0RaP&%5X5$8dAXz_6@0RH6Zw38TV!P z#BY5OH?Frh2Y!}$_@vo6Tg2*v)2x2aG?J8(Lrzg9dfiGAV-*D*V$ng(&AfX$;$=!B zP)zmBmst|J*tu2Ru39pU^7P_+49tdVeMxu`*rg^yORbm25K__=}fVkNFiBYP=9 zsr~^)N;edqHlDV{TY5+S3O<>Vl6500ZpIjIncwa*9nDtyXLT}+lyYRd?B!;mN<&lp znY_RJZSr1+M!95ZNl^&t%_T@jTC6K}jVs~eOIj0x?>OP#oeI~Iu&Ey=t?lnFHZ5ba zJ%odaTZ&ICC&XlI?w^yQY}hztwP4a6AL8TaZt>rn_?Gd6R(q>c#+#Ypm33=Ug`39= z!LLmPSRgjZ`W8QTVLO7D$Anij#+j~~0OLudNpksN@C1{j3WCPwaH5tYcK$MOM$n=X zPfKYQ7bSZ>b%{Kx@6ZtGmbzs3TYR@hrgZLr3y|Ni(cK7J+VlPYMeH9Dz4 zra-b@^l<;u{_|ClWvf{9s9Va>aiFUbL`ukP zc_{i&rneGgs)U~3aSqSPdlUnI+mQJ;Qe1ChoQMnEE2)U4@T;Mrp>Vr>ZpsH^R4y9# zQ!AvkZT`?gKS&vh{`11E{OrdCy?cG8DQA0*g6|dKd}r)$KMxY8k0KEf?S-#m5DDe* zS9_8OY5An+yHhjzh{{wG9?pcZ%=+aIA<_eRzwkf80LxEfBu}?)hxehbXq11&@Bixb zJ^Y)j#thQf|9CbcTmOv_-H>8&vW7gQheJ=255Gy;STW8N-n+5Z>kZi*EXul(@Nsi1 zN5Pk!MtlU2O&%hV>LYEWIx|rLxtHbaWzhk7+cfW=!`GDhq)ys z$kV=4UKY<$!j&eS#pJ<6s@B>DMu}%GeQgk(9HSP_{`$SSAH{=bv5S}PVQ@ybv8QE= z+$n$PTL*@sEoQT}CM8@yp5;4ij)jqK0Z{qRZlJqB_F{8;(>!2l?vtmIN zr*|bvm76|Q*wi;TN+mVEDf$Qo7VRB<3lGjZH${190U#79PgyQYs$P8Qxyl&Ep|NP`Zy}`; zQ$ET~F7IwgXJcuA(bJ{|kRWiP24)7=OA0tgn!7Ff<0jaj57Cu`Nbju((Tn)!-0{;w zzFbgnNQ*BLitw1-Esf7It(6);zj~Tf(-w+R zyk8b>kQ`h8(pC?I0W09nQj$dniqbw#Wh~HZ564WzCH)_T?@KbqD}PyaGiX&g%GiVVnF7`uF>4l$#tM7#Lmkj7#LS?IEzdt-n;FFnnVVQGW0(VVss znC_x7hZ*s|r9<2F(aq@O)5y>#aK6?Ka~&euAqq)RB=Los&!n>Ciw(>4GS(Ss1u(gx zUoQy3d2R9U?OXcx%m#!bdMq=%tt0UkJ>yPPZnMMOuROL`g*w=VO3Vv`avG)2M8N_` zEdd7|C;D!zN_`+jVoL!bB!QZOw5^5O@(j2ZP@VYv*f-fiH$r!1N!XE-RUq0Tm$G3} zTww}%w6U>YR8CCWWFn%=NcoALJrp27l};l}6mFTA$;sEYI>mn;c)R?8Q?n zc1M42&<~zztsyIwS^uceU|T($Kbo4d#l4Vr_p(Cy_T-pjR_jcfF#XR&yz@7S*c!!X zJ@a9uZ0fKaIsvg{GIkFL4WQ~W|Dt!{LIW92XR+hoyVTZS0{dz>0nj8~8c<>ds~C4q zFWhj-iSW4BmtbUiWb0jxntUm7334{U`0Tv#ni1oUu7z&6D~9$sT4z(yYf8%sNJ(cc zE<+u4{^N&I1s#su0pajDG$@+D@T-_xI{1T$IWs@i;-UDp=(OSySy`G~C6HhsE^#XY z5#Arr%|~I=QkxI+`r2*9L6pl3@EE1`PT64IwG{);J&7LMv%FC%1vipuOBWpTo6KC- z`7c2g(z;~pddwYy7Nq?d*SEb1#-Cce^2x(|!wMjU{J~>yJnQ|sZs&17xpLQ-3vX!W zx0ehHz0UHpmzA9S?4*9M>oQORnY`%dOsL;f_n)P@W?^EZ%OJ-x4SOWqg~;@WhHTQ^9<7+cNU;+s$HaJIvbwx+ zvaX#x9ik7r&wwaJP^6n@!rN(YKr_Fb4&2p!T$7Vct}Z`&cgv{Zsw2)tx=-u%+F7pg zQaP}j(9~4#$@mUDg^t7lgD^zs=^A_n+L)34Q-iJJyB~b_OJc9kTzGBjy{?5R~ ze*e~`PosGe8!XQkot_oJ0BP%Cb_;1xSJ4-UBAAzTLp&aEN&*5T~IcrRDk2{odRe`iPvvn(hBisx1T(1pWU2gby2Nvq-R^=XUM z^3c`JS!wWH_@sOLlhc?@5e%KZL*q`J#Sokfbz+*Mdm@gVd16bMXRCjwh|Nra3Jww! zU%<3c+HNjIY?hC3596tYXpGghUv4fDh*FlEgS8)4$sm>bSwp&AWNN+p6O%BuJS5c| z(0;9S$lx&X!C!~Q?s-3~QH}*Lwvcdd7+G=D*e{Txb6h}R3jG_|!rs|m9xphH%~}Di zfZ2Um-*Z^c>}cVB^-9vzw7PQoYXOep5#mg1kGg@04ba2_Xa@dX&ZJb$SvqlkUQ&f0 z@vXV_eJ%0A7F}=0bkQc!#d=7^ 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 Date: Wed, 4 May 2016 16:02:15 +0200 Subject: [PATCH 04/12] reverted unnecessary change in original file --- app/styles/play/modal/buy-gems-modal.sass | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/styles/play/modal/buy-gems-modal.sass b/app/styles/play/modal/buy-gems-modal.sass index 5dccaf843..e038fc618 100644 --- a/app/styles/play/modal/buy-gems-modal.sass +++ b/app/styles/play/modal/buy-gems-modal.sass @@ -53,7 +53,7 @@ position: absolute left: 55px top: 242px - width: 1060px + width: 960px height: 140px .product From 6916de6c8bce3624a02c013d828f8e38972d8de8 Mon Sep 17 00:00:00 2001 From: Matt Lott Date: Thu, 5 May 2016 17:15:52 -0700 Subject: [PATCH 05/12] Update enroll students copy --- app/locale/en.coffee | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 8ca444a7b..1b0fc7a09 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -1246,7 +1246,7 @@ print_guide: "Print Guide (PDF)" view_guide_online: "View Guide Online (PDF)" last_updated: "Last updated:" - grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal + grants_lifetime_access: "Grants access to all Courses." # {change} enrollment_credits_available: "Enrollment Credits Available:" description: "Description" # ClassroomSettingsModal language_select: "Select a language" From 3ad395ecb80ce56757f1605d00aed1c1cafcfbaf Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Fri, 6 May 2016 11:43:54 -0700 Subject: [PATCH 06/12] Lightweight invoice purchases show description on PaymentsView --- app/collections/Payments.coffee | 7 +++++++ app/templates/account/payments-view.jade | 9 ++++++--- app/views/account/PaymentsView.coffee | 9 ++++----- test/app/factories.coffee | 7 +++++++ test/app/views/account/PaymentsView.spec.coffee | 16 ++++++++++++++++ 5 files changed, 40 insertions(+), 8 deletions(-) create mode 100644 app/collections/Payments.coffee create mode 100644 test/app/views/account/PaymentsView.spec.coffee diff --git a/app/collections/Payments.coffee b/app/collections/Payments.coffee new file mode 100644 index 000000000..76884c652 --- /dev/null +++ b/app/collections/Payments.coffee @@ -0,0 +1,7 @@ +Payment = require 'models/Payment' +CocoCollection = require 'collections/CocoCollection' + +module.exports = class Payments extends CocoCollection + model: Payment + url: '/db/payment' + diff --git a/app/templates/account/payments-view.jade b/app/templates/account/payments-view.jade index 532af43fb..fc625f656 100644 --- a/app/templates/account/payments-view.jade +++ b/app/templates/account/payments-view.jade @@ -10,7 +10,8 @@ block content a(href="/account", data-i18n="nav.account") li.active(data-i18n="account.payments") - if view.payments.models.length + - console.log('render', view.payments.size()) + if view.payments.size() table.table.table-striped tr th(data-i18n="account.purchased") @@ -21,7 +22,9 @@ block content for payment in view.payments.models - var service = payment.get('service') tr - if payment.get('productID') + if payment.get('productID') === 'custom' + td= payment.get('description') + else if payment.get('productID') td(data-i18n='account.gems') else td(data-i18n='subscribe.stripe_description') @@ -32,4 +35,4 @@ block content else td(data-i18n="account.service_web") td $#{(payment.get('amount')/100).toFixed(2)} - td= payment.get('gems') + td= payment.get('gems') || '-' diff --git a/app/views/account/PaymentsView.coffee b/app/views/account/PaymentsView.coffee index b51d20e25..fae660e7b 100644 --- a/app/views/account/PaymentsView.coffee +++ b/app/views/account/PaymentsView.coffee @@ -1,13 +1,12 @@ RootView = require 'views/core/RootView' template = require 'templates/account/payments-view' CocoCollection = require 'collections/CocoCollection' -Payment = require 'models/Payment' +Payments = require 'collections/Payments' module.exports = class PaymentsView extends RootView id: "payments-view" template: template - constructor: (options) -> - super(options) - @payments = new CocoCollection([], { url: '/db/payment', model: Payment, comparator:'_id' }) - @supermodel.loadCollection(@payments, 'payments', {cache: false}) + initialize: -> + @payments = new Payments() + @supermodel.trackRequest(@payments.fetch({cache: false})) diff --git a/test/app/factories.coffee b/test/app/factories.coffee index 5165af654..50ad8a0c9 100644 --- a/test/app/factories.coffee +++ b/test/app/factories.coffee @@ -140,6 +140,13 @@ module.exports = { name: _.string.humanize(_id) }, attrs) return new ThangType(attrs) + + makePayment: (attrs, sources={}) -> + _id = _.uniqueId('payment_') + attrs = _.extend({}, { + _id + }, attrs) + return new ThangType(attrs) } diff --git a/test/app/views/account/PaymentsView.spec.coffee b/test/app/views/account/PaymentsView.spec.coffee new file mode 100644 index 000000000..595bcbdef --- /dev/null +++ b/test/app/views/account/PaymentsView.spec.coffee @@ -0,0 +1,16 @@ +PaymentsView = require 'views/account/PaymentsView' +Payments = require 'collections/Payments' +factories = require 'test/app/factories' + +describe 'PaymentsView', -> + + it 'displays the payment "description" if the payment\'s productID is "custom"', -> + view = new PaymentsView() + payment = factories.makePayment({productID: 'custom', description: 'Custom Description' }) + view.payments.fakeRequests[0].respondWith({ + status: 200 + responseText: new Payments([payment]).stringify() + }) + view.render() + expect(_.contains(view.$el.text(), 'Custom Description')).toBe(true) + jasmine.demoEl(view.$('#site-content-area')) From 578ef34bdf3e6cdd728d0f1b53dabc3d40e9698c Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Fri, 6 May 2016 11:56:22 -0700 Subject: [PATCH 07/12] Propagate i18n --- app/locale/ar.coffee | 13 +++++----- app/locale/bg.coffee | 13 +++++----- app/locale/ca.coffee | 13 +++++----- app/locale/cs.coffee | 13 +++++----- app/locale/da.coffee | 13 +++++----- app/locale/de-AT.coffee | 13 +++++----- app/locale/de-CH.coffee | 13 +++++----- app/locale/de-DE.coffee | 13 +++++----- app/locale/el.coffee | 13 +++++----- app/locale/en-GB.coffee | 13 +++++----- app/locale/en-US.coffee | 13 +++++----- app/locale/en.coffee | 4 ++-- app/locale/eo.coffee | 13 +++++----- app/locale/es-419.coffee | 15 ++++++------ app/locale/es-ES.coffee | 13 +++++----- app/locale/et.coffee | 13 +++++----- app/locale/fa.coffee | 13 +++++----- app/locale/fi.coffee | 13 +++++----- app/locale/fr.coffee | 13 +++++----- app/locale/gl.coffee | 13 +++++----- app/locale/he.coffee | 13 +++++----- app/locale/hi.coffee | 13 +++++----- app/locale/hu.coffee | 13 +++++----- app/locale/id.coffee | 13 +++++----- app/locale/it.coffee | 13 +++++----- app/locale/ja.coffee | 45 ++++++++++++++++++----------------- app/locale/ko.coffee | 13 +++++----- app/locale/lt.coffee | 13 +++++----- app/locale/mk-MK.coffee | 13 +++++----- app/locale/ms.coffee | 13 +++++----- app/locale/my.coffee | 13 +++++----- app/locale/nb.coffee | 13 +++++----- app/locale/nl-BE.coffee | 13 +++++----- app/locale/nl-NL.coffee | 15 ++++++------ app/locale/nn.coffee | 13 +++++----- app/locale/pl.coffee | 13 +++++----- app/locale/pt-BR.coffee | 13 +++++----- app/locale/pt-PT.coffee | 13 +++++----- app/locale/ro.coffee | 13 +++++----- app/locale/ru.coffee | 45 ++++++++++++++++++----------------- app/locale/sk.coffee | 13 +++++----- app/locale/sl.coffee | 13 +++++----- app/locale/sr.coffee | 13 +++++----- app/locale/sv.coffee | 13 +++++----- app/locale/th.coffee | 13 +++++----- app/locale/tr.coffee | 13 +++++----- app/locale/uk.coffee | 13 +++++----- app/locale/ur.coffee | 13 +++++----- app/locale/uz.coffee | 13 +++++----- app/locale/vi.coffee | 15 ++++++------ app/locale/zh-HANS.coffee | 13 +++++----- app/locale/zh-HANT.coffee | 13 +++++----- app/locale/zh-WUU-HANS.coffee | 13 +++++----- app/locale/zh-WUU-HANT.coffee | 13 +++++----- 54 files changed, 408 insertions(+), 355 deletions(-) diff --git a/app/locale/ar.coffee b/app/locale/ar.coffee index f40570d6b..5b8e0cd84 100644 --- a/app/locale/ar.coffee +++ b/app/locale/ar.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi blog: "مدوّنة" forum: "منتدى" account: "حساب" +# my_account: "My Account" profile: "ملف شخصي" stats: "إحصاءات" code: "رمز" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi campaign_old_multiplayer_description: "قطع اثرية من العصر أكثر تحضرا. يتم تشغيل أي محاكاة لهذه السن، الساحات متعددة البطل أقل." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi clojure_blurb: "لثغة حديثة." lua_blurb: "لعبة لغة البرمجة." io_blurb: "بسيطة ولكنها غامضة." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" weapons: "اسلحة" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/bg.coffee b/app/locale/bg.coffee index 385878377..d148ff94d 100644 --- a/app/locale/bg.coffee +++ b/app/locale/bg.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "български език", englishDescri create_a_class: "Създай клас" setup_a_class: "Задай клас" have_an_account: "Вече имаш акаунт?" - log_in: "Влез" logged_in_as: "Влязъл си като" view_my_classes: "Моите класове" computer_science: "Курсове по компютърни науки за всички възрасти" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "български език", englishDescri educator_wiki: "Wiki за учители" view_profile: "Моя профил" view_progress: "Прегледай прогреса" - login_switch: "Вече имаш акаунт?" check_out_wiki: "Разгледай новото ни Wiki за учители" want_coco: "Искаш ли CodeCombat в училището си?" form_select_role: "Избери основна роля" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "български език", englishDescri blog: "Блог" forum: "Форум" account: "Акаунт" +# my_account: "My Account" profile: "Профил" stats: "Статистики" code: "Код" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "български език", englishDescri campaign_old_multiplayer_description: "Остатъци от едни по-циливизовани вренмена. Тези стари арени са без симулации и без герои." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "български език", englishDescri clojure_blurb: "Модерен Lisp." lua_blurb: "Скриптен език за игри." io_blurb: "Прост, но неизвестен." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Статус" hero_type: "Тип" weapons: "Оръжия" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "български език", englishDescri # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "български език", englishDescri # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "български език", englishDescri # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "български език", englishDescri # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "български език", englishDescri # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/ca.coffee b/app/locale/ca.coffee index cdd68f6dc..f6f1645be 100644 --- a/app/locale/ca.coffee +++ b/app/locale/ca.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr blog: "Bloc" forum: "Fòrum" account: "Compte" +# my_account: "My Account" profile: "Perfil" stats: "Estats" code: "Codi" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr campaign_old_multiplayer_description: "Relíquies d'una era més civilitzada. No hi ha simulacions per aquestes arenes multijugador antigues." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr clojure_blurb: "Un Lisp modern." lua_blurb: "Llenguatge script per a jocs." io_blurb: "Senzill però obscur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Estat" hero_type: "Tipus" weapons: "Armes" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arximag" diff --git a/app/locale/cs.coffee b/app/locale/cs.coffee index aa996945a..5d298a9a3 100644 --- a/app/locale/cs.coffee +++ b/app/locale/cs.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr blog: "Blog" forum: "Fórum" account: "Účet" +# my_account: "My Account" profile: "Profil" stats: "Statistiky" code: "Kód" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr clojure_blurb: "Moderní Lisp." lua_blurb: "Jazyk pro skriptování her." io_blurb: "Jednoduchý ale nejasný." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Stav" hero_type: "Typ" weapons: "Zbraně" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arcikouzelník" diff --git a/app/locale/da.coffee b/app/locale/da.coffee index 5bab5fc28..a8d86ea7d 100644 --- a/app/locale/da.coffee +++ b/app/locale/da.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans create_a_class: "Opret klasse" setup_a_class: "Opsæt klasse" have_an_account: "Har du allerede en konto?" - log_in: "Log ind" logged_in_as: "Du er i øjeblikket logget ind som" view_my_classes: "Se mine klasser" computer_science: "Datalogikurser for alle aldre" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans educator_wiki: "Underviser wiki" view_profile: "Vis Min Profil" # view_progress: "View Progress" - login_switch: "Har du en konto?" check_out_wiki: "Tjek vores nye pædagog Wiki" want_coco: "Ønsker du CodeCombat på din skole?" form_select_role: "Vælg primær rolle" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans blog: "Blog" forum: "Forum" account: "Konto" +# my_account: "My Account" profile: "Profil" stats: "Statistik" code: "Kode" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans campaign_old_multiplayer_description: "Levn fra en mere civiliseret tid. Ingen simuleringer er kørt for disse ældre, helte-fattige multiplayer arenaer." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans clojure_blurb: "En moderne version af Lisp." lua_blurb: "Spil scripting sprog." io_blurb: "Simpelt men obskurt." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Type" weapons: "Våben" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans main_description: "Hos CodeCombat er vores opgave at sikre, at du gør det med et smil på læben." mission_link: "Mission" team_link: "Hold" - community_link: "Fællesskab" story_link: "Baggrund" - careers_link: "Karriere" press_link: "Pressen" mission_title: "Vores mission: At gøre programmering tilgængelig for alle elever på Jorden." mission_description_1: "Programmering er magi. Det er evnen til at skabe ting fra ren fantasi. Vi startede CodeCombat for at give eleverne en fornemmelse af troldmandsmagt lige ved hånden ved hjælp af indtastet kode." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans length: "Varighed:" title: "Titel" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Beskrivelse" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Ærkemager" diff --git a/app/locale/de-AT.coffee b/app/locale/de-AT.coffee index 592d21b74..dd5bec038 100644 --- a/app/locale/de-AT.coffee +++ b/app/locale/de-AT.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: blog: "Blog" forum: "Forum" account: "Account" +# my_account: "My Account" profile: "Profil" stats: "Statistiken" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: clojure_blurb: "Ein modernes Lisp." lua_blurb: "Skriptsprache für Spiele (KI)." io_blurb: "Simpel aber obskur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" # hero_type: "Type" weapons: "Waffen" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Erzmagier" diff --git a/app/locale/de-CH.coffee b/app/locale/de-CH.coffee index 16b763eaa..54dc8f539 100644 --- a/app/locale/de-CH.coffee +++ b/app/locale/de-CH.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge blog: "Blog" forum: "Forum" account: "Account" +# my_account: "My Account" profile: "Profil" stats: "Statistike" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # clojure_blurb: "A modern Lisp." lua_blurb: "D Sproch für Game Scripts." io_blurb: "Eifach aber undurchsichtig." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" hero_type: "Typ" weapons: "Waffene" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Dütsch (Schwiiz)", englishDescription: "Ge # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/de-DE.coffee b/app/locale/de-DE.coffee index 01d304317..17d546aa2 100644 --- a/app/locale/de-DE.coffee +++ b/app/locale/de-DE.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: create_a_class: "Erstellen Sie eine Klasse" setup_a_class: "Eine Klasse erstellen" have_an_account: "Haben Sie bereits einen Account?" # {change} - log_in: "Einloggen" logged_in_as: "Sie sind zurzeit eingeloggt als" view_my_classes: "Zeige meine Klassen" computer_science: "Informatikkurse für alle Altersgruppen" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: blog: "Blog" forum: "Forum" account: "Account" +# my_account: "My Account" profile: "Profil" stats: "Statistiken" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: campaign_old_multiplayer_description: "Relikte einer eher zivilisierten Zeit. Keine Simulationen laufen hier ab für diese älteren Multiplayerarenas ohne Helden." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: clojure_blurb: "Ein modernes Lisp." lua_blurb: "Skriptsprache für Spiele." io_blurb: "Simpel aber obskur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Typ" weapons: "Waffen" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: main_description: "Bei CodeCombat ist es unser Job das du das mit einem Lächeln im Gesicht tust." mission_link: "Mission" team_link: "Team" - community_link: "Community" story_link: "Geschichte" - careers_link: "Karrieren" press_link: "Presse" mission_title: "Unsere Mission: Programmieren jedem Schüler auf der Erde zugänglich zu machen." mission_description_1: "Programmieren ist Magie. Es ist die Fähigkeit Dinge aus purer Vorstellungskraft zu erschaffen. Wir starteten CodeCombat um Lernen dieses Gefühl der Zauberkraft in ihren Fingerspitzen zu geben während sie getippten Code benutzen." # {change} @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: length: "Länge:" title: "Titel" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Beschreibung" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Erzmagier" diff --git a/app/locale/el.coffee b/app/locale/el.coffee index c130c7c13..483a1d313 100644 --- a/app/locale/el.coffee +++ b/app/locale/el.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre blog: "Ιστολόγιο" forum: "Φόρουμ" account: "Λογαριασμός" +# my_account: "My Account" profile: "Προφίλ" stats: "Στατιστικά" code: "Κώδικας" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre clojure_blurb: "Μοντέρνα Lisp." lua_blurb: "Γλώσσα παιχνιδιών με σενάρια." io_blurb: "Απλή αλλά ασαφής." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Κατάσταση" hero_type: "Τύπος" weapons: "Όπλα" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre length: "Μήκος:" title: "Τίτλος" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Περιγραφή" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Ελληνικά", englishDescription: "Gre # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Αρχιμάγος" diff --git a/app/locale/en-GB.coffee b/app/locale/en-GB.coffee index e39911947..8a77f5581 100644 --- a/app/locale/en-GB.coffee +++ b/app/locale/en-GB.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/en-US.coffee b/app/locale/en-US.coffee index 639e3733c..b8b68b99c 100644 --- a/app/locale/en-US.coffee +++ b/app/locale/en-US.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 1b0fc7a09..66010434f 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -188,7 +188,7 @@ campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." code: - if: "if" # Keywords + if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) else: "else" elif: "elif" while: "while" @@ -1246,7 +1246,7 @@ print_guide: "Print Guide (PDF)" view_guide_online: "View Guide Online (PDF)" last_updated: "Last updated:" - grants_lifetime_access: "Grants access to all Courses." # {change} + grants_lifetime_access: "Grants access to all Courses." enrollment_credits_available: "Enrollment Credits Available:" description: "Description" # ClassroomSettingsModal language_select: "Select a language" diff --git a/app/locale/eo.coffee b/app/locale/eo.coffee index 21da71804..cf02eca16 100644 --- a/app/locale/eo.coffee +++ b/app/locale/eo.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" blog: "Blogo" forum: "Forumo" account: "Konto" +# my_account: "My Account" profile: "Profilo" stats: "Statistiko" code: "Kodo" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Esperanto", englishDescription: "Esperanto" # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/es-419.coffee b/app/locale/es-419.coffee index 881b1a165..bb48b2038 100644 --- a/app/locale/es-419.coffee +++ b/app/locale/es-419.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip create_a_class: "Crear una Clase" # setup_a_class: "Set Up a Class" have_an_account: "¿Ya tenes una cuenta?" # {change} - log_in: "Accesar" logged_in_as: "Estás actualmente conectado como" view_my_classes: "Ver mis clases" computer_science: "Cursos de informática para todas las edades" @@ -95,9 +94,8 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # educator_wiki: "Educator wiki" view_profile: "Ver mi perfíl" view_progress: "Ver mi progreso" - login_switch: "¿Tienes una cuenta?" check_out_wiki: "Check out our new educator Wiki" -# want_coco: "¿Quiéres Code combat en tu escuela?" +# want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" form_select_range: "Seleccione el tamaño de la clase" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip blog: "Blog" forum: "Foro" account: "Cuenta" +# my_account: "My Account" profile: "Perfil" stats: "Estadísticas" code: "Código" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip campaign_old_multiplayer_description: "Reliquias de una era más civilizada. Ninguna simulación es ejecutada para estas arenas multijugador antiguas y sin héroes." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip clojure_blurb: "Un Lisp moderno." lua_blurb: "Lenguaje para Juegos." io_blurb: "Simple pero oscuro." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Estado" hero_type: "Tipo" weapons: "Armas" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip main_description: "En CodeCombat, nuestro trabajo es asegurarnos que estás haciendo eso con una sonrisa en tu cara." mission_link: "Misión" team_link: "Equipo" - community_link: "Comunidad" story_link: "Historia" - careers_link: "Carreras" press_link: "Prensa" mission_title: "Nuestra misión: hacer accesible la programación para cada estudiante en la Tierra." mission_description_1: "La programación es mágica. Es la habilidad de crear cosas desde la pura imaginación. Empezamos CodeCombat para dar a los estudiantes la sensación de poder de la magia en la punta de sus dedos mediante el tipeo de código." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip length: "Duración:" title: "Título" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Descripción" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Español (América Latina)", englishDescrip # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Archimago" diff --git a/app/locale/es-ES.coffee b/app/locale/es-ES.coffee index 85a149f1b..fce27387a 100644 --- a/app/locale/es-ES.coffee +++ b/app/locale/es-ES.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis blog: "Blog" forum: "Foro" account: "Cuenta" +# my_account: "My Account" profile: "Perfil" stats: "Estadisticas" code: "Codigo" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis campaign_old_multiplayer_description: "Reliquias de una era más civilizada. Ninguna simulación es ejecutada para estas arenas multijugador antiguas y sin héroes." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis clojure_blurb: "Un Lisp moderno." lua_blurb: "Lenguaje Script para Juegos." io_blurb: "Simple pero oscuro." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Estado" hero_type: "Tipo" weapons: "Armas" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" mission_title: "Nuestra misión: lograr que la programación esté disponible para todos los alumnos de la Tierra." mission_description_1: "Programar es hacer magia. Es la habilidad de crear cosas desde la imaginación. Iniciamos CodeCombat para que los alumnos experimenten en sus dedos la magia al escribir código.." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Archimago" diff --git a/app/locale/et.coffee b/app/locale/et.coffee index 3500b4231..f2c8eb465 100644 --- a/app/locale/et.coffee +++ b/app/locale/et.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Eesti", englishDescription: "Estonian", tra # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/fa.coffee b/app/locale/fa.coffee index 46b9a3fc2..33dde3d3a 100644 --- a/app/locale/fa.coffee +++ b/app/locale/fa.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", blog: "بلاگ" forum: "انجمن" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian", # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/fi.coffee b/app/locale/fi.coffee index 9d970c082..462340fc5 100644 --- a/app/locale/fi.coffee +++ b/app/locale/fi.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran blog: "Blogi" forum: "Foorumi" account: "Tili" +# my_account: "My Account" profile: "Profiili" stats: "Tilastot" code: "Koodi" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran clojure_blurb: "Moderni Lisp." lua_blurb: "Pelien skriptauskieli." io_blurb: "Yksinkertainen mutta hämärä." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Tila" hero_type: "Tyyppi" weapons: "Aseet" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arkkimaagi" diff --git a/app/locale/fr.coffee b/app/locale/fr.coffee index d4f090993..d4c17d20b 100644 --- a/app/locale/fr.coffee +++ b/app/locale/fr.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t blog: "Blog" forum: "Forum" account: "Compte" +# my_account: "My Account" profile: "Profil" stats: "Stats" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t campaign_old_multiplayer_description: "Reliques d'un âge plus civilisé. Il n'y a aucune simulation pour ces vielles arènes multijoueur vides de tout héros." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t clojure_blurb: "Un Lisp moderne." lua_blurb: "Langage de script de jeu." io_blurb: "Simple mais obscur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Statut" hero_type: "Type" weapons: "Arme" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t length: "Durée:" title: "Titre" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "français", englishDescription: "French", t # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Archimage" diff --git a/app/locale/gl.coffee b/app/locale/gl.coffee index 3b99c9455..8e28bcdbc 100644 --- a/app/locale/gl.coffee +++ b/app/locale/gl.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr blog: "Blog" forum: "Foro" account: "Conta" +# my_account: "My Account" profile: "Perfil" stats: "Estatísticas" code: "Código" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr clojure_blurb: "Un Lisp moderno." lua_blurb: "Linguaxe Script para Xogos." io_blurb: "Simple, pero oscuro." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Estado" # hero_type: "Type" weapons: "Armas" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Galego", englishDescription: "Galician", tr # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Archimago" diff --git a/app/locale/he.coffee b/app/locale/he.coffee index ec4450079..5fa76dd78 100644 --- a/app/locale/he.coffee +++ b/app/locale/he.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", blog: "בלוג" forum: "פורום" account: "חשבון" +# my_account: "My Account" profile: "פרופיל" stats: "נתונים" code: "קוד" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", clojure_blurb: ".עילגות מודרנית" lua_blurb: ".שפה לכתיבת תסריטי משחק" io_blurb: ".פשוטה אך מעורפלת" +# java_blurb: "(Subscriber Only) Android and enterprise." status: "סטטוס" hero_type: "סוג" weapons: "נשקים" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew", # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "כשף על" diff --git a/app/locale/hi.coffee b/app/locale/hi.coffee index e08af628a..8eddd110e 100644 --- a/app/locale/hi.coffee +++ b/app/locale/hi.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe blog: "ब्लॉग" forum: "मंच" account: "खाता" +# my_account: "My Account" profile: "रूपरेखा" stats: "आँकड़े" code: "कोड" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/hu.coffee b/app/locale/hu.coffee index ddb9cb35b..d4afe1f8c 100644 --- a/app/locale/hu.coffee +++ b/app/locale/hu.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" have_an_account: "Van már fiókod?" # {change} -# log_in: "Log In" logged_in_as: "Jelenleg így vagy belépve" # view_my_classes: "View my classes" computer_science: "Programozás kurzusok minden korosztálynak" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t blog: "Blog" forum: "Fórum" account: "Fiók" +# my_account: "My Account" profile: "Profil" stats: "Statisztika" code: "Kód" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t clojure_blurb: "A modern Lisp." lua_blurb: "Játék programozó nyelv" io_blurb: "Egyszerű, de különleges." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Státusz" hero_type: "Hős típus" weapons: "Fegyverek" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Főmágus" diff --git a/app/locale/id.coffee b/app/locale/id.coffee index 45f4b23d9..567f89617 100644 --- a/app/locale/id.coffee +++ b/app/locale/id.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind create_a_class: "Buat sebuah kelas" # setup_a_class: "Set Up a Class" have_an_account: "Sudah mempunyai akun?" -# log_in: "Log In" logged_in_as: "You are currently logged in as" view_my_classes: "Lihat kelas-kelas saya" computer_science: "kursus ilmu komputer untuk segala usia" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind blog: "Blog" forum: "Forum" account: "Akun" +# my_account: "My Account" profile: "Profil" stats: "Statistik" code: "Kode" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind campaign_old_multiplayer_description: "Peninggalan zaman yang lebih beradab. Tidak ada simulasi yang dijalankan untuk arena multipemain lebih tua yang tak-berpahlawanan ini." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/it.coffee b/app/locale/it.coffee index a6791cf26..cb168c59c 100644 --- a/app/locale/it.coffee +++ b/app/locale/it.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t blog: "Blog" forum: "Forum" account: "Account" +# my_account: "My Account" profile: "Profilo" stats: "Statistiche" code: "Codice" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t campaign_old_multiplayer_description: "Reliquie di un'epoca più civilizzata. Nessuna simulazione viene eseguita per queste arene multi-giocatore più vecchie e senza eroi" # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t clojure_blurb: "Un Lisp moderno." lua_blurb: "Linguaggio per la programmazione di giochi." io_blurb: "Semplice ma poco amichevole." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Stato" hero_type: "Tipo" weapons: "Armi" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # length: "Length:" title: "Titolo" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Descrizione" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arcimago" diff --git a/app/locale/ja.coffee b/app/locale/ja.coffee index afc16ac27..07180d596 100644 --- a/app/locale/ja.coffee +++ b/app/locale/ja.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", blog: "ブログ" forum: "掲示板" account: "アカウント" +# my_account: "My Account" profile: "プロフィール" stats: "ステータス" code: "コード" @@ -188,23 +187,23 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", campaign_old_multiplayer: "(非推奨)旧マルチプレイ・アリーナ" campaign_old_multiplayer_description: "より文化的だった時代の遺跡。 シュミレーションは古いため実行されなく, ヒーローもいないマルチプレイ・アリーナです。" - code: - if: "if" # Keywords - else: "else" - elif: "elif" - while: "while" - loop: "loop" - for: "for" - break: "break" - continue: "continue" - then: "then" - do: "do" - end: "end" - function: "function" - def: "def" - self: "self" - hero: "hero" - this: "this" +# code: +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) +# else: "else" +# elif: "elif" +# while: "while" +# loop: "loop" +# for: "for" +# break: "break" +# continue: "continue" +# then: "then" +# do: "do" +# end: "end" +# function: "function" +# def: "def" +# self: "self" +# hero: "hero" +# this: "this" share_progress_modal: blurb: "あなたは進歩している! CodeCombatでどんなに学んだかについて、誰かに伝えてください。" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", clojure_blurb: "現代の Lisp。" lua_blurb: "ゲーム専用のスクリプト言語。" io_blurb: "シンプルだがあいまい。" +# java_blurb: "(Subscriber Only) Android and enterprise." status: "ステータス" hero_type: "タイプ" weapons: "武器" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", main_description: "CodeCombatでの私たちの仕事はあなたが笑顔でプレイするのを確かめることです。" mission_link: "ミッション" team_link: "チーム" - community_link: "コミュニティ" story_link: "ストーリー" - careers_link: "経歴" press_link: "記事" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese", # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "アークメイジ" diff --git a/app/locale/ko.coffee b/app/locale/ko.coffee index b0dedc1fd..e59900122 100644 --- a/app/locale/ko.coffee +++ b/app/locale/ko.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t blog: "블로그" forum: "포럼" account: "계정" +# my_account: "My Account" profile: "프로필" stats: "스탯" code: "코드" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t campaign_old_multiplayer_description: "더 문명화 된 시대의 유물. 어떤 시뮬레이션은 이러한 이전, 영웅없는 멀티 경기장에 대해 실행되지 않습니다." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t clojure_blurb: "현대적인 Lisp." lua_blurb: "게임 스크립팅 언어" io_blurb: "간단하지만 아직 잘 알려지지 않은 언어." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "상태" hero_type: "직업" weapons: "무기" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "대마법사" diff --git a/app/locale/lt.coffee b/app/locale/lt.coffee index 91dac7f06..cbdbfbb37 100644 --- a/app/locale/lt.coffee +++ b/app/locale/lt.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith blog: "Blog'as" forum: "Forumas" account: "Paskyra" +# my_account: "My Account" profile: "Profilis" stats: "Statistika" code: "Kodas" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith campaign_old_multiplayer_description: "Civilizuoto amžiaus reliktai. Šios senos, be herojų arenos nesimuliuojamos." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith clojure_blurb: "Šiolaikinis Lisp." lua_blurb: "Žaidimų skriptų kalba." io_blurb: "Paprasta bet paini." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Būsena" hero_type: "Klasė" weapons: "Ginklai" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arkimagas" diff --git a/app/locale/mk-MK.coffee b/app/locale/mk-MK.coffee index 31af92709..018de3551 100644 --- a/app/locale/mk-MK.coffee +++ b/app/locale/mk-MK.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Македонски", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Македонски", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: blog: "Блог" forum: "Форум" account: "Сметка" +# my_account: "My Account" profile: "Профил" stats: "Статистики" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: clojure_blurb: "Модерен Lisp." lua_blurb: "Јазик за скриптирање на игри." io_blurb: "Едноставен, но не така очигледен." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Статус" # hero_type: "Type" weapons: "Оружја" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Македонски", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/ms.coffee b/app/locale/ms.coffee index c35923007..d1d2e310f 100644 --- a/app/locale/ms.coffee +++ b/app/locale/ms.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/my.coffee b/app/locale/my.coffee index 0058cd365..f1758a55e 100644 --- a/app/locale/my.coffee +++ b/app/locale/my.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "မြန်မာစကား", englishDes # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/nb.coffee b/app/locale/nb.coffee index 9f8669a38..3e570af05 100644 --- a/app/locale/nb.coffee +++ b/app/locale/nb.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg blog: "Blogg" forum: "Forum" account: "Konto" +# my_account: "My Account" profile: "Profil" stats: "Statistikk" code: "Kode" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg clojure_blurb: "En moderne Lisp." lua_blurb: "Et skriptspråk for spill." io_blurb: "Enkelt, men obskurt." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" # hero_type: "Type" weapons: "Våpen" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Erketrollmann" diff --git a/app/locale/nl-BE.coffee b/app/locale/nl-BE.coffee index 98bc19a7f..eed07e1c3 100644 --- a/app/locale/nl-BE.coffee +++ b/app/locale/nl-BE.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: blog: "Blog" forum: "Forum" account: "Lidmaatschap" +# my_account: "My Account" profile: "Profiel" stats: "Statistieken" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: campaign_old_multiplayer_description: "Overblijfselen van een meer geciviliseerde tijd. Er zijn geen simulaties voor deze oudere, heldenloze multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: clojure_blurb: "Lisp, maar modern." lua_blurb: "Game scripting taal." io_blurb: "Simpel maar obscuur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Type" weapons: "Wapens" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: length: "Lengte:" title: "Titel" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "beschrijving" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Tovenaar" diff --git a/app/locale/nl-NL.coffee b/app/locale/nl-NL.coffee index 006556b9f..e36659aef 100644 --- a/app/locale/nl-NL.coffee +++ b/app/locale/nl-NL.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription create_a_class: "Maak een klas aan" setup_a_class: "Maak een klas aan" have_an_account: "Heb je al een account?" # {change} - log_in: "Log In" logged_in_as: "Je bent ingelogd als" view_my_classes: "Bekijk mijn klassen" computer_science: "Informatica lessen voor alle leeftijden" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription educator_wiki: "Leraren wiki" view_profile: "Mijn Profiel" view_progress: "Bekijk voortgang" - login_switch: "Heb je een account?" check_out_wiki: "Bekijk onze nieuwe leraren Wiki" want_coco: "Wil je CodeCombat op jouw school?" form_select_role: "Selecteer je rol" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription blog: "Blog" forum: "Forum" account: "Lidmaatschap" +# my_account: "My Account" profile: "Profiel" stats: "Statistieken" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription campaign_old_multiplayer_description: "Antieke overblijvselen van een beschaafder tijdperk. Deze oudere held-loze multiplayer arenas worden niet gesimuleert." code: - if: "als" # Keywords + if: "als" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) else: "anders" elif: "anders als" while: "wanneer" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription clojure_blurb: "Lisp, maar modern." lua_blurb: "Game scripting taal." io_blurb: "Simpel maar obscuur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Soort" weapons: "Wapens" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription main_description: "Bij CodeCombat, is het ons doel om te zorgen dat je dat doet met een glimlach op je gezicht." mission_link: "Missie" team_link: "Team" - community_link: "Gemeenschap" story_link: "Verhaal" - careers_link: "Carrières" press_link: "Pers" mission_title: "Onze missie: maak programmeren toegankelijk voor elke student op aarde." mission_description_1: "Programmeren is magie. Het is het vermogen om dingen te maken vanuit pure fantasie. We zijn CodeCombat begonnen om leerlingen het gevoel the geven van een toverachtige kracht aan hun vingertoppen door het gebruik van getypte code." # {change} @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription length: "Lengte:" title: "Titel" # Flat style redesign subtitle: "Bekijk cursus richtlijnen, oplossingen, en levels" +# changelog: "View latest changes to course levels." select_language: "Selecteer taal" select_level: "Selecteer level" play_level: "Speel Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription print_guide: "Print Handleiding (PDF)" view_guide_online: "Bekijk Handleiding Online (PDF)" last_updated: "Laatst ge-update:" - grants_lifetime_access: "Verschaft levenslange toegang tot alle cursusmodules." # New enrollment modal + grants_lifetime_access: "Verschaft levenslange toegang tot alle cursusmodules." # {change} enrollment_credits_available: "Beschikbaar inschrijf-krediet:" description: "beschrijving" # ClassroomSettingsModal language_select: "Selecteer een taal" @@ -1259,7 +1258,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription avg_student_exp_select: "Selecteer de beste optie" avg_student_exp_none: "Geen ervaring - geen of weinig ervaring" avg_student_exp_beginner: "Beginner - een beetje blootstelling aan code of ervaring met 'block-based' programmeren" - avg_student_exp_intermediate:"Redelijk Ervaren - enige ervaring met getypte code" + avg_student_exp_intermediate: "Redelijk Ervaren - enige ervaring met getypte code" avg_student_exp_advanced: "Ervaren - behoorlijke ervaring met getypte code" avg_student_exp_varied: "Verschilt enorm per leerling" student_age_range_label: "Leeftijdscategorie leerlingen" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription total_playtime: "Totale speeltijd" avg_completed: "Gemiddeld aantaal levels voltooid" total_completed: "Totaal levels voltooid" +# created: "Created" concepts_covered: "Concepten behandeld" earliest_incomplete: "Vroegste onvoltooide level" latest_complete: "Laatste voltooide level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription how_to_enroll_blurb_3: "Zodra een leerling is ingeschreven zal deze toegang hebben tot alle inhoud van de cursus." bulk_pricing_blurb: "Aanschaffen voor meer dan 25 leerlingen? Neem contact met ons op." total_unenrolled: "Totaal aantal niet ingeschreven" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Tovenaar" diff --git a/app/locale/nn.coffee b/app/locale/nn.coffee index f11e43005..6b0f03c18 100644 --- a/app/locale/nn.coffee +++ b/app/locale/nn.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Norsk Nynorsk", englishDescription: "Norweg # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/pl.coffee b/app/locale/pl.coffee index d58dc8731..ece6e1bb5 100644 --- a/app/locale/pl.coffee +++ b/app/locale/pl.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran create_a_class: "Stwórz klasę" # setup_a_class: "Set Up a Class" have_an_account: "Posiadasz już konto?" # {change} -# log_in: "Log In" logged_in_as: "Jesteś zalogowany jako" view_my_classes: "Pokaż moje klasy" computer_science: "Lekcje informatyki dla osób w każdym wieku." @@ -95,7 +94,6 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran blog: "Blog" forum: "Forum" account: "Konto" +# my_account: "My Account" profile: "Profil" stats: "Statystyki" code: "Kod" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran campaign_old_multiplayer_description: "Relikt bardziej cywilizowanej epoki. Nie są już prowadzone żadne symulacje dla tych starych aren." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran clojure_blurb: "Nowoczesny Lisp." lua_blurb: "Język skryptowy gier." io_blurb: "Prosty lecz nieznany." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Typ" weapons: "Bronie" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran main_description: "Naszym zadaniem jest dopilnowanie, żebyś robił to z uśmiechem na twarzy." mission_link: "Misja" team_link: "Zespół" - community_link: "Społeczność" story_link: "Historia" - careers_link: "Kariera" press_link: "Prasa" mission_title: "Nasza misja: każdy na Ziemi powinien mieć dostęp do nauki programowania." mission_description_1: "Programowanie jest jak magia. To możliwość tworzenia rzeczy na podstawie włąsnych fantazji. Stworzyliśmy CodeCombat, by nasi użytkownicy poczuli czarodziejskie moce podczas pisania prawdziwego, produkcyjnego kodu." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran length: "Długość:" title: "Tytuł" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Opis" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "polski", englishDescription: "Polish", tran # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arcymag" diff --git a/app/locale/pt-BR.coffee b/app/locale/pt-BR.coffee index 66c181526..bae08a5ab 100644 --- a/app/locale/pt-BR.coffee +++ b/app/locale/pt-BR.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" have_an_account: "Tem uma conta?" - log_in: "Entrar" logged_in_as: "Você está logado como" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: blog: "Blog" forum: "Fórum" account: "Conta" +# my_account: "My Account" profile: "Perfil" stats: "Estatísticas" code: "Código" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: campaign_old_multiplayer_description: "Reliquias de uma era mais civilizada.Nenhuma simulação roda nessa antiguidade ,arenas multijogador sem heróis." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: clojure_blurb: "Um Lisp moderno." lua_blurb: "Linguagem de script para jogos." io_blurb: "Simples mas obscura." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Tipo" weapons: "Armas" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: main_description: "No CodeCombat, nosso trabalho é assegurar que você está fazendo isso com um sorriso no rosto." mission_link: "Missão" team_link: "Time" - community_link: "Comunidade" story_link: "História" - careers_link: "Carreiras" press_link: "Pressione" mission_title: "Nossa missão: fazer programação acessível para todos os estudantes." mission_description_1: "Programação é mágica. É a habilidade de criar coisas apartir da pura imaginação. Criamos o CodeCombat para dar aos alunos a sensação de poder de um mago na ponta de seus dedos enquanto digita códigos." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: length: "Comprimento:" title: "Título" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Descrição" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Português do Brasil", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arquimago" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 3a358f6d9..5d9695d35 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" have_an_account: "Tens uma conta?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: blog: "Blog" forum: "Fórum" account: "Conta" +# my_account: "My Account" profile: "Perfil" stats: "Estatísticas" code: "Código" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: campaign_old_multiplayer_description: "Relíquias de uma era mais civilizada. Não há simulações em curso para estas arenas multijogador, mais antigas e sem heróis." code: - if: "if" # Keywords + if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) else: "else" elif: "elif" while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: clojure_blurb: "Um Lisp moderno." lua_blurb: "Linguagem para scripts de jogos." io_blurb: "Simples mas obscuro." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Estado" hero_type: "Tipo" weapons: "Armas" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: main_description: "No CodeCombat, o nosso trabalho é certificarmo-nos de que estás a fazer isso com um sorriso na cara." mission_link: "Missão" team_link: "Equipa" -# community_link: "Community" story_link: "História" -# careers_link: "Careers" press_link: "Imprensa" mission_title: "A nossa missão: tornar a programação acessível a todos os estudantes da Terra." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # length: "Length:" title: "Título" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Descrição" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arcomago" diff --git a/app/locale/ro.coffee b/app/locale/ro.coffee index dafc491e0..6d33596ea 100644 --- a/app/locale/ro.coffee +++ b/app/locale/ro.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman blog: "Blog" forum: "Forum" account: "Cont" +# my_account: "My Account" profile: "Profil" stats: "Statistică" code: "Cod" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman clojure_blurb: "Un Lisp modern." lua_blurb: "Limbaj de scripting pentru jocuri." io_blurb: "Simplu dar obscur." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Stare" hero_type: "Tip" weapons: "Armament" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Archmage" diff --git a/app/locale/ru.coffee b/app/locale/ru.coffee index 2a9f7cbdf..b6003c456 100644 --- a/app/locale/ru.coffee +++ b/app/locale/ru.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi create_a_class: "Создать класс" setup_a_class: "Настройка класса" have_an_account: "Уже есть аккаунт?" - log_in: "Войти" logged_in_as: "Вы вошли как" view_my_classes: "Посмотреть мои классы" computer_science: "Курсы информатики для всех возрастов" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi educator_wiki: "wiki педагога" view_profile: "Посмотреть Мой профиль" view_progress: "Посмотреть прогресс" - login_switch: "Уже есть аккаунт?" check_out_wiki: "Посетите наш новый Wiki педагога" want_coco: "Хотите CodeCombat в вашей школе?" form_select_role: "Выберите главную роль" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi blog: "Блог" forum: "Форум" account: "Аккаунт" +# my_account: "My Account" profile: "Профиль" stats: "Характеристики" code: "Код" @@ -188,23 +187,23 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi campaign_old_multiplayer: "(Устаревшее) Старые многопользовательские арены" # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." - code: - if: "if" # Keywords - else: "else" - elif: "elif" - while: "while" - loop: "loop" - for: "for" - break: "break" - continue: "continue" - then: "then" - do: "do" - end: "end" - function: "function" - def: "def" - self: "self" - hero: "hero" - this: "this" +# code: +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) +# else: "else" +# elif: "elif" +# while: "while" +# loop: "loop" +# for: "for" +# break: "break" +# continue: "continue" +# then: "then" +# do: "do" +# end: "end" +# function: "function" +# def: "def" +# self: "self" +# hero: "hero" +# this: "this" share_progress_modal: blurb: "Вы отлично продвигаетесь! Расскажите своим родителям, как много вы уже выучили с CodeCombat." @@ -622,6 +621,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi clojure_blurb: "Современный Lisp." lua_blurb: "Скриптовый язык для игр." io_blurb: "Простой, но непонятный." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Статус" hero_type: "Тип" weapons: "Оружие" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi main_description: "Наша задача быть уверенными, что вы делаете это с улыбкой на лице." mission_link: "Миссия" team_link: "Команда" - community_link: "Сообщество" story_link: "История" - careers_link: "Карьера" press_link: "Нажать" mission_title: "Наша задача: сделать доступным программирование для каждого учащегося на земле." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi length: "Длительность:" title: "Тема" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Описание" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Архимаг" diff --git a/app/locale/sk.coffee b/app/locale/sk.coffee index e0724b0ed..1c0c3f11b 100644 --- a/app/locale/sk.coffee +++ b/app/locale/sk.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", create_a_class: "Vytvor triedu" setup_a_class: "Nastavenia triedy" have_an_account: "Máš účet?" - log_in: "Prihlásenie" logged_in_as: "Si prihlásený ako" view_my_classes: "Prehľa mojích tried" computer_science: "Kurz programovania pre každý vek" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", blog: "Blog" forum: "Fórum" account: "Účet" +# my_account: "My Account" profile: "Profil" stats: "Štatistiky" code: "Kód" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", campaign_old_multiplayer_description: "Pozostatky starej kóvacej civilizácie. Nie je možná simulácia pre staré arény bez hrdinov. " # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", clojure_blurb: "Moderný Lisp" lua_blurb: "Jazyk na skriptovanie hier." io_blurb: "Jednoduchý ale nejasný." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Stav" hero_type: "Typ" weapons: "Zbrane" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak", # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Arcimág" diff --git a/app/locale/sl.coffee b/app/locale/sl.coffee index 4b945046a..701420245 100644 --- a/app/locale/sl.coffee +++ b/app/locale/sl.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/sr.coffee b/app/locale/sr.coffee index d6c1aa24a..d2aff6996 100644 --- a/app/locale/sr.coffee +++ b/app/locale/sr.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian create_a_class: "Направи разред" setup_a_class: "Подеси разред" have_an_account: "Имаш налог?" - log_in: "Улогуј се" logged_in_as: "Тренутно си улогован као" view_my_classes: "Види моје разреде" computer_science: "Курсеви из компјутерских наука за свакога" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian educator_wiki: "Едукатор wiki" view_profile: "Види мој профил" view_progress: "Види напредак" - login_switch: "Имаш налог?" check_out_wiki: "Погледај нашу нову Wiki за едукаторе" want_coco: "Желиш CodeCombat у својој школи?" form_select_role: "Изабери примарну улогу" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian blog: "Блог" forum: "Форум" account: "Налог" +# my_account: "My Account" profile: "Профил" stats: "Статистика" code: "Код" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian campaign_old_multiplayer_description: "Остаци цивилизованијег времена. Симулације се не покрећу за ове старије мултиплејер арене без хероја." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Статус" hero_type: "Врста" weapons: "Оружја" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/sv.coffee b/app/locale/sv.coffee index 1b3fc631c..d9e557fe4 100644 --- a/app/locale/sv.coffee +++ b/app/locale/sv.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr blog: "Blogg" forum: "Forum" account: "Konto" +# my_account: "My Account" profile: "Profil" stats: "Stats" code: "Kod" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr clojure_blurb: "Ett modernt Lisp." lua_blurb: "Språk för spelskript." io_blurb: "Enkelt men obskyrt." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Status" hero_type: "Typ" weapons: "Vapen" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Ärkemagiker" diff --git a/app/locale/th.coffee b/app/locale/th.coffee index 7598a6412..f99b4cfbf 100644 --- a/app/locale/th.coffee +++ b/app/locale/th.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra blog: "บล็อก" forum: "กระดานสนทนา" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # clojure_blurb: "A modern Lisp." lua_blurb: "ภาษาเขียนเกม" # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" weapons: "อาวุธ" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/tr.coffee b/app/locale/tr.coffee index fed6b4436..8706c7a22 100644 --- a/app/locale/tr.coffee +++ b/app/locale/tr.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t blog: "Blog" forum: "Forum" account: "Hesap" +# my_account: "My Account" profile: "Profil" stats: "İstatistikler" code: "Kod" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t clojure_blurb: "Modern bir Lisp." lua_blurb: "Oyun betik dili." io_blurb: "Basit fakat anlaşılması güç." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Durum" # hero_type: "Type" weapons: "Silahlar" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Büyük Büyücü" diff --git a/app/locale/uk.coffee b/app/locale/uk.coffee index 095e4326c..dc0ad1843 100644 --- a/app/locale/uk.coffee +++ b/app/locale/uk.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Українська", englishDescription: # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Українська", englishDescription: # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Українська", englishDescription: blog: "Блоґ" forum: "Форум" account: "Акаунт" +# my_account: "My Account" profile: "Профіль" stats: "Статистика" code: "Код" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Українська", englishDescription: # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Українська", englishDescription: clojure_blurb: "Сучасний Lisp." lua_blurb: "Мова ігрових сценаріїв." io_blurb: "Проста, але дивна." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Статус" hero_type: "Тип" weapons: "Зброя" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Українська", englishDescription: main_description: "Тут, на CodeCombat, наше завдання - переконатися, що ви це робитимете з усмішкою на обличчі." # mission_link: "Mission" team_link: "Команда" - community_link: "Спільнота" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Українська", englishDescription: # length: "Length:" title: "Тема" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Українська", englishDescription: print_guide: "Надрукувати Настанову (PDF)" view_guide_online: "Переглянути Настанову в Режимі Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Опис" # ClassroomSettingsModal language_select: "Оберіть Мову" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Українська", englishDescription: # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Українська", englishDescription: # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Архімаг" diff --git a/app/locale/ur.coffee b/app/locale/ur.coffee index 317490a24..f5d66504b 100644 --- a/app/locale/ur.coffee +++ b/app/locale/ur.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu", # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/uz.coffee b/app/locale/uz.coffee index 6d0085239..faf646679 100644 --- a/app/locale/uz.coffee +++ b/app/locale/uz.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "O'zbekcha", englishDescription: "Uzbek", tr # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 7a7b3861b..8392e34a2 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn create_a_class: "Tạo một Lớp học" setup_a_class: "Xây dựng một Lớp học" have_an_account: "Đã có tài khoản?" - log_in: "Đăng Nhập" logged_in_as: "Bạn đang đăng nhập với tên" view_my_classes: "Xem các lớp học của tôi" computer_science: "Khóa học công nghệ thông tin cho mọi lứa tuổi" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn educator_wiki: "Wiki cho Giáo viên" view_profile: "Xem hồ sơ của tôi" view_progress: "Xem tiến trình" - login_switch: "Đã có tài khoản?" check_out_wiki: "Hãy đọc Wiki dành cho Giáo viên" want_coco: "Muốn đưa CodeCombat vào giảng dạy tại trường học của bạn?" form_select_role: "Chọn vai trò chính" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn blog: "Blog" forum: "Diễn đàn" account: "Tài khoản" +# my_account: "My Account" profile: "Cá nhân" stats: "Chỉ số" code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." code: - if: "if" # Keywords + if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) else: "else" elif: "elif" while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn clojure_blurb: "Lisp thời đại mới." lua_blurb: "Ngôn ngữ được ưa chuông để làm game." io_blurb: "Đơn giản nhưng ít người biết đến." +# java_blurb: "(Subscriber Only) Android and enterprise." status: "Tình trạng" hero_type: "Loại" weapons: "Vũ khí" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn main_description: "Ở CodeCombat, việc của chúng tôi là truyền cảm hứng cho bạn." mission_link: "Sứ mệnh" team_link: "Đội ngũ" - community_link: "Cộng đồng" story_link: "Chúng tôi" - careers_link: "Việc làm" press_link: "Liên hệ" mission_title: "Sứ mệnh của chúng tôi: đưa lập trình đến với mọi người trên Trái Đát này." mission_description_1: "Lập trình thật kì diệu. Bạn có thể sáng tạo ra một thứ gì đó từ trí tưởng tượng. Chúng tôi bắt đầu CodeCombat để cho học viên những trải nghiệm nhiệm màu khi viết code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # length: "Length:" title: "Tiêu đề" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "Miêu tả" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "Pháp Sư" @@ -1853,4 +1854,4 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn september: "Tháng Chín" october: "Tháng Mười" november: "Tháng Mười Một" - december: "Tháng Mười Hai" \ No newline at end of file + december: "Tháng Mười Hai" diff --git a/app/locale/zh-HANS.coffee b/app/locale/zh-HANS.coffee index b5223f477..788471a73 100644 --- a/app/locale/zh-HANS.coffee +++ b/app/locale/zh-HANS.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese create_a_class: "创建班级" setup_a_class: "配置班级" have_an_account: "已有帐号?" # {change} - log_in: "登陆" logged_in_as: "您现在的登录身份:" view_my_classes: "查看我的班级" computer_science: "适合全年龄段的计算机科学课程" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese blog: "博客" forum: "论坛" account: "账号" +# my_account: "My Account" profile: "资料" stats: "成就" code: "代码" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese campaign_old_multiplayer_description: "多个文明时代的遗迹。但已经不再模拟运行这些陈旧、英雄芜绝的多人竞技场。" # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese clojure_blurb: "一种现代的列表处理语言。" lua_blurb: "一种游戏脚本语言。" io_blurb: "简单而晦涩。" +# java_blurb: "(Subscriber Only) Android and enterprise." status: "状态" hero_type: "种类" weapons: "武器" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese main_description: "在CodeCombat里,我们的职责就是为了让你面带微笑完成这项任务。" mission_link: "任务" team_link: "团队" - community_link: "社区" story_link: "历程" - careers_link: "招聘" press_link: "联系方式" mission_title: "我们的任务:让世上每个学生都有机会接触编程。" mission_description_1: "编程是一种魔法。这是一种从想象中创造万物的能力。我们开始了 CodeCombat 这个项目,是为了让学习者通过编写代码感受到他们感受到指尖上的魔力。" @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese length: "长度:" title: "标题" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "描述" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese total_playtime: "总时长" avg_completed: "平均完成关卡数" total_completed: "完成总关卡数" +# created: "Created" concepts_covered: "覆盖语法概念" earliest_incomplete: "最近未完成关卡" latest_complete: "最近通关关卡" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese how_to_enroll_blurb_3: "当学生被注册之后,他们就能访问所有的课程关卡了。" # {change} bulk_pricing_blurb: "如果需要购买超过15学生名额,请联系我们获取批量采购折扣!" # {change} # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "大法师" diff --git a/app/locale/zh-HANT.coffee b/app/locale/zh-HANT.coffee index 01f66e64c..6062f150f 100644 --- a/app/locale/zh-HANT.coffee +++ b/app/locale/zh-HANT.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese blog: "官方部落格" forum: "論壇" account: "帳號" +# my_account: "My Account" profile: "帳號資料" stats: "記錄" code: "程式碼" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese campaign_old_multiplayer_description: "多個文明時代的遺跡。已沒有模擬運行這些陳舊、英雄蕪絕的多人競技場。" # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese clojure_blurb: "Lisp 進化版。" lua_blurb: "許多遊戲引擎支援的程式語言。" io_blurb: "簡單但不出名。" +# java_blurb: "(Subscriber Only) Android and enterprise." status: "狀態" hero_type: "種類" weapons: "武器" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # length: "Length:" title: "標題" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" description: "描述" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "繁體中文", englishDescription: "Chinese # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "大法師" diff --git a/app/locale/zh-WUU-HANS.coffee b/app/locale/zh-WUU-HANS.coffee index 366fa0f7a..51622d4ca 100644 --- a/app/locale/zh-WUU-HANS.coffee +++ b/app/locale/zh-WUU-HANS.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # blog: "Blog" # forum: "Forum" # account: "Account" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "吴语", englishDescription: "Wuu (Simplifi # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" # classes: # archmage_title: "Archmage" diff --git a/app/locale/zh-WUU-HANT.coffee b/app/locale/zh-WUU-HANT.coffee index 446f1f3f2..929a31700 100644 --- a/app/locale/zh-WUU-HANT.coffee +++ b/app/locale/zh-WUU-HANT.coffee @@ -68,7 +68,6 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # create_a_class: "Create a Class" # setup_a_class: "Set Up a Class" # have_an_account: "Have an account?" -# log_in: "Log In" # logged_in_as: "You are currently logged in as" # view_my_classes: "View my classes" # computer_science: "Computer science courses for all ages" @@ -95,7 +94,6 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # educator_wiki: "Educator wiki" # view_profile: "View My Profile" # view_progress: "View Progress" -# login_switch: "Have an account?" # check_out_wiki: "Check out our new educator Wiki" # want_coco: "Want CodeCombat at your school?" # form_select_role: "Select primary role" @@ -109,6 +107,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio blog: "部落格" forum: "論壇" account: "賬號" +# my_account: "My Account" # profile: "Profile" # stats: "Stats" # code: "Code" @@ -189,7 +188,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # campaign_old_multiplayer_description: "Relics of a more civilized age. No simulations are run for these older, hero-less multiplayer arenas." # code: -# if: "if" # Keywords +# if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) # else: "else" # elif: "elif" # while: "while" @@ -622,6 +621,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # clojure_blurb: "A modern Lisp." # lua_blurb: "Game scripting language." # io_blurb: "Simple but obscure." +# java_blurb: "(Subscriber Only) Android and enterprise." # status: "Status" # hero_type: "Type" # weapons: "Weapons" @@ -702,9 +702,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face." # mission_link: "Mission" # team_link: "Team" -# community_link: "Community" # story_link: "Story" -# careers_link: "Careers" # press_link: "Press" # mission_title: "Our mission: make programming accessible to every student on Earth." # mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." @@ -1240,6 +1238,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # length: "Length:" # title: "Courses" # Flat style redesign # subtitle: "Review course guidelines, solutions, and levels" +# changelog: "View latest changes to course levels." # select_language: "Select language" # select_level: "Select level" # play_level: "Play Level" @@ -1247,7 +1246,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # print_guide: "Print Guide (PDF)" # view_guide_online: "View Guide Online (PDF)" # last_updated: "Last updated:" -# grants_lifetime_access: "Grants lifetime access to all Courses." # New enrollment modal +# grants_lifetime_access: "Grants access to all Courses." # enrollment_credits_available: "Enrollment Credits Available:" # description: "Description" # ClassroomSettingsModal # language_select: "Select a language" @@ -1300,6 +1299,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # total_playtime: "Total play time" # avg_completed: "Average levels completed" # total_completed: "Total levels completed" +# created: "Created" # concepts_covered: "Concepts covered" # earliest_incomplete: "Earliest incomplete level" # latest_complete: "Latest completed level" @@ -1347,6 +1347,7 @@ module.exports = nativeDescription: "吳語", englishDescription: "Wuu (Traditio # how_to_enroll_blurb_3: "Once a student is enrolled, they will have access to all of the course content." # bulk_pricing_blurb: "Purchasing for more than 25 students? Contact us to discuss next steps." # total_unenrolled: "Total unenrolled" +# export_student_progress: "Export Student Progress (CSV)" classes: archmage_title: "大法師" From 0ed99565d3c19d78117421b136cb4a029d0263ec Mon Sep 17 00:00:00 2001 From: Scott Erickson Date: Thu, 7 Apr 2016 11:19:12 -0700 Subject: [PATCH 08/12] Make delighted profiles for teachers only, instead of all users --- server/delighted.coffee | 18 +++++++------- server/middleware/trial-requests.coffee | 2 ++ server/models/User.coffee | 2 -- .../functional/trial_request.spec.coffee | 24 +++++++++++++++---- 4 files changed, 30 insertions(+), 16 deletions(-) diff --git a/server/delighted.coffee b/server/delighted.coffee index 78062f303..1e603b451 100644 --- a/server/delighted.coffee +++ b/server/delighted.coffee @@ -4,23 +4,23 @@ log = require 'winston' DELIGHTED_EMAIL_DELAY = 1 * 86400 # in seconds -module.exports.addDelightedUser = addDelightedUser = (user) -> - return unless key = config.mail.delightedAPIKey - #return unless user.isEmailSubscriptionEnabled 'generalNews' # Doesn't work? Just returns undefined... - return if user.get('emails')?.generalNews?.enabled is false # Workaround. - name = user.get('name') - if first = user.get('firstName') and last = user.get('lastName') - name = first + ' ' + last +module.exports.addDelightedUser = addDelightedUser = (user, trialRequest) -> + props = trialRequest.get('properties') + name = props.firstName + ' ' + props.lastName form = - email: user.get('email') + email: props.email name: name delay: DELIGHTED_EMAIL_DELAY properties: - id: user.id + id: trialRequest.get('applicant') locale: user.get('preferredLanguage') testGroupNumber: user.get('testGroupNumber') gender: user.get('gender') lastLevel: user.get('lastLevel') + @postPeople(form) + +module.exports.postPeople = (form) -> + return unless key = config.mail.delightedAPIKey request.post {uri: "https://#{key}:@api.delightedapp.com/v1/people.json", form: form}, (err, res, body) -> return log.error 'Error sending Delighted request:', err or body if err or /error/i.test body #log.info "Got DelightedApp response: #{body}" diff --git a/server/middleware/trial-requests.coffee b/server/middleware/trial-requests.coffee index ba8bbc11d..14b3fb1fb 100644 --- a/server/middleware/trial-requests.coffee +++ b/server/middleware/trial-requests.coffee @@ -6,6 +6,7 @@ database = require '../commons/database' mongoose = require 'mongoose' TrialRequest = require '../models/TrialRequest' User = require '../models/User' +delighted = require '../delighted' module.exports = post: wrap (req, res) -> @@ -27,6 +28,7 @@ module.exports = trialRequest.set 'type', attrs.type database.validateDoc(trialRequest) trialRequest = yield trialRequest.save() + delighted.addDelightedUser req.user, trialRequest res.status(201).send(trialRequest.toObject({req: req})) put: wrap (req, res) -> diff --git a/server/models/User.coffee b/server/models/User.coffee index b9aaaa71e..36ecaa9db 100644 --- a/server/models/User.coffee +++ b/server/models/User.coffee @@ -12,7 +12,6 @@ config = require '../../server_config' stripe = require('stripe')(config.stripe.secretKey) sendwithus = require '../sendwithus' -delighted = require '../delighted' UserSchema = new mongoose.Schema({ dateCreated: @@ -238,7 +237,6 @@ UserSchema.methods.register = (done) -> address: @get 'email' sendwithus.api.send data, (err, result) -> log.error "sendwithus post-save error: #{err}, result: #{result}" if err - delighted.addDelightedUser @ @saveActiveUser 'register' UserSchema.methods.hasSubscription = -> diff --git a/spec/server/functional/trial_request.spec.coffee b/spec/server/functional/trial_request.spec.coffee index 9e65c85fc..1020d22af 100644 --- a/spec/server/functional/trial_request.spec.coffee +++ b/spec/server/functional/trial_request.spec.coffee @@ -6,6 +6,7 @@ User = require '../../../server/models/User' TrialRequest = require '../../../server/models/TrialRequest' Prepaid = require '../../../server/models/Prepaid' request = require '../request' +delighted = require '../../../server/delighted' fixture = { type: 'subscription' @@ -14,12 +15,18 @@ fixture = { age: '14-17' numStudents: 14 heardAbout: 'magical interwebs' + firstName: 'First' + lastName: 'Last' } describe 'POST /db/trial.request', -> + + beforeEach utils.wrap (done) -> + yield utils.clearModels([User, TrialRequest]) + spyOn(delighted, 'postPeople') + done() it 'sets type and properties given', utils.wrap (done) -> - yield utils.clearModels([User, TrialRequest]) @user = yield utils.initUser() yield utils.loginUser(@user) fixture.properties.email = @user.get('email') @@ -32,7 +39,6 @@ describe 'POST /db/trial.request', -> done() it 'sets applicant to the user\'s id', utils.wrap (done) -> - yield utils.clearModels([User, TrialRequest]) @user = yield utils.initUser() yield utils.loginUser(@user) fixture.properties.email = @user.get('email') @@ -44,7 +50,6 @@ describe 'POST /db/trial.request', -> done() it 'creates trial request for anonymous user', utils.wrap (done) -> - yield utils.clearModels([User, TrialRequest]) @user = yield utils.initUser({anonymous: true}) yield utils.loginUser(@user) email = 'someone@test.com' @@ -57,7 +62,6 @@ describe 'POST /db/trial.request', -> done() it 'prevents trial request for anonymous user with conflicting email', utils.wrap (done) -> - yield utils.clearModels([User, TrialRequest]) @otherUser = yield utils.initUser() @user = yield utils.initUser({anonymous: true}) yield utils.loginUser(@user) @@ -66,7 +70,6 @@ describe 'POST /db/trial.request', -> done() it 'updates an existing TrialRequest if there is one', utils.wrap (done) -> - yield utils.clearModels([User, TrialRequest]) @user = yield utils.initUser() yield utils.loginUser(@user) fixture.properties.email = @user.get('email') @@ -87,6 +90,17 @@ describe 'POST /db/trial.request', -> count = yield TrialRequest.count() expect(count).toBe(1) done() + + it 'creates a delighted profile', utils.wrap (done) -> + @user = yield utils.initUser({gender: 'male', lastLevel: 'abcd', preferredLanguage: 'de', testGroupNumber: 1}) + yield utils.loginUser(@user) + fixture.properties.email = @user.get('email') + [res, body] = yield request.postAsync(getURL('/db/trial.request'), { json: fixture }) + expect(delighted.postPeople).toHaveBeenCalled() + args = delighted.postPeople.calls.argsFor(0) + expect(args[0].email).toBe(@user.get('email')) + expect(args[0].name).toBe('First Last') + done() describe 'GET /db/trial.request', -> From 8223122a6b8a9786f3c35f1d47bac80941a4b3ef Mon Sep 17 00:00:00 2001 From: phoenixeliot Date: Tue, 19 Apr 2016 13:44:48 -0700 Subject: [PATCH 09/12] Refactor and update teacher-dashboard This updates TeacherClassView and ActivateLicensesModal to use the new state-based rendering system, making it much snappier and less clunky feeling, and improving data consistency. Features also included in this: - Hover details for progress dots in TeacherClassView - ActivateLicensesModal has an "All Students" option and better handling when you switch classrooms in the dropdown - Unenrolled/Unassigned students are shown separately in Course Progress and can be enrolled/assigned from there. Add Back to Classes button on demo-request submitted view Delete temporary patch file Show unenrolled students separately in Course Progress (incomplete) Migrate TeacherClassView to use orchestrator-style events, add unassigned students section, replace bootstrap tabs with state-based tabs Convert missed instance variables to be in @state Fix merge errors (in progress) Convert a bunch of stuff to use state and events (removing student needs fixing) Fix up modal interactions, some bugs Switch state to be a Model, sync up course dropdowns Convert student sorting to use state model Add hover tooltips to TeacherClassView Students tab Don't keep tooltip open when you mouse into it Add dateFirstCompleted and Course Progress tooltips Course Overview progress tooltips Refactor ActivateLicensesModal Refactors: Uses state object for view state Passes back the updated users in 'redeem-users' event instead of modifying given collection Features: Add 'All Students' dropdown option Don't forget checked students if you change classroom from dropdown, but only enroll the ones visible when you click "Enroll (n) Students" Separate enrolled students; improve style Rearrange error text Disable enroll-students button when none are selected Remove console.logs Move style-flat variables to another file This prevents .style-flat from being copied in multiple times to the resulting CSS. Show Unarchive button when on the page for an archived class Move text to en.coffee Only sort students on first classroom sync Fix merge error Handle sessions missing completion date in view logic instead of migration script Listen to classroom sync more than once in case it gets unarchived --- app/lib/coursesHelper.coffee | 22 +- app/locale/en.coffee | 6 + app/models/CourseInstance.coffee | 4 +- app/models/State.coffee | 5 + app/schemas/models/level_session.coffee | 4 + app/styles/about.sass | 4 +- .../courses/activate-licenses-modal.sass | 9 + app/styles/courses/teacher-class-view.sass | 27 +- app/styles/courses/teacher-classes-view.sass | 2 +- app/styles/courses/teacher-dashboard-nav.sass | 2 +- app/styles/new-home-view.sass | 2 +- app/styles/style-flat-variables.sass | 7 + app/styles/style-flat.sass | 23 +- .../courses/activate-licenses-modal.jade | 64 +++-- app/templates/courses/teacher-class-view.jade | 153 ++++++---- ...rogress-dot-all-students-single-level.jade | 21 ++ .../progress-dot-single-student-course.jade | 18 ++ .../progress-dot-single-student-level.jade | 27 ++ .../hovers/progress-dot-whole-course.jade} | 0 .../teachers/request-quote-view.jade | 4 + app/views/core/CocoView.coffee | 3 +- .../courses/ActivateLicensesModal.coffee | 106 +++---- app/views/courses/TeacherClassView.coffee | 270 +++++++++++++----- app/views/courses/TeacherClassesView.coffee | 2 +- server/middleware/classrooms.coffee | 2 +- server/models/LevelSession.coffee | 4 +- 26 files changed, 564 insertions(+), 227 deletions(-) create mode 100644 app/models/State.coffee create mode 100644 app/styles/style-flat-variables.sass create mode 100644 app/templates/teachers/hovers/progress-dot-all-students-single-level.jade create mode 100644 app/templates/teachers/hovers/progress-dot-single-student-course.jade create mode 100644 app/templates/teachers/hovers/progress-dot-single-student-level.jade rename app/templates/{courses/progress-dot.jade => teachers/hovers/progress-dot-whole-course.jade} (100%) diff --git a/app/lib/coursesHelper.coffee b/app/lib/coursesHelper.coffee index cc7a56274..fd9a5b0e3 100644 --- a/app/lib/coursesHelper.coffee +++ b/app/lib/coursesHelper.coffee @@ -139,16 +139,21 @@ module.exports = levels = classroom.getLevels({courseID: course.id, withoutLadderLevels: true}) for level in levels.models levelID = level.get('original') - progressData[classroom.id][course.id][levelID] = { completed: students.size() > 0, started: false } + progressData[classroom.id][course.id][levelID] = { + completed: students.size() > 0, + started: false + numStarted: 0 + # numCompleted: 0 + } for user in students.models userID = user.id courseProgress = progressData[classroom.id][course.id] - courseProgress[userID] ?= { completed: true, started: false } # Only set it the first time through a user + courseProgress[userID] ?= { completed: true, started: false, levelsCompleted: 0 } # Only set it the first time through a user courseProgress[levelID][userID] = { completed: true, started: false } # These don't matter, will always be set session = _.find classroom.sessions.models, (session) -> session.get('creator') is userID and session.get('level').original is levelID - + if not session # haven't gotten to this level yet, but might have completed others before courseProgress.started ||= false #no-op courseProgress.completed = false @@ -158,21 +163,30 @@ module.exports = courseProgress[levelID].completed = false courseProgress[levelID][userID].started = false courseProgress[levelID][userID].completed = false + if session # have gotten to the level and at least started it courseProgress.started = true courseProgress[userID].started = true courseProgress[levelID].started = true courseProgress[levelID][userID].started = true + courseProgress[levelID][userID].lastPlayed = new Date(session.get('changed')) + courseProgress[levelID].numStarted += 1 + if session?.completed() # have finished this level courseProgress.completed &&= true #no-op - courseProgress[userID].completed = true + courseProgress[userID].completed &&= true #no-op + courseProgress[userID].levelsCompleted += 1 courseProgress[levelID].completed &&= true #no-op + # courseProgress[levelID].numCompleted += 1 courseProgress[levelID][userID].completed = true + courseProgress[levelID][userID].dateFirstCompleted = new Date(session.get('dateFirstCompleted') || session.get('changed')) else # level started but not completed courseProgress.completed = false courseProgress[userID].completed = false courseProgress[levelID].completed = false courseProgress[levelID][userID].completed = false + courseProgress[levelID].dateFirstCompleted = null + courseProgress[levelID][userID].dateFirstCompleted = null _.assign(progressData, progressMixin) return progressData diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 66010434f..898133727 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -831,6 +831,7 @@ thanks_header: "Request Received!" thanks_sub_header: "Thanks for expressing interest in CodeCombat for your school." thanks_p: "We'll be in touch soon! If you need to get in contact, you can reach us at:" + back_to_classes: "Back to Classes" finish_signup: "Finish creating your teacher account:" finish_signup_p: "Create an account to set up a class, add your students, and monitor their progress as they learn computer science." signup_with: "Sign up with:" @@ -1291,6 +1292,7 @@ view_class: "view class" archive_class: "archive class" unarchive_class: "unarchive class" + unarchive_this_class: "Unarchive this class" no_students_yet: "This class has no students yet." add_students: "Add Students" create_new_class: "Create a New Class" @@ -1312,6 +1314,10 @@ latest_completed: "Latest Completed" sort_by: "Sort by" progress: "Progress" + completed: "Completed" + started: "Started" + click_to_view_progress: "click to view progress" + no_progress: "No progress" select_course: "Select course to view" course_overview: "Course Overview" copy_class_code: "Copy Class Code" diff --git a/app/models/CourseInstance.coffee b/app/models/CourseInstance.coffee index 74fb83b86..f072221d8 100644 --- a/app/models/CourseInstance.coffee +++ b/app/models/CourseInstance.coffee @@ -21,7 +21,7 @@ module.exports = class CourseInstance extends CocoModel data: { userID: userID } } _.extend options, opts - @fetch(options) + @fetch options if userID is me.id unless me.get('courseInstances') me.set('courseInstances', []) @@ -32,6 +32,8 @@ module.exports = class CourseInstance extends CocoModel method: 'POST' url: _.result(@, 'url') + '/members' data: { userIDs } + success: => + @trigger 'add-members', { userIDs } } _.extend options, opts @fetch(options) diff --git a/app/models/State.coffee b/app/models/State.coffee new file mode 100644 index 000000000..c63a7d518 --- /dev/null +++ b/app/models/State.coffee @@ -0,0 +1,5 @@ +CocoModel = require './CocoModel' +schema = require 'schemas/models/poll.schema' + +module.exports = class State extends CocoModel + @className: 'State' diff --git a/app/schemas/models/level_session.coffee b/app/schemas/models/level_session.coffee index 61bf5c594..c8b63902a 100644 --- a/app/schemas/models/level_session.coffee +++ b/app/schemas/models/level_session.coffee @@ -54,6 +54,10 @@ _.extend LevelSessionSchema.properties, changed: c.date title: 'Changed' readOnly: true + + dateFirstCompleted: c.stringDate + title: 'Completed' + readOnly: true team: c.shortString() level: LevelSessionLevelSchema diff --git a/app/styles/about.sass b/app/styles/about.sass index d08d2dcbc..16764e8de 100644 --- a/app/styles/about.sass +++ b/app/styles/about.sass @@ -1,6 +1,6 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -@import "app/styles/style-flat" +@import "app/styles/style-flat-variables" #about-view @@ -331,4 +331,4 @@ content: "" display: block height: 55px - margin: -55px 0 0 0 \ No newline at end of file + margin: -55px 0 0 0 diff --git a/app/styles/courses/activate-licenses-modal.sass b/app/styles/courses/activate-licenses-modal.sass index 625734dfe..a887f3b42 100644 --- a/app/styles/courses/activate-licenses-modal.sass +++ b/app/styles/courses/activate-licenses-modal.sass @@ -1,4 +1,13 @@ #activate-licenses-modal + select + min-width: 80% + + .checkbox + margin: 0 + + input[type='checkbox'] + margin-top: 8px + .modal-content padding: 60px width: 690px diff --git a/app/styles/courses/teacher-class-view.sass b/app/styles/courses/teacher-class-view.sass index ef61da089..4d83ab4c0 100644 --- a/app/styles/courses/teacher-class-view.sass +++ b/app/styles/courses/teacher-class-view.sass @@ -1,6 +1,9 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -@import "app/styles/style-flat" +@import "app/styles/style-flat-variables" + +.nowrap + white-space: nowrap .alternating-background:nth-child(2n+1) background-color: #ebebeb @@ -187,6 +190,26 @@ .progress-dot margin: 5px + + .unassigned-students + margin-top: 75px + line-height: 45px + .student-name, .student-email, .latest-completed + white-space: nowrap + overflow: hidden + text-overflow: ellipsis + + .small-details, .small + line-height: 45px + .latest-completed + white-space: nowrap + .level-name + display: inline + + .btn + margin-top: 6.5px + margin-bottom: 6.5px + // Checkboxes .checkbox-flat @@ -255,4 +278,4 @@ float: right .export-student-progress-btn - margin-top: 10px \ No newline at end of file + margin-top: 10px diff --git a/app/styles/courses/teacher-classes-view.sass b/app/styles/courses/teacher-classes-view.sass index 82ce88e39..7f439d895 100644 --- a/app/styles/courses/teacher-classes-view.sass +++ b/app/styles/courses/teacher-classes-view.sass @@ -1,6 +1,6 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -@import "app/styles/style-flat" +@import "app/styles/style-flat-variables" #teacher-classes-view diff --git a/app/styles/courses/teacher-dashboard-nav.sass b/app/styles/courses/teacher-dashboard-nav.sass index 1fac6f297..44fa7bc7f 100644 --- a/app/styles/courses/teacher-dashboard-nav.sass +++ b/app/styles/courses/teacher-dashboard-nav.sass @@ -1,6 +1,6 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -@import "app/styles/style-flat" +@import "app/styles/style-flat-variables" #teacher-dashboard-nav vertical-align: middle diff --git a/app/styles/new-home-view.sass b/app/styles/new-home-view.sass index cad40f085..4342c3db5 100644 --- a/app/styles/new-home-view.sass +++ b/app/styles/new-home-view.sass @@ -1,6 +1,6 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" -@import "app/styles/style-flat" +@import "app/styles/style-flat-variables" #new-home-view diff --git a/app/styles/style-flat-variables.sass b/app/styles/style-flat-variables.sass new file mode 100644 index 000000000..340eeea72 --- /dev/null +++ b/app/styles/style-flat-variables.sass @@ -0,0 +1,7 @@ +$headline-font: 'Arvo', serif +$body-font: 'Open Sans', sans-serif + +$burgandy: #7D0101 +$gold: #F2BE19 +$navy: #0E4C60 +$forest: #20572B diff --git a/app/styles/style-flat.sass b/app/styles/style-flat.sass index 1c9c6e080..376010aee 100644 --- a/app/styles/style-flat.sass +++ b/app/styles/style-flat.sass @@ -1,13 +1,9 @@ @import "app/styles/bootstrap/variables" @import "app/styles/mixins" +@import "app/styles/style-flat-variables" // TODO: Move flat style into probably several files and Bootstrap variables -// Variables - -$headline-font: 'Arvo', serif -$body-font: 'Open Sans', sans-serif - body[lang='ru'], body[lang='uk'], body[lang='bg'], body[lang^='mk'], body[lang='sr'] // Google Fonts version of Arvo only has Latin glyphs, not Cyrillic // TODO: figure out font fallbacks for other languages not covered by Arvo @@ -15,11 +11,6 @@ body[lang='ru'], body[lang='uk'], body[lang='bg'], body[lang^='mk'], body[lang=' h1, .text-h1, h3, .text-h3, h5, .text-h5 font-family: 'Open Sans', serif -$burgandy: #7D0101 -$gold: #F2BE19 -$navy: #0E4C60 -$forest: #20572B - .style-flat background: white color: black @@ -194,6 +185,15 @@ $forest: #20572B color: $gold text-shadow: 1px 1px black, -1px -1px 0 black, 1px -1px 0 black, -1px 1px 0 black + // Wells + + .well + padding: 8px + background-color: transparent + border: thin solid lightgray + border-radius: 0 + + // Buttons .btn @@ -272,6 +272,8 @@ $forest: #20572B // TODO: Font size 18? Inconsistent with buttons on teacher-class-view bulk assign // Tooltips + .tooltip.in + opacity: 1 .tooltip .tooltip-arrow::after // Create a duplicate tooltip arrow which will cover the main arrow and make it seem like a line rather than filled @@ -334,6 +336,7 @@ $forest: #20572B background: white border-radius: 20px min-width: 150px + max-width: 600px // Checkboxes diff --git a/app/templates/courses/activate-licenses-modal.jade b/app/templates/courses/activate-licenses-modal.jade index 591ef66f9..ed1ca6d12 100644 --- a/app/templates/courses/activate-licenses-modal.jade +++ b/app/templates/courses/activate-licenses-modal.jade @@ -5,49 +5,67 @@ block modal-header-content .text-center h1(data-i18n="teacher.enroll_students") h2(data-i18n="courses.grants_lifetime_access") - if view.classroom - p= view.classroom.get('name') block modal-body-content + - var numToEnroll = state.get('visibleSelectedUsers').length + - var unusedEnrollments = view.prepaids.totalMaxRedeemers() - view.prepaids.totalRedeemers() + - var tooManySelected = numToEnroll > unusedEnrollments + - var noneSelected = numToEnroll == 0 + if view.classrooms.length > 1 - .text-center - span(data-i18n='teacher.show_students_from') - span.spr : - select - each classroom in view.classrooms.models - option(selected=(classroom.id === view.classroom.id), value=classroom.id) - = classroom.get('name') - //- option(selected=!view.classroom, value='all-classrooms' data-i18n='teacher.all_students') - form.form + .row + .col-sm-10.col-sm-offset-1 + .text-center.m-b-3 + .small.color-navy + span(data-i18n='teacher.show_students_from') + span.spr : + select.classroom-select + each classroom in view.classrooms.models + option(selected=(classroom.id === view.classroom.id), value=classroom.id) + = classroom.get('name') + option(selected=(view.classroom.id === 'all-students'), value='all-students' data-i18n='teacher.all_students') + + form.form.m-t-3 span(data-i18n="teacher.enroll_the_following_students") span : .well.form-group - for user in view.users.models + - var enrolledUsers = view.users.filter(function(user){ return Boolean(user.get('coursePrepaidID')) }) + - var unenrolledUsers = view.users.filter(function(user){ return !Boolean(user.get('coursePrepaidID')) }) + for user in unenrolledUsers + - var selected = Boolean(paid || state.get('selectedUsers').get(user.id)) .checkbox label - - var paid = user.get('coursePrepaidID') - - var selected = (view.selectedUsers.get(user.id) ? true : false) - input(type="checkbox", disabled=paid, checked=selected, data-user-id=user.id, name='user') + input.user-checkbox(type="checkbox", disabled=false, checked=selected, data-user-id=user.id, name='user') + span.spr= user.broadName() + if enrolledUsers.length > 0 + .small-details.m-t-3 + span(data-i18n='TODO') + | The following students are already enrolled: + for user in enrolledUsers + - var selected = Boolean(paid || state.get('selectedUsers').get(user.id)) + .checkbox + label + input.user-checkbox(type="checkbox", disabled=true, checked=true, data-user-id=user.id, name='user') span.spr= user.broadName() - if paid - span ( - span(data-i18n="courses.already_enrolled") - span ) - #error-alert.alert.alert-danger.hide + if state.get('error') + .alert.alert-danger + = state.get('error') #submit-form-area.text-center + p.small-details.not-enough-enrollments(class=(tooManySelected ? 'visible' : '')) + span(data-i18n='teacher.not_enough_enrollments') + p.small-details span.spr(data-i18n="courses.enrollment_credits_available") span#total-available= view.prepaids.totalAvailable() - p.small-details.not-enough-enrollments - span(data-i18n='teacher.not_enough_enrollments') p - button#activate-licenses-btn.btn.btn-lg.btn-primary(type="submit") + button#activate-licenses-btn.btn.btn-lg.btn-primary(type="submit" class=(tooManySelected || noneSelected ? 'disabled' : '')) span.spr(data-i18n="courses.enroll") | ( span#total-selected-span + = numToEnroll | ) span.spl(data-i18n="courses.students1") diff --git a/app/templates/courses/teacher-class-view.jade b/app/templates/courses/teacher-class-view.jade index 5016833b3..cfd455d5f 100644 --- a/app/templates/courses/teacher-class-view.jade +++ b/app/templates/courses/teacher-class-view.jade @@ -18,6 +18,11 @@ block content if classroom.loaded .container +breadcrumbs + if classroom.get('archived') + .row.center-block.text-center.m-t-3.m-b-3 + .unarchive-btn.btn.btn-lg.btn-navy + span(data-i18n='teacher.unarchive_this_class') + h3.m-t-2= classroom.get('name') a.label.edit-classroom(data-classroom-id=classroom.id) span(data-i18n='teacher.edit_class_settings') @@ -25,7 +30,7 @@ block content .classroom-info-row.row.m-t-5 .classroom-details.col-md-3 - - var stats = view.classStats() + - var stats = state.get('classStats') h4.m-b-2(data-i18n='teacher.class_overview') .language.small-details @@ -68,55 +73,57 @@ block content span(data-i18n='teacher.export_student_progress') //- .concepts.small-details - //- if view.progressData + //- if state.get('progressData') //- div //- span(data-i18n='teacher.concepts_covered') //- span : //- - console.log('concepts', view.conceptData) //- - concepts = view.conceptData //- each state, name in view.conceptData[view.classroom.id] - //- if state.started - //- b.concept(class=state.completed ? 'forest' : 'gold') + //- if state.get('started') + //- b.concept(class=state.get('completed') ? 'forest' : 'gold') //- span(data-i18n='concepts.'+name) .completeness-info.col-md-4 h4.m-b-2   - if view.earliestIncompleteLevel + if state.get('earliestIncompleteLevel') div.small-details span(data-i18n='teacher.earliest_incomplete') span : - +longLevelName(view.earliestIncompleteLevel) - +inlineUserList(view.earliestIncompleteLevel.users) - - if view.latestCompleteLevel + +longLevelName(state.get('earliestIncompleteLevel')) + +inlineUserList(state.get('earliestIncompleteLevel').users) + + if state.get('latestCompleteLevel') div.small-details.m-t-3 span(data-i18n='teacher.latest_complete') span : - +longLevelName(view.latestCompleteLevel) - +inlineUserList(view.latestCompleteLevel.users) - + +longLevelName(state.get('latestCompleteLevel')) + +inlineUserList(state.get('latestCompleteLevel').users) + .adding-students.col-md-5 h4.m-b-2 span(data-i18n='teacher.adding_students') span : +copyCodes +addStudentsButton - - ul.nav.nav-tabs.m-t-5(role='tablist') - li.active - a(href='#students-tab' data-toggle='tab') + + ul#student-info-tabs.nav.nav-tabs.m-t-5(role='tablist') + li(class=(state.get('activeTab')==="#students-tab" ? 'active' : '')) + a.students-tab-btn(href='#students-tab') .small-details.text-center(data-i18n='teacher.students') .tab-spacer - li - a(href='#course-progress-tab' data-toggle='tab') + li(class=(state.get('activeTab')==="#course-progress-tab" ? 'active' : '')) + a.course-progress-tab-btn(href='#course-progress-tab') .small-details.text-center(data-i18n='teacher.course_progress') .tab-filler .tab-content - +studentsTab - +courseProgressTab - + if state.get('activeTab')=='#students-tab' + +studentsTab + else + +courseProgressTab + mixin breadcrumbs .breadcrumbs a(data-i18n='teacher.my_classes' href='/teachers/classes') @@ -153,7 +160,7 @@ mixin addStudentsButton span(data-i18n='teacher.add_students_manually') mixin studentsTab - #students-tab.tab-pane.active + #students-tab +bulkAssignControls table.students-table thead @@ -165,7 +172,7 @@ mixin studentsTab th +sortButtons tbody - each student in view.students.models + each student in state.get('students').models +studentRow(student) mixin sortButtons @@ -199,12 +206,15 @@ mixin studentRow(student) div +longLevelName(student.latestCompleteLevel) td - if view.progressData - each course, index in view.courses.models + if state.get('progressData') + each trimCourse, index in view.classroom.get('courses') + - var course = view.courses.get(trimCourse._id); - var instance = view.courseInstances.findWhere({ courseID: course.id, classroomID: classroom.id }) if instance && instance.hasMember(student) - - var progress = view.progressData.get({ classroom: view.classroom, course: course, user: student }) - +progressDot(progress, 'CS' + (index+1)) + - var progress = state.get('progressData').get({ classroom: view.classroom, course: course, user: student }) + - var levelsTotal = trimCourse.levels.length + //- - var level = ??? + +studentCourseProgressDot(progress, levelsTotal, level, 'CS' + (index+1)) unless student.isEnrolled() +enrollStudentButton(student) //- td @@ -219,7 +229,7 @@ mixin enrollStudentButton(student) span(data-i18n='teacher.enroll_student') mixin courseProgressTab - #course-progress-tab.tab-pane.m-t-3 + #course-progress-tab.m-t-3 if view.courses .text-center span(data-i18n='teacher.select_course') @@ -227,18 +237,50 @@ mixin courseProgressTab select.course-select each trimCourse in view.classroom.get('courses') - var course = view.courses.get(trimCourse._id); - option(value=course.id) + option(value=course.id selected=(course===state.get('selectedCourse'))) = course.get('name') - if view.progressData + if state.get('progressData') .render-on-course-sync +courseOverview .student-levels-table +sortButtons - each student in view.students.models - +studentLevelsRow(student) + each student in state.get('students').models + if _.contains(state.get('selectedCourse').members, student.id) + +studentLevelsRow(student) + //- TODO: If any students aren't assigned the course + .unassigned-students.render-on-course-sync + if state.get('selectedCourse') && state.get('selectedCourse').members.length < state.get('students').length + h2 + span(data-i18n='TODO') + | Students who have not been assigned + | + span= state.get('selectedCourse').get('name') + for student in state.get('students').models + unless _.contains(state.get('selectedCourse').members, student.id) + .row.unassigned-student-row.alternating-background + .student-name.col-sm-3 + = student.broadName() + .student-email.small-details.col-sm-3 + = student.get('email') + .col-sm-4 + .latest-completed.truncate.small + i.m-r-1 + span(data-i18n='TODO') + | Latest completed + | : + +longLevelName(student.latestCompleteLevel) + .col-sm-2 + if student.isEnrolled() + .assign-student-button.btn.btn-md.btn-navy.pull-right(data-user-id=student.id data-course-id=state.get('selectedCourse').id) + span(data-i18n='TODO') + | Assign Course + else + .enroll-student-button.btn.btn-md.btn-navy.pull-right(data-user-id=student.id) + span(data-i18n='TODO') + | Enroll Student mixin courseOverview - - var course = view.selectedCourse + - var course = state.get('selectedCourse') - var levels = view.classroom.getLevels({courseID: course.id, withoutLadderLevels: true}).models .course-overview-row .course-title.student-name @@ -247,8 +289,8 @@ mixin courseOverview span(data-i18n='teacher.course_overview') .course-overview-progress each level, index in levels - - var progress = view.progressData.get({ classroom: view.classroom, course: course, level: level }) - +progressDot(progress, index+1) + - var progress = state.get('progressData').get({ classroom: view.classroom, course: course, level: level }) + +allStudentsLevelProgressDot(progress, level, index+1) mixin studentLevelsRow(student) .student-levels-row.alternating-background @@ -256,20 +298,35 @@ mixin studentLevelsRow(student) div.student-name= student.broadName() div.student-email.small-details= student.get('email') div.student-levels-progress - - var course = view.selectedCourse + - var course = state.get('selectedCourse') - var levels = view.classroom.getLevels({courseID: course.id, withoutLadderLevels: true}).models each level, index in levels - - var progress = view.progressData.get({ classroom: view.classroom, course: course, level: level, user: student }) - +progressDot(progress, index+1) - -mixin progressDot(progress, label) + - var progress = state.get('progressData').get({ classroom: view.classroom, course: course, level: level, user: student }) + +studentLevelProgressDot(progress, level, index+1) + +mixin studentCourseProgressDot(progress, levelsTotal, level, label) //- TODO: Refactor with TeacherClassesView jade //- TODO: Give classes abbreviations instead of using index? - //- TODO: inefficient. Cache this in the view? - dotClass = progress.completed ? 'forest' : (progress.started ? 'gold' : ''); - .progress-dot(class=dotClass, data-html='true', data-title=view.progressDotTemplate(progressDotContext) data-toggle='tooltip') + - _.assign(progress, { levelsTotal: levelsTotal }) + .progress-dot(class=dotClass, data-html='true', data-title=view.singleStudentCourseProgressDotTemplate(progress)) +progressDotLabel(label) +mixin allStudentsLevelProgressDot(progress, level, levelNumber) + - dotClass = progress.completed ? 'forest' : (progress.started ? 'gold' : ''); + - levelName = level.get('name') + - context = _.merge(progress, { levelName: levelName, levelNumber: levelNumber, numStudents: view.students.length }) + .progress-dot.level-progress-dot(class=dotClass, data-html='true', data-title=view.allStudentsLevelProgressDotTemplate(context)) + +progressDotLabel(levelNumber) + +mixin studentLevelProgressDot(progress, level, levelNumber) + //- TODO: Refactor with TeacherClassesView jade + - dotClass = progress.completed ? 'forest' : (progress.started ? 'gold' : ''); + - levelName = level.get('name') + - context = _.merge(progress, { levelName: levelName, levelNumber: levelNumber }) + .progress-dot.level-progress-dot(class=dotClass, data-html='true', data-title=view.singleStudentLevelProgressDotTemplate(context)) + +progressDotLabel(levelNumber) + mixin progressDotLabel(label) .dot-label.text-center .dot-label-inner @@ -278,23 +335,23 @@ mixin progressDotLabel(label) mixin copyCodes div.copy-button-group.form-inline.m-b-3 .form-group - input.text-h4.semibold#join-code-input(value=view.classCode) + input.text-h4.semibold#join-code-input(value=state.get('classCode')) button#copy-code-btn.form-control.btn.btn-lg.btn-forest span(data-i18n='teacher.copy_class_code') div.text-center.small(data-i18n='teacher.class_code_blurb') div.copy-button-group.form-inline.m-b-3 .form-group - input.form-control.text-h4.semibold#join-url-input(value=view.joinURL) + input.form-control.text-h4.semibold#join-url-input(value=state.get('joinURL')) button#copy-url-btn.form-control.btn.btn-lg.btn-forest span(data-i18n='teacher.copy_class_url') div.text-center.small(data-i18n='teacher.class_join_url_blurb') mixin bulkAssignControls .bulk-assign-controls.form-inline - .no-students-selected.small-details(class=view.assigningToNobody ? 'visible' : '') + .no-students-selected.small-details(class=state.get('errors').assigningToNobody ? 'visible' : '') span(data-i18n='teacher.no_students_selected') - .cant-assign-to-unenrolled.small-details(class=view.assigningToUnenrolled ? 'visible' : '') + .cant-assign-to-unenrolled.small-details(class=state.get('errors').assigningToUnenrolled ? 'visible' : '') span(data-i18n='teacher.cant_assign_to_unenrolled') span.small span(data-i18n='teacher.bulk_assign') @@ -302,9 +359,9 @@ mixin bulkAssignControls select.bulk-course-select.form-control each trimCourse in _.rest(view.classroom.get('courses')) - var course = view.courses.get(trimCourse._id) - option(value=course.id) + option(value=course.id selected=(course===state.get('selectedCourse'))) = course.get('name') button.btn.btn-primary-alt.assign-to-selected-students span(data-i18n='teacher.assign_to_selected_students') button.btn.btn-primary-alt.enroll-selected-students - span(data-i18n='teacher.enroll_selected_students') \ No newline at end of file + span(data-i18n='teacher.enroll_selected_students') diff --git a/app/templates/teachers/hovers/progress-dot-all-students-single-level.jade b/app/templates/teachers/hovers/progress-dot-all-students-single-level.jade new file mode 100644 index 000000000..2a04ae2f5 --- /dev/null +++ b/app/templates/teachers/hovers/progress-dot-all-students-single-level.jade @@ -0,0 +1,21 @@ +if started + .small-details.nowrap + span= levelNumber + span.spr . + span= levelName + .small-details.nowrap + .fraction-students.small-details + = numStarted + | / + = numStudents + if completed + span.spl(data-i18n='teacher.completed') + | Completed + else + span.spl(data-i18n='teacher.started') + | Started + //- .small-details + //- i(data-i18n='teacher.click_to_view_progress') +else + span.small-details.nowrap(data-i18n='teacher.no_progress') + | No progress diff --git a/app/templates/teachers/hovers/progress-dot-single-student-course.jade b/app/templates/teachers/hovers/progress-dot-single-student-course.jade new file mode 100644 index 000000000..9b289f225 --- /dev/null +++ b/app/templates/teachers/hovers/progress-dot-single-student-course.jade @@ -0,0 +1,18 @@ +if completed + span.small-details(data-i18n='teacher.complete') + | Complete +else if started + .fraction-students.small-details + = levelsCompleted + | / + = levelsTotal + span.spl(data-i18n='teacher.levels') + | Levels + .percent-students.small-details + = Math.floor(levelsCompleted / levelsTotal * 100) + | % + span.spl(data-i18n='teacher.complete') + | Complete +else + span.small-details(data-i18n='teacher.assigned') + | Assigned diff --git a/app/templates/teachers/hovers/progress-dot-single-student-level.jade b/app/templates/teachers/hovers/progress-dot-single-student-level.jade new file mode 100644 index 000000000..3922be2ed --- /dev/null +++ b/app/templates/teachers/hovers/progress-dot-single-student-level.jade @@ -0,0 +1,27 @@ +if completed + .small-details.nowrap + span= levelNumber + span.spr . + span= levelName + .small-details.nowrap + span.spr(data-i18n='teacher.completed') + | Completed + span= new Date(dateFirstCompleted).toLocaleString() + //- .small-details + //- i(data-i18n='teacher.click_to_view_solution') + //- | click to view solution +else if started + .small-details.nowrap + span= levelNumber + span.spr . + span= levelName + .small-details.nowrap + span.spr(data-i18n='teacher.last_played') + | Last played + span= new Date(lastPlayed).toLocaleString() + //- .small-details + //- i(data-i18n='teacher.click_to_view_progress') + //- | click to view progress +else + span.small-details.nowrap(data-i18n='teacher.no_progress') + | No progress diff --git a/app/templates/courses/progress-dot.jade b/app/templates/teachers/hovers/progress-dot-whole-course.jade similarity index 100% rename from app/templates/courses/progress-dot.jade rename to app/templates/teachers/hovers/progress-dot-whole-course.jade diff --git a/app/templates/teachers/request-quote-view.jade b/app/templates/teachers/request-quote-view.jade index 255b67e67..f92a53fa3 100644 --- a/app/templates/teachers/request-quote-view.jade +++ b/app/templates/teachers/request-quote-view.jade @@ -219,6 +219,10 @@ block content p span.spr(data-i18n="teachers_quote.thanks_p") a.spl(href="mailto:team@codecombat.com") team@codecombat.com + + unless me.isAnonymous() + a.btn.btn-lg.btn-navy(href="/teachers/classes") + span(data-i18n='teachers_quote.back_to_classes') if me.isAnonymous() h5(data-i18n="teachers_quote.finish_signup") diff --git a/app/views/core/CocoView.coffee b/app/views/core/CocoView.coffee index 6856acdb6..97eedca8a 100644 --- a/app/views/core/CocoView.coffee +++ b/app/views/core/CocoView.coffee @@ -137,6 +137,7 @@ module.exports = class CocoView extends Backbone.View context._ = _ context.document = document context.i18n = utils.i18n + context.state = @state context afterRender: -> @@ -390,7 +391,7 @@ module.exports = class CocoView extends Backbone.View setTimeout (=> $pointer.css transition: 'all 0.4s ease-in', transform: "rotate(#{@pointerRotation}rad) translate(-3px, #{@pointerRadialDistance}px)"), 800 endHighlight: -> - @getPointer(false).css({'opacity': 0.0, 'transition': 'none', top: '-50px', right: '-50px'}) + @getPointer(false).css({'opacity': 0.0, 'transition': 'none', top: '-50px', right: '-50px'}) clearInterval @pointerInterval clearTimeout @pointerDelayTimeout clearTimeout @pointerDurationTimeout diff --git a/app/views/courses/ActivateLicensesModal.coffee b/app/views/courses/ActivateLicensesModal.coffee index d847c4a32..709a1e2dc 100644 --- a/app/views/courses/ActivateLicensesModal.coffee +++ b/app/views/courses/ActivateLicensesModal.coffee @@ -1,7 +1,9 @@ ModalView = require 'views/core/ModalView' +State = require 'models/State' template = require 'templates/courses/activate-licenses-modal' CocoCollection = require 'collections/CocoCollection' Prepaids = require 'collections/Prepaids' +Classroom = require 'models/Classroom' Classrooms = require 'collections/Classrooms' User = require 'models/User' Users = require 'collections/Users' @@ -11,14 +13,23 @@ module.exports = class ActivateLicensesModal extends ModalView template: template events: - 'change input': 'updateSelectionSpans' - 'change select': 'replaceStudentList' + 'change input[type="checkbox"][name="user"]': 'updateSelectedStudents' + 'change select.classroom-select': 'replaceStudentList' 'submit form': 'onSubmitForm' + getInitialState: (options) -> + selectedUserModels = _.filter(options.selectedUsers.models, (user) -> not user.isEnrolled()) + { + selectedUsers: new Users(selectedUserModels) + visibleSelectedUsers: new Users(selectedUserModels) + error: null + } + initialize: (options) -> + @state = new State(@getInitialState(options)) @classroom = options.classroom - @users = options.users - @selectedUsers = options.selectedUsers + @users = options.users.clone() + @users.comparator = (user) -> user.broadName().toLowerCase() @prepaids = new Prepaids() @prepaids.comparator = '_id' @prepaids.fetchByCreator(me.id) @@ -33,68 +44,58 @@ module.exports = class ActivateLicensesModal extends ModalView @supermodel.trackRequests(jqxhrs) }) @supermodel.trackCollection(@classrooms) + + @listenTo @state, 'change', @render + @listenTo @state.get('selectedUsers'), 'change add remove reset', -> + @state.set { visibleSelectedUsers: new Users(@state.get('selectedUsers').filter (u) => @users.get(u)) } + @render() + @listenTo @users, 'change add remove reset', -> + @state.set { visibleSelectedUsers: new Users(@state.get('selectedUsers').filter (u) => @users.get(u)) } + @render() + @listenTo @prepaids, 'sync add remove', -> + @state.set { + unusedEnrollments: @prepaids.totalMaxRedeemers() - @prepaids.totalRedeemers() + } afterRender: -> super() - @updateSelectionSpans() + # @updateSelectedStudents() # TODO: refactor to event/state style - updateSelectionSpans: -> - targets = @$('input[name="targets"]:checked').val() - if targets is 'given' - numToActivate = 1 + updateSelectedStudents: (e) -> + userID = $(e.currentTarget).data('user-id') + user = @users.get(userID) + if @state.get('selectedUsers').contains(user) + @state.get('selectedUsers').remove(user) else - numToActivate = @$('input[name="user"]:checked:not(:disabled)').length - @$('#total-selected-span').text(numToActivate) - remaining = @prepaids.totalMaxRedeemers() - @prepaids.totalRedeemers() - numToActivate - depleted = remaining < 0 - @$('.not-enough-enrollments').toggleClass('visible', depleted) - @$('#activate-licenses-btn').toggleClass('disabled', depleted).toggleClass('btn-success', not depleted).toggleClass('btn-default', depleted) - + @state.get('selectedUsers').add(user) + # @render() # TODO: Have @state automatically listen to children's change events? + replaceStudentList: (e) -> selectedClassroomID = $(e.currentTarget).val() @classroom = @classrooms.get(selectedClassroomID) - if selectedClassroomID == 'all-classrooms' - @classroom = new Classroom({ id: 'all-students' }) # TODO: This is a horrible hack so the select shows the right option! + if selectedClassroomID is 'all-students' + @classroom = new Classroom({ _id: 'all-students', name: 'All Students' }) # TODO: This is a horrible hack so the select shows the right option! users = _.uniq _.flatten @classrooms.map (classroom) -> classroom.users.models @users.reset(users) + @users.sort() else @users.reset(@classrooms.get(selectedClassroomID).users.models) - @trigger('users:change') @render() null - showProgress: -> - @$('#submit-form-area').addClass('hide') - @$('#progress-area').removeClass('hide') - - hideProgress: -> - @$('#submit-form-area').removeClass('hide') - @$('#progress-area').addClass('hide') - onSubmitForm: (e) -> e.preventDefault() - @$('#error-alert').addClass('hide') - @usersToRedeem = new CocoCollection([], {model: User}) - targets = @$('input[name="targets"]:checked').val() - if targets is 'given' - @usersToRedeem.add(@user) - else - checkedBoxes = @$('input[name="user"]:checked:not(:disabled)') - _.each checkedBoxes, (el) => - $el = $(el) - userID = $el.data('user-id') - @usersToRedeem.add @users.get(userID) - return unless @usersToRedeem.size() - @usersToRedeem.originalSize = @usersToRedeem.size() - @showProgress() - @redeemUsers() + @state.set error: null + usersToRedeem = @state.get('visibleSelectedUsers') + @redeemUsers(usersToRedeem) - redeemUsers: -> - if not @usersToRedeem.size() + redeemUsers: (usersToRedeem) -> + if not usersToRedeem.size() @finishRedeemUsers() + @hide() return - user = @usersToRedeem.first() + user = usersToRedeem.first() prepaid = @prepaids.find((prepaid) -> prepaid.get('properties')?.endDate? and prepaid.openSpots() > 0) prepaid = @prepaids.find((prepaid) -> prepaid.openSpots() > 0) unless prepaid $.ajax({ @@ -102,19 +103,20 @@ module.exports = class ActivateLicensesModal extends ModalView url: _.result(prepaid, 'url') + '/redeemers' data: { userID: user.id } context: @ - success: -> - @usersToRedeem.remove(user) - pct = 100 * (@usersToRedeem.originalSize - @usersToRedeem.size() / @usersToRedeem.originalSize) - @$('#progress-area .progress-bar').css('width', "#{pct.toFixed(1)}%") + success: (prepaid) -> + user.set('coursePrepaidID', prepaid._id) + usersToRedeem.remove(user) + # pct = 100 * (usersToRedeem.originalSize - usersToRedeem.size() / usersToRedeem.originalSize) + # @$('#progress-area .progress-bar').css('width', "#{pct.toFixed(1)}%") application.tracker?.trackEvent 'Enroll modal finished enroll student', category: 'Courses', userID: user.id - @redeemUsers() + @redeemUsers(usersToRedeem) error: (jqxhr, textStatus, errorThrown) -> if jqxhr.status is 402 message = arguments[2] else message = "#{jqxhr.status}: #{jqxhr.responseText}" - @$('#error-alert').text(message).removeClass('hide') + @state.set { error: message } # TODO: Test this! ("should" never happen. Only on server responding with an error.) }) finishRedeemUsers: -> - @trigger 'redeem-users' + @trigger 'redeem-users', @state.get('selectedUsers') diff --git a/app/views/courses/TeacherClassView.coffee b/app/views/courses/TeacherClassView.coffee index 071de926d..5302d0ee2 100644 --- a/app/views/courses/TeacherClassView.coffee +++ b/app/views/courses/TeacherClassView.coffee @@ -1,4 +1,5 @@ RootView = require 'views/core/RootView' +State = require 'models/State' template = require 'templates/courses/teacher-class-view' helper = require 'lib/coursesHelper' ClassroomSettingsModal = require 'views/courses/ClassroomSettingsModal' @@ -12,6 +13,7 @@ Levels = require 'collections/Levels' LevelSessions = require 'collections/LevelSessions' User = require 'models/User' Users = require 'collections/Users' +Course = require 'models/Course' Courses = require 'collections/Courses' CourseInstance = require 'models/CourseInstance' CourseInstances = require 'collections/CourseInstances' @@ -21,6 +23,13 @@ module.exports = class TeacherClassView extends RootView template: template events: + 'click .students-tab-btn': (e) -> + e.preventDefault() + @trigger 'open-students-tab' + 'click .course-progress-tab-btn': (e) -> + e.preventDefault() + @trigger 'open-course-progress-tab' + 'click .unarchive-btn': 'onClickUnarchive' 'click .edit-classroom': 'onClickEditClassroom' 'click .add-students-btn': 'onClickAddStudents' 'click .sort-by-name': 'sortByName' @@ -28,33 +37,59 @@ module.exports = class TeacherClassView extends RootView 'click #copy-url-btn': 'copyURL' 'click #copy-code-btn': 'copyCode' 'click .remove-student-link': 'onClickRemoveStudentLink' + 'click .assign-student-button': 'onClickAssign' 'click .enroll-student-button': 'onClickEnroll' 'click .assign-to-selected-students': 'onClickBulkAssign' 'click .enroll-selected-students': 'onClickBulkEnroll' 'click .export-student-progress-btn': 'onClickExportStudentProgress' 'click .select-all': 'onClickSelectAll' 'click .student-checkbox': 'onClickStudentCheckbox' - 'change .course-select': 'onChangeCourseSelect' + 'change .course-select, .bulk-course-select': (e) -> + @trigger 'course-select:change', { selectedCourse: @courses.get($(e.currentTarget).val()) } + + getInitialState: -> + if Backbone.history.getHash() in ['students-tab', 'course-progress-tab'] + activeTab = '#' + Backbone.history.getHash() + else + activeTab = '#students-tab' + { + sortAttribute: 'name' + sortDirection: 1 + activeTab + students: new Users() + classCode: "" + joinURL: "" + errors: + assigningToNobody: false + assigningToUnenrolled: false + selectedCourse: undefined + classStats: + averagePlaytime: "" + totalPlaytime: "" + averageLevelsComplete: "" + totalLevelsComplete: "" + enrolledUsers: "" + } initialize: (options, classroomID) -> super(options) - @progressDotTemplate = require 'templates/courses/progress-dot' - - @sortAttribute = 'name' - @sortDirection = 1 - + @singleStudentCourseProgressDotTemplate = require 'templates/teachers/hovers/progress-dot-single-student-course' + @singleStudentLevelProgressDotTemplate = require 'templates/teachers/hovers/progress-dot-single-student-level' + @allStudentsLevelProgressDotTemplate = require 'templates/teachers/hovers/progress-dot-all-students-single-level' + + @state = new State(@getInitialState()) + window.location.hash = @state.get('activeTab') # TODO: Don't push to URL history (maybe don't use url fragment for default tab) + @classroom = new Classroom({ _id: classroomID }) @classroom.fetch() @supermodel.trackModel(@classroom) - + + @students = new Users() @listenTo @classroom, 'sync', -> - @students = new Users() jqxhrs = @students.fetchForClassroom(@classroom, removeDeleted: true) if jqxhrs.length > 0 @supermodel.trackCollection(@students) - @listenTo @students, 'sync', @sortByName - @listenTo @students, 'sort', @renderSelectors.bind(@, '.students-table', '.student-levels-table') - + @classroom.sessions = new LevelSessions() requests = @classroom.sessions.fetchForAllClassroomMembers(@classroom) @supermodel.trackRequests(requests) @@ -66,47 +101,119 @@ module.exports = class TeacherClassView extends RootView @courseInstances = new CourseInstances() @courseInstances.fetchForClassroom(classroomID) @supermodel.trackCollection(@courseInstances) - + @levels = new Levels() @levels.fetchForClassroom(classroomID, {data: {project: 'original,concepts'}}) @supermodel.trackCollection(@levels) + + @attachMediatorEvents() + + attachMediatorEvents: () -> + @listenTo @state, 'sync change', @render + # Model/Collection events + @listenTo @classroom, 'sync change update', -> + @removeDeletedStudents() + classCode = @classroom.get('codeCamel') or @classroom.get('code') + @state.set { + classCode: classCode + joinURL: document.location.origin + "/courses?_cc=" + classCode + } + @listenTo @courses, 'sync change update', -> + @setCourseMembers() # Is this necessary? + @state.set selectedCourse: @courses.first() unless @state.get('selectedCourse') + @listenTo @courseInstances, 'sync change update', -> + @setCourseMembers() + @render() # TODO: use state + @listenTo @courseInstances, 'add-members', -> + noty text: $.i18n.t('teacher.assigned'), layout: 'center', type: 'information', killer: true, timeout: 5000 + @listenToOnce @students, 'sync', # TODO: This seems like it's in the wrong place? + @sortByName + @listenTo @students, 'sync change update add remove reset', -> + # Set state/props of things that depend on students? + # Set specific parts of state based on the models, rather than just dumping the collection there? + @removeDeletedStudents() + @calculateProgressAndLevels() + classStats = @calculateClassStats() + @state.set classStats: classStats if classStats + @state.set students: @students + @listenTo @students, 'sort', -> + @state.set students: @students + @render() + + # DOM events + @listenTo @, 'open-students-tab', -> + if window.location.hash isnt '#students-tab' + window.location.hash = '#students-tab' + @state.set activeTab: '#students-tab' + @listenTo @, 'open-course-progress-tab', -> + if window.location.hash isnt '#course-progress-tab' + window.location.hash = '#course-progress-tab' + @state.set activeTab: '#course-progress-tab' + @listenTo @, 'course-select:change', ({ selectedCourse }) -> + @state.set selectedCourse: selectedCourse + setCourseMembers: => + for course in @courses.models + course.instance = @courseInstances.findWhere({ courseID: course.id, classroomID: @classroom.id }) + course.members = course.instance?.get('members') or [] + null + onLoaded: -> - @removeDeletedStudents() - - @classCode = @classroom.get('codeCamel') or @classroom.get('code') - @joinURL = document.location.origin + "/courses?_cc=" + @classCode - - @earliestIncompleteLevel = helper.calculateEarliestIncomplete(@classroom, @courses, @courseInstances, @students) - @latestCompleteLevel = helper.calculateLatestComplete(@classroom, @courses, @courseInstances, @students) + @removeDeletedStudents() # TODO: Move this to mediator listeners? For both classroom and students? + @calculateProgressAndLevels() + super() + + afterRender: -> + super(arguments...) + $('.progress-dot').each (i, el) -> + dot = $(el) + dot.tooltip({ + html: true + container: dot + }).delegate '.tooltip', 'mousemove', -> + dot.tooltip('hide') + + calculateProgressAndLevels: -> + return unless @supermodel.progress is 1 + # TODO: How to structure this in @state? for student in @students.models # TODO: this is a weird hack studentsStub = new Users([ student ]) student.latestCompleteLevel = helper.calculateLatestComplete(@classroom, @courses, @courseInstances, studentsStub) - + + earliestIncompleteLevel = helper.calculateEarliestIncomplete(@classroom, @courses, @courseInstances, @students) + latestCompleteLevel = helper.calculateLatestComplete(@classroom, @courses, @courseInstances, @students) + classroomsStub = new Classrooms([ @classroom ]) - @progressData = helper.calculateAllProgress(classroomsStub, @courses, @courseInstances, @students) - # @conceptData = helper.calculateConceptsCovered(classroomsStub, @courses, @campaigns, @courseInstances, @students) - - @selectedCourse = @courses.first() - super() - + progressData = helper.calculateAllProgress(classroomsStub, @courses, @courseInstances, @students) + # conceptData: helper.calculateConceptsCovered(classroomsStub, @courses, @campaigns, @courseInstances, @students) + + @state.set { + earliestIncompleteLevel + latestCompleteLevel + progressData + classStats: @calculateClassStats() + } + copyCode: -> - @$('#join-code-input').val(@classCode).select() + @$('#join-code-input').val(@state.get('classCode')).select() @tryCopy() copyURL: -> - @$('#join-url-input').val(@joinURL).select() + @$('#join-url-input').val(@state.get('joinURL')).select() @tryCopy() tryCopy: -> try document.execCommand('copy') - application.tracker?.trackEvent 'Classroom copy URL', category: 'Courses', classroomID: @classroom.id, url: @joinURL + application.tracker?.trackEvent 'Classroom copy URL', category: 'Courses', classroomID: @classroom.id, url: @state.joinURL catch err message = 'Oops, unable to copy' noty text: message, layout: 'topCenter', type: 'error', killer: false - + + onClickUnarchive: -> + @classroom.save { archived: false } + onClickEditClassroom: (e) -> classroom = @classroom modal = new ClassroomSettingsModal({ classroom: classroom }) @@ -125,7 +232,6 @@ module.exports = class TeacherClassView extends RootView onStudentRemoved: (e) -> @students.remove(e.user) - @render() application.tracker?.trackEvent 'Classroom removed student', category: 'Courses', classroomID: @classroom.id, userID: e.user.id onClickAddStudents: (e) => @@ -134,32 +240,33 @@ module.exports = class TeacherClassView extends RootView @listenToOnce modal, 'hide', @render removeDeletedStudents: () -> + return unless @classroom.loaded and @students.loaded _.remove(@classroom.get('members'), (memberID) => not @students.get(memberID) or @students.get(memberID)?.get('deleted') ) true sortByName: (e) -> - if @sortValue is 'name' - @sortDirection = -@sortDirection + if @state.get('sortValue') is 'name' + @state.set('sortDirection', -@state.get('sortDirection')) else - @sortValue = 'name' - @sortDirection = 1 - - dir = @sortDirection + @state.set('sortValue', 'name') + @state.set('sortDirection', 1) + + dir = @state.get('sortDirection') @students.comparator = (student1, student2) -> return (if student1.broadName().toLowerCase() < student2.broadName().toLowerCase() then -dir else dir) @students.sort() sortByProgress: (e) -> - if @sortValue is 'progress' - @sortDirection = -@sortDirection + if @state.get('sortValue') is 'progress' + @state.set('sortDirection', -@state.get('sortDirection')) else - @sortValue = 'progress' - @sortDirection = 1 - - dir = @sortDirection - + @state.set('sortValue', 'progress') + @state.set('sortDirection', 1) + + dir = @state.get('sortDirection') + @students.comparator = (student) -> #TODO: I would like for this to be in the Level model, # but it doesn't know about its own courseNumber @@ -179,19 +286,24 @@ module.exports = class TeacherClassView extends RootView userID = $(e.currentTarget).data('user-id') user = @students.get(userID) selectedUsers = new Users([user]) - modal = new ActivateLicensesModal { @classroom, selectedUsers, users: @students } - @openModalView(modal) - modal.once 'redeem-users', -> document.location.reload() - application.tracker?.trackEvent 'Classroom started enroll students', category: 'Courses' - + @enrollStudents(selectedUsers) + onClickBulkEnroll: -> courseID = @$('.bulk-course-select').val() courseInstance = @courseInstances.findWhere({ courseID, classroomID: @classroom.id }) userIDs = @getSelectedStudentIDs().toArray() selectedUsers = new Users(@students.get(userID) for userID in userIDs) + @enrollStudents(selectedUsers) + + enrollStudents: (selectedUsers) -> modal = new ActivateLicensesModal { @classroom, selectedUsers, users: @students } @openModalView(modal) - modal.once 'redeem-users', -> document.location.reload() + modal.once 'redeem-users', (enrolledUsers) => + enrolledUsers.each (newUser) => + user = @students.get(newUser.id) + if user + user.set(newUser.attributes) + null application.tracker?.trackEvent 'Classroom started enroll students', category: 'Courses' onClickExportStudentProgress: -> @@ -201,10 +313,10 @@ module.exports = class TeacherClassView extends RootView concepts = [] for course, index in @courses.models instance = @courseInstances.findWhere({ courseID: course.id, classroomID: @classroom.id }) - if instance && instance.hasMember(student) + if instance and instance.hasMember(student) # TODO: @levels collection is for the classroom, and not per-course for level, index in @levels.models - progress = @progressData.get({ classroom: @classroom, course: course, level: level, user: student }) + progress = @state.get('progressData').get({ classroom: @classroom, course: course, level: level, user: student }) concepts.push(level.get('concepts') ? []) if progress?.completed concepts = _.union(_.flatten(concepts)) conceptsString = _.map(concepts, (c) -> $.i18n.t("concepts." + c)).join(', ') @@ -217,27 +329,37 @@ module.exports = class TeacherClassView extends RootView encodedUri = encodeURI(csvContent) window.open(encodedUri) + + onClickAssign: (e) -> + userID = $(e.currentTarget).data('user-id') + user = @students.get(userID) + members = [userID] + courseID = $(e.currentTarget).data('course-id') + + @assignCourse courseID, members + onClickBulkAssign: -> courseID = @$('.bulk-course-select').val() - courseInstance = @courseInstances.findWhere({ courseID, classroomID: @classroom.id }) selectedIDs = @getSelectedStudentIDs() members = selectedIDs.filter((index, userID) => user = @students.get(userID) user.isEnrolled() ).toArray() - - @assigningToUnenrolled = _.any selectedIDs, (userID) => + + assigningToUnenrolled = _.any selectedIDs, (userID) => not @students.get(userID).isEnrolled() - - @$('.cant-assign-to-unenrolled').toggleClass('visible', @assigningToUnenrolled) - - @assigningToNobody = selectedIDs.length is 0 - @$('.no-students-selected').toggleClass('visible', @assigningToNobody) - + + assigningToNobody = selectedIDs.length is 0 + + @state.set errors: { assigningToNobody, assigningToUnenrolled } + + @assignCourse courseID, members + + # TODO: Move this to the model. Use promises/callbacks? + assignCourse: (courseID, members) -> + courseInstance = @courseInstances.findWhere({ courseID, classroomID: @classroom.id }) if courseInstance - courseInstance.addMembers members, { - success: @onBulkAssignSuccess - } + courseInstance.addMembers members else courseInstance = new CourseInstance { courseID, @@ -247,17 +369,11 @@ module.exports = class TeacherClassView extends RootView } @courseInstances.add(courseInstance) courseInstance.save {}, { - success: => - courseInstance.addMembers members, { - success: @onBulkAssignSuccess - } + success: -> + courseInstance.addMembers members } null - - onBulkAssignSuccess: => - @render() unless @destroyed - noty text: $.i18n.t('teacher.assigned'), layout: 'center', type: 'information', killer: true, timeout: 5000 - + onClickSelectAll: (e) -> e.preventDefault() checkboxes = @$('.student-checkbox input') @@ -278,11 +394,8 @@ module.exports = class TeacherClassView extends RootView checkboxes = @$('.student-checkbox input') @$('.select-all input').prop('checked', _.all(checkboxes, 'checked')) - onChangeCourseSelect: (e) -> - @selectedCourse = @courses.get($(e.currentTarget).val()) - @renderSelectors('.render-on-course-sync') - - classStats: -> + calculateClassStats: -> + return {} unless @classroom.sessions?.loaded and @students.loaded stats = {} playtime = 0 @@ -301,4 +414,5 @@ module.exports = class TeacherClassView extends RootView enrolledUsers = @students.filter (user) -> user.get('coursePrepaidID') stats.enrolledUsers = _.size(enrolledUsers) + return stats diff --git a/app/views/courses/TeacherClassesView.coffee b/app/views/courses/TeacherClassesView.coffee index e969d12e0..5a5f4e904 100644 --- a/app/views/courses/TeacherClassesView.coffee +++ b/app/views/courses/TeacherClassesView.coffee @@ -44,7 +44,7 @@ module.exports = class TeacherClassesView extends RootView @courseInstances = new CourseInstances() @courseInstances.fetchByOwner(me.id) @supermodel.trackCollection(@courseInstances) - @progressDotTemplate = require 'templates/courses/progress-dot' + @progressDotTemplate = require 'templates/teachers/hovers/progress-dot-whole-course' # Level Sessions loaded after onLoaded to prevent race condition in calculateDots diff --git a/server/middleware/classrooms.coffee b/server/middleware/classrooms.coffee index 3e8980863..4f5a3f8c9 100644 --- a/server/middleware/classrooms.coffee +++ b/server/middleware/classrooms.coffee @@ -85,7 +85,7 @@ module.exports = members = classroom.get('members') or [] members = members.slice(memberSkip, memberSkip + memberLimit) dbqs = [] - select = 'state.complete level creator playtime' + select = 'state.complete level creator playtime changed dateFirstCompleted' for member in members dbqs.push(LevelSession.find({creator: member.toHexString()}).select(select).exec()) results = yield dbqs diff --git a/server/models/LevelSession.coffee b/server/models/LevelSession.coffee index 06846e3cc..29ecccda4 100644 --- a/server/models/LevelSession.coffee +++ b/server/models/LevelSession.coffee @@ -45,7 +45,8 @@ LevelSessionSchema.post 'init', (doc) -> LevelSessionSchema.pre 'save', (next) -> User = require './User' # Avoid mutual inclusion cycles Level = require './Level' - @set('changed', new Date()) + now = new Date() + @set('changed', now) id = @get('id') initd = @previousStateInfo? @@ -55,6 +56,7 @@ LevelSessionSchema.pre 'save', (next) -> # Newly completed level if not (initd and @previousStateInfo['state.complete']) and @get('state.complete') + @set('dateFirstCompleted', now) Level.findOne({slug: levelID}).select('concepts -_id').lean().exec (err, level) -> log.error err if err? update = $inc: {'stats.gamesCompleted': 1} From ec8bce9f701c48ee0d43fb414e0ebd75e6c20e80 Mon Sep 17 00:00:00 2001 From: phoenixeliot Date: Fri, 6 May 2016 14:23:38 -0700 Subject: [PATCH 10/12] Put back clobbered pt-PT code translations --- app/locale/en.coffee | 2 +- app/locale/pt-PT.coffee | 30 +++++++++++++++--------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/app/locale/en.coffee b/app/locale/en.coffee index 898133727..c73e47493 100644 --- a/app/locale/en.coffee +++ b/app/locale/en.coffee @@ -200,7 +200,7 @@ do: "do" end: "end" function: "function" - def: "def" + def: "def" # (short for "define") self: "self" hero: "hero" this: "this" diff --git a/app/locale/pt-PT.coffee b/app/locale/pt-PT.coffee index 5d9695d35..69599648c 100644 --- a/app/locale/pt-PT.coffee +++ b/app/locale/pt-PT.coffee @@ -188,22 +188,22 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription: campaign_old_multiplayer_description: "Relíquias de uma era mais civilizada. Não há simulações em curso para estas arenas multijogador, mais antigas e sem heróis." code: - if: "if" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) - else: "else" - elif: "elif" - while: "while" - loop: "loop" - for: "for" - break: "break" - continue: "continue" - then: "then" - do: "do" - end: "end" - function: "function" + if: "se" # Keywords--these translations show up on hover, so please translate them all, even if it's kind of long. (In the code editor, they will still be in English.) + else: "senão" + elif: "senão se" + while: "enquanto" + loop: "circular" + for: "para" + break: "parar" + continue: "continuar" + then: "então" + do: "fazer" + end: "fim" + function: "função" def: "def" - self: "self" - hero: "hero" - this: "this" + self: "próprio" + hero: "herói" + this: "isto" share_progress_modal: blurb: "Estás a fazer grandes progressos! Conta ao teu educador o quanto aprendeste com o CodeCombat." From 4172f03fad071eec79bc3bc7fd055a720f073e08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Duy=20Tr=E1=BA=A7n?= Date: Sat, 7 May 2016 16:16:39 +0700 Subject: [PATCH 11/12] Vi translation (#3609) * Translate into Vietnamese * Translate and edit some Vietnamese strings * update Vietnamese translate * try to fix some error * fix bugs with tab character * update vi.coffee: play_level * Update vi.coffee * update vi.coffee * update text on Home page * Vietnamese: update legal * vi.coffee: edit community page * vi.coffee: update user's page * vi.coffee: about page * update vi.coffee * update vi.coffee * vi.coffee: invoices * vi.coffee: account_prepaid * update vi.coffee * vi.coffee: error strings * Update vi.coffee * update vi.coffee * vi.coffee: update contact form * vi.coffee: minor update * vi.coffee: update about page, modify some strings --- app/locale/vi.coffee | 76 ++++++++++++++++++++++---------------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/app/locale/vi.coffee b/app/locale/vi.coffee index 8392e34a2..a352329cc 100644 --- a/app/locale/vi.coffee +++ b/app/locale/vi.coffee @@ -107,7 +107,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn blog: "Blog" forum: "Diễn đàn" account: "Tài khoản" -# my_account: "My Account" + my_account: "Quản lý tài khoản" profile: "Cá nhân" stats: "Chỉ số" code: "Code" @@ -117,8 +117,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn about: "Chúng tôi" contact: "Liên hệ" twitter_follow: "Theo dõi" - students: "Dành cho học viên" - teachers: "Dành cho giáo viên" + students: "Khu vực học viên" + teachers: "Khu vực giáo viên" careers: "Cơ hội việc làm" facebook: "Facebook" twitter: "Twitter" @@ -127,7 +127,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn learn_to_code: "Học Code!" # toggle_nav: "Toggle navigation" jobs: "Việc làm" - schools: "Dành cho Trường Học" + schools: "Trường Học" educator_wiki: "Wiki cho Giáo Viên" get_involved: "Tham Gia" open_source: "Mã nguồn mở (GitHub)" @@ -155,7 +155,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn play_as: "Chơi là" # Ladder page compete: "Hoàn thành!" # Course details page spectate: "Quan sát" # Ladder page - players: "Những người chơi" # Hover over a level on /play + players: "người chơi" # Hover over a level on /play hours_played: "Thời gian chơi" # Hover over a level on /play items: "Trang bị" # Tooltip on item shop button from /play unlock: "Mua" # For purchasing items and heroes @@ -705,8 +705,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn story_link: "Chúng tôi" press_link: "Liên hệ" mission_title: "Sứ mệnh của chúng tôi: đưa lập trình đến với mọi người trên Trái Đát này." - mission_description_1: "Lập trình thật kì diệu. Bạn có thể sáng tạo ra một thứ gì đó từ trí tưởng tượng. Chúng tôi bắt đầu CodeCombat để cho học viên những trải nghiệm nhiệm màu khi viết code." - mission_description_2: "Thực tế thì, điều này cũng giúp cho bạn học nhanh hơn. Nhanh hơn RẤT NHIỀU. Bạn được thực hành thay vì chỉ đọc lý thuyết. Chúng tôi muốn đưa môi trường thực hành này đến với trường học và đến tay mọi học viên, bởi vì mọi người đều cần có cơ hội biết đến sự nhiệm màu của lập trình." + mission_description_1: "Lập trình thật kì diệu. Bạn có thể tạo ra một thứ gì đó chỉ từ trí tưởng tượng. Chúng tôi bắt đầu CodeCombat để đem tới cho học viên những trải nghiệm nhiệm màu khi viết code thực tế." + mission_description_2: "Trên thực tế, việc này giúp cho bạn học nhanh hơn. Nhanh hơn RẤT NHIỀU. Bạn được thực hành thay vì chỉ đọc lý thuyết. Chúng tôi muốn đưa môi trường thực hành này đến với trường học và đến tay mọi học sinh, bởi vì mọi người đều cần có cơ hội biết đến sự nhiệm màu của lập trình." team_title: "Đội ngũ của CodeCombat" # team_values: "We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team." nick_title: "Đồng Sáng Lập, CEO" # {change} @@ -720,11 +720,11 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn maka_blurb: "Người kể truyện" rob_title: "Kĩ Sư Phần Mềm" rob_blurb: "Code các thứ" - josh_c_title: "Game Designer" - josh_c_blurb: "Thiết kế game" + josh_c_title: "Thiết Kế Game" + josh_c_blurb: "Thiết kế trò chơi" robin_title: "Thiết Kế UX & Nghiên Cứu" # robin_blurb: "Scaffolding" - josh_title: "Game Designer" + josh_title: "Thiết Kế Game" josh_blurb: "Floor Is Lava" phoenix_title: "Kĩ Sư Phần Mềm" nolan_title: "Giám Đốc Khu Vực" @@ -734,13 +734,13 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn jose_title: "Âm Nhạc" jose_blurb: "Taking Off" community_title: "...và cộng đồng mã nguồn mở của chúng tôi" -# community_subtitle: "Over 450 contributors have helped build CodeCombat, with more joining every week!" -# community_description_1: "CodeCombat is a community project, with hundreds of players volunteering to create levels, contribute to our code to add features, fix bugs, playtest, and even translate the game into 50 languages so far. Employees, contributors and the site gain by sharing ideas and pooling effort, as does the open source community in general. The site is built on numerous open source projects, and we are open sourced to give back to the community and provide code-curious players a familiar project to explore and experiment with. Anyone can join the CodeCombat community! Check out our" -# community_description_link: "contribute page" -# community_description_2: "for more info." -# number_contributors: "Over 450 contributors have lent their support and time to this project." + community_subtitle: "Trên 450 người đã tham gia đóng góp cho CodeCombat, và con số này tiếp tục tăng lên hàng tuần!" + community_description_1: "CodeCombat là một dự án cộng đồng, với hàng trăm tình nguyện viên tham gia tạo các màn chơi, viết code để thêm tính năng mới, sửa lỗi, chơi thử, và thậm chí phiên dịch trò chơi sang 50 thứ tiếng khác nhau. Employees, contributors and the site gain by sharing ideas and pooling effort, as does the open source community in general. The site is built on numerous open source projects, and we are open sourced to give back to the community and provide code-curious players a familiar project to explore and experiment with. Bất cứ ai cũng có thể tham gia cộng đồng CodeCombat! Hãy ghé qua" + community_description_link: "trang dành cho người đóng góp" + community_description_2: "để biết thêm chi tiết." + number_contributors: "Hơn 450 người đã bỏ công sức và thời gian để đóng góp cho dự án này." story_title: "Hãy nghe câu chuyện của chúng tôi" - story_subtitle: "Từ năm 2013 cho đến nay, CodeCombat khởi nguồn chỉ là những phác thảo sơ khai đã được hiện thực hóa để trở thành một tựa game đầy lôi cuốn." + story_subtitle: "Kể từ năm 2013 đến nay, CodeCombat khởi nguồn chỉ là những phác thảo sơ khai đã được hiện thực hóa để trở thành một tựa game đầy lôi cuốn." story_statistic_1a: "5,000,000+" story_statistic_1b: "người chơi" story_statistic_1c: "đã bắt đầu đặt chân vào thế giới lập trình cùng với CodeCombat" @@ -748,13 +748,13 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn story_statistic_2b: "200+ quốc gia" story_statistic_3a: "Cùng với nhau, họ đã viết" story_statistic_3b: "hơn 1 tỷ dòng code" - story_statistic_3c: "với rất nhiều ngôn ngữ lập trình khác nhau" -# story_long_way_1: "Though we've come a long way..." -# story_sketch_caption: "Nick's very first sketch depicting a programming game in action." -# story_long_way_2: "we still have much to do before we complete our quest, so..." -# jobs_title: "Come work with us and help write CodeCombat history!" -# jobs_subtitle: "Don't see a good fit but interested in keeping in touch? See our \"Create Your Own\" listing." -# jobs_benefits: "Employee Benefits" + story_statistic_3c: "bằng rất nhiều ngôn ngữ lập trình khác nhau" + story_long_way_1: "Mặc dù chúng tôi đã trải qua rất nhiều..." + story_sketch_caption: "Bản phác thảo đầu tiên của Nick mô tả một tựa game lập trình." + story_long_way_2: "chúng tôi vẫn còn rất nhiều điều phải làm để chinh phục sứ mệnh, vì thế..." + jobs_title: "Hãy tham gia cùng chúng tôi và viết nên lịch sử CodeCombat!" + jobs_subtitle: "Bạn muốn ứng tuyển nhưng không tìm thấy vị trí phù hợp? Hãy tham khảo mục \"Tự Ứng Tuyển\"." + jobs_benefits: "Quyền Lợi Nhân Viên" # jobs_benefit_1: "Competitive salary and options" # jobs_benefit_2: "15 day minimum vacation policy, excluding company holidays" # jobs_benefit_3: "Flex time and flexible work-from-home" @@ -766,23 +766,23 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn # jobs_benefit_10: "Maternity leave: 10 weeks paid, next 6 @ 55% salary" # jobs_benefit_11: "Paternity leave: 10 weeks paid" learn_more: "Tìm hiểu thêm" -# jobs_custom_title: "Create Your Own" -# jobs_custom_description: "Are you passionate about CodeCombat but don't see a job listed that matches your qualifications? Write us and show how you think you can contribute to our team. We'd love to hear from you!" -# jobs_custom_contact_1: "Send us a note at" -# jobs_custom_contact_2: "introducing yourself and we might get in touch in the future!" -# contact_title: "Press & Contact" -# contact_subtitle: "Need more information? Get in touch with us at" -# screenshots_title: "Game Screenshots" -# screenshots_hint: "(click to view full size)" -# downloads_title: "Download Assets & Information" - about_codecombat: "Về CodeCombat" - logo: "Logo" + jobs_custom_title: "Tự Ứng Tuyển" + jobs_custom_description: "Bạn hào hứng với CodeCombat nhưng không tìm thấy vị trí phù hợp? Hãy viết thư cho chúng tối và trình bày khả năng đóng góp của bạn cho đội ngũ của chúng tôi. Chúng tôi rất sẵn lòng nhận thông tin từ bạn!" + jobs_custom_contact_1: "Nhắn lại cho chúng tôi tại" + jobs_custom_contact_2: "và giới thiệu về bản thân bạn để chúng tôi có thể liên hệ lại trong tương lai!" + contact_title: "Báo Chí & Liên Hệ" + contact_subtitle: "Bạn cần thêm thông tin? Hãy liên lạc với chúng tôi tại" + screenshots_title: "Ảnh Chụp Màn Hình Game" + screenshots_hint: "(click để xem cỡ lớn)" + downloads_title: "Download Tài Liệu & Thông Tin" + about_codecombat: "Giới thiệu CodeCombat" + logo: "Ảnh logo" screenshots: "Ảnh chụp màn hình" -# character_art: "Character Art" -# download_all: "Download All" + character_art: "Ảnh nhân vật" + download_all: "Tải Xuống Tất Cả" previous: "Trước" next: "Tiếp" -# location_title: "We're located in downtown SF:" + location_title: "Chúng tôi đóng quân tại trung tâm thành phố SF:" teachers: who_for_title: "CodeCombat dành cho ai?" @@ -855,7 +855,7 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn contact: contact_us: "Liên hệ CodeCombat" - welcome: "Rất vui vì được gặp bạn! Hãy điềm vào form dưới đây để gửi mail cho chúng tôi. " + welcome: "Chào bạn! Hãy điềm vào form dưới đây để gửi mail cho chúng tôi." forum_prefix: "Để tìm hiểu thêm thông tin, hãy thử ghé qua " forum_page: "diễn đàn của chúng tôi" forum_suffix: "." From d0be5c1f223d0bd26417ca042a2f826ceeb9cb2c Mon Sep 17 00:00:00 2001 From: Nick Winter Date: Sun, 8 May 2016 10:05:26 -0700 Subject: [PATCH 12/12] Handle a couple errors I saw in the logs --- .gitignore | 1 + server/models/Patch.coffee | 9 ++++++++- server/queues/scoring/scoringUtils.coffee | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 63213cf41..c4a59d9bf 100644 --- a/.gitignore +++ b/.gitignore @@ -104,3 +104,4 @@ Dockerfile # coffeelint for editors (might be standardized eventually) coffeelint.json +gitSpy/* diff --git a/server/models/Patch.coffee b/server/models/Patch.coffee index 9aaabd981..d23c8dfe1 100644 --- a/server/models/Patch.coffee +++ b/server/models/Patch.coffee @@ -18,7 +18,14 @@ PatchSchema.pre 'save', (next) -> return next(err) collection = target.collection - handler = require('../' + handlers[collection]) + try + handler = require('../' + handlers[collection]) + catch err + console.error 'Couldn\'t find handler for collection:', target.collection, 'from target', target + err = new Error('Server error.') + err.response = {message: '', property: 'target.id'} + err.code = 500 + return next(err) handler.getDocumentForIdOrSlug targetID, (err, document) => if err err = new Error('Server error.') diff --git a/server/queues/scoring/scoringUtils.coffee b/server/queues/scoring/scoringUtils.coffee index 5eb2e52ec..2a8e0cd33 100644 --- a/server/queues/scoring/scoringUtils.coffee +++ b/server/queues/scoring/scoringUtils.coffee @@ -30,7 +30,7 @@ module.exports.sendResponseObject = (res, object) -> module.exports.formatSessionInformation = (session) -> heroID = if session.team is 'ogres' then 'hero-placeholder-1' else 'hero-placeholder' submittedCode = {} - submittedCode[heroID] = plan: LZString.compressToUTF16 session.submittedCode[heroID].plan + submittedCode[heroID] = plan: LZString.compressToUTF16(session.submittedCode[heroID]?.plan ? '') _id: session._id sessionID: session._id