From 861d801d88ab68e489b1423237f6ec8963c4414e Mon Sep 17 00:00:00 2001 From: Karishma Chadha <kchadha@scratch.mit.edu> Date: Thu, 14 Jun 2018 16:58:03 -0400 Subject: [PATCH] Add tests for comment save and load. --- test/fixtures/comments.sb3 | Bin 0 -> 43749 bytes test/integration/comments_sb3.js | 91 +++++++++++++++++++++++++++++++ test/unit/serialization_sb3.js | 46 +++++++++++++++- 3 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 test/fixtures/comments.sb3 create mode 100644 test/integration/comments_sb3.js diff --git a/test/fixtures/comments.sb3 b/test/fixtures/comments.sb3 new file mode 100644 index 0000000000000000000000000000000000000000..ce937c45474cef94891edced09c38bf88852493f GIT binary patch literal 43749 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	@zVtf}~2QQ8}k)EmZ(V2m-t}M$m{V8oN zy~1+OLqzLfYZ<fbl`^QTq`W4xa18T?+C{X$FA6gsMQupe)R0)Q;7HFnYXbwOvk3}p zakq?ILWeMKWR+A~R2iyVxm1`ADLhQdh%Ur6d<*76CZu}Css~$oGOd*iDjl!;ZEoqQ z7F~kPV{6JEs9vgC3NzJJQk&fjr%^YE%|ryBf(=HGrPjte2WxxkTQdx;b>sEzEVDe( z$QbM}6Oa`sr>S-*FUi|W<m^FMj2ceF@z(frv@7yCxi9)4@W<`8poU7ihI-86bT5tM zqUUKu)>GL?bzK>f|CRJ*gHS`wAX4~jyoaFPol-J^m$XM|EpOPWJFD+x$?;r^oJKd$ zgJkEGUDZ2P-xR~84_F7xqB;^4h^_cpY!lj6R1iBK+~hfCEinAiLBn)QZO`t=UeriG zl66&WR_CZ0<v!^b_94ur{t`A~0dWEEg#8uuiI)yd^3JpEGXB-u4ROl=&%MYlv^H~D zc1X2Xtx%s=tds&Si*`}%$g1QuVj~_zuZX(D+l2hy$@Y9xmf^RdzGaSkWOyagnQkU) zqN=Ulq*|v~Bb~x&>2JV8D#>0%eS8Z#PBcFLC3J_+bd)vkHrzFAF^_ju3yly}g~OyT zm85!^>V_gEwQyY+IZUS#L?6PAy+QYhl!-0jNj|-!iMg`jxqgqy=GYaGrF7J039Wpi z+Nm0)EGDlcna(owK`MhBNAwZ2Z6(qwxh*<8@Yhw%I?8y$aLqK)@y!1qagnSiKA_mF z%22mdWh=6!0oDtLQ@O-xybbO{%b{fIY3y|HglCSeyJ>?#XFO_a&X<i1!2e@s%I~Uf zsi&*AD3{4<h;Ps|m_S%@2Cs^BLu09H@#CSd-g@?)rl)$1p@F4>yJC1FGM#=Sou@LY z1L}GzC|@P6$;iQHB8?b<Z@_ZVU!s|b-{F?ND~`!#)R3#+U>f8s7yO%Y0j0E&>a)6; z=BX+!pCbt{3aBDOcwIq-@1X;bsmUSHPyY6<nwF&oi>{$jZ2#pOpLj~%6i-m<)!j51 z>S+qGbTZokP8Uv1!7pRQu&(Il)QQ;e;2rl%%VGni%hSg!<-Drc1pEh!C<;|j(@b4m z>6K3843MRg_##1d#$s#GGNM>a6>8zBYwc*bpq-?1m>#-Hgd@m0x{XY#daiD%zN4HX zd&_m8t5DsDF?a%di_w@()G<*!?DVd*H8%Fv4basxO?A!+))dKLN$E#rhNgw4i@L93 zn&cTX8I&Y1<Nfeb_;Rce>5?prJn-FjSWU(Ct#xM&b{q6b6JFvO*IzMP-A=Piov9ov zy~#F!P01a2A+{Dfgx*7LCC5iU_?4~`=Fa+-T0-B#VsMX(Tt#`ho2-m#o_d^mh0-S- z#qEY#@(3QrE@Dpvhjcx4EOs);yE|F43=_2mt<+S?IaKgDxxglwrW~mLrk=0*SH3~a zG9Rer#Ckk{^}#-%8$~4&w$KUh7MsuTR9jzr$FR-5$v-f8h3X~wr0lPGtEsA?m6_69 zwlDlijwF8JtMKbs4>X!=9c}H`I_{a~>dI*w>2s}G@BNqw_pqPkc9m3fO+8q7UEtX^ zm@m8$#WxEsGY#FCY8aalXyrO(cIm8zJ#?HU;C>wGfK6bs<zdwvO}^%mik7z&_oF9J zA8<ED2!8f4I!jbMeki!wUD;Awf2nYocCaboJQEs&Jb+bY|Ecb3T$+9AdW!aviA)DT zk_lW+gz+A@1|5?;8kX>DZ9fbnw0*RPgw%4u-znLesw!C}RK}!9HAR(K(y?qd{6=OI zBM28h4?m6~sppY8zOVMK#-7?Xh0ApXmh0YTu{d6ytE)JnzODJFUakBs{lUuUMbr*r z4UtJ4#TA%FWQmpy+;o~u9dz>wo!WzDpW72TffZw|@;Pd=W~gSQ3X!)H&>snEk`oD~ zpgYH~s3;m>~d2SVrmd3&q;Q#(bwZR1WzLBhm}1^_riW;p*3lLdiCEH7rV95ZpjD zVitZIeV)vV{NPL4?->SaPZwqxFngNck~mAQ7vEN#RIkzeQ14K7lFj4h&?br|F9^!> z0{;gSiLOR-{qGzp<6do_!r8i87LVs{6vGv4OSw%oR8v;dMU|5E6f+C~Dw3;-62e^& z>o1xTTN7B|Ds4Wf>rgmIyTVk<wKg;hi9nlliE5$djwV-KN%2<FhiwNdP&j#x=uN2b zC&;2iBBb?9vpV%(3+ronL)^YGa5s64swd%;r_@=Rrs~r|`s>P;gp0}2#6-LSUKeYH zj88NSFY`LBKlF79cl@2LJ7a<ThFCd*<*F#AsjZso8kOpW3=wyxmkE9>iD%)5Fg2P= z9*rFJne6S2CAIhdvbwJ3n0rQ~5q5+rChw#!o>nwXrT#1riF+{^C__#Yc8rKvij_f( zF+AACRn1&RSEZ2CRx?GMsn8?jARUtRQ4dJ#m$pN_T(MS?5d2t2axuXYZu~WN8~Hc! zG_=+Ot-JKk3e&Y;40Rnp0=rXguv&UWRXy!lT769e<!I?fb`b1NmM4zkgYc=?d&HjD z6Mp1vWOM3!6n_4DOn1e)jsF~9NX`;ZQI^$IPHUo>p(JGy_5<8YhVc=21iK(8aj#VU zXwuhH@H)e^g9^LodRy9h)v*uwFz$!qz9yP>EUk|Eki3KVHr<-)By5WAcyoLN_F1$n zJ}21M{m}ebH@Wbsww)>0)h3*dwrA$Z^=cx$e0o*QLB&c*E>j;IA$H;?@qh6Ocs&$P z77ds6=2>6rzZXii6O2|z%V2*|J{&L0Rewo4BqYbJ%Kg$gY?@G6XJK2E5)`sF)+6PN zwDN7Uk2apweks%#j@w*<A6r13k}OqqPpgy8YrZPKN)NGe*o@qOx5P)|?QjFCPtA<B z^51YErYG8Yg{O7LEP38uvEsyUZlcnn`I%NDZMJHnOvUwro5*o^y5LaNf{Uvu@GRy( z=<H%TsLlV|PJ75y&RsQ<gJrSJ6g4&LgifDVnPer!)#-XvQ(_?A=l|V?bwuXHrv(SQ zUzktoRE4M(F$JBzkPT_UER~a*gK3S^2B;s%w~5o3FVq#{6uujOfT!VB#Fb#eHcxNs zVEv%NzJ=`!H|(1O_fmhrQR!~gW6gd|QuR`BWWAY2pf|zbzp-;zKkPa}B#(r5d#l)9 z=!X_w{hQD!YzuvJ5;duYlJm;RnkAa{>P%r*>}Q&QNyK8TJ=RH3{Y{87(JZo>Z*0G4 zcv_hESEQ?HY3Idb0lYcaMe$x8)TGo$1nh^f$H8%83l>33Vkgk=NSoBQ=p=t<=YEq| z*Qn5~?O^`xJ|Ag|$=E~k#p=pwb2Pt|(`Cg39X?5R!8c+ju%cKDxtw|v#R6WZ+&o5@ zj}F=_lg4!`bPKsp-<D;mUuj-z?yEY>w~P1DyQnsVSeT6{Cc%6nd%RYtmq#pc+E&<D z`^(VGu_7=ul?Rd%R&_~pL9<8QOfgSVjp3<@gauoVEyE6@MUYX6a^c_J{Whs_nzppI zr=f(M_18%rqBcm1sCH|brZvzUP+pd9W6dB+49DMLKCCZhK^)1d(UU%hV~y#Ru7`Gn zeu%X!|2sB|xWT<uKta8?YKp2B$x3h&;c9X|-VYmwh0w9chvd-cK>tqXV^alP`@*~0 z(&lb%S!5@=nu*C|YOSWbX0xiY92fGOoVqRW@*-9OYl=ovd~8K<vfFBL=ySB`y4|MX zE^Fv35}|YCN7cj9rlvhs4^T9aq%n^vmN<=_!4_jC^nqw};$vu_x1KFcNFvv@os7>M z`GE&1KWHlbr7G0yOiS0aQMx4|CKKSqDXg*3>2x9WFHI8BIle=Vy5<V{Hach=VgKxV zpGc=tVw3W_CYClf?X~Km>_4tPd`=w4c%jopFe|b-6^p6@C0!c9dz%Clt=4*c{rClf z5I0p$(R@vto0g%zC7&&xM}Hyn@TP*7s4mRa0@1$sw_v8{wDq@Phi<U`vZcQ#5m|?| zVW-G<s!ODmPwSvAq0oy9=vq`woWee%C(*X(N>RB)(eP0(XTN8(>h|c0noGDQhMEW| zP$t`|;?mlu_0o)2&XLw<mw-~l5{wnF|Ame~_9a(G^uBz@X!A9_RyWgh%`q)7GF1_X zr9q`A?Os|+Q&}}uc8mQ6_7YPufEA)2(R~P!Y7`ygFXx<OR_o*1eukO0d;IkH6k-M! zlTTFN()7`^R2`J1aTYL*sD{-+_oM#`lmBn3eQb1Kk*kO0iXIcPbTw<Pw`Ob+u4QG4 z1L`ShWZFOKDvCP7rszQ)!4{(H&?zW^hElEKXM-tsZ)+oiTYFnKzzp4+!)|0dT}^gW zwLtSn(?VTbu}qv#uOX8{)|`djKpP4uK91iHDZO)TWsQ||TXcg>pPhWLjmQ8prA}o- zVH%&S>nOWRJxpUzp4fp^!Eyvlx*>FujI83f+iBBjT`^s{(PzKp@0QG@eu#mxqUNtg zp*f@cEIr4*1OE|UF*!C1%fx;o1<AB%*!RsLG1t=jv{{B}w(tD*_%@;uXO;(4S(?S_ znM$qnAnOAciOU#*mBy?nhr*O9RynZFRnO8!$bnn*S1so}A0oA}FLWK5U3pf0Q|(uN zl0D|G!<*y)d=a({n~o{4O(HHaD74P=#9G_9URPFs#|+$+!;g?h@IUD`<x90sy<Bxv zzDGQXo=*M3w_?Yz>sUMNF+wG?BW?KW_IIXH`o{X1Cej%Vj7>oh5_=W9)P+LM>Y&&r z8Nui&7al|9m`d<*+mO8EwCE833#ZQ<)z8*lH2ACy_!Y7FctbW#-cfZ{Jw`oWsgb>A z8^Qa;1p!4DYCu!S{?y}G<6w?EVCiF^bx9p%Ip(etS%BsUnJ%narMaw;s(HCh{Fk0g zRU%NlEUv)^V5bmI;#&BWH)yjNpXfg5x|_y2>jiJ5x`82*MapODJk3<~Lxn+dhhf1F zd>B?AyMnF2%A)_IT1BHi-qF_FPd`=X5xmt2-<P<VSi_m*Wz;n_57qmXKvspz6n0=A zK^c$YkMWBbi~Jj36qLIESZWFAZ`6OZ7(G>@O|ZMnPnlbFRC7#oOm$b@N&J+~qG}Sg z@Kd-Ew_qQU)q?wWdn(#G8u#lm^~=r2U1vjoL_J|G>1*Xjb!$x#VOKPh9A%0FhWv)t zCe9O(XomGkU5*s;db`}zSpQtt#1wNJ2oy<uqBzM1#dI|(WS^6Y+mcG`d{BzKgAc&} zAxaTPu;!xNnB6aORj|}FQ2IH>!S>BQS>lbrGpWL;O4Dpok5-nJk=#dkmuyGez%z)V zL|eQXVv0wCz_Z`l*H}^C*^scj@qCYL7jn2%)>HLRjcfi<HI_dVFQAuFr3JV19q%lp zi<#)wq%s2e0rn}Tqk3pKU_Rk02<3{tgY}Y6ini*Z>Yl2v@&=M&j7iuPRfIPl#0TSZ z(F&>N(Y?Nxj_Kx~`fU9@<1>4Gf1|{Eq9iv`K2(*fex=&0s4gwb=7U#6SDX`YT!`1e z%7~i9rUx3jc3FBEj_Vp4`dTfXw~@VQF?ya<uehjsp~@6COq^{6>j^!pfnUL&;zjWx z2$h&0dg^IoyJ;Mv->m;*KI1AHGN!y#Z}A8D9pw<!N@X9}8!n6fO9G-EejZQYlkuVG zsN{&qYhLNNVw#}uuj?=9_XFS9czL1=TSDemR8n<TR+B##-=_~z1BfE{F#HZ~$7NU| zRUu~d<E|B!`i6eGT87Hjm!3_Lbo42_De=n3D)W>#<)bC<n8Dx=(E=Zdd+=rig}+9E z@uQ&|o&~n|#;9((zM{FL>u#`OYAaPyoFy-=T&rxYm?B**Fs1=H6)%UM!OIaR@ad>6 z`7=`6x5iP-d_=!gH`v(AzRb5I{vOBJWzxQiFNzL|nzDbnOxjM~#rI%I><NAj--)df zjffM$j_%r4#Q0oSpr2(a=~)(Tf@Hu#@nCsdWtwuNe5+(Da|j$Gy5ksb!aESXa1IqE z2ZmdD|Jby~8u~Q-VbeyZH?T38AoIBcvXG*gvby5Dv^Dnvz9w%9zV-*ci=c`5*qzk# zDCMu_Tw$(gc&9sL4BLA7F2;)E8b%}CDqp6MDE>%4a}DUzlm)MeFUKnpl?g8fka6*6 z!By^K)*eQY{;iOX=elE|l;{<>E}kUUE6OQ{$xll@F>AmKau;5PxJm%BDe(fmn#_!J z=QrB(O_TL)^lnon=bk{RWDoK(+gnywQBfI_-;p-r!mtL_nYfKFAf#lRkmJKeYhz#h zA!iTEL_<q`p0T*Syzfe^KE9qgE4{C<D+efh%2|n&X#qY6HO(O8<Y2M}k%>M`NWv1Y z$iB!_!;o({Y3bqa7V@Xcf!5*%a-X8L(k!1PeZ)?OI`SB?g2*O!k>$y=LPC2OZR)@7 z>}7EovJ4+hw;UV%bYd7$m;Ee_%RedJ%MVD0a6{<zl!d5IOd`G!zlr{MQ{+PYQgEdE zm36)GrM|hbfo+X9Gpa{>(H|sF<TaE>6}9E%Br&Ed%%=L0Q%N=T4>f`ugw0ItjQr#q zIr7X`3?+=OEnVD;LrYQ`aFM$#JEPDk3gt(ot+-`$W$>BIBkz*6sI_Dan=8tX{q|3H zy|ffJmNc|6eYNlOIb)~s(TqiMRz6yBLavqm=2p{ffk?=?R|td*6K<?5!X++-T6xX( zZ|3I4mc~~W)*T4$PSv1Zv16q<@&oewvMUk?`wQNoDv}oBKG~f*Mz+Dfi&U{e{=3fi zmhDE7@tt|0vvHtF;tUaC>PWZAlkze0SJI7~pUwq<8c$MG0ri(skh@SeNrv(~23u3} zVPjo$rbFzT7wd&>rpri5%m2!E$s5TG;$zH6xPqEW-XPCW<ESBICI(aA!jHY@?5)ke z484tv^{V@DC{5Iss=#GQld>DK57M{dAIxERoccwsBbQN4K}qT({y_908uHb4R<U>u z7YwD%4V=UL;rJ<B&2*H^lKqgam+hAr*}o744ap=ihulvMqlOZVP?(T~>Udt;zM3#& zThl$;7H=x@5Ge*T#T8@&<hA7WWKYDc*}bp|NT<3|+rUiFnmUQM74?X=_5E@5vMe{A zHNLbk?pC3eskh`owt>_y>molaL!|WtL{@^4RA~W?58yf#Bp7r@ylilSJJUACRK=Jw zm2m9wt%!ZY8q%~RDK*RfljTcQ;sH!YIEnf}wxf*HK58`C1Y4gh9d7C!Y7d%<80Q=P z)>EG2VV&p|wVi7wy(Y_-J(QjlcVth)rr;;}FO>#Xf=v`byb|TaTKO@T*)rdlFibKJ zbmD<(34!}`amib0zHFH6qht&Bg${!iR34QHj)Du|7FiR^Nj?u1@t(GCHor8+Ot<V; zcw5wgu7gL#q^yj*qC7)(Qe29?1{I($wV!$ol0Zk<a3C5GZSAY#JZkxAyluQ-dFfgj z9G-kZ^k&|P7fB7${?gCF8!OQYa7AEeCrU?Eqr7-hq>0xEjB{mL?;4jF8k>6A_wmUn zhdu-k*#?p_Qbt-$a*#bw4+a&f+2kiOkLpidBG#h{;f-EThP{`$v@z4f+4P?L@NkiW zn#E>FSm_w)If+7ik=YGvfhN>xswFrAW>XjNJW*j3`j0qq>v!XR<0wmSS61+OB7?X` zw-$#bx25f+1>#&5&`&{KsyKCsDgara6*&@}nRpyr>bYvmGUpkOniktz@$txeL<&9& zw^f%8l5UacxHZB=)&<3cQ{%yMkV`eg#iCo0YQAjeb4xQ*)Y!pV%v~q=EYTaUM*qY0 zl{A%9mptWOGk0KdKvQv2N3{hPs7*u|86N*9*ulNRw$rrVm}#!(IK-cgzCmPQGJ9EU zlDw7J#GlyRbOzi(b)Ys=1Hd34ql}n6**LP0zw9_?xo3Q8x?w%+E)p7(JWdRu^SPpu z0!eF$RD6_q0egT9N=~h#?o&SUJbp%$jD-VB++%I`O(%>4%|jh-{#Ud-ng;r^NpT0M zPGS*%XV=n&U@diytW4daHc}qqKeT7^e0Ugt#WCN)nzouIT1&eZ2Sv%I_(8agZ6^LI zo*|yhZD-EFwxAs~ih4}Nr~}k+93qC;)4&V&V;gI}W87-~YhTSDh<p^W<W0H@H&k3x zq7x_B3}y*TQOBt*RDH0BDogf9Es43|r1zquzon&Vnd!atjQeHqTcR570S?B(l@tFI z&*C_?J$*yKy_cXOE2;bBM+_4+h$Z}(dz{d>DyEQmzT*lHqH{$`vL$_w{liTY*A%~C zn=oym3Y4aXP`juK)Lh~_vMJF#tl%}y{?_{@zsYK?=>8hG6+elNqyjX;RS;XmZN-OK zIg<-3005HIYw9uS#Ttqx#Ks49yI<J0nK@H+OVB==ZxQ*F+CyxHd)d$2Y4K_CR;~(r zhi(bygHfOi*iI>kGU%MdpD^J&@5;9ow@58TZ7x^e01@{gE;5h)$dY1-1Q%<#M$9re z8Wd0-sxg&Ee#KA`A3G4N@2%$?V|ALn7RJ%os|t5a7GnEB6=pFvT5J_l;&-f*UJs9h zOrQV@sQE+=S|iyn;`PN{Pi<Gs|Cn>E)12k}AeI!3CsBF{`<6Q{)K-V9%ub~DLj`;Z z4ufvgY5c2bReVRVzqhC3y~SwyZkE}fd-S0}$+NfvtY9y3nUcPegW}fQ8RlPl2rMex z_=%#)Q|RgBkw`^<Ew{n;+C0WQ#Hw^P_T#Y<$VhS;eU@z}z9y+7*(A>39x(gpCvYNs z4gRIH_)pOQ!Rt2i{&YkvyUe+kOvf^Bukg#{AlweFGJdX^<c}mIe#b3k!?cP%3_HLL zpa;oePm|9hzkI0stW9n)nLFBwyR!qT_#Grp`spy6EwM<hOHj!Wj$wb%mFcSVZWyAn ziQY)J`1@eU6LR#l4!10~PIor(?Tv7vF2omjliehaNjgYdNs`=ZHl67}m#2?H1kNCT zqZ5<w!c~0RguZ>X0Bbu(L+_Q4ClSMrfB>TrH<2`zPLxy<Utzm3O=u?!!Z0{Sy~iG= zrbI9M$GZ31BbL*aq-}+JT3}(^h)k#abPG-@`6{^~87=ht6tkVa2^snTEDIhGWe}Z^ zm&bS?I`&)R=CM|bV;)~Q(m3@9_X97pohv5UAh{|&%JpQmbYr2mZ?FqoP3B<NlSLwJ ze3M-N*&0|@SSHzrc^ZcHC3;{T!DHqbw^Gtxs+HUmOSzlOY&wlr(=*{gDjP2%;$lSt zL3g43rKPc@ifz1WkH3GcH?o#oL|fRq;=0lX(khZgTqAZejnO>ZC1}cL!i}^{Yzo!n z*E%0r6XwsB>5fa@+%S`Bfd2s`TT*;da#kvm4ix`oQN|6I!qxB`SW8wDw*9Y2J%2;D z%${%QWVvOV<_5u)@iAy^>L^{G`yw7IoVq8j!p&qx(hp%}IteF%1H>TYP<&x<q4$ep zrS+txv<<itzP-^!qJ6|vID!S@+mh`<ubXp6nO5{{0sXJAHe5#@LHi|lhmCw~S94p2 zrMOk&=;;OF70KgRdr+G}xKHAh5>9f8%VKBKh42M*!1wSfRR^ypx)bg1&u|yDD=kTL z(pttnBk((R2RTH3fvZ_FS0FwjZoy4uypRVUfExCPNlHq*5cy&Sfli(g_7av4Ca1Z( zV*vjxJT&DI5IN6`<*teEh?jBi7z?}s-cX&uSin=Kh%EF#f(kd`8#*JF-=^W_TecRS zyTJho4K|zVNgrpcil2*7@iKM`-3e9$!@)}+g~h2PrV*Wup7mF7`~SzaZPqWY%l^r+ zOeCFL2wyORxz6H8+(7m!t$}B$_kw5Y1gcTJ@m!H1_AJocv(K)wTr#z>%yo3-Yea0x z@pulnL%(C?VnqB|;Mo%RUC?7K^@nOf$%#C~7w;a*^`3C#T1K1toAYh$J$$fa;sx4} zDn)N*W88jm6YdE!nLZAjg0rXqdI-t6GUiGih&=Q?b5*xhFeBzx)()<q|9o_-Xby1! zlwrzqAGx_4U`NsK!8Ph5RTXpqJUI@(Bl;5K18+Pw`$o%Sv%*@=xx%+NGAz{x-v$zN zZEm<2ik&RWJcQ$f+W@ErMpG$Vhcr$+3=QLZI0sm#n*XtkvNK*JbR*sXolK5|ubD2~ zeC|GrF{fcM@cMrnY5~QOAJDYa^oYWL(KX9f#B$W!&eqCZCg6`g6ZIniY{~TDyxcQx z2y39V@F92%65uz;r{3UIki7Wh;4tq|$3p7>3uPPS3j4%Sd+H`W9b_{Z+z_E>Ex0Yh zG%kmJ&=;;0c7U6Bg$_wx3CH>G&W5&$mXg+cj=6l(aH(WTY#>#co*`@vT<l|4FlA^f z*apsmw(ux8NQ&^=shQE+{+4dBeUZgsnP(4sP6d0$k0Kso6r9V{72epBJ1b~$e>e-Q z2S319uupj7ROE8JQs|rap5v1BoaLF#=UV5V6aALzfp-7}!md$@H*)>i_4FW^3kHDs zKq7eMvBU<na`Jw-iLZjIj_sPoA?Tybw<kP139)~uA@qE<kVD00_At|zJ|(D5WkC(h zfTf1wEkzw;iNFz0%${p)V$F6WJ%zzO@ejx&Vj=v&Oyru2M{q6Ko%C?{NT{q5{08n* zdVHFYw1<T<`2o%c*80{@wodL}{yx!1scbw*eWm?ugnP*)+09G_y%$b_|G<{8CnzRl zhFYo5k>&oY?v?ia)|Ivu&ewdi@RG!CR8N{=Z<Z1d6c6Rvvp)JMB;i-k8V&<yG6R1p z+7KHSB)!iZ@2!ul)g6>~Xz+XNvM7e11$~%Rg0r~C4P`4bPN)Mm&;+VrF4dj@Law|N z*77x6BW#<jlkKD2ul-}A8&kD~H=d<mut6@u1=;h=RQe!n1v6n)!Iwvf;aKGqjE?g! z5#G4WddQaRyuc3(??~jJW69C*Av1|{a)667ZRmx<J$j&kW5Hh1flU=Hi**ei_cV13 zvDUPnwV(Ec0^MR2MU(Nf)ERms+k>0RE@G5|tJo=Y?HAYqW>O`I(r8}dPPm@W;k<0S zY3*n)?{45f6KRorhE6Bv!R?Hg>m{7)!PsDT$iZU5-wtGvb+C4+KG7%s_wHl%1J>=f zbk}~qL3mxF4*H%*3BH09PEBUpGQ)*U@e^dgJy1|PY82i^^dojKIM$ovyl7it+vHf} zZ5n(OLqwT)2Py_zu_d^->^5c@odu78d7!GmoGw%*aTysaIIX6>UaofbZ`LdJ(e6xt zlSuhwHp-Cg;Q;128)OHvbs06?8pc3VI7;wa>10nVJ2fv_El|-j($T<H+n#dn;g^M0 z#jlIz;(Mw0@D}qg`-I71IJyC3g>yaO6+j4Y42WjOdxc`&LZ{O1wP~CUyxu_N*wfTW zjG&gmHOxJBhj8u}eH_k$I|SXI2??-|n2gGjRRmX&=|&v~ZH%M9y~)2l(lEIfEg<fK zd-QmAI{T2(({|ymwlD{lgBhSW*#_&FIvG6_xb11+oMdn4DC557+Z4`B97Vq4pQ&%~ zGE<#RX9;E=y+Yv2Eci^|^>?xt{!wI({SLnO_H>Hv4eUFeZ@h1U&0~?23yYHv;YFqw z+kqX)%%Q!)`&hazy#S_x{lrAHcv2DB?W^F<aR|=Z`JZP_V0cuVLa|2Vb?}`=+2U+J zW<C8A?u8}jMuKPhEM%~|*xA&d=>EVbPo7h6k2&gie)<PRN+f;ANn#*)L=R+#vp<+) zbSL^8JPupaE@4KbR2O`m=xNLnJnto4-|dYYR#zz>8Xg^gAex2GrcOf}Gl{Lt{>$v9 zy9+1k)7|JAa5ELcZz5TVabf5y?r!2J=1{nl{HkEtSWfB-nnR8N>*+Jh2u93wq;>F? zaN7=;4VMZ`n<-S*Bht@*&CNR+Ir5!$&#b_+NLn%t{fBT<VtOVsiupp9q3^><@Ekk@ zd%y^lNnXI>DNWoJ)OlOG?%R7fYPj=!*Fv)R)6_Vu9r+FT=oL&^CXMa~uY$LNIvRji zIQ0W7jZ{lCj@0t^_Vjg*ca(Fj_ihT*iqc6N!Vo*Dax}+mWDe06VNlS5zd+cdpdJ;& zhoa+?C8LJ}NzZfVY)1vB%v0b~gcb37sdbo{cnuoUnM@;^peMshu#7OnqhJ{@nT%qk zMYZF7LN9owyP>m%vzfbu?|X1u%$}@=%_2qt7raJ~q$#>2`~@z8%U}a|NmU~w*iTW( z#L2MV=W_RUh8=TVM(>dT9sQIzjO@WXQF~w~`U>5Qo&<})zu*qAg7)AB`5do~-b@aQ zUJNYrX1RVkS~yF4F8khv3S-YwKJ)|uKuxHF?V$&(0WCovP!beU7P1TR2dyh=9e0KL z`Ubg=JIgs|x|j1g!8eiliN&JP*im9NwFjIBdN38p!CG(#JOVXAcPd6GFg~>~_8~Zt zU+Nz0%5pdLX8Pxajz)_mO``JnLUKDO3lGB4FjsJa^C1uC!E3-k9>jA62e~lZ#oynv z!<FZfc`ow)z`{r@zCbhy>rL(ihXwbyfbJqp)<SwZU7T(Lqtqhe5_&4xI65G(!;83A zy9(Xo`PxA|vNGN$^#}PEKS_R|>cTcKDoj;rS|YgPDNqWOWL0c?szPi_a5=xqUB(q~ z?eskGv7!9vuS7j0fvqQ-f+BD@YylezJEjM0082s<I7>o&r>Jwhf2g1Dl^b<UbanQ$ z^6d$FBIgsUMGLV3qzIIRpI~j_9ze%oO*$Xm2W_ce_<dw}!V^yTPI<bzYPlA=v-kml zso_rX$*In$0WU#a0K4FGI83Onmhda-cF;ooAl{<llqh;U@J6VtyKAERsQ0_SdiYhW zda5P*0k1~w1}`8^PZ0e6aJnQdqvylwpd`5rv!|4?^Fb9~#QohVbCvQae7%F}=+?wa z(GJW-?4{m;wXlNl!pU@Rx<8#s?-SB*b37<I8Rx>+eS<xRT)SQKJQIC&gJ|?v0!94T z6>>75=~r|^rWwOA83I#Z3;XvSHIg`ic1xa!v<`IfdR={7OWhG~)ZaM#C)POC2le1} zsr%p@989mJPtwQfe0nJT9@Yn4$#K}*)b!Yy;2HkD`-y9}d%Jgx-xMNZy_3I?wfHu2 z71#kw(f4VD3DPAPJ3WbxgA_R(e;|4l{}VdxJK-_72D#gLOZj_*)<o+hXCwRYU*vJ{ z1dgO%(qCw&@I~kW^invMDnpRy$3)l2Q-2$8MR!qmp2y2)2ZuzS$L*=Q*kz)CngP4e zak>=Kg_*>tnO!tZ*8pS58rYdsJ;5E^<v+QB`=(Ht-(M;`HKtGAMYiH+$-!U+B!$~( zM$Uw2tAOWWP)K&g9||~1!s~oGPs|0}zdSpA7lK*Q`H41204q!G2MZuaKc=tK3ECi_ zGKEfuT56!+`kN&$M~Vi@^W{B{-AeB--|S$$X#d0|(JrhG*#T^WWteizH^#*jFqN5) z^c%rHJ|ItFb%c!3JM`Gs$2-PT#arBWJzx$eV+&G~(5HB7Y9qJ@+X-0IV>&T5`X+q` zjsa)La`=8xi}?Fcdw*Ro?b+mM&;RuQ3Q;jOIT>N_HDo1_4H3E@{gzH=PSe-unluV~ zQz!6w$g~6%G5dFVi+Swsr{3}YMxoqjr(_eP9Da~&16IQs^hMf1S7z!mY0MM)Eo=zx z5+BhU$xcx&IDzlxIqf!jbo}dpE6l~arplxDaXZ-y^n=%7Q+khpiIvWyV=x=EAiHBH zQ%z!xLv?-4JQ?oU?x8}jTZR@yHzW>=`eV67E2=Xn12+g6ts!lMP3SP(2TWuP+aVei zFB>lD-|H#i4!PcVXy5C=x=5S&oz!M@6~2nRNSy^q&=p>RXQ75Z3pW5M)gM2OtWLCy zR0y2)?sw01=X=cj?ZCzGuNa%!i!8y9lU^zfu7j_kn(iT}PeXdHkP5F8y-_5!HrgRL znOAsd_h3&wJ}=NYTqgc4IRssUza-~_F3=4rdbYr^vw~vf3R%81*$8`+ipFLLJ^SX_ z>-M{^2{_IPosU*eIz>*b8kwYu!lHDxz?Yr$KA{U**amDRrMOl^CtP8tf48^L{ns7z z<oTKeXGE;=pQ$`lMx@9|pciaG52L>e^G`6VXdKR`4&ZZ;r-|y3jsYeA(tTKX;~##6 zfPSm^r_@%IBuZ0L!5G+w-cD~3&g~Y|F&)mPHWIs0JoP2IHc0qpctY+To({a<e?L?y zmY<x6xUl);1FHQ0*V9sTXSx7}!9i*&Q5h?jni<1G?R|Yb>FzyltEabbSa3~5F6@gf z=vJa6)d4JpJD~wO1(npp)=*F73JzC}luv98Tm2)wHwE-Nc$V-b0@K6VSd$ck&cxS~ zETG|BSc%4k>8MFxgDb%+vOnG#*^<Z<NO{8B-K}%Abnozbe62$R1RR5+?-)kjqN>5G zFpd6Kz_1e?fF^K?Dou<-*CcbJHG^aLN}j0#`uDxv{d8z$^mW1{I)@by2dNJN*K|T{ z#b{2buPWR|9Vc#}M^jT{^FpnBNzWwr8h6yw(1!;1MjpnCiXNjXqJW$W#4rN?p_|YX z1&6g1W`QuV4l60D7%vF@_IW+?+(FkY&mO*c;7s^qtVJpV{TE+OzM>3ZIeZMizyf$1 z)`E4x8gd&x9J!g;6qy{T!WZ|PbFcF3<qQ11!kXBJWPPMF9wbf+%HJPug%{vqfdOM7 zPvw)tgie1?=p&B;75PGU*tO2R-}}V(JJ=)oFcB2_v4-Sh>Mz&;n+fiK68>{A1FocI z5@xhpszyu{n(N!`so~z@KI47o!$Ym3cZF@S7TZreq5|M2j6t8kmyLqU3WF`wGNP<7 z!;Y9OB=MK`K6k%ym-R02fnbx!oA{&D2{eTlkm;ZsTrKoD4sGxutO>(Z2Kfc+AX*y# z7_R3Z>pkS&=3eK?^63LGvNV1;wG16d?4wqJ-2b8Y9?liIJsmCqB5E0a2jLTMA}az_ z`LKJhyQZfuf6{*|R5f-fSq$Be(^L+)3PW%{ok7>5t-^d&g!ib;#2R!)>QOWlOz{sr zuiUFWIed122-k}3Na~Rl_-k^3paORIN8slhp}I8?gLf&7ePvJ`Ft_c&4o-1*cZY+! z6)5gd`~by^ySux)yA^kb;;zNr-J!hRxj*iE-@G3;narM@nXK76zgE`lB!aUjo>}xb zpLpmmscyQS)NVp<Z_l|vJE<qi2n5e-Twd5P3yzJjRZ-z$#}nRw+CU{KuE8@hE_4bC zekhJ-1pSuKL%C<GAium<CbTcj8C8f<h`39ouyag5O7keZ4TZ0x2%~Yt=_%LX+UFAt z4u9V$ZBloS^%?AlLh|PpdXHAy3l$n2vC(EjBw)fe`y&_vR{@{QV{)jo>wQAqz|HSD z@SEP<I(^3RS#AQ_1Q*hJ1+x8oPVPFg<3Er;5SlR@<a6vT(N%<3L6(S@w?m!dU90b3 z3`VvaM^~P&7A&m!A^hQyN=D{%JkU0jSNxiGFs?}+f?7ikORz`uLls_*Zbh%`|3+Qq zZfDuow+gwVA@8iyl3GVJ-Gg^%PDUU@E=2j%qj{oI6c2`{LJyyp@4P!>JGHwV{1c3% zoz!lF>i7|V!yPl9CnHS2LZBg9le2mNnsi6mLRC!l@M>_=hV7mXJ!q~`J}XgiGP4I~ z#X4~pai{V#+2qn*<+bbuT*$2O$`AIrtZU0yr=*6VbzX?wuRMKk6F&~bh6+tE7$la1 zH&!uN1As*wFpwZn@3=jxz0$#N+ZD6fd^gc&jl7;(!OsED=&dt5)Kg3@Y9Iy8jjbBK zjj>t%XM<-t=$_CG?jC&;1WiC8i$i@Q&AM!`;hM2E_T~Nn*f79hjI7!+`$~zp&g$_< za*6U5ny%1-^XG@KN-#()Za>08zs%V%;fgAEg#Y=npZbkPhnh~*3eBXC$pa@ceBIu~ zg|#qGI$$JVT02thTSC1w88hn&$Zz@D<e5OoT!gp{-;Q=}8<{ple{i^!%~;La(3Q=v z1|=h5h*e&V8HL>KI`)c5I9c=h%q#fsQ~qha)$fC2)m`-Cp}`e@<MLKv9Mh%Q+CF`i za04_Zc~WImzU}4b(>tu^`p(%<*m?4^T_y?Xx^MfK&ssbWF}efUW}a+{+utgH${62s z-U(HMT!EX<*mud#74Mpxd$|OB=o{ITv+)un_Q68KLPtVBY1$soab6L%WS06W!iI<H zM>`Ffgm)SGV|Nv=Wqa7ukVwKbu_lL!6PUKi&4^16_`-GVCsz~irLQAeBf4d5Bb<?3 z;r={iZ{yrxJU4gO{+-R=6U)^h<8>pkM2KSVS%K1HvgKWm{vA9-hvTAkFR0JK&ZxEK zn_N3!@EC*sx<E4{95tA}VB&;OkI7h2`Ri>}*jn9%{TIGZX#_?~oJ2r4Gkl15^7G{8 z)aJ$JxR<Ih(nnO3?6D+SR3Y;KNZ!Vl0~A_0$u934rux-7%tGt^>$8){$h;TDm3-~= zdY?H;6v~@1UO@lepw}to`_O`EOC4AXzA&`5oLB;lGg(Rc2)6d+(ZhY(Qt@l;Nao%b z=uD|uQ{^HS{p>Z^9`=Jad_6MVph;9)71f8E(t_-phn))lWiPfXmuU}0*xChG`Z%N( zER|}K578(bhrjO4Xs%HVV~eKIPCt1<tb^6ReKlzkoBRlTCf|f5?kdF)))TqXa+16y zav&7`R=f=xVjg|2{@593eKe51;6o@1q|T5q_IDJjeadSoX+gHTX$yR!_`rB60E?k? zKsh<lxUfami>F06sjg_Qkkh{MxO2DD-cR|)<z6t|Cq3HklRW1JxgglK0oMYLk+A2@ zS7QFSHe(RvjnArzGQYs`Q{N7~N&W?9zNo%Sic+Oq>u)_6GWoaBDI+jQZutK+<8BFL zm<kS>sK-Kq4i=+UDOwtN4fz7=^RjfOVaKsKsEN=B7aKd2pe*r~vYgdB#rrq%Hp;J$ zv=~T~z2NsI7$X>zzetmCSvS$B)CHVd8#G@m2l)4DRjy`vlmRhpDwl9iiPe3;9|RLH z*}u6~Hq<KJVn;)^v3=1Dc=d-#_BvkVLNz2=Xp+JRw<MbKJnL&)J^#pY=W2g7@B5}k zP=Nl**CvdO=!(F6AA4_e&~aB(>zzl+$-qtVL#lfh+mb~v%I0^qkyQiVD@+zbO}zT` zR)JtR^Q_vjG3kMc_r}YC7ijBmZ-D&`Pdr~BH$|vu*2Vxh!m-Wf9Jd5l5F&{p*Tf;7 zeJ55A;o=MCP3*PJUZB_Fr&UM$Km$+nlXdp$mH0v!zAk2+L>D@NXub3|TTXpXvZXvU zPb&KGh_29;hqXFru3>CM{hJ7^jxbtF>%q;!+l#5GrI+lHqo<<{?`E%qY}YBzsVrXU z&*<iQly>zQ#N$;IE2%n#di)_^s57z#;=2@c`J1V(+rbw{hgCXye5o>V+REd~85zOY znns};F<Qx~;Vl@SFYD^olJ&?&Uqv+uU|why^ckZbVEJ5Eg!q=zDsqvELsNn(@R%m% zTuPSJ+z{hA$(6|D>6<~;QmioT!TD}I?7DnG&F;Z2^qKPO1ac1wuLnww-q`1T1-}++ z$!nB#62i8t>Rjtk5CfzkVN9VE)aH!73EuW+5k6*N<6Yg0ziN5=6D#u9e^X%Vmh~zo zBv%xDimD4X!U;(CKPrOXtXN3o&QILz$?B@={2et0T=qQuWChN6i45I6?ZO}6u(R5e zKJz^D(fa#jj|x7NGs^y!xgF=1tjfm|^~B?UfPV#h6IYKM^7DUi{!CYiPeM|IBS!hl zuLZ~d!*|8|yLJM*vh-(2qU{FP7iF<e*4=0ZDd5I<0_i+(=y6Qxk8TISOu)Cm4k*PY zl>IRLV#0(Fc$>EE>P7>|bv}HBS^{1v{Ak0IN88$8Gip=HiV1qrFwM}1(AbtXUo&2t z=2ZD8^bQcaGEkLOCz9`Ler{?RvKA(-{`S}*JkT9Hkfrf@6HnD-ve#Nypqxl@c7UPN z*!C&OwEUa^rhgXiouIEpy0AVq(3bZ2Djbu4QRh;DY%gW37I{n7>*rXM9iuK!d5+4x z-OXBC(zrtxl)#yxP~*0$hdhfRh|!M}rUTo<<x+iXoX$hPx6kJjf6?=yXhuU-bg36i zAiHDzRw{l1v$oPXXvzQWqfHFf-OmI4iVWOjw1#RUoF4gBR+z*;CvgLDde-7NzOK8f zcZbL^S7jW-TFGJRyH9<Cc~d1In;mNMTTDfUI^I5Pi((9}Em%!qVjs3MVTvKeBqxvJ z2Vu3y{4vb0D8Zqw{?M@L12<>P9N@#8V1gL-4#ue|*q@NPOFF3572}*l+vFF!x8*sA zm>~6-Ck6a;V^;WNoRyF-H25*9o*<`_K*Xc$U5b<-Csz#}4s!CYB<_$R!AFjYk!sJM zC)Zd4$4N`N7rbJc$64D{aEoM$H~b{8$s4AHDi#te*qQ}v5Dwnjn8dM-S$r#R8y(hH zPhv^Yj43P6+qb-ctu9}}w9i~LNM-?3hPYALWeNre7PUm>v3>O|7*Sp}b*XU$O3Gaw zNL!k-$9Ixu{&pwy2US=li97KAmX!1A6SS=c@y}roA9*-_)O6?Mn72*U`XKK3Cl%@q zteRG&lp!xQCp4SV=@)jVR?0dmIrr4w#lcMc9flw}`RNg$EJ35Sw;|)Beq9XBC1NQ? z!zEXlPefWhit|jtrS3!hp1I{Xvd*O?&{di`<BP<b?=y_~tLUOV^##2QS<Xa#y;9jG zV+rdyBd)JCa!m#WNBWw{7UQkPeeJk{CKw^oSUlk-=un&HPlteLkprWP%#Y*x0my-- z!!=n4Bm+&&ap%EJfyoV<q0I2%%o)|PLSr$<`^@_SDmVOygff*V+%@&G$z>RF$cH8} zQw(lW9b!Z*_s+M#gPDf7x1Sc$%CR%df|((!Df~zq39l6&qt_xEhOyf%ee?b<z1pew zgJ@$e$`T=&=8_o$(eFxaGphw``BK}V7H8=kfd&|f$<_j2GqK9>t1uX`tzn6_c-fJy zPPu<DRGiq=`x-hQV|nY+(m8Q0X!qEunO<ZE`XFsT?i#HPi0EI-+7pvbTbBNYE|ZRx zn+$IH>pI2L97nw18uS_h42cOrco=BRSeyrU7Tim;1%_HILXG4}k>DPebA@gmH=;As zgaZ{HUDgn_C|<QR@6TtBUY$Nt;%&K`QazW^lIbf>wB}N*6dT2^ckFK!tr_HrDK9W+ zr|+Rd>uK)uW*6%o%B8S$=BmI4{Ab?ZpD{ctP1ylnZi@VclObbmcs12a%Ce(4Lu+-r znyrZE(TqcXMBbEVqd;%<O-nH5VI&My@#|&$H~-3AFdBt)$X;+yj|5L)4uZW@PDv4H zmou*#TP`z;C!AjSqd`RT#?{%Hw!8}xe`usDaTYXquxf|2TcKPQYAkc+zNXXnV8z>S zO*^=*KN%gQ`Z2yXwGCzUVQa%?d+U2I7zj`a#!b^6EGD!PDGVpxSiI|hQzN0<8VwzC zS{SN5rGK=4Ea#1%Dtx(bN*`sfdQ}Koj-WvV7t!*nlvh6X;gGs=Qo`P_juK`j``>c@ z<kLBEb(LQC*0$nE;Vwx0(b_g8Z(h?h@?-BajD2wE7L5whl{!}>RX}PT?qf~TIr27A zPgfws<pt_b{iE;-{@P*~$1t8<w6jy)OGb8`r<?SP?oQ8~aPq;aXqK2lqH2+#cDQS~ z(WwjGSCe3Cq1p8-q$YGf*Vvn3TyeQHoXOoKNB%zk-X5G<xx!=|dg_<B$x5s2-_mtc z%$4mbq|1pqh$){Py2C!kOQnTT22st8?RdXEw1=|2FA;s&WYJ0FtddMDzd1y4&dc`G zS4*tz;yy$RXz8#_9Mb7q(c~_I9HW+obEW7H%%aqPPyNLA_+t<&g#C*W_PrAtMCSU{ z@q#p*a`8qToK8sh4UPHE_V4tis3+DsvgKAD6KO3@1N;)>Ta)8d=F|w{+hEQu(}8ML zoW!V<^H=_?(uz}X`e;vBcCeI1WA0(|FS|7G1QaS6zUM%R*7x)E?UQ(~G{2&X+bvn# z#~Wq#z@qqsBC7pqF)F#K`1VL4kCVzx%IhZU&3xpE%tI6IS$t!2o?o4IZtgo7D_TM* zo~wknIeH<RJ?-57oxLoJW2Xph2@6VEeX3+){Mw&vjz54*U}DzNdW*AYtUboN0{0A5 zbVu;l>ZnL@;=hrNWLEa-*7V_Hv@aPvqHd$GZ;OA%T&y$*A4^@GI#xry?YzxMTs7R8 zW-ZCS@ljP;^6JGCQtgdCnF>9U$s#7<g1Z-F|3u5)A?pj5@+{!+2}-A?JFoCJuOm4A zwQqU*2*xlLZmYdb&hTT1^Px=c?8oTaGbk6Pn?HElrQM<VTiVi>ZlZ1$p}j<CE5vG5 zM^+X2klM9)F=Y}28UK|c$<p$>7r@gE!#3KWTy7CcHb+1jeGqtT?)xkAN3Nmgq@8@A zEvsUN^D5;M{8IQ1bFj06MpPmL16xIys=ce1K2hl*Er!un23>F@u%ge-9p09OKUa{e zaKged#C`F6nDMdt`xw);!riJEa(O_fLV4lv?p!OkP)UmFr$z~V<o*wIbUeNZ(5te3 z&aV-Vsj&u@Rk{?zi(h;zg4tVtv<$?z5EuqSRT>?>pX48wc`mA3nm@=jb*QKt%{ktb zTq9v!>uvo!;zesVV*<OTTQfD&uPI(=#vE2Z+Fh$PD&sOWCk5Q9twPInD<vdNll54q za_ozhS3AiFFc0Prdu6nYYg-C8ls(MQ@7=qag2pcnlW$sH4q79q3*5ybcytj`HAn3Z z?2G;T52llT-2&R;|9n4X<i?=y?anxwa!9y{e{_1Q%HExDYUbVe<J3~EIX!*%xxcJL zbra(zSwU;%z|dCmM}(PdE44%>Q$iUDXG|RFbLX4$2=9yEbaUkS&ncMF8vZS!ZT0J? zx8Qfi4AOgSs`97>1=(ai*=Q=wbLwu?5QLLs0?r77htGrDdkxRbE_u5^*A@Ot$=9t{ z{tsp^#4qBdN)>VR3y_0K^{G6PgtXjfg@dYMF{ms_Sj+{p#}F)$Q`blD_`;K^H$OX} zOaJPBvIsA?ypMG6Wd23&;psV%z6tRH)DC{Ry?eL&3$LQAu7*8Sa7s&XA^wDh-VV=# zid~Zjw&0<U{kyyTqO=+P_Lo9926RB+F7$~%DISU@P8Dn^mWGPS2iFzM+plAU-nocX z0Pw|+7RBw_Uw1=Kb%U;js@i*z*B>;vq2$CPlI9*0lT(7!3G$KfoZ-R!iTaAfC4#I> zi9kBMd{^HId(}^KZR!(b7kq~NiOvMvv@kq_6POi)m~iFA53me`X=9zP?DP}fqj`qt zj%C@&e6j7$_#9Kb-91*l=Q<6b&Ts3@fLKOpghv+NP~w!x8;HFly>&yxEvLx{c=g+0 zqYXo?fNaeu6MSa?CPPG17y7f#cUu6wDEu9E?0v_tZfSb)ArO{AUl^{vseLExe&XC$ z1M!ojxM|9eEkoK1Qw&Woqtp?lqC`ocgwU1h?YW?99LhKg@@7ry9^tkIe2+MKQ#tx_ zkZ@!B7&H4mhx1~}aI)rS4QC2TEKy{zHV!~;)LNZ{msalBv~iP9cbT22_VvA4L1y_k zw8)cEzb&X&{t{URWk4DL+TLL-8k1{xe*wBuK7nXSP&z`}LSOPc^7LFqsPlR46{Ioz z>OrS|r~MOX4ZXJl-H1FK&nRw}0c|-)EiYERDUfmm0pvu6LH>EhI15-@qBn+TBYDh6 z*uL<DpkDK%XK?H7&INbR07*b;Zf`BKGzkg}+6*1wiM7c85LY3H@S0$ckG1OvSo-Jf zdKHGy+AZr-7@LfCb_Y|a6Okkb^3`DE6GBN23K{_b0Kft6vZmzS80;&$|9RKY008Ab z3*z84<^r=Dv2${8nQ?>Jz$Waxyc{52He*h94mM71W_w%nGo)+Bql1K9V?)F3hkJYY zf7S~yh(~BG67S=P3<CtF@G0Vq#6{@Z)#|YSJGKzAS-fQl-|@)R&52!&SK{IK)3CE% z%lO5KLc$SQ7($Z+&A3qmWTH%Y!v<wi0%fACdDVeg3ID$DW(;M)$u@bO80Kwx?we#b z^e@ug#aBkp%GFTG(MlSNQ!7tRO3ckoP$^H<Q`1&Ts7+1JOv|Z&Wt@wW*Skx&Q&ox7 zs9WrTvNXMRdT`V}N}7QN{J;6vbYEM{zykmqc>kS0Cnqnf89T^`oyVBNgc}6n;N&sm z;9zCv1sQP|8}sloJGz)xYp**Hj9__9Yv$!u2r#8MGCQhDXwu2Q4|)YggrJ2}r5VRZ z(H@=6dt(=1@5`E@uYv9BR<Z?`FNO9%ExB8@-S5pk?SkKZTRS>@yd4~TeT6sIpHB`y z!b_4A>_<G>4<1rK4i-m>35uV5(0gh$b6r6#skt=@%j{zw&M#*t9-co#i4>MkUdKHi z-gd4&4r*OV6qdh_9G1*^xZbE)cfHniczy1mOqX&V&Us!ifzBq0G7T;-KVQQ=qrY`> z|0r*=-rdl2m)AF{4{uH?PFYNx)RgnQtYP+9z2ffCvli~|dAYA;(DG{PFra#0zmt{d z|5$EW##!Gud3`l=?dW*v)cw3KT|Axi^trX;@$k8MyFARUE{$yU^8Wc`^e{dC@z?3& z^r*$|*Sk$udsoNHJsLrm?9H@CFzjbOpT}(eBb)Y??e(`?>gXJBqO@E$n%CnuqRO-3 z;jHuN+QGj8u|cuKpV<$}as-z6k&pQ?+T%)26DhC+a*O#qKC?_Yc5O&}<W5@4C4u|O zvczi^tH6^&r>$4ocW@)~O4Sqg8GBe1eCoC2eL0#gwUnX9T+~Q~T9w?RsD1fk^xk|6 zpAK5*y0c7cXlfIE?ruYSZhFjGy*P1Zljuz;cSz|1A0f=y)>-0#{fMxtQ+)?k`<CSf zc~X~iXG>ULklNk0(-%?2CQ{%gq5g~!?h0C|u~1&C+RuC}0)*WeY(1QyEM?iHZG?CK zY&tPGbF`_>0|s^^ztENXjGb;~=`&q{MKoYwGM3^&`_9{#Soipfk=O6mU$bR@P6~s? zw+MaUW-=2)EkBI>*^QT^lKC3hm-L!{$Yh2{<ONA>$OPl`i-cdsH)x>B2fMOYXtu5= z5jRD=dz$}6hB((^;i(6E6GSk}20Mr0tk5#LCnX@%J`}-ypY5Ls@9SF9X3B8x?w0JP z*QHX&%}5|kI&|MD4pU)&r<cTiJFJpS`fKey{`!P`B|*8$CZE5^A&!KvQxI(dOs!86 z;%qMZBCY(UV5INezBVZ$^37-I{-OWSFCuIo0;f)Fg+E~791Ll_hG*m`5z*8h&mM79 z2%tcw%g{0#*LHKp-YQmblkzek=Tof2<f5<)i=^a<%#hT$ru+DT@s67LxjmF#17V`< z#dJ3Wb(b^?8#F6Y*ZW8MWu-y>wO5hbTBV>4)v+BeUI{+>SQ~nEBP@M&<x`AS+6P3` z4e0kPPza+Hu}?BFRu02?*Q5Fplr62UI5REAC>G-n4sN>}?h*|O+6u9`X<vF-RmP(I z95#KLDlnYwJ-1I0QP;*uewf4PD*Jd2Hpe5#Q=l)G51km@&Wv9PDZKU`DCG@5<#&IQ zC;kZ3<E<PB0iI)RDA=O?z|tUSH;4SuYeOwl_=*$%-SfF3xtlxy&*{F7`~+gTuSwSU z{4mT)NJ6@A%`Kxdkwa9!0~+~pyCWnQ(X&;kCMC4fSx7y@a2{VESv}rThA=J9YynXn z{|v?2p9CPYt!nfra({fK$5??W5t;&w^mhw>p|Hk0i)8vE-%52XfyzJaRS-9QxMe$Q z+Qps{#!w8k53IhBs3dmjSKbj~<X(80O)X{Vmb8`~+ZR?M7g&lS)r3Rel`1y=+J?~% z-7^Ev$M^Y&B<i=Twg9~loGERp1j87tqV=U1gR@lXY{{L-UlM-^5}skDPKQM18IhTl z1O~2mq^xUY48}qH@Jvt!#bIEk%SR;6(z<n5zS6ZDo9_XsI#J{htCnRTerIG0+rno_ z@nYxbvoy7lqBPhBNjbWrme?MG3$S9@sHLjpKs`ob5vv5}L+4#Zqyok?`s6exRR#M+ z;@qkqZvcJ#!;q~R=tk+~%;E2-7jzFDJ0lU&H{iZ2c4J>wpC~Jb7I7HY)>RSAz%d@X zp%Q4qiK$3$6woJ+RxHu*EBB&HY8H$+d=IHi?V|^nz=*;P?FQk-JVy}3hkJun;F!eV z2K42cLizK>ZaDBEF(8T{3F;@8k0LG|rr=V}^aI;hM&K#O2vMUm8nPW?E@7jko<x!P zTeRI+B#eUQzFI=aK?npDV?wISpaTpW70f&XRe&q`_}6}Two3GloTS!I*ZOSdc~3*L zb|uhrCENxqeIrI;_SBR8S3==FthqnMc7apV`|Jj}CR&!LFX>FJBZ!2z4GqH6vA4Hb z;f2^!+)^b>Z+SWjQ031#519X6wUXGPDG-Yi(KtoTl`l}=kIM>5tB9*fZZ~{9D8D<3 zD<m$!Ocn@t$$gx4@nbBDq0XvFXd&CfhepR$31L3~aRjDs(L>Wn$A4W^Q;`+v(B5aS z68*uvNJ<@)!PP#hjg)Siw?C6U*7lRaG}|l7cp@#?l-6)<_0@}b3}<$Mvc_`9c?wo1 zNG~W;qr8$|2m=wU4A<CCdhL^ED^J`;RBg~d2polS<Y!6_4Ck$D2KqJ<I!vU7W$O4* zyDYm!@CkV4)Ebzw`+JDl@KPzn8V>|ZZRd<;Z^tC)sHn2Zzzh;_ArI2$e&aUik-<#X zV4W3sOw;Oy%n90~Qb{pkY-r{r+f~pA3Mj~q8>Nn0z14p77Tn=oY3b=)vtg-GT>d$B zZ~xLV-mx+H7v0zG@IeH6(A4i@mke>biHAjLj0>HTa@<SsR}9NXy|cl-lZ{(z%fqQ_ zRj_05Ui&WJ3<r+hh)!6-t4Vr%&p;rog;zpbuWUXD0h=W_3@YWempqP{T|#htN2Xjm z_->$Kw_?MXb4tRN$zQF{D1~<z1fMOh>`oeLN|s`>JNpBF_|QDqT)8h45Z*sK0aQ{6 zjCPdk8G(!ykW<3Oj_{TXPnG$@gc6LZ+1%T>doJmoAoi>TR!}8f{yFfk>g+)<z5DB* z`4GFOmR}h>^T@+@Q*{E2J9^~<@!y3NEIvrkPq)obL%5Is5aWR{++{eGL`t7Cs58>2 zQZNv171%TYr*6!6R7za9b+?RCs*ypKndoD8h(~@CK&HIdm5!YJAOeK23}~Iz@?!#U z6l&LDiV#g<Z^Gc16T-Z>6qSl){3x9{dv$5isj|vCV>u#{km705BHy^B;2qMHAbV<P z?eH~W6N+@n$8#&i=f+k+Vrpyw2X%8mUlF?<W#>7@r)fh3w~P4+^oSndU9FT8G}2~P zAhOK!mVbCxdSoa18XXH))-(7=s*d7SF1AgP^}cr+Qwo<bSmA3{QGe0SXz#&1ltI<n zXN;hmt)CLdt_#l|L<$cZ=tf|D?>xM<ElD~DQyRbYYX^7<+VJ6coGDmAp7=EVsA8rP zs+82cfR~sYMd0T!h$8rj=SHyM{N~2?-F@KG>TcfmKNuk$oR@*=KSrp8``?Vvl#R=T zi;Kh9gw4d1mB*Cbl=t5Z*w~2I)Qro-l+F0R8R2)w^-(mh=~}~Cb$7`8?CkUp`>INZ zq(6z5pdu%MVU2W}a*3gatL0Kp((yd#j;t(G0zHv!W0&^QQXC)0=V#l8lc$fx9jA}K zmzReRzkh#xe7M#AdrYe%F-wK7kLc_qWjXgTRg)yeHfi(i>$^+WYioy~p1whL4LIrH z^tNUG;c*v*Bdcb9vh?BfZs6$Sz|Qqbak)A+<&Vzr7W3CJj|U&um&*^L?%Zqs>8^Gx zn_}6K{nU=P9s?6*qF?4Xl_gBtnsf|!iRuzrZq;rq;0No+#kr!6%1DE!j>%e_^)FYp zwV#f`akVZ_l|jNAn&jwbzTT~EE0+q(pq7q-%f~(2k9h-)O3;<tzIoOC`|jQ4qk)a! z_rZhA$d0E<UxUl1(lbrr9`Cc;*oRYlSI-X!jIJ?y;iLP5{zEbf_QMAR$BzVOi6rsy z!qSF~{d)CPIP4@)f)q|4RcbRD0fUd~@Z3jjt;A=Dcz^y#&jk=sqmNB@^*Bt=x*<ya zE^auZBvHSG4|^hQSj}`sITA&P+$u1d>PQq&^1@999I5Si6dhJ^rZurcmX>oqZZ$?k zBNciei>10epJTmLIoyM~v5qQ3Gy}S|UQ*>AM8pnL7DZUyB@yO+)C*}(dA!TxNtTEN z=3`dX+SO~Jjm&oLr8y4QAB7asV=%Q3g)Vg7uxV14X0kq&xSJGGAA~QpCpiy&kAR`t zGKA+_0Q{B`J!JiE!d}b}$hukDH4=z8tk3hf)QlAKg?Y%n3v9e8XU@KHjZ}31GBC|2 zaw2}i1|jm>&0$Y_04G-EI_(#T#=z~}9PSJNX+<aVebELVJ&u#+)-t`!_+t1vR(vzT zsk73oMErYzdWc<KV<>k7XhxMFeU=p?1t%;&02V;H*sFdL5Z(YcJX9z#$kD39TIr{s zt?lRuiG7CPj4_JSyO)LsvxA&A?lh{0;P5^2X94lH3=6^b@yEoCI_X8&m>17j-_7c> z^=CRIl!zK_&}63I{z^O*dOhOqMcGn_sh}=RfK3=4t)Z6aIFe5Md5UaQyhzbk21&po zxDZ@0*Eu}`i`v6m!})tKTs--G{|BQ!^`a{9&eJBYG{Z?qNNFYuAIL^m2FWfA2BWGM zyo)2SpO6|}TYL3lqGm-v#f4lWx(6hdMm7UrKq8#{vRpZ#>U;ctTH4=Z%O<EgJEMYh zLlB;o5O3EYnf9w$Tgp+X`*2U=a3ocgAxTZA!&JFUDSim^@fs3oN5AUQCpS`jL(h5~ zJ7q{_WRfg^ZXn4ef|Cvv(x!^)QUKp^M#q**K={Egxi1%)F-i<7#p!XTTm<oOA;iKK zOK7WX1E4J3lpHn?WC@d@Z|lib3uE%f4)>0xg+;=WRU#zF7yi7K<b!cn$Q7D$Xhq!f z4mGePqGJj+Zbq3gmDFAG(332h8rtCBup_7=vOI<!M}|aWQAuTs8B3sU3eQPx!h(X0 ztRvImWto&}glFRNi1gegJ=6k7@@RN<s^iO*E0>}d8RAzWsP&<s7**4rlFF01k?_0o zs){X>#9-8~!A^y%Zi+t^%UW0h0z%~T;p8n7;HNpnJ+z$+sn_n5k4MZ|*45dEX#UYw z`5i&(u<{EbrTY_cl}4GcZ4Bg@Jm6IY>F9z&IQy%Sv4^UiGOG;T@iu1ZaTQO%D$x)+ zHw9AK3^}DLy~W)%9G*Qb(cDVT8cV`p@}Qr{?N_%7i#XIy(V2d(WF~6bdwx9(yj2k! z<(Szt3s5I>gqjatyu*FRLSdpuc$$p^)u?oF*nl1dLu1Bh!B_*&!h~_*VDAqg)sJGc zy*ng)ZFBC<OAa$JtmgWGbul^-E6jiQBA5iA^bj+IvD(F`qUIR|S{hdT62SYhs^q0; zCx&!Ubd!qHx&oyIHJk+#3*8Fq=T*qi%LNeqB#sZOVd_{=2mtJBZl17JH_@z7gt?Iw zRn8@3xvqFtEH^!}B1-{kt<lwI!p%Gw?}$Z5X`A@s$%A*e6q29+su=v~LorhtV0EkM zVrU};`~ByO;ZnbX(Un+@26aX`2*dML8u{siY^WY_+Lj6vkF2&R=$f?UwZtWqP3I-j zt*T}>R1-O*%xrq`>o0JTBBbU`kI$99ydq{TmRzF<)>jp?V(-j!vfAXIYnM+jie zs!r$}OLUp529sBbNY@D}3rnSa)b7fFKm@tdsxQ$C2Hy=Xd^(3ctWykO2S55?WsDOz zC#-7omB4)yg|1C?DxJBLq$5k)7Vqe2+?e^PqO-)60zt>KX7ogi)dn)+25@MS*aYRa zyxo$UZ7*K$=w#?J*CPIEr=ncV20Gyg`-Vux!_8LOc@pmCs+UR8k05UQUpJAa%D6E8 z%!$QeHs3_u<;Z6gf(!ihr^xZ*89vAs{HREO?R*(Z-92LK{-<czdj525k9oq6P4(^R zT;I54x#?SGjI|MAx~CRyy8E)jm5^l9qO5Ji{N^Qq7_0c<<CeScRGn7;kC|}{m&Ka3 zX8pty>_cQWL5fyL$$blV$GNw2>VpM)h3LtEca29&Rmwo=3YpnJGYB{%$6!HrezDFM zR&B4^{v|O^-4Yf_M1<@J6sf>*qJ-NTVmrhFF3R(oR>#OEWNaW*VlI}gdzPnTw=zT* z)vK0x)SXPvB6Lm_<E$p=oL)vm26x>>&YEqMLCz3=w#t>!ucn3SvQxK=VdUpPe}=oA zajqTuQ{&Fr$3<1%x_FvHellUVgjh>PXklyj7mE*JK$F<Ww?d^N*n)ch;@N%}z#2kR z!!;44$1Z!G#YVk4+R<Ua6`59aeV>Ff<Um$GeM3D=UX{b%QmF27K(x)o_i2%x;U}#> z`63T5-AM68zZWJcKF}m)X))4&SF3xAs6nbAlhRC>;w$DIQYft>Efj02b12cMogt~O z_*4;Ggpa;lqsmKdO*!)*T)fq6eg3dh{ym*cS_I1tfuglqgGfN^qB`rF^_^-&sP&$& z3vb=W-DD{XC5t$Gv~GIlrf+B^;LCKh0h*J~eK=vnm74EKWAOLabjK7pv3jK={Y4Tn z{20i0li8?sa;wjlOMfqoqP5oYTx-atLE1KWx}6Sw_>T)Yo?Q=k+;ScHFTBbbMA?ML zj?~GZqFB$=5N|^^ikX1TJx)SH8_ERKCwvkE3eVRyR-w&nVFaI779}|dNKC;0D3>-d zCJqQd0N@D~06_YuT>ih!-oefiY~sXh>1b#BpDS~3f@`=S0RYy2<G(b||7o26@OU_k zctJcMQ%)0OZZi&J5H|<AF{i1i8Q9ni#L2-8Vs<rh`A<aAn}aNkNC1E_;Xe^8;r<KJ zgoE3Zhn3sZgqNLz9c0W42C;JT8gX%RnQ$AMnf?C||5KO!pBTlH{&y<vf5!NqO6UKD tm<#~?Z*<T9MEp;t{6C25xd6cbhBqt8!Tj5C008)}FF*hQZ)N}G{U5(~w{QRe literal 0 HcmV?d00001 diff --git a/test/integration/comments_sb3.js b/test/integration/comments_sb3.js new file mode 100644 index 000000000..fd3766622 --- /dev/null +++ b/test/integration/comments_sb3.js @@ -0,0 +1,91 @@ +const path = require('path'); +const test = require('tap').test; +const makeTestStorage = require('../fixtures/make-test-storage'); +const readFileToBuffer = require('../fixtures/readProjectFile').readFileToBuffer; +const VirtualMachine = require('../../src/index'); + +const projectUri = path.resolve(__dirname, '../fixtures/comments.sb3'); +const project = readFileToBuffer(projectUri); + +test('load an sb3 project with comments', t => { + const vm = new VirtualMachine(); + vm.attachStorage(makeTestStorage()); + + // Evaluate playground data and exit + vm.on('playgroundData', e => { + const threads = JSON.parse(e.threads); + t.equal(threads.length, 0); + + const stage = vm.runtime.targets[0]; + const target = vm.runtime.targets[1]; + + const stageComments = Object.values(stage.comments); + + // Stage has 1 comment, and it is minimized. + t.equal(stageComments.length, 1); + t.equal(stageComments[0].minimized, true); + t.equal(stageComments[0].text, 'A minimized stage comment.'); + // The stage comment is a workspace comment + t.equal(stageComments[0].blockId, null); + + // Sprite 1 has 6 Comments, 1 workspace comment, and 5 block comments + const targetComments = Object.values(target.comments); + t.equal(targetComments.length, 6); + const spriteWorkspaceComments = targetComments.filter(comment => comment.blockId === null); + t.equal(spriteWorkspaceComments.length, 1); + t.equal(spriteWorkspaceComments[0].minimized, false); + t.equal(spriteWorkspaceComments[0].text, 'This is a workspace comment.'); + + // Test the sprite block comments + const blockComments = targetComments.filter(comment => !!comment.blockId); + t.equal(blockComments.length, 5); + + t.equal(blockComments[0].minimized, true); + t.equal(blockComments[0].text, '1. Green Flag Comment.'); + const greenFlagBlock = target.blocks.getBlock(blockComments[0].blockId); + t.equal(greenFlagBlock.comment, blockComments[0].id); + t.equal(greenFlagBlock.opcode, 'event_whenflagclicked'); + + t.equal(blockComments[1].minimized, true); + t.equal(blockComments[1].text, '2. Turn 15 Degrees Comment.'); + const turnRightBlock = target.blocks.getBlock(blockComments[1].blockId); + t.equal(turnRightBlock.comment, blockComments[1].id); + t.equal(turnRightBlock.opcode, 'motion_turnright'); + + t.equal(blockComments[2].minimized, false); + t.equal(blockComments[2].text, '3. Comment for a loop.'); + const repeatBlock = target.blocks.getBlock(blockComments[2].blockId); + t.equal(repeatBlock.comment, blockComments[2].id); + t.equal(repeatBlock.opcode, 'control_repeat'); + + t.equal(blockComments[3].minimized, false); + t.equal(blockComments[3].text, '4. Comment for a block nested in a loop.'); + const changeColorBlock = target.blocks.getBlock(blockComments[3].blockId); + t.equal(changeColorBlock.comment, blockComments[3].id); + t.equal(changeColorBlock.opcode, 'looks_changeeffectby'); + + t.equal(blockComments[4].minimized, false); + t.equal(blockComments[4].text, '5. Comment for a block outside of a loop.'); + const stopAllBlock = target.blocks.getBlock(blockComments[4].blockId); + t.equal(stopAllBlock.comment, blockComments[4].id); + t.equal(stopAllBlock.opcode, 'control_stop'); + + t.end(); + process.nextTick(process.exit); + }); + + // Start VM, load project, and run + t.doesNotThrow(() => { + vm.start(); + vm.clear(); + vm.setCompatibilityMode(false); + vm.setTurboMode(false); + vm.loadProject(project).then(() => { + vm.greenFlag(); + setTimeout(() => { + vm.getPlaygroundData(); + vm.stopAll(); + }, 100); + }); + }); +}); diff --git a/test/unit/serialization_sb3.js b/test/unit/serialization_sb3.js index a3be33a7a..4b7723151 100644 --- a/test/unit/serialization_sb3.js +++ b/test/unit/serialization_sb3.js @@ -3,11 +3,12 @@ const path = require('path'); const VirtualMachine = require('../../src/index'); const sb3 = require('../../src/serialization/sb3'); const readFileToBuffer = require('../fixtures/readProjectFile').readFileToBuffer; -const projectPath = path.resolve(__dirname, '../fixtures/clone-cleanup.sb2'); +const exampleProjectPath = path.resolve(__dirname, '../fixtures/clone-cleanup.sb2'); +const commentsSB2ProjectPath = path.resolve(__dirname, '../fixtures/comments.sb2'); test('serialize', t => { const vm = new VirtualMachine(); - vm.loadProject(readFileToBuffer(projectPath)) + vm.loadProject(readFileToBuffer(exampleProjectPath)) .then(() => { const result = sb3.serialize(vm.runtime); // @todo Analyze @@ -24,3 +25,44 @@ test('deserialize', t => { t.end(); }); }); + + +test('serialize sb2 project with comments as sb3', t => { + const vm = new VirtualMachine(); + vm.loadProject(readFileToBuffer(commentsSB2ProjectPath)) + .then(() => { + const result = sb3.serialize(vm.runtime); + + t.type(JSON.stringify(result), 'string'); + t.type(result.targets, 'object'); + t.equal(Array.isArray(result.targets), true); + t.equal(result.targets.length, 2); + + const stage = result.targets[0]; + t.equal(stage.isStage, true); + // The stage has 0 blocks, and 1 workspace comment + t.type(stage.blocks, 'object'); + t.equal(Object.keys(stage.blocks).length, 0); + t.type(stage.comments, 'object'); + t.equal(Object.keys(stage.comments).length, 1); + const stageBlockComments = Object.values(stage.comments).filter(comment => !!comment.blockId); + const stageWorkspaceComments = Object.values(stage.comments).filter(comment => comment.blockId === null); + t.equal(stageBlockComments.length, 0); + t.equal(stageWorkspaceComments.length, 1); + + const sprite = result.targets[1]; + t.equal(sprite.isStage, false); + t.type(sprite.blocks, 'object'); + // Sprite 1 has 6 blocks, 5 block comments, and 1 workspace comment + t.equal(Object.keys(sprite.blocks).length, 6); + t.type(sprite.comments, 'object'); + t.equal(Object.keys(sprite.comments).length, 6); + + const spriteBlockComments = Object.values(sprite.comments).filter(comment => !!comment.blockId); + const spriteWorkspaceComments = Object.values(sprite.comments).filter(comment => comment.blockId === null); + t.equal(spriteBlockComments.length, 5); + t.equal(spriteWorkspaceComments.length, 1); + + t.end(); + }); +});