From 749769500c9b145120389fd0640e98c31bccc665 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Tue, 15 Apr 2025 01:12:58 +0530 Subject: [PATCH 01/52] New changes --- Assignment3/src/parser.y | 89 ++++++++++++++++++++++++++++++++------- Assignment3/test/input8.c | 63 +++++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 16 deletions(-) create mode 100644 Assignment3/test/input8.c diff --git a/Assignment3/src/parser.y b/Assignment3/src/parser.y index 58d60dc..a6ef244 100644 --- a/Assignment3/src/parser.y +++ b/Assignment3/src/parser.y @@ -341,12 +341,13 @@ argument_expression_list : assignment_expression { if($1->place.first!=""){ - // debug("herrrr ", $1->code); + $$->code=$1->code; $$->param_types.push_back($1->type); $$->param_list.push_back($1->place.first); } else{ + debug("gggggggggggggg ", $1->code); if($1->name==""){ $$=new symbol_info($1); $$->param_types.push_back($1->type); @@ -410,7 +411,23 @@ unary_expression $$=$1; } | INCREMENT unary_expression + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name=$2->name; + $$->place=$2->place; + $$->code=$2->code + "\n" + $2->place.first+":= "+$2->place.first+"+1"; + + } | DECREMENT unary_expression + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name=$2->name; + $$->place=$2->place; + $$->code=$2->code + "\n" + $2->place.first+":= "+$2->place.first+"-1"; + + } | unary_operator cast_expression { symbol_info* new_symbol=new symbol_info(); @@ -484,6 +501,7 @@ unary_operator cast_expression : unary_expression { + $$=$1; } | LPARENTHESES type_name RPARENTHESES cast_expression @@ -700,7 +718,12 @@ conditional_expression ; assignment_expression - : conditional_expression {$$=$1;} + : conditional_expression + { + + $$=$1; + // cerr<<"hereeeeee "<<$$->code<code; } else { + curr_scope->symbol_map[top_symbol]->type = $1; for(int i=0;isymbol_map[top_symbol]->type+="*"; } + if(curr_scope->symbol_map[top_symbol]->is_array) curr_scope->symbol_map[top_symbol]->type+="*"; curr_scope->symbol_map[top_symbol]->name = top_symbol; curr_scope->symbol_map[top_symbol]->pointer_depth = depth; if((curr_scope->symbol_map[top_symbol]->type).substr(0,6)=="struct") { + cerr<<"gggggghjjj "<<$1<symbol_map[top_symbol]->type).substr(7); + if(struct_name.back()=='*') struct_name.pop_back(); symbol_info* find_struct=lookup_symbol_global(struct_name, curr_scope); int size=0; + for(int i=0;iparam_list.size();i++){ size+=get_size(find_struct->param_types[i]); } //debug("Struct size: ",to_string(size)); + code=code+top_symbol+":= alloc " +to_string(size)+"\n"; + } else if((curr_scope->symbol_map[top_symbol]->type).substr(0,5)=="union") @@ -923,10 +953,11 @@ declaration } + symbol_info* new_symbol = new symbol_info(); new_symbol = new symbol_info($2); $$=new_symbol; - + } } @@ -967,7 +998,7 @@ init_declarator_list init_declarator : declarator { - if(lookup_symbol_global($1->name, curr_scope)!=nullptr){ + if(lookup_symbol_local($1->name, curr_scope)!=nullptr){ error_list.push_back("Line "+to_string(yylineno)+" : Redeclaration error "+$1->name); } symbol_info* new_symbol = new symbol_info(); @@ -978,6 +1009,7 @@ init_declarator curr_scope->symbol_map[$1->name]->is_array=true; curr_scope->symbol_map[$1->name]->array_length=$1->array_length; if($1->type=="int" || $1->type=="float"){ + // cerr<<"gggg"<<$1->type<name+":= alloc " +to_string(4*$1->array_length); $$->code=code; } @@ -1010,21 +1042,23 @@ init_declarator else{ $1->int_array = $3->int_array; $1->type = $3->type; + $1->type=$1->type+"*"; curr_scope->symbol_map[$1->name]->is_array=true; + curr_scope->symbol_map[$1->name]->type=$1->type; string code=$1->name+":= alloc "; - if($1->type=="int" || $1->type=="float"){ + if($1->type=="int*" || $1->type=="float*"){ code=code+to_string(4*$1->array_length); } - else if($1->type=="char"){ + else if($1->type=="char*"){ code=code+to_string(2*$1->array_length); } for(int i=0;i<$1->array_length;i++){ qid temp=newtemp($1->type,curr_scope); code=code+"\n"+temp.first+":= "+to_string(i)+"*"; - if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(int*)($1->int_array[i]->ptr)); - else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(float*)($1->int_array[i]->ptr)); - else if($1->type=="char") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+char(*(char*)($1->int_array[i]->ptr)); - else if($1->type=="char*") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+$1->int_array[i]->str_val; + if($1->type=="int*") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(int*)($1->int_array[i]->ptr)); + else if($1->type=="float*") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(float*)($1->int_array[i]->ptr)); + else if($1->type=="char*") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+char(*(char*)($1->int_array[i]->ptr)); + else if($1->type=="char**") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+$1->int_array[i]->str_val; } $$->code=code; } @@ -1072,28 +1106,50 @@ type_specifier ; struct_or_union_specifier - : struct_or_union ID LBRACE struct_declaration_list RBRACE + : struct_or_union ID { - symbol_info* new_symbol=new symbol_info(); - new_symbol->type = $1; - new_symbol->param_list = $4->param_list; - new_symbol->param_types = $4->param_types; - curr_scope->symbol_map[$2]=new_symbol; + symbol_info* find_symbol=lookup_symbol_local($2,curr_scope); + if(find_symbol==nullptr){ + symbol_info* new_symbol=new symbol_info(); + curr_scope->symbol_map[$2]=new_symbol; + curr_scope->symbol_map[$2]->name = $2; + curr_scope->symbol_map[$2]->type = $1; + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Struct redeclaration error "+$1); + } + } + LBRACE + { + curr_scope = new scoped_symtab(curr_scope); + + } + struct_declaration_list RBRACE + { + + + curr_scope->parent->symbol_map[$2]->param_list = $6->param_list; + curr_scope->parent->symbol_map[$2]->param_types = $6->param_types; + all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent; + } | struct_or_union LBRACE struct_declaration_list RBRACE | struct_or_union ID { + symbol_info* find_symbol = lookup_symbol_global($2, curr_scope); if (find_symbol != nullptr) { if (find_symbol->type == "struct" || find_symbol->type == "union") { std::string temp = std::string($1) + " " + std::string($2); $$ = strdup(temp.c_str()); + } else { error_list.push_back("Line "+to_string(yylineno)+" : Variable not of type struct or union"); } } else { error_list.push_back("Line "+to_string(yylineno)+" : Struct or Union not declared "+$2); } + } ; @@ -1196,6 +1252,7 @@ direct_declarator x->name = $1; x->place.first=$1; $$=x; + } | LPARENTHESES declarator RPARENTHESES | direct_declarator LBRACKET constant_expression RBRACKET diff --git a/Assignment3/test/input8.c b/Assignment3/test/input8.c new file mode 100644 index 0000000..8ee3d6f --- /dev/null +++ b/Assignment3/test/input8.c @@ -0,0 +1,63 @@ +int glb; +int glb1 = 10; + +int glb2; +struct foo +{ + int a; + int b; + struct foo *next; +}; + +int bar(int a, float b) +{ + int lcl = 10; + while (b) + { + b--; + } + if (a == 0){ + return 0; + } + + bar(++a, a + b + lcl); // what if I use a++; +} + +int main() +{ + // int a=4; + int a = 100, b[20], ret,glb; + + int i; + for ( i = 0; i < a; i++) + { + int b = 0; + b += i; + if (b % 2 != b % 3) + printf("%d\n", a + b); + else if (b % 2 == 0) + { + switch (b) + { + case -100: + printf("1\n"); + break; + case 1000: + printf("2\n"); + default: + printf("2\n"); + } + } + // b[19] = i; + ret = i; + } + int *c = b + ret; // change to * +jump: + struct foo newS[5]; + // printf("Final = %d", newS[3].b + ret); + // if (*(b + 2) == 0){ + // goto jump; + // } + // goto jump; + bar(1, *b); +} \ No newline at end of file From 3d33ddb25e2416b2e00ea12ae19fab1c7c08cafc Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Mon, 14 Apr 2025 23:29:39 +0000 Subject: [PATCH 02/52] changes --- Assignment3/include/functions.h | 79 +- Assignment3/include/utility.h | 2 +- Assignment3/output/output2.txt | 6 +- Assignment3/output/output3.txt | 43 +- Assignment3/output/output4.txt | 82 -- Assignment3/output/output7.txt | 309 ++--- Assignment3/output/output8.txt | 100 ++ Assignment3/parser | Bin 1116968 -> 1060680 bytes Assignment3/parser.tab.c | 2278 ++++++++++++++++--------------- Assignment3/parser.tab.h | 2 +- Assignment3/src/parser.y | 79 +- Assignment3/test/input2 | Bin 0 -> 15776 bytes Assignment3/test/input2.c | 10 +- Assignment3/test/input8.c | 13 +- 14 files changed, 1606 insertions(+), 1397 deletions(-) create mode 100644 Assignment3/output/output8.txt create mode 100755 Assignment3/test/input2 diff --git a/Assignment3/include/functions.h b/Assignment3/include/functions.h index 2a8d370..c027070 100644 --- a/Assignment3/include/functions.h +++ b/Assignment3/include/functions.h @@ -134,23 +134,67 @@ bool startsWithPointerOrAddress(const string& line) { } // Function to clean Three-Address Code from input file and write to output file +// void cleanTAC(string input) { +// int lineno=1; +// string line=""; +// int index=0; +// while(index= 2 && line.front() == '\"' && line.back() == '\"'; +} + void cleanTAC(string input) { - int lineno=1; - string line=""; - int index=0; - while(indexi7}h|dLmB?aPrKd(QP2K7o2&WcC-#9q!@n#Y+noM_qTZ6v*`D_2;}>xI z@>BMA0n|gg?CFp6)?uPQ+x`-F*q2+BpVH4xnOHccSC3OBj_o?Ju&8WW*J-_bb?w!o z+vMVInN$JgN`wE=r_LEV(g(v*i!@d4J5M`k<6DOxH);O? zr5Vv4`_4G`#(lCsnV%UQHMY;r@DX1RO};aGO~+09-4pt0L%~~<#*NHN?Z0lq-RA@z zU*=!1|9}a#N37rV_-lWi(D7y&#-biACPjBZ=Uv#iLJp~$ZYo{~B zog4kl!`$h2d(iJlap%7X0?e)bphr79Jm_D8Q@FLW*`wb~54-jBXutoz+}l4KoYk%0 z!TY(>4+F<_7^_(L9Y{^3Cnc#O-9hq$-D z3lfD}zXLq{d9eq7dq@s$?X>dn=e8d9iF%Ct7Dy^??f3Q2x5z`DwI2TSJtT3r_CNEG z=Uor`f8yZ}H}3D={(&C;Pz%$nn>>R&#<4T>i#gc-d7*=QJ9j|>cWeKfL*405dg$BQ zBi_&U=yzWaf9MI5iJLr+d&m>yk=&>GH?9p$whaVPu^!v3(zkhn<+j0+jfk!@><>7DX z9^?MFhhDhPa2xkmJmRI3hu^OD@Sit4`hD6X|DWQ)zsaNhgFN^j_Ml(t;Xmhi%xkSY z=fB{5idhP7&m!d@bI4- zJoLqVO&a`f|J>tY|6Lw=b(Du4ZuDs9G!J?DdC;pp>@&h64?sA&>eUbUkG7Qse6k0B zYmf2j;1Q4OJn}=#W4@c^k++}lSl6}m@WXvP>~k8d>yF0V>wMk;ABu*7pPRr>j`DTz zm45&V!cTAd*XLUg^C0q<{0tT0XRV-r4t|LA79nnDyP$s${T}E$!dL$#x05Q`{}cQH z+s_j1cM<%*0YA3Wa67jn+rI(yMgA3nAHtS?Hp6%!JtXMpulVx{_zCt~E&7FJ1O0S` zX5HkU4R%9%`TpRL@N=Aya|e97$+H#Ock`12M8Cl=SYO%i-5@{8Q)|hySlIu-sjTmx z)H|F7fIX4FT(l$Y_P&t++y%@p$Lk`|Z?51M;`^owdX^=RFDGaGq~fBS$)$NEr8zmi zoIxXoy@X}Lra`LB5%gD&c zhm|wB=M2xuFAh!5!B!_{2lIpHG3&&esBP*OZKhsikwB_+ir&|~w2@0mZbAg`pks-Id?5So~mUywa%l8~So`V~&g zp42?y2V@Ki=1cW-As`)GC=11yii_#Vd?b$!G61uGnh|evW@%w zFE;KmCNKZW=K5JiCTd$;1ff`#UkZbsojrvH9phnKamm!YlCjFTIi-2yX&4J37>7;7 zug&mEE$@gym@y!^6ink_V;||6UphTh00|(oaBOz-+@|@S-xK_3GKL*=JiK(GYgXgz zGz^6A&WWrT%vX>%Y0!wA5$QSE6f)lF4#pjvbVLR?DfEFhPznPcJ25zgf)*?*G8~wp zCyWvpgY#(d#L3x(&9ln@PL{(W%v%S^o)!c}(eC#~oWW95maI)d0Ay@g> z_TJW|At2*I+JYYXIcEzn0MMJMNUy@8$ps~)*^{7&9?fh65<9dp1w0I9;rwZNIpfPP z#Pag5Dl063>9#rZWUsu*lMBZeWlw5mk_DrjFBEDIkoMB^N1yE3s z!{*A#D;k?qQZOcOVqQ^x!I&U~O>f0gR6MpI2ZE?zczVt-8W-@1o^m1{lQ%YJTv<_m zX(6muV6vY`0niK?GrEs2D9wQeV95ZpM02xcue?wQ0w=rqQ*zI7CB;Rh&Fw!lSaj{M zVPR2zNx`IoqEZjjqEj`)W<5*B6|%0)Ttql@#iSJ+IBa&wZ7E-g@>V_@-(K3t~r)+XT4rz=g zkn8kQ^NS}=%qzvkR5oZn0@s<+KF#xn9<-b%RdhFdx}gK}H$Qb6JvSqH^vs9tE+_u6 zc|nvPCYs)+Q|6VFTSvLmg=S#aDpq_hdtP3l&_ZMA@SFtGWahwb3ic-u zEIEU~P0oiIWfIJS%^MDx&%mtB&4_YQBSz-$kE*d(RcRGQNUdr?(IGig3&$1|Q5f*# z*Nh?L{Qo~_DrRq9CN*0C(vghaj3#;(ObWra()O)AJrHrOr1xx#$ve7!O)a*KjFI54 z31>R&-<(OCy9(xIIG-vs!;0!yp_z8%?n!vs<3TXm2UjlJp!^ZAx9geH>^Olqu#U6v zu%c%(HxhEXzqn{BIAhM(>98h(gE*X8o0m#paf$l}umzm3@N&l3nuCjE^khuO1$jlK zlQYukh>Vs)VxE-~&z`zbA3T15y>n?n_AuIW4;_w&3%F7&?JZ|f*c(9eG~<>O$i-PR zd{!J4ju?gGZRplKdr?}O4BHBEiijxz&O`M)Y^1>do4HqeB2|yxQv{)IVmB(cv2{@1l&mM z&HwiUgy4A)oY0&+Np$$k|8VTwV{+lutg`9De{XpqyZ`&MH7w_M=RmGUlN5fi#n5|{ zzuz~73?19^sW1<_aU3wVV7FUYGe1o%9uFz+e>Nl|Je|my z0PCa@n4g0A;CanGcGt4dsExzJ7-NevvS=#o>~n?{OfH*L;G0}Jwy?+-Dl44~ITjuX z+i$2vjT>i?tv}Vn-O?KtxS_g_HA2OQ(yx4imt%!cw43hJ*J49~{z*!+#2WaJY}m zIih8HVl^ob1cuhI%W)xCjhBw|O_^LIzVSo>X9ci7x*F6IWDp{MLJ7*8KPiMCkh%$l zru)Vff_%lkaZ^j+IRc7{EIH^{Ma4Pjue7xT-JsL_lTN}L#l3t0$LE8xh%yl6GyR+a z19G}|OZS~Kcu@ZVIhozMXR5C~)VB=%wY&bB*{vsYj2;b5^iWj=%*gN!7(KdQ|3Nt! z-MV+{<6zCSU@wE!!6K{00y7mk+A413!MgkS_Jz;=h?DCxcT3;?qBioih8~fQt+#@A8ru2} zfKS;Y(pgF_M~Rq%|Dq&qsT}!JMH$ni?5qXr*#bBYg#WP)OVk3sBUQ_XoGs{o{5J`{ zqeWW7C;o@^WO)jF#~-8*ggXNAenqhJbb3;LIncN~$u~lj=K^8*t#`na;uPOFK|83h z5N@Kh^IawIJSyMMca6YL5#GmlgTQ5n6~Y7Q*1lT-<4+5)^Qoc?asS3U;RZsg?_NR6 zBYc4Gae=3A{5QzAzwZT!seE7GdV!}9PWF8u@H_v$5^fN*^?fDqSSoMh`$6CW!oUJI z%+Ur{5pLy65xDe(+u+f8OW%>=2D-fWFQ2FTN>FN_uR*-0A?fe-;OF9v7QOZ==J&nt zd@jFe6+iD!wdmD?o@UV(3wpXmUn1yP7X48{4_fpZLC>}5&j@Jm!vUo4XC+=y;@w%-C+dtW&*9v;7 zMQ;%F4i^24p4?8FMSnxkH(T^HAy1=4?~=>@le*dIC)I03`xf2zGSky7daj^nS@c># z4_frJSGb*Ai(W41A&Xuw=;anYYaO=}wdmD?UTx8RbGmcLHa}1tK3eiMXwh04i;UGV;7tL8n=^f(E|c!S@c}NAGGM@f}ULO z^aqL4EPCHs?zf9Y?LXOewm<`TlDdQKF6X@67;A=FBS9! z7X2DQueRv31bwMRzd_JzEc#7?zQUr<74%w*K2OlsTlBjGeS<|`B+S@gdIy^BTPe~p-r zEcyY0-rJ(53VN1BZ!hQpi++%x2QB)+f)!i&f}U*AKNs{=i{2>K4;?J}uY$ip>>u&I{Y~PCfj-23$EGJ6^zOhY-&g41LGR*0 z@9jYkc+f|C&?k7%r+Lulc+eMk(3g79S9s9Zd(by~&|@C-Mh|*#vA@G{G3_t+g*IKD zTOd8p7%#c+wCO88<$Q~8$J`J9%b!|pv(7wkpEtTF5kyN`U3{NUc9G+^aTdJd<%~+ zWZgN2hgZ?mPnto8SB2G27lRJ3W~rZagAT98sh{2k zUB0V^g;@q2UX@fo0fP>&Y^k51L5HJr^)uR_iz9L>%Qfg76}Qhf!Jr>$&_f2jlR=+m z(2p|c$4LGLDs@L6xrPci5*gPv~C8w`4eL2oqZnFihWiT3{<20huJ z_cZ9K2ECU-?_kj7yPa5^X3+Z>{9O$CX$C#rpr3BgdmHpK40@J9?`zNl2K`Kf9yI7@ z8T8QxJXx9}E0rfqyLUj|Kk!vA~ZhNB$nD_%=BZPWte= zeSCq++R~Q0HUuhOPF_n&?&^8&HT(E>9XA;MP3e^7Lw?$q$G7d;wQF3IFh0PDZ_>CW z;x!t#LcCn#)`%BtoP_u`joTo;USr&(#!EC#Mm$DiJj#g=(-ufqjgLmWM&n};FW2~3#EUgP4)JXocSd}@#>XQr(YOoZF&dwM zc$mg`ARq6qF&@OnGc`UL@zEN0MciKFZiriIj0f=Xoqs6((-CjeI0Nw}jWZFi(YQO} z)6OJw8lhJXnwS*BB4fO7j9+1a3Y1|+28jS}aUas-kh!<;|jrcZ=2O_>+ z<8u&~XdFO1M&m(ovxM=y-|7cmN$AqcI*l$A@W*2hQ>S z8skB8JX2#lV2&TH@nwkHYm5iV@s=9nL2`WOZ%Y4M#M?B^L%d1jF^Jb_oR4_9#$ypL z*0=!iZ5oe5e7(lw5tnF;6Ht7N#&{qcAEq%L1jqYpj0eE+OpPZZK3d~Rh}&yigt(=~ z#fWz{D*Z!ug#sl5>VvX@2H-4MOQxIRTF&^l~OEkuV-1r!c z@c=hIOk+H_jrZ3W4{YO^8skB2{Ai75Aa1WQ9?ZsDYK#Z6@twaa{mT(=(|8u*O&VX1 zc#Xyth?i?T8}VX|D-qwO@ePQtS9sTP2Ta|^H!h_U^g2;i4(7~@G}-(X5oh{ zyvV|LSa`05Z?N!83s13dk%h-u_;L%6vhYv~547-^7Vc%?ZWiur;Ug`4u!Rq>a2pH% zb(M2GezEX(7XHe@TP^&)h2OI9It#C|@G}-(X5oh{yvV|LSa`05Z?N!83s13dk%h-u z_;L%6vhYv~547-^7Vc%?ZWiur;Ug`4u!Rq>a2pH%6|%s8z zE&RTP-?H#J3$L>9GZtQE;fE}|$ijCxaK?^7RU0o4RBa1Xe9;gbk)2VS@oFH__nl{3 z`gZxl!1~j;ZYiB`QRDLg{X>`>1CgXn_|d1a)DK51Q-BGNR`%IdpVFxu`PPb0;D3bp zdoIS06aETRH3U|FcUE9^W2-=mb%Bk4l^z5QWQzupch&PcNY=;oP!Ph|5m!%-K9bXbJiE5EJ(KEUy^t-Om9{-;1sWs}9@#iHaMD54UujZoEo?tt zUAw1JRb@A9p9DfQ1cVUtepZ5k5DuBo=c0O$F9yQY3;D`{4Dua8tvG8ufi=Ru?T1iV z7&V5DW;FQ9Zg!QutwZ*HBm0dQ9+>s*v=(T{m2==+B~bNrIepBZ1|O!GH)qs_{o^O2 z2W8i=;XYpjy+g~3>*()mQ%XIGfC0PpakmJu+v}iP!LdPb z)KgQH2$AD5%~2ybYMBEeawL5W(uC)iGc|-AumLCh3|}Mj*?^TnU2r}Z5Nm`BB9T-m zzaS7962*UNF1W&X1sFKe0IdQcg5m%TzG1iUt>1H~dOz|5`bv@UX>7;4AWg-~!9dl$ z3s@rVxGwe_^;${2g4mBTlv;fG6Ab|NgGvqlo?wH3eF^e#Ux_{7m;hS=H^ReK7i)85 zD<6!N8r3e}0c)5A30I=eQA`M@;!s|{6L_jR1j3c%p^^D4b|jtbMb1_Xae&P-sV?^Y zPv9O96PqD$IZ>p{?g>5?KMDT9&;_TH&bbzN167+L%#mA#`Nxo)P=O_|+r}D$s$PZ; zq^agYrR{AsUD|AlMVH1~`XgCO8ZQOaj#NtH`3SP{y1moVXSB>#>|`}7&H3yRPIG<; zexE&iM`^oN7+!&@Ph%s&{)4MN=N3t8Wu(`BbXELw95GP*F^J9B`v|1r3u2e_yR_eB zm#O489CC61a`Fl@QN%D&^oMyE3|z~8{`@K&^Ev<4V6>{v*5EK5b>{Xi_+7~u@OQ7GBZr1qHcI( zEZn{-HNLPF&KtyjuV!D&?1!4{Kc=L%{4wP~U%XIP3F#`uTm^GKO9wrO&R_q2*RFVX zU8|q2)rV^xY}QJ7rv04Mcq`3+u;$;#lOLQ>Dzd$e()&a3X3*QA$WBmXCn{2{tGuME zJj7LSqSA_l+Xui{#k#`nxIxHdg|oRr;$Wm`_JNw+&+INX`V>Ql z2k%(T|0QH0(AiCaWx7HOUEwL03POPyy27VP%BmGE6#{Ic!Meg~U16Aag~N4)yLE-5 zyeoVI4lk50))g9l@KhS76j9-9UEw9~3UhRY4!Xizt^i9(+b_0XESmqJwK7qzH}}bc z`*qEo$=vM|+m7lyfD51nC|cFZ2{fTRoeLjULW2}Yg|Nbk1k*TSQ3iNu2jxes0;%B% z_@iwiI-hAk%cac56GY;V_^Wm40#OP}2QZ>)8`Do!cFjwzp;GLcA21JN+RCm;dB&Hr zY6E;*QI%@)k6aO;#H3oNs0Hc#$LXH3p_Og637i~hE1qtFTa201~3#Ix2D9)+ep)lKaUHT!+*EqO_ z*_P|l7pT<5Y~?Q{*G2V^a0v+ZQF&B6TXFxwngIrDU1<8TtVMf=z(x~K<> zQD!!X{zdCMmZSqoQaKI1H%xSxj$nOsF$^M6ZGq+!tDDQc=~K4b^c^%O=JavfvFWDg z@czg{3oyqVehG#aEDMf-p@rfd>lJU zYTCbZY{`1Br@NA1a!w61-Gx*Y<;k-g%1DD{cW)fgDts7|$?wOs*0)@7GtCD1MkL$?6; zc_UHRYA{Z}zuHJ6)NI8u;RW)t17RUtmrX|<@ea7iA$EUzVy9GnI*7Ub(s1_dKt5zr zc6wgM%>vC)fqhfv*FwI_bmO^^U#Box>%D^5;12lRsfQ3I0j6Wq0ig{n+?AFYk5K&`8xHE=MH@K{M2{}oA| zvZ@x!zxi_4E;!0@SRDGjY5V??eS*>2$%(BE;!)$)7P`0glx*u;@Dyl0RpPPmR31dL zdQYjGjY(8!@C)-CgP7cT6+Ylc-HO<&c9kX6KgXy)0d77(-mUBfG)SJXJ&Ythl?OWw zXyFZV<269}^$&CrIt4lvG@q=T8F`)WzYVi^hE9s zmH0lFl{g1v355N%7bB$R-UG_^zQA&#&?=I&MlfHD%vGQURL80>Wu~ z+vxVz(d{jw2|hXxeNp&mO64msLfjzi|G@(wpfRV&J#-jUiO+(6^fnBfw=Q7egHv^{5 zvhqNcn6V-uNHb?wRZdLIHV|>;peFE>!QcIS*RHzkc{pf+x@=q-`nF$5CJA#}aLV<& z%0U;#DF=ZM45d$dTe(4N#X2znrqR~DYiO*_B_#|q@`_u zp(^|1itPFp#0pa<$Ak~#U(TD)g@L8E1-G;w90FR~s50?W%}drYuc{s#}BBhFCx87ZuSrke|U*kct_bcazs)>t19Tcq75KdJTx!w!{s>SE_6W0H6H?rGb*>qvoy>SD(cQ)2Fp zKzCR^5(JEuBS=sfJS$bLG$a08l7jrE@H3iI_g#ULaC{^D1GO6=-wx3{*^&qLy1w`m zn&$}3bCl$vcB(W_ist#Vp89IL0u$l(38JIle?*gzFds_>>}dNrg5h1w@PcHZ7CH-t zD&581k^vgPr7=pQBNh)N)&m9B#sM7Ps;9H)V}5V?pkr?<@B)#_3#qVjG+0!wgSVFB21zkiC}$`L;F6Z#Gn>SF!jd%PW7eFkex#3G?b`5!l7xS%Ry6mk=L~+c7MtyM8}$q0}!!SGylv zo{XL_NVQbQ)^FriJxGsi(fZxX-$}n)>ATYJdVujE`>NiSPTMe<~u3tShXzN$Tj#rE0^y)`izm@!*^!pEeSNbgm7^jEV%0EA7Q2M@^bvH(bYZ!_jlLN=c?a)_CwMy{-M_I6aG&6ZKUr?zcm2k z5lB`6rQaXlEB$tCX+pmjh>!HEU_ssW8^Ov;{i=1f7M}X0Q5}2yo@PHJ{q`~R`*Snt zO8Wgk-<5vb0LGtyS2eVLM```qHKpH{@6ZmU-vfNw;I3aOYa#Vpr>h;s)oLLvrDN*C zH8?kzMRjcb-eW%`{Z3$=ph8`&qoLn{PW@VDM1% zyq!b8dEct|o3yzJ{Z1!7^3PUH>Gv)dO8t84YO}!o!7MKNRZ|^Xzn<)eG=5d@Y5ivK zchc`F`mXdF12End7CCzSp4+bUi+s?8ewPp*>30kZTJAc(|HOq-zsq#B`@#L)^{b^i zwtgeo4@tjA-qrfu%il@ATj{&f?|OjoA@pEXthfAIzftjhv7uNvV^c8_97JRU_wMBVWKy)RN>BCqFlGn3Jd)X^D;8m)OWRn_O)2o|C8= zSqb#`#fgnP=;UWfqE4b}WEwW&Pi!RD$|7V6|)6PM z5gNhMI;)ZQfo>jo&=9Y75>+FQAbpV4!aOH4i*cQks9G5Bpv&DrUF>|IyEy&?7)kWG zbPNE;Ml&fk7|TQpj(xJ)HsVDNdL)4-s`s9^j}M#r8G8!*i?R{Ygi!$|1HJ}4GmRvb z3BEU(Z=mM8g!$kR2l5ROd=E0;k(v+3%XprQJJ_nSpXf?S#f(N@*?v&_SL6mN_CMAK8^3B;rkI;MxOG=oIS02LE`Y}1!WDd5C_6}c?Sg%LNZXzq zsGufV!sQ<*t%6%HgyH@Le8bKIEo$Lt;V;=^iw%K3#F29Sj}QTZJ#Z4sv#}BGKehlN zbFt>EmDoVa@$mPaZfSg{g)gx2L28ldsX(8(pHLBj?4qi20@e=CC+4aR0a*M8pkENA zqP8uL_Bl9a@PrfDDpul$FJ<;!*h83mj`V=9^Ql}~YGa^kC!L?a9h>tuHqX_SJ*hL< zMddV-fIlL^ws2c0kP=u!mtt4f!^K#xta^I|$4&Rh_BVPw*wLdHCF&7dBdsdSxl8)+ z?ozlxAF@$t3aCNG0;3GuKw9NuGYMlR97PC>okoIkp!W4a17(NSCA9<4 z0=_c~eDTFcZD;|lG!Dg9rX3ef`VPMJEr6oyI)sxx1AqehgP((N&$Ld3Ctq+JgXcO` z6dhsuw*^UDK@$5?<~#(&EdBu4Go{>e2jDQVC}r#6@ST+HLk*NovC7k6d0-erG<{w2 zulJ%=wwF|_q(CoiTk!;bX~EU2C=wwq12B@wFeLa1x$S6Fqbe2jhc6hs@vJ`}CE>#! zu7N7<_)4hwOf8Rq)Ms|-TQpkOGZ|w*ySCC8Rg@X%3GPYsl{6GS&E12G;I-q*WRQie zf;Wj$Zv5>HFg#l&a!@6Z&Ymi<=YxQQFL zwLkKm+zs#vxeOsjdBr2RrmO6L>Q_~chKF@@(76z=TyR9010iw@)*QKlBg7mCk>jU-gFtfp zd}oIz1T+eSM`wX(sjOVCP>yjV5<-cq@F{0M5*i-+y&Ze_C9=njID(KPWfj7aNKjQt z(p5^S%6w`r@-(rqeS^?<6l&lnnkUHDj4P`_bflq@K!b0n41D8j#@SWyDB{DxRbR*E zE(KxWdhy_@2hk^hkp-xWUHmFR7PBt)U$~tWg<_HcjB+{`v*LBJk43Sx*|_zjB=(Oc zd~*%KY5`X6O>&U&xKh((Jeb8_!$cPQ` z>f!s_vE}(xH4>o?gdg#)exFTH9;R>zM4~bBd-gL}M!hnmmf{@QWQRrW@Voe0{y$Jj5g(D=(3yAv)3nKAYO7t0u%CW_I7 z7$+@XAtlQNEabd`gM_6QGnBqnxrCTyj9tr3%NXk@nywX<&sqiCyN$7NDMf3rtEYAo zWe>ast*J0bjIs}~Tu0eQ4>&~K_%bNu9%WL1?z@SzZV*^T2iHN1@k8PIBF|+Tz!rNL zXU{Gs(L|ihagVdXAF4Qe;W^-MBF>J|taI0@7{MWQiL=GfdDC%Lt~qi=8&;fk!O2(| zv#Gf(DuX5=&eqX=V2ZOXu>1nUia1*!t0cr(pUo;Xmr|9z5oc@e2Vq?2vbpf=Rf!4r zU*KgYGtP>+SjJhZC`J>ad*6){4$q|sTX1f{K|;9m1uB(s))9pe%Ni&>h?|yi_B32G z!JcbH5Jd8R(j&VwR`M|U8|`d;fdAmp19_H<%t>amSIz#c&BD<4f+Z{LnU22 zu>*A8v?u;@pW;9>VjGqxF2X5mk34aybgKkU%%Z!|c;dg`Q=WJv zRoNS!*c-HW_r%t<4o`d#F8i3C_~lDfEIsiCQH&-;UrXhjUM}EN%q|gH>|yByhSC#n zUqq!c&0#2p-c)xw#!GL)XU z4+^1kqK})Fo_N1#x>i(P`!smsHL$Vd**SC79(&@U_fS8=6F0bf;&DtjYnzP|%nc1_o0dVd?Njc#R#a|X1L^xkIE7?SoV;R>J@MlC)Q|8) zAH4D4a!~mF>&g=^$1{T_Jn?1CngRMY?TOjYdDEVFjOIWyx}@*dasJsOPfQldB_0%> zKtfacp7|KrL!|FiStY>}KYmSl;(1hMZ+K$CJP^j!6EmK6c;co{oSxX8i=`(%DT>jA zn7;dRf-Vl_KMWaX8C>Gs-G>_yq@0b+NOMX3Pmq96+YyK}!=y zBQLIGnV@-W`K8-Tc5$G{vl+O|2eE?xkVWMDcE^)2E2KXyWAST{3uguM_jjPS=*k<= zXnJG%)~(d9h{ZH%JHpC#`RkSKHZ2AICStL-W_=J=T}{X0bI^Iyv3RHE$Q24$+sm_X z+EfSgU8Dk>`S}z((r$5`Qs6*TK<3lRbmo_XpA6ZZ!%iHJ(?q_NPJ{pNg3b8lA9ytX zV-zIfhzr6j1i}TS7w{-^Vu0V*0+(jY++WSbGUED)Vl))`(Cd((p|NrSGdast3wR7e z8F52V2pw_R+_a3iuRe6<{$z}xa3zV$519htjvKqd124HEtHhV=Ag!C0rLN_Ihb%iA z&juuAD++x&Oe65Lq!y)=1$D7!Y6wc%FC=lo%vA|*o_&A;DZA zsG|@XHZq^=8)^54zK{E)acU}#nj`*gy8H*&t4Mjo^M$I9#ErrCj50WtjwCg9#V3Dt zvFP)<62Kq+O-e+?;BI3`B0=dp3`sPAF9VEU{vUiq9-+f>nOn>iW&w84L{b^gOJ+I7 zSIpJyyrzU#H?iN zosimSj$H6jm&L&{p1U|ID+5viXF@tqOI7{=DJ*9HpyW5xP^8^wYm~x4;@@l8sNiN0 zhqF<@nT;}@Ape!wXw!SnY}B5MWj1;^RW*I8a zqT|UY%XP8QqUl=E^ws#>CEW3X6CvzG5~zs5lX&P4+*l?x^6|)H)DlI69mm(=Y!3BF zYnT1np}dxs(R74U#($xViM@;V@E1UEls)!HBHsdfRKl!-Bh?Z?3@1(K$+UJV*ELNQ z@qeqY;BLj~MVU*8$Ht*0%3}5hX|5k11#RS5)WyDF7!t|wJ%*$NILkVQs0{kfvj|03 zBDV~9+%4mDHK-M_4s-_sp2}B-e!+&w1Hxo~|FK8-e5n8(n)Wmae0BKZfVU((u2qI zlpC7)qm-Gn7WX3Sj)~wlq_sdMVFjg;JiW#rc!f3>9%IcRU2Uh09eG`IIu)z~nF&Bag6gB*FzUMh5Y^L=Hy^ zN+R0fU-^=`QcbU?!@2HY)O(Z;{T8;lS917Tby(%pC4s5 z;^siVi7g%E0%r3MqwCI8KZEOsxSZMiy>$73TuzGEiJ%*`J)g@e4eQmie@X2RWJ6IO z5VS2BQeOane2C1LjuHU;f?=wF?*WWYhbvxA^ZojQGT$GtZvT7cyZc3zBWLjBL!C!l z%y%BEPqK0jg}Yh*imUoNd9fUFnD5t^D&J%*rfu_mPkp(Blr&3F3}hxukRB$2>; zWen4Wy~Z(274SlY;f|@8{~T$6MWHk>`~hm8qd;8vl4+nnuTPk}E|yHq$q1)eC?X@g zM&x?>@c;Upve8HQz&=vBfeM7W5#r_uU&=OW;QGwwp9$9o#Z-Sj*C&BJUraWneqd1Q z8FEK;v5gE<1@jt)tVvz$Nrt32)Lp``hV-n9%}1zqLXJdFi;30-JDC--mQPB#21JrW=vb0ysB<<$j#!0KYF zv2Cr00XGiNyfsk~Z7l*=q} zE6_h#mmhBKI#BmBk7V87Hxd%)ekyy1)V&Kssr#V-<0E+P60^Eirju6YG`O^*mD$q4 zQs!hgWiHyL207JDnRU8+DDHx!3!^eub!27saVm4geU5>=grQVsFu?eYj!8l*a~1VQ z{yYhuU}|L!u$9TV!ewM`{!A$|fH%peM@IZFFDrvhgf4#UFahIoBHbVY&@Q|9qTTw-WuN1 z>!AAba29`t8Etj3t@k>_f19Bczm}nt{3?8a7w&ikHsuVPgl+Ca3#nbxylOI-&pA0N zLiG~t1YRPc#6+uxDNo`sQHcI17G3=k9YV}#mLSe;DosrST`a2lY-=|hd5n+0$Yc=g6O`8AxQ@CT!!hwKBps8 zZ70qgzoA~jey*ox&))@3xFa#sH*G+YCgQKsci^9chy$M^sci#=*?3VlF0=UW{*N+H zCe~F-$mvlV=ohCSo^ubm548gp>CG@GEOG+ErZir^fU3(F{Snsn@!J>5vp}@(9-ake zKuu6toCS`SM`O;jz;*vtYWBoK>?Y0v@6oKucdL`WYRC+Dj#q;jLY`mO#g2f^n?4Kt zeVXFP6>V4#Cl+5v3W&47T&aNbEHFt+ReB5Yi?hH9lHYk2_}((5@Y%$_*Ukbj0tMZl z1s(@Z4YrbJf$LT~&jQpM0A3>Fbr^mmti$-&2-ab}52R@U z{hrfdRX&MAaiN|fJoAwnj!8FbQB|J$LYF_r=OwObc|9K)=_zBmpQns-IksgqJ$5Hq zUYcVeLlOzB6JdxVqbX+sjOXyugj81RFg7+N`L;M0t31x;HmmT+BV zb&TI@ir<5441)M8uw;TE)BjFt<6`Y)^fef<{b8yLcQD!6vx)t6#XeuKe*%=S4}R^{ zLRij}f<=?^NhNG@;{n{{t0-dF-*R7s)XpK`7Tdd4kWBCv8%i3;->gKdi@l3FtKU9& z)-F<6hFE+qS&}`dF7^?^aL0GrL-S7eNLZGn%;Sd8JLP$&oa6uEX*Y^xV276lD}{As zNM=Hk0sf%CFW5r6*B?=#cbXVpkp_CggpR;o~(lFvtV1zVSA#@P1H+ z{E$Kj7An+}{~Ws4&PQo5bAYL6#O-;w6M-O!Hv-UmIZk^Jp1XcykF)r-9cE!R)C&7g?mL~`Je5BD`|Er6OSo=`3dGX`dT=9T>%ti)%JrGe z|Hi}0E@NpUAYW!nT+Mai*rEF10@H7GIMWpj)3J3Zy@X+^fP)#bLh#g%A?Xjy-5A!8 z9pU$_GK>nC$}l8g3x+`fcScE!py=pxglb8exURk*=StzKuIuVCb0O7^Zo*e7quai^ z>9YR|UnLbI{@xF%F*#h^okL~WAGNRU;IbMni_(Yxj|WxVd3=1cfeNIr5;yze6I{Q6 z>oc3bm~NGmFOJ~)G=%oi-&I_fMjQTC4Y`!RT-WWubwgC(;)@G;$r7bt(DbqD^mm0`LleVbvbfVB)sZ(#lpL((7MVum$n6@a%hj0!lL zVMxF-hC$KtID}0(SJKTSXS%4~i>u2uz)^4>7hin~o%n6p59d9((uA`TxzfC9J_=UZ zg;$#Rk+9O_lNDHLzSRaAF;DzDT}0`H?4(wjgX#J<4SB2UsXU7MsFh}>F7KCkzM|68 z<;Fo0J#`D93SdH!)1;RDB4h*V14=U)l1KoLVHgw^JqTcY*<3UUs~icXfkxOCoN*h! zqxl-clo5X;iA=M|;jowC6`*KxHH^XREh)4A%jbw>NUv6pbF{ixxB3dKP8_XXNv)QS zge6NFu80!E6~B!0d3aDtR(XvTWvkE~r8{vtuBr^;6FhMU1O{mj4cApJ6)O%b_>tJA zeJk#_%C!rPS-X_`Rs7GKMT5!wkguPjwaeq8rMk)*xr$kiB8llU4D+lIA<7FGWK#>7 zYMg_rNZd6MT9x0@T(Cj zQTht%0@f%b8Ld&sW@>RV36qmroE#0y%!-v{K+mJ`2U}Tz^2osv0Fo;4$=F4o~Das=uF9AO`ZBoe^i ztEe<6ym~vp_(6&1X%vZzFb_bTR9<}u4=QI5k^_&I6ooIbQ<9>6_^5#?DC{uN)^|8A zQj5CSl`M{Qw*8m$&K>K8=i{jHf^^XcqZT&TN;G$$v$-RIs=|jJk)U^DcGXsNDph4>b)z=ow? zVM1XML_$F}l_1VXpJ#Ees!|C>@N+_O@OL79E1@i#Emfj~(!GL2feb-aDML_;Dnp!y zhYl)3TtFFuEaI6VDt0BKtuWl!4c@(gj6vb3GDM44m9bV_P32JdWj6;PY~%?Rlb|;UQJ1;jco&Tll0z26RJ(!wWuRNFsq3Y+@J` zqp%iW{IW_@JKRKzOIz@lUQ#Nrb<85PQIE(=PTVKu!Mo6ia;qvH$xy)w4^V*=?*bG+ zjR!X;H|ObO7ymhTDTAHJ1|e}H^HbSw#KxPJMlKI=0kipQUs3h%n`0PU)+cVRzar7# z@E5f7J^mc5Z*M%LZ^IiB#|SSL<}76+L32N%%3D-bX&jCJUh);^Zmfe_Pib%ypw&PHZYu6>?oN zknrD#|06vdsaUrObH2;oDShR*S>!s@6&UPbhTLUctS!T!Fj!+bF{cX{2N{^CFlmbd8 zF-#Zma)zk_o)0h{hrjY<8%teK#uW-*THLdH$_LL^X8CQlVOHy&^6P9e5?Xoo&+}B> z60RFHZ7C0qZ{fO5bGBWp>h{9AO_=j{_D*Te^JbDyQCDEFGZ>O&0J|~_3WFWVFkQeD zfbmDJ)AoZ4JxP4D|T0V&`(TKwa zIB2L?lO~$%hYJx|o6deU*Q_-p0{7hk7~{Xpbck35tF)x+ZbSL#G0v^9mB54GL*a0Z z-`}_c^^|`Q+7KK0KaFMOK<8EWl890UPf72@XJm582~QVm)8L}we$+V`=OF4Fm(yZL zuz=MOzg7?GieLVP1I9Y-JO`STI~8 zvDZiDJ_CFOR%ly(v{q;*vo;iIYK3-@z5<q-EJUJb(Q$1rCxB$1#roncT!`%wVnk6k10HI!hW8Zkl^-~j1#DfHqV zAZ#ZU$J24uBR!wCVSrRiAH*(#^7yIHCy;5)Yh;*}bCoZj4mlCWl>U&D=8PH3bsi*pt+T#;^3D9j*`d&Xbu^a@VgbKIV}4nLbqH|!Ivg= zW*cv;^K7?tWVSPbG2ZEFhiR%XvppD5neAEF>!Dpbs?7G{bmyo!HWHLe#$4<+Y$Zk&c&@40Mozd=|YpAnW1>)TydrN-jBLf~)W8rcZVx_Yv@0#*%2F)r80 z-h=ExOoSl7rdxrh|t>r|E1QUSv9CPKSabCd#IQ2}{7t8%I2cU~i#tNH(& zfc$&y8d-a^Kfh9%ih(0955V)k5`yv?*>!Mz!hFH~B`#*Y;r(|}j8;PT{^lxDvs}On zCKAMPz|#HsE5o43Id3ye7qAv!{NfUsf)0cs+rx-&97@I!5nm$%z!~w8N~P2v z1;F1##E;ReZ^JUQ>6geqht8Xh_|=*Nec9zD@RKOYWZ_HK-oQ?{ph_99W z&WK;A`S&CKy%zClXn*lbWSkNIZ4vo{jQ9v#WiccEO)i!ZUnGjrN*L3PlSs{S0dpvC zso#qjWGEy4njyq2U9W_jmJ$Ci(X@>Cp5uWVViv{SZNz_dC2$#m>>2S}@Zo~N__rhe zy$UtPD`2jXxzmpLn@XvS;z}K$Jf-Vqa9y&69q~iCt~27->C59km#}4U`gDu<=P>>0 zh~IY-L235?P9#W@!3ciKFepO&6Nc#mz6CHop-4u2Cm6CljQBR^kpV=+um9HdcS_we zOBr+DF~HwM#D_HNComT@9q~WFDL~T^|F-7vi1?{IKZ%InAQf;%{72Fq`tx5P=9iruza`aj&vgbNg})GC3~694T9! zeVYd<=0c66jQEe7sVvfhEfOV*(#}pl(Rrr{Ydwo)(oLL?^+>b+?A_96w~u!iZ8k#^ z2Xrn&sC5>90znYuZy}J2O>UB(b>PS-A^0d;tnEk$@=u-n58z(e{&lfkV9NMi6J$CM z!cgsDIzKg=+(@MJdYRn_t1a6b*C->OjwftQr1SeV>jC3bvc@#xvSm9OI&V6i`!q+c zXv5mFE#>)0r1O|mz?shX(^6f12`Mbnd4uG4rt>XVD}~P`{=JsYbIt~Fcmdb=4LMd& z#M?;)1Z6sZ1D+?C>3n}Kmg)QnQH)l?*gKUIcDaCyE+?&V9I*5jhSH^<=aVmr94P(I zSn64(^I@XtT2Z+aGgG*d#8v5<;=T$`0gs}K?&P%VIT)x+X47ZMw3JOB(Z%6tJ)B%u ztZ7k2U*c~TNMD`}dhVewU&#kq!j~K6&^mqDH(d>FG4A%8@a6ZWDc1flg*Cl283mm; z?aMth2ab}EEiC_3~vgCLAa*F1kN&I`wmv6_TH}>TQ zr!VJ>arm+??DXX5m0&e06t`=}DL+Q)kWsyy!FMpZm@Z}ps z)3u`VQap1GSCY6czMMn%&dHbmz@QKbTKe+KQ_(@lmp_5x_#yeyYu^Hm_RwpeK8pkv zUYjZh(do74PEoG-+$i90!fQKe)|+#cPolM4GH^9?-n7@w)Ev2@4J!k8=I2SmYdc5< zoL*a1rW9!8Ew}L6G|BJu+KV**dg9+}Ui-ukDRO=;vXlaMSD)b+HZbumf{{t*E^7Lf{TplDIBj zyX*n9HF@noj4aD*JCbS1YmbNGcwVmb+77vU?6tejAc2L~c9DbV^xAoo)u6W;0sKvP zZJ}m;ALf^)bL}_KdDC9IUUT4hxa8Up&w0XY)1?AVuYIRPDbRm7DJ;CUx8!$v?E{*> zJ@M}~uRR{^&t6;a^x7XUb$IQ(N~hPp%f-@b%S16+3H@>xXVY>4$6>OOZ&KF9E@UXZ z_WIMQROZ_0+_d!C!$i~4YtO(q4p)-6E?)a*wes31y1(VM6UnsXwO2uL{IScV*N(Yt zkG*!#X(X`l+AKMUPOse>QiDDO&kCCG+9x$@8W^r=uk8VyH|@3UHHU}SKF_n8@Y;Y> z!0ELewNy9r-BIDSLCNp*+8xD8;Y*2suX*iNeZZdVwVRz@+xKFJ*KWPu>9t34vGm%P zM6vYRL7Yvc*Vb^XRtqP-pP}^HH+qv3NUvRc5%ny+cC2W+R#d(LpQ(f^Nn97N9kNJy z?MLYTme=;6V)EJ-pg8_B{E210>GL>fw1+E%+fOBdh1ZUjgXr|yE=6h(?;HyJO?d5} zlN9R}up(^QYiB~|O?&O7nghqfCD*p**-dzDu2jJ3wd1u^@AHAO@Y)HI-|4ldYW|0a zf3JD%3%$Ue?6n)5UVGz(4zKM3kAclS+5|3^Ub~MdMk`^iy`8gZxq!cOtX2!S-Msb< zH$PDby+UZmO-rv`1{X-o6~cz|fjeAD;<|Y4efKD@Jr*O&^4goJn7lR#isNUEc6&s8 zf*Tc@q5~cATee(ZC_Qilw7LC4w>IB1sPY$e@e@FOrb4Gnc&hc=Mn2W*hv$p%0*bS1 z#kNVX9Y$>Qrq&H`Gy#W63j(X_llaex?m(s%>V%3alL5vKNBeZV>>Vg~c98Ja{av6J zuF`M=Z(kjl1Cx|7d_zZKtLj0gefEX-g{*s@NLXqfhDi&{!=xH~g)-uAcclvM2Hf1p z-*iX6;%;!&H{!<88lLAHs8VDD*WGx9s$0l)Q%M*3Tk?pTZ!BHU_0w5bX7fL;>z}~& zgItbm`Y>)F*9~zQv-qd!x;r?VN4cEX)Y0a?SXa2KdPYK=yx^Tb%3Fhpi%gx!R22qQSp$)rt_Q&BJA*qn< z?Dz0&&BIa`%Ns_v@jB@JADlgHf^yhad=^5(6S18AJuah>j7VqyV!Wz*E$*kBFK)=! zyXkOtKG!EdQSWxYr0bu-^@HrN$flkBBCZ?aGG_5dbzL9VjdD4$DQEA9b(K?ztAE7F z&c2j=kSTE9j-#iY{TqfsY#Cf`3&V5)-(Z+3;7W#MB4A#|kgN&tK87{I*`o-RT#3#; zl%HM51=l5~fV2Pig1_PHo!($C9*+%qJA32n%$7xL!b zWYgjLDAx^f8MFAm%2%o40V5Q!tAq{q zWi4f!|AiW}x4^GvN{j@dyI$1YG6+_n-5hWA@fB@b?sexnJOvy@v{BSGdZ0eJpuzRIE&xIe7p+|dW83oV`)3&r-DU~5lolr3jMmUCvy zFOkVDTV4v?L#`Q#nK049a$`bccPm)eE7z3cT0nBw#Rj6e_R2aqDObg83^zj_x#oG^ zWjS-rt2wG}9@nL~bIUbXbNzJmNwqXsqU#^U^@CiFY&zGR$#p|q#w`Bpblop;A1`cW z-z92^byZ9!=9-Ap$+qI?>7~Kj45>>#P zn6>w4I#jRgvXCI6Wc{}?jYnkmhVk2k275v`m?2X9e z=Iq7Us71#Kuk7C0mkcD!idiU1Hj{76-R?~I7o9`4*$WeEhs%`1{&%pqv%ksbDo$tr z_)=B3lyw`-XMa}L@4@wh?9j-jo&5r?8{#r%@!zTIHu7`)D3=qPnppi< zS2(%BzkD4qRIhSJ&RAXIWC zI{QF8JJgpph93*g{^LOH?BI=JV*SLR?luHktY+UHgw1=0z(=*rb~Le32+W0OaE8Fo z$mA9R6Z>o3F!}%I%+>L0DWo@zhgu!~dV}(_Wxcgs)Ya$V z`m+DGe7%e(QCuCTtYK9i=8Pz3*W|Nlps61i%HIYM42hxq24T4418A+?%vhhIvL37B zx15=D9<{nRPHu*ieQ9;viw!_-XK!Yc&n4rLhpNr&A-e9r#U%m?B$w6kdTu+N%H=OA z+c{bdPBGUHayhc;AikOFl7-dn*Uh?acdi@dy2Pe}IEZysup|cY7Uy7|%tOL$!1|YA z5LrJ?%%3qNYXaQFutscV*CJGMB?j>FWaGei%S%>Ru&p{hz zxE{Vgc~q1}O`M{)3+Ow|yLwQ$ImJc%AM2a?efa`_4%ggOtZ^f|stnhQvS^g3AF#){ z3`1hjPDdE-_!DZln{Z7(iyAToQf}7CITw71tb1jFxn!gYnH%Aj8d#JZ%nsL!*f`{i zDqJV%x_HA4>XPfa&AEqi{d5`}8Lk6#{o1psevr$NO^53z+;)h|n8ly2>(1u7Q7$Jo zWykxmt_q99a6Or$i0Z;%&Oraub8Zns>JmzG7^Y)K0D}xu1?u6oWbG^o1`;s^!}Nb?>x?;XVB1luxVqaZ#E;@KI* zvyjOxh#OBs-8%m8{O&`b>ltKk*AO^@S1EF6wjt|Y34!~EsSubAm)pETU=$yQIYXd8 z*ZmXkjWrPh2XlS$9<}Vu()Cwz{UEzBvgr``h~)}#8MF8=)bAY3;<`~TCpHxVi?FV8 zwZsrOfjyJzf@@rTIt>Z80k_r|2C-!*y_8|PfI}Fj3V0?%83Ly;lp&DDP=>&P2$fuk zA@KG&WKWrPKRy&f;My~E2<+C`tDj+Kk6}aJ&OTkRttK{d_O7sscRKq#WO8%%{d%Jo z9b2#1y|ZWaAv-BY9YrmYdgWC>q8MF8&>KpR&j9X^*fx>^Vu5zkGXFr2| zFe>aE!O_$CekMce5}du5VY*<>Wtb}91q{hVz}%l9SrcG)hBYGJAB#}QmFVo-cn*`! z{{6w=?6>s!8_xdZlkDvO#fH3{{bs@TF0qlbXTfUM>Ff_9lbf?2*%P(sc*xVcclP1E z$g-}^-k%pfauAYFCEM(U1BJT5%Gn>qn`R!1n``^JID1&vJ%;Pjz`Hs78C;+IL^=C7 zUH|jbsr?{2j_vF|t{dVqX7SI`7yTdRx=}7CHkH|5M!A$zB|7{0?1NMnT(TNRPdodq z45>>fy`Et@b_8%T!&CvsGL+6flA(0=fefXypNde)mFVn0^K2!Zz2!mR?2CK-4QF3h z!_IyHPHo=KexG3b8vEnlML8VSgHC6E9+}*nJtGsf=y>At-8=iZ?qpe4XCKK+961Pw z_aNKs1!wZK73WNL_IwBrr?bC?Om5EJ?_|`X<7toY-r1*gCCj=x zdjT(e|nOeC$OdshoY8t~-$H(!jepdk)tpKT*zJ zrR%rh`ayPBWYf-m4A%{D8MFAGC{c312KUFnL!(?yY|7cc#&(rcB|3Wv`ykZ?mt2dZ zr=9&NhSVjLKFBZ~I|6tI!&CupWJo50(rFCIng9zK)(B_67@?9Y(b+rj{3)INxc$J{ zU+JoyUFZ9M8`Rx~z&j6f2po>hdxyZ|g6$`qNjU^^A!wW-P=`!zA#mmiS~os^y*~>F zi=LJo44Dg$U%xxK1^kWs^OisxY;P`J_zUPL$5I}@zN&9Gmv^GEHe)8@e^B4?UzM)Q z;a*rI>9eJ*@pR6J(x4xmNCPd${dI;RF_bR?j1LA0VTfeRiRm@VpzhY(V;|zqAIEg< zZSKB;t&-SiJM{ysah&EJjZALle*1Xa+?i)7b3Y7f>(lO!7hC4;`m>9%b$m zIn~3darzaB^H0&`WbP8-Is0m?VNcf8;25t%9&T|y6w3xOJ=B>NMsMi*s@cIB6YK7&z>a)A@pUaOXIp+%Mgj| zk(jR~S<+Z<_OaI2n*CmhAxpOW&N=UMp6By?`ph-I-|Lq@H0Sf2=XuWZKId6KpZjA% z5I6YSz=PHloJ34H_n;U?u5quqsg>Tyk|pkbY6XTBgk4M$1|Dj z-jD14OA!Bum2KsO`7}(5tdp&zRhNYSKL+uSJGvl#cT+Kdz%Cxd_rN%UP#46H`MUd| zt^hhIh)+cQ8n%*~_~d>4j;NnTIkWj7-V}9fQ3jS&&ewfw6OlWQa$$2p{5`kpf@R4d zK7XUYnXjxbB-$txp8_de67(McS;HL>ISFL7l2?Hg6H)2KAjO(Q)`D!*AU=jkC)bie zyiSO@UdvDrzqUbA5KoUh{nsG=;8s9-J#N1BAbv#I{^Zn)AU=uWISk@Am?0|pZzCN8_|i+oeL6zxY^&+y`1)PV=v}~B==^_OadcjN_cq8{C7&m`P8U4prfInJeot|@Od zH}RQtqANdmBVR7&K3|cuYBZS^if1t-{G8-CkY?@!i7b7)Zj!m@CO&wsE>0&$^d+W%3ozx*bi&%fB+YFLhr2mB~#!2fqxM@XF*{ z%Zah|mC4bjK={h!HeRYbI}5+QGFfN*;VYBNdH%D7f2qAPIsR|5KVF&aP!c$#HQWwl z1ltD`3&mgPdPDS;$!$?=uS~wL#cU;x?BU%-%{nCus|z_<$r&JRHuS|`9`IE6gYMF^ zy)t>BHr=F^CvmpPR*vE32?6k9gl6V8z&9&rp*jz49hUAd!@dr1ZUfvQ>= z5M@m~vKu?2vWxP}MwRwTc5+qnzRHfM^2G$m(SR!NDmjmHem(bsVOM%-k1CDIb1YZM zrmo>$0=~_8gs#ubX5VJ_?sU0V3;3``x$X_6-T~Hws3r z$%-exBzhd?4d#zcM0)#q!|@i=0$4kc>sV9clGtt4Bpx-bfWDcoP2^2LTU^@r&7=>V z+~JMRTO_^PPbN2eyYG&;F{!R&1)^(AooLlEirjSZGB4K2bYqUh(jJA)P1$x@m&+15 zeVwpql?Zfe!)mBZ-`kGJV4C6caq-RR#e`*j<@Gb{qg0EW2^S+Df}Azb18k}D{0-%U zQ9q4xVRL$%jk>ic154^r-}joRn@8WZY+O5lmkXa;OZ@~pya)_PMY2PeHN-5^50ULb zN`FKy>MEr*+zXK~}jhMx--0?MGjt!x_-A zHn72Vhr9Y+P(P1yVRQD|TIwe0564R-)*m{cGU*R8tr{*`J=C8`n|Ir5($Z3{0r(cV z?_6J^8sk(DABgJRLlLfvwuC!UQ9PBo#un`*>1jE)cEo`s4)f+X?FiO6{ztBNK<1LlRg%B zAtR05cnuo+bUo^&^*Md5vds`S+06Ws)+X7COw&1iBJJX92(r7XSxb5nJAFzO=!2&1 zXUL#kIfKV+9$S|oI?@EzSbJ{j?E3`iN%gico=C&F)LNeJ8t^UA{`J&;HZ?sL^Go}A z34Yn;5EsnzJ9xW0zts3(-z2gDBc>d5Ell}kWP6nW)W37!mp&lPFB=nC`YAHbMzoVw ze`P#TGrJOK<%fE0>)N^SUFBGdIV$KK!dsfytbpUJD`RR`f1057E^?Dva>dW>6VyKR zFlUyn*6`&b;6VzF1(>)R90zv_)ZPuGsa?aQhok?_f#d~&OYhY@i;aMmyO3OjZF#V{ z&=i@Ty$VKKfkUKqRNt&@pL1@;gm0A%f$FN;$cUrPjmYTieZ1CsKx*+jo?+*EYWbDE z)kPFGvGp%A$@ll-B#ZkBtFTqdKnLc#7>yB2$G$=P|MF>q zYEF&0RAyrbiV;|r)JTC`;r8F**pbpB&2!Qy150Y4ulpJHKx$FWY<{n7G1|?e3@oXh zzV6*i?w_~;_c^X>b5sKk&?!^h{eVcr>#fzSlv^oW4N|(K=&J+C(s3}J39?4XV?kCc zc>t3UlgkG`?SVqMavsM#T=W5m~jsP&?CFe^{3x`7)hcBEWT$UI%tpE*|Bn8i6LoE^{5J~pkoUb5vzyub@9XiVAE zN1}5=M?r~!hL3~mGe1*@1RZ;L;41v%*tz9}r(t%Egethq8QqUlB1nZ1frF~ue;Dr@L*^!(zy_X(@jieun=-WU_e?;a% z)^IOGULvGT-XqHQT#?P!ecdZsaSECjryR+~)Ba6jbIKq>BmWe;D5W__Dz!v*EJ==q z-^$=^LVrt5juq3>?_M+D#unS{AavE0qZhMe@iP{C2f;oO^X$6Luy@hzGw--+82$xc zz5~kBf#GY!Kr(UIAC3{(+?#W24tDMTu4{LxkDsM-xw?zgHT|1CxTb{h_B)%~pGtlU zQbZ!_dl%TouKvsAmWe)2+_+Z5fv^RNVnIT7p@)LSTh2K}xq|h4(<#sM;?v>Dty6a9#>! z7#xQo6qqg)Z$xb{(9PeX01h6Z-GMn#<(gk-)(x>N8_oeFS5Je+!k)^m5r17 z7Lh=Q$k_!^WlEm}`=Dl_I1HqSMZOydvPRS_6n7NT(rC3;{8*EV<=sVcg{W`k! zkuaA3!)?3VrKuUnliYO$;AL3+kWu7Ehu1)gWTf^?kfH&R4+`WkKALk|{q3crk>IP< zWM`qNypl(LA&`PU3dIAdbnHx-g;r&CA5e@$HtCC(@Hn z2z2_gUWBz!{DJwRUX#ood0@MNqHiuWcMa#Ur&frj4)heAfz`t+wSm`$`YX&esGmo< zusMY97xk#^$sOVQ{+Tyb%6N1JuxTD$0oIVN$Y*~nBQ`*nh2ngWX?4R#AZwI-9b~nV z&k$Mqn|`d-tY$w|V&iQjoE~l$8aH9&x|&&XirMIl?c7M+5Lbpw@$(R=uP;SoT(Luf z$4tN1a9CpGU#OB-g%*G`Q+*O`FtuA(cDMAj%5u@|$%ihW6bngET=BYqS6X$utiAVi zX!#PC38fpi4R+=LSH50kzex68`d>^vkh4CHBr_s+4W-`#r0Ld!Nky+&Er#GOtGhmb zUp|W9yaZ7c!3D@9jk~Gn`(0f9(@|e_u4aP<^Rde#Iys$h@bx$6`eji36QF0V*`tCx za9a!8fHc)N1esR1b^%$VWP2uKhG{iT%|N~tg~;Tu{B+NXa==It`>)kH}kz zEN$P8z!3JvKkanEXaNn22++LxiXTMXPdhE@=M4PN!U(ABCuk4%DP#d*((;}f*rkva z;T#x`FRuMO27tN}dB?1}V6kYIS3`XQvR27AL9)mU#wH?5hgH};i&e?0ZM>8yp_rqc+vq)u z*HLWuEKb*Awh|*^(VybiIwgCu2 zEFMCgm&f9^o`bENfW?n-=Au|^G6g~`rgwKzJ=7u!D;8%Pe~86uuf@f}ztpgJ{r^au zL@W;fBfw%iI&h6*u^);Ji=WeR02i~B7>lRJ? zn)O)$yVjMNXZ#@+$8~fHFO<8VOAU)1*#3!FeD}8ii|5ekLKKUSq1do^uoknG7>o0e z`RbJ18`sd;4_vxENW za%t0F4U3jm6pIz#C*I3Fas}s_*Gj}+28&yH*4tdo@ukPC~I^aaS#7D=`*lBlFcMxdpD8Pgb%ANW@!7Q32j!o2v_^3FAVzajoISiHxxb|Q0> z$KuA+d3h{WdX84GI1S^AVzGxQ5Mpug_D+F|zZQixFZMM45R3CF9sdyFUusx9{!J1m z5sNh~0T$n)I}%YWu8LyA;=@{OSlsysQPZ$^CnC_Wcs)qN;;c7>+4AD_AA-Dih&J7% zKt7+NGls=xF_>U+E+M(J+K-0Cmr2ex=EX+rGbt8p%rzkv`!DBQ^XQi(NEs}y=~*wQ zfuKAVCsOC-v3S1cU@Ir&#dUd*b9r%lQy|3Ro7*}C7GmA4SnO;3Ar=o@*6}|t{7Vgs zb6+Fz6R~*Lf&h#C=|C`w#SDrKiyLV%TZ!{xBQjr|lB;tH@e}n9APtLKvk*QnZi=RX z3EHos!|rHaT);;)F)R)gg9#P~5%@}%eQ#LY<@+{caf4Sy48`IAb4`fFC)zpJ^yHhU zWw3aaXZ@3Md3h{WQRn5cxPW%ol%o|aHeh^#Pcms!AjIO(t(^iV;SQ=|ahUOkSe#wq z__q`OrG~{pynUF6#jf)MEIvV(Iigtn{aYzEEZ(fehQ$qVJ;Jb<O8~xITuXGls<%#9)HOCPH%QkNJkh|B@PQ%!?Cdix`T<;pUnUi@pD; zq!qg?LvP{xn`N-LjAuQA27>Zf97~;-$Ko-bqZKT!z=NF2iz7^d5R32nmnA;Lx?8bW zYy2S=cV6rio+|uH4U0_$5-_NFtyC>BSe*s!>Y78@2PAoCd(|3L&!RyehQ zG%R*wA$(q34NV&sAE6WMXkL7echO>4+)WH7SloudS3139SlqDGW-PA!l8B*L9Br-% zv3UDm&NbB^6Mq>jp6gk^pqW;AEdKVQ<6xul2%KkY3|bPBH{{7Vgs+mM3ESgiOuz~b$6J0pt4&%O%s;-y;5 zR^l;wWgbYq9nZ!U@X1qt_iW2`opn!Q!{SJJv&JASjQ;Q>pXvd2yiUXa$Qu zVti37PA~;REWW*&!{YN;cPkbr8-Iw!4ZIfD3I9^V;*{seo{4#J)E5C3Q*`JU#o|FI zhTetZuXGH|#fHT?ywy{u`1uAAI9bWLAPtMlvJgHm{_(l=Y*?JAO*d)fnY@b@!{U}= zFu~$l1isS2U-}yWbl=Oq{}VpVmAwNak&#PXw#WhMWL`A6dr62KyV|)E4Z`L~;}LNRZ}?#dKPmANOI^ zxZk+pT;(c9;S_gGK9H#A%Wt)EHY;uSo5xL6etRT%Zebp$T4Pz&U^r3jlE`j!?lCDS zJo^v*M_(Iz6O50Z*HEE{@)3*(4Q<79y*>%`M`O^cP#jET zA@iNy=kwaku)tQ=G|TOUj{E-N(DWpBv(1o?(UqAzJ`ZphnYfMVv)?mfLQS7d)@hhN z-~ZWl+MhculRl?<)~+;Oluw_%sPppab4AZFoFJO8+2osO{UZOT^(w-)fDHsK6yK-o4jy#${wInpeLk+m zY$XoQemv#!L-`a$^JFc(DH7bo{KC`149wE^Up^MVTKYUfn>L_b#Nm_8h`5>;SM4mZ zyZ>Q`%cFS5UBUo&N+fnOA4%+9r98*e#$dLhKGQj@spDLIdA>Orp=ZTS=XOuBlA@+`mF_87gaA>SmRChkdW;#_TFiTk{B zK3wd+Phe@_G&*?NK?EMPHMMwPVv8G~MZUy0wxu1t8`c3ID4?$o$cGW=hxwu(9~eSb zp$`&Njk}jpPd2svL9D2xJg8ECFX^a>*TKRlRX2 zd~_nVKuxy->1+KEB4&WJBy}H=NK)b3DRU7%t&ApUTT<>S*oeRr7Gv*2AjU-6qU6^V zE0<@vmT>X=e2A?smRn<0TJI2YF4+7&J4$_P}h{%X>vz33cj!T$=&$8JR zk+_m5czq5bmB7O=f#R8Y;uifd#=kq~Oj7eHbF5?^_R!r7MS{ZbbOOfj?_RVgd1-i} zXf-Mt2cmfCWUc#O0-4l}eS#wv1pE9?f?!m&Q=w4&x*hpWzQI8!y_^HSIylKHk4Z8@ z4v?O^hw2j0TO>z_ktwnn~){A~JkX3DL#3`x3E zqNFQDC6za$JH0QkFqG^$7o_IsuPTu6)u%0G#YgIvP`eWw=+dfA+=4H!j3i^To!Qa3 zRAC)AaqCE#E10-FLdc5bgu6gmaP?>T$dMb9#sej7#q;wTJXgq8yi`|1;A%%hhQ9CJ zfnn_CxH7RpvfG^^p)|cCyW4o_bw|z)MX_$YgBd(FQ(J;NG3juLrP(^0n!gKGot9Yj zKar}rROJFUb}S|>$7Z+%y6DgU>?9d~%wyElv58G>g{C;;Q@W?O+$(oXul`+U+Q64 zgkS2}Mcod(JSlgyWt9DxqCUXO*!LFG@6J|@qlF%cT)9nRcgqFcRdcI4`R3&XC!E(1 z7E(myOlsA?E+m7e72P3*OTD^3hhFq0nGrnKsLwRgjH-}%P0>)uG#f7XQv_T{D4amO zW~GFpnKB4{w_*;Dnbh-0I#6vV)yE100fJi?aNJz0UfHNJcj1wMUa7y9UJ^a$4icu8 z6w5Yn*MRo3w-JNA?r5(t0QwTOJu#G|#mcy&Oj8>Fy2uw;_2;ErXQOys2iv_TVY!T` zwhQ$uee0&NcVZU+<`p-tCbu@WN9R@ z&~s=~@?OM~7tRH>J*ZECUhsLR=iU`zAav?Nx!5hxJC-s_0KE>>7ej9`zb}!kd?KCH zU477oZdXP?IS`Qw4fo_gw?jA%qAnbb#U#2dK+< z=Zuwk(V63r zN#zkY9V>*iAj%Lo%fEtgCe{dfDNjJ$FOls)H}kyd8;7_prM|s{6v^^`0Vd*AGRl5$ z1&G@fq=-eOTY#)lO!WX+tK_O6tCd`a$!z6QgOj|UIkML$(ms^2)X^+DNopD)^%ESqb;Jtfs&Q`y zjywmXh()C*f~-+j9Rjje$pK7eE8Fdt_n@Mz#E^v z5qRU;K}p>mi|$(S#-f|bd*f(c|HVIJF~YwSvL??0Vhg%xBEL1Vv+2TWchO0_@d1yY z?iKJzSlu150@?f5*8^{S1Jb-P7o>UPWsv5LCz;Gvp1p69dG_E#@z5I-NMFq#FCRsx-IZ7rSyj zj5;sBr`N}G4A(Yd$8(=FiUPW)SMh`1jSTnn`gy4un}lEY^g0-SxTm+O=dTm~rM9Qn za36_-Bas<0Cvbau$Gjp?usywH7Pbra^ma$F?dg3%+uPA2k&!QpnsqW`C=}nt$(IcL zgq#;a3S5b7nIg=21=2S!OV75aH(r}=(zfoW0~FwF?N^Dh{&{>d)33v1&BoK?Pm3>1 zrIza_iE7!5{DW;k3Z@qMBm@2ag>+ZhZ!gLqB+Q{S*O1+?s?2-yX}+U}FR?YCOuiSt zB!VKb(fCgdm0o^@XLYtDgedgA_}L<<74RB~`1xVGxwIr)hRMDhPW71y>;`QhOZ6j7 z@%MD3IJfO<@`6Y~J~&qVn&r?U-R0apA_n)C=|Fd1OT7}Gc1e0_9dq_<%hA!kpSZx= zJhCYfe-o~Px2fVL1rEfdS-{GW@lk;^v$LK;@pU3gC%r85=1cmMzx0!@+0}G8l%YX$ zK&Gjxfz~!vSK!FuAEf2gxggUT9WN6J_^(6wX=9pQ z{%+Ai(`>b6oiNQ#{Lr~@Mc!pElV)o@>&Gv;B+B8PkY<0p%W-f%NVo;@rso*09I-Te z9tX0!k<--_2-EBbA2YY6{ROS7Akf|_RYVVeEp1wpu_*@?7+ z89h4r5XF{e$7nHIiF3yCI8kD=GC7itpvX#-l{^Zh!L0sHDK(hYp=nFA>uS?YT6vF| z#2pEqj0m2cgnufR*`1&~wuur{13sNXAt>wJH+h7vr;RWqE>1r5J-N!a`?bP<8}l=l zY>G{NR#KUMjV1bdfgxC(U(s4ShoGI8`qsMbJDQ3O8%2E|+*+OWQKz1{oVdJ0mrLC^ zm$4)oO(ulXR>=lS@SNv)#t2XR<6c$c_$$u7UNBE*x1fXcRiUY$wUn1jec&_EoY};s zN6a><#u5l~$ZDKhn0s%3PJm_3zm~~(;zf#)#Jg3Ku;WRgcpR~pJ_>}Ft;<~M>N(CZ zmlOIp&psOPiIOa-SMZEns|x<^-v#*kTNy^)MdE2EP}#KDG)oEo=7(yQY7ALY~OnF ztleLLV`L1uWx6PaCw!jq*e)0+hC*ZW;T!OgMJV5e%zJPRsGP@skb&l1ZJ;x4E+R=e?VpfD!Z>4#3%5|K*j9ao?{HT=Y zrNG{o@8;i`nMo02?u*Y7K6uHOi9Ro=K1c8h%lmvLd@6mAjUNnMd>cp+jY{+I7*Y#w z)bGZPMpBr4I9`Ij1E)VqW7L@>#7s@#RI^N>xWhB8JN9|lz&rM%o#5Ef(U}2#PoLYc zp6K`5=$@r>to9Uf?r+-2cCtxt^Fx{(x(%ZPBIgo<+R;2ZY$^Om*U&Y)|EK}Sy**%u z=VUXuYTPHuz8}0@%=fp|iyLaiw+&+8T*ue^UF)$AOS$;PO`5jzZ`wQ?ng7Rq{|SaP zZ?oB|?r`Kk3x;QBip``CQtn}pA`+2zf)vq+yq?I?E-OcKF`ZhDw%}14k8L75iT5{` zoqsnZl=}qm?@y8(8tU3kZa@zMX)blpJ8n{vVzpzek?$Nz9=-ygH7!4Unp>~De#bIU zJ@QFzwjw(6nIMwY4k=f;2P#K0ThApG;=F}V>gQ4e{7WkR`6^qe4=2c6s`!>0BaWlY zNrPw4M7|e2-%i4}^ty+*JVDSifN6t9 z6Z^>zhyNwAkeREy{H5hqV7qlce0u^;=px)7VR;nnH$EW^NxSiAybQAla2JY$&}W(| zXB)UL*#7E_s3a?DYC*1lrFIb8i0#+HrbjjRX`1DP8&j8WQC=hE@~vG0(Zl|x^)<7k z{aV!L-s$5u!j1YVq=q~Sz?S;xO&54WrM`WnE#mvNIJ~?KN5T@)072m>km#sT90IbM zd!f?4AfX0jSCDBfU60Ao@Q97q-f)oFn-(2Bf1)s2(n+JU;!JlibNAb114`!EzJ2M# zy3x~JeYQ9?C^C`?U$X`?(ujAx3cDitFaD zlYhIywuCxd7h&;x*^(L!W@RX?%={%J#2VXp3Q8Xv41J?<&+!i$Cq?ZeQQ`bkxsFd4j)pl<7c%zmJ&_gzm$S1^&Jh zq=-c(yB;LuDikvyMPVvE7o^yS$df=e%Gg2Qe*{^p{vJqVDNjdiF&Dt!#aEoaPktQ! zzP&B}F7Sj9{-z5ARnPFTz06cGlG8R11(gWs^6ScfyZrVv58}F`={`{WxzC?NQ7-Dk ziT-=!r$-%Vxp$x6T-zzsO~XMN&^2NVaq#A-FXnL{COgIV{T{)dWXnr^SqHfNv0q>3 zq6FV&rU$-#{}Caj3-V6^WLh0E17wYo_kpZd@@A0c>MTfe^%x>cG%HJX<~0A($1RV+ znKv%UyJYbGVTXXj(*N$p{yum9G9$r_k=%L(%0;!f8}Egg#R~4{8^`(^*n?3wEpE`s zMRW)~3H58G+&->)r+*h^71Yn8T-cl+HbFpywtb_1YLfvMxR3UAL@nqhv9_fpcneBt!7djWqHPrFGjO_)9?+?TV zw|O*I*;||ZkarewS&7#ls5n{nbz}*+EOi+i_a8rv%$jp=X;#uUnq1DloEL(&QIqMr zq)^&6L=d57-63H1LQU8ddOj*b(O3JXvI`5v9-JLv5~mjZ{^0{6iL^^h7t#fneChZH zBX;bXO-X1pl!sCDo`3VC2R3j-==hRwxk#C8&TXs; zX=p-I(g%`DA0+vzAVnl1mjRj9;95vVDCMTHTHWv6M6`j*nE`Dv@?kW|az>MbgbQKK zI-ItcOjok4&3}brZ`u*d)9*quS4CCkFPhciXzc}(u8l`)Q?VDOM{8+F8^6KOx5=6Q zAvS%PqqUT0z0}`6V6Y|}t=&MKm%qU<%5x0YHeyF>YtdjyHo*~7W|%1u9<5zG%PH{v zZNjfdYr~B{JX#y#`JWN~rFOLT&Ug|BHyFl;M{Bp;C(gE`wZ61~jvlSmq1cYr*41LR z5{Ki|DWYbblB*%NuphW|*=VXM6gOuf{64~lXxfg}UZRs3?zu@T7a6VDNg{5xa>hm- zDhB0-^9w^@$c$(Uj1qbELnRI?9eC;@S|o?SA?68uE1twVbNvMI#+x_}pBWtvca!c4?6<23ICds;RaA|m-`1o4Q3tyh zw5yKh0)gUI~R?I-zUvVEV!*H;YR&W5m+*S~}PQ7G=qsn1R7thACUmu{m|g>34lZsL9J6^7sAbdfsG{kXR% zYyB1HjcE&l?JMPW1^U4GPU{meZfT$q2*-04BT;%x^A(A_geCMt)>$A~4rV@%$kN|; z3PAM4G@IHBva%MC^~RCXq*QYG@CAPX_`(|^y4V?Tvwzd$iF>_B@oDCyNSOpv(>l;& zSTs@6?_b{@=y5+t(_4w%JZVqsWjOp{Mq#DeJSE^DAb6rBnka}tKD_mnjF{0 z3Hh2AQP=L{ol}raat%5^&2#Iyjt@QR0%q+7;x98HALm(rq&Zjl&jeIb=jA8lU;M{$ z45#@ZPwHb6@+=R?xy)tkRC+PY6cE~WMLK@}h*RLm>xDl9{u#zEv}UAS$7ei$Z{c5R z6Y||jL7kA-h7*u8EmmosyRz4^CF{ ztVmiU=1F73CgN=(uSe6i6xddqZqmw!aGnY`Z?X*{{MhGuNG#1M{&zA-mz^X}vz5zA zDwMYvfmhi;dWXklx%(ztJ~}sXgJDx_WTPt^$&;n*wIaRca7qKmMYAD&1>qJkmC1j? zi?Ad_q2E73vBlQGIR2F7h(#RY>lxYA&W!qt0sO*%nWZ`OtGqGe z>42wcE4l78t~)VOmnTL@s+pvxz6)9~kmZCmd+j_*uK0b?(%__OrS0h{7WF@nRoa+C z-alU)po{w17E)?KK~=8fsf{iKKgbh*nHY|DmqYG<$SJS}E8vpmT;mTH^%r>l($&nr)N;t;(bPN^^~1v)^2$wue2e5$ zY1oM7kf|s(J`QCe{0u3Lrh$n<@kd%8$b?WU zcjB0}wKd~Y1jjt-9F9jTBd!K1yW~09ALgNYPH}&*pc2C1qMIeKIF*EVdnf>~yv?Or zrm+hpn13f=(FK(Cts|X|WYc}=2{)2mtv)@f)Dx}B9AIpbR^C*f?)ROts?0;vZf^I~ zaiV>#jF+~BSoAlhZ@bc4$E|f!{!N{aBMbBR-0lw=N6E65-*S~-rZBe~b4R3resAeU zakj)8dG8I7A`+3aK(ff}+eRj#X`%0^<0&tccD^ZYLAHaHu1%%L4DU^7b7pw@9Fb5n z!#oR=Ff$B&zy($lo2g7@*vPY9N25^r%y2JtUOqEqJVz^;p*KcG%?w3TAj}N;sZN1^ zaL*F~muWHnFf$DI{BH{XQp*fqjv{*^GYkteLt{gb8HUo>7R?OTpx83QR$6SC;b}~w zEHkVx`OV#=?+ns1!)`2u&kTLgv}J}lGsDdAdycr>>_Q?A7YaoI*`|^Je&|}CB@n#X z{PkEnFlW6H8oH7N@KFG2UD~R|UWK$ajaRp>S7p}42beMY7v{Ppn5(Ae^SOJjqsm#t9|3T}ztVO9J;_L&C{K3H6ciat#)cdy+-lI8<+jJvj}? zMTXBXAe*K*Ja0i8;^hLe!Lu$y<3ag=>_VNF56GX-bR4Y&DX)5fb3xWVL-m=`F9omr52C}kb)YJ=`bMIVLaQMf_|^;$uJ-*P;3EtyB1qOZpIMF zxg)r1k%lJgXge091>}RZ!fXS@-HgOs#sYFLZMsP-kGO)kU1-o)O&!ra+-yb^@Bz8@ z)e?~Wv{1*9$o~;``s&J_{v2R`YGp)VHpeU!3tT)P`xvO1Le>AFUp@Zg5t5>iNm~nr z%rN`Y8bi3|n1urije(jelxu7nHx{Z?&*3Q=Aw1JpIc;95-!)r zSlh7>e)L?F3xf3~ZQ6qMsmq94r*(Dn2nDpiTv0mqYMI%|aO4(_%9hPD+t}yY>AJ8F z@nW90fV5~MQr|sQgjA&VG{=QVJ^2m?zqywZf0=pSuAX%&O$o~*bryAA9;uT&M=MC} zk8x3vT4M@?NS$)KQ($#gzyOfh-uOeLj`sZDT*CZI4XJ;fLd^rI1Hxftb~Zrj$&ZFe zy${8P)P1zrkoqp?evj0hIKlWgCVPQ2q#nXTc%%+S)4&A%UNPm|=n61;4?D6$!2?G) zcXNeR)34=39L}zIG?Gs}DVzsHXLWOUA4v1OFk*<1lx+LCGNXGiWYnFN&93wdA{hht zejH~4jBgxTVXuD2M|Q%b>4kjmf@<2O=fY6)7IBnjWnE(!Z{m0H#_Qx(gV;@WS)O*U zIFm7{Ht_v;Y2*~BtTcPDG+UB1NCL$x+MER5JW2eoNuaOAM3@AQztzRiI~NgunIy1- zXT67JW#yB=lhk?nBrw5qw2}n+V!YKPFu)WDlfa#moC2${0xk)pjXz8RXM6t7d9Qcr zC4t{gq~?(X`i4p1`OAYOa6BD!L>GH^q1ci@e=W8o@FtHbJ_+=ZROS|Y8-uhYus;jo zlfXbUZAswUhr%SVGH<+PGa|0r1{H+ceoTV^+HWimBRoq!bKoVO3*{4+b* z;;v9^m=?nMJro<9&(&gsbA?PA-BRf!1o32D?F<8Ha2|_&JzFYWfTj)3-L&Z@t-K2d zcs3*Awhhkp93QR2`ISrP1okd^s}ITe@JyT0yZf=?Ohs?4IWt7>oC(hPd(kF&IrKi@ zS=Siru*p_SxM1{A$@#vh{h>l>ZI z2MPaDL+>fakoZW(H6eQYTpFNv&ix^JS4Xj-cZL?Tm3ZHFccj}oCGSJbvLCqgW{`&7 z7l(@t4ZTkjnka4zy+>-(O00H`Jw%8y5C1y=-0lY$c2htN7>BPBd0prw)F({gVm??qcz{A%HC zG^5L=a=*9dA*|MI?tikcH=_;T9aoZj-f~;(IV^L<>biNKOC9pEgIWa!P|e`~SRBtgsSq zrM(lMZkhPBTjJBo#HT;hCH3|{dD?y9Ut(bZFEbvo8WlSEp!bf5o%M>@Wn?k_7(?`1 z;qP4}W;9rzOLKdoRo^^UD($3dE4HTD%(cLATb)I#;d>;!%@sT^o z$roICXN)dUEVws+7E$6PV0j#LV>^&*AHgQ2;h-}VkUpri5~PSko4~gdrl2F;0hw38p|eL@d0p%mK?(V)d_B}UUa7zFB+ybNb>la)LVq+#uj!vq9|wVTki4G}wP z(@k3W2#&yPM#R-2g1*1P`I7p5y@3kjucAyz4sH?7LP3(~i`bO*!Eux}I|$8+{7J8) zjH2@3b(Hrm5c5bEB-XiiYW%O?j#3i!DY|4DlLeE~K(JnM!CqVheb*JiVn1Xv`h4l! z%sUXWpwB|_+dJ5ke!iz4i_`Uz%O^+qv84)E6QsTP!SH8TJ<0ONeR0nWNT=kd0Y)av zOo(Q#eh{RkmD`9c^@fS;*>5!8{C8;^pK}p*%*BGHL}|DF7ipgX^i0~SP}&NR>bx0k zb>10R(wk9ol^rplk#Sd2)@o1&jWv~SRY+&j zJUmJAX62JVIcK3LQ*5gMCjk)1(m-ZZkOnqlSxQys zGJ3jiA_Cc%($ZF8=AIm}hUkAaXTSJNcBQcA2X3LB`Mb(VGub)cv1uaT>g>6j^dV4k zGueZtyTDu-3v9uI8+l%O+LiCaI|Ay%_{g()q>R=bxyqqGBCVEq2gDp-DDHE%n9eY_ z6G#z>0NM*=T7BM~$kOAZY$kg;Dc{DVdeBhmRg>x>cp?5);kTDN)edFV%OurVp0yXv z0n5*1`%>rSlj_=@V>pFZ!c6w1Lqq{hsue#b-fGyyOT~NHWM)mO9gIIrs=r_66dob` zOD(DXCr#pDv!h2ilO1@b0KoFww>KgE83Hy%vE{c{wV18M8SEfTz3P;F8X-Jc$!XDu zE)?eu5t|s+-mI0LEx*-j(@k3WT8_YMM#Ob9+4$Quw&zb{kZ`8 z9wLIpX0i{SE(WyW@}wb&UYU~EoeHPbE&iFm%LgplXUm-tdG;gs(jLYl{zn~?fg#b0V0bi&Ez?(Mu?1yc6kDeMjFw+~1j!0Ah)+c>XU&;> z`*?B9WF?;mX#w>;_UPDz%>30U0&dInmub^YT6qcwPBd%tO!mxTd?q^}*;dkug`K4L zwXmrUVP0ZS?8*DPyrn8Lx#=2fD&5|Y&ZH^Q3W4%wWy?3tSt!b++bY1sqs2HX0MBHf zr}IQVlU-k4UXq#YrlBlPogAcrBUqMF|5IgK#2mFOFFF1-Q$GE$3yYDFWkx(x?#2Un znN0agn5McxK6C8KLRL1gsmRagUrCMe``FQMeYr2==;TIsSH)8&as~69p!$vI6WS?5 z1~Aoc89@U_pHl*J{47)O%2ic{U$T(F!rHFZJ@#K`k2|7$NUy`9PYT8Rc((el7Cy|k zxKd;jBW~f3u}*7s!Q#3wtk|4k=d_PDtz(gWT+n!7_@HAzb;&)^Zya2!ZSL^~& z=79cef$lZ*q>!1XcQ8wb)BA}SK^~_{Z5%;v<)-XBDl^OyYB+*yJ;qy>H>}HyARRpG zIdl!7{0LG{otGa$PVyYXDVHRSAXS4z0Ubexn*!koa@K`TfzNoy*G=0;7=Ji|?C$yh zEBs4s+Wyj>Bu;b$Is6MGrK~s>@5s{rEa z^UEbRf0Xj=?wfy>hhh3?1e$*R82-UZ4l#Nkng8M6C!|kcX}vL=cin5q7t>3L6dS`e zAnDH$_9wku#g(%S{A55j2WpZ~_4JL*xw7p+6UfR}KZ9j*JfIaawbnu*Gur;l%2R5L zpHO4WLpP&^3L8608|zDrmFCeKM#v90lDpcNA1>-gVz~TJYvB^+hfbqicwIV7#BTlm z^LdW-AaZ2+{BSaLUOqqU?KxV>4?pZJ3TS>9Z3=|>VSg{xv)Bee5M}C&KgRS+swJBPfgZ_d!~; zw__pvg|bD%gJ{1=o3?0w>QLg&W<*?F*1PF~zSUFBXB>6~QV8t&9d#779A%~}26A#v z_fEH@I^*;F|A2!8%WofTP6#wt#m&)q!zUb4yk1*H{-O`kUcw?){_rss@T9TwEBdQ6 z>lhn#&t>DuXJ=kx79`w{ccDu4-JfLE>zS2ISW(=USlbv&TkR@lM3&5qH)w^iR2by~ zqz~_tml5vz@~Ig@38V(qZgC#8Pz_OB)GLbT5y-*GlO!8cXd_Y_T*&i`hy%{%l3V8=0j} z$(xWtCM$UbNQ`%GrNky!=&gNe0`;NNy9(Obbk z*{~3T|CKWx7IxruK^gGh=2=&!Ica(D_n^+pgMTsUS04QLU?cEV?*$-h++f(R4q2}Z;PSAz<&!u z-oT#&Y2cr+gV@Bt|IlFp_|w|7f&Z)nh@0|1i~D~G{?sr5|0;70{GH{mLUI2Kxy{O7 z<{0?r(_f_*4>$0SVQmHcZ!-(P|HXDxslIy?v);_C0{)@I+D7niPlFO=2nGKP!$JuD z*H3p?*qQgy%Ygq5&ss&JZF%soPo0+se>=~?ZcSKa-G`w|!QW&Ggy3JBo5ysz*tHSiB-2Lk*RA^3XA4JQ$TEfYb*J?rZ<%_<*3pHb)KBWRZAU~D8r&`B8oG=k=u0$~Kb za*9)62UfuCQ_M5|FoJIO{3{6mQj4Iq+5U*2Mf`e`e-HE90|g8S^+GZGpD==6MX^QD zX84I`d+U#Z4tEfe#D*4h`3<{5ffqYGH+KkJcs2_sr^9~P|uJ>+89uGQ;U8`DjL4RfZB0{!{dDeh`&rgRe9Di zG<7QH!Ze+x|_!hA5beJjaWeay^oX{6nnA|eqp~3nzn#y zIv+h-Kz%-txU(4%_x~-R=A7u<@g%Qo^k5)999_x7YMFpq9T8+&j7SFobtsdzx1YFy zPb!i! z?Cd#OiI^`jh5|X64yJ(6?yz-lFV%D`_cdawjX#W-)jj`Z!oSoaW@2x$CnBa8M$Acr zgNW%s(~ju!eE^CrVoK+t*dpd^9w&Une1JS*5%VfY!`iRCgxQ9m1^Y?Q7BN?8(-tv} zdl7dwBjPR@G5Kmr>W1@5A+T?C$iDxI;7&vQJ{V7}@P5hPgALb@lFn_!^~B9YCB=1D zb90F6nqwVUZ`+;t%iy}wvz|qVGv#r88FgMB*T;K~R&c%YR-%C7x`!zc;`)qZoC2R< zC9k;dY5XCsck}!Y3jb2W_4AvO_`vnN5Z6~T4r~rsDAtS$ab1gI!}Y3KY`C6?TwkX% ztz~f1H(AMr2yVmm+AM@02~udi-2Zs6+S$b-pP=6v#*zi@rYq=zs zY5WEA`1C>2RCKsZ!j1ZesqRv4 zzlk<6@A_|t`e~Hc$bqr_K;qh{TZ=NVq2 z%MZTFl~2V8lSVnS4XXcEBW5=0)}jn7skMFGGf+1#7`i-a$w$zP> zxxTkR{brPdEp?_ZuR?hX+HXet!j1NOqJ43h%O>0T`fu`Lhu$G!mr}%`J{&9;n~JKt zl;^;f+Qh#JbT#VNqC8Fi_-yom>W(t7q@Fs|>2?6>HljQ)|D+mx`PL|JmVyR>MUYJf zsqUx`w$$Oi{z6{M(>b0-G<0iWZrEmJ)R(AoKh3wFe?RCE)K5!&{Y^g0Ce5lh%D|HP zbePlaJk-sjZc{hk8IMkU_`nOE{fkhMxq2bos#UXV3PP5@c0 zWIaehGO2I@NI;oxZGvo+$SD+$0GU^EKajOb?g}!kwGt|e|D&;*(d9Q^c!k9~KQ_s>#+iTMrNq$>fr_{Ly={VQ% zO|QYFkr}woWOJ#vZuG*81`rM6CyQ+Oy;4&4Fd|E|V&N#!!5Be%D|G^+}C}Hm-{go zN1gX6+76x9!@u`*8P_k9u=fFc&4&|r4t#heNRf{0_#coWC6T9ttWl>O4YFFvG)VJd zKaj{6neAg4CNKJTe8i*vaoHhPxaw~{NN{)ENt_ujGa-_cFWOO52rLraJ?J-sqEiyn zR6ZFfW1GzZJG0Hj+_67-sRdc9>K+496d~K}57H9k!sBEKU-{}2!0c~~Sr5<+z%9_C z$|)jC5A7`J+y;P=drR*&JRAkm29F^`;#_f7Y7^E z5PzAirzr&3qPF`UMuG=~5NKS;zcPRn)UBtv;nq{<9mLrXv`~DE&=TEJ z{bhS#K{kL2#T&Gkt;7Rv51h@^DS0_I=q4*U8l<86&eg>xhTEIbv~4}@q)oHZ-1Lzg zmGs;5$y-lt-DjYskgSg=n0U5B3jmn}r$+c!ht|NAhgy^~n_t|_M_C?aU`hS4pL6rI zyNF7SCP0~XRGd#t1$rPQkVL^*F@bKlvm3?sUv*(A2@_hOMxw%gd4JT zLi@F-54O~LzW$S_pGSSQjc}v>JLo^i{He}fw+py_nS8%1uy2uZ^|lga(j7s+4kY?3 z6wd^iW?`uGSdcYJ9ssgh$vr`eRf&09kg#r{xDm)kF?ON2I>@||9YEG9`TI5^Ra(h! zLDnewA;@YaUjqqz7K$@LHZ!V7j0ZtBDtQ~oypnm4wMt$BGOgrULaGyW_AA5h`CGGm z4b{x2$6A<_59flo^qPoPb)06nijMJa*?O2DhIB<@vM19|g<**Kv9>4OTi%H;3c&XF=MtZh! z`Z{ge#_7j4A?|EO#0`&#?6Y|j!p%rtq|%vy49jli+7sKBI#%Z;q;mrFTR@*l0e zDDU~P{CU((b27}?CgI!tUEimmZY|2emU`Hi?}PF@%E6X;&%bT6DaspBE^KbB+#7v2 zqYNymNxts)xDC)EpG@&D=B&c?%jD>{fnP)S`kM=!r8|m@ z&LGhrt^Yx$rF&Zc_ZH?FCBFe#t>j#gVlry#Wsoo}{r)k?Mm8vwP6e4)@)nS_O6EYO zmAnXKjgn`8tX6V3NI^2SJQO6LOkXVp*~pHd(yc+}mE1r`g+X*Q-K-a@s{V_vf>+~$ zxP4(D8BKrMOl%bRCz>GrXnHrVB;zf?FEX0;+`_j+lAkXUx!-{}1!S!n|8S6bB?oD# zs=15SRdREXHA=2SWa)|CGMeUfWAi*r$r_a$0kT=iLy5#_x(6Asjic$ND@w-E(X`eE zmvA(l)z?MR=IauFnbGum&)RM?H&${M=aI0HbG=XMDeAoZXu5C($HC)7!e}~?ha>kM z&}dU298DMR<`fv&L-=(xtuy{`G=0PK?;`wBuuyM2u>Aj7_3lp!>S#JU98K5WRFGz) z>8$<3(e$59q}WE&$y&@-;*i>uhrFB{O|MyBNcIDlUJBCk&9n|uYB;?MP1|VNUz=v7 zx$;Tt5qCBt;)bJX!d+G!Nt1?Gta{z>il6p!NA6eyZ{;14!gfV9$49O~LPD3y$iZKr zT;hkuK4D93aF%oY6`PBaX(^C#+mFllqHZn9z>=E2tE)R0b@M0(Tk3!Q{hG~D-iUH$ z^W*NmXuBC@U`gHX>;BYR1BHu^(7Bu%%`ggKkwpX zzZT_^w%y?&vbG!^PKE5XXdi5;Cw=|>Q9m!`CZBLazEf3q)CXJY0sk)1YN+3g@<#s0 z%?q|b-4>LACAF*X`+eMStL6mi#{IQ@`E-=mpd4(eMLRp)Z$Nok$_+EZ4cQ-pY_+Hl zw$wAe{=ul9M}5h=`e`)OKLhoHaV6DwhU>oz*Do`ge9$u(O*Y#|Na>COZ7q-@9g!VD zij+hy-cXopST-Vm09mc%Jdk2pDt!y2SeVG?KsJgq=zGH;^Gee0Z*oE0Rj{>8As&*7ZCQ{X%ZuE2OOYwWSMZ}H-#(Ds+`2Ky zTJ>XBka;Cn04Z654EP6x5?~TJA7oyQ@DY)vb2pSJM72KK1~bhXB{u|_RLmjBWosa3WPI?2exwxbYlhVW@Ki9@rN^tF`j?EtpAtVjG}_=k1L!_;f&(7 zbtPnMMlo`qa7Hl=#WtfDti?8?n2U*1oz4Pw>n2)HR3Zm`N$n_&df8?=|dNN*qik2i#Li7 zZp4z$Y?OjbwfvJ4Hk6N%-IbZmC;(gK%#&UH^`(BM1?9{(sQxEiCicZnPBrH&ox9{x zL!@sRioe-VtR^YWO<~TGwxzs)a>Q-|CcTgy{>W5R91^(Tb1Gs*f(QNe|l2k14M|2lbx}y>4 zP>|@4#($7$>7K@akTpv70$HtOcaUOLYHAgbux_FF&sx$^qZqqTYyp{9@-vXNO1=#; zt>p6{Ym|HxWVMoagA^oFzc+vs;1hW{NC^NUM}y1@& zd-d3?PWqDTw*6vXa_t9EZ7}_u?xo0=oF~$E)5uRXs{Umg(NOB3EaiA-cQr5@{_=4sPpoZz*{`WaMCkj61eALQ9vhwGfaVS5_oTK zr$850z)b?1j6a+Np6B_$?#TR0Z4&tBuOvPufiuEMU;*B?N#KaS;UsVhifs}&P>b10 z9P96N5j73BJK`*EvX*WJ(jxs}7Q(;BvmctaN#OVNJ#s!CYSPNp2rh~IT!Y{<*Rhwk z*r$;hrrTp*&6nT57KxV4KwZ4fW}p_BpRTyp(3;gnU@qN}VvS5{ZJmNzkQ9p7QDLcf zS9_oBOH!nbaq#NT(KwiGun6N|_+}19Z>~g2l!=3FJ?kB*e~W|Z)Oq=_@aq}0GJv*pWqTiKrQb>|+}Vx$_gITh6VuS3gN|ITVi`5GE`bpoln_E!Nl zGHaPD*YVm-oX`7X0W9je$QZaj&4{>eW1<5I z|5DwdbZ^#v|9Jpjn9il%miJmPe`cKizN+E0k#uMyPH+4^iqi^GD^K~MA;f8~4V~L2 zR+h(UJI{JLO$^J=oi3%$%j0yo=U@*c;IzXpqJZMGgDDW=^wbTU0v{|F#c8$ihdABI z^WQK0OAV*97C4+v4sn`YCBSJfy3G+CGfqRX;k2U`vy~X9H_DXH9my?5bWYaNA3z#T z*JL65n6WCFHk>|8_aUNV#=FZ4PDR`pPU#ZPk~rP&5H`Nxbaet|X=s(>pcH5!oSpTx;on*bNmS*PQO?w!09+z^+j>|0*Vc%Cup(Z^ao_jItAvz zoL>By{oWuAr)PZ|;PhlPZ8%*~n{Lv!dU51tGa_ybr&|U%-JU2q#@t(sDL6fYBS3c< zEZtrpujNQ_nu<$TtZXpuw{n|d+_NMaK;%q~c~xk4pK#_n4h6kSjjX#9(Yo326;a_Sn zPLqNP<9rC?wN?mVJd+?2h4J4Vq}X75s}{4BINkQdF;1P5S0i{QD_IB9U_A93v5Cz& z??BTA<2|(LCart|AF*UJB5o@%9>A*TR|@b`!#r&mP$|Gh=KZ@;5FK#F?jeR>0>jKZ zl^g0@*$xX05!()?ZR7c!$Rfne%0KV!>Ry0#hKQ9*STFCoqL|k#bai_n%|dk`MIZH63*9>@Qls z`n!~iwH)9|{{5j9ur&Z{vT1s;ZUmkeqT7{);)Wa-e(KW&q#><6k=TwrlHAe8DfOOT zh-jMQ2T&L%OsW63hKr2>e-M9}9RHwa?M6dd`5eCmbzVNlck~>by%KW#V;H26>oRFm zKxnu0>*}St9KO&TKg{^U9AE6}6h1`wms*ZL?Q^mxrYhsZ9KZdt;%o?7DE^P`3`TSO z8Ys3L|D+bPl^8jDB8%54IrT4b^JFD&0cqh|_)JPIgFUm1^lUl)Xl=SlD__DJU)hX^ z>vFt=pq@$B^CpTkmg~5Ve=TSG$UNRf!KvQT%kr>P=Cq_h35^;yp}Rs#6M6+A3z;wN zlR%`A#b~yHpCVFsd0k}hAf~pwmzI5-)Ft~mr#}x-p@aH9Cu}%I_$v~ZPL;iVeNnZH zDu2OwrpkWpg1FulB>F29w*XnIdr&=y94m^_k6o~4{9_kx-%DO1*Cb1~8ELiPfBE9O z#s83rie@63fqE11Q!G!w*d}hKs7Y8Q19;6v5 z0}`Us?}-yRzf*pGb$))w{QMR3^V{d=FPER+E}zZZ0wg^Uz5TSv7sRY8tM`7Eh|rR8R}_b!LwC2?KJS z$%>U{u1PG9FSkt9tY&J7yQq4+VnVy-`pk0l_t=^I|BBIrE|EX>pvlX{eX~;JTBz#9 zEp%SSS3hxw=gwI(#x<}T`k64lYfOTxRe}lineile={CBPp3hbezqozH*hPy+^~qKq zM1N+QMsJv{+?W2^W+{ z%9qj3Svy!hS6{gr*UeQvFK^ToiWg3+r~uot=k&`~en~T$Ow+|x*~$;(uXB2r zj-gIzJ<68NrCy__^3xo7t>2CA;1??IqsQEB9^Yc46I!amIyqa7C8V*nNmq8#B{TW| z9jMBv;bY}VyRq`9Vssj1V(~q_OT}lC=v0JTIdSZwcIRvyE1XATd!!3(@8S{ao&h^$ zYS_u+t`4M2m3CAcPH)l~q$v2TygE}T?#S;&jGe|=umkugx@hXow2%zp4C*H)d!55Z3|KMK)@ZVin^gCsr_Wrp|r1I;96RGAHpUtR7D4)%!ep)2M zrOl`g#nF|`sP+MAdGegOiEoXLI?kJ z;!S^0=A~btit0bAvbg)7{J2nDk#eoq)iUtUi;`_{rFLhD`?VOK+2DBPGaG!5a~89~ zLD(iV8|($rY;fkBWE&hE>&$HMTaVBNYtXSzXoCi_UV;sF71I=o%m1BZgO=ZtZ7^QD zGaJl~@tF;VE1%imTb$jS4Th4GggUdq?jX$uBi~Q9!Qrva%mxeTOBFoJZ_>GTicW?? z8(c%yOR&L?VjBAX6Gh6BIQZ_@WE+gr?#u=+#Q4kxM<}1!;A@;?m<{$LDI+%66{OkV z@HW;RS zW`oahfx&Dr5POZ2)p0w5G#i}oZn6yyh;?Q*nBP6LK}R}T3T;qN)=RL#R$>~u|4w*V z(gt7toNR+J+MU_p=@_5c;6UXw8+?MSXEx}M^EtCYACP8)W8O)&!H`&IW`l3&+DbGQ zR-l8Q&;}W@UV;ra7t_%DpM-}cZ7^?PvJFOScV>ebF+Q_FTKUWdA0X?Q4f^4D%51O| zNVCC_ZztPe-&kj6gD>c6Pt*pL-^Fck30W_}2Ahg$==*nshb3+B(ND=X7^U5r4IYj0 znGFUhpV{DjWIeONE+l0nA8ZcNY;fpX$u`(K)|uJhQ@R5mwLv>N-3f8k6RF# zimXD8N-+21^0-jEn4lLix7y(3Sa&9EJLzsoH=L}kZJF3ww^(cDo@Hat&9d`<2$eO@ zyhG0uRQXQ4Tqr(D2=b~}rCVc-nLGQ?Z65}zb$V`$&)m6+@|im)AWzn*|Nbck(bEFb z+}Z7oWOuF*>&)DFJH1mAjh^S}JSTMLZe+6r8x-X+-TxzKdmH4{oi~41D=ljN<8)$oz22pwP zYVcJ2xwf-xteskYKL6Xqa9xfd!>h;FD0z50S?ANKQc~x)#-7)zP?yD?r}g>i$(>(L zp5xAkBzC?-tTEGk-Pm*MdG6FjS&#Q)&#kFv=y~bJ#HQ|yRWYfuvFFy* z+5CLSlBPX8#&7NH5qoa!Y!-WNgY!G2aYF9yMKEB~{!IS$om(fL6cfSlo4Bb^oE20u z3GSmxQ81*{x!1&=*XZ-}`T2Ifb8F|A7{9eMF!tP>w^<=k!+liP)dFFyvA@0vg|!j- zdb$u99iiWi@!1G{n)2BQ{p;5>>IUfC!1yjq`c6?<+2%$l+1Hoz$=5=6rJNCR*pFbIUp4R7g#Gk92SJ3kkIVEAZJtJ1dR6Zp3+*IBz_Pj;A-uVBp z_ulbURoUBk0z|PUs3`W>VQiP4h)Pf+7fr@kP%H@6v7kl;bw*JzM7dtCUJHtKaBSE! zI$%V>P;bB%6a{#io{;jlgHB6zQtaw^PM5q71|jb{8?G6+q*glG z;++*{gDiTr(08%us^dnaOMDWws|a5S7mo{n>tko7Z-6Ih{H(LmeeO!+FI4GjXQeUj zO0`m{GFnMu{0p46%sLu%gw)z9T1ybhhp2E&DxxhPMd^y@Qj4yLK1cMbIB54-beZgKsdaj^mLTz0h;o^1fJIl6?O@T>Wa|;#VY073jPh5LU4sKB zPLs{HDyYdG1l?h>Ic$`icMTjf4rH~(EUWgn=-Rq6i>|Hf=@vdjgm2&!{{06|jW?D` z%iscm#;VyIR0`WeHG9aSt7bP?^n|qV5{q6W^pin%z<4RlM=4~mQ>k7SGgYdaMOUSM zem~j>Rq7+q9m0QMbn*Qkcxr%%rs>Dsl@>~+Or%m)nt7?EfoeR;qN~P3ExKyFuSG8s z{#$|WXh}kpYKM)3mSm;U$L~d9sTTSYi(V!4r!9Iy=y!td5dI9C7Uv5@I8Gr3i%rSY zhu-T@x+2wVZ)09A^$w0Gt?=*d7Ivsq+SFO8{avSqYVq0 zv(gQy6pk0g`Vxz-Sf6as73)LY!pUDq<2^)p4AUzCj|0;^q~14hh@hpa+}rOs;rWiC z#`iC!QcPGkx3F1K@9Ky!g>{TuSglm5bXFSZu2dzJdN?a}a#z|`Dt!X$2Uw_jue|Lx z;0%kd2E50js{w04cLc?~Y}cH3rU;K=IvYwm40xv0+b5#53hQAhp>y22eCmUPRp_=A z(Z=Zq*r~$pG`T&;+$v&Io{i4S)T?SNVLHd%R)lHSdjR%; zg2X`Q8=iAxcPiTxUu}dl2ZmE|TUg?%B|H7PJlbZ(>{E-Lkn%5s?l9bEtW(Z=0^Sn{ zS7x_c%+vt;=0y!~fmKcou)dU21KfnO0wDvmH$@E4Vs6y{Tg-GDppzv`4R9w;9fcPe zUcjzU)Bq*G(t*K8OwM_az!?J!vI5*KZ$*Kw7W(BDT`@b&q9>&M;h;N&pDx1piU?O` zTUyN208ioz72yc@`pu}4YJh8`oEo4A2NgmFxD*hDBH%1@s|L8`KW+m|w1lYvwiaO; z0fVrQ6E(oIZVX1VZ{n>TL_%NyRbw+tTvh=6Wm&Y%)k6Q+qAQk5h#p$5Q$9~y<(1E! z7Cj;SuLj*=$h)|0IRAu*3L2rpD=lVf$j@+0J#5I`ta56|*-}moITR-iLWX?um53q# zX>Jw4B~QBzS^q{9K{aHR2vb8|g!9r-Lw@bX;C7gb`teb4>Np0&EOCm#M>uUC#$YF_ zoMP~tlv4~2HVJ!z17`Lo9KM!P|HbC5*w=RyoDs-%?I77-ag53E~I; zf|el+ZZWrt!5r+0xkj>&H@Pu5M1&~@XD+re_!w$BFi0~rIqzu1L>z+yEOCm#n>d0Q z#-O`ZPBC~w$|(i|P3l$*?uC{i3~n^HiovWW-55-N&5c2s2vZDBZL~4?0BSlgxR#;8 z{ug2*jzOs@BEgGZ#CV$c`;4H~T&+zBm17^KauVleXwHwF*9>c(Jy z5vCZNj7^(pEW86X9T?OwG&p~Zm9S@xY~(VK)m*`n78z1pHH#z#F43&fXfFJz#w{)Y&OBeDyaIV$ZhmAXVK zDI#CL9BsKG@|HzcMCMp@MdTriu87=V(G`(PEV?3cvPD-!${uqfGK#$b^IybEfQVM= zW--f(`F?&W+URPbe+0S%!Cx3ytpC8b0wK!mad)MKQYjOuq>?VRG^i2{Mp^WP(1%*| zBBAeV(G~WsEV{zJdP%h93i}rpT@hUTh!b`Xz|wG~4!#vf5oMEV^R#C2TG;Y@XDZ4wNz?pbR)9VqAMcLS#(9@K8vo1q%683 za-l_6M2@%UipZdcors*kUVy*<9%-Cb+Sp>INUh368?9ix2f72n9~fBt{WJJhfS@va z*j=eXDou`5Qb`wC8dQlnPO#_+p&w+?i-i6ci>|P5X3-V)Ulv7MuCRY>(G|f34?1E0 z1i+FbJ_g?k5Yb9gEM{3zcDzNe7Wx^WJ7B+3gd7?XqRbNRO2ed5w@4+G^xuWi=2wXZ zpIG#S&|k9XMM8hZqATooS#*WH#-c0i=UQ|{u<`*X>|Q40DD%H+5yZQFb`>=XwemsOD(!0GRmSWB10{@BGT($PDGOI z1v#%M(l|xrmw8S^HkV58!dK#mEJUU7^sh>M=Lw6hh)l8QipY42u85pr(G`(Oi>`?D zx9Ez`=tv*?P*_xCyx*-RSu4$K}$WWkG0MBWGLgvf)DN{YyhsN_QA zQj4yLjI!v8$WV)}i0o_86_Kqhx+1cAPE;R7iZ~^t8n+D}iyR zMOQGc2Hhd#E?9{WJk2Sj(qg7U`df4rvb|f#01@&#Y#g*inR&CFn&nHS#gR%X=^0dV z+4e4ro)B1SEP9d9&$Z}k+oLVI+IEmdSKIDl(bY@^cROvnD_n%*A2tpU(MoT<5N(_y zHOHbW7!QH&uYf+`PibXkR_lygnYu*!}uSL6ttvDG@D{E(>2Py@ztjA8s&LbIbEYHkaD_4dE;|{ zGgzbi@fp6ICQH{}m|Mkuvpd{tlzEmg-M5*Fqw=Jbu2IgyzE5^S9sBM_oa!x7?y9#Hue^^dg}@Y|%BCZX|l>9fxWuf2mbo z<&LuGDtD+w*Pz@N^bpqD+#a>N#%NcodREq7+n$X!zgp-kKzDfjw*Zo2_c?fe;PL8o z_gl=e($=&^R}3z83n70YA;&m{9B469A-h|26|$*Y$Q~l(8~9tiC2!A+!lFXvT67ii z277?P%3Oiu-(~M{ftHf3xTJ(g_a~8cw z=ud&(@_UzXXsJ8gN{>E?K9X$J>jMhbT=bc697)y6BQahrj}EewP^JH3(N*cqh!r;R z9C82CfA9z!dX7i$;gM@tv%sROl*cW4k!X7>(H)_Gg;ic#ak@oU{uLIzO=7g4MbC=d zEpLhDfF>#51?5|g#&?L~{@(Ho9+gBNiK(u9k4&{)^qEL{nyR_qRJ7ovPiL&VoLdXA+>4@Mp-w?USaYLT*wMXwV2MixCG^zZ*2ZFP~*-vzzpFA>oy zqQRtGs>GsK3%%H)Yooim zh3_Q7TaX$8;acg9r=m#d2=-hYh76BjAG6Bo2=-tprz6-`aCjgzg6&6JYnfUd!R}^m z{g&Sl4VkR8@IXtLj$q$fZj{pTU^})-q9fR`ZVa}EpO67QLvDy;@Y<7Z4E`qK6!?d& za*DxVDW@1L#^Hew1_|2Y3NYBo+$shY88-&|S;7>9*KtTPJc?iSkc~k#&~rH9)(lO~ z`w0FJ$Ka(W+!&lD;uM4Xt#XRNAStI9ETql-U?#H{ZE6J=Y;SHAgXHyY3VE$un3{Dhrioso0 zImMu_lv505KN`VcSK4I@{GhwJRSe3mb7QcNB}_3`gkz3j47~eo3{D4n4h%M7XmZ}0 z@P{}CFFxwV;5ZSd7~F1^Qw;W%a*DxoChJX*(N-}m6~dsKxm67IPq{JpizQ4kn1^GI zVGKUSW=Yf!Mgu(u1{*Lm`1{}Rhd2h$KjOyVXc4Cv++vke4EB_Aiopz%^%R5cV5txW zo0wb0pk%TegWWA*ioqNla|~n9e4mZMNkGqmK>^Y+!B`gMQb#G1%D>rWnk^F~=|l?@hBY7yfyp@kf=~%C z$jY$v;Rl?R8l=+XNF}x3MW_^>BrCHMEP8|V4&UKmy6X+%6GY0+PAMCA!0iFz*1Bc9 zE$`lswgm4;y-c_9vzVU&U>Y|+f%ph`sH#IdQ1vOPb!ntlm7sVEM1=v-8OP5!jZQ{W zPb#&_sV6O!a_UJZn!Kr=G>Ya67zc1Qy6+g?OtN4F`-g2I>!cKtI)*3vnNVQ^rpm5Sql%gmW z&+frm^l@rYVM)_EpDrfNe|N4-^|0!w=6M!fc}-qnl<(APTZ@}&)!Cw}R;~YxwnDXf!=kHJ&x77_ zO(&O^O`}KWMjmCQEwvW6Dxsfe(Gx-+ZqciSegKK+8WEvBzB4`gDnG24N?+gNrqaK; zH`;cUzTBd#^cO*Ixh^6?r9VKAE{Hr*=_!kwO25#etMub7x=J5HBJg)3LQA2_YIm!O zrp`HwqN(%ud!h~2)Onkf8?7@DIuH>|P_M-TY$$bJW^T3V_g~>ooi|y+GufB1{|8PL;HW|-p;F5*XODe0J=(|l=&$r>^T;FBt}h;i9W5b1Z)?$ugx=YrYu0SN zJ<6v_%D(}6%Y;ZztB>lfDk^%KMOV?2ExL-Xw&>t ztBR`n!)?)4tE%r?bX9esMORgyu;{Al6pOB^jt9Mi-L+G#Dpk_D!z{Wsp^rt^CTwHT zwF#Xpx;EjcZ-{jedat*zywPNzuz2fvW|UjlX9bV{Cjg`>~k%) zp~B-|bE`JK|3b?v1;?8#VLJBdCBn4Hhhu{$8069yUvh3ltJwo{UJ3jVuStvi$IJuqI0k?t)pETDBQk)D+Dc7IG5fSZK=ZfoJF4|L31Qa2^ME>vdSq^y*kk5CYXtkIzFO} zM%lp@H`Q`ai>_L34!R>N?Il81!N@_ARmcZ7M4PNa7Fl!^@}xztlF+{mbcgV#*x_>C zr4iv;=@g4uE&Wk1;PLa!Xc8;6%3UMnmP)zNVviGXfFLx1n}>a)P!fB_-1;pa<4$5P zXQGH`W<6bmsZp=NjtnKSq5dSk6B(u?j`2S%j>=&(;uwysgn&5=6&zrm$_B>wui(Ui z6a{k&ON#3K_>3r+E3c2XPkV$(Qcl6#)a3jLg6%joHw5OH=2pSH>0CFMS6RZeN7zb) zDHNsH+KKiEGu#-Q%zl>hc86C77^oUWmbk0{+MbTKxmxJW7G1Gy1l?hPk60&s{|a6m z2-ixtSj^M_d;TYCfOD;KYJkpCP7RR35rB|4ubLDwz-Q*xZ}~ZH1N?qnwB>4m+nzB> zsR8P1YyuC>G| z20My4#bA_GPBHkYE{efKle;HKGV-8h2!prHtzyvSZ*B~}yVi}tbs|hLczlA5K~I>< zfx%KH=e#=*6LAb`EOCm#wjxe3IMFJn7<`ZO+TnfT@h0Ue2A@L95C(6WTg4#nOg9E! zU*pE$8WE-#Oux#;U{{#Rfx#<8ma=2t&>4_byWc*Wc*2JNT0G5CCv8-puFm|`$(yp6$jFqH#?g-p(Q z8N@_@fvRz-B`zx+@F5-FmCba(?FUvF=U?C?fo@qb>cbW{wa1O1JB&SDm{mKOoj}YS z^M->gA*%8_j{t!1yg{XRb4&k=NdFEl7c?ayO?huZ6d0XcjkTpzNrlI(3hJ8&Qw4aH zYExsCQ{UWH%8eG^e9&ZVHSfmQSPS{)Z-3`o_0686+`hS`B}{$u$>~NZ#jfcx+czuR zppm~&e9nef1)!-K4__4pP1z4-aq(0`{zBX?aB@4o18(0w?Dq8Ih1*U}ZX0#L?fwq9 zZ6w^@fSbfyI{V6KOS9qy4_b7!dd8xw*Ng+*5g9kYZUoG+5#d^?%wndlw&J0vtM#zT zsjJmVId!%D(3`=x)Yb00G~#MEn_IQC%3P!h$^qjUef`$uUX}sHxo`0=%!9E&Elp`Fd1}* zvF{URXFHi4P0So=aF8WLRes|E0N_f48@i?MBGOyoazRrP;?Hkh9tB3z;CZ$b_00#Y z3hJBtQ-x3(yuvD{zPW{z8!c(@UX%CKyanSTzWF0Ig1}ULbEgyBzFBAqQ{Q~}exsCP zxAYH7N+m3OaM_VIe_1R^AclzvCK$KLT0q==3+nkt%gsAXq!OZ2F7r2E?79mv;A?j)S zSS+gvFm;7d z7uufot{a0%uonScfqWMLtr!fj#3=@^PK#o&sZ~xfcu2}A1__hvCrI$!4lM!6G`XE@ zZWV)Pj&);j-=%I0N=2AraALKM!E&hSNRSg4nw*z}XU8$2ZS$93FoMLdVlv50Pnlw8>41XiE3}GLqBaa2bI zE_HVlxW!gE1@06nr@*zERH?ung{FmoJJ{SRaOWT82JR$Fm?qLycNwJ=xGk|?72P7a z*^R*<#xv)2Mj*w3`|2VmaO+8>SK)a z6}YX@v=DF`np*{~|B-IscCmyhaL?Zv1@3)pjYNSv9*{enrxW9u^OnGg0u0pS{&S(T z(ksjh>z|QI3fxtwW;87X+){I^!2NoJ8@Mm4 zqe>}oSBtO)Nrn%cZ39>AcAmvd#`-6mC;(0|xZDz_&a=6QQw)x_$|(k|Q==G+Gf7!7 zcn?~JFnGn>DhBO;bz|`P1#S$k6k&?NH0-BDoo73@A1q`t)<5Ay0R~wKj7uTT;c;21 zG{RZwAa|t`rP40WN}E^>Q*?hgKiXim&ifWUAsR2V=tV+*!lLWRwkZ}}PqvM>=yh^} z?F@^a6?&ybuNHcLi(V!4?Jasj=mi$NNa$ak7sa9N2Xp4&O^ef&uEr^|=xUsv7F~@~WYOEC(d}cRjcyWpvqi5HdZR_p3cb#v zR||crMXwV21dE;!`dJpeNa$4-U5!&>(bYJ`7F~_g)uLy`Xl>_4ai|vh3X5JP^ahKb z5c+hBUL^FaMQ>YWoa-`+-X!$V7QIgBNzfh6bqdT&Q>0$Vl!0?;s(KcqQ%9w}q|z#Q zX1vl3w@`A8&(wbef+ULkIaEuM!1QyXIA(>O1>HJXtBH7A2USK|^lD*MZqciRzPCkB z2)(;SFB1B1XGc|S6Ic7pqBjZs70_GoC*MPdgR{cwX{$=L(C@V9RYJeoq9=rYjzupL z`cW2LRo##1X9ZSJ{ySUctA)>o7CkHU@6L)sp^kIiP4I#6C`GZDYgMQdj2;2q;WP7K z0`i&b;Bj$n$6CyE7_c!(M+dIjS6JnA81QK}It(};yZor8!+m&oo~^r#5TuT^n}n4 zwCF`b-`%3CuWV}3)s#P;8EvSV@&k*W6%#MA=+#1h(xO)h{Wgo95c-uCy-4V1TJ$!_ zpntXKO+p`F(d&f1gGJ8@eLag_E%dL?h~iKs^tXr}`c#_QWsX(8TJV3!qGyGEgGEmW z|4S@-kLpSS2)q2Et*N64hD@@kihEqYdPKGC9A3;%;H zdX>=kwCD+;Zw|U6WcGqPP{^!8Mu>;Z2d6~A(2%+0x@gGEw90A7{8h?n$gDs|5$cr& zpBM?5gt^s_IkC(gGQ%uk8ZsZHj8Ymhov{mq$!X!F3&XwA<-nn3l(ScA8y#(}nr4MX zuM*QVSoDO@r(5(Qp=T|6o4Dd-7QIR6qb+)!(32KDEA)g#uNHa_i(V!4Jd2(Xx;H9{ zLy^#%EP9)`R=q`U68bcYUMKX)7CkHUYKvYi^br=lO6X-4Jt6d-7QIO5MHXFqllGI{ zq1sIJ^@FHTe`vJmS+Q@OMb~-EREw_jm>Npj4Fz?`tvB zP<`o|XsB*vmD5nYU&?8y?u`y76soskqYJmwr0=UWw;HN-`@2K+-jPuRHB<+PFb&la z*h1n^eJ&iTO;EMvVP~k8Ta48-ds}oxr@KW@2x`Bb6jiWD=$~2iHVJ`OEP9jBXIS() zq2FWCvqG=6=+#0$&!SfeeYizW2>k$yUL^G0EP9)Sz$O;GN$5YE7{#GZ={$sY0)*r`df4jvF$CohFAg79li5cCq!{jzk1W6 zXT?uuTl8uP;Rh{xmC!R5Jt6dQ7QIO5BSCkhf=ggVN(BcZqXnrzqp_#OY=Q)B!_|}u z;;R`wgZTS~dnqWQED zkz}+!cG*J7s2zJpxYg$GQsPcV-7I06j2@X79XGs$9Ti&C-p3zi4<$f%44_f#zc?Za zO+uRgFz61P8`zjRZ!(fmz)Uf_$YQ3LZ7Awh3-iOQa*El<6HGG{voR(`tMT7Jt3sG9 zFt>`?Hv`<5y?K5$p=OL$#fRSqpMQpqiTJjbo!osCmx4%D}G7AG6A-c@CCxYMxhc zVgU9~^YjCNA@l5JZWWiR{%-ReXbDsEyme*NrD>lhx=%CKjluTpx%mDuTs4ltYs1|b z{7u9u1`k{16obK1PBBVY_6LE^c{Z=`}V33qk3>KPPrhc#&EEU3FdvmK8B>TEC7+?ug z3|_q=ia}e2jlme8=fI#lLxb-h!yn=paJH~egfEAS#9^6>O5qkNvqvntDs_`v$fGbOVSf>Xc=ymv=8WbOhnzHI z=H7kpfsqyXU?gurlmzPWzJhPa7D%+Ep{{8Ohf~~z=eIEYtUV_fq z#eTh`QE|lS$#j?9dg5s^Rqpj}NM;Itcp0@JG>tW)WNky?tqqeJ3Mc)Wiew7%nBO8? z-9SQ6jPOjRyN{Yrw{H<;EKxEA+xbOLlcN8nR;Ii63yKaiMK|<|mPpYiQ*?u%=nkgn zRd-W^NP$hH=!2%{2lIRdz6YgcFO0rX>O;T$`veZu8)wQt8I+$-luW^|FHwQ=`eYja zp**Zb|N`M$38k+O)R@#TE)9NH-=&Q&63){N=a1(4jsFpp);_*V8WFuo1dkED z)02B{!3G~&;2lOI`w$^+d_AWEj-X1^K3r07SaU%LA?LD79tG*|2WzIrveE-D?kgt*rBSdESG zwE2PNr(R4psqGr2PBqjbP+Rv!4&}!v-H*;Irl~?19@Q}W{Lu3@s+XBU^?WMZ;C4KK z4gLc?X0qGW78{BD1J3VU#Co(tUudV)BBMth%C_v)m3Y^32~>E59*hOWs}ZNjL` zKhWR+qntpe)S*dk2tm-Y-}O+#@q)BW^ORF#c+9!7eT8pfVwigzLR3KdV6l~LB4^aACN zC_P=2%#_y|CZ*j;J_V{#&QQ-b;a^7@&IS-ImsnhkGVh-3E7Oc_9m<@uW@YxZ*g#36 z%$bGf&m&=PZsk(vox{l`%2}O#NS!aN#u{~w57ar*sFN`2bh3(Ps;Z*xz2i_Yz1b>d zn061C{)({%+IX5_ia4-=1>j?ku)t2528zw5Y~gC(FNX!~`zyStbweWp62c-1XHG}} zK&TKAlBt4Y0G!MwPu}kP)e1OASQ9OTe4bkFr9uMVA4L0I%*JtUq-mZMt80W;OC?sEu~yjk2r@b=K^BsZe_ zS!v&?(!=udAW$sd4~kBDw{X&xz#v!KCLz)?*z&1Nwh>&@Tp&4>IxsZ&<&977|&g z{4FUf?fnebHH=cefOXo6WXMhh1S3g2nfB~T=NI1GfB{tPO{Qz`)25oU0Hu9%Zp}VL zKH2@vlyA-#hK9{~2IL3kT=hrhqyoM zmZ?tT254=l+;tV=0abqnla`k45WxO8uh#UOIqydlfeXVWhpz~a^-d-ihF9*6jN#WZ z5NrwPYyV+Gd)MdVF8iZJ`k;L0vc?ukJ1g> zOQS?T-Hrm?(aOunvfx!lfTqg{0e?h$5w#Y0J0DIwsL6qD&|Z>O+J)lSC`4`leBbJQkH$NH{5cpwVr zYNw(U7?aD;C1;wC)|wU6TlSn_5c!7v-2!0bo;Osa>WcAC?~f*Y zo=itp3yvFdtmf5rglsskHui3)$UH$A?D@`kRFP`QaW6;N6=pIW9?cV9Jd&IqBhlBq zqjt{AtIV9y6EgF2wZFn?d3KWF%Vdg5PcWq^CcZ}LVKob+G-W~(1m2t!x%9C?>Fahu z=}g70QoIX_^Dr?}OP7ZEfq^Q!?V6Xzii00D0(qV@sada(nm=*I;1L0bGT&!ve+0QA z&E+f78Cu_{peTL~{|-wvC21z`3z|~>tXV_34W~yS#W2fxd(t#FnYo9hPMkl@w2AM; z9zDq(>+J-e{v2$&)e#%QW=Cd7iw0kGCQNhQ_ApvSX17D};Ca%yBJ~j@nFe#WLTZNq z*t*KM#pDFpV$80XT({EtNr2L(rcg!d8}Bp}8dkF~Ugqs1m=Tp3+)7unM`Gz z&*P>HImb`?GE7E~ocG;oi8jQyd;isQHsaUP4sK*>(_WzYGhF3#VTm( zeL{6p^Nrdt=MglyPi?;!RY@1@#x=G7C)*E8EgJHo#E#gn2gtttDpEgIq~K@YR;2z* z6HPc-rr>L7{dL?HF=5WjnM7K!{0T*4p^wHlumpL|C#8(W%fjJFQZG~RpkLz|zsBFO zAw@O*jT&ZjQZN$_F*+%jLxnO04-1pC4U^G6lN)>{{e;PwfXPk5a%!6#ri3_H&zp{ykl`a^&>9CrWJt?d0 zLw(ifm8n&JS6Ny6)!5$koZEV>ph!m!ncLhcnNL5RhhPzAoBd~&-b~bgYGF(>oKWyF=~1D(#^yL)Ro8%$dFON2;QsxdG+ex zmPa4KZFc1REQ#ga66}=VUT^>Kl6F>L%l4oOQ&QvFKy8atLkvR&+Y4vr!8)jci;{U* z6A0C;S()GtHZ`s}nHs(#Su=h`-nb394J~(|z20t!W~^Ramduq?`}0~y0^nxSDwz+a zmB5=W8)dQV3R8Ujdi<_#JppB<0F{+$TDD5d!Zq_+_es{2x92mrLFFqhx`TCS?Lp%> zsp`qn%8vaadr7(n<^2Oa8dTksdBEbAV^rL_iQc{4*RDk^Uy&NOEId4D@7<6tUpCj< zadP<=6UKj$H+Fs8{~auNQL^%mrXzV#XaOp$Y|ayC2Nh z9O(u}r)t6G2n~};&=%l2t|8nQ+Ehzp7iO+Ecyjq06UM)hH+BOipg~>uA_X16i`zs> zzP%GQY8mu=9gS+{M!kWiOQT*#VMqxYwI4t*g>zmz<^t5HH%uXJ)G7|6xnx8FkVjJ+ zVthoc@`6^4X+6UaO_H4R9wTOsZKKWmn`nM_U=Yo$Q_gGbLyyp&;l$a`E+4^LIQ~(? zTShljJ~CchBY>Im4-FKk*Wd$HR}7%Y&L5iAF7?;Z_CTTpB&bB^bxc!%SJrIFsd=dnXgtvh&TE2)8DGzg6yvGE0=(UhYM^EWV-Ks zD0O8^XHltSy8rVJQg4^5r;zs&G%~T=yN^-93)~x`+o=>5g1aJv?f;i?Cc<%x4VL`Y zuKF;XX=Ps;5z*$I`U~d;lL-bP4c^*-eN^UHMU~r#bFy^axb<1B)`OHGOB=g47Xhf} zB41HIC%Q<+TMC7-4<&UAIBkV?x>fs7&W&ev)z)w>qCJTnNK8e#tO&`En?H+tTHb*g zvbxD30j;2#XkAnmH!4aZSh!W#=wO+cQ_Z`0JtA>p2=zFr@xP|VwWrH}-6h-)`P7Xp zDhmG86cQ#aOO0Dag3@{E;j2<_0n29y%k=Q}R41Z`jNMU%F&$T6=S+?JG{yarmoDp( zD*rWI-V8CPq83}sgRAr~8wfXnhAu2!{wZs+xueJdRHXdZxLTy_EUXdd&FM=13<+aV z)ZK)jY?+j$t;JZ`(eRMzi^^x`FDjpd|6a_`l{XZlLauxP{Uq6Z6fVd@h~Dz)Xh~Pf zNVvv-MWF(v^Z3NX*a|9^Dht{Lj;3?Q&-~jQUQ5!Nxs{CazYfGaSY2u5bbot9PP$+Lp z;j*c9J6uv>xD*O6OAlWLLVH``+@e%dwx&Jbw18rjRP(l{&LU)oOu=)Ly5u<`J=He3 zoPEr+18wVCIA=Ih*zBv9hPbGcMe7v*K^^k5b`G7CjA|INo)!4vaZY6$wZ)855TlDj zBR^YW;mooUK(|HV%<@%*GaD!rl2Z$39@43_^)H4=&KtT9XJbS^Stb$J4!{IsOG(nH zZ&OXFC6kALI=Q?V%s(~EJz_qoQz`riQnzwGXgv&qJtM3PZ32AFg>x!DC90;K$>lJ9 z`Re`3o5%LBm{hKwd_4=G0wJt{nbGOY)bLf4DcN!=Phh0bRygzZWIq0FDttEY%w5V? zor&}{#Y$hviR0T>L+?wA>hn73e$`Lo+FJ|k#3mS%fE>9#`97?X^Jv}>!Ag4+KSqE) zm#u=|_}7R9)X$X_6R*(N+E0FKmlFR^q|bXeldMDfyxOW@`%OD#Xy2{j-X>QrBNxnc z&rCtD%>V%(gf5bJRZ%D`>2MCvPmN!R@MwOq2k`P9=}F@ajCUy2@__b3?^@QPV9`A~ z<-MC2)3ESE?~%QA_P2m;@5G7;%@tw3Z}240m;6b36R5%Zz(#aXWHoFQDaX3zA*qbr zQZGA=-AFIjkM`N&x)Mt$$*GEJkRlDozz;&r)|rPszZIk5h@XW#lIkxY9iuT@L^(y; zLq+B?LIQEb0a-|{tS31mT`ww2L^7lJGiT1>aR!fs_n_^%lMC9o!glP}b!JRX);YIrx0D5q$%$0426B_cUcu!M$SDcX%QqRGLv=Ee8 zl~rA2?vLaF>7ufu#+v)1X>Nw{$6R85hqI>|xXMNlM#6Z+&ZfZe@_WL*=Ke(aJ?SKK zKT>{AKE>RRTHpMR7KKj{g-;c}r-{O+i^6A!!e@%Ye-nkz5{1teh0hU%&t-*?E_&}r zWB#gY5*OTFCbzx#X?B7DnVT?~FvUOgoKj2ndbuIDy1{f=tO|O;qzw0K8b)xYPF+1U zRQMEAnDxYPxVoi5*-jvybBggl@a&5T0fyLG>@r^IVCkkn>D$fSmF9AXMbqa^OoQG*py-?lM$*}TP?|jG>#f&0D;FaxVaoy!`_Ls>RMjB|7v9TF% zud#s4!Jj){$(*Q z-}&vO)4-HCV5vqR*nq)HeKJ*9cSx%I@k3IL>EXqbX--q#19OdOsiw*0cjKlfZnF4I z;CC{9llYy0->PJ)_A-O*2wYaJXMvXD_9YNa^8)*n97UFswtuyb7f=2@Koe7Dsn#U;Nj7t30ZxVn{X># z;veQ!V8RzGWl}U*P)E;D`3|4bD3l$AlAF*B3jJevcyxst55oxzg+3xhl-8X^M?SvD z4;M}7jfbXOW^xG?4A#c@iZ=Vs??<_x7y8~ux2!8+?+%6eO^Ze-mqinf4=zujODYj8 z3l>g#544uo@jqS5l6AF=a!VGd!b^4#ixg<1o~A7~g55tAH<|Wmn4(Y}(?cl==Rryl zOB|zh#CWHw965Y;6z+qAO2i!K9YBTRYi-BEhw1SSZ~$)@-S9G`@6-Nx(k#y)ty7q@ z!)>%ZH?J+3W`}EscNK?n`x;j;NvXhf=WfTG$kmFOTr;m&ggj&(H9$xi<78a8A#MEE za^psBKzT#qOz!C$C-V;q)9|1%Wq#P9NqEgXI5s!sOoJ%uWy!gz@MOJeNN35*nSpz;CeAZu-YdYLutR^!yXmykfW23|ned@^Zeid#XCGudr=Da^MCo)9hZXV$ zeuFGKcE8rXmYeLuRpW@>M$QdxCnLRiDfaXTqJOR>KT+pH=K{hlxo^{;CI1`}YRR)G zz4k3RovX%M@-n*&-hV<`^xAwm^kCL@i_1c z^@V;fD)IKfpInvUc$Hp$%$5YKiQmz<4#%%8@5@2ZCz@vx2ydJR4qkV}&KWk;+w$;F zYXK%&ZCLsL2AvV@bz_MX3+9>fZ+IBB+`Ih1yu6yWd`!XK;)htE4DWB|_xLTe+?pEy zUTWNm9JZms8aum%Pc`tu{0a;u3ZI&nDqqFK@>Qt@jD4{PzoNAKy^9O5Lf3j|y8J!t zj$PapH?*%dfbUnyeW%vlai1Ji-Y$gBt=&PGMNLRzIW|@PUQPMRF0D^QXNXRVy^0f( zVT)0;VQ7w2jMYOriB^g6`g;gT4-Ez}=RMw?e1kSh@l>jaR z`iLDgr3r(xX><>t1FvbmYf%|KmoafA%}SH0*|dz9nn4GdQd9D*SpeCrK9NZDPV`Ci zP0mX6OY~0+NDRb$fe*o@rt~Bk^@);1Y41eu-pN_L`}FSHyI=4AC}9p(PATCMy$AFj z*t?{6X>wMdM4#S$`t<3G5@qx#H6_U<`tX0I29yja9hevh?aHU&+4N-nz&-=}4(vA&dJP;faNxj_fzXQ%yJB)yUy>;4 zUDBrn8kO`b>0dIS1RBxC_wYtMD=8^01#rn(rD$*|6vH#v8Uax+1k$B+U@6MMQsr;s z*+*$U$5Z3wr)sxA%lLJ$bcPIg0i0{i=QNxX_CNhoS!5>43fk$AXQqv!sLm=DMQhnCW`&i*m(;GomzWA z{)$MdpjE0Bey)J|R&cU-FtpY@ab>ZIK{|q)n!&Hbq^8g*RXcJ1|3UcwSP+t}I0!d} zkG3qL9>JV1P9hBFdYzK9=Ks+1q#Nh`&@=hd$H}>0b_yL8%xqE1T?n5V?3C<kRVh~e(SPlK3La|CgZqHqw?`d5!2V3MgB<~ z-(B$T5Oo2Cy(%XZ_8Oio>@{*)VXrgl3VWT0*NVn974{n69Evu6v6{}18IUtoUF(a; zxWEu?c%H5$roT^~ixUOtpeKHm*M=6RK2G*pk}O>|b~C7%hl0tP>vwI(>?E(X1s(Xr zk5|)7rPs3Hy7u+4MY}Pz#_O8QZ%)>9MViM?Lm>>^1!q3H2-rF9Z;QbzSGy}3lfYFn zQx5Uwjq{B3rQGS_ygTEfW}d>Q<>bHW?M7rF<9yky@tNdlO~8On zm)XA)jLBuvGnit`h$BvPdLF}ze11bl*yOyA`_Whj)l0xPIPq52TB;)y6^XxBM`d|r z%p-;HC~w&69!Ck zfGEJvc?&l%Qt!Zi293LT1kCFkdu~K3SSNRiefchCC547rMU2@88#7IbhOcxbir6dS66SXq?N^Caxmy<;!~ZlJI*mVs9B$ zlW*WZ%mT z7m8>{fu?TdO*ynpLBRgH$)40-TtEd73-8bUBp3H;!<_ujAu3-9vdC3iR5>DRP##t>2+WUr2vtJ<7@W`)2@6yJ694 zGuk!c#VIV<1gFUFk{YL>hIa$q)GQbwuPgd1%Ikvjrv%HN#CZ%2p3tQ*s=6BTUJ%p&zh=&<1+|F!#yX$H(0%KfV zIJS7>81cg~!}?uCu$r^6D4p|;=Fuh&@@8;&IYTQRT#R0C$AVuUQxoqFP&Iy>^A7t9 zvA|%g65r~eF$VX!w{eZJkz?o>@gIfQM(jcdF3QaBU}hLvWFXhbt7B5-YfxhaWHt}O z#0?|bO!uK%%C^*p-jh^@R2Mzw^}@Z`M2x&}QQa97yZ{o9cN;-J`gj<5MmzS+P^u72FFRB6ZA zC;ADR7b+9oe<<>w$OwPsx3RnsltCjK%%sAX9*Kw)Z8ik6g#mzD?!hDHm2fLeglt|y z!9YoU|DrTiGqC&11V!+W;9H4?DKj~ZdW4XWiEP^y#Q$?LKs30*eG|RZfl@mg2ADgW zIZYWDgr-T(2BF&9Y+Z5&Huj^xvP-e*c$EgL8yIMO;Qa$?+xAf%Oi$WII&|gMvysd> zHJzlHkWIiUXwkSPgk7T@p_y{L7KuFp(=)yPGxU&SHOKz4s$1EJ#E`PG;M1)^TlUC(B5jg;Q)-oE3sYYHwzqyk?pldMj$JQ3DXn z{OG)cl3aG-S1SD)u!$SBG%%7Qzci9yVwje8TgHdt9jGeei5J2Rblf&WqWufv>-GXiFAm( zehK?1qI3DmGh6Fwy- z*PFrEqVg~D@LxWC`=W5twX_e!XKpY){FaPL<3q$4-T|ZA{1xaLsG~yu&v{>b4bq@; z@8Yes(3?WJ$ZmXZ?lZv3-)h=Md}bd{vk7<`e}^ly?u`nKMi3Lvl}KIvgE=It?fX^Br_W&jye5N^^+izi6nDu<<6;Xz>BDbGs|kEseWjMu+YQvsQg=HNzaP9<3_ji` z&+*`H$Q*11lc@k&&bxqWruYMWZ@>Z^$VQxbT>-jPb!|O_!Vt-$eA172DKhl|edXs- zu%mD2fXUxYw}7%ZY)U7RsqY?cnq)ffA%q*kx{Sj*@@D};p~?LdUI;IpH-0@R=zn0q zpJCY}sd}8B3nfVNYH45(8WiQc!@p5)Y^K}&=@wJhgCT*R?+Jp*g#7$v-+B4zY~1o> z9beqQ`=#}cDQwMxB6~Dn1SQ}%X4G_%b;>W2X;7$M?2ccy``CXNBHNs7*#KL@uDq&F zNe4E~c~9bvd!USGG_0Tz7m|+&G5juiu`Aj9n`g=A{h8W7xK3U&)tL=V0=r_O4Bw*8 z5r*E`T;;qZbT($JGbA2^T}>@9zU(LFzRr6dOuL zR!V!}kRX~)(4ZMP@A&ok-p`$O#g8lhi#m2r3Uo>)Hk8euRDmBFd#vUJ=lpZWtf6q3Jbc?-Nl*0_S z;cJUBT>OE}A9RcF(g4R{h8I_=8GJwWk@m+IesA%vfz@|^%?XY%Vdv0Vl;1lnn1FMp zd_*%fV>ITJ;V9s}I620d^Lpc;bh5OT%3@UvU)z{;Q|G+AdZYkgSU71Fe)$s!d^mV) zX)^8CJYXBtqzu883Dk?XCJJo`jhrSNVk43(LgjO4rQW8eu)68PijsP{S+dvCO2&8N>N{Rogk6+E9cK~KP3#}xSKxPS{U7i~q1_;o=a#C^C;f(9K| z;B!^x#6l>gBYkt+@Ia;Ok(^x(55;MnkTma034`HTtfy&nu^^hpVcoeOcjj-giJnzO zEyFMx&_ZY<{(KD$%qAD!!d`Tv!NmAr&Kt26H8c!&F&3t|^YmN(I6?`ZdJG|XFR(SvCxF9cj68#L`DDDObazM{+6QKa73tzo z18$_vLjI`W#$8kgG~QoEm`=h1XTN4k)s5O%ksb|G88y=*^s*wI2-Vm}1XSd=VYfLL z8r&OV+yUCe(8Nb{kNIp5S*2#>gf$M1Xa;HKEihqd-hzt7Jla71N#QX3N}O|F39o81 z<2>Ly>kF{Q@9#Lc6kXfNen#ocI+|t1F7a&kJ-VjQnt`A9WR&wL+8^qFf?+{>(v0h< z0T|SVKiaYm{Y*I=4KW7KFn#5~?QsOa-&B`Obmd7QAba z3;LNfuMkK2nL-xj=x6r%+3#oGw7UD}u;K3NXO8N_@8qj*s`g4MY!%7Iml=ku^x0Md_@ASnyi8-vyh28>_OXn*4l&K%oIltdWW%fHpKhpZq$l( z>p|P_7iD}NS~uQ(6`U3HfILjEEagFw%n=&Qb zgFXb4M0?OAC_xYUE6>*cpa<=Y)AMW7gO*YQ_`A989`pkertQbq7I4DI=(e^!=n7h! zg#fz;T^3^O_n=Xp+ za4FY;vHx(coh=}rpe2(!)4TDg_*blH!4bKJqObpT zYW_9!`d^2j4JIs ze*NRUdy-rN$t(C|eH$OHN2a8`B-fTP$XM^@gyZix~vv6#zJRdLJ*9FNWY#wGS)6oic=!51swG*kH!H12x>kw$$94lkNe_r_z<_p zV>+sX-3b)^9_F?D#j;7T_p}GkSXk;lxU~I@>LsCZBUUB}#rm+r@kuq;Ii;7WchJJn=Y2n<=PzR-i_Y}O2Y_*oHYx{3@}^|R!ae7iPT65ZiiXGz;`e}R-pJAH4a zi5kG~yn;dkpSVnQA~9<$`)`cRLj^*1G9UlL=R4_p^7i+J!(U+}WJ+MR705YFl(}() zApVK+;ANQw%PGhyWg|oB$>yh6XQWP9IfCm~HlY!XCR^y zAF#MxQgg7yS>QdxvZ7HGYB;2}p#wt`efJGz48quYujqU5i^kb#z)=r4>Hx>|m^b^| z0n^dft)L(WZ0KjXrEn}7hwOVD`mekg-)*rR!Lz7Zn1!Y{PECR6hh)H2wx;)Ply_t(6!M9q~qnb`?j zM5U$P#3Pw_zGfJ;hmjtJs^OIfLOIj@nIZm{M#Fw&`}rbTD1iUY!N{BadJx(c=4LkG z3`DRB9gX7!3+hVvd&l(sqm9vMeA9RZn9(V)M5h$>wMoZB&xksd%#)I^mAumz*%j zj)Wei4P9!bOPwY1H31cVXANFRe~TjEU=Um32P(atHZ}pKAhF|-BevllT9a1vncPac z_ap>&y#@lpzAie2VudJ?HK=unq(|USVeU06|G$c)tJw9!k#xWtu}Jz7h1M>Tik6`= z&kUvmy*l2kc+I=6sl!Mb{Q8W) zrkCx73GZ5X+5hEOcop-+|M#`5UTZCb7^WV*CtL(kkJAz64FSqX$P(OVj47cJ7d zb0e2S7iT(S4=-Gz9(r1{0ijO)9mrTz-yPUCqA1AtHY+tTMZH3U>^E>^z zU#Q5)=4~H)h89Q^Y1TXtS_mtO8;%*Y!z7NUS!Q@VVz~K&{T=ujC>b6JC{M z(UCbmUk%~Y(T-`zT2m3US-c)JIh+*CXI>{0Qqv&993RTk?Nzun?u3f?{vF@K^y8*u zgxe6jVsJSMB;?Eqn=n2re1;qgPKiH4Ccw*i&E! z$y@(7`}~t}!fEY#(;&O*C}!O#j@~U;U*o@7V@@Jpk)r@MiQq||i;&-WNptv^rjLG< z0Y7V;UCiAl7pH-=8EMVKnZ0luNs}ZBHd2;@x5QWLXfna40^v8qaUNG*V8c=2O7)`d z7{0-&_^|FNEP%8OW?}Ioy@RNfW6pfnV&f^Ny$nyefo|4#Zs~jyoTB82Smc!QT`4)P zX)Aq^C6XD`$I{`y>_Q0i2%y4WO(UR#wfLSQBl2el=}4-rSs9qD0E`rLjp2Yd>qiuJ z&7$R((6Y4*dZK*J`-OC-$xkM-6hDKuQ8V1>Hz5bKY4L4Ip_=lho**<~x2SR4%q%rI zz`MXZx{;D}EV@Eo8eUI;4wJw%f>rpr|7GKs7xLsN;2SO_?}2?c%R)U|29g>8Z-)QmFz znL_6YQ<;AFf6R)tTr!jFnx0M1vByY-lW9{mQ#%@WLsD?YoHv@Ria-BM&ofi#ff#>J zT6s+ir>Y_?LlM8+tKel>QwvOHG2OBDWI>S;SVZcNk_0a2YgfW z@!l(SJb3Q`hOigq6jm>Xf%+X>KU?}q>(sQ5Pz~sq5lA;==xuZS`!J>E|Fp2<&k-2u*?@>nCt0U}(>r+bo7TYevckY z`SJXSo&dR!QxLw(gNp_bR^XQtBEzyL?(x;GEFLt%-RnWDCnTTr-{ET%Bo8D_%wTsp zUGh+~6PJfS(&mdEJ0%Y2ErrwR%!zhzz#LRek>p(W`#u}<<(^3V4SF%|1JSRBz>X$$ z95W?8QtlBXNxZ4cfNmzYU2R zjlYE?gZlVr?%S10%FeMf{$8A|*!#_w)Dv{o>duxgCqak#&6q;6KJ3n?aQxTD;FtQR zYcO9)AB8@l5|t|9p0pvzeK%ax3_svnL|?%!X1)DVoQJnxzMVv)5C23C|A`#qr?=0N zcb!OsuIQqQ(QID+fQSyq?Wm4sQY*q*1acsN z`j5aONpwBn zW0)oEwTc?1eu#3sBGZ#2bq381@x}5U_zCxT=1mzclj+`sS7H5w@wGTEito3UQN6VJ zA}j?#Z8A(idXNvQOA+We2K&IEmQcBj`BZyGKJCt9i+vf%+7V$sQ&@~a=N2S4CZcgKz}ZH?Hu)f7lgrtRL`(a~Y_hnu7FTgBgG~h|cN_=xsMT&+gqU_MS~36=5I$~={KHRoX!|$WVGgdLTH7WIkv!?GXu%2 z^jZJNoi`iTX8uZWNRBMqu~+~fTrNTs)YG1E1}cBN5~DOxMsdaiZiqk z<`-?)hh%fN!l#d#a7|@b;Mc>iNA0}iX|e_VnaD=E9Y-lIYeoa%mKH-1^d;8mU9gDm z+kDEcitpQ$!Q$bTOYEF zO?mT*hDMw&x?A7O*PG?v^EFdYvb&h0Dn>%sgl!ISJRFNgs!sr?3Plao1LAurGUr8BP=nYE(3Kjchh3PKG|Q*u{F<5Va%IhomFp=k_| z<@97=GwCTZX<85dX$?-JeQ!IoZ4-fLc;VqIewckNq(%PicU2&a1UJ{2v%a z_C)#$jUv~_ZDMw#@Gj zN0F<@OXCZHm31bOc1O?QmC;RX6dA!k!}DwUqFX|&Sqgok)-3zueA{(jXe0S{2WpU9 zU&f7#o_Tomsc2SOL%uy2Zi`svA?2@p?Z~%t_8}x_DI%V4LpioHRM8yk&qmc%Lj%gA zVqZ-=o*NPQLd?4F`%d3F;(z-S&tMjFCZ0O|Zx1Rb{x{dT@7tMA3sCcEYKv~BgMHrz zJJ|Q#V1Gym`QP7N8@lmX%u%jl1>P%982_6B*Yg_aCgy+C!zSTUNXq`~9?6qdb$I^L zg?ie{gg{x9vUh`I^*XjRFFfJkKGtjS9M9ad`YyAcWeHq@7Q zVQDm7+1zAd8ZmJ{wFidYSt}Fz)AX1daYicwvv#TeJ5>)ylhnn)!W2Uf+6$+V`HT0~ z3P=esS^uXQk~ zOO%%BFpKg^(--l1{5Ashy$nod%FXw>JxR7?-izomx>(WC*{8^c=3#s`Jw7sd=rKD7 z^rWE;4ip=hOOKU1niar`i2ZeVbVnj7^Fekfgl-)!ZyDMYtz^xd{ zwe$K($EUKMLB)`zgK=cXXNhL{`ZQ8&-)JENI?fVJ=W=9xW6}=J5_Nfv{uE2}EKx7c zGw9f8w$E?P0g$UY%;8s<&Kn7vQX1Y~TjtE+yDhhK_-^;3S@9gcAL@IH(PYix zmF!2%yAvXBEfb|#FZJ{8WjvL!^6ogEwS?ENJIuSZA{Xj{-*B;Oim_YEyjuYCMDp&R zndN%lbq;2^t64vObKOj#C@)|TAoH-;EccnkWHhX%#b&wn6gjE#X?|UQmizv0{A4<8 zI2|SGP(o+9=P?rNGRqxgYSg3aY(l^MDnCalcY8~CnS6AV{0)CkQ{r$4G`J7^@j zOoCQ?t^^73Oy>jbXzoa97ymfCFX}I1Ml&)1GVAU7HRw1#(X4MW`hczJtixs8XfHHt z6ZRUeN7Kq>EZ6M7L!k?os=*@@3)~;b_|ShWJ8}5s7neGPEoHx$>`4Oe+&JXEv@-%ERQRySuqpeew6 zi)waP0D*w+CTS}+ahEK{HB7M>Vsu+N2>_2PKTg&=R{&7S zsEu$ZKycR<+wy{TtpbY;;z#{J<{$YLE75A{{i@Spxyhfd%`m& zK$aQ}K(-q~9d+)bpoD;@ZqxfhnEn2{}=DwI36&7h% z=(g+{K6!nD*DpU8J#2;QX#wLw3ru!C>Lj`c$-)T2&@BR%^A**OBxRT+x6R_dTAATQ znmUn8es|dN*LRX_{LwYLb4$|*juimZ-yO5!n9KP1(hBl{5&2w zlo8?UzlyPKs%BLwdRC=sSC{72HgJl88;Wp3_W2=M{&UpP3EetO7QD;jy{wc6)4m z2`6`e@_nZ=xYv^1(f~{N=cSY|+=lFtQ?eW-aYXr>Dm9l08R#RO&xEmyQ(abR-@>UX zv-%dKmRhMsLkguF95x4Zbk9a>rb5dfZ9_q@+t6S>6zNw!3OqODk{?7$Rsb*P11#fY zohJKvT{6jwHO)~YAL;L1istCVH$$9NV}82aC|CIVHzyz99rp4SY$=d;EtWu)(n$lG&u zs}ouNd-oi7kgp^`!#$q?jcoPY@HWm71iWo@kzxhym9-6X?40I~h5`d{>YJ=Lo|AO= z)`Jkb{uY>bLTmJBtpVRXIzxW6y-Y>k!M6-( zxd5|!Fc*jVt9S?o3Pd#jO%$lhWo=M5u(QZtTA@BBhaY?o!WVL123?!FggGX8kDO<4 zG(L5JeULoA;Pf?sbu!OisvNf5tarH_^{XXR#SYg^Z|UI^)467fXkI;@z_JjEb|h$Vg9pVBR?tN&OkgHi$m2til`Mozwx}elfJiZVq(#u+L zgLgnnu{Rqa2nV%MiVNnT&s|^_5>v%ycM4s&hvzlL^!4BenVLzzf&>_^X*(sn3{5&pYCad+0qRdU~R|b1$ z8AQYe)GM(uJ6rk=V_v!@)SCbpy+=!WK)rVQ3q*@qqj<#oh-lKy;{Eg(6i{Vb!O0%ce?KE^HA9VN*4q!KDSWz(wdh8g*c>(5 zYBDz+L?dDG#}O5ld($FpZeK8-O|i95JGX-c9-tkP&*K&a^}CvMxErwcc4N>p#7Er) z4F;~WPj!YR9DV&9TML%vQnRuby1ov`@|xgitdM91sHVe;6$W%hq^@1zH+hOh z(qin-Z*GXSKcm)N5^`tj*YK?`S|=WeVuFVgfgQ1+f^E+2qyki?KGJvUiH=@_S}TWI z12ydP8^c*CMeaa`Ft&Yu<7?ITe&Eq#6_I2ynK7Xbetu&V+OS5&SPan0p*h8wi$eF( z2<~yC=0+GOXWv1;v3bx0#%I_Fmqc$rXk5Nk| zgng-*gY7fndfZd^fQZFkoX;+{=QBDg4oW4ivxy0NESjQmur(^rMOy z`u#}v;Ybvx;0L}aF~K?LK3RtAvO6CUE?Z*y>z92)CabLXdz5W*x>+)NK04UjhJR>d zk@%WF#$Ja$M?zXUs&8iJQO;QaRDl`C^2ovcz0IO-fsGCG}TiWJszvNJMb zTHjr_{tb}xb`WlNtZri;HizT~tu_;bo!}%>ee4kFP-FT2kw~TGNP$sFcS{oIP&g2! zvV=o^%VZ6!6wfX(F%|ww*xbP>WX<;lL-+}yVVDC4hos;&(8!^6$#kl+9(F}gQDVIY zdnJZ@Xb!G`YKhFInZ(DOGT|A@O#K+ux^ftz0tXO7{35B^h@9? z5LizM7F?3TdQVTrFZWF_b8#U?+g^Moco(5u;}%6dw4U|0LRCvEYRLVV0Z${}@hRr^LV$;sz+ZjGFg)Xf)QOH_ zW@lu@+o5}Z#wDmN9ul-59+Gx=(m*!OPKrLj2qeQRl|6Dx)lXG1?lj5 zltxMr7Tb+aB_O#6)$zxHAXJ$X&lIS5RX*8nnHS#h{$Y~oqGhf64~sP(OHCFXeF8{a zsX%C2rJ}?+$B+^<{|zPnBSsxgK=u>?t>L;_MH3zZ1zR%v2GFIq0skmvfp3!6i+%uX zLlR99!TnK^kr-t0U><#wF8~ZiUFT}3hsJAs4dty(%@b8-|7=jo>|tbk-FyjKu@%BM zPC!?pKes9H=vPAm_L1@WKG9E%`>`$Aeg0eA#_>4{3{^#G1VdqPqW5g5ulgc8 zfW}cxaXHR)xcF52Fq|G_6kp#JlB{(ng-CyT_TP8lg*0|#b{Kl)NJ1&F=oiVNC1!l{ zs@W&l2>@{M4%YySpo^-;H8C}`4QbhrtGpXiAz+=|n9Z3K-Hn-s!zN z9{`uzqcx!X!^aKzKl*#gKf^f(l>ZY&?pC+_cN%GS<$uD_TArfvzqQGVlYgPaIaBk? z|FBh)|0`CP{9i@+hc?k>h_^NvB2NCV)bfvPubVI5S^hbLtUmb{XoJiDv$t9D{}5jy zqA(1-8nXP4R_w6~^8elt<-ZzQ2U;xeiY|ipVRa7P!MgPO?A<7BC3c8WV6Ret*t#NU z$=$oD@U{1lcTe7bFtmFTz_wP`1L+!Q+BWEZ%mxxx} z{ZdCO8ZWEz&4sPG8-@K=#hN=lriRv8-^ZFOR&vk+1qE#;2JYumK;Wn~SAmj|PVfIq z$C^6|p@q#5Uz~wg5o1F-0s2DLijBQ;6st4%Oh?1=4ejQOjXm!+iU%UxBC)aitR;|I z{JIQVlOCR`a#|s(t*G0E5+*kG@h7P{VBMM{?o$Uj06JS$Xb0PNp<;)yuN4|wPHonY z!^}#X^-v0`Sx5N??z&K&W{;c#-RAeIN)R9W)?bNQ1sWmZP5Kn4r|2c|vE`<#Xyd)# zh3o%X>Qn2X!?n%2eygc(C>)ND#gX;NXiW6}z65Ft0*zE@@CNn~WrB}7Vr`kC>twJ) zpoQ3bj?QKkoXu?~k%~s`CgonfmA%3=lR=anTvuR@thWytma8xccEK6%W@71{3B2VZ zTRJ)al%W}=aAexbdea4rzoYyMk4?qwC?C#pp*a|mh#h5nRZ}X{D5p$)gKZb81#{-A z?eo6y4`-kELA)w<5~5ryuc3Y3D+EhAXc(#aefD`1KZ4)~n3Hxh(K(Dh{BH>0vxkZ& zyE6$SV`o;#NfRd6^ZbhbpV)og7M2e0^WGzUkTHHppoKOvr?-kjH{`di@izibkV^SB z0pG_2q4V4wF_%n0^*XUl77pLfwX z3&-$2?@SFD#LnPTt&t7X{RFdMpZCa}QD`Xpyr+z{TFtZ1yMv8c%s%hNz$miM`!9}v zc%S!HC>0Vg-#+iJSt%V5&>!Bb1X{k~Z5d;A;zg5}&nd}d=2)T0`2vuh&=vyxx9os%ik*U~7B`P#ixUI^BQShJ1x!4r$}qhX;E;#8 zUzULQQgBM&V>4p!m~h`F)>PrXpPeN$KQU6v0yddU)-MKDVx@ebj9u)k-$IW z@P=+XYOC}kfzJU@DQh}OaOw3l#9l!3*2Xv(-%As@2G%-U9MSGcf&LiB7Sx1>oryAlBiwZ2a$^|nXu;yN&pz+}!Se$kUFc6A9E1E1?M^)b8wx=0GSdcv)(l@ev@OLVYm)C2A81S#8V)|(OL8t zDjo%TxZ~qY89Awc2j`*8Gi*Yp$WfJFml)Wj1*J9zl6FujzXR!I0 zy&j+Fxxl~O|81n?Mj*cjq$fuH5sP!qCKfhTVojy$=h<|bKmhI&<+XtQ9jnip!)hcH zpOVlu<-Wl+bT7pf*TeQ0qL(7H`vkl;ML%5}N`0$LJiPr9;BlCctvccMD}s5hqIT^gC98sTT1pmHP& zdcfc2S;l)6q!#3DfNOy^5`&daC=(va@g=*6Sb5~K<4>p3X>y0y(8O9t2HLq#`NG*x z+rk~HWE5ahvsn4cE5JBIkcU?yhbFWbvoHIEEz>C>`2B* z+@E(Od-}0@9m&8MXEVrrrA6}7Pmq=hUG%NL<=_mIM#_?A)P2l84Ol!h4cWGG4R!HljIqJXfze3u)HxfBC6SQj`WQ9~p1mrknutF+c6KSz4q+MA$yh7Sd z`T!`1mSN4XZ9V?i1Fw)iWvEOlp9wvEbL0-NLV6yxBP*mb!GqIov!1Ny-9GRNshna6 zaW!U~9|=2>86xcdXb!gK>^(l7M$!6eZN`QY6b>bRCM1zExHY~LR!meGIoX3Wf3;ALOSlSK~_i) zZ9=5gl0Ljby7`o_Y2)aiv|1qzL$|HDe6_5Q2orLSnG||+fECgwCl7svBy+YO_gM~y`&>*9}aB!Gqd zb@7=j$y!{K%m>i&Q|g(8%PD@S;wx8!|rdm_?n$BrG3m2!NS4 z>s<}F)^%CR1XhRyOX12r434rCM&s2LdYt@Gfizb@D!M_GE+E}4j6M#!0GGytN%Y?6 zL6U`bH@^XBNWlD*V)O@AGs1V` z>phFUDpu&>>un^du!2zHTD(q5y(_m);R6AZNu`UbvP^iJDfLUr=mKZ^ z{9}~=u9z-GT?^Ac2{L3Z!IalU1(-f0nT&`vm_E;x7)&`nK2ZiZBzO<%$5^LWABFbj zEByf<%2~PXCDfKaWN!B69Z9!5=kIr#KUZ6C8m)T{ZpE_N=2{4*J@Nm$2N~$c^Zi3l60?<+XfQt^EqO z{Uszqpx^!t*;&>02asfJEJY;w%QTu8nk3J_k)qWi$v*}KE&14r1Pvs4J-i0;aj<0C zl6(qNV&tP#v`JKwFGBh6D#9oL)@FN#oxx7Mu zxgNF|lgU|OKfOQpX%`nsn9oA%=IV`$B6z1y)f}}mX;~=@*K#P0!6hS;3c3Ti$HE; zfZsGX-L9P1)(w_B94&Y#SPbmd``@VVJ%4QAKtGbBsT}Ader8ZKb2Bjz(kCAoF-5he~{gxM1(HmgJi*x&#Zlvd$PGc=#)$O^X1;xRtY zHpxkGMzl^s7{QLN0FuZOE<%NNK&()|u%&)j1l-w_eKzJsz`bXZqY-eOCMzxiP6qS-FQ!70B!O@tGU zh*OPFZoYK}e^oZIyow5=epYuu?Z|dM=eEx#`uLDde5QW-%jNAG{9BMLc^Zadec%4J zmW*OV!w@=M>4G=Fb0O=a5=;ZCh!qSqgiqMj8BK{~+_@&#P!CL;*QllpaeUhbxKsc* zbc*)G0on`&jW~g!fLAurFOfNNr;He|o;I@Y7N8ck(Z0n}`_oB-Q9HauiXXKHzY`ok z=+%(?WEYIF!y%=)jX{Ne(s=kKBze~R3B>_(d%0wcPxRHkZC^AQB|yaL-vtn?g?6N; zkqSq~RX{9A^m-5A_a^a6(J`<>Gt`Gn3B}m%>h?IYr|fDe*c#3qP=VJ;F^=}=fg*U% zdN&9PVypi+~a1hENorA8MVF8K2cCeRiFrM5yc>SIz5uE@!$f$IY3?%XU@2Va_?K1>Vx!WHL8 z2f366`o_h(XMU)2Y^dQob{NXsrIpeY^;vXjo;I=_d%4e{oX{O-jG1ZcJM1%Y5vinp zhHp!d&|}OWXu_;_fSu~@IT&3c+*QEBJ0yvMf5Ts(36xY-flnYN%ELx$$(D2SOZ}{l zf?C*$oF}v1PZ>G4ccQ&!7j&x=sqIW%ANGLqB+8&Kf}>enhr%VV{!&KH3B_(qEE9dkzdjXbM0rO9C*ULD17sDxe1`iXW;0#Nh|rFV`B&6Njmx!L2-70Wo30UJ#Sc-*jV{1&j0l>mX)v{2d#%a~ni%A3%(x{jRrG<|SO@9&Q=|)XTs~_TcT|$_rInU5gasd!2K#Q;O zxlTQI@|l;yApI$M9wyIicup-&C%#F&j-2c8HlYAHHAl(MMJG;RotlLFT=bI(gjTbc z{9JS}qI!0z@2|ROLVbVf`IYrvX>xuci{lRgJ%9Nynd++VDP&;E9LAAuh*omj;hzP> z6s_%!)^Z!bjavLGF07U=`~lLvO|aw$6oE0PK^|CTm|Vldt!4l9{YZSS-B1c&Gm=-% z{J7YF0aU0j*R3pK22>SDJHlKxw#z{>G9Y=_J67s*EnvQns!_x|AO^vo+MSyGnz`;U zJ@qv;gPgI63?`;RI{TX1&_6bgSK!mcL#%ie-F2Vfg=sW(Rfj26)X68b+@%miCT_Of zT-b6Ofs+}1k94%jGj+0ceR$-5xvg}Om#C3baYdv6U`{#+#kbWfH%auH{$~|vqn2@R zk^|lO!q(`3^9bNLGH>PoqU7U_l64D8)~zbVUpf9N@K=S_`q{1fAx`#Qk*?{Ljgsz` znR3TZKxZ&lI~sd-hsmx&b}&Z1wo>*rDznytGS)$$YkNAhS*c(q$20I^#LP zG?2tJpg(zf*qCHWANW%RGU`;CVuts*mdGUP78GN2*ynpduB366VCF|2lb@A^JbAZG zYnJDjlA)JGfmQIfmU7Rq9tuL-2~NZ4RI&s5|BY$W>KEloW>wyXzD>*DB=SX*FDKokU!?xNYcU!_iCm zT7dutCxZVa$qdX2F|SlxnP$1KO1JC-eMC04v#8jNez!kC(S%C!u0kVXmZ;i(`L6^C zs4Quy3x`}}O2V=HL!`Gz5zD2Cud1;H>uZME9=`~2ydX|La0w-B}l~i1nBCmLY(gj^$ zCGYEfIpPsrFcXA|Ia}GbVC@2;0XvB2gQNpoQwjFdq&XN;S}l#@yYi=6HjwkJ#WsR^ zm!QHuEAmbtX2>2(G=Jiw>D!!nz6~HVF?ARIsJsASu4pV64_4X-Dy^rt80-yRc*hfej1b_5Gv5b6)MusMp8V ze_1M%uiEzB zl!!^P$yTLQ?x7|Z1jM}?an^@fndn_X$i7f>j;`tY`V@A0ErS{r3KOYuQcMlqmtc(p zN>rnVooKZK24#DA!He^ZO@wKit{3j@&@uuuqz|W)%spfoL_a}BWF{#CasV9X2yj<_ z6~GSMUfX5Q%j%S67h$R$2pTSELi#;U`VC_@NUC9yyk@E<_b*vIV=h!2>v45#puDm^iaZea8$Ues5BW8C6y4>0%l5#|z|VPCt#8RHhF<2c;U8%TLC`PdZWB*zi6c z>~R+NTmuWE&C&%0_>YJ_39At{!YH|rr}x$2M594LZWzOM^jmt4YP`A(DFzAww20Z6 z^F<-{5;AK-N7?vJ}*8lvKHFYCBjV zjSX9(Y;Lrbe1M;9C4LDvW$v=?()#@X7uPxi<6>I>jh}3_{v=wjdzzRQl*}H9RX&I& z9Zxk>AQ5l!gFcN$BrBFOYRD0~20 zkvByQc~s0_vAZ^Kz&At4I+M3PHK7a=P7;Mcx~`DogC{J^YPfiyz0uSNe^vbUG?| zbNJ#~nU4O3!o|k|{T=>@wo|MV64`F=|i= zbl{o-@rlTuFHI|JVy`svQ_o;ik@e8jqiiZ-obHp`%_p8JcWrFBBJYk}6zNXh9aOl1 zFD?}f?lK|MF$V0qFv)p2Xjo;G9=RTIrf*{ycIiA$SRUd%JI{Y7_~!NJI}@GODU zlL>9ogNPWs4Yb$TdYkV?bkGJt1l(4Nk&f&(glkVV^z3RiFu^7L2m0!Lyo$n@}MBw}Cj1GEFzNtuWr$h&(*%Od+ zXwgCI-9qoc_lyoYff%e}bkJ>c*l@7W-CV(#Nu8P=Vsy|{z;L32y5TtlA_0(d1spGm z?goeSP$V$QU_%Op$nv_xBR)E46?DruS-fLt8O#B8+7$2q8{KlqH6h)y0h=0vZdpz{ zH&U+1tD?{Y<>CtHmfb`HMAq?@M)=}&%TXH+u3K&!8>?ITFznuh9|pQ*5uUYfx$sBd zTerLdI}O4xOh;G_s#{=C7I^>t_S>QAmIL1(f^L~XB#f^5|5>+~nW0k_k}_xEHiAVE z6WJd@a@H#&etC`{LQ+7qtha9ixMxUFGS7({jdCVa&_Gc#8wpTniB<(pbGCK3q-=*2 z^S=_oQn_X*!&;t+A+)bw3TW~on~W?qyR@8N24j%RxKO;u0Xv3PmlZ$&@M-~jYWD!= zyBG{)&kAN;D#izG0W<}D5Mzh@lmud)))j}~-O?3k-??SL8Nq?=l0}2qCA-b$KwEZ6 z1)GlOgs5Fo99yo)8$qE4cf2qTx?{x{Bd-4H)Zh+ft2XR3Q&@J%MVpfv1KTCjwe*sKx3CQ;92XAeSp#Tv`apkNNQn?A9F=1IK($n{N6fNN;NgfV_ywflMJt? zfVmt+UR0#hR?68#>Hm->;cm<-#xNgm&F^bru$0abE9L8|7~&4iWZCE{GHsm6LVH5Z z_~KbmW&neoqXEsA!KPhRljW`}*>GU8R4N#OwV|E{3}`+UFdUQR)3Dt$xXH31@o-EQ z3V^;Z&F2|gRVcq)x6*%L=XZ;eE8bL}aqyrg@kigW*h3p#MZ(aSbtA(zh78)=sXbXx zVxcovuC0I*);1z=9J$|q>=;fyz%CEtr%bTZp+C)gp7oTs$wu~h)(JW#{yb|n1At?~ zZw}iwtREa}4?6Aa{p@`m6?5VfSL`639@nd@qfi)VaneISa7XaC(DC_V_}=-Ij9MG|hGJQ79-L1g*8nkmt%XWI1TlQOPmPJ;JNhlG0Q?xfUGWC6 zY$i5_@4&Wj4BrYhZe0)p{Bi6=2tGVT_E6$t_(pRlgz6Y-IEdl9N9Ow=hHnvFqr%or z0b8H{le|zDs)1Kf2a4gl{&fJ>&4*+7F5D`@)4_P!Azk)(!X(0gJXp@EF|l`!RH(B1 zZ<)VrIjtvK;FadVbeZ+G5n6Lczy#n9f0LbY^~@iDiKS1=Se{OZMzh zQ76x|i6|^NQi54*TcZ?2fxm2}6{m<=$zrLQJ~yd;vA==+ zpFVZb1fDvRWBZbOcU=I7g*usO`?peP#I{&fOsKc8oHozG|A@_lAvYeG$;8sRxc^KD zk!|Zxha}ORc8oEl7r(guS!9TQ4S5}g@p4Y!%sq3sba|N?jNmp9EZ;af?I1h;reH_# z*kS^lLn&71YFc94~0)~DM)s?K{awIh&87>BfTRJbOZebYuQ>@$w@iI4>SaB zbd4D=9xjL-<(!~D5U&=-yUQ!WQrPK5A{6g%&gmHApVJ)H(Sv@3)~ghyf~N}>CpMZR2PR@56s#BgNkf|kZp=ohuR)^rMFyj8jj&_)p}TkdhzMuBPo$XN%>Tx| zD1kJ`*%#uSJ-&Bv`{MGNFaXu{j53z~GLdAnW(vQzx4H+nlzlYlXb})|Y zx&27D{r9jCwAx=MU;B44T0U034C8Bt$%us^!5)Aq-zi}c5A>^O1p2XFv+XfFcH5(28MP&t*qzT0 zUzhW_k3eMn;(D%KT_dr&vU+_B=x-VC*WgtxAV`A}@$*o}b!#2BHrHkm0tAEKuaLz; z6h6vAnA=o9_F)VRa0Q6vuX3d8FT;cJ|O5^7 zF*br#=jkjNv+8UYfc~oUtd$_ZAgj(pRhf=_t4>UhxL@H7XVp2Hb=0c!U}&uYSDhQf zfu~R%Xw@0ZljxwN` zq*d05UF1Ih2_zY9r_@!!dw zbXA@X2ATB&@=nAVy6PxbqpwK;{bNWSHJJ4V)Uowk@89(0C)sbzFbuIL&U~J zxxdn9E)`MNNsBVKmzvG8-t(*!0RDOpwgYeoWoM2)5OF1+5pY+ow;0f>sLruShaL4O z5b<*3l|*K}3)V1_%h_HEo(mo8ZMs$xptgm^1 z=&%bloTn*2{v9V#F4%$sY4NnVO=+NA;#3CSQTW{(rs2olDCp*wXw>d4{HlmxFYvDJ zA}2~oqLjWs4`c&DFy&OFh$*5^LT0@KCFRdPB%EH`hh=bt&OZcro7#M8oP_AUW#|GmWUNtACu2ws{^eHMI@Dm<`}T#&?wf1tT^c`W7ET z!1t5Jum?+C{+0+%R2Nli74?ij;P_^}`}mxqfmEl5d;fF6FM1cTmbsF(bW-XAukvmx zz$WB&`^P>?W?zkla#xUnLZ4Kcj>h$MO`DA%pXlqmG$Dk!)`9oMfrqc#{|Hj)Jpk!a zO!X87kzjc+1^)VT>px#iPIoo^F9xVl#tDzJFLP zKR(f!t!u(-A^rq#rm<5!dT5cr7VGQhU-q5`^Y@-L9EUOpOHS~q%4Mdq9HE~N(Js)H zZ~+`ERjNt{3{VMN6jVBjm4>TIC)aF&_718k!@n2QtcQP(s#zQVUR1LN{{3k!E8Z_F=i$f1F2r_QhjZoy`44 zdc_>gjE#s$kXo9)lUK-Yx6&P(yh`2Cr3qJA`TbA~=qlyTbCd_- zt3-LA8!IfiyLuS7UJsl{)=R%Bv|3l%!uzvu@AncFlkh`TU}t&vxnYIR4Ql{bV6aZz ztQ8eulGl*D8ZVMtV8r6}??RAwr=YYRj6A*QKxvJS;(A%4pg+Ph&KyzduXz0N!BWN_ zAF%`!;qZx_g4|gE+pm-|j`#82F4zh99vQY<OmsDAxQ^CF1xNokOXq9pJ4_q_yFf%qJ80%rl7y^Wwu1Aae!Yk?5Ya zF4yKK1fAH$4_Cb0ew?Mdg^CN zCSHF-*PI*GAw-CMBf<9FX<4mv0H_;E8*d5L;N?NVL~~X635~z4|#= zXqGKyFc7$?KE`fs1Cu&RTFQF(7_L)07-6}m1f!gpR*6bI#N=ohWHH5-AFc)-m{&4u zJ;IyNa&=)r$*mm_G){2B&GHV|LqzgM3O}eOOM6$5c>XoudtI^+9d#xwOht*>1 z7PJ9E;shx;Jw3HmuY%s@PQ6}_&E-s?{EjAj0kc)eUYo8l@+n;-(i-1h-1uGwZ ziP@okiMpZ7x1u@9)8eQBY!{3YzQeh7UizZ$#4!CmNS3U@jUHdfy)fM%m=#wRy%OW) zxMD@#5yTBW-VigGH<2%{bX)fwT};}i9)}A8KXR@r)!Eo^GG4>uiDjy9+WwXCcV;oq zt8?`F9AOu-n#DG-oKXD32Z$seXnu;b=gxR0~PAtj0v*HpO92EoocJ zxleZ#jFL#pG9-X!(vxBqTj?QfcySJ{Y~(-D$ZpC8g#ahQungfT7N(Cz|ku36gI)MTP%MRR0< zgzw2Eefx8p0vC(`0V7kKN2e33)pnb|KvP~7j%KIu3Z)D;m4c|ax=-x_TuN;#?^*9$ zzBCat-ysGE*4dxg^p##}f2YD96BxSz$XaL>Pw}1U$d+Hea|HPAoY(bbDGn;FoMH~) zw_8#PqBh^zk09zZv$em@sYfbrE+cMIcKOecUNo)322Dj`Gif1hP zFKy;pQ>1W6+Da{|gKKCc2-NX_YFl}RFEt??KCA+aZt!6jtldsI-61P@B#F2qS;U=; z!Y1(NT*3XxCFG454Jf1L^z~(|3-XpEMew;B6oFU3)q$#)LbK>SV0sraRlCI2I%4|3 zRi!sdPlLstPAsYK7_N*A*^&UCFY{8w2?M|h-oKpkX3Tjpa}zMIWjL_9KpXf)#X~*0 zjrXG-l$v~R96B`lxi_jtiFZt?S21w5C+i53Q=ql|>vg_(SpWr=*l9=)p` zgS2+Ji9)hkAwv~NYBi?l)@(vNLI+gp>TM`fCC`~@N!4DWN2D9Tt13~mk_}#8g_=Sw zplePHZR}%=TWC1&8qN#_JE&ca+RDmPKmqW`rSy}(tEb|}1u-}Sr{0@tYJ_yA6ZbBt z!!Jty4kokSy;6Sn1zbokQ3pK;N*HQ{-Lyu`*eveDbx7hr=dkG1C~IzG^XdD99|D^i!o5VwvB2Vh-AIb{~au8cTo-LaMW$3m|}HZTu4=q8ra#JFRcXn=X*=#{RcQw zdHq*`RGyD##qwGzf6dHQmr8ZBJpHt*DwX~F#z5lCh3 zASDr$%Ib41kzBtc7}ql_aaUsI9IXq7DzL9o;+jp+SRoNJ=D77q*$5T zaJiDXcm5qCb6@7-WiFT_WQvO6?gaWa0C!g-JK*jH!`)Tq8rCjd7?41-_KBK<&-EGm zSQK&@dox_}CB@L;*VI;aJx}%PMLdniQWVphVPr!}MeWwg*jY z*HCP&$5pLDU2Ba5I89(ZMjyIvXJ>LboTYHiI^yxj_F-5%F~dr|J-FGQ&* zix%&D;yqNp!q{xKk%2RSa^dsXM9(iuUKgXSON=<){3q6N0bYAB9K5ulXTfmd1Nc|- zm>F5rHi2&R$Swhnt_8``&YcTc^htLQ>D-Siu-4`a%kl25^JIJwkUw)q?OXCYXjcm| zGj0jfWc159JA7a>wrc7(^V!tu!k*TLccg%{aU~HfOZvNEf7-ud>1@Fb1!4*nXo{Pd zpOToEpH2MSE#+gQMc%}J!soKndtxB;z=McjSKKd+MAyIw5nN*1XrEvZWLdc8M916l z{kWo-O)MT zL!3YS=$wy^foN9UYIkpe|_ zfgF236?_UruHBEMD^)VfADIx# z|4x`X)s6PC{h8Vrp9UC#@c8o>^sqOU7B4ripc0hd26$pEG8Rij>`e5_SsTfe1qwnC z8HfVNmcull(2i-TE!EYScnHn41M{T% z#aC(qTGV&Im>@z}_tWQw%^O~sBo#maI#vr`<-IBO4?q{H^in^29E!ezDR1pRBNI_0 z4;9p4qYAEksBeA6JBXuzcIsMVaP+V9f-(9H>wAe{1%ALw`~afH=fEQB)qx*f)|?7p zwBlLZt*W&D!>snIkEz_@-VQHBF}Sx)tfn`-pJH#ER4nX<%>e^Uh5-N>)GX_^Pah@+ z$*A-sO&2#9sEb6&bGzwc7j*2Y@rI1p-AzvciE-eZD{krbp2v!05gSN_CNvQf2PJ#L zH1LjWXx;RPF0Ia#gS+1yp3EH9FLW$?PIu=_lxhn5iU*sshYvVskJNK^=56Sdi{GNw z0u|+}aoB-<$CH#3ct?PeF}?Jv=oW1Rpd6M&ij*hJ*Du_EQ3=n-x8GS52OkHbfLbm-o$0nh?NcU7Is;h zP1{oWt}MQ{eRMjm1?q(!IIXpPK(+sTYlAEMdHw?@Vz#kEE@k`&t-*#_~p zt~K)C&!lU4t&tTtudLX&h1~o)UX>rCnXivCcL>%<6?@S9+Zb!)R)L_bkxQg4+ZvG* zXWAM$l(~U5GVk$KvPO16<2qKj?+r3Uj5RW{jlHpAk711rhZ68E2VWX%WEfOKj5YEW zSs4`hEj7nWeEHtiNOP^A(+2``f#@4P=K{LLy?LyW3=gOpyMxLVQkwPD_qO=jPu=SZ zTPfrkI+jAET!TLY467yP>K!3RR#ZKm!&XLP|Abh>J#MwI8YKezas^)U9!DZ3AB097 z`}`dc(3OZHltB=A(rn#ly^l`_OT?|CK{$M%I$!ksKM&OHBt#-EF^wqu{I|>3|QU>cJ-d(OMZ#)Imj#QV~G_q5-WgJ?LxbQ`A)`PF6R&fHbR zk9I8n!d7neQ6etPg|?-Zq z2(v^Ldobhnm|5a@fuLrIFV1FL_AGJV$-ykKE=vZp#MKY4(k$`iZT>9L{!*S<;^p75 zH|{L){43D<2ZI-k-SixuV`hopq8w+5GcW~tx9}y;EU_B-Lac{T=ost(p3-CcCHwN% z=8G2b+$}*Fx%Cufvg5;i@iFdfbNOQPrG%58FMbag7GI1vjVQi2g}FoE3$Y%O%`tp& zh(J($@y?lS%jS#Bi2+}Hxesy!zPRJTRpN_(-0Jg1%L{q<;>Ii48<#I0dl}>WLyWWG zi${e4pl_x+-n}%+aa@ji73DAIOCG*3HmhTimP@L?dlAt&^MCl=bRk?~T{5@0x^T%j z>1ae3E``Kc_H)EikKlEw;6>8#vfHSKLAlpF+-;)m`BT3F7h{O2v6b)SMu3R%CA`EM z!7<$B2pR>+IZ1YEh2D!#uy{9v(q?4Jx;O-YoAqAgV|?_cMfbQ_slxFUe5VC`9Y^0; z-w$;GKhSjeubrK>jq$~*RZKrjVyc3k2$r}@S}EVaV-TJ zNb!;g*9E0P#NmsLY{15tQ4WK)y8G(wS<)!LSHDE?6L9gCz0(A(g3{}NThe>wYbhGKED&JOacK5WIye$#U*Bt?CLDJ7qH zLh(vfEXg1JZKss_xRL&Rl{&qS%^n7#;^eo99h=Te(&QH5tT+8hF--M0wGbFaB`7nf zph=Iel$4>qiVN9Hq6HW!TqX5)3S6C=`g2KDeyz;p4%nS7$xLnCp-L6~7P+~ZT1OdN zUYSo^qCsSdXQ{%n-a43~OqH~c@y$YuH6!j!3q@_=5TmyE!Q3Hon9DjmK((tZZ+^Ci#H-H_zWezWN`nY**|gDzqJgh`%Yt?*7d|hoNb; zoE^f-_Vhb-=>b=^2cc9`oK=w-y-r0DxQP>m=znNU9OY4P5CHlzlo{#VwO7R~hHQ1#XGN(3#>A$R^$= z_PM=vGi|J)uJW+@t*%JuPTE%_T#sXW^@;Zjas5K!6&I-L=0XBekQC+->SCh5&M3k{sx-?y>`pT6`5gelQpHcS+g&=7YRyQA+YIrb@9Lv|#m&y2!( z_ArC9gJJ#xt%4QnIsgnq{KfooJg6aVxiS9cfi2h;g4u8Gz^Dv(+rSsr7?dr>Fn1zk zux{2DKPze2Kn*yWHl!pLnv}IX*!;l{)WK$U)4LHoAee%Jt?&)W4H>n2YUDYVB-xl6 zl9hl=%2*+*opNcId1}tobv!_+?K zsb!?vxe7tmkD<02$WaT6&?#@-`D7%grG0A6g%6}E7Jr3OKwYrFM^_gw;J*Ua9k_e=?8%Y?^v9(rNE{A)0Xa^a`l{8$9R|TjMPi%&7 zOY2(kqzD}+AvOE6l*Q;jSA(S5mZRK3eu(D12RMkXiH3TAr0}`4cB=pvBx%f=@U%9I z(a;0h1z;I%(`dIW2ynuvLBs((rp zWpFg+74L|vM5dgJ-Dh_UeCddd@8Q7L-K{AXvruRrBVxEpN`j>yo99SZoCd%RLo0W- z`DHV7q4ydv1~R}e$AFSTnK-r(#ks{O#m3U&wClCv40PfTYbO$b8kbT)SK#tY5&G^K zWegp-9dP;D$G}&!``92$RtaR^wg4%gTN2{=ASc)$*Igx$cM{}Ojb%Re!?_%-1YY(o zdlKxoEh>P-(`&~HJ;2iIis4aafyDvq#Et$Op87!j)cN6^<=oTC2yPtp=%*&^Yx{OMlvidy7 z>TCX^K{KW=a`}`|N_xg`BeL_7>eav(R9e%1w zAk+%~oT54rhtFYF|7Z!#s;yM?X#_C-r{2h+RL)lE(BzP-T*#T&Tl3McsflLQZZQxX zn4ePmtv}?~hidhMyw_pG2q9KMwVgPU&;jaWI>#}>z{B~s-%$-x;Lw7OYE{SY@hzeg0Z4+ikBZfA`Rwo`*I|1#%`WlbETi@}(o)6*nK7#0If3A1lCz(-gRxsakb8or$my8=%*sgoi0|N&R{{iomu^SOrzPbV? zGy1}U;en-iHygsp~Ott4Zs=6a^cSwxR?KmkpovvZA}(pfidS|DM8Mi+<{7+sN6}~ zaw(@c8j&LA)-DxyPCi^nG4bxX#E4Z7>s&2$fH#iO?^XM)yedf(&RYYdAsN< zu=eC8En}4gY6^lV^h&B02~ z;A~+PTBb`6ejfz1%CkB2=UR(?U8pTQBk~ht7;r0;p(n`wHRY}*>fuIUsDlpr7@~rN| zK-#nl^`7${M? zO`@d`$2udl1bwvgV|q!faW4*OC7V{uya(^4`G;eU&m}VluFS2qbeM9d)-R^}^%C+b z>Lf{LQV7(kE{}BgF4`ulyU&9?Rd?+%D;MDi^>;HeNWT7>xe2;!tUkCoLiv9|uVO_q zvFqoF5Gf|OHbeo#zs{^$fm9B(jE-n_8TcsxI@sMef2PtfRdW&kmeEM{H6}hQnK$(_ z;;2~UbD$W*!_oDxj>x<@cR zxLr$LLnM8ki4IBgg1g=YcSRgH8N~>=i_xWKuyPYvxe@5#H|zZrdst8$jYz}fI2HN4 z0p~DBzkS zZNqOXe%tZePNZ&;TBsJWWHDT}O&FRHUjs3QFe1G!3Ezw(;TueJ+Rr;8x4Yodap1m) zfCDF145(Y=9+c3Rk%C)N_SYw_HwCG@HSY3dW*F%=kMs)&5z|!UEO24T-Dcy6K6C5T zuX8APCrDFn6CNHeq<54?9#w+~P@VMAu8J(@z;Lw7-xZI0p-uDQvGMo716mVTnrNkD-iq&4F zwJhP5u{V93C0nio-1PBEh8)C|4UEEZU}j!svbxSd{)X|{f*d@;X<1+3*WC26-XUCs zaSo&%SE?Ujl!;;74)+k#ASEJR=U%T%4;U$W7)t3`)LuCZJnsz6rv2@0n0KzfmEs%N z&->jzn2ie3@Tt)t+Dyps#(jJxkDCt>&yu>EL7bEV_8@pc z%r-=Dq5g8jO@buY`k+-N1^*^V*g?rm#`f9NHk=zk7B+!2Ube$&EJhxvHwHr%M|2Q8 z>)pWWfn8W9uOZWSmNa4O^t|AzTyVR@fs@bCi`{0^z9QbzGQs)rciZfy{*#+;E-3Q; za0@v8j+@zevJ;mY!HOg69ROKy)@PcB#9$|1UJ0{ z#X6Y2{77;+m{v>^?zUl9P47ZX()`vZji|KCgz(r`(Szf1yb1 zAEK(Zkv_UfhQ9?(10@k1?*`Z_b1?YEUfH-AWt8*lB|fU_mQ~=k&yzl7meheVjYAS~ z^&w292C!zzB<|*#39Bn^re~(&O%OT;Mh_GYZkblW@7uYVXWnn%}H3rK7D^CO)f`ua3nxrIvRl z5H(o{(Xmk9cX}iWcjLNQpY7wuw1TKt-H=D85Vb7X1CtCN{cr?&B}+LT_hAqvPmXwk zhwyIc9P0l{3`!@YVvz52ANeneKKTnqNE#nt!42vv21NyVT!0VJg4IPvma*w+h~v?$ zVx3*vC%0R`Qc|uWwp@|76BPj9dF-wVe-F&tQ*T+e)3Sh{7ybWLE219JkW`lZw zNuQ({TPW&w+lEnJf9fQWHWXAi6Ugh%d>#8tGW8}>I=FjzQwR2x%h`oMgA{q0CK0lB zg7`;9o~8ar*m71Ai@d%guNaODoL<4nBF3I_k%fx@RWODW{sRl|o#;8A(T0+82~+Ud z>I?XBIY~JcDY+4N16|!ikzYehqSj+MhsEx?Yz$(&gL^_+)#nrX0Fe8A{w-Dy0AMh~ zlAi7uqv!XF?5SbK>+SN2{=eyOoeXzfTL2;$38U1{>M79C`u^S|wasMwxks7TKL^4T zw}DS!{Q%a75%v)L0;=$j{ERee1)xKh`x>QW z+6b;0;LrpLO({lms5H4lECS1!S)s7Ii zI)-!_VnJlqLL*hhN%c(~G=xv(RiL<_v91&+<02#L_1sDegC;Lt-_&6-E5{I3Rp2<$ z296HFXp|b+B8-QQllW~*%czr9Gf=46W+Ej&%?mapSx|Ap5i5B<;Uu)xob zdGa9bcHjgx+dVz5-7VwVt#;de;%2n_8aGwZwFQh!A-KuXZprLx`JS)O2cd1hucZLt zn=(C+EJkRaT_Q2`$}T)B4#mraZXwb<%*22+8xqA`42q1!B#IAAB56uyud6eXMGgwn zEfg9PbEOlgHR5o9W>1SXn3DiT1w2a-sI3C8O@F;o9T@4k2C9e4K5^@dZFo282~dBO z_n_MWO&kwiq3#csi4#fkd{q4QU>0A5eN7?>-Ud6o?ClvxtRrQxL&U0MVnD23NLEgt zrz?`UAZiO+?LBraI#a)7hI4vc$w4*bpfxH7t^UC70rHXPhbp4CrVAF7f{^I-Vwl4E zyj02TIf`wVje^YnZIE3v0sUkahX7fPR@S=AA`$mP|9f8_A>1bk2g0)H{j*L8DjyzK zd1u(iy|-DFcZChz+Za^VNd3U7975_-7|Z7Pmyc8-mdU*nEx2pYQ&thc)jgUQSGkX6 zM_83V-vtSus^e19#jmjKP2xtWcZvltgy>;bmXGK!u`S-)Y=M3Zj{M$hbV5MAb>b?& zvIoi@XH_1BI~aQp(+TqZ5021|5K^c_e##o_m}dDPBp-cw*iLRbT*7?+yNhd9Vnmzu zLh*pTjjpt6ok2%SSXbV`#DK?(nxGJ#P`a{p!4Jr6KJ*NH?u15d;k*G(g_QAJb)l`&=$n@dA>Vz z`{)2tAnT124=U$Bi#(I$ib<*f%#mgmoW(>IL#=J7PDpa2;I2YLc@*6JR~rSl@+whq zUC-EzN z-6Qn4hn)jp1VJF_sUi$v0Z&&xm_0yt{nD8TY2 zT#3rG2h&x>assSoOZ8f?U_G{l3KxTHs4#Lq8_yM~)t#==SQ_iq(gx-)4wYr4zc%A+ zapm%Aj(6&5n%9vzqk*ZA6g@lK`%{sWIUS7+3&a|i{A8-30M6HBMkS^iiusn7yagL* ztQUjG6cjFmQBo?PGj9`&4$)4}5ffkW?Ha-y3cf#vx9!id%a+WOmP+P<(IqyTM+z1v zvrEzLO0RVy`vZXsRqn20W%6TFAaiSyD>8`FHeuo-H2)NiQ1yMLKrPJaZ+Iua1|fL^ z3cz%6wC>_E@HV^Hhy1Ws|mk>X#}YM5v@jq3;welQ$I2(Ib?fP?NuBDW!mj#B7)$ws2x&~LGX-=%*|h;%7B zWS>LX#tqqaGTxyfJDQ2dOw4~-4%jQ=>pS7Uq%vi3i$8vpWHjbqy zGrjJ&5!uazcr_7AvmC;!#Q4Hl6l1BjU=t0p0|S*uyM0iHinNHm39OiDCgh@BOd{d=wZ_*9;*SR;*oE#_M(F)<_Myht;aZ{vPM+2V& zAbCjj)D<9=9L`(sGOkWU69ADd4GhEKKURo12Nkv2$~NHJW}bf^%iy&q8g>z|fEz9hoW)t4K#{M|2oeh%@V~%0-nx9batZAVS)}@QN1Pw4BFR;Ax~d9yRg{S@D?^@9iO7^) ztPc35zzj5+gMhph*Rve_mU(>yyGqBaVWTY+`9LbzrIQ z(W-z)t4vV95tJOGyV}&7(EI_|8BHNi=FobkSBB^XB3fl=#Y=}?#(U{bS7iq7Vf_J4 z5BFr9RqP=ZfFSiHx<)HQ92wGCNs-sA_t)piP5C`^;z$<@7UP)r&c;(cLZPKghNcHp z{Xh=X!5@r^(ZO69hyt}5TKyo+S!CmM)e(7!} zn#O}`pA=Cg5KBtFwS1@A*WK^Cr|Fiq;->ZIp!zgPFTIFZ`Lb-#g8s5FNs*|e`IK)J zT5tiRC7)KJoar_2Fidqywe`!G;6#?%8QnuQ*^dwUhQ4M(Sp{;$MC1uI?E3+BM8%Li zm7)f~TgnZ?Pwruiq&|m$eDDnQp6nxRFU|86d#TUKA(cSJ)Ok!0M{l9l&*~~zr7yhC zPXkA5M;YW-I0|K)sQ-`2g;AYr?P)r7*+(IA&HDP?_n<~{}L_Wf)=8)QtHCu)9>VXuv&9(J^Q7tyEj!LGzrv|KGa0Ai)Ul%^(bbr z>t?FPTW}UJDu8XQ3gO0%UT*IKPP(*YUWNqM6U_u%E=pZc#0Ye!0Qu1M-7g`!#SN6%vYh|D#5zkx%eNnuw|3+Jvt z)!11m>CxL1NR-SYrnUk**n}ZaAxi5zvvt$hVh&~06kh*4=p$hI7L=m5247q)u6LLj zPxHRb=lVqK(yAJc6C^9^_0QtSK>uho@8ZDtXWKkjP*swxgzy&0r8=#iQ8I7x`^-`U z`obZs#|wh0YEa+VML+r6cw@uJa@<{(I({SZ8?%AfLu|K!mr+fxP?%Y71H1;emzGH; zgo?M|)uQ4xcnzqSmQ0(94=^Q6 z#Q|E|3+2_Oue3Hs0MaCqG20lgL2D;Vrrp}UObNG^pXyW9e|aJ|^>q)!FpxcnDn0H@ zQ2pT31FD^$Jby6EFfUq*R7de1SNd zO_=9zE_%<&EA45BxUr|ROmq}rUU1jC;4X~=_pb=J{M?6$iT~x{K9#xB#0|fF8o00X zRB|8IQWBYu9T#xpfQ;iaoi;L$oARwwLFpr9zYTev_RVo(A_Z1p><9u+3|Dor@Vbg! z<9n%o=P%zeq0+XjE_2qQs|%vfLncOFthi+Aaq*+2=F9|@lc@|Ha-peiY2tcqr_B*} zU9hsdZ8Rr6Rn>~YASC_C#lRH72Lq6*EQV0P{*DKe@!T6CF2*41;(-YoRV4!m=p}$^ z3Fzr;L{^ldK99p|pbn0gOj{jX&Xll#4$#_KC~vj)O~PsIBfJK!RYqDXwOfnhCS}2= z*Gq=(7qKJVGgCjt+7+BcE|LXHA;8)~VMokScDPm=;G63g-px)dZUWREKn2|d>VZTS zueOK5NDn243vFC_EB7|*RW}lWI(-&)i@Y^J@HLQsg$A9IF^U+@SB5CAB?GwxzU-{%6xc$Vw^OptJ|T)G5mmSN#xbils`dVq*}&U zc41kjWK*FN7J7qC(C~M={q5pMhXuF4ohQu?{r0!Qv&o@xx4((3ZVhgKJ3-V8 zmyY;zZ+|NnWe;A(*H$byqP~T|xzUV{G&=4lcLI)Z?|ZUZhKr9!R*X|$xivv}9gx~Q z&bYcoIOejB+B@k!6?10XZE$-CzF5HN%kA*R;d!W)u0SK~M3cVF?R7;vxeX3^YD&R? zf38P3s9!7fA?8#H{%vr#nEJY^Uihb{sN3MMm(P!|%(w11dj!`h}M@S;{x zD6kco-FY!VaCKrFQDd%&yXHhrcwvuy1-P#}G#`T$!r*(KDLetUbi$M1KXUy~ROkAT z*vI!y77DE+H$zi_v>88e#Q%#K-48)~NAnE*%Uh4hJn!N)4rIs<}ugT2g7< z9LFK5CFYoGxD-Vw)k#lKglov92)EdkUV@gWp}*&O*V=opwf8FxAF%y^^8`B6=Bo#s>3u%CtCIG-^Qm?lhGUL!0pW6DHB)f5Py z6;1N6HwV9tX4sWjn2NjKXO2~a4s2o2p+*og>2SNCOGz~8@B;xEY<_@gO^4g0tW7$M zGn$+c)g;&X?8Yr4uM&09pzUm`?2WTfA*u`pr9)IXpP4>Y zKA@S<8npW4c2MPGREm(5D^5^U83N^T&Szq6Q00$a5ma&Q$`i`k(gnL3v_P^vYg>ea zP$8=907{3bavU>#s=P`wp{cTrOGa&3+l8nUL6y@-Dyr-P<#CQ{XqcjtmD*ryQ9aMP|l_IDz?07|$-cTN=go(95m3KGJ zLY3vPrSQzAtaP)fvSLsKRelAfLsZ!rLTOOt7T6M(DzBW-4yx3kQUq1@IZjb!HN?c( znTZfp+~wWIMX~R>7Sbr6rJ`>*VR!Z3d!l+!^=2d-1t5 z8C^AxkxJckrHirv;(>K`c4`RFU;>g4Sb6iB9TlMN#0cAeSm`p)TMQYYqKxr+bJ`5Q z{1*s@rfTJQu#OzPBf4J~kkzln-FaM%#9?kN4&1wybulo*ng9Gb_2AKsIFP6&g;U{0 zAP?Nyb>sE4WHE_I?R#e_uj6ouNky%G-y69iQSG02-wd(`P{@%euYxvGN9&IruS5cq z!pL9^{oy7yDk+g*HSZSg_QxubSPp4$He;f4;dlgVLq_>)8*4_%yYkyj$(^969wjS0 zN^YqrSz%D}Xq%FE;Eq%jCGP?km2w%Be2bYrCHJOX)s!54TstT^7?mO@`SEZ?$@@ou zl5a7wwkbJ$!*)~hQy>vR$%lEKSw0rv$>b-J<;i3zo==UU4Rg~QD7*KK`6Jbiy;>R&RtxJ^8GHoQLsOi{Z*khXb zI(5GnONLEIHPN6vb|hhAsZ^)W9VY3?xdK^Ea_}Ko-x)`~xcwK-^xx z%5}cy(8H@dGXNRR2D}4do-4(l06pXCJbbdGa86ElxqZ9dw)$okJZlK?Dt42~?V=H1 zpNKc3fd+$plz#Dn^4ac7LT!htwkz*32K|)LHlZ&IdF!e>%^}w6qucK43vRjHA-UWL zY#tp?sbVnyms;dw2|l5hIn~F*2TQ6vgv_fHja2Ro6Pay^j1O?AD39JY)ZNG|l@+4GQmJMIUuS@t}|yS2mq|EgD5&rGhs`QwFgo;7wVXHR?)?A-%dX+Q|+e< zrJP6OWnVAt^g$Um^}Jm|Mn034wkU8iSa*=jU#8|~}G91i7HGU=d(7yQK=ko}ZG{bbP^cYo8qmrtU zuu|0!t=FsUv&HA@hH2-G5~Gd20Il(0Z$x36b!g@ndcEP0r1My_-JE&Ah);`(7 zm9-KfyOy`R>(E9Gd;yDWlPGVWyos`N&3U zii<`YvZgReJ7=PmDQj-?46?SIyo0RGf|xmZ+Yw_-XfYrn=jBx@Dq9b_#Y zhpb)7M0;iJdCss6Sv%IZb0TZc@9WFjhnPclNY>8pnL*YH4q98Xwkbv&lC^G|MatTG zrrczbwduhicCD0|ZjQ)WkABgzme(a(*7jz; zC2MynL*~lbfH%JhN5?k zqF#8tNWuxV^HmO}Hjl9L-oiPG<{>tS8#9Ag4=1&oH?~2HIU*-V9?mf0%&ezg67^M6 zuuT+<2jYz0yK<};M(SYj)SYg~(U-B}D`nr8jg5WZ+871L4C(JA zey^0Z8Pbn8nw%fi1pD75N>HAKj5wb$VXZzQ%JL)x^O9DOzLf*6dJ0wsX2v*ERRBry z%Eu11t&kP1q5VS8#I#bu@^b_2$)S-DC;d_g=B2ga5H0SiUD}yU^1HEc+IhM=WpWDJ z#8Wt}>XwMkkHI4CvZn~#&BiT7f`o}9@989`OC2S(@`{ddw?c18 zeF}kd`%V_R9K7Qoa@UlCJDDTPP7)2RI*=9IYwfc3`6#oJcdMK3s#ABwGLT^)T0G%( z(WjRf_G98aUsTz;x@<@3JXKnNf#!&OO0&I(p;`FTTxETX>S_WY)%P@LDJOl^ZE)PR z)wgFxqQfeyLlWHR@HOI@rNaP!=6B1YJ8kqDkc82Zy_SV~Wiz26di{*z?Y@Dab45<>MFAI|o>T*`m7xS> z?+)IjfmT?$Y0%+HDKBu#d0vv!nnD@ z(O9jKb(LiCaaOz-E{)~mvmY~C!&-hgutvflcCM2es&uDcp_0&spV!m7o^cunh^Xm+Fvs{Z~m2$<8_#ukb|4;4otVdp8~>Z)*bQ}+h)Xq`YE2G@{zO0WP^{|A#mU!3Fuopt zF&vx*m$5HWN1pG=!8}6{1p(5|?_@uw_Sv4XP%j@S>?-F2I}x#E4+BAtK1pjyD#)j| z&3#Wdn(+7UycK?vc1ghjn~#c=k1=V|ZqMr!?M{b^vXV!;hgnll5W;x0`|w?hb{Ei3 zs%LC7(hieH*2zx0F{}SDX@~OyNOp#H|9XhMWv87I?^Y111&jm}v%aaY6XeQ>hF!|H zak}0-QSU~6?#&lO)y8H8xqjJa@Z{81UKRf- z2mU^HRx(pQ3Ta*5I2ar??<0tezVin~7U0uP!vNP985X7(qeW?XL(mMQl+J%6-b;2> zT%2|k$q_WsQqbIlSt)3YoVk~*9As4^Z5e}!kV4CZ6$!CTHrdx)exp^*(n8*HCWEcZ zF~6Xd)yNwq5Q2Im{MZEqo!2UlYgnJWhR!$PTUvN>`e3OGx;ejdb%ADKcpf?eBk&0_ z@3sVPO~B}DIt)at!$G4i=z|mES#W2)7V>3p+>%y2ZbdVIl2e^ygJUQGsp^AVs)HKw zzjc6j0|3?w{vtnOy8sQHc(rgipRZ2XyJYKk<@hL3d zrZIzMzo=+_89?8l3Fx?WdvA?jg;@9uWZN8pz7J@2YCZN~k&BTd8v7#(**p>r;*^4F zD3N+dH3@2eP^Kup5X-^TY32PT{WWc80PBmgwBNdp0%q1b@F@qXd6A z02*x7j52N-(RL1?GQe!j1?T1x+Y1yL$fM#>0ckOz%Q6~#mK?o~s&{K2AY+qx<{|jW zGV`kmZg>=;49Q8Q6$>|Bx@34{D^5*u#OM(gCe;aSVC9BcGVSr;^~(S+Zo%W|3o&}o zAD%-@Puj_sriDm0kr=eSR2T#T(?KD7Y_8;^JXKnRCanzS@W+od#3-|XuL^nM66S=a z69ANhC?JluXn6lYSv1K)u~@VTVOvn-4rEabH-t6zNohSFNms@ui)rAsL=PD)?Fs1@ zUo_?bFrLw>6*&8mvn{B=3D~t<+K|!UVG)_060lT>kx(GmEdw#5Zta=>&;3w0fiS<< z6fp~_+{(#abCTV=;_bv#@5}KUACTOCbrTf}k2|PuD9hmb1Jbh1rKeyKXNb%G6e|-f zdI3@Avj0XFU55C3S$$;DJQn>cvZ&{gD4H5sbT*2buMA`U4)e!^^G`Yo`G<$|M;wj( zJ;M1L3`c$+XRDQe@O)ul(%sy}Fm#b3yz!azLY@eBlcbJil?WTWFYqN)L|1F%JwU;- ziLR{Ur50b1t#2K@q82Kj8x5f|Ra6}}nHUQ&{2J1qjAXJk-!itNm_cGB9e3vy< zwJswNGPKSL4rcLBGME_{%*<+| z<`YF|tV$jm%b&cy=!ysW3rLlsliOLP@-CRC5dTgT%{(|Eh1?*DIU0`C;mu^n*w$20cso3g_w4FO3otm z;S%%OQtsmL9ITtOJ#vO7ejJ+kjskwH5L?du;4X9p*x3NID^P#DsDM!Hdu(?un`NLQ z3s(dgDD6CTEtxOxZMm<9bUQ57v%A|nJdgJl?#}Gk$9%#M+@>O)9PiNNXi!g~ zj1L0opF@+yMvDU@Ivd)hWoTlVy7|k|^)fo)vtL>H!ETiFjA%6D;d%WqeKJ4TW!R%4 z+M{f~s2i_SX^`4PV8#gWMGw6z6pv7D2?N$?T|dqy!$Vxsf4H{sqvNBPAT9- z5WtwlbXM@r7BHUW2(Ko}N}`$!o-Z`V2NIuQ;2?9}ulvei94vVhfzDC$UuCIGJynz5 z$5qpoq?$S=N{dXH#&`m2Bt=3d!ZGHDml7p&sRs%gSS$<4JIu1eDK+93Wr~G|TP3U= zAFq}eYrN%Y(>vqKbO<*1U;Dl_z0cOz&f0b>p&?(X!YX3gc@LQ;Db(^%#s#~4M5G9@ z+E}p5k6f@j5pFGF!LF#tT6c(|U~#})fb4K;Py_j|eWM=;32?UG(jNW$$TUaacIWCj z7k~N`nrY|17s5F7U%;?5>-QXAQPPhoMcUa&kwDr%!1l5+B*|%#ghfqZ#^GDm zs|#qDg5PsIo0SKe-*bHJc&G=TrMn15=EhOv?D~+4Y5ly} z^*)kxKVdmMoPrJW*9K=@M0$tU1}8vhd};Np zRoKp6f$`h8DeI?e>V5FD@;}5O2W{)d=2N_&M*7Jo=^uhR1fZ}Y!%y(GP;d`Mn$t6B zCPq|pm`wG)Pzp;aDNNR?Bp2EZZ)3fLqTiV_DdxTfvOatZd%UnOso~vGdE`7Kp)L9_ z*M^e(j1`||cRG9g)~sco5W0dnp>tyI5_rOYtfrD_4dZet1M5ts319svHJTh8)g;$h z&WIZ3^axrDagWECvT)L<`4p^hmYPvKFT)%{SQX%T4mve?-c9&u z@?3HhlXsIskLRbVq{Z_rlKK>?XTf^S#y1UzbEC#L5}lgkJ4tXh$0s>zd{fkbT$z4B zCEGi`bzpn{vhmGYKYDyK1LJ!(G(O2uM+ zd!c8OE1L->CRZd!VLe2l>2l@Lj$vK-dxv!;o&oFe0j#eIVJ$fd>xXQtKk69P|LQo_ zQ`e2A^^ySApNFuP9EJ6|67F~!K3FB&s{tQ%9P1@{(O8$DXH!BB5==}9ksO8f1vb|A zMq^!sC?K%*26L~C?;hC1p#8|7Gh&4@$Bl%7xkuH3=9WZIKcb{QFT6g%$Bu9;D8+MOJh{d6%dLN^b9Fx05898@2V<`J( zt0qQ3BP3~UF1yXCi2_{qmbsyebv21kjnz57jNCw zuC^Uw!$ zqw~{NhUuw(v0#i;^t0qRRCGn157|O1P`>4~)|g za?jT5@;Bf)QSA5St~BZLh`Sm^G9M1~Q?Lkdvh+iby*B#Uw~c;&?p!|s9|{3zrlgVx z`ZFNse9LtwNf%Qh)z7J2IN^8cb={fDm{i`K!8XNhhPlDUvB$C1ULl~;4P|8QP`Va0~e6S z!a>^Ug2>tC7zTzl1zkL*Ly%83A#al%a-R-C{<{hJumEI6KR+ZI5^tQ90Oh#k03yCH zV#Qg?@`9c%Ri$0cLuG7HE@xNrpD*o-i*7&f-hdCq;2jQJO4&@cFUWr(w&E;aYLSBt zdL75G*lI^Wkqb*OiH54!;-H}>8IvQ))&^4hBA5=fQy|Hi>mu1@p<8-1N?)YZ$aaCO zQ}@77d4?+$TWZS_E;Fu9j#!F-2;<#R>AAPwonfzvxwh zcP@fu#-JCg!x|hf7V1hz!@a3PLC=6U&2Dy_edyCdzoCGlWA*UZdg!5YVX=K<+FggN z3zMXdq^Os;&pWoQB3)Sm`I9AbN+IpsZ`V3hl2VI1PY~{USlK$ac9|4|)aqN@z*+>J z`%cKJ$3P(SlGQ4G$Z=g{38{5BC&;~t7NK#@2e)jS?s|LQw}-5JAmoHjrk!~_?n)cr zFIfQ9w3CZ)1S~umWs=U5@Py$RnhDyH!(^)W9#SZw43lT5WI^co^ZXC#g)vB6wS*{O zROV7CJV8;EB|m&sc8^hp?mA(~!xlE7LqylYuJe^`VebrB*#4_LiyN@8|KklD+TK(t z^$jGG18yh(PiHF&JC0S9g&i-oE1e3`=Frd@fMo|2;oECr=k1HA4A6z@S5cPy0JHs8 zgQ$v`7?@{SjVp64tFZ-2U$m`80}e7oT8-C1J8&b2^gipw&pWMq7+4OXqrYwRG+gl*+qbzNbDJT}JBMh+hIacNsFGbZ$&H(YcCa z4V`=KqwG4Dhl5U$I(IY*LOPej9y+XZeR+0Fw)RBl765WQAvz~#=CsbWO19_E@Ahkr zlJ>UFy&=URPkkDz+B$b6vuvF^N3xX89mQBMXj=-wt+k?ao8c%gfd@VH4d~U>xtowy zi$kubmK>#XFG``ObImFl*15uWJe}JK@`X`Fcj!l1ah^{Nd(e;7M~YkZ9AzAojbaVrE^pNTxCYbd!jU;a}G|$N9x=c zKLvEID~1-ObKk9A#pt-_(T2_){eE_xn}#FnkvjJ&3PQ4Y1AFMO&OL?$?uO1CB}vh_ zCjQhqH`%V$->u_I=9IP7J51tQ^~N-J@}@lbI<04bdIswq~*qoVEisD4zGvS zLUmElqu`P)x&S_X9hFf9C?XnLX&&WyOjj?o-DiiMXb-t3u6U9OMJ2%mU)8t)@ybf zcQ;@nKEX8FKx1$0KgS_J{`@)eHM?$TWiBTQQ8Dyio<#HT!r=A4K{HT192(+GWFqP% z9wlq?VqoGG2g9SREsc~lmc~6O)$QsuPC~MLNNPPOBCu@>r z%i2Xi(UUboP%ORaJx?3W3)3 z2%WX8xmh$=cTtGiM_vCM~2)*=sXvPu9K#2Qtdq#rJ2EwQj#h%32>phGALj4o!x9 z(5_jswj8^gS!M0elS8uBS4^GQHCNVlKvq!Jt{H8~+S?Kw>DPGNS2}Icxa!%UtWD&6 zC@5=JGSiZ^2S16HwTEX#%i8~PS)0PSbWql=Wu_%-1O5{&YlGx)boiCdvCOw*?QLbqTv=QBOJ`*5 zRkZ4WtR1pK$=Zg$K-LB_5hZJZ)y$T-ocD{h^6E1e1k=v^F(5R5>o3=TyXX%dILo;6 zwIvw?qH?QMPELhSEmW|iF6A5^(5sg+0@30Hebi^Unc())er>W>XMpN ztY9-K#uqxI38+47CbB?B2^)Tt7QvgMWy3M+zzzU#@R#?05MZFXY+b0Ob5XHj?*NTP z^x1S+qCTE@7c1vCb(gsxY0*Qt%~c6S{$k=mNx|B&dE~h62MAzrc3v#|X4nWa$s^Y@ z)H?9&Gsq0todNcHF_>^%V!2(Eq2es`deMRw-` zgum__-1Gg>F6CU!JA(_^B%auao{!7E{yL=v1I3WTProB6yf-T{^rz~+BVBsh;z9HJ z^-heYGt{ISDp-}F8c-aZ&=x&sEh;R&oc$GSwy`SV@6Tw1u;-biD;~cjo!R18WP~z;@FIU^bnsol^QsSD6c$AdPTNdtZJ#!?atPv z=xz)2Y~UZD86*bpsR>*Wri*mTD5+3XW{YB@#eNYjLi2X?T8a@uVan%XQ@IYC%a##< zlvfj`KX1x)ra>@#X|U`Es@7rTL<4_IO5&AH9z?ASSMwzU1?{uhY?>{4l}B5gU!D_dh&(ZDk4hV`x0`qZc3P}CgMLbjn>PWZnbNyb z$}7Mhj3}`F=5yJly1ZyFls^S@w5eV~iUn-}4T~TxjYe{6q;1W?WQ6{Gk1)kn_JjWy zq~`!(2`|tnTH-IBcK{s^!bq6l7+d8x#;Ec}s=uHk-j{~Mpq(29I`S_}wCro(sgULk zRI{|xAE=OM7Ae94;^l<3o6;Gk*J&Yo`P2n=#g`I0tY=6ytZ}^WVxOID(uv{lRO9mG}s8_i%kmQffb?(mRWCx9gS8#??WT5oY<06-h=qc z?Q0Cuzx)ExQjuY*XIDi8&%p0WDUcfw5!HEJ%ccwonWjXd5r3A@in+fF_&ZDr#rpQ& zM*8MUK*@9)Nr0&*Xk>fS6`EVeW~C18>%1oY5opjx1nuK*OiKld7P#D(&z^|{{Ry~~ zmt9Dw%2;cWjC*jbrTkO6YmYj9L_HcnY9NT!koGFnuF-;nzqkN|KxOhbiey!U+nsP_ z&kFT%yN%uPeaoaAkOG`xwSY4NDm)VgunzF*Snn-Ci}Lwp9lQ4vG1AUyW_PhXxF z4KHrN^J6&U{ioNZX(6y_;?Q4`q@1Lj2G&{LD`?aV72g?LZj}**Rr(46sf*1Umm=Lz zTf#nv#mWs?EXO0|75J;#Fip55z)TjW%`N6?^=a-TTu-1G%e*5TBMlTbh4 zdRP88?CpH6K?Y>+s09yRzDO4x-`0hs|Ug45fYVL5eI389k&9h4u zJd5Mh#}a=2^A$H>Fbc+j1R1V99koMsHx2i<4f?a4ZVAMqQN~kW6?@;54R*(7j&11!FSz^8U=u^|Du>mknY3Kxk;)@WRR;y9{Vhi*Xso zc1kCEox{V6?umUB0fUmlsGGIlX&(ZgVhhvO$9BI+30W-vlXP%VNmyCq~%n$*n zsfs;lDi9os^X5ZQuNVRF3`4JKv|e4x6QT*eXD&Vke?7e#k9~O*L1|+3u%ZQG0rRJv z!(~1N47$Ym7pvspXG3!#oJbvIy5=)1DQJgs1AnstDJA7XrGFq>kG>v7d8)b;^-)FE zQF0LUe%)=cyR3USZXCo@BTKz}^!zgNWLX!#ADH>a>M3)vC@0^ZqeImn1A9QEWFm0~ zQR0R8i!q2@z+bEc#2OAuv~nPSpeC>!FEvwebN&FzaC8VoCAxPK1I9$i2pWh-1UbdH zJji@yT+aO$2(D@YpVGqSt&obScOdG4^C+|?!RIXrdtx1;i9k61+m=OWtM6h6RsV&c z0Qhdh>|{k1eA=8M{2vDS2;ya|!v*PmUd6-}UCOo=FiOfza11*DF3_lKA6B<~<_^qR zBu*3tS3<&8NFqF+pfw$EtmhuvYvJl}G7vNeEENPK@qJCs{xG1&p45y7fjwgYXHdWSf@oN`+OVo(zYr%i1`k2Yc)w*Hj?+-e0FtZh_7l|f z@nD`2uetM63px_t6^81ER>n!Y(ZavX4_8I?V@g z9?G1=2QuSS^h}cOvTXMISAVW{cKdjhdqvK98o%{bgR?$ymD*jqif|EIm%Lwi=8{FAZ;LZqv)4Xl( z@H|?3^}QaaC$zpBQT-6gxvknK3BrurOUhK(ei8@-c?|~n=hE~X5M6d8%1C7&NJKpU z141`jOJUVI9M6A`BS@a8+41~}<>G@|fC>IlAe+?BHsbke(&I-cMD!+?I30`HE- zLpA!gV)7%PeWuK{Gg>~M=kQ!#0=+sv zYfQcekO|njV$iS6n7l`zmzN=^@K70|0+*}dLjA;I8uc{ zL;E@&qOato6&<24<8StEhv-w04f*5*B^aV#u8IQDUpPd65}fWUMM z*l$U6q-Q_Ue;hq8+Y@b_ez(bRQ3)tk&K=EA=5mf9{FOV1=v)@xzXXD0RFAVdLLMoW zWwE#Jql)KGQ4e7IfcvthU^Bc(_9WC~m97IJoH$ejz6hYyk()+swZ7@q1^#w{w+D{4 zqG%j-A$~Ws1>j)-K5w}VpFUQ1cQ zTVbxRvpIOleg3>Dh8|mK$?f23Z}mAPBQBb#D+VS^8=zwIY0*G_z+`~~qNuyGrIIqr z7<&u=T4+=b&XY>Z?C=XrGB;out6RICGjLSFUyF>P2u~-$sWFc)A&NgfEnJ^dy7Zb+T0uW zY0yu$$kNXK@>ghZ{hHFCyEUYC(BLGiK~|oP=Sd+9^hWtB_3xY zyjUaA7Asyi_~}jfzb=55(p=kAvLKtqXGS?m5mmd+DK?z&uY|ji+ z#zPSX{czt-FS2>asaKLgKit;Bv`@XB0zTtwx10saHZX>Qlai85D;myIFRnX<%nUuQ z?jj?{$gt5T@+pcs3iYiSs&>AC4R<+?Yf#h^C&P0p(RWX(0l~Lr50}ydZIIs1QN6j1 zIQT-3GkQC|>P}2#{83&aqZB(eojQ!HUqSQU$QOEUCZN5AxXUG3*t}_S#FD_7sVh+=GrWN31^y+#A0k~o*R;uM<99B( z^sipDvkY<}=|Tj_;ZCNXwUAxwiQKJenoh>4_Im1G(0E^RM9LMd5pRK|p)(R|iDe0( zX2^9U%Rac>Vp**aQdqWtKRdy)xB3ao>i-sCSxi8CEPGgzkt}-@MFz`Uk^BFQZvRIA zZPD#+Oc@PP=l-sC$s5QfY{vE9jG{h$C!t%#ZUMU8B%nRIwMa6OZa<;u|4+JY#j`iQ zoJY#rnV5STblZ!>QlZT8ouu2S9ffWKb`8+&KQ`S4Nl%e<+Ydz<=(d(LaSD29i!w*t zYEkA!!B;eqXPP>ri3jZPR#k0&VMR+jb;Q07hn?NR1;Nk&p;HH!XP${dQZwMCiDrdgCZh2&7$G^vx6 z$=^;W^HRS6Wx5Gyk1}USGLkZ9qv)@t%v0#0Ez0~c)uPNI!B=Ev8Gm-dudUohC{w*t zfHLO^Xpb_BB^gPXcTkjpGPpn=TY+cpR@i~sS~5R5IO@_C!4}_a5o|Lw(V{enKRZFN zg+)TJqjn4s>}8u^TS-rm1S>+3K`?XvBN3}mO=8p}_7U7Sqo<*j?}ZpOtR*rI2jI5I zIHlSm6QDt?DXe+d=e z2H>`+cmQULMwIYB8JkeC;DXLkai6|I#rwAlP;sh&_Ne%yBqOP~5=9-R;ta_8UqZ!= zK!>)d_-o3dVlhdlyu&e_q~Z@-3KfTL8=&F`HWl}lo+7C@5Jk~cEP|#wYThSDMlmlk zZ$m$Zh8S?j1}ODc=Ull*-(O8yd77DXS2_JrE5lU_I}>=~#)i{I&$HU!GuB|f{E-jgChDuEoPne{`IZy;`Xi>eKKV2jY!WdZt)I*J_-@ayTFskH@@X3VL_#uF ztET2ZPr*xAb1?Oe)yjQ2#rav+F}HybRJGfm;o_4(z!shQ$jxB+f@t}}e0p{(N;bD* zbGKGMu{4_7y|3iXTsDt`ktJ4aaB({fhp_yW)3auAUoC&~t*BM;3dfdHHX7yA1R?L% zZVPCS+#7VR-Z=P}xde&Bn90};>a2M_*nn^6CPz#|gK9N`Gm#hGpe)0K=Uzv8@8q8V znH)8(`5%OfFS6qKh{{+E_PDT|JUBKpf6DIUhTlv$m3B&1GZYBb4+R&3Yq$fO_n`FB zMC)4H2(KEkp1~#IUOV&yu(Did(6eM=+UW|`IlD0-frP2WMb!I5`BGC3un5DaKd}g; z#(XF2OF}*y?&!yo@u=I+cqo}wf~zfyz+&I#auym#7j;pRIIs>%=q(Vyve1O4}MXEC{6d`RvwsorSNwCPL zi@SIkf`vh;^S~~=UK!w>5`~}8z^XcPkYZ!F_ndYfR988`QI&4wNVzAi_M#yTLeLG^ zQG)A$jXGyP$${`g3Vi+lN}8MXdP_a9mheB;-e`>AZR^R#GhNki3FM9;h~ zmZtj42LED%feWysfjy&X)hM#Idd55z#FxBZOL6wE{ zf4@)$uA-cJ?AlupL*BYA`5GRSug$MC)6xHl;lvpCBp0Pfh z4O|hsIV57MpZE(!Y!wCr`k2aANIwMY)dX2@BHAxqYl+yVS5Xc`#CGM+PKeku8;OYh zZ_|K?%?37xh~-O9ks`J+iVP9+{Ah={`R}W7K!ut<49?@+nFpxH*9hGIMkH z$NxfZj=rXCZZ5B|xH$n$G&iU6XD7J1lwWX6_0I1d;N~_0+M80AOEQw1<59F$xOsDB zc5ZTKz~|=ww5F1q`B=w{;O3KTkeQpOKl&GPv+v}#x!Ly`i<^VcM02y0KRdzAP4UPG zxVif#0d9T{(i*zCr}Pxb&Am|+#Z7ufZ;b_)aA99?f}Y<^>0)fvQiH_=vFcL#TUvZ@ zXp3Bl_qSJBe2>d3>Vu;EIdj$VsO^x@WmpSas)7PeyI@(lLT=d#W$b)N&v(z*$#W?3 zI+=rn?qp6^xBw#PfI?AyjK{!hU{I?OfmMYgu$npRYXJW~TOP4nPl&f{2`5ByY$aBU zzf}mxX6W=xovy>*8o6!6{->$tS1>c4s+MO-8I&c5p{>mS&ma%=M8$a!qKjQ-bv1G) zW_vTUEg$or-gD=bIM21ZxhJa4WM6fR7&WB70n)Pm3fr1F8|lIHP}uC^wz!Th49sLi z5?1zvyewM=D#~c`b^AqU2{CvJPI^4VYhNWJLwlJx>Y;6M2TpZ9sDTi}8Ar**uwv=c zelc}FXs!FQpgX*YxDLDQ3>OLaY2G1%ME>L_)KOEPRs9rpoNU&5kEjj=48^-51qd9+ z?m32sd1^l(Vug-7Jp=}%a%cX`1D^T~r0cJMI_pDEy8s4f(I1f@BphJ<`$!oSo=-#C z9@N+wdQgmfrQ_}ZpjHB^+#833feVX0PVY4dw7;%33P-kCnzy@0GbutR|V`UYEP-a{t)prWRqFaMN{JTG7D* z{ND!z@Dda7AsX()(mk7cu2_MyBY{3PGT&LxJ zWTwhvXit#w_S)+GZVlM# zqJuNq>gOQg!Qn;Q>K9MsAR=satrWU+t6RBpd!!&Y~_(6`kO;5qJ~ ztv=$QjJCQ7nq=GR2>=kV)vr?kO!N8#7FWZzdj1K*J1-93!-r(V;S++uP9?A?TRjUB zf}xgwYYcU>3xc-#r}H{&t4~sZk2L|$IbQ+xZ1oB}oeD|pKpZ~p&InsQ>D(-~dd@9T zw)*AUWZZu&Gi>$NK(Af4`l#t>9JbYC2@|%u7^d7giHS9~)#rU0wAH6y9$~A$yVdQi zOa&8tp2dzrq^-_V zLw$XzG1T+U4%+HN&+4$PehQ)o8qP2QZ>#}(wmN=HM{TtOGbyw**GxV*Ba5xR?&c_4 zU7*lATB9d%^`#hPyKMCXH(_jHTmACQ%uYL#r@>Y~#l#xh>fHYXZS@P->4Ukn*FX;R zI&*C`*Jpw+eOhVbGF3AlZ)+mvFVYGnc%BMdbFyl>80#W#>C;lmJyPt$`&A@cP96XV z9~~~AX}+s(?XIGaxq#wt1zM&00~WKa8s191-Yj&YzMGt=6p;;mjd4U*(aKXegrR&5 zSikW65*95nQZ82yS=}H5OqLd^LCIeXuoSgPhtlx3;i^WVI|u-Va~lK+{4fv2dt2$BAQo;-L-HR0xuSGLCxDi@ZbrN@%1$T3GFr$jNDBm41(h76+zu)uFbhS z-Cn1>4<(pAt$>>HqfyiFfGHoB^{`T3D;@_yn}Le8=)49mZ&eRX#Hzx(4^<>p^{;Zj z5xB|1@j2*GZS|mG+Bp)XB75aH4i=j`EYTEC{D%d{u%2FWdXzzE0s@Lhn)!r>S|TP@ z<@k`gD%yxEp?s5JSOX*#i;6s0B^whdX}y3?wc@c0|8ct?B(%j_&$^e>1YToXOQ(aP zs^vP*rIZ<%SPe5UgNe$8a>4S zYdzU{rheGHcDH-Y0?!`BOUlcJ;LS=}qi}VO+N<9tm=8?+akfVqo|J8E?sAJXVC4qN z5+MzDNj+a0cBK6dOT(2|jtfe|4;&74%aevXrIs%ZT)&Q%hI!X#lm@_afB~q4f7Th} zCxEMI$4G}b1gH*LVSPjdTA@DP(O>K?sW4OR%Kh>aNZJKpq3ZZoITvSfL7{YPZXP5T zDp0RFF)YD$v(V(w4x8w5UJ96o)e3ifUQ1VKSw;Ji$s2!~12QI8#uf|@v0 zOa#4WF|7!Mpb1Wegv4KbWMK>ZYIS{^;ulY%@EZZdxD|(N8!!39`bGc*ssyk=@pABN zM19aQachY#!hj|xQ0Y9WXksf`z)l!2?m`Jk9$3f-OwwuRIwnYC>tVKM{%KhN-;M!R zf#90pAEZS5TD3Sbt&8O^(}k*fX`$(REloiM2uRvd`b*`IWC3Y|GbPjJ!l36P6pwwt z7(eZlPgV?9-vdKNPgg!E`N`q&c=!pE6bgw;|uh0cWK12k7dh$YoH0O2Wpt6(z^F>X17? zBD5SMYVvJ81x&rtJwSIdRdrIY4FZb63*RVg?G`6XN_4NFefaY|M`3MLcoOyb9+Egy ztm+Kdnk{KmfVD^-=m%Q#$77p32kS`on1f;4pCu{VTeS@v4?46=MQY< zm9AY7(*y)znv(14Veg$n*9sd51f@^vFq;k8z_+nb}!a0gl00DGUInjLL_x zkP1j?*AxB_1%}*9j?JMC5Bj^2Huaz%MhQY{*DT*qOgpb5FpMW*GpTeq$ty|r*{Dwm zeveI&FvW_*M0yif+^VqOFZ&g({NB-dTMeq%jo-q>7g)gk%bX|XH1jP$LGxq^4$wV| ze=9F&=z>VXDZmOwLr(c8tkgW%jgju3K$l4bA-qbahpoSQwR1Rl;6^)d^=J7`smmm*3Pv{%CeomZ z+uDE`>cxGlXwvc~Dt_XXLcoY8o-2?))AQs{DhGc|o7}kj+<0<|R894+T-+tci!b&7 zTjB}z{dQdgHa9V400Frfu#E}%Qn{N0+!Mpt@05P5mzu8rOi@^f`Cg&`<3xiGXL>PH zibvgq!}39TKrNMmDI-;FqEGIx#GFQgktu3iY3E($B&Q2h%(CZwk&Bcx?gB42T@hpY zXlb7stALJ^KX;GkpQLxA?sgBhDo5<4V5`P_icIe2AzG?}VW`GuYHDCt@LPX8>hPHT zB2*1AJ_s<>$D`07?QDyr|M94A=SV!7mSKW>&_cx%)Le)Wa;WZS@6*l-oG0Ta0QC5h ziY027h>55bxtu+ZOhMd9a4geJ0tlg3^-7^w;rKAMnx-gTGh16Xz5 zDiAs)Kb7x!66bH+E;WX<;BI??CRR*|ma9#Q(e!G18!`cLys$8VMjUTcqVR&$VA3|Vzpr840MIRaM{V&4E%+=!9P%c0M61> zH{-2cj~{!j!|^H6;zc-3IWMG!@0Pi^$a)VD1H*6!Uo4WA60ua&ssM7R?++7GvYoHO z6zd@vFV{%*pQwx!OtXI|FxTmddc^S!6gw-gL}JoH>VD+czlvc)&^oxr1H+hhwmTe1 z(9^>ec>14%?L}m^AhU&)o?)dx$W?((ear1R1_=_ubNVZ5^)bSZwe268)WsjyR9bNz zS!WJP9ZMwlz{RxlC2#vAXsc&pC|o>@{K%s$qSdpm{=nls*CAG*_*qlssaJr+!8p7W zW9sOu;V3ZXhrvf%PnIe& zJ0nj ztWXtu`4#ggCp9ce-B28{0Cz5yZj&YG7UGwV=}juwm0!R|p1tRi9eJyy6NG{7kc6Ol z@p1{jq;RInPdhzufLZS(10gk@9eJeVHXxwRm#6rPgIR_%*n&5adZA2^x-fuLBP$}W zQ6bfYpAZ`{1yq?9BIOuJEoqKG>S7#Q4kC3k`g7+#0jqKNWtP=2qoeRQT<(B@1Tpyu z8uybh+y%mjrX41Xnl`t2Fbg@z_te%fmdhp50_D@r`*JiJM}ixet0=Yt^)zy(-INfGBxMQF}d4geMQbWwb<$zr~4INISJKO;Ex_ko^K6pFC8?YJ%j_ z3qa1u3KE~5%vls$L_S7gdSN-OMLFN_cQLI{V2_RlJ3#;?OE6T3r<(sXK!URfOM@va zNC=6ZTBd}Bg*3kSn|2NcHlDEPYq>WlzIDeSXi=hQ^C+gPkb}QVv2Y>n{EECFs38iJ zWg4quX*?UWXb}EPpBwaHFJEd(BVS{1KpZ=MHYGw_jEW~yDuhvkEkVa|<>?Pr@}N`k zotIfe%km~^=M>sE4kO)7~6g^$Eiuo=TZxh6V^9}*3TH>yS~t&#-> zhpSEg<%L5J1d-H=tIBUutob|g2XKwpjz)%zP`kS$0l5yd=a~}N;>)<$-K{Z2SSEdZ zD_?&y5|&|D4bZH`XM<*7Txghfb_ETZPeiH?K|)?U1xuiM|A>MvNj&#@0m&`OjbeN( z8x$X!JhN_S@&cG!8z}aMhb5M=)_g#yMt_J$-B&QID=q?RvT(A|u9oX;FitV}gG<2R z940Ckj+BVkSg$3AL4X!ukADSZ6*y+D#p{{9Ba0&K|K{?|&jNGLbGYmbEfYk4Z0K3I z#IRKPQlYq4M7a>O+^(F!Udp{6NnhL* zuBSbKREOj9KIf70ZN=xmHauH}S~UK{cG2{)=Nk}~3hT4P=XaiO z$LAf2wLjTk#oC|H8!&{%=RD{jAgAvi5DK&hsMttqRj67|`nBvR`*+wU&~#0s?DfA; zF$!!R?4G_)T8s0)USKgpnY|CuUz<_(*$SyOjj}Imia=`p2&9J4Nasr24@1dmmG`R9 z(sRwY##&$uN7;L+bCB|xC$dO~*t_o^3bCi)Bpb+Xh1eJ4P`F1f9b!L%dQpb5l+MX? zMwuh*d-s)a*!v8O4zKUpFI#whnG&I>5b~%1JRMsP%?fWvz{?U_Z;S)yh^=upNqwqD zOKt1EkvOic!1}n)lzcR3-;2L#r}-R%3p%hqOmQn)U|ou4V5k*X*G7Q)6DM0y&$4M* z1MAbrT6Tkxbv<+%k+oVae2$@eI-u`nI!F)OG4Ph`O$4BDfA#YfRgMF3m1v$&rVIZdCdAz29j7M|>#GPvv(tz<38p5x{3GYP3p9~< z=!q~?Bp4u50ocV>trY(yXkrjim-vAxoX6T??~#z5OzgeX#e6NXw?kxo?#%3D{SZ&h z3B9tCmBBkmikXKjy;6Fuk0m_~Cvvih4+iEMn!x{)B^4^S!S*!ir;EF zq-RCRl7ip~nmkoatkqF2OJq@*(ju+baxb~K6(XHx?8Oz<(5ak4&+JeG{KE?$o^X6`?D(a&WH>TAmU`pU7oD=%n z8-5MqQz$TrMckY^0;W9jgD-odq5j}YE_Vo?9tUd%(n}O*>Q7z%9zah{xs)O zw&hzRbKW6+f9E3GCrQMkxG{`-9r%#yBPf9JvK+>sEKIZKTd{x^KnS-EvXmcS}_vILd#pJ zfBIm`_4rK*wKm^+i$Vtu!Icni6JaVvoj$w9L&eZju3O3C8oH&45NhLynOiIJh}j#v zM4sNM9%ZRXdmN?Wt=C)hmzdn+Zu(11kDi1mYuX7kLnM~}1+4BQ@?cQXl#dV=ppNbGp^B|Bw?A$ASzRW++DX*DHz%iFG16lNr^Em5N#u|%x%BEOa4vsaHzbs@7 zhJZ>8;hLH^M|mr8Jwf`wX;HEoM}7%{M}Aw%KMlxu5fDZb!*kl>W)#z+P1s?ePlTe0 zQ&jz40mBO8`zj`HInGPliPWNX+UbL1mL~D^wE-CqitiSDeP!hM{hmnJLf{FWmN%gZ zc!Rfgc4t@K3RhAfNPIt)Kck7H$@5;nKa7D8d_Nbw`UFm8YqzpX@PF4_S=rjP4A)D$ zUNg@B0@Rr<+E>p74yoRWMcu&Bg63f^ZoR3WK5pfbENtG*Emy~ANLma@)O35`+`NGc z_Xwn__3A=E^*m-nMq5xHyb}QX$e?*_K%cpl>tRy#FTbczTKJo3>no$?`n({afnC~p zXeY%}PTQTYw{fX1OyDydT%J#Ks}51TNJuI}Ogmdr5Dja)GtzA^_@lqOT?rcN2?SyA zM*JDQzo00Rc3O5^I~=}ij&S(4g#ixZ>swhlyn;uU5+;Z5w>bQI1`bDZU^@(kS|uDf zqsS$TaNvpda^Nybfx&^vNVma(5r1>L5)Pap5QGEg@n?1pT)4y9;Xt2Pgaf$?)|dmo zk2Q5{I}9O8$09j!-}VLvzU=FgMK~~~y&Pyj|0V}ML%IzP{CiioE8)N#fgl`sjX$$< zU^(os4ZmNftX$1(;lQQy)|dmw0cqdLO++e+12D&il~azTh`z*iET?USgt(=&^C#}h zXK^e8gkrv9IRt5&CLzaiDq|4ec<(3>gyy^PXLg#8-*)ZLeEXM#=HI`%#x$RURXm^O zUm+Dm^GKv z&#;d+{LV@J{dK~DQFGRq1BF1^=fD9-wVMO|#n@{OoZH9Zz<~C0U^&0NYj9u{(l&)c zI&cyKBtr*276`(DFZeS%2ghGHHvG=%z&+0i2L{ewV-74n z)8xQUNVS^-JJ8z0^mA{_IcqbE1J{59`7h+0)n@!ziyloKcoJ!wLLnVE9s!J@12+l; z;lOnM%+7&vTdo}rY&lCf@W_j6%z+(&w66ohkc#2}0t9tN$Nt`1qGogWQ>o7gOjN zU;}Ka4Zd?4GT|BF&o3_o_|vvFXMcm=k?v2gKG|j>Fds!TOdMb@u2ROL$ben_SFa(>#X8$53E4@{hELr44Hjlo^ z;wOOP9--QZ0$F97wficpMw|1Mj^lt9ffIFWh*QJu807ykoGy&SX+&#XH*lmmKb~eZ zfTc|b_Ymjj;d=EI%d2fh8B<7Wp{&Pg7_Bd^o?{4a?R`JGy)_$EO>=Lch*RzGm%|_$ zPX6kK+Te?ks{tH;b$6;6zl`{w73u*kWn0>xz@*z=+u!-^& z$q}gQ8vhf~ShgiQh|{_OoYu8*dUs$XPA#zjPBQx71_74>?Kfc-ohoVvg|Ww2Yr)I< zr9QJ0*)~!42~)lQc8hVT@)~x8x0d4ix*?+y+#qyQyiUot=e@g#$AF>8s=%%Z{;4nV zDX%(3mDIYGlOwA13hdLWWCoZp18rxb##o60($1TwaGcyU>^VIL|KazHxZIDFog91w zOg#?)vmvGQF^5FnAika9onAzPOBtnH}L+xX%2|^}$cfY(wzdzNgD9zEUU8?Eo z&v4va98ryHi(O$6tF<*;EU*6Sia>+A+-_>7zHU^7Qzui@U_e*7sHljhE-G4^Rbvn0 z-i@_lPW!4hC|ax&$wpvEVO5nqbKIOMY{sNS5wDSKQ$49j+sI*_XqH0kd^cvtij(5Jxq^ z#)#BOJJV62`3RuV2<(`P`*&hgYEb~YfX2JIb>Bf2gTW>EoBw z%?emH3r9Sjq?RZHI4&v);^;{N0}8VnS~K+|6G$!6@YTsAb^hcVJ&xlw0ntlx9$S|F zWr3HZYT33*Fw)NbQVr*sM7-*?G!#?3^!*@wJOvn&G{WeMeYo^VAeW$UAK*ghyQylD zHJCskh=6Tz{F4JBIbO$acbInu+CGePgzCZkP7qbrjDqMRsz?^~HP;{=U8@4zOHn2^ z1~+tY=R-bF^pVrEl21q0=pvc5rk!)xFIR%KO+q5=Nf4 z%Mi4;`ChigDBaCDQb1;*wacu}F&{wR)q&9_$N$M&Kl)X}{|#ETdh#bOM<31!bQ=c% zx=r{jxOW$zPOl@=Cot+bKodqis&Zx;sQZ-6e||XV_XhN5W^!Xi!b8D&Wv2DH-+nHn z!GvV9$wBwD!0vH$Lkq3zJwm|V7+1vot-tNdY@C+aA4edzVInl=gKS28kVYLNhslUF zA*Ox5iZPxtuBYJ&KgQIE;f)*65OD+WrNO2xbOUj@AyzSQMNZkSpl>U0W)ZOoLSt^I zA`2pr=l)t356u+F*1A`>ly!e;@E&JE^#Zs0HmuHs?hC!+$=wn z*NGQN-dZgMlax=nnJI(2R&4QV4GNvD22g>x7}-Q|ot^;743Iu|zET5on2lqd=&rCj z6lfICp(&Jc5?zd3TWdBiZ0JV+0(w_AQU|>Dl=ci|{8-D~Qx&SfbL6g_HJb@{1Bq1c z^!9AvoR0zl^Nk_iu{8YEmNw$(`G$mQDavRPfx z)NhxH+Z}W6P^)9U_hf$Jb)jO83W#0>aaaPn5F?GQqYD^h65^->6LsNycY}%dvXiKx9D)KeaW>FKjTodN z?Id?!6}mHXWb>h%m{SXM9CjvZ85d?$(^6zc1Tp9Ase+i@_eKzNG82*WIYt=on_8PW zhFRB-Va7+sFh7GWzGcV~AN+u6vSCBA)NFqwapo_cUkrNFd;Fr}fH%E@rZ?J~7PRUj z)0@IA!BHoNk9EB%yem{hyet3GyTX;yyW)@QU9YPU5xrG8&`FX?+^n4Ib>du;x6*OO z6O)vyy_qS4Lbi{sMWORzvE^f@O{R|#ANx*+ee8l!=sVe#k3D7`%f~*!M#{%NEA6xT z*z^DV-H;8ArymzL5N0-Y=#**Ut>R;kxpR$u?7=|V-=R7WsVE=Yfw?r@jG6)(bLjzi zjv_Rd-s)(QE-;sVxs;iKx%5G(=}%EZbLq$~zreCY*17b<(mm~5td_>-OO-a}(vyc1 z7rwfnJpv5X__5jM(v#I1i=OnGbLn1$Wlz%P$*2NzX{b*dbLss7$tOniT)N>D3aPbt zp_~{w1K*TsE`1`g^hc|G)wKf6WRx!0N(ur_?3QDMYQeem0q2;$>%LvuKbOA71*qrJ zvsK!dOOHBMx}0gCu3VN9#L!&&HwanuT>5*$w%K$Svf4eDetqXiH}vJM$_+jCcetSs zm{^;0>1aQ6A-ZXoAKLu~&-xc?$KcMu&h?9m13u#czbLMY;(7+Q#4Y;2=`*GXk08!! zUiP<&HSig4BIa(}XKdZY@)@((NcoJ}(mt!t7|^gCs}?3 z9GDZ;iwUykL|w!Nh37Q!&>kkbO5q2f*>?r_E25NWm_VMf~;7$%6Ms_PwM~(cOF{WQRY=`#GiFPs|>p9VA zl|{E<&53@O{Pxd@?tnOEoD(GpENUowpdd6Sx_tZg%!!Uht+N_KIZ~CHNw<9k+Uo;NuK%Jhy zj2J;}Yis^;%c|dXkC=9(o&DKJ`J$M#&+3bw_+jn%qLB&lMVH>V#=hu7SVZ3!{ee`J zFXB?F_s*Pp56(Cmq~6fN(z1VyE99-XnK=>@4Ibmd{bFdAdRj}82W^97mxXTWQei4r zG8=~`zR=WtfTmmTq;{i~iui8g>}??psocHGyMQN)UWN0_ar*uOekDht`&h%!)My|U zYn;Op;?W1%>u%)ndi%(;IM4bfE+1EsX>dK30h{-5S5S2S+Z9pj8WFY`8$-FyzU&@Q zy8}IR!!q^N8$1nL#4i%U^&G^kgDd2DrkvyG6;7p{i!pBJE+#4$j<)Gf*#-iwkb`}@%7^dVgDmd)LZkb(A@<^|V+)AG zxI;H6)^K${fG`lub^gxIQn^i+D2nD$7N@QdiZ;emBVmFe4A{rUQ;iMk*vEbca>o6Y zQSiPh*j@^jVqWzXNU~HD@q5tqtVHZoa29H7>sz65Vp5g%;c0Yg` zp*8~*lLio&vER{dEguIAM6I`^a3(yp9<`M#t5W(W@sb`5Eq{f}7h21IYp$?$xA)5pNduJEu(v5lykEJdyA*0s4p|f!LqAZhcuTHlPRO*Mp+C) ziCU_C&r7DA-@B5c8cf=`VsqljZn0B}-vR4zR`aQ@Ytzhq8SRZg*aK9I#zww^xCNny zHDoWy3p@NB0^sb#guPnRaZB%KEW$vU-Ui}-~iqeN9#VM8B z;{wG+Mg`7y-(|5R-(p0jC8-5d?05m+j}BXspEir6Q%{j*JReD63RsdBlD6~lf@eu; z(1&43{sT-5OLC=P5U?ZzF{u@~0}F2lX`?82G|@}teud>zFVdRzzpy2FbW_#6maY?Z z_d1zGX~>e?LB`pZfvNcCxCH)sl>su0xjOib7(Pc7|Zw&iPD4 zSQ54C(5a|kbAn9ezHzRin?wZ@mJ8j?r~nqjjS5bH74V}17U-y;L<)jY!GA!#KvXag z)8c^M=Q`CCNo(HPajo1JgE6#nVsBTr#J~3yQUR!`{ri64YLslPBx_Q+16bE1;0HTLgasRv@u z#N8hRObo4DDi{Q`@_|Ert?UNUMp14yH~`8WHP)b9-*3ZOxydG~d#x`EnZ)!LtX$Z?zad?RwDP~gskHMr$mV>=M1)qZ zRsVi5J4xkkd$ysc?>nSq`~3Uo2-&^55&(q#`)t-B%|rhENv_5UH)Ia_qnE_1FTVi^ z-@o6!5%G+Pe^23eK+nVeeF>H?3_tGq_fj-A@)g9vgdWzAW65k7$t@wL&Y{A2u6nrB zCU-)GbB2Y+L3H;t7T)Qz&ng>p5$=j}7hGnEyK~sGQSN1pLzX!wF}ecKAOe1lwew9O zB>JE90DM_HlH}q^YVC**RY?u^1J|#!o*lukU-PVVma_*ND3mkf=G$GMfybEmN?l@D z175nX7d+(QtOEQLtGXD+;FaZQ;20ia)F@*>qqK89N*NSlYepvEA2ah&sxFo);)w%s zWjM6{;Necn^JpkuWs=vEMAy)p} zxfslYMYNvuMS35%eNs@Ek1v1JGs=snhSdW*kWeD+YhDA{us#GTH7_Qq23AhkUF-*4iEG~>*OFV(&VmQ=IWcg)_z|A38Ptc17 zC3$!rRR)KDQB%Q0E81|!xb};*eXFP!Ff{t6V{jk5qq&#QTLkSTEK`Jq=TQvX$`61& zY6Liak#$!cpXiK0Lt}WSNqFnTZ`Jfp@Ju$>m|1yTJpi49D zvE*E-bL8G~`2!d##h^(W%zc$zYa+GGt6LlQ%*rER_BKSI-82fEME)J43bdtdUqf2$ z3yhRuF=+KGHeA$3U5HlQTIrfhT7AM3bd)Oj#A%RL%hmm^5UsvmFDtFmwC4~<3@~ln zG?%yf(oQ!rSPj0I45wxp9xUj`87EMJAUWkh$pKqG7xt>?!+_Gxfb9}PPRkWOW1WNni|x+CqK7$8wJ^?E< zw$7>R6CDBDDW~!!3zc%K zcl+-AgaJ9jC89e5`bg`+C?@ns!2e_KP2jAa{{QiFr*4hNj5NtoMv@lG6s1s2>T*$J zDOn0-DO*&NEK#PR>l!AMY?VEGmNHVAlJ4-~V=QU-ph0+#$;a3-sOI;4zRr2C_s&xI ze!u_6Up?x+&v~8Y^?IGx>vdjdzwK%;-{(1cP9g#e;D1J4+Cf zqh|&oL84csn<%a-il^W8QGUt$IY@~1iBwF$Sq6>VSopT=8 z=Qlmc<_yU8-Wzfwr+X`idlv~pi|vEYD{JtaaBw#OMbQ#HY5YrF1ExUTQawP!!XU+Y z)nWkUr7oOI7wJZvNH`|plPnMA4(zJq1U4-o-<=OffBhIQQh==%c#eP0Y5jKXNqF*M z@xDz0Zk;C7y#0jpo+Y2e3y-oFrUaKNg==`uLnNR%tS2O?vbSk6*Kj{&@3}rJC0`1-_F8Msn(Hxhs9(k1dR^r$}gIN zGahxan?cebf&I>FwOsau3q+)+^DCf8LL#y`GaZsiCd6}d;G$&`%k>$!>mI*ft=n9? zf(h_FXzk|OzWm0Z&C`?Ed@1Jkj28pWu2AhM_a>H`Uouqq#IcBUcA`jcaWpH#lZ18Z z*56P)6vKp9LoKmu`$ZI2u{0a})-J&@?{CI5>pRn?zSAPl47>*hYs@l~>?xEmYr?wv zgUxtUR9m!`$lcP;?Y#cv@s)jZglOP|)r&?Vc~a_C#pr}}6Qt03o&nz&$WdYPX+x0V zm+j2Q1$fiDzafS*o(wC@nuZbV%OC(;>NyeLtg8v0Ly*T7H|Pm~FZX3z`gGp=lHpt^ zoo|0fIiIZOlk0lbx0k$Ai7A1?$YW@lg%IgQXoq6J`HQqNr$Awb=ts)nmq37Z-trL? z8O|9z=8j~>wT84y431CY{RE~45_kbS!C9o&B`7AWh_S!pRH$cGdOm`K`OM+RgJWM4 zzV0?EKF0PjP9#CU+zl?5RGsg-vA_T?QA&N%PE6YFqiMu@Ogh3uI`_r4tn zON15>;|1?U~32~)KgE>aH2+E zQ6hqIg#;Czlv!vczzHuT^3e$FEi*UR>NaV-|$s~HQjt-Lm3ynZtU0FO$;wbCMSsT~73jZBMutgZcycu7)^^iv2$8)VU~ov>QS zx35WG!lFfrCS9PTeN75h7M#mY+AkEN-cBhL$LMHZ2}wfnh_rJ+D00xu7WBFTMz*}3 zXE;9tzucjYBTaIp5$+QK6kb8y2@XC5W;u``+wm#%xD{Q$@4BOBQ&(wEk->7|A{iRu zYF@Fk^7kgu;wQ}$AkmCxF|gv&U5!z^JN<E{-6Y zDZHXw#%r(Wk|C~FbT+%!MTbHT;h)SJ>X?L8 zf%Jj7N4LDVd0Ym3?LuqbG})T7+IYIAO1!w)AG$KL?j8{cs(NYE_oC6RayNrY{E+mft zllcdkAAn49c!z;44hQ7G>{=HsXXy@?l`TLa3sDGv7vXmy zev9#2%t{~rg}K1NfVYt;f@{R*dM5H1s{mi`dDVMH#LgJ7jVQ{EN!CB0@-|Tx(m*a& z9}>pRliS(WTL<)EbEHJmHq6KsW2zXZHesNp%@|V;@{c8fb3_{Jm~BE8cL*Y!AVE!R z8kwAxCY&N5%B%s0qOp_G(H{#%XJ}}d9}3?4-vfLMLgr(3HW0FCsk{!ozOMq&39Ge~ zOJu51mQ)pzs7wTrA`=KyGhtP4vXHSzl$liVLEBpK(^8(V;(MGbycN%IVpCSU_dsbR{3cw zZ4_<)Vk#ePjH!pV%KE`?zWjI4wo`z%8yZDhK@x3@sfV`b>IeU~`0t=CXQjX0j%yTc zLy~A?Og*$+RX@1Z-$L7|C4SmkHHx;ZB-$8L4{ZbL2lsmE?`XFv@LcSD*xZ!&aijWx z@0rS{Z;Yvjwms{o?TjUV2W|JQ@YD8UqiB00i8jX6L)(`6!PhPRJ7_C`N8oL@IgO(2 z$t2nsQx9$H>jyvh;@?5r26zNs+NLy$w!$RZ7*h{zD+6FNq)aiT(TFHb*<1pC{%H@gOmyDWd<9uLVx~OGE9>J&dXoOx8%RdU))6!#HiE1 zLf;81fAsDBEA)MtxQ};*KFk>33jI&L>RO?He}g@dT)|QO5d8CR zuK9^qh*jyOP#2}7!F3(0{X2nYUf(~-lS)b3@(0Kkhqh-Vi1y(ske{fO*{}0wA8)cd ztVuo0lrd$(S{vO`%Qr{n`iSMI5vfpnhEsmjbUNy9!Mh_Ha*u0E_XO}Z63P{b0Oo|ZnaQy!Ch#MPT*nUe%KV}I8= z>pd#RuAmXJ>`fGA zJ?AF1st!U@V1#nan0UO<#03a&P!P?>wob5aF^fiVHQu%09Y6Q7FQsgCn9sIxL~~aO zifG!03nUc<4(b9+}taiX#FN2n|Np_YXmqF{P#VyvZ+Pfdn zmIJXif(9oEf+-rn&dfiI6xnsAsZNk!U?bh}j1*1t+C;WLD9S4XA0YO*>CtZ7>xib1 z{YQf&8U#1#N;W&wgh*279AVX6_8g&Xxg47AmpE4g^h^%q)0qRz5*(ozG1y89A1*U; zqOhmHYq`v}+3D4x#HY!9 zA!JW(Ytb(bdgXzw(?B1YEiIDVM~*^8NwzMztR$Y6k?ItE?#{mQQY!yTlGRcEg%b4j zOD=7ur_Ki$#p&+h*zj8_y!g5(VflX&u}d~uOkZo0((32D?&Ky)Q<2K zxJFu0CvJIqb8YX)2LHAwk8Y4xV?oS9DE0#QdvjCmOOYAsgf+8Va4CV1zY3g6F*#j0 zu1LQe18i6KkjT4NMw}d_QF=dTza+1aTIb`mogx@1*ZD4MUdFZYZE7iYzSEs12Mj}{CvcETCPq@ zGZSIM;v%I*Yx51(586m0F73 zGz#0<-v1&RD|2bKEpI6#AKgF24oiL%BU;;rc7RIi(?satnyj}*iKO}a%#<}euuU~g zbZfY}u{A8;rW$T@Ynap68a~>l8lH4(cs@l9kmF3pnxYB5ez^XzdrH{~tWX^etLGi5 zKPm_ZR8QCHS)qDd5Ty-)v`KgR1!UCYlDJhHkK@RB+M_J^&!j9$!6#TTUNKip?|SRy zwOG{j`<429?m4!-jg`%e+~@U5^d`WUU|frfieU2ZgMobs2D4-ZWtal`G3JgCfg}lQ zE_O%Jpe>+NYmOk^`TlRR@6rSpe?YS(X3@PxtB6$D86HB0`mCbVbdc1PY!&B#L}D@u zJ%ei%MK_K|xhbsTc_zmJ$YGtv0Ii~Z1mB~^*`$%BA^ccFa*2&d^TWZ;g$mkgXl zVE0GGvOA8xt$6$rovEXJ&WE3(-e9-S67DD@G}aP+>gxE0M(B9j1Akt}hd=Ju@$yFL z_e=iT$7Ne$V@#Y`o}#I}!3G0|2Z?_PY=Zy)cZeYAOZcUcne z{=9u$iWM^3K2G^H**;GCx6eM#ekX-}yc|x0V;}R8p+Wn&v(%JqA18xEHfcW?!+?G4 zhH_Kb$3Z5?PRL;$#y~3jXrBb=3}GvmA-OrBY~6I1Y>&l!mUg-iWi|OVq2P4})+je2 z^gdzjSXaWHZbC8aU%Z{VMD%o+6+l-7)qt2JtYg7jbi#u&R?rlcI`Q3|cv`M9Cw_Mw zk4OIo#VQBIzR;Uz_M_0{ukMVC76**A_a+4myXTEd&;e|&>J!!XX$!d= zQO;e;X49jtrLZu3nGhMY8#Mo4Y;t*m22-K>DVihXx|ck7C*h&FP0-+QLkhzY{R!;} zA3jK87gkQAJjhNf+2pi{`&6$LVQ9<-rrz7e%?e`$>*8a%LmutIV3o=fS)ilvB zCC=6Oyfn`s$d?r5Hf+Z~T8dRIT~xxFf{PrhI^bwnQM%NBL}Xz`!31*9JgWd9ZB4N^ zoS92b`NoGQRz+R41$qgqBg!oDUTz~gF-mw0@%PWCT=^DRpRoFa<<>6|@aFe%VAeG_r2Y zc@BkD;HJf)=~X%S5(HjCLd`P(5?0A>G+Y!d1Z|$}AU-Bz64w4$gh<^os27g5Ir_<@ z7w*V?x}3sBG`6KmkVPY&jf;A z3{h4MkgGyj+w8z7R+6~tc+>rN6%{40m=qI8dRX>G|x zv0C4;2Li@(QLt;spIV~w27*{olKT%5(%=Vsx=?Go4UbTgS$`*syp4Uvo z7Nh)#a!?-c;eenXSA%cx30JZSIdhPzD79I3)li$n zY+71~4JxF+NZ%%5tpvu}#334&0gwRkijXp4J%pfGyw4bVOn@}U$SSq3VNCw&Y@b=G zr?yj&-c#EkDbU%=&=WzowrK+N);5AM!P;yi=u(?vf_KfUv|rXuH`+d}5PPE309z7@ z#&MP;)+8D`1u``tGa4J18Dwf;zT%dDNl#g0?imYAqIC|iTB-~8XY;e!!CU=PC^9S! z@moL2rSvRsEqB_~^_c?ocM{wa*8Sam=g(}LZY~?~8nUpu5K-{(Dl#<@QW{Q;##sEhyJ1n7(U3G?*bPQPRO|dlBq8P*M zm{P=)*yrMZI?g^9-@KSMv+7VgeF*98(tg1<)WDvr2N8vh0JjzE0Yh-Knd8G#_a-&b z;$iwvm|G>2Z-+9+z+1>h%COaKDTdH(ip3FwIHEHsp-tm~PpI~CKs_=H-ZaF`gGKOM z`81N}3Rxq{xFAr5XH*sJU}>&+?h$s-hdVkT8uLQ5wmS}aXjh*1qi5jnN*@E2t^_m! zK~1FNZzZ1;E=TR2>%T7K8S$9zFtimv4J7h%Bi#I@uNC7Zdlh;ArnI}Lq%c{yt5;s* zXp59+FYGdvpyCj@i}dh*Up!zR4o$WTNt)<&=W=Nuhu`9J=j7o92dpa0leJ2Si!(-nqyFv)k(1aQmH&l;__kt}0L)`r8HD0wE^gF-5` z%aqp8%?*=^aZ~~OJu@M6!}SP={lruOylLM&gx%!Q)Cnsc8SAYqx%%Xo0GE1z3NM#B zAWS5G2fyvBp!{4?o5`ggdkL3*;t!Hny{MbV<7l6?cUu`^c#fB zX21ahmH`P4zAQ&r`U@NW=qYU2%pc&j;RRuX1vYHZ!qOJWAS~}Afv};f6ZH|KL}qNr z%RqfAP1d`a6>DB7WfbK;e|4tMkF#~!Rp^vl+i-)2Yx_;zPOi;EDXyfY;M$(R+RL>a z4Hd7wR6o~F6t1m3RJisbe?adu&j-2IS##}aBuLG*drj6c%&NK88C7pD*PfZ~;oA4t zY$w;oq7;{F=+H#xMp}*crZp0) zE)8InQr;$^bQ&|!(#2PAC+7}oERMf+t)Fu#aV(>awQ<~KdvUxOr8KH_U*8@a5Afo6 z=~dgw$FE@~T^t=|h^?db%2+Z2qbvM6_DTJ+wYHwk^bJ^>$zqn*yo%e4mG#n;B&;)D z!jm@*+UT5yvE~@VgY~t43hNRvi{^6GP%_qfJjC9GL(qnLmn@!hR6yqb_nb(<+$!C$ZlIJLvL0c?iL=NNe`n)yAcq_%vNc zueXrxxMwm>l^g{?&YP=mQZDV(8NaM_e|o*xmx5mpHpchT?IF&%GZ~oX>Qw`y|4NkU z8U24ORXL;of9aY*V3|Am7j%+F{|%2J!<|7!;jnK41NDax?HP>HsPqQU;Hf09@cO4v z&wWFWzgB+RpM%?XYxK|nImNx7elfvt=rHN(>^PW1B;e>_R?CSSAqm%D{K)A;WS14P zcLiNfvhI=$6G$?j28Lkz<{j(3E^JEwPJ#oUqQl``JRwz4P=)bpitFWvaa9H&LHnCG zcF=t8B27=FY+2>JpuT+mRWsojM!$fu$T`SVL2()QFQ&)s+xX=oFjgo4 zaf%x)#bNX+C*n}M%vz?Q5F}gAjJrw3wnT!#pMcoRwpF`W%_c&vjHkShPA?T+f&^$_ z5`(Z1bA3V+!yARFLNImS{rq98>61Z5floQ$lU3&+Fj8IB&YCenFsLS4^VtAqjQ1@i zLLYDgOfcB8h8X0%#kzf?yO~e;Mt4agnN*5nrcu*Dv`1-vBL?m?>bD5G6PsHE$VmcQ zF83nKQs_^nV=0X1)lGQo%$L_d$dlDSzoNgZ?BL$zC}knIw*Zq`bCZYB0LjuRz}U46 ztQO$|l7v}v*{1@ja@RPwT!;Z<5ddYCF>SH5mT`6l`+#*ukcH+JaiDRdtVF6&vdqyS zAg!>0*Oek}F2s#B+-1b=Y;XrM%Ml>+Ed&VVCakIC8m&$@)Wt)hz@duW9Bb3hNMzi0 ziHy>aAu#dt%tCL=I$jDz3ME)9|B6xwihHn^CVKYJTv}B3_N?6t-L=*B@7Gdm5tr2CdZ*()W%Jq1cFgaqb6 z=EcN^ALs5plOu{GV6~S&z5_=8v5d#uCoTX%IR=ztK-F3!2#Oj|)PVZxe#K&R{N!_DL(f6+6)<6A zrJ9)hR%9$0dO5>0`Ge!oadsR>Pl?9oOk+0~8vvU&OFrW_&XkUEPLTknODHyrp{k*_ zAJG>P!d#mTMMVm4JZob?5IwJvyeBe%P(DC^M4VcfRw0D(*A=+7fm42c1`2w1o z*9I)ti%WFe(Vg;ivtDj2&B&Kj^A~U|5)Y3T-^%zPT%nf4+>j2iC zzq+m2*6nLM@S;)nJzWrM$i6pa0~z~%0d6jI%=78c(Qa1LZ)8fXFhK(AF0 z8-Z;dW3d!X>p&|ZRsmuD(n`Q2&`RLPwh}i^qaldT(S~5UgkrO_k+@NeM0}2n-(u6X z$(Y4ZN?Q@0Q-`e>H9Li^$SZPe#dRWWUQZ&~RxCiR*5dm_r~J0!Lf2M|_t=Ut@V1j} z1&iT!#A{HJu@#E7*I_GQhNqV5BUP(s4l9`%S?2X^>?eibbh?{P4&((W62t=5-NY9y zVZ!@C^)S`AjIE*l<&Q4q9o!%KBa0+*9roz0K0NZ_^*i9>!^0yb*R|3y>*T!uI>h+T z`=gKW_;|kONW^+Rc0aL6Qv4iYYQm}ka@M{Kr1q~<%-di1XZp(9_pVbb_JqJtQd9Jm ztFxV4(Li6hi>+q=r?lc5+|=uy=+H!=3rtwi+f!)8*>bP1G}l-*R|7pL#o3xKQWoez z>(GknF3snKKm^QoH;M#ZMQsqS-OG{hwnn~@RED!*2uvMX zF?k;+S5PbdXm3FOr?ldu+v?DY9=D~?ieqnf`ihg;T#eC+m`GXUwBlDB+p4>-I1wco zt@wa~P={9Zw*A`1&6JGaE%i*vHE7DDnUV$TQ_hs+35^M>ugIs@Qw&?D6Xs(S@T-CR zV6f|xMD}sTnD1BwSh1NL!EdfU^>YI|OmpDi4Usa>-q94Nejd?jO2CA2$ZsirA=(si zC_L6V(rB^n9|=izCm^pt9$wFh1nNj<=9Ya7|CnoMZ59uBPT=xYV zFER}iz4&KNPKrhk#l8(d7TAg9l6ZlfD~H`URfvBw1FFwOf~IA#gYe$~8nz%B!nX0* zQ#h}v4-%9haVau^?+NR6Ns0F2btCo#^Lp~LoNWuVT&+q zoon(xYv;F_s%ea$oEh!L`+$a^BAHh_`#5GdoCgZAOgFSh@5vOzX3E}egNHoW>erTT zci7tE=!TiuFZT+CzI+|bOISlbmsYi+*mLQKhK1|c&;r$ntY)IipC@|$ZGI)Ud*``0 zo6ydD*B-1zQVbF4|bSchC4~`X#Km}g0Dd+2XMrF)<4)=_p7E4MJI{y#DH97apn7r%E z=^jV%PeU4c3eQo#*Kq0Mv0$#NV86;>C^B;}=C23GE}c6#cK!k!8l-M6WT}VQ^+XVz zurlpR^og)vekW3#^`EBEN+|=U!S&DdVs-gxL}&E?E&Q_Liih{41Z{p^ zm|{U1+->x>>DdO5d0SDfWnzAjTtj;ghW+cuV;H+kIdLK zX-8Dgd*0;57vZAozpz2_g_Oo`Dbsl|N2QV(VBBJISJEawp|}x z2&2;Q?ts_97bqd=7QXL|Y%ba<44gJ@V@0=}rTfzzRWGN|#BiqL9cwrvldM|j0KpYx z*6#k|TBIs2&neE)Yh&fXGt8OllPBB5zl-DG-|(29f6c&D&rSimd3}wChBgaxF|KbU zt#RZ4WtW*wVsLw#irFK%82>a|11HC@^9M7t4V@h0vF+rOV?VM-kS@N)t764qS%9)2 zO7%;2lX@jvUZtKGw%$dfSj%p5S|&_kxdf74Z_7|>dxP7M#k?}eMX8){*YsOehl3M< z;H2)3G;xj$Un)WRqb05kmvNpWKT@8}jrQ4+^N2`U9w&j&;NBh^b!NIP?3*h+FBGHra>4UJKce_zTUzz6(*_bz;V~4}@DH#xKa?fLDtAg)M;cP<(tujPQ%D&<;cxB)-4>XkHze{WI zviZ~+b^SUr-Xm_FZ5u}Ix3Q+?jjW06Y>QUa7DhY}bKdK&p{CE*_V9elNesdRhxw%R z2F`mK9|vmXF$0d{l&s!@E@`fvR4F}AK6*QKcOwG=fzD{+5CjZfn4%pi?-Nt~a?e2M!jYP|m6 z$u(XqasC=llelfEF&FJv>UAo;2YdH!lzHAerFlN()Rg9V_Zw-RT}g6;%eFxc_MGBd zB%l1!jz?{O<9T$S0sFky4UT=rsn~?|79#%&`@An_(_H)9T7m)lybB{?Et=A9G^LpU zW_8(TpLq(lM&U468Q&%E=j++L3N%l3Rez^@FN~}+l=o3Xq&yLkO26Q%m4f49fMECTaxX6G9B=INZ5G|Kmhx0gTG6I+Ui`SRJd3HVk=*vtI#C>CEoF;YUeS|0xw5Rq&CCntDc?fB& zg_m}wQrs^o?^kBvzlDwv(2U4Xmi&ig$i z$UE=vEAe|!$t9SXl-ECml(~jri3Di~%3VioHzC&RklC(~&+h75RN)XNtXWhG{LaI# z*|BQ7$OiL~U`bUU5DgQMu+BB_Mg!}m&2ctOgN*4%J@k$>0-~e^&v$0I5V-g( zO{Sxx#+G>Be|81sF4X18XFD@1t!AFNX&{*G6vx4lk;&HU$m~o~2%h&|1tIXrkmO+H z7;x0}wt_>t9!(=H#8{hy-9V8?ohSe!P-L;pkH>~B^qPFV{JRKk1}T(j+A{LJ1QF%< zEyHgGe&rsAB57GppO~4gBj4ckAvb_PlEfT*zB}4m&yC}H)|(t}iZtpJfeY3O^MEe-zuJ$ZJ)Ho3x4aw%}CJqOIu zo-N1D+Ok86g&>Ort*k+Z9;vBZ43i-eB!dHiXNV+E+JV?r4uy?G3!^NY8+cjfBH7~Q zrmQbf7EGc}+tHJ@RdU*wylHD#uPOKI;-qrp-n4Id(k^9MXZVnDTP{phfWCCnmtWIl z62=+0Lh!a2v-2{{Gw^@fq;6I0hP*_y*Ok#YT2-TMtcE6I^-Ei!RwtzO5Vq`}obWAg zLheG4gj-)CoskNUig|ao0E8Z3=oEPJKlAz-%G^5Z6%^&sBYOwN2sH3qNWbrPE1A!f z3!fm@*z1L?Xyk>c|1prf5N-x!kRnN06zzZ&4Ql$eCI%Y)qEWUj1gwq~oI0_6frTf2-E_t_UANs(g^92~2}iqPQL*Tio+i<5_U zwJvyO1bsVZfdTfg;qqVJh;mY1_i*)_;P}&tthUiO*{pY5071ce&O>PXsRlMKaawm?WIp$qqWK(xT${;oTb>VEm6FfRO^$aU%GU2!rslKl zGQn`W6K6@irrctPBnj)N$wb2)l8OEw$inHH+4t8#s$e~alu4vs`MbLfJgXiq=2F^^ zXLCx0n#lgnnav-<@=#e8l`zm3c9**78M%F7vb8Ll2IKBGm^bh0b$+%*j}Kt`ZKr&d zg6t$c{*IAGkJnzvM^TKuoCE(LS-x`NKkF$%v6o-LgY?N)lWmc&^QFFI`T8hN^ZWrw zjoV6d*$mGlQp(q3CdYW>u5#N)SFjouvk1B1>e}S?;;Jh z#Jc-%-|X+D$m8sRN#1y|x7#)&S_;L~pSVRjX-K4J|3#Wc-`Rh0h7jrBf02u-T+f(#9z`{!=&#sN#op@d4Ze_o zPEs;gdXN&A&GF!7m)E%Kh)yjoDZIS|J?a73o|9~Q zPAUo7jxVJNas(xJ)7KnLrP!Wan^fq^E=lPOcI%pVI3Jj&^0uvc;FSxN4Xte%zR9BCeBt$QB? z-Ie711n9jEa}Z;KYs>Z2_AXfGscn^T(y8qQ1l`)U3ea2Ihl~l zwu_D7&u}Ejax<{^m;!dsg|#b!wS%qD(;6?5dcBjX1iyfD3xRB*C}Xp+!d1H;c(*6bW#1HX+0xwyjpKt&(|;*_w)aMrP&mUUXwp&)2J1vA5 z$~i!>CS`a}nlqLe^WeN>6wC%rffUa$1vj)(D)KGN<*tf)t}j7bQAK1OLrPrUNzzv! zO4@DwO$=kB41S$EJ=QbkA{~>lq7+4-{5%w;eXETah`|l9c%gItrBK z17eXeVclRLw+W=JW()3VM-a<9vgVesCg^M#E9mUuAJ++lbp!KRF2{xCv5%Z<_10%X z(-G(MDyLqM+*`R4jxid@PN4;UCYcs`yMWd59s<$36%v#Sm9K0iReSkVkNtl5D|=Ew z8h$o{o&~oX5p?bM9Vpq5YKSjp@}T`DzMUPzpf~5?6eC$F{BBhsEs$az5E-+@F4#_J zvLVj}4z3|bhD;}ef7S99vcW$)l;ensEFjX!mgOFbFsK)G0XHKxqRE2mj6LNpOIuG# zS`?)eL*SAw|JT#zWgzn%6awR^*OE|}#Ne4A^6!X9amMXzHzZ0}-`ly!3Om|VLf=R3_^;jx85nTu1x0Bi6kC+m)u3XWE8l&kB@#4Gq(JkJL$>Sa*Ebtw;~I@)`h~nlU)Kej zWO==f+gaJE+?a+ax`d|IPtp8T6h&Q%-rZh7VZpA#HH6s{$(Vhb3bQsYW`}JrW}o>m z6E6Bzh68J!+EAEQz?0Y+c8fs0CPKYD>&MWcp(wAkuI|_@h@k)&f=D?HeHlJzM<711 zCH@uFOSRi)uPf)*WK8alokKJ~rAyIyL#IS1`;LLs#k^CDe~h9W%61YUBci(yiK@7u ziU@rH5?upZu>UJ_Sh_?0_t`8CbM!nO!u4%TRlZ|I8Jmb$Qm?=0Eh7Ok9ST-BP_uuB z(sE?=T2!a+3QG6N8sClpldkdd-4DHIK)$a)RFcN_818874`Lv_on9ji;RF=y%6B6( zO_of4n`BnuopS;dKPLtCCR&$BdFHEzlX7>0=>=Z>-H7?BeML_6aN)``DKlCGCd$>} z&h*!L5`>KU=c_iHDC2>sf4=H4Cicx&z03)3-+a|$h^b0BUp0%eBps8(1H)VNUxArH zaYd_b`PPC5*U~@!&P9Q4JCUDl!B5CNCcjLF^*B|@?Xd2Vpr^ya&3&mcl0x#QR;Wqc zbXnpGR6xOyV+j8F4;jTU`?LKsXm?|mND3`-wF9K(fHYVV|ILKYAsQ|ZQ3pxGKkP>Kwo;}8foYskgR<~@;SOFsN##*`9(&jeG)f!WWYCQniNTJn9x<$>_T+ss~d_x0^&AS?D z6oTZv*WNcdCWfuW!?Du3;8Y4DTm%2CW5PP-w4g7e_1Whei7PQ~M;Rj7gBx4xJ(eh` z=QcK6>m-*6l1FG`P-?))7zOqe-0(neh`*S64}O4yI4#0$&fFLU-)hqNS?#kPLbDwp_r3BRil{e^zAkU5B}Cc=QMqRwHNhenoZMI)S430}&9fd`=9n z#^?bvJQGZU6w;BA_Smnrv9dDdV#j7ktl6w%-yd+<`|@&L7;{hMA&`WkoMJxPmBpa9 zk!hQRRWylVymN$KPE2q?!%e+Nr>0w7%2cC~O7{7dql`tMV4=P$)H|itCsLkq%KEQhYQW?DU)utp; zHp?A|zTD=;jeDYtDvUf#N(-f2#mT+Gsbydb+6!%pVa~C!8YXClj712er*StaKYEJo z>N%D~t2YF<&L>tn=&EMo5k@mtoGCGxEPZAsFv9DM3G0suq?C~rGc#GUZ!+-!)a)@e z4I7mOJ}1UFT7o77mkQw14Ua*=)9IolUPJN>EO1?hWGp!>S&RWm<N6f|B3nas ztPMPr?(2J#y$I>5M5&)ZQtdhc;e<7O3dDAwa{aDik{6LFy^?ewoNk8E(w5=Z3gjY# zWv{j2BtrI3)X!L49pRIc#!}VAPnFj*2QKB{EBRh#_)h*4NAlk@hq$`A%ptlGQ1@Kd zn4jvWiZTUpdCyttX^1d|=3*wuwr?qCdUKyq_l!6iPuH}@({=2{jiGDh7ioW*u#cMg z?piT9hf_=OAdGZrE!!s`_q)=2xT4<+gKs)9L%U`5nW1HldC`g)bJ2rss_e) z-y*SReD@y&J>$E#Bp4Xqy}?L(eCJTnu)m^5l|H+yu7i7&WRCYfQ5<5J0%LNWN^E^I z6rcBXUGGlRKI@5=g{SdQc{fV{g%SlDS;DF z%m*JM3ui`N^!D1?11?GS8_|JOO#<3nc|{S@Kj!Q}`DBmH9tL;Wjnne_J$|**X zrc*n?&;hZ6}|%Y#6q9BTd&_G&Qn#w$t4l(1eIYx|Ei z@E=`m_vu*b!uJKq-VuF@(tnWq{Ar1ruG*%u+eq1tRCyIXH8O{8YliE#HA4%(&NqzG ztYC)R`h3;?kmxcrI)q$&rV9MhnYQrj`l|g?`l@5IQu?X~`IR+!WX`hP8+GL5dSGq^ z<9}dNP;yn+IwyijmE#9e3K7K-X~No!IIqy8)c)Qe8+z()KrmE#?i*Q*#_;ryk4lh3 zf7F8IK)EyLAx7dndm7KPrvX;qdG_4;SZ$u?Zh+OHl&s#eYf4tX21a-Ue0%wD*vDK0 z=Agi0a_rc|0GYw&Z(>wmw zH0OpljJ7Sf=iIQza^?UlNE23p>L0;(0;cp0YlK1yU10ic{h(wn(HNj`OwX;eX8%TN zP5#sz>YRiN#PK?w4RM8jyaaXqV6;~LOXU2BclDACPg&fv{^Ay-D(?Q2#j*X+F2+!4 zQ*2c^w*wt^KHJAp&Jd0}nEe{dSe$W2zB>=8#6tOR2bzue)VBlKqEk=R{m@H$s_t0M zpllV%_f-A!g}Umd@J;CMpg{4L?n8XtRkwB8#8{m>uAzx*i>8FgV0}x1Al2U1;@eHr z2;@h~jpYvCPFd^hbFp}Brs3PJOeGf0kNhhb8QaKL9YMJ!QoHt*u?#!NQbXmqye+lX zD+8QUSyum}kVbD;`I(%on}Uh<1G56%vRP_z`#p>-9c!7?im3*@ zV!Uw^VzqB$U^x%(yDjntg6_t^w*~0k*u9Z44UhKgssE$zef2-*um3?`{X>%Kza&-t zlz_H=b6{>Zeyyq9dT7~%bv|yqwX!F;Aw8;x1MB|l<3K5b zo)&l+LAM2XnIrpc*D7Abn4}g62+*rY6c8Zva2|v1A~~d*LvS zryS~OR@hsYOJf55{k!Zw=u>co5W17FT8WLL&oYudkHxr45tpKm7>c5N2O{;(p<=tJ zgkT}dp|Vq%MPQF$;gEM=KTv^8Gxlo3(|Rbo8fNyd%FPkt zJSvdwsDQycQ^|{G&!RirGGeq>m)cH0DTi zrrf~=-&Izr%FV!HaCde-;!l*J?sV2YTE|tx)x|%ywz#_E5DlKR(oqTPdM1nKW*dIc z9(Z?$@6^jTZ1=44cqb>dbd&*w>Z(gYFiwnUBtDgME`k`4@ZmgHgV1EMc@L5y_`QK> z;J25Q;?J>(IpV5{I~%I;!RoL9p<3nLB5fJOeP~ZF?mUa$Su|jIIfOB`_yhd!B?2?7 z@$jhxySBj5RKSKF z2W8=O>lhpfFi)@+hCg_bxbKt}4}bd-C@KlX!k^; z6)IOZS7kT;HnC3TZ#=wp3CfHW3`G-VEXlGMic1LF2J{D@BLIzu*8>}?9@X&T)xJMB^z@}*zfShwQEEc}otqSb84WX(*fqYlb z(fQ`;TBk2(-F?94>-NZ4A{9y9r`%Cb-E#;;-5IZznLJ>gjo4N9n+o~}!WjkE!1M%= z7*<~aQ*gYRr5g;R`NFzTpomtchzt7eoR(35t1oJc0x2?YbIR!raQ<@sukw1Mf$|nR z4HOTbhk#~Apn!L7^%Z~yVw-`nOP+IDG}=ufW8oXzI3C^#|0uF3sIQ?=$QSZ{fq0F| zxV$DsRTst!h?a1#0K(3u{dEC^zG)g7c73AYNFt3tRR=>@`=XM#L?J^6%vVRY$jgX_ z3m-E|ID;ROAQTUOzbH-hk-)XD=_)VExaode?_laIY;D)L&qGq9w0su6QFg!D3drsO zE)|sB@R1B_$&QD+A)pyoIh{1b!}p^`+Kiru&}M|&BUro>WUF$xTq+TsYT#KKzV%ta zTN2(&!$%tUFFhpxXN2!ecpDAxYv5}&dM=Zz6;??H2hNo&(rWxgww65oTK5(4Sbk}_al5)!Y6C^{RZAs!`lzJl=G2;U^fg2U|$e6fblBfKr)A8Pm( zLlKQ-_?4If4L9)!=)@Z|OT4ScPJuONJH!Z+=z+uy(!Yxq3Evk8}D z-0|=hL9i|8lUVpYTqEx6$yv2EJCqR}j8G;hS(+j`DBdi#2>6 z;dDwWKh*Foh!FZU{5rzB5WYmiKQ-_?4If2#SHkCL_;Ldurs4ev??(7!4Zq*Odun)l z!Ve&PxQ0(P@GK4A3g@KwK*D=z_(%i)2A-$kqX_Ro_#6#iZs5Z-ydU9*5I$MM?>F$C z8s47pLkS=k5jCdNens z9TF!BqNck;I(|kAv7fcDWz0=?!v334msFc+s?FBbGRSI2qgs;!@4yRUN~d6uDRSKu zWhMpPY2eBrQ&>9*>fI$+a5;VibqSjrSPEPIgqbCS{nEW8eU45)#ZE8b!h)eveaqL} z^fya-{kDt^FC^bi!XUSZ|1CP{B6ShGfkKjnh{9?Via30g>8}BFlhpw6_vO<}=ROz) zF8Ql5Vr+N+LbSIjA5>k|32le=5iAo{22NF>6`WUpPSjvcbi%4WL4#Qxd2%%-e36=X zF!=f2612Jgo&>pfI$y{1soO7QabNE#3S48H|~x@>s8X~HEL zthI-%y(*KJt@jtHL(0QR5;EQnSgZ*mUS`(Vh+KR=gU>{6lsSsiD7Nc)Y9$_SX7bGI z%2L8NAz5*l@K*uXV*LVXZ=6`)(?ke2Vm%G)2#WQ`@L-K#Jg^56*Cp1^yXmg%=m;%2 zN^J^=bsW{!FV^GS6l^n=5fJNLS_tY!tY_M&`^9=M7ppIKm-Jd-3X1IX61K&*<;J@l zYG07_e~(!ID-F14v0n3tPpt3SS42!>nXr1}NRwBrr)aP(*1H>U8K|KkJ=8&HtTw?G zv_pjjwpjlmimJuB3o$Tay{|6R7VFi=>pE?*{+fH%VULNZ7VCqBOCr|CK-RQa_w8tl z^%$lEHupkZe#|(dV#4yTc|@J_jt zZ7srkGi5Cvet|&9>+v-2F>E#nch||$?MS-OI$hkP+jnm}-42L}4UHD3Q-=Ft`?{9l z9{Vssqx_29w~`dwuUKR^tVf1Vzr&HuY;Mh}ONP6<={BJws^70@fokiQVQY(%f(?{H zhKsle=g4rejk;fk@4el@espU|pM!)Lc9+=cCG5!X#cui@lK$_J;p0G^k>SV!pA5HY zkG8WlEn&TMv|omQZ6{z`hUXeESws=)pe=5-3C6VA+6MS)32GT$xY?EA2X&#g3=cGg z+A@4Tl{p^1Z@weLugr2}cn#$r^CJWTftxx|^a{=a0{ZFFM@dh7HX|~YoE+lJN7l)b z_^4dcDZWcVDZpG?kc`p7Xb8qbK=fI)Q~OXW!J-ZG77iT>{R2ey>f}=&B#5^S_u{wX zHcyF=eerO`JTdrC6IHwem1P&~f-3IKujc&Xq+R6}I6K9M^Xn&m9l@_kejUlL_5A9~ zueJQ@$FG0!t3SV1@++5LFY#*tzno$Hx_*KBKqxp3WzmDP8 z75s|w>q34V%de6AI*wnb@auSf9m}u5{OZpyu8mjrc+1V`Lz$fcz=K8Zu~ll zUoH7{GQXPe>lA+dhTR~=r}FE2ehuT-SNs~zumAAtG=9CyuMzx8@auGbE$7!6{Ca_3 zXY%WDex1dy`TQEmui5+>#jiNO&gR#2esNG#c_qKj<=3VB8qF_mTqz#IuhaQ;9=}fH z*ZKU4;49v8?Hv$|c-95?^C#SYHpQf8Tg+QREXA+4&V(oy@5mgxN{)wgjze{hmO94{ z-W**-c*Cubf^*3$N-96XS`%uiz7La!;g9iubWAm>V;IW^OHsI}K^aA|prjI>h?2@H zq2jJ2RxehNE6S0zBQ1eDxgGwAq8`usgg?%#dOWu`Ce%lxs1G!F zc>uguEWAb_;TLoQ(OV}!3hXAxLJ`BWbc(BeMI>^m7esb~2A}Bz^Lm?jcnsq(Z_3_E z;J97&2G~v_{N=rzStU_2vl@+s`yjP-Ee>pZ=Z0Y|?!}lPRxpSu3@9#{X=jRV%;UJ5=^=O@7HmF_~tr`~_u$ z+F$MoQhPkIShvEX)Oex9K8P_GBlH?_7(y#g{zh<4XM%Xv4-`dDQ<2lZF^)6TU;yFP zq27|$6RLTElE-;UK3urre_6G1cUs5rakqd@uz%DZSW&LL>ucEF%31h7ilbxBieko$ z-mnUl2jM@i?(#T{>uFuS8u?cni{@hv0GdHZoHRr zJV9H6XmV)go_Y(OpZW=b>TK#;nCdP!1M=en>1^u1;C=*f)299s`c>|1!27@wL7V#3 z64ccH_;U*CzsyQa{WYcNoWDQ-7KE%c^MwQ0ZD=>7jm&1U2wNyyKTP?SbC^0m7u16(~l{r z|7O?J)L(C^v8jImlW=~?Z-?edLH!y;llohs0i+(|2;gHE(^-neKGcA|6q#Hjkju(v zpzwUlJfp%=_`)~$y+mQ8_PSeaU6?-}TbGNi5ZC|{4?oO~I2M6ahJTnVNk8U~FKImM z3&xFkFPgs!Hwv&9TFZz&t0rc^z#SXY25zce>UlyJbBC{(cr z%&I^*HgvDb;c#Y<>UEv!8GowWw%sD7?7t$*D!F=xg!k!$1-^t)*^-h~Brt9QL36-A z8TJ-vu(0O@z2z19vu&sZhkNp;mZ|GIO3cu<22dDnjvWWll{icxchg$2p>3;nv4L1= zM^T6}5&0!)(J^HVNM(AY+e+3ZvCAZOR61U`BhWlA;v__)v5Dv11Y#hk_sD7v3qfZY zdCTr86LZM3@FMxix|=^9Cc8|@pSnzC-1;?a&vblcW9hzmA|fBiJwfL_GmyI@sGPy6 z{6wUrE1D<~SXQmFj;8lz_CAEomUt>>qgD(1F&|4f@0w@s7Rh< zw0gGut(JStz<{1sX9VK#v6@P*PA1nTthiV$oph*j;VeyO6p=vtZUp0zWxy=na?72h zr03WCS@|{glKc>j;|9Dd(&IzG!8f9XNAApxIXp%{lljm1SKemDw9t;#ma6N6>0o8HREmq z#8X)jpR3F3;wujhHNjPoEEx;Lv-SfVoBh!$$g`8q^9x5KPSeG6+xA(RaqIKQ7th)R z5R!*h!4}~2-I`EYEb>7-@_{H&_+K)PY5AfQfZa5qQtr5-2FF`IE3lq(1!lOpyO~yc z1dSPu4Mei=Oi7k?g(S22AVnB;yMBfifNpwmYlKcez?VKg?1TJo)1cw;tU&+}<1+aE zk~G{&=g9Eo&|`_+7)K9RHg|+KQyk-2U-8G`hp152cZ{=*zDfSJPQD~5c{CP2{WhXe z?BA9h4>N5n@-yh}jRa9_m96|k+AmUrVIH=$VXLfs+PjBlU54E&*ga$}$e9`WDUR&+ zE}fq))_YsHedu@qV&Rd36E_ovhvT!Vr#Jba3HDZ)$j{TK{w({2TI1QGpIBg4r}4U~ zKpo>5ZEq8b{N&jqH0&xTGUzMDL9g;V#&=~Fib z$lu>^TF7@ZUC!u~it7{ENb=o0N7k8V^u#0-aQhJ&8$yvk^=FkAMmc8tn#%=l z?~YCVM9x&j!xxAJ;PaMQr|=V9mF(*2CxNW}`QwvbjA7HjUn?V@Q$6wUK1hM6SY!iu zo33;HKymcs;x5eaMn+^=6yZxqVOY{JS!STo^F*t0ve_ZoFf9fZ)hwF{$ zde9y&!3RJbI}eG=C(jkm3@>0E^e$rI`|%mv>>Cf?gjh7~6#NKpu9PrrLq@?_6KaQ|Aw)632s=Sk**#D-}&J16RkNl~dg`rcXQCP7vbv!=ekuCrKZL?yODGao5NvArfZy?~ z<&wkhv+NppQ=N7x*P!pU!YBcZ@SeGZI%jfMx3#mzqrg-2Rl4ZWDT{_OWXyO@3&BuN zra?N>fhjWq=Tm`y4uBA=eefe0&_K+kI=o1ira8l$s>UBA@w!NsY9(^HaSB+57f{&@;&*Dr zo64UQh+C7|=)Bx?MvkDE9DKoCOvT-~xJWR9^07ZP30cp5ZC_1YPuD zDT_8*e>i~9`fm6Ut=~iEY2wQR{8}+WYyGdHFIg4*aWIZ&ZA4gW{fC5@mV8que!-X6 z7D1$G1)S#)sQZ?7{alHM&te8s^H5zzAEyl35Vz)x z8P7<&ggblk?4|RBQ|5sr6`&=6@Gm!_nt0Y{{4pG`RVMrfBMo88`HdNlXe|7^WC_1w zpzMa8m8h(_{Bii`A~>m)^)2q_O@tpp0z<6N4mv8e7ohZcku)6eosa z;bWwpaIQ(pG4oqj5|XfL&;dbNYMdh^V_A*Nkf@!v;U!H8Rz#Nb8 z)9F=Hb0Yl6l@KBxWi4!Zx@6@6L}_hnslsM1GQ}!_RN3>!@$m0?X}Gl94nrZvT_1=z z#}|Ql7+)AUPV_~@rf!B48w)>xg1ugdbI32;9O+X-e!0#E!T1ajE_Qa&ANrFe!rf7q z7>`7_%?(<=q3VBNfWklctZ_fXCP5!mL(AW zu1-hrpFjU_;2#eB!-0P|@DB(6;lMu}_=f}kaNr*f{KJ8NIPeb#{^7vi%z=>7^8j^K zv)=`3RL8Rp>e{V;=PqZCyk_dP>Yy{v>N=_;e>!(T^flK80xe7myk|5?4IXe*WUv}{ z*(7zrCF8N-VdA6-<1V{UjTw9H1T}j6_)FAzsCXXL?URSBME3xUS(dlaN=_`K+$^du6vS z*LEJ|e01t$V&qpHl%1`P9(KY&m5o2@!ts;FXR8)!^n~-zy;zMIf7zsQm*t(W4)3d2 ztLlp{r0UvNbyWxVRR^p6`l|g@x4x>IIU;I=3`t`*>)v2%Qq(=2sqtvy1 z)wSyU2@}R+r%FA4(*FPbCzRHtX}DSQ^c`C4xKqoWGctE+wQK9FHoLXmeUCl&YS(`6 z?0q`y+i|~6`%_d8IPjo@bGr99xp=qn;9q^To zJnhvdl82%F5%*}*QOyUd)A03i^Yq$1B^AmIJ(zZD^IMzmW5P`B{ktlR+M0M{z7Btl zxb)h2$k7V*AEWM7L)81VSE?gat~ytpr49w;8Y!=@nyHHLHBD`lw4~(Grey;2mf5P= z^@y9T7O4Z&D%GmlYW2P9(e&Tyef0t2KUD8EW$Kv8_aAje=&6vMf2}H4w>NpQ`Oq|t z=N+n}-pq5)8+YMF=Ug!Md^P6cvnO8? zQ+Ir$hL5;ZU3R*PEA_>fU+1e^)LpahJXM{k#-BDxouO8~tu`X}&7lqIMm3{w?i@9Y zrCqJARM)&y!q1Wau1X81H*MCW`3^1AZ7O@8z1#2GL8%>gZrf3H>Uv;K&)$b0*)R8~ zQ`Gp|=c~K9-aZ}d={RW7DC^rRCQec6+UsDG&7XBjy?>G_Tf79}mx^Crsv&!|P!B4# zJI>#z)>&##JF(~YR;BKLc-|vLYL>d;rh*sL(Z?MRQ*px369*4b>UwpRdT051^_j^~ zq0|Sf-hQ*}jrUf+i&dPK>fwi!%2aJy?F#eL?SO+0rtRr4{N&Ph`(dqO>aHqkd#bT&oVr+Dp)Ny;H)@Lkd$x8?Eg6zt+a7IR?#SF| z^>Xb(geC*hB@_x(VG`e}{V!tH;NNt_E>*YI_NcuIp?C1_a>VGrBe7DnxON8<(s8GV z{*Vm&&*i{kg4!o^8{C0BH5n~D1&q5|U4!mzs=5wrEK*OX-_(<6z}~8lItX3l?rIOT z#}M_q+Do0NhN_d)-Rd4#%7JPStli!!TkQk;aYX1wbrbAPi8>N;bi4WvJbfAr8>WWC z`i)S}!pc0So>woZ9YQav#j1naS9L_+JJ?1IzirVg&r${GjHjuIkjcALKeZe7a-E>M zs5j9bIcjL=OLWP7Lvbt?9}Uab0~&e=;K{nhD+J4y`tZ&gx~g6zPfE87fQd6v|TL@b5r1R~?B|eesX5R{`5E)G4%oh@lngX2h$|ajI=- zg$jqhPI8ssqC7RjW`1(w3`F)QHews!ixq)iU&v>J|EzdP}{n z4p&h%TOA8LqoIi?x&FT=1J3$ChMG53dxgp%rSGap=z!3Hp@TvPhfWNArcMi;9Lfyc zq3%@Yg}zanm8G_*)}ZYSb!zA<$=x#4PwgD~5SIN5bzJCcwMXa#;B-#tgwR%C+C{Ba z{X(y+{@8}{Z}kqi*fO+Uof6tJbTYo%0L#-uV?$?zTH^1Sp@b?`7l&$*=3X@^G+AP= z3N^*=EY&&GC3Kg%DAYC7E%b&8g+_;(2>1319UICCbr09(9pG^u$mgWCe%zF7U~&l zuF};GFjPCLonT9LRvEA*yQo(10a~m3)X|}{)JS-VXRCA26OUG7)cvYZ4UqCX^_YXph}Pxhf2k^B8)~h3b5~u2pyWRFEpslH3q~4y`>*LKn*a{O@tG zFc(SqV)_3Pb*cRFzsuBk;HY4bgE$gO9;g70N)bo?*%llngZZ!L{|9hXYTNn9KI?yy zkAD@8FL@frFOO_%`w!(&i9Fgdjr-kpKK@_lVGzINh7r`2A{wMJp_P>Z0iUh*8lZMVcZ-YNp)tgJdIu-w%#`7J z_@MRvDD!&1JWS5#7JR&Peek>r4=In2lCJmW;rWhZqSwLeofy#m@vlm2G`s)Kybf%K z(PN|!ypr<@5~+{M_OSM{J#;%vIcPgPxCY$!zP+k<=S1=QEU{w?jZ*Sqwdp`g-~H_b zTVZsZpXt5G*^tvraJh2?$2*^LwKET$9YuC^tUTDSbmvA+^x4(<*&)u940I-7j5wb* zWUz3FkdZhyl4aPE#NI3#9*zBm7+n)B)FomMv&?AzInH4uwrq+cT~Wr=onXplUk@D0oPkuy6ZO)=WJji()> z);gxYK%3zYAk5+j!+vI(3!J}+=8@wZP^RUsb6zA%erz@DBIjXFO|0h#bKKWH|LB~+ zCTAU@vog_nnCLvh7AMSJaxNk|!}f~z#pZjG^cOncGTE7@j%kmKWd^+*>o-`JT<2(p znR}MBWF*eQMCT>;d1uM%5s7n5&CanzIknrcVa^o{m#Sv-zCfCXI`b2qt!g&z0@DvQ z)oaej^fH&^e6!@hrOplvGd9bakdEQQ{4e@{!KZJaK>YVr3`bXBS@Sb ziOy{ePb}#QIX+nYt4&cV6<;t-SGjwU&#tC9RqQW28{+Rwruvd|Enhz9i1MP?Btwf# zIV>oNMdul=ZJ)A-Wo`*7oe!#tog@dZi=7h8vW&QV{Ezl?X=gfn)!SK_KF*+}J1-TT zy~}Wk^=?~OievdB4yyGzav+-j@crj8j#sZgW!)>yh_O1thC+pwG zOW%99vwvm!-fw^RanqMvzo_Tcv8M08o&BH6zmD{Er0#?E>;I?I_dk(;2bXV0z4`d% z+f~U%^|+&*KD2yKO7wN3_BjmWiT-HvZ={E|)3Nq`T}LTICg+>%D@DKGZ@#A_YSqE> z{owvwG>?u~*F=A=W8PWjG9odjuKw6`+iiUi=^-i|AQM`YCUdg$HVN~z`*>wH)=k?w^ zjE-TW`E}Htj(K4s3^m4=MlTypmg0RJO;oA73519iDX1c6e|N7`*=| z?BHJ2yL00Gme{d{M(guowdvhwCHDXBdh{_Tof1FvBDW{ zk2Z82()F&odlrwVx#_O1H+CIzV{FLW8|znHF!b)=(IH(I-8ro8o~#k0S3P#?E%R?% zP&Z=mH&;Bk@~*k{`>*UfJ#(n5^m4wCd+FGc(re15mQSnrO6Byb88fe|o^?alVK?4; z-`AEb8a+7crXgjsW-qI+A2Rs1;kPfmE7rCBYQPhFoqF1c*>jeEqyAf~9$NkF@2rV+ zeQ4FHp=Dj?EVzGYS(yuRE*)E3?lQm&vkNDWx#WxamtCGS>f&*E<1;T9de=QmzdkH$ zSk~Yh?p*f3=#I+*Cly^k?}n@q!@X}9(RKOop+g@YI$}=Nh{1EewftKn1}`7{(EY=P z-m`SroMG3_?%K7yynNcUii)pzRVLCs=eo=rhTXgL>lX~2^0lsmvu4jCmMvTMzyr$@uWv-J`ft{+sDH42W&O9jR;^m~&_fTc zUj6NFKm6_Qc&&+E-+knfM;?8&;jxB>=s5)Md3AEhQpfACSju53haJ|blS?_G%VJa7 zN2J6KJM1ta`LA8mB;SYgpqHrr#r%s#zx(AZUP`n`)5MI9u0Cy_&`=9cNr@I6%|L7k ziKdCB?sV8;DN!&@$6O^e<*-i9l0@&rqiMxV{5$-};E2PIJmN?*h?e7)b=QZOHoLg2 z*u}+H2gTJDK}m6SVc?SEvS8ZeDxYTsxuxaB@gP1Vepz`@@#M0?N*7VjEUYXobcJ<1 zx(Ycu@G^SLw5oVvdAzW)vT#;ncrY;DCmsxlK1|i8cM$)~yXP}yM)~Bb(rM-Kpu!d0 zRa2t*jGS6gH7lO{9iLuRSXDf=*frbJCl{6FQLC`YpymlzPAR#9A8 zST(IOE_%5XPAZPim~IWOE3GPt?_d1n!m_d`ZhO4=v?=kz$yGB7%dAmRe9E-SslHYe zRu)bzt}3pKmz7ShiWf~Qo*s{8Ikm8Aa!Is`7Y@(OjR(okWJ*Rx7g`UAkDpah{9n!U zU9-y@K6d!%xRYP5ZJ#kYdJy-%7^RV;ZkB(k(zZbXyDt?Z2Q zM5ZR#UpDU@|C#<>g3t61`l4^*w6pn-ubibW#9e$|R9sm+MJS(KY(2~471I=vwGRrX z%GBv{M&b%9gNm{l(}St5PM;oBm6jD1yZWxUT1AmBQjs{bY`&wX70oD{c1U@|rHveeUhs-yTe;+dboJ70OUav1MpIKN|T69RV+PB?k zF$Xn1(`QYcG_5Qi6o17AIz33P$HYWcZ2w+VIUlaATeTrmtEmOB9ChFG2 zVwaOfHRiz2_9>%k-u|`PO%v^3eT%ATbP>PA<+X1aMa30bm5xkKZm;iI|70VY+%}@- zt#opf4H}?nljFe|)6>sL-n&G%)qoGxQpXIezpD5<#9Zi1Jc6|zMANm; zPa||$q7jNF-@o5@*BV6Q>@uQepftXH2guE($IzD=sXbQ86TbAdXv+ zrd?ZDQe1e@*pB!?kokk%VHB=;y)}IPjn?qIzqN*qZ?}e{-f0atx3-2ywY7%#c>c<% zopyywkJy!%wt?Nc?g~#AmU;C2djCVfBLAOYG@rNpN3=}?cZI9Y-xYSw+!el&wJSVq z_^$Bp*}K9&AGFvYr=14?+P1l*cE=aMmlfV6*dSD%-a<% zxNTQhFYH>dD?H}*UEx!Uc7>aTTkhT!-Y>j$k902H6&Bu`Oxtz5L-_j>yTY4(xGVg` zdec3%D?H=rUEyOt-4zaf*8fqzaaVZRFL#B1_|>j(>L&Ak!MuNC*+R5#KW%qji}-IG zSm#gsK3Lc;ocQ+x!=pGIq2Y+#;V*^PgxHb0!=A$V!dPLdFkg63h^GG`pE+uGc;Yd; z!)zfM_E_rf@a*n>3loJI!kFU^%s=bI-C?z`R_IvfNAWq+$4=TEeoBa@|F@pI!{d7G z4*Lty?`KZi9ZowV`TdQv4xRUjy_3JwKC?Tl6MCiZ4&UgvJN!=nL#O*F>3H`vlLqb% zmk5swO~R|fTj%Z$JD+Dc!a!k^P$0|{vW6#@*(F!LjZS_)X^gawmA1=vhd&bT$lo2V z6Bc}VcldqbA6M-Tb0+N$XBV5kL|F*$T(dh|e66w&ekd$1OU~;-{#fW*A&;tdho6|S zJFK5A{>{6?`)=DE{_d{b;g+Sl!$(%^4ln=K?r`5jyThM7th^rC9o{MYScul~>_?ME z-#_R3Mj^5B>(1#_>S&))G$ek;^yrR?=r#0T@(RXGizk*cJ=*VAl@x0QbC>moC@b?A>g4NvlaqV#xbg8zE{cyFJNA;XkQPTcP}Cw@lX z{^w4QM-IqHdVZ4r(a$cyn9mNk!#uFhN%V2;qvMJ6y>I-Y#O&JR_e)GSsc?GfWL=Wz zwp6{RY30f8Rn#e;QaNpEyj-Ssbf*&Co?vG2WJf7OhD;niF*^Fv8JJjFKE2qTtI@0d z;AOH=3Tk>)(U2j@2ytD6XxCX)Vm~^yuzF(DGw6MGBGUWEE7EN${-9`5I;E`CA(^td z+Kz2%VWrMy)Q$I8ZLiYyPTE-$Cg-1(*q2u7iAB9bhf9*7dQ}!*Jwu}Gy(%hIpXdl6 zs%Od0-B}Z=$Bg+H5f8+hF~;j-#7rbN7&Bw)B+1fU8FSI_-TIz4ez=rF^r!lt(l#nn;gMn0q`j;BnZ=Ui51 ze*OBLeO6p&Xjq(@e_-S&Oa(K6oi1gCr2O){x@mXK4?puB3S@Fuk@~ewKxL`W!cYEo7#8?OFgJvRmfS~G} z)%UE#Sq&v{)|b^1OZPSJl5rR3e^9kLxEv4UQgmwM(3!kX-RMa9=mSj=Wh1 z<1P-eb4Lc*7xoth2noOy> zZdy=PQdwLqM`lz8Q%YwRJ1(parWel?r#L#~4eajRV>``r4Gf-In*3I#@$MV#R+5WK z9&9JSU!B+uRUS0fE@k?Gm5-8TJv9J*J)B{<>%@|O#fz@3%W<9DsKj3fM<=c!jPAl5 z>x#MY`|q!et|Uuj$8^W{mBoGAt4OlY6DyZEQ1AP$(UVInC(oEVrL4Hx{@bZ5U5m=% zXfvK!+_z9q#wo<)9c^;L6^O~}sjp33M;+Z)mb{-dx|1|{A88^5TBfpD`xCIgekE#K zG7*PPk?pAz?WcBC_V;;xd(PhQF5%AW_lAXR<{se$-}?&>`~EW_n(ks@mJqvTZ}{h% z_lAGEX>a&L4id%*<-%=3C*c$!n(mwYH{m)h+=so!jH?C>?>`{1FPvCaSy);%{o=_ZN9IoIp9mvIe#ip;>G@}j{GXeD z#{Y2oqxpZF^beSLq22MnF7uVkA^HEY=l@?M{-2uvN67qtdj20X{rx8nFQ4_XvOn4e zK6?H9@67+dScOB%_v6n0BNV|uJ^%ly^e5B)KbQX<^Z%br|NmtENApgG53Qf$ss@}h zaa_g3L?64jXktZGrNhmNGJV^q_20j57&y^!(}(X5Mvfd;c=61Uxnl-ToOpHljKpqZ zz{K2Xp4s6*pmg%AkpteFlyO!4&pUYej+cus{ur|me{d8(I_z@BKKh&F#Hzvr_pKS< zf8uC=9IKxAac6zdUaeF=!DaFKD_46*y_c(9>ps*K;I5n3ry1r-@c!P>HTR=k2OixM z(J%2H5?r94ll=Z+pM&*>2I&pO^nTnApIG(;{h=!p->z_fLcaddmmIMKo(>TN=efo{ za3y?yeV8fjp9SvQ81IgWNtPGACcbC6o}G2byW1hZ4jp&k*HwCDfu~VKXJ(>hM@!GJ z)WEYUKI>iRE{6kCzu&i`jX&|fnC8%U(NfNFH~Wl}OWi;2_{6v9-lV>sx^c|@;h%J;%b~G)9`gIs?Z3K9S2SJp{E&|6&+_dA zf8G3)yL(bRKcQoIG-X$zk1LX+VW$h}f@h>8e#a9}3yIb=aCbxUR86Pk&jX+By~tSf zhx(4|4LXKJf6@1Fs@Ne~oP`1XlT zM|Zl=cKudtWbjgKN9@92TkL4V-i&=NIJ#4G56&pZBJ+Jex>IKGMl9R6z!un+nCdUF zU&Q)o1un4Nej)f(?9!kqHblFyIX2$!nVzDt$#l~au^;exv(P3^G`FKWy&bzPF(&!z z=uUr$-5$%2tZ=XzbzGcVZ93z8-rxcsRB?wlcOXwjy>fgWx`4nQ`~U z7RK&~-4k0JyDfIRZ;NB|Vzu6Nu{&e88g`@ci(5dGZ$dda;?zYd;t*VdzkElmu+*OP)g6G|xcG#uw?U16GhMR%4aUt_gsQC^OZ zT^XC?DKFDJn`L%vt{l2^|1=%b9&oVwJ2=+y9@75pg8f4}#$?7a4;ePp^L>W44@rLi zu+NUUL`KW#SWfi&y~`RF`&?qqCq(xRT5j~2l^Bwo&rtEBSRb~;k3R0;v<-HLTD0_W z?RhfXHWrQl=yUsMQy#j^ah}iguYCVA>HX+&KWNHBhY$9Qp$ijh7a9FeorkV_^4Ed- z`0j7XyYLP_=svvnK2IpR$1Qq)%3e0Q&+TN--8!ZH9o+$SN)Wf_Jk1{Rly}|tcZ$8| zDfW)1*mIt;|Ng)JdIjhB9lZzYnVhGmFzBH71zO+iU{LI0ZThJ8cl6AzFBmp5aqcNs zUoASnRNziUm$~V+T^XDkE79L5)w3I;4|R!mp7+(B$}rip6sGHYRq2sA=c_*you_hT zoLE!!*sf1Jb*#eJ3xb;y&m9}AhR*Wrv4OGK!4rCgHDYAME)Z)>@PovBqj@LO+>yeu zmi$@q#<^~)W7uWEEs2zT+q^RqPa}KSerTNMh%NCnvVO6Jo&?rcoJWK7SoEy2A9_OB zlb+Nxe}5@1GQ}c88a(AL`CjPPXZCNck4b-Y@9cu0PwdC~m_K&s>Sdnsm3%)g_QIgC z{e7vJXUFP1Q7w9R%&)gp+?9BrrFDJAa~BudXZ_R@!!Bzdo*dgTeVS=L9Xmbt)8MpN z+>@}L7UOA8s`}~vrFJYmn%C3&m;SW1Iwv+iG4KAdQ{C%&N^F36^>jb#NwE`+>7gZm z##6eYX^yvtIWBf=?311cc8+-udCz;eav2^R6H6L>Ug~|c{r9Ez?Vj)D^S1ZAZ}*fm z|Apc~@5|&@UC>p&oEJOK{k_p=$NT))`LUyf=-oN-d89je57(7TT)63=B6QF1UiYZ( zaZl?m&t3e7{m$P#+v{!5`1+e?ef>3f)05{~?1x|X47lxj08W*VJ-_Y|PsdvwJml$J-|{@K2i-IM&7fZIW4Wh(E%U^pC`2~cD!?sC*dvd zRK;7}Lp?Zllm1Qg6u^mkIafMHxzH5Rz1@S2J8XX)e7_due{ONJG5KTJ8HF0(PK!y7ikxxcTeqCa!AyUL@isgJv(myl*zFj?bjzwlj@0m zcWEoSdcNPCiMFth-#>1DAKZT3xxf9oQ~TD(6BDDhvA=fWD2FipwO3Jl5VZzRIoJvO z4o&w{t-^sep?}nV=~Es0zCa)Ag4jQTq|s;87keksBO4lfJJDx}dP|4CKNow;efI~y zv-I7D$Nm-!*Ao~K+Yv;c9q$YE3H}m9pBKhnPx$BkEzk$IKgqTyYImCKTb|SMJez27 zp0s~jXaDy^d%N?vXACshcRgaSwMHBCu;&9M+o6^3YJ;K{Xo>kam` z*C(FpIwSCxGA&VswrHw7^R@QcrT(^awLN;VJ@;gL`2wxfmG=3U>jzw{wU3@xaE>GK z=-B(y`W~n1nH=NkW?eiN@ksY^{%^KWAHJ-E+pG6}j}9K9@c)I^!Rzw>m32y9)ft~O zV~PtW+-gu(c3Q_}UHktIUb_G4r0A-z=ZPZg6;TwdDXOQi_70{64z0^ z&ol7%$9vcO3-@1S)@A=B2WEZn*!D^_rO-Vf@#v4LF4b}ag%yb|)~zfzv^cuAp>N-E zmtZ9C;Yi$v5Cngl5QYn;yO;3FFw7DPgc_kh;bC=SEl3X4m^F#p=*Iz{VsYk3&nDcmnSD12A=f$+5OOX1&zSA;(cZwq^cBd2*< zfN-*KhVWTouyCO;TKJ++C|oPd5N;H16Ydcn5FQd96MiK8O!&3%JK>MQ8^S+?ScUui zgyV%%g|mfogrUOcg-eB7gdYp<2ra@#DBt!=Q`)PsYunvD6C~p$YCyd2K~Z9Xz)n_>k#~%csw%EN-7Xy31hlwFj=R z`;d4OqYdWJrF`ge+NYmYRXpANCl$J~Dw&bVTu9EXeeC`VL_hv@hS7;pFZmuj`LGLC zU+S+8TBSL2TEnfrx7D_WDPx16+pVo(PtLicHQZo$@uJqyPBhrVIDc?wtL-@mTJLc^ zIoB?34cA{41nZZW5381$&%_|;^FV8u#;wfdfaR@W8E;$B8ZPE#-x7~s=T`oOZPD|QACtYZ40Jz}3fE!uK?QCE-e8y7CypmmwO=nm&9ilb6LhRF1tc}KEgG8l}$Y1%i?o9yL~YT zo?tr1Oc0;9vyAJwkgswLPrFilp3fGJX19FjN14u9%;oJY<9aUSn_RG{j}=_SI?gWL6RzW0 zZsGQ_J@%oVxjS`_{iwhEv4(kUV+DKK-iDO#3A33pO@8uuF6NR7_1E^&$jxl#P6l65 zZ*4aj9M3%Nu$}yvss7+Ms!}>x$vnQrYW`t{?T0gGN+(y%l1~2U`aNOvr@_}5=lOG_ zo3$+96RhEjtY^v%d%{KzU^8E0=c{ekbN7V3c@=ZHjum{4bud_!< z5cI6s6AofICvYQcxSRFNy=hOlfvdQkFR*i|{JTYda7C^3vWYc(o%Kw;ReCvq%^W*# zPndFz^iQ>(@Al4>O zYq^cjF~yy#Z!(QX->%%bhS43YuW%tV7Ro1H$xY0;!*Y2Kdw8JwO^cKdn^?dW*6_?b ztuHTPBWu{qXXp@1f-INMGMBHhjPbiHmsM=wMs8xyyOj^evir0kIO(1}VJ3%j0;h5g zuUV|!<7#eX6SuSFUhPJO{Jl?oWbifhk%L&l3zzH(m$8EDxrkeN!u`_w6@Rg2oQExy zPy8&4IDxgC^L5MRQf}lrZs!(uu2fGS&|a}0b9p(-Sny5d%UZ7G3*5{$?&L`;tnYN~ zEC;geLFLOOE3GeAtX96P__pP8J-4&l!Y&!2qX{+KUtFZ$$>&+blb)1s zyoM`T&kdaUBlU&Pvhxl06YR}Tu2)|;h$YPDe9q%)Hn52=u!ToICEat?Qx0Sv$8!a% zxR#6gEZ1@iH}iGwWE;ERs6X%%?HI3OKIgHT0~@s`tmFpH=Qcjilp5Q`)9MT7GMmd; z#0{+FcCKXSXT)c3ZsW~NxykPMr{c4g*?f>i%->);;Wb>tg+G&SuH{a4epY_pti56; zJO5lfX0VpET*Dn~ihgetkBiye!*lm>Abb8oe(@q!aRL|fKCb2b=d}B5U@KF8sXeN- zT{DY^H7O?^&-v`l)jaiAmdgQb;RJTORsVqLtYn>whaAU*k?5vBmm+Rk}Ekqd1=Pey1JdS}tSvm(*+C#b!Q7 zf3^vZ*s5OgS>|#J%h>7n(#t+v!zONKkC!c%SF^`$`VGuv3n%cISL~;FY_odBF@Mm0 z^0rsC16;<`1(wGQzR5h+{ZW17D_q8Y+w9+1#AdE|O?|puy<-|*WHwt^#54b-UU1=` z)yHT!H*g=f@toJiU#K21jpfYdGc04jzgS-ua1HNf6IZf@X)Vh44!&VK;#lT$6{|V$ zP3h)SY-BT=`4*kZ4o3V{`LcjnT)+aZV-25YJ-4xur|%G-gXj->!6e4HkXd|!1#Dvt zFaMkPypD}*U^CyL)8IkgTjKL8%;Li=U?Xcd=WY4MrQE=E+{PD~a+mzwsh;p$=5P{A zxRCR?oU7TujeLgNIpXi~?QZjDI@5M3Z(hU-KEpb;uz}-u+i&nG?%-CY-XkBG!PGtC zvw#)s)h0f3*}!F??U@-tTj~oy;W)Yj%?Ne>x4)$Z}QqwVm z8=1%PC$@!iIP@gTWgZ(j?&P*`8<#TW>p}1*rm-Mqb11 zoZ3ryEz{mHov~Au7YDJ7qqvYu*}#XniA~(W+_?OHK)cC-?3dOS<};7gY~m8W&UH*Z zLw<86Te*-umfPQ)*%oGU91A#wHGGXL*>;w6v$D5zvzDE|p?))+Ja57QsAgNA{Y%Qoil z=5sBVn>n9l=UXmY2gzsl8Z4hVkUdr^4`#AthZavM7j6@Qg$aG1u0%;s_yaXo99IZXYG#&aWAa68wr^F#8D zy*WQiIdeJ7_!<}T*x}ZjZQR8EBh*i3Gj+9eGJ{i?$62i4ovh<3HgFp^aW{7`^+NH# zZNI_{4$jt|@Z^!&6W+%qT+4M_caePK7W(sFaO~%`C(LIS?`8ql=O{0Bxmdb6dz9t! zP43{RFIet(v}+v5r#PM)bJY`;kCxwT8zaA&c8UCE9aGk5kC?`t%;ph!@|!uVlZ``oh=P<45xQdil;Q=Ch48oIgi-b1R$J z=LXB=)$F!D2(D*37crOXSjN}5klp4=H!Io1wQS)LH;Vsb`M`9Z&s@%91&7sW$5_C1 zoXIVGlC6BW;%zDNrT-4w7tiDb7I6;$$a=oRMlN5Zp0J52Ps_(UZ6Cb3PC4=J zyVP%P;u3bg+xjxjEgZyFUd|rR$OjJMO6If6J>qjbm$07exPx1mu~__QJbV09`EwBG zGM~?}ntAt%&lOz9z1+go`^0A%du*_sa}b|lK3iDLBfcg+^SO>Ua|>6qmCv%r&$P=+ z0eh~+``V!%D)HHZwAZd8y{x{_py#+zM;Ihh?}DE+`)}Z z{kiFw!GZPSa}q1KfOUM54ea+#@ma<+V3bwG0eO8FiVcf(#?qC5^ zf1$oHgR7ax;~o^B*{tKuY~X#|#MRuvbxeIO2;N`@JFOI--C4nW*0Exhc9D(T%FYjI z7uknBe`&wNOb%Kt-#Ou7+c$sCdS-q{yT+%ujc2b>Uz_arn8p>%=4&kCzDF#VV;+@m z-p5T`#~pm0slU=*GlQv*TP~Mz4tsr1d(IKxx1Df2n>mjzsC53&{*%3)(4OE$Ck@}%;I7e z@I}@z^C|H;n~hw=X4cc?pg{xU{7+^v^(W$UbE9^NGoMz^*~*RVxj}o#Ja&6QIWnD( zFqb`lrkpu}b*y0n@8u>Q`>b+i27CTSelnBeIf3<@!!v&_-MoN}Y-Tez{z5r#wq5*M zIdjkp%9+`ll{06umh)cJj`Kw}vHS0oGtXq|zuTUe!CL0=Nmj6hb==1W*1aU%e2qJp z`XA!IXnSV{^O?tWtl+s@?Y}sIYxyiUb1QdpAG`n7e15OL#5l*ZoK^e|7c=c;@i~T@ zIf*+tm)*ChmmJ9FIiB5L5uaCZF}H9%gJ#e1uKh z!WMRWRe8T;I;OLXxvXaypW#Ao<{BRHNAX$77QW1G|Dj*DO?-ZVxm?N$9`T>@o!M+) zIXAI}JGh*wTeT}3$jsNY=L|WA$NtIo$qcUNjcn%gO!>Xzj_v9TpJp~M{5t#NM!icOShsT+9W>>Q(tqQ>-fE4 z28)=-nXF(v>-ZcSxW0#U^NJItn`P|rC+#sa+2bVX<|58vJ(uxuu4nvY&-RGMGiAH| zW6!-|8oM)_!&t;T*77N?X8I}8&CzUOIlKMY-{qOXZoT$~<9QvccpDdUHP`Y@Zf4f0 zd&8Z)i``#0zxdv8ASZG>f5mEMo+jPAitD+MTlpH>IP7%g^%wg!X7apGOE>db%h_DX zb=<&R+{UBRtapp{n`!(qv-u25xS8{rd6x3x3N|sPw{-JO_I$&6hO@H#m$7LTjAfzMnd9-sTX^!?5H zQc5m&gwmu!wV6%Vk{2A8`W*=E)acb*b(3 zZTZ38Tsn4dn9D6JW0!Gz!-dS`8a~6#96nw-a5}s1RKGZopS?`FS;i{9$;BLaxpZ?8 zH*-CAM&sH2@Aiir$hi`2?3l zH7OvzKQ}%`%8FD*6d9`xiV?WN`%x4Z4u!JvhA&)Il?mV4MoWK^Avs;^fCe!&i zb9qXsdc);h$Of+A$=8U_zHH%QcH8T6jcc`A+|Kblw@kUSjEgy!Yq^P=Iby1EkH)k6 zKK)S+WVdOyGoHseEZ{P>a6M0`u)Q#gZERxC(Efs%jDJOZuHhWM$Yq>VDLxl+D|<{A zpCi~ahy~9xldYV<+A8tc#AVE%AwKK5mFY9ZXBB%!S6N;sK65yMzu_DnTP;4%<9gD z&+}^47v`{ut=!4gw<_-=V!^ZXY^QwqtMZHMIfrHQtuK4tW_>wifqKqfx2tDIx}KBi zZ0308E)tLH>cnH(J(kD1do7PIuzTm2^9Yv5*IC3aOQe&FxSDIYkx|3oa9#5BINLb`e8gVN2JtmF6Dz#~>#Z}#90)-u&?_N$n|b#R`B_6S#Ne< zWxY9qn|bU*%8Spj`!VLbT6@4|j^{<+)}C+;7xVOo#peocj>dmSeCB^wzNN;3-jB#P zWj+anjSjp>hB?@z{p>zTvnSjOOS?I3$_4PRvwmwrz>$f~vK z=dtpO>CF1Rc9c)BjORTeK6i2rcdwIgEclUhvv9rjJ}wsA&4FxYK0ocmmkdFsZT2}4r2v>$T~K$ zfvL|(H&?QaPq60+>fKMZf6U_q{(v=nmG%5P8`*h-bn_$zpNa*SFwQz=G4*HaDHpJo ztGSXt;s*YT+t}$@^|VJUxR7alhB<6z3E$>?9{zLd%^}>#>$#n~+0A1qdTdl){0wtB zlx3{sLVk~HIN%r7nB+HR z76t@8Jd>yGg!r7(4fh1(&inCo_jjSi;|NKJ))gzOj}~{2E*M zZFchjjhC6uQ(utpT+Rw^VjX+@M!sQ(Vm!Ze+vnq?-jVDeu#5H_YIz%;S@+;2zd-_J2q> z*KjlUv6ZP?rTf#`TW0b_PT+RV;VHkDZeGRpe3{L>>t*Rqv%N8mPcWN*VG+|`QC?ib z)tuNYzgfu^*0S3fwqvGqH*-1r57Nzg*0Ia0(#>*iVe@P1$(g2SoT-1ZeR2+q_!{SP z)OO{}^)1$yz2C6Dyqi7GiUsd5izRQ#XKv;~4traB!WG=i?yc%IYZ&jXJzy5=S->v4 z)NA%;Jx8&TZQRZ?cB_|XtKaO+GUo6;mavfv`6}12SDWQ>CtI1lSNZgb1=ny8pJYC} z?6W;GolDp$R6ZQYtsD~D7p8nhzlv$>)@fgu&8t|%8Heo)=W`iXvs22xa3gzgJ6E$? zy7f7HUzpA&=JKyc?h7ke(Rp83$IWcuX-Dk~H*qX?u$HNPl~0#_;UH!+pO>?mv$%vy zxQ-8V3)i!iTaK3Qe#+w*>1F|oSjk$hRY6HB;*PqBN3{_2VQ!Ysbd0-k@;zOaU6tmj-dvW44t!pZWxzk0wl z-p3qnVhPhuk>7l&m;7eIsnX2}r%5*leOi7EP#>7VoV0ym9{JPtTZd@f-fA7KMO)mwgZF;fP{f+NqCZr;gk_Uj|Rnaf(1aU~aX z1J`mJH#6m2^_6M-?q{qw`=wiNW^q2(ay6gjMqbc&U)aKGb~{hMjp_Uwb9rjNePJ03 zxR7(XhP^*)y*Zyd_ySYU*AL3D-WB`o4P9zAehxRs;W#%lH)Y`bJ8w{QY)K39EV6YIH~jm$i6U)anmXd?|$ z&X;c-!)(rB5uai$w{j)t4U%u%#O>V2&KJnv!Rk4$Vh%eGk#8K!g{;G4|g+Z@l+GWUg5oW#Yf;ac_?s=jbCTlszV92yJ$$V{dUv)&xRIc#A)hkZ_c zVHvma5vB~2FHGaiEa~QImT))cGkv)F!c1=DB5r3RJAY0-us2U1AwDl<39sjTev7NQ zi5ofOLh)I|&RP2V?9E=;;`54&zT)`oXs|_WX}twpP6jP z6Q3b#7{64$a}pa_!)EpwE8nxVH%#Lr%;uEKtv5GvA>ZN}_WYvy!tVL%3nw#mq;{4W ze3p6K#tJU_lJ(}B6QrAYS4uZ?u99wkjq!`L&&=X(7O=-e>E<(B$=Q=Fms{Dw%|+UW z&&PsK7h5i~na6po;7ZnU%oO>}GH&L>S6eRolv>{$@tDn?*Qh5P%lWLkR(r_Qsp>bE zmD?^a)=p1TKX}DgERO>!l`ku%D^4eyGM%q6mu)QL(bvgeUd0BM za}$?v2OnnY7o@j(UpSCO9M5iZv_tI2C489cxRG1L!NsiSAK1tq^Q4E6tj3E3%Hy$T+ezw&qg-0nP)yA z{uQy{%Zzh2v$%u>e3&&{&w6%RE6!^Yj_vyxsr|i0h{?8 zg97!8aqd{DJ!j^(Z1238wfr?#@`zQoTlU~Kevv7KvEY8DaXqtH^^o{XSuH-l$CZ4G z8+gLE#b-WKCdGoOOk)kRxq?Mp%UY&9Y`f=7Ze%03v)gxU_mk~^*_&<5W%o7q4=mt9 zHgFAhuqhhp*=~#5~Sr1(&gokFbF|xrt}56Q9>GwN!iZ zL+u?GKdHX)an^7H>)GW;)|;PWGiw-JBV9jMUi|%2mdm`K$ZyW$VqVv%o#k`f%HV1H zHI8NcTJ?ijY-9nmo{?Xy<4UgL2CnBe=5J6>%Cu+f&85uYn=Ij$pQ$I&Z?0j=v+|oK zu!ZBkOtjFWh9kSdNYS5T*3L= z#?|b!Nql~q+j%}aejrcr{8+jGCa}GOCmyXTqDKBOo7qfzovyM~$U47w=+`{MB%I)k?CI4PjPx)!) zvw+o{%O!k>>-a-%VajjC=jrS*L%DJguVg+~vzpIx3IED@m}E69@4J z%x9z7cKf?)}%Nj0YJ%7ta{+Z3p{15F*wftrp z7c!gAu!!4P%VW0MUO1B*`4evEy}wuAXQ@{&%XgmlihO4dEBFK#^G{sMHg0C>AGC|i zWB1vPgE)}$Ii5>d#jID=cb0HH7ji3~`=fMUZ@b$j-OOP&uVE4Au$GIslDoNq-Tu>d z&T6L2v0XBa?=YL4UlX5ItmOk-$p&uV_CMLqS+-qy-JpK|S^L5!7Vu@(u-ohMo4we` z1#IT`7|c~47-#nu^_)vs#rij_FMq-H+{&%&^H=G;Q9H{FKCwgn;47@=TU^4dw=9nv z*uv7cb#A9Bo{NW^~+@yVE8lT#&TzSME<;vcy<1jYx zVQ%6p+`)crmV2}M$3grv^SOuBOy4WL9Km&*&Mmx^tvq6%{Jlm0frEGp^La0;*(H>2 z4&-{)v6)?iFifd+ewAr_h1nb!3*Bd}UEq99;A%e4jm+v4hTHi#JKySj%3)#Ho2!_^ zbu8hhQ^e=FT+N5s#EFM{o)#O~ZJzVaM}%QIM;{rw-&%S*hwitwy>lVI&IVq0ROo(d z<-wi&1-pM$`_LtHzqR$}c#dHeE4i4%o%V|9{Bm#ggLSOpBV5d_T*pp*)DQMyD>K>SF6SMY#TQw?Zl96g?8kZz zNViDfh|jQ=Tey<@xPeppDKE}v=X@RC@)^i zgu_fw|nqGQPuwJZpgX9Lgq^vn3kOZue?G&JmvvF_-^f z8IKw$K6{>L`{3Q&#Gi5p2b~{=srTvMFoWBe$6kZf7Z$OOPqKkKxrsvti_d$Q`Ze{F z89a7~_$*@uSFw&QY~V!~h|e3jgX@^O#QudD9GR)y`9)UoVJ_w-uH~Si%AHrRmGjx- ze*G2>;_J+3*J0`_dvOVKxQ>$sk8b1M(OP<+m2e3|_Rv-pW@^_DlYmOtl8UNTa> zKpH76Tin6{*2we5ev@ARbCv)JbsT={5u!(+|icH&vP@s&sP41J?dk@e{v8{7$d)# z&T5Y45>Dhg)^Q6TVJlx@k8fJvOT_0H%;){A<|p#RXJ4-47;a%Xd#uoJ;vhc4d_K== zzR8X3d8zH1x$OL)c8<$Ozj`v%M5>vJuKC)HREf5V0Rx0{p)3vN~(+{+f;af{`xa$Hzzd3>9> zJZheLz<0Qi=gb$M=iMegi`c@f1>!%X{<1e0GKUYagpY7OpWS_>vZ8Kj<`sI{EWu05#HM8|4Qfn@gok5Z!-90 z<3A{Vi}AnukoeuK_qq=mpKknvA2L4I_(jGadvN+LK9IgL<7Xa znmBRdniD4~n>cCW#EBCZDk@G?)HP9Yq2k0viH1r_MoNo(lcABWMMg%8jJJ{THZn9a zGBQ*$@=cSsdrdy~=Q)RSt{0u>@%zuW+wJ}K>~()!&+Bs;pt`)2Oo*st$q zuT8yhE4pvyvnIdBZ__Az1^g=}kKXB(k0kNTFv<<%Hm+Mw}RjOWGSS`0GbHSiP6 z`YZkV3*cW4;T3T4Z?joGda-RlVp0zug=d@m3g3P^d?JMR!KdLl^o1ASq@(R568mHD zj>m?}ym$gCBmtzM139@)dslWAIG)F(xnfd2BxKyTDI3xiiGQYxy|_&kEtO19{H|ex}*}S|>ghzhw}=OX1gW z94jyO=c=(b<8FC)Z|6J{VeztT+4w%_*)^o5p7kA9WTF!pGrFaBYkve}wY@Tz?-`~M*NANyMUS@8J>>Fq205MJqW&3*%X zL5Tg158?eGJd-w$(*I)rcdQ3u9Yy{aE@Zv2C+fu^mBr<=Df?ztnQ{7plZRp_i#QI! zKT96Qwi$M0-SQbb9qoK9#m>biOwT-I+KJxl)l&oi9lR%jKjZNhc-z5xe{{n;;99;7 zhwvQgoTMEGvj$(y{1yA>*?v5V?oDcp-E~0HoAZ_xM}M#^lJtOm9+kFd661`Oj?b|v zqYQ12KIOzn##%`V?;R?>iJdC!2>)-6V?Ul_$62o0Yt3eK@675R({(-Qno?bRck8+_ zbjv^P>aGpeiT`OIBR(fi&m>{I=>Gjp6z}-+p*Jd+VsrE1Ut@!gV^c8&U5e!@i+EM z!;XD^N;)fsDbbCg`^TE;nE@FCKQ(mX_fPyWkhXyLd(WI!=i(LcAHjfyUMZZO z$sta$)rK8u*O4Eyb<(dB*!jx^(=%U9@Oy{HQ@C&(A>Xt)DjPngfZnAbr|L`@69}T^EhS&Nkw(>As|UV~q#gH9zU6^OqGTy*H0x zeI4UFX`grWsnDbT|D@5sV&tn)CW(C`Hx!5=ud4t3JErQ9vj{?+2S-PVh}qfMUYKlFaP!~5-e?`T4fPLjG7$kA0C zMT9;PlWUHN z8yqfkNH?2HQ}7&_(+;>XVGgBnwot~~D7yIX-=BGvb3p80TYcT^`Rvk zg&zx^d!(Ih_;dukj^o&`4FBa^VO&QHVrMJ5e-aPRkEAy|KPTa3G3{my>nj{{qg)ETqj7p&o=y!xi;pXLrSsp%%S>RRs-JyKPSNte?8g)|7QsA zhG!h6U-J#am%+95(X`8#ne|_3hrwRIrE?*aNBJNw{gFc)*TFkDj$QZ#KcA#O9`Wsz zW9J3MPm8iO*cpMJCw4w%*oitD6ryQGbI{@YW;Tgt{}#Wl=y_hh^;1ti8twXO9KIaB z8XI1}*Z6)Wb75BkKf&bg9*@Ou7V+8)xBa}$^uhPD08KL*+s}(ljqm3c>Uklgo(61; z%+~WM(}rJ9Cz^xOXX9~0U_6GYCm)U0o=I$MfZOf)scFNnCykiZ&DQfxQ{%TM|8T|& znq$qlUGBtH=ABY(?15h;YoUt`8=rI6*%vtLA<@>O{ooU>cCD_J`J$V8SAA07(;0>r zz!#Z*UEufkG<*$wiOHQUIVbL{pj~W3z{8h?3_B=)Hr=0W3dNK51IjvW5*gA8H>+3ZMI+&_*4F= zeKY5CZ2BBM(~nE)C-^2U8f_fq!0!y<#qb+L_!jt;A-oBGp~9uD9rW8e__2~t=UnH< z%vtMyQlf968^+E#i}uZYk>iB6Ugx(pj;0;W>2ow+KqCE@aRh5hxYX;}_`F{}58e+a zZGCR+8I{4GgMZrOoBZ;%@ICOLIa=y$roV(g%5m(bD!;ALuT8$4KJ4Tk8GH}GqU;#_ zY@hUbH{HIk?bNk( zvEJ4`mk0T3VS5bTNcpgFpZqE2khz+ubMsAXWWgura`DrcJBrX)pWZifB6=@}s+@L6 zdn<_fN_aoVu|Hq!$3*Nr>$kTVJ1?U<+O%Wb=i3GU6Fl4GS2*S6JTgE%Z^HLWJ$D=R zxaXYc+kRdAndiu}nfkp83qA}N|GhT3bAZK9`S20Ab{-H-h1mGazL_^U_H0O-?NQ_8 zV*{E;m+YHaYHBX?{p^5uz)vzcHm*h@ZSJLyd*L6Id9kh1kL}sB*S^vB#2T{56t*5a zIyip9(->5paAdx}?zz+Arxoxg;0-2s<^g*Ih>cP-3$lW9R&3O`{5PfziOJ9WHn*br z5jKMQS?cJ4|3cwX#|V57uJw)Bh#(v|Cb+G_E%*x|JRjZMm}}1y`5Qav{g|9#C#l3FA3gw2IJZWfy+GmR@HqT*vpjh| zyT+)4XROrwqz!JtgVq=pHhbZR!MD$`A2sg3j-jbW6EvPBUU3XyPVd>~xSI#E%RrTN}dj;05rYu`lJzK7`l8&!BwJc#!g~@O5x4 z_j=$r!?oNSfjh9KHcfp z?_Ois?T7!G^8Cl=Wq$wm00!Y~3;W!;o%@iG9hiW9*j{Vxt1hC&+zoo=8fyCwXa0CH#_A`({|W_`JmTp+S6rYkS`v z@GAI^%<}F{C$ZlTkDW4SY+mo%ABShamz(8f@xZ^Od@?7OW$>U_3eSQsf^RU(N1cbe zgcrh#;o5a$C43D$C|4}X*U^{xa686Fm-~HX#JCe1>(FR19)O>br~5DgUkPW~?e~Fm z8EwZPg@sfOT#G?A+=2(SL1It@Uj)};T=gOL8(sTaj62~Qu&>2<0A3JM{{(y^Tx(wn zC-${)t^RCyO-TJk@M}WquY%Wx)ZYlN3aP&n{%A=31Mnt=%N#dG|8Iw1$#Lvg7yCIT z=eZ00v5>|hyceA|@2-GPz_od|1fFqf@O6;nNi}>qJg6VVPsxK!xb5e$x}QDRxg4G5 z=Lq~hxaMaZ{v15$ddET`#;JuAPHNT^_WrVPSHbieIKYq2O;we%{XsP-y(m^3S8y=^A&3+O59fe!ce)#BI|0SQC+aC5D+=OO9NDR8*A7Fza;^%|= zoRIWIKm9$Q@=tLb`}iimKc${FC+{rSB)Ud)r;2XxMZV5hH)n7%dK`_q{(-l`*J8sQ zA94{a@h*e!fq&EF(PrBT;kEGm)p|Tz;mhG#ZuhvHQ>S0Qu|67s=Te?!kk5_%$2dGM z#C`^gkuaX;@{3IS(PFQCW$>G^|JMZms>f^LC$G`Zr>*c@cu@PLuXm9PC&71d99voH z_o4Ll<90Q6PK{xw4_#2+ik&!icEcCT_}zD5f}Nx^|2jQ8hwINX^xP{Tp55>g@n=t> z9rsZ@+n;LejG?PS=jBb**}xKi8nKg8;9lSCm}AGdzUjeED>`i~3}L4oZu_%ljvaTM zEO{8?Cea`|&7Tb7mvN@+&-^)d41bES(}3<^vt33#Rqz`4H71Wb6Rr5s2;T$O)>obI zUbxKFUfhg%dI0_cTpOkQ}oe^|e%$u;2b(S0RopbCMG4I9BgXk8TJ{#{`jKc3$xU@O)S^5P2o>^YT z&zt`E$wYH@pV;_!xXW<%76A z{>h7CxPAU!WxT^+oWEs^WfIGZ&+VIu$UKp0=)AqQ=!8T~>MUKs+_f%vZ6&t0U~4`6 zH%Zv~`}zKyvwn8JHfi_lzFj-ECePvT{!-4%dw0QV@lzi>XZ^mJFPmKY@QZ#Qj-z=9 zO|hwQ_o>82GK;|H;ipCU$Lt=WJkxNT|4c(Rn$cptpNrsc!L@#>a(PfcNX#1H6O<3) z(od2H@4)ST`oji4W=21WogwT*Hw53y5ewbh7c+Dh^Pew)c9p6+uuVj~yL zchTgU8soW~V&c6AZu@#_u&)+n>#+0k`TXr?(~i_-JOk8@W^0K){`%k*aBcjJ!LNsN z`Qx|Oy`N&|Kfc}!-wBR=`#e9c;)kzQ68$B#WPR!5iSeH@VbfT$c=^S+y}Z-=)oy7{3N?_s?&O z{Wcr9B)W8Bcl(8|?#ID8@wt#hxW82Iqe^%^TruJuy^ybFGZX+P?`KqYM}BhIOpy64Sj&hgt3aNcaf))-orXu{5y>3Q56LKAc@5& zrSP}lLFZd3UjsklGJQ?d0#Ao)Yu#@6VmM2DKMuxT=`cJ8ewfLfN9OIhd>Xzagr{?1 zoB@~XV=vCewQ(+BRY>_#xYV!tU*ne7cniEBq)-U#B9ZUI6XupJ{+P*y_lMM93V$c0{u+4J<$C=s@MGXw{oU|2@Sy&+r2X(* zc#qkB83)FDDseP}Xcn0o;~BY()A@T`Av_O0pm6b_4E_TAT+_bz;I0RxpX$);MWbCa zw!!}f&o*s1m&$e?_rl+WYk4#ZkHfWb8p)@hLbwGVRk(#u`S6$EcW~^D6MGHetQMt> z6=;@S5&SHX1+Rw}!aKMY@N5vLq(|fmfN{vr9cTtN>-(tv@E75=XgwRz8@=-5@TFJj zaY|mza~<%?g!0bDn$({KuZ3Te!2N6YLiqD=Ete|ceej@s75feFXG6+&z`NnveA*8m zhd-C#pL3H>?2p5DR0hwNvd)t{XojCF*JF#$^3PGy538Mi5M36!o@?Ff@{B}X)VMA$ zU4ypDc`x4UkDL7YqXxbf&Z*h&FY1zIuK3#mFNc?#+_*;R%ICQRxXf>{mbJdW#vC_- zjhE4AF^j|JUl+VCkhZ1~vvm0UD0Q4-)FCmMp6BIO!5NI<>-A^#D&UK6*f+Byp)JnK ztoqs^CX#)#K0zuY+rG=!8EI!Uy2(a4ilK@Q2_u$IrQ2{hUnUWZDha#%MPD zsSsWSm-;!i`u2@ALlt~aNcl#$e*WW^H_qvufY+4r7DWc&L-22#<>{m7*Zek4qA9si zfA1o7EzdW@wKaVX{2_QyA7xT+Au;ZNr^=W)_l(3`iTZmfHP~soNzauQcn^Gs*_Nn3 zX1d{vZw~fDa(WoPB7{%F*TS`2Nk5DA13YNVSlG{nx4>7^PH%pb{h}Pdjb&(d*93p} zLTuE+5oeIVendxJwJ`}a|3)UJm~zHMUgi8YYV(_9(naizAiJnN9SEb zCDq7`Y@r>(*5K{o&znx8`Pv=9{Vz7sKgXO5Poh4rE*VSz_Qz5lnyczU?tj7WgP(&5 z&qmaL$EgX@~cR)X@ij_Cx9z zM-%&sem$MMo@ckRx^Rjd6i=7F?TOGvSxOwcIFxm%z1kr>qOhiT4ni zoziDtI@#|t$szY1iv?@K*82Ox=jvT(ZbhT5QHS97!L>PR3O)qa=BTvu*tdbdi9cR$ ziJ!*%D!FKyz8bv#l=c=A^PO<}+VMwxC2lrHv1494)?ugaetjL>2JeLLFnuxB!M*T> z4><2odUY7@4v)eM;18Q~+&cMgRZ_joadL&RU*u-ijLUFy)qVozbd4>r(3SpgjfgqXzyK<=2|NI@>$;{M-Uh{bumB zlK9z$pG)D#5U<$NC-{EK9!$D3b}V$G*vWo$&O3b)6KATAh$eOs?**XYYZLzXabjOC zmhAjTv-7ciGdCjf&$HKf=Zix4UU*pocRuoJ@mnQ)dE36kZ+M9x&ZiFSHaDWFK%@0d zJAHRK{3Ful|H(;cb9CA{??`MU4+_4uZ{~51W8H>M>T7Xy(xy1|?Ll{++3uvf?cfQ| zU~@g^+rjteh3CO@;Z+>_F>xjq;bri8xORT1g+CO+Tj3q>pfMx%d*F}2*O>Ji`?(|V zo{;i!_*3wc%<{x&_8K$e^O49eL(1pDyW!i+@=<5w%x*t?VS8{63$KM|!(|QT#m{|~ z+v2BY`ey~ajN{n;WqyB0oxBnoz1XNiqs3?xehK_^v|b&~qX~A-MKFFl{CJaZ_H!wn z7~KmWjN!v=h7U5%eirldA3H0*yKja|cfX$KYMV<=mSd+J{u7R48x1>>lTZ5fHK3b9 z*C@JE=ICyBbQY|e`bwXe^BjcOGR`R@Xd2LP>1+7p@4v<2yW!fLpTXj82+k7PDDQup zBo99Sd-~csgJR`qwsq=psiA+`;dWfEIL`0mIdN%2m;0m}m$T>SjJOO^Un@G6KEBU$ z;xdJ10F4%xv`e_Ig`aBLFz#clfTusD$E5_m4o)?RJ{W7`8Z`B2v~^bt{2BP2rj4k) zS>W6c?uMs*U%zf1hA)E$<)ie=G`tiZv>uUsO~v^_xZN-R%NyCo^_!Wmx#&jF+4=g% zIXa_XDlcWN*fr-H(9$o?P!FC&)lMbzc_aDhMnleGnUc@ICOWIQDEf z`C`A-DD4;YY)d;@HdEQfH14 z-U`nO;XUwU;M)3n1ilKs#=;zYo40uElu_UK3J2R>^bb@Fk{y#vGpsZ-O6fa{KNT=Ldc(fIkeU z8ozyW=HE&*ucEor)EMiz2KXt@1;@amOb7fpc-Z}#0W`Ou(dMlQ_+9XmO&^SBT2ol` zw1)VQ4ZjZ_cCIQ$v*TyM&#g%=Zh=1!*Vd&?@JYC~F6|)5qi}m&de>3vx^xg-b+5ZF zy>^bySeHhw;a)4cuu2HVQT#aC@WX$vZ=O6MC3V$e z>+wE)-?|n4B0MN=7Ug^3y>KqU{C<MY5Ic91KzxW?$3EgO=gbM%kS%)Q z7W@o&kPpK1;U_BGf|tXy;0ZoDbECaGEjH@WT#hDaT`9aBUJlppA@sqk;l(k;<{Em9 zzdtjMrtQD?&9u!kG)WKJi)^VQnTgf<^}d-WIQDErzh!r9CO=uk@d>!h6R{gUm6%`d zo{I%5#?H&=e#5b6NBZPvPL4=j)oAJl_RU;wYNAdO3U7w*fd`ET;k#TOG~Zb8A^0fe z6V?slgZoUI*qBCh%5Q@ERcxf+!2SXJzc@~4$JhOKA6?`5KL}q3-;uzb8!O`9B)kiLUIKUaH0}0p zZ;6@IYEjXm8i_~r1WCO6gs zgYYW&5hg#+cHdrWOu{$AH<;WwSEt^{bG;$oMS(l?#~(a+>$h3&aW1_A#?*n?mH6G+*zER zTa0%kh&zju1?Pc?P_;UDelN*2Irj&U1!>454sxf?U zd>xY$kmOARcAEd7*V6&-fd3$&o(?ZB`{ApG^>IB8-wfBrb@ENDYv8Aw_Kk6!1>X(V z#&se5S-3W?E8$)6m2>P@&bA-^dHl81eO)rM(4Pwfu1nHxC02jb=ZY2Z5qO~)>pT2dm%w8q`ZZQHd_KI&s^NR`{I>+_~Vi_-z+_2>xm2e{arau1Y#oW`3u?heh*RaK4C*Y50+U-Z#UvkYFQv zmEVqxZJe*r1oWqR+R%?LIyG zzj;+nF>wTL1Mdp9F)~8wU=irOYcp2Bth45bZVJ0`8KdOZ9h6k-%vM5tWe@J<| zEswFvpFLLx-bXmOK@$yQUf1_FERZy_MBVbZ@{%Ucf+&)q3_8J!`H*L^3(8U z_-SVS#(E~5&4Z`m+W9aS{y1FgpHg@WTst4uz#HJ&`LG54O?c3JA$inA|8>CoWL^FD z6n}g;_w#=+yRII^PQgE&=kC2R6m>Q+WIRObSa-sM=6DNi!LugA=ZXT+ysNL>E8uzX zBP0B8b{xC=o8m)#ox_9r!h*NMH&LD~8^64>k7A!p#6~}wb~LA(8e{!F4)23Y>^vWg z>+)m*&<{V<m{3)EUM`Dd1_2cb5BOjH=#_Y9L3APseZ}2ss_*xB5for+b z4F7<-G`R!wy~5MC^LJ|C-!W}OTkXYx z#c#RrY54d&{xRF9vIcooGS69ql%eVQH|v7~3{BGI2h7H)7M{G1cUO{3{=U745g%IN z6Z`p_9#NA!FA)pxfe+6F&r#CPLv>se!4IZ{B-UEx0yj zir}O0qs;Qg{roEU>u{|P8sS55?VQmG?}MLX+Be=O9)Q0KKh@;Mb9)o;gXhQXzjNWm zDC*n*l|D*g!l;C6eV7g33O~fOZ#*wh1m6t*q{*GFLwjDVf?p0_WODbJDyhE_UJloC zxYMowOtZYPcQ^oVq5N8tJ6oUjUi%pR{~VlCKi|1MAYndm!(jWF_9dPzJTM;kT(0=J z0-gca&SxbdJd^TO^n;W~7U55AC;D-#J>+aZS`pMLepr;poMB=6SpXk{YkPzh@M-u;v;1{_ zJL};Kl6Cv-@N~FlzYm@b*T&r#d>K3_2GYLRmpQ+~wYTiQ?w-vQU!Aeu%rKll($7n%_?zd-NhqQv5dek_L2eDNUN*D3h*aLw1W zdl;keFkf@gJRG8tn3kd0gGS4nTKLC48c+N?V(y3fqdrzSDmf36LIQ4d>>Fv(=Dmf45?J~d4q%8XaN8*+T zfBMjP;ImwkM8Vnd?oyxg!2A-InD4Z;M#g&7knE$C?73s4#BJ7@0s=`PH#Ff7ayk4)?~{ptYprMhpEV z{FY?;<-L8rFU~$sMKbkR==!mfzcfDc3df$m(&k?~Z5GW0n!RYk;*$CRYn5Z;>b_YH zJT*J`8c6CWhR=r+-b6pP`?0S^vlY!kQ)Aoq~+48SgU30%8Y9D-jRVt)!= z20zoZZ(K*DJ;?L4@SyX9^yvzC8$9Sb(1Mr1AA*;e^9Fs9wBDXN>@{-@nir4LW6%Qc zg$Knz>ga}lAO3BQ6Z-pWPMjrohUo8Q%iQzWZ~re*XPn1k&5Rdx1*R?I+xeOBCin>^ zckeA){FX;Ncf!x(ICi5^k8vGRiH$)t8%!IdfX4}Np2LwH!TnL z(}Hh-7s0PL%g@=%Y)11C8ZG~J!FR!LGHtjod5aH2@Pj@Z?1S(rcs#_%w1+s~hxlk= zBNt6Bb%eE}49#{l)#$w(b^oBI_)!agImFLact2e0(;oOsN_h+WBk(@B=A&pL4|DCg zLf43&nP^JU1f4U57r-x4xCO6(Z-Sr8u@?uKn^*gDa|4>YLo`xPCz>ua*P3>WX8;D^ z`{3FbnSlQT9(1k|`zbA)BjDP+m$TJPw)hHo2mB(F8`oVW@YmrN zCh+xMJFDSGoD{s*D|1mJ{geU!J;$+CQ@#(*Jn>60B<<+I&I^hi;Un;Y5FUrW2tN(2 z*G}UeSjHpd1AMi~oyQRD`t#r)%Z;n|$jabR_!6_cagVPSo(ws}jWPT%Oy>9KFHcd;sX%_IGhA#s9#hvV3f-}UXt z7&e~KEkIXvimQ86*Hxi=0o`7)cbB1)XLM)}X8-Vpq@6z31yB4{AKWX|8USu1g_iC8xW(OkKAE-I{z?w?NlP9^|Zcb<_Xy<2T2@ zdUT7{xVqPMT_?JfGhE$(t{X!4{;Y0yu+EY`_$JTC6~t#=;MmI%>DwMB#&TV0kt6q= z$+e!uxYn@sxqFiu*~CrCb=G#GEkfJ5*417SuB}1)!db3%UAVR#?RcT9Jwex6_%KYH z=C5Ne$6vEeNhdjeN06Y=jwLqvGV}jw)22)XBT#MoTu9vz|L;CZKp!F6UWXI=j(RT zh~cYn+s;bePQhc$4;RE|4m4vO{lHEhiBB1Jc5jT&93i=rY}k=Ff5hnziBBVTIxf`j zJ9NUk;M)0n;6wOC2p2zN#6#?l#5lg;pNaYKYyVx66>Y3(%5*M`yojlkax;c@sRT#IMMw<3{$ z!f!S0yElp~e#?UwUW|Wczte`K48Kpy(X78jKR?yM^WkAO+R?1NRKFhRgIBPi ze#hW9D_r^`PF^&?xqTLi?fi!yOX&~ee4o9OXL8WpVb)`ON4^MtX1VT175qZ@iDr4@ z8Qw;C6`WgEz7OsOnB+qz{CDtEO>W%Z9Dq;4?=-pbj_Cw^!)5yVHie7n8u+G!^8S6W zZ1~gg<4o?p?<4*d!F%CaKUBeAf(KpG+v6X;2fo3yZ(JjH!l&SenB2JkIspGWTpKSF z@OR;we<|(s|K;(-cN3zQ+5=Mj%Z3-hwfGmouZAx){d2F;Eq<$lm%%SHx#XDf4U{G{ zkD$@^7Q5ij!;4KDQUCp%LHJ(y=_aQRnSP`Vlkmf?h^x;5rLxF70)D7j-hB>8%IClj zh6lA#criQ**J88Wx>XI-uPSqlH@HF}(C;NORzVESo1uigUh zg&$^e<9XU{`0fzY2?{La%?aPJ#h4Nbel*0c2*UHzx$3y&Uf$t6B-SF78 z!Twv)ez$zsUO^m9J~lLs#L@aL?-Qb7*!bhoeGX1|KK$USU_XSH!{@=ZIMl%x!nHWI z!IPEp7WRALN5HkcCGlYl%~~|M9D8$$@my5w3GT1KwewOYd_6p9Jty`H;FWMKmnz_! z;7iQ!*}X)*tW0kXe$aPYZzoy=WosKPfJwx!PL--WD2Oi{yv?J|Fu8Y5*+g|}+9>PoDd2r2sHM}FF zd^7y%5WWlE6Jmb|p0!o?e+s@FuKAbt6wft;lwSew2q|9zPrFgCzZ$*>uGQZR|4K;t zUGV0R@YXqI#A<&?1pQ3-E@pJ{UUp1Z|w4e;mTd|AXV@9YnMOfpI|ooITu#b?Gi z_Ue#x ztOz@CSLgMQk&jjI#yi6OZ9=o7F5KT;Xx84T`#XTYxp3RxmAb!i?DV?2Ab&G{$UMD0 z+~0gO>+TBow*t*U^}4^c^idoew!h7<2F6!%w;f$QcCL+*yW0$%v(H{C`|P3{ki6L8 z>aNmtQ|MB@?CMH%T?TO~zQ@(A4%W#WP_&!#=Dor93oUpBc6P&MZzQ(Bu;cFG$yjSZ zGl=FD(Y(X|pWOrT_8_A6{Z9+tLw&d37oV}rIfMBiX`z1(8b!11tMQq;(0jI`&IhZ+ z=g5z^4u)&j9u|Bggy+Lwg=^O~wpsrb{yb9$pMW1_a^pI_4gL=N7?T_OIlb`d zkn*GO_u)bFnB>YdxfyMWJKuG>ci4}S%&W#TS6SUWON6e<^dsstMB-Qo-v&RytZ zCA=|&H^3i-FEq=$dxv7b1KtE*V{-Rh35(zQ;ZMW&m|WVh%a8R0n&SKQ{o9lubDaq< zH*Fa27-hpBh2Lg!sl&LIE=Kbn8m%2$;BSWTCin>aII|98kGTu}7F^4>LHHzmvsvE# zmYv0Klkk-fgg-ZyLY#J^xe|Ts?w1pD!gy{h?^&(~(S0tVu6#S-(r0DxMGpqg2f}ON zr^A<<<&8B%EBrk8i6%Gh7xch4!@pqisFQSJe+1qgVm}Ul0e((G`2x@XjGxe#aIG)$ z;IU@?IrB1jI$Y*EZ|*VXx@zeQ_${)IKIZqn#+&Psu8^5b+R}lo?O)UP#rxq;!Hdnh zjD7KO_-k-&Up%=d64?(wFQI&)7mF+fv%X8534NAy=- zjEdlgwZ!djFnawR{l3Sm;7`Hx%<{(Ge!e zQyc7RapACN=&TS+=SEG;E+~TJq__}YzXFksQ#Pg3nNJ^5GiPHyL z(Bytok6{yh94>o6o{glB+9!0WL-Jtc(YW)s|6(us8sl&O4Pj&1V|uPm!7aFUPEGq6 z@8ZIXsL%7k-H4MsSpnY&4;pK7PAwwNJK#Gxj$QRXz75I8W;+xS3s#GrNSnTQE1EVm z$A)OcpFZ&ijW$n?!K>hhqxIV3JdS3Mi&!sfGx!T8kN({2vrPDcZ|Qkm0Dl~=2{;M^TL?LPqCk~578dC|5l%8 zU-H)d8}FjYLbLdB&Z|-WG3$e9>{Yju+eK(9I^r|DN#$$YKg=WjR0TityTNND3*HFd z2w%^!Sx3}4rP_Vfg{DriA$1JG?^n15pM>v(pU-hZ9cTJ^nYM@f)F0wUE}FPfkN8mv z|JW0HTWjEp;9-8WqFImT+_}E4c6^n3dePj9Mq6)VnO*P+c*6abInRX-qdERbeGhsXz6ySb>4WhsMfxxK z-gpSlgoEJ*L>`N-vkfyaRALA8ZC|!@L#|+ zA5;FDZxF&YAG6^vz%?I>;BUjjeB6R&ZI|w26Z~Yj=3^K9Sh(inAUq$g`8Wx`3?AlV z8VkW5G+G>2z`qaId@O-~3$FQC4c`sdd~AmQ0UqXKH=5-?(ATuX@MGXw8>ZnIaIFpL zzh=z~*V>Q^|1?}{Ln*uf9@d6hG;L_I&H3Bd8*GJl!nHQ^z#oHaZ5V;y57*idhd&P2 z+K|C%{#Wp@HsqsO{IuSNa`-a1)`mLxQE;sdZSX_jS{r)dS#Yflqwvqc!`cvI+18FG zTj_^Pco$r2LjnBTaIFm$@UOwOHq^tPfNO1NhyNNL)`osGOP&c{Us|+ll)lb|pT%)3 zgT>(NHH`ayxvbk#US!WM#6~8uydEysy|ED%gtIn`eWqe;JQ8A~5*wXx*=LH$0^hUY z?=>}J<5e_AqVc%#y|`U2*Wx_{AE3O(r{K>iJd-L@h-DZ2s3<d@DSt4#|ljcm-UG)fD_zxE8Clml(rv zEmjtF2EGt`UM!4zKCSR;;95I+;CH~ac8tK=;9>2E{EllN zG-2(?M03wi^mY`$Z-;B`sDN*QYwf6q-woH=(GGtcuC+t@ydO=pN55tshbP0YHe)S$ z=RWsi@q5Y;`z>g$n5%L38DwtEBBuAD`9h4j@x30u->{W*g*+YZ?1hzLYq*zpo=jWL zV<+~0NDcfYc+kF!MVS_OKfKB;Fa8?uhxVXJ{dstsM$v3U6V|3UZF&fe-KLX*+ax|^ z|DN;cFT;H*Mw9h?xKGt+u16E*QxpC56dK#7A93?$_B?6CS$yin*7OVEK8>Nt|8=-e z$=v4KfhNqSOk(*w8YfP=PbJt&9n^i2e62xKisoRBy|x+mn_J+8A-o%&3%|xJAHB@W zzhU@xxOUAw4X=YQHp{!;+mt*{C1z6oX^vx;a--0Qf3)47tMmWBxcMLbUP3wiQ1}wF z9^={PI(P>BNRu0Doi>**HM!Hwh{bQ+__>7g!ehVWhT^QBu0~=#hK+1AM{(?N_Zb6e zYaAQP;HS*P#@&Vu=lQE+Wf#*zmp#lm_9f@NbkB~AN#_=rJ+6zD6OA6P^XX z93FHXX;GvQz6HL~EHANirmKkLMg{TSiH0w6M`9h%`1QEoP>8zUw2*eUV6W~?z3;o> z+u`S!^+o+>cZT8Lho5M2+g&_v$S?=h9Z z4}xoT)WYK*Qb!w_wb(e>^uzd@wY~6ixR#%z@aDJUGrJS=?@2HJBBPvd|Dm6QEO--q zUqbnJz5L51j#dBUn*q|NZ~VaTQ^~(y`}tRi9qV8Ew@w@24I#V(J_&y;!vAL1IMIi^ zancXJ;az>bHx9oJ9@H1om&t$O{VR9_$G&~%r4iv-@L$2T`U~M}|5rahRKhO|;SKOg zc(z%;u@~F{uZC;q>3;aLA$%MjnF>CS+hcx|>v_t{^P@4uKCyuzZtIixC>ql5A$&t&HHH9Dfu`J&y4FnrjK*o z2iJVeg_poJA4}mI;9)-2q8Ub``Pd4N?$>?nfv3VXA4lNJ;hK+ecn&)@#$=svc=7r?`O>_gLxM)PqD{v2HMG4>YoBV6+_6aEfdi(>(N z0{+CDTr=m-N;F$%g74Q`lxu)r4c{==hO?x%=ip8>52MlAF#!J#Tx-V!{CT+6j+D1K zm%yKx>qD!5uFFBQF0wyxJudAihF<{>YezMj`_X9aXof!q*V?fQ-V4{-F$8}OuC+t_ zoJLbHFWk?J3Hl6;=4T$f4zBrG2Hy$S{H%qy!8JeSyxE3kNpyeUHN5a%crH94-o`fz zM&Z|ll#l#_br}3$YZZG^V z@TDfd%+J?R_}d{o@=hf3?+|XmBT4(!efE6#I`}bW{l@!g;X(Vo7B<`9 zFT(Sp{A2dIPp&PG_3y*?p?Twg{pvo^82s<>pz9E+gTH4HSv7xu;`jSxjr)Io9JA0Y zI&i5uhEURz7B z^XNx|+ahhPhL6Ixne`aYtv16~rRX`m3tkYyhv4f&_!PV}gs1(By{-_x0$vruOW-$$ z@M?Hn2ycde1^#+Md|t8RYw_DIc+to9hdviSjOG?JN0~N^_e$k6tTk|L?oNM~X8_>Z z+?@+=frriAWoQ;H(C6-2cn*An>7zS$OTI}STn_J+d>dlt#T@_t<>y-;cHaHCo^NCD z6$|xziv2J5dqQ|7ybwN};O9TR{wRQ3hlKY>C7QF*X#LRuFM@0R(E-06uJuPhyb7-M zhs1M?K7SXDJ$~CCO^l~8e$%G7zBycv=L&cgT#H8uydXV19yMrgK%>Q@1-=EY#iJYk z09=d5FuVyK7LO_N;;>J+`PK2w#CRC_mHBV388h^F6u`&fT0AP?y`Kt?M+2I-(P;7L zfKR}+c=W>;EYjmK4o`t=@sN2rWiK&RY}oU^#1ww&JjUbKTm5)B_lb{_-CofZp?mzu z{WEunuKquCH;7K^tEIjVto?z{h*Np!{Nnm^;# z`>LUv6RR3@Pb_ik{pEk??0PNib-c&5aF!kmsk0ATyV2Nfz4t$Cd2O9QH*kzwr+k2V zc3z#+)-+<9d92&k3PWeKRr;}j#Q#$E{=jE>gjc|C3*q(fYPhz4*baXnq)qWl&{~tMvCTQ&=ZODQ@1Yc^}xXdqK2yYAVp%N}_xWg=O z$J_aOfYi~5<{dPvOpScFlz&_NUne~IxcxI7oDaQr(vGA@{Bz+Tn#P>{fzLlk9h30; z;I$lkHlogEtMJtK*=K|Y&8xz5;N$Sa%<{(ja>el16mC&w3w#LPW0se`c*>7uGn%Rs zbRTxXuLX!0YJ>QgwvT%k@Gu{9(M+LPXSTylD2Y=ke9`jYe3G%cg??B7 z{|U#jqg(vGkXStF#6ol}=ysxO6y3pdbnbm>3)WA4^FO=a{*H&&uVTx%mYqPe63sd2 zJ&keCG$qbhg=^z58-6D|Xq-u#i{RDp<4pS%e!o`1x5Jm1+;|qM5#9jbY;yP86=J^= z{vtf#99ZLzj{*2U;o3O2urZ0|h!wg<>Pg#Ac+li??8V7>4c377C` z_ykVrnT9yL7rxx&?lU`5K4XTx7x?E)9(7*E7Mm-G zVH}<%>zsR<{W|b7=?G^nV4WDMGgpbN^@gq4zb|ot zZ*Ld&8c){8y3{$0rUy+Q_Pn->U%MSU(!MyFvQvV`tJuhh%!^zN5BnSM`Dl(iHF!T% z>L`b=g&)PS=ZA3}S_eNXgtx&9;U}2ojpwd<;TOTRJRXJbfFEL(H{SD&@Us4`@Sr>t z|1J2nA@%3OYvDoX61)BIts&*>;Pr4V$6Dy4r{H#uo&A6x!#O$DkDaGZ({oIGnLsn| zbiFT9qVpor5S|TBf-f>-Y20rwf`{3!a_u*m<&D30+X%k~`;R4X{~3=?_?z&c^M^&5 z0r(`m#4Io4%s2;5qOtPz{!V35T?oI(v|;>hryTg%a4nyU;YDyQMqA+P;95R6!OP%f z3H6_EPyQCabfS`gsT&FQPe;V{gnE&pk}JyujpNbj~kQJ}ovc z@-F3r#)Ji50Uv|^!YnUw{-JN96wO_$bsuWr+u>TATHtl?ARolXZur&^J`AsbtLH!X zSKud_Z7`k>OXp9aKL*!gmvk-wqL81FsC>E$}^XEk51w zUbq&YVffP_d>Y;k*W!~te_rGTxE7yW_@Cigd`jW3!8QMD;3II&{}%X*A-o$d?brMt zhQ9&V{GW#JgKPe$^T&MNhim@l!l&Vy|E2J^LU;{a+OPTF0*{`d``-;e9Ip943_lF6 z`9BR$gKPe$^GC<#hwxmuv|sbT6uyY^TKsF^pM`7wx4@UfHUGQeIU)WH!xx9}X}Gjs z^FN)3R9C?@|8wEz!ZrU(;p^d=|26O;xEB8w_-P@$8!qkF{2zvIglqm!!>@&F{-+*ZePq zzYxM};L?80{}%Y`aLxa2_$ZXWgOh^kArqJ9cT_WZ5ZEg?1Q(#H6O;{1Mnapqz$o!_z2hX zI1`@nIXw>w;1*o#=L+~?@RLpdjdxh;;W_Yx{juovb^s*zBo7+kw=q}5Hr?s>6LCti z?~pm~#tmTSPwRMA$gIbBj(h_CK3t1a$|2XkO;?xMg z0e-CMzq4%|vG}diEq|HGC0Cs70b4VOrW+e!nkh7UKSYzx2Uu4W>2@S<^3ZHWqn#tm z;9KC@_^yRt4%g=IR(JzkI|uf_zX@MGCmzz}(g#EI_jB;9dF0KiJN&$H?sKNgPN<## z{Nd#1&e8KC6aE%l8$Si`Bi8GAQ2}2C*Yctsei~fMi+1=5c&XXW=(+azu=uSHUIo|s zT-rE}<_R=fUnL*L90S+-DhvJyTR{x!h&!nHZB1O5*DB(&Z< z?MxB&J(+&^{B!m8jl*Mbt$oS7L@o7e?aP8^P+n_aA^Ze*Q2V6c%ZdL6xSfl8YW+4C zxhT3O>})9BKf^YqubF*6a?9a z-+wh|mTsK0HgPwqrH&T(CV0?zwcy?GQaH1kU&oy12}aQD3aKLwAA@W6E;9Io)vqdC ze8__j!duN;m43U=zsFRLrm$46qYi!=Jm_Ah#Gwto4t_qzUM!=|4IGP~df~Uj-!i!q zhgT)qVq*+V!9}_cu}?BThww~z4qO{c1@Oi2(@Y<3^8301o)1qm`Pn|Nhpz~+-ws~_ z*Pc!3gC7PD%168X@MGbPX8qB-YzKtLGUi1dhToaMog3>Gzh%Ow;bGrjC`9w#=YwM; zHY(w7!msDp>qn=b?Dwff(}?D?Wx7Uu?Lu=KnxMWA8-ws0;1_W0)gxoiS#sO?FomWK zP0+JEVk7NSoGU-XMlPBWG)v5SjAt22;jhDwHo4tWt||Df2L2}eDw8|$u`IwTg(C;RPKL>A49EVyL9`hKVdzZ@P^hxnKe zuZ9QphwyUv=8*Dr@EZ6HrjOChUT(I*e-%=`7d{M^`(a*x8~4IS;R`R-uTdjMGWOs> z^Q`!9!I#62GVL4puk+!bg==HG9DX!ho8Ri(@`sxCjcepKcoyZCo7{Ltp%=aiuFVaj z@MGYQndOc5=DEQg>44vrz_)qvx8NTw*ZVggzMt}WW_jb9s~mm=<+b?M!P7(Rx4{nz z;l1!U^=tVz3V$c0eUYQ)Ma~PcZ^6%iCp_oH7@B>rHy?gIJg9xLz9}XCRq&s199wXs zpQFxLx8L-ZJZr$tOo$&H@PCE)(GSnKO!q_b;0Uc6I`cpqWFY@=0`g7o~ zz}5D{W0wc_gWZ036t1=({!zFV|1S9ckopJVSt0dL!k2{9pPD%@a(qbrIq;+4YWv|u zA@y&8uY;dr_CMoE9xapjG{LV7slN+;VMzUh@a-Y>Pr~a$>QDX5yvR3{`Yrs+f!_jJY=NGOB&O?bq zE_@z5EDmL8a?k|Ljndb(@MUmqZP5zPhimKF9{5JMwgwx4m%+6)SR8%@JZueS9nJnP znxOq(i9!b!WJFeV6Q)Ak3|FE3I zsssKSJZN69;QjDHxVF9)8xv@b*sRAph0Td$;o4dx8*ahbcJtfn{%t0)Uj$FPO5X>o zg0FyU_8Z|#;o4fO6P^tZih-PK`{>U_@b7RO>*49!+5LR!kB6Q95I?7|(~3@>yYw{1 zcVE)zsCIbJeHp1In>cpBPa_Vo%M$BJ%JKWO3_H(N>ided@VDU0O+SpaT`N2e*W%Fw z{{S8o4{7HJd@_W`;jhE1%=(S%i;Sg=&#QI&d2kD^l`n%=g_N&_UlLNj75+p>`5t&{ zNcj=?I9xl|#^L``>`OmO9*n_rrJwJ=+Rqj8DQT(G&yquV=%%i5*3hxL4c+X%o%;@l z*sMfbbgi2^R~uTfY2;4Jv0Qgm>3!b~uYhZPKMdapUuO2L@!jv~4=JCX?UdL0HW$7V z`&w*E;onpIlQ?W4_K(8XOKfkgOpI;5AKMmmeb>3Mz0S}D#I_G@#`Vs7+_Ccvt&D%; zUG6D-i=)$gPdjd2UflHq#^x=;oHV9=)MoaFNFu?h4?;BJsaS*?>8mZWBQ&-jB2*JzF%$V0({RyJBZev zch51j;=3{LRxO(sIp@Y;-z3X3$(?YNAd>5{p{+=W2tw1#g8v2*1EAFKsdQa(mJAq0!cqqwpWYwS0+u zc3z|tzSXS5eEtLeK?u)>7vH9rFNg08;dSsSxRx(%@Qt_Y{`bNQ;aa|o!XH%1ON=8c z$X9q+zGR|#8O;w9V$^9TjPzpx{MtMA&y*){=S3~y74S}Y!n<5i|L@k;!~X?mS?=dj z(vkKeK+3nn|F3S&`@&{O#~Y_%Gqw+|&v0fuCrWuk!sHfWHKn^Ssvv<9)XY z_{(r@+^4K$?+pH?SzgB5AN@LV&^&&Z?qe~$6|P)*Y^P`jSv>gxEawC0F|wU2CuZ(7x5+y#Eq= z!O%*qjCWwlPU4*U<^6%*@)rN9vGWMrZp&8u5A#JOv;On+^*1POVwf%=?_zHMXK1q&t(w9r%vYv`n@l>F( z|6sl!KZ2br&}r?6!)xH${&@x)oVSPgv4U7`ne}7xLe-B7>^!OXA?>Nf&YoF2yL3C9 z*qKr6NL&ZtX)VEXrUf6Po`rDP6N{A^^%(nNsi(7tgofKAetVKKy!A;AeDT+V?yWx#~9g>62lGz@ME!epToz{2V@asePFuWcfG-q1)ISt-%*?FJvfACYfuP_G0R=@+E}|l$f+C6{ z0-_?`5Jg2%Q4tjt@rEL|^POvqY4C2b{X75v|D5NXXRqh+{kXnktT8WZ&be-LEmU16 z!(IaWX#D?nA28F6d}Ysv{ppbU$L&hkyTE>@_V0r2+w{fU57==>>#z8Bb97wc^D}(v zt7kXZe}VmO_3Q#OGuuouAo zRqcAH^{tQouy>wce?5uj$^Lz=hm1^bV%*Egm|!9D@@`tp|n`?$N<3t=At zdwu6H)|X6TJnSuN=kN8u`auWSzq-rz{bBzNcAwhY*ZQu(NZ3!pUf&!XFW5g@P=EQN zV1FC-JDsnpcAf#dXFc1yz+MRZPp~(ueLjnRYLS1P&pP(Uz0B~cnxE^GfliuL8l7NY z4|{!eI1u(7u-CVbN5k$CQU5uf5A6Sd-J?$Wf895WhJ8Bh^}R!q3HxH$>+2(DVc!Y+ z@H+8nC#&)~zKnSpk@dbZ9U>x^}LUZJ)h2zx)+>-%oRXxM+hOMD;LXWu1$H0%Jg$H6}JF6n2(J`MKz>Zla<39#2U);bTwJ2!W+ zcY{3ucGueFQwMyk8|8<673}quZyfBKVXrTLez32p$L@kO;$U9_`v-RCEtbK?DVmXo z{qQ-usQx@$gS`ay`sQRde-+m#ciFxN?2Q)JUx&kBZwY&Sb?_tXkKV;T8}?pzu_wU( z>Rs&nVgKMR_G_?z4SRiKZSz4GD`Ee<_C7X$aQk@O1NO#C?z|7xJ{ktQ3HG0AZ?DcR zYdwSb1wKRJQ(qqD!oK=0X{>{N(ch$z51%sl)Hh~V!u~*X{m1P#ui>}~`<;&4s+_%H zH!r>WdslAoafMHP=ke~azXSWU+I7W$JW-_)4tpx>ce{6;0iW}K<8u~1Eo16`UZc`# zG#K|u?&72RcQ^QCz~@f)0MxbIK-6gw?CbDACl1`yRAUEad8 z2ITkg+U2eF&Y>&pU0{Erww+#IG0sKYVDAn4;M#W7hx&A@iti5lXxRN~+iQKpAsqHY zu#c)^|LgDbro!HKW&Q230QNSp->FZl^u3|NHIs|DIC+ zOL8*urP6KlHtyZ*!TAB&%I$dAcb4D&Y9Frf$@kO{YLf8(+Ig(~Hv|je)8|N4 zO?7P_zR{=lk98R8F2AZ~W*z(F+j;B&`*hgn*RjvOZSN1e)6x3d@JQHyg?&q%?UQeB z?*)6?V^uW~b?kF*+oNC)gS};)I=JU{9c92Cc)Y6SVx8@2(wHh=A?zax@GP#*_C0QI zZ+*uk{ybrKkIsDScKRJ)A91q&Yr6ihkApqGPWt@-mo{RZRfwKtF}*t{qeil3t(@1m-u2h`u|%;|lvG*zYtxsw8V_P=7V1CKF9^7iI#Pq`O&En4U2V&coy~ zyp3X#$M8-OYs%U22{}Z(hKTro%Sk4QGhveqk|M?;%PeBEgaAvg?%?aPOp4WrEk&hC zCP)!#mcddan`O0Cl$zx!tMIePOe?+#D#NW}p#!#28}}S3YowTBlGknGgh{Tmi795e z&?bB=@`Qtku*mHWqRJxU9mERR2|lq7)#yCf(CJnAJ3c~6S!gg+PQ&!7|M6Pmm$CgP z?hX|WBHBiw?s*z~L;j?y$VjNoYckU&ek-@kaTHsnONC7=a2SsNm)UT82N~%;2!6lF z3abb($z-coVUkO%s`yY6&9cafKbs}@TE%&bQlh!i8u!QJvUMicd1kTAObIpajbrz8 zlU#|L2AuW`^C(%+Ow2TOJbb^%LftnPLFUKt|08C3s5$;#mfYN2%(TcA%|)3-=^Lza zehZOnl|C)RC9AyJTpW-}4{?wuTZlCda#stn$3d=ZArfs$udvA_Ek&TC3}`7z?<6m@6xW^P!IolX1DW1Zlr=EoH9;@>Mbv=V`h<>FRiWn<~zN(4C@@tvjn{o=Z_Jl{&pY$6Y|5@k({ z_)TT{{UW!iTz|uz+r<2a@;H#wNKOSN z-6K!N+QjjDWEN22j7<(SkrgX#!lS7?1td0;zQDO=vS@`(Y;G=h15qtA(4h<->00Y@H^C97;=jf*@0 z+-L{Coc7W?(I%?e%S&r)VpRt@4>;XHUcttj9+8Iuk4NE`|EQdXR`1!1Xtc&4Y)?O^C8)hzy74i6Q-#U@he>>AB4&j=d$%L#%#F?gQoxl^cNYw+)x7 zw`CDr<`0v*fsMmtB9J#sE&z_dW4I&_m)kL5{549tC3dH~_?NtICYd$JH~ z?(fT)SPOq&-q?$3A>SZE*Y})I;*ea{msv ze=L)Mn;*+4!2c6D9k}ud90EU;D|e$7K9xy3Q462S2w;YroC2J5Gi(u`Nv~Ztk@lIq z0P*l=azC(ggkdWgA@{)M`?*{TEcsl90n10qIf%IngErQRM#?k5t}l?18csO$KWt~tlSEm`A+$blL7l|qHvtNm4mdtmnVVX?`0Nn>w7pv{2-U?w~34& zy37O$#>*RUcmGiy2ZDc;+W_yM#wc6i&v1ADr_9IyH~mxk=c0lBBA4aa#Fk&=7Ob8A zMJ@*>{`R60XZDZ;QSxb5195Z zc@t5V{Yw@Aet&+Xf^EV9cNTaAtT=?O3Z4Q(JWO&2xB*-Z9t1imzf+E5VDdM~6mVI9sn7fq7(!;@2wQ-B z&Nj&?a1A&e+znoX-^xIfRDLJH3(zaT{a{v*Nlt=(CCJoC*=y#QU@4dY`h}QeC>RHNf!_1gRtxcaq7Vlca65P$ zj0bDLU@##}dF{e)&}o~P8jgKeWD_yqEHDeKfL;uqQuYY61@J_q+Nuh_(PuFHEHp_! zFbTYgt@6ME@O+eMEympqi%s$<%x4#y9zjw|Ofv8+jyBOI%yr7dDN`2KDna~Vj-@79 zgSGOdreWwd%S^KJ9L58%5IhR*1k1n#rN^pm^6?vAY!j20n`R-gIGpdC!|L3XrjbGf z$C>1U^Emp%sic?1qa|VOc)Ut_@hY^Z3#eTX^@NkfRID9bt&*-uFv*Pfk1DC(i$hOHed09Xzt$BxAr0$)?{h zCugHcmX+GX1@IW?lVXxv!Dw&=7`aKMP=((^SD>aMcVJ2y`r2iiC;>NvyV9}0z~vb# zX37?mym1xdGI$)k1#Sc9ZN*s}ID4Clc?rLH*P&*jpMY`O(K@eTTmmz|O*pZO1p{^} z@2xvczo*{7h`Ss6w#+8Bfd$|xFcYi<kHMAHY? zoaZ0tGr{+ndB-DM{y9G2VN{T$t~`VV*Yt_aj+7c1m;~--X}{; zGSSmf%(#T+2QDl{=bPv#_JI-Ls>>Kqz?oM~*_eA!b{&QHaumg7Xfcx<#pE04_uyi1 zJ-8K&1dG6_;KZ9~ckqt{4}&RSI#^at+i$vMnt`rxsscmWWaJrFK$YH(;wo4O&ZX9OgGC*GaQBQ46{54t^hZIyTK)32{;p+ z>T8xa;2#4X2e*RT!0MT_{Wd?ds=f36W*Oz{D2@l1rH7xRr~uE+bQB@8aQOso0F%HY zU<7yroC407ZI+j@-D)roJReBgX9cO+^PG!IFhpAj?go>=L~wSnDrX#iL;M{@)I77i z8Q>^V!2+-V%mm#-%rXuP2j_yxpgWikp2c=I!E7*YK5btiw&W+bW)TnR1#_kc6O^WY8mPg{uU1DAl?z~fQ0eaa%E z`c5uJ^#wVK14~f+x!614Ib5a&M5Fq^RbUdB14e));1tkzDXI_K#ejL>$r##x*)k*S zo>q_sxa zrR&V{FjnU$ndRCAjv@&R1M@&{upGQJ-%$jwN1cOfz)fH-xCFcm&IFg@zJ=P}XQL4| zHpMJ2U^RRbx?ng`1>?bdFc_=^J;2aZ)Oi>>3b+?M1SWykzz8rlowmQ8ZiEfaz}*pS zHe(C=Y$Q?zH-p>3W#Bn*7C2=q>O8_xECNq~TfiOQ32-$SoJrf?%v7x}KFcgq7dnc) zU^G|^`hjP5C~NpGR9F;RIyeK&1FypxzgxAdzt~Y61;fB9&>Nhejrv>U zC^muz!8~viSPm`$1NWl-z+JfIp|+3Rr_wyV-z-CyU?=68r5CsWyZ~z%h!N}nDhul5 zgJ!v6DMm0b2uug7qtPJ2B5>j%^k8rSmN! z@5*h79I_v(K5wtp`Jj(L`1tw_qqZ_q_R&S_ryC2 z@2l7&U^o~CUIKBkaLp_eR$<5nL%}nk7npF}oQWZM>kYK;)#^Bi%!4)HIhb>AnjaNn zV>xyZ)T3Y#SO)F}x872rFXDIOCXD_S=8NV<_>XTja=ZqI39upodj>oO7K1y$$u%fB znD1`!vZxJ;J#k|T8*KH$T|m%dl0~MhLn8!FV?A$@rS)R9KG`CD!Hr;CBJu;y1*<@J z@VvLBo3gLMJ;fbZPn<&j2f!6;k#8^v44P_@)v&Jui@@Azy;Zpd8&cY=F2V9Wyjl2G-2mexsFFT{<|2++&lB9B0i0yl#h z;4*MkfTfGFUk^aKSg)Ez{=u^?GHpH50hfY#pg(vqknB@}EOH9ATMAx=z8%a1bLNme zd9FpOeCC1|;1?Ebk!O-Ibc1`qS zp`Slzk^8akRcv`78H~VlfbgSe^`H-U7%YXp;)3Nt70>6Q<#hZm=4aoY>_cw!DY)1iwdymItl>c`gO~rYW;AT<+aPlaY}U)!vPoz zrhz-brQik7AN06oc|`fIzlFwLfW~u+wqI6ZdCmI-PS-2Zk)SWA!cGBGz)j#Wa0ysa zZFx&=zpn<}75-D)tx~OT11FtCV*@Wj_x7;LTyP1v5saQ_HPSsX(JI5?H^-B<%LP48 zp&a0O=z(5Vxer_eZU7S}(RP<6S>*!wEt*W*9S1!M(E!17(8Ii~axb_EOahntke|;K ztK5DX*9~AixP7Ws=3~2ZFabO?%_>8|z!~Jf7W71U0(}t&jPN2Ny>SaFvHtp$t**M?a! z;dWIxwz-JD04@egKwr>1!Ya$)bs5B8@Q$>~X(j4H1QB7Ky-=wuqO5YtB@_v~3~Mo% z2YN2D$~5rOBI`0-Vkbpg9}g)*c9tS3xJSlVrCL7^=3za58Li(0uVFnU)+#TRqBVgB z!D?_5xL~;=TxwbCl*UBN*HoCr>dv&!PjIQW4%;C665cn*vNr^H+3 zRB-bu>lT;^l$`p!<637`5G`4QL_PF${qFz%+0JcmiAqdL*OL!TI1- z#JRGO>M1+L8i{J1l4h0eH&9IQEW&L8v%%fzYTqo{g3Q92097??F_fyAzHas7CPeK`SQsA3cPe zdpL>NdFaAm0yqWS4_=1X)FW28a-x%n0q205!5Y{T^Q|)0(@7ivXM2t1O@7B#wZ-;N+9&K3+~D^c0c?HgySmjpm61W0PDY1^hWmBnD-tuu0tH6`s zZZHcx1Fiy(T~_sybOrlrs*@-LGr(I{(aoly#Mi8H8#v`UY5*)Ov-+V#S>?#tbSH5g z%mk-ZpcPJY5*xrB;Jiw!Tn%2Yvc|&whP#x7zD^?2L&}}tx`|TWnBgSOf_uPio>Hy_ zw@y+|y(1<|dDair0%n6Jy``*}=_CStq}&Hy1~-5{(_|)sFZPx4LV%Ol3+@Nc%#^am z-$~5zlky-~25th61jzn4b(ke(>1;HB*-{@vE7p@ML z@>&oo3Cstt&6Cm_j0%zRc%YN;43%;lSU6t}z<3>ojLvZqGsC4k1xABAzzPr#Pa>tv zoa-dcfpOrGg;H(}h80`^&WVyT2#f=(VXpx3TzZj|(IHO4W3iNe;G88W{5(_{I15}H zjWn@ULX4DiLY>4eum*m+mPvUU>qX0C>s{cESSeS}N9}+iVCHfay&S*s3!HEQizdX<~- z4M=qnN(9aUPb5p39_1wbH%d7VECnZm)tjVTuoyL#D&=IwG_(^iE={)H4+f@7xqgY0 zhzBFV0ArrYX8f*;b`r!Ul6<}!5A9kN*@cx&d%R^o#f{fjVWk zlqsP19$F6u4`6)8srdM3VNJFk4-==fw7=pv6QpH z>hsEb<3%aAtVPn`aEA`|G+TNzf#Jq4Nf8rj0D50 zq@1c)qr8*x>$?&4=&oieP4sY(r72EgId}-%JkddVf>*&K@XGOYkek8eNe%;rI6T=w zUQ2Znle`^dJ{aQTAicpI;PFk!{S*he4V*pA0nc2nO>>Yt(wxMh87ie~_;pW5OY&7~ z)%cyi1@UJ($VuQ8@M4CO@bz<$x!?+LBe)w}1eSm^l-=I}6DME?kAl0wEno?_9P|xv zkbz(fScTNGz|&wcxC@**%R#OIHwLO)?8NV_?HJj>lVC=WgUkX8!BwF990xfM34V8& z7MKsN0&jxzz`2;^G!a|}7NfQffjOXOm?}jmephB8Rj?3@40ph^1k??9eJ9#sxWi*d z!So13-GS1A^T60h)FJep;1=)#xE!30Ic$MoELa7^l6g&iO2UEdwU^F;oiG%b5)1w{aS@<6Tv%v~*9k^(zgA50AVpOS4;I}dt zJpe2OZ-G0(++_~3A{%uZ>mW~oLCYPaFSr#fLT(nVaFDyfv^erV3SQXnB&xvu;QV+8 znG7a@QD7c89V`d0?Q;^rtI)Q=BrpTa17pE*aJI6qM!s@j2MfVma3^>jOaKED9AqfC z2J}*P@WNi$!Tn$$=Bg!wx7JerX05|^DA#H*6g&!gsq!YNT9~pP`!*jf0GtCxf;C4_ z8t~Xb9I-bz$gN;XvV**Q0Q~^m4({6MAmhP{o5+7ks)G!}c1uBTa65SEF!l|25S*0e zAUA=Fz$M@oa3**fype~IFC9G`i~zTRY2Zrm1UN_8HzS=xu!Cp7G;j}i0$dAvWFUPo zb1UWN1b7Dd@Yn`Fa2dE3%*<4!K8WALr*JL+rh}zm47g*vgY-X!<2qP=6fJcJ_92)I zR-$%7c4D7^TXvKGX)x;~N{5+&tH20w9+(DB1W$m)Cs3PU4mdv>{TbW{MuJDdsmcys zDS&-1@&#@L)4`))3|IvQfWbNF&&Sa=z>{Dem<5)DtH9uWNMG5(iOLQZqdetc4mj-~ z%cW&IyfJke;6(7H0lzJ0*@U*9T%eC z=40Q27r~ie>~Zqn32rP#{|6U=J_Q(S!D#UMIm7{vf`#A~(CY-o2`~x_1T(;@v#^7w zL9dg@7Z?Su0W-k)$_`Ef-A`exKZ8*d%mq`yjbH(|2&@EWfT4v*zX*F5JPPK6TfjqJ$rSi-^hjdU63E)MP;~1C=W}e4hxPZM5&I6M!sM;*Wulq%eP8S_o zpM|>ZqJs>%gq~J{o>YRK1jd7>E@51N->g#fSMUlL3U0YV{-;4tY`5pCiW+kbc`8Nk z2Tz0NuVd^3L&`Ar!Rr>74PLp4(cv=oY`H`0{owI(w7@G)q6UlvkK9tx5-X6_HRK%h z0&i5J_g%#?yb8S;oLr6G4DV|-4!GHP%-tr#%TOW@oAd$0Cfelc>&O{64P4=A!xcE{ zZ;}n(lPB9`)J>ezfYZTk-Zr`R2GRg$f(LwT@&=-0OtsSwMo2)>TAU_+<7q0u+%%I)TLQbpiRbC zq7Xqg84QMj9^e5G5B=sKa5Z*5SW$%vn`@Jc!N_2ntcI7zJew>6FN7%X>7h1R4DUJf zZE{bIlUNI`1rLH@;IS|y?cP9Cg9+e*aGMMTQ$R0pQKX8p1;6ng4KOzeIRZTvB1hoO z#kP{e$T8+dJHI{)|G8|wuh1fPSY9)W)jecr4c>gp3xDKMO{u}!-~DTXsd!gR0&{K_nMJsnX4&6S)R8cQ z-4`EKh&lic;BGUF*#N zr*ZP1BC1w`YFo$WWMAXKFEI0(u@EhD*zChdwiGVzp}1 zxc2#%dRxNC;lBs5S3({%HTwrP8!A6Gp#h?%=BNxKim}|W-2d|!wF_UT7&WH$J(1kc za<&vGp09(*z~n-w@Q&FJ&_Y+!uY4kgmSl>qH=f~li|#!9e7Y;!J7lMviv{y zakrRq@kqiVaDV@=qEj6Y!t5bT)LLk^;F0-RvoM|v*QsO5-rv>Zf0*wUf1h6C;m9QV zAiclK&;M~d_DOH~q3Ndve+vJ} z8FyqLI=&*`5MQHU_I(Y1MHLS^^DF|-#&iQvJ{WKR(OQVN@(ErtX zov=n*x^sU18gEsdAaff`7EFG;j*sD}JyK^MI**WB&0+(lN}2^Gd>HBer)|-B{MCk- zCwk8Z3C_aL882+8Jl7ic)q3OiaDN(;0-~ijsqUpfYPcAaKk>(cxUtk}IdxVVV7|RN z=J94zF|`-pY30>>--Z0^i@EqRI%oU;U8V6jy!p7))Yr#o2u4BwZ%fYK?Z!^R62Uw-V%Fdqeb9Z=l=mqL!1Nb#q081sSgj3fllJ{k$6UfF>)Us zb(-@{cpiB}&M-sU;zW5+`?b*%XucoH5#o2!8e){(fse#-q!ypaVzc;D=9opQsUOCJ z5DWDbwXOcwV3c}!ulC7AUFB|TO~!_r7g@y|%PTXi>a{nca{d=ZqrGCLJx-~%a>J`V z>eX)T4GS>C8Sh1#@dQGZ$msWfb54Nq*LjRwXfmBLwe>IyOw+tQA|Qm*$8sbcCTi7? zirshs{Kos3a3+n1%#<8t=N_YQOV#vf0v;WjPdga;|BBXNG~P`Y=&iR?__yy0gdyncX8ge8MADpCDhgjubFr_lKrpqt`>cv;H8ofoTB)KE6!*_EduXAcv%Eyrx=Dt4}&ktmxX#23XZpjX8ga&WK#*Q z9Pq?9(gE*BB0mt@OgFuV(*VmzybHP;k3k)TC+?vA^dl;ljwyNBK2>3N`b-oMIM>OfTa&yOyt^oL`mk z_`7$QS8u{OEWf>c2d(+b*#4hCgjmE}v&$rl$mC{GUtAPtI=&5nkIEr&`<3^_WbO~V zd6v;b(D83_7Ftnjn{7s(af$PzJc%WR@{ zkVGE7@uN!R)c+4}iCW=`_)pFg@3^D?bFt3#Jz}4@>Izw7ww4M*mSC9L5r^ z*Bjw{5lf_AcQIB)lwNN{>oIyA55v?F$Lq8;9%k}7opEA9lJ@8H(s|v=@iMiYH`uM$ zU5)T!zxJn9aah}3NGQ}ZhR1nHv$|njX^B|J*fPt%u;6Wo}}+&8qWV8`f=g% z)tBW?ZqyF!?ctlbJ!nHl-E}v+^;Elcmo0Vu-R;&3?ABek*7aB4v8l6ctGn)Ix1MUZ z?vh#8-`#G#z;4}jdtLur_xETn7$+liZR4d5WBKJ3 zqSi~h)4I;L4{u0O@poj&EZQ=)Uqua-5A|$F)x4gHdrfMo;dPzQQeGd^jqK&T9#5

B8*BbY%`fV3sn)2u`2r!tBO$We#DwF~>38nSRW0W*jq>nawOo1iZ3{QrVFzh)0H`d>Bbz#bZ7c8!CW_HhBM=ssmyF<0kf1TMsxa1 z7iKr6D{~0bjX93#&h%qawEum-j+oGRr{#rIn<4jQzRY};`8xA0<~z*ynV&MhVt&i~ zi8+xuof*muV@5I;Gh>)5n5&qH%=OF^W;$~#b31bvb1yTOna4cJ)aREcc>M~~lt%S( z5A%NJv6ZBEC2qW3}!B1Mlz$BE10X9NzBd6 z9Of}*DYKf{2%kPw%e_ozW>aQ!W=m!(W@}~}W?QBUvpur|vm>(;voo^`vn#V3vpcf~ z^J!);=5x&6%omxi%wfz=nB$ofm{XWR%(={YOnv7R_%?i0HA=-REvV=U{f{+%k0Ra~yIx2Vwve}Pp@w~)n! z9h!l6@>l17W}N*F;pux@Ebxg4|;)^My`|t%v zI_u%Vb#*oSL*>&ohIE~79_y*gNH@MMj;!JdBb6(*u8yazMm@yMqw;j(dT536sru>K zl^RMf)?HX1#k%@?1ZsH`y2?)lw`YVk7WLw*(kt!sHLO?J>6rCr_*dKMt&j~Br^Zh2 z!@Af^<&Q*@(*ya*?`rX6 z-E|k$CkkUMm@i}0zbn4ls+O0HUwj&g^>EfPx5-#A%ZB{%O;)vNJ&yH)eWWkOx>`2q zIQU|zTC~2EbvJwoR4q}QpA&}OM)bBT7d{_u)W0k1dVlG0AoXdAqx+*C2ZldGx*i8w zOKKC)eMgXP{JjPEXS4p~m!xkoqTmPVsQjNEOS zdC0o|&O1dqhsVr0+K(Z2y6(T~i>7MP{<{Cpx6^h1U0|o{{u^ee>;4;Vr`LC!YKd~0 zM00#yminoYDgL=rzwThvcQX;i@wNXmMx6VF{e1*iLvJngeHZON9C~}y=l9D|;aKps zFk`vIdU7D?S*))|bt(UOdrAKu?Nu$Wp`j|h@*NV4zuN-+OX%%zH)b7P^HPhx4;9b; zerlFG7UORlfsepV#d$-0^&E@7e-q65i_yp!mbZ;xA@IhC;qUh+#nI`u!i^~vr{5xq z^9cJt!}`tU6bCc5jU^p=Q~rN#RIq>NPpDjOYWpuS1H};te=B^$2jaidIR|n zX8%^W@1^2Q-$eO&l=V+pkA0WYRqaMCds*+^ob)$I7VU8(P{k=}Ktk5oP)7B+ko8K|$NWzEXx4qPBUGFmFVZoI&REW{p53Kxxtig=r1J0e6_x9C_RnB_ zLLB+`W&I`GFjfAOmyoXa`z+{ps)qvhPZ&+*)%7;GCB<1kp3>EE)F1Ft@e9;}0Lx@f zcRFsgDt+Fpx^Zr@{#z>f>pYCZ4OZnJHH`e9;5h48pFV{2POKNP-tu|Ub-fAPu+}lz z)xhh)mOJVX!e6C3JA>-~E#4@cbuoeByYPVC05`mq|JsRE54yd@vhKfzbbXw97dOn6 ze|UG&J9GSK)=v(kdeGy>b8X1K%eUnJC8wLl`q&YaAH9D+e~|pYSCd+?jOF;(SzqTz zaj;vBr4I%`l^=(E(qCfTkM$1QsUEOuEETK|T0!x3y1${|D$clkAbY0%1tUL07 zwPLSWka|;tycGn04nNb?dX|BX@59uR>Slnu?c4)PiBt zSiWTa$Oy{Mo2+L-Z-Vo7SG>Zj793uU@Q}GnoB7Sl>N~bPT`763_bKH%b4J_2vku^3(KB zN>{g&7}hVS7yqzKWB&&KApZqipF00@S#KRg`9wE2mVK-ja(_WFjpY*SZ#AZLJy?GN z2WXX_=IRYNES*hcn8$j~I*PB4cNwe)asG9FUU;117;mZ|gg(A!v)-kh%?SJ?g%?$< z56GwbK{qs(=P>}P{LJHix`g!)S1o%}lwqWojnG?obHy3ScLaE1MwPo?;Je~o{N;!J*5!3#rc5eJLvuB#`-OF!vTxd zQ&{iqQMdjd!ilKL&+v)lulLtt*2ncHeYz1%i07Us{|-G#|A_Sr)`!fXdiaU;Ae^YE z`2C+Ce_j7KpsW4Tv=_DiN4XvvprVw&S1{%CGmi5I>z#ZkzHa~RUnKvQ?J15c`>$d> z?FWj3;v387eaPPr=WA-w?IfM`wp>3tpPgOFzvKOsf8F0_vA&@qFI^r?tlN8gx}Zl_``TH`eE~{w<&H>He~b z^^?b_9=>M(v#h`GP3h`#b$*HBkHOnLYH82@!L0Y-bceHkg!QEzss8nTzpp>VS+RxU zf6o4ESP$Uq;$qgHefh7p&5{9c=tg_s^C(?!hgeVemEz~|M&+!Z`zMvRBkP|Jpg38+ zRIXoHPhtJyPO8uMSs(NY`48Dd@pb(yW4(Z{J9PWm&U#C}zV6O(&anQ0y77W#F6*X& zcP?*B=&HOE?ao_9uzue{%FiGZ1-iz1*;f?*NsizCRf;ow0+kEh%~;f*+E($~#!&s} z{C8yiMHlkd3i1uU?5WYd~q$6SC?xJblnEn)xa|Lk9~#warict?zn(eaoV(`eCjx1tWVrV`V;Jb zmi5RVDW9FVo|n8q_k~>XnIg4xV*f1YD!w-%FU z4mLNI-&sEwOZBPCb(QtF)1;%ijOBg|jB0;nyOI6@>mRZH!&8)>ldQ+EzB`9>PuAag zm*Pw?lRlYs+k2#+olNzE!|G{1byeC;bPWpRC*G4%QowB7Y2z z#`54u@^{}$x;}sYhV|}tab~ifTt)f+iQ_naL2-Qe{-++#N3kCFDaCKk{wb_?<@>05 zynT8U#knw!_Ad@+#^S~LEqBuS_LGQXeGs3Ygt7m-Us9anSIJ-3LoDmor>H)4JK4{A zXC8kha~#`f8V92BQ7^SPvfc=~s{hSVb>n!m-nconL){+ASwFFi{PljE@fF3n`6A^L z&A?a|v3{73zwKDBWIbvi`FCRd`7sn{{U3G9I|sTR6WG2~Kh6IuUgAL%Vwf9zZG?|PNm4|boic(Fdrk-{*1^^ble|F7BqH0yt)Qhpxe_)Wf}IKGdNzwQ?w zv0ic?#qY}gXIM{tj`W+X_Z&xYKH>H}p7q154?j)m>iT^Cd-AX5`&2khGL}(VccFUF z>8@kF>rLjJ8Ufum}`H|w!y_fQ-<9y5dJbuoi<21woqVkh>km7XVbcaKC#_aVj zd_R+A@iBD0t=1G*aGc+Mqd1+}*!X9PpTXDftyu5JdTMN4|9`SxmQA`oZ`sfKNByW= zeL2qfe^UHw-;#eH)=#kR|9IVcv;9K;&iKxQTK>WN@ekJDdyM*pmGvCfzf#}Bz@p1u z&AR>d;QU`HzSnf}|H9Y`AIPk>a@QAb%VVjHQhA z3O=va`**4*`48jgZf)2-y0Z`IKigej^kh9-kbgV&4`KbqK#Knv>xWp+=j*kPS$Cgu=XUN7 zU5$IuLuvnRXaDntzq4@R`&7=XSF!&ScKx*5RElGNzq*|Drn@P=uFvRd@FHV7=uesyE#}o6n$h?e8~6 zu^!3ev)=EWeaYXM&s%i4!dS27`6P=t-N7@-KO>paeV+9|*6r_Km9k!4N$pLKKW+Rd z&XuRA{XfKU{$%}!bn<_h_51wE-<5S;4^gbQ_onB+iJ1nn2Ck6^viM#_(_=LOK4a?IMOV1MVwDGop85iic7bnoTo#e;bxPu6>;P=55d zSH${r0iJ3s{Om2ty``n)>#=7r$%D=u& zInMf^wv?Zj*?;IjU^YMYoLxA>==R?=SUZ|7ooEv}?B+tarLj`Ru{|Jwho?nBDWT zaMm68Jo!=fzjr?QPk4>u=yvr!>t5fHuFvO_SU>PM)mvkZlh68$6w-A)do7^&W}c6s z$E*3QFUX?!EjiA4)_d`JtnTj*hf$ou%~YS>?C%s#dRi*Q>C3tg>s|T&*cYrXXMGHh zhq^sCji5NY`T2!DKOe#RHyM;}CysNK_4n|#JhiwPzj*&5lHw%rbzBS9pM$RVHA@D( z*x$j0>P_e8EbD*pe4*~V(WHeG|Ks)KKZx~iQKY}*L^`U=Smv_s{tD?gSubL}l<)s< zX1(hoier77>Jx`8WASHwC?EH~V*M!VBlx*SJJ!1{rZ~;{xuHJ4a)Yk!lk4|<2e5w( z`@hqb`mfGUn;se^{k&k^Xp3-BZ`s zo_{T7y-{1*?>#x6*{ruNCtV+}e_cxPPxH8^_t*U~q(@F9{~;V_0qX&LUhy*Phge_6 z&jCL$k>T}a6vxru!4Uq*{ywY^z(=IjqU*nk^^TpWK6U)BVkypEp5LgCUy-cWxKn)H z@A@w%fBWl;-K_r>LFF37`FUyu-M2}#yKnOxbTyuTQ$_W!^SOg{Umlwf3UdN;f0r1{XBsFA>(;#2DQd@=in^SG+pn{_qC@5J{- zb$^Uw-TuDN6A9#>&ew5Ya6Uh0z4=>||Lv@AWPK`M*L=?UhikYV__^c@tVghJe>`y%ERL|Yn|83Sgx1{~9=dC5MK5GT}zr+50*HWAWp0BI-*GH_|U;j>E{Vd1P{qYLx zJ<}=OW*pyr9mT)Wn$qpcdc!2r$MSJjx6hwg-^tIxZ?OL{)(`MJ-chW-w4UOWZlL&j z{8`F+I=92#X4>GX4eGeyEOy&HAMX!cwc7?wsh#NjY+>DvpF8OC4oD_{7rvjP)4jm@ z1-@^o`%%k{w~?i9`yN7t8|JJ)QkGpLng{{ch)CNrg9A?S?pnb_ZQSo`m$aP z{Z9F8vYFy{|BTYr`TQOFo&1-vzgs)<|C8g-&Y(CGsz}%U+GPvri(jC8YJC~&!+KCY z-{d&MwvvA(KZkmb^)S{QdXm3xhYs7wznbU$>O6nW`tSwhul0P^2h$4|x6j)fW>TD; z8>pV!ak|r49~(t+bi2LGdINrNq3dBC20+!n3SOal(C0Iqvq&HE9mRi&Hed{0hybT;Yw zyES?oSk8K~Gv!~8|Bd&Of9S6iNB4JE)_b^8Jxu5L<5@4@>kHkk4zS*apOb#Z{xfnY zz61U$hgx(!SF-+xUAz5cANdb|gVOEGanf0L@q zK4@;;dOOMbnB7z^{XF!^LzHd`pU-#aI6tx8gRir6dkANJG@lRaa<#~#I63@YNpp_# z7VCv}*EAC{{_##@?rlLNABE@x3(|FY&#`WQ{d;fzo%8b%bd{f*JP&^`r`zx- z>0!GlpZ{Wg1navOQ$6T*8^Zd@59+q(U91O#z0z*pRKEi9pE$AZemumwGv8%~9Ne$>aui>&AHbNN5m|BF+qA3Y#C@pCt-4ZNoUUG0~ODHOjS z`|p6R_ccof%!TBivV`)f+iei*sUt|os`9qF>f%TUkqBuiY4>&{df0#x7dOR#)y+6$9iRdit`!A7w7o86@L;|KesAj zJ(b7Fw>Zv&#T4gfyLl-;vFQMqH#gC5hxegk<5%`UiIB z`8!w-*h=jxlKnp`QE~o#`NPnig)7g~Xu>XGtheIhlrFF7(w+Oo8};a)L09{?7vIO| z%klTJ?!@O6y8X;5CI7i4lz)Ak-NSk$&jg`STpT+u3 zeqTV3Kbu((_oH<6c=E&*inH^1it_@;d4u(pJYMPiZ)SaHF13HX-%D8!;`tT2UA=yl z;(PLO_DPQaE9-6S-g{lndQ*NLt@C+{bw{4p5yNppuHAWmt$?ofOUn!@m(G93>v#4a zZ|KgVcp3%P&wtlIS8>`#Qh9ZKb}A!1vpebEaDFCeeGk>MenGv0_1=7+P#-S>ZcvfJ%X$lb|4|=z%$0ZE zUqhj*{c?6N<>wH`S;qQf2Eq@Jl~JvDZjL;hJY6sHBp$!0y7$3xv;8lWMm@`mz#o3ZRa zn)Rojpz}AKZkqPzt3uc?nnN*ov&j3-jAugZA`SmqnI$G;Qdfa$dQvAxpR4#NYW7*02hz?Y5x}Kf!p$wIuA^coJr#qSTLno;{ z>+|+R)^i$DeBIv67(i5<$Tp<+<#Z!hcYc8C0e{ZJSh_iqf8iqX*W>wjtlM9oc61{D zSYN7VozEq#Z{_E4x*qy8ApcSerK|NU))(+`{Bh3bHP)|Or2KSX{fUMY2Y=zjP;_~x zvHm;1H=*mZIleQj>LHoWKlM2C3F}{aQ5>D_1=gGLyqym?-RAdDoO66XP^a6C^_~B! zTmSy756dFG7uRzE>qUGW*OL21!MzmU{`pjw#-w)}PWj}+gP6&BzYbKN1390&SkL;2 z(&c6;*25;Rg??(Gw9|vDx{XTxapvyIb_4ey2&SM-WkM%;n zPI-&9k+;@#rG!g?!(>H^&*@ zf&4eck-r`X8a+aKZzsyX?x+1(Z^`!?b^S-NZVsYy>GpF^M~>f#+QV<0ZVu~f`2M7h zGx$;RPqb@?iLBq(i}I=S^D$mnQ|)BXK#Jdz;~!_;{=M}Y*7JEDG7e|P^8RBq-lo{i z>l*`I#qY%B)$Op5bx*$kKZMiu>rDQk3n)K&9KHlyjpy(ELXJFLQVhfdV-?^2x#}6{ z%KzZkRR1`wGL|a#PraY?pE=#&E)?hURI2|2thaic^jN;m(&K6f>sfa98M0U(_%r2y z6vruI-TwX1SGuZv{`>L`^a$Lia?$fHD4aM4U6nWAOoHCF*At|-;qMyhPf;8*e_ukUwFJ8H zU6FH6MtZF{@eSw>=P6xm*cc?r8wP|lirv05UsbT{jSIJ$NG|gQ@i)wJX!C|=Uw`^naBDGo}Z)J zf8%~?TxuiS?Vdw@0bRA9#Nm{#&d+Stui1^0$*lYGb@Zd0|My;^I7fJXrrz&q&~;t0 ztAYLO-~R1DsOa=_1@!2*X8njnfyogrZ{>(7PIbINdE6|oSz4f z|CJ2dk7$<0GW8YG?cc9o$NF<#6i1I6uMH&smL;U?`u~pg5Bd3m*5|X{Du&Y4<4iH@ z_V4fSc@^V>`2k`7UGseCYJXKOp>%aSc^n=5|03=^;B&tE|NjfA)s~o5d&VqDM9iun zkq|)=v$(RZNFqyeg~Z;}s#SY$DQZitTD6KQY8O?tilXUK)&Duy>-9!XbN_Db@B97z zugBxQFMZ~Hz0UjW@j2&wG!Hb^A-j^BeqOtPmv(-ay1a&Wa{)Mf5826ye`4=dNAyFhCxT>3qj;_ zxWB?ioh9Ul_rhN4k!wfjROYx{=2N@LC*4B%X+xdronYUY^B3u_yO5jbslO*T^Vh92 zbkYyQAE_7H$;b5sZ_RLPb%A|zW1X`b`A)94NW4~)NANjC6m@*MLT5`u#7pKWA>I9Eb`dC|V&``|r{`?b0#E@gnGj<033-^Y3+Hf6d)CwLwF zly-P7`DE@NkoXqq0ec^J_$lpSO>*--imBx0Iqrw#O+BF_^{7Kn=%4ux{z!h!BrnPN zg7h!>t*~G5ChE2HYfqy;mSByx%~M?Rni7t$ zTeQEu4dq|jpVl_$nCrCH$pd1MFKSxn`1Fc|y?Kx2@8tVRL%$dUx2lF(w`2F&zl(3P z$u9;XU!=UIeT{5qkt+)=i_7UhvxR=N$8~4ok$7b(;xZ--9(AQWe zOjlg%cjb9%>F@55kDh@DWzf&vaj-Ai8U74mKDLVocj7%H)o8zxyr*%`L#_nax7`AL z8DC8&FL58`MA|XeMA%!5{vwoo+-{`5P*J>SMvSq;ir_tcaos<3Gc`7Vz{fxJ@rNO>Qh~G$jy5QJ10ZOd_I*x z-qhI7{E)l{$05=VOt)uW9&RbF^ZnFx_%HLL9x32v`<71bGYR>%l<~6nh5c1N?^{m3 zl6)NJU!BPt^n?9+&ig8oA0j_h2>QjCKGjp{59f~ov`-;l$8{TN&p#sH`7v~4oKPtZ zItPsBvt!7Q8T-I9$WN3t!u{M1$G z%e=ni06kwTY#F{E{SnPAXB5}@b>#-am2pnqf#4hcp?{bD>?i-^JLt!dj~oR1iiN?` z$*T+oj~xLW>5sN4uGcHt8}rBAitF~In$e!*RSkmnb1KK}Vbt$OzWF2Qv-(-)lds|Y zNZO4f!M?*pGm%)`wC>dG;tX0YoA8A(hmPX{z*A-DJRv3!~UKd z(zzVEBe!`N-_`{S?>fxwjYWrMw+= z*gIQ3aNMr5%nO4IOixr{EayExbR_ zg*t=D?SDZ>O$Qtwzp=27;dArGw6`msU3%`KeImzKG7l>ALH71_6?fE&KM=08W5>xi zE=GLa8Lnj<>??5{zBT#B^65jsb?uTsiw1@haRzto`p4DvM`&r5%I zQ1J>XXXJgVKD2k91pP6b&x${>ip#%g>iGJA_Q$3mUy8Ckbo~%Ie#Sn%+2jYfzAfWY zr^&Ey`ZMaOnpQYIbI7N@0sUVX`1jmkj(Ly$DDrAN*Dv$;U&vb;=NYF= zg-&;_Z@feO+|$4x^ZAj~ukz%PHQ;9+`rn8Aa&F}NSn6C*JiGM#jrJ$G-XeaMpN?=> zg&@9C{u_~du>BuE{X66{xsO!r`+NkQP_Fk%e{_z#BKJkaQ>Xb1*w5j9W+^{2$US)8 zurlp471!ggU-rgJqgn9doF;^)Y`1SwC_i5uA|N+cP)-^rG0L> z5IQsFAYM}b6UZw*g?%p8uUX`oEnq(uUzTsltMgtjX%E{jg1&i9a~8S0Ut8Mel8a$) z&X-3iUO}zjmN)LbUrc**AHK^H=uGB*n6H^WACq_Db1{jp+fvwnY0T>{kem0$JX2hc z)6N^?G~Z>=G0)L|Pu`d3N=nk7vddu~#pfX7$UVu;_iIFuFZvMq@)qrPkw5qv-wUTA2emKJhWPga1%dRoZ#FHl^!hx=wg zNBlWVUYYl?NWHVB!@j^g_+O1WJIRM%fsV8fPsm%hMgp8>e5ZU2oxOa1C+S~t4a!d< zpKq!s(2h?_#kHU2`Oqoki#T7CcJB#!#y9ZChdQ0tLgyy$kq|%clh+=Ec1GIyx7TIg zKPD)y{W%bUbdd4eQu5qJJ6ZY@*ze@NAnEVMC@wzGMaS2E+UMcCPtqrNJ#_Y6MS4nq zx=Zowbn2JDx;*!bK>2w_onYFRZ;Eu=#qv;e zlb*-@{o}2;PPfRP;eRAeW{_{)58jwM3pd05B-e{7(Ebs5ORfWqCePRc`{8V_Wc;6F zEBHK?H<^D;Aa8vc=_C7l>urPmL$*uO9)>9{Y4vjK#{UO?PIUMjR>HMqWUn(yah*PX z+-E59E$}J$Z(M(nexU_@ggb%!3g=%kPuWfG+#2@p zGGE#rfX)bG|H(Y^30IBsLw=CuP5deJIdm+Z&<|uJMv$NE3jck{Pm+(|eFc&)xer38 z{cVJsO#ANS`CY)JUVldZS03p1qWyjH8na;^N#5`f=D+0+qdfbNk5F8f+Ywv`s6#%R zyyTBr^Re<_*gF+PeA8+FIr&u1kIIo3JOcYG#yZAo^6~qjQ;hbf$j$dwG(HNQJt^=< z(tkSn(a}f;X=mzu0sH1$pQ%dyZsg89=OW{@B=V`oy%w(>gHF}!@Keg_a`GFzFRm8# zx09ReCv}fQXBF>z6rJhhYZf8DT&VLidFG#pZ!VVGpcBx^cz=S#cM^Fz&v%IaZ{)xAgTCZf+w;&V%XzVl{$D2d z+nKdq1YMy0=ctcTo)?jy7zh0c)cKP##T9=Q5W3Cij!bI{6Re-|^lU zFZw_6JLs6_omY@ou7`AxeyY`t?8h7Z71#aX37$`s^?|R*BRLL{e5~?4>`Snm2#*tf z7Wvhbe%>YD$oZPsx4Q|QYs@d`cpO>-tTc#+k=W7khq8+}N9|5mYT&L&YP;e=q zXUWrlLcAu^PmjB>cja@{uH;w9yKtXXAbIW|VBe7UR}3QWNgly-j^h6^@;Ni%kLa8x zZ^U$ycCYch?90g%#dW-Hv7MK3a*g}o&ap_h_4KDd`2+5UX-A&t0qhe~;ZJ!cXdHQj z@!a-T@-Mg#R@#lXe}vAu0SI>l_1lu$OJ{8d&Xb$(532AGI<=Ya;^%SlGDiQ>>k;hz z>5sI}!^pdHTq^bS7J2#(#J2+d^nDDS+!^p++TrEo1Gye9pxPzYLT1gl4g*b@8#J-9@`)O z>}R;o$P2rnUQA+nX!Q%i-P{h`h4%Bw6FE+he&-hXsYbAGP5ZXLQl|#SA(Fq*Tvj_QTK0m6*b=^bcm;OY2WqdLwCv*yPKYvH+SIq_P z>xXnpCqGPHd@yvReBL0>;feU3#FxeSHRx<^51sLhSG3}e{UpZokpZ-KVgD}mv9dal zuKN*l9k@MtwUtOWY4P17J>gVK1|G~ z^X2cK;fiZN+i~A=8co{g2hYX(ALO@($!l@HocLe(b=dD7nYG-GCGX7hNAFSp6uEiN zfB!e2bAt6$!u^rFHqWg{yz;yWd-LA82IRwvBHg6?tRy$@t!+>MI@NfuLM;94Ox|=R z^5p_~Rka~Xr`xBCvzDtKAJBp=RwgHrEmJ3}Xt>oYPR4<>KGbpvneEF`yZ zTvVC7P$B5#9tD5;vD_XeH_z`sBsb5`+6qI*yl-|k`BAoGlAd*nz}}@8@?GL}g1p93 z@JICX8F~Ip@Lu%OyC~Da+_zs0+&s7YG5JB`9PzK@H$O-E%R1pUb+LeyCA#AH%JUZV z>kNQDQl8z(&3*5~$j$TYOBHvVkK=ppTp7qt+COXqe`H+OQavEhP1o7&u_j! zxMLZwNb=NW;7iEwE3Tj09yZ2T^-Du1(U|XlLjDWq*D`J?UIzA?SD`%jr@lM+OUqwI1&B~B|lsaI#-N)m@AeC zZ^r%n(`es^Jc9cJWjxcU0_+PPf&Wrg_mVH!1wMs3-;nQ%hd*K;R1rFLxSvq!=`C{e zegms|P^-y_(RuR~KB$)dq5NU&<45_l~fy&u}}| zf{ybsgxi$$@dEiAVbI4^U&8^!9BR2q%QT#kemDNG8EVSLJ036lyTbU zv`^={hop0a8}ys;oTjvI8_CW0jCXO*=~%ZJYpmO>QCyc3^Zgf3$pg6WOUlXqy09P7*sSvoVV>k4G{X4w(PyC-t9+8TC7w)VE_S&B@yg$l|`fJE{bKWiW%h?n5 z&p575r~L- z0f~EAbwRyO|3|s9_7}6rlPZC$?i-(XVZX(g*GH2t>XtQ~SCVIbjdYXtvy7@xI^0q@ zvxb{WUSJjME3$pa`5x@e_i=noKK?J*d(zE9&0v3y>$DQz5c29gw6FX+F|=OC>aZl31gdEZAqRwb`TzLU?(r2m~kew62Qq}~l_k$w66TydRl z=6lDgv;;r86X7;yxJ}9HaDFZE9ZtU8IM4W%;(DH5gZm$(TzyOX*6jDC9M<(lxJz4S z&BwLm)4L!&Wxkx-2lh`lgO8w}f#e4`4wUu(E#xzd_PKd0=p-8Z!#^Y+%KI~=AHS`* zj@LM@Kgc@&Guk)j_)7Y_0AJ{@9E5Tu$@oqu zU%>q>9mwyHo9|tEqc!v^UW1P8WAPxLJ2Y$hN0OWGyE#s7_RH1UK)(^sJ4idfgZ%Y@ z2v^dxhd=BSbD_LRxpiraetDMBFDELl%kAdR;O8dB_dD`BIWfMHaauqCbZ#3uvlQ1l z=KAM#a`Sx+J=?+Fm-lFipZCcRcpzTV?@VY9`>;BQS3b5s=gHrA3jaIN|4AKSUmyqU zr5`*<{*e3V+M!rj8VADu**@40rp``s^LcBVAlNTsd+ts9Tjb`sj5}_FZ9L zp68v#|0Cq%Cd1DX><2&Y2K)6qFCgW%;``v+M#ElsKk`y+|0^(Fhsk{zujb^w-JxT? z-@G?@Kym2jraza-r|m#KivOK@KxaGm;Z&ynX7ZtY&(t86^Rhi*AHw_V+-ZMKaov6n z9R?ufzls(187$8}v|m7ey9)f2_2D-|V85_1xb)ZU6tAF1WCxJHqBEQJxtvgb%dZedW6B=Jiq@ndC6`lZ>}tdIm2OpitB8V)bB&yhU-g`&OeX` zvwlhYTqJ^ia-1XW{3PhGCmpJ3-;zY=!@j$dwe{ivLCk$S6sK-o%nqGZI-us(croH++W(0 zk>q`OFHmFJ&x(QllsWLpsCSHzOU7yb z@zA+B3+W*FJCEFaPsd?$Ki)$k>C-&{I%T+CBsyovZ*U)))a%FOow0;>T3i9sU?b9N+;bwxQ@LH&8;^Z5K-%G+6T^PFbW zROp-UW!p$@zF+AMc_!~eSjup#r%}h~FJ_TH=JPv=?<4X(+;>ri?ZdGC(Am!Y{F3iG z)i^-+U*-ECKo^F)g!XGvkPdQB#R+nEt{Y4KHXi`}fMG~~;XBA{EkirwL;X?%VSgnO zT%K#hkvHc$o5bsL@c;U>>qGkRE_DpfPCxw=#MHh+&{>7a=t9%nbAYDZ&!~huIs74aX;Hl@*lZA zDe-!980^jS)N$l@x!+IPAFturha0504mX19Ha7Y{iF{8!lm}V2yi4AaEHDN-86QAL&ILCkA6O*oIPDtw<|o(( zv3`9#3HFUR-V3A7W%7&@h?lI}dw&S~RE~dS{VJLK0oMmysB=_tX}gFVUsn~^ zkbg<;&gV^XezWxq*oQnu`H^;b7x_W%XORA@{Y==^nV_C;xO3Da}EDFupi3xQW-A|BEMqXck~Il*{=o6 zg-%PJml@A+*OBMpbAdqe;CZk=!~N=&$ybplmVuwrzEztKd-L2`3i&>+S2Utdt_84P z#QPhA$Tz5D(a&ove2$M$ES9~rZ!iPtR)_Xa$=~34TN`<&h0u@r1^FoBfz9L>*`G>( zQFsyTryoFwQtv(@FI*h;bS(8NEr$IKuK!5-tXEvhHcj!h1ojVWp`1uNR*Sq7_Xh^^ zM{UT>`A7!&?3K`wdg`+j`ab8tn(@= zP@X#oU_Ba1-jnwZNxqj^0ef?tmO}2!@+12Yz9nxm7Udy73rgLU(8bzY4{!ait8xn(w-Om1Uk)m zE=k(Se&mTs&@aexxR?CYP?VpljMshgwUG$78TqF5(9h&JB#!(tdF!$8NBkVV0rnnT z&lLV6`I`D zjs%zbc!a!TedMDT^Y=UQYx!XxN&ny4#&qDlD1qc5AJ>w1pONorhIEjA z?MLzk{>T?8hi!I2$8!<5%*XGNpW%K>iR0kiu)on0`Z5l`uejLIb;noz&tU(Q=QpL^ zjU+ew-=*XOxsS0f#X|N#CpXuVWgax1d|(NbhjiN4+6#O0`R@So{GVqnKZh01&i~uA z|NI`(N7}u)`=GyUKhihE20^Za=A1F#R{ekv*Fqsg5(K9_OVG4l0H zA5X@2f33mC3zSGz;f^!(s^`;MY9bPwtO&ko^Ep$lG@UkEDII6VN}w zbLHZXuW+6t*hl*q@&eo+BKt8mk>AaY@sId0_e@Q392PD5uE$3>#=M!uWjN_|{O9>H_RzSMC$qsynW zWo*^{mV@9!t8e> zzur0v`*@cB3iN3h`Tp+6cbP|gOTPUO^xbJc{v34H80RnUkVlry>QCGAu)nttT%Nb4 zE3V(;;L39@l0;i+UnnR1@!=mTUw}@_gW%%-X7Zlwk0c#RUCh4SXrs7JfAc*%y@ea+ zGRBcNG49#eM&2w9@#;=Le^nV!pHhBilE?CV(0az}7J2Kh z&^}Bg_q`6C_IXfGMQ0tkWfJt|IeWhEVDFm<9!4EE@|e!x&BoF(4T|k7dRhO$HN_;nYUqYzV{^89Xy8( zF`mPARb0n6itA(BsK1gtiO5JsgxL;lR zP1k#{KiMATLF&;w@{Jq^N`2WyKAQVyWF6ppa&vvy{XX>F8^cd&hbuh*Z_0hDZ5iJY zi)On=1_)O&Z%K0<&ixxwCi?N)ClV4{#g!4x^eu4c%uG6Y(F&v*7kPSj z6@)AG$n6i>v%mO&;jSjn&GlR9r}8|7z4M=_@6wO7AiwcF^pmKwk^GX;{@)^BABb`y z{kZi{=r`p&s~~l5l6T`daY@hq&tSi=FT#~|(ZYX`mxG^T--f*8W~4K_0n0V=!9ma& z!gAQhlFQNFn(tA%M!u&l>_tCk4%px1^H8Zry~&+;{#44zSaS2co+T%AqPQMao$2sR z{p{=A7}}ffAKyYA$#z@D^SN_D|1#G}q#g|=U&C|p{tR~^c@6Gco91Rb+qm`85r zZ_(FaKZnm*7E)(};*usrj;|cKVQ;RV1du=Gx|x*22joe{JpjG(WUs$TaowK|$gW+f8o1*X)+!*`R1APl*uYW{wo&KFqz+QZ4Q4o9)&mG9~#81d;b076vOt(wq zx4E9|LhkIGeYh1A*Wr5b-0Kk9Z&zIRBdNyz=NyH!j>!_9AZtHfrWkap&4azP53R{7rox{#40jv3*{|g(4xQY5 zPEm^XN#u=Vp)Y=ZOuonp{RyweyIFbDEaKu-_ ztzHWDjmCgWTy`j~%V(HzAIKN9U(5YwQXb+;L&sc?Izhf;Bm9x_999PQ-~O33eZC-1 zAA|UcKj~#*|Mm^sJA%YkR?g3ciFvE| zH*$O;W|or-Q+9@5@_F48%W@#^FP{gGS;ODE4Hf6yHElD}_Og?%-?zoQuK z)5wd5A-+;>^HhWV&S;dYXxgVMuKgTJKb`659@?AdhU!&^PRI`UBk7Z_cy{^tEA8Ls z`k~l#tO1>Se2=s6#pEjrW^F%n)r5T}^HIjP70G|&K65E=J;($2o*>bGvlevf_ksTp zm=4{^*M%Z|Bp+9jUuU?YbCKMC0Mc3NMbJCY@3I8?Vn0D~`8R`fd@cMB{2p~y?14^I z{-|_q=+EN4N#5k$6fg9$F#kP?_NO=>l=0p{^2i~GulQfP4)o3E-5-(PzMr+ds^O8Kwt4*ShqU#(63E##&B zvgS)U^&nV}H?DL2P|9rw^7CAm=tiCI$>(*3pVII6dO&9>&+Ap7{b_RZzWOHhV4unL z3Q7Mca`SyFGswHWi*PGbzkw%on!JwulKQ?-aXs$J%lW(PV<}o6_9v%9N1n^Lev(^iJPl49yb_Vg1d>Kmq zn(;hki{kn@`%v!Nsl#w@)BYyU|4RMsrP^hOpTpsgAMJBA0UxK*Pk+83FGX(ND_D>G zc0Bx)`&-tKpACVI><4&EK9>EI_>=lB!fg@^ds)9N*c3bu*Xv|F^D+75k{Ey1q@Op* zSGmET{^a@IgN}KhzbASBH&HLdpY7xWIew7xP`Vj(JUH$Rr+xtWv>%Y3!^p3Z&*8?p zmE;yL=!AAed}aJumAo47o08`g8x_~%F)w30wukoj@*utossFy}7j^#r#`Sq=|HqIg z^4yuUz4=WnRbU2l7!I=ZK$k+rZv6AM7VH+s@dH+L;XMoKsx)FAa?K;h(6p?mFTn?bYxO z@Mr2h#7n}RM{eG4nKKaf>uVw1$}wDD^2aRaGJm;5e#9Mq+G+0|1ReW4gxj9H2l?hS z%Ig88-+*P}*+ml6Spd;gfB=WJFvet_)$<6&mDXP8GI!{+ZN9w{^a;p_w z`mcNB$9@Kv{<>c$=oH=y|7AbVb#imRbb-#W&&hQsDJOQt^*Ddg_xT(tkeBH&hW7rP zwA#Bn8P9h}`OM!PI#FC`6#rY1uk%Ftl=kWr z`NnwU*8=+Q(E~c>zVQy^6MDmcIlt!I6ZSqv`5aHaj_Xv3Ooy+@8)RfHhmBQv(&=fw zFXJHj0PZW0_~r_M{nB?(k2cc(X5?j6d!|1!9+*kqe>%bqrTt-Y^Sv8|L!p1{B+@OK z_Up;Jv3_}zKO*-r`p3#)(5Y*Tqjr(cDgb{zrB2mw*gx!paC@^~7(@PRm8|8VKm_cs zRfbL=b=r{k9|j#MpEt<+@ZNGC+Nar|W1erFM;^)jT~aMI+oAT#u6RMl^W_*V$T7=n;9;WyDwZ!`_+$= zf57v$QqF%TUvd%oEA4quZ-i^^hnY+Cc>(U{k#Gyf!QQ+F zpc(l(?i-Z$c@=qa?k|<~;XJB+(e=7ZPNbVWulFLqUJ>z<`R@^O^L?g|$bU5EQ~eU4 z-<;*D3iE4*;?AnS@O_lEJj|v2O|E+sXZ@O+2%Yx(kzbprQ=kuc`e#VbJ>;(BIc)G> z+UH2}rAM>Y(;vx;pT+c-bgn%FIB)Ddb69$CL7ZO>sRQ_T@e?c%_b2(%!s} zx5OyupBf3vru4H9`3$aK$vM6~o zr5CaE(`CEfaeewE$_Fo~s((bJ$-_G?_DJP}I z!QOn|iXXW%$3NZ-H-r4~dk9zh(-Y+8Io#Ugq2H75uaWY9fZT=a64F1uJpuMJ)I3Rl z)b=yS$A^4fQKVaIV9Sr>L-!!QlFqFrLZ{I*=oF*Caa(RsMZg`Xc?p8S>UF=hDt3&x3v7Y1rpseLP40 z2FC-^o;)P?=lyBk^e1#abPn;}6-kGCf0@#<~b4h7${~{0bM8EtV^*tBD z{yxv!b|ybYeti@2OV-ajFM|D+#Z}gV6Dz&J)@XH}0!xx(xawec`{P|9bNH-QaTWV4Ip3>3IFddk5Ij>wz zJ~;_GvVM|pCG1=9+`W{C0PT%`z4nL6&Gok$s{hmenCIN5k`LrLP#GWktcCqE5BMql)Cls5 z&)}!bznZFk*D*df-eWsfaUHJHZrDqGEdB}j1y__$Nl$n3=1HhuvVIay9$XgOkLfvx zym33|Oa09xcjmgHJMF{PBiskPx4#p4I{Dw$kyQVu{g3DQ3n?eDpbDG>dAL^C?o!Y&!`tv3EzM?2^G7f3`DeQN5fW6H3Pm+&r3V%H4|6TG~ z-2W`;5VRdSsqF709iEb(Is_f*-=kGLb-8l=4CyI+m*S$yARS*{(!N^@=!pNnlAG`O z3fc+%_?jqhC38S+p5l(@R>pqRo3uC2Q;gaLojiPgD(&Yp#r1k=!-h!DPgpVXs(wPp zE9M~ltjb9AB)>HPycW5geDXKoQRLM=gU()m_%Hond-5|z`H5CMyL8K-eMQa}r2dvt z?XvcB!P`iG=`XgEr&sFXGgrGzbm~DI#t*Ywqbl@ z$Zr>hzMOOUg8b|~=*alC$bRTJZHNC7uQYNqJ>NM1`=KEy=Q4g!oI-A{7tJT1To3vO7~lQm>3_n1S#K|=%8kyKrc0nN_2>)oH7&t+ zu{@7g^-9}2P0p&biG28dge&#B@nP7T_W)#&o9AJDkHG#4_my>}|D(u@OohG+`5kie zc~HrtST}BFoX>SpT>Ed{0~ttOV-oa-Q$K^;h3O{w_#OGyaHNlnZ+*UiegWH5wRao9mkYDC_TkLCnh4%0)8!8@;w8Sc|^Y@`~zU%|?Nq-_8Bp=J3f_)*5H^k3b zkM>?&jy$NWe<6?83>orv)m#N z}> zCgLUO6HPw$P2_K0mY>b!TRA_Kez4F5==9}&7%2}e$UiCseVG@WAkVP_T*i%Q7olUW z*L|h9PUjOt;rK@S?{W$D=KBi!C@yJ5Q^(hE+Sg(^>B2u2y9}L@eUal*ucH;$;pQ!k zbaQ3?4xs&%OxR0USIM`IL%PX+n++(=? z40L4Op#K%{vs@pRahLN|=>I+r!jGumNpY=HL(QA@XC3)v@-8eV?&Jlp!9I5dgjoyf=zm?qCIPdTEEp#ewMgESU{Y3Ib?nt+4VB|{7hbh`|G5?uJ}E4 z7IFSA?+czyo?F!?{i(rtJtV)zeJP{K2i=6uP?i7sBl=g!&3q|y3-)vPz8lexCBNr| ze39`isc^&z_oZ*HjE@hj@@il?=uDqw$pMShde&i1HWj{>Ro$PhCDX#M+vIXoj z5IsxXyWrhFLwOiP{SV0XdcXc0C;yDRmYT2YkCdy{KVZHv^c?D!)VoNPTPAL=N)D$uG@z|?vHh* z{Yu)eDv9)IP2Ts@6f5?1ip&(=&It5 za|FhGx%v~>d;XH!p&;u6v&fwagUh(+FY>cfAuR1=_dlSsg6GJ*=+7l`^IXpp@=nu` zzmktroOUoKRuA!# z`s?%;>}!;RKhi#YLT>KIxI%6|#~EdDa+KSa+{YWkaBnLvaVK(oHO>M1qwYw5X}4p@ zmj%PmI{eW_^3|LNiDpT)uSnOI>Ac5S@@uf-dc1Ls&&$fQoQ$HqSueV(dk3_R`JRY@ z#QA`HQ!f}_ume~rpzy=*I>W71^5oecM5q8->f=i zKgf}7dak2=C+@2hohRfM*uO}5>zW(k4(tj2att?#+`OMBPafEt_q2~DpUiU^a{j%g zdhVjrA?hshcRBTYllSHMDQQnOkQdGYf216~srI{Toyy6`K&f}j$kVStzasU|kl)yk z^c+LJJwJ5JdyTG>&v+m9($2s4I_#(AN4q5B&(-9md2jqY>gQ4C)3l%Q)8MDf7m~=G zf)Fn`XYn=piaD?kq)suFj#|g;f8)q~GhqJ#?e~(K=VzS@K#M^N^ZU<(WfwU%=d5Z zByaEr(wWVHrA`spZy%gB{a29}{RI9@W4zuj3j3*CZz)K=gS>xn=sfS2Rllg?Rh#ei zkn)*KK9T1pB>g`pzmkslN96I%xzcOFmKt3rPeoFd0AUE%;FZUL7Rz-o z@qtlte9fT!VYN=9KQa%^Bsb4j29|)n`97oEZ-Zy5c1V9@U(h!4M^Q*OAID$S-%G+i za24$1$?uVm>I#28A}>-3_MbApBrd_^=DG4!S7aKSsE6FWDvXeVp&e z`bH}?KF~TNS$>K*La|uBRy;dD@6i4Z*QF($eab^;JD*F+Z;z6j_sy=a0Q+?uS4h16 zB;UFk{tHj32z&E=7VF4;I8GM(B9&mDc`0i>jVCwXi@JmSfSUj5kN97)vXf(9VqWe` zlzB~C#dW%MYXLuHUh@rkg8-BV*-u`!3hd8LgFiB!`G~x`nrG;bJddd10{cj{&Z(bm#;;82} zYJnH#`wctNK7(BEchDb6hwJ1ExPR$1?Wev2or7N@-DG_JCwXb!vn}~Dzc%c54}t$7 z)X5;9#&dHL--tS}H}6|MLvFtJr>-mP1459_;=i5zS5+_dN9yl-awqOb`kMYkxk2Yt zqpaoj1o>e4S&a65)H;_gKQqD+?ga8>FiJYnyQ>>omz3wk@tFR zBsce$=JJ63XMA6zq+2=iWA!k8i=_TWa`U-W&w9{FT#kHcN&DZ)pUi`wq95i7`?t7X zLik0+^}OKx90>e26a)R6w7;7K9Vxd3>q94y&o88ZUqv3%73o%i{WarZKeHa&S&NM-F3zFe7S@%U#`^<`ooVS{l%YtDm`U<$LW5hOv{nn!}lzMc5y!at-DbG3IgZ<>$NFN!$g_1wEpd5EPX9+v2=_PYoF?Bh zkm*DI7x@*Q>ybQ7Z4RB5e9udD+8-c)?;i5yGI?Xw&*^Zha2;F5GxNw#{R(?ohk3mv z>_gZNNcntUab1s`BH{mh>JOlOqfDfa`1!rVo<=Wyg{g6s_NNQ?lSK1x*T^>*_psIX zfxY`-_$lpn9Qoxl2sec~kID0FhP||h9a=Hm)yOZ&$K~Xctl%=f`ia~;ht<#*I_7xq zpyCqum!fNV%MbP?xX$xB{}@F6w0qWcJ4n8p<<_0{dYxCNTX$o9pa%I>XT(?XH-UV{ z1n|n#Sxug4>_^Jq2Kpm-?m*%)lH7cc?P>B;Z$e+{k*_~={@^{pK@4{*xzhr~SLQEo zwT1oSw5;i{n!G>@nI zls}rMcy>BxX}|6&!p#dgOWBUl>B4d=ziqF${QG5p=F`3(&tr%DOfzHq=%X>M(Xg`R&GUrFq@2n>G zV0)fM`z~Fecirl>Cp?tUO)7evT-Oh|v z&ja-*H_O#r@>Q#mo|68j$(wLoH<|J3_&(!hq{9^Q^CJ*1S!XD!+Cd#|44=zOzZOD% zX&Azl_~z^Z`>Q<1B<;xz^75*k(;t~%ms9De^#?8l7ynz6o9FL7CpX{U;c11=%@0uC zPBOkZ)c8Q_o6pyR$g8pZNPD%G+&ou!ko;Hmd_aGEsNXFV`aQozxY92#A@33od(qDk zmVN#fRb2boa~IOVo%(*{i(UusOFn|UzuL#4KhmC*3Wv_V*|3-K-k;<*3L?Mk)M*?6 z`=(r)H!CB~-oCAK~fbfm~0P^7epyp6bW+N6P zXX^K=>ioL78up@dm)wK<-X+}D(Xcn~Ll{qPzQ<|_xq1Gpd<=A|a(zbX-Dl)`*j`C` zJ|I6>1^H6P5j%_Jjo#47%W!}?{F352zLhwBllCg79XxMU#4Cnk9^@fv{H{Mc$sdxhDFb_1C!CQ2 z9djMYvoH9p0O*wFcw-^C`5v5d{b29R@qA^5+m$@N19ZgyI}7UZ|c_i_C}=3hPgL&w5>=8{Ku$QSe6 znbf1&17L5S3m!;*xH0+{>91#yuUU!uBKideLMI>=_VV7PY2=N#PAl_;OXOWEAilDG z52gCl_Sm^lB{sMXB^5E&@{f5AP!94gc_fIw-3VxIK z*~+;3JMyu`(Edn#EyG~{crW~se4I(%m-EDu4EH3txv#a-aOf;yzdwcc?~$Km`zGnX zNb%=B&{lu_M0@jnLp9ZSPM52BoUh4mt>mfqkPb4x&NCABpY%eyiTy}&^W5l4@<|-O z^`cKMqoCtj0qG+;3&@X#LBAmFcaqm;J1q4pYBY3io=16*^}uI}>vk{0SkHN54D6j) zUnJd9$UoupAo1s&v9RwyIBR*f3g@|i@$_>axx1P->rXB6@*hCQJU^I0et`S#M5oj^ z*so{(6@RuUuJ`$b96))K^86R=o7IJ%QhzIthmQFkmhI#ZbHPtZH}46sPdy7AS?BqV zd|W8(T^O(K6Jc*YZ+%AoBhPDy|EZIx|2A}Hvc1jyA$ZB<;4;4(O}-!k`77g=OXTNo zpq$9~q~T=fOy~KC%Jg%%;^G65<7+YP&2!@S$jy0lhbho6Ukc%RQS2dkInLjuTm?;q z{l-Ixm#in8B7eZ=<}zM=Mt-s@(%+Z*ZKhG@Eri>IJd^x%1K5lHpy{xW+>dm7u225- zJp7S%>G(&mPgnhb{sdA#Y6iIby9k%dZI&D4i%P(LH0`_1guOHGRg*ODM;>w-_A>50 zO@975^t)51%`E8nRD`{x=eOi{UPJkRkM=cZ!+vW~*hiADBR|ghrugGN2lnQ|FA#l@Z^&v=5&LoiLV98E+gVH{btWc|PoKc0&1)_GgUZ5=TlqzUDZ%vt=3gol5_; zfjYbUB3@Pbqg)H1|8x-il=K`zUY`5OjOjP~HVwKK`Y|ryj|2xHX z|7GqE_gMtKe+zVm(Ec*H`JA`OV%VGa-i#qP??L^6e2MBO^~aO?gO)(Yyf^O*xp`lA z;ia(eo(Ub9H`&P#Z9;h~O8wj9myL2#a2a&`Q<46aY2SnV9nPbrU)Vry?khV_?xOlb z{gH5^RlBUyxpWEmBkf+^72sWYUPIcY4dj!@z+RrqJFSHMsv+P$^m90Qqu;>qkbgE^_Gdf7&v$d+52whVwnm1CpSI1g&%^Up(jUzv&uj)AnRkCr zUYpO4Bwo+Riw=W+B>f5B0{sabXErDQnA|)+{+K*|JanYqMQnvm&YR%!UW{4f6P6?W zr5=4to@A`cRo@1k!A+p!Pk%lqH}BCZngM(Bo~tFq4!`{~$N-kuJX% z_7}OoNZLJL^0NhzUsA66kl(nC`1WH5zn$D?V%GTnPVW8;_7Zp7zU5iUvc3^=0Q0qGyqBg0?N=(U^)GTAxB~ez zay#b*t;oxM4*MFRC_nDx0puq*-;s5~kI9Qpf0f~3C7CzPBcIxk?Gkm|jxryQpxpY9 z4^Uj|G@F~Xd}fm0bAyif|Hc=vFWn5hy7)=HITkwo$h#lY_J9BMcW`G*C-yJW4~`(u zoPzX}aGj1L+{PRaOTMI$A7;BG=}_wg?4!FO-=*CfPadnvss2=>Yo))0y(iyKA@&`} z&3%Ub$<6zbE|U9m9xeVfKMDN?yyscs)nD=Q^x@^N>9lWd>}NYnKE#;EHUEnK^Ilx( zr)H54{1EBslmnssLOyM6)_nIpm3@0MOL1LJf>}?c96lny+X3k*_vwv44g0z5*CfBb zCojGX{z$!Ubq4lD)wo!HWZe4|`JIm7qLb%q*f07B{)Zx3mN4?B+fY6wAGed2<$0Vz zw7)=pQJoXjpV8zk&O-lL5$MSM9?QsYt8s+>h<=`Pu+QN61xf$X#tc~g!*-y&~v0Xoeq!(P^H z`jbyS3Vmsxza-De=M?GGNxTT1fqY&s>emMHH+Vim%Fhk*`s<-Dy!$uwU-gIjBkhCp74V-oWwjqg?r)r5 zTTEW4AJXkl#_Iw38unkJU-ByS&vHH@MFpzxG?`XQ=U`{z$srCGWv~v%=HV{7|-2N2I?q$JIZQ|B{AwL&{0v z8?evxfuHicW~SoV`E!T%C;9wW>Q}_~(3v~{`ogc1pHSyz^`{a2?0pmc@-^e0G`tV{%Ui%-XZeXD&&&6WNP7NG zZuUpP51{j!F`gVtKKU8So6IjN{|Nh%)R+EcJNaln=aP2y2Kk&Lh_Cq5>tXigc8B6R zUj{BgK8k&%N8md-ZkKR-kURa9wcT@i412E;;8Nb^k(U?&e|(rPC4Yi_Q=`A`tho3< zQ^(gz+Lz3S^p|nMQSxTD5N;%YbdP)$pVvq`8JLN18ye$~yg!5A=lf-3KDdc|>f@~G z)AE<>{hX+{PEVHs@Usg2xk|pw7dq0;m;Dv?X1_L!Ja2cTo9ye(^Be3J%+2agg5uew z+g{qA;do5SiU04=8C?we(qG>vPm6=T?1yRe1oq`VLOM(R-K}_b;a;MB{!d^p3^7(ZDb*B6Y`>8b$FS-BL@(kR6G{Tj2 zfcoUs)*!wGsk4fF4eL=XdEURE6T$UBDOZ-D@Fcri?F5U}8X6XDwTJeyD3EMViHxir zZi%oZ*?L7M+igi!dz>{qHX+`YtSloEti56r!a`%M5%z?nWNT8XOE-p>|c0}=t)c2CqNe}bwXZT)SRsF_p>!r(2f>kGfvNbx{ni8KJ-7DS};TPkrLi%SviTme2Npt)}6##eTPO>#g zdvERQ7i6#J_@|$Ltedy`pR0USp-^7^SNm5m6Gd085BqM~JFDaFl3=u)B`5@yGB)R3NQs zi%(8TvOSN7PF-EhRTH6qmk|0QimHy-@F(p`FPq((m}Ki4osg1@&>Vkr(=MyV&l=Ft zUpGanCTKM`oqGBw@wQYu1B1P)#Ma1AyJ~A~Nl6Jws@7_Il{6{wi7EEz_VS<6`afU% z#LdNaVlzu_Yt;&53-Q2T_qqm!< ziWw5jnq*6~h1!+1uT>?LBb}^q2@y7LU9ewH$cEMyssoPJX`IDTGX!s)ELK~pDw@g3 zy3tlKjPsMU_4W=63<&bDy4AHdPf{h_W)IS(+FL=ZTRmZtT|srNU4pINU4mV8jI={- zRGS)M>yu*hi&hbj_V)Hjj_z;s*2OYd`}I8K|8>4Ar69YzYRFZWty+qNzN%^}NBe~) zMOZ^sJY2oow-2&=B!)&C3Gs?K7UXI54pQYJ*v+bqT)63{&ONW_wXAB&2^e z@KDLq!rfbWtFlCt<5k{Do99R`{=qNyc~G&j-s&gHH(RVN-0qfa_X~1YKHEKFRgU_p zKZZJhx2HA8+S``q-Ckvi%FmZWa2RCGuUPf7Sa0uowzx!lnj^zr&MsA-RI3`V3Rk#y zOLzIRo5za^uG?u{YSfq1%735Xx{{-^>x%B73aq0wP0(WrRoPX9UetC*qapG)Izf%> zRD6x0p0`J&8jg7PZPv=)uX&3uU95F$d*~lNFRqfhio9rn{z;KhiC$mT0uNmnpQn$z zwUf%Cgd|6fzFaR~Y7Snd;c-<>#Vb0a63kHoS}12!=~8Lc(%LS_(Im%*#{E71o_!r2 zszh^)hUS!N4bmO4f>@04- zVgk0;f~x8(H7~1b30S^V9A3^#DKFuUX+)5l^1-bk%V}_;H8fUFNL0>0Psx8;sv3lc zstG}~u8S{cT5WedpbxUg+jK2ZO>#@!+Wx&k`ZqDxO`lS&Z*8yoPj6LjP(%LKcCdB* zSE;MoJe^E^Lt_)|NSq+Mt&bxv^`AFU&wE`-<$oI#%7aRa=MC)3mGG78)N?mf(TM(A zVLGLWNo$nR%*QdUTPH5qgpRD9#!Md2-}N}_J6MU{yVQ;?iF4d z#J%#Ev!$C9pa1v8UCly*)ErT*j$l6TUXQ-kQ2I)2r?=%TKhLlveTCdaVB{adS^rP{n=KNhGOBS&ARMge;Ktu+37b$?;| zANo7hR!A1UrJ7wSu4)Xddq77) zQh(5+#WqZ9G5HT+zrxDEzaOCMrl^JWd3*H#BCjGaAyw#fRJc^vKe~o|b6ipy&T$dag!TFM1QBk>Z-e3mUB+NxbMq z&FLz1^s-ufg5v>#Ua7*U!0KMxy>>k|$JvkkU!|e@zZ{*zF$;oZ40;ci&m>Qj#SqVh^%Vyubw?cJ=ODT-7--v z^yxXFWO&69pI(4^v7n`v>^Kwk)}0>LGh11Md>nj4qkjCUtPG;?bvh)PTcrx47xc|H~rE*#K z)qc9;e(uWOSNi`?A-+6sZ>LlA@BP1OJJ9{NQ%fUgII=z_a6IxzOi7M%Eap2_30nuY zQMu*aw`HPgYqK^sT&q-Vn0hSJ*IPYyQZ1Qkrd_q2a=`J_S&!ANNq+iy#!E5#CtcRd z9YSlhQ$Ptdw8iUZ?$+o?zbRGa$6NEcZl6s=7o`1PoRa2>#1N9=1M7p7Z?f4+! z<M4SLX3$U%*wpVM)kEmOU@Pa4%(s^lwIL*fY<>QVLyjdVJ?3cmJgfDj zr5>}5Ps5UJp-JIUuQdPuH{&by98b?7jB2AEe5q2@Qk5ddpWV>pI*k1EVzACpUAF7t zcQP_bcB_X~gUHy>URD|5qPb6rf4*Hp?JaRUu2M??|E}4s>u7fM!utP5-MenLaU@&9 z{X|{@CCbvj@ddVN*%lY6?$7J{Qwsz^3CFmw0gw{U)6d=!8JUrFL0teyoF1R)wnPF| znQ`5*BLaLCzlh!1(xbB zsuG9g8x}=E@q=Z6u)e+lr)Rdi_+xo?{u&6udGYU+fIc|-9cm8|C8$`^X!X*gi=5KO zHQCMib_;NRR+B57L!)P(4V*ykzqEQ8EUi=}S|uQl)ZEFJg}_U|zqY&E^~0|8MEK64 zSbRib55g_hkusbgK`=7#gQ32`07mNQ2wvW!v`C>!QVS&?TnoRUb`|)hiq#Xt37e_$ zoVdl|AqD+sDr4>U2WQ1kASGEr8>f?Sm$HRO+=Jse13X-*QhB!6!6r`i+)ZX!(mr{B zC?zk84;?s=k^p-5bUq!UQrL+-zyK=k9vDD0sFqTK5fo!%AK7wWj)6rs9#ahdC`fJ_GHnNwfl zVQ}8u#nPeEKv#8=J4e7nryO^Zts&D1&J2@9<-Lz26AJ z2fkn-#R=StiSkimz`BrM0jau>KUXYjBqOqyv(>G@DH9%q3hI-CVmH(AkQau#S&3!WMD z8|uywvh3OG{PN{8Nm4LefmLE=qDFuuZm_>MS%YpVCo6>#wO=@tXP4^RXRHp9L5(sV z&O9)dW1Z;O7KCKPXhEpid3Y60Ek(m{amv{cbq=(v^w;Kgj^^(R(h(?;Bqc~>OJ4>C zos=DC8xZKg0w^Y6oszmF)BwCi$q}nwbauo5jiRH34SPjRpBOXVaA!hL9`PLyvF;;cG>wbd z-EO%?N-T&@GRJUZ>-#N@GWk~pcx98tmQ1aSL68CQ5|l+>7Z;^ZVUPIp?m}NGSL*bSFqe6r4$XuR#xO57pP4Qr6KD zA!oUtgO@~ZNbOsx8^AU+K6as~*qH#>I&^7YYzbV?$CigZ8JH_lUV(y13(r`%Dio(I z1_@>JGZtl8iIH$1C$PFiVW`p|D#Q^ z$sP>iRet6$SuSwzkaV4qppJBWhUd^uq6aCXE;Kj6%bcT}GyNyCJv~5kYpH;t=SwqV zAHTd`Dr9GjXxuQxz5fNI=MHcto>YI~btrjD;RuDxaSLi*{@ zEx1@9Ok@`xZm*QRneTD;+MU4xhe&;8TS)p?LO_xrYg{unLq!|Z-E@BxJhBYKBxdQ+{gwb$0%EqeQf zC(@(q%S(+Q8!bXG7_861a44kuN8%X5yM~N|OtUSd_$Bg z$fMrAm>z7m#4G^r`?il3`DqwV;pn(Tvba~}h zLR&&u?BWwVS725R8!7+=-4oHEfZ?M^^WTSFl^q~%iefiH=QL`rNJmz))jAl^qhQ0S zi%u+Zf!qff>E{i)RW4B#L5BAZ<|-hV_>oE?bGaD5F-&&6ynLt8ArKY}p;#=?(T<|Y z&GLq2QNcqY;Q+h$mYIToC^zyL5->#kOCf5xGsMRliA-%d zd0oopB9gB53IXOTD*7RH5A&=A; zw%SO37(Xzj-+(D_V2<6#AGYpU$je)M2IJXqB*tcj$tV->o^SZOb)O1faGmuZQMlTO z8|67AE*o;Jyp#=j@k!aIb{PmdA3N_V{U#GWSyfSVHD+$Ly#v9~c};qr*%eekXnjK0l))QMiXjT;|_c;DK%2eA-Pd4Ug>E^8?4{;>{&tP!Lllstvs z5VW)!FdS;~{4pY=AZxx5D)=AE7h}|NQ1^#4A=R8dB((hE}B-FtPyN zAFgqRU$yL9YxJ^vDzT^#f?ZXH1yr)*$A4{6D_rgF%0|g5;BwcsR1RBVhyOrr zMk-E%+^B5mERXL-Y}Ud_Rmtor^y$L95iT+WIEkbHz?Ikw7sjwT{g~XC^rQ%{!limw zKfEd4P4}g1CD1>8sC>8GzbF2nNLL|_AI_XeUmWBQ{#4tf6RfkG6Dvtx#5n5Yme)a8 z%IqAS-_ALmjNO1rlg3BGAiJ>X#|c35$l`q^<}%2Cdamq1-0ThSs4XkV%n*LD%Pc@U z>t2OjNLU)Q6Jw^7M5vLpB)n0S%4{p;=Tt;-&}%_lSvE)qnZ)&Vh+OUY><9*ZkF#Z( zXavt5J56!zyVo+Tan?s8hD7*y*^C=<(2FsoByXn76M5F=lt`d2_ZJTO9rIM4|` z8I2#ek4#xBKZuwxOakjjlGZZP7&$Y?v#|$fvidkHgW ze&m2okT(wA$l__t2~zbDG@KOQgHjv@Cz)6|Ym^T^s;jj^ITVtLih)x&45~#iz84dO zYI;ntntUy;76|uMZO!)BOJ;Y}C8V>M!@pHuNeb73Cwd?1#<-R~-M@XmFo>?U?G5ez z#XSTGiTC+DgDt5O>|&CRE3V1}AcGV3rC!1ROSMGYcNlDn3OYyd;&BEGU(hamL_(wc zbG*!F)=}`i0WgMjoOp(VeCZG=8%yYP$XB0IXjKnruf0|W_HM| zmV2nqbtk4zma*XG1at{ZADpuA#&pKpx&Ci(L2oWmLV^;j9^-)Eo0kIWOGGyeI>09? z&&yfkLGKf8I%gY1?H%M!;3w!#FhStfO;fbcbRb~8Sbs(tL<;A%geJ7CH6YGc3OwL+ zOsPx&7T1MmW%ZQIp|xC!539_Pz)yujw_UMCHngW%NztTG8u7&>dFCu1mizrvVJIp@p@8FIAMgdE;=A^po!r>ge!5x zyR#QzcuwAn_Sfs;*9VN$fdpNqprs6)!a8{16n*aeSZS}pwdLI#iK~4|S1fm@ts(C6 zo&oD41(JixJmn*>!C{``plLi#7uxij7)E@TL+8%~%7Th}MZD5N@+2eFQ1 zXVIu1;=S9FL8e@lvUDJ=o!HdAMS07Sj)IoJsq5rh22}9~ddNAeCDI4%iY4)LdLL!T zr!=Kh<}Z##xv=x-8bamG7n&;N89K9AYS$Y4A;b#~7OC(<mHd++6&d-b<^zk7#FPG5k~ zR-oyF1Q9VK+uSbke<5!WC9|v6XJlA!Z`52 zx8(pd`vL+ovh4)=5vD_xq+`fe+128UDidbnTItBMF7HwH-E1FcH^0$&;xOboV-<%xfqO0ua-IaZ%K?tXd6qD+_w z#${YsG6q0titR^RxB}h5lkC=Gh%f3Vg!vbTq3zBs*StcJ5O|A7EqBM*@paDJfU_H2 zS5tZoM(B?vI5`&(3oy=w2WKHwe3qdxZ!(Z4b1@oSGv>j6@GWgiQkG#d@EPho$hHK}6yvF&h(S3@YMbBy)DpFa zGESZd<{Enyq`jZ^z8?$eJZB*xR4^36e8IOxb8!}c)MV7YOxZ^)##?A3HrvCqf|}mQ zahh*urk8^UAtT+)jlT03%mzmz53Z+q$Ojt&s7!1P#?Cu5x^qQdwt&rZg>a`TCOC|J z1c`FbYIGCgJnBtcodb@$0pg2x!PqsUHzEhLsyY|(&Gu=v!|b5-z3hLp(TIZc=MU?Y zvS;<7Z(R(UEIpm9e6rEGvZ&{Jx7al&wKBf031?1ut=OI!=PjuTigvQ&+6@wae?73Y@iBg7*K6?{)rLBv_N2Wd}8X(;)ik{F#4 zjF_NF;j`B}EYW3O9P8rNX;SUHYONFua>OZecb(QKg2$4Qt1I`?{9dOMF<0J3pzzgK z3UP9KDV{DBvG^o;ZG_UNAmAs|AbQ22sk#iM;ou)|u;z%^gn2JW4`lKx+ih`2ZOG3_*@#S@U(vD%CNdSzQ zgj09TB*MO$qeoU?%^a|vS}OHZX&|?PN}u?n55k!vb3Nh@`kK;1kwxfsGUF$r=P&Ot z@V#}D6}$U`4%7m;5Ys3-z42Sih=AYPY!HX?pnT6sg0G7IV2KmQn@G`Oih6NFlh9?I zGV`(}t5yRPG5G_F=Pt;qC{w4S74_oeu{u130I8r}xJewt z?i4sgF`OqjAB5|LRLc>nEZ0a3fV#t5GkN&lEFSaM+`T?wH5(V@)s=}1L>pxC$lt-| zH!xOl>3EeF*lKSKJxg1Mei;XW5wuFj`(xlzMz0 zJW_r`2h{D5Hj|AJdRSSf2Zl@(8QaNRc^$9G+M_J%VsMJr#CWIG?d(etYVdz=?{Nb7 z#p~bkWBfOIj8OF}!^*C=#i`FRnzFLh-W(68_mf8Pmf{W*0{2AeCjv5`N))3PiBFud z(7J$}tdMe)_aoc4BfKE&hRPP0I<%8#3z{g02}&ivxXoBufJH&$Ac6qY0?Oxi4jv#O zbIQln53kX4I@cmw8kWI{Jw)(yVvpr-<+qvq)t2%mTRcb^&1?{agglF$yAo}e`N&iO zT*^W7k@4)gtu)~p^isYlBId>s;XFpv1>*&>K4L*yXU?<`PsFZ7!8pPk23g(0Gp#@f zpebG9|1R-=W6a#c`3docaX?&PF%@%V|N=+ny17i~j9@w6}T=<~xU_^+> z8|PjfE6%@!yi4wgkwSkVu7rwRthdE4%N^10?KQO$f10z{Y{|%+9}v0^oPZo%MzXLh*&RY)mfy!$J*t2#1Ee zm}R8yA>Atlww!<^!U1hhwIwaGBIMVdnuHt?99llCBnBo&rm_}$3_2zkhNdZ+_@r-c zVyodF9tr;bGg5C^PIaZ5iSek}m`-;Jr*#HPR+iw)$AnV44Fo+c=Z9QsJxTD9o+HAkwwxbGyNRj z$6W-7EYrAI?nBIJ7lU4>a@ym-G+BH6b~6h@)*KpB zDkvQfTB)nG!>H9_DiG|B)%McDJYN0`S%xytt4UC@FugGFA#?2udRmMPlE4VaY}Ie^9IE9Fo6C+{A@5!Y~CmZhFVx$78JT-_AA&8);j>smf>h162o zjHBw-_WEZbd~FGHU=9Ncd2zMa*L?)+%+Hb>Tq1y?!xLtkaNR56Z=n_`E+?U8HT#@! z`imvf>m+j+yJKNYZs*P09;KMqcS#fki&ORmdH4q? zg}qI}?`b{eI`-8<-XQR=UO8$H7`2jq!&D$kg|WB-e+FO50$}nprAevZ&$qIGW2{@y z{3v|>YRhT5JLqoR(p@9FfhaOLqe{U)SdJRf-K;HjKd}f0@%zvBcxh%6h{_s>ML(B_ zMflmgW@Mm2Mgl@;X$ZipB0-pave-T@Mx%f0q9#}ucoaEUhi7leU*oNRtA>o2s-B=m z4`C4|zl>XcdfLst>^exShfp%hbyV~Bb0-c$jl2NOL*S-0Uq2Dt^ zP7sU1p%BU@H!2xRMMl^t0mNmb;h4NPx`R2lwAKZkms`ZdA2_RyR-DOV{&B@I1+(SN z!(EJA-@*EhnO?I?GeJ(@HaJ9df(1@#nfj5lzC~@;=T#WKw1MEaFF1ATeDS{6?rzby zfrZSsybWA&j+oBBj6=+L1_PdxjBaOllZOT9NLZVvTqB5b;2OohbJN4zP2;nUxSwMw zHJ@J-#ruRqfh075v+FSwD7Si6-+^8&VYf6YvIyLJgw8=sV6>jsF;jHMNcIhMie1ZHr}?mm9n$8>>dCU^Vm4h)WS+R<05X*b;h1j? zaQ?~1866a|XL>@?G5b%m9s*jGunZy~*53V9qp{G+8_BQXayvY&OD#G=1ZcKr2^~2~ zAcGqc+9#eK0=}Wr5cWB()>tyIyx%<)cMq#6%iEfU03QD!DU;*{vHniU+gqdR8{J2I zAK6FSjHH%3aB^0u!{l*LlnAsm&?2(2A>>^KZko(wAKLL+`H@6NMy;c<@#$3wG;=)Y ztC2#+oz0=}kI$)v@A2m``s;;@DtxO7k5-ll;Mbm6mw*(uN~ZC1BvUXl(m_DrdHmRx zdLvSibf z<1y4rPD`x4YY=Ie;Rl4{2z$5?x0sF0QN--nI?7zLf9zH5>1%*v?F*{kb@&BU*tS3c zSIpkFqgBFcW~eG5v9?XxV)ESx--*$OQJ6gC_y}$&$fw-nN#5jP|6cap9+BvHNXc~j z=qZJIX5tPq8D!GHMX;g~K?s<@P^-N`aaWk9kG>MC`B8+iI!>!XpFwSr>;M#nrWP^F z@0=0Tb3$HaPiNoP`F=B#RTCH@i%{=Xwxs(z8^Bc!lhfC9F$^#^-;5BB<5u?{kD?_OLWex1KLJkGrh2pj6#xyoySW}KUG#= zAIAt$2kV9;sMiiOI?%nGQd)pqO!1(Za(*{@rTY1;ovZ}WI#@*xv11=5BSusU{y<3p zQ3Hzou)Arpu}<`dTekoU-UoV-6CsgNz(WOep0LX?JOwbxbV(R-52ML(!1xa%8|%F@ zVRugPw0S0n5lX01#%{_3Xd)b-#jBdjsg((dZ0*$ZVnc2L8F^D$OO+t` z#>@FQsG>y#rJ@Ka@8xkcG4!O4)V+sC+tb+uM81yT0@*UH~d_3sP8#uy48tESC?pUK2_COm=niCDc^9Mr4JYn zi{4~VmLResUH~4@fmF@sK@#+mS!XSCW!sy^rH65gOAylPI1@YzG-*s+> zS<>l!97tRE%F_LMJO2_&OAH2W;e~}D5bqeO!Pc>rgv+fMoO4)G!ffgpvBch7rj++& zCKWtd69b8*9xQ*(PB%T9^o}ykd1w5&c;@iO{ddpf6r{7d+ah<^%2O~`Nq$3zI4M& zVDQV8+DfxTxE{$Mo}ShZLW;zrX9{mU`u2yx;05E*J0>WJbdYF-`gg3EJVE4UBWasps|u6r)C zam?f&xkbn*48BFkf)vZ8or%dH4;$AOCE%HQ2x%^ytZo;&<{SLn8W#~z2q;)89tt;) zQ~_wf>kU3(y$rkKBX(6_<|3kk@H-G!uk^yrub#2Kha!=2s(SEVX#+H7=C-*M1$kFmX6e_jxtfefd_mSQpMDA-ctUU|}A&s;j591;^eU7?GdPHev;nE~O+^FKm9a1U_{yB?mb zYLjV7_<;D)0yE111vHk7v0YmyE>kKKQ;;);>Y5Jw&ksV>68Hpf(dmFym{TnA2DBmF zhJ>t0wS}tKjx3KO22JU6(S7t+b3*H{>rO}Wx;n_T!(b2x+F)MAlZE9cw^9PZWuRpS zlC~N1BpdZDrwG)fqqZ_+UN5nnb&N7ptM@5ZvW}RZo8E8;ReSY7_N?JP^Xf##kq2n+ zCbbiakB;;R4Q;}ruql|mWMJ6LH)qd!BIVJkLx%DhEQ40Pi`o&6WJroE0b&9XEKUDq zXxKO6mxd&p^@kI^zAt7sYxG$!Fv9NQkNFECW{((6gcm|0#L62;WOLp`70!ZG~w? zjqMLwNz&2|+lhNCpxVyyiB~z5vSE*D3ACKTBEfowNDHAxiXiM)SPtYhy!W{T!*txp zy}cka*zJw4w1I(EEpXaW+aPVIAKYArZ9tv&V;j_Iof%zVFmVNst6QvLd1U}rT`{Xn zyn_yV;vKpXOV6vyEYe|~VUUzK)^dbU1ud0~Pt6U2nCKdwDUu}s|IW=-!C{n?$d1W@ zcG(4lzJUO)W@uH=&-8(ktVC4Ru657_1T{sYZz@rsVtOmUS$hQ?IxaL%(mT(KB`U(4 zYAIM6C@*Mz{@Cy%rthQ~$Wu1^rbDp!CtY$?VVck{@#tAKP30vHiJCCS0)cbFG)So#GM4@dybOHP z^$xUDBw?cwXT@U_(`3He;z#x8`)vHqI+1(3wBYKU5vasSi>t-uV$5Kx4kb87{M5); zM+EtUWzY~RPAw`{7ne878xA9uh8h`|Ee9HbYusWq)i75>rYG+~w(+nT&2@heipV1( z+*P%38qpc(Wn@otLteYYHK7j=7nEufg*7(mFmG)=iqpK|%aR!v%V1SbW)NhnRW{U9 zGyGDk{;3kj_@*EXPkWlqTSZp`Y%CdZ?;+TjkuhD~myD^SQfKnjx2ze#r>-J~%j%mY zg{hilCsF+WZ+N$?=M!V@{jq@zQI|!9R`LO#NpX&Cy-h|YMr9(b{``ATWNnun&0&=Hd=i~aH8SQ9B zAU#r+D>hW2qBdeX9zX@1;d2WA+`vj#$cMqKbkHp#cP}AsOq-VJ)4~{PE+K`E?iuJl zhHDHVOCMX>%O4sNcgQw@lBXGBcj)efh8C$gAv+7Bsl=U$-!dQw`zZ$jS7;KuLa+w# z6ej1x!#zj=q9}i(v*vfW+%SDk&%MJm9CEfa1gP&m0k*H7HQa#aSqU3haaKRC)C0oF zgoUFx_mlZt6%+Hhy|DJ^+TOynV|CkH+dc9B&nC;}0GUR->fXF#7#azuIw&X|AGvKi zC|P;3^mGkOycpFE->TDn{8_TT+IVPa-VmKAT|0^nDI2+bXAICYU1u0)PrZ^-(lyfF z?LYWKn?Z#{HFzTrjfNW4kf#&)S%&s$QdLPR{8e@L;p8|l#g~@7wDhHyU=In{vY^LXl(7k^}E9VZzBMP2NCExYoKwHGJ|S z)T%-C0Ukt{w1DEIwcWv(r;iW3t=`zC&W$6%CT$6h;JXJmx~Fnx03g!c`}s&%i{#Zl zz0jelk9(JevH#e@N}}wT`YGWBtbe!e(N94R$+==ifOuPUEc&GPF^yy@;GL=Q!?1W0c^qL97mc$t%xVs> zbUr=4fR|C3_9ZvOtleEw1BjP9bt9wK=(Wv!h1K)c9%!*GPXl| zx8}RK)DKvqjZG6JdGrnyFH>&ULZP7nRD)z=<)9Lwip|9h2L(ri3!nAF>Pea{QQFR~ zu+$_dHx5t$fc^{%BJ?ViP|E$xWVK^F=4sVfeGgP)L~;O6or zhf80NGy%?xLl67TB8q`XeayGNCpebM0Ekj|Q+g#FGbM*uj@D`|43e&8rYq@uh>O*n zMps-6;)yHCJF>s>@MN5>>~vKC!JKl*RpB_87X?X@SSRaspK7HGpMk$a8pA=|v+Z_$ zmyciXaGDd{Bg8G3Sk$mD(crpcj@Xa(xh$34UB0nr>D7WM@H0PnNwLH9gs$Hy4K zevo<+=ML5pVyn)v7mbL%mMhyBdo4Q)Ftq_URS(H!|c#E|ID7?LYK+c_5t(zTzXy@ z?SmmfFf?kY;OIkUo3)s!S2J|e)uk3F^Z^9bvt0*>SK?4+8y?P8YnKltJauo9)wThoeW#-BG8y*0!cC35ZnlIZ_dF+K)I1W6J`~V)kV^lT*l>AYrHW!qqIfB;+|7 z$mi*STmad^el+XsBBX{05(m^f+vm7;_yR;MHhQpHyu6&3B3jU!h#}!VuwdkNooD#& zDSDErTBp3hnSXIUhHX;aJYGyPbhclUeDk zkWCjCFqmwhZLk~KTEOF|q+g~l-!!=|E6i^Ox^}=ZhFoRtpfzKL_|@7=1SF~}U)KvJ zDETW@?HKj-rhsYHvR=o&sYEe-7PzQ9M-zV<0Da43h6s>l=R%6Hq%eAuF7qgaa>syn zzL<@PXPjeL8uU{!OTpwOtKGIX(22JD6vX~U6c&$XN0#dk4}-b6M~i99kI*qhlWSf9 z$v3}AfoWM-5-M06DJT4O;A(95WI(uGZ+5MO_&V6c&0(x`@rmPqOF%f>K*gG7m6PuE z`dU&#r!2G1;1>dUL}~0e%x;`tDhNKf)Jpm)9yOo)Txvhb)TxBPXEisCqfB{Bw5(`_ z>^W`{#`IeRBlzbEp%jiD4}n4nb1jTle4Jr;AX#w2Be$Zqad_o<3y%g4N{k3DRr_0d zfk}@1GhJw2O?@wiR_2ehW9*t{LtPLEa2F(k0fm^1M``C9>XsSVk_M6V_`V{8;L4TQ z0YloA0#tkvHWf#rjLdlX>vi$#!(?+Cyc-Unah}IM(P4hba&11vBiScA#BV$F9v8s) zxItPk7c`n7*_M_EH7a&drU>yS6M(ON64H3k>k#_L zk>0vGl)*e%7#2ADyjmfC0BuC?P%B3jAR%pTx@*M^w88_qH*}^Y8_Wl{poJmCI~}ML zeT63I9i)Z>B7!j)xn8_1_3l(b915+`RJ#!X5Kdn>N2Izz(hk&kve`_YP&FT)V{r8Y z=HvWgHS;k|QSjff2T2+%VzNKTp$gq(PnSq6+N-@eX;^xzg zz%6lX^pP!b&7S%=rh>Do&{PiVL7c|?K8k2Rg@`ur)3&n-R^EU$P}}i{#q=&pD}_j* z7vd#G{bvCqV+?JkrMBU(v-}j{;s=h-!6#R<&pOsNelD*#gxz4-qh$}!*uN?4sSpAg z4R!Q-i#xer&sXdyzMbqQxhWp*^VWCMJ>G-ps}OzFlCM6%n@ zlY4Z$;=R4arM>08YBYa?3dsM-J)V>sB&D#!QdlS!^M7VE#>k@2M)*@nmm(>44&IZj zzQk|Qc55<)_xvc7sIV0?81lzJeY(Q?YN&+IM8@#2`pAeLJG1X6$h{@|zMns?Pmq4Y zh#{wT33!cRIITG)0KuR!*``wXYMF-{93WV+%^$WW4mK`yAgX6-_^2TQ@42IfBqBr! zCAG8pt<*JPfJ@cH(ir@bff>D7tk?fMkjo^a_*Ro8$R`}yOnJ|ZPP5KS%)~xv|1n!0 zL0ey0ZU|gVR^M5M7ybsmtx~Cu+`!{dfiOSc4#AvlZ<86zC1o!9j7&iv4~=U+I0>fOAG=mD2T1QPn-4U0&^)o z?miW>&1SuUPE{1sJN|Co6-VyjnYK7)3d2sn#OfxB|E&;CoWGc^7SA=i$VvG;pEy&; zUDavrw7i6*vN*PYL}j^B4{UZ%Y5}}0&Nz50Q>qqd%*)49<;9UM$`Ns+#$31UDhFYl z&Yn7?9VJEl8$fqWtbgUqm^`sAA$U<8x|kJ~o1<& za^4Oh+xmVB0{jK-5=O6076n#%lEaGHZbN%>E$dUViyH~|VW>X*2az4jQeq#AhVCa2 z)4(Oa!XcPGsEIWo+A`R7rVi@=5et?Xu9|j?&Tr?OnmSueXUf#UrNhF=h~Uu+v3Q77 z%ZihA*dM2yL}q;~Cn4d$^Gh~nVV!unTLoJ=YFL(0aWWmw1cxB(E_XJyKKGcq7m`LO zp!Bb(3StMCkWZXtqvk}t8|op2;3zs+U6@D%5G|emvd(#w_}>sf$S5D_M&mF-@z4Zu zY`sr>lV_;PD0aa-pO6h(0@f=@q;sLwjehAYHA-PFi2f^UN?4;IAuutskLeapNU~mA zseI-aX2GWS5{SF5*!}kb-RoP76<=?DWbBe1OJgi4ffYtk$#0_dT@QP3Qx-$QJ)Kz6 z1@MYH2~m>bG$)5AP)`MtcYC&h%niNO!%f| zB~P(~I|~$2^r+!U;8ZVu$Nvob_M|mAC&XLv*=xfyG_-ICtdt>SazJriiN#Jn%3rR; zU2U7)9PYDp5s+=nr<*Ni)7@x`vE2;}bukLJ8|1DbYN*b!h*YxltRP7Rk?A_(+$=#H z*4w38*|$&^3r{W8N)e)CkspVhdq(#REr6LB?<@fZ)VSs=!_JbLNx`ZwQ34tab!P2T z>z@dxU@oB48I6UQ$7evP#Uya}YbgT1{zpK%WDEP;t%4y86J!h6nDN0wTH53IWH!>O zeuO0s*bopCV2^lmjIbh}5Rmc@ep^yT5|``UYR2pnK~jm{Y_Bv(jL5;k{W5JHGjqU{ zJQOq(&dKJgR=#$~*QH4>|L@G;h44wD)i94DFD})zvz!(>l0oF5CS|D>Zl)?F2VIxo z0W5R{XAulS6CLWbuZ%c@`DKo&91}brX4xfW1krPWbs5Dc)B{;g2dT8*ZuUQHj0^6t zZhVut^F2Is{JrB))nlFMPu;X03QeCTwO%o8bkLAX?ueQ13JLR&;=!iD2GvhF!Xw4l z8h#P$auLF!euDrOzZS?DIba(djSJKTUM;PS7@`gqKU;?8P>kmpl0t2z!iy8XTeH|& zzxxRm&iOs+1+lr4$~V%<~%hv6z55fGSUI+w^oj9 z=NO+|TzzGZ@losaM!P#+ot|o4aotCY7$WwMt37HDJ46!gLB5B*WC`pQTpR~`83x_c ztO*w*WV#-ELGj4`1t8 zgC~@~)%n^Nc>DP!=%4sMZ6s9-)bRsHFH$`NwY)RyekzYifGW60g7xV)RLSBIKPDlm zV+lz`lq=vXN3Y?acAshm*3KBul|HF!GLHy|!3B&;iFttU6Smb$+vzaSK`#8Gi}mSI>G4( zkY$X^o7h;^Mizs?9HEHzt+&SynUyNuGX;CkQ=70m^0%PY=v>e7T`-23h8pzE&bt&m z$z;pR%X#P?j|cY*feMfmaGhO%3jCxCw*ycC>#2h{x9bJSm|F>$#JB+V;EIXr49;HI zl^M{Z4d84pqy+S%wvgf^qN@_VVmm@kn*Q$WwK!%RxXag1Y;7cukIpU=-qU__bhpvm zL_L5_lAt~@D)K^XDX0j;SeegWjKFYfAY=fk(z2Q07e4j7<%ZIWz#C3=y5>Nn>m|oQ zGU=nlW{QJ}Q|4?D0G^<41sB~Sp=7E{Gho@JESONxs{4Yl#*^;OPbkk-!O}l9cc238*>>R|P$1?Az(eK9P<326J7 z?J+40AHUvxnr+x28q+-7NYX(mR}8xCkQ^iPPkYs@D4kcPC=}AHP@?VQUjdrG0`XaK zvX)?V&{Ni;1R7o0jEp>(9P};WERwxs145dlVHAYe;Re_G8br6-^|F{ur|5yp=Q&V1 z+;5Wzb_^_7YH~)$z~oUp^^Z&zKzt>L{Q{dMxDVj^!ZNIr*4YpwDH&;sISjj5V}T9Q zT3-&r2h_!xhg@I-Q(5|2+c52%omTS89-H&AA><#oARQtql;#Qhf>pX#-nX}KF{>ih zStNtwiH5AZ%i~j$k{5L)&v)oqZF1tb9MKIJ8zP-XbPpzv&Jlhz4e{r!LR=Q)@--{O zI-!3fRC}SZA)G=*Jnh;$0Q}GGC~6cJzl)PPl)Q-hIu$wRb{688w2fCMj&|6BYxUD8 zpb)q2fVnzBiTPBQDj)X@lS%~Oafyr^9Q3o~oh=eR3ZQi8F5|l5B_jaa7SPvjN%-(8 z8^0S3R}zDP@esrZT-RGH@|^74+lz zv(-*DcMu-FMKZ>AU+H-7+U-l<=^zFSu!n(`rPHWJ@xS5C;mrRk zu5Gil`Te6r609ntE56k0!(bw{UVk8wV@Q`&qXM{sWt|w39vKR_(e|kA9TXC%)OlJ5 zKpu09)saTJLEXzC&Wd1gHL2Pg4nlQhOIG}S23H}Mfc(9bR3PRMmjkCEGA~!FfUr-e z?%~5v7UG)#k8wRED&0OJUE*yGQd$FzSiM2KiWkh94A7QX4(!;e2s>76<{v-pWYTYZ z1gQl{%T4VCn_qTj32_I@cSie2M2aY^Jwoo-Qt6oUuehd&T#a%{f&d)7u5?$jq9to~ zmAK;U6)gx_^D%~GIRoo+%S}=IUxN->68C7F5C)^e_VWfKRW3_0D`-ZXDu{pd5Q85Y z^re=BuzkYnb;ORjxs7*SjcPd)AS~@fVj#~O8`rPE-P=PjLJO`Z7{TMjmGMe6+{h{n zyhyy&*?y3hs0l!lhj+?0l9sxn8Vw92CwxE0D(*&dH@!#1!WHgVwu0}dF` zj@UTqW24T9a!Jxi;c94^lZ)4pKZu$_K7yM&&FCLBJhh{Lm_yqPw>0_(3jRw_kG}Eq z_nVn8xv_MhG~PnPXj0btekR1&Pq@J6qQ;GA5@xb>d_}zND6@l<0#_N)QmxY<<0PcPT$+fg#l)vS2XMu}O*~%o zka;btD~rrI=|O-#=^9vEW9f2~w9aHA4A^2w!l~96^@VZAlid_3IjgesFRr0XTIa8K zz~>w1E;Xx{Olgn^oO|Mf!%jI{7*+Mg#`4(P^oq#(!Xq&#>q@d2oV8beh+7VQgdfz(ZPd}-RX=_OMsWa z(C{r*eQ(>*J{(c^`Da4i!!NiyU`IUu!(0brGVkVJU@D%T762-6^(APjF9O1Yffk7n zdE1Ckqd$}qAneKg{o-j%A*e6c;m7dc*SqDM5l%H%n_tbb<4F-boO`awMjkWm&JmI~ zH4tsTa$V=p#Y{cW6hf}#I#9MFwjz_fR5$HMoe;U}ZGAq-Pv2cscp$QNB^;e?;QegS zLm0NiW9^d0_6aLAq!2(nnB^hsZXgj6pdKD`crvG7n}XMF*>6@3IyB)?kR?7^@FvJj zg40fMNH_T*70F}7vCVB{PNv^mEpxGmxV8s(-|Z@D)9T zg`!dj2*!rZ53alCSwk7Cb%~=|UYput>sU@6P0(rfMzllX@jN5xSZA31SN!s+K{}mJ z2q|^qHvTf3K44f_r=V(x(!f>!h4j<8Uu8b=59{W=F~eZa0C25XbH3toy_q$DIx-9j z8z^VH$$WvRMG4~2=b0oapC;Jeu+Z%V19bELk8w7%HoA;sqPP|(hc?5v=`k#QJmo6LsvDA-p1v^r8M+fGZyMo{OS`EX?U$6 zwgm78Qrs9F8Aka1ZoOE4o^7z03&5=SpXnO!0usSGbt~h~zcTWR>$nWTJHz`bHEMwH z=gaT#sTTgr6-Q6&{eMS4>LbPYsh-n@cd+0n^!m7f65mXRdm#<?Mv9)}Gu#37 z217}&bNyxkZL_a3C3g?%qJ%C%{Lmzw2%xMk(we*w2V^9&f8Q=@4nR9%iJ#XPba%6U zz*N&PQvV3`_QdJ(kJi64DTEo!8mPfgI(#0hTjgQ8aAsC1=5@uK%A=K?lN-$xlCiTJ zH%t9(b6y} zfq~Z^CrK&ChXMFubW_a_rKz>9bWt2HWF#NZ&y#8P>N6@i8 zfo?DUhXKh-pe4g7teB#TyWM@_V5`+9(?NGQ-SwKoNZ>H_ZPCsmR7_k>);trI*rJGX zAgsu5!p1Mq$=p|!VwEAUq4A6?gWzSI1_Hdl7Zn_xV?4{<0u-_$Y{Qa2(f_T4Fg`30Ru0_53aFpsaq>*f`XbwEJ2337vx2ugimOpEH`1VlCbKe{}ZlI{()jp zpVKFpTsz9DHjatfx7;5-CrXW*TIoI=Sy@oYaaf3j)ZF$2F%~McxbYolMgpqU(5$U zu9l@5OPAEetRxeSM-2N1%Ab5OZs*esE9uaCF(!XiKhs-@(4xhchxMnJohu?E>ozCY zkUV;`eOm1xv+H}=l1VP5G7VtQCby3h;P}&6(yj2-#rzNFZ4_`WY513K6XA0gNB-E znFtyNHp^DVW**Ox0N<*3kA{vED{RIY1r?O!tJzoQIeJ;8ULKw%2}t9S1_GF&sqt{Z z9F_P}Lo6sCw@LNCx#x3kx$k^RwL;7RW%VLQa?k!t-(+AyZs?4e75`MIS%D%WahR1x zdrvY7c%gXl$m1~1tu5#ozBvTIn`A?u}V9_oD81iL|WZ6EG5|(2I`P~~4h}(yhUcl*YvxT_41Wc^o zZMIMYt2dIGTzuEX(IY;LH2|^=7K;G?C+{_2qLxcxz#r@SqLgFwpkHuE1;8FCnZ4EM z?b8z*7z6sGh|^^)1{JYzvoDQebxbMf;h`OVLyN~;OGi)Cn7$*m9FWGQ=C3V*so7AC zB96s(qY+A}H<&_5+pbZyIjqjAkCVE5oZrk-h!-yE27*pSHFX7CI>%3GD97KrMi7L* z=1*ZVB9xi~ON0IV3OIH5Ze)oO0`>1)nzhEByxHdaTi{E)II&9@d`@)H4;xIIaM(*t2IT8vfowWqd*`E{hulI-2aO zRf0YgEnXEzfNV9!SNO=&@d*LALE8`5RKe*2L_TGbpgpK;snBy#a2)n2TGW1Jq+rr* zRc}?{_oD2*@T|y-=-Oy~P@cxzNbqoWph)v*zhsTujp?b;SAs(+ldphRn^e+BR*=Xt zmSGGU{46}n?$c)dxmc_}0=1oOHtP)p+4~@Mo4uVG$00Q|QN(+ILFOZe-3-@^=oxar+Cz5({)8MEWcDqG3&_mRAJ5@0M`6}#Jh^_BDM%G^ z@i_J5&EsTKtR~A@_WACT`l?JEz#hUHgn5y~9v{2=c&ZMw@sw+lqRYCJvW&1MN$#=s zD@Lp>-$kBX@3rk&I>VdbyW`TmN15~vlV{a( zmivJ6{ZhSZ!|EUP>(j=u%-{CL@HPEZdSGavpRB-wVlvQUxefF#;R_X%{j^L9uJILK zr6pfJ0O`wu;}xTFR8tiO>e00HZk6m&P#4BH?qJXE# zX=)sA+S`o;Vw(mTNUnKu5KhK=DYpn??fVlJ_O>kXtL5vN#sV|5sv4ZF@BJ$WqzoKb zlt@3u$N|pQ?0Ej`Lk`7)F1UnBzabG`x!#e$_u zvSyZY&Bn8Qldw)AUUW(sETP*N+YQd6mDdiTEe(`e19=_W|s)`Q03?xR2w%-u-*=I0jl~m&B6a z4IB+}Ka8qFcD}?;A1Q{&T7e-pMv6rU1w}+Ob4=WM)^Xr$CKpRX*yR3l<X zH>|>ri%FFF37R8D`;h4voW_gfbuapt8)78t^xzrv_Meq|`+sD*9UIkN;mAl;{`_e^ z{e(Y_O%*k%!C~p!LEqJ2ZXN$=e z8Z=>|#}q+@DUFaH)#)I*sUb{CoW*D_TZ_VV1s2@*>;&oC6PqSX{#Ia2Sa6W1^56!S zNiNg1&Xa<7JCm*?lZfBKJ)@sQXmkkQIs0C!J%af^`by22_Kaj+6PKu7lam6}ZMMaR z4fhAh(6u!^U_6965KYs-Yqx_At|MgQ!~Jzh2Ml9NU)b;_4j;m$=mMZbdP2Qw@Fd2` zHG_sRB@r5SSl4(9pDdlKD*?fBLo778#Eu|qoIKhQgB5!9!>D*Stsm@cg&J|KIDD6B z^&aCv7LEayN-9?M4hj`4t%Lnwb*%LeamDW8eleq-pu4u?*cOGg%GFStLFZ(ty9RTo z5MdP8+bhTNZM^_o_n)Ay-R+j^tzv5K?EJO$_VF>n=}5v+Hp-k&@lnvoq4SKPp?x@iMXQ5<`J8-Oii+F7Y zO&=oFsE$dPFCb^rNEbCZ>`EBD@R1NO8G(X&IHAsl5FHvg8RO6z!C+f2R|7 zh zAUCZ5=d|wD^pO1v+fvT5Wnf{rTP=r8!$oPaSnz8EhhIomW!{gYSA6AIWg(kJ=q|gn z@zD`KfN^d3O37DP^xy)6TB^)&`U?FZsZ+2V(MjM$2jpEP7M)=`NOwpMA$eYt9m7Y=$mK~mOF=hC*`>^@Gep6r)RA{QZGyZwL#v4zuAPWCd3+x_ZA=9e_+66I?+W zS~7U3)@g3(3#v^lmSLF@%vzwZG<-+4thcu+NBm@b6~9IuU_*x-DGunvxT@pv7gDh4 z4?A<3)fGNiiJ?Gp-s6UwF0~XTn&WEmI;>l#2P;V?;!F|dKPTINynk`&eVA`3JhYt5 z)yM_w0?)u~W2r9OmCRTZg87!%-LQiMN&*e6ZLGbNBEOkH_))qOB3AqlXy;9*EhSaw zOHVy3$edPg!+MFeT3nGOHsXxw8XvgQYV^G<9VlelcY#UYi&;HCFKkXM1&`5RqzX$k zhyCeMl2zDhMp-Y+XMx4SXGRoSMtaX~FL+sGAAQY>fFjVM+OsHy7l!yMg8Ws3JFT+V z@hN_JO{Rtj%(~FmI2MAnr)(z;BiTyOlYRO=CAWZ&pOUMy-F>;By6glZ9%^Q8W05Ku zt8S+RPX~w{b50jJimntEgzk}(G!#T1f}0*nGK!jnOYJ}P6|o^=3NGt7J}S`z{27g8 zaYh)Ap3sNEQx`baLQn*G2pR$P&C~}*BbcOp6_cKXab#-HO?;s3>7z?7R#f;J+|}uB zw8j3Z1|SA0STJF+<1FlJUno8i`F99UJD?;}44DU2HePA345JTG&QhB0IdnLxLFWuh zW-&`V^C2Hpx+D&xV=O%Wo#SD#!i)Wu;PtquS)#0;(20o%T1M#5_Fb%QXJ3j?y!?9` zV(aTa@MHWpjuH&{)A8i1^C%=F_{C=a@zV}v<|a55XJ_vywO5GY`v#sTel*&d0Un#I z2y=(h1FKmPk>0vqY*VNqmn+q_-0jFUxHn7dqv5l4NAKp zAZ8GM0t>YXBZ|@YUHVa{I7chW+!fFHURv#)Xm8RpKc^ee%FJ zJLN7$C3!KVXL@zGoDv4q^}29~4Dpc(2O)s^OCXE5PNRy@|DshWStlNgP;C~NRhRqJ z%e60UIBi+N3?U9bD}QEZ-|@&Wd=aeH2!5gDKmt<1I){VPAlAVfioNtzJ*#*O`Eo)B zp%e%=5Qbc4+q^VHI$gmjZS)%0VI%tX1&gn@TbRKDOQ)7$VGQBg8{m+yiV}4|c9B*S z6u4L-lz%HMDV;h~>D1BXd7$86u*#^^7z(ois)~#(a==t}_c9DkA~jT#b%GltJ%wQd zN||(LK1Y!S_F~C0 z9_okaAqcfW7g-zC8f}wR?_zl)sT!)=DWe~fQy)~c;DcpOAA_}!WTRL9DMBfeSndiQueKz3*v`pnOo2#PJ8q8q+Fb!g-yY93Sh)=v? zVNq)_i3nK@ulI?co8=q)4suA5!N<0c1V1J@vk5AIci>sI!@Ju)%3p~0U-*h+61O-y zgyb8?j0=zO5K=eVo24CBp@r-!HXAzEkUU;tquMCb?dVQ-*Rk zw!nspPjF(c1ppcz10fhLB#sbWfJ7hH8i=<_$iR6)@F2D8#_@4=`^Kfj2lfbpTKqMz zS5BHlIw!2$5>Ei6W^I#_X$W&jnI95DZ;|;5~ z1+sh0`~{GzMwbDRtaBN)V}oPmF2loVPL9v_mGIr>2OAVV!k>~gl8-ao~OHzQ8GL147~Jh_Lj^>(@o z8poN^ySK9yIReG}?&9z52JtSc;ebvNN$`KJ);kQC7myq*DJ3i|=Kn~fjO6xggg<3m zu7M)wX3p_p!ji>ry|KU5-OT(RCD4w~LH~F_FctYtaPEIH>2^IA{&farGvW|CwoKv6 zN(nLkBwC`f=;iSn+`r7Ax6)v0ipXA}7rY#e@1EyJx}BOvQgSu>?*$r;W8xArjsU~d z@@8}({Wy+g82Mos{vEnW)z_O~Te>pK5wff6=nv@G48v%yBtc4$a-$Wv_&mSeeZtU{ zxzUQ8362p!P0=Tgjcg3KhixTgiz@yJ@$nB_UFqZFBp!_5s?E9X$g&{*sNKoHh7g5D z0LmZ@+|ca8nAlEmXa=3IFt7HIm-B=|O@e&U! zS);BZ9qJ9$qDYsCo4w4HvI`JAF;;9Gx2dhb_2>eOwHwYAfOT(zyS_AZ0CM&|6b*XF zedo|I*;afBZ3avSYArg#Lni453SF|nEQ zJsbsuAo_lj0s|^b(t~drUrlSI#yOBmq+TB`NuQGK>_Oyfb1#Jwb+Nyd1tEq%xlVBj zH1&X~`d5I(DX;aD^}*HWnONP(4)J+d0GLApm080??|?e+9Y{9jXF0Kbp8lEOD93}= zP(Sqf`?^zppzJ@s%m(l4@)sV*&)Tt*38o7Gh1pv=x}mq=dP{H<00v5=lEu~HazVBz z?|t-AHc)~VzTRLhY&Hlz)mbzB?dofd{e{4@Gu;jETpE+XSIEt~>CK>r@_~HA99f+| zM@B`tENpKyd?`6VY!5`D65E?&(H|!4 zHBiOd^)k#B&K)nFM}KGF3|80zKORKIy>z)lj@Di}m@*Bg;o+=4Rm=z|fKzlUmJSzt zY_ekca?>(WTx#W@M+8T@9rU~WlYwQWm7|b~Fs5`lM^sUx=|~VjCwp-F;fBP_KoVl6 z!5$ij7y<-Fh+$?s;B(yN5!U?@lPMd)q0{hxx;S%Se5pwfkc_tC2?~V6tCHpiP)lgL z?jLkHjL>z<_5-w%@OnA#L#9GVcyPS~cd4;7+N>OjD8u4(B*cgO@K_cT3Wl>X8)9(` zo+?@@=h7%AB(hq7QL*FhZ9J;bmXr-|g||lTT3zvP(cRw0nJ2ee{LMebN43l7d&3jlAB)GKx8WIJs^V8X9P3+V%ZR&mefG!4=pne>8|ZFJ?uXAPSQcKIswN} z?c7vBo8O~&521ie9D#Hbv7zpy8=UYj4=WTCz*!_ZNQxr<%Vs-gA@oz-(OL&eQ4c2`6exxLts-f2qkpCEw(aU8zQGXf%N@8Q3&8S zFi7F8+)w5k8tML)0GX|O!ZXkSF$QIR4<1k8Xcla@#O!{4JmQM!$Ea8n>p+Zy zz36}80WV1UQC}DT65j1?@m|NtI!+0`ic<>kUoy0e)`mk06gqS9Z}(9nEaodKVYmKg zMkER(hT?iUS*>O=N#y(D1OMVfNE!N`mQl3)9!Oi0-6jUvOL?YVr|$`iyymLbNZe3uttC1of{=Ud3>YKyYbvNh*I z9@&QwChIBT&}^f6?#pcd&4Lu$;J;)!Opv1UDNhFdF5mCg542DMlphG0C_Bg?lXGmn zLZj$$99$FT1LH`N4pp7A?#8b;Bb}gt91Hcu9FS9ruM=&V!BgowUK-dLyJkDp&Fmwp z3IS%cqo{O3;PlAEhH3m0zDpXaBS#x&IgF)E^~{0tuYLvT``L(M5jce6trQvNtGo3p zu3If1kU8~lTMLJYdygq|{|ci6aU*x@V+&Ks?9;G!z!YTh0hL|4ACRW9QM(k+C;b-yfn%>`s|~E( z@`7*8o7ZanO6L@sG9)ydOEwHwr&F6$JA>K%v-!b$c$k3tBAh1bF2oDc_say2-kd5j zOpeCxxZbU1(68gy#^mJF;s#)}Haqz=omp{dA^XLU^DqnDZ- zt&z3QCQIcUjbVIbK75MlvlI%M7_13G>hZXm${t=WlfH7ueQ4mP+1akKJQmfE`}Pzf znWadi<{q1f7RXFP0SgElsQ(4^Rsk_wOtOxn?bGsRy^x@T=8Es@_J>MTsKH2*i?UpH zw^{fCVF}bQAY!M@@gnG9L5~3NtwYCQUU@7uTv;S_NNz3`%dgwOrymv@z)~k}6j7wr z>~o6a4zMjfQQ7kF)}Lf}t1mWXeIgLG9;+-;DF_}s&CC*2M-kbL28nGM4)L{1-4Ji$# zK@2FAhFJ0j2`YkSS3^dk3NdjY$T1)b8}h)haKMDKMArgKJvWYRneH^$oRDAc%- zYyyRaE5Z5TIA9cVm2b;8-_`XhQIEqtr*5hrUV~q-FAzr;Rt&^xoietaHJvt&9KhH$ zWpK(aKnaSVHNic#1`30YG${~-4ChPw9RI_znwha)weVin+`vU?+6WE4h(eg{RJiLn z&Bnfs;GI*X^HPQn-xdgXFo4)%ombQ;wMK4vR0yPA>2PSPy6l!L)+o zJUuiXV@&>J=f746ljkjcS{McsSnYTm9FQ;s-#$GBy!P@@rXlm=ZO2l7mIaI4y_&aGt{FzLyZ}Pzs+b!b0yp{PQhpeH0W&U3R+D zOy;t@bWeO{xd*hhJ8*|{SwIC9xr4-o613E@LE;@0!cfy_F#^{gFLQiCC{-9EZ?IAh z!SN-E>hFtRF8*Lr20KBz_{F7XopcVrB+3;y(SlrZXy&VnxtJ`@kkVEzrha+d!wl53 z2(g;mg$KwMUR0&z)BJX}Nz9*cts#m*^Dyg57;lQ+d(2JZLMG*OaSeEmIHSpG zJn$bm`RHxrWTYRdCccZhY54(yTXZN|TQlEaauoyA5_!yNuPBf6Q}7_iDrt{=NgG#E z3$nYL>4`b^#06M!0VpMbWi&j!V#|SMJwUY~j?NhzIF-ForT4w=q`F&}(oN(0G6<=G zSco4wZi(dp7J!Fn&2=Fu*-hq)-Yz^K7s-WBCkT{4xY~OQC@*E3605!IxSHslVaj(1 zJg+f@BD=A2{DmO53UVB9P8vigGNb2IavA%cCW|fUQaR6KpH(|`#8$EU=J2w&=o+oK zh#WG5HpYuf|Jo21-_?Gg^v}6Tc0(z~z>B={^K9d)6r3Z7?MmUH#Ei z3}BaN<{7T;#2G&0O`?(&+qjlI05t=3nhU%CW6Y)`2opGXhBX!w?6F7NB}BkaI^fVM z^fGXZAL3J?K!o3rc~e;UX49rF$vjtpkR?a?M`q-JBdki$feFen>wpWIW=HE&@3E4- z5jyrS9@9kDM7X+A1U;*H*AI^0b5gUqQ5XA)2X7~(+P;DqK=h7k0*2Ews(}>6uLORr zq-?-tvZ7#%e?_ia+~`Vm0kKZTp2!U~;v(DKiz?6UIt*o%4&zo38s`6i$vF}YN0aOk z=}RKhnmu4g>!H2CdSO0P8=TzbXSXlUBOE#YDl^5U;TRF+peq9x1Qr9c1i$PDBw* zJX+#uf}?p|%$#4ZGJ_@XVixwW2q8I18PjdlkLw$DKQ^-hZX#W7DKQ^?ANwl`jEq@M zHh_0YEbh}w0hGy_O-i?FclJDh+Zu9In3?l-zJ0%1JYA#tZ1wREQoAOYn>Iu%XaWde z<4RM5PZ+);8*pP7(kZ6eI~PmIDWD?VhC(a8w?ak2pOq_$29phWKdxxBY`|xq^+jN) zPR1UwHv09*CAYoBo#Q#BfClfSwr5VM&X_E#BezE}C;UF0VHzBKj45zHot2i>O& zw5_6&#h=}h3v2zXB`-xy@}8@^d9mmRS!;JPM?=~wlG-5?O)*ZNvZ_N)kQYHHOvjIR z0wtA)oyxL!kntf6*(etL(O6uT%^CiL^-)Zv$!XzQ`*zk_NaZ8z4c}U4gyqZkV6^yq zm+be_)gi^J1oZSPZX?zRdYchc!vyr2?VyoG7XppUF?7?PNat`qf?Pv=5H7U2DbTVr zEB={1A!=UUPc|}BP;Pq2_nE!cMRF;i?5dV10U+(HRrk;akEuD~Ji^IE|Kz`|WdF|R zpv$x59mtS;f5%2`$hMP1vL>KgW3u`XwXZ4%2b79?WSq4TBJyEfvik$13LDsTB80>Q z)i-^oLm46;bn7Ipolmh>Ei@^#UPNx3(gTnxhR@?H!qR9GdvI}#reXGnk_|=W>SZqm zUNv&Dif?c9>@L*Lf}A1WE&0u!I0s%jp-+&)3TiNS+665+&A^vrQHQNCOI~%LJy)-4 zyy8Z}8-EN@?v@L?z@4fowRcsuU;lHm z=KkQsF8cGdG2sh@h`ZhX%&g(22iZRt7w;vIejT&qcDyy^8XbI-MG*(b;XMjS^q#V{ zOs=ksY$6_qi-$_aL6!;m?ie|BfDViu_3{Rb?Ke+F=RIl3g;`)Ro{nz-pCh0TL-inB zC9yL%)`(tz_>XY*uI~}aJz$mVZE=rAx%ujTfj$x5O|+ApAZO_B<9ILb9OBs!m_hr3 z6$or)hYzPcvy`~Wbc!)+GP5u~(qPaRC=kdV{BM)u0NhT{c(- zMmWLknlj;SJ!>_JP-jLT9wzhz35OSx;L!7d!rwW@9em(iMa>rD2MOYBv=}L!x$#=24tFDodIa0f2~4oH2b!h2+R3oz5t-fuAi$ zMh6gTI=Ofka3){&b*g)Bip6}pLnrwGfH5S{b8HMi93srrs?gbl+cX#f zXw+|*VlHU;#UINTA~LaB)md_+yB9co{M>`ynPZrwar1XR(fD`#KR6?J!7zOZOP7$D zaxBrs@3w%6PW@tai$%)ehyLE)gX4i;M7Q?E@BBAOXQ^@`!NX(QH-_n0Gp1cjh&iMt zyTpV?Y0$-C%P?Qunf+WT?GEM+$A_Oa1hNmcrj`OYvf{@6|$N3GQCp()EjNRayDX%8AAhyi$Qz};ct!n_M_-p>u z&+=28fEF(|baW7h`JHG7S& z2ObYPyI@v?5GDUi{*pKW%q61f&c_l_2g?(Qrcg!RM~*G>BGR4KQIGP7wozqDWk*CG z_}u7za9};Atr&&xG<~bNQUej~1oY#F`nN`fruILLspl6Du0Ah4$SWGrCbgBD8ZYNU z7{^(g%^f<37N#8HAtPRtq3SCN6;up$+{5AnOO53Ck)l0fAar$ZTwgTHDx1gSjWbrL z6!mqG@@*XyK9sFdXT;W}SYnAanjD?Fk&iS&Cln%&4A7EYCGZIH4 z;0VY=X*zPW`!ze0=3lf|JJ~w&ZVwWcM&`r-UM`|0nKg)mGw~awZ6Sz{7P5R^EFlST!gM^iXSiDu0lwfZpVu3tA;8yef%sWuJ=__T+%aJb2^Yhx zF%3}a5QOlRNsbz7m_x3QopZkK6YZs#;YJ*UBSLO<=ryhz*E_OO35xgEUk{ZeEC%G$ zE+>R=Lk_~idYo;X=S@i#syJZ?eCVl6Z#?u+!AZM%YfT!SB&rX>)b8_eG-xPWG=AEZ zasxb=+BwrUi$+Z^$+*Nk?d!IXss-HccuzvJQ~r9S6nNN-+Cnyu|N4-oJ!7jB*1iQ4 zxM>-^8ybbcE^aPBKA%mBQn`-O^o(D7GrKP^2M`Lm-f;cPZv{kO=0M?35TJ$?cMul*DK~#vljAMnR0&?Mck6EQujQ)*fgPcJU;=AD0;NFh3(;8rViHAhcBvq)g!iuw9 zosE=<$MEQua=y%V3OSGd?6wP|cnkIYvqq7{)1Eaj6rD zaEQqjsv`orLH+j-f;~yLCl+_JwDh4kvlm%9{Jo{a=G_`IX-Y@Uo*yxh^nfUO?b-C> zGQnpUyF-@9-4X$@3@;CZZDjN7BE*f@l2LGIl{pil($xxf`83CF@^DnxA=)l%l9N_? zabqz$_~iy&*YI54&O`Zn7LahtV_!h(74h`?Hsv7T>nOBgoOC_68Mn5V<=*0y{egI7 zH3f?ZZxBatY{EDcEAcyD$-BUO0Cig5%REkw5;xh7c74z#Lgc5e+#Vx7j84I{W6lD7 zSnRg#6JnI*)X{h$;3I`D+dhx{0{_wCf0$I`mcEk05})m?Q}DC@@L6@Hyrh+*$NKS85+W zo}>u9u(uLTw)I&IqXpcCIv}*WJ{xGsF(i2IFFby_TcQ=hk)(7`azFyHaz<+R;93UwU!wGM3EvEwhYq)DF=u|NM3yvLLeYZ}N7Zz) z;|hjm2jMdN%F$~KN5rO$@iME_$J|ebH!VoH7wmK)B4;Erj!Ux|H>A4Oze6-b0+9dp zu|z+9YF_2-yqLcsxwtM(IL!b#o93mnO{if*dNQbKsY06ww{yc5+UP-hl*G%y zUxrzAu8khsz&EqyY_)6XuJ_1=yyJSY9bf)(b-e~TtMZq<)dW`0P40%jzEp?pKRGH* zyzc5{xC0-Raq7TJL5idH+&YzxhiP{1fQHj#v#3r&EaL;(c0q+dCSMZS($KU=NUcok>g=>kY`HRlJv5dNcV}_51{Aw#G zHp$VNy++8m#uAmd%mme;&M$QqD0f*6hG^xivx+ZEa9-)QbErU3a#(AFjx5&=snvDYl_n>s>|}i7^U_N zA6{cM#B6mtUe?Xa!Hs?0*`s7#LJ~|22G91!twX^wKAxdU{3~LnhAiRdluvxAJP+A( zgd%`--kO1PCaaQK!_8l%zB1T8mJc+`wlPUnzl5_br@r=#8S;foNa{eSOz`b@_!)dc z7GI$0&)!;*GEw8%Bd3O2(s^LO)sK+Ug0j7ps8Gb<984k?r2js+IFa_UR^D1kyl z%z_JbFBne&sIL}h+tbtGU|*63=f>~|l?~N3hEs*oCSS#isq}cyupDo?m~6M&6Djf= zn7jzEMCnt*WlnM~dAJ0>A$<&`Ypu_Zr_-=VC!MiWk^*MgJmN*PpjdLmv}RbXDn3X8 z;uXWG8?plf3a_T~*YoaJPAJt*n#95Q`?$MAb5l2}2cIm*9JO?Frvgo8Ny|HE76s&LC zQY!q2VEz@<*zb?}fwS55pYgvJVCWSxaOO9HWO__TApMeq!w5QhxLdgzW5@RQHRe=PF;ZxF^=uy6T~E`$>S`%rFSe3xF| zu1-#8mPjD3LpPi)s*9K?Vv=T%g`M2L8&EE z*5`yjJ^&!}wAUBl|3pekMx@+TF>|IE@(@s8$LW1u+LiF!H zE46)JX`^-%!xg|?dy4NO} z$xO^8hLf3ONABYo0DuGu&>6(-y7ZT%sljH0^ri;**TCY4=LWG0U7aZ`J8BF~!zk2i z6hEp>?&K)o@wnKdl_V#KYDiw)o(ild zrdq-lcn$B_2Lmqx7a$mI%dyl1iD7Y~^SZvz;k4E7eNG*5opDpjj<6?g#dJp zU)?`!KY<7-1{NM9)Y#^v1rRMPV5vim4VPmz1amd6`8S_505wF>o;77Km)Cds5=7YU z9ye=b=P?NP9IBw^`zskeS8K+Rr>y6wNK^`S%jer#Cm5#Q82Lj12u$p>ou01vOyLyl zSqCtR@vE-_7y>AUL#QI-_OZWTuY<#tAOXS5`*_2y?J_)?l^(W8Hep=a3{s>6Am4pJDqHIZVCy01K)s< zT?U>M0NQ0rt+*6Qh6k zrHlwJW((2y& z-6jL}I9d!B`)Bcaemh$Me3_%RlhwpVxY2PTf5@O|l4e`hL949;@DNI~m zYPdS0mZW$UKb?cw`1Y7xq(YN~LZtRY+%0hm@peZVQ)2OgA69||!!{P^fU0mV*{(zk zBZ_9&(fxcjoqe98M3x3p?K0njcZU?q+`OZaVZ;OY4D0~U zlQ3#$JulR2LMIl(-e!4LEv0f9meQ1R=%{m0$DVl~ap8T*G2S^P$FxN{GcVu^`Dx%R z>Y|7?*Mm=08B&%Ri}5me{k&8}Q&!Rz9;)@^o` zFW0Ybp8`WmT%d8Oknc!AAsD4v=_fjovZ|1lePyJP$ad<^g`kiUB3WsI)I;r_s@_ z)^5Fzwk*XDFzINx|Gs#CKjj!w=rJxHFY5Lcwb_{5g*&(4hTM$N=}-FO+ms5tC}arD zrx{ivwS7fh1nts~a(jc-xA1jWntI>}n+AZr**>jy*e$cZ-^q{yu8~4ydu)r=xq#{r z1L2-g*U^`NMQq+qj{EvYFY;^wh&b z>_IaVwrAl6aPvTIU*R^4_!33Ylc52%vuOJgB+=@1jcPB-uSt#`^dP5~nE=4cS|WI_ z*sZ>^Qw}kR@nyO<&_Nksy72OcTf+b`LzBHVtj2J<48zB8c$+@Ou)ztJWA@;salqq8 zEWSx89>6y|N+VT7j1taR;DuMM#$sUA=&SIT+3Ig9&{rinX{{wupVG{7ni>xD2MU-J zst?|08vnT~wx-uyDrqu+#h6Wy&;iHZ6%W=Vc+5zsv#pibQMndjieXq4 za!K7B!!_>Sx`s}+bAHcWPNMJl0WnkTi_ig0n+eJe?9Ls%kp50>?Hr%Wzu;Ch*uVax zz&|BND{w&x=HVqOkJ4rSykTfnq#l{QR$3IPwDp*@z>ntdS zw6N86?vGDw5frpd^ zdl|(ZIuxC~IfaqTTl&9AXaF0V_6VM#aS67%6^} ztvBMsC)Ux%Xd7kEn7nAdV)H49 zFCsg>&$&xH{H0R|MA5jp1SVfNFy2nC|X)@9%3gBrnJ$3#Fx3vVe# zQFP&WOiHP!U3w-Z!vU2P656kpR~QGE9>-Ag4w6%ef1jC!PVaHS}{5JS}o zKVqsH-n&vqhBLmZ%#GO_H^)lKG0NzOh>%

cp!NRFO=HYfj$S5PCBrwUsvu2!@;{ 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 literal 1116968 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 hyVEk|Kdra0RSfP=Pa7#0z|nU{ir_ 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

u)xhGemTPfIlgT9m!%I-T>l*QTaY3dGva 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 diff --git a/Assignment3/parser.tab.c b/Assignment3/parser.tab.c index dcf8e6c..02e0b51 100644 --- a/Assignment3/parser.tab.c +++ b/Assignment3/parser.tab.c @@ -76,6 +76,7 @@ void yyerror(const char *s); void print_errors(); + void print_scope_table(); extern int yylex(); extern int yylineno; @@ -101,7 +102,7 @@ } argList; -#line 105 "parser.tab.c" +#line 106 "parser.tab.c" # ifndef YY_CAST # ifdef __cplusplus @@ -262,49 +263,51 @@ enum yysymbol_kind_t YYSYMBOL_storage_class_specifier = 130, /* storage_class_specifier */ YYSYMBOL_type_specifier = 131, /* type_specifier */ YYSYMBOL_struct_or_union_specifier = 132, /* struct_or_union_specifier */ - YYSYMBOL_struct_or_union = 133, /* struct_or_union */ - YYSYMBOL_struct_declaration_list = 134, /* struct_declaration_list */ - YYSYMBOL_struct_declaration = 135, /* struct_declaration */ - YYSYMBOL_specifier_qualifier_list = 136, /* specifier_qualifier_list */ - YYSYMBOL_struct_declarator_list = 137, /* struct_declarator_list */ - YYSYMBOL_struct_declarator = 138, /* struct_declarator */ - YYSYMBOL_enum_specifier = 139, /* enum_specifier */ - YYSYMBOL_enumerator_list = 140, /* enumerator_list */ - YYSYMBOL_enumerator = 141, /* enumerator */ - YYSYMBOL_type_qualifier = 142, /* type_qualifier */ - YYSYMBOL_declarator = 143, /* declarator */ - YYSYMBOL_direct_declarator = 144, /* direct_declarator */ - YYSYMBOL_pointer = 145, /* pointer */ - YYSYMBOL_type_qualifier_list = 146, /* type_qualifier_list */ - YYSYMBOL_parameter_type_list = 147, /* parameter_type_list */ - YYSYMBOL_parameter_list = 148, /* parameter_list */ - YYSYMBOL_parameter_declaration = 149, /* parameter_declaration */ - YYSYMBOL_identifier_list = 150, /* identifier_list */ - YYSYMBOL_type_name = 151, /* type_name */ - YYSYMBOL_abstract_declarator = 152, /* abstract_declarator */ - YYSYMBOL_direct_abstract_declarator = 153, /* direct_abstract_declarator */ - YYSYMBOL_initializer = 154, /* initializer */ - YYSYMBOL_initializer_list = 155, /* initializer_list */ - YYSYMBOL_statement = 156, /* statement */ - YYSYMBOL_labeled_statement = 157, /* labeled_statement */ - YYSYMBOL_compound_statement = 158, /* compound_statement */ - YYSYMBOL_159_1 = 159, /* $@1 */ - YYSYMBOL_160_2 = 160, /* $@2 */ + YYSYMBOL_133_1 = 133, /* $@1 */ + YYSYMBOL_134_2 = 134, /* $@2 */ + YYSYMBOL_struct_or_union = 135, /* struct_or_union */ + YYSYMBOL_struct_declaration_list = 136, /* struct_declaration_list */ + YYSYMBOL_struct_declaration = 137, /* struct_declaration */ + YYSYMBOL_specifier_qualifier_list = 138, /* specifier_qualifier_list */ + YYSYMBOL_struct_declarator_list = 139, /* struct_declarator_list */ + YYSYMBOL_struct_declarator = 140, /* struct_declarator */ + YYSYMBOL_enum_specifier = 141, /* enum_specifier */ + YYSYMBOL_enumerator_list = 142, /* enumerator_list */ + YYSYMBOL_enumerator = 143, /* enumerator */ + YYSYMBOL_type_qualifier = 144, /* type_qualifier */ + YYSYMBOL_declarator = 145, /* declarator */ + YYSYMBOL_direct_declarator = 146, /* direct_declarator */ + YYSYMBOL_pointer = 147, /* pointer */ + YYSYMBOL_type_qualifier_list = 148, /* type_qualifier_list */ + YYSYMBOL_parameter_type_list = 149, /* parameter_type_list */ + YYSYMBOL_parameter_list = 150, /* parameter_list */ + YYSYMBOL_parameter_declaration = 151, /* parameter_declaration */ + YYSYMBOL_identifier_list = 152, /* identifier_list */ + YYSYMBOL_type_name = 153, /* type_name */ + YYSYMBOL_abstract_declarator = 154, /* abstract_declarator */ + YYSYMBOL_direct_abstract_declarator = 155, /* direct_abstract_declarator */ + YYSYMBOL_initializer = 156, /* initializer */ + YYSYMBOL_initializer_list = 157, /* initializer_list */ + YYSYMBOL_statement = 158, /* statement */ + YYSYMBOL_labeled_statement = 159, /* labeled_statement */ + YYSYMBOL_compound_statement = 160, /* compound_statement */ YYSYMBOL_161_3 = 161, /* $@3 */ YYSYMBOL_162_4 = 162, /* $@4 */ - YYSYMBOL_statement_declaration_list = 163, /* statement_declaration_list */ - YYSYMBOL_declaration_list = 164, /* declaration_list */ - YYSYMBOL_statement_list = 165, /* statement_list */ - YYSYMBOL_expression_statement = 166, /* expression_statement */ - YYSYMBOL_selection_statement = 167, /* selection_statement */ - YYSYMBOL_168_5 = 168, /* $@5 */ - YYSYMBOL_iteration_statement = 169, /* iteration_statement */ - YYSYMBOL_jump_statement = 170, /* jump_statement */ - YYSYMBOL_start_symbol = 171, /* start_symbol */ - YYSYMBOL_translation_unit = 172, /* translation_unit */ - YYSYMBOL_external_declaration = 173, /* external_declaration */ - YYSYMBOL_function_definition = 174, /* function_definition */ - YYSYMBOL_175_6 = 175 /* $@6 */ + YYSYMBOL_163_5 = 163, /* $@5 */ + YYSYMBOL_164_6 = 164, /* $@6 */ + YYSYMBOL_statement_declaration_list = 165, /* statement_declaration_list */ + YYSYMBOL_declaration_list = 166, /* declaration_list */ + YYSYMBOL_statement_list = 167, /* statement_list */ + YYSYMBOL_expression_statement = 168, /* expression_statement */ + YYSYMBOL_selection_statement = 169, /* selection_statement */ + YYSYMBOL_170_7 = 170, /* $@7 */ + YYSYMBOL_iteration_statement = 171, /* iteration_statement */ + YYSYMBOL_jump_statement = 172, /* jump_statement */ + YYSYMBOL_start_symbol = 173, /* start_symbol */ + YYSYMBOL_translation_unit = 174, /* translation_unit */ + YYSYMBOL_external_declaration = 175, /* external_declaration */ + YYSYMBOL_function_definition = 176, /* function_definition */ + YYSYMBOL_177_8 = 177 /* $@8 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; @@ -632,16 +635,16 @@ union yyalloc /* YYFINAL -- State number of the termination state. */ #define YYFINAL 63 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 2086 +#define YYLAST 2115 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 103 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 73 +#define YYNNTS 75 /* YYNRULES -- Number of rules. */ -#define YYNRULES 234 +#define YYNRULES 236 /* YYNSTATES -- Number of states. */ -#define YYNSTATES 380 +#define YYNSTATES 382 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 357 @@ -700,30 +703,30 @@ static const yytype_int8 yytranslate[] = /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { - 0, 75, 75, 81, 87, 88, 89, 90, 97, 98, - 110, 127, 131, 132, 144, 148, 180, 210, 249, 320, - 321, 330, 341, 372, 408, 412, 413, 414, 435, 436, - 440, 447, 454, 461, 468, 475, 485, 489, 497, 498, - 506, 514, 528, 529, 537, 548, 549, 560, 574, 575, - 583, 591, 600, 611, 612, 620, 631, 632, 643, 644, - 658, 659, 673, 674, 686, 687, 698, 699, 703, 704, - 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, - 831, 835, 839, 846, 850, 851, 942, 943, 953, 954, - 955, 959, 962, 969, 997, 1045, 1046, 1047, 1048, 1049, - 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 1075, 1083, 1084, 1101, 1102, 1106, 1107, 1119, - 1138, 1139, 1143, 1148, 1156, 1157, 1158, 1162, 1163, 1164, - 1168, 1169, 1173, 1174, 1178, 1179, 1183, 1187, 1193, 1200, - 1201, 1212, 1216, 1229, 1230, 1245, 1246, 1247, 1248, 1252, - 1253, 1258, 1268, 1272, 1279, 1290, 1298, 1304, 1313, 1314, - 1318, 1319, 1323, 1324, 1325, 1329, 1330, 1331, 1332, 1333, - 1334, 1335, 1336, 1337, 1341, 1345, 1346, 1350, 1351, 1363, - 1368, 1372, 1376, 1377, 1378, 1383, 1410, 1438, 1439, 1446, - 1456, 1458, 1457, 1478, 1478, 1482, 1482, 1486, 1486, 1492, - 1504, 1515, 1524, 1531, 1538, 1542, 1546, 1549, 1557, 1561, - 1562, 1566, 1572, 1579, 1579, 1602, 1612, 1622, 1632, 1648, - 1671, 1678, 1685, 1693, 1704, 1713, 1717, 1721, 1725, 1729, - 1733, 1735, 1734, 1770, 1771 + 0, 76, 76, 82, 88, 89, 90, 91, 98, 99, + 111, 128, 132, 133, 145, 149, 181, 211, 250, 321, + 322, 331, 342, 374, 410, 414, 423, 432, 461, 462, + 466, 473, 480, 487, 494, 501, 511, 516, 524, 525, + 533, 541, 555, 556, 569, 580, 581, 592, 606, 607, + 615, 623, 632, 643, 644, 652, 663, 664, 675, 676, + 690, 691, 705, 706, 718, 719, 730, 731, 735, 742, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, + 873, 877, 881, 888, 892, 893, 1007, 1008, 1018, 1019, + 1020, 1024, 1027, 1034, 1063, 1112, 1113, 1114, 1115, 1116, + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, + 1130, 1131, 1143, 1156, 1142, 1169, 1170, 1190, 1191, 1195, + 1196, 1208, 1227, 1228, 1232, 1237, 1245, 1246, 1247, 1251, + 1252, 1253, 1257, 1258, 1262, 1263, 1267, 1268, 1272, 1276, + 1282, 1290, 1291, 1302, 1306, 1319, 1320, 1335, 1336, 1337, + 1338, 1342, 1343, 1348, 1358, 1362, 1369, 1380, 1388, 1394, + 1403, 1404, 1408, 1409, 1413, 1414, 1415, 1419, 1420, 1421, + 1422, 1423, 1424, 1425, 1426, 1427, 1431, 1436, 1437, 1441, + 1442, 1454, 1459, 1463, 1467, 1468, 1469, 1474, 1501, 1529, + 1530, 1537, 1547, 1549, 1548, 1569, 1569, 1573, 1573, 1577, + 1577, 1583, 1595, 1606, 1615, 1622, 1629, 1633, 1637, 1640, + 1648, 1652, 1653, 1657, 1663, 1670, 1670, 1693, 1703, 1713, + 1723, 1739, 1762, 1769, 1776, 1784, 1795, 1804, 1808, 1812, + 1816, 1820, 1824, 1826, 1825, 1861, 1862 }; #endif @@ -767,19 +770,19 @@ static const char *const yytname[] = "expression", "constant_expression", "declaration", "declaration_specifiers", "init_declarator_list", "init_declarator", "storage_class_specifier", "type_specifier", "struct_or_union_specifier", - "struct_or_union", "struct_declaration_list", "struct_declaration", - "specifier_qualifier_list", "struct_declarator_list", - "struct_declarator", "enum_specifier", "enumerator_list", "enumerator", - "type_qualifier", "declarator", "direct_declarator", "pointer", - "type_qualifier_list", "parameter_type_list", "parameter_list", - "parameter_declaration", "identifier_list", "type_name", - "abstract_declarator", "direct_abstract_declarator", "initializer", - "initializer_list", "statement", "labeled_statement", - "compound_statement", "$@1", "$@2", "$@3", "$@4", - "statement_declaration_list", "declaration_list", "statement_list", - "expression_statement", "selection_statement", "$@5", + "$@1", "$@2", "struct_or_union", "struct_declaration_list", + "struct_declaration", "specifier_qualifier_list", + "struct_declarator_list", "struct_declarator", "enum_specifier", + "enumerator_list", "enumerator", "type_qualifier", "declarator", + "direct_declarator", "pointer", "type_qualifier_list", + "parameter_type_list", "parameter_list", "parameter_declaration", + "identifier_list", "type_name", "abstract_declarator", + "direct_abstract_declarator", "initializer", "initializer_list", + "statement", "labeled_statement", "compound_statement", "$@3", "$@4", + "$@5", "$@6", "statement_declaration_list", "declaration_list", + "statement_list", "expression_statement", "selection_statement", "$@7", "iteration_statement", "jump_statement", "start_symbol", - "translation_unit", "external_declaration", "function_definition", "$@6", YY_NULLPTR + "translation_unit", "external_declaration", "function_definition", "$@8", YY_NULLPTR }; static const char * @@ -789,12 +792,12 @@ yysymbol_name (yysymbol_kind_t yysymbol) } #endif -#define YYPACT_NINF (-250) +#define YYPACT_NINF (-248) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) -#define YYTABLE_NINF (-232) +#define YYTABLE_NINF (-234) #define yytable_value_is_error(Yyn) \ 0 @@ -803,44 +806,45 @@ yysymbol_name (yysymbol_kind_t yysymbol) STATE-NUM. */ static const yytype_int16 yypact[] = { - 1695, 150, -250, -250, -250, -250, -250, -250, -250, -250, - -250, -250, -250, -250, 5, -250, -250, -250, -250, -250, - -250, 23, 69, -250, 7, 2038, -250, -250, 11, -250, - 2038, 1743, -11, 27, 59, 1695, -250, -250, 4, 95, - -250, 60, -250, -250, 69, -250, -19, -250, 1573, -250, - -250, 125, 1529, -250, 97, 119, -250, 7, -250, 1857, - 1125, 1781, -11, -250, -250, 95, 89, -36, -250, -250, - -250, -250, 23, -250, 1161, 1857, 128, 1529, -250, 1981, - -250, 9, -250, -250, -250, 481, 645, 1905, 1905, 117, - -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, - -250, 1445, -250, 805, -250, -250, -250, -250, -250, -250, - 1481, 1481, -250, -250, 170, -250, 1525, -250, 72, 103, - 34, 37, 118, 135, 123, 127, 130, -24, -250, 165, - -250, -250, 38, 174, 179, -250, 105, -28, 1525, -250, - 95, -250, 1161, 592, -250, -250, -250, -250, -250, 2000, - -250, -250, 1525, 115, -250, 196, 198, 26, 201, 1525, - 214, 247, 1045, 221, 228, 230, -250, 231, 1205, -250, - -250, 157, -250, -250, -250, 237, 317, 399, -250, -250, - -250, -250, 229, 232, 885, 1943, 563, 805, -250, -250, - 164, -15, 236, 1525, -250, -250, 1525, 1241, 302, -250, - -250, 303, -250, 1525, 1525, 1525, 1525, 1525, 1525, 1525, - 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, 1525, - 1525, 1525, -250, 1285, 1619, -250, 78, -250, 173, -250, - 264, -250, 304, -250, -250, -250, -250, 66, -250, -250, - -250, -250, -250, -250, -250, -250, -250, -250, -250, 1525, - -250, -250, 9, -250, 1525, -250, 725, -250, 251, -250, - 263, 286, 1045, 1525, 1321, 269, 1525, -250, 171, 1525, - -250, -250, -250, -250, -250, -250, -250, -250, -250, -250, - 965, 271, -250, 1657, 180, -250, 1525, 68, -250, 178, - -250, -250, -250, -250, -250, -250, 72, 72, 103, 103, - 34, 34, 34, 34, 37, 37, 118, 135, 123, 127, - 205, 130, -250, 281, -250, 282, 283, 173, 1365, 1819, - -250, -250, -250, -250, 1081, -250, -250, -250, -250, -250, - 1045, -250, 306, -250, 182, 1321, 1525, 185, -250, -250, - -250, -250, -250, -250, -250, 1525, 1525, -250, -250, -250, - -250, 308, -250, 307, -250, -250, -250, 1525, 1045, 1401, - 186, 1045, -250, -250, -250, -250, 192, 346, 1045, 193, - 1045, -250, 305, 1045, -250, 1045, -250, -250, -250, -250 + 1724, 57, -248, -248, -248, -248, -248, -248, -248, -248, + -248, -248, -248, -248, 8, -248, -248, -248, -248, -248, + -248, 39, 146, -248, 25, 2067, -248, -248, 16, -248, + 2067, 1772, 34, 29, 48, 1724, -248, -248, -29, 40, + -248, -2, -248, -248, 146, -248, 80, -248, 1602, -248, + -248, -4, 1558, -248, 5, 19, -248, 25, -248, 1886, + 1154, 1810, 34, -248, -248, 40, 30, -36, -248, -248, + -248, -248, 39, -248, 1190, 1886, 76, 87, -248, 2010, + -248, 27, -248, -248, -248, 510, 674, 1934, 1934, 33, + -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, + -248, 1474, -248, 834, -248, -248, -248, -248, -248, -248, + 1510, 1510, -248, -248, 158, -248, 1554, -248, 71, 155, + 77, -45, 119, 59, 64, 97, 92, 52, -248, 123, + -248, -248, 61, 136, 144, -248, 128, -20, 1554, -248, + 40, -248, 1190, 208, -248, -248, -248, -248, -248, -248, + -248, -248, 1554, 127, -248, 149, 176, 44, 194, 1554, + 196, 239, 1074, 206, 211, 212, -248, 214, 1234, -248, + -248, 137, -248, -248, -248, 219, 346, 428, -248, -248, + -248, -248, 213, 216, 914, 1972, 592, 834, -248, -248, + 147, 6, 215, 1554, -248, -248, 1554, 1270, 273, -248, + -248, 276, -248, 1554, 1554, 1554, 1554, 1554, 1554, 1554, + 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, 1554, + 1554, 1554, -248, 1314, 1648, -248, 68, -248, 159, -248, + 298, -248, 277, -248, -248, -248, -248, -5, -248, -248, + -248, -248, -248, -248, -248, -248, -248, -248, -248, 1554, + 1558, -248, 27, -248, 1554, -248, 754, -248, 224, -248, + 225, 259, 1074, 1554, 1350, 233, 1554, -248, 161, 1554, + -248, -248, -248, -248, -248, -248, -248, -248, -248, -248, + 994, 234, -248, 1686, 167, -248, 1554, 73, -248, 171, + -248, -248, -248, -248, -248, -248, 71, 71, 155, 155, + 77, 77, 77, 77, -45, -45, 119, 59, 64, 97, + 173, 92, -248, 235, -248, 245, 248, 159, 1394, 1848, + -248, -248, -248, -248, 1110, -248, 2029, -248, -248, -248, + -248, 1074, -248, 254, -248, 172, 1350, 1554, 179, -248, + -248, -248, -248, -248, -248, -248, 1554, 1554, -248, -248, + -248, -248, 256, -248, 255, -248, -248, -248, -248, 1554, + 1074, 1430, 183, 1074, -248, -248, -248, -248, 184, 294, + 1074, 187, 1074, -248, 263, 1074, -248, 1074, -248, -248, + -248, -248 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. @@ -848,57 +852,58 @@ static const yytype_int16 yypact[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 227, 138, 98, 115, 134, 97, 100, 105, 103, 106, - 96, 102, 104, 101, 0, 99, 107, 95, 116, 108, - 135, 0, 145, 229, 0, 86, 88, 109, 0, 110, - 89, 0, 137, 0, 0, 224, 225, 228, 129, 0, - 138, 0, 149, 147, 146, 84, 0, 91, 0, 111, - 87, 114, 0, 90, 0, 191, 203, 0, 234, 0, - 0, 0, 136, 1, 226, 0, 132, 0, 130, 139, - 150, 148, 0, 85, 0, 0, 0, 0, 120, 0, - 117, 0, 121, 205, 190, 0, 0, 0, 0, 93, - 204, 233, 2, 5, 8, 4, 6, 3, 7, 9, - 10, 0, 141, 0, 32, 33, 31, 30, 35, 34, + 229, 140, 98, 117, 136, 97, 100, 105, 103, 106, + 96, 102, 104, 101, 0, 99, 107, 95, 118, 108, + 137, 0, 147, 231, 0, 86, 88, 109, 0, 110, + 89, 0, 139, 0, 0, 226, 227, 230, 131, 0, + 140, 0, 151, 149, 148, 84, 0, 91, 0, 111, + 87, 116, 0, 90, 0, 193, 205, 0, 236, 0, + 0, 0, 138, 1, 228, 0, 134, 0, 132, 141, + 152, 150, 0, 85, 0, 0, 0, 0, 122, 0, + 119, 0, 123, 207, 192, 0, 0, 0, 0, 93, + 206, 235, 2, 5, 8, 4, 6, 3, 7, 9, + 10, 0, 143, 0, 32, 33, 31, 30, 35, 34, 0, 0, 11, 14, 24, 36, 0, 38, 42, 45, 48, 53, 56, 58, 60, 62, 64, 66, 83, 0, - 111, 144, 157, 0, 151, 153, 0, 0, 0, 127, - 0, 92, 0, 36, 68, 174, 94, 230, 232, 0, - 113, 118, 0, 0, 122, 124, 0, 10, 0, 0, - 0, 0, 0, 0, 0, 0, 213, 0, 0, 209, - 81, 0, 206, 179, 180, 0, 0, 0, 181, 182, - 183, 184, 0, 10, 0, 0, 0, 0, 28, 10, - 0, 160, 0, 0, 25, 26, 0, 0, 0, 20, + 111, 146, 159, 0, 153, 155, 0, 0, 0, 129, + 0, 92, 0, 36, 68, 176, 94, 232, 234, 113, + 115, 120, 0, 0, 124, 126, 0, 10, 0, 0, + 0, 0, 0, 0, 0, 0, 215, 0, 0, 211, + 81, 0, 208, 181, 182, 0, 0, 0, 183, 184, + 185, 186, 0, 10, 0, 0, 0, 0, 28, 10, + 0, 162, 0, 0, 25, 26, 0, 0, 0, 20, 21, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 0, 0, 155, 162, 156, 163, 142, - 0, 143, 0, 128, 133, 131, 177, 0, 70, 74, + 0, 0, 142, 0, 0, 157, 164, 158, 165, 144, + 0, 145, 0, 130, 135, 133, 179, 0, 70, 74, 75, 71, 72, 73, 78, 80, 79, 76, 77, 0, - 112, 125, 0, 119, 0, 205, 187, 221, 0, 220, - 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, - 210, 192, 203, 200, 206, 199, 208, 194, 207, 196, - 0, 0, 13, 0, 162, 161, 0, 0, 16, 0, + 0, 127, 0, 121, 0, 207, 189, 223, 0, 222, + 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, + 212, 194, 205, 202, 208, 201, 210, 196, 209, 198, + 0, 0, 13, 0, 164, 163, 0, 0, 16, 0, 22, 18, 19, 39, 40, 41, 43, 44, 46, 47, 49, 50, 51, 52, 54, 55, 57, 59, 61, 63, - 0, 65, 166, 0, 170, 0, 0, 164, 0, 0, - 152, 154, 159, 175, 0, 69, 123, 126, 186, 185, - 0, 219, 0, 189, 0, 0, 0, 0, 223, 82, - 198, 29, 37, 15, 17, 0, 0, 167, 171, 165, - 168, 0, 172, 0, 176, 178, 188, 0, 0, 0, - 0, 0, 23, 67, 169, 173, 0, 211, 0, 0, - 0, 215, 0, 0, 217, 0, 214, 216, 212, 218 + 0, 65, 168, 0, 172, 0, 0, 166, 0, 0, + 154, 156, 161, 177, 0, 69, 0, 125, 128, 188, + 187, 0, 221, 0, 191, 0, 0, 0, 0, 225, + 82, 200, 29, 37, 15, 17, 0, 0, 169, 173, + 167, 170, 0, 174, 0, 178, 180, 114, 190, 0, + 0, 0, 0, 0, 23, 67, 171, 175, 0, 213, + 0, 0, 0, 217, 0, 0, 219, 0, 216, 218, + 214, 220 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -250, -250, -250, -250, -250, -59, -250, -84, 70, 64, - -23, 67, 156, 159, 155, 158, 160, -250, -58, -71, - -250, -91, -119, 6, 0, -250, 310, -250, -13, -250, - -250, 311, -62, -89, -250, 138, -250, 314, 240, 31, - -14, -25, -18, -250, -56, -250, 161, -250, 200, -109, - -199, -131, -250, -153, -250, 109, -250, -250, -250, -250, - 108, 24, -73, -249, -250, -250, -250, -250, -250, -250, - 359, -250, -250 + -248, -248, -248, -248, -248, -54, -248, -102, 47, 49, + -32, 53, 104, 105, 107, 113, 110, -248, -55, -72, + -248, -81, -106, 10, 0, -248, 286, -248, -40, -248, + -248, -248, -248, 98, -71, -88, -248, 118, -248, 297, + 257, -21, -8, -24, -18, -248, -58, -248, 129, -248, + 186, -114, -206, -135, -248, -49, -248, 112, -248, -248, + -248, -248, 93, -7, -75, -247, -248, -248, -248, -248, + -248, -248, 339, -248, -248 }; /* YYDEFGOTO[NTERM-NUM]. */ @@ -907,11 +912,11 @@ static const yytype_int16 yydefgoto[] = 0, 112, 113, 114, 289, 143, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 144, 170, 249, 171, 129, 56, 57, 46, 47, 25, 26, 27, - 28, 79, 80, 81, 153, 154, 29, 67, 68, 30, - 31, 32, 33, 44, 315, 134, 135, 136, 192, 316, - 228, 146, 237, 172, 173, 174, 85, 86, 87, 88, - 175, 176, 177, 178, 179, 265, 180, 181, 34, 35, - 36, 37, 76 + 77, 250, 28, 79, 80, 81, 153, 154, 29, 67, + 68, 30, 31, 32, 33, 44, 315, 134, 135, 136, + 192, 316, 228, 146, 237, 172, 173, 174, 85, 86, + 87, 88, 175, 176, 177, 178, 179, 265, 180, 181, + 34, 35, 36, 37, 76 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If @@ -919,428 +924,434 @@ static const yytype_int16 yydefgoto[] = number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { - 24, 115, 128, 145, 43, 133, 23, 41, 62, 261, - 48, 236, 190, 184, 191, 335, 38, 151, 40, 234, - 40, 139, 51, 227, 274, 50, 71, 317, 140, 233, - 53, 278, 202, 251, 40, 24, 140, -111, 40, 78, - 258, 23, 188, 89, 223, 72, 283, 73, 60, 40, - 61, 194, 195, 42, 22, 59, 220, 115, 89, 63, - 221, 132, 65, 39, 78, 90, 78, 155, 21, 52, - 21, 145, 75, 45, 152, 70, 22, 268, 22, 115, - 128, 90, 285, 82, 21, 317, 359, 151, 21, 40, - 78, 256, 22, 115, 128, 4, 190, 223, 191, 224, - 115, 128, 190, 329, 313, 287, 66, 22, 82, 333, - 82, 185, 186, 280, 226, 210, 211, 20, 225, 293, - 294, 295, 69, 323, 212, 213, 290, 278, 343, 310, - 324, 208, 269, 209, 82, 327, 78, 223, 22, 224, - 58, 203, 204, 205, 115, 115, 115, 115, 115, 115, + 24, 42, 145, 133, 43, 128, 115, 236, 151, 62, + 23, 184, 78, 41, 202, 191, 48, 336, 227, 38, + 317, 139, 190, 70, 59, 50, 71, 51, 140, 65, + 53, 82, 234, 210, 211, 24, 40, 233, 40, 78, + 40, 75, 212, 213, 140, 23, 251, 188, 63, 89, + 40, 66, 323, 258, -112, -111, 194, 195, 82, 324, + 69, 132, 115, 78, 89, 223, 39, 283, -111, 90, + 145, 83, 40, 155, 52, 22, 84, 285, 317, 40, + 185, 186, 82, 128, 115, 90, 21, 268, 21, 361, + 21, 45, 152, 60, 22, 61, 22, 128, 115, 191, + 21, 293, 294, 295, 128, 115, 190, 138, 22, 256, + 74, 280, 190, 261, 226, 287, -111, 313, -111, -111, + 223, -111, 224, -111, 225, 290, -111, 223, 274, 224, + 22, 216, 220, 344, 55, 278, 221, 269, 217, 310, + 203, 204, 205, 58, 72, 149, 73, 78, 328, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, - 115, -111, 115, 83, 115, 128, 138, 231, 91, 232, - 206, 207, 334, 284, 78, 337, 84, 356, 325, 252, - 82, 253, 272, 77, 147, 148, 55, 300, 301, 302, - 303, 90, 90, 355, 74, 115, 128, 217, 339, 351, - 218, 62, 342, 214, 215, 367, 226, 216, 371, -111, - 41, -111, -111, 219, -111, 374, -111, 376, 82, -111, - 378, 269, 379, 270, 132, 222, 282, 115, 269, 196, - 132, 197, 318, 198, 319, 269, 229, 338, 155, 223, - 344, 283, 345, 230, 358, 360, 269, 361, 370, 269, - 269, 199, 200, 145, 372, 375, 269, 269, 260, 115, - 128, 254, 328, 353, 255, 284, 366, 257, 369, 269, - 346, 201, 298, 299, 362, 49, 296, 297, 2, 3, - 259, 304, 305, 132, 273, 275, 262, 115, 363, 263, - 4, 264, 266, 5, 271, 276, 6, 256, 286, 7, + 115, 115, 115, 115, 115, 115, 82, 115, 128, 115, + 218, 91, 4, 284, 208, 219, 209, 325, 300, 301, + 302, 303, 335, 222, 343, 338, 272, 147, 148, 356, + 231, 252, 232, 253, 20, 90, 90, 340, 229, 128, + 115, 269, 62, 270, 214, 215, 226, 330, 230, 282, + 78, 269, 352, 334, 254, 22, 41, 196, 318, 197, + 319, 198, 206, 207, 132, 269, 223, 339, 283, 82, + 132, 278, 115, 345, 360, 346, 269, 269, 347, 199, + 200, 363, 255, 269, 155, 372, 374, 269, 269, 377, + 260, 269, 145, 296, 297, 151, 362, 298, 299, 201, + 257, 354, 259, 128, 115, 284, 329, 304, 305, 273, + 275, 262, 263, 264, 364, 266, 271, 286, 368, 276, + 371, 256, 358, 132, 291, 238, 78, 292, 322, 331, + 333, 332, 365, 115, 337, 348, 342, 239, 240, 241, + 242, 243, 244, 245, 246, 82, 247, 349, 248, 49, + 350, 369, 2, 3, 373, 359, 366, 367, 375, 132, + 306, 376, 307, 378, 4, 308, 380, 5, 381, 379, + 6, 311, 309, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 156, 326, 92, + 93, 94, 95, 96, 97, 98, 99, 157, 141, 321, + 2, 3, 137, 158, 159, 160, 161, 162, 163, 164, + 327, 165, 4, 281, 64, 5, 166, 167, 6, 168, + 101, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 0, 0, 235, 0, 0, + 320, 0, 0, -204, 55, 0, 0, 103, 0, 0, + 0, 0, 169, 104, 105, 106, 0, 0, 107, 0, + 0, 108, 109, 0, 0, 0, 0, 110, 111, 156, + 0, 92, 93, 94, 95, 96, 97, 98, 99, 157, + 0, 0, 2, 3, 0, 158, 159, 160, 161, 162, + 163, 164, 0, 165, 4, 0, 0, 5, 166, 167, + 6, 168, 101, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 0, 0, 0, + 0, 0, 0, 0, 0, -203, 55, 0, 0, 103, + 0, 0, 0, 0, 169, 104, 105, 106, 0, 0, + 107, 0, 0, 108, 109, 0, 0, 0, 0, 110, + 111, 156, 0, 92, 93, 94, 95, 96, 97, 98, + 99, 157, 0, 0, 2, 3, 0, 158, 159, 160, + 161, 162, 163, 164, 0, 165, 4, 0, 0, 5, + 166, 167, 6, 168, 101, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 55, 0, + 0, 103, 0, 0, 0, 0, 169, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 0, 0, + 0, 110, 111, 182, 0, 92, 93, 94, 95, 96, + 97, 98, 99, 157, 0, 0, 2, 3, 0, 158, + 159, 160, 161, 162, 163, 164, 0, 165, 4, 0, + 0, 5, 166, 167, 6, 168, 101, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 55, 0, 0, 103, 0, 0, 0, 0, 169, 104, + 105, 106, 0, 0, 107, 0, 0, 108, 109, 0, + 0, 0, 0, 110, 111, 182, 0, 92, 93, 94, + 95, 96, 97, 98, 99, 183, 0, 0, 0, 0, + 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, + 0, 0, 0, 0, 166, 167, 0, 168, 101, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 103, 0, 0, 0, 0, + 169, 104, 105, 106, 0, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 157, 0, 0, 2, 3, + 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, + 4, 0, 0, 5, 166, 167, 6, 168, 101, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, 291, 292, 322, 330, 332, 156, 132, - 92, 93, 94, 95, 96, 97, 98, 99, 157, 331, - 336, 2, 3, 341, 158, 159, 160, 161, 162, 163, - 164, 347, 165, 4, 348, 349, 5, 166, 167, 6, - 168, 101, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 320, 357, 364, 365, - 373, 377, 306, 308, -202, 55, 307, 309, 103, 137, - 235, 311, 141, 169, 104, 105, 106, 281, 149, 107, - 326, 321, 108, 109, 64, 0, 0, 0, 110, 111, - 156, 0, 92, 93, 94, 95, 96, 97, 98, 99, - 157, 0, 0, 2, 3, 0, 158, 159, 160, 161, - 162, 163, 164, 0, 165, 4, 0, 0, 5, 166, - 167, 6, 168, 101, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 0, 0, - 0, 0, 0, 0, 0, 0, -201, 55, 0, 0, - 103, 0, 0, 0, 0, 169, 104, 105, 106, 0, - 0, 107, 0, 0, 108, 109, 0, 0, 0, 0, - 110, 111, 156, 0, 92, 93, 94, 95, 96, 97, - 98, 99, 157, 0, 0, 2, 3, 0, 158, 159, - 160, 161, 162, 163, 164, 0, 165, 4, 0, 0, - 5, 166, 167, 6, 168, 101, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, - 0, 0, 103, 0, 0, 0, 0, 169, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 0, - 0, 0, 110, 111, 182, 0, 92, 93, 94, 95, - 96, 97, 98, 99, 157, 0, 0, 2, 3, 0, - 158, 159, 160, 161, 162, 163, 164, 0, 165, 4, - 0, 0, 5, 166, 167, 6, 168, 101, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 55, 0, 0, 103, 0, 0, 0, 0, 169, - 104, 105, 106, 0, 0, 107, 0, 0, 108, 109, - 0, 0, 0, 0, 110, 111, 182, 0, 92, 93, - 94, 95, 96, 97, 98, 99, 183, 0, 0, 0, - 0, 0, 158, 159, 160, 161, 162, 163, 164, 238, - 165, 0, 0, 0, 0, 166, 167, 0, 168, 101, - 0, 239, 240, 241, 242, 243, 244, 245, 246, 0, - 247, 0, 248, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 103, 0, 0, 0, - 0, 169, 104, 105, 106, 0, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 157, 0, 0, 2, - 3, 0, 158, 159, 160, 161, 162, 163, 164, 0, - 165, 4, 0, 0, 5, 166, 167, 6, 168, 101, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 103, 0, 0, 0, - 0, 169, 104, 105, 106, 0, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 189, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 0, 0, 0, 6, 0, 101, - 7, 8, 9, 0, 11, 12, 13, 14, 0, 16, - 0, 18, 19, 20, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, - 0, 0, 104, 105, 106, 0, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 183, 0, 0, 0, - 0, 0, 158, 159, 160, 161, 162, 163, 164, 0, - 165, 0, 0, 0, 0, 166, 167, 0, 168, 101, + 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 103, 0, 0, 0, 0, + 169, 104, 105, 106, 0, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 189, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 0, 0, 0, 6, 0, 101, 7, + 8, 9, 0, 11, 12, 13, 14, 0, 16, 0, + 18, 19, 20, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, + 0, 104, 105, 106, 0, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 183, 0, 0, 0, 0, + 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, + 0, 0, 0, 0, 166, 167, 0, 168, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 55, 0, 0, 103, 0, 0, 0, - 0, 169, 104, 105, 106, 0, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 183, 0, 0, 0, - 0, 0, 158, 159, 160, 161, 162, 163, 164, 0, - 165, 0, 0, 0, 0, 166, 167, 0, 168, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 277, 55, 0, 0, 103, 0, 0, 0, 0, + 169, 104, 105, 106, 0, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 183, 0, 0, 0, 0, + 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, + 0, 0, 0, 0, 166, 167, 0, 168, 101, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 340, 55, 0, 0, 103, 0, 0, 0, - 0, 169, 104, 105, 106, 0, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 183, 0, 0, 0, - 0, 0, 158, 159, 160, 161, 162, 163, 164, 0, - 165, 0, 0, 0, 0, 166, 167, 0, 168, 101, - 0, 0, 0, 0, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 55, 0, 0, 103, 0, 0, 0, - 0, 169, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 354, 142, - 0, 0, 103, 0, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 101, - 0, 0, 110, 111, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 102, 103, 0, 0, 0, - 0, 0, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 0, 142, - 0, 0, 103, 0, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 101, - 0, 0, 110, 111, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 103, 0, 0, 0, - 0, 267, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, - 0, 0, 103, 288, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 101, - 0, 0, 110, 111, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 312, 103, 0, 0, 0, - 0, 0, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, - 0, 0, 103, 0, 0, 0, 0, 169, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 101, - 0, 0, 110, 111, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 350, 103, 0, 0, 0, - 0, 0, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, - 0, 0, 103, 368, 0, 0, 0, 0, 104, 105, - 106, 0, 0, 107, 0, 0, 108, 109, 0, 101, - 0, 0, 110, 111, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 187, 0, 0, 0, - 0, 0, 104, 105, 106, 101, 0, 107, 0, 0, - 108, 109, 0, 0, 0, 0, 110, 111, 92, 93, - 94, 95, 96, 97, 98, 99, 100, 0, 0, 0, - 49, 0, 193, 0, 3, 0, 0, 0, 104, 105, - 106, 0, 0, 107, 0, 4, 108, 109, 0, 101, - 0, 6, 110, 111, 7, 8, 9, 0, 11, 12, - 13, 14, 0, 16, 54, 18, 19, 20, 0, 0, - 0, 0, 0, 0, 49, 0, 103, 2, 3, 0, - 0, 0, 104, 105, 106, 0, 0, 107, 0, 4, - 108, 109, 5, 0, 0, 6, 110, 111, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 0, 0, 0, 0, 0, 0, 0, 0, - 1, -231, 0, 2, 3, 0, 0, -93, 0, -93, - 0, 0, 0, 0, 0, 4, 0, 0, 5, 0, - 74, 6, 0, 0, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 49, 0, - 0, 2, 3, 0, 0, 0, 0, 0, 223, 0, - 224, 314, 0, 4, 0, 0, 5, 0, 22, 6, - 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 1, 0, 0, 2, - 3, 0, 0, 0, 0, 0, 223, 0, 283, 314, - 0, 4, 0, 0, 5, 0, 22, 6, 0, 0, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 54, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 0, 21, 2, 3, 0, - 0, 0, 0, 0, 22, 0, 0, 0, 0, 4, - 0, 0, 5, 0, 0, 6, 0, 0, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 130, 0, 0, 2, 3, 0, 0, 0, - 0, 55, 0, 0, 0, 0, 0, 4, 0, 0, - 5, 0, 0, 6, 0, 0, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 49, 0, 0, 2, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 131, 0, 4, 0, 0, 5, 0, - 0, 6, 0, 0, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, 49, 0, - 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, - 0, 352, 0, 4, 0, 0, 5, 0, 0, 6, - 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, 20, 54, 0, 0, 0, - 0, 0, 0, 0, 0, 55, 49, 0, 0, 2, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 49, 0, 0, 2, 3, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 0, 5, 0, 0, 6, 0, 0, 7, 8, - 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, - 19, 20, 49, 0, 0, 0, 3, 0, 0, 0, - 279, 0, 0, 0, 0, 0, 0, 4, 0, 0, - 0, 49, 0, 6, 0, 3, 7, 8, 9, 0, - 11, 12, 13, 14, 0, 16, 4, 18, 19, 20, - 0, 0, 6, 0, 0, 7, 8, 9, 150, 11, - 12, 13, 14, 0, 16, 0, 18, 19, 20, 49, - 0, 0, 2, 3, 0, 0, 0, 250, 0, 0, - 0, 0, 0, 0, 4, 0, 0, 5, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 341, 55, 0, 0, 103, 0, 0, 0, 0, + 169, 104, 105, 106, 0, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 183, 0, 0, 0, 0, + 0, 158, 159, 160, 161, 162, 163, 164, 0, 165, + 0, 0, 0, 0, 166, 167, 0, 168, 101, 0, + 0, 0, 0, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 55, 0, 0, 103, 0, 0, 0, 0, + 169, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 355, 142, 0, + 0, 103, 0, 0, 0, 0, 0, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 101, 0, + 0, 110, 111, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 102, 103, 0, 0, 0, 0, + 0, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 0, 142, 0, + 0, 103, 0, 0, 0, 0, 0, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 101, 0, + 0, 110, 111, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 103, 0, 0, 0, 0, + 267, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 0, 0, 0, + 0, 103, 288, 0, 0, 0, 0, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 101, 0, + 0, 110, 111, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 312, 103, 0, 0, 0, 0, + 0, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 0, 0, 0, + 0, 103, 0, 0, 0, 0, 169, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 101, 0, + 0, 110, 111, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 351, 103, 0, 0, 0, 0, + 0, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 0, 0, 0, + 0, 103, 370, 0, 0, 0, 0, 104, 105, 106, + 0, 0, 107, 0, 0, 108, 109, 0, 101, 0, + 0, 110, 111, 92, 93, 94, 95, 96, 97, 98, + 99, 100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 187, 0, 0, 0, 0, + 0, 104, 105, 106, 101, 0, 107, 0, 0, 108, + 109, 0, 0, 0, 0, 110, 111, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 0, 0, 0, 49, + 0, 193, 0, 3, 0, 0, 0, 104, 105, 106, + 0, 0, 107, 0, 4, 108, 109, 0, 101, 0, + 6, 110, 111, 7, 8, 9, 0, 11, 12, 13, + 14, 0, 16, 54, 18, 19, 20, 0, 0, 0, + 0, 0, 0, 49, 0, 103, 2, 3, 0, 0, + 0, 104, 105, 106, 0, 0, 107, 0, 4, 108, + 109, 5, 0, 0, 6, 110, 111, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 0, 0, 0, 0, 0, 0, 0, 0, 1, + -233, 0, 2, 3, 0, 0, -93, 0, -93, 0, + 0, 0, 0, 0, 4, 0, 0, 5, 0, 74, 6, 0, 0, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20 + 14, 15, 16, 17, 18, 19, 20, 49, 0, 0, + 2, 3, 0, 0, 0, 0, 0, 223, 0, 224, + 314, 0, 4, 0, 0, 5, 0, 22, 6, 0, + 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 1, 0, 0, 2, 3, + 0, 0, 0, 0, 0, 223, 0, 283, 314, 0, + 4, 0, 0, 5, 0, 22, 6, 0, 0, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 54, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 21, 2, 3, 0, 0, + 0, 0, 0, 22, 0, 0, 0, 0, 4, 0, + 0, 5, 0, 0, 6, 0, 0, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 130, 0, 0, 2, 3, 0, 0, 0, 0, + 55, 0, 0, 0, 0, 0, 4, 0, 0, 5, + 0, 0, 6, 0, 0, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 49, + 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, + 0, 0, 131, 0, 4, 0, 0, 5, 0, 0, + 6, 0, 0, 7, 8, 9, 10, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 49, 0, 0, + 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 353, 0, 4, 0, 0, 5, 0, 0, 6, 0, + 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 54, 0, 0, 0, 0, + 0, 0, 0, 0, 55, 49, 0, 0, 2, 3, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, + 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 49, 0, 0, 2, 3, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, + 0, 5, 0, 0, 6, 0, 0, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 49, 0, 0, 0, 3, 0, 0, 0, 279, + 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, + 49, 0, 6, 0, 3, 7, 8, 9, 0, 11, + 12, 13, 14, 0, 16, 4, 18, 19, 20, 0, + 0, 6, 0, 0, 7, 8, 9, 150, 11, 12, + 13, 14, 0, 16, 0, 18, 19, 20, 49, 0, + 0, 2, 3, 0, 0, 0, 357, 0, 0, 0, + 0, 0, 0, 4, 0, 0, 5, 0, 0, 6, + 0, 0, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20 }; static const yytype_int16 yycheck[] = { - 0, 60, 60, 74, 22, 61, 0, 21, 33, 162, - 24, 142, 103, 86, 103, 264, 11, 79, 11, 138, - 11, 57, 11, 132, 177, 25, 44, 226, 64, 57, - 30, 184, 116, 152, 11, 35, 64, 11, 11, 52, - 159, 35, 101, 57, 59, 64, 61, 66, 59, 11, - 61, 110, 111, 22, 69, 31, 80, 116, 72, 0, - 84, 61, 58, 58, 77, 59, 79, 81, 61, 58, - 61, 142, 48, 66, 65, 44, 69, 168, 69, 138, - 138, 75, 191, 52, 61, 284, 335, 149, 61, 11, - 103, 65, 69, 152, 152, 26, 187, 59, 187, 61, - 159, 159, 193, 256, 223, 196, 11, 69, 77, 262, - 79, 87, 88, 186, 132, 78, 79, 48, 132, 203, - 204, 205, 62, 57, 87, 88, 197, 280, 60, 220, - 64, 97, 64, 99, 103, 254, 149, 59, 69, 61, - 31, 69, 70, 71, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 11, 221, 66, 223, 223, 77, 62, 59, 64, - 67, 68, 263, 191, 187, 266, 57, 330, 249, 64, - 149, 66, 176, 58, 75, 76, 58, 210, 211, 212, - 213, 185, 186, 324, 77, 254, 254, 74, 269, 318, - 73, 226, 286, 85, 86, 358, 224, 72, 361, 59, - 224, 61, 62, 83, 64, 368, 66, 370, 187, 69, - 373, 64, 375, 66, 224, 60, 62, 286, 64, 59, - 230, 61, 59, 63, 61, 64, 62, 66, 252, 59, - 62, 61, 64, 64, 62, 336, 64, 62, 62, 64, - 64, 81, 82, 324, 62, 62, 64, 64, 11, 318, - 318, 65, 256, 319, 66, 283, 357, 66, 359, 64, - 65, 101, 208, 209, 345, 11, 206, 207, 14, 15, - 66, 214, 215, 283, 176, 177, 65, 346, 346, 61, - 26, 61, 61, 29, 57, 66, 32, 65, 62, 35, + 0, 22, 74, 61, 22, 60, 60, 142, 79, 33, + 0, 86, 52, 21, 116, 103, 24, 264, 132, 11, + 226, 57, 103, 44, 31, 25, 44, 11, 64, 58, + 30, 52, 138, 78, 79, 35, 11, 57, 11, 79, + 11, 48, 87, 88, 64, 35, 152, 101, 0, 57, + 11, 11, 57, 159, 58, 11, 110, 111, 79, 64, + 62, 61, 116, 103, 72, 59, 58, 61, 11, 59, + 142, 66, 11, 81, 58, 69, 57, 191, 284, 11, + 87, 88, 103, 138, 138, 75, 61, 168, 61, 336, + 61, 66, 65, 59, 69, 61, 69, 152, 152, 187, + 61, 203, 204, 205, 159, 159, 187, 77, 69, 65, + 77, 186, 193, 162, 132, 196, 59, 223, 61, 62, + 59, 64, 61, 66, 132, 197, 69, 59, 177, 61, + 69, 72, 80, 60, 58, 184, 84, 64, 74, 220, + 69, 70, 71, 31, 64, 58, 66, 187, 254, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 187, 221, 223, 223, + 73, 59, 26, 191, 97, 83, 99, 249, 210, 211, + 212, 213, 263, 60, 286, 266, 176, 75, 76, 324, + 62, 64, 64, 66, 48, 185, 186, 269, 62, 254, + 254, 64, 226, 66, 85, 86, 224, 256, 64, 62, + 250, 64, 318, 262, 65, 69, 224, 59, 59, 61, + 61, 63, 67, 68, 224, 64, 59, 66, 61, 250, + 230, 280, 286, 62, 62, 64, 64, 64, 65, 81, + 82, 62, 66, 64, 252, 62, 62, 64, 64, 62, + 11, 64, 324, 206, 207, 326, 337, 208, 209, 101, + 66, 319, 66, 318, 318, 283, 256, 214, 215, 176, + 177, 65, 61, 61, 346, 61, 57, 62, 359, 66, + 361, 65, 331, 283, 11, 77, 326, 11, 11, 65, + 31, 66, 347, 347, 61, 60, 62, 89, 90, 91, + 92, 93, 94, 95, 96, 326, 98, 62, 100, 11, + 62, 360, 14, 15, 363, 61, 60, 62, 24, 319, + 216, 370, 217, 372, 26, 218, 375, 29, 377, 66, + 32, 221, 219, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 1, 250, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 72, 230, + 14, 15, 65, 17, 18, 19, 20, 21, 22, 23, + 252, 25, 26, 187, 35, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, -1, -1, 140, -1, -1, + 102, -1, -1, 57, 58, -1, -1, 61, -1, -1, + -1, -1, 66, 67, 68, 69, -1, -1, 72, -1, + -1, 75, 76, -1, -1, -1, -1, 81, 82, 1, + -1, 3, 4, 5, 6, 7, 8, 9, 10, 11, + -1, -1, 14, 15, -1, 17, 18, 19, 20, 21, + 22, 23, -1, 25, 26, -1, -1, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, -1, -1, -1, + -1, -1, -1, -1, -1, 57, 58, -1, -1, 61, + -1, -1, -1, -1, 66, 67, 68, 69, -1, -1, + 72, -1, -1, 75, 76, -1, -1, -1, -1, 81, + 82, 1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, 14, 15, -1, 17, 18, 19, + 20, 21, 22, 23, -1, 25, 26, -1, -1, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, 66, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, -1, -1, + -1, 81, 82, 1, -1, 3, 4, 5, 6, 7, + 8, 9, 10, 11, -1, -1, 14, 15, -1, 17, + 18, 19, 20, 21, 22, 23, -1, 25, 26, -1, + -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 58, -1, -1, 61, -1, -1, -1, -1, 66, 67, + 68, 69, -1, -1, 72, -1, -1, 75, 76, -1, + -1, -1, -1, 81, 82, 1, -1, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 17, 18, 19, 20, 21, 22, 23, -1, 25, + -1, -1, -1, -1, 30, 31, -1, 33, 34, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, -1, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, 14, 15, + -1, 17, 18, 19, 20, 21, 22, 23, -1, 25, + 26, -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 11, 11, 11, 65, 31, 1, 319, - 3, 4, 5, 6, 7, 8, 9, 10, 11, 66, - 61, 14, 15, 62, 17, 18, 19, 20, 21, 22, - 23, 60, 25, 26, 62, 62, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 102, 61, 60, 62, - 24, 66, 216, 218, 57, 58, 217, 219, 61, 65, - 140, 221, 72, 66, 67, 68, 69, 187, 77, 72, - 252, 230, 75, 76, 35, -1, -1, -1, 81, 82, - 1, -1, 3, 4, 5, 6, 7, 8, 9, 10, - 11, -1, -1, 14, 15, -1, 17, 18, 19, 20, - 21, 22, 23, -1, 25, 26, -1, -1, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, -1, -1, - -1, -1, -1, -1, -1, -1, 57, 58, -1, -1, - 61, -1, -1, -1, -1, 66, 67, 68, 69, -1, - -1, 72, -1, -1, 75, 76, -1, -1, -1, -1, - 81, 82, 1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, 14, 15, -1, 17, 18, - 19, 20, 21, 22, 23, -1, 25, 26, -1, -1, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - -1, -1, 61, -1, -1, -1, -1, 66, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, -1, - -1, -1, 81, 82, 1, -1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, -1, -1, 14, 15, -1, - 17, 18, 19, 20, 21, 22, 23, -1, 25, 26, - -1, -1, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 58, -1, -1, 61, -1, -1, -1, -1, 66, - 67, 68, 69, -1, -1, 72, -1, -1, 75, 76, - -1, -1, -1, -1, 81, 82, 1, -1, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, 23, 77, - 25, -1, -1, -1, -1, 30, 31, -1, 33, 34, - -1, 89, 90, 91, 92, 93, 94, 95, 96, -1, - 98, -1, 100, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, -1, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, 14, - 15, -1, 17, 18, 19, 20, 21, 22, 23, -1, - 25, 26, -1, -1, 29, 30, 31, 32, 33, 34, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, -1, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 26, -1, -1, -1, -1, -1, 32, -1, 34, - 35, 36, 37, -1, 39, 40, 41, 42, -1, 44, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 67, 68, 69, -1, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, 23, -1, - 25, -1, -1, -1, -1, 30, 31, -1, 33, 34, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, -1, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 26, -1, -1, -1, -1, -1, 32, -1, 34, 35, + 36, 37, -1, 39, 40, 41, 42, -1, 44, -1, + 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, + -1, 67, 68, 69, -1, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 17, 18, 19, 20, 21, 22, 23, -1, 25, + -1, -1, -1, -1, 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 57, 58, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, -1, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, 23, -1, - 25, -1, -1, -1, -1, 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 57, 58, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, -1, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 17, 18, 19, 20, 21, 22, 23, -1, 25, + -1, -1, -1, -1, 30, 31, -1, 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 57, 58, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, -1, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 17, 18, 19, 20, 21, 22, 23, -1, - 25, -1, -1, -1, -1, 30, 31, -1, 33, 34, - -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 58, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, 57, 58, - -1, -1, 61, -1, -1, -1, -1, -1, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, 34, - -1, -1, 81, 82, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, -1, -1, -1, - -1, -1, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, 58, - -1, -1, 61, -1, -1, -1, -1, -1, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, 34, - -1, -1, 81, 82, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - -1, 66, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, -1, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, 34, - -1, -1, 81, 82, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, -1, -1, -1, - -1, -1, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 61, -1, -1, -1, -1, 66, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, 34, - -1, -1, 81, 82, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, 61, -1, -1, -1, - -1, -1, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - -1, -1, 61, 62, -1, -1, -1, -1, 67, 68, - 69, -1, -1, 72, -1, -1, 75, 76, -1, 34, - -1, -1, 81, 82, 3, 4, 5, 6, 7, 8, - 9, 10, 11, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 61, -1, -1, -1, - -1, -1, 67, 68, 69, 34, -1, 72, -1, -1, - 75, 76, -1, -1, -1, -1, 81, 82, 3, 4, - 5, 6, 7, 8, 9, 10, 11, -1, -1, -1, - 11, -1, 61, -1, 15, -1, -1, -1, 67, 68, - 69, -1, -1, 72, -1, 26, 75, 76, -1, 34, - -1, 32, 81, 82, 35, 36, 37, -1, 39, 40, - 41, 42, -1, 44, 1, 46, 47, 48, -1, -1, - -1, -1, -1, -1, 11, -1, 61, 14, 15, -1, - -1, -1, 67, 68, 69, -1, -1, 72, -1, 26, - 75, 76, 29, -1, -1, 32, 81, 82, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, -1, -1, -1, -1, -1, -1, -1, -1, - 11, 58, -1, 14, 15, -1, -1, 64, -1, 66, - -1, -1, -1, -1, -1, 26, -1, -1, 29, -1, - 77, 32, -1, -1, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 11, -1, - -1, 14, 15, -1, -1, -1, -1, -1, 59, -1, - 61, 62, -1, 26, -1, -1, 29, -1, 69, 32, - -1, -1, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 11, -1, -1, 14, - 15, -1, -1, -1, -1, -1, 59, -1, 61, 62, - -1, 26, -1, -1, 29, -1, 69, 32, -1, -1, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 11, -1, 61, 14, 15, -1, - -1, -1, -1, -1, 69, -1, -1, -1, -1, 26, - -1, -1, 29, -1, -1, 32, -1, -1, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 11, -1, -1, 14, 15, -1, -1, -1, - -1, 58, -1, -1, -1, -1, -1, 26, -1, -1, - 29, -1, -1, 32, -1, -1, 35, 36, 37, 38, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 11, -1, -1, 14, 15, -1, -1, -1, -1, -1, - -1, -1, -1, 62, -1, 26, -1, -1, 29, -1, - -1, 32, -1, -1, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 11, -1, - -1, 14, 15, -1, -1, -1, -1, -1, -1, -1, - -1, 62, -1, 26, -1, -1, 29, -1, -1, 32, - -1, -1, 35, 36, 37, 38, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 1, -1, -1, -1, - -1, -1, -1, -1, -1, 58, 11, -1, -1, 14, - 15, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 26, -1, -1, 29, -1, -1, 32, -1, -1, - 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 11, -1, -1, 14, 15, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 26, - -1, -1, 29, -1, -1, 32, -1, -1, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 11, -1, -1, -1, 15, -1, -1, -1, - 57, -1, -1, -1, -1, -1, -1, 26, -1, -1, - -1, 11, -1, 32, -1, 15, 35, 36, 37, -1, - 39, 40, 41, 42, -1, 44, 26, 46, 47, 48, - -1, -1, 32, -1, -1, 35, 36, 37, 57, 39, - 40, 41, 42, -1, 44, -1, 46, 47, 48, 11, - -1, -1, 14, 15, -1, -1, -1, 57, -1, -1, - -1, -1, -1, -1, 26, -1, -1, 29, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 57, 58, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, -1, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 17, 18, 19, 20, 21, 22, 23, -1, 25, + -1, -1, -1, -1, 30, 31, -1, 33, 34, -1, + -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 58, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, 57, 58, -1, + -1, 61, -1, -1, -1, -1, -1, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, 34, -1, + -1, 81, 82, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, 61, -1, -1, -1, -1, + -1, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, 58, -1, + -1, 61, -1, -1, -1, -1, -1, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, 34, -1, + -1, 81, 82, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, + 66, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 61, 62, -1, -1, -1, -1, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, 34, -1, + -1, 81, 82, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, 61, -1, -1, -1, -1, + -1, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 61, -1, -1, -1, -1, 66, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, 34, -1, + -1, 81, 82, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, 61, -1, -1, -1, -1, + -1, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, -1, + -1, 61, 62, -1, -1, -1, -1, 67, 68, 69, + -1, -1, 72, -1, -1, 75, 76, -1, 34, -1, + -1, 81, 82, 3, 4, 5, 6, 7, 8, 9, + 10, 11, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, + -1, 67, 68, 69, 34, -1, 72, -1, -1, 75, + 76, -1, -1, -1, -1, 81, 82, 3, 4, 5, + 6, 7, 8, 9, 10, 11, -1, -1, -1, 11, + -1, 61, -1, 15, -1, -1, -1, 67, 68, 69, + -1, -1, 72, -1, 26, 75, 76, -1, 34, -1, + 32, 81, 82, 35, 36, 37, -1, 39, 40, 41, + 42, -1, 44, 1, 46, 47, 48, -1, -1, -1, + -1, -1, -1, 11, -1, 61, 14, 15, -1, -1, + -1, 67, 68, 69, -1, -1, 72, -1, 26, 75, + 76, 29, -1, -1, 32, 81, 82, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, -1, -1, -1, -1, -1, -1, -1, -1, 11, + 58, -1, 14, 15, -1, -1, 64, -1, 66, -1, + -1, -1, -1, -1, 26, -1, -1, 29, -1, 77, 32, -1, -1, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48 + 42, 43, 44, 45, 46, 47, 48, 11, -1, -1, + 14, 15, -1, -1, -1, -1, -1, 59, -1, 61, + 62, -1, 26, -1, -1, 29, -1, 69, 32, -1, + -1, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 11, -1, -1, 14, 15, + -1, -1, -1, -1, -1, 59, -1, 61, 62, -1, + 26, -1, -1, 29, -1, 69, 32, -1, -1, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 11, -1, 61, 14, 15, -1, -1, + -1, -1, -1, 69, -1, -1, -1, -1, 26, -1, + -1, 29, -1, -1, 32, -1, -1, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 11, -1, -1, 14, 15, -1, -1, -1, -1, + 58, -1, -1, -1, -1, -1, 26, -1, -1, 29, + -1, -1, 32, -1, -1, 35, 36, 37, 38, 39, + 40, 41, 42, 43, 44, 45, 46, 47, 48, 11, + -1, -1, 14, 15, -1, -1, -1, -1, -1, -1, + -1, -1, 62, -1, 26, -1, -1, 29, -1, -1, + 32, -1, -1, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 11, -1, -1, + 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, + 62, -1, 26, -1, -1, 29, -1, -1, 32, -1, + -1, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 1, -1, -1, -1, -1, + -1, -1, -1, -1, 58, 11, -1, -1, 14, 15, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 26, -1, -1, 29, -1, -1, 32, -1, -1, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47, 48, 11, -1, -1, 14, 15, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 26, -1, + -1, 29, -1, -1, 32, -1, -1, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 11, -1, -1, -1, 15, -1, -1, -1, 57, + -1, -1, -1, -1, -1, -1, 26, -1, -1, -1, + 11, -1, 32, -1, 15, 35, 36, 37, -1, 39, + 40, 41, 42, -1, 44, 26, 46, 47, 48, -1, + -1, 32, -1, -1, 35, 36, 37, 57, 39, 40, + 41, 42, -1, 44, -1, 46, 47, 48, 11, -1, + -1, 14, 15, -1, -1, -1, 57, -1, -1, -1, + -1, -1, -1, 26, -1, -1, 29, -1, -1, 32, + -1, -1, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of @@ -1349,42 +1360,43 @@ static const yytype_uint8 yystos[] = { 0, 11, 14, 15, 26, 29, 32, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 61, 69, 126, 127, 130, 131, 132, 133, 139, - 142, 143, 144, 145, 171, 172, 173, 174, 11, 58, - 11, 143, 142, 145, 146, 66, 128, 129, 143, 11, - 127, 11, 58, 127, 1, 58, 126, 127, 158, 164, - 59, 61, 144, 0, 173, 58, 11, 140, 141, 62, - 142, 145, 64, 66, 77, 164, 175, 58, 131, 134, - 135, 136, 142, 66, 57, 159, 160, 161, 162, 143, - 126, 158, 3, 4, 5, 6, 7, 8, 9, 10, + 48, 61, 69, 126, 127, 130, 131, 132, 135, 141, + 144, 145, 146, 147, 173, 174, 175, 176, 11, 58, + 11, 145, 144, 147, 148, 66, 128, 129, 145, 11, + 127, 11, 58, 127, 1, 58, 126, 127, 160, 166, + 59, 61, 146, 0, 175, 58, 11, 142, 143, 62, + 144, 147, 64, 66, 77, 166, 177, 133, 131, 136, + 137, 138, 144, 66, 57, 161, 162, 163, 164, 145, + 126, 160, 3, 4, 5, 6, 7, 8, 9, 10, 11, 34, 60, 61, 67, 68, 69, 72, 75, 76, 81, 82, 104, 105, 106, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 125, - 11, 62, 127, 147, 148, 149, 150, 140, 77, 57, - 64, 129, 58, 108, 121, 122, 154, 158, 158, 134, - 57, 135, 65, 137, 138, 143, 1, 11, 17, 18, + 11, 62, 127, 149, 150, 151, 152, 142, 77, 57, + 64, 129, 58, 108, 121, 122, 156, 160, 160, 58, + 57, 137, 65, 139, 140, 145, 1, 11, 17, 18, 19, 20, 21, 22, 23, 25, 30, 31, 33, 66, - 122, 124, 156, 157, 158, 163, 164, 165, 166, 167, - 169, 170, 1, 11, 165, 164, 164, 61, 108, 11, - 124, 136, 151, 61, 108, 108, 59, 61, 63, 81, + 122, 124, 158, 159, 160, 165, 166, 167, 168, 169, + 171, 172, 1, 11, 167, 166, 166, 61, 108, 11, + 124, 138, 153, 61, 108, 108, 59, 61, 63, 81, 82, 101, 110, 69, 70, 71, 67, 68, 97, 99, 78, 79, 87, 88, 85, 86, 72, 74, 73, 83, - 80, 84, 60, 59, 61, 143, 145, 152, 153, 62, - 64, 62, 64, 57, 125, 141, 154, 155, 77, 89, + 80, 84, 60, 59, 61, 145, 147, 154, 155, 62, + 64, 62, 64, 57, 125, 143, 156, 157, 77, 89, 90, 91, 92, 93, 94, 95, 96, 98, 100, 123, - 57, 125, 64, 66, 65, 66, 65, 66, 125, 66, - 11, 156, 65, 61, 61, 168, 61, 66, 124, 64, - 66, 57, 126, 163, 156, 163, 66, 57, 156, 57, - 165, 151, 62, 61, 145, 152, 62, 124, 62, 107, + 134, 125, 64, 66, 65, 66, 65, 66, 125, 66, + 11, 158, 65, 61, 61, 170, 61, 66, 124, 64, + 66, 57, 126, 165, 158, 165, 66, 57, 158, 57, + 167, 153, 62, 61, 147, 154, 62, 124, 62, 107, 122, 11, 11, 110, 110, 110, 111, 111, 112, 112, 113, 113, 113, 113, 114, 114, 115, 116, 117, 118, - 124, 119, 60, 125, 62, 147, 152, 153, 59, 61, - 102, 149, 11, 57, 64, 122, 138, 125, 126, 156, - 65, 66, 31, 156, 124, 166, 61, 124, 66, 122, - 57, 62, 110, 60, 62, 64, 65, 60, 62, 62, - 60, 125, 62, 147, 57, 154, 156, 61, 62, 166, - 124, 62, 122, 121, 60, 62, 124, 156, 62, 124, - 62, 156, 62, 24, 156, 62, 156, 66, 156, 156 + 124, 119, 60, 125, 62, 149, 154, 155, 59, 61, + 102, 151, 11, 57, 64, 122, 136, 140, 125, 126, + 158, 65, 66, 31, 158, 124, 168, 61, 124, 66, + 122, 57, 62, 110, 60, 62, 64, 65, 60, 62, + 62, 60, 125, 62, 149, 57, 156, 57, 158, 61, + 62, 168, 124, 62, 122, 121, 60, 62, 124, 158, + 62, 124, 62, 158, 62, 24, 158, 62, 158, 66, + 158, 158 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ @@ -1401,19 +1413,19 @@ static const yytype_uint8 yyr1[] = 123, 124, 124, 125, 126, 126, 127, 127, 127, 127, 127, 128, 128, 129, 129, 130, 130, 130, 130, 130, 131, 131, 131, 131, 131, 131, 131, 131, 131, 131, - 131, 131, 132, 132, 132, 133, 133, 134, 134, 135, - 136, 136, 137, 137, 138, 138, 138, 139, 139, 139, - 140, 140, 141, 141, 142, 142, 143, 143, 144, 144, - 144, 144, 144, 144, 144, 145, 145, 145, 145, 146, - 146, 147, 147, 148, 148, 149, 149, 149, 150, 150, - 151, 151, 152, 152, 152, 153, 153, 153, 153, 153, - 153, 153, 153, 153, 154, 154, 154, 155, 155, 156, - 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, - 158, 159, 158, 160, 158, 161, 158, 162, 158, 163, - 163, 163, 163, 164, 164, 164, 165, 165, 165, 166, - 166, 167, 167, 168, 167, 169, 169, 169, 169, 170, - 170, 170, 170, 170, 171, 172, 172, 172, 173, 173, - 174, 175, 174, 174, 174 + 131, 131, 133, 134, 132, 132, 132, 135, 135, 136, + 136, 137, 138, 138, 139, 139, 140, 140, 140, 141, + 141, 141, 142, 142, 143, 143, 144, 144, 145, 145, + 146, 146, 146, 146, 146, 146, 146, 147, 147, 147, + 147, 148, 148, 149, 149, 150, 150, 151, 151, 151, + 152, 152, 153, 153, 154, 154, 154, 155, 155, 155, + 155, 155, 155, 155, 155, 155, 156, 156, 156, 157, + 157, 158, 158, 158, 158, 158, 158, 159, 159, 159, + 159, 159, 160, 161, 160, 162, 160, 163, 160, 164, + 160, 165, 165, 165, 165, 166, 166, 166, 167, 167, + 167, 168, 168, 169, 169, 170, 169, 171, 171, 171, + 171, 172, 172, 172, 172, 172, 173, 174, 174, 174, + 175, 175, 176, 177, 176, 176, 176 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ @@ -1430,19 +1442,19 @@ static const yytype_int8 yyr2[] = 1, 1, 3, 1, 2, 3, 1, 2, 1, 1, 2, 1, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 5, 4, 2, 1, 1, 1, 2, 3, - 1, 1, 1, 3, 1, 2, 3, 4, 5, 2, - 1, 3, 1, 3, 1, 1, 2, 1, 1, 3, - 4, 3, 4, 4, 3, 1, 2, 2, 3, 1, - 2, 1, 3, 1, 3, 2, 2, 1, 1, 3, - 1, 2, 1, 1, 2, 3, 2, 3, 3, 4, - 2, 3, 3, 4, 1, 3, 4, 1, 3, 1, - 1, 1, 1, 1, 1, 3, 3, 2, 4, 3, - 2, 0, 4, 0, 4, 0, 4, 0, 5, 2, - 2, 1, 1, 1, 2, 2, 1, 2, 2, 1, - 2, 5, 7, 0, 6, 5, 7, 6, 7, 3, - 2, 2, 2, 3, 1, 1, 2, 0, 1, 1, - 4, 0, 4, 3, 2 + 1, 1, 0, 0, 7, 4, 2, 1, 1, 1, + 2, 3, 1, 1, 1, 3, 1, 2, 3, 4, + 5, 2, 1, 3, 1, 3, 1, 1, 2, 1, + 1, 3, 4, 3, 4, 4, 3, 1, 2, 2, + 3, 1, 2, 1, 3, 1, 3, 2, 2, 1, + 1, 3, 1, 2, 1, 1, 2, 3, 2, 3, + 3, 4, 2, 3, 3, 4, 1, 3, 4, 1, + 3, 1, 1, 1, 1, 1, 1, 3, 3, 2, + 4, 3, 2, 0, 4, 0, 4, 0, 4, 0, + 5, 2, 2, 1, 1, 1, 2, 2, 1, 2, + 2, 1, 2, 5, 7, 0, 6, 5, 7, 6, + 7, 3, 2, 2, 2, 3, 1, 1, 2, 0, + 1, 1, 4, 0, 4, 3, 2 }; @@ -1906,62 +1918,62 @@ yyparse (void) switch (yyn) { case 2: /* constant: DECIMAL_LITERAL */ -#line 76 "src/parser.y" +#line 77 "src/parser.y" { (yyval.symbol_info)= new symbol_info("", "int", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size); (yyval.symbol_info)->place=qid(std::to_string(*(int*)((yyvsp[0].symbol_info)->ptr)),nullptr); (yyval.symbol_info)->code=std::to_string(*(int*)((yyvsp[0].symbol_info)->ptr)); } -#line 1916 "parser.tab.c" +#line 1928 "parser.tab.c" break; case 3: /* constant: FLOAT_LITERAL */ -#line 82 "src/parser.y" +#line 83 "src/parser.y" { (yyval.symbol_info)= new symbol_info("", "float", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size); (yyval.symbol_info)->place=qid(std::to_string(*(float*)((yyvsp[0].symbol_info)->ptr)),nullptr); (yyval.symbol_info)->code=std::to_string(*(float*)((yyvsp[0].symbol_info)->ptr)); } -#line 1926 "parser.tab.c" +#line 1938 "parser.tab.c" break; case 4: /* constant: EXP_LITERAL */ -#line 87 "src/parser.y" +#line 88 "src/parser.y" {(yyval.symbol_info) = new symbol_info("", "exp", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size);} -#line 1932 "parser.tab.c" +#line 1944 "parser.tab.c" break; case 5: /* constant: HEXA_LITERAL */ -#line 88 "src/parser.y" +#line 89 "src/parser.y" {(yyval.symbol_info) = new symbol_info("", "hexa", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size);} -#line 1938 "parser.tab.c" +#line 1950 "parser.tab.c" break; case 6: /* constant: REAL_LITERAL */ -#line 89 "src/parser.y" +#line 90 "src/parser.y" {(yyval.symbol_info) = new symbol_info("", "real", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size);} -#line 1944 "parser.tab.c" +#line 1956 "parser.tab.c" break; case 7: /* constant: STRING_LITERAL */ -#line 91 "src/parser.y" +#line 92 "src/parser.y" { (yyval.symbol_info) = new symbol_info("", "char*", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size); (yyval.symbol_info)->str_val=(yyvsp[0].symbol_info)->str_val; (yyval.symbol_info)->place=qid((yyvsp[0].symbol_info)->str_val,nullptr); (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->str_val; } -#line 1955 "parser.tab.c" +#line 1967 "parser.tab.c" break; case 8: /* constant: OCTAL_LITERAL */ -#line 97 "src/parser.y" +#line 98 "src/parser.y" {(yyval.symbol_info) = new symbol_info("", "octal", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size);} -#line 1961 "parser.tab.c" +#line 1973 "parser.tab.c" break; case 9: /* constant: CHARACTER_LITERAL */ -#line 99 "src/parser.y" +#line 100 "src/parser.y" { (yyval.symbol_info) = new symbol_info("", "char", (yyvsp[0].symbol_info)->ptr, (yyvsp[0].symbol_info)->symbol_size); string tempp = "'"; @@ -1970,11 +1982,11 @@ yyparse (void) (yyval.symbol_info)->place=qid(tempp,nullptr); (yyval.symbol_info)->code=tempp; } -#line 1974 "parser.tab.c" +#line 1986 "parser.tab.c" break; case 10: /* primary_expression: ID */ -#line 111 "src/parser.y" +#line 112 "src/parser.y" { symbol_info* new_symbol = new symbol_info((yyvsp[0].str)); (yyval.symbol_info) = new_symbol; @@ -1991,19 +2003,19 @@ yyparse (void) (yyval.symbol_info)->is_array=find_symbol->is_array; } } -#line 1995 "parser.tab.c" +#line 2007 "parser.tab.c" break; case 11: /* primary_expression: constant */ -#line 128 "src/parser.y" +#line 129 "src/parser.y" { (yyval.symbol_info) = (yyvsp[0].symbol_info); } -#line 2003 "parser.tab.c" +#line 2015 "parser.tab.c" break; case 13: /* primary_expression: LPARENTHESES expression RPARENTHESES */ -#line 133 "src/parser.y" +#line 134 "src/parser.y" { symbol_info* new_symbol = new symbol_info(); new_symbol->place=newtemp((yyvsp[-1].symbol_info)->type,curr_scope); @@ -2012,19 +2024,19 @@ yyparse (void) new_symbol->code=(yyvsp[-1].symbol_info)->code+"\n"+new_symbol->place.first+":= ("+(yyvsp[-1].symbol_info)->place.first+")"; (yyval.symbol_info)=new_symbol; } -#line 2016 "parser.tab.c" +#line 2028 "parser.tab.c" break; case 14: /* postfix_expression: primary_expression */ -#line 145 "src/parser.y" +#line 146 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 2024 "parser.tab.c" +#line 2036 "parser.tab.c" break; case 15: /* postfix_expression: postfix_expression LBRACKET expression RBRACKET */ -#line 149 "src/parser.y" +#line 150 "src/parser.y" { string array_name=(yyvsp[-3].symbol_info)->name; symbol_info* find_symbol = lookup_symbol_global(array_name, curr_scope); @@ -2056,11 +2068,11 @@ yyparse (void) } } -#line 2060 "parser.tab.c" +#line 2072 "parser.tab.c" break; case 16: /* postfix_expression: postfix_expression LPARENTHESES RPARENTHESES */ -#line 181 "src/parser.y" +#line 182 "src/parser.y" { symbol_info* find_symbol = lookup_symbol_global((yyvsp[-2].symbol_info)->name, curr_scope); if(find_symbol == nullptr) { @@ -2090,11 +2102,11 @@ yyparse (void) } } -#line 2094 "parser.tab.c" +#line 2106 "parser.tab.c" break; case 17: /* postfix_expression: postfix_expression LPARENTHESES argument_expression_list RPARENTHESES */ -#line 211 "src/parser.y" +#line 212 "src/parser.y" { (yyval.symbol_info) = new symbol_info(); symbol_info* find_symbol = lookup_symbol_global((yyvsp[-3].symbol_info)->name, curr_scope); @@ -2133,11 +2145,11 @@ yyparse (void) (yyval.symbol_info)->type=find_symbol->type; } } -#line 2137 "parser.tab.c" +#line 2149 "parser.tab.c" break; case 18: /* postfix_expression: postfix_expression DOT ID */ -#line 250 "src/parser.y" +#line 251 "src/parser.y" { symbol_info* find_symbol = lookup_symbol_global((yyvsp[-2].symbol_info)->name, curr_scope); if(find_symbol == nullptr) { @@ -2208,11 +2220,11 @@ yyparse (void) } } -#line 2212 "parser.tab.c" +#line 2224 "parser.tab.c" break; case 20: /* postfix_expression: postfix_expression INCREMENT */ -#line 322 "src/parser.y" +#line 323 "src/parser.y" { if((yyvsp[-1].symbol_info)->is_array==true){ string code = get_last_line((yyvsp[-1].symbol_info)->code); @@ -2221,11 +2233,11 @@ yyparse (void) else (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code + "\n" + (yyvsp[-1].symbol_info)->place.first+":= "+(yyvsp[-1].symbol_info)->place.first+"+1"; } -#line 2225 "parser.tab.c" +#line 2237 "parser.tab.c" break; case 21: /* postfix_expression: postfix_expression DECREMENT */ -#line 331 "src/parser.y" +#line 332 "src/parser.y" { if((yyvsp[-1].symbol_info)->is_array==true){ string code = get_last_line((yyvsp[-1].symbol_info)->code); @@ -2233,19 +2245,20 @@ yyparse (void) } else (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code + "\n" + (yyvsp[-1].symbol_info)->place.first+":= "+(yyvsp[-1].symbol_info)->place.first+"-1"; } -#line 2237 "parser.tab.c" +#line 2249 "parser.tab.c" break; case 22: /* argument_expression_list: assignment_expression */ -#line 342 "src/parser.y" +#line 343 "src/parser.y" { if((yyvsp[0].symbol_info)->place.first!=""){ - // debug("herrrr ", $1->code); + (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code; (yyval.symbol_info)->param_types.push_back((yyvsp[0].symbol_info)->type); (yyval.symbol_info)->param_list.push_back((yyvsp[0].symbol_info)->place.first); } else{ + // debug("gggggggggggggg ", $1->code); if((yyvsp[0].symbol_info)->name==""){ (yyval.symbol_info)=new symbol_info((yyvsp[0].symbol_info)); (yyval.symbol_info)->param_types.push_back((yyvsp[0].symbol_info)->type); @@ -2268,11 +2281,11 @@ yyparse (void) } } -#line 2272 "parser.tab.c" +#line 2285 "parser.tab.c" break; case 23: /* argument_expression_list: argument_expression_list COMMA assignment_expression */ -#line 374 "src/parser.y" +#line 376 "src/parser.y" { if((yyvsp[0].symbol_info)->place.first!=""){ (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code; @@ -2304,19 +2317,45 @@ yyparse (void) } } -#line 2308 "parser.tab.c" +#line 2321 "parser.tab.c" break; case 24: /* unary_expression: postfix_expression */ -#line 409 "src/parser.y" +#line 411 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 2316 "parser.tab.c" +#line 2329 "parser.tab.c" break; - case 27: /* unary_expression: unary_operator cast_expression */ + case 25: /* unary_expression: INCREMENT unary_expression */ #line 415 "src/parser.y" + { + symbol_info* new_symbol=new symbol_info(); + (yyval.symbol_info)=new_symbol; + (yyval.symbol_info)->name=(yyvsp[0].symbol_info)->name; + (yyval.symbol_info)->place=(yyvsp[0].symbol_info)->place; + (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->place.first+":= "+(yyvsp[0].symbol_info)->place.first+"+1"; + + } +#line 2342 "parser.tab.c" + break; + + case 26: /* unary_expression: DECREMENT unary_expression */ +#line 424 "src/parser.y" + { + symbol_info* new_symbol=new symbol_info(); + (yyval.symbol_info)=new_symbol; + (yyval.symbol_info)->name=(yyvsp[0].symbol_info)->name; + (yyval.symbol_info)->place=(yyvsp[0].symbol_info)->place; + (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->place.first+":= "+(yyvsp[0].symbol_info)->place.first+"-1"; + + } +#line 2355 "parser.tab.c" + break; + + case 27: /* unary_expression: unary_operator cast_expression */ +#line 433 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); string original_type=(yyvsp[0].symbol_info)->type; @@ -2332,16 +2371,24 @@ yyparse (void) (yyval.symbol_info)->type.pop_back(); } } + // if($1->code=="-"){ + // debug("ddddd",$2->name); + // qid var=newtemp($2->type,curr_scope); + + // if($2->name!="") $$->code=$2->code+"\n"+var.first+":= -"+$2->name; + // else if($2->place.first!="") $$->code=$2->code+"\n"+var.first+":= -"+$2->place.first; + // $$->place=var; + // } (yyval.symbol_info)->name=(yyvsp[0].symbol_info)->name; (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code+"\n"+(yyvsp[-1].symbol_info)->code+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place.first=(yyvsp[-1].symbol_info)->code+(yyvsp[0].symbol_info)->place.first; } -#line 2341 "parser.tab.c" +#line 2388 "parser.tab.c" break; case 30: /* unary_operator: AMPERSAND */ -#line 440 "src/parser.y" +#line 466 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -2349,89 +2396,90 @@ yyparse (void) (yyval.symbol_info)->code="&"; (yyval.symbol_info)->pointer_depth++; } -#line 2353 "parser.tab.c" +#line 2400 "parser.tab.c" break; case 31: /* unary_operator: STAR */ -#line 448 "src/parser.y" +#line 474 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->name="star"; (yyval.symbol_info)->code="*"; } -#line 2364 "parser.tab.c" +#line 2411 "parser.tab.c" break; case 32: /* unary_operator: PLUS */ -#line 455 "src/parser.y" +#line 481 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->name="plus"; (yyval.symbol_info)->code="+"; } -#line 2375 "parser.tab.c" +#line 2422 "parser.tab.c" break; case 33: /* unary_operator: MINUS */ -#line 462 "src/parser.y" +#line 488 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->name="minus"; (yyval.symbol_info)->code="-"; } -#line 2386 "parser.tab.c" +#line 2433 "parser.tab.c" break; case 34: /* unary_operator: TILDE */ -#line 469 "src/parser.y" +#line 495 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->name="tilde"; (yyval.symbol_info)->code="~"; } -#line 2397 "parser.tab.c" +#line 2444 "parser.tab.c" break; case 35: /* unary_operator: EXCLAMATION */ -#line 476 "src/parser.y" +#line 502 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->name="exclamation"; (yyval.symbol_info)->code="!"; } -#line 2408 "parser.tab.c" +#line 2455 "parser.tab.c" break; case 36: /* cast_expression: unary_expression */ -#line 486 "src/parser.y" +#line 512 "src/parser.y" { + (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 2416 "parser.tab.c" +#line 2464 "parser.tab.c" break; case 37: /* cast_expression: LPARENTHESES type_name RPARENTHESES cast_expression */ -#line 490 "src/parser.y" +#line 517 "src/parser.y" { (yyval.symbol_info) = (yyvsp[0].symbol_info); (yyval.symbol_info)->type = (yyvsp[-2].symbol_info)->type; } -#line 2425 "parser.tab.c" +#line 2473 "parser.tab.c" break; case 38: /* multiplicative_expression: cast_expression */ -#line 497 "src/parser.y" +#line 524 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2431 "parser.tab.c" +#line 2479 "parser.tab.c" break; case 39: /* multiplicative_expression: multiplicative_expression STAR cast_expression */ -#line 499 "src/parser.y" +#line 526 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2439,11 +2487,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"*"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2443 "parser.tab.c" +#line 2491 "parser.tab.c" break; case 40: /* multiplicative_expression: multiplicative_expression DIVIDE cast_expression */ -#line 507 "src/parser.y" +#line 534 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2451,11 +2499,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"/"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2455 "parser.tab.c" +#line 2503 "parser.tab.c" break; case 41: /* multiplicative_expression: multiplicative_expression MODULO cast_expression */ -#line 515 "src/parser.y" +#line 542 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2466,29 +2514,34 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"%"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2470 "parser.tab.c" +#line 2518 "parser.tab.c" break; case 42: /* additive_expression: multiplicative_expression */ -#line 528 "src/parser.y" +#line 555 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2476 "parser.tab.c" +#line 2524 "parser.tab.c" break; case 43: /* additive_expression: additive_expression PLUS multiplicative_expression */ -#line 530 "src/parser.y" +#line 557 "src/parser.y" { + // cerr<<$1->type<type<type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; + if(count_star((yyvsp[-2].symbol_info)->type)>count_star((yyvsp[0].symbol_info)->type)) (yyval.symbol_info)->type=(yyvsp[-2].symbol_info)->type; + else if(count_star((yyvsp[-2].symbol_info)->type)type)) (yyval.symbol_info)->type=(yyvsp[0].symbol_info)->type; + else (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; + // cerr<<$$->type<type,curr_scope); (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"+"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2488 "parser.tab.c" +#line 2541 "parser.tab.c" break; case 44: /* additive_expression: additive_expression MINUS multiplicative_expression */ -#line 538 "src/parser.y" +#line 570 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2496,17 +2549,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"-"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2500 "parser.tab.c" +#line 2553 "parser.tab.c" break; case 45: /* shift_expression: additive_expression */ -#line 548 "src/parser.y" +#line 580 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2506 "parser.tab.c" +#line 2559 "parser.tab.c" break; case 46: /* shift_expression: shift_expression LEFT_SHIFT additive_expression */ -#line 550 "src/parser.y" +#line 582 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2517,11 +2570,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"<<"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2521 "parser.tab.c" +#line 2574 "parser.tab.c" break; case 47: /* shift_expression: shift_expression RIGHT_SHIFT additive_expression */ -#line 561 "src/parser.y" +#line 593 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2532,17 +2585,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+">>"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2536 "parser.tab.c" +#line 2589 "parser.tab.c" break; case 48: /* relational_expression: shift_expression */ -#line 574 "src/parser.y" +#line 606 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2542 "parser.tab.c" +#line 2595 "parser.tab.c" break; case 49: /* relational_expression: relational_expression LESS_THAN shift_expression */ -#line 576 "src/parser.y" +#line 608 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2550,11 +2603,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"<"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2554 "parser.tab.c" +#line 2607 "parser.tab.c" break; case 50: /* relational_expression: relational_expression GREATER_THAN shift_expression */ -#line 584 "src/parser.y" +#line 616 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2562,11 +2615,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+">"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2566 "parser.tab.c" +#line 2619 "parser.tab.c" break; case 51: /* relational_expression: relational_expression LESS_EQUALS shift_expression */ -#line 592 "src/parser.y" +#line 624 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2575,11 +2628,11 @@ yyparse (void) (yyval.symbol_info)->place=var; } -#line 2579 "parser.tab.c" +#line 2632 "parser.tab.c" break; case 52: /* relational_expression: relational_expression GREATER_EQUALS shift_expression */ -#line 601 "src/parser.y" +#line 633 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2587,17 +2640,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+">="+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2591 "parser.tab.c" +#line 2644 "parser.tab.c" break; case 53: /* equality_expression: relational_expression */ -#line 611 "src/parser.y" +#line 643 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2597 "parser.tab.c" +#line 2650 "parser.tab.c" break; case 54: /* equality_expression: equality_expression REL_EQUALS relational_expression */ -#line 613 "src/parser.y" +#line 645 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2605,11 +2658,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"=="+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2609 "parser.tab.c" +#line 2662 "parser.tab.c" break; case 55: /* equality_expression: equality_expression REL_NOT_EQ relational_expression */ -#line 621 "src/parser.y" +#line 653 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2617,17 +2670,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"!="+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2621 "parser.tab.c" +#line 2674 "parser.tab.c" break; case 56: /* and_expression: equality_expression */ -#line 631 "src/parser.y" +#line 663 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2627 "parser.tab.c" +#line 2680 "parser.tab.c" break; case 57: /* and_expression: and_expression AMPERSAND equality_expression */ -#line 633 "src/parser.y" +#line 665 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2635,17 +2688,17 @@ yyparse (void) error_list.push_back("Line "+to_string(yylineno)+" : And operator can only be used with int type"); } } -#line 2639 "parser.tab.c" +#line 2692 "parser.tab.c" break; case 58: /* exclusive_or_expression: and_expression */ -#line 643 "src/parser.y" +#line 675 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2645 "parser.tab.c" +#line 2698 "parser.tab.c" break; case 59: /* exclusive_or_expression: exclusive_or_expression XOR and_expression */ -#line 645 "src/parser.y" +#line 677 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2656,17 +2709,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"^"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2660 "parser.tab.c" +#line 2713 "parser.tab.c" break; case 60: /* inclusive_or_expression: exclusive_or_expression */ -#line 658 "src/parser.y" +#line 690 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2666 "parser.tab.c" +#line 2719 "parser.tab.c" break; case 61: /* inclusive_or_expression: inclusive_or_expression OR exclusive_or_expression */ -#line 660 "src/parser.y" +#line 692 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2677,17 +2730,17 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code +"\n" + var.first+":= "+(yyvsp[-2].symbol_info)->place.first+"|"+(yyvsp[0].symbol_info)->place.first; (yyval.symbol_info)->place=var; } -#line 2681 "parser.tab.c" +#line 2734 "parser.tab.c" break; case 62: /* logical_and_expression: inclusive_or_expression */ -#line 673 "src/parser.y" +#line 705 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2687 "parser.tab.c" +#line 2740 "parser.tab.c" break; case 63: /* logical_and_expression: logical_and_expression REL_AND inclusive_or_expression */ -#line 675 "src/parser.y" +#line 707 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2696,17 +2749,17 @@ yyparse (void) } } -#line 2700 "parser.tab.c" +#line 2753 "parser.tab.c" break; case 64: /* logical_or_expression: logical_and_expression */ -#line 686 "src/parser.y" +#line 718 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2706 "parser.tab.c" +#line 2759 "parser.tab.c" break; case 65: /* logical_or_expression: logical_or_expression REL_OR logical_and_expression */ -#line 688 "src/parser.y" +#line 720 "src/parser.y" { (yyval.symbol_info) = (yyvsp[-2].symbol_info); (yyval.symbol_info)->type = priority_to_type[max(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])]; @@ -2714,23 +2767,28 @@ yyparse (void) error_list.push_back("Line "+to_string(yylineno)+" : OR operator can only be used with int type"); } } -#line 2718 "parser.tab.c" +#line 2771 "parser.tab.c" break; case 66: /* conditional_expression: logical_or_expression */ -#line 698 "src/parser.y" +#line 730 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2724 "parser.tab.c" +#line 2777 "parser.tab.c" break; case 68: /* assignment_expression: conditional_expression */ -#line 703 "src/parser.y" - {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2730 "parser.tab.c" +#line 736 "src/parser.y" + { + + (yyval.symbol_info)=(yyvsp[0].symbol_info); + // cerr<<"hereeeeee "<<$$->name<type<name, curr_scope); @@ -2768,19 +2826,23 @@ yyparse (void) error_list.push_back("Line "+to_string(yylineno)+" : char* is not modifiable"); } if(min(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[(yyvsp[0].symbol_info)->type])==0 && (yyvsp[-2].symbol_info)->type!=(yyvsp[0].symbol_info)->type){ - error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + if((yyvsp[0].symbol_info)->type!="int" && (yyvsp[-2].symbol_info)->type!="int") error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); } - if(type_priority[(yyvsp[-2].symbol_info)->type]type]){ - error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + else if(type_priority[(yyvsp[-2].symbol_info)->type]type]){ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment3"); } string third_code=(yyvsp[0].symbol_info)->code; string first_code=(yyvsp[-2].symbol_info)->code; if(min(type_priority[(yyvsp[-2].symbol_info)->type],type_priority[find_symbol->type])>0) find_symbol->type=priority_to_type[max(type_priority[find_symbol->type],type_priority[(yyvsp[0].symbol_info)->type])]; - + find_symbol->name=(yyvsp[-2].symbol_info)->name; find_symbol->place=(yyvsp[-2].symbol_info)->place; find_symbol->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code + "\n" + (yyvsp[-2].symbol_info)->place.first + ":= " + (yyvsp[0].symbol_info)->place.first; - + find_symbol->pointer_depth=max((yyvsp[-2].symbol_info)->pointer_depth, (yyvsp[0].symbol_info)->pointer_depth); + // cerr<<$1->name<<" |||| "<<$1->pointer_depth<name<<" |||| "<<$3->pointer_depth<name<pointer_depth<place.first[0]!='t' && (yyvsp[0].symbol_info)->place.first[0]!='&' && (yyvsp[0].symbol_info)->place.first[0]!='*' && (yyvsp[0].symbol_info)->place.first[0]!='+' && (yyvsp[0].symbol_info)->place.first[0]!='-' && (yyvsp[0].symbol_info)->place.first[0]!='~' && (yyvsp[0].symbol_info)->place.first[0]!='!') { @@ -2844,99 +2906,99 @@ yyparse (void) error_list.push_back("Line "+to_string(yylineno)+" : Undeclared symbol "+(yyvsp[-2].symbol_info)->name); } } -#line 2848 "parser.tab.c" +#line 2910 "parser.tab.c" break; case 70: /* assignment_operator: EQUALS */ -#line 821 "src/parser.y" +#line 863 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","equals",nullptr,0); (yyval.symbol_info)->code="=";} -#line 2854 "parser.tab.c" +#line 2916 "parser.tab.c" break; case 71: /* assignment_operator: ASSIGN_STAR */ -#line 822 "src/parser.y" +#line 864 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_star",nullptr,0); (yyval.symbol_info)->code="*=";} -#line 2860 "parser.tab.c" +#line 2922 "parser.tab.c" break; case 72: /* assignment_operator: ASSIGN_DIV */ -#line 823 "src/parser.y" +#line 865 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_div",nullptr,0); (yyval.symbol_info)->code="/=";} -#line 2866 "parser.tab.c" +#line 2928 "parser.tab.c" break; case 73: /* assignment_operator: ASSIGN_MOD */ -#line 824 "src/parser.y" +#line 866 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_mod",nullptr,0); (yyval.symbol_info)->code="%=";} -#line 2872 "parser.tab.c" +#line 2934 "parser.tab.c" break; case 74: /* assignment_operator: ASSIGN_PLUS */ -#line 825 "src/parser.y" +#line 867 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_plus",nullptr,0); (yyval.symbol_info)->code="+=";} -#line 2878 "parser.tab.c" +#line 2940 "parser.tab.c" break; case 75: /* assignment_operator: ASSIGN_MINUS */ -#line 826 "src/parser.y" +#line 868 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_minus",nullptr,0); (yyval.symbol_info)->code="-=";} -#line 2884 "parser.tab.c" +#line 2946 "parser.tab.c" break; case 76: /* assignment_operator: LEFT_SHIFT_EQ */ -#line 827 "src/parser.y" +#line 869 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","left_shift_eq",nullptr,0); (yyval.symbol_info)->code="<<=";} -#line 2890 "parser.tab.c" +#line 2952 "parser.tab.c" break; case 77: /* assignment_operator: RIGHT_SHIFT_EQ */ -#line 828 "src/parser.y" +#line 870 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","right_shift_eq",nullptr,0); (yyval.symbol_info)->code=">>=";} -#line 2896 "parser.tab.c" +#line 2958 "parser.tab.c" break; case 78: /* assignment_operator: ASSIGN_AND */ -#line 829 "src/parser.y" +#line 871 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_and",nullptr,0); (yyval.symbol_info)->code="&=";} -#line 2902 "parser.tab.c" +#line 2964 "parser.tab.c" break; case 79: /* assignment_operator: ASSIGN_XOR */ -#line 830 "src/parser.y" +#line 872 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_xor",nullptr,0); (yyval.symbol_info)->code="^=";} -#line 2908 "parser.tab.c" +#line 2970 "parser.tab.c" break; case 80: /* assignment_operator: ASSIGN_OR */ -#line 831 "src/parser.y" +#line 873 "src/parser.y" {(yyval.symbol_info)=new symbol_info("","assign_or",nullptr,0); (yyval.symbol_info)->code="|=";} -#line 2914 "parser.tab.c" +#line 2976 "parser.tab.c" break; case 81: /* expression: assignment_expression */ -#line 836 "src/parser.y" +#line 878 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 2922 "parser.tab.c" +#line 2984 "parser.tab.c" break; case 82: /* expression: expression COMMA assignment_expression */ -#line 840 "src/parser.y" +#line 882 "src/parser.y" { (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code; } -#line 2930 "parser.tab.c" +#line 2992 "parser.tab.c" break; case 83: /* constant_expression: conditional_expression */ -#line 846 "src/parser.y" +#line 888 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 2936 "parser.tab.c" +#line 2998 "parser.tab.c" break; case 85: /* declaration: declaration_specifiers init_declarator_list SEMICOLON */ -#line 852 "src/parser.y" +#line 894 "src/parser.y" { if(std::string((yyvsp[-2].str)).substr(0, 7) == "typedef"){ string new_type=parsing_stack.top(); @@ -2958,7 +3020,7 @@ yyparse (void) parsing_stack.pop(); pointer_info.pop(); if (curr_scope->symbol_map[top_symbol]->type!= ""){ - if(depth!=count_star(curr_scope->symbol_map[top_symbol]->type)){ + if(depth!=count_star(curr_scope->symbol_map[top_symbol]->type) && !curr_scope->symbol_map[top_symbol]->is_array){ error_list.push_back("Line "+to_string(yylineno)+" : Pointer depth mismatch"); flag = 1; } @@ -2971,31 +3033,38 @@ yyparse (void) curr_scope->symbol_map[top_symbol]->name = top_symbol; if(type_priority[(yyvsp[-2].str)]>0 && type_priority[curr_scope->symbol_map[top_symbol]->type]>0) curr_scope->symbol_map[top_symbol]->type = priority_to_type[max(type_priority[(yyvsp[-2].str)], type_priority[curr_scope->symbol_map[top_symbol]->type])]; - + if(std::string((yyvsp[-2].str)).substr(0,6) == "static"){ + curr_scope->symbol_map[top_symbol]->is_static = true; + } // debug("declaration specifiers121 ", $2->code); - - code=(yyvsp[-1].symbol_info)->code; + code+=(yyvsp[-1].symbol_info)->code; } else { + curr_scope->symbol_map[top_symbol]->type = (yyvsp[-2].str); for(int i=0;isymbol_map[top_symbol]->type+="*"; } + if(curr_scope->symbol_map[top_symbol]->is_array) curr_scope->symbol_map[top_symbol]->type+="*"; curr_scope->symbol_map[top_symbol]->name = top_symbol; curr_scope->symbol_map[top_symbol]->pointer_depth = depth; - if((curr_scope->symbol_map[top_symbol]->type).substr(0,6)=="struct") { + // cerr<<"gggggghjjj "<<$1<symbol_map[top_symbol]->type).substr(7); + if(struct_name.back()=='*') struct_name.pop_back(); symbol_info* find_struct=lookup_symbol_global(struct_name, curr_scope); int size=0; + for(int i=0;iparam_list.size();i++){ size+=get_size(find_struct->param_types[i]); } //debug("Struct size: ",to_string(size)); + code=code+top_symbol+":= alloc " +to_string(size)+"\n"; + } else if((curr_scope->symbol_map[top_symbol]->type).substr(0,5)=="union") @@ -3011,23 +3080,39 @@ yyparse (void) } + if(curr_scope->symbol_map[top_symbol]->is_array){ + // debug("in the arr",curr_scope->symbol_map[top_symbol]->type.substr(0,3)); + if(curr_scope->symbol_map[top_symbol]->type.substr(0,3)=="int"){ + code=code+top_symbol+":= alloc " +to_string(4*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + if(curr_scope->symbol_map[top_symbol]->type.substr(0,5)=="float"){ + code=code+top_symbol+":= alloc " +to_string(4*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + if(curr_scope->symbol_map[top_symbol]->type.substr(0,4)=="char"){ + code=code+top_symbol+":= alloc " +to_string(2*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + // debug("in the arr",code); + + } + symbol_info* new_symbol = new symbol_info(); new_symbol = new symbol_info((yyvsp[-1].symbol_info)); (yyval.symbol_info)=new_symbol; - + } } // debug("declaration specifiers ", to_string(parsing_stack.size())); (yyval.symbol_info)->code=code; + // debug("in the arr11",$$->code); //debug("Declaration: ",curr_scope->symbol_map["p"]->code); } -#line 3027 "parser.tab.c" +#line 3112 "parser.tab.c" break; case 87: /* declaration_specifiers: storage_class_specifier declaration_specifiers */ -#line 944 "src/parser.y" +#line 1009 "src/parser.y" { // debug("storage class specifier ", $1); // debug("storage class specifier ", $2); @@ -3037,36 +3122,36 @@ yyparse (void) // debug("storage class specifier ", $$); } -#line 3041 "parser.tab.c" +#line 3126 "parser.tab.c" break; case 88: /* declaration_specifiers: type_specifier */ -#line 953 "src/parser.y" +#line 1018 "src/parser.y" {(yyval.str)=(yyvsp[0].str);} -#line 3047 "parser.tab.c" +#line 3132 "parser.tab.c" break; case 91: /* init_declarator_list: init_declarator */ -#line 959 "src/parser.y" +#line 1024 "src/parser.y" { (yyval.symbol_info) = (yyvsp[0].symbol_info); } -#line 3055 "parser.tab.c" +#line 3140 "parser.tab.c" break; case 92: /* init_declarator_list: init_declarator_list COMMA init_declarator */ -#line 962 "src/parser.y" +#line 1027 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); (yyval.symbol_info)->code = (yyvsp[-2].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code; } -#line 3064 "parser.tab.c" +#line 3149 "parser.tab.c" break; case 93: /* init_declarator: declarator */ -#line 969 "src/parser.y" +#line 1034 "src/parser.y" { - if(lookup_symbol_global((yyvsp[0].symbol_info)->name, curr_scope)!=nullptr){ + if(lookup_symbol_local((yyvsp[0].symbol_info)->name, curr_scope)!=nullptr){ error_list.push_back("Line "+to_string(yylineno)+" : Redeclaration error "+(yyvsp[0].symbol_info)->name); } symbol_info* new_symbol = new symbol_info(); @@ -3074,14 +3159,15 @@ yyparse (void) curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]=new_symbol; curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]->name=(yyvsp[0].symbol_info)->name; if((yyvsp[0].symbol_info)->is_array==true){ - curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]->is_array=true; + curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]->is_array=true; curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]->array_length=(yyvsp[0].symbol_info)->array_length; if((yyvsp[0].symbol_info)->type=="int" || (yyvsp[0].symbol_info)->type=="float"){ + // cerr<<"gggg"<<$1->type<name+":= alloc " +to_string(4*(yyvsp[0].symbol_info)->array_length); (yyval.symbol_info)->code=code; } else if((yyvsp[0].symbol_info)->type=="char"){ - string code=(yyvsp[0].symbol_info)->name+":= alloc " +to_string(2*(yyvsp[0].symbol_info)->array_length); + string code=(yyvsp[0].symbol_info)->name+":= alloc " +to_string(2*(yyvsp[0].symbol_info)->array_length); (yyval.symbol_info)->code=code; } } @@ -3093,11 +3179,11 @@ yyparse (void) parsing_stack.push((yyvsp[0].symbol_info)->name.c_str()); pointer_info.push((yyvsp[0].symbol_info)->pointer_depth); } -#line 3097 "parser.tab.c" +#line 3183 "parser.tab.c" break; case 94: /* init_declarator: declarator EQUALS initializer */ -#line 997 "src/parser.y" +#line 1063 "src/parser.y" { if(lookup_symbol_local((yyvsp[-2].symbol_info)->name, curr_scope)!=nullptr){ error_list.push_back("Line "+to_string(yylineno)+" : Redeclaration error "+(yyvsp[-2].symbol_info)->name); @@ -3106,7 +3192,6 @@ yyparse (void) curr_scope->symbol_map[(yyvsp[-2].symbol_info)->name]=(yyvsp[0].symbol_info); parsing_stack.push((yyvsp[-2].symbol_info)->name.c_str()); pointer_info.push((yyvsp[-2].symbol_info)->pointer_depth); - if((yyvsp[-2].symbol_info)->is_array){ if((yyvsp[0].symbol_info)->int_array.size() > (yyvsp[-2].symbol_info)->array_length){ error_list.push_back("Line "+to_string(yylineno)+" : Array size mismatch "+(yyvsp[-2].symbol_info)->name); @@ -3114,21 +3199,23 @@ yyparse (void) else{ (yyvsp[-2].symbol_info)->int_array = (yyvsp[0].symbol_info)->int_array; (yyvsp[-2].symbol_info)->type = (yyvsp[0].symbol_info)->type; + (yyvsp[-2].symbol_info)->type=(yyvsp[-2].symbol_info)->type+"*"; curr_scope->symbol_map[(yyvsp[-2].symbol_info)->name]->is_array=true; + curr_scope->symbol_map[(yyvsp[-2].symbol_info)->name]->type=(yyvsp[-2].symbol_info)->type; string code=(yyvsp[-2].symbol_info)->name+":= alloc "; - if((yyvsp[-2].symbol_info)->type=="int" || (yyvsp[-2].symbol_info)->type=="float"){ + if((yyvsp[-2].symbol_info)->type=="int*" || (yyvsp[-2].symbol_info)->type=="float*"){ code=code+to_string(4*(yyvsp[-2].symbol_info)->array_length); } - else if((yyvsp[-2].symbol_info)->type=="char"){ + else if((yyvsp[-2].symbol_info)->type=="char*"){ code=code+to_string(2*(yyvsp[-2].symbol_info)->array_length); } for(int i=0;i<(yyvsp[-2].symbol_info)->array_length;i++){ qid temp=newtemp((yyvsp[-2].symbol_info)->type,curr_scope); code=code+"\n"+temp.first+":= "+to_string(i)+"*"; - if((yyvsp[-2].symbol_info)->type=="int") code=code+"4\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+to_string(*(int*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); - else if((yyvsp[-2].symbol_info)->type=="float") code=code+"4\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+to_string(*(float*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); - else if((yyvsp[-2].symbol_info)->type=="char") code=code+"2\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+char(*(char*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); - else if((yyvsp[-2].symbol_info)->type=="char*") code=code+"2\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+(yyvsp[-2].symbol_info)->int_array[i]->str_val; + if((yyvsp[-2].symbol_info)->type=="int*") code=code+"4\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+to_string(*(int*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); + else if((yyvsp[-2].symbol_info)->type=="float*") code=code+"4\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+to_string(*(float*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); + else if((yyvsp[-2].symbol_info)->type=="char*") code=code+"2\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+char(*(char*)((yyvsp[-2].symbol_info)->int_array[i]->ptr)); + else if((yyvsp[-2].symbol_info)->type=="char**") code=code+"2\n"+"*( "+(yyvsp[-2].symbol_info)->name+" + "+temp.first+" ):= "+(yyvsp[-2].symbol_info)->int_array[i]->str_val; } (yyval.symbol_info)->code=code; } @@ -3143,71 +3230,71 @@ yyparse (void) (yyval.symbol_info)->place=(yyvsp[-2].symbol_info)->place; } } -#line 3147 "parser.tab.c" +#line 3234 "parser.tab.c" break; case 100: /* type_specifier: VOID */ -#line 1053 "src/parser.y" +#line 1120 "src/parser.y" {(yyval.str)=strdup("void");} -#line 3153 "parser.tab.c" +#line 3240 "parser.tab.c" break; case 101: /* type_specifier: CHAR */ -#line 1054 "src/parser.y" +#line 1121 "src/parser.y" {(yyval.str)=strdup("char");} -#line 3159 "parser.tab.c" +#line 3246 "parser.tab.c" break; case 102: /* type_specifier: SHORT */ -#line 1055 "src/parser.y" +#line 1122 "src/parser.y" {(yyval.str)=strdup("short");} -#line 3165 "parser.tab.c" +#line 3252 "parser.tab.c" break; case 103: /* type_specifier: INT */ -#line 1056 "src/parser.y" +#line 1123 "src/parser.y" {(yyval.str)=strdup("int");} -#line 3171 "parser.tab.c" +#line 3258 "parser.tab.c" break; case 104: /* type_specifier: LONG */ -#line 1057 "src/parser.y" +#line 1124 "src/parser.y" {(yyval.str)=strdup("long");} -#line 3177 "parser.tab.c" +#line 3264 "parser.tab.c" break; case 105: /* type_specifier: FLOAT */ -#line 1058 "src/parser.y" +#line 1125 "src/parser.y" {(yyval.str)=strdup("float");} -#line 3183 "parser.tab.c" +#line 3270 "parser.tab.c" break; case 106: /* type_specifier: DOUBLE */ -#line 1059 "src/parser.y" +#line 1126 "src/parser.y" {(yyval.str)=strdup("double");} -#line 3189 "parser.tab.c" +#line 3276 "parser.tab.c" break; case 107: /* type_specifier: SIGNED */ -#line 1060 "src/parser.y" +#line 1127 "src/parser.y" {(yyval.str)=strdup("signed");} -#line 3195 "parser.tab.c" +#line 3282 "parser.tab.c" break; case 108: /* type_specifier: UNSIGNED */ -#line 1061 "src/parser.y" +#line 1128 "src/parser.y" {(yyval.str)=strdup("unsigned");} -#line 3201 "parser.tab.c" +#line 3288 "parser.tab.c" break; case 109: /* type_specifier: struct_or_union_specifier */ -#line 1062 "src/parser.y" +#line 1129 "src/parser.y" {(yyval.str)=(yyvsp[0].str);} -#line 3207 "parser.tab.c" +#line 3294 "parser.tab.c" break; case 111: /* type_specifier: ID */ -#line 1064 "src/parser.y" +#line 1131 "src/parser.y" { if(type_def_mapping.find((yyvsp[0].str)) != type_def_mapping.end()){ (yyval.str)=strdup(type_def_mapping[(yyvsp[0].str)].c_str()); @@ -3216,59 +3303,89 @@ yyparse (void) error_list.push_back("Line "+to_string(yylineno)+" : Typedef error "+(yyvsp[0].str)); } } -#line 3220 "parser.tab.c" +#line 3307 "parser.tab.c" break; - case 112: /* struct_or_union_specifier: struct_or_union ID LBRACE struct_declaration_list RBRACE */ -#line 1076 "src/parser.y" + case 112: /* $@1: %empty */ +#line 1143 "src/parser.y" { - symbol_info* new_symbol=new symbol_info(); - new_symbol->type = (yyvsp[-4].str); - new_symbol->param_list = (yyvsp[-1].symbol_info)->param_list; - new_symbol->param_types = (yyvsp[-1].symbol_info)->param_types; - curr_scope->symbol_map[(yyvsp[-3].str)]=new_symbol; + symbol_info* find_symbol=lookup_symbol_local((yyvsp[0].str),curr_scope); + if(find_symbol==nullptr){ + symbol_info* new_symbol=new symbol_info(); + curr_scope->symbol_map[(yyvsp[0].str)]=new_symbol; + curr_scope->symbol_map[(yyvsp[0].str)]->name = (yyvsp[0].str); + curr_scope->symbol_map[(yyvsp[0].str)]->type = (yyvsp[-1].str); + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Struct redeclaration error "+(yyvsp[-1].str)); + } + } +#line 3324 "parser.tab.c" + break; + + case 113: /* $@2: %empty */ +#line 1156 "src/parser.y" + { + curr_scope = new scoped_symtab(curr_scope); + + } +#line 3333 "parser.tab.c" + break; + + case 114: /* struct_or_union_specifier: struct_or_union ID $@1 LBRACE $@2 struct_declaration_list RBRACE */ +#line 1161 "src/parser.y" + { + + + curr_scope->parent->symbol_map[(yyvsp[-5].str)]->param_list = (yyvsp[-1].symbol_info)->param_list; + curr_scope->parent->symbol_map[(yyvsp[-5].str)]->param_types = (yyvsp[-1].symbol_info)->param_types; + all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent; + } -#line 3232 "parser.tab.c" +#line 3346 "parser.tab.c" break; - case 114: /* struct_or_union_specifier: struct_or_union ID */ -#line 1085 "src/parser.y" + case 116: /* struct_or_union_specifier: struct_or_union ID */ +#line 1171 "src/parser.y" { + symbol_info* find_symbol = lookup_symbol_global((yyvsp[0].str), curr_scope); if (find_symbol != nullptr) { if (find_symbol->type == "struct" || find_symbol->type == "union") { std::string temp = std::string((yyvsp[-1].str)) + " " + std::string((yyvsp[0].str)); (yyval.str) = strdup(temp.c_str()); + } else { error_list.push_back("Line "+to_string(yylineno)+" : Variable not of type struct or union"); } } else { error_list.push_back("Line "+to_string(yylineno)+" : Struct or Union not declared "+(yyvsp[0].str)); } + } -#line 3250 "parser.tab.c" +#line 3367 "parser.tab.c" break; - case 115: /* struct_or_union: STRUCT */ -#line 1101 "src/parser.y" + case 117: /* struct_or_union: STRUCT */ +#line 1190 "src/parser.y" {(yyval.str)=strdup("struct");} -#line 3256 "parser.tab.c" +#line 3373 "parser.tab.c" break; - case 116: /* struct_or_union: UNION */ -#line 1102 "src/parser.y" + case 118: /* struct_or_union: UNION */ +#line 1191 "src/parser.y" {(yyval.str)=strdup("union");} -#line 3262 "parser.tab.c" +#line 3379 "parser.tab.c" break; - case 117: /* struct_declaration_list: struct_declaration */ -#line 1106 "src/parser.y" + case 119: /* struct_declaration_list: struct_declaration */ +#line 1195 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 3268 "parser.tab.c" +#line 3385 "parser.tab.c" break; - case 118: /* struct_declaration_list: struct_declaration_list struct_declaration */ -#line 1108 "src/parser.y" + case 120: /* struct_declaration_list: struct_declaration_list struct_declaration */ +#line 1197 "src/parser.y" { (yyval.symbol_info)=(yyvsp[-1].symbol_info); for(int i=0;i<(yyvsp[0].symbol_info)->param_list.size();i++){ @@ -3277,11 +3394,11 @@ yyparse (void) } } -#line 3281 "parser.tab.c" +#line 3398 "parser.tab.c" break; - case 119: /* struct_declaration: specifier_qualifier_list struct_declarator_list SEMICOLON */ -#line 1120 "src/parser.y" + case 121: /* struct_declaration: specifier_qualifier_list struct_declarator_list SEMICOLON */ +#line 1209 "src/parser.y" { (yyval.symbol_info)=(yyvsp[-1].symbol_info); for(auto it: (yyvsp[-1].symbol_info)->param_list) @@ -3297,63 +3414,64 @@ yyparse (void) } -#line 3301 "parser.tab.c" +#line 3418 "parser.tab.c" break; - case 122: /* struct_declarator_list: struct_declarator */ -#line 1144 "src/parser.y" + case 124: /* struct_declarator_list: struct_declarator */ +#line 1233 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); (yyval.symbol_info)->param_list.push_back((yyvsp[0].symbol_info)->name); } -#line 3310 "parser.tab.c" +#line 3427 "parser.tab.c" break; - case 123: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */ -#line 1149 "src/parser.y" + case 125: /* struct_declarator_list: struct_declarator_list COMMA struct_declarator */ +#line 1238 "src/parser.y" { (yyval.symbol_info)=(yyvsp[-2].symbol_info); (yyval.symbol_info)->param_list.push_back((yyvsp[0].symbol_info)->name); } -#line 3319 "parser.tab.c" +#line 3436 "parser.tab.c" break; - case 124: /* struct_declarator: declarator */ -#line 1156 "src/parser.y" + case 126: /* struct_declarator: declarator */ +#line 1245 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 3325 "parser.tab.c" +#line 3442 "parser.tab.c" break; - case 136: /* declarator: pointer direct_declarator */ -#line 1183 "src/parser.y" + case 138: /* declarator: pointer direct_declarator */ +#line 1272 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); (yyval.symbol_info)->pointer_depth=(yyvsp[-1].symbol_info)->pointer_depth; } -#line 3334 "parser.tab.c" +#line 3451 "parser.tab.c" break; - case 137: /* declarator: direct_declarator */ -#line 1187 "src/parser.y" + case 139: /* declarator: direct_declarator */ +#line 1276 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3342 "parser.tab.c" +#line 3459 "parser.tab.c" break; - case 138: /* direct_declarator: ID */ -#line 1194 "src/parser.y" + case 140: /* direct_declarator: ID */ +#line 1283 "src/parser.y" { symbol_info* x=new symbol_info(); x->name = (yyvsp[0].str); x->place.first=(yyvsp[0].str); (yyval.symbol_info)=x; + } -#line 3353 "parser.tab.c" +#line 3471 "parser.tab.c" break; - case 140: /* direct_declarator: direct_declarator LBRACKET constant_expression RBRACKET */ -#line 1202 "src/parser.y" + case 142: /* direct_declarator: direct_declarator LBRACKET constant_expression RBRACKET */ +#line 1292 "src/parser.y" { (yyval.symbol_info)->is_array = true; if((yyvsp[-1].symbol_info)->type=="int"){ @@ -3364,19 +3482,19 @@ yyparse (void) (yyval.symbol_info)->array_length=100; } } -#line 3368 "parser.tab.c" +#line 3486 "parser.tab.c" break; - case 141: /* direct_declarator: direct_declarator LBRACKET RBRACKET */ -#line 1213 "src/parser.y" + case 143: /* direct_declarator: direct_declarator LBRACKET RBRACKET */ +#line 1303 "src/parser.y" { (yyval.symbol_info)->is_array = true, (yyval.symbol_info)->array_length = 100; } -#line 3376 "parser.tab.c" +#line 3494 "parser.tab.c" break; - case 142: /* direct_declarator: direct_declarator LPARENTHESES parameter_type_list RPARENTHESES */ -#line 1217 "src/parser.y" + case 144: /* direct_declarator: direct_declarator LPARENTHESES parameter_type_list RPARENTHESES */ +#line 1307 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); new_symbol->type=(yyvsp[-3].symbol_info)->type; @@ -3389,11 +3507,11 @@ yyparse (void) (yyval.symbol_info)=new_symbol; } -#line 3393 "parser.tab.c" +#line 3511 "parser.tab.c" break; - case 144: /* direct_declarator: direct_declarator LPARENTHESES RPARENTHESES */ -#line 1231 "src/parser.y" + case 146: /* direct_declarator: direct_declarator LPARENTHESES RPARENTHESES */ +#line 1321 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); new_symbol->type=(yyvsp[-2].symbol_info)->type; @@ -3405,23 +3523,23 @@ yyparse (void) curr_scope->symbol_map[(yyvsp[-2].symbol_info)->name]=new_symbol; (yyval.symbol_info)=new_symbol; } -#line 3409 "parser.tab.c" +#line 3527 "parser.tab.c" break; - case 145: /* pointer: STAR */ -#line 1245 "src/parser.y" + case 147: /* pointer: STAR */ +#line 1335 "src/parser.y" {(yyval.symbol_info)=new symbol_info(); (yyval.symbol_info)->pointer_depth=1;} -#line 3415 "parser.tab.c" +#line 3533 "parser.tab.c" break; - case 147: /* pointer: STAR pointer */ -#line 1247 "src/parser.y" + case 149: /* pointer: STAR pointer */ +#line 1337 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info); (yyval.symbol_info)->pointer_depth++;} -#line 3421 "parser.tab.c" +#line 3539 "parser.tab.c" break; - case 151: /* parameter_type_list: parameter_list */ -#line 1259 "src/parser.y" + case 153: /* parameter_type_list: parameter_list */ +#line 1349 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)->parameter_no=(yyvsp[0].symbol_info)->parameter_no; @@ -3431,33 +3549,33 @@ yyparse (void) (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3435 "parser.tab.c" +#line 3553 "parser.tab.c" break; - case 153: /* parameter_list: parameter_declaration */ -#line 1273 "src/parser.y" + case 155: /* parameter_list: parameter_declaration */ +#line 1363 "src/parser.y" { (yyval.symbol_info)->is_param_list=true; (yyval.symbol_info)->parameter_no=1; (yyval.symbol_info)->param_types.push_back((yyvsp[0].symbol_info)->type); (yyval.symbol_info)->param_list.push_back((yyvsp[0].symbol_info)->name); } -#line 3446 "parser.tab.c" +#line 3564 "parser.tab.c" break; - case 154: /* parameter_list: parameter_list COMMA parameter_declaration */ -#line 1280 "src/parser.y" + case 156: /* parameter_list: parameter_list COMMA parameter_declaration */ +#line 1370 "src/parser.y" { (yyval.symbol_info)->is_param_list=true; (yyval.symbol_info)->parameter_no=(yyvsp[-2].symbol_info)->parameter_no+(yyvsp[0].symbol_info)->parameter_no; (yyval.symbol_info)->param_types.push_back((yyvsp[0].symbol_info)->type); (yyval.symbol_info)->param_list.push_back((yyvsp[0].symbol_info)->name); } -#line 3457 "parser.tab.c" +#line 3575 "parser.tab.c" break; - case 155: /* parameter_declaration: declaration_specifiers declarator */ -#line 1291 "src/parser.y" + case 157: /* parameter_declaration: declaration_specifiers declarator */ +#line 1381 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -3465,60 +3583,61 @@ yyparse (void) (yyval.symbol_info)->name=(yyvsp[0].symbol_info)->name; (yyval.symbol_info)->parameter_no=1; } -#line 3469 "parser.tab.c" +#line 3587 "parser.tab.c" break; - case 156: /* parameter_declaration: declaration_specifiers abstract_declarator */ -#line 1298 "src/parser.y" + case 158: /* parameter_declaration: declaration_specifiers abstract_declarator */ +#line 1388 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->type=(yyvsp[-1].str); (yyval.symbol_info)->name=(yyvsp[0].symbol_info)->name; } -#line 3480 "parser.tab.c" +#line 3598 "parser.tab.c" break; - case 157: /* parameter_declaration: declaration_specifiers */ -#line 1304 "src/parser.y" + case 159: /* parameter_declaration: declaration_specifiers */ +#line 1394 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->type=(yyvsp[0].str); (yyval.symbol_info)->name=""; } -#line 3491 "parser.tab.c" +#line 3609 "parser.tab.c" break; - case 174: /* initializer: assignment_expression */ -#line 1341 "src/parser.y" + case 176: /* initializer: assignment_expression */ +#line 1431 "src/parser.y" { (yyvsp[0].symbol_info)->int_array.push_back((yyvsp[0].symbol_info)); (yyval.symbol_info)=(yyvsp[0].symbol_info); + // cerr<<$1->name<<" "<<$1->pointer_depth<type != (yyvsp[0].symbol_info)->type){ error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in initializer list"); @@ -3528,54 +3647,54 @@ yyparse (void) } (yyval.symbol_info) = (yyvsp[-2].symbol_info); } -#line 3532 "parser.tab.c" +#line 3651 "parser.tab.c" break; - case 179: /* statement: labeled_statement */ -#line 1364 "src/parser.y" + case 181: /* statement: labeled_statement */ +#line 1455 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3541 "parser.tab.c" +#line 3660 "parser.tab.c" break; - case 180: /* statement: compound_statement */ -#line 1369 "src/parser.y" + case 182: /* statement: compound_statement */ +#line 1460 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3549 "parser.tab.c" +#line 3668 "parser.tab.c" break; - case 181: /* statement: expression_statement */ -#line 1373 "src/parser.y" + case 183: /* statement: expression_statement */ +#line 1464 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3557 "parser.tab.c" +#line 3676 "parser.tab.c" break; - case 182: /* statement: selection_statement */ -#line 1376 "src/parser.y" + case 184: /* statement: selection_statement */ +#line 1467 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 3563 "parser.tab.c" +#line 3682 "parser.tab.c" break; - case 183: /* statement: iteration_statement */ -#line 1377 "src/parser.y" + case 185: /* statement: iteration_statement */ +#line 1468 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 3569 "parser.tab.c" +#line 3688 "parser.tab.c" break; - case 184: /* statement: jump_statement */ -#line 1378 "src/parser.y" + case 186: /* statement: jump_statement */ +#line 1469 "src/parser.y" {(yyval.symbol_info)=(yyvsp[0].symbol_info);} -#line 3575 "parser.tab.c" +#line 3694 "parser.tab.c" break; - case 185: /* labeled_statement: ID COLON statement */ -#line 1384 "src/parser.y" + case 187: /* labeled_statement: ID COLON statement */ +#line 1475 "src/parser.y" { if(lookup_symbol_global((yyvsp[-2].str), curr_scope)!=nullptr){ error_list.push_back("Line "+to_string(yylineno)+" : Label Redeclaration error "+(yyvsp[-2].str)); @@ -3602,11 +3721,11 @@ yyparse (void) curr_scope->symbol_map[(yyvsp[-2].str)]->type="label"; } } -#line 3606 "parser.tab.c" +#line 3725 "parser.tab.c" break; - case 186: /* labeled_statement: ID COLON declaration */ -#line 1411 "src/parser.y" + case 188: /* labeled_statement: ID COLON declaration */ +#line 1502 "src/parser.y" { if(lookup_symbol_global((yyvsp[-2].str), curr_scope)!=nullptr){ @@ -3634,33 +3753,33 @@ yyparse (void) curr_scope->symbol_map[(yyvsp[-2].str)]->type="label"; } } -#line 3638 "parser.tab.c" +#line 3757 "parser.tab.c" break; - case 188: /* labeled_statement: CASE constant_expression COLON statement */ -#line 1440 "src/parser.y" + case 190: /* labeled_statement: CASE constant_expression COLON statement */ +#line 1531 "src/parser.y" { string label=newlabel(); (yyval.symbol_info)->code = label +":\n"+ (yyvsp[0].symbol_info)->code; case_list.top().push({(yyvsp[-2].symbol_info)->code,label}); } -#line 3649 "parser.tab.c" +#line 3768 "parser.tab.c" break; - case 189: /* labeled_statement: DEFAULT COLON statement */ -#line 1447 "src/parser.y" + case 191: /* labeled_statement: DEFAULT COLON statement */ +#line 1538 "src/parser.y" { string label=newlabel(); case_list.top().push({"default",label}); (yyval.symbol_info)->code = label+":\n"+ (yyvsp[0].symbol_info)->code; } -#line 3660 "parser.tab.c" +#line 3779 "parser.tab.c" break; - case 191: /* $@1: %empty */ -#line 1458 "src/parser.y" + case 193: /* $@3: %empty */ +#line 1549 "src/parser.y" { curr_scope = new scoped_symtab(curr_scope); for(int i=0;ireturn_type=(yyvsp[-1].symbol_info)->return_type; all_scopes.push_back(curr_scope);curr_scope = curr_scope->parent; } -#line 3688 "parser.tab.c" +#line 3807 "parser.tab.c" break; - case 193: /* $@2: %empty */ -#line 1478 "src/parser.y" + case 195: /* $@4: %empty */ +#line 1569 "src/parser.y" {curr_scope = new scoped_symtab(curr_scope);} -#line 3694 "parser.tab.c" +#line 3813 "parser.tab.c" break; - case 194: /* compound_statement: LBRACE $@2 statement_list RBRACE */ -#line 1478 "src/parser.y" + case 196: /* compound_statement: LBRACE $@4 statement_list RBRACE */ +#line 1569 "src/parser.y" {symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code; all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} -#line 3703 "parser.tab.c" +#line 3822 "parser.tab.c" break; - case 195: /* $@3: %empty */ -#line 1482 "src/parser.y" + case 197: /* $@5: %empty */ +#line 1573 "src/parser.y" {curr_scope = new scoped_symtab(curr_scope);} -#line 3709 "parser.tab.c" +#line 3828 "parser.tab.c" break; - case 196: /* compound_statement: LBRACE $@3 declaration_list RBRACE */ -#line 1482 "src/parser.y" + case 198: /* compound_statement: LBRACE $@5 declaration_list RBRACE */ +#line 1573 "src/parser.y" {symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code; all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} -#line 3718 "parser.tab.c" +#line 3837 "parser.tab.c" break; - case 197: /* $@4: %empty */ -#line 1486 "src/parser.y" + case 199: /* $@6: %empty */ +#line 1577 "src/parser.y" {curr_scope = new scoped_symtab(curr_scope);} -#line 3724 "parser.tab.c" +#line 3843 "parser.tab.c" break; - case 198: /* compound_statement: LBRACE $@4 declaration_list statement_list RBRACE */ -#line 1486 "src/parser.y" + case 200: /* compound_statement: LBRACE $@6 declaration_list statement_list RBRACE */ +#line 1577 "src/parser.y" {symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code+"\n"+(yyvsp[-1].symbol_info)->code;all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} -#line 3732 "parser.tab.c" +#line 3851 "parser.tab.c" break; - case 199: /* statement_declaration_list: statement_list statement_declaration_list */ -#line 1493 "src/parser.y" + case 201: /* statement_declaration_list: statement_list statement_declaration_list */ +#line 1584 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -3744,11 +3863,11 @@ yyparse (void) } -#line 3748 "parser.tab.c" +#line 3867 "parser.tab.c" break; - case 200: /* statement_declaration_list: declaration_list statement_declaration_list */ -#line 1505 "src/parser.y" + case 202: /* statement_declaration_list: declaration_list statement_declaration_list */ +#line 1596 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -3759,11 +3878,11 @@ yyparse (void) } -#line 3763 "parser.tab.c" +#line 3882 "parser.tab.c" break; - case 201: /* statement_declaration_list: statement_list */ -#line 1516 "src/parser.y" + case 203: /* statement_declaration_list: statement_list */ +#line 1607 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -3772,52 +3891,52 @@ yyparse (void) //dikkat badi hai // $$->return_type=$1->return_type; } -#line 3776 "parser.tab.c" +#line 3895 "parser.tab.c" break; - case 202: /* statement_declaration_list: declaration_list */ -#line 1525 "src/parser.y" + case 204: /* statement_declaration_list: declaration_list */ +#line 1616 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3784 "parser.tab.c" +#line 3903 "parser.tab.c" break; - case 203: /* declaration_list: declaration */ -#line 1532 "src/parser.y" + case 205: /* declaration_list: declaration */ +#line 1623 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code; //debug("declaration_list", $$->code); } -#line 3795 "parser.tab.c" +#line 3914 "parser.tab.c" break; - case 204: /* declaration_list: declaration_list declaration */ -#line 1539 "src/parser.y" + case 206: /* declaration_list: declaration_list declaration */ +#line 1630 "src/parser.y" { (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code; } -#line 3803 "parser.tab.c" +#line 3922 "parser.tab.c" break; - case 205: /* declaration_list: error SEMICOLON */ -#line 1542 "src/parser.y" + case 207: /* declaration_list: error SEMICOLON */ +#line 1633 "src/parser.y" {yyerrok;} -#line 3809 "parser.tab.c" +#line 3928 "parser.tab.c" break; - case 206: /* statement_list: statement */ -#line 1546 "src/parser.y" + case 208: /* statement_list: statement */ +#line 1637 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 3817 "parser.tab.c" +#line 3936 "parser.tab.c" break; - case 207: /* statement_list: statement_list statement */ -#line 1550 "src/parser.y" + case 209: /* statement_list: statement_list statement */ +#line 1641 "src/parser.y" { (yyval.symbol_info)->is_return=((yyvsp[-1].symbol_info)->is_return)|((yyvsp[0].symbol_info)->is_return); // if($1->return_type!="") $$->return_type=$1->return_type; @@ -3825,52 +3944,52 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code + "\n" + (yyvsp[0].symbol_info)->code; } -#line 3829 "parser.tab.c" +#line 3948 "parser.tab.c" break; - case 208: /* statement_list: error SEMICOLON */ -#line 1557 "src/parser.y" + case 210: /* statement_list: error SEMICOLON */ +#line 1648 "src/parser.y" {yyerrok;} -#line 3835 "parser.tab.c" +#line 3954 "parser.tab.c" break; - case 210: /* expression_statement: expression SEMICOLON */ -#line 1562 "src/parser.y" + case 212: /* expression_statement: expression SEMICOLON */ +#line 1653 "src/parser.y" {(yyval.symbol_info)=(yyvsp[-1].symbol_info);} -#line 3841 "parser.tab.c" +#line 3960 "parser.tab.c" break; - case 211: /* selection_statement: IF LPARENTHESES expression RPARENTHESES statement */ -#line 1567 "src/parser.y" + case 213: /* selection_statement: IF LPARENTHESES expression RPARENTHESES statement */ +#line 1658 "src/parser.y" { string truelabel=newlabel(); string falselabel=newlabel(); (yyval.symbol_info)->code=(yyvsp[-2].symbol_info)->code+"\n"+"if("+ (yyvsp[-2].symbol_info)->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+(yyvsp[0].symbol_info)->code+"\n"+falselabel+":\n"; } -#line 3851 "parser.tab.c" +#line 3970 "parser.tab.c" break; - case 212: /* selection_statement: IF LPARENTHESES expression RPARENTHESES statement ELSE statement */ -#line 1573 "src/parser.y" + case 214: /* selection_statement: IF LPARENTHESES expression RPARENTHESES statement ELSE statement */ +#line 1664 "src/parser.y" { string truelabel=newlabel(); string falselabel=newlabel(); string endlabel=newlabel(); (yyval.symbol_info)->code=(yyvsp[-4].symbol_info)->code+"\n"+"if("+ (yyvsp[-4].symbol_info)->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+(yyvsp[-2].symbol_info)->code+"\n"+"goto "+endlabel+"\n"+falselabel+":\n"+(yyvsp[0].symbol_info)->code+"\n"+endlabel+":\n"; } -#line 3862 "parser.tab.c" +#line 3981 "parser.tab.c" break; - case 213: /* $@5: %empty */ -#line 1579 "src/parser.y" + case 215: /* $@7: %empty */ +#line 1670 "src/parser.y" {queue> q; case_list.push(q); } -#line 3870 "parser.tab.c" +#line 3989 "parser.tab.c" break; - case 214: /* selection_statement: SWITCH $@5 LPARENTHESES expression RPARENTHESES statement */ -#line 1582 "src/parser.y" + case 216: /* selection_statement: SWITCH $@7 LPARENTHESES expression RPARENTHESES statement */ +#line 1673 "src/parser.y" { string str=""; while(!case_list.top().empty()){ @@ -3888,11 +4007,11 @@ yyparse (void) (yyval.symbol_info)->code=replace_break_continue((yyval.symbol_info)->code,endlabel," ",1); case_list.pop(); } -#line 3892 "parser.tab.c" +#line 4011 "parser.tab.c" break; - case 215: /* iteration_statement: WHILE LPARENTHESES expression RPARENTHESES statement */ -#line 1603 "src/parser.y" + case 217: /* iteration_statement: WHILE LPARENTHESES expression RPARENTHESES statement */ +#line 1694 "src/parser.y" { string startlabel=newlabel(); string endlabel=newlabel(); @@ -3902,11 +4021,11 @@ yyparse (void) (yyval.symbol_info)->code=startlabel+":\n"+(yyvsp[-2].symbol_info)->code+"\n"+"if("+(yyvsp[-2].symbol_info)->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+(yyvsp[0].symbol_info)->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; (yyval.symbol_info)->code=replace_break_continue((yyval.symbol_info)->code,endlabel,startlabel,1); } -#line 3906 "parser.tab.c" +#line 4025 "parser.tab.c" break; - case 216: /* iteration_statement: DO statement WHILE LPARENTHESES expression RPARENTHESES SEMICOLON */ -#line 1613 "src/parser.y" + case 218: /* iteration_statement: DO statement WHILE LPARENTHESES expression RPARENTHESES SEMICOLON */ +#line 1704 "src/parser.y" { string startlabel=newlabel(); string endlabel=newlabel(); @@ -3916,11 +4035,11 @@ yyparse (void) (yyval.symbol_info)->code=startlabel+":\n"+(yyvsp[-5].symbol_info)->code+"\n"+truelabel+":\n"+(yyvsp[-2].symbol_info)->code+"\n"+"\n"+"if("+(yyvsp[-2].symbol_info)->place.first+") goto "+startlabel+"\n"+"goto "+endlabel+"\n"+endlabel+":\n"; (yyval.symbol_info)->code=replace_break_continue((yyval.symbol_info)->code,endlabel,startlabel,1); } -#line 3920 "parser.tab.c" +#line 4039 "parser.tab.c" break; - case 217: /* iteration_statement: FOR LPARENTHESES expression_statement expression_statement RPARENTHESES statement */ -#line 1623 "src/parser.y" + case 219: /* iteration_statement: FOR LPARENTHESES expression_statement expression_statement RPARENTHESES statement */ +#line 1714 "src/parser.y" { string startlabel=newlabel(); string endlabel=newlabel(); @@ -3930,11 +4049,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-3].symbol_info)->code+"\n"+startlabel+":\n"+(yyvsp[-2].symbol_info)->code+"\n"+"if("+(yyvsp[-2].symbol_info)->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+(yyvsp[0].symbol_info)->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; (yyval.symbol_info)->code=replace_break_continue((yyval.symbol_info)->code,endlabel,startlabel,1); } -#line 3934 "parser.tab.c" +#line 4053 "parser.tab.c" break; - case 218: /* iteration_statement: FOR LPARENTHESES expression_statement expression_statement expression RPARENTHESES statement */ -#line 1633 "src/parser.y" + case 220: /* iteration_statement: FOR LPARENTHESES expression_statement expression_statement expression RPARENTHESES statement */ +#line 1724 "src/parser.y" { string startlabel=newlabel(); string endlabel=newlabel(); @@ -3947,11 +4066,11 @@ yyparse (void) (yyval.symbol_info)->code=replace_break_continue((yyval.symbol_info)->code,endlabel,updatelabel,0); } -#line 3951 "parser.tab.c" +#line 4070 "parser.tab.c" break; - case 219: /* jump_statement: GOTO ID SEMICOLON */ -#line 1649 "src/parser.y" + case 221: /* jump_statement: GOTO ID SEMICOLON */ +#line 1740 "src/parser.y" { //idhar ID ko symtab me insert karna he if(goto_list.find((yyvsp[-1].str))==goto_list.end()){ @@ -3974,33 +4093,33 @@ yyparse (void) // cerr << "goto\n"; } -#line 3978 "parser.tab.c" +#line 4097 "parser.tab.c" break; - case 220: /* jump_statement: CONTINUE SEMICOLON */ -#line 1672 "src/parser.y" + case 222: /* jump_statement: CONTINUE SEMICOLON */ +#line 1763 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->is_continue=true; (yyval.symbol_info)->code="\n continue \n"; } -#line 3989 "parser.tab.c" +#line 4108 "parser.tab.c" break; - case 221: /* jump_statement: BREAK SEMICOLON */ -#line 1679 "src/parser.y" + case 223: /* jump_statement: BREAK SEMICOLON */ +#line 1770 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; (yyval.symbol_info)->is_break=true; (yyval.symbol_info)->code="\n break \n"; } -#line 4000 "parser.tab.c" +#line 4119 "parser.tab.c" break; - case 222: /* jump_statement: RETURN SEMICOLON */ -#line 1686 "src/parser.y" + case 224: /* jump_statement: RETURN SEMICOLON */ +#line 1777 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -4008,11 +4127,11 @@ yyparse (void) (yyval.symbol_info)->return_type="void"; (yyval.symbol_info)->code="\nRETURN\n"; } -#line 4012 "parser.tab.c" +#line 4131 "parser.tab.c" break; - case 223: /* jump_statement: RETURN expression SEMICOLON */ -#line 1694 "src/parser.y" + case 225: /* jump_statement: RETURN expression SEMICOLON */ +#line 1785 "src/parser.y" { symbol_info* new_symbol=new symbol_info(); (yyval.symbol_info)=new_symbol; @@ -4021,56 +4140,56 @@ yyparse (void) (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code + "\nRETURN "+(yyvsp[-1].symbol_info)->place.first+"\n"; //debug("return ",$$->code); } -#line 4025 "parser.tab.c" +#line 4144 "parser.tab.c" break; - case 224: /* start_symbol: translation_unit */ -#line 1705 "src/parser.y" + case 226: /* start_symbol: translation_unit */ +#line 1796 "src/parser.y" { //cerr<<"-----------------"<code<<"----------------"<code); } -#line 4036 "parser.tab.c" +#line 4155 "parser.tab.c" break; - case 225: /* translation_unit: external_declaration */ -#line 1714 "src/parser.y" + case 227: /* translation_unit: external_declaration */ +#line 1805 "src/parser.y" { (yyval.symbol_info)->code=(yyvsp[0].symbol_info)->code; } -#line 4044 "parser.tab.c" +#line 4163 "parser.tab.c" break; - case 226: /* translation_unit: translation_unit external_declaration */ -#line 1718 "src/parser.y" + case 228: /* translation_unit: translation_unit external_declaration */ +#line 1809 "src/parser.y" { (yyval.symbol_info)->code=(yyvsp[-1].symbol_info)->code+(yyvsp[0].symbol_info)->code; } -#line 4052 "parser.tab.c" +#line 4171 "parser.tab.c" break; - case 228: /* external_declaration: function_definition */ -#line 1726 "src/parser.y" + case 230: /* external_declaration: function_definition */ +#line 1817 "src/parser.y" { (yyval.symbol_info)=(yyvsp[0].symbol_info); } -#line 4060 "parser.tab.c" +#line 4179 "parser.tab.c" break; - case 231: /* $@6: %empty */ -#line 1735 "src/parser.y" + case 233: /* $@8: %empty */ +#line 1826 "src/parser.y" { var_name=(yyvsp[0].symbol_info)->param_list; type_list=(yyvsp[0].symbol_info)->param_types; curr_scope->symbol_map[(yyvsp[0].symbol_info)->name]->type=(yyvsp[-1].str); } -#line 4070 "parser.tab.c" +#line 4189 "parser.tab.c" break; - case 232: /* function_definition: declaration_specifiers declarator $@6 compound_statement */ -#line 1741 "src/parser.y" + case 234: /* function_definition: declaration_specifiers declarator $@8 compound_statement */ +#line 1832 "src/parser.y" { if(strcmp((yyvsp[-3].str),"void")==0){ @@ -4100,11 +4219,11 @@ yyparse (void) (yyval.symbol_info)->code=(yyval.symbol_info)->code+(yyvsp[0].symbol_info)->code+"\nFUNC_END "+(yyvsp[-2].symbol_info)->name+"\n"; } -#line 4104 "parser.tab.c" +#line 4223 "parser.tab.c" break; -#line 4108 "parser.tab.c" +#line 4227 "parser.tab.c" default: break; } @@ -4297,7 +4416,7 @@ yyparse (void) return yyresult; } -#line 1773 "src/parser.y" +#line 1864 "src/parser.y" void yyerror(const char *s) { @@ -4333,12 +4452,12 @@ void print_scope_table(){ printf("-----------------------------------------------------------------\n"); for (const auto& it : scope->symbol_map) { + if (!it.second) { // Check if symbol_info* is null (shouldn't happen after your fix) printf("| %-15s | %-20s | %-7s | %-10s |\n", it.first.c_str(), "uninitialized", "N/A", "N/A"); continue; } - std::string valueStr = "N/A"; // Default value int size = 0; // Default size @@ -4358,7 +4477,9 @@ void print_scope_table(){ } else { size = 0; // Unknown type } - + if(it.second->is_static){ + it.second->type = "static "+it.second->type; + } printf("| %-15s | %-20s | %-7d | %-10s |\n", it.first.c_str(), // Identifier it.second->type.c_str(), // Type @@ -4394,5 +4515,4 @@ int main() { curr_scope->symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); - // print_scope_table(); } diff --git a/Assignment3/parser.tab.h b/Assignment3/parser.tab.h index 7726207..5b9d377 100644 --- a/Assignment3/parser.tab.h +++ b/Assignment3/parser.tab.h @@ -162,7 +162,7 @@ extern int yydebug; #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED union YYSTYPE { -#line 35 "src/parser.y" +#line 36 "src/parser.y" char* str; // For type_specifier, declarator struct symbol_info* symbol_info; // For expressions and constants diff --git a/Assignment3/src/parser.y b/Assignment3/src/parser.y index a6ef244..03f3fe3 100644 --- a/Assignment3/src/parser.y +++ b/Assignment3/src/parser.y @@ -6,6 +6,7 @@ void yyerror(const char *s); void print_errors(); + void print_scope_table(); extern int yylex(); extern int yylineno; @@ -347,7 +348,7 @@ argument_expression_list $$->param_list.push_back($1->place.first); } else{ - debug("gggggggggggggg ", $1->code); + // debug("gggggggggggggg ", $1->code); if($1->name==""){ $$=new symbol_info($1); $$->param_types.push_back($1->type); @@ -444,6 +445,14 @@ unary_expression $$->type.pop_back(); } } + // if($1->code=="-"){ + // debug("ddddd",$2->name); + // qid var=newtemp($2->type,curr_scope); + + // if($2->name!="") $$->code=$2->code+"\n"+var.first+":= -"+$2->name; + // else if($2->place.first!="") $$->code=$2->code+"\n"+var.first+":= -"+$2->place.first; + // $$->place=var; + // } $$->name=$2->name; $$->code=$2->code+"\n"+$1->code+$2->place.first; @@ -546,8 +555,13 @@ additive_expression : multiplicative_expression {$$=$1;} | additive_expression PLUS multiplicative_expression { + // cerr<<$1->type<type<type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if(count_star($1->type)>count_star($3->type)) $$->type=$1->type; + else if(count_star($1->type)type)) $$->type=$3->type; + else $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + // cerr<<$$->type<type,curr_scope); $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"+"+$3->place.first; $$->place=var; @@ -722,7 +736,8 @@ assignment_expression { $$=$1; - // cerr<<"hereeeeee "<<$$->code<name<type<type],type_priority[$3->type])==0 && $1->type!=$3->type){ - error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + if($3->type!="int" && $1->type!="int") error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); } - if(type_priority[$1->type]type]){ - error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + else if(type_priority[$1->type]type]){ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment3"); } string third_code=$3->code; string first_code=$1->code; if(min(type_priority[$1->type],type_priority[find_symbol->type])>0) find_symbol->type=priority_to_type[max(type_priority[find_symbol->type],type_priority[$3->type])]; - + find_symbol->name=$1->name; find_symbol->place=$1->place; find_symbol->code=$1->code + "\n" + $3->code + "\n" + $1->place.first + ":= " + $3->place.first; - + find_symbol->pointer_depth=max($1->pointer_depth, $3->pointer_depth); + // cerr<<$1->name<<" |||| "<<$1->pointer_depth<name<<" |||| "<<$3->pointer_depth<name<pointer_depth<place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='+' && $3->place.first[0]!='-' && $3->place.first[0]!='~' && $3->place.first[0]!='!') { @@ -893,7 +912,7 @@ declaration parsing_stack.pop(); pointer_info.pop(); if (curr_scope->symbol_map[top_symbol]->type!= ""){ - if(depth!=count_star(curr_scope->symbol_map[top_symbol]->type)){ + if(depth!=count_star(curr_scope->symbol_map[top_symbol]->type) && !curr_scope->symbol_map[top_symbol]->is_array){ error_list.push_back("Line "+to_string(yylineno)+" : Pointer depth mismatch"); flag = 1; } @@ -906,11 +925,12 @@ declaration curr_scope->symbol_map[top_symbol]->name = top_symbol; if(type_priority[$1]>0 && type_priority[curr_scope->symbol_map[top_symbol]->type]>0) curr_scope->symbol_map[top_symbol]->type = priority_to_type[max(type_priority[$1], type_priority[curr_scope->symbol_map[top_symbol]->type])]; - + if(std::string($1).substr(0,6) == "static"){ + curr_scope->symbol_map[top_symbol]->is_static = true; + } // debug("declaration specifiers121 ", $2->code); - - code=$2->code; + code+=$2->code; } else { @@ -921,10 +941,9 @@ declaration if(curr_scope->symbol_map[top_symbol]->is_array) curr_scope->symbol_map[top_symbol]->type+="*"; curr_scope->symbol_map[top_symbol]->name = top_symbol; curr_scope->symbol_map[top_symbol]->pointer_depth = depth; - if((curr_scope->symbol_map[top_symbol]->type).substr(0,6)=="struct") { - cerr<<"gggggghjjj "<<$1<symbol_map[top_symbol]->type).substr(7); if(struct_name.back()=='*') struct_name.pop_back(); symbol_info* find_struct=lookup_symbol_global(struct_name, curr_scope); @@ -953,6 +972,20 @@ declaration } + if(curr_scope->symbol_map[top_symbol]->is_array){ + // debug("in the arr",curr_scope->symbol_map[top_symbol]->type.substr(0,3)); + if(curr_scope->symbol_map[top_symbol]->type.substr(0,3)=="int"){ + code=code+top_symbol+":= alloc " +to_string(4*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + if(curr_scope->symbol_map[top_symbol]->type.substr(0,5)=="float"){ + code=code+top_symbol+":= alloc " +to_string(4*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + if(curr_scope->symbol_map[top_symbol]->type.substr(0,4)=="char"){ + code=code+top_symbol+":= alloc " +to_string(2*curr_scope->symbol_map[top_symbol]->array_length)+"\n"; + } + // debug("in the arr",code); + + } symbol_info* new_symbol = new symbol_info(); new_symbol = new symbol_info($2); @@ -963,6 +996,7 @@ declaration } // debug("declaration specifiers ", to_string(parsing_stack.size())); $$->code=code; + // debug("in the arr11",$$->code); //debug("Declaration: ",curr_scope->symbol_map["p"]->code); } @@ -1006,15 +1040,15 @@ init_declarator curr_scope->symbol_map[$1->name]=new_symbol; curr_scope->symbol_map[$1->name]->name=$1->name; if($1->is_array==true){ - curr_scope->symbol_map[$1->name]->is_array=true; + curr_scope->symbol_map[$1->name]->is_array=true; curr_scope->symbol_map[$1->name]->array_length=$1->array_length; if($1->type=="int" || $1->type=="float"){ - // cerr<<"gggg"<<$1->type<type<name+":= alloc " +to_string(4*$1->array_length); $$->code=code; } else if($1->type=="char"){ - string code=$1->name+":= alloc " +to_string(2*$1->array_length); + string code=$1->name+":= alloc " +to_string(2*$1->array_length); $$->code=code; } } @@ -1034,7 +1068,6 @@ init_declarator curr_scope->symbol_map[$1->name]=$3; parsing_stack.push($1->name.c_str()); pointer_info.push($1->pointer_depth); - if($1->is_array){ if($3->int_array.size() > $1->array_length){ error_list.push_back("Line "+to_string(yylineno)+" : Array size mismatch "+$1->name); @@ -1398,6 +1431,7 @@ initializer : assignment_expression { $1->int_array.push_back($1); $$=$1; + // cerr<<$1->name<<" "<<$1->pointer_depth<code<<"----------------"<code); } @@ -1862,12 +1896,12 @@ void print_scope_table(){ printf("-----------------------------------------------------------------\n"); for (const auto& it : scope->symbol_map) { + if (!it.second) { // Check if symbol_info* is null (shouldn't happen after your fix) printf("| %-15s | %-20s | %-7s | %-10s |\n", it.first.c_str(), "uninitialized", "N/A", "N/A"); continue; } - std::string valueStr = "N/A"; // Default value int size = 0; // Default size @@ -1887,7 +1921,9 @@ void print_scope_table(){ } else { size = 0; // Unknown type } - + if(it.second->is_static){ + it.second->type = "static "+it.second->type; + } printf("| %-15s | %-20s | %-7d | %-10s |\n", it.first.c_str(), // Identifier it.second->type.c_str(), // Type @@ -1923,5 +1959,4 @@ int main() { curr_scope->symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); - // print_scope_table(); } diff --git a/Assignment3/test/input2 b/Assignment3/test/input2 new file mode 100755 index 0000000000000000000000000000000000000000..9fe88689e7f309d384ef3251c5bca20d3b1c8479 GIT binary patch literal 15776 zcmeHOU2Ggz6~4R9k4qEVaT{Wi(2Sr#F|8--pIC0G$tLzXV{nq<9}p5{7<etU9eFx5`$*TSzjmi!)8+VGUCaI-!LunYUf4@6;AZCD*~cz$7|w z$Qh{s5_qFNLu!o3YXU=tc^sR1k9MdJZWQVe92wU&UlJB*+h6_xjDSV5w`4-qeji`Z`^(9M%l z-*)}bA@PTl@T%ka-0a}M@qD%?pDR|EdzOa=dj<#0O3CaCs^)eXbnuuub8bdaF*U{{ zj4F9S>nM+HcZ!|;mw)@yE1lo@;D~?hnW@h|eg7}7tu4OEKHP5Run#9L4?~1?&U2mY zqvP>7xh|bv+&nbI$!O0Z~ znOk=3`CQS-=N@qtn>oIN>deIW=@Gln>@!a^^8EwK9-lsIXWg>9kgIrZdHU=~zEpIl zo!PugWi1p+MJe6Zu1y^|f{EZy_f&#(ZZF15^-n1_MzSX+4^XJEvvOZJulKxMui`QDO1_AOk1#;qOO>>%RXnlJ}D2 zH}(fe(rdmt`iAd6OOn4~a!NchsS?W_i9>sKw?0K5uo&lW_4U_%|2^z5x;yv+b~j}Q z=y-|n0BGwNYwP+z`|S_6UQj0w-uK@AyMxb#%;$QahacrRahV<+k5fDDVj$Dj@!90a z-d!_PG3#-PBM?U*jzAoNI0A75;t0eMh$9e3AdWyBfu<3_dPS^H#M(ow+1vw`tY6$K zx+Uuz-yu5IK^_tv?_vi<$9hP9f8zxEUpD*_>o3Y8MyyR-i@pbgQ3MY!ZgUxtJ0 zK^*BdHPGvFJ%1M+?b5aV56@U1{$Cb}b*X1YM(#I`&CFJdUe)OBH~Y<0&tNrB`yTBZ zFjE8F0{`aPTw@{l%-S6ZGE;j8|<{>eH0rdU3x1=W&=&cPNa1;9sLmv-WRyT`vaZbgG(x z5;kSCa;^maG}pe_ux6vGw$I!tqQE zTfRqlXOf;`(w>HGYOd_{nk8Dv?#$+F&sk6eRJ`i^yg8>fSH0U_!JgxF?-laQmh6Rm zY1YZxS+7*C*iLm>&6NsEdDnBZW~#Xduei_IPPy!?*ly7)uc-O5Q*iBUwNO|gN=UQG z)7#>jD=t;NK5CI|k4>IBo3S(JMr~SeKl;&gr_PR#5KJ2v?2IK=YjjfCXC}^{J~d&V z9~+y>Oxx3^PETZr5#0`u#;X5Yt@L-Zj_0W0DyS4z^s;|aw(bG2vz3y)=oGWOKVbYk zd1Z4&yIOIxiY}Z^_H3mhT-lI7dkSzxyxE}X4uY-Q78=dw%?d%hXzNa8rQkWUB)zhh zi^%1Qv~yuenZ=UlnhV9Mxl}GKxn*x91kF}+wCyC973kFI@g5!yf%~FUSyX0rrASq1 z>6NwRQ*ODED;2jWHrdK<-eH0=xigiyl-DP7p+p(aU8XaS2=Xiiku}{#83T)1;zQGX zJs30tc`Do~XP3LNX#$99QY#7^4)as z902?w;X|g_DU|TL4~VzDh56C_QT+eyaKiHl82|2s`S{&~G~g&Q%Kr%Af2BDD+K+h? zBFcVN3xZ^E62QJq#xgrJVi$Rp+kOG_~<{(b0B%2RyctN>_?R0O9VesT5X)s{{VhQnKnA) zwrR}!u%9sM4;}K?#BC4pG0$A@A&?UMw6>`Of1M0G_E3Lg{wMoGYtnx_{yBk%e*7w7 z>;gXCi)zQ&Td8z#-aLU1xlX1qzd=Z84(dS(;6dM@3}dJt^QR8sNB!k;KvyjUFedH| z9Q=D4h|Yi?mgxJiYg!7lq+xs?^B6^Y@ciTV6|_Cff0AD`DE$x>X*Fo8WCO8}&dvB! LC$!g|Tk!u4Dv_dQ literal 0 HcmV?d00001 diff --git a/Assignment3/test/input2.c b/Assignment3/test/input2.c index b6a72cc..4f84a71 100644 --- a/Assignment3/test/input2.c +++ b/Assignment3/test/input2.c @@ -1,8 +1,6 @@ -typedef float A; - -int main(){ - A b=3; - float c=b; - int d=4; +int main() +{ + int b=3; + int a=-b; return 0; } \ No newline at end of file diff --git a/Assignment3/test/input8.c b/Assignment3/test/input8.c index 8ee3d6f..6da6365 100644 --- a/Assignment3/test/input8.c +++ b/Assignment3/test/input8.c @@ -27,7 +27,9 @@ int main() { // int a=4; int a = 100, b[20], ret,glb; - + b[1]=5; + static int hi; + int arr[5] = {1,2,3,4,5}; int i; for ( i = 0; i < a; i++) { @@ -39,7 +41,7 @@ int main() { switch (b) { - case -100: + case 100: printf("1\n"); break; case 1000: @@ -51,11 +53,12 @@ int main() // b[19] = i; ret = i; } - int *c = b + ret; // change to * + int *c=b+2; // change to * + c=b; jump: struct foo newS[5]; - // printf("Final = %d", newS[3].b + ret); - // if (*(b + 2) == 0){ + // printf(newS[3].b); + // if (*(b+2) == 0){ // goto jump; // } // goto jump; From f8abff70d0f2ba4906fd360fc93ca8715078944d Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Wed, 23 Apr 2025 17:00:12 +0530 Subject: [PATCH 03/52] start of 4 --- Assignment4/.gitignore | 21 + Assignment4/.vscode/settings.json | 95 ++ Assignment4/Makefile | 25 + Assignment4/README.md | 63 + Assignment4/include/3AC.h | 26 + Assignment4/include/functions.h | 318 +++++ Assignment4/include/utility.h | 93 ++ Assignment4/output/output1.txt | 26 + Assignment4/output/output2.txt | 27 + Assignment4/output/output3.txt | 53 + Assignment4/output/output4.txt | 122 ++ Assignment4/output/output5.txt | 61 + Assignment4/output/output6.txt | 29 + Assignment4/output/output7.txt | 248 ++++ Assignment4/output/output8.txt | 171 +++ Assignment4/output/output9.txt | 32 + Assignment4/run.sh | 20 + Assignment4/src/codegen | Bin 0 -> 164984 bytes Assignment4/src/codegen.cpp | 167 +++ Assignment4/src/output/codegen | Bin 0 -> 624560 bytes Assignment4/src/parser.y | 1870 +++++++++++++++++++++++++++++ Assignment4/src/scanner.l | 288 +++++ Assignment4/test/input1.c | 7 + Assignment4/test/input2.c | 8 + Assignment4/test/input3.c | 17 + Assignment4/test/input4.c | 44 + Assignment4/test/input5.c | 17 + Assignment4/test/input6.c | 6 + Assignment4/test/input7.c | 84 ++ Assignment4/test/input8.c | 63 + Assignment4/test/input9.c | 42 + 31 files changed, 4043 insertions(+) create mode 100644 Assignment4/.gitignore create mode 100644 Assignment4/.vscode/settings.json create mode 100644 Assignment4/Makefile create mode 100644 Assignment4/README.md create mode 100644 Assignment4/include/3AC.h create mode 100644 Assignment4/include/functions.h create mode 100644 Assignment4/include/utility.h create mode 100644 Assignment4/output/output1.txt create mode 100644 Assignment4/output/output2.txt create mode 100644 Assignment4/output/output3.txt create mode 100644 Assignment4/output/output4.txt create mode 100644 Assignment4/output/output5.txt create mode 100644 Assignment4/output/output6.txt create mode 100644 Assignment4/output/output7.txt create mode 100644 Assignment4/output/output8.txt create mode 100644 Assignment4/output/output9.txt create mode 100755 Assignment4/run.sh create mode 100755 Assignment4/src/codegen create mode 100644 Assignment4/src/codegen.cpp create mode 100755 Assignment4/src/output/codegen create mode 100644 Assignment4/src/parser.y create mode 100644 Assignment4/src/scanner.l create mode 100644 Assignment4/test/input1.c create mode 100644 Assignment4/test/input2.c create mode 100644 Assignment4/test/input3.c create mode 100644 Assignment4/test/input4.c create mode 100644 Assignment4/test/input5.c create mode 100644 Assignment4/test/input6.c create mode 100644 Assignment4/test/input7.c create mode 100644 Assignment4/test/input8.c create mode 100644 Assignment4/test/input9.c diff --git a/Assignment4/.gitignore b/Assignment4/.gitignore new file mode 100644 index 0000000..9cd9440 --- /dev/null +++ b/Assignment4/.gitignore @@ -0,0 +1,21 @@ +# Ignore compiled files +**/lex.yy.c +**/lexer +**/parser +**/parser.tab.c +**/parser.tab.h +lex.yy.c +parser.tab.c +parser.tab.h +parser +lexer +# Ignore backup and temporary files +**/*.swp +**/*.swo +**/*.bak +**/*~ + +# Ignore build artifacts +**/*.o +**/*.out +**/*.exe \ No newline at end of file diff --git a/Assignment4/.vscode/settings.json b/Assignment4/.vscode/settings.json new file mode 100644 index 0000000..6bdc738 --- /dev/null +++ b/Assignment4/.vscode/settings.json @@ -0,0 +1,95 @@ +{ + "files.associations": { + "any": "cpp", + "array": "cpp", + "atomic": "cpp", + "barrier": "cpp", + "bit": "cpp", + "*.tcc": "cpp", + "bitset": "cpp", + "cctype": "cpp", + "cfenv": "cpp", + "charconv": "cpp", + "chrono": "cpp", + "cinttypes": "cpp", + "clocale": "cpp", + "cmath": "cpp", + "codecvt": "cpp", + "compare": "cpp", + "complex": "cpp", + "concepts": "cpp", + "condition_variable": "cpp", + "coroutine": "cpp", + "csetjmp": "cpp", + "csignal": "cpp", + "cstdarg": "cpp", + "cstddef": "cpp", + "cstdint": "cpp", + "cstdio": "cpp", + "cstdlib": "cpp", + "cstring": "cpp", + "ctime": "cpp", + "cuchar": "cpp", + "cwchar": "cpp", + "cwctype": "cpp", + "deque": "cpp", + "forward_list": "cpp", + "list": "cpp", + "map": "cpp", + "set": "cpp", + "string": "cpp", + "unordered_map": "cpp", + "unordered_set": "cpp", + "vector": "cpp", + "exception": "cpp", + "expected": "cpp", + "algorithm": "cpp", + "functional": "cpp", + "iterator": "cpp", + "memory": "cpp", + "memory_resource": "cpp", + "numeric": "cpp", + "optional": "cpp", + "random": "cpp", + "ratio": "cpp", + "regex": "cpp", + "source_location": "cpp", + "string_view": "cpp", + "system_error": "cpp", + "tuple": "cpp", + "type_traits": "cpp", + "utility": "cpp", + "format": "cpp", + "fstream": "cpp", + "future": "cpp", + "initializer_list": "cpp", + "iomanip": "cpp", + "iosfwd": "cpp", + "iostream": "cpp", + "istream": "cpp", + "latch": "cpp", + "limits": "cpp", + "mutex": "cpp", + "new": "cpp", + "numbers": "cpp", + "ostream": "cpp", + "ranges": "cpp", + "scoped_allocator": "cpp", + "semaphore": "cpp", + "shared_mutex": "cpp", + "span": "cpp", + "spanstream": "cpp", + "sstream": "cpp", + "stacktrace": "cpp", + "stdexcept": "cpp", + "stdfloat": "cpp", + "stop_token": "cpp", + "streambuf": "cpp", + "syncstream": "cpp", + "thread": "cpp", + "typeindex": "cpp", + "typeinfo": "cpp", + "valarray": "cpp", + "variant": "cpp" + } +} \ No newline at end of file diff --git a/Assignment4/Makefile b/Assignment4/Makefile new file mode 100644 index 0000000..7f8e176 --- /dev/null +++ b/Assignment4/Makefile @@ -0,0 +1,25 @@ +# Define compiler and tools +LEX = flex +BISON = bison +CC = g++ +CFLAGS = -w + +# Output executable name +EXEC = parser + +# Source files +LEX_FILE = src/scanner.l +YACC_FILE = src/parser.y + +# Default target +all: $(EXEC) + +# Rule to compile the parser and scanner +$(EXEC): $(YACC_FILE) $(LEX_FILE) + $(BISON) -d -Wno-all $(YACC_FILE) + $(LEX) $(LEX_FILE) + $(CC) $(CFLAGS) parser.tab.c lex.yy.c -o $(EXEC) -ll + +# Clean build files +clean: + rm -f $(EXEC) lex.yy.c parser.tab.c parser.tab.h diff --git a/Assignment4/README.md b/Assignment4/README.md new file mode 100644 index 0000000..25286d2 --- /dev/null +++ b/Assignment4/README.md @@ -0,0 +1,63 @@ +# CSN-352-Compiler + +This project implements a **C to MIPS compiler** using **3-address code (3AC)** as an intermediate representation. +Currently, the project is in **Phase 3**, which involves checking the semantics and generating the 3-address code. + +--- + +## 📂 Project Directory Structure +```bash +Assignment3/ +│── src/ # Source code directory +│ ├── scanner.l # Lex file for lexical analysis +| ├── parser.y # File for syntax analysis +│── test/ # Test cases for the compiler +│ ├── input1.c # Sample test case 1 +│ ├── input2.c # Sample test case 2 +│ ├── input3.c # Sample test case 3 +│ ├── ... # More test cases +│── output/ # Stores output files (Auto-generated) +│ ├── output1.txt # Output of input1.c +│ ├── output2.txt # Output of input2.c +│ ├── output3.txt # Output of input3.c +│── Makefile # Build automation file +│── run.sh # Script to execute test cases +│── README.md # Project documentation + + +``` +## ⚙️ How to Compile and Run +Follow these steps to build and execute the lexical analyzer: + +### 1️⃣ Compile the files +```bash +make clean +make +``` +### 2️⃣ Run the Test Cases +After that run script using: +```bash +./run.sh +``` +### 3️⃣ Check Output +```bash +ls output/ # Lists all output files +cat output/output1.txt # View output for input1.c +cat output/output2.txt # View output for input2.c +``` +### 4️⃣ Error Handling +Errors for each code are written within the generated output file corresponding to that code. + +## 🛠️ Implementation Details + + - Lexical Analysis: Uses Flex (Lex) to tokenize C source code. + - Parsing: + Uses Bison (Yacc) to parse the tokenized code according to standard C grammar. + Each of the output files contain symbol table and constant table generated after parsing. + - Intermediate Representation: Uses Three address code. + - Compiler Backend: Will generate MIPS Assembly Code. + +## 📌 Notes + + - Ensure that flex, bison, and g++ are installed before running the project. + - The project is structured to automatically generate output files in the output/ directory. \ No newline at end of file diff --git a/Assignment4/include/3AC.h b/Assignment4/include/3AC.h new file mode 100644 index 0000000..897ceb0 --- /dev/null +++ b/Assignment4/include/3AC.h @@ -0,0 +1,26 @@ +#include +#include "utility.h" +using namespace std; + + +// extern map gotoLabels; + + +int counter=0; +int counter_lab=0; + +qid newtemp(string type,scoped_symtab* curr_scope){ + string temp = "t" + to_string(counter); + counter++; + symbol_info* temp_info = new symbol_info(temp, type); + curr_scope->symbol_map[temp] = temp_info; + qid temp_qid = make_pair(temp, temp_info); + return temp_qid; +} + + +string newlabel(){ + string label = "LABEL" + to_string(counter_lab); + counter_lab++; + return label; +} \ No newline at end of file diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h new file mode 100644 index 0000000..2a8d370 --- /dev/null +++ b/Assignment4/include/functions.h @@ -0,0 +1,318 @@ +#ifndef FUNCTIONS_H +#define FUNCTIONS_H + +#include "3AC.h" + + + +map type_priority = {{"char",1},{"int",2},{"float",3},{"double",4}}; +string priority_to_type[] = {"","char", "int", "float", "double"}; + +//set_pointer_data function +// This function sets the value of a pointer in the symbol_info struct based on the type provided. +void set_pointer_data(symbol_info* sym, std::string type, void* ptr){ + if(sym->ptr == nullptr){ + sym->ptr = malloc(sizeof(sym->type)); + } + if(type == "int"){ + *((int*)(sym->ptr)) = *((int*)ptr); + } + else if(type == "float"){ + *((float*)(sym->ptr)) = *((float*)ptr); + } + else if(type == "string"){ + *((std::string*)(sym->ptr)) = *((std::string*)ptr); + } + else if(type == "char"){ + *((char*)(sym->ptr)) = *((char*)ptr); + } + else if(type == "bool"){ + *((bool*)(sym->ptr)) = *((bool*)ptr); + } + else if(type == "double"){ + *((double*)(sym->ptr)) = *((double*)ptr); + } + else if(type == "long"){ + *((long*)(sym->ptr)) = *((long*)ptr); + } + else if(type == "short"){ + *((short*)(sym->ptr)) = *((short*)ptr); + } + else if(type == "unsigned int"){ + *((unsigned int*)(sym->ptr)) = *((unsigned int*)ptr); + } + else if(type == "unsigned char"){ + *((unsigned char*)(sym->ptr)) = *((unsigned char*)ptr); + } + else if(type == "unsigned long"){ + *((unsigned long*)(sym->ptr)) = *((unsigned long*)ptr); + } + else if(type == "unsigned short"){ + *((unsigned short*)(sym->ptr)) = *((unsigned short*)ptr); + } + else if(type == "unsigned long long"){ + *((unsigned long long*)(sym->ptr)) = *((unsigned long long*)ptr); + } + else if(type == "long long"){ + *((long long*)(sym->ptr)) = *((long long*)ptr); + } + else if(type == "void*"){ + *((void**)(sym->ptr)) = *((void**)ptr); + } + else if(type == "char*"){ + *((char**)(sym->ptr)) = *((char**)ptr); + } + else if(type == "int*"){ + *((int**)(sym->ptr)) = *((int**)ptr); + } + else if(type == "float*"){ + *((float**)(sym->ptr)) = *((float**)ptr); + } + else if(type == "string*"){ + *((std::string**)(sym->ptr)) = *((std::string**)ptr); + } + else if(type == "bool*"){ + *((bool**)(sym->ptr)) = *((bool**)ptr); + } + +} + +void convert_type(symbol_info* &sym, std::string new_type){ + std::string curr_type = sym->type; + if(new_type == "int"){ + if(curr_type == "char"){ + char* temp = (char*)sym->ptr; + int* new_ptr = (int*)malloc(sizeof(int)); + *new_ptr = (int)*temp; + sym->ptr = new_ptr; + sym->type = "int"; + } + } + else if(new_type == "float"){ + if(curr_type == "int"){ + int* temp = (int*)sym->ptr; + float* new_ptr = (float*)malloc(sizeof(float)); + *new_ptr = (float)*temp; + sym->ptr = new_ptr; + sym->type = "float"; + } + else if(curr_type == "char"){ + char* temp = (char*)sym->ptr; + float* new_ptr = (float*)malloc(sizeof(float)); + *new_ptr = (float)*temp; + sym->ptr = new_ptr; + sym->type = "float"; + } + } + else if(new_type == "double"){ + if(curr_type == "int"){ + int* temp = (int*)sym->ptr; + double* new_ptr = (double*)malloc(sizeof(double)); + *new_ptr = (double)*temp; + sym->ptr = new_ptr; + sym->type = "double"; + } + else if(curr_type == "float"){ + float* temp = (float*)sym->ptr; + double* new_ptr = (double*)malloc(sizeof(double)); + *new_ptr = (double)*temp; + sym->ptr = new_ptr; + sym->type = "double"; + } + } +} + +bool isSingleNumber(const string &line) { + for (char ch : line) { + if (!isdigit(ch)) return false; // If any non-digit character is found, return false + } + return !line.empty(); // Ensure it's not an empty string +} +bool startsWithPointerOrAddress(const string& line) { + regex pattern(R"(^(\*\*\w+)|(^\*\w+)|(^&&\w+)|(^&\w+))"); + return regex_search(line, pattern); +} + +// Function to clean Three-Address Code from input file and write to output file +void cleanTAC(string input) { + int lineno=1; + string line=""; + int index=0; + while(index>=") + { + tcode=t1 + ":= " + t1+">>"+t2; + } + else if(op=="&=") + { + tcode=t1 + ":= " + t1+"&"+t2; + } + else if(op=="^=") + { + tcode=t1 + ":= " + t1+"^"+t2; + } + else if(op=="|=") + { + tcode=t1 + ":= " + t1+"|"+t2; + } + else{ + tcode="error"; + } + return tcode; +} +void debug(string s1,string s2) + { + cerr< +#include +#include +#include +struct scoped_symtab; +struct symbol_info; +static symbol_info* lookup_symbol_local(const std::string& name, scoped_symtab* curr_scope); +static symbol_info* lookup_symbol_global(const std::string& name, scoped_symtab* curr_scope); + +struct scoped_symtab{ + scoped_symtab* parent = nullptr; + std::map symbol_map; + std::vector child_list; + + scoped_symtab(scoped_symtab* parent = nullptr){ + this->parent = parent; + } +}; + +typedef std::pair qid; + +typedef struct quadruple{ + qid op; + qid arg1; + qid arg2; + qid res; + int idx; +} quad; + +struct symbol_info { + std::string name; + std::string type; // Use std::string instead of char* for safety + void* ptr = nullptr; // Pointer to hold int* or float* + int symbol_size=0; + std::string str_val; + bool is_array = false; + int array_length = 0; + std::vector int_array; + bool is_param_list=false; + int parameter_no=0; + std::vector param_types; + std::vector param_list; + std::vector struct_attr_values; + int pointer_depth=0; + qid place; + std::string code; + + bool is_return=false; + std::string return_type=""; + bool is_array_access=false; + bool is_continue=false; + bool is_break=false; + + + + symbol_info(std::string name="", std::string type="", void* ptr=nullptr, int symbol_size=0, bool is_array=false, int array_length=0, std::vector int_array={},bool is_param_list=false,std::vector param_types={},std::vector param_list={},int parameter_no=0,int pointer_depth=0, qid place = {"", nullptr}, std::string code = "", + std::vector struct_attr_values = {}) + : name(name), type(type), ptr(ptr), symbol_size(symbol_size){} + + symbol_info(symbol_info* sym) + : name(sym->name), type(sym->type), ptr(sym->ptr), symbol_size(sym->symbol_size), + is_array(sym->is_array), array_length(sym->array_length), int_array(sym->int_array), + is_param_list(sym->is_param_list), parameter_no(sym->parameter_no), + param_types(sym->param_types), param_list(sym->param_list), + struct_attr_values(sym->struct_attr_values), pointer_depth(sym->pointer_depth), + place(sym->place), code(sym->code) {} +}; + + symbol_info* lookup_symbol_local(const std::string& name, scoped_symtab* curr_scope){ + auto ptr = curr_scope->symbol_map.find(name); + if (ptr != curr_scope->symbol_map.end()) { + return ptr->second; + } + return nullptr; + } + + symbol_info* lookup_symbol_global(const std::string& name, scoped_symtab* curr_scope){ + scoped_symtab* scope = curr_scope; + while (scope != nullptr) { + if(scope->symbol_map.find(name) != scope->symbol_map.end()){ + return scope->symbol_map[name]; + } + scope = scope->parent; + } + return nullptr; + } + + + #endif // SYMBOL_TABLE_H + \ No newline at end of file diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt new file mode 100644 index 0000000..4bb2c69 --- /dev/null +++ b/Assignment4/output/output1.txt @@ -0,0 +1,26 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. a := 3 +3. b := 4 +6. RETURN 0 +7. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | 3 | +| b | int | 4 | 4 | +| c | int | 4 | N/A | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- diff --git a/Assignment4/output/output2.txt b/Assignment4/output/output2.txt new file mode 100644 index 0000000..695aa71 --- /dev/null +++ b/Assignment4/output/output2.txt @@ -0,0 +1,27 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. b:= 3 +3. c:= b +4. d:= 4 +5. RETURN 0 +6. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| A | | 0 | N/A | +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| b | float | 4 | 0.000000 | +| c | float | 4 | N/A | +| d | int | 4 | 4 | +----------------------------------------------------------------- diff --git a/Assignment4/output/output3.txt b/Assignment4/output/output3.txt new file mode 100644 index 0000000..b6a5e43 --- /dev/null +++ b/Assignment4/output/output3.txt @@ -0,0 +1,53 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. sum:= 0 +3. "Enter a positive integer: " +4. PARAM "Enter a positive integer: " +5. t0:= CALL printf,1 +6. "%d" +7. PARAM "%d" +8. PARAM &num +9. t1:= CALL scanf,2 +10. count:= 1 +11. LABEL0: +12. t2:= count<=num +13. if(t2) goto LABEL2 +14. goto LABEL1 +15. LABEL2: +16. sum:= sum&count +17. count:= count+1 +18. goto LABEL0 +19. LABEL1: +20. "Sum = %d" +21. PARAM "Sum = %d" +22. PARAM sum +23. t3:= CALL printf,2 +24. RETURN 0 +25. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| count | int | 4 | N/A | +| num | int | 4 | N/A | +| sum | int | 4 | 0 | +| t0 | | 0 | N/A | +| t1 | | 0 | N/A | +| t2 | int | 4 | N/A | +| t3 | | 0 | N/A | +----------------------------------------------------------------- diff --git a/Assignment4/output/output4.txt b/Assignment4/output/output4.txt new file mode 100644 index 0000000..53d1e07 --- /dev/null +++ b/Assignment4/output/output4.txt @@ -0,0 +1,122 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. "Enter an operator (+, -, *, /): " +3. PARAM "Enter an operator (+, -, *, /): " +4. t0:= CALL printf,1 +5. "%c" +6. PARAM "%c" +7. PARAM &operation +8. t1:= CALL scanf,2 +9. "Enter two operands: " +10. PARAM "Enter two operands: " +11. t2:= CALL printf,1 +12. "%lf %lf" +13. PARAM "%lf %lf" +14. PARAM &n1 +15. PARAM &n2 +16. t3:= CALL scanf,3 +17. r:= 0 +18. if(operation=='+') goto LABEL0 +19. if(operation=='-') goto LABEL5 +20. if(operation=='*') goto LABEL6 +21. if(operation=='/') goto LABEL7 +22. goto LABEL8 +23. LABEL0: +24. "%.1lf + %.1lf = %.1lf" +25. t4:= n1+n2 +26. PARAM "%.1lf + %.1lf = %.1lf" +27. PARAM n1 +28. PARAM n2 +29. PARAM t4 +30. t5:= CALL printf,4 +31. goto LABEL9 +32. LABEL5: +33. if(b==1) goto LABEL1 +34. if(b==2) goto LABEL2 +35. goto LABEL3 +36. LABEL1: +37. goto LABEL4 +38. LABEL2: +39. r:= r-1 +40. "%.1lf - %.1lf = %.1lf" +41. t6:= n1-n2 +42. PARAM "%.1lf - %.1lf = %.1lf" +43. PARAM n1 +44. PARAM n2 +45. PARAM t6 +46. t7:= CALL printf,4 +47. goto LABEL4 +48. LABEL3: +49. "Error! operator is not correct" +50. PARAM "Error! operator is not correct" +51. t8:= CALL printf,1 +52. goto LABEL4 +53. LABEL4: +54. goto LABEL9 +55. LABEL6: +56. "%.1lf * %.1lf = %.1lf" +57. t9:= n1*n2 +58. PARAM "%.1lf * %.1lf = %.1lf" +59. PARAM n1 +60. PARAM n2 +61. PARAM t9 +62. t10:= CALL printf,4 +63. LABEL7: +64. "%.1lf / %.1lf = %.1lf" +65. t11:= n1/n2 +66. PARAM "%.1lf / %.1lf = %.1lf" +67. PARAM n1 +68. PARAM n2 +69. PARAM t11 +70. t12:= CALL printf,4 +71. goto LABEL9 +72. LABEL8: +73. "Error! operator is not correct" +74. PARAM "Error! operator is not correct" +75. t13:= CALL printf,1 +76. LABEL9: +77. RETURN 0 +78. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t6 | double | 0 | N/A | +| t7 | | 0 | N/A | +| t8 | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t10 | | 0 | N/A | +| t11 | double | 0 | N/A | +| t12 | | 0 | N/A | +| t13 | | 0 | N/A | +| t4 | double | 0 | N/A | +| t5 | | 0 | N/A | +| t9 | double | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| b | int | 4 | N/A | +| n1 | double | 0 | N/A | +| n2 | double | 0 | N/A | +| operation | char | 2 | | +| r | int | 4 | 0 | +| t0 | | 0 | N/A | +| t1 | | 0 | N/A | +| t2 | | 0 | N/A | +| t3 | | 0 | N/A | +----------------------------------------------------------------- diff --git a/Assignment4/output/output5.txt b/Assignment4/output/output5.txt new file mode 100644 index 0000000..71e025e --- /dev/null +++ b/Assignment4/output/output5.txt @@ -0,0 +1,61 @@ +=====================LIST OF ERRORS=================================== +Line 10 : Missing return statement +====================================================================== +1. FUNC_BEGIN fact +2. param0 := PARAM +3. n := param0 +4. t0:= n==0 +5. if(t0) goto LABEL0 +6. goto LABEL1 +7. LABEL0: +8. RETURN 1 +9. goto LABEL2 +10. LABEL1: +11. t1:= n-1 +12. PARAM t1 +13. t2:= CALL fact,1 +14. t3:= n*t2 +15. RETURN t3 +16. LABEL2: +17. FUNC_END fact +18. FUNC_BEGIN main +19. x:= 10 +20. PARAM x +21. t4:= CALL fact,1 +22. ans:= t4 +23. RETURN 0 +24. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| fact | int | 4 | N/A | +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| n | int | 4 | N/A | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| ans | int | 4 | N/A | +| t4 | int | 4 | N/A | +| x | int | 4 | 10 | +----------------------------------------------------------------- diff --git a/Assignment4/output/output6.txt b/Assignment4/output/output6.txt new file mode 100644 index 0000000..7b1713b --- /dev/null +++ b/Assignment4/output/output6.txt @@ -0,0 +1,29 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. x:= 0.000000 +3. 1.200000 +4. 1.260000 +5. t0:= 1.200000+1.260000 +6. t1:= (t0) +7. x:= t1 +8. RETURN 0 +9. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t0 | float | 4 | N/A | +| t1 | float | 4 | N/A | +| x | float | 4 | 0.000000 | +----------------------------------------------------------------- diff --git a/Assignment4/output/output7.txt b/Assignment4/output/output7.txt new file mode 100644 index 0000000..3ebe6c7 --- /dev/null +++ b/Assignment4/output/output7.txt @@ -0,0 +1,248 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. global_var:= 100 +2. FUNC_BEGIN add +3. param0 := PARAM +4. param1 := PARAM +5. a := param0 +6. b := param1 +7. t0:= a+b +8. RETURN t0 +9. FUNC_END add +10. FUNC_BEGIN divide +11. param0 := PARAM +12. param1 := PARAM +13. a := param0 +14. b := param1 +15. t1:= b==0 +16. if(t1) goto LABEL0 +17. goto LABEL1 +18. LABEL0: +19. "Error: divide by zero\n" +20. PARAM "Error: divide by zero\n" +21. t2:= CALL printf,1 +22. 0.000000 +23. RETURN 0.000000 +24. LABEL1: +25. t3:= a/b +26. RETURN t3 +27. FUNC_END divide +28. FUNC_BEGIN max_in_array +29. param0 := PARAM +30. param1 := PARAM +31. arr := param0 +32. size := param1 +33. RETURN 0 +34. FUNC_END max_in_array +35. FUNC_BEGIN print_array +36. param0 := PARAM +37. param1 := PARAM +38. arr := param0 +39. size := param1 +40. "\n" +41. PARAM "\n" +42. t4:= CALL printf,1 +43. RETURN +44. FUNC_END print_array +45. FUNC_BEGIN initialize_array +46. param0 := PARAM +47. param1 := PARAM +48. param2 := PARAM +49. arr := param0 +50. size := param1 +51. value := param2 +52. RETURN +53. FUNC_END initialize_array +54. FUNC_BEGIN factorial +55. param0 := PARAM +56. n := param0 +57. t5:= n<0 +58. if(t5) goto LABEL2 +59. goto LABEL3 +60. LABEL2: +61. -1 +62. RETURN -1 +63. LABEL3: +64. t6:= n==0 +65. if(t6) goto LABEL4 +66. goto LABEL5 +67. LABEL4: +68. RETURN 1 +69. LABEL5: +70. t7:= n-1 +71. PARAM t7 +72. t8:= CALL factorial,1 +73. t9:= n*t8 +74. RETURN t9 +75. FUNC_END factorial +76. FUNC_BEGIN create_point +77. param0 := PARAM +78. param1 := PARAM +79. x := param0 +80. y := param1 +81. p:= alloc 8 +82. t10:= p+0 +83. *t10:= x +84. t11:= p+4 +85. *t11:= y +86. RETURN p +87. FUNC_END create_point +88. FUNC_BEGIN print_point +89. param0 := PARAM +90. p := param0 +91. "Point: (%d, %d)\n" +92. PARAM "Point: (%d, %d)\n" +93. PARAM p +94. PARAM p +95. t12:= CALL printf,3 +96. RETURN +97. FUNC_END print_point +98. FUNC_BEGIN main +99. a:= 10 +100. b:= 5 +101. PARAM a +102. PARAM b +103. t13:= CALL add,2 +104. sum:= t13 +105. "Sum: %d\n" +106. PARAM "Sum: %d\n" +107. PARAM sum +108. t14:= CALL printf,2 +109. PARAM a +110. PARAM b +111. t15:= CALL divide,2 +112. result:= t15 +113. "Division: %.2f\n" +114. PARAM "Division: %.2f\n" +115. PARAM result +116. t16:= CALL printf,2 +117. arr:= alloc 20 +118. t17:= 0*4 +119. *( arr + t17 ):= 1 +120. t18:= 1*4 +121. *( arr + t18 ):= 7 +122. t19:= 2*4 +123. *( arr + t19 ):= 3 +124. t20:= 3*4 +125. *( arr + t20 ):= 9 +126. t21:= 4*4 +127. *( arr + t21 ):= 2 +128. PARAM arr +129. PARAM 5 +130. CALL print_array,2 +131. PARAM arr +132. PARAM 5 +133. t23:= CALL max_in_array,2 +134. max_val:= t23 +135. "Max value: %d\n" +136. PARAM "Max value: %d\n" +137. PARAM max_val +138. t24:= CALL printf,2 +139. "Initialized global array (first 5 values): " +140. PARAM "Initialized global array (first 5 values): " +141. t25:= CALL printf,1 +142. PARAM 5 +143. t26:= CALL factorial,1 +144. fact:= t26 +145. "Factorial of 5: %d\n" +146. PARAM "Factorial of 5: %d\n" +147. PARAM fact +148. t27:= CALL printf,2 +149. PARAM 3 +150. PARAM 4 +151. t28:= CALL create_point,2 +152. pt:= t28 +153. PARAM &pt +154. CALL print_point,1 +155. i:= 100 +156. i:= 0 +157. LABEL6: +158. t30:= i<3 +159. if(t30) goto LABEL8 +160. goto LABEL7 +161. LABEL8: +162. "Loop i: %d\n" +163. PARAM "Loop i: %d\n" +164. PARAM i +165. t31:= CALL printf,2 +166. i:= i+1 +167. goto LABEL6 +168. LABEL7: +169. "Outer i: %d\n" +170. PARAM "Outer i: %d\n" +171. PARAM i +172. t32:= CALL printf,2 +173. ptr:= &sum +174. "Value via pointer: %d\n" +175. PARAM "Value via pointer: %d\n" +176. PARAM *ptr +177. t33:= CALL printf,2 +178. RETURN 0 +179. FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| Point | struct | 0 | N/A | +| add | int | 4 | N/A | +| create_point | struct Point | 0 | N/A | +| divide | float | 4 | N/A | +| factorial | int | 4 | N/A | +| global_var | int | 4 | 100 | +| initialize_array | void | 0 | N/A | +| main | int | 4 | N/A | +| max_in_array | int | 4 | N/A | +| print_array | void | 0 | N/A | +| print_point | void | 0 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +| x | int | 4 | N/A | +| y | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | N/A | +| b | int | 4 | N/A | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t2 | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | N/A | +| b | int | 4 | N/A | +| t1 | int | 4 | N/A | +| t3 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| arr | int | 4 | N/A | +| size | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| arr | int | 4 | N/A | +| size | int | 4 | N/A | +| t4 | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| arr | int | 4 | N/A | +| size | int | 4 | N/A | +| value | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| n \ No newline at end of file diff --git a/Assignment4/output/output8.txt b/Assignment4/output/output8.txt new file mode 100644 index 0000000..1899ab4 --- /dev/null +++ b/Assignment4/output/output8.txt @@ -0,0 +1,171 @@ +=====================LIST OF ERRORS=================================== +Line 12 : Struct or Union not declared foo +Line 30 : Redeclaration error b +Line 59 : Trying to dereference non pointer +Line 61 : Trying to dereference non pointer b +====================================================================== +1. glb1:= 10 +2. FUNC_BEGIN bar +3. param0 := PARAM +4. param1 := PARAM +5. a := param0 +6. b := param1 +7. lcl:= 10 +8. LABEL0: +9. if(b) goto LABEL2 +10. goto LABEL1 +11. LABEL2: +12. b:= b-1 +13. goto LABEL0 +14. LABEL1: +15. t0:= a==0 +16. if(t0) goto LABEL3 +17. goto LABEL4 +18. LABEL3: +19. RETURN 0 +20. LABEL4: +21. a:= a-1 +22. t1:= a+b +23. t2:= t1+lcl +24. PARAM a +25. PARAM t2 +26. t3:= CALL bar,2 +27. RETURN 1 +28. FUNC_END bar +29. FUNC_BEGIN main +30. a:= 100 +31. i:= 0 +32. LABEL14: +33. t4:= i $(basename "$output_file")" + $EXEC < "$testfile"> "$output_file" 2>&1 + ((counter++)) +done + +# echo "All test cases executed. Outputs stored in $OUTPUT_DIR." diff --git a/Assignment4/src/codegen b/Assignment4/src/codegen new file mode 100755 index 0000000000000000000000000000000000000000..57d90898eeb7e39e37145dd94a818087cd854eed GIT binary patch literal 164984 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 b!?pO&)$jW?xPRR_+^WCT2FnfB*Tnw^tAo~W literal 0 HcmV?d00001 diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp new file mode 100644 index 0000000..662d09e --- /dev/null +++ b/Assignment4/src/codegen.cpp @@ -0,0 +1,167 @@ +#include +#include +#include +#include +#include +#include +#include + +using namespace std; + +// --- Global Variables --- +unordered_map regMap; +vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; + +unordered_map constValue = { + {"a", "3"}, + {"b", "4"} +}; + +// Track loaded constants to avoid redundant li +unordered_map loadedConstants; + +vector mipsCode; + +// --- Helper Functions --- +string trim(const string& s) { + size_t start = s.find_first_not_of(" \t\r\n"); + size_t end = s.find_last_not_of(" \t\r\n"); + return (start == string::npos) ? "" : s.substr(start, end - start + 1); +} + +bool isConstant(const string& s) { + return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); +} + +string getRegister(const string& var) { + if (regMap.count(var)) return regMap[var]; + if (availableRegs.empty()) { + cerr << "Register spill not handled\n"; + exit(1); + } + string reg = availableRegs.back(); + availableRegs.pop_back(); + regMap[var] = reg; + return reg; +} + +// --- MIPS Code Generator --- +void generateMIPS(const string& line) { + string trimmed = trim(line); + + if (trimmed.find("FUNC_BEGIN") == 0) { + istringstream iss(trimmed); + string dummy, funcName; + iss >> dummy >> funcName; + mipsCode.push_back(funcName + ":"); + mipsCode.push_back(" addi $sp, $sp, -16"); + mipsCode.push_back(" sw $ra, 4($sp)"); + mipsCode.push_back(" sw $fp, 0($sp)"); + mipsCode.push_back(" move $fp, $sp"); + return; + } + + if (trimmed.find("FUNC_END") == 0) { + mipsCode.push_back(" move $sp, $fp"); + mipsCode.push_back(" lw $fp, 0($sp)"); + mipsCode.push_back(" lw $ra, 4($sp)"); + mipsCode.push_back(" addi $sp, $sp, 16"); + mipsCode.push_back(" jr $ra"); + + // Clear tracking state for new functions + regMap.clear(); + availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; + loadedConstants.clear(); + return; + } + + if (trimmed.find("RETURN") == 0) { + istringstream iss(trimmed); + string keyword, val; + iss >> keyword >> val; + mipsCode.push_back(" li $v0, " + val); + return; + } + + if (trimmed.find(":=") != string::npos) { + size_t lhsEnd = trimmed.find(":="); + string lhs = trim(trimmed.substr(0, lhsEnd)); + string rhs = trim(trimmed.substr(lhsEnd + 2)); + + size_t opPos = rhs.find_first_of("+-*/"); + + if (opPos != string::npos) { + string op1 = trim(rhs.substr(0, opPos)); + string op2 = trim(rhs.substr(opPos + 1)); + char op = rhs[opPos]; + + string r1 = getRegister(op1); + string r2 = getRegister(op2); + string rd = getRegister(lhs); + + // if (constValue.count(op1) && !loadedConstants[op1]) { + // mipsCode.push_back(" li " + r1 + ", " + constValue[op1]); + // loadedConstants[op1] = true; + // } + // if (constValue.count(op2) && !loadedConstants[op2]) { + // mipsCode.push_back(" li " + r2 + ", " + constValue[op2]); + // loadedConstants[op2] = true; + // } + + switch (op) { + case '+': mipsCode.push_back(" add " + rd + ", " + r1 + ", " + r2); break; + case '-': mipsCode.push_back(" sub " + rd + ", " + r1 + ", " + r2); break; + case '*': mipsCode.push_back(" mul " + rd + ", " + r1 + ", " + r2); break; + case '/': + mipsCode.push_back(" div " + r1 + ", " + r2); + mipsCode.push_back(" mflo " + rd); + break; + } + } else { + string dst = getRegister(lhs); + if (constValue.count(rhs) && !loadedConstants[rhs]) { + mipsCode.push_back(" li " + dst + ", " + constValue[rhs]); + loadedConstants[rhs] = true; + // cout<<"Loaded constant: " << rhs << " into " << dst << endl; + } else if (isConstant(rhs)) { + mipsCode.push_back(" li " + dst + ", " + rhs); + cout<<"Loaded constant: " << rhs << " into " << dst << endl; + } else { + string src = getRegister(rhs); + mipsCode.push_back(" move " + dst + ", " + src); + } + } + } +} + +// --- Main Function --- +int main() { + ifstream infile("../output/output1.txt"); + if (!infile.is_open()) { + cerr << "Cannot open input file\n"; + return 1; + } + + vector cleanedLines; + string line; + + while (getline(infile, line)) { + line = trim(line); + size_t dotPos = line.find('.'); + if (dotPos != string::npos) { + line = trim(line.substr(dotPos + 1)); // remove line number and trim again + } + if (!line.empty()) cleanedLines.push_back(line); + } + + for (const string& codeLine : cleanedLines) { + generateMIPS(codeLine); + } + + cout << "# MIPS Assembly Code:\n"; + for (auto& line : mipsCode) { + cout << line << endl; + } + + return 0; +} diff --git a/Assignment4/src/output/codegen b/Assignment4/src/output/codegen new file mode 100755 index 0000000000000000000000000000000000000000..cb41ef3dad87ef4145181da9345aae70f9592636 GIT binary patch literal 624560 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�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 parsing_stack; + std::stack pointer_info; + std::map type_def_mapping; + + scoped_symtab* curr_scope = new scoped_symtab(); + std::vector all_scopes={curr_scope}; + + std::vector error_list; + + vector type_list = {}; + vector var_name={}; + map goto_list; + stack>> case_list; + + struct ArgList { + char *args[MAX_ARGS]; + int count_arg; + } argList; + +%} + +%union { + char* str; // For type_specifier, declarator + struct symbol_info* symbol_info; // For expressions and constants +} + +%token DECIMAL_LITERAL HEXA_LITERAL OCTAL_LITERAL EXP_LITERAL REAL_LITERAL FLOAT_LITERAL STRING_LITERAL CHARACTER_LITERAL +%token ID INVALID_ID INCLUDE +%token AUTO STRUCT BOOL BREAK CASE CONTINUE GOTO DO DEFAULT IF ELSE FOR CONST TRUE FALSE STATIC SWITCH WHILE VOID RETURN SIZEOF FLOAT INT DOUBLE EXTERN SHORT LONG CHAR ENUM REGISTER SIGNED TYPEDEF UNION UNSIGNED VOLATILE +%token CLASS PUBLIC PRIVATE PROTECTED NULLPTR NAMESPACE VIRTUAL CATCH +%token RBRACE LBRACE LBRACKET RBRACKET LPARENTHESES RPARENTHESES DOT COMMA COLON SEMICOLON PLUS MINUS STAR DIVIDE MODULO AMPERSAND OR XOR EXCLAMATION TILDE EQUALS LESS_THAN GREATER_THAN QUESTION_MARK INCREMENT DECREMENT REL_AND REL_OR REL_EQUALS REL_NOT_EQ LESS_EQUALS GREATER_EQUALS ASSIGN_PLUS ASSIGN_MINUS ASSIGN_STAR ASSIGN_DIV ASSIGN_MOD ASSIGN_AND ASSIGN_OR ASSIGN_XOR LEFT_SHIFT LEFT_SHIFT_EQ RIGHT_SHIFT RIGHT_SHIFT_EQ LAMBDA_ARROW VARIABLE_ARGS + +%type primary_expression postfix_expression argument_expression_list unary_expression +%type unary_operator cast_expression multiplicative_expression additive_expression +%type shift_expression relational_expression equality_expression and_expression +%type exclusive_or_expression inclusive_or_expression logical_and_expression +%type logical_or_expression conditional_expression assignment_expression +%type assignment_operator expression constant_expression declaration +%type constant + +%type init_declarator init_declarator_list + +%type struct_declaration_list struct_declaration +%type struct_declarator_list struct_declarator +%type enumerator_list enumerator declarator +%type direct_declarator pointer type_qualifier_list parameter_type_list +%type parameter_list parameter_declaration identifier_list type_name +%type abstract_declarator direct_abstract_declarator initializer +%type initializer_list statement labeled_statement compound_statement +%type declaration_list statement_list expression_statement statement_declaration_list +%type selection_statement iteration_statement jump_statement +%type translation_unit external_declaration function_definition start_symbol + +%type declaration_specifiers storage_class_specifier type_qualifier type_specifier enum_specifier specifier_qualifier_list +%type struct_or_union struct_or_union_specifier + +%start start_symbol + +%% + +constant: + DECIMAL_LITERAL + { + $$= new symbol_info("", "int", $1->ptr, $1->symbol_size); + $$->place=qid(std::to_string(*(int*)($1->ptr)),nullptr); + $$->code=std::to_string(*(int*)($1->ptr)); + } + | FLOAT_LITERAL + { + $$= new symbol_info("", "float", $1->ptr, $1->symbol_size); + $$->place=qid(std::to_string(*(float*)($1->ptr)),nullptr); + $$->code=std::to_string(*(float*)($1->ptr)); + } + | EXP_LITERAL {$$ = new symbol_info("", "exp", $1->ptr, $1->symbol_size);} + | HEXA_LITERAL {$$ = new symbol_info("", "hexa", $1->ptr, $1->symbol_size);} + | REAL_LITERAL {$$ = new symbol_info("", "real", $1->ptr, $1->symbol_size);} + | STRING_LITERAL + { + $$ = new symbol_info("", "char*", $1->ptr, $1->symbol_size); + $$->str_val=$1->str_val; + $$->place=qid($1->str_val,nullptr); + $$->code=$1->str_val; + } + | OCTAL_LITERAL {$$ = new symbol_info("", "octal", $1->ptr, $1->symbol_size);} + | CHARACTER_LITERAL + { + $$ = new symbol_info("", "char", $1->ptr, $1->symbol_size); + string tempp = "'"; + tempp+=(*(char*)($1->ptr)); + tempp+='\''; + $$->place=qid(tempp,nullptr); + $$->code=tempp; + } + + +primary_expression + : ID + { + symbol_info* new_symbol = new symbol_info($1); + $$ = new_symbol; + + //3AC code + symbol_info* find_symbol = lookup_symbol_global($1, curr_scope); + if(find_symbol==nullptr){ + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared variable "+$1); + } + else{ + $$->place=qid($1,find_symbol); + $$->code=""; + $$->type=find_symbol->type; + $$->is_array=find_symbol->is_array; + } + } + | constant + { + $$ = $1; + } + | STRING_LITERAL + | LPARENTHESES expression RPARENTHESES + { + symbol_info* new_symbol = new symbol_info(); + new_symbol->place=newtemp($2->type,curr_scope); + new_symbol->type=$2->type; + // debug("here ",new_symbol->place.first); + new_symbol->code=$2->code+"\n"+new_symbol->place.first+":= ("+$2->place.first+")"; + $$=new_symbol; + } + ; + +postfix_expression + : primary_expression + { + $$=$1; + } + | postfix_expression LBRACKET expression RBRACKET + { + string array_name=$1->name; + symbol_info* find_symbol = lookup_symbol_global(array_name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared variable "+array_name); + } + else{ + if(find_symbol->is_array==false){ + error_list.push_back("Line "+to_string(yylineno)+" : Not an array "+array_name); + } + else{ + string code=$3->code; + qid temp=newtemp(find_symbol->type,curr_scope); + if(find_symbol->type=="int"){ + code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; + } + else if(find_symbol->type=="float"){ + code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; + } + else if(find_symbol->type=="char"){ + code=code+"\n"+temp.first+":= "+"2 * "+$3->place.first; + } + + qid temp2=newtemp(find_symbol->type,curr_scope); + code=code+"\n"+temp2.first+":= *("+$1->place.first+" + "+temp.first+")"; + $$->code=code; + $$->place.first=temp2.first; + } + + } + } + | postfix_expression LPARENTHESES RPARENTHESES + { + symbol_info* find_symbol = lookup_symbol_global($1->name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared function "+$1->name); + } + else{ + std::vector original_list=find_symbol->param_types; + if($1->name=="printf"){ + error_list.push_back("Line "+to_string(yylineno)+" : Empty printf statement"); + } + else if( $1->name=="scanf"){error_list.push_back("Line "+to_string(yylineno)+" : Empty scanf statement");} + else if($1->name=="sizeof"){error_list.push_back("Line "+to_string(yylineno)+" : Sizeof operator cannot be used with function call");} + else if(original_list.size()>0) + { + error_list.push_back("Line "+to_string(yylineno)+" : Size of actual and formal parameter list does not match"); + } + } + qid temp=newtemp($1->type,curr_scope); + if(find_symbol->type!="void"){ + $$->code=$1->code + temp.first+":= CALL "+$1->place.first + "\n"; + $$->place=temp; + $$->type=find_symbol->type; + } + else{ + $$->code=$1->code + "CALL "+$1->place.first + "\n"; + $$->type=find_symbol->type; + } + + } + | postfix_expression LPARENTHESES argument_expression_list RPARENTHESES + { + $$ = new symbol_info(); + symbol_info* find_symbol = lookup_symbol_global($1->name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared function "+$1->name); + } + else{ + std::vector original_list=find_symbol->param_types; + std::vector new_list=$3->param_types; + + if($1->name!="printf" && $1->name!="scanf" && original_list.size()!=new_list.size()){ + error_list.push_back("Line "+to_string(yylineno)+" : Size of actual and formal parameter list does not match"); + } + else{ + for(int i=0;itype,curr_scope); + string middle=""; + for(int i=0;i<$3->param_list.size();i++){ + middle=middle+"PARAM "+$3->param_list[i]+"\n"; + } + if(find_symbol->type!="void"){ + // debug("idhar",$1->code); + $$->code=$1->code + "\n"+ $3->code + "\n"+ middle + temp.first+":= CALL "+$1->place.first + ","+to_string($3->param_list.size()) + "\n"; + $$->place=temp; + $$->type=find_symbol->type; + }else{ + $$->code=$1->code + "\n"+ $3->code + "\n"+middle + "CALL "+$1->place.first + ","+to_string($3->param_list.size()) + "\n"; + $$->type=find_symbol->type; + } + } + | postfix_expression DOT ID + { + symbol_info* find_symbol = lookup_symbol_global($1->name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared variable "+$1->name); + } + else{ + if((find_symbol->type).substr(0,6)=="struct"){ + symbol_info* find_struct; + if((find_symbol->type).substr(0,6)=="struct") find_struct=lookup_symbol_global((find_symbol->type).substr(7), curr_scope); + int flag=0; + string var_type=""; + int offset=0; + for(int i=0;iparam_list.size();i++){ + if(find_struct->param_list[i]==$3){ + var_type=find_struct->param_types[i]; + flag=1; + break; + } + offset+=get_size(find_struct->param_types[i]); + + } + if(flag==0){ + error_list.push_back("Line "+to_string(yylineno)+" : No such attribute found in struct or union "+$1->name); + } + else{ + parsing_stack.push($1->name); + parsing_stack.push($3); + parsing_stack.push(to_string(offset)); + parsing_stack.push(var_type); + + find_symbol->name=$1->name; + $$=find_symbol; + } + + } + else if((find_symbol->type).substr(0,5)=="union") + { + symbol_info* find_struct; + if((find_symbol->type).substr(0,5)=="union") find_struct=lookup_symbol_global((find_symbol->type).substr(6), curr_scope); + int flag=0; + string var_type=""; + int offset=0; + for(int i=0;iparam_list.size();i++){ + if(find_struct->param_list[i]==$3){ + var_type=find_struct->param_types[i]; + flag=1; + break; + } + // offset=max(offset,get_size(find_struct->param_types[i])); + + } + if(flag==0){ + error_list.push_back("Line "+to_string(yylineno)+" : No such attribute found in struct or union "+$1->name); + } + else{ + parsing_stack.push($1->name); + parsing_stack.push($3); + parsing_stack.push(to_string(offset)); + parsing_stack.push(var_type); + + find_symbol->name=$1->name; + $$=find_symbol; + } + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Not a struct or union "+$1->name); + } + + } + } + | postfix_expression LAMBDA_ARROW ID + | postfix_expression INCREMENT + { + if($1->is_array==true){ + string code = get_last_line($1->code); + $$->code=$1->code + "\n" + code + ":= "+code+"+1\n"; + } + else $$->code=$1->code + "\n" + $1->place.first+":= "+$1->place.first+"+1"; + + } + | postfix_expression DECREMENT + { + if($1->is_array==true){ + string code = get_last_line($1->code); + $$->code=$1->code + "\n" + code + ":= "+code+"-1\n"; + } + else $$->code=$1->code + "\n" + $1->place.first+":= "+$1->place.first+"-1"; + } + ; + +argument_expression_list + : assignment_expression + { + if($1->place.first!=""){ + // debug("herrrr ", $1->code); + $$->code=$1->code; + $$->param_types.push_back($1->type); + $$->param_list.push_back($1->place.first); + } + else{ + if($1->name==""){ + $$=new symbol_info($1); + $$->param_types.push_back($1->type); + if($1->type=="int")$$->param_list.push_back(std::to_string(*(int*)($1->ptr))); + else if($1->type=="float")$$->param_list.push_back(std::to_string(*(float*)($1->ptr))); + else if($1->type=="char")$$->param_list.push_back(std::to_string(*(char*)($1->ptr))); + else if($1->type=="char*")$$->param_list.push_back($1->str_val); + } + else{ + symbol_info* find_symbol = lookup_symbol_global($1->name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared variable "+$1->name); + } + else{ + $$=new symbol_info(find_symbol); + $$->param_types.push_back(find_symbol->type); + $$->param_list.push_back(find_symbol->name); + } + } + } + + } + | argument_expression_list COMMA assignment_expression + + { + if($3->place.first!=""){ + $$->code=$1->code + "\n" + $3->code; + //debug("herrrrrrrrrrr ", $3->place.first); + $$->param_types.push_back($1->type); + $$->param_list.push_back($3->place.first); + } + else{ + if($3->name==""){ + $$=new symbol_info($1); + //check 1 or 3 + $$->param_types.push_back($3->type); + if($3->type=="int")$$->param_list.push_back(std::to_string(*(int*)($3->ptr))); + else if($3->type=="float")$$->param_list.push_back(std::to_string(*(float*)($3->ptr))); + else if($3->type=="char")$$->param_list.push_back(std::to_string(*(char*)($3->ptr))); + else if($3->type=="char*")$$->param_list.push_back($3->str_val); + } + else{ + symbol_info* find_symbol = lookup_symbol_global($3->name, curr_scope); + if(find_symbol == nullptr) { + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared variable "+$3->name); + } + else{ + $$=new symbol_info($1); + $$->param_types.push_back(find_symbol->type); + $$->param_list.push_back(find_symbol->name); + } + } + } + + } + ; + +unary_expression + : postfix_expression + { + $$=$1; + } + | INCREMENT unary_expression + | DECREMENT unary_expression + | unary_operator cast_expression + { + symbol_info* new_symbol=new symbol_info(); + string original_type=$2->type; + $$=new_symbol; + + if($1->code=="&"){ + $$->type=original_type+"*"; + } + if($1->code=="*"){ + if(original_type.back()!='*') error_list.push_back("Line "+to_string(yylineno)+" : Trying to dereference non pointer "+$2->name); + else{ + $$->type=original_type; + $$->type.pop_back(); + } + } + + $$->name=$2->name; + $$->code=$2->code+"\n"+$1->code+$2->place.first; + $$->place.first=$1->code+$2->place.first; + } + | SIZEOF unary_expression + | SIZEOF LPARENTHESES type_name RPARENTHESES + ; + +unary_operator + : AMPERSAND { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="ampersand"; + $$->code="&"; + $$->pointer_depth++; + } + | STAR + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="star"; + $$->code="*"; + } + | PLUS + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="plus"; + $$->code="+"; + } + | MINUS + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="minus"; + $$->code="-"; + } + | TILDE + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="tilde"; + $$->code="~"; + } + | EXCLAMATION + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->name="exclamation"; + $$->code="!"; + } + ; + +cast_expression + : unary_expression + { + $$=$1; + } + | LPARENTHESES type_name RPARENTHESES cast_expression + { + $$ = $4; + $$->type = $2->type; + } + ; + +multiplicative_expression + : cast_expression {$$=$1;} + | multiplicative_expression STAR cast_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"*"+$3->place.first; + $$->place=var; + } + | multiplicative_expression DIVIDE cast_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"/"+$3->place.first; + $$->place=var; + } + | multiplicative_expression MODULO cast_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : Modulo operator can only be used with int type"); + } + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"%"+$3->place.first; + $$->place=var; + } + ; + +additive_expression + : multiplicative_expression {$$=$1;} + | additive_expression PLUS multiplicative_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"+"+$3->place.first; + $$->place=var; + } + | additive_expression MINUS multiplicative_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"-"+$3->place.first; + $$->place=var; + } + ; + +shift_expression + : additive_expression {$$=$1;} + | shift_expression LEFT_SHIFT additive_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : Left shift operator can only be used with int type"); + } + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<<"+$3->place.first; + $$->place=var; + } + | shift_expression RIGHT_SHIFT additive_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : Right shift operator can only be used with int type"); + } + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">>"+$3->place.first; + $$->place=var; + } + ; + +relational_expression + : shift_expression {$$=$1;} + | relational_expression LESS_THAN shift_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<"+$3->place.first; + $$->place=var; + } + | relational_expression GREATER_THAN shift_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">"+$3->place.first; + $$->place=var; + } + | relational_expression LESS_EQUALS shift_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<="+$3->place.first; + $$->place=var; + + } + | relational_expression GREATER_EQUALS shift_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">="+$3->place.first; + $$->place=var; + } + ; + +equality_expression + : relational_expression {$$=$1;} + | equality_expression REL_EQUALS relational_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"=="+$3->place.first; + $$->place=var; + } + | equality_expression REL_NOT_EQ relational_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"!="+$3->place.first; + $$->place=var; + } + ; + +and_expression + : equality_expression {$$=$1;} + | and_expression AMPERSAND equality_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : And operator can only be used with int type"); + } + } + ; + +exclusive_or_expression + : and_expression {$$=$1;} + | exclusive_or_expression XOR and_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : XOR operator can only be used with int type"); + } + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"^"+$3->place.first; + $$->place=var; + } + ; + +inclusive_or_expression + : exclusive_or_expression {$$=$1;} + | inclusive_or_expression OR exclusive_or_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : OR operator can only be used with int type"); + } + qid var=newtemp($1->type,curr_scope); + $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"|"+$3->place.first; + $$->place=var; + } + ; + +logical_and_expression + : inclusive_or_expression {$$=$1;} + | logical_and_expression REL_AND inclusive_or_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : AND operator can only be used with int type"); + } + + } + ; + +logical_or_expression + : logical_and_expression {$$=$1;} + | logical_or_expression REL_OR logical_and_expression + { + $$ = $1; + $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; + if($$->type!="int"){ + error_list.push_back("Line "+to_string(yylineno)+" : OR operator can only be used with int type"); + } + } + ; + +conditional_expression + : logical_or_expression {$$=$1;} + | logical_or_expression QUESTION_MARK expression COLON conditional_expression + ; + +assignment_expression + : conditional_expression {$$=$1;} + | unary_expression assignment_operator assignment_expression + { + $$ = new symbol_info(); + symbol_info* find_symbol = lookup_symbol_global($1->name, curr_scope); + if(find_symbol != nullptr) { + if((find_symbol->type).substr(0,6)=="struct" || (find_symbol->type).substr(0,5)=="union"){ + if(parsing_stack.top()==$3->type){ + //Semantic Analysis + parsing_stack.pop(); + string offset = parsing_stack.top(); + parsing_stack.pop(); + string attr=parsing_stack.top(); + parsing_stack.pop(); + string struct_inst_name=parsing_stack.top(); + parsing_stack.pop(); + symbol_info* find_struct=lookup_symbol_global(struct_inst_name, curr_scope); + find_struct->param_list.push_back(attr); + find_struct->struct_attr_values.push_back($3); + //checkerror + //3AC code kabhi toh karenge + qid var=newtemp(find_symbol->type,curr_scope); + string tempo=""; + tempo=tempo+$1->code; + tempo=tempo+"\n"+$3->code; + tempo=tempo+"\n"+var.first+":= "+$1->place.first+"+"+offset; + tempo=tempo+"\n*"+var.first+":= "+$3->place.first; + $$->code=$$->code + tempo; + $$->place=var; + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment of struct or union attributes"); + } + } + else{ + if(find_symbol->type=="char*"){ + error_list.push_back("Line "+to_string(yylineno)+" : char* is not modifiable"); + } + if(min(type_priority[$1->type],type_priority[$3->type])==0 && $1->type!=$3->type){ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + } + if(type_priority[$1->type]type]){ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in assignment"); + } + string third_code=$3->code; + string first_code=$1->code; + if(min(type_priority[$1->type],type_priority[find_symbol->type])>0) find_symbol->type=priority_to_type[max(type_priority[find_symbol->type],type_priority[$3->type])]; + + find_symbol->name=$1->name; + find_symbol->place=$1->place; + find_symbol->code=$1->code + "\n" + $3->code + "\n" + $1->place.first + ":= " + $3->place.first; + + //3AC code + if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='+' && $3->place.first[0]!='-' && $3->place.first[0]!='~' && $3->place.first[0]!='!') + { + $3->code=""; + } + int flag=0; + if($1->place.first[0]=='*'){ + int count_init_starr=count_init_star($1->place.first); + if(count_init_starr>1){ + flag=1; + string code=""; + qid temp=newtemp($1->type,curr_scope); + string prev=($1->place.first).erase(0,count_init_starr); + for(int i=0;itype,curr_scope); + } + code=code+"\n"+"*"+prev+":= "+$3->place.first; + $$->code=$1->code+"\n"+$3->code+"\n"+code; + $$->place=temp; + } + } + if($3->place.first[0]=='*'){ + int count_init_starr=count_init_star($3->place.first); + if(count_init_starr>1){ + flag=1; + string code=""; + qid temp=newtemp($3->type,curr_scope); + string prev=($3->place.first).erase(0,count_init_starr); + for(int i=0;itype,curr_scope); + } + code=code+"\n"+$1->place.first+":= *"+temp.first; + $$->code=$1->code+"\n"+$3->code+"\n"+code; + $$->place=$1->place; + } + } + if(flag==0){ + if(find_symbol->is_array==true){ + string code=remove_equal(first_code); + $$->code=$3->code+"\n"+code+":= "+$3->place.first+"\n"; + } + else{ + string op=$2->code; + string tcode=get_assignment_statement($1->place.first,op,$3->place.first); + + if(tcode=="error"){ + error_list.push_back("Line "+to_string(yylineno)+" : Invalid assignment operator"); + } + $$->code=$1->code + "\n" + third_code + "\n" + tcode+"\n"; + $$->place=$1->place; + } + } + } + + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Undeclared symbol "+$1->name); + } + } + ; + +assignment_operator + : EQUALS {$$=new symbol_info("","equals",nullptr,0); $$->code="=";} + | ASSIGN_STAR {$$=new symbol_info("","assign_star",nullptr,0); $$->code="*=";} + | ASSIGN_DIV {$$=new symbol_info("","assign_div",nullptr,0); $$->code="/=";} + | ASSIGN_MOD {$$=new symbol_info("","assign_mod",nullptr,0); $$->code="%=";} + | ASSIGN_PLUS {$$=new symbol_info("","assign_plus",nullptr,0); $$->code="+=";} + | ASSIGN_MINUS {$$=new symbol_info("","assign_minus",nullptr,0); $$->code="-=";} + | LEFT_SHIFT_EQ {$$=new symbol_info("","left_shift_eq",nullptr,0); $$->code="<<=";} + | RIGHT_SHIFT_EQ {$$=new symbol_info("","right_shift_eq",nullptr,0); $$->code=">>=";} + | ASSIGN_AND {$$=new symbol_info("","assign_and",nullptr,0); $$->code="&=";} + | ASSIGN_XOR {$$=new symbol_info("","assign_xor",nullptr,0); $$->code="^=";} + | ASSIGN_OR {$$=new symbol_info("","assign_or",nullptr,0); $$->code="|=";} + ; + +expression + : assignment_expression + { + $$=$1; + } + | expression COMMA assignment_expression + { + $$->code=$1->code + "\n" + $3->code; + } + ; + +constant_expression + : conditional_expression{$$=$1;} + ; + +declaration + : declaration_specifiers SEMICOLON + | declaration_specifiers init_declarator_list SEMICOLON + { + if(std::string($1).substr(0, 7) == "typedef"){ + string new_type=parsing_stack.top(); + parsing_stack.pop(); + string old_type=std::string($1).substr(8); + type_def_mapping[new_type]=old_type; + } + + + int flag=0; + string code=""; + symbol_info* nsss=new symbol_info(); + $$=nsss; + while (!parsing_stack.empty()) { + std::string top_symbol = parsing_stack.top(); + + int depth = pointer_info.top(); + + parsing_stack.pop(); + pointer_info.pop(); + if (curr_scope->symbol_map[top_symbol]->type!= ""){ + if(depth!=count_star(curr_scope->symbol_map[top_symbol]->type)){ + error_list.push_back("Line "+to_string(yylineno)+" : Pointer depth mismatch"); + flag = 1; + } + + if (type_priority[$1] < type_priority[curr_scope->symbol_map[top_symbol]->type]) { + + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in declaration"); + flag = 1; + } + + curr_scope->symbol_map[top_symbol]->name = top_symbol; + if(type_priority[$1]>0 && type_priority[curr_scope->symbol_map[top_symbol]->type]>0) curr_scope->symbol_map[top_symbol]->type = priority_to_type[max(type_priority[$1], type_priority[curr_scope->symbol_map[top_symbol]->type])]; + + // debug("declaration specifiers121 ", $2->code); + + + code=$2->code; + + } else { + curr_scope->symbol_map[top_symbol]->type = $1; + for(int i=0;isymbol_map[top_symbol]->type+="*"; + } + curr_scope->symbol_map[top_symbol]->name = top_symbol; + curr_scope->symbol_map[top_symbol]->pointer_depth = depth; + + if((curr_scope->symbol_map[top_symbol]->type).substr(0,6)=="struct") + { + string struct_name=(curr_scope->symbol_map[top_symbol]->type).substr(7); + symbol_info* find_struct=lookup_symbol_global(struct_name, curr_scope); + int size=0; + for(int i=0;iparam_list.size();i++){ + size+=get_size(find_struct->param_types[i]); + } + //debug("Struct size: ",to_string(size)); + code=code+top_symbol+":= alloc " +to_string(size)+"\n"; + + + } + else if((curr_scope->symbol_map[top_symbol]->type).substr(0,5)=="union") + { + string struct_name=(curr_scope->symbol_map[top_symbol]->type).substr(6); + symbol_info* find_struct=lookup_symbol_global(struct_name, curr_scope); + int size=0; + for(int i=0;iparam_list.size();i++){ + size=max(size,get_size(find_struct->param_types[i])); + } + //debug("Struct size: ",to_string(size)); + code=code+top_symbol+":= alloc " +to_string(size)+"\n"; + + + } + symbol_info* new_symbol = new symbol_info(); + new_symbol = new symbol_info($2); + $$=new_symbol; + + } + + } + // debug("declaration specifiers ", to_string(parsing_stack.size())); + $$->code=code; + + //debug("Declaration: ",curr_scope->symbol_map["p"]->code); + } + ; + + +declaration_specifiers + : storage_class_specifier + | storage_class_specifier declaration_specifiers + { + // debug("storage class specifier ", $1); + // debug("storage class specifier ", $2); + char* buf = (char*)malloc(strlen($1) + strlen($2) + 2); // 1 for comma, 1 for null terminator + sprintf(buf, "%s,%s", $1, $2); + $$ = buf; + // debug("storage class specifier ", $$); + + } + | type_specifier {$$=$1;} + | type_qualifier + | type_qualifier declaration_specifiers + ; + +init_declarator_list + : init_declarator { + $$ = $1; + } + | init_declarator_list COMMA init_declarator { + $$=$3; + $$->code = $1->code + "\n" + $3->code; + } + ; + +init_declarator + : declarator { + if(lookup_symbol_global($1->name, curr_scope)!=nullptr){ + error_list.push_back("Line "+to_string(yylineno)+" : Redeclaration error "+$1->name); + } + symbol_info* new_symbol = new symbol_info(); + new_symbol=$1; + curr_scope->symbol_map[$1->name]=new_symbol; + curr_scope->symbol_map[$1->name]->name=$1->name; + if($1->is_array==true){ + curr_scope->symbol_map[$1->name]->is_array=true; + curr_scope->symbol_map[$1->name]->array_length=$1->array_length; + if($1->type=="int" || $1->type=="float"){ + string code=$1->name+":= alloc " +to_string(4*$1->array_length); + $$->code=code; + } + else if($1->type=="char"){ + string code=$1->name+":= alloc " +to_string(2*$1->array_length); + $$->code=code; + } + } + + curr_scope->symbol_map[$1->name]->type=$1->type; + + $$ =new_symbol; + + parsing_stack.push($1->name.c_str()); + pointer_info.push($1->pointer_depth); + } + | declarator EQUALS initializer { + if(lookup_symbol_local($1->name, curr_scope)!=nullptr){ + error_list.push_back("Line "+to_string(yylineno)+" : Redeclaration error "+$1->name); + } + + curr_scope->symbol_map[$1->name]=$3; + parsing_stack.push($1->name.c_str()); + pointer_info.push($1->pointer_depth); + + if($1->is_array){ + if($3->int_array.size() > $1->array_length){ + error_list.push_back("Line "+to_string(yylineno)+" : Array size mismatch "+$1->name); + } + else{ + $1->int_array = $3->int_array; + $1->type = $3->type; + curr_scope->symbol_map[$1->name]->is_array=true; + string code=$1->name+":= alloc "; + if($1->type=="int" || $1->type=="float"){ + code=code+to_string(4*$1->array_length); + } + else if($1->type=="char"){ + code=code+to_string(2*$1->array_length); + } + for(int i=0;i<$1->array_length;i++){ + qid temp=newtemp($1->type,curr_scope); + code=code+"\n"+temp.first+":= "+to_string(i)+"*"; + if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(int*)($1->int_array[i]->ptr)); + else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(float*)($1->int_array[i]->ptr)); + else if($1->type=="char") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+char(*(char*)($1->int_array[i]->ptr)); + else if($1->type=="char*") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+$1->int_array[i]->str_val; + } + $$->code=code; + } + } + if($1->is_array==false){ + $$ = $1; + if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='-' && $3->place.first[0]!='!'){ + $3->code=""; + } + + $$->code=$3->code+"\n"+$1->place.first+":= "+$3->place.first; + $$->place=$1->place; + } + } + ; + +storage_class_specifier + : TYPEDEF + | EXTERN + | STATIC + | AUTO + | REGISTER + ; + +type_specifier + : VOID {$$=strdup("void");} + | CHAR {$$=strdup("char");} + | SHORT {$$=strdup("short");} + | INT {$$=strdup("int");} + | LONG {$$=strdup("long");} + | FLOAT {$$=strdup("float");} + | DOUBLE {$$=strdup("double");} + | SIGNED {$$=strdup("signed");} + | UNSIGNED {$$=strdup("unsigned");} + | struct_or_union_specifier {$$=$1;} + | enum_specifier + | ID { + if(type_def_mapping.find($1) != type_def_mapping.end()){ + $$=strdup(type_def_mapping[$1].c_str()); + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Typedef error "+$1); + } + } + ; + +struct_or_union_specifier + : struct_or_union ID LBRACE struct_declaration_list RBRACE + { + symbol_info* new_symbol=new symbol_info(); + new_symbol->type = $1; + new_symbol->param_list = $4->param_list; + new_symbol->param_types = $4->param_types; + curr_scope->symbol_map[$2]=new_symbol; + } + | struct_or_union LBRACE struct_declaration_list RBRACE + | struct_or_union ID + { + symbol_info* find_symbol = lookup_symbol_global($2, curr_scope); + if (find_symbol != nullptr) { + if (find_symbol->type == "struct" || find_symbol->type == "union") { + std::string temp = std::string($1) + " " + std::string($2); + $$ = strdup(temp.c_str()); + } else { + error_list.push_back("Line "+to_string(yylineno)+" : Variable not of type struct or union"); + } + } else { + error_list.push_back("Line "+to_string(yylineno)+" : Struct or Union not declared "+$2); + } + } + ; + +struct_or_union + : STRUCT {$$=strdup("struct");} + | UNION {$$=strdup("union");} + ; + +struct_declaration_list + : struct_declaration {$$=$1;} + | struct_declaration_list struct_declaration + { + $$=$1; + for(int i=0;i<$2->param_list.size();i++){ + $$->param_list.push_back($2->param_list[i]); + $$->param_types.push_back($2->param_types[i]); + } + + } + ; + +struct_declaration + : specifier_qualifier_list struct_declarator_list SEMICOLON + { + $$=$2; + for(auto it: $2->param_list) + { + //cerr<type = $1; + + curr_scope->symbol_map[it]=x; + $$->param_types.push_back($1); + } + + + + } + ; + +specifier_qualifier_list + : type_specifier + | type_qualifier + ; + +struct_declarator_list + : struct_declarator + { + $$=$1; + $$->param_list.push_back($1->name); + } + | struct_declarator_list COMMA struct_declarator + { + $$=$1; + $$->param_list.push_back($3->name); + } + ; + +struct_declarator + : declarator {$$=$1;} + | COLON constant_expression + | declarator COLON constant_expression + ; + +enum_specifier + : ENUM LBRACE enumerator_list RBRACE + | ENUM ID LBRACE enumerator_list RBRACE + | ENUM ID + ; + +enumerator_list + : enumerator + | enumerator_list COMMA enumerator + ; + +enumerator + : ID + | ID EQUALS constant_expression + ; + +type_qualifier + : CONST + | VOLATILE + ; + +declarator + : pointer direct_declarator { + $$=$2; + $$->pointer_depth=$1->pointer_depth; + } + | direct_declarator { + $$=$1; + } + ; + +direct_declarator + : ID + { + symbol_info* x=new symbol_info(); + x->name = $1; + x->place.first=$1; + $$=x; + } + | LPARENTHESES declarator RPARENTHESES + | direct_declarator LBRACKET constant_expression RBRACKET + { + $$->is_array = true; + if($3->type=="int"){ + $$->array_length = *(int*)($3->ptr); + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Array size not an integer "+$1->name); + $$->array_length=100; + } + } + | direct_declarator LBRACKET RBRACKET + { + $$->is_array = true, $$->array_length = 100; + } + | direct_declarator LPARENTHESES parameter_type_list RPARENTHESES + { + symbol_info* new_symbol=new symbol_info(); + new_symbol->type=$1->type; + new_symbol->parameter_no=$3->parameter_no; + new_symbol->param_types=$3->param_types; + new_symbol->param_list=$3->param_list; + new_symbol->is_param_list=$3->is_param_list; + new_symbol->name=$1->name; + curr_scope->symbol_map[$1->name]=new_symbol; + + $$=new_symbol; + } + | direct_declarator LPARENTHESES identifier_list RPARENTHESES + | direct_declarator LPARENTHESES RPARENTHESES + { + symbol_info* new_symbol=new symbol_info(); + new_symbol->type=$1->type; + new_symbol->parameter_no=0; + new_symbol->param_types={}; + new_symbol->param_list={}; + new_symbol->name=$1->name; + new_symbol->is_param_list=false; + curr_scope->symbol_map[$1->name]=new_symbol; + $$=new_symbol; + } + ; + +pointer + : STAR {$$=new symbol_info(); $$->pointer_depth=1;} + | STAR type_qualifier_list + | STAR pointer {$$=$2; $$->pointer_depth++;} + | STAR type_qualifier_list pointer + ; + +type_qualifier_list + : type_qualifier + | type_qualifier_list type_qualifier + ; + + +parameter_type_list + : parameter_list + { + symbol_info* new_symbol=new symbol_info(); + $$->parameter_no=$1->parameter_no; + $$->is_param_list=$1->is_param_list; + $$->param_types=$1->param_types; + $$->param_list=$1->param_list; + $$=$1; + + } + | parameter_list COMMA VARIABLE_ARGS + ; + +parameter_list + : parameter_declaration + { + $$->is_param_list=true; + $$->parameter_no=1; + $$->param_types.push_back($1->type); + $$->param_list.push_back($1->name); + } + | parameter_list COMMA parameter_declaration + { + $$->is_param_list=true; + $$->parameter_no=$1->parameter_no+$3->parameter_no; + $$->param_types.push_back($3->type); + $$->param_list.push_back($3->name); + } + + ; + +parameter_declaration + : declaration_specifiers declarator + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->type=$1; + $$->name=$2->name; + $$->parameter_no=1; + } + | declaration_specifiers abstract_declarator{ + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->type=$1; + $$->name=$2->name; + } + | declaration_specifiers{ + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->type=$1; + $$->name=""; + } + ; + +identifier_list + : ID + | identifier_list COMMA ID + ; + +type_name + : specifier_qualifier_list + | specifier_qualifier_list abstract_declarator + ; + +abstract_declarator + : pointer + | direct_abstract_declarator + | pointer direct_abstract_declarator + ; + +direct_abstract_declarator + : LPARENTHESES abstract_declarator RPARENTHESES + | LBRACKET RBRACKET + | LBRACKET constant_expression RBRACKET + | direct_abstract_declarator LBRACKET RBRACKET + | direct_abstract_declarator LBRACKET constant_expression RBRACKET + | LPARENTHESES RPARENTHESES + | LPARENTHESES parameter_type_list RPARENTHESES + | direct_abstract_declarator LPARENTHESES RPARENTHESES + | direct_abstract_declarator LPARENTHESES parameter_type_list RPARENTHESES + ; + +initializer + : assignment_expression { + $1->int_array.push_back($1); + $$=$1; + } + | LBRACE initializer_list RBRACE {$$ = $2;} + | LBRACE initializer_list COMMA RBRACE {$$ = $2;} + ; + +initializer_list + : initializer {$$ = $1;} + | initializer_list COMMA initializer { + if($1->type != $3->type){ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in initializer list"); + } + else{ + $1->int_array.push_back($3); + } + $$ = $1; + } + ; + +statement + : labeled_statement + { + $$=$1; + + } + | compound_statement + { + $$=$1; + } + | expression_statement + { + $$=$1; + } + | selection_statement{$$=$1;} + | iteration_statement{$$=$1;} + | jump_statement{$$=$1;} + + ; + +labeled_statement + : ID COLON statement + { + if(lookup_symbol_global($1, curr_scope)!=nullptr){ + error_list.push_back("Line "+to_string(yylineno)+" : Label Redeclaration error "+$1); + } + else{ + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + if(goto_list.find($1)!=goto_list.end()){ + + string label=goto_list[$1]; + // debug("labellllll", $3->code); + $$->code=label+":\n"+$3->code; + // debug("label", $$->code); + } + else{ + //debug("labellllll", $3->code); + string label=newlabel(); + $$->code=label+":\n"+$3->code; + + goto_list[$1]=label; + } + curr_scope->symbol_map[$1]=new symbol_info(); + curr_scope->symbol_map[$1]->name=$1; + curr_scope->symbol_map[$1]->type="label"; + } + } + | ID COLON declaration + { + + if(lookup_symbol_global($1, curr_scope)!=nullptr){ + error_list.push_back("Line "+to_string(yylineno)+" : Label Redeclaration error "+$1); + } + else{ + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + if(goto_list.find($1)!=goto_list.end()){ + + string label=goto_list[$1]; + // debug("labellllll", $3->code); + $$->code=label+":\n"+$3->code; + // debug("label", $$->code); + } + else{ + //debug("labellllll", $3->code); + string label=newlabel(); + $$->code=label+":\n"+$3->code; + + goto_list[$1]=label; + } + curr_scope->symbol_map[$1]=new symbol_info(); + curr_scope->symbol_map[$1]->name=$1; + curr_scope->symbol_map[$1]->type="label"; + } + } + | ID COLON + | CASE constant_expression COLON statement + { + string label=newlabel(); + $$->code = label +":\n"+ $4->code; + case_list.top().push({$2->code,label}); + + } + | DEFAULT COLON statement + { + string label=newlabel(); + case_list.top().push({"default",label}); + $$->code = label+":\n"+ $3->code; + + } + ; + +compound_statement + : LBRACE RBRACE + | LBRACE + { + curr_scope = new scoped_symtab(curr_scope); + for(int i=0;isymbol_map[var_name[i]]=new symbol_info(); + curr_scope->symbol_map[var_name[i]]->type=type_list[i]; + curr_scope->symbol_map[var_name[i]]->name=var_name[i]; + } + var_name={}; + type_list={}; + } + statement_declaration_list RBRACE + + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code; + $$->is_return=$3->is_return; + $$->return_type=$3->return_type; + all_scopes.push_back(curr_scope);curr_scope = curr_scope->parent; + } + | LBRACE {curr_scope = new scoped_symtab(curr_scope);} statement_list RBRACE {symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code; + all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} + | LBRACE {curr_scope = new scoped_symtab(curr_scope);} declaration_list RBRACE {symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code; + all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} + | LBRACE {curr_scope = new scoped_symtab(curr_scope);} declaration_list statement_list RBRACE {symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code+"\n"+$4->code;all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} + ; + +statement_declaration_list + : statement_list statement_declaration_list + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$1->code + "\n" + $2->code; + $$->is_return=($1->is_return)|($2->is_return); + // if($1->return_type!="") $$->return_type=$1->return_type; + // else $$->return_type=$2->return_type; + + + + } + | declaration_list statement_declaration_list + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$1->code + "\n" + $2->code; + $$->is_return=$2->is_return; + // $$->return_type=$2->return_type; + + + + } + | statement_list + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$1->code; + $$->is_return=$1->is_return; + //dikkat badi hai + // $$->return_type=$1->return_type; + } + | declaration_list + { + $$=$1; + } + ; + +declaration_list + : declaration + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$1->code; + //debug("declaration_list", $$->code); + } + | declaration_list declaration + { + $$->code=$1->code + "\n" + $2->code; + } + | error SEMICOLON {yyerrok;} + ; + +statement_list + : statement { + $$=$1; + } + | statement_list statement + { + $$->is_return=($1->is_return)|($2->is_return); + // if($1->return_type!="") $$->return_type=$1->return_type; + // else $$->return_type=$2->return_type; + $$->code=$1->code + "\n" + $2->code; + + } + | error SEMICOLON {yyerrok;} + ; + +expression_statement + : SEMICOLON + | expression SEMICOLON {$$=$1;} + ; + +selection_statement + : IF LPARENTHESES expression RPARENTHESES statement + { + string truelabel=newlabel(); + string falselabel=newlabel(); + $$->code=$3->code+"\n"+"if("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+falselabel+":\n"; + } + | IF LPARENTHESES expression RPARENTHESES statement ELSE statement + { + string truelabel=newlabel(); + string falselabel=newlabel(); + string endlabel=newlabel(); + $$->code=$3->code+"\n"+"if("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+endlabel+"\n"+falselabel+":\n"+$7->code+"\n"+endlabel+":\n"; + } + | SWITCH{queue> q; + case_list.push(q); + }LPARENTHESES expression RPARENTHESES statement + { + string str=""; + while(!case_list.top().empty()){ + string label=case_list.top().front().second; + string case_value=case_list.top().front().first; + case_list.top().pop(); + if(case_value=="default") + { + str+="goto "+label+"\n"; + } + else str+="if("+$4->place.first+"=="+case_value+") goto "+label+"\n"; + } + string endlabel=newlabel(); + $$->code= $4->code+"\n"+str+"\n"+$6->code+"\n"+endlabel+":\n"; + $$->code=replace_break_continue($$->code,endlabel," ",1); + case_list.pop(); + } + ; + +iteration_statement + : WHILE LPARENTHESES expression RPARENTHESES statement + { + string startlabel=newlabel(); + string endlabel=newlabel(); + string truelabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=startlabel+":\n"+$3->code+"\n"+"if("+$3->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + } + | DO statement WHILE LPARENTHESES expression RPARENTHESES SEMICOLON + { + string startlabel=newlabel(); + string endlabel=newlabel(); + string truelabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=startlabel+":\n"+$2->code+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"if("+$5->place.first+") goto "+startlabel+"\n"+"goto "+endlabel+"\n"+endlabel+":\n"; + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + } + | FOR LPARENTHESES expression_statement expression_statement RPARENTHESES statement + { + string startlabel=newlabel(); + string endlabel=newlabel(); + string truelabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$6->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + } + | FOR LPARENTHESES expression_statement expression_statement expression RPARENTHESES statement + { + string startlabel=newlabel(); + string endlabel=newlabel(); + string truelabel=newlabel(); + string updatelabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + + $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$7->code+"\n"+updatelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=replace_break_continue($$->code,endlabel,updatelabel,0); + + } + ; + +jump_statement + : GOTO ID SEMICOLON + { + //idhar ID ko symtab me insert karna he + if(goto_list.find($2)==goto_list.end()){ + string label=newlabel(); + goto_list[$2]=label; + symbol_info* new_symbol=new symbol_info(); + new_symbol->code="goto "+label+"\n"; + $$=new_symbol; + } + else{ + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + string label=goto_list[$2]; + $$->code="goto "+label+"\n"; + // debug("goto", $$->code); + } + + // debug("goto1111 ",new_symbol->code); + + + // cerr << "goto\n"; + } + | CONTINUE SEMICOLON + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->is_continue=true; + $$->code="\n continue \n"; + } + | BREAK SEMICOLON + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->is_break=true; + $$->code="\n break \n"; + } + | RETURN SEMICOLON + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->is_return=true; + $$->return_type="void"; + $$->code="\nRETURN\n"; + } + | RETURN expression SEMICOLON + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->is_return=true; + $$->return_type=$2->type; + $$->code=$2->code + "\nRETURN "+$2->place.first+"\n"; + //debug("return ",$$->code); + } + ; + +start_symbol: translation_unit +{ + //cerr<<"-----------------"<code<<"----------------"<code); +} +; +translation_unit + : external_declaration + { + $$->code=$1->code; + } + | translation_unit external_declaration + { + $$->code=$1->code+$2->code; + } + | + ; + +external_declaration + : function_definition + { + $$=$1; + } + | declaration + ; + +function_definition + : declaration_specifiers declarator declaration_list compound_statement + | declaration_specifiers declarator + { + var_name=$2->param_list; + type_list=$2->param_types; + curr_scope->symbol_map[$2->name]->type=$1; + } + compound_statement + { + if(strcmp($1,"void")==0){ + + // if($4->return_type!="void"){ + // error_list.push_back("Line "+to_string(yylineno)+" : Return type not matched"); + // } + } + else{ + if($4->is_return==0){ + error_list.push_back("Line "+to_string(yylineno)+" : Missing return statement"); + } + else{ + // if($4->return_type!=$1){ + // error_list.push_back("Line "+to_string(yylineno)+" : Return type not matched"); + // } + } + } + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code="\nFUNC_BEGIN "+$2->name+"\n"; + for(int i=0;i<$2->param_list.size();i++){ + $$->code=$$->code+"param"+std::to_string(i)+" := PARAM\n"; + } + for(int i=0;i<$2->param_list.size();i++){ + $$->code=$$->code+$2->param_list[i]+" := param"+std::to_string(i)+"\n"; + } + $$->code=$$->code+$4->code+"\nFUNC_END "+$2->name+"\n"; + + } + | declarator declaration_list compound_statement + | declarator compound_statement + ; +%% + +void yyerror(const char *s) { + fprintf(stderr, "Error at line %d: %s\n", yylineno, s); +} + +void print_errors() { + if(error_list.size()==0){ + cerr<<"======================================================================"<symbol_map) { + if (!it.second) { // Check if symbol_info* is null (shouldn't happen after your fix) + printf("| %-15s | %-20s | %-7s | %-10s |\n", + it.first.c_str(), "uninitialized", "N/A", "N/A"); + continue; + } + + std::string valueStr = "N/A"; // Default value + int size = 0; // Default size + + // Assign size based on type + if (it.second->type == "int") { + size = 4; + if (it.second->ptr) valueStr = std::to_string(*(int*)(it.second->ptr)); + } else if (it.second->type == "float") { + size = 4; + if (it.second->ptr) valueStr = std::to_string(*(float*)(it.second->ptr)); + } else if (it.second->type == "char") { + size = 2; + valueStr = it.second->str_val; + } else if (it.second->type == "long") { + size = 8; + if (it.second->ptr) valueStr = std::to_string(*(long*)(it.second->ptr)); + } else { + size = 0; // Unknown type + } + + printf("| %-15s | %-20s | %-7d | %-10s |\n", + it.first.c_str(), // Identifier + it.second->type.c_str(), // Type + size, // Size + valueStr.c_str()); // Value + + if((it.second->type).substr(0,6)=="struct"){ + for(int i=0;istruct_attr_values.size();i++){ + printf("| %-15s | %-20s | %-7d | %-10s |\n", + (it.first+"."+it.second->param_list[i]).c_str(), // Identifier + it.second->struct_attr_values[i]->type.c_str(), // Type + 4, // Size + std::to_string(*(int*)(it.second->struct_attr_values[i]->ptr)).c_str()); // Value + } + } + if((it.second->type).substr(0,5)=="union"){ + for(int i=0;istruct_attr_values.size();i++){ + printf("| %-15s | %-20s | %-7d | %-10s |\n", + (it.first+"."+it.second->param_list[i]).c_str(), // Identifier + it.second->struct_attr_values[i]->type.c_str(), // Type + 4, // Size + std::to_string(*(int*)(it.second->struct_attr_values[i]->ptr)).c_str()); // Value + } + } + } + printf("-----------------------------------------------------------------\n"); + // cerr<<"Scope is here"<symbol_map["printf"]=new_symbol; + curr_scope->symbol_map["scanf"]=new_symbol; + yyparse(); + print_scope_table(); +} diff --git a/Assignment4/src/scanner.l b/Assignment4/src/scanner.l new file mode 100644 index 0000000..a898ff4 --- /dev/null +++ b/Assignment4/src/scanner.l @@ -0,0 +1,288 @@ +%option noyywrap +%{ + #include "parser.tab.h" + #include "include/utility.h" + #include + #include + #include + + extern int yylineno; + extern int yylex(); + extern YYSTYPE yylval; + + #define MAX_ERRORS 100 + + char *errors[MAX_ERRORS]; + int error_count = 0; + + void error_call(const char *s, int t) { + if (error_count >= MAX_ERRORS) { + fprintf(stderr, "Error buffer full!\n"); + return; + } + + char buffer[256]; + if (t == 0) { + snprintf(buffer, sizeof(buffer), "Invalid identifier: %s in line no. %d", s, yylineno); + } else { + snprintf(buffer, sizeof(buffer), "Invalid token: %s in line no. %d", s, yylineno); + } + + errors[error_count] = strdup(buffer); + error_count++; + } +%} + +%option yylineno + +DELIM [ \t\n\r] +WS {DELIM}+ + +INCLUDE "#include"[ \t]*("<"[^">"]+">"|"\""[^\"]+"\"") +AUTO "auto" +STRUCT "struct" +BOOL "bool" +BREAK "break" +CASE "case" +CONTINUE "continue" +GOTO "goto" +DO "do" +DEFAULT "default" +IF "if" +ELSE "else" +FOR "for" +CONST "const" +TRUE "true" +FALSE "false" +STATIC "static" +SWITCH "switch" +WHILE "while" +VOID "void" +RETURN "return" +SIZEOF "sizeof" +FLOAT "float" +INT "int" +DOUBLE "double" +EXTERN "extern" +SHORT "short" +LONG "long" +CHAR "char" +ENUM "enum" +REGISTER "register" +SIGNED "signed" +TYPEDEF "typedef" +UNION "union" +UNSIGNED "unsigned" +VOLATILE "volatile" + +CLASS "class" +PUBLIC "public" +PRIVATE "private" +PROTECTED "protected" +NULLPTR "nullptr" +NAMESPACE "namespace" +VIRTUAL "virtual" +CATCH "catch" + +NOTLETTER [^A-Za-z_] +LETTER [A-Za-z] +DIGIT [0-9] +HEXA_DIGIT [a-fA-F0-9] +EXP [Ee][+-]?{DIGIT}+ +FS (f|F|l|L) +IS (u|U|l|L)* + + +ID ({LETTER}|_)({LETTER}|_|{DIGIT})* +HEXA_LITERAL 0[xX]{HEXA_DIGIT}+{IS}? +OCTAL_LITERAL 0[0-7]+{IS}? +DECIMAL_LITERAL {DIGIT}+{IS}? +EXP_LITERAL {DIGIT}+[Ee][+-]?{DIGIT}+{FS}? +FLOAT_LITERAL {DIGIT}*"."{DIGIT}+({EXP})?{FS}? + +STRING_LITERAL L?\"(\\.|[^\\"])*\" +CHARACTER_LITERAL (L|u8|u|U)?'((\\.)|[^'\\])' +SINCMNT \/\/.* +MULCMNT "/*"([^*]|\*+[^*/])*\*+"/" + + +RBRACE "\}" +LBRACE "\{" +LBRACKET "\[" +RBRACKET "\]" +LPARENTHESES "\(" +RPARENTHESES "\)" +DOT "\." +COMMA "," +COLON ":" +SEMICOLON ";" +PLUS "\+" +MINUS "-" +STAR "\*" +DIVIDE "\/" +MODULO "%" +AMPERSAND "&" +OR "\|" +XOR "\^" +EXCLAMATION "!" +TILDE "~" +EQUALS "=" +LESS_THAN "<" +GREATER_THAN ">" +QUESTION_MARK "\?" +INCREMENT "\+\+" +DECREMENT "--" +REL_AND "&&" +REL_OR "\|\|" +REL_EQUALS "==" +REL_NOT_EQ "!=" +LESS_EQUALS "<=" +GREATER_EQUALS ">=" +ASSIGN_PLUS "\+=" +ASSIGN_MINUS "-=" +ASSIGN_STAR "\*=" +ASSIGN_DIV "\/=" +ASSIGN_MOD "%=" +ASSIGN_AND "&=" +ASSIGN_OR "\|=" +ASSIGN_XOR "\^=" +LEFT_SHIFT "<<" +LEFT_SHIFT_EQ "<<=" +RIGHT_SHIFT ">>" +RIGHT_SHIFT_EQ "\>>=" +LAMBDA_ARROW "->" +VARIABLE_ARGS "..." + +INVALID_ID (({DIGIT})+({LETTER}|_)*|{DIGIT}+{LETTER}+(\.{DIGIT}*)?) + +%% +{WS} {} +{INCLUDE} {yylval.str = strdup(yytext); return INCLUDE; } +{AUTO} { yylval.str = strdup(yytext); return AUTO; } +{STRUCT} { yylval.str = strdup(yytext); return STRUCT; } +{BOOL} { yylval.str = strdup(yytext); return BOOL; } +{BREAK} { yylval.str = strdup(yytext); return BREAK; } +{CASE} { yylval.str = strdup(yytext); return CASE; } +{CONTINUE} { yylval.str = strdup(yytext); return CONTINUE; } +{GOTO} { yylval.str = strdup(yytext); return GOTO; } +{DO} { yylval.str = strdup(yytext); return DO; } +{DEFAULT} { yylval.str = strdup(yytext); return DEFAULT; } +{IF} { yylval.str = strdup(yytext); return IF; } +{ELSE} { yylval.str = strdup(yytext); return ELSE; } +{FOR} { yylval.str = strdup(yytext); return FOR; } +{CONST} { yylval.str = strdup(yytext); return CONST; } +{TRUE} { yylval.str = strdup(yytext); return TRUE; } +{FALSE} { yylval.str = strdup(yytext); return FALSE; } +{STATIC} { yylval.str = strdup(yytext); return STATIC; } +{SWITCH} { yylval.str = strdup(yytext); return SWITCH; } +{WHILE} { yylval.str = strdup(yytext); return WHILE; } +{VOID} { yylval.str = strdup(yytext); return VOID; } +{RETURN} { yylval.str = strdup(yytext); return RETURN; } +{SIZEOF} { yylval.str = strdup(yytext); return SIZEOF; } +{FLOAT} { yylval.str = strdup(yytext); return FLOAT; } +{INT} { yylval.str = strdup(yytext); return INT; } +{DOUBLE} { yylval.str = strdup(yytext); return DOUBLE; } +{EXTERN} { yylval.str = strdup(yytext); return EXTERN; } +{SHORT} { yylval.str = strdup(yytext); return SHORT; } +{LONG} { yylval.str = strdup(yytext); return LONG; } +{CHAR} { yylval.str = strdup(yytext); return CHAR; } +{ENUM} { yylval.str = strdup(yytext); return ENUM; } +{REGISTER} { yylval.str = strdup(yytext); return REGISTER; } +{SIGNED} { yylval.str = strdup(yytext); return SIGNED; } +{TYPEDEF} { yylval.str = strdup(yytext); return TYPEDEF; } +{UNION} { yylval.str = strdup(yytext); return UNION; } +{UNSIGNED} { yylval.str = strdup(yytext); return UNSIGNED; } +{VOLATILE} { yylval.str = strdup(yytext); return VOLATILE; } +{CLASS} { yylval.str = strdup(yytext); return CLASS; } +{PUBLIC} { yylval.str = strdup(yytext); return PUBLIC; } +{PRIVATE} { yylval.str = strdup(yytext); return PRIVATE; } +{PROTECTED} { yylval.str = strdup(yytext); return PROTECTED; } +{NULLPTR} { yylval.str = strdup(yytext); return NULLPTR; } +{NAMESPACE} { yylval.str = strdup(yytext); return NAMESPACE; } +{VIRTUAL} { yylval.str = strdup(yytext); return VIRTUAL; } +{CATCH} { yylval.str = strdup(yytext); return CATCH; } + + + +{ID} { yylval.str = strdup(yytext); return ID; } +{HEXA_LITERAL} { yylval.str = strdup(yytext); return HEXA_LITERAL; } +{OCTAL_LITERAL} { yylval.str = strdup(yytext); return OCTAL_LITERAL; } +{DECIMAL_LITERAL} { yylval.symbol_info = new symbol_info(); + yylval.symbol_info->type = "int"; + yylval.symbol_info->ptr = new int(atoi(yytext)); + yylval.symbol_info->symbol_size=4; + return DECIMAL_LITERAL; } +{EXP_LITERAL} { yylval.str = strdup(yytext); return EXP_LITERAL; } +{FLOAT_LITERAL} { yylval.symbol_info = new symbol_info(); + yylval.symbol_info->type = "float"; + yylval.symbol_info->ptr = new float(atof(yytext)); + yylval.symbol_info->symbol_size=4; + return FLOAT_LITERAL; } +{STRING_LITERAL} { yylval.symbol_info = new symbol_info(); + yylval.symbol_info->type = "string"; + yylval.symbol_info->str_val= strdup(yytext); + yylval.symbol_info->symbol_size=strlen(yytext); + return STRING_LITERAL; } +{CHARACTER_LITERAL} { yylval.symbol_info = new symbol_info(); + yylval.symbol_info->type = "char"; + char* temp = strdup(yytext); + yylval.symbol_info->ptr = new char(temp[1]); + yylval.symbol_info->str_val = std::string(temp + 1); + yylval.symbol_info->symbol_size=1; return CHARACTER_LITERAL; free(temp);} +{SINCMNT} { /* ignore single-line comment */ } +{MULCMNT} { /* ignore multi-line comment */ } + + +{RBRACE} { return RBRACE; } +{LBRACE} { return LBRACE; } +{LBRACKET} { return LBRACKET; } +{RBRACKET} { return RBRACKET; } +{LPARENTHESES} { return LPARENTHESES; } +{RPARENTHESES} { return RPARENTHESES; } +{DOT} { return DOT; } +{COMMA} { return COMMA; } +{COLON} { return COLON; } +{SEMICOLON} { return SEMICOLON; } +{PLUS} { return PLUS; } +{MINUS} { return MINUS; } +{STAR} { return STAR; } +{DIVIDE} { return DIVIDE; } +{MODULO} { return MODULO; } +{AMPERSAND} { return AMPERSAND; } +{OR} { return OR; } +{XOR} { return XOR; } +{EXCLAMATION} { return EXCLAMATION; } +{TILDE} { return TILDE; } +{EQUALS} { return EQUALS; } +{LESS_THAN} { return LESS_THAN; } +{GREATER_THAN} { return GREATER_THAN; } +{QUESTION_MARK} { return QUESTION_MARK; } +{INCREMENT} { return INCREMENT; } +{DECREMENT} { return DECREMENT; } +{REL_AND} { return REL_AND; } +{REL_OR} { return REL_OR; } +{REL_EQUALS} { return REL_EQUALS; } +{REL_NOT_EQ} { return REL_NOT_EQ; } +{LESS_EQUALS} { return LESS_EQUALS; } +{GREATER_EQUALS} { return GREATER_EQUALS; } +{ASSIGN_PLUS} { return ASSIGN_PLUS; } +{ASSIGN_MINUS} { return ASSIGN_MINUS; } +{ASSIGN_STAR} { return ASSIGN_STAR; } +{ASSIGN_DIV} { return ASSIGN_DIV; } +{ASSIGN_MOD} { return ASSIGN_MOD; } +{ASSIGN_AND} { return ASSIGN_AND; } +{ASSIGN_OR} { return ASSIGN_OR; } +{ASSIGN_XOR} { return ASSIGN_XOR; } +{LEFT_SHIFT} { return LEFT_SHIFT; } +{LEFT_SHIFT_EQ} { return LEFT_SHIFT_EQ; } +{RIGHT_SHIFT} { return RIGHT_SHIFT; } +{RIGHT_SHIFT_EQ} { return RIGHT_SHIFT_EQ; } +{LAMBDA_ARROW} { return LAMBDA_ARROW; } +{VARIABLE_ARGS} { return VARIABLE_ARGS; } + +{INVALID_ID} { fprintf(stderr, "Invalid identifier: %s at line %d\n", yytext, yylineno); return INVALID_ID; } + +. { fprintf(stderr, "Invalid token: %s at line %d\n", yytext, yylineno); return yytext[0]; } + +%% + diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c new file mode 100644 index 0000000..0702900 --- /dev/null +++ b/Assignment4/test/input1.c @@ -0,0 +1,7 @@ + +int main(){ + int a=3; + int b=4; + int c=a+b; + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input2.c b/Assignment4/test/input2.c new file mode 100644 index 0000000..b6a72cc --- /dev/null +++ b/Assignment4/test/input2.c @@ -0,0 +1,8 @@ +typedef float A; + +int main(){ + A b=3; + float c=b; + int d=4; + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input3.c b/Assignment4/test/input3.c new file mode 100644 index 0000000..9299adb --- /dev/null +++ b/Assignment4/test/input3.c @@ -0,0 +1,17 @@ +int main() +{ + int num, count, sum = 0; + + printf("Enter a positive integer: "); + scanf("%d", &num); + + // for loop terminates when count exceeds num + for(count = 1; count <= num; count++) + { + sum &= count; + } + + printf("Sum = %d", sum); + + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input4.c b/Assignment4/test/input4.c new file mode 100644 index 0000000..9028c75 --- /dev/null +++ b/Assignment4/test/input4.c @@ -0,0 +1,44 @@ + + +int main() { + char operation; + double n1, n2; + + printf("Enter an operator (+, -, *, /): "); + scanf("%c", &operation); + printf("Enter two operands: "); + scanf("%lf %lf",&n1, &n2); + int b; + int r=0; + switch(operation) + { + case '+': + printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); + break; + + case '-': + switch(b) + { + case 1: + + break; + case 2: + r--; + printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); + break; + default: + printf("Error! operator is not correct"); + break; + } + break; + case '*': + printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); + case '/': + printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); + break; + default: + printf("Error! operator is not correct"); + } + + return 0; +} diff --git a/Assignment4/test/input5.c b/Assignment4/test/input5.c new file mode 100644 index 0000000..61c1eec --- /dev/null +++ b/Assignment4/test/input5.c @@ -0,0 +1,17 @@ +int fact(int n) +{ + if(n==0){ + return 1; + } + else{ + return n*fact(n-1); + } + +} +int main() +{ + int x=10; + int ans = fact(x); + + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input6.c b/Assignment4/test/input6.c new file mode 100644 index 0000000..52c97e5 --- /dev/null +++ b/Assignment4/test/input6.c @@ -0,0 +1,6 @@ +int main() +{ + float x=0.0; + x=(1.2+1.26); + return 0; +} diff --git a/Assignment4/test/input7.c b/Assignment4/test/input7.c new file mode 100644 index 0000000..189bc32 --- /dev/null +++ b/Assignment4/test/input7.c @@ -0,0 +1,84 @@ +int global_var = 100; + +struct Point { + int x; + int y; +}; + +int add(int a, int b) { + return a + b; +} + +float divide(int a, int b) { + if (b == 0) { + printf("Error: divide by zero\n"); + return 0.0; + } + return (float)a / b; +} + +int max_in_array(int arr[], int size) { + return 0; +} + +void print_array(int arr[], int size) { + printf("\n"); + return; +} + +void initialize_array(int arr[], int size, int value) { + return; +} + +int factorial(int n) { + if (n < 0) return -1; + if (n == 0) return 1; + return n * factorial(n - 1); +} + +struct Point create_point(int x, int y) { + struct Point p; + p.x = x; + p.y = y; + return p; +} + +void print_point(struct Point *p) { + printf("Point: (%d, %d)\n", p->x, p->y); + return; +} + +int main() { + int a = 10, b = 5; + int sum = add(a, b); + printf("Sum: %d\n", sum); + + float result = divide(a, b); + printf("Division: %.2f\n", result); + + int arr[5] = {1, 7, 3, 9, 2}; + print_array(arr, 5); + + int max_val = max_in_array(arr, 5); + printf("Max value: %d\n", max_val); + + printf("Initialized global array (first 5 values): "); + + int fact = factorial(5); + printf("Factorial of 5: %d\n", fact); + + struct Point pt = create_point(3, 4); + print_point(&pt); + + int i = 100; + + for (i = 0; i < 3; i++) { + printf("Loop i: %d\n", i); + } + printf("Outer i: %d\n", i); + + int *ptr = ∑ + printf("Value via pointer: %d\n", *ptr); + + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input8.c b/Assignment4/test/input8.c new file mode 100644 index 0000000..ca7f2b3 --- /dev/null +++ b/Assignment4/test/input8.c @@ -0,0 +1,63 @@ + +// int printf(char *, ...); + +int glb; +int glb1 = 10; + +static int glb2; +struct foo +{ + int a; + int b; + struct foo *next; +}; + +static int bar(int a, float b) +{ + int lcl = 10; + while (b) + { + b--; + } + if (a == 0) + return 0; + bar(a--, a + b + lcl); // what if I use a++; + return 1; +} + +int main() +{ + int a = 100, b[20], ret; + int i; + for (i = 0; i < a; i++) + { + int b = 0; + b += i; + if (b % 2 != b % 3) + printf("%d\n", a + b); + else if (b % 2 == 0) + { + switch (b) + { + case 100: + printf("1\n"); + break; + case 1000: + printf("2\n"); + default: + printf("2\n"); + } + } + // b[19] = i; + ret = i; + } + int *c; + +jump: + struct foo newS[5]; + // printf("Final = %d", newS[3].b + ret); + if (*(b + 2) == 0) + goto jump; + bar(1, *b); + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input9.c b/Assignment4/test/input9.c new file mode 100644 index 0000000..9d35ec7 --- /dev/null +++ b/Assignment4/test/input9.c @@ -0,0 +1,42 @@ +// int printf(char *, ...); + +// class check +// { +// int a; + +// public: +// void setA(int a); + +// protected: +// int b; +// }; + +union Data +{ + int intValue; + float floatValue; +}; + + + +// class newCheck : public check +// { +// int c; +// }; + +// typedef class newCheck newType; + +int main() +{ + // class check *temp = new class check(); + // class newCheck *temp1 = new class newCheck(); + // newType *temp2 = new class newCheck(); + // void (*func_ptr)(int); + // int arr[10][20][30]; + // func_ptr = &(setA); + // func_ptr(5); + union Data data; + data.intValue = 2006; + data.floatValue = 2.2; + // ***(arr + 2) = 20; +} \ No newline at end of file From b82b4e1bd82ffb87b045ad58d6786b17927e53f8 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Wed, 23 Apr 2025 21:06:39 +0000 Subject: [PATCH 04/52] Added scope pointer to each 3ac line --- Assignment4/.vscode/settings.json | 3 +- Assignment4/include/functions.h | 101 ++++++ Assignment4/include/utility.h | 9 +- Assignment4/output/output1.txt | 109 +++++-- Assignment4/output/output2.txt | 35 +- Assignment4/output/output3.txt | 87 +++-- Assignment4/output/output4.txt | 128 +------- Assignment4/output/output5.txt | 100 +++--- Assignment4/output/output6.txt | 39 +-- Assignment4/output/output7.txt | 512 ++++++++++++++++++++++++------ Assignment4/output/output8.txt | 335 ++++++++++++------- Assignment4/output/output9.txt | 46 ++- Assignment4/src/codegen.cpp | 8 +- Assignment4/src/parser.y | 436 +++++++++++++++++++++---- Assignment4/test/input1.c | 16 +- Assignment4/test/input8.c | 3 +- 16 files changed, 1402 insertions(+), 565 deletions(-) diff --git a/Assignment4/.vscode/settings.json b/Assignment4/.vscode/settings.json index 6bdc738..708d457 100644 --- a/Assignment4/.vscode/settings.json +++ b/Assignment4/.vscode/settings.json @@ -90,6 +90,7 @@ "typeindex": "cpp", "typeinfo": "cpp", "valarray": "cpp", - "variant": "cpp" + "variant": "cpp", + "filesystem": "c" } } \ No newline at end of file diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index 2a8d370..6eb8f86 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -175,6 +175,59 @@ void cleanTAC(string input) { // cout << "Cleaning complete! Check " << endl; } + + +bool isSingleFloat(const string& line) { + return regex_match(line, regex("^[0-9]*\\.[0-9]+$")); +} + +bool isSingleStringLiteral(const string& line) { + return regex_match(line, regex("^\".*\"$")); +} + + + +vector> clean_vector_TAC(vector> input) { + vector> cleaned_TAC; + int lineno = 1; + + for (auto& entry : input) { + string line = entry.first; + scoped_symtab* scope = entry.second; + + // Trim leading and trailing whitespace + while (!line.empty() && isspace(line.front())) line.erase(line.begin()); + while (!line.empty() && isspace(line.back())) line.pop_back(); + + // Skip lines that are empty or contain only a number, float, or string literal + if (line.empty() || isSingleNumber(line) || isSingleFloat(line) || isSingleStringLiteral(line)) + continue; + + // Skip lines with only pointer/address-of expression and no assignment + if (startsWithPointerOrAddress(line) && line.find('=') == string::npos) + continue; + + // Output for debug (optional) + cerr << lineno << ". "<>& vec) { + for (const auto& pair : vec) { + cerr<<" "<> replace_break_continue_final(vector> original_code,string end_label,string update_label,int i){ + vector> new_code; + for(int j=0;j struct scoped_symtab; struct symbol_info; + static symbol_info* lookup_symbol_local(const std::string& name, scoped_symtab* curr_scope); static symbol_info* lookup_symbol_global(const std::string& name, scoped_symtab* curr_scope); @@ -46,6 +47,7 @@ struct symbol_info { std::vector struct_attr_values; int pointer_depth=0; qid place; + std::vector> final_code; std::string code; bool is_return=false; @@ -66,7 +68,12 @@ struct symbol_info { is_param_list(sym->is_param_list), parameter_no(sym->parameter_no), param_types(sym->param_types), param_list(sym->param_list), struct_attr_values(sym->struct_attr_values), pointer_depth(sym->pointer_depth), - place(sym->place), code(sym->code) {} + place(sym->place), code(sym->code) { + // Copy the final_code vector + for (const auto& item : sym->final_code) { + final_code.push_back(item); + } + } }; symbol_info* lookup_symbol_local(const std::string& name, scoped_symtab* curr_scope){ diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 4bb2c69..b0092c0 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,25 +2,90 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -1. FUNC_BEGIN main -2. a := 3 -3. b := 4 -6. RETURN 0 -7. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | 3 | -| b | int | 4 | 4 | -| c | int | 4 | N/A | -| t0 | int | 4 | N/A | ------------------------------------------------------------------ +1. FUNC_BEGIN add +2. x:= 0 +3. t0 := x + 6 +4. y:= t0 +5. t1 := x * y +6. t2 := t1 - 9 +7. z:= t2 +8. RETURN z +9. FUNC_END add +10. FUNC_BEGIN main +11. t3 := CALL add +12. k:= t3 +13. t4 := CALL add +14. i:= t4 +15. RETURN 0 +16. LABEL0: +17. if(1) goto LABEL2 +18. goto LABEL1 +19. LABEL2: +20. i:= 0 +21. i := i + 1 +22. goto LABEL0 +23. LABEL1: +24. FUNC_END main + + + +1. 0x55a03568b8b0 FUNC_BEGIN add +2. 0x55a0356911f0 x:= 0 +3. 0x55a0356911f0 t0 := x + 6 +4. 0x55a0356911f0 y:= t0 +5. 0x55a0356911f0 t1 := x * y +6. 0x55a0356911f0 t2 := t1 - 9 +7. 0x55a0356911f0 z:= t2 +8. 0x55a0356911f0 RETURN z +9. 0x55a03568b8b0 FUNC_END add +10. 0x55a03568b8b0 FUNC_BEGIN main +11. 0x55a035696870 t3 := CALL add +12. 0x55a035696870 k:= t3 +13. 0x55a035696870 t4 := CALL add +14. 0x55a035696870 i:= t4 +15. 0x55a035696870 RETURN 0 +16. 0x55a035696870 LABEL0: +17. 0x55a035696870 if(1) goto LABEL2 +18. 0x55a035696870 goto LABEL1 +19. 0x55a035696870 LABEL2: +20. 0x55a035696ea0 i:= 0 +21. 0x55a035696ea0 i := i + 1 +22. 0x55a035696870 goto LABEL0 +23. 0x55a035696870 LABEL1: +24. 0x55a03568b8b0 FUNC_END main + FUNC_BEGIN add + + x:= 0 + + 6 + t0 := x + 6 + + y:= t0 + + + t1 := x * y + + 9 + t2 := t1 - 9 + + z:= t2 + RETURN z + FUNC_END add + FUNC_BEGIN main + t3 := CALL add + + k:= t3 + t4 := CALL add + + i:= t4 + RETURN 0 + LABEL0: + if(1) goto LABEL2 + goto LABEL1 + LABEL2: + + i:= 0 + i := i + 1 + goto LABEL0 + LABEL1: + FUNC_END main diff --git a/Assignment4/output/output2.txt b/Assignment4/output/output2.txt index 695aa71..cc485ed 100644 --- a/Assignment4/output/output2.txt +++ b/Assignment4/output/output2.txt @@ -8,20 +8,21 @@ Intermediate code generated successfully 4. d:= 4 5. RETURN 0 6. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| A | | 0 | N/A | -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| b | float | 4 | 0.000000 | -| c | float | 4 | N/A | -| d | int | 4 | 4 | ------------------------------------------------------------------ + + + +1. 0x557039df18b0 FUNC_BEGIN main +2. 0x557039df77d0 b:= 3 +3. 0x557039df77d0 c:= b +4. 0x557039df77d0 d:= 4 +5. 0x557039df77d0 RETURN 0 +6. 0x557039df18b0 FUNC_END main + FUNC_BEGIN main + + b:= 3 + + c:= b + + d:= 4 + RETURN 0 + FUNC_END main diff --git a/Assignment4/output/output3.txt b/Assignment4/output/output3.txt index b6a5e43..dfda73a 100644 --- a/Assignment4/output/output3.txt +++ b/Assignment4/output/output3.txt @@ -6,48 +6,77 @@ Intermediate code generated successfully 2. sum:= 0 3. "Enter a positive integer: " 4. PARAM "Enter a positive integer: " -5. t0:= CALL printf,1 +5. t0 := CALL printf,1 6. "%d" 7. PARAM "%d" 8. PARAM &num -9. t1:= CALL scanf,2 +9. t1 := CALL scanf,2 10. count:= 1 11. LABEL0: -12. t2:= count<=num +12. t2 := count <= num 13. if(t2) goto LABEL2 14. goto LABEL1 15. LABEL2: 16. sum:= sum&count -17. count:= count+1 +17. count := count + 1 18. goto LABEL0 19. LABEL1: 20. "Sum = %d" 21. PARAM "Sum = %d" 22. PARAM sum -23. t3:= CALL printf,2 +23. t3 := CALL printf,2 24. RETURN 0 25. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| count | int | 4 | N/A | -| num | int | 4 | N/A | -| sum | int | 4 | 0 | -| t0 | | 0 | N/A | -| t1 | | 0 | N/A | -| t2 | int | 4 | N/A | -| t3 | | 0 | N/A | ------------------------------------------------------------------ + + + +1. 0x561ca45938b0 FUNC_BEGIN main +2. 0x561ca45991f0 sum:= 0 +3. 0x561ca45991f0 PARAM "Enter a positive integer: " +4. 0x561ca45991f0 t0 := CALL printf,1 +5. 0x561ca45991f0 PARAM "%d" +6. 0x561ca45991f0 PARAM &num +7. 0x561ca45991f0 t1 := CALL scanf,2 +8. 0x561ca45991f0 count:= 1 +9. 0x561ca45991f0 LABEL0: +10. 0x561ca45991f0 t2 := count <= num +11. 0x561ca45991f0 if(t2) goto LABEL2 +12. 0x561ca45991f0 goto LABEL1 +13. 0x561ca45991f0 LABEL2: +14. 0x561ca459a690 sum:= sum&count +15. 0x561ca45991f0 count := count + 1 +16. 0x561ca45991f0 goto LABEL0 +17. 0x561ca45991f0 LABEL1: +18. 0x561ca45991f0 PARAM "Sum = %d" +19. 0x561ca45991f0 PARAM sum +20. 0x561ca45991f0 t3 := CALL printf,2 +21. 0x561ca45991f0 RETURN 0 +22. 0x561ca45938b0 FUNC_END main + FUNC_BEGIN main + + + + sum:= 0 + PARAM "Enter a positive integer: " + t0 := CALL printf,1 + &num + PARAM "%d" + PARAM &num + t1 := CALL scanf,2 + count:= 1 + LABEL0: + t2 := count <= num + if(t2) goto LABEL2 + goto LABEL1 + LABEL2: + sum:= sum&count + + + count := count + 1 + goto LABEL0 + LABEL1: + PARAM "Sum = %d" + PARAM sum + t3 := CALL printf,2 + RETURN 0 + FUNC_END main diff --git a/Assignment4/output/output4.txt b/Assignment4/output/output4.txt index 53d1e07..c8ddab9 100644 --- a/Assignment4/output/output4.txt +++ b/Assignment4/output/output4.txt @@ -1,122 +1,6 @@ -====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -1. FUNC_BEGIN main -2. "Enter an operator (+, -, *, /): " -3. PARAM "Enter an operator (+, -, *, /): " -4. t0:= CALL printf,1 -5. "%c" -6. PARAM "%c" -7. PARAM &operation -8. t1:= CALL scanf,2 -9. "Enter two operands: " -10. PARAM "Enter two operands: " -11. t2:= CALL printf,1 -12. "%lf %lf" -13. PARAM "%lf %lf" -14. PARAM &n1 -15. PARAM &n2 -16. t3:= CALL scanf,3 -17. r:= 0 -18. if(operation=='+') goto LABEL0 -19. if(operation=='-') goto LABEL5 -20. if(operation=='*') goto LABEL6 -21. if(operation=='/') goto LABEL7 -22. goto LABEL8 -23. LABEL0: -24. "%.1lf + %.1lf = %.1lf" -25. t4:= n1+n2 -26. PARAM "%.1lf + %.1lf = %.1lf" -27. PARAM n1 -28. PARAM n2 -29. PARAM t4 -30. t5:= CALL printf,4 -31. goto LABEL9 -32. LABEL5: -33. if(b==1) goto LABEL1 -34. if(b==2) goto LABEL2 -35. goto LABEL3 -36. LABEL1: -37. goto LABEL4 -38. LABEL2: -39. r:= r-1 -40. "%.1lf - %.1lf = %.1lf" -41. t6:= n1-n2 -42. PARAM "%.1lf - %.1lf = %.1lf" -43. PARAM n1 -44. PARAM n2 -45. PARAM t6 -46. t7:= CALL printf,4 -47. goto LABEL4 -48. LABEL3: -49. "Error! operator is not correct" -50. PARAM "Error! operator is not correct" -51. t8:= CALL printf,1 -52. goto LABEL4 -53. LABEL4: -54. goto LABEL9 -55. LABEL6: -56. "%.1lf * %.1lf = %.1lf" -57. t9:= n1*n2 -58. PARAM "%.1lf * %.1lf = %.1lf" -59. PARAM n1 -60. PARAM n2 -61. PARAM t9 -62. t10:= CALL printf,4 -63. LABEL7: -64. "%.1lf / %.1lf = %.1lf" -65. t11:= n1/n2 -66. PARAM "%.1lf / %.1lf = %.1lf" -67. PARAM n1 -68. PARAM n2 -69. PARAM t11 -70. t12:= CALL printf,4 -71. goto LABEL9 -72. LABEL8: -73. "Error! operator is not correct" -74. PARAM "Error! operator is not correct" -75. t13:= CALL printf,1 -76. LABEL9: -77. RETURN 0 -78. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| t6 | double | 0 | N/A | -| t7 | | 0 | N/A | -| t8 | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| t10 | | 0 | N/A | -| t11 | double | 0 | N/A | -| t12 | | 0 | N/A | -| t13 | | 0 | N/A | -| t4 | double | 0 | N/A | -| t5 | | 0 | N/A | -| t9 | double | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| b | int | 4 | N/A | -| n1 | double | 0 | N/A | -| n2 | double | 0 | N/A | -| operation | char | 2 | | -| r | int | 4 | 0 | -| t0 | | 0 | N/A | -| t1 | | 0 | N/A | -| t2 | | 0 | N/A | -| t3 | | 0 | N/A | ------------------------------------------------------------------ +hi +hi2 +hi +hi2 +hi +hi2 diff --git a/Assignment4/output/output5.txt b/Assignment4/output/output5.txt index 71e025e..b8c0de4 100644 --- a/Assignment4/output/output5.txt +++ b/Assignment4/output/output5.txt @@ -4,58 +4,80 @@ Line 10 : Missing return statement 1. FUNC_BEGIN fact 2. param0 := PARAM 3. n := param0 -4. t0:= n==0 +4. t0 := n == 0 5. if(t0) goto LABEL0 6. goto LABEL1 7. LABEL0: 8. RETURN 1 9. goto LABEL2 10. LABEL1: -11. t1:= n-1 +11. t1 := n - 1 12. PARAM t1 -13. t2:= CALL fact,1 -14. t3:= n*t2 +13. t2 := CALL fact,1 +14. t3 := n * t2 15. RETURN t3 16. LABEL2: 17. FUNC_END fact 18. FUNC_BEGIN main 19. x:= 10 20. PARAM x -21. t4:= CALL fact,1 +21. t4 := CALL fact,1 22. ans:= t4 23. RETURN 0 24. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| fact | int | 4 | N/A | -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| t1 | int | 4 | N/A | -| t2 | int | 4 | N/A | -| t3 | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| n | int | 4 | N/A | -| t0 | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| ans | int | 4 | N/A | -| t4 | int | 4 | N/A | -| x | int | 4 | 10 | ------------------------------------------------------------------ + + + +1. 0x55dac4e548b0 FUNC_BEGIN fact +2. 0x55dac4e548b0 param0 := PARAM +3. 0x55dac4e548b0 n := param0 +4. 0x55dac4e5a7f0 t0 := n == 0 +5. 0x55dac4e5a7f0 if(t0) goto LABEL0 +6. 0x55dac4e5a7f0 goto LABEL1 +7. 0x55dac4e5a7f0 LABEL0: +8. 0x55dac4e5b130 RETURN 1 +9. 0x55dac4e5a7f0 goto LABEL2 +10. 0x55dac4e5a7f0 LABEL1: +11. 0x55dac4e5ba00 t1 := n - 1 +12. 0x55dac4e5ba00 PARAM t1 +13. 0x55dac4e5ba00 t2 := CALL fact,1 +14. 0x55dac4e5ba00 t3 := n * t2 +15. 0x55dac4e5ba00 RETURN t3 +16. 0x55dac4e5a7f0 LABEL2: +17. 0x55dac4e548b0 FUNC_END fact +18. 0x55dac4e548b0 FUNC_BEGIN main +19. 0x55dac4e5db60 x:= 10 +20. 0x55dac4e5db60 PARAM x +21. 0x55dac4e5db60 t4 := CALL fact,1 +22. 0x55dac4e5db60 ans:= t4 +23. 0x55dac4e5db60 RETURN 0 +24. 0x55dac4e548b0 FUNC_END main + FUNC_BEGIN fact + param0 := PARAM + n := param0 + t0 := n == 0 + if(t0) goto LABEL0 + goto LABEL1 + LABEL0: + RETURN 1 + goto LABEL2 + LABEL1: + t1 := n - 1 + + PARAM t1 + t2 := CALL fact,1 + t3 := n * t2 + RETURN t3 + LABEL2: + FUNC_END fact + FUNC_BEGIN main + + x:= 10 + + + PARAM x + t4 := CALL fact,1 + + ans:= t4 + RETURN 0 + FUNC_END main diff --git a/Assignment4/output/output6.txt b/Assignment4/output/output6.txt index 7b1713b..026eae4 100644 --- a/Assignment4/output/output6.txt +++ b/Assignment4/output/output6.txt @@ -6,24 +6,27 @@ Intermediate code generated successfully 2. x:= 0.000000 3. 1.200000 4. 1.260000 -5. t0:= 1.200000+1.260000 -6. t1:= (t0) +5. t0 := 1.200000 + 1.260000 +6. t1 := ( t0 ) 7. x:= t1 8. RETURN 0 9. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| t0 | float | 4 | N/A | -| t1 | float | 4 | N/A | -| x | float | 4 | 0.000000 | ------------------------------------------------------------------ + + + +1. 0x55ecfada68b0 FUNC_BEGIN main +2. 0x55ecfadac1f0 x:= 0.000000 +3. 0x55ecfadac1f0 t0 := 1.200000 + 1.260000 +4. 0x55ecfadac1f0 t1 := ( t0 ) +5. 0x55ecfadac1f0 x:= t1 +6. 0x55ecfadac1f0 RETURN 0 +7. 0x55ecfada68b0 FUNC_END main + FUNC_BEGIN main + + x:= 0.000000 + t0 := 1.200000 + 1.260000 + + t1 := ( t0 ) + x:= t1 + RETURN 0 + FUNC_END main diff --git a/Assignment4/output/output7.txt b/Assignment4/output/output7.txt index 3ebe6c7..e6c415d 100644 --- a/Assignment4/output/output7.txt +++ b/Assignment4/output/output7.txt @@ -8,7 +8,7 @@ Intermediate code generated successfully 4. param1 := PARAM 5. a := param0 6. b := param1 -7. t0:= a+b +7. t0 := a + b 8. RETURN t0 9. FUNC_END add 10. FUNC_BEGIN divide @@ -16,17 +16,17 @@ Intermediate code generated successfully 12. param1 := PARAM 13. a := param0 14. b := param1 -15. t1:= b==0 -16. if(t1) goto LABEL0 +15. t1 := b == 0 +16. if (t1) goto LABEL0 17. goto LABEL1 18. LABEL0: 19. "Error: divide by zero\n" 20. PARAM "Error: divide by zero\n" -21. t2:= CALL printf,1 +21. t2 := CALL printf,1 22. 0.000000 23. RETURN 0.000000 24. LABEL1: -25. t3:= a/b +25. t3 := a / b 26. RETURN t3 27. FUNC_END divide 28. FUNC_BEGIN max_in_array @@ -43,7 +43,7 @@ Intermediate code generated successfully 39. size := param1 40. "\n" 41. PARAM "\n" -42. t4:= CALL printf,1 +42. t4 := CALL printf,1 43. RETURN 44. FUNC_END print_array 45. FUNC_BEGIN initialize_array @@ -58,23 +58,23 @@ Intermediate code generated successfully 54. FUNC_BEGIN factorial 55. param0 := PARAM 56. n := param0 -57. t5:= n<0 -58. if(t5) goto LABEL2 +57. t5 := n < 0 +58. if (t5) goto LABEL2 59. goto LABEL3 60. LABEL2: 61. -1 62. RETURN -1 63. LABEL3: -64. t6:= n==0 -65. if(t6) goto LABEL4 +64. t6 := n == 0 +65. if (t6) goto LABEL4 66. goto LABEL5 67. LABEL4: 68. RETURN 1 69. LABEL5: -70. t7:= n-1 +70. t7 := n - 1 71. PARAM t7 -72. t8:= CALL factorial,1 -73. t9:= n*t8 +72. t8 := CALL factorial,1 +73. t9 := n * t8 74. RETURN t9 75. FUNC_END factorial 76. FUNC_BEGIN create_point @@ -83,10 +83,10 @@ Intermediate code generated successfully 79. x := param0 80. y := param1 81. p:= alloc 8 -82. t10:= p+0 -83. *t10:= x -84. t11:= p+4 -85. *t11:= y +82. t10 := p + 0 +83. *t10 := x +84. t11 := p + 4 +85. *t11 := y 86. RETURN p 87. FUNC_END create_point 88. FUNC_BEGIN print_point @@ -96,7 +96,7 @@ Intermediate code generated successfully 92. PARAM "Point: (%d, %d)\n" 93. PARAM p 94. PARAM p -95. t12:= CALL printf,3 +95. t12 := CALL printf,3 96. RETURN 97. FUNC_END print_point 98. FUNC_BEGIN main @@ -104,145 +104,449 @@ Intermediate code generated successfully 100. b:= 5 101. PARAM a 102. PARAM b -103. t13:= CALL add,2 +103. t13 := CALL add,2 104. sum:= t13 105. "Sum: %d\n" 106. PARAM "Sum: %d\n" 107. PARAM sum -108. t14:= CALL printf,2 +108. t14 := CALL printf,2 109. PARAM a 110. PARAM b -111. t15:= CALL divide,2 +111. t15 := CALL divide,2 112. result:= t15 113. "Division: %.2f\n" 114. PARAM "Division: %.2f\n" 115. PARAM result -116. t16:= CALL printf,2 -117. arr:= alloc 20 +116. t16 := CALL printf,2 +117. arr := alloc 20 118. t17:= 0*4 -119. *( arr + t17 ):= 1 +119. *( arr + t17 ) := 1 120. t18:= 1*4 -121. *( arr + t18 ):= 7 +121. *( arr + t18 ) := 7 122. t19:= 2*4 -123. *( arr + t19 ):= 3 +123. *( arr + t19 ) := 3 124. t20:= 3*4 -125. *( arr + t20 ):= 9 +125. *( arr + t20 ) := 9 126. t21:= 4*4 -127. *( arr + t21 ):= 2 +127. *( arr + t21 ) := 2 128. PARAM arr 129. PARAM 5 130. CALL print_array,2 131. PARAM arr 132. PARAM 5 -133. t23:= CALL max_in_array,2 +133. t23 := CALL max_in_array,2 134. max_val:= t23 135. "Max value: %d\n" 136. PARAM "Max value: %d\n" 137. PARAM max_val -138. t24:= CALL printf,2 +138. t24 := CALL printf,2 139. "Initialized global array (first 5 values): " 140. PARAM "Initialized global array (first 5 values): " -141. t25:= CALL printf,1 +141. t25 := CALL printf,1 142. PARAM 5 -143. t26:= CALL factorial,1 +143. t26 := CALL factorial,1 144. fact:= t26 145. "Factorial of 5: %d\n" 146. PARAM "Factorial of 5: %d\n" 147. PARAM fact -148. t27:= CALL printf,2 +148. t27 := CALL printf,2 149. PARAM 3 150. PARAM 4 -151. t28:= CALL create_point,2 +151. t28 := CALL create_point,2 152. pt:= t28 153. PARAM &pt 154. CALL print_point,1 155. i:= 100 156. i:= 0 157. LABEL6: -158. t30:= i<3 +158. t30 := i < 3 159. if(t30) goto LABEL8 160. goto LABEL7 161. LABEL8: 162. "Loop i: %d\n" 163. PARAM "Loop i: %d\n" 164. PARAM i -165. t31:= CALL printf,2 -166. i:= i+1 +165. t31 := CALL printf,2 +166. i := i + 1 167. goto LABEL6 168. LABEL7: 169. "Outer i: %d\n" 170. PARAM "Outer i: %d\n" 171. PARAM i -172. t32:= CALL printf,2 +172. t32 := CALL printf,2 173. ptr:= &sum 174. "Value via pointer: %d\n" 175. PARAM "Value via pointer: %d\n" 176. PARAM *ptr -177. t33:= CALL printf,2 +177. t33 := CALL printf,2 178. RETURN 0 179. FUNC_END main -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| Point | struct | 0 | N/A | -| add | int | 4 | N/A | -| create_point | struct Point | 0 | N/A | -| divide | float | 4 | N/A | -| factorial | int | 4 | N/A | -| global_var | int | 4 | 100 | -| initialize_array | void | 0 | N/A | -| main | int | 4 | N/A | -| max_in_array | int | 4 | N/A | -| print_array | void | 0 | N/A | -| print_point | void | 0 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | -| x | int | 4 | N/A | -| y | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | N/A | -| b | int | 4 | N/A | -| t0 | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| t2 | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | N/A | -| b | int | 4 | N/A | -| t1 | int | 4 | N/A | -| t3 | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| arr | int | 4 | N/A | -| size | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| arr | int | 4 | N/A | -| size | int | 4 | N/A | -| t4 | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| arr | int | 4 | N/A | -| size | int | 4 | N/A | -| value | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| n \ No newline at end of file + + + +1. 0x55d37dd228b0 global_var:= 100 +2. 0x55d37dd228b0 FUNC_BEGIN add +3. 0x55d37dd228b0 param0 := PARAM +4. 0x55d37dd228b0 param1 := PARAM +5. 0x55d37dd228b0 a := param0 +6. 0x55d37dd228b0 b := param1 +7. 0x55d37dd29ff0 t0 := a + b +8. 0x55d37dd29ff0 RETURN t0 +9. 0x55d37dd228b0 FUNC_END add +10. 0x55d37dd228b0 FUNC_BEGIN divide +11. 0x55d37dd228b0 param0 := PARAM +12. 0x55d37dd228b0 param1 := PARAM +13. 0x55d37dd228b0 a := param0 +14. 0x55d37dd228b0 b := param1 +15. 0x55d37dd286a0 t1 := b == 0 +16. 0x55d37dd286a0 if (t1) goto LABEL0 +17. 0x55d37dd286a0 goto LABEL1 +18. 0x55d37dd286a0 LABEL0: +19. 0x55d37dd2b100 PARAM "Error: divide by zero\n" +20. 0x55d37dd2b100 t2 := CALL printf,1 +21. 0x55d37dd2b100 RETURN 0.000000 +22. 0x55d37dd286a0 LABEL1: +23. 0x55d37dd286a0 t3 := a / b +24. 0x55d37dd286a0 RETURN t3 +25. 0x55d37dd228b0 FUNC_END divide +26. 0x55d37dd228b0 FUNC_BEGIN max_in_array +27. 0x55d37dd228b0 param0 := PARAM +28. 0x55d37dd228b0 param1 := PARAM +29. 0x55d37dd228b0 arr := param0 +30. 0x55d37dd228b0 size := param1 +31. 0x55d37dd30350 RETURN 0 +32. 0x55d37dd228b0 FUNC_END max_in_array +33. 0x55d37dd228b0 FUNC_BEGIN print_array +34. 0x55d37dd228b0 param0 := PARAM +35. 0x55d37dd228b0 param1 := PARAM +36. 0x55d37dd228b0 arr := param0 +37. 0x55d37dd228b0 size := param1 +38. 0x55d37dd330f0 PARAM "\n" +39. 0x55d37dd330f0 t4 := CALL printf,1 +40. 0x55d37dd330f0 RETURN +41. 0x55d37dd228b0 FUNC_END print_array +42. 0x55d37dd228b0 FUNC_BEGIN initialize_array +43. 0x55d37dd228b0 param0 := PARAM +44. 0x55d37dd228b0 param1 := PARAM +45. 0x55d37dd228b0 param2 := PARAM +46. 0x55d37dd228b0 arr := param0 +47. 0x55d37dd228b0 size := param1 +48. 0x55d37dd228b0 value := param2 +49. 0x55d37dd35c80 RETURN +50. 0x55d37dd228b0 FUNC_END initialize_array +51. 0x55d37dd228b0 FUNC_BEGIN factorial +52. 0x55d37dd228b0 param0 := PARAM +53. 0x55d37dd228b0 n := param0 +54. 0x55d37dd383b0 t5 := n < 0 +55. 0x55d37dd383b0 if (t5) goto LABEL2 +56. 0x55d37dd383b0 goto LABEL3 +57. 0x55d37dd383b0 LABEL2: +58. 0x55d37dd383b0 -1 +59. 0x55d37dd383b0 RETURN -1 +60. 0x55d37dd383b0 LABEL3: +61. 0x55d37dd383b0 t6 := n == 0 +62. 0x55d37dd383b0 if (t6) goto LABEL4 +63. 0x55d37dd383b0 goto LABEL5 +64. 0x55d37dd383b0 LABEL4: +65. 0x55d37dd383b0 RETURN 1 +66. 0x55d37dd383b0 LABEL5: +67. 0x55d37dd383b0 t7 := n - 1 +68. 0x55d37dd383b0 PARAM t7 +69. 0x55d37dd383b0 t8 := CALL factorial,1 +70. 0x55d37dd383b0 t9 := n * t8 +71. 0x55d37dd383b0 RETURN t9 +72. 0x55d37dd228b0 FUNC_END factorial +73. 0x55d37dd228b0 FUNC_BEGIN create_point +74. 0x55d37dd228b0 param0 := PARAM +75. 0x55d37dd228b0 param1 := PARAM +76. 0x55d37dd228b0 x := param0 +77. 0x55d37dd228b0 y := param1 +78. 0x55d37dd3d610 p:= alloc 8 +79. 0x55d37dd3d610 t10 := p + 0 +80. 0x55d37dd3d610 *t10 := x +81. 0x55d37dd3d610 t11 := p + 4 +82. 0x55d37dd3d610 *t11 := y +83. 0x55d37dd3d610 RETURN p +84. 0x55d37dd228b0 FUNC_END create_point +85. 0x55d37dd228b0 FUNC_BEGIN print_point +86. 0x55d37dd228b0 param0 := PARAM +87. 0x55d37dd228b0 p := param0 +88. 0x55d37dd43d30 PARAM "Point: (%d, %d)\n" +89. 0x55d37dd43d30 PARAM p +90. 0x55d37dd43d30 PARAM p +91. 0x55d37dd43d30 t12 := CALL printf,3 +92. 0x55d37dd43d30 RETURN +93. 0x55d37dd228b0 FUNC_END print_point +94. 0x55d37dd228b0 FUNC_BEGIN main +95. 0x55d37dd46230 a:= 10 +96. 0x55d37dd46230 b:= 5 +97. 0x55d37dd46230 PARAM a +98. 0x55d37dd46230 PARAM b +99. 0x55d37dd46230 t13 := CALL add,2 +100. 0x55d37dd46230 sum:= t13 +101. 0x55d37dd46230 PARAM "Sum: %d\n" +102. 0x55d37dd46230 PARAM sum +103. 0x55d37dd46230 t14 := CALL printf,2 +104. 0x55d37dd46230 PARAM a +105. 0x55d37dd46230 PARAM b +106. 0x55d37dd46230 t15 := CALL divide,2 +107. 0x55d37dd46230 result:= t15 +108. 0x55d37dd46230 PARAM "Division: %.2f\n" +109. 0x55d37dd46230 PARAM result +110. 0x55d37dd46230 t16 := CALL printf,2 +111. 0x55d37dd46230 arr := alloc 20 +112. 0x55d37dd46230 t17:= 0*4 +113. 0x55d37dd46230 *( arr + t17 ) := 1 +114. 0x55d37dd46230 t18:= 1*4 +115. 0x55d37dd46230 *( arr + t18 ) := 7 +116. 0x55d37dd46230 t19:= 2*4 +117. 0x55d37dd46230 *( arr + t19 ) := 3 +118. 0x55d37dd46230 t20:= 3*4 +119. 0x55d37dd46230 *( arr + t20 ) := 9 +120. 0x55d37dd46230 t21:= 4*4 +121. 0x55d37dd46230 *( arr + t21 ) := 2 +122. 0x55d37dd46230 PARAM arr +123. 0x55d37dd46230 PARAM 5 +124. 0x55d37dd46230 CALL print_array,2 +125. 0x55d37dd46230 PARAM arr +126. 0x55d37dd46230 PARAM 5 +127. 0x55d37dd46230 t23 := CALL max_in_array,2 +128. 0x55d37dd46230 max_val:= t23 +129. 0x55d37dd46230 PARAM "Max value: %d\n" +130. 0x55d37dd46230 PARAM max_val +131. 0x55d37dd46230 t24 := CALL printf,2 +132. 0x55d37dd46230 PARAM "Initialized global array (first 5 values): " +133. 0x55d37dd46230 t25 := CALL printf,1 +134. 0x55d37dd46230 PARAM 5 +135. 0x55d37dd46230 t26 := CALL factorial,1 +136. 0x55d37dd46230 fact:= t26 +137. 0x55d37dd46230 PARAM "Factorial of 5: %d\n" +138. 0x55d37dd46230 PARAM fact +139. 0x55d37dd46230 t27 := CALL printf,2 +140. 0x55d37dd46230 PARAM 3 +141. 0x55d37dd46230 PARAM 4 +142. 0x55d37dd46230 t28 := CALL create_point,2 +143. 0x55d37dd46230 pt:= t28 +144. 0x55d37dd46230 PARAM &pt +145. 0x55d37dd46230 CALL print_point,1 +146. 0x55d37dd46230 i:= 100 +147. 0x55d37dd46230 i:= 0 +148. 0x55d37dd46230 LABEL6: +149. 0x55d37dd46230 t30 := i < 3 +150. 0x55d37dd46230 if(t30) goto LABEL8 +151. 0x55d37dd46230 goto LABEL7 +152. 0x55d37dd46230 LABEL8: +153. 0x55d37dd58e20 PARAM "Loop i: %d\n" +154. 0x55d37dd58e20 PARAM i +155. 0x55d37dd58e20 t31 := CALL printf,2 +156. 0x55d37dd46230 i := i + 1 +157. 0x55d37dd46230 goto LABEL6 +158. 0x55d37dd46230 LABEL7: +159. 0x55d37dd46230 PARAM "Outer i: %d\n" +160. 0x55d37dd46230 PARAM i +161. 0x55d37dd46230 t32 := CALL printf,2 +162. 0x55d37dd46230 ptr:= &sum +163. 0x55d37dd46230 PARAM "Value via pointer: %d\n" +164. 0x55d37dd46230 PARAM *ptr +165. 0x55d37dd46230 t33 := CALL printf,2 +166. 0x55d37dd46230 RETURN 0 +167. 0x55d37dd228b0 FUNC_END main + + global_var:= 100 + FUNC_BEGIN add + param0 := PARAM + param1 := PARAM + a := param0 + b := param1 + t0 := a + b + + RETURN t0 + FUNC_END add + FUNC_BEGIN divide + param0 := PARAM + param1 := PARAM + a := param0 + b := param1 + t1 := b == 0 + if (t1) goto LABEL0 + goto LABEL1 + LABEL0: + PARAM "Error: divide by zero\n" + t2 := CALL printf,1 + RETURN 0.000000 + LABEL1: + t3 := a / b + RETURN t3 + FUNC_END divide + FUNC_BEGIN max_in_array + param0 := PARAM + param1 := PARAM + arr := param0 + size := param1 + RETURN 0 + FUNC_END max_in_array + FUNC_BEGIN print_array + param0 := PARAM + param1 := PARAM + arr := param0 + size := param1 + PARAM "\n" + t4 := CALL printf,1 + RETURN + FUNC_END print_array + FUNC_BEGIN initialize_array + param0 := PARAM + param1 := PARAM + param2 := PARAM + arr := param0 + size := param1 + value := param2 + RETURN + FUNC_END initialize_array + FUNC_BEGIN factorial + param0 := PARAM + n := param0 + t5 := n < 0 + if (t5) goto LABEL2 + goto LABEL3 + LABEL2: + -1 + RETURN -1 + LABEL3: + t6 := n == 0 + if (t6) goto LABEL4 + goto LABEL5 + LABEL4: + RETURN 1 + LABEL5: + t7 := n - 1 + + PARAM t7 + t8 := CALL factorial,1 + t9 := n * t8 + RETURN t9 + FUNC_END factorial + FUNC_BEGIN create_point + param0 := PARAM + param1 := PARAM + x := param0 + y := param1 + p:= alloc 8 + t10 := p + 0 + *t10 := x + t11 := p + 4 + *t11 := y + RETURN p + FUNC_END create_point + FUNC_BEGIN print_point + param0 := PARAM + p := param0 + PARAM "Point: (%d, %d)\n" + PARAM p + PARAM p + t12 := CALL printf,3 + RETURN + FUNC_END print_point + FUNC_BEGIN main + + a:= 10 + + b:= 5 + + + + PARAM a + PARAM b + t13 := CALL add,2 + + sum:= t13 + PARAM "Sum: %d\n" + PARAM sum + t14 := CALL printf,2 + + + + PARAM a + PARAM b + t15 := CALL divide,2 + + result:= t15 + PARAM "Division: %.2f\n" + PARAM result + t16 := CALL printf,2 + arr := alloc 20 + t17:= 0*4 + *( arr + t17 ) := 1 + t18:= 1*4 + *( arr + t18 ) := 7 + t19:= 2*4 + *( arr + t19 ) := 3 + t20:= 3*4 + *( arr + t20 ) := 9 + t21:= 4*4 + *( arr + t21 ) := 2 + PARAM arr + PARAM 5 + CALL print_array,2 + + + 5 + PARAM arr + PARAM 5 + t23 := CALL max_in_array,2 + + max_val:= t23 + PARAM "Max value: %d\n" + PARAM max_val + t24 := CALL printf,2 + PARAM "Initialized global array (first 5 values): " + t25 := CALL printf,1 + + 5 + PARAM 5 + t26 := CALL factorial,1 + + fact:= t26 + PARAM "Factorial of 5: %d\n" + PARAM fact + t27 := CALL printf,2 + + 3 + 4 + PARAM 3 + PARAM 4 + t28 := CALL create_point,2 + + pt:= t28 + &pt + PARAM &pt + CALL print_point,1 + + i:= 100 + i:= 0 + LABEL6: + t30 := i < 3 + if(t30) goto LABEL8 + goto LABEL7 + LABEL8: + PARAM "Loop i: %d\n" + PARAM i + t31 := CALL printf,2 + + + i := i + 1 + goto LABEL6 + LABEL7: + PARAM "Outer i: %d\n" + PARAM i + t32 := CALL printf,2 + + &sum + + ptr:= &sum + *ptr + PARAM "Value via pointer: %d\n" + PARAM *ptr + t33 := CALL printf,2 + RETURN 0 + FUNC_END main diff --git a/Assignment4/output/output8.txt b/Assignment4/output/output8.txt index 1899ab4..9641044 100644 --- a/Assignment4/output/output8.txt +++ b/Assignment4/output/output8.txt @@ -1,8 +1,13 @@ +hi +hi2 +hi +hi2 +hi +hi2 =====================LIST OF ERRORS=================================== Line 12 : Struct or Union not declared foo Line 30 : Redeclaration error b -Line 59 : Trying to dereference non pointer -Line 61 : Trying to dereference non pointer b +Line 62 : Trying to dereference non pointer b ====================================================================== 1. glb1:= 10 2. FUNC_BEGIN bar @@ -15,49 +20,49 @@ Line 61 : Trying to dereference non pointer b 9. if(b) goto LABEL2 10. goto LABEL1 11. LABEL2: -12. b:= b-1 +12. b := b - 1 13. goto LABEL0 14. LABEL1: -15. t0:= a==0 -16. if(t0) goto LABEL3 +15. t0 := a == 0 +16. if (t0) goto LABEL3 17. goto LABEL4 18. LABEL3: 19. RETURN 0 20. LABEL4: -21. a:= a-1 -22. t1:= a+b -23. t2:= t1+lcl +21. a := a - 1 +22. t1 := a + b +23. t2 := t1 + lcl 24. PARAM a 25. PARAM t2 -26. t3:= CALL bar,2 +26. t3 := CALL bar,2 27. RETURN 1 28. FUNC_END bar 29. FUNC_BEGIN main 30. a:= 100 31. i:= 0 32. LABEL14: -33. t4:= i -#include -#include -#include -#include -#include -#include +#include using namespace std; diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index c49bdbb..514e2c0 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -11,6 +11,8 @@ extern int yylineno; extern char *yytext; + vector> cleaned_TAC; + std::stack parsing_stack; std::stack pointer_info; std::map type_def_mapping; @@ -135,7 +137,10 @@ primary_expression new_symbol->place=newtemp($2->type,curr_scope); new_symbol->type=$2->type; // debug("here ",new_symbol->place.first); - new_symbol->code=$2->code+"\n"+new_symbol->place.first+":= ("+$2->place.first+")"; + string temp=new_symbol->place.first+" := ( "+$2->place.first+" )"; + new_symbol->final_code = $2->final_code; + new_symbol->final_code.push_back({temp,curr_scope}); + new_symbol->code=$2->code+"\n"+temp; $$=new_symbol; } ; @@ -159,18 +164,27 @@ postfix_expression else{ string code=$3->code; qid temp=newtemp(find_symbol->type,curr_scope); + string add_str=""; if(find_symbol->type=="int"){ - code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; + add_str=temp.first+" := "+"4 * "+$3->place.first; + // code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; } else if(find_symbol->type=="float"){ - code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; + add_str=temp.first+" := "+"4 * "+$3->place.first; + // code=code+"\n"+temp.first+":= "+"4 * "+$3->place.first; } else if(find_symbol->type=="char"){ - code=code+"\n"+temp.first+":= "+"2 * "+$3->place.first; + add_str=temp.first+" := "+"2 * "+$3->place.first; + // code=code+"\n"+temp.first+":= "+"2 * "+$3->place.first; } qid temp2=newtemp(find_symbol->type,curr_scope); - code=code+"\n"+temp2.first+":= *("+$1->place.first+" + "+temp.first+")"; + $$->final_code = $3->final_code; + $$->final_code.push_back({add_str,curr_scope}); + code = code + "\n" + add_str; + add_str = temp2.first+" := *( "+$1->place.first+" + "+temp.first+" )"; + $$->final_code.push_back({add_str,curr_scope}); + code=code+"\n"+add_str; $$->code=code; $$->place.first=temp2.first; } @@ -197,12 +211,18 @@ postfix_expression } qid temp=newtemp($1->type,curr_scope); if(find_symbol->type!="void"){ - $$->code=$1->code + temp.first+":= CALL "+$1->place.first + "\n"; + $$->final_code = $1->final_code; + string add_str=$1->code + temp.first+" := CALL "+$1->place.first; + $$->code=add_str + "\n"; + $$->final_code.push_back({add_str,curr_scope}); $$->place=temp; $$->type=find_symbol->type; } else{ - $$->code=$1->code + "CALL "+$1->place.first + "\n"; + $$->final_code = $1->final_code; + string add_str=$1->code + "CALL "+$1->place.first; + $$->code=add_str + "\n"; + $$->final_code.push_back({add_str,curr_scope}); $$->type=find_symbol->type; } @@ -233,16 +253,28 @@ postfix_expression } qid temp=newtemp($1->type,curr_scope); string middle=""; + vector> temp_list; for(int i=0;i<$3->param_list.size();i++){ middle=middle+"PARAM "+$3->param_list[i]+"\n"; + temp_list.push_back({"PARAM "+$3->param_list[i],curr_scope}); } if(find_symbol->type!="void"){ - // debug("idhar",$1->code); - $$->code=$1->code + "\n"+ $3->code + "\n"+ middle + temp.first+":= CALL "+$1->place.first + ","+to_string($3->param_list.size()) + "\n"; + // debug("idhar",$1->code); + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str = middle + temp.first+" := CALL "+$1->place.first + ","+to_string($3->param_list.size()); + $$->code=$1->code + "\n"+ $3->code + "\n"+ add_str + "\n"; + $$->final_code.insert($$->final_code.end(), temp_list.begin(), temp_list.end()); + $$->final_code.push_back({temp.first+" := CALL "+$1->place.first + ","+to_string($3->param_list.size()),curr_scope}); $$->place=temp; $$->type=find_symbol->type; }else{ - $$->code=$1->code + "\n"+ $3->code + "\n"+middle + "CALL "+$1->place.first + ","+to_string($3->param_list.size()) + "\n"; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str = middle + "CALL "+$1->place.first + ","+to_string($3->param_list.size()); + $$->final_code.insert($$->final_code.end(), temp_list.begin(), temp_list.end()); + $$->final_code.push_back({"CALL "+$1->place.first + ","+to_string($3->param_list.size()),curr_scope}); + $$->code=$1->code + "\n"+ $3->code + "\n"+add_str + "\n"; $$->type=find_symbol->type; } } @@ -322,18 +354,35 @@ postfix_expression { if($1->is_array==true){ string code = get_last_line($1->code); - $$->code=$1->code + "\n" + code + ":= "+code+"+1\n"; + + string add_str=code+" := "+code+" + 1"; + $$->code=$1->code + "\n" + add_str + "\n"; + $$->final_code = $1->final_code; + $$->final_code.push_back({add_str,curr_scope}); } - else $$->code=$1->code + "\n" + $1->place.first+":= "+$1->place.first+"+1"; + else { + $$->final_code = $1->final_code; + string add_str= $1->place.first+" := "+$1->place.first+" + 1 "; + $$->code=$1->code + "\n" + add_str + "\n"; + $$->final_code.push_back({add_str,curr_scope}); + } } | postfix_expression DECREMENT { if($1->is_array==true){ string code = get_last_line($1->code); - $$->code=$1->code + "\n" + code + ":= "+code+"-1\n"; + string add_str=code + " := "+code+" - 1 "; + $$->code=$1->code + "\n" + add_str+"\n"; + $$->final_code = $1->final_code; + $$->final_code.push_back({add_str,curr_scope}); } - else $$->code=$1->code + "\n" + $1->place.first+":= "+$1->place.first+"-1"; + else { + string add_str= $1->place.first+" := "+$1->place.first+" - 1 "; + $$->final_code = $1->final_code; + $$->code=$1->code + "\n" + add_str + "\n"; + $$->final_code.push_back({add_str,curr_scope}); + } } ; @@ -343,6 +392,7 @@ argument_expression_list if($1->place.first!=""){ // debug("herrrr ", $1->code); $$->code=$1->code; + $$->final_code = $1->final_code; $$->param_types.push_back($1->type); $$->param_list.push_back($1->place.first); } @@ -373,6 +423,8 @@ argument_expression_list { if($3->place.first!=""){ + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); $$->code=$1->code + "\n" + $3->code; //debug("herrrrrrrrrrr ", $3->place.first); $$->param_types.push_back($1->type); @@ -429,7 +481,10 @@ unary_expression } $$->name=$2->name; - $$->code=$2->code+"\n"+$1->code+$2->place.first; + string add_str=$1->code+$2->place.first; + $$->final_code = $2->final_code; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$2->code+"\n"+add_str+"\n"; $$->place.first=$1->code+$2->place.first; } | SIZEOF unary_expression @@ -500,7 +555,11 @@ multiplicative_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"*"+$3->place.first; + string add_str=var.first+" := "+$1->place.first+" * "+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | multiplicative_expression DIVIDE cast_expression @@ -508,7 +567,11 @@ multiplicative_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"/"+$3->place.first; + string add_str=var.first+" := "+$1->place.first+" / "+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | multiplicative_expression MODULO cast_expression @@ -519,7 +582,11 @@ multiplicative_expression error_list.push_back("Line "+to_string(yylineno)+" : Modulo operator can only be used with int type"); } qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"%"+$3->place.first; + string add_str=var.first+" := "+$1->place.first+" % "+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -531,7 +598,11 @@ additive_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"+"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" + "+$3->place.first + "\n"; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str; $$->place=var; } | additive_expression MINUS multiplicative_expression @@ -539,7 +610,11 @@ additive_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"-"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" - "+$3->place.first + "\n"; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str; $$->place=var; } ; @@ -554,7 +629,10 @@ shift_expression error_list.push_back("Line "+to_string(yylineno)+" : Left shift operator can only be used with int type"); } qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<<"+$3->place.first; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" << "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | shift_expression RIGHT_SHIFT additive_expression @@ -565,7 +643,10 @@ shift_expression error_list.push_back("Line "+to_string(yylineno)+" : Right shift operator can only be used with int type"); } qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">>"+$3->place.first; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" >> "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -577,7 +658,11 @@ relational_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" < "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | relational_expression GREATER_THAN shift_expression @@ -585,7 +670,11 @@ relational_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" > "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | relational_expression LESS_EQUALS shift_expression @@ -593,7 +682,11 @@ relational_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"<="+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" <= "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } @@ -602,7 +695,11 @@ relational_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+">="+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" >= "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -614,7 +711,11 @@ equality_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"=="+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" == "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } | equality_expression REL_NOT_EQ relational_expression @@ -622,7 +723,11 @@ equality_expression $$ = $1; $$->type = priority_to_type[max(type_priority[$1->type],type_priority[$3->type])]; qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"!="+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" != "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -649,7 +754,11 @@ exclusive_or_expression error_list.push_back("Line "+to_string(yylineno)+" : XOR operator can only be used with int type"); } qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"^"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" ^ "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -664,7 +773,11 @@ inclusive_or_expression error_list.push_back("Line "+to_string(yylineno)+" : OR operator can only be used with int type"); } qid var=newtemp($1->type,curr_scope); - $$->code=$1->code + "\n" + $3->code +"\n" + var.first+":= "+$1->place.first+"|"+$3->place.first; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" | "+$3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$1->code + "\n" + $3->code +"\n" + add_str + "\n"; $$->place=var; } ; @@ -722,11 +835,17 @@ assignment_expression //checkerror //3AC code kabhi toh karenge qid var=newtemp(find_symbol->type,curr_scope); + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=var.first+" := "+$1->place.first+" + "+offset; string tempo=""; tempo=tempo+$1->code; tempo=tempo+"\n"+$3->code; - tempo=tempo+"\n"+var.first+":= "+$1->place.first+"+"+offset; - tempo=tempo+"\n*"+var.first+":= "+$3->place.first; + tempo=tempo+"\n"+add_str; + $$->final_code.push_back({add_str,curr_scope}); + add_str="*"+var.first+" := "+$3->place.first; + tempo=tempo+"\n"+add_str + "\n"; + $$->final_code.push_back({add_str,curr_scope}); $$->code=$$->code + tempo; $$->place=var; } @@ -750,7 +869,11 @@ assignment_expression find_symbol->name=$1->name; find_symbol->place=$1->place; - find_symbol->code=$1->code + "\n" + $3->code + "\n" + $1->place.first + ":= " + $3->place.first; + find_symbol->final_code=$1->final_code; + find_symbol->final_code.insert(find_symbol->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str=$1->place.first + ":= " + $3->place.first; + find_symbol->final_code.push_back({add_str,curr_scope}); + find_symbol->code=$1->code + "\n" + $3->code + "\n" + add_str + "\n"; //3AC code if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='+' && $3->place.first[0]!='-' && $3->place.first[0]!='~' && $3->place.first[0]!='!') @@ -765,12 +888,19 @@ assignment_expression string code=""; qid temp=newtemp($1->type,curr_scope); string prev=($1->place.first).erase(0,count_init_starr); + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + string add_str; for(int i=0;ifinal_code.push_back({add_str,curr_scope}); prev=temp.first; temp=newtemp($1->type,curr_scope); } - code=code+"\n"+"*"+prev+":= "+$3->place.first; + add_str="*"+prev+" := "+$3->place.first; + code=code+"\n"+add_str+"\n"; + $$->final_code.push_back({add_str,curr_scope}); $$->code=$1->code+"\n"+$3->code+"\n"+code; $$->place=temp; } @@ -779,15 +909,21 @@ assignment_expression int count_init_starr=count_init_star($3->place.first); if(count_init_starr>1){ flag=1; - string code=""; + string code="",add_str=""; qid temp=newtemp($3->type,curr_scope); string prev=($3->place.first).erase(0,count_init_starr); + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); for(int i=0;ifinal_code.push_back({add_str,curr_scope}); + code=code+"\n"+add_str; prev=temp.first; temp=newtemp($3->type,curr_scope); } - code=code+"\n"+$1->place.first+":= *"+temp.first; + add_str=$1->place.first+" := *"+temp.first; + code=code+"\n"+add_str+"\n"; + $$->final_code.push_back({add_str,curr_scope}); $$->code=$1->code+"\n"+$3->code+"\n"+code; $$->place=$1->place; } @@ -795,7 +931,12 @@ assignment_expression if(flag==0){ if(find_symbol->is_array==true){ string code=remove_equal(first_code); - $$->code=$3->code+"\n"+code+":= "+$3->place.first+"\n"; + string add_str = find_last_line(code); + $$->final_code = $3->final_code; + $$->final_code.push_back({add_str,curr_scope}); + add_str = code + " := " + $3->place.first; + $$->final_code.push_back({add_str,curr_scope}); + $$->code=$3->code+"\n"+add_str+"\n"; } else{ string op=$2->code; @@ -804,6 +945,9 @@ assignment_expression if(tcode=="error"){ error_list.push_back("Line "+to_string(yylineno)+" : Invalid assignment operator"); } + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({tcode,curr_scope}); $$->code=$1->code + "\n" + third_code + "\n" + tcode+"\n"; $$->place=$1->place; } @@ -838,6 +982,8 @@ expression } | expression COMMA assignment_expression { + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); $$->code=$1->code + "\n" + $3->code; } ; @@ -932,7 +1078,18 @@ declaration } // debug("declaration specifiers ", to_string(parsing_stack.size())); $$->code=code; - + $$->final_code = {}; + int index=0; + string temp=""; + while(index<$$->code.size()){ + while(index<$$->code.size() && $$->code[index]!='\n'){ + temp+=$$->code[index]; + index++; + } + $$->final_code.push_back({temp,curr_scope}); + temp=""; + index++; + } //debug("Declaration: ",curr_scope->symbol_map["p"]->code); } ; @@ -961,6 +1118,8 @@ init_declarator_list } | init_declarator_list COMMA init_declarator { $$=$3; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); $$->code = $1->code + "\n" + $3->code; } ; @@ -978,11 +1137,13 @@ init_declarator curr_scope->symbol_map[$1->name]->is_array=true; curr_scope->symbol_map[$1->name]->array_length=$1->array_length; if($1->type=="int" || $1->type=="float"){ - string code=$1->name+":= alloc " +to_string(4*$1->array_length); + string code=$1->name+" := alloc " +to_string(4*$1->array_length); $$->code=code; + $$->final_code.push_back({code,curr_scope}); } else if($1->type=="char"){ - string code=$1->name+":= alloc " +to_string(2*$1->array_length); + string code=$1->name+" := alloc " +to_string(2*$1->array_length); + $$->final_code.push_back({code,curr_scope}); $$->code=code; } } @@ -1011,7 +1172,7 @@ init_declarator $1->int_array = $3->int_array; $1->type = $3->type; curr_scope->symbol_map[$1->name]->is_array=true; - string code=$1->name+":= alloc "; + string code=$1->name+" := alloc "; if($1->type=="int" || $1->type=="float"){ code=code+to_string(4*$1->array_length); } @@ -1021,22 +1182,45 @@ init_declarator for(int i=0;i<$1->array_length;i++){ qid temp=newtemp($1->type,curr_scope); code=code+"\n"+temp.first+":= "+to_string(i)+"*"; - if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(int*)($1->int_array[i]->ptr)); - else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ):= "+to_string(*(float*)($1->int_array[i]->ptr)); - else if($1->type=="char") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+char(*(char*)($1->int_array[i]->ptr)); - else if($1->type=="char*") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ):= "+$1->int_array[i]->str_val; + if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(int*)($1->int_array[i]->ptr)); + else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(float*)($1->int_array[i]->ptr)); + else if($1->type=="char") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ) := "+char(*(char*)($1->int_array[i]->ptr)); + else if($1->type=="char*") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ) := "+$1->int_array[i]->str_val; } $$->code=code; + int index=0; + string temp=""; + while(indexfinal_code.push_back({temp,curr_scope}); + temp=""; + index++; + } + } } - if($1->is_array==false){ + if(!$1->is_array){ $$ = $1; - if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='-' && $3->place.first[0]!='!'){ - $3->code=""; - } - - $$->code=$3->code+"\n"+$1->place.first+":= "+$3->place.first; - $$->place=$1->place; + if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='-' && $3->place.first[0]!='!'){ + $3->code=""; + } + + $$->code=$3->code+"\n"+$1->place.first+":= "+$3->place.first; + int index=0; + string temp=""; + while(index<$$->code.size()){ + while(index<$$->code.size() && $$->code[index]!='\n'){ + temp+=$$->code[index]; + index++; + } + $$->final_code.push_back({temp,curr_scope}); + temp=""; + index++; + } + $$->place=$1->place; } } ; @@ -1392,14 +1576,17 @@ labeled_statement string label=goto_list[$1]; // debug("labellllll", $3->code); + $$->final_code.push_back({label + ":",curr_scope}); $$->code=label+":\n"+$3->code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); // debug("label", $$->code); } else{ - //debug("labellllll", $3->code); + //debug("labellllll", $3->code); string label=newlabel(); + $$->final_code.push_back({label + ":",curr_scope}); $$->code=label+":\n"+$3->code; - + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); goto_list[$1]=label; } curr_scope->symbol_map[$1]=new symbol_info(); @@ -1420,14 +1607,17 @@ labeled_statement string label=goto_list[$1]; // debug("labellllll", $3->code); + $$->final_code.push_back({label + ":",curr_scope}); $$->code=label+":\n"+$3->code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); // debug("label", $$->code); } else{ //debug("labellllll", $3->code); string label=newlabel(); + $$->final_code.push_back({label + ":",curr_scope}); $$->code=label+":\n"+$3->code; - + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); goto_list[$1]=label; } curr_scope->symbol_map[$1]=new symbol_info(); @@ -1439,7 +1629,9 @@ labeled_statement | CASE constant_expression COLON statement { string label=newlabel(); + $$->final_code.push_back({label + ":",curr_scope}); $$->code = label +":\n"+ $4->code; + $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); case_list.top().push({$2->code,label}); } @@ -1447,7 +1639,9 @@ labeled_statement { string label=newlabel(); case_list.top().push({"default",label}); + $$->final_code.push_back({label + ":",curr_scope}); $$->code = label+":\n"+ $3->code; + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); } ; @@ -1471,6 +1665,7 @@ compound_statement symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=$3->code; + $$->final_code = $3->final_code; $$->is_return=$3->is_return; $$->return_type=$3->return_type; all_scopes.push_back(curr_scope);curr_scope = curr_scope->parent; @@ -1478,14 +1673,22 @@ compound_statement | LBRACE {curr_scope = new scoped_symtab(curr_scope);} statement_list RBRACE {symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=$3->code; + $$->final_code = $3->final_code; all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} | LBRACE {curr_scope = new scoped_symtab(curr_scope);} declaration_list RBRACE {symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=$3->code; + $$->final_code = $3->final_code; all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} - | LBRACE {curr_scope = new scoped_symtab(curr_scope);} declaration_list statement_list RBRACE {symbol_info* new_symbol=new symbol_info(); - $$=new_symbol; - $$->code=$3->code+"\n"+$4->code;all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent;} + | LBRACE {curr_scope = new scoped_symtab(curr_scope);} declaration_list statement_list RBRACE + { + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code+"\n"+$4->code; + $$->final_code = $3->final_code; + $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); + all_scopes.push_back(curr_scope); curr_scope = curr_scope->parent; + } ; statement_declaration_list @@ -1493,6 +1696,8 @@ statement_declaration_list { symbol_info* new_symbol=new symbol_info(); $$=new_symbol; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); $$->code=$1->code + "\n" + $2->code; $$->is_return=($1->is_return)|($2->is_return); // if($1->return_type!="") $$->return_type=$1->return_type; @@ -1505,6 +1710,8 @@ statement_declaration_list { symbol_info* new_symbol=new symbol_info(); $$=new_symbol; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); $$->code=$1->code + "\n" + $2->code; $$->is_return=$2->is_return; // $$->return_type=$2->return_type; @@ -1517,6 +1724,7 @@ statement_declaration_list symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=$1->code; + $$->final_code = $1->final_code; $$->is_return=$1->is_return; //dikkat badi hai // $$->return_type=$1->return_type; @@ -1533,11 +1741,14 @@ declaration_list symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=$1->code; + $$->final_code = $1->final_code; //debug("declaration_list", $$->code); } | declaration_list declaration { $$->code=$1->code + "\n" + $2->code; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); } | error SEMICOLON {yyerrok;} ; @@ -1552,7 +1763,8 @@ statement_list // if($1->return_type!="") $$->return_type=$1->return_type; // else $$->return_type=$2->return_type; $$->code=$1->code + "\n" + $2->code; - + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); } | error SEMICOLON {yyerrok;} ; @@ -1567,20 +1779,40 @@ selection_statement { string truelabel=newlabel(); string falselabel=newlabel(); - $$->code=$3->code+"\n"+"if("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+falselabel+":\n"; + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code+"\n"+"if ("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+falselabel+":\n"; + $$->final_code = $3->final_code; + $$->final_code.push_back({"if ("+ $3->place.first +") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"goto "+falselabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({falselabel+":",curr_scope}); } | IF LPARENTHESES expression RPARENTHESES statement ELSE statement { string truelabel=newlabel(); string falselabel=newlabel(); string endlabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; $$->code=$3->code+"\n"+"if("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+endlabel+"\n"+falselabel+":\n"+$7->code+"\n"+endlabel+":\n"; + $$->final_code = $3->final_code; + $$->final_code.push_back({"if("+ $3->place.first +") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"goto "+falselabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({"goto "+endlabel,curr_scope}); + $$->final_code.push_back({falselabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $7->final_code.begin(), $7->final_code.end()); + $$->final_code.push_back({endlabel+":",curr_scope}); } | SWITCH{queue> q; case_list.push(q); }LPARENTHESES expression RPARENTHESES statement { string str=""; + vector> temp; while(!case_list.top().empty()){ string label=case_list.top().front().second; string case_value=case_list.top().front().first; @@ -1588,12 +1820,22 @@ selection_statement if(case_value=="default") { str+="goto "+label+"\n"; + temp.push_back({"goto "+label,curr_scope}); } - else str+="if("+$4->place.first+"=="+case_value+") goto "+label+"\n"; + else{ + str+="if("+$4->place.first+"=="+case_value+") goto "+label+"\n"; + temp.push_back({"if("+$4->place.first+"=="+case_value+") goto "+label,curr_scope}); + } } string endlabel=newlabel(); + $$=new symbol_info(); $$->code= $4->code+"\n"+str+"\n"+$6->code+"\n"+endlabel+":\n"; + $$->final_code = $4->final_code; + $$->final_code.insert($$->final_code.end(), temp.begin(), temp.end()); + $$->final_code.insert($$->final_code.end(), $6->final_code.begin(), $6->final_code.end()); + $$->final_code.push_back({endlabel+":",curr_scope}); $$->code=replace_break_continue($$->code,endlabel," ",1); + $$->final_code=replace_break_continue_final($$->final_code,endlabel," ",1); case_list.pop(); } ; @@ -1607,7 +1849,17 @@ iteration_statement symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code=startlabel+":\n"+$3->code+"\n"+"if("+$3->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->final_code.push_back({startlabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({"if("+$3->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"goto "+endlabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({"goto "+startlabel,curr_scope}); + $$->final_code.push_back({endlabel+":",curr_scope}); + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } | DO statement WHILE LPARENTHESES expression RPARENTHESES SEMICOLON { @@ -1616,8 +1868,16 @@ iteration_statement string truelabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; + $$->final_code.push_back({startlabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({"if("+$5->place.first+") goto "+startlabel,curr_scope}); + $$->final_code.push_back({"goto "+endlabel,curr_scope}); + $$->final_code.push_back({endlabel+":",curr_scope}); $$->code=startlabel+":\n"+$2->code+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"if("+$5->place.first+") goto "+startlabel+"\n"+"goto "+endlabel+"\n"+endlabel+":\n"; $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } | FOR LPARENTHESES expression_statement expression_statement RPARENTHESES statement { @@ -1626,8 +1886,18 @@ iteration_statement string truelabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; + $$->final_code = $3->final_code; + $$->final_code.push_back({startlabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); + $$->final_code.push_back({"if("+$4->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"goto "+endlabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $6->final_code.begin(), $6->final_code.end()); + $$->final_code.push_back({"goto "+startlabel,curr_scope}); + $$->final_code.push_back({endlabel+":",curr_scope}); $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$6->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; - $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } | FOR LPARENTHESES expression_statement expression_statement expression RPARENTHESES statement { @@ -1637,11 +1907,21 @@ iteration_statement string updatelabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; - + $$->final_code = $3->final_code; + $$->final_code.push_back({startlabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); + $$->final_code.push_back({"if("+$4->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"goto "+endlabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $7->final_code.begin(), $7->final_code.end()); + $$->final_code.push_back({updatelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({"goto "+startlabel,curr_scope}); + $$->final_code.push_back({endlabel+":",curr_scope}); $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$7->code+"\n"+updatelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; - $$->code=replace_break_continue($$->code,endlabel,updatelabel,0); - - } + $$->code=replace_break_continue($$->code,endlabel,updatelabel,0); + $$->final_code=replace_break_continue_final($$->final_code,endlabel,updatelabel,0); + } ; jump_statement @@ -1652,6 +1932,7 @@ jump_statement string label=newlabel(); goto_list[$2]=label; symbol_info* new_symbol=new symbol_info(); + new_symbol->final_code.push_back({"goto "+label,curr_scope}); new_symbol->code="goto "+label+"\n"; $$=new_symbol; } @@ -1659,6 +1940,7 @@ jump_statement symbol_info* new_symbol=new symbol_info(); $$=new_symbol; string label=goto_list[$2]; + $$->final_code.push_back({"goto "+label,curr_scope}); $$->code="goto "+label+"\n"; // debug("goto", $$->code); } @@ -1673,6 +1955,7 @@ jump_statement symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->is_continue=true; + $$->final_code.push_back({"continue",curr_scope}); $$->code="\n continue \n"; } | BREAK SEMICOLON @@ -1680,6 +1963,7 @@ jump_statement symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->is_break=true; + $$->final_code.push_back({"break",curr_scope}); $$->code="\n break \n"; } | RETURN SEMICOLON @@ -1688,6 +1972,7 @@ jump_statement $$=new_symbol; $$->is_return=true; $$->return_type="void"; + $$->final_code.push_back({"RETURN",curr_scope}); $$->code="\nRETURN\n"; } | RETURN expression SEMICOLON @@ -1696,6 +1981,8 @@ jump_statement $$=new_symbol; $$->is_return=true; $$->return_type=$2->type; + $$->final_code = $2->final_code; + $$->final_code.push_back({"RETURN "+$2->place.first,curr_scope}); $$->code=$2->code + "\nRETURN "+$2->place.first+"\n"; //debug("return ",$$->code); } @@ -1707,16 +1994,22 @@ start_symbol: translation_unit print_errors(); cleanTAC($1->code); + cerr<final_code); + print_vector($1->final_code); } ; translation_unit : external_declaration { $$->code=$1->code; + $$->final_code = $1->final_code; } | translation_unit external_declaration { $$->code=$1->code+$2->code; + $$->final_code = $1->final_code; + $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); } | ; @@ -1758,12 +2051,17 @@ function_definition symbol_info* new_symbol=new symbol_info(); $$=new_symbol; $$->code="\nFUNC_BEGIN "+$2->name+"\n"; + $$->final_code.push_back({"FUNC_BEGIN "+$2->name,curr_scope}); for(int i=0;i<$2->param_list.size();i++){ + $$->final_code.push_back({"param"+std::to_string(i)+" := PARAM",curr_scope}); $$->code=$$->code+"param"+std::to_string(i)+" := PARAM\n"; } for(int i=0;i<$2->param_list.size();i++){ + $$->final_code.push_back({$2->param_list[i]+" := param"+std::to_string(i),curr_scope}); $$->code=$$->code+$2->param_list[i]+" := param"+std::to_string(i)+"\n"; } + $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); + $$->final_code.push_back({"FUNC_END "+$2->name,curr_scope}); $$->code=$$->code+$4->code+"\nFUNC_END "+$2->name+"\n"; } @@ -1866,5 +2164,5 @@ int main() { curr_scope->symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); - print_scope_table(); + // print_scope_table(); } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 0702900..a8ec1fd 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,7 +1,15 @@ - +int add(){ + int x = 0; + int y=x+6; + int z=x*y-9; + return z; +} int main(){ - int a=3; - int b=4; - int c=a+b; + int k=add(); + int i=add(); return 0; + while(1){ + int i=0; + i++; + } } \ No newline at end of file diff --git a/Assignment4/test/input8.c b/Assignment4/test/input8.c index ca7f2b3..e6e77e2 100644 --- a/Assignment4/test/input8.c +++ b/Assignment4/test/input8.c @@ -56,8 +56,9 @@ int main() jump: struct foo newS[5]; // printf("Final = %d", newS[3].b + ret); - if (*(b + 2) == 0) + if (i==0){ goto jump; + } bar(1, *b); return 0; } \ No newline at end of file From 08ef9077c5e3850f824223971b24cb8147e98a4c Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Wed, 23 Apr 2025 21:10:32 +0000 Subject: [PATCH 05/52] addedd passes and stack --- Assignment4/src/codegen.cpp | 395 ++++++++++++++++++++++++++---------- 1 file changed, 284 insertions(+), 111 deletions(-) diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 142282b..b25deba 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1,20 +1,44 @@ -#include - +#include +#include +#include +#include +#include +#include +#include +#include using namespace std; -// --- Global Variables --- -unordered_map regMap; -vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; +// Simulated symbol table structure +struct symbol_info { + string name, type, str_val, return_type, code; + void* ptr = nullptr; + int symbol_size = 0; + bool is_array = false, is_param_list = false, is_return = false; + int array_length = 0, parameter_no = 0, pointer_depth = 0; + vector int_array, struct_attr_values; + vector param_types, param_list; +}; -unordered_map constValue = { - {"a", "3"}, - {"b", "4"} +// Symbol table type +struct symbol_table { + unordered_map symbol_map; }; -// Track loaded constants to avoid redundant li -unordered_map loadedConstants; +map,string> var_to_reg; +unordered_map> reg_to_var; +map funcStackSize; +// --- Global Variables --- +unordered_map regMap; +vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "$t9"}; vector mipsCode; +unordered_map loadedConstants; +unordered_map reg_of_const; + +vector operators = { + "==", "!=", "<=", ">=", "&&", "||", "+=", "-=", "*=", "/=", "%=", + "<<", ">>", "<", ">", "+", "-", "*", "/", "%", "=", "&", "|", "^", "!", "~" +}; // --- Helper Functions --- string trim(const string& s) { @@ -23,139 +47,288 @@ string trim(const string& s) { return (start == string::npos) ? "" : s.substr(start, end - start + 1); } -bool isConstant(const string& s) { +bool isConstantLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } -string getRegister(const string& var) { - if (regMap.count(var)) return regMap[var]; +string getRegister(symbol_table* scope,const string& var) { + if(var_to_reg.count({scope,var})) { + return var_to_reg[{scope,var}]; + } + // if (regMap.count(var)) return regMap[var]; if (availableRegs.empty()) { cerr << "Register spill not handled\n"; exit(1); } string reg = availableRegs.back(); availableRegs.pop_back(); - regMap[var] = reg; + var_to_reg[{scope,var}] = reg; return reg; } -// --- MIPS Code Generator --- -void generateMIPS(const string& line) { - string trimmed = trim(line); - - if (trimmed.find("FUNC_BEGIN") == 0) { - istringstream iss(trimmed); - string dummy, funcName; - iss >> dummy >> funcName; - mipsCode.push_back(funcName + ":"); - mipsCode.push_back(" addi $sp, $sp, -16"); - mipsCode.push_back(" sw $ra, 4($sp)"); - mipsCode.push_back(" sw $fp, 0($sp)"); - mipsCode.push_back(" move $fp, $sp"); - return; +pair find_operator(const string& line) { + string detectedOp; + size_t opPos = string::npos; + for (const string& op : operators) { + size_t pos = line.find(op); + if (pos != string::npos && (opPos == string::npos || pos < opPos)) { + opPos = pos; + detectedOp = op; + } } + return {opPos, detectedOp}; +} + +void generate_func_begin_MIPS(const string &func, int stackSize) { + mipsCode.push_back(func + ":"); + mipsCode.push_back(" addi $sp, $sp, -" + to_string(stackSize)); + mipsCode.push_back(" sw $ra, " + to_string(stackSize - 4) + "($sp)"); + mipsCode.push_back(" sw $fp, " + to_string(stackSize - 8) + "($sp)"); + mipsCode.push_back(" move $fp, $sp"); +} - if (trimmed.find("FUNC_END") == 0) { - mipsCode.push_back(" move $sp, $fp"); - mipsCode.push_back(" lw $fp, 0($sp)"); - mipsCode.push_back(" lw $ra, 4($sp)"); - mipsCode.push_back(" addi $sp, $sp, 16"); - mipsCode.push_back(" jr $ra"); - - // Clear tracking state for new functions - regMap.clear(); - availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; - loadedConstants.clear(); +void generate_func_end_MIPS(const string &func, int stackSize) { + mipsCode.push_back(" move $sp, $fp"); + mipsCode.push_back(" lw $fp, " + to_string(stackSize - 8) + "($sp)"); + mipsCode.push_back(" lw $ra, " + to_string(stackSize - 4) + "($sp)"); + mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); + mipsCode.push_back(" jr $ra"); + regMap.clear(); + availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; + loadedConstants.clear(); +} + +void generate_return_MIPS(string val) { + + mipsCode.push_back(" li $v0, " + val); +} + +// --- Operation/Assignment Handlers --- +void load_if_constant(symbol_table* scope, const string& var, const string& reg) { + if (loadedConstants[var]) return; + if(isConstantLiteral(var)) { + if(reg_of_const.count(var)) { + mipsCode.push_back(" move " + reg + ", " + reg_of_const[var]); + cout << "Loaded constant literal " << var << " into " << reg << endl; + return; + } + mipsCode.push_back(" li " + reg + ", " + var); + loadedConstants[var] = true; + reg_of_const[var]=reg; + cout << "Loaded constant literal " << var << " into " << reg << endl; return; } + + symbol_info* sym = scope->symbol_map[var]; + if (sym && sym->ptr && sym->type == "int") { + int* val = static_cast(sym->ptr); + mipsCode.push_back(" li " + reg + ", " + to_string(*val)); + loadedConstants[var] = true; + cout << "Loaded constant " << var << " into " << reg << endl; + } + +} - if (trimmed.find("RETURN") == 0) { - istringstream iss(trimmed); - string keyword, val; - iss >> keyword >> val; - mipsCode.push_back(" li $v0, " + val); - return; +void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, symbol_table* scope) { + cout<<"Handling operation: " << lhs << " := " << rhs << endl; + string op1 = trim(rhs.substr(0, operator_pos)); + string op2 = trim(rhs.substr(operator_pos + opp.size())); + string r1 = getRegister(scope,op1); + string r2 = getRegister(scope,op2); + string rd = getRegister(scope,lhs); + cout<<"Operation: " << op1 << " " << opp << " " << op2 << endl; + cout<<"Registers: " << r1 << ", " << r2 << ", " << rd << endl; + load_if_constant(scope, op1, r1); + load_if_constant(scope, op2, r2); + + if (opp == "+") mipsCode.push_back(" add " + rd + ", " + r1 + ", " + r2); + else if (opp == "-") mipsCode.push_back(" sub " + rd + ", " + r1 + ", " + r2); + else if (opp == "*") mipsCode.push_back(" mul " + rd + ", " + r1 + ", " + r2); + else if (opp == "/") { + mipsCode.push_back(" div " + r1 + ", " + r2); + mipsCode.push_back(" mflo " + rd); } + // Extend here with ==, !=, <, etc. +} - if (trimmed.find(":=") != string::npos) { - size_t lhsEnd = trimmed.find(":="); - string lhs = trim(trimmed.substr(0, lhsEnd)); - string rhs = trim(trimmed.substr(lhsEnd + 2)); - - size_t opPos = rhs.find_first_of("+-*/"); - - if (opPos != string::npos) { - string op1 = trim(rhs.substr(0, opPos)); - string op2 = trim(rhs.substr(opPos + 1)); - char op = rhs[opPos]; - - string r1 = getRegister(op1); - string r2 = getRegister(op2); - string rd = getRegister(lhs); - - // if (constValue.count(op1) && !loadedConstants[op1]) { - // mipsCode.push_back(" li " + r1 + ", " + constValue[op1]); - // loadedConstants[op1] = true; - // } - // if (constValue.count(op2) && !loadedConstants[op2]) { - // mipsCode.push_back(" li " + r2 + ", " + constValue[op2]); - // loadedConstants[op2] = true; - // } - - switch (op) { - case '+': mipsCode.push_back(" add " + rd + ", " + r1 + ", " + r2); break; - case '-': mipsCode.push_back(" sub " + rd + ", " + r1 + ", " + r2); break; - case '*': mipsCode.push_back(" mul " + rd + ", " + r1 + ", " + r2); break; - case '/': - mipsCode.push_back(" div " + r1 + ", " + r2); - mipsCode.push_back(" mflo " + rd); - break; - } - } else { - string dst = getRegister(lhs); - if (constValue.count(rhs) && !loadedConstants[rhs]) { - mipsCode.push_back(" li " + dst + ", " + constValue[rhs]); - loadedConstants[rhs] = true; - // cout<<"Loaded constant: " << rhs << " into " << dst << endl; - } else if (isConstant(rhs)) { - mipsCode.push_back(" li " + dst + ", " + rhs); - cout<<"Loaded constant: " << rhs << " into " << dst << endl; - } else { - string src = getRegister(rhs); - mipsCode.push_back(" move " + dst + ", " + src); - } +void handle_assignment(string lhs, string rhs, symbol_table* scope) { + cout<<"Handling assignment: " << lhs << " := " << rhs << endl; + string dst = getRegister(scope,lhs); + if (isConstantLiteral(rhs)) { + if(reg_of_const.count(rhs)) { + mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); + loadedConstants[lhs] = true; + cout << "Loaded constant literal " << rhs << " into " << dst << endl; + return; } + mipsCode.push_back(" li " + dst + ", " + rhs); + loadedConstants[lhs] = true; + reg_of_const[rhs]=dst; + } else { + + string src = getRegister(scope,rhs); + mipsCode.push_back(" move " + dst + ", " + src); } } - -// --- Main Function --- -int main() { - ifstream infile("../output/output1.txt"); - if (!infile.is_open()) { - cerr << "Cannot open input file\n"; - return 1; +int get_symbol_size(symbol_info* sym) { + if (sym->is_array) { + return sym->symbol_size * sym->array_length; + } + if (!sym->struct_attr_values.empty()) { + int total = 0; + for (auto* attr : sym->struct_attr_values) { + total += get_symbol_size(attr); + } + return total; + } + if (sym->pointer_depth > 0) { + return 4; // assuming 4 bytes per pointer } + return sym->symbol_size; +} + +int get_size_from_type(string type) { + if (type == "int") return 4; + else if (type == "float") return 4; + else if(type == "char")return 1; + else if(type == "bool")return 1; +} + +int calculate_function_stack_size(symbol_table* scope) { + int size = 0; - vector cleanedLines; - string line; + for (const auto& [name, sym] : scope->symbol_map) { + if (!sym->is_param_list && !sym->is_return) { + size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); + } + } + size += 8; // Space for old FP and RA + return size; +} - while (getline(infile, line)) { - line = trim(line); - size_t dotPos = line.find('.'); - if (dotPos != string::npos) { - line = trim(line.substr(dotPos + 1)); // remove line number and trim again +void pass1(vector>& codeList){ + for(auto &code : codeList){ + string t = trim(code.first); + if(t.empty()){ + cout << "empty codelist error" << endl; + } + else{ + if(t.rfind("FUNC_BEGIN", 0) == 0){ + symbol_table* scope = code.second; + int stack_size = calculate_function_stack_size(scope); + istringstream iss(t); + string dummy, funcName; + iss >> dummy >> funcName; + int frameBytes = calculate_function_stack_size(scope); + funcStackSize[funcName] = frameBytes; + } } - if (!line.empty()) cleanedLines.push_back(line); } +} - for (const string& codeLine : cleanedLines) { - generateMIPS(codeLine); + +void pass2(vector>& codeList){ + for(auto &code : codeList){ + string t = trim(code.first); + cout << t << "\n"; + if (t.empty()){ + cout << "empty codelist error" << endl; + } + else{ + if(t.rfind("FUNC_BEGIN", 0) == 0){ + istringstream iss(t); + string dummy, funcName; + iss >> dummy >> funcName; + generate_func_begin_MIPS(funcName, funcStackSize[funcName]); + } + else if (t.rfind("FUNC_END",0) == 0) { + istringstream iss(t); + string dummy, funcName; + iss >> dummy >> funcName; + generate_func_end_MIPS(funcName, funcStackSize[funcName]); + continue; + } + else if(t.rfind("RETURN",0) == 0){ + istringstream iss(t); + string keyword, val; + iss >> keyword >> val; + generate_return_MIPS(val); + } + if (t.find(":=") != string::npos) { + size_t lhsEnd = t.find(":="); + string lhs = trim(t.substr(0, lhsEnd)); + string rhs = trim(t.substr(lhsEnd + 2)); + + auto [opPos, opp] = find_operator(rhs); + if (opPos != string::npos) handle_operation(lhs, rhs, opPos, opp, code.second); + else handle_assignment(lhs, rhs, code.second); + } + } } +} + + + +// --- Main MIPS Generator per line --- +// void generateMIPS(const string& line, symbol_table* scope) { +// cout<<"Processing line: " << line << endl; +// string trimmed = trim(line); +// if (trimmed.find("FUNC_BEGIN") == 0) return generate_func_begin_MIPS(trimmed); +// if (trimmed.find("FUNC_END") == 0) return generate_func_end_MIPS(trimmed); +// if (trimmed.find("RETURN") == 0) return generate_return_MIPS(trimmed); + +// if (trimmed.find(":=") != string::npos) { +// size_t lhsEnd = trimmed.find(":="); +// string lhs = trim(trimmed.substr(0, lhsEnd)); +// string rhs = trim(trimmed.substr(lhsEnd + 2)); + +// auto [opPos, opp] = find_operator(rhs); +// if (opPos != string::npos) handle_operation(lhs, rhs, opPos, opp, scope); +// else handle_assignment(lhs, rhs, scope); +// } +// } + +// --- Main --- +int main() { + // Simulated 3AC input with dummy symbol_table* + vector> codeList; + + // Example symbol table with values + auto* globalScope = new symbol_table(); + int a_val = 2, b_val = 3; + globalScope->symbol_map["d"] = new symbol_info{"d", "int"}; + globalScope->symbol_map["e"] = new symbol_info{"e", "int"}; + globalScope->symbol_map["d"]->ptr = &a_val; + globalScope->symbol_map["e"]->ptr = &b_val; + globalScope->symbol_map["a"] = new symbol_info{"a", "int"}; + globalScope->symbol_map["b"] = new symbol_info{"b", "int"}; + + + // Example 3AC with symbol table per line + // codeList.push_back({"FUNC_BEGIN main", globalScope}); + // codeList.push_back({"a := 3", globalScope}); + // codeList.push_back({"b := 3", globalScope}); + // codeList.push_back({"c := a", globalScope}); + // codeList.push_back({"d := b + a", globalScope}); + // codeList.push_back({"e := d + c", globalScope}); + // codeList.push_back({"RETURN 0", globalScope}); + // codeList.push_back({"FUNC_END main", globalScope}); + codeList.push_back({"FUNC_BEGIN add", globalScope}); + codeList.push_back({"d := 2", globalScope}); + codeList.push_back({"e := 3", globalScope}); + codeList.push_back({"RETURN d + e", globalScope}); + codeList.push_back({"FUNC_END add", globalScope}); + + // for (const auto& [code, scope] : codeList) { + // generateMIPS(code, scope); + // } + pass1(codeList); + pass2(codeList); cout << "# MIPS Assembly Code:\n"; - for (auto& line : mipsCode) { + for (const string& line : mipsCode) { cout << line << endl; } return 0; -} +} \ No newline at end of file From e53061988c69a17ea15fb5071ece18340ea6357f Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Thu, 24 Apr 2025 04:15:01 +0530 Subject: [PATCH 06/52] if statement --- Assignment4/Makefile | 2 +- Assignment4/include/functions.h | 14 +- Assignment4/output/output1.txt | 144 ++++----- Assignment4/output/output2.txt | 28 -- Assignment4/output/output3.txt | 82 ----- Assignment4/output/output4.txt | 6 - Assignment4/output/output5.txt | 83 ----- Assignment4/output/output6.txt | 32 -- Assignment4/output/output7.txt | 552 -------------------------------- Assignment4/output/output8.txt | 294 ----------------- Assignment4/output/output9.txt | 28 -- Assignment4/src/codegen | Bin 164984 -> 0 bytes Assignment4/src/codegen.cpp | 157 ++++----- Assignment4/src/output/codegen | Bin 624560 -> 0 bytes Assignment4/src/parser.y | 8 +- Assignment4/test/input1.c | 20 +- Assignment4/test/input2.c | 8 - Assignment4/test/input3.c | 17 - Assignment4/test/input4.c | 44 --- Assignment4/test/input5.c | 17 - Assignment4/test/input6.c | 6 - Assignment4/test/input7.c | 84 ----- Assignment4/test/input8.c | 64 ---- Assignment4/test/input9.c | 42 --- 24 files changed, 158 insertions(+), 1574 deletions(-) delete mode 100644 Assignment4/output/output2.txt delete mode 100644 Assignment4/output/output3.txt delete mode 100644 Assignment4/output/output4.txt delete mode 100644 Assignment4/output/output5.txt delete mode 100644 Assignment4/output/output6.txt delete mode 100644 Assignment4/output/output7.txt delete mode 100644 Assignment4/output/output8.txt delete mode 100644 Assignment4/output/output9.txt delete mode 100755 Assignment4/src/codegen delete mode 100755 Assignment4/src/output/codegen delete mode 100644 Assignment4/test/input2.c delete mode 100644 Assignment4/test/input3.c delete mode 100644 Assignment4/test/input4.c delete mode 100644 Assignment4/test/input5.c delete mode 100644 Assignment4/test/input6.c delete mode 100644 Assignment4/test/input7.c delete mode 100644 Assignment4/test/input8.c delete mode 100644 Assignment4/test/input9.c diff --git a/Assignment4/Makefile b/Assignment4/Makefile index 7f8e176..2d96f27 100644 --- a/Assignment4/Makefile +++ b/Assignment4/Makefile @@ -18,7 +18,7 @@ all: $(EXEC) $(EXEC): $(YACC_FILE) $(LEX_FILE) $(BISON) -d -Wno-all $(YACC_FILE) $(LEX) $(LEX_FILE) - $(CC) $(CFLAGS) parser.tab.c lex.yy.c -o $(EXEC) -ll + $(CC) $(CFLAGS) parser.tab.c lex.yy.c src/codegen.cpp -o $(EXEC) -ll # Clean build files clean: diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index 6eb8f86..dcbd7dc 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -208,12 +208,12 @@ vector> clean_vector_TAC(vector> clean_vector_TAC(vector>& vec) { for (const auto& pair : vec) { - cerr<<" "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 b!?pO&)$jW?xPRR_+^WCT2FnfB*Tnw^tAo~W diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index b25deba..4e2b691 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -6,26 +6,18 @@ #include #include #include + +#include "../include/utility.h" // Include your utility header using namespace std; // Simulated symbol table structure -struct symbol_info { - string name, type, str_val, return_type, code; - void* ptr = nullptr; - int symbol_size = 0; - bool is_array = false, is_param_list = false, is_return = false; - int array_length = 0, parameter_no = 0, pointer_depth = 0; - vector int_array, struct_attr_values; - vector param_types, param_list; -}; + // Symbol table type -struct symbol_table { - unordered_map symbol_map; -}; -map,string> var_to_reg; -unordered_map> reg_to_var; + +map,string> var_to_reg; +unordered_map> reg_to_var; map funcStackSize; // --- Global Variables --- @@ -51,7 +43,7 @@ bool isConstantLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } -string getRegister(symbol_table* scope,const string& var) { +string getRegister(scoped_symtab* scope,const string& var) { if(var_to_reg.count({scope,var})) { return var_to_reg[{scope,var}]; } @@ -104,7 +96,7 @@ void generate_return_MIPS(string val) { } // --- Operation/Assignment Handlers --- -void load_if_constant(symbol_table* scope, const string& var, const string& reg) { +void load_if_constant(scoped_symtab* scope, const string& var, const string& reg) { if (loadedConstants[var]) return; if(isConstantLiteral(var)) { if(reg_of_const.count(var)) { @@ -129,7 +121,7 @@ void load_if_constant(symbol_table* scope, const string& var, const string& reg) } -void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, symbol_table* scope) { +void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, scoped_symtab* scope) { cout<<"Handling operation: " << lhs << " := " << rhs << endl; string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); @@ -148,10 +140,24 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& mipsCode.push_back(" div " + r1 + ", " + r2); mipsCode.push_back(" mflo " + rd); } - // Extend here with ==, !=, <, etc. + else if(opp=="=="){ + mipsCode.push_back(" seq " + rd + ", " + r1 + ", " + r2); + } + else if (opp == "!=") mipsCode.push_back(" sne " + rd + ", " + r1 + ", " + r2); + else if (opp == "<") mipsCode.push_back(" slt " + rd + ", " + r1 + ", " + r2); + else if (opp == "<=") { + mipsCode.push_back(" slt " + rd + ", " + r2 + ", " + r1); + mipsCode.push_back(" xori " + rd + ", " + rd + ", 1"); + } + else if (opp == ">") mipsCode.push_back(" slt " + rd + ", " + r2 + ", " + r1); + else if (opp == ">=") { + mipsCode.push_back(" slt " + rd + ", " + r1 + ", " + r2); + mipsCode.push_back(" xori " + rd + ", " + rd + ", 1"); + } + } -void handle_assignment(string lhs, string rhs, symbol_table* scope) { +void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { cout<<"Handling assignment: " << lhs << " := " << rhs << endl; string dst = getRegister(scope,lhs); if (isConstantLiteral(rhs)) { @@ -194,7 +200,7 @@ int get_size_from_type(string type) { else if(type == "bool")return 1; } -int calculate_function_stack_size(symbol_table* scope) { +int calculate_function_stack_size(scoped_symtab* scope) { int size = 0; for (const auto& [name, sym] : scope->symbol_map) { @@ -206,7 +212,7 @@ int calculate_function_stack_size(symbol_table* scope) { return size; } -void pass1(vector>& codeList){ +void pass1(vector>& codeList){ for(auto &code : codeList){ string t = trim(code.first); if(t.empty()){ @@ -214,7 +220,7 @@ void pass1(vector>& codeList){ } else{ if(t.rfind("FUNC_BEGIN", 0) == 0){ - symbol_table* scope = code.second; + scoped_symtab* scope = code.second; int stack_size = calculate_function_stack_size(scope); istringstream iss(t); string dummy, funcName; @@ -227,7 +233,7 @@ void pass1(vector>& codeList){ } -void pass2(vector>& codeList){ +void pass2(vector>& codeList){ for(auto &code : codeList){ string t = trim(code.first); cout << t << "\n"; @@ -254,6 +260,24 @@ void pass2(vector>& codeList){ iss >> keyword >> val; generate_return_MIPS(val); } + else if (t.rfind("if(", 0) == 0 && t.find("goto") != string::npos) { + size_t start = t.find('(') + 1; + size_t end = t.find(')'); + string condition = t.substr(start, end - start); + string label = trim(t.substr(t.find("goto") + 4)); + cout<<"Condition: " << condition << ", Label: " << label << endl; + string reg = getRegister(code.second, condition); + load_if_constant(code.second, condition, reg); + mipsCode.push_back(" bnez " + reg + ", " + label); + } + else if (t.rfind("goto", 0) == 0) { + string label = trim(t.substr(4)); + mipsCode.push_back(" j " + label); + } + else if (t.back() == ':' && isalpha(t[0])) { + // Handle labels like LABEL0: + mipsCode.push_back(t); + } if (t.find(":=") != string::npos) { size_t lhsEnd = t.find(":="); string lhs = trim(t.substr(0, lhsEnd)); @@ -267,61 +291,40 @@ void pass2(vector>& codeList){ } } +bool isAddress(const std::string& token) { + return token.size() > 2 && token[0] == '0' && token[1] == 'x'; +} + + +void codegen_main() { + + std::ifstream infile("output/output1.txt"); // Replace with your file path + if (!infile.is_open()) { + std::cerr << "Failed to open the file.\n"; + return; + } + std::vector> codeList; + std::string line; + + while (std::getline(infile, line)) { + std::istringstream iss(line); + std::string addressStr; + if (!(iss >> addressStr) || !isAddress(addressStr)) { + continue; // skip invalid address + } + + // Convert hex string to pointer + scoped_symtab* address = reinterpret_cast(std::stoull(addressStr, nullptr, 16)); + + std::string restOfLine; + std::getline(iss, restOfLine); + if (!restOfLine.empty() && restOfLine[0] == ' ') + restOfLine = restOfLine.substr(1); // remove leading space + + codeList.emplace_back(restOfLine, address); + } -// --- Main MIPS Generator per line --- -// void generateMIPS(const string& line, symbol_table* scope) { -// cout<<"Processing line: " << line << endl; -// string trimmed = trim(line); -// if (trimmed.find("FUNC_BEGIN") == 0) return generate_func_begin_MIPS(trimmed); -// if (trimmed.find("FUNC_END") == 0) return generate_func_end_MIPS(trimmed); -// if (trimmed.find("RETURN") == 0) return generate_return_MIPS(trimmed); - -// if (trimmed.find(":=") != string::npos) { -// size_t lhsEnd = trimmed.find(":="); -// string lhs = trim(trimmed.substr(0, lhsEnd)); -// string rhs = trim(trimmed.substr(lhsEnd + 2)); - -// auto [opPos, opp] = find_operator(rhs); -// if (opPos != string::npos) handle_operation(lhs, rhs, opPos, opp, scope); -// else handle_assignment(lhs, rhs, scope); -// } -// } - -// --- Main --- -int main() { - // Simulated 3AC input with dummy symbol_table* - vector> codeList; - - // Example symbol table with values - auto* globalScope = new symbol_table(); - int a_val = 2, b_val = 3; - globalScope->symbol_map["d"] = new symbol_info{"d", "int"}; - globalScope->symbol_map["e"] = new symbol_info{"e", "int"}; - globalScope->symbol_map["d"]->ptr = &a_val; - globalScope->symbol_map["e"]->ptr = &b_val; - globalScope->symbol_map["a"] = new symbol_info{"a", "int"}; - globalScope->symbol_map["b"] = new symbol_info{"b", "int"}; - - - // Example 3AC with symbol table per line - // codeList.push_back({"FUNC_BEGIN main", globalScope}); - // codeList.push_back({"a := 3", globalScope}); - // codeList.push_back({"b := 3", globalScope}); - // codeList.push_back({"c := a", globalScope}); - // codeList.push_back({"d := b + a", globalScope}); - // codeList.push_back({"e := d + c", globalScope}); - // codeList.push_back({"RETURN 0", globalScope}); - // codeList.push_back({"FUNC_END main", globalScope}); - codeList.push_back({"FUNC_BEGIN add", globalScope}); - codeList.push_back({"d := 2", globalScope}); - codeList.push_back({"e := 3", globalScope}); - codeList.push_back({"RETURN d + e", globalScope}); - codeList.push_back({"FUNC_END add", globalScope}); - - // for (const auto& [code, scope] : codeList) { - // generateMIPS(code, scope); - // } pass1(codeList); pass2(codeList); @@ -330,5 +333,5 @@ int main() { cout << line << endl; } - return 0; + return; } \ No newline at end of file diff --git a/Assignment4/src/output/codegen b/Assignment4/src/output/codegen deleted file mode 100755 index cb41ef3dad87ef4145181da9345aae70f9592636..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 624560 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�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"----------------"<code); - cerr<code); + // cerr<final_code); - print_vector($1->final_code); + print_vector(cleaned_TAC); } ; translation_unit @@ -2164,5 +2165,6 @@ int main() { curr_scope->symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); + codegen_main(); // print_scope_table(); } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index a8ec1fd..9ed4f1f 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,15 +1,11 @@ -int add(){ - int x = 0; - int y=x+6; - int z=x*y-9; - return z; -} + int main(){ - int k=add(); - int i=add(); - return 0; - while(1){ - int i=0; - i++; + int a = 2; + if(a==3){ + int b=4; + } + else{ + int c=5; } + return 0; } \ No newline at end of file diff --git a/Assignment4/test/input2.c b/Assignment4/test/input2.c deleted file mode 100644 index b6a72cc..0000000 --- a/Assignment4/test/input2.c +++ /dev/null @@ -1,8 +0,0 @@ -typedef float A; - -int main(){ - A b=3; - float c=b; - int d=4; - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input3.c b/Assignment4/test/input3.c deleted file mode 100644 index 9299adb..0000000 --- a/Assignment4/test/input3.c +++ /dev/null @@ -1,17 +0,0 @@ -int main() -{ - int num, count, sum = 0; - - printf("Enter a positive integer: "); - scanf("%d", &num); - - // for loop terminates when count exceeds num - for(count = 1; count <= num; count++) - { - sum &= count; - } - - printf("Sum = %d", sum); - - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input4.c b/Assignment4/test/input4.c deleted file mode 100644 index 9028c75..0000000 --- a/Assignment4/test/input4.c +++ /dev/null @@ -1,44 +0,0 @@ - - -int main() { - char operation; - double n1, n2; - - printf("Enter an operator (+, -, *, /): "); - scanf("%c", &operation); - printf("Enter two operands: "); - scanf("%lf %lf",&n1, &n2); - int b; - int r=0; - switch(operation) - { - case '+': - printf("%.1lf + %.1lf = %.1lf",n1, n2, n1+n2); - break; - - case '-': - switch(b) - { - case 1: - - break; - case 2: - r--; - printf("%.1lf - %.1lf = %.1lf",n1, n2, n1-n2); - break; - default: - printf("Error! operator is not correct"); - break; - } - break; - case '*': - printf("%.1lf * %.1lf = %.1lf",n1, n2, n1*n2); - case '/': - printf("%.1lf / %.1lf = %.1lf",n1, n2, n1/n2); - break; - default: - printf("Error! operator is not correct"); - } - - return 0; -} diff --git a/Assignment4/test/input5.c b/Assignment4/test/input5.c deleted file mode 100644 index 61c1eec..0000000 --- a/Assignment4/test/input5.c +++ /dev/null @@ -1,17 +0,0 @@ -int fact(int n) -{ - if(n==0){ - return 1; - } - else{ - return n*fact(n-1); - } - -} -int main() -{ - int x=10; - int ans = fact(x); - - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input6.c b/Assignment4/test/input6.c deleted file mode 100644 index 52c97e5..0000000 --- a/Assignment4/test/input6.c +++ /dev/null @@ -1,6 +0,0 @@ -int main() -{ - float x=0.0; - x=(1.2+1.26); - return 0; -} diff --git a/Assignment4/test/input7.c b/Assignment4/test/input7.c deleted file mode 100644 index 189bc32..0000000 --- a/Assignment4/test/input7.c +++ /dev/null @@ -1,84 +0,0 @@ -int global_var = 100; - -struct Point { - int x; - int y; -}; - -int add(int a, int b) { - return a + b; -} - -float divide(int a, int b) { - if (b == 0) { - printf("Error: divide by zero\n"); - return 0.0; - } - return (float)a / b; -} - -int max_in_array(int arr[], int size) { - return 0; -} - -void print_array(int arr[], int size) { - printf("\n"); - return; -} - -void initialize_array(int arr[], int size, int value) { - return; -} - -int factorial(int n) { - if (n < 0) return -1; - if (n == 0) return 1; - return n * factorial(n - 1); -} - -struct Point create_point(int x, int y) { - struct Point p; - p.x = x; - p.y = y; - return p; -} - -void print_point(struct Point *p) { - printf("Point: (%d, %d)\n", p->x, p->y); - return; -} - -int main() { - int a = 10, b = 5; - int sum = add(a, b); - printf("Sum: %d\n", sum); - - float result = divide(a, b); - printf("Division: %.2f\n", result); - - int arr[5] = {1, 7, 3, 9, 2}; - print_array(arr, 5); - - int max_val = max_in_array(arr, 5); - printf("Max value: %d\n", max_val); - - printf("Initialized global array (first 5 values): "); - - int fact = factorial(5); - printf("Factorial of 5: %d\n", fact); - - struct Point pt = create_point(3, 4); - print_point(&pt); - - int i = 100; - - for (i = 0; i < 3; i++) { - printf("Loop i: %d\n", i); - } - printf("Outer i: %d\n", i); - - int *ptr = ∑ - printf("Value via pointer: %d\n", *ptr); - - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input8.c b/Assignment4/test/input8.c deleted file mode 100644 index e6e77e2..0000000 --- a/Assignment4/test/input8.c +++ /dev/null @@ -1,64 +0,0 @@ - -// int printf(char *, ...); - -int glb; -int glb1 = 10; - -static int glb2; -struct foo -{ - int a; - int b; - struct foo *next; -}; - -static int bar(int a, float b) -{ - int lcl = 10; - while (b) - { - b--; - } - if (a == 0) - return 0; - bar(a--, a + b + lcl); // what if I use a++; - return 1; -} - -int main() -{ - int a = 100, b[20], ret; - int i; - for (i = 0; i < a; i++) - { - int b = 0; - b += i; - if (b % 2 != b % 3) - printf("%d\n", a + b); - else if (b % 2 == 0) - { - switch (b) - { - case 100: - printf("1\n"); - break; - case 1000: - printf("2\n"); - default: - printf("2\n"); - } - } - // b[19] = i; - ret = i; - } - int *c; - -jump: - struct foo newS[5]; - // printf("Final = %d", newS[3].b + ret); - if (i==0){ - goto jump; - } - bar(1, *b); - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input9.c b/Assignment4/test/input9.c deleted file mode 100644 index 9d35ec7..0000000 --- a/Assignment4/test/input9.c +++ /dev/null @@ -1,42 +0,0 @@ -// int printf(char *, ...); - -// class check -// { -// int a; - -// public: -// void setA(int a); - -// protected: -// int b; -// }; - -union Data -{ - int intValue; - float floatValue; -}; - - - -// class newCheck : public check -// { -// int c; -// }; - -// typedef class newCheck newType; - -int main() -{ - // class check *temp = new class check(); - // class newCheck *temp1 = new class newCheck(); - // newType *temp2 = new class newCheck(); - // void (*func_ptr)(int); - // int arr[10][20][30]; - // func_ptr = &(setA); - // func_ptr(5); - union Data data; - data.intValue = 2006; - data.floatValue = 2.2; - // ***(arr + 2) = 20; -} \ No newline at end of file From 46557043d22f84ce6d6151aecfbbe2b38a591352 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Thu, 24 Apr 2025 15:47:08 +0530 Subject: [PATCH 07/52] Liveness analysis and register spill --- Assignment4/output/output1.txt | 88 +++++++++++++----- Assignment4/src/codegen.cpp | 157 +++++++++++++++++++++++++++++++-- Assignment4/test/input1.c | 3 + 3 files changed, 222 insertions(+), 26 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 41db282..06e37bf 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,38 +2,75 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x59fb182984b0 FUNC_BEGIN main -0x59fb1829e6b0 a:= 2 -0x59fb1829e6b0 t0 := a == 3 -0x59fb1829e6b0 if(t0) goto LABEL0 -0x59fb1829e6b0 goto LABEL1 -0x59fb1829e6b0 LABEL0: -0x59fb1829f7b0 b:= 4 -0x59fb1829e6b0 goto LABEL2 -0x59fb1829e6b0 LABEL1: -0x59fb182a03d0 c:= 5 -0x59fb1829e6b0 LABEL2: -0x59fb1829e6b0 RETURN 0 -0x59fb182984b0 FUNC_END main +0x55b864aa04b0 FUNC_BEGIN main +0x55b864aa6630 a:= 2 +0x55b864aa6630 t0 := a == 3 +0x55b864aa6630 if(t0) goto LABEL0 +0x55b864aa6630 goto LABEL1 +0x55b864aa6630 LABEL0: +0x55b864aa7730 b:= 4 +0x55b864aa6630 goto LABEL2 +0x55b864aa6630 LABEL1: +0x55b864aa8350 c:= 5 +0x55b864aa6630 LABEL2: +0x55b864aa6630 d:= 6 +0x55b864aa6630 e:= 7 +0x55b864aa6630 t1 := a + 8 +0x55b864aa6630 d:= t1 +0x55b864aa6630 RETURN 0 +0x55b864aa04b0 FUNC_END main FUNC_BEGIN main a:= 2 Handling assignment: a := 2 +Getting register for a t0 := a == 3 Handling operation: t0 := a == 3 +Getting register for a +Getting register for 3 +Getting register for t0 Operation: a == 3 -Registers: $t9, $t8, $t7 -Loaded constant literal 3 into $t8 +Registers: $t5, $t4, $t3 +Loaded constant literal 3 into $t4 if(t0) goto LABEL0 Condition: t0, Label: LABEL0 +Getting register for t0 goto LABEL1 LABEL0: b:= 4 Handling assignment: b := 4 +Getting register for b goto LABEL2 LABEL1: c:= 5 Handling assignment: c := 5 +Getting register for c LABEL2: +d:= 6 +Handling assignment: d := 6 +Getting register for d +e:= 7 +Handling assignment: e := 7 +Getting register for e +Handling register spill for e +Spilling 3 from $t4 +t1 := a + 8 +Handling operation: t1 := a + 8 +Getting register for a +Getting register for 8 +Handling register spill for 8 +Spilling d from $t0 +Getting register for t1 +Handling register spill for t1 +Spilling 8 from $t0 +Operation: a + 8 +Registers: $t5, $t0, $t0 +Loaded constant literal 8 into $t0 +d:= t1 +Handling assignment: d := t1 +Getting register for d +Handling register spill for d +Spilling a from $t5 +Getting register for t1 RETURN 0 FUNC_END main # MIPS Assembly Code: @@ -42,17 +79,26 @@ main: sw $ra, -504($sp) sw $fp, -508($sp) move $fp, $sp - li $t9, 2 - li $t8, 3 - seq $t7, $t9, $t8 - bnez $t7, LABEL0 + li $t5, 2 + li $t4, 3 + seq $t3, $t5, $t4 + bnez $t3, LABEL0 j LABEL1 LABEL0: - li $t6, 4 + li $t2, 4 j LABEL2 LABEL1: - li $t5, 5 + li $t1, 5 LABEL2: + li $t0, 6 + # Spilling 3 from $t4 + li $t4, 7 + # Spilling d from $t0 + # Spilling 8 from $t0 + li $t0, 8 + add $t0, $t5, $t0 + # Spilling a from $t5 + move $t5, $t0 li $v0, 0 move $sp, $fp lw $fp, -508($sp) diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 4e2b691..6715756 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -14,7 +14,7 @@ using namespace std; // Symbol table type - +int currentInstructionIndex = -1; map,string> var_to_reg; unordered_map> reg_to_var; @@ -22,11 +22,30 @@ map funcStackSize; // --- Global Variables --- unordered_map regMap; -vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "$t9"}; +vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5"}; vector mipsCode; unordered_map loadedConstants; unordered_map reg_of_const; +struct pair_hash { + template + size_t operator()(const pair& p) const { + return hash()(p.first) ^ (hash()(p.second) << 1); + } +}; + + +struct LivenessInfo { + scoped_symtab* scope; + string code; + unordered_set, pair_hash> use, def, live_in, live_out; + vector successors; + int index; +}; + +vector currentLiveness; + + vector operators = { "==", "!=", "<=", ">=", "&&", "||", "+=", "-=", "*=", "/=", "%=", "<<", ">>", "<", ">", "+", "-", "*", "/", "%", "=", "&", "|", "^", "!", "~" @@ -43,14 +62,51 @@ bool isConstantLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } +void handleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { + cout << "Handling register spill for " << newVar << endl; + + for (auto it = var_to_reg.begin(); it != var_to_reg.end(); ++it) { + auto [vscope, vname] = it->first; + string reg = it->second; + + bool isLiveInFuture = false; + + // 1. Check future liveness + for (int i = currentInstructionIndex + 1; i < currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({vscope, vname})) { + isLiveInFuture = true; + break; + } + } + + // 2. Check use in current instruction + bool isUsedNow = currentLiveness[currentInstructionIndex].use.count({vscope, vname}); + + if (!isLiveInFuture && !isUsedNow) { + cout<<"Spilling " << vname << " from " << reg << endl; + mipsCode.push_back(" # Spilling " + vname + " from " + reg); + availableRegs.push_back(reg); + reg_to_var.erase(reg); + var_to_reg.erase({vscope, vname}); + return; + } + } + + cerr << "Register spill failed: all registers are live or in use\n"; + exit(1); +} + + + + string getRegister(scoped_symtab* scope,const string& var) { + cout<<"Getting register for " << var << endl; if(var_to_reg.count({scope,var})) { return var_to_reg[{scope,var}]; } // if (regMap.count(var)) return regMap[var]; if (availableRegs.empty()) { - cerr << "Register spill not handled\n"; - exit(1); + handleRegisterSpill(scope,var); } string reg = availableRegs.back(); availableRegs.pop_back(); @@ -234,7 +290,9 @@ void pass1(vector>& codeList){ void pass2(vector>& codeList){ - for(auto &code : codeList){ + for(int idx = 0; idx < codeList.size(); ++idx){ + auto& code = codeList[idx]; + currentInstructionIndex = idx; string t = trim(code.first); cout << t << "\n"; if (t.empty()){ @@ -295,6 +353,84 @@ bool isAddress(const std::string& token) { return token.size() > 2 && token[0] == '0' && token[1] == 'x'; } +void compute_use_def(LivenessInfo& inst) { + const string& line = inst.code; + if (line.find(":=") != string::npos) { + size_t eq = line.find(":="); + string lhs = trim(line.substr(0, eq)); + string rhs = trim(line.substr(eq + 2)); + inst.def.insert({inst.scope, lhs}); + istringstream iss(rhs); + string token; + while (iss >> token) + if (isalpha(token[0]) && token != lhs) + inst.use.insert({inst.scope, token}); + } else if (line.find("if(") == 0) { + size_t start = line.find('(') + 1; + size_t end = line.find(')'); + string cond = line.substr(start, end - start); + istringstream iss(cond); + string token; + while (iss >> token) + if (isalpha(token[0])) + inst.use.insert({inst.scope, token}); + } else if (line.find("RETURN") == 0) { + string word, val; + istringstream iss(line); + iss >> word >> val; + inst.use.insert({inst.scope, val}); + } +} + +void compute_successors(vector& program) { + for (int i = 0; i < program.size(); ++i) { + string line = trim(program[i].code); + if (line.find("goto") == 0) { + string label = trim(line.substr(4)); + for (int j = 0; j < program.size(); ++j) + if (program[j].code == label + ":") + program[i].successors = {j}; + } else if (line.find("if(") == 0) { + string label = trim(line.substr(line.find("goto") + 4)); + for (int j = 0; j < program.size(); ++j) + if (program[j].code == label + ":") { + program[i].successors = {i + 1, j}; + break; + } + } else if (line.back() != ':') { + program[i].successors = {i + 1}; + } + } +} + +void run_liveness(vector& program) { + compute_successors(program); + for (auto& inst : program) + compute_use_def(inst); + + bool changed; + do { + changed = false; + for (int i = program.size() - 1; i >= 0; --i) { + auto old_in = program[i].live_in; + auto old_out = program[i].live_out; + + program[i].live_out.clear(); + for (int s : program[i].successors) + program[i].live_out.insert(program[s].live_in.begin(), program[s].live_in.end()); + + program[i].live_in = program[i].use; + for (auto& v : program[i].live_out) + if (!program[i].def.count(v)) + program[i].live_in.insert(v); + + if (old_in != program[i].live_in || old_out != program[i].live_out) + changed = true; + } + } while (changed); +} + + void codegen_main() { @@ -326,6 +462,17 @@ void codegen_main() { } pass1(codeList); + + currentLiveness.clear(); + for (int i = 0; i < codeList.size(); ++i) { + currentLiveness.push_back({ + codeList[i].second, // scope + codeList[i].first, // code + {}, {}, {}, {}, {}, i + }); + } + run_liveness(currentLiveness); + pass2(codeList); cout << "# MIPS Assembly Code:\n"; diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 9ed4f1f..2588492 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -7,5 +7,8 @@ int main(){ else{ int c=5; } + int d=6; + int e=7; + d=a+8; return 0; } \ No newline at end of file From 6eaadc567c30c75b0ac44a9d488efdc3debd3ce4 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Fri, 25 Apr 2025 04:08:20 +0530 Subject: [PATCH 08/52] basic function --- Assignment4/output/output1.txt | 212 +++++++++++++++++++-------------- Assignment4/src/codegen.cpp | 109 ++++++++++++++--- Assignment4/src/parser.y | 9 +- Assignment4/test/input1.c | 24 ++-- 4 files changed, 233 insertions(+), 121 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 06e37bf..dcb2e96 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,106 +2,144 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x55b864aa04b0 FUNC_BEGIN main -0x55b864aa6630 a:= 2 -0x55b864aa6630 t0 := a == 3 -0x55b864aa6630 if(t0) goto LABEL0 -0x55b864aa6630 goto LABEL1 -0x55b864aa6630 LABEL0: -0x55b864aa7730 b:= 4 -0x55b864aa6630 goto LABEL2 -0x55b864aa6630 LABEL1: -0x55b864aa8350 c:= 5 -0x55b864aa6630 LABEL2: -0x55b864aa6630 d:= 6 -0x55b864aa6630 e:= 7 -0x55b864aa6630 t1 := a + 8 -0x55b864aa6630 d:= t1 -0x55b864aa6630 RETURN 0 -0x55b864aa04b0 FUNC_END main -FUNC_BEGIN main -a:= 2 -Handling assignment: a := 2 +0x5cd8d1a8c4b0 FUNC_BEGIN func +0x5cd8d1a93140 param0 := PARAM +0x5cd8d1a93140 param1 := PARAM +0x5cd8d1a93140 a := param0 +0x5cd8d1a93140 b := param1 +0x5cd8d1a93140 t0 := a + b +0x5cd8d1a93140 p:= t0 +0x5cd8d1a8c4b0 FUNC_END func +0x5cd8d1a8c4b0 FUNC_BEGIN main +0x5cd8d1a93cb0 a:= 5 +0x5cd8d1a93cb0 b:= 7 +0x5cd8d1a93cb0 t1 := a * b +0x5cd8d1a93cb0 z:= t1 +0x5cd8d1a93cb0 PARAM z +0x5cd8d1a93cb0 PARAM a +0x5cd8d1a93cb0 CALL func,2 +0x5cd8d1a93cb0 RETURN 0 +0x5cd8d1a8c4b0 FUNC_END main +Hiiiii +a : int +Hiiiii +b : int +Hiiiii +p : int +Hiiiii +t0 : int +Hiiiii +a : int +Hiiiii +b : int +Hiiiii +t1 : int +Hiiiii +t2 : void +Hiiiii +z : int +FUNC_BEGIN func +param0 := PARAM +Getting register for param0 +Assigned register $t5 to param0 +param1 := PARAM +Getting register for param1 +Assigned register $t4 to param1 +a := param0 +Handling assignment: a := param0 Getting register for a -t0 := a == 3 -Handling operation: t0 := a == 3 +Assigned register $t3 to a +Getting register for param0 +Found register for param0 $t5 +b := param1 +Handling assignment: b := param1 +Getting register for b +Assigned register $t2 to b +Getting register for param1 +Found register for param1 $t4 +t0 := a + b +Handling operation: t0 := a + b Getting register for a -Getting register for 3 +Found register for a $t3 +Getting register for b +Found register for b $t2 Getting register for t0 -Operation: a == 3 -Registers: $t5, $t4, $t3 -Loaded constant literal 3 into $t4 -if(t0) goto LABEL0 -Condition: t0, Label: LABEL0 +Assigned register $t1 to t0 +Operation: a + b +Registers: $t3, $t2, $t1 +p:= t0 +Handling assignment: p := t0 +Getting register for p +Assigned register $t0 to p Getting register for t0 -goto LABEL1 -LABEL0: -b:= 4 -Handling assignment: b := 4 +Found register for t0 $t1 +FUNC_END func +FUNC_BEGIN main +a:= 5 +Handling assignment: a := 5 +Getting register for a +Assigned register $t4 to a +b:= 7 +Handling assignment: b := 7 Getting register for b -goto LABEL2 -LABEL1: -c:= 5 -Handling assignment: c := 5 -Getting register for c -LABEL2: -d:= 6 -Handling assignment: d := 6 -Getting register for d -e:= 7 -Handling assignment: e := 7 -Getting register for e -Handling register spill for e -Spilling 3 from $t4 -t1 := a + 8 -Handling operation: t1 := a + 8 +Assigned register $t3 to b +t1 := a * b +Handling operation: t1 := a * b Getting register for a -Getting register for 8 -Handling register spill for 8 -Spilling d from $t0 +Found register for a $t4 +Getting register for b +Found register for b $t3 Getting register for t1 -Handling register spill for t1 -Spilling 8 from $t0 -Operation: a + 8 -Registers: $t5, $t0, $t0 -Loaded constant literal 8 into $t0 -d:= t1 -Handling assignment: d := t1 -Getting register for d -Handling register spill for d -Spilling a from $t5 +Assigned register $t2 to t1 +Operation: a * b +Registers: $t4, $t3, $t2 +z:= t1 +Handling assignment: z := t1 +Getting register for z +Assigned register $t1 to z Getting register for t1 +Found register for t1 $t2 +PARAM z +Getting register for z +Found register for z $t1 +PARAM a +Getting register for a +Found register for a $t4 +CALL func,2 RETURN 0 FUNC_END main # MIPS Assembly Code: +func: + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + move $fp, $sp + move $t5, $a0 + move $t4, $a1 + move $t3, $t5 + move $t2, $t4 + add $t1, $t3, $t2 + move $t0, $t1 + move $sp, $fp + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 + jr $ra main: - addi $sp, $sp, --500 - sw $ra, -504($sp) - sw $fp, -508($sp) + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) move $fp, $sp - li $t5, 2 - li $t4, 3 - seq $t3, $t5, $t4 - bnez $t3, LABEL0 - j LABEL1 -LABEL0: - li $t2, 4 - j LABEL2 -LABEL1: - li $t1, 5 -LABEL2: - li $t0, 6 - # Spilling 3 from $t4 - li $t4, 7 - # Spilling d from $t0 - # Spilling 8 from $t0 - li $t0, 8 - add $t0, $t5, $t0 - # Spilling a from $t5 - move $t5, $t0 + li $t4, 5 + li $t3, 7 + mul $t2, $t4, $t3 + move $t1, $t2 + move $a0, $t1 + move $a1, $t4 + jal func,2 li $v0, 0 move $sp, $fp - lw $fp, -508($sp) - lw $ra, -504($sp) - addi $sp, $sp, -500 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 jr $ra diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 6715756..a48a985 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -15,6 +15,9 @@ using namespace std; // Symbol table type int currentInstructionIndex = -1; +static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; +static int paramCounter = 0; +int paramReceiveCounter = 0; map,string> var_to_reg; unordered_map> reg_to_var; @@ -96,12 +99,10 @@ void handleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { exit(1); } - - - string getRegister(scoped_symtab* scope,const string& var) { cout<<"Getting register for " << var << endl; if(var_to_reg.count({scope,var})) { + cout<<"Found register for " << var << " "<symbol_map['a']->type << endl; for (const auto& [name, sym] : scope->symbol_map) { + cout<<"Hiiiii"<type << endl; if (!sym->is_param_list && !sym->is_return) { size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); } @@ -268,21 +272,41 @@ int calculate_function_stack_size(scoped_symtab* scope) { return size; } -void pass1(vector>& codeList){ - for(auto &code : codeList){ - string t = trim(code.first); - if(t.empty()){ +// void pass1(vector>& codeList){ +// for(auto &code : codeList){ +// string t = trim(code.first); +// if(t.empty()){ +// cout << "empty codelist error" << endl; +// } +// else{ +// if(t.rfind("FUNC_BEGIN", 0) == 0){ +// scoped_symtab* scope = code.second; +// int stack_size = calculate_function_stack_size(scope); +// istringstream iss(t); +// string dummy, funcName; +// iss >> dummy >> funcName; +// int frameBytes = calculate_function_stack_size(scope); +// funcStackSize[funcName] = frameBytes; +// } +// } +// } +// } +void pass1(vector>& codeList) { + for (int i = 0; i < codeList.size(); ++i) { + string t = trim(codeList[i].first); + if (t.empty()) { cout << "empty codelist error" << endl; - } - else{ - if(t.rfind("FUNC_BEGIN", 0) == 0){ - scoped_symtab* scope = code.second; - int stack_size = calculate_function_stack_size(scope); - istringstream iss(t); - string dummy, funcName; - iss >> dummy >> funcName; - int frameBytes = calculate_function_stack_size(scope); + } else if (t.rfind("FUNC_BEGIN", 0) == 0) { + istringstream iss(t); + string dummy, funcName; + iss >> dummy >> funcName; + + if (i + 1 < codeList.size()) { + scoped_symtab* nextScope = codeList[i + 1].second; + int frameBytes = calculate_function_stack_size(nextScope); funcStackSize[funcName] = frameBytes; + } else { + cerr << "Warning: No scope found after FUNC_BEGIN for " << funcName << endl; } } } @@ -304,6 +328,7 @@ void pass2(vector>& codeList){ string dummy, funcName; iss >> dummy >> funcName; generate_func_begin_MIPS(funcName, funcStackSize[funcName]); + paramReceiveCounter = 0; } else if (t.rfind("FUNC_END",0) == 0) { istringstream iss(t); @@ -336,6 +361,56 @@ void pass2(vector>& codeList){ // Handle labels like LABEL0: mipsCode.push_back(t); } + else if (t.rfind("PARAM", 0) == 0) { + // e.g. PARAM z + string var = trim(t.substr(5)); // after "PARAM" + string srcReg = getRegister(code.second, var); + + // Allocate param register + if (paramCounter >= argRegisters.size()) { + cerr << "Too many parameters! Only 4 supported via registers.\n"; + exit(1); + } + + mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); + paramCounter++; + continue; + } + + else if (t.rfind("CALL", 0) == 0) { + // e.g. CALL func,2 + istringstream iss(t); + string call, funcWithComma; + int argCount; + iss >> call >> funcWithComma; + iss.ignore(); // skip comma + iss >> argCount; + + string funcName = trim(funcWithComma); + if (funcName.back() == ',') funcName.pop_back(); // cleanup + + mipsCode.push_back(" jal " + funcName); + paramCounter = 0; // reset for next call + continue; + } + else if (t.find(":= PARAM") != string::npos) { + // E.g. param0 := PARAM + size_t assignPos = t.find(":="); + string lhs = trim(t.substr(0, assignPos)); + + // Use next available $a0-$a3 for receiving + if (paramReceiveCounter >= argRegisters.size()) { + cerr << "Too many parameters for this function (more than 4)\n"; + exit(1); + } + + string dst = getRegister(code.second, lhs); // local register for param + string from = argRegisters[paramReceiveCounter]; + mipsCode.push_back(" move " + dst + ", " + from); + + paramReceiveCounter++; + continue; + } if (t.find(":=") != string::npos) { size_t lhsEnd = t.find(":="); string lhs = trim(t.substr(0, lhsEnd)); diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 0cab0f7..baa0a32 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -22,7 +22,7 @@ std::vector all_scopes={curr_scope}; std::vector error_list; - + vector scope_list; vector type_list = {}; vector var_name={}; map goto_list; @@ -1669,7 +1669,7 @@ compound_statement $$->final_code = $3->final_code; $$->is_return=$3->is_return; $$->return_type=$3->return_type; - all_scopes.push_back(curr_scope);curr_scope = curr_scope->parent; + all_scopes.push_back(curr_scope);scope_list.push_back(curr_scope); curr_scope = curr_scope->parent; } | LBRACE {curr_scope = new scoped_symtab(curr_scope);} statement_list RBRACE {symbol_info* new_symbol=new symbol_info(); $$=new_symbol; @@ -2054,16 +2054,17 @@ function_definition $$->code="\nFUNC_BEGIN "+$2->name+"\n"; $$->final_code.push_back({"FUNC_BEGIN "+$2->name,curr_scope}); for(int i=0;i<$2->param_list.size();i++){ - $$->final_code.push_back({"param"+std::to_string(i)+" := PARAM",curr_scope}); + $$->final_code.push_back({"param"+std::to_string(i)+" := PARAM",scope_list[0]}); $$->code=$$->code+"param"+std::to_string(i)+" := PARAM\n"; } for(int i=0;i<$2->param_list.size();i++){ - $$->final_code.push_back({$2->param_list[i]+" := param"+std::to_string(i),curr_scope}); + $$->final_code.push_back({$2->param_list[i]+" := param"+std::to_string(i),scope_list[0]}); $$->code=$$->code+$2->param_list[i]+" := param"+std::to_string(i)+"\n"; } $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); $$->final_code.push_back({"FUNC_END "+$2->name,curr_scope}); $$->code=$$->code+$4->code+"\nFUNC_END "+$2->name+"\n"; + scope_list.pop_back(); } | declarator declaration_list compound_statement diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 2588492..189297a 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,14 +1,12 @@ - -int main(){ - int a = 2; - if(a==3){ - int b=4; - } - else{ - int c=5; - } - int d=6; - int e=7; - d=a+8; - return 0; +void func(int a, int b) +{ +int p=a+b; +} +int main() +{ +int a =5; +int b=7; +int z= a*b; +func(z,a); +return 0; } \ No newline at end of file From bdc774bbf69f7bc9b8a1959a83e7d98bb749e241 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Fri, 25 Apr 2025 18:39:01 +0530 Subject: [PATCH 09/52] float function --- Assignment4/output/output1.txt | 157 ++++---------------- Assignment4/src/codegen.cpp | 255 +++++++++++++++++++++++++-------- Assignment4/test/input1.c | 15 +- 3 files changed, 227 insertions(+), 200 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index dcb2e96..d24d90f 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,145 +1,38 @@ +=====================LIST OF ERRORS=================================== +Line 5 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x5cd8d1a8c4b0 FUNC_BEGIN func -0x5cd8d1a93140 param0 := PARAM -0x5cd8d1a93140 param1 := PARAM -0x5cd8d1a93140 a := param0 -0x5cd8d1a93140 b := param1 -0x5cd8d1a93140 t0 := a + b -0x5cd8d1a93140 p:= t0 -0x5cd8d1a8c4b0 FUNC_END func -0x5cd8d1a8c4b0 FUNC_BEGIN main -0x5cd8d1a93cb0 a:= 5 -0x5cd8d1a93cb0 b:= 7 -0x5cd8d1a93cb0 t1 := a * b -0x5cd8d1a93cb0 z:= t1 -0x5cd8d1a93cb0 PARAM z -0x5cd8d1a93cb0 PARAM a -0x5cd8d1a93cb0 CALL func,2 -0x5cd8d1a93cb0 RETURN 0 -0x5cd8d1a8c4b0 FUNC_END main -Hiiiii -a : int -Hiiiii -b : int -Hiiiii -p : int -Hiiiii -t0 : int +0x5ba0f2ed24b0 FUNC_BEGIN main +0x5ba0f2ed87d0 a:= 3 +0x5ba0f2ed87d0 b:= 4.500000 +0x5ba0f2ed87d0 c:= 5.500000 +0x5ba0f2ed24b0 FUNC_END main Hiiiii a : int Hiiiii -b : int -Hiiiii -t1 : int -Hiiiii -t2 : void +b : float Hiiiii -z : int -FUNC_BEGIN func -param0 := PARAM -Getting register for param0 -Assigned register $t5 to param0 -param1 := PARAM -Getting register for param1 -Assigned register $t4 to param1 -a := param0 -Handling assignment: a := param0 -Getting register for a -Assigned register $t3 to a -Getting register for param0 -Found register for param0 $t5 -b := param1 -Handling assignment: b := param1 -Getting register for b -Assigned register $t2 to b -Getting register for param1 -Found register for param1 $t4 -t0 := a + b -Handling operation: t0 := a + b -Getting register for a -Found register for a $t3 -Getting register for b -Found register for b $t2 -Getting register for t0 -Assigned register $t1 to t0 -Operation: a + b -Registers: $t3, $t2, $t1 -p:= t0 -Handling assignment: p := t0 -Getting register for p -Assigned register $t0 to p -Getting register for t0 -Found register for t0 $t1 -FUNC_END func +c : float FUNC_BEGIN main -a:= 5 -Handling assignment: a := 5 -Getting register for a -Assigned register $t4 to a -b:= 7 -Handling assignment: b := 7 -Getting register for b -Assigned register $t3 to b -t1 := a * b -Handling operation: t1 := a * b -Getting register for a -Found register for a $t4 -Getting register for b -Found register for b $t3 -Getting register for t1 -Assigned register $t2 to t1 -Operation: a * b -Registers: $t4, $t3, $t2 -z:= t1 -Handling assignment: z := t1 -Getting register for z -Assigned register $t1 to z -Getting register for t1 -Found register for t1 $t2 -PARAM z -Getting register for z -Found register for z $t1 -PARAM a +a:= 3 +Handling assignment: a := 3 Getting register for a -Found register for a $t4 -CALL func,2 -RETURN 0 +Assigned register $t5 to a +b:= 4.500000 +Handling assignment: b := 4.500000 +c:= 5.500000 +Handling assignment: c := 5.500000 FUNC_END main # MIPS Assembly Code: -func: - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - move $fp, $sp - move $t5, $a0 - move $t4, $a1 - move $t3, $t5 - move $t2, $t4 - add $t1, $t3, $t2 - move $t0, $t1 - move $sp, $fp - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 - jr $ra main: - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) move $fp, $sp - li $t4, 5 - li $t3, 7 - mul $t2, $t4, $t3 - move $t1, $t2 - move $a0, $t1 - move $a1, $t4 - jal func,2 - li $v0, 0 + li $t5, 3 + li.s $f7, 4.500000 + li.s $f6, 5.500000 move $sp, $fp - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 jr $ra diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index a48a985..64fa96f 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -26,6 +26,8 @@ map funcStackSize; // --- Global Variables --- unordered_map regMap; vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5"}; +vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; +map, string> floatVarToReg; vector mipsCode; unordered_map loadedConstants; unordered_map reg_of_const; @@ -61,10 +63,22 @@ string trim(const string& s) { return (start == string::npos) ? "" : s.substr(start, end - start + 1); } -bool isConstantLiteral(const string& s) { +bool isIntLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } +bool isFloatLiteral(const string& s) { + size_t dotPos = s.find('.'); + if (dotPos == string::npos) return false; + + string intPart = s.substr(0, dotPos); + string fracPart = s.substr(dotPos + 1); + + return !intPart.empty() && !fracPart.empty() && + all_of(intPart.begin(), intPart.end(), ::isdigit) && + all_of(fracPart.begin(), fracPart.end(), ::isdigit); +} + void handleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { cout << "Handling register spill for " << newVar << endl; @@ -99,6 +113,21 @@ void handleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { exit(1); } +string getFloatRegister(scoped_symtab* scope, const string& var) { + if (floatVarToReg.count({scope, var})) + return floatVarToReg[{scope, var}]; + + if (availableFloatRegs.empty()) { + cerr << "No available float registers (spilling not implemented for float yet)\n"; + exit(1); + } + + string freg = availableFloatRegs.back(); + availableFloatRegs.pop_back(); + floatVarToReg[{scope, var}] = freg; + return freg; +} + string getRegister(scoped_symtab* scope,const string& var) { cout<<"Getting register for " << var << endl; if(var_to_reg.count({scope,var})) { @@ -145,6 +174,8 @@ void generate_func_end_MIPS(const string &func, int stackSize) { mipsCode.push_back(" jr $ra"); regMap.clear(); availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4"}; + floatVarToReg.clear(); + availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; loadedConstants.clear(); } @@ -156,33 +187,86 @@ void generate_return_MIPS(string val) { // --- Operation/Assignment Handlers --- void load_if_constant(scoped_symtab* scope, const string& var, const string& reg) { if (loadedConstants[var]) return; - if(isConstantLiteral(var)) { - if(reg_of_const.count(var)) { + + // Handle integer literal + if (isIntLiteral(var)) { + if (reg_of_const.count(var)) { mipsCode.push_back(" move " + reg + ", " + reg_of_const[var]); - cout << "Loaded constant literal " << var << " into " << reg << endl; + cout << "Loaded integer constant (cached) " << var << " into " << reg << endl; return; } mipsCode.push_back(" li " + reg + ", " + var); loadedConstants[var] = true; - reg_of_const[var]=reg; - cout << "Loaded constant literal " << var << " into " << reg << endl; + reg_of_const[var] = reg; + cout << "Loaded integer constant " << var << " into " << reg << endl; return; } - - symbol_info* sym = scope->symbol_map[var]; - if (sym && sym->ptr && sym->type == "int") { - int* val = static_cast(sym->ptr); - mipsCode.push_back(" li " + reg + ", " + to_string(*val)); + + // Handle float literal + if (isFloatLiteral(var)) { + string floatLabel = "float_const_" + var; // like float_const_3.14 + + // Emit float literal to .data segment + static set emittedFloats; + if (!emittedFloats.count(var)) { + emittedFloats.insert(var); + mipsCode.insert(mipsCode.begin(), ".data"); + mipsCode.insert(mipsCode.begin() + 1, floatLabel + ": .float " + var); + mipsCode.insert(mipsCode.begin() + 2, ".text"); + } + + // Load float from memory + mipsCode.push_back(" la " + reg + ", " + floatLabel); + mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); loadedConstants[var] = true; - cout << "Loaded constant " << var << " into " << reg << endl; + reg_of_const[var] = reg; + cout << "Loaded float constant " << var << " into " << reg << endl; + return; + } + + // Fallback to value from symbol table + symbol_info* sym = scope->symbol_map[var]; + if (sym && sym->ptr) { + if (sym->type == "int") { + int* val = static_cast(sym->ptr); + mipsCode.push_back(" li " + reg + ", " + to_string(*val)); + loadedConstants[var] = true; + cout << "Loaded symbol (int) " << var << " into " << reg << endl; + } else if (sym->type == "float") { + float* val = static_cast(sym->ptr); + string valStr = to_string(*val); + string floatLabel = "float_sym_" + var; + + mipsCode.insert(mipsCode.begin(), ".data"); + mipsCode.insert(mipsCode.begin() + 1, floatLabel + ": .float " + valStr); + mipsCode.insert(mipsCode.begin() + 2, ".text"); + + mipsCode.push_back(" la " + reg + ", " + floatLabel); + mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); + loadedConstants[var] = true; + cout << "Loaded symbol (float) " << var << " into " << reg << endl; + } } - } + void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, scoped_symtab* scope) { cout<<"Handling operation: " << lhs << " := " << rhs << endl; + bool isFloat = (scope->symbol_map[lhs]->type == "float"); string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); + if (isFloat) { + string r1 = getFloatRegister(scope, op1); + string r2 = getFloatRegister(scope, op2); + string rd = getFloatRegister(scope, lhs); + + if (opp == "+") mipsCode.push_back(" add.s " + rd + ", " + r1 + ", " + r2); + else if (opp == "-") mipsCode.push_back(" sub.s " + rd + ", " + r1 + ", " + r2); + else if (opp == "*") mipsCode.push_back(" mul.s " + rd + ", " + r1 + ", " + r2); + else if (opp == "/") mipsCode.push_back(" div.s " + rd + ", " + r1 + ", " + r2); + return; + } + string r1 = getRegister(scope,op1); string r2 = getRegister(scope,op2); string rd = getRegister(scope,lhs); @@ -217,8 +301,23 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { cout<<"Handling assignment: " << lhs << " := " << rhs << endl; + symbol_info* lhsInfo = scope->symbol_map[lhs]; + bool isFloat = (lhsInfo && lhsInfo->type == "float"); + + if (isFloat) { + string dst = getFloatRegister(scope, lhs); + if (isFloatLiteral(rhs)) { + // Assume float literal loading (mock behavior) + mipsCode.push_back(" li.s " + dst + ", " + rhs); + } + else { + string src = getFloatRegister(scope, rhs); + mipsCode.push_back(" mov.s " + dst + ", " + src); + } + return; + } string dst = getRegister(scope,lhs); - if (isConstantLiteral(rhs)) { + if (isIntLiteral(rhs)) { if(reg_of_const.count(rhs)) { mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); loadedConstants[lhs] = true; @@ -272,6 +371,88 @@ int calculate_function_stack_size(scoped_symtab* scope) { return size; } +void handle_param_pass(const string& line, scoped_symtab* scope) { + string var = trim(line.substr(5)); // after "PARAM" + string srcReg = getRegister(scope, var); + + symbol_info* sym = scope->symbol_map[var]; + if (!sym) { + cerr << "Unknown symbol in handle_param_pass: " << var << endl; + exit(1); + } + + if (sym->type == "float") { + if (paramCounter == 0) + mipsCode.push_back(" mov.s $f12, " + srcReg); + else if (paramCounter == 1) + mipsCode.push_back(" mov.s $f14, " + srcReg); + else { + cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; + exit(1); + } + } else { + if (paramCounter >= argRegisters.size()) { + cerr << "Too many integer parameters! Only 4 supported via $a0–$a3.\n"; + exit(1); + } + mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); + } + + paramCounter++; +} + +void handle_function_call(const string& line) { + istringstream iss(line); + string call, funcWithComma; + int argCount; + iss >> call >> funcWithComma; + iss.ignore(); // skip comma + iss >> argCount; + + string funcName = trim(funcWithComma); + if (!funcName.empty() && funcName.back() == ',') funcName.pop_back(); + + mipsCode.push_back(" jal " + funcName); + paramCounter = 0; // Reset after call +} + + +void handle_param_receive(const string& line, scoped_symtab* scope) { + size_t assignPos = line.find(":="); + string lhs = trim(line.substr(0, assignPos)); + + symbol_info* sym = scope->symbol_map[lhs]; + if (!sym) { + cerr << "Unknown symbol in handle_param_receive: " << lhs << endl; + exit(1); + } + + string dst = getRegister(scope, lhs); + + if (sym->type == "float") { + if (paramReceiveCounter == 0) + mipsCode.push_back(" mov.s " + dst + ", $f12"); + else if (paramReceiveCounter == 1) + mipsCode.push_back(" mov.s " + dst + ", $f14"); + else { + cerr << "Too many float parameters received! Only $f12 and $f14 supported.\n"; + exit(1); + } + } else { + if (paramReceiveCounter >= argRegisters.size()) { + cerr << "Too many integer parameters received! Only $a0–$a3 supported.\n"; + exit(1); + } + + string from = argRegisters[paramReceiveCounter]; + mipsCode.push_back(" move " + dst + ", " + from); + } + + paramReceiveCounter++; +} + + + // void pass1(vector>& codeList){ // for(auto &code : codeList){ // string t = trim(code.first); @@ -362,53 +543,15 @@ void pass2(vector>& codeList){ mipsCode.push_back(t); } else if (t.rfind("PARAM", 0) == 0) { - // e.g. PARAM z - string var = trim(t.substr(5)); // after "PARAM" - string srcReg = getRegister(code.second, var); - - // Allocate param register - if (paramCounter >= argRegisters.size()) { - cerr << "Too many parameters! Only 4 supported via registers.\n"; - exit(1); - } - - mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); - paramCounter++; + handle_param_pass(t, code.second); continue; } - else if (t.rfind("CALL", 0) == 0) { - // e.g. CALL func,2 - istringstream iss(t); - string call, funcWithComma; - int argCount; - iss >> call >> funcWithComma; - iss.ignore(); // skip comma - iss >> argCount; - - string funcName = trim(funcWithComma); - if (funcName.back() == ',') funcName.pop_back(); // cleanup - - mipsCode.push_back(" jal " + funcName); - paramCounter = 0; // reset for next call + handle_function_call(t); continue; } else if (t.find(":= PARAM") != string::npos) { - // E.g. param0 := PARAM - size_t assignPos = t.find(":="); - string lhs = trim(t.substr(0, assignPos)); - - // Use next available $a0-$a3 for receiving - if (paramReceiveCounter >= argRegisters.size()) { - cerr << "Too many parameters for this function (more than 4)\n"; - exit(1); - } - - string dst = getRegister(code.second, lhs); // local register for param - string from = argRegisters[paramReceiveCounter]; - mipsCode.push_back(" move " + dst + ", " + from); - - paramReceiveCounter++; + handle_param_receive(t, code.second); continue; } if (t.find(":=") != string::npos) { @@ -505,8 +648,6 @@ void run_liveness(vector& program) { } while (changed); } - - void codegen_main() { std::ifstream infile("output/output1.txt"); // Replace with your file path diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 189297a..18e92cd 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,12 +1,5 @@ -void func(int a, int b) -{ -int p=a+b; -} -int main() -{ -int a =5; -int b=7; -int z= a*b; -func(z,a); -return 0; +int main(){ + int a=3; + float b=4.5; + float c=5.5; } \ No newline at end of file From bde71d24310dea4536ff7cfb32672554109e4311 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Fri, 25 Apr 2025 17:54:29 +0000 Subject: [PATCH 10/52] structural changes and fixed wrong function sizes --- Assignment4/.vscode/settings.json | 3 +- Assignment4/Makefile | 11 ++-- Assignment4/include/3AC.h | 2 +- Assignment4/include/functions.h | 2 +- Assignment4/include/utility.h | 3 ++ Assignment4/output/output1.txt | 39 +++++++++----- Assignment4/src/codegen.cpp | 86 +++++++++++++++---------------- Assignment4/src/parser.y | 2 +- Assignment4/test/input1.c | 4 ++ 9 files changed, 88 insertions(+), 64 deletions(-) diff --git a/Assignment4/.vscode/settings.json b/Assignment4/.vscode/settings.json index 708d457..c5a3fb4 100644 --- a/Assignment4/.vscode/settings.json +++ b/Assignment4/.vscode/settings.json @@ -91,6 +91,7 @@ "typeinfo": "cpp", "valarray": "cpp", "variant": "cpp", - "filesystem": "c" + "filesystem": "c", + "__nullptr": "cpp" } } \ No newline at end of file diff --git a/Assignment4/Makefile b/Assignment4/Makefile index 2d96f27..2192cd3 100644 --- a/Assignment4/Makefile +++ b/Assignment4/Makefile @@ -11,14 +11,19 @@ EXEC = parser LEX_FILE = src/scanner.l YACC_FILE = src/parser.y +INCLUDE_DIR = include + # Default target -all: $(EXEC) +all: run # Rule to compile the parser and scanner -$(EXEC): $(YACC_FILE) $(LEX_FILE) +$(EXEC): clean $(YACC_FILE) $(LEX_FILE) $(BISON) -d -Wno-all $(YACC_FILE) $(LEX) $(LEX_FILE) - $(CC) $(CFLAGS) parser.tab.c lex.yy.c src/codegen.cpp -o $(EXEC) -ll + $(CC) $(CFLAGS) -I$(INCLUDE_DIR) parser.tab.c lex.yy.c src/codegen.cpp -o $(EXEC) -ll + +run: $(EXEC) + ./run.sh # Clean build files clean: diff --git a/Assignment4/include/3AC.h b/Assignment4/include/3AC.h index 897ceb0..28a00ee 100644 --- a/Assignment4/include/3AC.h +++ b/Assignment4/include/3AC.h @@ -1,5 +1,5 @@ #include -#include "utility.h" +#include using namespace std; diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index dcbd7dc..cb81a05 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -1,7 +1,7 @@ #ifndef FUNCTIONS_H #define FUNCTIONS_H -#include "3AC.h" +#include <3AC.h> diff --git a/Assignment4/include/utility.h b/Assignment4/include/utility.h index 7ef7c8d..ec5d4c1 100644 --- a/Assignment4/include/utility.h +++ b/Assignment4/include/utility.h @@ -5,11 +5,14 @@ #include #include #include + +using namespace std; struct scoped_symtab; struct symbol_info; static symbol_info* lookup_symbol_local(const std::string& name, scoped_symtab* curr_scope); static symbol_info* lookup_symbol_global(const std::string& name, scoped_symtab* curr_scope); +extern vector> cleaned_TAC; struct scoped_symtab{ scoped_symtab* parent = nullptr; diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index d24d90f..b4620c2 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,17 +1,22 @@ =====================LIST OF ERRORS=================================== -Line 5 : Missing return statement +Line 9 : Missing return statement ====================================================================== -0x5ba0f2ed24b0 FUNC_BEGIN main -0x5ba0f2ed87d0 a:= 3 -0x5ba0f2ed87d0 b:= 4.500000 -0x5ba0f2ed87d0 c:= 5.500000 -0x5ba0f2ed24b0 FUNC_END main +0x5628f4d668b0 FUNC_BEGIN main +0x5628f4d6cbd0 a:= 3 +0x5628f4d6cbd0 b:= 4.500000 +0x5628f4d6cbd0 c:= 5.500000 +0x5628f4d6e910 a:= 4 +0x5628f4d6e910 d:= 6 +0x5628f4d668b0 FUNC_END main Hiiiii a : int Hiiiii b : float Hiiiii c : float +Hiiiii +d : int +Function main stack size: 24 FUNC_BEGIN main a:= 3 Handling assignment: a := 3 @@ -21,18 +26,28 @@ b:= 4.500000 Handling assignment: b := 4.500000 c:= 5.500000 Handling assignment: c := 5.500000 +a:= 4 +Handling assignment: a := 4 +Getting register for a +Assigned register $t4 to a +d:= 6 +Handling assignment: d := 6 +Getting register for d +Assigned register $t3 to d FUNC_END main # MIPS Assembly Code: main: - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) move $fp, $sp li $t5, 3 li.s $f7, 4.500000 li.s $f6, 5.500000 + li $t4, 4 + li $t3, 6 move $sp, $fp - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 jr $ra diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 64fa96f..5e787f3 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1,13 +1,6 @@ -#include -#include -#include -#include -#include -#include -#include -#include - -#include "../include/utility.h" // Include your utility header +#include + +#include // Include your utility header using namespace std; // Simulated symbol table structure @@ -15,7 +8,6 @@ using namespace std; // Symbol table type int currentInstructionIndex = -1; -static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; static int paramCounter = 0; int paramReceiveCounter = 0; @@ -25,6 +17,7 @@ map funcStackSize; // --- Global Variables --- unordered_map regMap; +static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5"}; vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; map, string> floatVarToReg; @@ -367,7 +360,16 @@ int calculate_function_stack_size(scoped_symtab* scope) { size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); } } - size += 8; // Space for old FP and RA + return size; +} + +int space_for_extra_params(symbol_info* sym) { + int size = 0; + if (sym->param_list.size() > 4) { + for (int i=4; i < sym->param_list.size(); ++i) { + size += get_size_from_type(sym->param_types[i]); + } + } return size; } @@ -440,7 +442,7 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } } else { if (paramReceiveCounter >= argRegisters.size()) { - cerr << "Too many integer parameters received! Only $a0–$a3 supported.\n"; + cerr << "Too many integer parameters received! Only $a0-$a3 supported.\n"; exit(1); } @@ -451,8 +453,6 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { paramReceiveCounter++; } - - // void pass1(vector>& codeList){ // for(auto &code : codeList){ // string t = trim(code.first); @@ -473,21 +473,35 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { // } // } void pass1(vector>& codeList) { - for (int i = 0; i < codeList.size(); ++i) { + for (int i = 0; i < codeList.size(); i++) { string t = trim(codeList[i].first); if (t.empty()) { - cout << "empty codelist error" << endl; + cout << "empty codelist error at line: "<< i+1 << endl; } else if (t.rfind("FUNC_BEGIN", 0) == 0) { istringstream iss(t); string dummy, funcName; iss >> dummy >> funcName; - - if (i + 1 < codeList.size()) { - scoped_symtab* nextScope = codeList[i + 1].second; - int frameBytes = calculate_function_stack_size(nextScope); - funcStackSize[funcName] = frameBytes; - } else { - cerr << "Warning: No scope found after FUNC_BEGIN for " << funcName << endl; + int size=0; + i++; + map visited_scopes; + while(isymbol_map[funcName]); + funcStackSize[funcName] = size+8;// 8 bytes for $ra and $fp + cout << "Function " << funcName << " stack size: " << funcStackSize[funcName] << endl; + break; + }else{ + scoped_symtab* scope = codeList[i].second; + if(visited_scopes.find(scope)==visited_scopes.end()){ + visited_scopes[scope]=1; + size+=calculate_function_stack_size(scope); + } + } + i++; } } } @@ -656,30 +670,12 @@ void codegen_main() { return; } - std::vector> codeList; - std::string line; - - while (std::getline(infile, line)) { - std::istringstream iss(line); - std::string addressStr; - if (!(iss >> addressStr) || !isAddress(addressStr)) { - continue; // skip invalid address - } - - // Convert hex string to pointer - scoped_symtab* address = reinterpret_cast(std::stoull(addressStr, nullptr, 16)); - - std::string restOfLine; - std::getline(iss, restOfLine); - if (!restOfLine.empty() && restOfLine[0] == ' ') - restOfLine = restOfLine.substr(1); // remove leading space - - codeList.emplace_back(restOfLine, address); - } + std::vector> codeList=cleaned_TAC; pass1(codeList); currentLiveness.clear(); + for (int i = 0; i < codeList.size(); ++i) { currentLiveness.push_back({ codeList[i].second, // scope @@ -690,7 +686,7 @@ void codegen_main() { run_liveness(currentLiveness); pass2(codeList); - + // cout< using namespace std; #define MAX_ARGS 100 diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 18e92cd..5fdb22c 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -2,4 +2,8 @@ int main(){ int a=3; float b=4.5; float c=5.5; + { + a=4; + int d=6; + } } \ No newline at end of file From 803444582e22ff294ddd75c8a81d0df0510bc280 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Fri, 25 Apr 2025 22:10:48 +0000 Subject: [PATCH 11/52] fixed wrong scope pointers --- Assignment4/output/output1.txt | 66 +++++++++--------------- Assignment4/src/codegen.cpp | 92 +++++++++++++++++++++------------- Assignment4/test/input1.c | 12 ++--- 3 files changed, 87 insertions(+), 83 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index b4620c2..fd6501f 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,53 +1,37 @@ -=====================LIST OF ERRORS=================================== -Line 9 : Missing return statement ====================================================================== -0x5628f4d668b0 FUNC_BEGIN main -0x5628f4d6cbd0 a:= 3 -0x5628f4d6cbd0 b:= 4.500000 -0x5628f4d6cbd0 c:= 5.500000 -0x5628f4d6e910 a:= 4 -0x5628f4d6e910 d:= 6 -0x5628f4d668b0 FUNC_END main +No Errors in the code +Intermediate code generated successfully +====================================================================== +0x56095c5f98b0 FUNC_BEGIN main +0x56095c5ffeb0 a:= 4 +0x56095c5ffeb0 RETURN 0 +0x56095c5f98b0 FUNC_END main Hiiiii a : int -Hiiiii -b : float -Hiiiii -c : float -Hiiiii -d : int -Function main stack size: 24 +Function main stack size: 12 +Pass 1 done +YOOOOOOOOOOOOO1 1 a +Liveness analysis done FUNC_BEGIN main -a:= 3 -Handling assignment: a := 3 -Getting register for a -Assigned register $t5 to a -b:= 4.500000 -Handling assignment: b := 4.500000 -c:= 5.500000 -Handling assignment: c := 5.500000 -a:= 4 +a:= 4 Handling assignment: a := 4 +YOOOOOOOOOOOOO1 2 a +YOOOOOOOOOOOOO1 3 a Getting register for a -Assigned register $t4 to a -d:= 6 -Handling assignment: d := 6 -Getting register for d -Assigned register $t3 to d +Assigned register $t9 to a +RETURN 0 FUNC_END main +Pass 2 done # MIPS Assembly Code: main: - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) move $fp, $sp - li $t5, 3 - li.s $f7, 4.500000 - li.s $f6, 5.500000 - li $t4, 4 - li $t3, 6 + li $t9, 4 + li $v0, 0 move $sp, $fp - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 4($sp) + lw $ra, 8($sp) + addi $sp, $sp, 12 jr $ra diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 5e787f3..c1dd931 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -12,18 +12,19 @@ static int paramCounter = 0; int paramReceiveCounter = 0; map,string> var_to_reg; -unordered_map> reg_to_var; +map> reg_to_var; map funcStackSize; +stack last_offset; // --- Global Variables --- -unordered_map regMap; +map regMap; static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; -vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5"}; +vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; map, string> floatVarToReg; vector mipsCode; -unordered_map loadedConstants; -unordered_map reg_of_const; +map loadedConstants; +map reg_of_const; struct pair_hash { template @@ -71,8 +72,23 @@ bool isFloatLiteral(const string& s) { all_of(intPart.begin(), intPart.end(), ::isdigit) && all_of(fracPart.begin(), fracPart.end(), ::isdigit); } +int cnt=0,cnt2=0; +scoped_symtab* getScope(scoped_symtab* scope, string& var) { + cnt++; + cnt2++; + cerr<<"YOOOOOOOOOOOOO1 "<symbol_map.count(var)) { + return scope; + } + scope = scope->parent; + } + cerr<<"YOOOOOOOOOOOOO2 "<symbol_map[lhs]->type == "float"); string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); - if (isFloat) { + if (isFloat){ string r1 = getFloatRegister(scope, op1); string r2 = getFloatRegister(scope, op2); string rd = getFloatRegister(scope, lhs); @@ -294,7 +314,8 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { cout<<"Handling assignment: " << lhs << " := " << rhs << endl; - symbol_info* lhsInfo = scope->symbol_map[lhs]; + + symbol_info* lhsInfo = getScope(scope,lhs)->symbol_map[lhs]; bool isFloat = (lhsInfo && lhsInfo->type == "float"); if (isFloat) { @@ -326,6 +347,7 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { mipsCode.push_back(" move " + dst + ", " + src); } } + int get_symbol_size(symbol_info* sym) { if (sym->is_array) { return sym->symbol_size * sym->array_length; @@ -377,7 +399,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" string srcReg = getRegister(scope, var); - symbol_info* sym = scope->symbol_map[var]; + symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { cerr << "Unknown symbol in handle_param_pass: " << var << endl; exit(1); @@ -394,7 +416,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } } else { if (paramCounter >= argRegisters.size()) { - cerr << "Too many integer parameters! Only 4 supported via $a0–$a3.\n"; + cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; exit(1); } mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); @@ -423,7 +445,7 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); - symbol_info* sym = scope->symbol_map[lhs]; + symbol_info* sym = getScope(scope, lhs)->symbol_map[lhs]; if (!sym) { cerr << "Unknown symbol in handle_param_receive: " << lhs << endl; exit(1); @@ -472,6 +494,7 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { // } // } // } + void pass1(vector>& codeList) { for (int i = 0; i < codeList.size(); i++) { string t = trim(codeList[i].first); @@ -513,11 +536,11 @@ void pass2(vector>& codeList){ auto& code = codeList[idx]; currentInstructionIndex = idx; string t = trim(code.first); - cout << t << "\n"; if (t.empty()){ - cout << "empty codelist error" << endl; + continue; } else{ + cout << t << "\n"; if(t.rfind("FUNC_BEGIN", 0) == 0){ istringstream iss(t); string dummy, funcName; @@ -591,12 +614,15 @@ void compute_use_def(LivenessInfo& inst) { size_t eq = line.find(":="); string lhs = trim(line.substr(0, eq)); string rhs = trim(line.substr(eq + 2)); - inst.def.insert({inst.scope, lhs}); + //here + inst.def.insert({getScope(inst.scope,lhs), lhs}); istringstream iss(rhs); string token; while (iss >> token) - if (isalpha(token[0]) && token != lhs) - inst.use.insert({inst.scope, token}); + if (isalpha(token[0]) && token != lhs){ + //here + inst.use.insert({getScope(inst.scope,token), token}); + } } else if (line.find("if(") == 0) { size_t start = line.find('(') + 1; size_t end = line.find(')'); @@ -604,13 +630,16 @@ void compute_use_def(LivenessInfo& inst) { istringstream iss(cond); string token; while (iss >> token) - if (isalpha(token[0])) - inst.use.insert({inst.scope, token}); + if (isalpha(token[0])){ + //here + inst.use.insert({getScope(inst.scope,token), token}); + } } else if (line.find("RETURN") == 0) { string word, val; istringstream iss(line); iss >> word >> val; - inst.use.insert({inst.scope, val}); + //here + if(isalpha(val[0])) inst.use.insert({getScope(inst.scope,val), val}); } } @@ -664,18 +693,12 @@ void run_liveness(vector& program) { void codegen_main() { - std::ifstream infile("output/output1.txt"); // Replace with your file path - if (!infile.is_open()) { - std::cerr << "Failed to open the file.\n"; - return; - } - std::vector> codeList=cleaned_TAC; pass1(codeList); - + cerr<<"Pass 1 done"< Date: Fri, 25 Apr 2025 23:43:23 +0000 Subject: [PATCH 12/52] added spill functionality --- Assignment4/include/utility.h | 7 +- Assignment4/output/output1.txt | 506 +++++++++++++++++++++++++++++++-- Assignment4/src/codegen.cpp | 51 +++- Assignment4/src/test | Bin 0 -> 31264 bytes Assignment4/src/test.cpp | 64 +++++ Assignment4/test/input1.c | 26 +- 6 files changed, 617 insertions(+), 37 deletions(-) create mode 100755 Assignment4/src/test create mode 100644 Assignment4/src/test.cpp diff --git a/Assignment4/include/utility.h b/Assignment4/include/utility.h index ec5d4c1..b27733a 100644 --- a/Assignment4/include/utility.h +++ b/Assignment4/include/utility.h @@ -58,11 +58,10 @@ struct symbol_info { bool is_array_access=false; bool is_continue=false; bool is_break=false; - - + int offset=-1; symbol_info(std::string name="", std::string type="", void* ptr=nullptr, int symbol_size=0, bool is_array=false, int array_length=0, std::vector int_array={},bool is_param_list=false,std::vector param_types={},std::vector param_list={},int parameter_no=0,int pointer_depth=0, qid place = {"", nullptr}, std::string code = "", - std::vector struct_attr_values = {}) + std::vector struct_attr_values = {}, int offset=-1) : name(name), type(type), ptr(ptr), symbol_size(symbol_size){} symbol_info(symbol_info* sym) @@ -71,7 +70,7 @@ struct symbol_info { is_param_list(sym->is_param_list), parameter_no(sym->parameter_no), param_types(sym->param_types), param_list(sym->param_list), struct_attr_values(sym->struct_attr_values), pointer_depth(sym->pointer_depth), - place(sym->place), code(sym->code) { + place(sym->place), code(sym->code), offset(sym->offset) { // Copy the final_code vector for (const auto& item : sym->final_code) { final_code.push_back(item); diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index fd6501f..760ffea 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,37 +1,505 @@ +=====================LIST OF ERRORS=================================== +Line 28 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x56095c5f98b0 FUNC_BEGIN main -0x56095c5ffeb0 a:= 4 -0x56095c5ffeb0 RETURN 0 -0x56095c5f98b0 FUNC_END main +0x55fde60838b0 FUNC_BEGIN main +0x55fde6089eb0 a:= 4 +0x55fde6089eb0 b:= 5 +0x55fde6089eb0 c:= 6 +0x55fde6089eb0 d:= 7 +0x55fde6089eb0 e:= 8 +0x55fde6089eb0 f:= 9 +0x55fde6089eb0 g:= 10 +0x55fde6089eb0 h:= 11 +0x55fde6089eb0 i:= 12 +0x55fde6089eb0 j:= 13 +0x55fde6089eb0 k:= 14 +0x55fde6089eb0 l:= 15 +0x55fde6089eb0 m:= 16 +0x55fde6089eb0 n:= 17 +0x55fde6089eb0 o:= 18 +0x55fde6089eb0 t0 := a + a +0x55fde6089eb0 aa:= t0 +0x55fde6089eb0 t1 := b + b +0x55fde6089eb0 bb:= t1 +0x55fde6089eb0 t2 := c + c +0x55fde6089eb0 cc:= t2 +0x55fde6089eb0 t3 := d + d +0x55fde6089eb0 dd:= t3 +0x55fde6089eb0 t4 := e + e +0x55fde6089eb0 ee:= t4 +0x55fde6089eb0 t5 := f + f +0x55fde6089eb0 ff:= t5 +0x55fde6089eb0 t6 := g + g +0x55fde6089eb0 gg:= t6 +0x55fde6089eb0 t7 := h + h +0x55fde6089eb0 hh:= t7 +0x55fde6089eb0 t8 := i + i +0x55fde6089eb0 ii:= t8 +0x55fde6089eb0 t9 := j + j +0x55fde6089eb0 jj:= t9 +0x55fde6089eb0 t10 := k + k +0x55fde6089eb0 kk:= t10 +0x55fde60838b0 FUNC_END main Hiiiii a : int -Function main stack size: 12 +Hiiiii +aa : int +Hiiiii +b : int +Hiiiii +bb : int +Hiiiii +c : int +Hiiiii +cc : int +Hiiiii +d : int +Hiiiii +dd : int +Hiiiii +e : int +Hiiiii +ee : int +Hiiiii +f : int +Hiiiii +ff : int +Hiiiii +g : int +Hiiiii +gg : int +Hiiiii +h : int +Hiiiii +hh : int +Hiiiii +i : int +Hiiiii +ii : int +Hiiiii +j : int +Hiiiii +jj : int +Hiiiii +k : int +Hiiiii +kk : int +Hiiiii +l : int +Hiiiii +m : int +Hiiiii +n : int +Hiiiii +o : int +Hiiiii +t0 : int +Hiiiii +t1 : int +Hiiiii +t10 : int +Hiiiii +t2 : int +Hiiiii +t3 : int +Hiiiii +t4 : int +Hiiiii +t5 : int +Hiiiii +t6 : int +Hiiiii +t7 : int +Hiiiii +t8 : int +Hiiiii +t9 : int +Function main stack size: 156 Pass 1 done -YOOOOOOOOOOOOO1 1 a Liveness analysis done FUNC_BEGIN main a:= 4 Handling assignment: a := 4 -YOOOOOOOOOOOOO1 2 a -YOOOOOOOOOOOOO1 3 a Getting register for a Assigned register $t9 to a -RETURN 0 +b:= 5 +Handling assignment: b := 5 +Getting register for b +Assigned register $t8 to b +c:= 6 +Handling assignment: c := 6 +Getting register for c +Assigned register $t7 to c +d:= 7 +Handling assignment: d := 7 +Getting register for d +Assigned register $t6 to d +e:= 8 +Handling assignment: e := 8 +Getting register for e +Assigned register $t5 to e +f:= 9 +Handling assignment: f := 9 +Getting register for f +Assigned register $t4 to f +g:= 10 +Handling assignment: g := 10 +Getting register for g +Assigned register $t3 to g +h:= 11 +Handling assignment: h := 11 +Getting register for h +Assigned register $t2 to h +i:= 12 +Handling assignment: i := 12 +Getting register for i +Assigned register $t1 to i +j:= 13 +Handling assignment: j := 13 +Getting register for j +Assigned register $t0 to j +k:= 14 +Handling assignment: k := 14 +Getting register for k +Handling register spill for k +Spilling a from $t9 +pls +Pushed a from $t9 to stack at offset 0 +hi +Assigned register $t9 to k +l:= 15 +Handling assignment: l := 15 +Getting register for l +Handling register spill for l +Spilling b from $t8 +pls +Pushed b from $t8 to stack at offset 4 +hi +Assigned register $t8 to l +m:= 16 +Handling assignment: m := 16 +Getting register for m +Handling register spill for m +Spilling l from $t8 +Assigned register $t8 to m +n:= 17 +Handling assignment: n := 17 +Getting register for n +Handling register spill for n +Spilling m from $t8 +Assigned register $t8 to n +o:= 18 +Handling assignment: o := 18 +Getting register for o +Handling register spill for o +Spilling n from $t8 +Assigned register $t8 to o +t0 := a + a +Handling operation: t0 := a + a +Getting register for a +Handling register spill for a +Spilling o from $t8 +Assigned register $t8 to a +Getting register for a +Found register for a $t8 +Getting register for t0 +Handling register spill for t0 +Spilling c from $t7 +pls +Pushed c from $t7 to stack at offset 8 +hi +Assigned register $t7 to t0 +Operation: a + a +Registers: $t8, $t8, $t7 +aa:= t0 +Handling assignment: aa := t0 +Getting register for aa +Handling register spill for aa +Spilling a from $t8 +Assigned register $t8 to aa +Getting register for t0 +Found register for t0 $t7 +t1 := b + b +Handling operation: t1 := b + b +Getting register for b +Handling register spill for b +Spilling aa from $t8 +Assigned register $t8 to b +Getting register for b +Found register for b $t8 +Getting register for t1 +Handling register spill for t1 +Spilling t0 from $t7 +Assigned register $t7 to t1 +Operation: b + b +Registers: $t8, $t8, $t7 +bb:= t1 +Handling assignment: bb := t1 +Getting register for bb +Handling register spill for bb +Spilling b from $t8 +Assigned register $t8 to bb +Getting register for t1 +Found register for t1 $t7 +t2 := c + c +Handling operation: t2 := c + c +Getting register for c +Handling register spill for c +Spilling bb from $t8 +Assigned register $t8 to c +Getting register for c +Found register for c $t8 +Getting register for t2 +Handling register spill for t2 +Spilling t1 from $t7 +Assigned register $t7 to t2 +Operation: c + c +Registers: $t8, $t8, $t7 +cc:= t2 +Handling assignment: cc := t2 +Getting register for cc +Handling register spill for cc +Spilling c from $t8 +Assigned register $t8 to cc +Getting register for t2 +Found register for t2 $t7 +t3 := d + d +Handling operation: t3 := d + d +Getting register for d +Found register for d $t6 +Getting register for d +Found register for d $t6 +Getting register for t3 +Handling register spill for t3 +Spilling cc from $t8 +Assigned register $t8 to t3 +Operation: d + d +Registers: $t6, $t6, $t8 +dd:= t3 +Handling assignment: dd := t3 +Getting register for dd +Handling register spill for dd +Spilling d from $t6 +Assigned register $t6 to dd +Getting register for t3 +Found register for t3 $t8 +t4 := e + e +Handling operation: t4 := e + e +Getting register for e +Found register for e $t5 +Getting register for e +Found register for e $t5 +Getting register for t4 +Handling register spill for t4 +Spilling dd from $t6 +Assigned register $t6 to t4 +Operation: e + e +Registers: $t5, $t5, $t6 +ee:= t4 +Handling assignment: ee := t4 +Getting register for ee +Handling register spill for ee +Spilling e from $t5 +Assigned register $t5 to ee +Getting register for t4 +Found register for t4 $t6 +t5 := f + f +Handling operation: t5 := f + f +Getting register for f +Found register for f $t4 +Getting register for f +Found register for f $t4 +Getting register for t5 +Handling register spill for t5 +Spilling ee from $t5 +Assigned register $t5 to t5 +Operation: f + f +Registers: $t4, $t4, $t5 +ff:= t5 +Handling assignment: ff := t5 +Getting register for ff +Handling register spill for ff +Spilling f from $t4 +Assigned register $t4 to ff +Getting register for t5 +Found register for t5 $t5 +t6 := g + g +Handling operation: t6 := g + g +Getting register for g +Found register for g $t3 +Getting register for g +Found register for g $t3 +Getting register for t6 +Handling register spill for t6 +Spilling ff from $t4 +Assigned register $t4 to t6 +Operation: g + g +Registers: $t3, $t3, $t4 +gg:= t6 +Handling assignment: gg := t6 +Getting register for gg +Handling register spill for gg +Spilling g from $t3 +Assigned register $t3 to gg +Getting register for t6 +Found register for t6 $t4 +t7 := h + h +Handling operation: t7 := h + h +Getting register for h +Found register for h $t2 +Getting register for h +Found register for h $t2 +Getting register for t7 +Handling register spill for t7 +Spilling gg from $t3 +Assigned register $t3 to t7 +Operation: h + h +Registers: $t2, $t2, $t3 +hh:= t7 +Handling assignment: hh := t7 +Getting register for hh +Handling register spill for hh +Spilling h from $t2 +Assigned register $t2 to hh +Getting register for t7 +Found register for t7 $t3 +t8 := i + i +Handling operation: t8 := i + i +Getting register for i +Found register for i $t1 +Getting register for i +Found register for i $t1 +Getting register for t8 +Handling register spill for t8 +Spilling hh from $t2 +Assigned register $t2 to t8 +Operation: i + i +Registers: $t1, $t1, $t2 +ii:= t8 +Handling assignment: ii := t8 +Getting register for ii +Handling register spill for ii +Spilling i from $t1 +Assigned register $t1 to ii +Getting register for t8 +Found register for t8 $t2 +t9 := j + j +Handling operation: t9 := j + j +Getting register for j +Found register for j $t0 +Getting register for j +Found register for j $t0 +Getting register for t9 +Handling register spill for t9 +Spilling ii from $t1 +Assigned register $t1 to t9 +Operation: j + j +Registers: $t0, $t0, $t1 +jj:= t9 +Handling assignment: jj := t9 +Getting register for jj +Handling register spill for jj +Spilling j from $t0 +Assigned register $t0 to jj +Getting register for t9 +Found register for t9 $t1 +t10 := k + k +Handling operation: t10 := k + k +Getting register for k +Found register for k $t9 +Getting register for k +Found register for k $t9 +Getting register for t10 +Handling register spill for t10 +Spilling jj from $t0 +Assigned register $t0 to t10 +Operation: k + k +Registers: $t9, $t9, $t0 +kk:= t10 +Handling assignment: kk := t10 +Getting register for kk +Handling register spill for kk +Spilling k from $t9 +Assigned register $t9 to kk +Getting register for t10 +Found register for t10 $t0 FUNC_END main Pass 2 done # MIPS Assembly Code: main: - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) + addi $sp, $sp, -156 + sw $ra, 152($sp) + sw $fp, 148($sp) move $fp, $sp li $t9, 4 - li $v0, 0 + li $t8, 5 + li $t7, 6 + li $t6, 7 + li $t5, 8 + li $t4, 9 + li $t3, 10 + li $t2, 11 + li $t1, 12 + li $t0, 13 + sw $t9, 0($sp) + li $t9, 14 + sw $t8, 4($sp) + li $t8, 15 + # Spilling l from $t8 + li $t8, 16 + # Spilling m from $t8 + li $t8, 17 + # Spilling n from $t8 + li $t8, 18 + # Spilling o from $t8 + sw $t7, 8($sp) + add $t7, $t8, $t8 + # Spilling a from $t8 + move $t8, $t7 + # Spilling aa from $t8 + # Spilling t0 from $t7 + add $t7, $t8, $t8 + # Spilling b from $t8 + move $t8, $t7 + # Spilling bb from $t8 + # Spilling t1 from $t7 + add $t7, $t8, $t8 + # Spilling c from $t8 + move $t8, $t7 + # Spilling cc from $t8 + add $t8, $t6, $t6 + # Spilling d from $t6 + move $t6, $t8 + # Spilling dd from $t6 + add $t6, $t5, $t5 + # Spilling e from $t5 + move $t5, $t6 + # Spilling ee from $t5 + add $t5, $t4, $t4 + # Spilling f from $t4 + move $t4, $t5 + # Spilling ff from $t4 + add $t4, $t3, $t3 + # Spilling g from $t3 + move $t3, $t4 + # Spilling gg from $t3 + add $t3, $t2, $t2 + # Spilling h from $t2 + move $t2, $t3 + # Spilling hh from $t2 + add $t2, $t1, $t1 + # Spilling i from $t1 + move $t1, $t2 + # Spilling ii from $t1 + add $t1, $t0, $t0 + # Spilling j from $t0 + move $t0, $t1 + # Spilling jj from $t0 + add $t0, $t9, $t9 + # Spilling k from $t9 + move $t9, $t0 move $sp, $fp - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 + lw $fp, 148($sp) + lw $ra, 152($sp) + addi $sp, $sp, 156 jr $ra diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index c1dd931..45421d5 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -25,6 +25,7 @@ map, string> floatVarToReg; vector mipsCode; map loadedConstants; map reg_of_const; +int get_size_from_type(string type); struct pair_hash { template @@ -72,42 +73,62 @@ bool isFloatLiteral(const string& s) { all_of(intPart.begin(), intPart.end(), ::isdigit) && all_of(fracPart.begin(), fracPart.end(), ::isdigit); } -int cnt=0,cnt2=0; + scoped_symtab* getScope(scoped_symtab* scope, string& var) { - cnt++; - cnt2++; - cerr<<"YOOOOOOOOOOOOO1 "<symbol_map.count(var)) { return scope; } scope = scope->parent; } - cerr<<"YOOOOOOOOOOOOO2 "< varPair){ + scoped_symtab* scope = varPair.first; + string var = varPair.second; + symbol_info* sym = scope->symbol_map[var]; + string reg = var_to_reg[{scope, var}]; + cerr<<"pls"<symbol_map[var]->offset == -1){ + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + }else{ + mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + } + cout << "Pushed " << var << " from " << reg << " to stack at offset " << sym->offset << endl; + availableRegs.push_back(reg); + var_to_reg.erase({scope, var}); + reg_to_var.erase(reg); +} + void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { currentScope = getScope(currentScope, newVar); cout << "Handling register spill for " << newVar << endl; + int maxdist=0; + string regi="$t0"; for (auto it = var_to_reg.begin(); it != var_to_reg.end(); ++it) { auto [vscope, vname] = it->first; string reg = it->second; + // 1. Check use in current instruction + bool isUsedNow = currentLiveness[currentInstructionIndex].use.count({vscope, vname}); bool isLiveInFuture = false; - // 1. Check future liveness + // 2. Check future liveness for (int i = currentInstructionIndex + 1; i < currentLiveness.size(); ++i) { if (currentLiveness[i].live_in.count({vscope, vname})) { + if (currentLiveness[i].index - currentInstructionIndex > maxdist && !isUsedNow) { + maxdist = currentLiveness[i].index - currentInstructionIndex; + regi = reg; + } isLiveInFuture = true; break; } } - - // 2. Check use in current instruction - bool isUsedNow = currentLiveness[currentInstructionIndex].use.count({vscope, vname}); - if (!isLiveInFuture && !isUsedNow) { cout<<"Spilling " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling " + vname + " from " + reg); @@ -117,9 +138,11 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { return; } } - - cerr << "Register spill failed: all registers are live or in use\n"; - exit(1); + //if everyone busy, we'll have to save any, so always choosing the first one + pair varPair = reg_to_var[regi]; + cerr<<"Spilling " << varPair.second << " from " << regi << endl; + push_into_stack(varPair); + cerr<<"hi"<{x2~j$byBR2)oQes+3&gc+~+Mb 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 +#include +#include +using namespace std; +using namespace __gnu_pbds; + +template +using o_set = tree, rb_tree_tag, tree_order_statistics_node_update>; +template +using o_multiset = tree, rb_tree_tag, tree_order_statistics_node_update>; + +#define ll long long +#define ld long double; +#define vll vector +#define vvll vector +#define vpll vector> +#define mll map +#define sll set +#define mod 1000000007 +#define mod2 998244353 +#define inf 1000000000000000 +#define maxN 1e5+1 +#define pb push_back +#define loop(i,n) for(ll i=0; i 0) { + if (b & 1) + res = res * a % m; + a = a * a % m; + b >>= 1; + } + return res; +} + +void solve(){ + stack s; + s.push(1); + s.top()=2; + cout<>t; + while(t--) solve(); +} \ No newline at end of file diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 86bd877..abcf338 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,5 +1,29 @@ int main(){ int a=4; - return 0; + int b=5; + int c=6; + int d=7; + int e=8; + int f=9; + int g=10; + int h=11; + int i=12; + int j=13; + int k=14; + int l=15; + int m=16; + int n=17; + int o=18; + int aa = a+a; + int bb = b+b; + int cc = c+c; + int dd = d+d; + int ee = e+e; + int ff = f+f; + int gg = g+g; + int hh = h+h; + int ii = i+i; + int jj = j+j; + int kk = k+k; } From f29098ae9f616385bdb09c398201c9b43d5ee448 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Sat, 26 Apr 2025 22:33:06 +0530 Subject: [PATCH 13/52] function call with stack --- Assignment4/include/functions.h | 85 ++-- Assignment4/output/output1.txt | 688 +++++++++++--------------------- Assignment4/src/codegen.cpp | 89 +++-- Assignment4/src/parser.y | 4 +- Assignment4/test/input1.c | 40 +- 5 files changed, 382 insertions(+), 524 deletions(-) diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index cb81a05..c48efc8 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -185,43 +185,80 @@ bool isSingleStringLiteral(const string& line) { return regex_match(line, regex("^\".*\"$")); } - - -vector> clean_vector_TAC(vector> input) { +string trimm(const string& s) { + size_t start = s.find_first_not_of(" \t\r\n"); + size_t end = s.find_last_not_of(" \t\r\n"); + return (start == string::npos) ? "" : s.substr(start, end - start + 1); +} +template +std::string pointer_to_string(T* ptr) { + std::ostringstream oss; + oss << ptr; // streams the address in hex (e.g. 0x7ffc1234abcd) + return oss.str(); +} +vector> clean_vector_TAC(const vector>& input) { vector> cleaned_TAC; - int lineno = 1; + unordered_set paramVars; // to remember param0, param1, … - for (auto& entry : input) { - string line = entry.first; + for (const auto& entry : input) { + const string& line = entry.first; scoped_symtab* scope = entry.second; - - // Trim leading and trailing whitespace - while (!line.empty() && isspace(line.front())) line.erase(line.begin()); - while (!line.empty() && isspace(line.back())) line.pop_back(); - - // Skip lines that are empty or contain only a number, float, or string literal - if (line.empty() || isSingleNumber(line) || isSingleFloat(line) || isSingleStringLiteral(line)) + string address=pointer_to_string(entry.second); + //cout<<"fullLine: " << fullLine << endl; + // 1) Split off the address + // auto spacePos = fullLine.find(' '); + // if (spacePos == string::npos) continue; + // string address = fullLine.substr(0, spacePos); + // string line = trimm(fullLine.substr(spacePos + 1)); + // cout<<"line: " << line << endl; + // 2) Skip trivial or empty lines + if (line.empty() || + isSingleNumber(line) || + isSingleFloat(line) || + isSingleStringLiteral(line) || + (startsWithPointerOrAddress(line) && line.find('=') == string::npos)) + { continue; + } - // Skip lines with only pointer/address-of expression and no assignment - if (startsWithPointerOrAddress(line) && line.find('=') == string::npos) - continue; + // 3) Param logic (handles both ":=" and "=") + auto eqPos = line.find('='); + if (eqPos != string::npos) { + string lhs = trimm(line.substr(0, eqPos-1)); + //cout<<"lhs: " << lhs << endl; + string rhs = trimm(line.substr(eqPos + 1)); + + // normalize leading ":=" if present + if (!rhs.empty() && rhs[0] == ':') { + auto p = rhs.find_first_not_of(":="); + if (p != string::npos) rhs = trimm(rhs.substr(p)); + } - // Output for debug (optional) - // cerr << lineno << ". "<>& vec) { for (const auto& pair : vec) { cerr<,string> var_to_reg; map> reg_to_var; map funcStackSize; +map size_of_extra_parameters; stack last_offset; // --- Global Variables --- @@ -26,6 +28,7 @@ vector mipsCode; map loadedConstants; map reg_of_const; int get_size_from_type(string type); +void handle_function_call(const string& line); struct pair_hash { template @@ -75,6 +78,7 @@ bool isFloatLiteral(const string& s) { } scoped_symtab* getScope(scoped_symtab* scope, string& var) { + if (var=="PARAM"||var=="CALL"||var=="RETURN") return scope; while(scope != nullptr) { if (scope->symbol_map.count(var)) { return scope; @@ -86,6 +90,7 @@ scoped_symtab* getScope(scoped_symtab* scope, string& var) { } void push_into_stack(pair varPair){ + mipsCode.push_back(" #Pushing " + varPair.second + " to stack"); scoped_symtab* scope = varPair.first; string var = varPair.second; symbol_info* sym = scope->symbol_map[var]; @@ -140,7 +145,7 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { } //if everyone busy, we'll have to save any, so always choosing the first one pair varPair = reg_to_var[regi]; - cerr<<"Spilling " << varPair.second << " from " << regi << endl; + cerr<<"Spilling to stack " << varPair.second << " from " << regi << endl; push_into_stack(varPair); cerr<<"hi"<symbol_map[var]->offset != -1){ + cout<<"Variable " << var << " is on stack, loading into register\n"; + string reg = availableRegs.back(); + availableRegs.pop_back(); + mipsCode.push_back(" lw " + reg + ", " + to_string(scope->symbol_map[var]->offset) + "($sp)"); + var_to_reg[{scope,var}] = reg; + reg_to_var[reg] = {scope,var}; + return reg; + } string reg = availableRegs.back(); availableRegs.pop_back(); var_to_reg[{scope,var}] = reg; @@ -195,10 +210,10 @@ pair find_operator(const string& line) { void generate_func_begin_MIPS(const string &func, int stackSize) { mipsCode.push_back(func + ":"); + mipsCode.push_back(" move $fp, $sp"); mipsCode.push_back(" addi $sp, $sp, -" + to_string(stackSize)); mipsCode.push_back(" sw $ra, " + to_string(stackSize - 4) + "($sp)"); mipsCode.push_back(" sw $fp, " + to_string(stackSize - 8) + "($sp)"); - mipsCode.push_back(" move $fp, $sp"); last_offset.push(0); } @@ -209,15 +224,20 @@ void generate_func_end_MIPS(const string &func, int stackSize) { mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); mipsCode.push_back(" jr $ra"); regMap.clear(); - availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; - floatVarToReg.clear(); - availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; - loadedConstants.clear(); + // availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; + // floatVarToReg.clear(); + // availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; + // loadedConstants.clear(); last_offset.pop(); } -void generate_return_MIPS(string val) { - mipsCode.push_back(" li $v0, " + val); +void generate_return_MIPS(scoped_symtab* scope,string val) { + if(isIntLiteral(val) || isFloatLiteral(val)) mipsCode.push_back(" li $v0, " + val); + else{ + string reg=getRegister(scope,val); + mipsCode.push_back(" move $v0, " + reg); + } + } // --- Operation/Assignment Handlers --- @@ -355,6 +375,11 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { return; } string dst = getRegister(scope,lhs); + if(rhs.find("CALL") != string::npos){ + handle_function_call(rhs); + mipsCode.push_back(" move " + dst + ", $v0"); + return; + } if (isIntLiteral(rhs)) { if(reg_of_const.count(rhs)) { mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); @@ -406,6 +431,7 @@ int calculate_function_stack_size(scoped_symtab* scope) { if (!sym->is_param_list && !sym->is_return) { size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); } + cout<<"current size: " << size << endl; } return size; } @@ -423,7 +449,6 @@ int space_for_extra_params(symbol_info* sym) { void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" string srcReg = getRegister(scope, var); - symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { cerr << "Unknown symbol in handle_param_pass: " << var << endl; @@ -439,18 +464,27 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; exit(1); } - } else { + } + else { if (paramCounter >= argRegisters.size()) { - cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; - exit(1); + mipsCode.push_back(" #pushing " + srcReg + " to stack"); + mipsCode.push_back(" addi $sp, $sp, -4"); + mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); + // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; + // exit(1); + } + else if(paramCounter == argRegisters.size()){ + mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); + param_receive_offset=0; } - mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); + else mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); } paramCounter++; } void handle_function_call(const string& line) { + cerr<<"Handling function call: " << line << endl; istringstream iss(line); string call, funcWithComma; int argCount; @@ -467,9 +501,9 @@ void handle_function_call(const string& line) { void handle_param_receive(const string& line, scoped_symtab* scope) { + cerr<<"Handling param receive: " << line << endl; size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); - symbol_info* sym = getScope(scope, lhs)->symbol_map[lhs]; if (!sym) { cerr << "Unknown symbol in handle_param_receive: " << lhs << endl; @@ -489,12 +523,21 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } } else { if (paramReceiveCounter >= argRegisters.size()) { - cerr << "Too many integer parameters received! Only $a0-$a3 supported.\n"; - exit(1); + mipsCode.push_back(" #popping from stack to " + dst); + mipsCode.push_back(" lw " + dst + ", " + "-"+to_string(param_receive_offset) + "($fp)"); + param_receive_offset+=4; + mipsCode.push_back(" #pushing into function stack"); + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" sw " + dst + ", " + to_string(sym->offset) + "($sp)"); + // cerr << "Too many integer parameters received! Only $a0-$a3 supported.\n"; + // exit(1); } - - string from = argRegisters[paramReceiveCounter]; - mipsCode.push_back(" move " + dst + ", " + from); + else{ + string from = argRegisters[paramReceiveCounter]; + mipsCode.push_back(" move " + dst + ", " + from); + } + } paramReceiveCounter++; @@ -538,7 +581,7 @@ void pass1(vector>& codeList) { cout << "empty codelist error at line: "<< i+1 <symbol_map[funcName]); + size_of_extra_parameters[funcName]=space_for_extra_params(codeList[i].second->symbol_map[funcName]); funcStackSize[funcName] = size+8;// 8 bytes for $ra and $fp cout << "Function " << funcName << " stack size: " << funcStackSize[funcName] << endl; break; @@ -584,7 +627,7 @@ void pass2(vector>& codeList){ istringstream iss(t); string keyword, val; iss >> keyword >> val; - generate_return_MIPS(val); + generate_return_MIPS(code.second,val); } else if (t.rfind("if(", 0) == 0 && t.find("goto") != string::npos) { size_t start = t.find('(') + 1; @@ -736,9 +779,9 @@ void codegen_main() { pass2(codeList); cerr<<"Pass 2 done"<final_code); print_vector(cleaned_TAC); + } ; translation_unit @@ -2166,6 +2167,7 @@ int main() { curr_scope->symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); + print_scope_table(); codegen_main(); - // print_scope_table(); + } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index abcf338..1123e7d 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,29 +1,15 @@ -int main(){ - int a=4; - int b=5; - int c=6; - int d=7; - int e=8; - int f=9; - int g=10; - int h=11; - int i=12; - int j=13; - int k=14; - int l=15; - int m=16; - int n=17; - int o=18; - int aa = a+a; - int bb = b+b; - int cc = c+c; - int dd = d+d; - int ee = e+e; - int ff = f+f; - int gg = g+g; - int hh = h+h; - int ii = i+i; - int jj = j+j; - int kk = k+k; +int func(int a,int b,int c, int d,int e,int f){ + int sum=d+e; + return sum; } +int main(){ + int x=10; + int y=20; + int z=30; + int p=40; + int q=50; + int r=60; + int result=func(x,y,z,p,q,r); + return 0; +} \ No newline at end of file From a47ff29ef03873825b1623a12469cf0fd2ee0808 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Sat, 26 Apr 2025 23:25:42 +0530 Subject: [PATCH 14/52] not working --- Assignment4/output/letstest.s | 59 +++++++++++++++++++++++++++++ Assignment4/output/output.s | 70 +++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 Assignment4/output/letstest.s create mode 100644 Assignment4/output/output.s diff --git a/Assignment4/output/letstest.s b/Assignment4/output/letstest.s new file mode 100644 index 0000000..9f184f6 --- /dev/null +++ b/Assignment4/output/letstest.s @@ -0,0 +1,59 @@ + .text + .globl func + .globl main + +# ------------------------- +# func(a,b,c,d,e,f): +# sum = d + e +# return sum +# ------------------------- +func: + addi $sp, $sp, -40 # 40 bytes frame + sw $ra, 36($sp) # save return addr + sw $fp, 32($sp) # save old frame ptr + move $fp, $sp # new frame ptr + + lw $t0, 40($fp) # load e + addu $v0, $a3, $t0 # sum = d + e + + move $sp, $fp # restore SP + lw $fp, 32($sp) # restore FP + lw $ra, 36($sp) # restore RA + addi $sp, $sp, 40 # pop frame + jr $ra # return + +# ------------------------- +# main(): +# x=10,y=20,z=30,p=40,q=50,r=60 +# result=func(x,y,z,p,q,r) +# return 0 +# ------------------------- +main: + addi $sp, $sp, -32 # make room for 6 locals (if you want) + saved regs + sw $ra, 28($sp) + sw $fp, 24($sp) + move $fp, $sp + + # first four args + li $a0, 10 + li $a1, 20 + li $a2, 30 + li $a3, 40 + + # push 5th and 6th arguments + li $t0, 50 + li $t1, 60 + sw $t0, 4($sp) # q at 4($sp) + sw $t1, 0($sp) # r at 0($sp) + + jal func # call + addi $sp, $sp, 8 # pop q,r + + # ($v0 holds the return) + + #li $v0, 0 # return 0 + move $sp, $fp + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 + jr $ra diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s new file mode 100644 index 0000000..d96eaaa --- /dev/null +++ b/Assignment4/output/output.s @@ -0,0 +1,70 @@ +.text +.globl func +.globl main + +func: + move $fp, $sp + addi $sp, $sp, -40 + sw $ra, 36($sp) + sw $fp, 32($sp) + + + move $t9, $a0 + move $t8, $a1 + move $t7, $a2 + move $t6, $a3 + #popping from stack to $t5 + lw $t5, -0($fp) + #pushing into function stack + sw $t5, 0($sp) + #popping from stack to $t4 + lw $t4, -4($fp) + #pushing into function stack + sw $t4, 4($sp) + add $t3, $t6, $t5 + move $t2, $t3 + move $v0, $t2 + + move $sp, $fp + lw $fp, 32($sp) + lw $ra, 36($sp) + addi $sp, $sp, 40 + jr $ra + +main: + move $fp, $sp + addi $sp, $sp, -40 + sw $ra, 36($sp) + sw $fp, 32($sp) + li $t1, 10 + li $t0, 20 + # Spilling a from $t9 + li $t9, 30 + # Spilling b from $t8 + li $t8, 40 + # Spilling c from $t7 + li $t7, 50 + # Spilling d from $t6 + li $t6, 60 + move $a0, $t1 + move $a1, $t0 + move $a2, $t9 + move $a3, $t8 + #pushing $t7 to stack + addi $sp, $sp, -4 + sw $t7, 0($sp) + #pushing $t6 to stack + addi $sp, $sp, -4 + sw $t6, 0($sp) + # Spilling e from $t5 + jal func + move $t5, $v0 + # Spilling f from $t4 + move $t4, $t5 + li $v0, 0 + move $sp, $fp + lw $fp, 32($sp) + lw $ra, 36($sp) + addi $sp, $sp, 40 + jr $ra +.end main \ No newline at end of file From 975081651a41aa604ae64758fc27961d6fa86181 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Sun, 27 Apr 2025 01:25:10 +0530 Subject: [PATCH 15/52] sort(all(func_params)); --- Assignment4/output/letstest.s | 3 + Assignment4/output/output.s | 86 ++------- Assignment4/output/output1.txt | 329 ++++++++------------------------- Assignment4/src/codegen.cpp | 43 +++-- Assignment4/src/help | Bin 0 -> 1765048 bytes Assignment4/src/help.cpp | 70 +++++++ Assignment4/test/input1.c | 27 ++- 7 files changed, 214 insertions(+), 344 deletions(-) create mode 100755 Assignment4/src/help create mode 100644 Assignment4/src/help.cpp diff --git a/Assignment4/output/letstest.s b/Assignment4/output/letstest.s index 9f184f6..902b230 100644 --- a/Assignment4/output/letstest.s +++ b/Assignment4/output/letstest.s @@ -48,6 +48,9 @@ main: jal func # call addi $sp, $sp, 8 # pop q,r + move $a0, $v0 # move result into $a0 + li $v0, 1 # syscall 1 = print integer + syscall # print the integer # ($v0 holds the return) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index d96eaaa..0827895 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,70 +1,24 @@ .text -.globl func .globl main - -func: - move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - - - move $t9, $a0 - move $t8, $a1 - move $t7, $a2 - move $t6, $a3 - #popping from stack to $t5 - lw $t5, -0($fp) - #pushing into function stack - sw $t5, 0($sp) - #popping from stack to $t4 - lw $t4, -4($fp) - #pushing into function stack - sw $t4, 4($sp) - add $t3, $t6, $t5 - move $t2, $t3 - move $v0, $t2 - - move $sp, $fp - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 - jr $ra - main: move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - li $t1, 10 - li $t0, 20 - # Spilling a from $t9 - li $t9, 30 - # Spilling b from $t8 - li $t8, 40 - # Spilling c from $t7 - li $t7, 50 - # Spilling d from $t6 - li $t6, 60 - move $a0, $t1 - move $a1, $t0 - move $a2, $t9 - move $a3, $t8 - #pushing $t7 to stack - addi $sp, $sp, -4 - sw $t7, 0($sp) - #pushing $t6 to stack - addi $sp, $sp, -4 - sw $t6, 0($sp) - # Spilling e from $t5 - jal func - move $t5, $v0 - # Spilling f from $t4 - move $t4, $t5 - li $v0, 0 - move $sp, $fp - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 - jr $ra -.end main \ No newline at end of file + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $t9, 1 + li $t8, 2 + seq $t7, $t9, $t8 + bnez $t7, LABEL0 + j LABEL1 +LABEL0: + li $t9, 3 + j LABEL2 +LABEL1: + li $t9, 4 +LABEL2: + move $v0, $t9 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 + li $v0, 10 + syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index c3fa543..de0c786 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,40 +2,25 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x5611931764b0 FUNC_BEGIN func -0x56119317e7a0 a := PARAM -0x56119317e7a0 b := PARAM -0x56119317e7a0 c := PARAM -0x56119317e7a0 d := PARAM -0x56119317e7a0 e := PARAM -0x56119317e7a0 f := PARAM -0x56119317e7a0 t0 := d + e -0x56119317e7a0 sum:= t0 -0x56119317e7a0 RETURN sum -0x5611931764b0 FUNC_END func -0x5611931764b0 FUNC_BEGIN main -0x56119317fa00 x:= 10 -0x56119317fa00 y:= 20 -0x56119317fa00 z:= 30 -0x56119317fa00 p:= 40 -0x56119317fa00 q:= 50 -0x56119317fa00 r:= 60 -0x56119317fa00 PARAM x -0x56119317fa00 PARAM y -0x56119317fa00 PARAM z -0x56119317fa00 PARAM p -0x56119317fa00 PARAM q -0x56119317fa00 PARAM r -0x56119317fa00 t1 := CALL func,6 -0x56119317fa00 result:= t1 -0x56119317fa00 RETURN 0 -0x5611931764b0 FUNC_END main +0x605fc3da34b0 FUNC_BEGIN main +0x605fc3da9ab0 a:= 1 +0x605fc3da9ab0 b:= 2 +0x605fc3da9ab0 t0 := a == b +0x605fc3da9ab0 if(t0) goto LABEL0 +0x605fc3da9ab0 goto LABEL1 +0x605fc3da9ab0 LABEL0: +0x605fc3dab3c0 a:= 3 +0x605fc3da9ab0 goto LABEL2 +0x605fc3da9ab0 LABEL1: +0x605fc3dabfe0 a:= 4 +0x605fc3da9ab0 LABEL2: +0x605fc3da9ab0 RETURN a +0x605fc3da34b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| func | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -43,26 +28,17 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | N/A | -| b | int | 4 | N/A | -| c | int | 4 | N/A | -| d | int | 4 | N/A | -| e | int | 4 | N/A | -| f | int | 4 | N/A | -| sum | int | 4 | N/A | -| t0 | int | 4 | N/A | ----------------------------------------------------------------- ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| p | int | 4 | 40 | -| q | int | 4 | 50 | -| r | int | 4 | 60 | -| result | int | 4 | N/A | -| t1 | int | 4 | N/A | -| x | int | 4 | 10 | -| y | int | 4 | 20 | -| z | int | 4 | 30 | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | 1 | +| b | int | 4 | 2 | +| t0 | int | 4 | N/A | ----------------------------------------------------------------- Hiiiii a : int @@ -71,225 +47,74 @@ Hiiiii b : int current size: 8 Hiiiii -c : int -current size: 12 -Hiiiii -d : int -current size: 16 -Hiiiii -e : int -current size: 20 -Hiiiii -f : int -current size: 24 -Hiiiii -sum : int -current size: 28 -Hiiiii t0 : int -current size: 32 -Function func stack size: 40 -Hiiiii -p : int -current size: 4 -Hiiiii -q : int -current size: 8 -Hiiiii -r : int current size: 12 -Hiiiii -result : int -current size: 16 -Hiiiii -t1 : int -current size: 20 -Hiiiii -x : int -current size: 24 -Hiiiii -y : int -current size: 28 -Hiiiii -z : int -current size: 32 -Function main stack size: 40 +Function main stack size: 20 Pass 1 done -Error!!!! Variable func,6 not found in any scope Liveness analysis done -FUNC_BEGIN func -a := PARAM -Handling param receive: a := PARAM +FUNC_BEGIN main +a:= 1 +Handling assignment: a := 1 Getting register for a Assigned register $t9 to a -b := PARAM -Handling param receive: b := PARAM +b:= 2 +Handling assignment: b := 2 Getting register for b Assigned register $t8 to b -c := PARAM -Handling param receive: c := PARAM -Getting register for c -Assigned register $t7 to c -d := PARAM -Handling param receive: d := PARAM -Getting register for d -Assigned register $t6 to d -e := PARAM -Handling param receive: e := PARAM -Getting register for e -Assigned register $t5 to e -f := PARAM -Handling param receive: f := PARAM -Getting register for f -Assigned register $t4 to f -t0 := d + e -Handling operation: t0 := d + e -Getting register for d -Found register for d $t6 -Getting register for e -Found register for e $t5 +t0 := a == b +Handling operation: t0 := a == b +Getting register for a +Found register for a $t9 +Getting register for b +Found register for b $t8 Getting register for t0 -Assigned register $t3 to t0 -Operation: d + e -Registers: $t6, $t5, $t3 -sum:= t0 -Handling assignment: sum := t0 -Getting register for sum -Assigned register $t2 to sum +Assigned register $t7 to t0 +Operation: a == b +Registers: $t9, $t8, $t7 +if(t0) goto LABEL0 +Condition: t0, Label: LABEL0 Getting register for t0 -Found register for t0 $t3 -RETURN sum -Getting register for sum -Found register for sum $t2 -FUNC_END func -FUNC_BEGIN main -x:= 10 -Handling assignment: x := 10 -Getting register for x -Assigned register $t1 to x -y:= 20 -Handling assignment: y := 20 -Getting register for y -Assigned register $t0 to y -z:= 30 -Handling assignment: z := 30 -Getting register for z -Handling register spill for z -Spilling a from $t9 -Assigned register $t9 to z -p:= 40 -Handling assignment: p := 40 -Getting register for p -Handling register spill for p -Spilling b from $t8 -Assigned register $t8 to p -q:= 50 -Handling assignment: q := 50 -Getting register for q -Handling register spill for q -Spilling c from $t7 -Assigned register $t7 to q -r:= 60 -Handling assignment: r := 60 -Getting register for r -Handling register spill for r -Spilling d from $t6 -Assigned register $t6 to r -PARAM x -Getting register for x -Found register for x $t1 -PARAM y -Getting register for y -Found register for y $t0 -PARAM z -Getting register for z -Found register for z $t9 -PARAM p -Getting register for p -Found register for p $t8 -PARAM q -Getting register for q -Found register for q $t7 -PARAM r -Getting register for r -Found register for r $t6 -t1 := CALL func,6 -Handling assignment: t1 := CALL func,6 -Getting register for t1 -Handling register spill for t1 -Spilling e from $t5 -Assigned register $t5 to t1 -Handling function call: CALL func,6 -result:= t1 -Handling assignment: result := t1 -Getting register for result -Handling register spill for result -Spilling f from $t4 -Assigned register $t4 to result -Getting register for t1 -Found register for t1 $t5 -RETURN 0 +Found register for t0 $t7 +goto LABEL1 +LABEL0: +a:= 3 +Handling assignment: a := 3 +Getting register for a +Found register for a $t9 +goto LABEL2 +LABEL1: +a:= 4 +Handling assignment: a := 4 +Getting register for a +Found register for a $t9 +LABEL2: +RETURN a +Getting register for a +Found register for a $t9 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ -func: - move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - move $t9, $a0 - move $t8, $a1 - move $t7, $a2 - move $t6, $a3 - #popping from stack to $t5 - lw $t5, -0($fp) - #pushing into function stack - sw $t5, 0($sp) - #popping from stack to $t4 - lw $t4, -4($fp) - #pushing into function stack - sw $t4, 4($sp) - add $t3, $t6, $t5 - move $t2, $t3 - move $v0, $t2 - move $sp, $fp - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 - jr $ra +.text +.globl main main: move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - li $t1, 10 - li $t0, 20 - # Spilling a from $t9 - li $t9, 30 - # Spilling b from $t8 - li $t8, 40 - # Spilling c from $t7 - li $t7, 50 - # Spilling d from $t6 - li $t6, 60 - move $a0, $t1 - move $a1, $t0 - move $a2, $t9 - move $a3, $t8 - #pushing $t7 to stack - addi $sp, $sp, -4 - sw $t7, 0($sp) - #pushing $t6 to stack - addi $sp, $sp, -4 - sw $t6, 0($sp) - # Spilling e from $t5 - jal func,6 - move $t5, $v0 - # Spilling f from $t4 - move $t4, $t5 - li $v0, 0 - move $sp, $fp - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 - jr $ra + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $t9, 1 + li $t8, 2 + seq $t7, $t9, $t8 + bnez $t7, LABEL0 + j LABEL1 +LABEL0: + li $t9, 3 + j LABEL2 +LABEL1: + li $t9, 4 +LABEL2: + move $v0, $t9 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 + li $v0, 10 + syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 6df1893..fefaa10 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -17,7 +17,7 @@ map> reg_to_var; map funcStackSize; map size_of_extra_parameters; stack last_offset; - +vector functionparams; // --- Global Variables --- map regMap; static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; @@ -25,6 +25,7 @@ vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; map, string> floatVarToReg; vector mipsCode; + map loadedConstants; map reg_of_const; int get_size_from_type(string type); @@ -217,13 +218,13 @@ void generate_func_begin_MIPS(const string &func, int stackSize) { last_offset.push(0); } -void generate_func_end_MIPS(const string &func, int stackSize) { - mipsCode.push_back(" move $sp, $fp"); +void generate_func_end_MIPS( string &func, int stackSize) { + // mipsCode.push_back(" move $sp, $fp"); mipsCode.push_back(" lw $fp, " + to_string(stackSize - 8) + "($sp)"); mipsCode.push_back(" lw $ra, " + to_string(stackSize - 4) + "($sp)"); mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); - mipsCode.push_back(" jr $ra"); - regMap.clear(); + if(func!="main") mipsCode.push_back(" jr $ra"); + // regMap.clear(); // availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; // floatVarToReg.clear(); // availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; @@ -232,7 +233,11 @@ void generate_func_end_MIPS(const string &func, int stackSize) { } void generate_return_MIPS(scoped_symtab* scope,string val) { - if(isIntLiteral(val) || isFloatLiteral(val)) mipsCode.push_back(" li $v0, " + val); + if(isIntLiteral(val) || isFloatLiteral(val)) + { + mipsCode.push_back("\t move $a0, $v0 \n \t li $v0, 1 \n \t syscall"); + mipsCode.push_back(" li $v0, " + val); + } else{ string reg=getRegister(scope,val); mipsCode.push_back(" move $v0, " + reg); @@ -467,9 +472,9 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } else { if (paramCounter >= argRegisters.size()) { - mipsCode.push_back(" #pushing " + srcReg + " to stack"); - mipsCode.push_back(" addi $sp, $sp, -4"); - mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); + functionparams.push_back(" addi $sp, $sp, -4 \n sw " + srcReg + ", " + to_string(0) + "($sp)"); + // mipsCode.push_back(" addi $sp, $sp, -4"); + // mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; // exit(1); } @@ -494,7 +499,18 @@ void handle_function_call(const string& line) { string funcName = trim(funcWithComma); if (!funcName.empty() && funcName.back() == ',') funcName.pop_back(); - + if(funcName.find(",")!=string::npos){ + funcName = funcName.substr(0,funcName.find(",")); + } + if(functionparams.size() > 0){ + reverse(functionparams.begin(), functionparams.end()); + for(auto ¶m : functionparams){ + mipsCode.push_back(param); + } + functionparams.clear(); + } + + //cerr<<"Function name: " << funcName << endl; mipsCode.push_back(" jal " + funcName); paramCounter = 0; // Reset after call } @@ -524,7 +540,7 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } else { if (paramReceiveCounter >= argRegisters.size()) { mipsCode.push_back(" #popping from stack to " + dst); - mipsCode.push_back(" lw " + dst + ", " + "-"+to_string(param_receive_offset) + "($fp)"); + mipsCode.push_back(" lw " + dst + ", " +to_string(param_receive_offset) + "($fp)"); param_receive_offset+=4; mipsCode.push_back(" #pushing into function stack"); sym->offset = last_offset.top(); @@ -760,7 +776,8 @@ void run_liveness(vector& program) { } void codegen_main() { - + mipsCode.push_back(".text"); + mipsCode.push_back(".globl main"); std::vector> codeList=cleaned_TAC; pass1(codeList); @@ -779,6 +796,8 @@ void codegen_main() { pass2(codeList); cerr<<"Pass 2 done"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

xlj`Vnq5_@u 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�KwXv^zuBm;!vyRRqx))cZG4 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�hU;=Hjfm=tWoq=IrT`nk~Co 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 h$K?;d^ +#include +using namespace std; +vector avail_Regs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "$t9"}; +string get_reg(){ + if (avail_Regs.empty()) { + cerr << "No available registers!" << endl; + return ""; + } + string reg = avail_Regs.back(); + avail_Regs.pop_back(); + return reg; +} + +void free_reg(string reg){ + avail_Regs.push_back(reg); +} + +bool is_constant(const string& s) { + return regex_match(s, regex(R"(\d+)")); // matches integers only +} +void handle_arithmetic_operation(string tac){ + regex pattern(R"(^\s*(\w+)\s*:=\s*(\w+)\s*([\+\-\*/])\s*(\w+)\s*$)"); + smatch match; + string result; + string arg1; + string op; + string arg2; + if (regex_match(tac, match, pattern)) { + result = match[1]; + arg1 = match[2]; + op = match[3]; + arg2 = match[4]; + cout << "Result variable: " << result << endl; + cout << "Operand 1: " << arg1 << endl; + cout << "Operator: " << op << endl; + cout << "Operand 2: " << arg2 << endl; + } + if(is_constant (arg1) && is_constant(arg2)){ + string reg = get_reg(); + string val; + if(op=="+"){ + val = to_string(stoi(arg1) + stoi(arg2)); + } + else if(op=="-"){ + val = to_string(stoi(arg1) - stoi(arg2)); + } + else if(op=="*"){ + val = to_string(stoi(arg1) * stoi(arg2)); + } + else if(op=="/"){ + val = to_string(stoi(arg1) / stoi(arg2)); + } + cout<<"li "< Date: Sun, 27 Apr 2025 02:18:17 +0530 Subject: [PATCH 16/52] Handled float params --- Assignment4/output/output.s | 63 +++++--- Assignment4/output/output1.txt | 257 +++++++++++++++++++++++---------- Assignment4/src/codegen.cpp | 75 +++++++--- Assignment4/test/input1.c | 27 ++-- 4 files changed, 300 insertions(+), 122 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 0827895..4523b3c 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,24 +1,51 @@ .text .globl main -main: +add1: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $t9, 1 - li $t8, 2 - seq $t7, $t9, $t8 - bnez $t7, LABEL0 - j LABEL1 -LABEL0: - li $t9, 3 - j LABEL2 -LABEL1: - li $t9, 4 -LABEL2: + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + move $t9, $a0 + mov.s $f7, $f14 + mov.s $f6, $f14 + move $t8, $a1 + move $t7, $a2 + #popping from stack to $f5 + l.s $f5, 0($fp) + #pushing into function stack + s.s $f5, 0($sp) move $v0, $t9 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 + jr $ra +main: + move $fp, $sp + addi $sp, $sp, -40 + sw $ra, 36($sp) + sw $fp, 32($sp) + li $t6, 10 + li.s $f4, 4.000000 + li.s $f3, 3.140000 + li $t5, 2 + li $t4, 609 + li.s $f2, 7.100000 + move $a0, $t6 + mov.s $f12, $f4 + mov.s $f14, $f3 + move $a1, $t5 + move $a2, $t4 + addi $sp, $sp, -4 + s.s $f2, 0($sp) + jal add1 + move $t3, $v0 + move $t2, $t3 + move $a0, $v0 + li $v0, 1 + syscall + li $v0, 0 + lw $fp, 32($sp) + lw $ra, 36($sp) + addi $sp, $sp, 40 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index de0c786..97c348c 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,25 +2,38 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x605fc3da34b0 FUNC_BEGIN main -0x605fc3da9ab0 a:= 1 -0x605fc3da9ab0 b:= 2 -0x605fc3da9ab0 t0 := a == b -0x605fc3da9ab0 if(t0) goto LABEL0 -0x605fc3da9ab0 goto LABEL1 -0x605fc3da9ab0 LABEL0: -0x605fc3dab3c0 a:= 3 -0x605fc3da9ab0 goto LABEL2 -0x605fc3da9ab0 LABEL1: -0x605fc3dabfe0 a:= 4 -0x605fc3da9ab0 LABEL2: -0x605fc3da9ab0 RETURN a -0x605fc3da34b0 FUNC_END main +0x5c4a921194b0 FUNC_BEGIN add1 +0x5c4a921217a0 a := PARAM +0x5c4a921217a0 b := PARAM +0x5c4a921217a0 c := PARAM +0x5c4a921217a0 d := PARAM +0x5c4a921217a0 e := PARAM +0x5c4a921217a0 f := PARAM +0x5c4a921217a0 RETURN a +0x5c4a921194b0 FUNC_END add1 +0x5c4a921194b0 FUNC_BEGIN main +0x5c4a92122ae0 a:= 10 +0x5c4a92122ae0 b:= 4.000000 +0x5c4a92122ae0 c:= 3.140000 +0x5c4a92122ae0 d:= 2 +0x5c4a92122ae0 e:= 609 +0x5c4a92122ae0 f:= 7.100000 +0x5c4a92122ae0 PARAM a +0x5c4a92122ae0 PARAM b +0x5c4a92122ae0 PARAM c +0x5c4a92122ae0 PARAM d +0x5c4a92122ae0 PARAM e +0x5c4a92122ae0 PARAM f +0x5c4a92122ae0 t0 := CALL add1,6 +0x5c4a92122ae0 g:= t0 +0x5c4a92122ae0 RETURN 0 +0x5c4a921194b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| add1 | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -28,93 +41,189 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| a | int | 4 | N/A | +| b | float | 4 | N/A | +| c | float | 4 | N/A | +| d | int | 4 | N/A | +| e | int | 4 | N/A | +| f | float | 4 | N/A | ----------------------------------------------------------------- ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | 1 | -| b | int | 4 | 2 | +| a | int | 4 | 10 | +| b | float | 4 | 4.000000 | +| c | float | 4 | 3.140000 | +| d | int | 4 | 2 | +| e | int | 4 | 609 | +| f | float | 4 | 7.100000 | +| g | int | 4 | N/A | | t0 | int | 4 | N/A | ----------------------------------------------------------------- Hiiiii a : int current size: 4 Hiiiii -b : int +b : float current size: 8 Hiiiii -t0 : int +c : float +current size: 12 +Hiiiii +d : int +current size: 16 +Hiiiii +e : int +current size: 20 +Hiiiii +f : float +current size: 24 +Function add1 stack size: 32 +Hiiiii +a : int +current size: 4 +Hiiiii +b : float +current size: 8 +Hiiiii +c : float current size: 12 -Function main stack size: 20 +Hiiiii +d : int +current size: 16 +Hiiiii +e : int +current size: 20 +Hiiiii +f : float +current size: 24 +Hiiiii +g : int +current size: 28 +Hiiiii +t0 : int +current size: 32 +Function main stack size: 40 Pass 1 done +Error!!!! Variable add1,6 not found in any scope Liveness analysis done -FUNC_BEGIN main -a:= 1 -Handling assignment: a := 1 +FUNC_BEGIN add1 +a := PARAM +Handling param receive: a := PARAM Getting register for a Assigned register $t9 to a -b:= 2 -Handling assignment: b := 2 -Getting register for b -Assigned register $t8 to b -t0 := a == b -Handling operation: t0 := a == b -Getting register for a -Found register for a $t9 -Getting register for b -Found register for b $t8 -Getting register for t0 -Assigned register $t7 to t0 -Operation: a == b -Registers: $t9, $t8, $t7 -if(t0) goto LABEL0 -Condition: t0, Label: LABEL0 -Getting register for t0 -Found register for t0 $t7 -goto LABEL1 -LABEL0: -a:= 3 -Handling assignment: a := 3 +b := PARAM +Handling param receive: b := PARAM +c := PARAM +Handling param receive: c := PARAM +d := PARAM +Handling param receive: d := PARAM +Getting register for d +Assigned register $t8 to d +e := PARAM +Handling param receive: e := PARAM +Getting register for e +Assigned register $t7 to e +f := PARAM +Handling param receive: f := PARAM +RETURN a Getting register for a Found register for a $t9 -goto LABEL2 -LABEL1: -a:= 4 -Handling assignment: a := 4 +FUNC_END add1 +FUNC_BEGIN main +a:= 10 +Handling assignment: a := 10 Getting register for a -Found register for a $t9 -LABEL2: -RETURN a +Assigned register $t6 to a +b:= 4.000000 +Handling assignment: b := 4.000000 +c:= 3.140000 +Handling assignment: c := 3.140000 +d:= 2 +Handling assignment: d := 2 +Getting register for d +Assigned register $t5 to d +e:= 609 +Handling assignment: e := 609 +Getting register for e +Assigned register $t4 to e +f:= 7.100000 +Handling assignment: f := 7.100000 +PARAM a Getting register for a -Found register for a $t9 +Found register for a $t6 +PARAM b +PARAM c +PARAM d +Getting register for d +Found register for d $t5 +PARAM e +Getting register for e +Found register for e $t4 +PARAM f +t0 := CALL add1,6 +Handling assignment: t0 := CALL add1,6 +Getting register for t0 +Assigned register $t3 to t0 +Handling function call: CALL add1,6 +g:= t0 +Handling assignment: g := t0 +Getting register for g +Assigned register $t2 to g +Getting register for t0 +Found register for t0 $t3 +RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .text .globl main -main: +add1: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $t9, 1 - li $t8, 2 - seq $t7, $t9, $t8 - bnez $t7, LABEL0 - j LABEL1 -LABEL0: - li $t9, 3 - j LABEL2 -LABEL1: - li $t9, 4 -LABEL2: + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + move $t9, $a0 + mov.s $f7, $f14 + mov.s $f6, $f14 + move $t8, $a1 + move $t7, $a2 + #popping from stack to $f5 + l.s $f5, 0($fp) + #pushing into function stack + s.s $f5, 0($sp) move $v0, $t9 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 + jr $ra +main: + move $fp, $sp + addi $sp, $sp, -40 + sw $ra, 36($sp) + sw $fp, 32($sp) + li $t6, 10 + li.s $f4, 4.000000 + li.s $f3, 3.140000 + li $t5, 2 + li $t4, 609 + li.s $f2, 7.100000 + move $a0, $t6 + mov.s $f12, $f4 + mov.s $f14, $f3 + move $a1, $t5 + move $a2, $t4 + addi $sp, $sp, -4 + s.s $f2, 0($sp) + jal add1 + move $t3, $v0 + move $t2, $t3 + move $a0, $v0 + li $v0, 1 + syscall + li $v0, 0 + lw $fp, 32($sp) + lw $ra, 36($sp) + addi $sp, $sp, 40 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index fefaa10..7a0837b 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -9,9 +9,10 @@ using namespace std; // Symbol table type int currentInstructionIndex = -1; static int paramCounter = 0; +static int paramFloatCounter = 0; int paramReceiveCounter = 0; int param_receive_offset=0; - +int paramFloatReceiveCounter = 0; map,string> var_to_reg; map> reg_to_var; map funcStackSize; @@ -95,18 +96,38 @@ void push_into_stack(pair varPair){ scoped_symtab* scope = varPair.first; string var = varPair.second; symbol_info* sym = scope->symbol_map[var]; - string reg = var_to_reg[{scope, var}]; - cerr<<"pls"<type; + string reg; + if(type=="int") reg = var_to_reg[{scope, var}]; + else if(type=="float") reg = floatVarToReg[{scope, var}]; + else{ + cerr<<"Error: Type not supported for push into stack\n"; + return; + } if(scope->symbol_map[var]->offset == -1){ sym->offset = last_offset.top(); last_offset.top()+=get_size_from_type(sym->type); - mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + if(type=="int") + mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + else if(type=="float") + mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); }else{ - mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + if(type=="int") + mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); + else if(type=="float") + mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); } - cout << "Pushed " << var << " from " << reg << " to stack at offset " << sym->offset << endl; - availableRegs.push_back(reg); - var_to_reg.erase({scope, var}); + if(type=="int") + { + availableRegs.push_back(reg); + var_to_reg.erase({scope, var}); + } + else if(type=="float") + { + availableFloatRegs.push_back(reg); + floatVarToReg.erase({scope, var}); + } + reg_to_var.erase(reg); } @@ -453,7 +474,7 @@ int space_for_extra_params(symbol_info* sym) { void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" - string srcReg = getRegister(scope, var); + string srcReg; symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { cerr << "Unknown symbol in handle_param_pass: " << var << endl; @@ -461,16 +482,20 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } if (sym->type == "float") { - if (paramCounter == 0) + srcReg = getFloatRegister(scope, var); + if (paramFloatCounter == 0) mipsCode.push_back(" mov.s $f12, " + srcReg); - else if (paramCounter == 1) + else if (paramFloatCounter == 1) mipsCode.push_back(" mov.s $f14, " + srcReg); else { - cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; - exit(1); + functionparams.push_back(" addi $sp, $sp, -4 \n s.s " + srcReg + ", " + to_string(0) + "($sp)"); + // cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; + // exit(1); } + paramFloatCounter++; } else { + srcReg = getRegister(scope, var); if (paramCounter >= argRegisters.size()) { functionparams.push_back(" addi $sp, $sp, -4 \n sw " + srcReg + ", " + to_string(0) + "($sp)"); // mipsCode.push_back(" addi $sp, $sp, -4"); @@ -483,9 +508,10 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { param_receive_offset=0; } else mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); + paramCounter++; } - paramCounter++; + } void handle_function_call(const string& line) { @@ -513,6 +539,7 @@ void handle_function_call(const string& line) { //cerr<<"Function name: " << funcName << endl; mipsCode.push_back(" jal " + funcName); paramCounter = 0; // Reset after call + paramFloatCounter = 0; } @@ -526,18 +553,27 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { exit(1); } - string dst = getRegister(scope, lhs); + string dst; if (sym->type == "float") { + dst= getFloatRegister(scope, lhs); if (paramReceiveCounter == 0) mipsCode.push_back(" mov.s " + dst + ", $f12"); else if (paramReceiveCounter == 1) mipsCode.push_back(" mov.s " + dst + ", $f14"); else { - cerr << "Too many float parameters received! Only $f12 and $f14 supported.\n"; - exit(1); + mipsCode.push_back(" #popping from stack to " + dst); + mipsCode.push_back(" l.s " + dst + ", " +to_string(param_receive_offset) + "($fp)"); + param_receive_offset+=4; + mipsCode.push_back(" #pushing into function stack"); + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" s.s " + dst + ", " + to_string(sym->offset) + "($sp)"); } + paramFloatReceiveCounter++; } else { + + dst= getRegister(scope, lhs); if (paramReceiveCounter >= argRegisters.size()) { mipsCode.push_back(" #popping from stack to " + dst); mipsCode.push_back(" lw " + dst + ", " +to_string(param_receive_offset) + "($fp)"); @@ -553,10 +589,11 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { string from = argRegisters[paramReceiveCounter]; mipsCode.push_back(" move " + dst + ", " + from); } + paramReceiveCounter++; } - paramReceiveCounter++; + } // void pass1(vector>& codeList){ @@ -631,12 +668,14 @@ void pass2(vector>& codeList){ iss >> dummy >> funcName; generate_func_begin_MIPS(funcName, funcStackSize[funcName]); paramReceiveCounter = 0; + paramFloatReceiveCounter = 0; } else if (t.rfind("FUNC_END",0) == 0) { istringstream iss(t); string dummy, funcName; iss >> dummy >> funcName; generate_func_end_MIPS(funcName, funcStackSize[funcName]); + continue; } else if(t.rfind("RETURN",0) == 0){ diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 2885198..1f0c601 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,14 +1,17 @@ -int main() +int add1(int a, float b, float c, int d, int e,float f) { - int a=1; - int b=2; - if(a==b) - { - a=3; - } - else - { - a=4; - } + return a; -} \ No newline at end of file +} + +int main() +{ + int a = 10; + float b = 4.0; + float c = 3.14; + int d = 2; + int e = 609; + float f=7.1; + int g = add1(a, b, c, d, e,f); + return 0; +} From 5a3e7fb2778bd0c927e19fda68b065a28cc4a16b Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Sun, 27 Apr 2025 11:54:26 +0000 Subject: [PATCH 17/52] added pointers --- Assignment4/output/output1.txt | 110 +++++++++++---------------------- Assignment4/src/codegen.cpp | 39 ++++++++++++ Assignment4/test/input1.c | 18 ++---- 3 files changed, 80 insertions(+), 87 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index de0c786..a66a4ff 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,21 +1,12 @@ +=====================LIST OF ERRORS=================================== +Line 6 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x605fc3da34b0 FUNC_BEGIN main -0x605fc3da9ab0 a:= 1 -0x605fc3da9ab0 b:= 2 -0x605fc3da9ab0 t0 := a == b -0x605fc3da9ab0 if(t0) goto LABEL0 -0x605fc3da9ab0 goto LABEL1 -0x605fc3da9ab0 LABEL0: -0x605fc3dab3c0 a:= 3 -0x605fc3da9ab0 goto LABEL2 -0x605fc3da9ab0 LABEL1: -0x605fc3dabfe0 a:= 4 -0x605fc3da9ab0 LABEL2: -0x605fc3da9ab0 RETURN a -0x605fc3da34b0 FUNC_END main +0x564ab429a8b0 FUNC_BEGIN main +0x564ab42a0eb0 a:= 4 +0x564ab42a0eb0 b:= 10 +0x564ab42a0eb0 p:= &a +0x564ab42a0eb0 *p:= 10 +0x564ab429a8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -28,17 +19,9 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | 1 | -| b | int | 4 | 2 | -| t0 | int | 4 | N/A | +| a | int | 4 | 4 | +| b | int | 4 | 10 | +| p | int* | 0 | N/A | ----------------------------------------------------------------- Hiiiii a : int @@ -47,50 +30,35 @@ Hiiiii b : int current size: 8 Hiiiii -t0 : int +p : int* current size: 12 Function main stack size: 20 Pass 1 done +Error!!!! Variable *p not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 1 -Handling assignment: a := 1 +a:= 4 +Handling assignment: a := 4 Getting register for a Assigned register $t9 to a -b:= 2 -Handling assignment: b := 2 +b:= 10 +Handling assignment: b := 10 Getting register for b Assigned register $t8 to b -t0 := a == b -Handling operation: t0 := a == b -Getting register for a -Found register for a $t9 -Getting register for b -Found register for b $t8 -Getting register for t0 -Assigned register $t7 to t0 -Operation: a == b -Registers: $t9, $t8, $t7 -if(t0) goto LABEL0 -Condition: t0, Label: LABEL0 -Getting register for t0 -Found register for t0 $t7 -goto LABEL1 -LABEL0: -a:= 3 -Handling assignment: a := 3 -Getting register for a -Found register for a $t9 -goto LABEL2 -LABEL1: -a:= 4 -Handling assignment: a := 4 -Getting register for a -Found register for a $t9 -LABEL2: -RETURN a -Getting register for a -Found register for a $t9 +p:= &a +HERE +Handling pointer arrays: p:= &a +p &a +Getting register for p +Assigned register $t7 to p +pls +Pushed a from $t9 to stack at offset 0 +*p:= 10 +HERE +Handling pointer arrays: *p:= 10 +*p 10 +Getting register for p +Found register for p $t7 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ @@ -101,18 +69,12 @@ main: addi $sp, $sp, -20 sw $ra, 16($sp) sw $fp, 12($sp) - li $t9, 1 - li $t8, 2 - seq $t7, $t9, $t8 - bnez $t7, LABEL0 - j LABEL1 -LABEL0: - li $t9, 3 - j LABEL2 -LABEL1: li $t9, 4 -LABEL2: - move $v0, $t9 + li $t8, 10 + #Pushing a to stack + sw $t9, 0($sp) + addi $t7, $sp, 0 + move $t7, $t8 lw $fp, 12($sp) lw $ra, 16($sp) addi $sp, $sp, 20 diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index fefaa10..9683dc3 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -559,6 +559,40 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { paramReceiveCounter++; } + + + +void handle_pointer(const string& line, scoped_symtab* scope) { + // scope=getScope(scope, line); + cerr<<"Handling pointer arrays: " << line << endl; + size_t assignPos = line.find(":="); + string lhs = trim(line.substr(0, assignPos)); + string rhs = trim(line.substr(assignPos + 2)); + cout << lhs << " " << rhs << endl; + size_t amppos = rhs.find("&"); + if(lhs[0] == '*'){ + lhs = lhs.substr(1); + } + string dst = getRegister(scope, lhs); + if (amppos != string::npos) + rhs = rhs.substr(amppos + 1); + if(isIntLiteral(rhs)){ + if(reg_of_const.count(rhs)) { + mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); + } + else{ + mipsCode.push_back(" li " + dst + ", " + rhs); + } + } + else{ + symbol_info* rhsInfo = getScope(scope, rhs)->symbol_map[rhs]; + if(var_to_reg.count({scope, rhs})){ + push_into_stack({scope, rhs}); + } + mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); + } +} + // void pass1(vector>& codeList){ // for(auto &code : codeList){ // string t = trim(code.first); @@ -675,6 +709,11 @@ void pass2(vector>& codeList){ handle_param_receive(t, code.second); continue; } + else if(t[0] == '*' || t.find("&") != string::npos){ + cout << "HERE\n"; + handle_pointer(t, code.second); + continue; + } if (t.find(":=") != string::npos) { size_t lhsEnd = t.find(":="); string lhs = trim(t.substr(0, lhsEnd)); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 2885198..fc5bcd9 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,14 +1,6 @@ -int main() -{ - int a=1; - int b=2; - if(a==b) - { - a=3; - } - else - { - a=4; - } - return a; +int main(){ + int a = 4, b = 10; + int *p = &a; + + *p = 10; } \ No newline at end of file From a07c8544268dd6ceb521037a2ddcde201b9a2811 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Sun, 27 Apr 2025 19:11:18 +0000 Subject: [PATCH 18/52] fixed scope pointer bugs --- Assignment4/include/functions.h | 16 ++--- Assignment4/output/output1.txt | 123 +++++++++----------------------- Assignment4/src/parser.y | 17 +++-- Assignment4/test/input1.c | 14 +--- 4 files changed, 56 insertions(+), 114 deletions(-) diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index c48efc8..37f7dab 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -196,21 +196,17 @@ std::string pointer_to_string(T* ptr) { oss << ptr; // streams the address in hex (e.g. 0x7ffc1234abcd) return oss.str(); } -vector> clean_vector_TAC(const vector>& input) { +vector> clean_vector_TAC(vector>& input) { vector> cleaned_TAC; unordered_set paramVars; // to remember param0, param1, … - for (const auto& entry : input) { - const string& line = entry.first; + for (auto& entry : input) { + string& line = entry.first; scoped_symtab* scope = entry.second; + while(line.back() == '\n'){ + line.pop_back(); + } string address=pointer_to_string(entry.second); - //cout<<"fullLine: " << fullLine << endl; - // 1) Split off the address - // auto spacePos = fullLine.find(' '); - // if (spacePos == string::npos) continue; - // string address = fullLine.substr(0, spacePos); - // string line = trimm(fullLine.substr(spacePos + 1)); - // cout<<"line: " << line << endl; // 2) Skip trivial or empty lines if (line.empty() || isSingleNumber(line) || diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index de0c786..4af6e2c 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,20 +2,17 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x605fc3da34b0 FUNC_BEGIN main -0x605fc3da9ab0 a:= 1 -0x605fc3da9ab0 b:= 2 -0x605fc3da9ab0 t0 := a == b -0x605fc3da9ab0 if(t0) goto LABEL0 -0x605fc3da9ab0 goto LABEL1 -0x605fc3da9ab0 LABEL0: -0x605fc3dab3c0 a:= 3 -0x605fc3da9ab0 goto LABEL2 -0x605fc3da9ab0 LABEL1: -0x605fc3dabfe0 a:= 4 -0x605fc3da9ab0 LABEL2: -0x605fc3da9ab0 RETURN a -0x605fc3da34b0 FUNC_END main +0x5606836e08b0 FUNC_BEGIN main +0x5606836e6eb0 a := alloc 4 +0x5606836e6eb0 t0:= 0*4 +0x5606836e6eb0 *( a + t0 ) := 1 +0x5606836e6eb0 t3 := 1 + 2 +0x5606836e6eb0 t4 := t3 + 3 +0x5606836e6eb0 t2:= t4 +0x5606836e6eb0 t1 := 4 * 0 +0x5606836e6eb0 *( a + t1 ) := t4 +0x5606836e6eb0 RETURN 0 +0x5606836e08b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -28,93 +25,41 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ | a | int | 4 | 1 | -| b | int | 4 | 2 | | t0 | int | 4 | N/A | +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | int | 4 | N/A | +| t4 | int | 4 | N/A | ----------------------------------------------------------------- Hiiiii a : int current size: 4 Hiiiii -b : int +t0 : int current size: 8 Hiiiii -t0 : int +t1 : int current size: 12 -Function main stack size: 20 +Hiiiii +t2 : int +current size: 16 +Hiiiii +t3 : int +current size: 20 +Hiiiii +t4 : int +current size: 24 +Function main stack size: 32 Pass 1 done +Error!!!! Variable alloc not found in any scope +Error!!!! Variable *( a + t0 ) not found in any scope +Error!!!! Variable *( a + t1 ) not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 1 -Handling assignment: a := 1 +a := alloc 4 +Handling assignment: a := alloc 4 Getting register for a Assigned register $t9 to a -b:= 2 -Handling assignment: b := 2 -Getting register for b -Assigned register $t8 to b -t0 := a == b -Handling operation: t0 := a == b -Getting register for a -Found register for a $t9 -Getting register for b -Found register for b $t8 -Getting register for t0 -Assigned register $t7 to t0 -Operation: a == b -Registers: $t9, $t8, $t7 -if(t0) goto LABEL0 -Condition: t0, Label: LABEL0 -Getting register for t0 -Found register for t0 $t7 -goto LABEL1 -LABEL0: -a:= 3 -Handling assignment: a := 3 -Getting register for a -Found register for a $t9 -goto LABEL2 -LABEL1: -a:= 4 -Handling assignment: a := 4 -Getting register for a -Found register for a $t9 -LABEL2: -RETURN a -Getting register for a -Found register for a $t9 -FUNC_END main -Pass 2 done -################ MIPS Assembly Code ################ -.text -.globl main -main: - move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $t9, 1 - li $t8, 2 - seq $t7, $t9, $t8 - bnez $t7, LABEL0 - j LABEL1 -LABEL0: - li $t9, 3 - j LABEL2 -LABEL1: - li $t9, 4 -LABEL2: - move $v0, $t9 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 - li $v0, 10 - syscall +Error!!!! Variable alloc 4 not found in any scope +Getting register for alloc 4 diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 3a2030b..82e06b8 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -932,11 +932,20 @@ assignment_expression if(flag==0){ if(find_symbol->is_array==true){ string code=remove_equal(first_code); - string add_str = find_last_line(code); $$->final_code = $3->final_code; $$->final_code.push_back({add_str,curr_scope}); add_str = code + " := " + $3->place.first; - $$->final_code.push_back({add_str,curr_scope}); + int index=0; + string temp=""; + while(indexfinal_code.push_back({temp,curr_scope}); + temp=""; + } $$->code=$3->code+"\n"+add_str+"\n"; } else{ @@ -1997,8 +2006,8 @@ start_symbol: translation_unit // cleanTAC($1->code); // cerr<final_code); - print_vector(cleaned_TAC); - + // print_vector($1->final_code); + print_vector(cleaned_TAC); } ; translation_unit diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 2885198..3c13f0d 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,14 +1,6 @@ int main() { - int a=1; - int b=2; - if(a==b) - { - a=3; - } - else - { - a=4; - } - return a; + int a[1]={1}; + a[0]=1+2+3; + return 0; } \ No newline at end of file From 02fec48fab865448f34cfe1226a5725bd5d94b77 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 01:18:24 +0530 Subject: [PATCH 19/52] fixed pointers --- Assignment4/output/output.s | 54 ++++------------ Assignment4/output/output1.txt | 110 ++++++--------------------------- Assignment4/src/codegen.cpp | 52 +++++++++++++--- Assignment4/src/test | Bin 31264 -> 18016 bytes Assignment4/src/test.cpp | 13 ++-- Assignment4/test/input1.c | 19 +----- 6 files changed, 86 insertions(+), 162 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 4523b3c..aeeac87 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,51 +1,23 @@ .text .globl main -add1: +main: move $fp, $sp addi $sp, $sp, -32 sw $ra, 28($sp) sw $fp, 24($sp) - move $t9, $a0 - mov.s $f7, $f14 - mov.s $f6, $f14 - move $t8, $a1 - move $t7, $a2 - #popping from stack to $f5 - l.s $f5, 0($fp) - #pushing into function stack - s.s $f5, 0($sp) - move $v0, $t9 + li $t9, 4 + li $t8, 10 + #Pushing a to stack + sw $t9, 0($sp) + addi $t7, $sp, 0 + sw $t8, 0($t7) + lw $t9, 0($t7) + sw $t9, 4($sp) + lw $t6, 0($sp) + add $t5, $t6, $t8 + move $t4, $t5 lw $fp, 24($sp) lw $ra, 28($sp) addi $sp, $sp, 32 - jr $ra -main: - move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - li $t6, 10 - li.s $f4, 4.000000 - li.s $f3, 3.140000 - li $t5, 2 - li $t4, 609 - li.s $f2, 7.100000 - move $a0, $t6 - mov.s $f12, $f4 - mov.s $f14, $f3 - move $a1, $t5 - move $a2, $t4 - addi $sp, $sp, -4 - s.s $f2, 0($sp) - jal add1 - move $t3, $v0 - move $t2, $t3 - move $a0, $v0 - li $v0, 1 - syscall - li $v0, 0 - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 li $v0, 10 - syscall + syscall \ No newline at end of file diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index c21551b..decc2ea 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,18 +1,16 @@ =====================LIST OF ERRORS=================================== -Line 6 : Missing return statement +Line 5 : Missing return statement ====================================================================== -0x564ab429a8b0 FUNC_BEGIN main -0x564ab42a0eb0 a:= 4 -0x564ab42a0eb0 b:= 10 -0x564ab42a0eb0 p:= &a -0x564ab42a0eb0 *p:= 10 -0x564ab429a8b0 FUNC_END main +0x6196f2b4b4b0 FUNC_BEGIN main +0x6196f2b51ab0 a:= 5 +0x6196f2b51ab0 t0 := a + 6 +0x6196f2b51ab0 b:= t0 +0x6196f2b4b4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| add1 | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -20,98 +18,30 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | 4 | -| b | int | 4 | 10 | -| p | int* | 0 | N/A | +| a | int | 4 | 5 | +| b | int | 4 | N/A | +| t0 | int | 4 | N/A | ----------------------------------------------------------------- Hiiiii a : int current size: 4 Hiiiii -b : float +b : int current size: 8 Hiiiii -c : float -current size: 12 -Hiiiii -d : int -current size: 16 -Hiiiii -e : int -current size: 20 -Hiiiii -f : float -current size: 24 -Function add1 stack size: 32 -Hiiiii -a : int -current size: 4 -Hiiiii -b : float -current size: 8 -Hiiiii -p : int* -current size: 12 -Hiiiii -d : int -current size: 16 -Hiiiii -e : int -current size: 20 -Hiiiii -f : float -current size: 24 -Hiiiii -g : int -current size: 28 -Hiiiii t0 : int -current size: 32 -Function main stack size: 40 +current size: 12 +Function main stack size: 20 Pass 1 done -Error!!!! Variable *p not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 4 -Handling assignment: a := 4 +a:= 5 +Handling assignment: a := 5 Getting register for a Assigned register $t9 to a -b:= 10 -Handling assignment: b := 10 -Getting register for b -Assigned register $t8 to b -p:= &a -HERE -Handling pointer arrays: p:= &a -p &a -Getting register for p -Assigned register $t7 to p -pls -Pushed a from $t9 to stack at offset 0 -*p:= 10 -HERE -Handling pointer arrays: *p:= 10 -*p 10 -Getting register for p -Found register for p $t7 -FUNC_END main -Pass 2 done -################ MIPS Assembly Code ################ -.text -.globl main -add1: - move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $t9, 4 - li $t8, 10 - #Pushing a to stack - sw $t9, 0($sp) - addi $t7, $sp, 0 - move $t7, $t8 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 - li $v0, 10 - syscall +t0 := a + 6 +Handling operation: t0 := a + 6 +Getting register for a +Found register for a $t9 +Error!!!! Variable 6 not found in any scope +Getting register for 6 diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index be2261b..88d3b1f 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -132,7 +132,7 @@ void push_into_stack(pair varPair){ } void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { - currentScope = getScope(currentScope, newVar); + // currentScope = getScope(currentScope, newVar); cout << "Handling register spill for " << newVar << endl; int maxdist=0; @@ -606,6 +606,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); cout << lhs << " " << rhs << endl; + int rhs_ptr=0; size_t amppos = rhs.find("&"); if(lhs[0] == '*'){ lhs = lhs.substr(1); @@ -613,20 +614,55 @@ void handle_pointer(const string& line, scoped_symtab* scope) { string dst = getRegister(scope, lhs); if (amppos != string::npos) rhs = rhs.substr(amppos + 1); + if(rhs[0] == '*'){ + rhs = rhs.substr(1); + rhs_ptr=1; + } if(isIntLiteral(rhs)){ + cout<<"lhs "<symbol_map[rhs]; - if(var_to_reg.count({scope, rhs})){ - push_into_stack({scope, rhs}); + if(rhs_ptr){ + if(var_to_reg.count({getScope(scope, rhs), rhs})){ + mipsCode.push_back(" lw " + dst + ", " + "0(" + var_to_reg[{getScope(scope, rhs), rhs}] + ")"); + symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; + if(getScope(scope, rhs)->symbol_map[rhs]->offset == -1){ + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" sw " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + else{ + mipsCode.push_back(" sw " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + } + else{ + //yet to handle this case + cerr<<"Error: Pointer not found in register\n"; + exit(1); + } + + } + else{ + symbol_info* rhsInfo = getScope(scope, rhs)->symbol_map[rhs]; + if(var_to_reg.count({scope, rhs})){ + push_into_stack({scope, rhs}); + } + mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); } - mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); } } @@ -748,7 +784,7 @@ void pass2(vector>& codeList){ handle_param_receive(t, code.second); continue; } - else if(t[0] == '*' || t.find("&") != string::npos){ + else if(t[0] == '*' || t.find("&") != string::npos || t.find("*") != string::npos){ cout << "HERE\n"; handle_pointer(t, code.second); continue; diff --git a/Assignment4/src/test b/Assignment4/src/test index ee55e034fd438bbb287efbf548f2720807855f17..285d6ae1c06fcfa8ddb0356de173a21a7501cb3d 100755 GIT binary patch literal 18016 zcmeHPeQ;FQb-yctE!Thqh8SbVYzWRkfJG~W3=V|lW8ox%YQI?s@0l_uk(7-r+>NZFfy5q@>iUPb=M8Xpk5)&VE`X zl!~cMYCirhS2wGx0MEe@V|I|9uQ3dvbu3p4N_tDFG6TKIz)GliNR;#{mAY#TN2qEr zZPJ@dRc;6A1@=Rz@XP&$Nf{-q|CZ@mc1EaQk7Coa&dB#{olYO)xJ+=rqDL_44Y1w- z>j_n?Csg7|ZqTub?FDHgcvOT2^?Fz@NOu`EC6xN0(s98{ewhB+S#My4u@j_s8dwRH z{`NzU;_^X@4D$i*uhKZ2;dlzA@uspqo$739UY|~`OQ$l$zIA<@TGq8RM+(_Uljf6O zVH`B4_Ut=E!!b;l3}?-NX^TDLEoMH+fBz5e{lskxm#n?^p^;m^@Xd$+scwJkT_i(( zlMcyHA$v09)Ta7;93*4n@u02~M&(uamEI+1=Iu1C_x^1MwCKIC`X~&}gs-oFKUKlb zqZRNi73^HBAiui;PVouj2o{*15no#YKLvcI^IZT#D}u(+o&$WLTBc$#!)%}qsn~XR zZ#H8WJSXqjwz69f?zNL{-tA5mJU4%E@6L2K;~sQ6)2`vo%sH~JBbzS7Q_4Ql;WfLN zWV$uc;YFi~9w%>mc_-x+S`+d30bmC@H9oY^$uKP$AT0fZm#6ei!Xt#ehF;fRSO$YEfku7=%MxxKL zyHXh^o%$k9*v3_q;Mnv!sSFD^p4*oqX+$k?x1H#@+wO8wX$9$mmrSf#L)TdgH4~<` zr>%9z&clc84UuN0>vof`wqXivifp7osl~mp27haDebV2M{#UCp;?wmLQhPCmGM~KF ze}Y?Lt?J@&4WWJ~^GSYjDuqjIuF5m^)PrBg>6rMaa>MN`-_j|d|j`H&~ z$McjcbspZFf z`0r`N{F(6K*ZS~DA3o2A%k@I{$pt?A49i~)OzxS)KI_BjekkQJAFiL{%y`m=oBN?* zJnh4&4=KYwTw*G`Dy>GK8i8sAsu8G0;CCegzo@_Yf31@j>#S3A-(0Vh_2pr&ru3?H z^7*>wbO=ftI{{xV-I4&QU#>{Lhd7tV|GiWyoz`vop>cWqT)9m@FfNZjTW-?>{_^=y3EUYiMgdPNTHsuOa#0U6K0b_rpm9XlU!3K&+v;|4d}_q_+g2 z`#RMTx@$_K^~(oH?m4EAe_YFN{0kzhuULZ<*0Vp~W<5JuYlU94&Ry{q!+^^M>Pn+s z`aDIS;ybYQTL_0Lt~q3#+`0&o${M`j&9hEz-HpcBOIJ#zu_S``;@p17h3`n!KY`kWHTbXA;KJR%TOC^kK6C8Yw9sCSAG&J{a?a&WU`;KP3h*`2nV}&Ak zF1m7Q$n;GkGH?11@k@|fZZ!D07DIoXG4%COZjTrP&Yu|r_uOIL4qUphKnpw?yIIpGGUkQM z_0Qa=+rQfX8%;m=g&G}>?mu5lAyE6Xh?axgGNZ5VigC=5KIX-Hkrv{s$a^lC+$H)Mb|VaUM0X}ZnWg8}jnMg79ikkK#I z>i*!tqXw@xq_kZ7g;SvOK{;XiFO}|a(nU9%?Fu`$g>gD6bYtzO=v_a}o3n3YSqs|m z^HPZx&SB73K?gwlKvOu$G0<;;)*%KTn<$l5fqoCv0{tmy59pRlrP5bHsn9!jDxohP zP@%qt(2eu1t~(7L;WrTjwm(61*VTIbR-)RBqYl302w%{!d%@Dr)L(mV-GJJ*?6yyC zSgFUC^vUmb$Z18AMIqe7VF5o1Duw!@iEteKZ6Pqepy7{dcFw=50Ef^d{&#Ua1pa-X zWqyqjApQ?=TmpY+8vlN6fcO`2d>*mcnz}0v|jA^8J^5?qTAvZmJquAFU-gKOSko6kA41alJa-m0i%t)sE9Fb zXL^)rj_Cl?fcpQtSr;=Zdv@-;ExhVbXEEay!_jD@InuZ;TGY+xmztU)jm@hWp1lhi zo;m6gR-DrdjaLYq2Y6zHnN8DqCV3jq8qDTK{vMLWRhaRk0el1Fa(#(>D=Hye4ei?v zLjF;qudGArBjxWeHHbg72BUuEx)uDZsDv=f<$4qR+o;Us|C3sNkqU>6r1bj=;~xv) zw1x}e%j6XSoW3_E{Nn+V`c~d<#*zRol5<1@A*KjV~?Vw?%$F@I~-{oUgkr%(w%1 zgStUA#6;52H}M<^16Ki@k{uSp5}3N6sY@D_6 z8fQG{&pX<_NKMfj@Lc6Cr$E%!0}oF_Oyjc^@FNv)uY!Hmk;r?|NES&4PG`#YoNfi6 z;1#>NA_+B>uwi?>c7jqi3Xn`@?e288(@EP&FPksePO(oVvc0*q>$%BD3yBRNkTy^E0Ue`_*dwY*V#n-YS=}i;$+=3TLzGqYOQSmt+lZJTU6l_ejk!_CNa$rO>`(bv`#MQq$I zrIIep}R>?->xVU|GBAY>eN5(6(MK`$ld^Qgxoks3QWw|KJdB=0J zNHrNLw~%mV6XQ-hkz$f}yWY3c&O8L)R|+9?Gw&-!wq`kjW^)3aPV#*OIUac@(>;qh zmMY|C?Q~8f~)owB5dAdz)?Vv!gAk?o2kX zBhid0NG6d9MH4hd2}ful6U)gY;Q+FuiV59rOd+dEj1-EUcB^e4+0dOx_VwXv+0s5|$`8$s|F2=o~L&ixZ&`=R(%*!TC~d8Qpczb0FcW+&OZjj9Vu6 zs*ICUlymkW^1-G%!x?OnWHy}{Nc1ZA4yVlR#YUo>i~>c6vdN~KII^*jO&@b9ovo!a zmC0rA?b8ED13>2UxJe;z4rkd}CpF!GRPpzsYoX4xe?rZBe{Gw=jOfRKB%*pLXK)G$@z#@sHE9_e<~e6Hq>iqf-V}@(b&Q;f-~ro<=jIH*1wIT!`ynA5SO(}4 z%r}?)5N2yxsT2J;4%&JU{YrV&Buhos1*WAGy@vMd2lJ~}iXc<`44qbJ-Rjqub+gd$ zG->l*-Vgmg8vlbm4Dny~d4#TFVf<{;CFs8cl=gT;U-p57()(5_&w29P}xUNVEv_J+*e}0I#m~P|14hSivF51Vk%W#&KCdA<$I+2k4el-~a#s literal 31264 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 s; - s.push(1); - s.top()=2; - cout<>t; while(t--) solve(); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 91f40e5..f796884 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,18 +1,5 @@ int main(){ - int a = 4, b = 10; - int *p = &a; - - *p = 10; -} - -int main() -{ - int a = 10; - float b = 4.0; - float c = 3.14; - int d = 2; - int e = 609; - float f=7.1; - int g = add1(a, b, c, d, e,f); - return 0; + int a = 5; + int b=a+6; + } From 568d404cbd59712ffb4238e0d0cc97fd1508d12a Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 02:03:44 +0530 Subject: [PATCH 20/52] float addition --- Assignment4/output/output1.txt | 64 +++++++++++++++++++++----------- Assignment4/src/codegen.cpp | 67 ++++++++++++++++++++++++++++------ Assignment4/test/input1.c | 18 +-------- 3 files changed, 100 insertions(+), 49 deletions(-) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index decc2ea..222fc60 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,11 +1,12 @@ =====================LIST OF ERRORS=================================== +Line 3 : Type mismatch in declaration Line 5 : Missing return statement ====================================================================== -0x6196f2b4b4b0 FUNC_BEGIN main -0x6196f2b51ab0 a:= 5 -0x6196f2b51ab0 t0 := a + 6 -0x6196f2b51ab0 b:= t0 -0x6196f2b4b4b0 FUNC_END main +0x557a37fca4b0 FUNC_BEGIN main +0x557a37fd0ab0 a:= 5.500000 +0x557a37fd0ab0 t0 := a + 6.500000 +0x557a37fd0ab0 b:= t0 +0x557a37fca4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -18,30 +19,51 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | 5 | -| b | int | 4 | N/A | -| t0 | int | 4 | N/A | +| a | float | 4 | 5.500000 | +| b | float | 4 | N/A | +| t0 | float | 4 | N/A | ----------------------------------------------------------------- Hiiiii -a : int +a : float current size: 4 Hiiiii -b : int +b : float current size: 8 Hiiiii -t0 : int +t0 : float current size: 12 Function main stack size: 20 Pass 1 done Liveness analysis done FUNC_BEGIN main -a:= 5 -Handling assignment: a := 5 -Getting register for a -Assigned register $t9 to a -t0 := a + 6 -Handling operation: t0 := a + 6 -Getting register for a -Found register for a $t9 -Error!!!! Variable 6 not found in any scope -Getting register for 6 +a:= 5.500000 +Handling assignment: a := 5.500000 +t0 := a + 6.500000 +Handling operation: t0 := a + 6.500000 +Error!!!! Variable 6.500000 not found in any scope +Loaded float constant 6.500000 into $f6 +b:= t0 +Handling assignment: b := t0 +FUNC_END main +Pass 2 done +################ MIPS Assembly Code ################ +.data +float_const_6.500000: .float 6.500000 +.text +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li.s $f7, 5.500000 + la $t9, float_const_6.500000 + l.s $f6, 0($t9) + add.s $f5, $f7, $f6 + mov.s $f4, $f5 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 + li $v0, 10 + syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 88d3b1f..38fe6e4 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -297,10 +297,11 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { mipsCode.insert(mipsCode.begin() + 1, floatLabel + ": .float " + var); mipsCode.insert(mipsCode.begin() + 2, ".text"); } - + if(availableRegs.empty()) handleRegisterSpill(scope,var); + string reg1 = availableRegs.back(); // Load float from memory - mipsCode.push_back(" la " + reg + ", " + floatLabel); - mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); + mipsCode.push_back(" la " + reg1 + ", " + floatLabel); + mipsCode.push_back(" l.s " + reg + ", 0(" + reg1 + ")"); loadedConstants[var] = true; reg_of_const[var] = reg; cout << "Loaded float constant " << var << " into " << reg << endl; @@ -339,9 +340,27 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); if (isFloat){ - string r1 = getFloatRegister(scope, op1); - string r2 = getFloatRegister(scope, op2); - string rd = getFloatRegister(scope, lhs); + string r1,r2,rd; + + if(isFloatLiteral(op1)){ + if(availableFloatRegs.empty()) handleRegisterSpill(scope,op1); + r1=availableFloatRegs.back(); + availableFloatRegs.pop_back(); + load_if_constant(scope, op1, r1); + } + else{ + r1 = getFloatRegister(scope,op1); + } + if(isFloatLiteral(op2)){ + if(availableFloatRegs.empty()) handleRegisterSpill(scope,op1); + r2=availableFloatRegs.back(); + availableFloatRegs.pop_back(); + load_if_constant(scope, op2, r2); + } + else{ + r2 = getFloatRegister(scope,op2); + } + rd = getFloatRegister(scope,lhs); if (opp == "+") mipsCode.push_back(" add.s " + rd + ", " + r1 + ", " + r2); else if (opp == "-") mipsCode.push_back(" sub.s " + rd + ", " + r1 + ", " + r2); @@ -349,14 +368,34 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& else if (opp == "/") mipsCode.push_back(" div.s " + rd + ", " + r1 + ", " + r2); return; } + string r1,r2,rd; - string r1 = getRegister(scope,op1); - string r2 = getRegister(scope,op2); - string rd = getRegister(scope,lhs); + if(isIntLiteral(op1)){ + if(availableRegs.empty()) handleRegisterSpill(scope,op1); + r1=availableRegs.back(); + availableRegs.pop_back(); + load_if_constant(scope, op1, r1); + } + else{ + r1 = getRegister(scope,op1); + } + if(isIntLiteral(op2)){ + if(availableRegs.empty()) handleRegisterSpill(scope,op1); + r2=availableRegs.back(); + availableRegs.pop_back(); + load_if_constant(scope, op2, r2); + } + else{ + r2 = getRegister(scope,op2); + } + rd = getRegister(scope,lhs); + // string r1 = getRegister(scope,op1); + // string r2 = getRegister(scope,op2); + // string rd = getRegister(scope,lhs); cout<<"Operation: " << op1 << " " << opp << " " << op2 << endl; cout<<"Registers: " << r1 << ", " << r2 << ", " << rd << endl; - load_if_constant(scope, op1, r1); - load_if_constant(scope, op2, r2); + // load_if_constant(scope, op1, r1); + // load_if_constant(scope, op2, r2); if (opp == "+") mipsCode.push_back(" add " + rd + ", " + r1 + ", " + r2); else if (opp == "-") mipsCode.push_back(" sub " + rd + ", " + r1 + ", " + r2); @@ -916,6 +955,10 @@ void codegen_main() { for (const string& line : mipsCode) { cerr << line << endl; } - + regMap.clear(); + availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; + floatVarToReg.clear(); + availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; + loadedConstants.clear(); return; } \ No newline at end of file diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index fac24a9..8b27512 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,19 +1,5 @@ int main(){ -<<<<<<< HEAD - int a = 5; - int b=a+6; + float a = 5.5; + int b=a+6.5; -======= - int a = 4, b = 10; - int *p = &a; - - *p = 10; -} - -int main() -{ - int a[1]={1}; - a[0]=1+2+3; - return 0; ->>>>>>> 7186ea41995e438557f45d70422c34edc80fe5d0 } From bde7dc59713c2f110e19f38b710201dd7f7434dc Mon Sep 17 00:00:00 2001 From: BitBeast Date: Mon, 28 Apr 2025 02:14:02 +0530 Subject: [PATCH 21/52] double alloc --- Assignment4/output/output.s | 53 +++-------------- Assignment4/output/output1.txt | 94 +++++------------------------- Assignment4/src/codegen.cpp | 103 ++++++++++++++++++++++----------- Assignment4/test/input1.c | 16 +---- 4 files changed, 93 insertions(+), 173 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 4523b3c..7b6f78e 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,51 +1,14 @@ .text .globl main -add1: - move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - move $t9, $a0 - mov.s $f7, $f14 - mov.s $f6, $f14 - move $t8, $a1 - move $t7, $a2 - #popping from stack to $f5 - l.s $f5, 0($fp) - #pushing into function stack - s.s $f5, 0($sp) - move $v0, $t9 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 - jr $ra main: move $fp, $sp - addi $sp, $sp, -40 - sw $ra, 36($sp) - sw $fp, 32($sp) - li $t6, 10 - li.s $f4, 4.000000 - li.s $f3, 3.140000 - li $t5, 2 - li $t4, 609 - li.s $f2, 7.100000 - move $a0, $t6 - mov.s $f12, $f4 - mov.s $f14, $f3 - move $a1, $t5 - move $a2, $t4 - addi $sp, $sp, -4 - s.s $f2, 0($sp) - jal add1 - move $t3, $v0 - move $t2, $t3 - move $a0, $v0 - li $v0, 1 - syscall - li $v0, 0 - lw $fp, 32($sp) - lw $ra, 36($sp) - addi $sp, $sp, 40 + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li.s $f31, 3.140000 + li.d $f28, 2.000000 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index c21551b..168bdc5 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,18 +1,15 @@ =====================LIST OF ERRORS=================================== Line 6 : Missing return statement ====================================================================== -0x564ab429a8b0 FUNC_BEGIN main -0x564ab42a0eb0 a:= 4 -0x564ab42a0eb0 b:= 10 -0x564ab42a0eb0 p:= &a -0x564ab42a0eb0 *p:= 10 -0x564ab429a8b0 FUNC_END main +0x588a0ef374b0 FUNC_BEGIN main +0x588a0ef3dfc0 f:= 3.140000 +0x588a0ef3dfc0 m:= 2.000000 +0x588a0ef374b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| add1 | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -20,96 +17,35 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | 4 | -| b | int | 4 | 10 | -| p | int* | 0 | N/A | +| f | float | 4 | 3.140000 | +| m | double | 0 | N/A | ----------------------------------------------------------------- Hiiiii -a : int -current size: 4 -Hiiiii -b : float -current size: 8 -Hiiiii -c : float -current size: 12 -Hiiiii -d : int -current size: 16 -Hiiiii -e : int -current size: 20 -Hiiiii f : float -current size: 24 -Function add1 stack size: 32 -Hiiiii -a : int current size: 4 Hiiiii -b : float -current size: 8 -Hiiiii -p : int* +m : double current size: 12 -Hiiiii -d : int -current size: 16 -Hiiiii -e : int -current size: 20 -Hiiiii -f : float -current size: 24 -Hiiiii -g : int -current size: 28 -Hiiiii -t0 : int -current size: 32 -Function main stack size: 40 +Function main stack size: 20 Pass 1 done -Error!!!! Variable *p not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 4 -Handling assignment: a := 4 -Getting register for a -Assigned register $t9 to a -b:= 10 -Handling assignment: b := 10 -Getting register for b -Assigned register $t8 to b -p:= &a -HERE -Handling pointer arrays: p:= &a -p &a -Getting register for p -Assigned register $t7 to p -pls -Pushed a from $t9 to stack at offset 0 -*p:= 10 -HERE -Handling pointer arrays: *p:= 10 -*p 10 -Getting register for p -Found register for p $t7 +f:= 3.140000 +Handling assignment: f := 3.140000 +m:= 2.000000 +Handling assignment: m := 2.000000 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .text .globl main -add1: +main: move $fp, $sp addi $sp, $sp, -20 sw $ra, 16($sp) sw $fp, 12($sp) - li $t9, 4 - li $t8, 10 - #Pushing a to stack - sw $t9, 0($sp) - addi $t7, $sp, 0 - move $t7, $t8 + li.s $f31, 3.140000 + li.d $f28, 2.000000 lw $fp, 12($sp) lw $ra, 16($sp) addi $sp, $sp, 20 diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index be2261b..946581d 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1,5 +1,5 @@ #include - +#include #include // Include your utility header using namespace std; @@ -23,8 +23,10 @@ vector functionparams; map regMap; static vector argRegisters = {"$a0", "$a1", "$a2", "$a3"}; vector availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; -vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; +vector availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7","$f8", "$f9", "$f10", "$f11", "$f12", "$f13", "$f14", "$f15", "$f16", "$f17", "$f18", "$f19", "$f20", "$f21", "$f22", "$f23", "$f24", "$f25", "$f26", "$f27", "$f28", "$f29", "$f30", "$f31"}; map, string> floatVarToReg; +vector availableDoubleRegs={"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","$f16","$f18","$f20","$f22","$f24","$f26","$f28","$f30"}; +map, string> doubleVarToReg; vector mipsCode; map loadedConstants; @@ -66,6 +68,9 @@ string trim(const string& s) { bool isIntLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } +bool isCharLiteral(const std::string& s) { + return s.length() >= 3 && s.front() == '\'' && s.back() == '\'' && s.length() == 3; +} bool isFloatLiteral(const string& s) { size_t dotPos = s.find('.'); @@ -172,20 +177,39 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { cerr<<"hi"<symbol_map[lhs]; bool isFloat = (lhsInfo && lhsInfo->type == "float"); - + bool isDouble = (lhsInfo && lhsInfo->type == "double"); if (isFloat) { string dst = getFloatRegister(scope, lhs); if (isFloatLiteral(rhs)) { @@ -400,13 +424,26 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { } return; } + + else if (isDouble) { + string dst = getFloatRegister(scope, lhs,"double"); // Get destination double register + if (isFloatLiteral(rhs)) { + // Assume double literal loading (mock behavior) + mipsCode.push_back(" li.d " + dst + ", " + rhs); // Load double literal + } + else { + string src = getFloatRegister(scope, rhs); // Get source double register + mipsCode.push_back(" mov.d " + dst + ", " + src); // Move value from src to dst + } + return; + } string dst = getRegister(scope,lhs); if(rhs.find("CALL") != string::npos){ handle_function_call(rhs); mipsCode.push_back(" move " + dst + ", $v0"); return; } - if (isIntLiteral(rhs)) { + if (isIntLiteral(rhs)||isCharLiteral(rhs)) { if(reg_of_const.count(rhs)) { mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); loadedConstants[lhs] = true; @@ -416,7 +453,8 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { mipsCode.push_back(" li " + dst + ", " + rhs); loadedConstants[lhs] = true; reg_of_const[rhs]=dst; - } else { + } + else { string src = getRegister(scope,rhs); mipsCode.push_back(" move " + dst + ", " + src); @@ -443,8 +481,9 @@ int get_symbol_size(symbol_info* sym) { int get_size_from_type(string type) { if (type == "int") return 4; else if (type == "float") return 4; - else if(type == "char")return 1; + else if(type == "char")return 4; else if(type == "bool")return 1; + else if(type=="double")return 8; return 4; } @@ -630,25 +669,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } } -// void pass1(vector>& codeList){ -// for(auto &code : codeList){ -// string t = trim(code.first); -// if(t.empty()){ -// cout << "empty codelist error" << endl; -// } -// else{ -// if(t.rfind("FUNC_BEGIN", 0) == 0){ -// scoped_symtab* scope = code.second; -// int stack_size = calculate_function_stack_size(scope); -// istringstream iss(t); -// string dummy, funcName; -// iss >> dummy >> funcName; -// int frameBytes = calculate_function_stack_size(scope); -// funcStackSize[funcName] = frameBytes; -// } -// } -// } -// } + void pass1(vector>& codeList) { for (int i = 0; i < codeList.size(); i++) { @@ -852,7 +873,19 @@ void run_liveness(vector& program) { } } while (changed); } +void printMipsCode(vector& mipsCode, const string& filename) { + ofstream outFile(filename); // Open file for writing + if (!outFile) { + cerr << "Error opening file: " << filename << endl; + return; + } + + for (const string& line : mipsCode) { + outFile << line << endl; // Write to file instead of cerr + } + outFile.close(); // Always good practice to close explicitly +} void codegen_main() { mipsCode.push_back(".text"); mipsCode.push_back(".globl main"); @@ -880,6 +913,6 @@ void codegen_main() { for (const string& line : mipsCode) { cerr << line << endl; } - + printMipsCode(mipsCode, "./output/output.s"); return; } \ No newline at end of file diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 91f40e5..61fba06 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,18 +1,6 @@ -int main(){ - int a = 4, b = 10; - int *p = &a; - - *p = 10; -} int main() { - int a = 10; - float b = 4.0; - float c = 3.14; - int d = 2; - int e = 609; - float f=7.1; - int g = add1(a, b, c, d, e,f); - return 0; + float f=3.14; + double m=2.00; } From bd5b75a1026b5b619eca7a9c28e2aa23fcfa854f Mon Sep 17 00:00:00 2001 From: BitBeast Date: Mon, 28 Apr 2025 02:28:48 +0530 Subject: [PATCH 22/52] changes --- .vscode/settings.json | 3 ++- .vscode/tasks.json | 28 ++++++++++++++++++++++++++++ Assignment4/src/codegen.cpp | 11 ++++++----- 3 files changed, 36 insertions(+), 6 deletions(-) create mode 100644 .vscode/tasks.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 1728226..6cad6e4 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "files.associations": { - "random": "c" + "random": "c", + "iostream": "cpp" } } \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..05054c5 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,28 @@ +{ + "tasks": [ + { + "type": "cppbuild", + "label": "C/C++: g++ build active file", + "command": "/usr/bin/g++", + "args": [ + "-fdiagnostics-color=always", + "-g", + "${file}", + "-o", + "${fileDirname}/${fileBasenameNoExtension}" + ], + "options": { + "cwd": "${fileDirname}" + }, + "problemMatcher": [ + "$gcc" + ], + "group": { + "kind": "build", + "isDefault": true + }, + "detail": "Task generated by Debugger." + } + ], + "version": "2.0.0" +} \ No newline at end of file diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 8c07a4f..160e6d4 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -988,10 +988,11 @@ void codegen_main() { for (const string& line : mipsCode) { cerr << line << endl; } - regMap.clear(); - availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; - floatVarToReg.clear(); - availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; - loadedConstants.clear(); printMipsCode(mipsCode, "./output/output.s"); + // regMap.clear(); + // availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; + // floatVarToReg.clear(); + // availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; + // loadedConstants.clear(); + printMipsCode(mipsCode, "./output/output.s"); return; } \ No newline at end of file From 03889f5af47690c042f5594b0e35bc7a60cac181 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 04:13:14 +0530 Subject: [PATCH 23/52] float and double register spill --- Assignment4/src/codegen.cpp | 282 ++++++++++++++++++++++++++++++++++-- 1 file changed, 271 insertions(+), 11 deletions(-) diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 160e6d4..d62b31a 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -105,6 +105,9 @@ void push_into_stack(pair varPair){ string reg; if(type=="int") reg = var_to_reg[{scope, var}]; else if(type=="float") reg = floatVarToReg[{scope, var}]; + else if(type=="double"){ + reg = doubleVarToReg[{scope, var}]; + } else{ cerr<<"Error: Type not supported for push into stack\n"; return; @@ -116,11 +119,23 @@ void push_into_stack(pair varPair){ mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); else if(type=="float") mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); + else if(type=="double") + mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); + else{ + cerr<<"Error: Type not supported for push into stack\n"; + return; + } }else{ if(type=="int") mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); else if(type=="float") mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); + else if(type=="double") + mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); + else{ + cerr<<"Error: Type not supported for push into stack\n"; + return; + } } if(type=="int") { @@ -129,13 +144,250 @@ void push_into_stack(pair varPair){ } else if(type=="float") { - availableFloatRegs.push_back(reg); + floatVarToReg.erase({scope, var}); } + else if(type=="double") + { + + doubleVarToReg.erase({scope, var}); + } + else{ + cerr<<"Error: Type not supported for push into stack\n"; + return; + } reg_to_var.erase(reg); } +void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { + cout << "Handling double register spill for " << newVar << endl; + + // 1) Spill any dead double‐mapped var immediately + for (auto it = doubleVarToReg.begin(); it != doubleVarToReg.end(); ++it) { + auto [vscope, vname] = it->first; + string reg = it->second; + + bool usedNow = currentLiveness[currentInstructionIndex] + .use.count({vscope, vname}); + bool liveFuture = false; + for (int i = currentInstructionIndex + 1; + i < (int)currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({vscope, vname})) { + liveFuture = true; + break; + } + } + + if (!usedNow && !liveFuture) { + cout << "Spilling double " << vname << " from " << reg << endl; + mipsCode.push_back(" # Spilling " + vname + " from " + reg); + // free even reg for doubles and its buddy in float pool + availableDoubleRegs.push_back(reg); + availableFloatRegs.push_back(reg); + int num = stoi(reg.substr(2)); + string odd = "$f" + to_string(num + 1); + availableFloatRegs.push_back(odd); + doubleVarToReg.erase(it); + return; + } + } + + // 2) Try to carve out a contiguous pair by spilling a dead float var + its buddy + for (auto fit = floatVarToReg.begin(); fit != floatVarToReg.end(); ++fit) { + auto [vscope, vname] = fit->first; + string reg = fit->second; + + bool usedNow = currentLiveness[currentInstructionIndex] + .use.count({vscope, vname}); + bool liveFuture = false; + for (int i = currentInstructionIndex + 1; + i < (int)currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({vscope, vname})) { + liveFuture = true; + break; + } + } + if (usedNow || liveFuture) + continue; // candidate must be dead + + // identify buddy register + int num = stoi(reg.substr(2)); + bool regIsEven = (num % 2 == 0); + string buddy = "$f" + to_string(regIsEven ? num + 1 : num - 1); + + // find the buddy's var + auto budIt = find_if( + floatVarToReg.begin(), floatVarToReg.end(), + [&](auto const& kv){ return kv.second == buddy; } + ); + if (budIt == floatVarToReg.end()) + continue; // buddy not mapped → skip + + // check buddy's liveness + auto [bScope, bName] = budIt->first; + bool budUsedNow = currentLiveness[currentInstructionIndex] + .use.count({bScope, bName}); + bool budLiveFuture = false; + for (int i = currentInstructionIndex + 1; + i < (int)currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({bScope, bName})) { + budLiveFuture = true; + break; + } + } + if (budUsedNow || budLiveFuture) + continue; // buddy is live → can't form pair here + + // spill both the float var and its buddy + cout << "Spilling float " << vname << " from " << reg << endl; + mipsCode.push_back(" # Spilling " + vname + " from " + reg); + availableFloatRegs.push_back(reg); + floatVarToReg.erase(fit); + + cout << "Spilling buddy " << bName << " from " << buddy << endl; + mipsCode.push_back(" # Spilling " + bName + " from " + buddy); + availableFloatRegs.push_back(buddy); + floatVarToReg.erase(budIt); + + // choose the even‐numbered reg for our new double + string evenReg = regIsEven ? reg : buddy; + // remove it from the double pool + auto dit = find(availableDoubleRegs.begin(), + availableDoubleRegs.end(), evenReg); + if (dit != availableDoubleRegs.end()) + availableDoubleRegs.erase(dit); + + // allocate new double + doubleVarToReg[{currentScope, newVar}] = evenReg; + return; + } + + + // 3) Last resort: spill an existing double var to stack + auto dit = doubleVarToReg.begin(); + auto varPair = dit->first; + string regToSpill = dit->second; + cerr << "Spilling to stack " << varPair.second + << " from " << regToSpill << endl; + mipsCode.push_back(" # Spilling " + varPair.second + + " from " + regToSpill); + availableDoubleRegs.push_back(regToSpill); + int n = stoi(regToSpill.substr(2)); + string odd2 = "$f" + to_string(n + 1); + availableFloatRegs.push_back(regToSpill); + availableFloatRegs.push_back(odd2); + doubleVarToReg.erase(dit); + push_into_stack(varPair); +} + + +void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) { + cout << "Handling float register spill for " << newVar << endl; + + // 1) Try to spill a dead float‐mapped var + for (auto it = floatVarToReg.begin(); it != floatVarToReg.end(); ++it) { + auto [vscope, vname] = it->first; + string reg = it->second; + + bool usedNow = currentLiveness[currentInstructionIndex] + .use.count({vscope, vname}); + bool liveFuture = false; + for (int i = currentInstructionIndex + 1; + i < (int)currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({vscope, vname})) { + liveFuture = true; + break; + } + } + + if (!usedNow && !liveFuture) { + cout << "Spilling " << vname << " from " << reg << endl; + mipsCode.push_back(" # Spilling " + vname + " from " + reg); + availableFloatRegs.push_back(reg); + int reg_num = stoi(reg.substr(2)); + if(reg_num%2==1) + { + string pair=reg.substr(0,2)+to_string(reg_num-1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()) + { + availableDoubleRegs.push_back(pair); + } + + } + else{ + string pair=reg.substr(0,2)+to_string(reg_num+1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()) + { + availableDoubleRegs.push_back(reg); + } + } + floatVarToReg.erase(it); + return; + } + } + + // 2) Then try to spill a dead double‐mapped var + for (auto it = doubleVarToReg.begin(); it != doubleVarToReg.end(); ++it) { + auto [vscope, vname] = it->first; + string reg = it->second; + + bool usedNow = currentLiveness[currentInstructionIndex] + .use.count({vscope, vname}); + bool liveFuture = false; + for (int i = currentInstructionIndex + 1; + i < (int)currentLiveness.size(); ++i) { + if (currentLiveness[i].live_in.count({vscope, vname})) { + liveFuture = true; + break; + } + } + + if (!usedNow && !liveFuture) { + cout << "Spilling double " << vname << " from " << reg << endl; + mipsCode.push_back(" # Spilling double " + vname + " from " + reg); + // free both the even‐reg slot and the float reg pool + string pair=reg.substr(0,2)+to_string(stoi(reg.substr(2))+1); + availableDoubleRegs.push_back(reg); + availableFloatRegs.push_back(reg); + availableFloatRegs.push_back(pair); + doubleVarToReg.erase(it); + return; + } + } + + // 3) Everyone’s live → just pick any float‐mapped var and spill it + auto it = floatVarToReg.begin(); + auto varPair = it->first; // (scope, varName) + string reg = it->second; + + cerr << "Spilling to stack " << varPair.second + << " from " << reg << endl; + mipsCode.push_back(" # Spilling " + varPair.second + " from " + reg); + availableFloatRegs.push_back(reg); + int reg_num = stoi(reg.substr(2)); + if(reg_num%2==1) + { + string pair=reg.substr(0,2)+to_string(reg_num-1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()) + { + availableDoubleRegs.push_back(pair); + } + + } + else{ + string pair=reg.substr(0,2)+to_string(reg_num+1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()) + { + availableDoubleRegs.push_back(reg); + } + } + floatVarToReg.erase(it); + + push_into_stack(varPair); +} + + void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { // currentScope = getScope(currentScope, newVar); cout << "Handling register spill for " << newVar << endl; @@ -185,32 +437,40 @@ string getFloatRegister(scoped_symtab* scope, string& var,string type="float") { } if(type=="float") { - if (floatVarToReg.count({scope, var})) - return floatVarToReg[{scope, var}]; + if (floatVarToReg.count({scope, var})) return floatVarToReg[{scope, var}]; + string freg = availableFloatRegs.back(); + cout<<"Assigning float register " << freg << " to " << var << endl; availableFloatRegs.pop_back(); + string correspondingdreg=freg; if(stoi(freg.substr(2))%2==1) { - availableDoubleRegs.pop_back(); + correspondingdreg="$f"+to_string(stoi(freg.substr(2))-1); } + cout< Date: Mon, 28 Apr 2025 04:58:16 +0530 Subject: [PATCH 24/52] mixed op --- Assignment4/output/output.s | 31 ++++++------- Assignment4/output/output1.txt | 80 +++++++++++++++++++--------------- Assignment4/src/codegen.cpp | 23 +++++++++- Assignment4/test/input1.c | 9 ++-- 4 files changed, 85 insertions(+), 58 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index aeeac87..6ef328f 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -2,22 +2,17 @@ .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t9, 4 - li $t8, 10 - #Pushing a to stack - sw $t9, 0($sp) - addi $t7, $sp, 0 - sw $t8, 0($t7) - lw $t9, 0($t7) - sw $t9, 4($sp) - lw $t6, 0($sp) - add $t5, $t6, $t8 - move $t4, $t5 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t9, 5 + li.s $f31, 5.300000 +mtc1 $t9, $f30 +cvt.s.w $f30, $f30 + add.s $f29, $f31, $f30 + mov.s $f28, $f29 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 - syscall \ No newline at end of file + syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 222fc60..8985dba 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,12 +1,12 @@ =====================LIST OF ERRORS=================================== -Line 3 : Type mismatch in declaration -Line 5 : Missing return statement +Line 6 : Missing return statement ====================================================================== -0x557a37fca4b0 FUNC_BEGIN main -0x557a37fd0ab0 a:= 5.500000 -0x557a37fd0ab0 t0 := a + 6.500000 -0x557a37fd0ab0 b:= t0 -0x557a37fca4b0 FUNC_END main +0x62ec5f87c4b0 FUNC_BEGIN main +0x62ec5f882fc0 i:= 5 +0x62ec5f882fc0 f:= 5.300000 +0x62ec5f882fc0 t0 := f + i +0x62ec5f882fc0 val:= t0 +0x62ec5f87c4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -19,51 +19,63 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | float | 4 | 5.500000 | -| b | float | 4 | N/A | +| f | float | 4 | 5.300000 | +| i | int | 4 | 5 | | t0 | float | 4 | N/A | +| val | float | 4 | N/A | ----------------------------------------------------------------- Hiiiii -a : float +f : float current size: 4 Hiiiii -b : float +i : int current size: 8 Hiiiii t0 : float current size: 12 -Function main stack size: 20 +Hiiiii +val : float +current size: 16 +Function main stack size: 24 Pass 1 done Liveness analysis done FUNC_BEGIN main -a:= 5.500000 -Handling assignment: a := 5.500000 -t0 := a + 6.500000 -Handling operation: t0 := a + 6.500000 -Error!!!! Variable 6.500000 not found in any scope -Loaded float constant 6.500000 into $f6 -b:= t0 -Handling assignment: b := t0 +i:= 5 +Handling assignment: i := 5 +Getting register for i +Assigned register $t9 to i +f:= 5.300000 +Handling assignment: f := 5.300000 +Assigning float register $f31 to f +$f30 +t0 := f + i +Handling operation: t0 := f + i +Assigning float register $f30 to i +$f30 +Assigning float register $f29 to t0 +$f28 +val:= t0 +Handling assignment: val := t0 +Assigning float register $f28 to val +$f28 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ -.data -float_const_6.500000: .float 6.500000 -.text .text .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li.s $f7, 5.500000 - la $t9, float_const_6.500000 - l.s $f6, 0($t9) - add.s $f5, $f7, $f6 - mov.s $f4, $f5 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t9, 5 + li.s $f31, 5.300000 +mtc1 $t9, $f30 +cvt.s.w $f30, $f30 + add.s $f29, $f31, $f30 + mov.s $f28, $f29 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index d62b31a..0baeafc 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -633,7 +633,13 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& load_if_constant(scope, op1, r1); } else{ + r1 = getFloatRegister(scope,op1); + if(var_to_reg.count({scope,op1})){ + string tempr = var_to_reg[{scope,op1}]; + mipsCode.push_back("mtc1 " + tempr + ", " + r1); + mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); + } } if(isFloatLiteral(op2)){ if(availableFloatRegs.empty()) handleRegisterSpill(scope,op1); @@ -643,6 +649,11 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } else{ r2 = getFloatRegister(scope,op2); + if(var_to_reg.count({scope,op2})){ + string tempr = var_to_reg[{scope,op2}]; + mipsCode.push_back("mtc1 " + tempr + ", " + r2); + mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); + } } rd = getFloatRegister(scope,lhs); @@ -717,6 +728,10 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { // Assume float literal loading (mock behavior) mipsCode.push_back(" li.s " + dst + ", " + rhs); } + else if (isIntLiteral(rhs)) { + // Assume float literal loading (mock behavior) + mipsCode.push_back(" li.s " + dst + ", " + rhs+".0"); // Load float literal + } else { string src = getFloatRegister(scope, rhs); mipsCode.push_back(" mov.s " + dst + ", " + src); @@ -729,9 +744,13 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { if (isFloatLiteral(rhs)) { // Assume double literal loading (mock behavior) mipsCode.push_back(" li.d " + dst + ", " + rhs); // Load double literal - } + } + else if (isIntLiteral(rhs)) { + // Assume float literal loading (mock behavior) + mipsCode.push_back(" li.d " + dst + ", " + rhs+".0"); // Load float literal + } else { - string src = getFloatRegister(scope, rhs); // Get source double register + string src = getFloatRegister(scope, rhs,"double"); // Get source double register mipsCode.push_back(" mov.d " + dst + ", " + src); // Move value from src to dst } return; diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 8b27512..fcf4699 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,5 +1,6 @@ -int main(){ - float a = 5.5; - int b=a+6.5; - +int main() +{ + int i=5; + float f=5.3; + float val=f+i; } From 8c1b8d16f43a6924d9f2ec1e7d4cc8c41ecea02c Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Sun, 27 Apr 2025 23:44:35 +0000 Subject: [PATCH 25/52] added struct --- Assignment4/output/output.s | 27 +++++------- Assignment4/output/output1.txt | 80 ++++++++++++++++++++++------------ Assignment4/src/codegen.cpp | 52 +++++++++++++++++++++- Assignment4/test/input1.c | 13 ++++-- 4 files changed, 122 insertions(+), 50 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index aeeac87..c574f2b 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -2,22 +2,17 @@ .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) li $t9, 4 - li $t8, 10 - #Pushing a to stack - sw $t9, 0($sp) + #Pushing b to stack addi $t7, $sp, 0 - sw $t8, 0($t7) - lw $t9, 0($t7) - sw $t9, 4($sp) - lw $t6, 0($sp) - add $t5, $t6, $t8 - move $t4, $t5 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + #Loading constant 5 into register + li $t6, 5 + sw $t6, 0($t7) + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 li $v0, 10 - syscall \ No newline at end of file + syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 222fc60..696830a 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,17 +1,20 @@ =====================LIST OF ERRORS=================================== -Line 3 : Type mismatch in declaration -Line 5 : Missing return statement +Line 12 : Missing return statement ====================================================================== -0x557a37fca4b0 FUNC_BEGIN main -0x557a37fd0ab0 a:= 5.500000 -0x557a37fd0ab0 t0 := a + 6.500000 -0x557a37fd0ab0 b:= t0 -0x557a37fca4b0 FUNC_END main +0x564e64b968b0 FUNC_BEGIN main +0x564e64b9df50 a:= 4 +0x564e64b9df50 b:= alloc 8 +0x564e64b9df50 t0 := b + 0 +0x564e64b9df50 *t0 := 5 +0x564e64b968b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| A | struct | 0 | N/A | +| c | int | 4 | N/A | +| d | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -19,37 +22,55 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | float | 4 | 5.500000 | -| b | float | 4 | N/A | -| t0 | float | 4 | N/A | +| a | int | 4 | 4 | +| b | struct A | 0 | N/A | +| b.c | int | 4 | 5 | +| t0 | struct A | 0 | N/A | ----------------------------------------------------------------- Hiiiii -a : float +a : int current size: 4 Hiiiii -b : float +b : struct A current size: 8 Hiiiii -t0 : float +t0 : struct A current size: 12 Function main stack size: 20 Pass 1 done +Error!!!! Variable alloc not found in any scope +Error!!!! Variable *t0 not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 5.500000 -Handling assignment: a := 5.500000 -t0 := a + 6.500000 -Handling operation: t0 := a + 6.500000 -Error!!!! Variable 6.500000 not found in any scope -Loaded float constant 6.500000 into $f6 -b:= t0 -Handling assignment: b := t0 +a:= 4 +Checking struct: a 4 +Handling assignment: a := 4 +Getting register for a +Assigned register $t9 to a +b:= alloc 8 +Checking struct: b alloc 8 +Handling assignment: b := alloc 8 +Getting register for b +Assigned register $t8 to b +alloc 8 +Allocating 8 bytes for b at offset 0 +t0 := b + 0 +Checking struct: t0 b + 0 +Struct name: b +struct A +t0 b + 0 b 0 +Getting register for t0 +Assigned register $t7 to t0 +Error: Type not supported for push into stack +*t0 := 5 +Handling pointer arrays: *t0 := 5 +*t0 5 +Getting register for t0 +Found register for t0 $t7 +lhs t0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ -.data -float_const_6.500000: .float 6.500000 -.text .text .globl main main: @@ -57,11 +78,12 @@ main: addi $sp, $sp, -20 sw $ra, 16($sp) sw $fp, 12($sp) - li.s $f7, 5.500000 - la $t9, float_const_6.500000 - l.s $f6, 0($t9) - add.s $f5, $f7, $f6 - mov.s $f4, $f5 + li $t9, 4 + #Pushing b to stack + addi $t7, $sp, 0 + #Loading constant 5 into register + li $t6, 5 + sw $t6, 0($t7) lw $fp, 12($sp) lw $ra, 16($sp) addi $sp, $sp, 20 diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 160e6d4..2537ff0 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -494,7 +494,15 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { reg_of_const[rhs]=dst; } else { - + cout << rhs << endl; + if (rhs.find("alloc") != string::npos) + { + int rest=stoi(rhs.substr(rhs.find("alloc")+6)); + lhsInfo->offset=last_offset.top(); + last_offset.top()+=rest; + cerr<<"Allocating " << rest << " bytes for " << lhs << " at offset " << lhsInfo->offset << endl; + return; + } string src = getRegister(scope,rhs); mipsCode.push_back(" move " + dst + ", " + src); } @@ -743,8 +751,45 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } } } +bool check_struct(const string& line, scoped_symtab* scope) { + auto pos = line.find(":="); + string lhs = trim(line.substr(0, pos)); + string rhs = trim(line.substr(pos + 2)); + auto ppos = rhs.find("+"); + cout << "Checking struct: " << lhs << " " << rhs << endl; + if(ppos == string::npos) return false; + string structName = trim(rhs.substr(0, ppos)); + cout << "Struct name: " << structName << endl; + symbol_info* sym = getScope(scope, structName)->symbol_map[structName]; + cout << sym->type << endl; + if(sym->type.substr(0,6) == "struct"){ + return true; + } + return false; +} +void handle_struct(const string& line, scoped_symtab* scope) { + auto pos = line.find(":="); + string lhs = trim(line.substr(0, pos)); + string rhs = trim(line.substr(pos + 2)); + auto ppos = rhs.find("+"); + string structName = trim(rhs.substr(0, ppos)); + int offset = stoi(trim(rhs.substr(ppos + 2))); + cout << lhs << " " << rhs << " " << structName << " " << offset << endl; + int symoffset = scope->symbol_map[structName]->offset; + string dst = getRegister(scope, lhs); + if (var_to_reg.count({scope, structName})) { + push_into_stack({scope, structName}); + } + + if(symoffset == -1){ + push_into_stack({scope, structName}); + } + symoffset = scope->symbol_map[structName]->offset; + int totoffset = symoffset + offset; + mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(totoffset)); +} void pass1(vector>& codeList) { for (int i = 0; i < codeList.size(); i++) { @@ -845,10 +890,13 @@ void pass2(vector>& codeList){ continue; } else if(t[0] == '*' || t.find("&") != string::npos || t.find("*") != string::npos){ - cout << "HERE\n"; handle_pointer(t, code.second); continue; } + else if(check_struct(t, code.second)){ + handle_struct(t, code.second); + continue; + } if (t.find(":=") != string::npos) { size_t lhsEnd = t.find(":="); string lhs = trim(t.substr(0, lhsEnd)); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 8b27512..2ad42e8 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,5 +1,12 @@ +struct A { + int c; + int d; +}; + + int main(){ - float a = 5.5; - int b=a+6.5; - + int a = 4; + + struct A b; + b.c = 5; } From eaebb33e0c178705b06bd36d43789d8674edeae6 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Mon, 28 Apr 2025 01:17:28 +0000 Subject: [PATCH 26/52] changes --- Assignment4/output/output.s | 42 +++++---- Assignment4/output/output1.txt | 161 +++++++++++++++++++++++++-------- Assignment4/output/output2.txt | 85 +++++++++++++++++ Assignment4/src/codegen.cpp | 72 +++++++++++++-- Assignment4/src/parser.y | 2 +- Assignment4/test/input1.c | 10 +- Assignment4/test/input2.c | 6 ++ 7 files changed, 314 insertions(+), 64 deletions(-) create mode 100644 Assignment4/output/output2.txt create mode 100644 Assignment4/test/input2.c diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index aeeac87..135b394 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -2,22 +2,32 @@ .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t9, 4 - li $t8, 10 - #Pushing a to stack - sw $t9, 0($sp) - addi $t7, $sp, 0 - sw $t8, 0($t7) - lw $t9, 0($t7) - sw $t9, 4($sp) - lw $t6, 0($sp) - add $t5, $t6, $t8 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + li $t8, 0 + li $t7, 4 + mul $t6, $t8, $t7 + li $t5, 1 + addi $t6, $t6, 0 + add $t6, $t6, $sp + sw $t5, 0($t6) move $t4, $t5 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + move $t3, $t7 + mul $t2, $t4, $t3 + li $t1, 2 + addi $t2, $t2, 0 + add $t2, $t2, $sp + sw $t1, 0($t2) + li $t0, 8 + move $t9, $t7 + move $t6, $t8 + mul $t2, $t9, $t6 + addi $t2, $t2, 0 + add $t2, $t2, $sp + sw $t0, 0($t2) + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall \ No newline at end of file diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 222fc60..ffe59e0 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,17 +1,24 @@ =====================LIST OF ERRORS=================================== -Line 3 : Type mismatch in declaration -Line 5 : Missing return statement +Line 9 : Missing return statement ====================================================================== -0x557a37fca4b0 FUNC_BEGIN main -0x557a37fd0ab0 a:= 5.500000 -0x557a37fd0ab0 t0 := a + 6.500000 -0x557a37fd0ab0 b:= t0 -0x557a37fca4b0 FUNC_END main +0x55ebee78b8b0 FUNC_BEGIN main +0x55ebee792f50 arr := alloc 8 +0x55ebee792f50 t0:= 0 * 4 +0x55ebee792f50 *( arr + t0 ) := 1 +0x55ebee792f50 t1:= 1 * 4 +0x55ebee792f50 *( arr + t1 ) := 2 +0x55ebee792f50 t3:= 8 +0x55ebee792f50 t2 := 4 * 0 +0x55ebee792f50 *( arr + t2 ) := 8 +0x55ebee78b8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| A | struct | 0 | N/A | +| a | int | 4 | N/A | +| b | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -19,51 +26,133 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | float | 4 | 5.500000 | -| b | float | 4 | N/A | -| t0 | float | 4 | N/A | +| arr | int | 4 | 1 | +| t0 | int | 4 | N/A | +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | int | 4 | N/A | ----------------------------------------------------------------- Hiiiii -a : float +arr : int current size: 4 Hiiiii -b : float +t0 : int current size: 8 Hiiiii -t0 : float +t1 : int current size: 12 -Function main stack size: 20 +Hiiiii +t2 : int +current size: 16 +Hiiiii +t3 : int +current size: 20 +Function main stack size: 28 Pass 1 done +Error!!!! Variable alloc not found in any scope Liveness analysis done FUNC_BEGIN main -a:= 5.500000 -Handling assignment: a := 5.500000 -t0 := a + 6.500000 -Handling operation: t0 := a + 6.500000 -Error!!!! Variable 6.500000 not found in any scope -Loaded float constant 6.500000 into $f6 -b:= t0 -Handling assignment: b := t0 +arr := alloc 8 +Handling assignment: arr := alloc 8 +Getting register for arr +Assigned register $t9 to arr +Allocating 8 bytes for arr at offset 0 +t0:= 0 * 4 +Handling operation: t0 := 0 * 4 +hi +Loaded integer constant 0 into $t8 +Loaded integer constant 4 into $t7 +Getting register for t0 +Assigned register $t6 to t0 +Operation: 0 * 4 +Registers: $t8, $t7, $t6 +*( arr + t0 ) := 1 +HERE +Handling pointer arrays: *( arr + t0 ) := 1 +Handling array: *( arr + t0 ) := 1 +Loaded integer constant 1 into $t5 +Getting register for t0 +Found register for t0 $t6 +t1:= 1 * 4 +Handling operation: t1 := 1 * 4 +hi +Loaded integer constant (cached) 1 into $t4 +Loaded integer constant (cached) 4 into $t3 +Getting register for t1 +Assigned register $t2 to t1 +Operation: 1 * 4 +Registers: $t4, $t3, $t2 +*( arr + t1 ) := 2 +HERE +Handling pointer arrays: *( arr + t1 ) := 2 +Handling array: *( arr + t1 ) := 2 +Loaded integer constant 2 into $t1 +Getting register for t1 +Found register for t1 $t2 +t3:= 8 +Handling assignment: t3 := 8 +Getting register for t3 +Assigned register $t0 to t3 +t2 := 4 * 0 +Handling operation: t2 := 4 * 0 +hi +Handling register spill for 4 +Spilling arr from $t9 +Loaded integer constant (cached) 4 into $t9 +Handling register spill for 4 +Spilling t0 from $t6 +Loaded integer constant (cached) 0 into $t6 +Getting register for t2 +Handling register spill for t2 +Spilling t1 from $t2 +Assigned register $t2 to t2 +Operation: 4 * 0 +Registers: $t9, $t6, $t2 +*( arr + t2 ) := 8 +HERE +Handling pointer arrays: *( arr + t2 ) := 8 +Handling array: *( arr + t2 ) := 8 +Handling register spill for 8 +Spilling t3 from $t0 +Getting register for t2 +Found register for t2 $t2 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ -.data -float_const_6.500000: .float 6.500000 -.text .text .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li.s $f7, 5.500000 - la $t9, float_const_6.500000 - l.s $f6, 0($t9) - add.s $f5, $f7, $f6 - mov.s $f4, $f5 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + li $t8, 0 + li $t7, 4 + mul $t6, $t8, $t7 + li $t5, 1 + addi $t6, $t6, 0 + add $t6, $t6, $sp + sw $t5, 0($t6) + move $t4, $t5 + move $t3, $t7 + mul $t2, $t4, $t3 + li $t1, 2 + addi $t2, $t2, 0 + add $t2, $t2, $sp + sw $t1, 0($t2) + li $t0, 8 + # Spilling arr from $t9 + move $t9, $t7 + # Spilling t0 from $t6 + move $t6, $t8 + # Spilling t1 from $t2 + mul $t2, $t9, $t6 + # Spilling t3 from $t0 + addi $t2, $t2, 0 + add $t2, $t2, $sp + sw $t0, 0($t2) + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall diff --git a/Assignment4/output/output2.txt b/Assignment4/output/output2.txt new file mode 100644 index 0000000..f424d68 --- /dev/null +++ b/Assignment4/output/output2.txt @@ -0,0 +1,85 @@ +=====================LIST OF ERRORS=================================== +Line 6 : Missing return statement +====================================================================== +0x564b375698b0 FUNC_BEGIN main +0x564b375703c0 a:= 1 +0x564b375703c0 p:= &a +0x564b375703c0 *p:= 10 +0x564b375703c0 c:= a +0x564b375698b0 FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | 1 | +| c | int | 4 | N/A | +| p | int* | 0 | N/A | +----------------------------------------------------------------- +Hiiiii +a : int +current size: 4 +Hiiiii +c : int +current size: 8 +Hiiiii +p : int* +current size: 12 +Function main stack size: 20 +Pass 1 done +Liveness analysis done +FUNC_BEGIN main +a:= 1 +Handling assignment: a := 1 +Getting register for a +Assigned register $t9 to a +p:= &a +HERE +Handling pointer arrays: p:= &a +p &a +Getting register for p +Assigned register $t8 to p +*p:= 10 +HERE +Handling pointer arrays: *p:= 10 +*p 10 +Getting register for p +Found register for p $t8 +lhs p +c:= a +Handling assignment: c := a +Getting register for c +Assigned register $t7 to c +Getting register for a +Variable a is on stack, loading into register +FUNC_END main +Pass 2 done +################ MIPS Assembly Code ################ +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $t9, 1 + #Pushing a to stack + sw $t9, 0($sp) + addi $t8, $sp, 0 + #Loading constant 10 into register + li $t9, 10 + sw $t9, 0($t8) + lw $t6, 0($sp) + move $t7, $t6 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 + li $v0, 10 + syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 160e6d4..e07f4c3 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -292,12 +292,10 @@ void generate_return_MIPS(scoped_symtab* scope,string val) { // --- Operation/Assignment Handlers --- void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { - scope = getScope(scope, var); - if (loadedConstants[var]) return; - // Handle integer literal if (isIntLiteral(var)) { if (reg_of_const.count(var)) { + if(reg==reg_of_const[var]) return; mipsCode.push_back(" move " + reg + ", " + reg_of_const[var]); cout << "Loaded integer constant (cached) " << var << " into " << reg << endl; return; @@ -339,6 +337,7 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { int* val = static_cast(sym->ptr); mipsCode.push_back(" li " + reg + ", " + to_string(*val)); loadedConstants[var] = true; + reg_of_const[var] = reg; cout << "Loaded symbol (int) " << var << " into " << reg << endl; } else if (sym->type == "float") { float* val = static_cast(sym->ptr); @@ -352,6 +351,7 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { mipsCode.push_back(" la " + reg + ", " + floatLabel); mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); loadedConstants[var] = true; + reg_of_const[var] = reg; cout << "Loaded symbol (float) " << var << " into " << reg << endl; } } @@ -395,6 +395,7 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& string r1,r2,rd; if(isIntLiteral(op1)){ + cerr<<"hi"<offset=last_offset.top(); + last_offset.top()+=rest; + cerr<<"Allocating " << rest << " bytes for " << lhs << " at offset " << lhsInfo->offset << endl; + return; + } string src = getRegister(scope,rhs); mipsCode.push_back(" move " + dst + ", " + src); } @@ -674,12 +680,45 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } - +void handle_array(const string& line, scoped_symtab* scope) { + // scope=getScope(scope, line); + cerr<<"Handling array: " << line << endl; + size_t assignPos = line.find(":="); + string lhs = trim(line.substr(0, assignPos)); + string rhs = trim(line.substr(assignPos + 2)); + string r1; + if(isIntLiteral(rhs)){ + if(availableRegs.empty()) handleRegisterSpill(scope,rhs); + r1=availableRegs.back(); + availableRegs.pop_back(); + load_if_constant(scope, rhs, r1); + } + else{ + r1 = getRegister(scope,rhs); + } + //add cases + + lhs = lhs.substr(3); + //split on plus + size_t plusPos = lhs.find("+"); + string lhs1 = trim(lhs.substr(0, plusPos)); + string lhs2 = trim(lhs.substr(plusPos + 1)); + lhs2.pop_back(); + lhs2 = trim(lhs2); + string regis = getRegister(scope,lhs2); + mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" sw " + r1 + ", 0(" + regis + ")"); +} void handle_pointer(const string& line, scoped_symtab* scope) { // scope=getScope(scope, line); cerr<<"Handling pointer arrays: " << line << endl; + if(line[0]=='*' && line[1]=='('){ + handle_array(line, scope); + return; + } size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); @@ -709,6 +748,8 @@ void handle_pointer(const string& line, scoped_symtab* scope) { string reg = availableRegs.back(); availableRegs.pop_back(); mipsCode.push_back(" li " + reg + ", " + rhs); + loadedConstants[rhs] = true; + reg_of_const[rhs] = reg; mipsCode.push_back(" sw " + reg + ", " + to_string(0) + "("+dst + ")"); } @@ -844,7 +885,7 @@ void pass2(vector>& codeList){ handle_param_receive(t, code.second); continue; } - else if(t[0] == '*' || t.find("&") != string::npos || t.find("*") != string::npos){ + else if(t.find("&") != string::npos || (t.find("*") != string::npos && t[t.find("*")+1] != ' ') ){ cout << "HERE\n"; handle_pointer(t, code.second); continue; @@ -873,7 +914,7 @@ void compute_use_def(LivenessInfo& inst) { string lhs = trim(line.substr(0, eq)); string rhs = trim(line.substr(eq + 2)); //here - inst.def.insert({getScope(inst.scope,lhs), lhs}); + // inst.def.insert({getScope(inst.scope,lhs), lhs}); istringstream iss(rhs); string token; while (iss >> token) @@ -881,6 +922,21 @@ void compute_use_def(LivenessInfo& inst) { //here inst.use.insert({getScope(inst.scope,token), token}); } + + istringstream iss2(lhs); + string token2; + bool first=true; + while (iss2 >> token2) + if (isalpha(token2[0])){ + //here + if(first){ + inst.def.insert({getScope(inst.scope,token2), token2}); + first=false; + } + else{ + inst.use.insert({getScope(inst.scope,token2), token2}); + } + } } else if (line.find("if(") == 0) { size_t start = line.find('(') + 1; size_t end = line.find(')'); diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 82e06b8..00fddc8 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -1191,7 +1191,7 @@ init_declarator } for(int i=0;i<$1->array_length;i++){ qid temp=newtemp($1->type,curr_scope); - code=code+"\n"+temp.first+":= "+to_string(i)+"*"; + code=code+"\n"+temp.first+":= "+to_string(i)+" * "; if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(int*)($1->int_array[i]->ptr)); else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(float*)($1->int_array[i]->ptr)); else if($1->type=="char") code=code+"2\n"+"*( "+$1->name+" + "+temp.first+" ) := "+char(*(char*)($1->int_array[i]->ptr)); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 8b27512..17105fb 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,5 +1,9 @@ +struct A{ + int a; + int b; +}; + int main(){ - float a = 5.5; - int b=a+6.5; - + int arr[2]={1,2}; + arr[0]=8; } diff --git a/Assignment4/test/input2.c b/Assignment4/test/input2.c new file mode 100644 index 0000000..a104dc0 --- /dev/null +++ b/Assignment4/test/input2.c @@ -0,0 +1,6 @@ +int main(){ + int a=1; + int *p = &a; + *p=10; + int c=a; +} \ No newline at end of file From 50fc98043f1c36985cd8989cb9e48b0915284b60 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Mon, 28 Apr 2025 05:33:21 +0000 Subject: [PATCH 27/52] arrays working --- Assignment4/output/output.s | 35 ++++---- Assignment4/output/output1.txt | 148 +++++++++++++-------------------- Assignment4/output/output2.txt | 23 ++--- Assignment4/src/codegen.cpp | 100 +++++++++++----------- Assignment4/test/input1.c | 4 +- Assignment4/test/input2.c | 6 -- 6 files changed, 135 insertions(+), 181 deletions(-) delete mode 100644 Assignment4/test/input2.c diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index d9f3d60..32b531f 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -2,33 +2,30 @@ .globl main main: move $fp, $sp - addi $sp, $sp, -28 - sw $ra, 24($sp) - sw $fp, 20($sp) + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) li $t8, 0 li $t7, 4 mul $t6, $t8, $t7 - li $t5, 1 + li $t5, 5 addi $t6, $t6, 0 add $t6, $t6, $sp sw $t5, 0($t6) - move $t4, $t5 - move $t3, $t7 + move $t4, $t7 + move $t3, $t8 mul $t2, $t4, $t3 - li $t1, 2 addi $t2, $t2, 0 add $t2, $t2, $sp - sw $t1, 0($t2) - li $t0, 8 - move $t9, $t7 - move $t6, $t8 - mul $t2, $t9, $t6 - addi $t2, $t2, 0 - add $t2, $t2, $sp - sw $t0, 0($t2) - lw $fp, 20($sp) - lw $ra, 24($sp) - addi $sp, $sp, 28 + lw $t2, 0($t2) + move $t1, $t2 + li $t0, 2 + # Spilling arr from $t9 + add $t9, $t1, $t0 + # Spilling t0 from $t6 + move $t6, $t9 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 li $v0, 10 syscall - diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index ffe59e0..48bc366 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,16 +1,15 @@ =====================LIST OF ERRORS=================================== Line 9 : Missing return statement ====================================================================== -0x55ebee78b8b0 FUNC_BEGIN main -0x55ebee792f50 arr := alloc 8 -0x55ebee792f50 t0:= 0 * 4 -0x55ebee792f50 *( arr + t0 ) := 1 -0x55ebee792f50 t1:= 1 * 4 -0x55ebee792f50 *( arr + t1 ) := 2 -0x55ebee792f50 t3:= 8 -0x55ebee792f50 t2 := 4 * 0 -0x55ebee792f50 *( arr + t2 ) := 8 -0x55ebee78b8b0 FUNC_END main +0x55a76c35c8b0 FUNC_BEGIN main +0x55a76c363f50 arr := alloc 4 +0x55a76c363f50 t0:= 0 * 4 +0x55a76c363f50 *( arr + t0 ) := 5 +0x55a76c363f50 t1 := 4 * 0 +0x55a76c363f50 t2 := *( arr + t1 ) +0x55a76c363f50 t3 := t2 + 2 +0x55a76c363f50 c:= t3 +0x55a76c35c8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -26,37 +25,23 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| arr | int | 4 | 1 | +| arr | int | 4 | 5 | +| c | int | 4 | N/A | | t0 | int | 4 | N/A | | t1 | int | 4 | N/A | | t2 | int | 4 | N/A | | t3 | int | 4 | N/A | ----------------------------------------------------------------- -Hiiiii -arr : int -current size: 4 -Hiiiii -t0 : int -current size: 8 -Hiiiii -t1 : int -current size: 12 -Hiiiii -t2 : int -current size: 16 -Hiiiii -t3 : int -current size: 20 -Function main stack size: 28 +Function main stack size: 32 Pass 1 done Error!!!! Variable alloc not found in any scope Liveness analysis done FUNC_BEGIN main -arr := alloc 8 -Handling assignment: arr := alloc 8 +arr := alloc 4 +Handling assignment: arr := alloc 4 Getting register for arr Assigned register $t9 to arr -Allocating 8 bytes for arr at offset 0 +Allocating 4 bytes for arr at offset 0 t0:= 0 * 4 Handling operation: t0 := 0 * 4 hi @@ -66,56 +51,47 @@ Getting register for t0 Assigned register $t6 to t0 Operation: 0 * 4 Registers: $t8, $t7, $t6 -*( arr + t0 ) := 1 -HERE -Handling pointer arrays: *( arr + t0 ) := 1 -Handling array: *( arr + t0 ) := 1 -Loaded integer constant 1 into $t5 +*( arr + t0 ) := 5 +Handling array: *( arr + t0 ) := 5 +Loaded integer constant 5 into $t5 Getting register for t0 Found register for t0 $t6 -t1:= 1 * 4 -Handling operation: t1 := 1 * 4 +t1 := 4 * 0 +Handling operation: t1 := 4 * 0 hi -Loaded integer constant (cached) 1 into $t4 -Loaded integer constant (cached) 4 into $t3 +Loaded integer constant (cached) 4 into $t4 +Loaded integer constant (cached) 0 into $t3 Getting register for t1 Assigned register $t2 to t1 -Operation: 1 * 4 +Operation: 4 * 0 Registers: $t4, $t3, $t2 -*( arr + t1 ) := 2 -HERE -Handling pointer arrays: *( arr + t1 ) := 2 -Handling array: *( arr + t1 ) := 2 -Loaded integer constant 2 into $t1 +t2 := *( arr + t1 ) +Handling array: t2 := *( arr + t1 ) Getting register for t1 Found register for t1 $t2 -t3:= 8 -Handling assignment: t3 := 8 +Getting register for t2 +Assigned register $t1 to t2 +t3 := t2 + 2 +Struct name: t2 +int +Handling operation: t3 := t2 + 2 +Getting register for t2 +Found register for t2 $t1 +Loaded integer constant 2 into $t0 Getting register for t3 -Assigned register $t0 to t3 -t2 := 4 * 0 -Handling operation: t2 := 4 * 0 -hi -Handling register spill for 4 +Handling register spill for t3 Spilling arr from $t9 -Loaded integer constant (cached) 4 into $t9 -Handling register spill for 4 +Assigned register $t9 to t3 +Operation: t2 + 2 +Registers: $t1, $t0, $t9 +c:= t3 +Handling assignment: c := t3 +Getting register for c +Handling register spill for c Spilling t0 from $t6 -Loaded integer constant (cached) 0 into $t6 -Getting register for t2 -Handling register spill for t2 -Spilling t1 from $t2 -Assigned register $t2 to t2 -Operation: 4 * 0 -Registers: $t9, $t6, $t2 -*( arr + t2 ) := 8 -HERE -Handling pointer arrays: *( arr + t2 ) := 8 -Handling array: *( arr + t2 ) := 8 -Handling register spill for 8 -Spilling t3 from $t0 -Getting register for t2 -Found register for t2 $t2 +Assigned register $t6 to c +Getting register for t3 +Found register for t3 $t9 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ @@ -123,36 +99,30 @@ Pass 2 done .globl main main: move $fp, $sp - addi $sp, $sp, -28 - sw $ra, 24($sp) - sw $fp, 20($sp) + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) li $t8, 0 li $t7, 4 mul $t6, $t8, $t7 - li $t5, 1 + li $t5, 5 addi $t6, $t6, 0 add $t6, $t6, $sp sw $t5, 0($t6) - move $t4, $t5 - move $t3, $t7 + move $t4, $t7 + move $t3, $t8 mul $t2, $t4, $t3 - li $t1, 2 addi $t2, $t2, 0 add $t2, $t2, $sp - sw $t1, 0($t2) - li $t0, 8 + lw $t2, 0($t2) + move $t1, $t2 + li $t0, 2 # Spilling arr from $t9 - move $t9, $t7 + add $t9, $t1, $t0 # Spilling t0 from $t6 - move $t6, $t8 - # Spilling t1 from $t2 - mul $t2, $t9, $t6 - # Spilling t3 from $t0 - addi $t2, $t2, 0 - add $t2, $t2, $sp - sw $t0, 0($t2) - lw $fp, 20($sp) - lw $ra, 24($sp) - addi $sp, $sp, 28 + move $t6, $t9 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 li $v0, 10 syscall diff --git a/Assignment4/output/output2.txt b/Assignment4/output/output2.txt index f424d68..4941557 100644 --- a/Assignment4/output/output2.txt +++ b/Assignment4/output/output2.txt @@ -1,12 +1,12 @@ =====================LIST OF ERRORS=================================== Line 6 : Missing return statement ====================================================================== -0x564b375698b0 FUNC_BEGIN main -0x564b375703c0 a:= 1 -0x564b375703c0 p:= &a -0x564b375703c0 *p:= 10 -0x564b375703c0 c:= a -0x564b375698b0 FUNC_END main +0x55bc954118b0 FUNC_BEGIN main +0x55bc954183c0 a:= 1 +0x55bc954183c0 p:= &a +0x55bc954183c0 *p:= 10 +0x55bc954183c0 c:= a +0x55bc954118b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -23,15 +23,6 @@ Printing scope table | c | int | 4 | N/A | | p | int* | 0 | N/A | ----------------------------------------------------------------- -Hiiiii -a : int -current size: 4 -Hiiiii -c : int -current size: 8 -Hiiiii -p : int* -current size: 12 Function main stack size: 20 Pass 1 done Liveness analysis done @@ -41,13 +32,11 @@ Handling assignment: a := 1 Getting register for a Assigned register $t9 to a p:= &a -HERE Handling pointer arrays: p:= &a p &a Getting register for p Assigned register $t8 to p *p:= 10 -HERE Handling pointer arrays: *p:= 10 *p 10 Getting register for p diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 982a5d8..bc3e28f 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -41,7 +41,6 @@ struct pair_hash { } }; - struct LivenessInfo { scoped_symtab* scope; string code; @@ -52,13 +51,11 @@ struct LivenessInfo { vector currentLiveness; - vector operators = { "==", "!=", "<=", ">=", "&&", "||", "+=", "-=", "*=", "/=", "%=", "<<", ">>", "<", ">", "+", "-", "*", "/", "%", "=", "&", "|", "^", "!", "~" }; -// --- Helper Functions --- string trim(const string& s) { size_t start = s.find_first_not_of(" \t\r\n"); size_t end = s.find_last_not_of(" \t\r\n"); @@ -68,6 +65,7 @@ string trim(const string& s) { bool isIntLiteral(const string& s) { return !s.empty() && all_of(s.begin(), s.end(), ::isdigit); } + bool isCharLiteral(const std::string& s) { return s.length() >= 3 && s.front() == '\'' && s.back() == '\'' && s.length() == 3; } @@ -281,7 +279,6 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar push_into_stack(varPair); } - void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) { cout << "Handling float register spill for " << newVar << endl; @@ -387,7 +384,6 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) push_into_stack(varPair); } - void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { // currentScope = getScope(currentScope, newVar); cout << "Handling register spill for " << newVar << endl; @@ -550,7 +546,6 @@ void generate_return_MIPS(scoped_symtab* scope,string val) { } -// --- Operation/Assignment Handlers --- void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { // Handle integer literal if (isIntLiteral(var)) { @@ -617,10 +612,10 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { } } - void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, scoped_symtab* scope) { cout<<"Handling operation: " << lhs << " := " << rhs << endl; - bool isFloat = (getScope(scope,lhs)->symbol_map[lhs]->type == "float"); + bool isFloat; + isFloat = (getScope(scope,lhs)->symbol_map[lhs]->type == "float"); string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); if (isFloat){ @@ -815,12 +810,9 @@ int calculate_function_stack_size(scoped_symtab* scope) { int size = 0; // cout<<"Calculating stack size for function " << scope->symbol_map['a']->type << endl; for (const auto& [name, sym] : scope->symbol_map) { - cout<<"Hiiiii"<type << endl; if (!sym->is_param_list && !sym->is_return) { size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); } - cout<<"current size: " << size << endl; } return size; } @@ -905,7 +897,6 @@ void handle_function_call(const string& line) { paramFloatCounter = 0; } - void handle_param_receive(const string& line, scoped_symtab* scope) { cerr<<"Handling param receive: " << line << endl; size_t assignPos = line.find(":="); @@ -966,38 +957,49 @@ void handle_array(const string& line, scoped_symtab* scope) { string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); string r1; - if(isIntLiteral(rhs)){ - if(availableRegs.empty()) handleRegisterSpill(scope,rhs); - r1=availableRegs.back(); - availableRegs.pop_back(); - load_if_constant(scope, rhs, r1); + if(line[0]=='*'){ + if(isIntLiteral(rhs)){ + if(availableRegs.empty()) handleRegisterSpill(scope,rhs); + r1=availableRegs.back(); + availableRegs.pop_back(); + load_if_constant(scope, rhs, r1); + } + else{ + r1 = getRegister(scope,rhs); + } + //add cases + + lhs = lhs.substr(3); + //split on plus + size_t plusPos = lhs.find("+"); + string lhs1 = trim(lhs.substr(0, plusPos)); + string lhs2 = trim(lhs.substr(plusPos + 1)); + lhs2.pop_back(); + lhs2 = trim(lhs2); + string regis = getRegister(scope,lhs2); + mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" sw " + r1 + ", 0(" + regis + ")"); + }else{ + rhs = rhs.substr(3); + //split on plus + size_t plusPos = rhs.find("+"); + string rhs1 = trim(rhs.substr(0, plusPos)); + string rhs2 = trim(rhs.substr(plusPos + 1)); + rhs2.pop_back(); + rhs2 = trim(rhs2); + string regis = getRegister(scope,rhs2); + mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" lw " + regis + ", 0(" + regis + ")"); + string dst = getRegister(scope,lhs); + mipsCode.push_back(" move " + dst + ", " + regis); } - else{ - r1 = getRegister(scope,rhs); - } - //add cases - - lhs = lhs.substr(3); - //split on plus - size_t plusPos = lhs.find("+"); - string lhs1 = trim(lhs.substr(0, plusPos)); - string lhs2 = trim(lhs.substr(plusPos + 1)); - lhs2.pop_back(); - lhs2 = trim(lhs2); - string regis = getRegister(scope,lhs2); - mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); - mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); - mipsCode.push_back(" sw " + r1 + ", 0(" + regis + ")"); } - void handle_pointer(const string& line, scoped_symtab* scope) { // scope=getScope(scope, line); cerr<<"Handling pointer arrays: " << line << endl; - if(line[0]=='*' && line[1]=='('){ - handle_array(line, scope); - return; - } size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); @@ -1063,12 +1065,12 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } } } + bool check_struct(const string& line, scoped_symtab* scope) { auto pos = line.find(":="); string lhs = trim(line.substr(0, pos)); string rhs = trim(line.substr(pos + 2)); auto ppos = rhs.find("+"); - cout << "Checking struct: " << lhs << " " << rhs << endl; if(ppos == string::npos) return false; string structName = trim(rhs.substr(0, ppos)); cout << "Struct name: " << structName << endl; @@ -1080,7 +1082,6 @@ bool check_struct(const string& line, scoped_symtab* scope) { return false; } - void handle_struct(const string& line, scoped_symtab* scope) { auto pos = line.find(":="); string lhs = trim(line.substr(0, pos)); @@ -1138,7 +1139,6 @@ void pass1(vector>& codeList) { } } - void pass2(vector>& codeList){ for(int idx = 0; idx < codeList.size(); ++idx){ auto& code = codeList[idx]; @@ -1201,7 +1201,11 @@ void pass2(vector>& codeList){ handle_param_receive(t, code.second); continue; } - else if(t[0] == '*' || t.find("&") != string::npos || t.find("*") != string::npos){ + else if((t.find("*") != string::npos && t.find("(")!=string::npos && t[t.find("*")+1] == '(')){ + handle_array(t, code.second); + continue; + } + else if(t.find("&") != string::npos || (t.find("*") != string::npos && t[t.find("*")+1] != ' ')){ handle_pointer(t, code.second); continue; } @@ -1323,6 +1327,7 @@ void run_liveness(vector& program) { } } while (changed); } + void printMipsCode(vector& mipsCode, const string& filename) { ofstream outFile(filename); // Open file for writing if (!outFile) { @@ -1336,6 +1341,7 @@ void printMipsCode(vector& mipsCode, const string& filename) { outFile.close(); // Always good practice to close explicitly } + void codegen_main() { mipsCode.push_back(".text"); mipsCode.push_back(".globl main"); @@ -1354,20 +1360,18 @@ void codegen_main() { } run_liveness(currentLiveness); cerr<<"Liveness analysis done"< Date: Mon, 28 Apr 2025 14:13:55 +0530 Subject: [PATCH 28/52] printf --- Assignment4/output/output.s | 44 +++++----- Assignment4/output/output1.txt | 146 ++++++++++----------------------- Assignment4/src/codegen.cpp | 75 +++++++++++++++-- Assignment4/test/input1.c | 11 +-- 4 files changed, 134 insertions(+), 142 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 32b531f..99bebec 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,31 +1,25 @@ +.data +str0: .asciiz "Hi" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - li $t5, 5 - addi $t6, $t6, 0 - add $t6, $t6, $sp - sw $t5, 0($t6) - move $t4, $t7 - move $t3, $t8 - mul $t2, $t4, $t3 - addi $t2, $t2, 0 - add $t2, $t2, $sp - lw $t2, 0($t2) - move $t1, $t2 - li $t0, 2 - # Spilling arr from $t9 - add $t9, $t1, $t0 - # Spilling t0 from $t6 - move $t6, $t9 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + addi $sp, $sp, -16 + sw $ra, 12($sp) + sw $fp, 8($sp) + li.s $f31, 5.500000 + la $a0, str0 + mov.s $f12, $f31 + move $a0, $a0 + li $v0, 4 +syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + move $t9, $v0 + li $v0, 0 + lw $fp, 8($sp) + lw $ra, 12($sp) + addi $sp, $sp, 16 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 48bc366..bcc0eac 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,23 +1,19 @@ -=====================LIST OF ERRORS=================================== -Line 9 : Missing return statement ====================================================================== -0x55a76c35c8b0 FUNC_BEGIN main -0x55a76c363f50 arr := alloc 4 -0x55a76c363f50 t0:= 0 * 4 -0x55a76c363f50 *( arr + t0 ) := 5 -0x55a76c363f50 t1 := 4 * 0 -0x55a76c363f50 t2 := *( arr + t1 ) -0x55a76c363f50 t3 := t2 + 2 -0x55a76c363f50 c:= t3 -0x55a76c35c8b0 FUNC_END main +No Errors in the code +Intermediate code generated successfully +====================================================================== +0x5ea8502ea4b0 FUNC_BEGIN main +0x5ea8502f0fc0 f:= 5.500000 +0x5ea8502f0fc0 PARAM "Hi" +0x5ea8502f0fc0 PARAM f +0x5ea8502f0fc0 t0 := CALL printf,2 +0x5ea8502f0fc0 RETURN 0 +0x5ea8502ea4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| A | struct | 0 | N/A | -| a | int | 4 | N/A | -| b | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -25,104 +21,52 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| arr | int | 4 | 5 | -| c | int | 4 | N/A | -| t0 | int | 4 | N/A | -| t1 | int | 4 | N/A | -| t2 | int | 4 | N/A | -| t3 | int | 4 | N/A | +| f | float | 4 | 5.500000 | +| t0 | | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 32 +Function main stack size: 16 Pass 1 done -Error!!!! Variable alloc not found in any scope +Error!!!! Variable printf,2 not found in any scope Liveness analysis done FUNC_BEGIN main -arr := alloc 4 -Handling assignment: arr := alloc 4 -Getting register for arr -Assigned register $t9 to arr -Allocating 4 bytes for arr at offset 0 -t0:= 0 * 4 -Handling operation: t0 := 0 * 4 -hi -Loaded integer constant 0 into $t8 -Loaded integer constant 4 into $t7 -Getting register for t0 -Assigned register $t6 to t0 -Operation: 0 * 4 -Registers: $t8, $t7, $t6 -*( arr + t0 ) := 5 -Handling array: *( arr + t0 ) := 5 -Loaded integer constant 5 into $t5 +f:= 5.500000 +Handling assignment: f := 5.500000 +Assigning float register $f31 to f +$f30 +PARAM "Hi" +PARAM f +t0 := CALL printf,2 +Handling assignment: t0 := CALL printf,2 Getting register for t0 -Found register for t0 $t6 -t1 := 4 * 0 -Handling operation: t1 := 4 * 0 -hi -Loaded integer constant (cached) 4 into $t4 -Loaded integer constant (cached) 0 into $t3 -Getting register for t1 -Assigned register $t2 to t1 -Operation: 4 * 0 -Registers: $t4, $t3, $t2 -t2 := *( arr + t1 ) -Handling array: t2 := *( arr + t1 ) -Getting register for t1 -Found register for t1 $t2 -Getting register for t2 -Assigned register $t1 to t2 -t3 := t2 + 2 -Struct name: t2 -int -Handling operation: t3 := t2 + 2 -Getting register for t2 -Found register for t2 $t1 -Loaded integer constant 2 into $t0 -Getting register for t3 -Handling register spill for t3 -Spilling arr from $t9 -Assigned register $t9 to t3 -Operation: t2 + 2 -Registers: $t1, $t0, $t9 -c:= t3 -Handling assignment: c := t3 -Getting register for c -Handling register spill for c -Spilling t0 from $t6 -Assigned register $t6 to c -Getting register for t3 -Found register for t3 $t9 +Assigned register $t9 to t0 +Handling function call: CALL printf,2 +----------------------2 +RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ +.data +str0: .asciiz "Hi" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - li $t5, 5 - addi $t6, $t6, 0 - add $t6, $t6, $sp - sw $t5, 0($t6) - move $t4, $t7 - move $t3, $t8 - mul $t2, $t4, $t3 - addi $t2, $t2, 0 - add $t2, $t2, $sp - lw $t2, 0($t2) - move $t1, $t2 - li $t0, 2 - # Spilling arr from $t9 - add $t9, $t1, $t0 - # Spilling t0 from $t6 - move $t6, $t9 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + addi $sp, $sp, -16 + sw $ra, 12($sp) + sw $fp, 8($sp) + li.s $f31, 5.500000 + la $a0, str0 + mov.s $f12, $f31 + move $a0, $a0 + li $v0, 4 +syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + move $t9, $v0 + li $v0, 0 + lw $fp, 8($sp) + lw $ra, 12($sp) + addi $sp, $sp, 16 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index bc3e28f..7e2b687 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -13,6 +13,7 @@ static int paramFloatCounter = 0; int paramReceiveCounter = 0; int param_receive_offset=0; int paramFloatReceiveCounter = 0; +int string_counter = 0; map,string> var_to_reg; map> reg_to_var; map funcStackSize; @@ -28,7 +29,9 @@ map, string> floatVarToReg; vector availableDoubleRegs={"$f0","$f2","$f4","$f6","$f8","$f10","$f12","$f14","$f16","$f18","$f20","$f22","$f24","$f26","$f28","$f30"}; map, string> doubleVarToReg; vector mipsCode; - +vector data_section; +vector paramtype; +map string_to_label; map loadedConstants; map reg_of_const; int get_size_from_type(string type); @@ -69,6 +72,9 @@ bool isIntLiteral(const string& s) { bool isCharLiteral(const std::string& s) { return s.length() >= 3 && s.front() == '\'' && s.back() == '\'' && s.length() == 3; } +bool isStringLiteral(const std::string& s) { + return s.length() >= 2 && s.front() == '"' && s.back() == '"'; +} bool isFloatLiteral(const string& s) { size_t dotPos = s.find('.'); @@ -536,10 +542,10 @@ void generate_func_end_MIPS( string &func, int stackSize) { void generate_return_MIPS(scoped_symtab* scope,string val) { if(isIntLiteral(val) || isFloatLiteral(val)) { - mipsCode.push_back("\t move $a0, $v0 \n \t li $v0, 1 \n \t syscall"); - mipsCode.push_back(" li $v0, " + val); + //mipsCode.push_back("\t move $a0, $v0 \n \t li $v0, 1 \n \t syscall"); + mipsCode.push_back(" li $v0, " + val); } - else{ + else{ string reg=getRegister(scope,val); mipsCode.push_back(" move $v0, " + reg); } @@ -826,17 +832,32 @@ int space_for_extra_params(symbol_info* sym) { } return size; } - +string newstring(){ + string label = "str" + to_string(string_counter); + string_counter++; + return label; +} void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" string srcReg; + if(isStringLiteral(var)) + { + string str=newstring(); + data_section.push_back(str+": .asciiz "+var); + string_to_label[var]=str; + mipsCode.push_back(" la $a0, " + str); + paramCounter++; + paramtype.push_back("string"); + return; + } symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { cerr << "Unknown symbol in handle_param_pass: " << var << endl; exit(1); } - + if (sym->type == "float") { + paramtype.push_back("float"); srcReg = getFloatRegister(scope, var); if (paramFloatCounter == 0) mipsCode.push_back(" mov.s $f12, " + srcReg); @@ -849,7 +870,9 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } paramFloatCounter++; } - else { + else if (sym->type =="int" || sym->type == "char") { + if(sym->type=="int") paramtype.push_back("int"); + if(sym->type=="char") paramtype.push_back("char"); srcReg = getRegister(scope, var); if (paramCounter >= argRegisters.size()) { functionparams.push_back(" addi $sp, $sp, -4 \n sw " + srcReg + ", " + to_string(0) + "($sp)"); @@ -877,11 +900,36 @@ void handle_function_call(const string& line) { iss >> call >> funcWithComma; iss.ignore(); // skip comma iss >> argCount; - + int arg_no=0; string funcName = trim(funcWithComma); if (!funcName.empty() && funcName.back() == ',') funcName.pop_back(); if(funcName.find(",")!=string::npos){ + arg_no=stoi(funcName.substr(funcName.find(",")+1)); funcName = funcName.substr(0,funcName.find(",")); + + } + if(funcName=="printf") + { + int floatCounter=0; + int cnt=0; + for(auto &type : paramtype){ + if(type=="int" || type=="char" || type=="string") {mipsCode.push_back(" move $a0, $a"+to_string(cnt));cnt++;} + if(type=="float"||type=="double") {mipsCode.push_back(" mov.s $f12, $f"+to_string(12+2*floatCounter));floatCounter++;} + if(type=="int") mipsCode.push_back(" li $v0, 1"); + else if(type=="char") mipsCode.push_back(" li $v0, 11"); + else if(type=="string") mipsCode.push_back(" li $v0, 4"); + else if(type=="float") mipsCode.push_back(" li $v0, 2"); + else if(type=="bool") mipsCode.push_back(" li $v0, 1"); + else if(type=="double") mipsCode.push_back(" li $v0, 3"); + mipsCode.push_back("syscall"); + cnt++; + + } + + cout<<"----------------------"< 0){ reverse(functionparams.begin(), functionparams.end()); @@ -892,9 +940,11 @@ void handle_function_call(const string& line) { } //cerr<<"Function name: " << funcName << endl; + paramtype.clear(); mipsCode.push_back(" jal " + funcName); paramCounter = 0; // Reset after call paramFloatCounter = 0; + arg_no=0; } void handle_param_receive(const string& line, scoped_symtab* scope) { @@ -1334,7 +1384,10 @@ void printMipsCode(vector& mipsCode, const string& filename) { cerr << "Error opening file: " << filename << endl; return; } - + + for(auto data : data_section){ + outFile << data << endl; + } for (const string& line : mipsCode) { outFile << line << endl; // Write to file instead of cerr } @@ -1345,6 +1398,7 @@ void printMipsCode(vector& mipsCode, const string& filename) { void codegen_main() { mipsCode.push_back(".text"); mipsCode.push_back(".globl main"); + data_section.push_back(".data"); std::vector> codeList=cleaned_TAC; pass1(codeList); @@ -1368,6 +1422,9 @@ void codegen_main() { mipsCode.push_back(" syscall"); cerr << "################ MIPS Assembly Code ################ \n"; + for(auto data : data_section){ + cerr << data << endl; + } for (const string& line : mipsCode) { cerr << line << endl; } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index fac3462..c38ca82 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,9 +1,6 @@ -struct A{ - int a; - int b; -}; - int main(){ - int arr[1]={5}; - int c = arr[0]+2; + float f=5.5; + + printf("Hi",f); + return 0; } From 6ff312695b6cdb9a4e3b8b18207282560174ae9d Mon Sep 17 00:00:00 2001 From: BitBeast Date: Mon, 28 Apr 2025 14:38:23 +0530 Subject: [PATCH 29/52] changes --- Assignment4/output/output.s | 17 ++++++++---- Assignment4/output/output1.txt | 49 ++++++++++++++++++++-------------- Assignment4/src/codegen.cpp | 21 ++++++++++++--- Assignment4/test/input1.c | 6 ++--- 4 files changed, 62 insertions(+), 31 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 99bebec..f4786a7 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,4 +1,5 @@ .data +newline: .asciiz "\n" str0: .asciiz "Hi" .text .globl main @@ -7,16 +8,22 @@ main: addi $sp, $sp, -16 sw $ra, 12($sp) sw $fp, 8($sp) - li.s $f31, 5.500000 + li $t9, 5 la $a0, str0 - mov.s $f12, $f31 + move $a1, $t9 move $a0, $a0 li $v0, 4 syscall - mov.s $f12, $f12 - li $v0, 2 + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 syscall - move $t9, $v0 + li $v0, 4 + la $a0, newline + syscall + move $t8, $v0 li $v0, 0 lw $fp, 8($sp) lw $ra, 12($sp) diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index bcc0eac..0e5f04a 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,13 +2,13 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x5ea8502ea4b0 FUNC_BEGIN main -0x5ea8502f0fc0 f:= 5.500000 -0x5ea8502f0fc0 PARAM "Hi" -0x5ea8502f0fc0 PARAM f -0x5ea8502f0fc0 t0 := CALL printf,2 -0x5ea8502f0fc0 RETURN 0 -0x5ea8502ea4b0 FUNC_END main +0x595d911394b0 FUNC_BEGIN main +0x595d9113ffc0 a:= 5 +0x595d9113ffc0 PARAM "Hi %d" +0x595d9113ffc0 PARAM a +0x595d9113ffc0 t0 := CALL printf,2 +0x595d9113ffc0 RETURN 0 +0x595d911394b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -21,7 +21,7 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| f | float | 4 | 5.500000 | +| a | int | 4 | 5 | | t0 | | 0 | N/A | ----------------------------------------------------------------- Function main stack size: 16 @@ -29,16 +29,18 @@ Pass 1 done Error!!!! Variable printf,2 not found in any scope Liveness analysis done FUNC_BEGIN main -f:= 5.500000 -Handling assignment: f := 5.500000 -Assigning float register $f31 to f -$f30 -PARAM "Hi" -PARAM f +a:= 5 +Handling assignment: a := 5 +Getting register for a +Assigned register $t9 to a +PARAM "Hi %d" +PARAM a +Getting register for a +Found register for a $t9 t0 := CALL printf,2 Handling assignment: t0 := CALL printf,2 Getting register for t0 -Assigned register $t9 to t0 +Assigned register $t8 to t0 Handling function call: CALL printf,2 ----------------------2 RETURN 0 @@ -46,6 +48,7 @@ FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data +newline: .asciiz "\n" str0: .asciiz "Hi" .text .globl main @@ -54,16 +57,22 @@ main: addi $sp, $sp, -16 sw $ra, 12($sp) sw $fp, 8($sp) - li.s $f31, 5.500000 + li $t9, 5 la $a0, str0 - mov.s $f12, $f31 + move $a1, $t9 move $a0, $a0 li $v0, 4 syscall - mov.s $f12, $f12 - li $v0, 2 + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 syscall - move $t9, $v0 + li $v0, 4 + la $a0, newline + syscall + move $t8, $v0 li $v0, 0 lw $fp, 8($sp) lw $ra, 12($sp) diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 7e2b687..02ded74 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -842,8 +842,23 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { string srcReg; if(isStringLiteral(var)) { + string literal = var; + size_t pos = var.find('%'); + if (pos != string::npos) { + literal = var.substr(0, pos); + } + + // Remove leading and trailing spaces from the literal + size_t start = literal.find_first_not_of(' '); + size_t end = literal.find_last_not_of(' '); + if (start != string::npos && end != string::npos) { + literal = literal.substr(start, end - start + 1); + literal=literal+"\""; + } else { + literal = ""; // if only spaces + } string str=newstring(); - data_section.push_back(str+": .asciiz "+var); + data_section.push_back(str+": .asciiz "+literal); string_to_label[var]=str; mipsCode.push_back(" la $a0, " + str); paramCounter++; @@ -922,8 +937,7 @@ void handle_function_call(const string& line) { else if(type=="bool") mipsCode.push_back(" li $v0, 1"); else if(type=="double") mipsCode.push_back(" li $v0, 3"); mipsCode.push_back("syscall"); - cnt++; - + mipsCode.push_back(" li $v0, 4 \n la $a0, newline \n syscall"); } cout<<"----------------------"<> codeList=cleaned_TAC; pass1(codeList); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index c38ca82..d235143 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,6 +1,6 @@ int main(){ - float f=5.5; - - printf("Hi",f); + int a=5; + + printf("Hi %d",a); return 0; } From 3d927404bf707ce44daa65b084f6933318acba53 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 15:59:57 +0530 Subject: [PATCH 30/52] float,double array and pointer --- Assignment4/output/output.s | 47 ++++--- Assignment4/output/output1.txt | 192 ++++++++++++++------------- Assignment4/src/codegen.cpp | 233 +++++++++++++++++++++++++++++---- Assignment4/test/input1.c | 9 +- 4 files changed, 338 insertions(+), 143 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 32b531f..87724d7 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -2,30 +2,27 @@ .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - li $t5, 5 - addi $t6, $t6, 0 - add $t6, $t6, $sp - sw $t5, 0($t6) - move $t4, $t7 - move $t3, $t8 - mul $t2, $t4, $t3 - addi $t2, $t2, 0 - add $t2, $t2, $sp - lw $t2, 0($t2) - move $t1, $t2 - li $t0, 2 - # Spilling arr from $t9 - add $t9, $t1, $t0 - # Spilling t0 from $t6 - move $t6, $t9 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + li $t9, 0 + li $t9, 1 +LABEL0: + li $t8, 10 + slt $t7, $t9, $t8 + bnez $t7, LABEL2 + j LABEL1 +LABEL2: + li $t6, 3 + li $t5, 4 + add $t4, $t6, $t5 + move $t3, $t4 + move $t2, $t9 + add $t9, $t9, $t2 + j LABEL0 +LABEL1: + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 48bc366..d8b993f 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,15 +1,21 @@ =====================LIST OF ERRORS=================================== -Line 9 : Missing return statement +Line 14 : Missing return statement ====================================================================== -0x55a76c35c8b0 FUNC_BEGIN main -0x55a76c363f50 arr := alloc 4 -0x55a76c363f50 t0:= 0 * 4 -0x55a76c363f50 *( arr + t0 ) := 5 -0x55a76c363f50 t1 := 4 * 0 -0x55a76c363f50 t2 := *( arr + t1 ) -0x55a76c363f50 t3 := t2 + 2 -0x55a76c363f50 c:= t3 -0x55a76c35c8b0 FUNC_END main +0x5692eb7e54b0 FUNC_BEGIN main +0x5692eb7ecb50 i:= 0 +0x5692eb7ecb50 i:= 1 +0x5692eb7ecb50 LABEL0: +0x5692eb7ecb50 t0 := i < 10 +0x5692eb7ecb50 if(t0) goto LABEL2 +0x5692eb7ecb50 goto LABEL1 +0x5692eb7ecb50 LABEL2: +0x5692eb7ee5e0 c:= 3 +0x5692eb7ee5e0 t1 := c + 4 +0x5692eb7ee5e0 d:= t1 +0x5692eb7ecb50 i := i + 1 +0x5692eb7ecb50 goto LABEL0 +0x5692eb7ecb50 LABEL1: +0x5692eb7e54b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -25,73 +31,78 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| arr | int | 4 | 5 | -| c | int | 4 | N/A | -| t0 | int | 4 | N/A | +| c | int | 4 | 3 | +| d | int | 4 | N/A | | t1 | int | 4 | N/A | -| t2 | int | 4 | N/A | -| t3 | int | 4 | N/A | ----------------------------------------------------------------- -Function main stack size: 32 +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| i | int | 4 | 0 | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- +Function main stack size: 28 Pass 1 done -Error!!!! Variable alloc not found in any scope Liveness analysis done FUNC_BEGIN main -arr := alloc 4 -Handling assignment: arr := alloc 4 -Getting register for arr -Assigned register $t9 to arr -Allocating 4 bytes for arr at offset 0 -t0:= 0 * 4 -Handling operation: t0 := 0 * 4 -hi -Loaded integer constant 0 into $t8 -Loaded integer constant 4 into $t7 +i:= 0 +Handling assignment: i := 0 +Getting register for i +Assigned register $t9 to i +i:= 1 +Handling assignment: i := 1 +Getting register for i +Found register for i $t9 +LABEL0: +t0 := i < 10 +Handling operation: t0 := i < 10 +Getting register for i +Found register for i $t9 +Loaded integer constant 10 into $t8 Getting register for t0 -Assigned register $t6 to t0 -Operation: 0 * 4 -Registers: $t8, $t7, $t6 -*( arr + t0 ) := 5 -Handling array: *( arr + t0 ) := 5 -Loaded integer constant 5 into $t5 +Assigned register $t7 to t0 +Operation: i < 10 +Registers: $t9, $t8, $t7 +if(t0) goto LABEL2 +Condition: t0, Label: LABEL2 Getting register for t0 -Found register for t0 $t6 -t1 := 4 * 0 -Handling operation: t1 := 4 * 0 -hi -Loaded integer constant (cached) 4 into $t4 -Loaded integer constant (cached) 0 into $t3 +Found register for t0 $t7 +goto LABEL1 +LABEL2: +c:= 3 +Handling assignment: c := 3 +Getting register for c +Assigned register $t6 to c +t1 := c + 4 +Struct name: c +int +Handling operation: t1 := c + 4 +Getting register for c +Found register for c $t6 +Loaded integer constant 4 into $t5 Getting register for t1 -Assigned register $t2 to t1 -Operation: 4 * 0 -Registers: $t4, $t3, $t2 -t2 := *( arr + t1 ) -Handling array: t2 := *( arr + t1 ) +Assigned register $t4 to t1 +Operation: c + 4 +Registers: $t6, $t5, $t4 +d:= t1 +Handling assignment: d := t1 +Getting register for d +Assigned register $t3 to d Getting register for t1 -Found register for t1 $t2 -Getting register for t2 -Assigned register $t1 to t2 -t3 := t2 + 2 -Struct name: t2 +Found register for t1 $t4 +i := i + 1 +Struct name: i int -Handling operation: t3 := t2 + 2 -Getting register for t2 -Found register for t2 $t1 -Loaded integer constant 2 into $t0 -Getting register for t3 -Handling register spill for t3 -Spilling arr from $t9 -Assigned register $t9 to t3 -Operation: t2 + 2 -Registers: $t1, $t0, $t9 -c:= t3 -Handling assignment: c := t3 -Getting register for c -Handling register spill for c -Spilling t0 from $t6 -Assigned register $t6 to c -Getting register for t3 -Found register for t3 $t9 +Handling operation: i := i + 1 +Getting register for i +Found register for i $t9 +Loaded integer constant (cached) 1 into $t2 +Getting register for i +Found register for i $t9 +Operation: i + 1 +Registers: $t9, $t2, $t9 +goto LABEL0 +LABEL1: FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ @@ -99,30 +110,27 @@ Pass 2 done .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - li $t5, 5 - addi $t6, $t6, 0 - add $t6, $t6, $sp - sw $t5, 0($t6) - move $t4, $t7 - move $t3, $t8 - mul $t2, $t4, $t3 - addi $t2, $t2, 0 - add $t2, $t2, $sp - lw $t2, 0($t2) - move $t1, $t2 - li $t0, 2 - # Spilling arr from $t9 - add $t9, $t1, $t0 - # Spilling t0 from $t6 - move $t6, $t9 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + li $t9, 0 + li $t9, 1 +LABEL0: + li $t8, 10 + slt $t7, $t9, $t8 + bnez $t7, LABEL2 + j LABEL1 +LABEL2: + li $t6, 3 + li $t5, 4 + add $t4, $t6, $t5 + move $t3, $t4 + move $t2, $t9 + add $t9, $t9, $t2 + j LABEL0 +LABEL1: + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index bc3e28f..5b1c738 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -958,42 +958,113 @@ void handle_array(const string& line, scoped_symtab* scope) { string rhs = trim(line.substr(assignPos + 2)); string r1; if(line[0]=='*'){ + string arr_name=trim(lhs.substr(2).substr(0,lhs.substr(2).find("+"))); + cout<<"Array name: " << arr_name << endl; if(isIntLiteral(rhs)){ if(availableRegs.empty()) handleRegisterSpill(scope,rhs); r1=availableRegs.back(); availableRegs.pop_back(); load_if_constant(scope, rhs, r1); + lhs = lhs.substr(3); + //split on plus + size_t plusPos = lhs.find("+"); + string lhs1 = trim(lhs.substr(0, plusPos)); + string lhs2 = trim(lhs.substr(plusPos + 1)); + lhs2.pop_back(); + lhs2 = trim(lhs2); + string regis = getRegister(scope,lhs2); + mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" sw " + r1 + ", 0(" + regis + ")"); } - else{ - r1 = getRegister(scope,rhs); + else if(isFloatLiteral(rhs)){ + if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="float"){ + r1=getFloatRegister(scope,rhs); + load_if_constant(scope, rhs, r1); + lhs = lhs.substr(3); + //split on plus + size_t plusPos = lhs.find("+"); + string lhs1 = trim(lhs.substr(0, plusPos)); + string lhs2 = trim(lhs.substr(plusPos + 1)); + lhs2.pop_back(); + lhs2 = trim(lhs2); + string regis = getFloatRegister(scope,lhs2); + string val=to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset); + string regii = getFloatRegister(scope,val); + mipsCode.push_back(" li.s " + regii + ", " + val); + mipsCode.push_back(" add.s " + regis + ", " + regis + ", " + regii); + + // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); + mipsCode.push_back(" add.s " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" s.s" + r1 + ", 0(" + regis + ")"); + } + else if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="double"){ + r1=getFloatRegister(scope,rhs,"double"); + load_if_constant(scope, rhs, r1); + lhs = lhs.substr(3); + //split on plus + size_t plusPos = lhs.find("+"); + string lhs1 = trim(lhs.substr(0, plusPos)); + string lhs2 = trim(lhs.substr(plusPos + 1)); + lhs2.pop_back(); + lhs2 = trim(lhs2); + string regis = getFloatRegister(scope,lhs2,"double"); + string val=to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset); + string regii = getFloatRegister(scope,val,"double"); + mipsCode.push_back(" li.d " + regii + ", " + val); + mipsCode.push_back(" add.d " + regis + ", " + regis + ", " + regii); + + // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); + mipsCode.push_back(" add.d " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" s.d" + r1 + ", 0(" + regis + ")"); + } + + } + //add cases - lhs = lhs.substr(3); - //split on plus - size_t plusPos = lhs.find("+"); - string lhs1 = trim(lhs.substr(0, plusPos)); - string lhs2 = trim(lhs.substr(plusPos + 1)); - lhs2.pop_back(); - lhs2 = trim(lhs2); - string regis = getRegister(scope,lhs2); - mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); - mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); - mipsCode.push_back(" sw " + r1 + ", 0(" + regis + ")"); + }else{ rhs = rhs.substr(3); + string arr_name=trim(rhs.substr(0,rhs.find("+"))); + cout<<"Array name: " << arr_name << endl; //split on plus size_t plusPos = rhs.find("+"); string rhs1 = trim(rhs.substr(0, plusPos)); string rhs2 = trim(rhs.substr(plusPos + 1)); rhs2.pop_back(); rhs2 = trim(rhs2); - string regis = getRegister(scope,rhs2); - mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); - mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); - mipsCode.push_back(" lw " + regis + ", 0(" + regis + ")"); - string dst = getRegister(scope,lhs); - mipsCode.push_back(" move " + dst + ", " + regis); + if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="float"){ + string regis = getFloatRegister(scope,rhs2); + string val=to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset); + string regii = getFloatRegister(scope,val); + mipsCode.push_back(" li.s " + regii + ", " + val); + mipsCode.push_back(" add.s " + regis + ", " + regis + ", " + regii); + // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); + mipsCode.push_back(" add.s " + regis + ", " + regis + ", $sp"); + string dst = getRegister(scope,lhs); + mipsCode.push_back(" l.s " + dst + ", 0(" + regis + ")"); + } + else if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="double"){ + string regis = getFloatRegister(scope,rhs2,"double"); + string val=to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset); + string regii = getFloatRegister(scope,val,"double"); + mipsCode.push_back(" li.d " + regii + ", " + val); + mipsCode.push_back(" add.d " + regis + ", " + regis + ", " + regii); + // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); + mipsCode.push_back(" add.d " + regis + ", " + regis + ", $sp"); + string dst = getRegister(scope,lhs); + mipsCode.push_back(" l.d " + dst + ", 0(" + regis + ")"); + } + else{ + string regis = getRegister(scope,rhs2); + mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + string dst = getRegister(scope,lhs); + mipsCode.push_back(" lw " + dst + ", 0(" + regis + ")"); + } + } } @@ -1009,7 +1080,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { if(lhs[0] == '*'){ lhs = lhs.substr(1); } - string dst = getRegister(scope, lhs); + string dst; if (amppos != string::npos) rhs = rhs.substr(amppos + 1); if(rhs[0] == '*'){ @@ -1018,6 +1089,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } if(isIntLiteral(rhs)){ cout<<"lhs "<symbol_map[lhs]->type=="float"){ + dst=getFloatRegister(scope, lhs); + if(reg_of_const.count(rhs)) { + mipsCode.push_back(" s.s " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); + } + else{ + mipsCode.push_back(" #Loading constant " + rhs + " into register"); + if(availableFloatRegs.empty()){ + handleFloatRegisterSpill(scope,rhs); + } + string reg = getFloatRegister(scope,rhs); + mipsCode.push_back(" li.s " + reg + ", " + rhs); + loadedConstants[rhs] = true; + reg_of_const[rhs] = reg; + mipsCode.push_back(" s.s " + reg + ", " + to_string(0) + "("+dst + ")"); + + } + } + else { + dst=getFloatRegister(scope, lhs,"double"); + if(reg_of_const.count(rhs)) { + mipsCode.push_back(" s.d " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); + } + else{ + mipsCode.push_back(" #Loading constant " + rhs + " into register"); + if(availableFloatRegs.empty()){ + handleDoubleRegisterSpill(scope,rhs); + } + string reg =getFloatRegister(scope,rhs,"double"); + mipsCode.push_back(" li.d " + reg + ", " + rhs); + loadedConstants[rhs] = true; + reg_of_const[rhs] = reg; + mipsCode.push_back(" s.d " + reg + ", " + to_string(0) + "("+dst + ")"); + + } + + } + + } + else{ if(rhs_ptr){ if(var_to_reg.count({getScope(scope, rhs), rhs})){ + dst=getRegister(scope, lhs); mipsCode.push_back(" lw " + dst + ", " + "0(" + var_to_reg[{getScope(scope, rhs), rhs}] + ")"); symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; if(getScope(scope, rhs)->symbol_map[rhs]->offset == -1){ @@ -1049,6 +1164,32 @@ void handle_pointer(const string& line, scoped_symtab* scope) { mipsCode.push_back(" sw " + dst + ", " + to_string(sym->offset) + "($sp)"); } } + else if(floatVarToReg.count({getScope(scope, rhs), rhs})){ + dst=getFloatRegister(scope, lhs); + mipsCode.push_back(" l.s " + dst + ", " + "0(" + floatVarToReg[{getScope(scope, rhs), rhs}] + ")"); + symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; + if(getScope(scope, rhs)->symbol_map[rhs]->offset == -1){ + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" s.s " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + else{ + mipsCode.push_back(" s.s " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + } + else if(doubleVarToReg.count({getScope(scope, rhs), rhs})){ + dst=getFloatRegister(scope, lhs,"double"); + mipsCode.push_back(" l.d " + dst + ", " + "0(" + doubleVarToReg[{getScope(scope, rhs), rhs}] + ")"); + symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; + if(getScope(scope, rhs)->symbol_map[rhs]->offset == -1){ + sym->offset = last_offset.top(); + last_offset.top()+=get_size_from_type(sym->type); + mipsCode.push_back(" s.d " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + else{ + mipsCode.push_back(" s.d " + dst + ", " + to_string(sym->offset) + "($sp)"); + } + } else{ //yet to handle this case cerr<<"Error: Pointer not found in register\n"; @@ -1058,10 +1199,54 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } else{ symbol_info* rhsInfo = getScope(scope, rhs)->symbol_map[rhs]; - if(var_to_reg.count({scope, rhs})){ - push_into_stack({scope, rhs}); + if(rhsInfo->type=="int"){ + dst=getRegister(scope, lhs); + if(var_to_reg.count({scope, rhs})){ + push_into_stack({scope, rhs}); + } + mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); + } + else if(rhsInfo->type=="float"){ + dst=getFloatRegister(scope, lhs); + string regis=floatVarToReg[{scope, rhs}]; + if(floatVarToReg.count({scope, rhs})){ + push_into_stack({scope, rhs}); + } + availableFloatRegs.push_back(regis); + if(stoi(regis.substr(2))%2==1){ + string pair=regis.substr(0,2)+to_string(stoi(regis.substr(2))-1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()){ + availableDoubleRegs.push_back(pair); + } + } + else{ + string pair=regis.substr(0,2)+to_string(stoi(regis.substr(2))+1); + if(find(availableFloatRegs.begin(), availableFloatRegs.end(), pair) != availableFloatRegs.end()){ + availableDoubleRegs.push_back(regis); + } + } + string val=to_string(rhsInfo->offset); + string regii = getFloatRegister(scope,val); + mipsCode.push_back(" li.s " + regii + ", " + val); + mipsCode.push_back(" add.s " + dst + ", $sp, " + regii); } - mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); + else if(rhsInfo->type=="double"){ + string reg = getFloatRegister(scope, rhs,"double"); + string regis=doubleVarToReg[{scope, rhs}]; + if(doubleVarToReg.count({scope, rhs})){ + push_into_stack({scope, rhs}); + } + availableDoubleRegs.push_back(regis); + string pair=regis.substr(0,2)+to_string(stoi(regis.substr(2))+1); + availableFloatRegs.push_back(pair); + availableFloatRegs.push_back(regis); + string val=to_string(rhsInfo->offset); + string regii = getFloatRegister(scope,val,"double"); + mipsCode.push_back(" li.d " + regii + ", " + val); + mipsCode.push_back(" add.d " + reg + ", $sp, " + regii); + } + + } } } @@ -1090,7 +1275,7 @@ void handle_struct(const string& line, scoped_symtab* scope) { string structName = trim(rhs.substr(0, ppos)); int offset = stoi(trim(rhs.substr(ppos + 2))); cout << lhs << " " << rhs << " " << structName << " " << offset << endl; - int symoffset = scope->symbol_map[structName]->offset; + int symoffset = getScope(scope,structName)->symbol_map[structName]->offset; string dst = getRegister(scope, lhs); if (var_to_reg.count({scope, structName})) { push_into_stack({scope, structName}); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index fac3462..83d672e 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -4,6 +4,11 @@ struct A{ }; int main(){ - int arr[1]={5}; - int c = arr[0]+2; + int i=0; + for(i=1;i<10;i++){ + int c=3; + int d=c+4; + + } + } From 13912a26604c279980ca6078829772cd03c82e9e Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 18:49:35 +0530 Subject: [PATCH 31/52] struct assignment --- Assignment3/output/output1.txt | 11 +---- Assignment3/output/output4.txt | 72 +++++++++++++++++++++++++++++++++ Assignment3/parser | Bin 1060680 -> 1125464 bytes Assignment3/test/input1.c | 8 +--- 4 files changed, 75 insertions(+), 16 deletions(-) diff --git a/Assignment3/output/output1.txt b/Assignment3/output/output1.txt index 5da54d6..6e469eb 100644 --- a/Assignment3/output/output1.txt +++ b/Assignment3/output/output1.txt @@ -8,12 +8,5 @@ Intermediate code generated successfully 4. *t0:= 10 5. t1:= a+4 6. *t1:= 10 -7. c:= 4 -8. p:= &c -9. q:= &p -10. t2:= *q -11. d:= *t3 -12. t4:= *q -13. *t4:= 20 -14. RETURN 0 -15. FUNC_END main +7. RETURN 0 +8. FUNC_END main diff --git a/Assignment3/output/output4.txt b/Assignment3/output/output4.txt index e69de29..8285bc4 100644 --- a/Assignment3/output/output4.txt +++ b/Assignment3/output/output4.txt @@ -0,0 +1,72 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +1. FUNC_BEGIN main +2. PARAM "Enter an operator (+, -, *, /): " +3. t0:= CALL printf,1 +4. PARAM "%c" +5. PARAM &operation +6. t1:= CALL scanf,2 +7. PARAM "Enter two operands: " +8. t2:= CALL printf,1 +9. PARAM "%lf %lf" +10. PARAM &n1 +11. PARAM &n2 +12. t3:= CALL scanf,3 +13. r:= 0 +14. if(operation=='+') goto LABEL0 +15. if(operation=='-') goto LABEL5 +16. if(operation=='*') goto LABEL6 +17. if(operation=='/') goto LABEL7 +18. goto LABEL8 +19. LABEL0: +20. t4:= n1+n2 +21. PARAM "%.1lf + %.1lf = %.1lf" +22. PARAM n1 +23. PARAM n2 +24. PARAM t4 +25. t5:= CALL printf,4 +26. goto LABEL9 +27. LABEL5: +28. if(b==1) goto LABEL1 +29. if(b==2) goto LABEL2 +30. goto LABEL3 +31. LABEL1: +32. goto LABEL4 +33. LABEL2: +34. r:= r-1 +35. t6:= n1-n2 +36. PARAM "%.1lf - %.1lf = %.1lf" +37. PARAM n1 +38. PARAM n2 +39. PARAM t6 +40. t7:= CALL printf,4 +41. goto LABEL4 +42. LABEL3: +43. PARAM "Error! operator is not correct" +44. t8:= CALL printf,1 +45. goto LABEL4 +46. LABEL4: +47. goto LABEL9 +48. LABEL6: +49. t9:= n1*n2 +50. PARAM "%.1lf * %.1lf = %.1lf" +51. PARAM n1 +52. PARAM n2 +53. PARAM t9 +54. t10:= CALL printf,4 +55. LABEL7: +56. t11:= n1/n2 +57. PARAM "%.1lf / %.1lf = %.1lf" +58. PARAM n1 +59. PARAM n2 +60. PARAM t11 +61. t12:= CALL printf,4 +62. goto LABEL9 +63. LABEL8: +64. PARAM "Error! operator is not correct" +65. t13:= CALL printf,1 +66. LABEL9: +67. RETURN 0 +68. FUNC_END main diff --git a/Assignment3/parser b/Assignment3/parser index b6f41ca3553b33d8e361a0c6f2975cc7eec51540..502ffe0ef458e8e8d216ee3e1db1425fd8adad8a 100755 GIT binary patch literal 1125464 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

#J{}I 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

lFAen&l$!PHhT3t`L?Jr@imMgl-f`_ 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

cp!NRFO=HYfj$S5PCBrwUsvu2!@;{ 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 diff --git a/Assignment3/test/input1.c b/Assignment3/test/input1.c index 10f8da0..76aa963 100644 --- a/Assignment3/test/input1.c +++ b/Assignment3/test/input1.c @@ -8,12 +8,6 @@ int main(){ a.x=10; a.y=10; - int c=4; - int* p=&c; - int **q=&p; - int d; - d=**q; - - **q=20; + // int c=a.x; return 0; } \ No newline at end of file From 7b24d4ae756e1e674ff2f1fb4572e63c0bb0a886 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 18:50:53 +0530 Subject: [PATCH 32/52] changes --- Assignment4/output/output.s | 87 ++++++++------ Assignment4/output/output1.txt | 202 --------------------------------- Assignment4/src/codegen.cpp | 86 ++++++++------ Assignment4/src/parser.y | 4 +- Assignment4/test/input1.c | 27 ++--- 5 files changed, 120 insertions(+), 286 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 3c337f2..5aab371 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,40 +1,58 @@ .data newline: .asciiz "\n" -str0: .asciiz "Hi" +str0: .asciiz "" .text .globl main main: move $fp, $sp -<<<<<<< HEAD - addi $sp, $sp, -28 - sw $ra, 24($sp) - sw $fp, 20($sp) - li $t9, 0 - li $t9, 1 -LABEL0: - li $t8, 10 - slt $t7, $t9, $t8 - bnez $t7, LABEL2 - j LABEL1 -LABEL2: - li $t6, 3 - li $t5, 4 - add $t4, $t6, $t5 - move $t3, $t4 - move $t2, $t9 - add $t9, $t9, $t2 - j LABEL0 -LABEL1: - lw $fp, 20($sp) - lw $ra, 24($sp) - addi $sp, $sp, 28 -======= - addi $sp, $sp, -16 - sw $ra, 12($sp) - sw $fp, 8($sp) - li $t9, 5 + addi $sp, $sp, -96 + sw $ra, 92($sp) + sw $fp, 88($sp) + li $t9, 3 + li $t8, 4 + li $t7, 5 + li $t6, 6 + li $t5, 7 + li $t4, 8 + li $t3, 9 + li $t2, 10 + li $t1, 11 + #Pushing b to stack + sw $t9, 8($sp) + #Pushing a to stack + addi $t9, $sp, 0 + #Loading constant 5 into register + li $t0, 5 + sw $t0, 0($t9) + # Spilling t0 from $t9 + #Pushing a to stack + addi $t9, $sp, 4 + #Loading constant 10 into register + li $t0, 10 + sw $t0, 0($t9) + # Spilling a from $t0 + lw $t0, 8($sp) + # Spilling t1 from $t9 + add $t9, $t0, $t8 + # Spilling b from $t0 + add $t0, $t9, $t7 + # Spilling c from $t8 + add $t8, $t0, $t6 + # Spilling d from $t7 + add $t7, $t8, $t5 + # Spilling e from $t6 + add $t6, $t7, $t4 + # Spilling f from $t5 + add $t5, $t6, $t3 + # Spilling g from $t4 + add $t4, $t5, $t2 + # Spilling h from $t3 + add $t3, $t4, $t1 + # Spilling i from $t2 + move $t2, $t3 la $a0, str0 - move $a1, $t9 + move $a1, $t2 + # Spilling j from $t1 move $a0, $a0 li $v0, 4 syscall @@ -47,11 +65,10 @@ syscall li $v0, 4 la $a0, newline syscall - move $t8, $v0 + move $t1, $v0 li $v0, 0 - lw $fp, 8($sp) - lw $ra, 12($sp) - addi $sp, $sp, 16 ->>>>>>> 6ff312695b6cdb9a4e3b8b18207282560174ae9d + lw $fp, 88($sp) + lw $ra, 92($sp) + addi $sp, $sp, 96 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 8c56141..e69de29 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,202 +0,0 @@ -<<<<<<< HEAD -=====================LIST OF ERRORS=================================== -Line 14 : Missing return statement -====================================================================== -0x5692eb7e54b0 FUNC_BEGIN main -0x5692eb7ecb50 i:= 0 -0x5692eb7ecb50 i:= 1 -0x5692eb7ecb50 LABEL0: -0x5692eb7ecb50 t0 := i < 10 -0x5692eb7ecb50 if(t0) goto LABEL2 -0x5692eb7ecb50 goto LABEL1 -0x5692eb7ecb50 LABEL2: -0x5692eb7ee5e0 c:= 3 -0x5692eb7ee5e0 t1 := c + 4 -0x5692eb7ee5e0 d:= t1 -0x5692eb7ecb50 i := i + 1 -0x5692eb7ecb50 goto LABEL0 -0x5692eb7ecb50 LABEL1: -0x5692eb7e54b0 FUNC_END main -======= -====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x595d911394b0 FUNC_BEGIN main -0x595d9113ffc0 a:= 5 -0x595d9113ffc0 PARAM "Hi %d" -0x595d9113ffc0 PARAM a -0x595d9113ffc0 t0 := CALL printf,2 -0x595d9113ffc0 RETURN 0 -0x595d911394b0 FUNC_END main ->>>>>>> 6ff312695b6cdb9a4e3b8b18207282560174ae9d -====================================================================== -Printing scope table ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| main | int | 4 | N/A | -| printf | | 0 | N/A | -| scanf | | 0 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -<<<<<<< HEAD -| c | int | 4 | 3 | -| d | int | 4 | N/A | -| t1 | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| i | int | 4 | 0 | -| t0 | int | 4 | N/A | ------------------------------------------------------------------ -Function main stack size: 28 -Pass 1 done -Liveness analysis done -FUNC_BEGIN main -i:= 0 -Handling assignment: i := 0 -Getting register for i -Assigned register $t9 to i -i:= 1 -Handling assignment: i := 1 -Getting register for i -Found register for i $t9 -LABEL0: -t0 := i < 10 -Handling operation: t0 := i < 10 -Getting register for i -Found register for i $t9 -Loaded integer constant 10 into $t8 -Getting register for t0 -Assigned register $t7 to t0 -Operation: i < 10 -Registers: $t9, $t8, $t7 -if(t0) goto LABEL2 -Condition: t0, Label: LABEL2 -Getting register for t0 -Found register for t0 $t7 -goto LABEL1 -LABEL2: -c:= 3 -Handling assignment: c := 3 -Getting register for c -Assigned register $t6 to c -t1 := c + 4 -Struct name: c -int -Handling operation: t1 := c + 4 -Getting register for c -Found register for c $t6 -Loaded integer constant 4 into $t5 -Getting register for t1 -Assigned register $t4 to t1 -Operation: c + 4 -Registers: $t6, $t5, $t4 -d:= t1 -Handling assignment: d := t1 -Getting register for d -Assigned register $t3 to d -Getting register for t1 -Found register for t1 $t4 -i := i + 1 -Struct name: i -int -Handling operation: i := i + 1 -Getting register for i -Found register for i $t9 -Loaded integer constant (cached) 1 into $t2 -Getting register for i -Found register for i $t9 -Operation: i + 1 -Registers: $t9, $t2, $t9 -goto LABEL0 -LABEL1: -======= -| a | int | 4 | 5 | -| t0 | | 0 | N/A | ------------------------------------------------------------------ -Function main stack size: 16 -Pass 1 done -Error!!!! Variable printf,2 not found in any scope -Liveness analysis done -FUNC_BEGIN main -a:= 5 -Handling assignment: a := 5 -Getting register for a -Assigned register $t9 to a -PARAM "Hi %d" -PARAM a -Getting register for a -Found register for a $t9 -t0 := CALL printf,2 -Handling assignment: t0 := CALL printf,2 -Getting register for t0 -Assigned register $t8 to t0 -Handling function call: CALL printf,2 -----------------------2 -RETURN 0 ->>>>>>> 6ff312695b6cdb9a4e3b8b18207282560174ae9d -FUNC_END main -Pass 2 done -################ MIPS Assembly Code ################ -.data -newline: .asciiz "\n" -str0: .asciiz "Hi" -.text -.globl main -main: - move $fp, $sp -<<<<<<< HEAD - addi $sp, $sp, -28 - sw $ra, 24($sp) - sw $fp, 20($sp) - li $t9, 0 - li $t9, 1 -LABEL0: - li $t8, 10 - slt $t7, $t9, $t8 - bnez $t7, LABEL2 - j LABEL1 -LABEL2: - li $t6, 3 - li $t5, 4 - add $t4, $t6, $t5 - move $t3, $t4 - move $t2, $t9 - add $t9, $t9, $t2 - j LABEL0 -LABEL1: - lw $fp, 20($sp) - lw $ra, 24($sp) - addi $sp, $sp, 28 -======= - addi $sp, $sp, -16 - sw $ra, 12($sp) - sw $fp, 8($sp) - li $t9, 5 - la $a0, str0 - move $a1, $t9 - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t8, $v0 - li $v0, 0 - lw $fp, 8($sp) - lw $ra, 12($sp) - addi $sp, $sp, 16 ->>>>>>> 6ff312695b6cdb9a4e3b8b18207282560174ae9d - li $v0, 10 - syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 8fa0c9f..b05a918 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -101,21 +101,31 @@ scoped_symtab* getScope(scoped_symtab* scope, string& var) { } void push_into_stack(pair varPair){ + cerr<<"Pushing " << varPair.second << " into stack\n"; mipsCode.push_back(" #Pushing " + varPair.second + " to stack"); scoped_symtab* scope = varPair.first; string var = varPair.second; symbol_info* sym = scope->symbol_map[var]; string type=sym->type; string reg; + if(type.find("struct") != string::npos){ + cout<<"Pushing struct " << var << " into stack\n"; + reg=var_to_reg[{scope, var}]; + cout<offset<symbol_map[var]->offset == -1){ sym->offset = last_offset.top(); last_offset.top()+=get_size_from_type(sym->type); @@ -555,12 +565,12 @@ void generate_return_MIPS(scoped_symtab* scope,string val) { void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { // Handle integer literal if (isIntLiteral(var)) { - if (reg_of_const.count(var)) { - if(reg==reg_of_const[var]) return; - mipsCode.push_back(" move " + reg + ", " + reg_of_const[var]); - cout << "Loaded integer constant (cached) " << var << " into " << reg << endl; - return; - } + // if (reg_of_const.count(var)) { + // if(reg==reg_of_const[var]) return; + // mipsCode.push_back(" move " + reg + ", " + reg_of_const[var]); + // cout << "Loaded integer constant (cached) " << var << " into " << reg << endl; + // return; + // } mipsCode.push_back(" li " + reg + ", " + var); loadedConstants[var] = true; reg_of_const[var] = reg; @@ -763,12 +773,12 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { return; } if (isIntLiteral(rhs)||isCharLiteral(rhs)) { - if(reg_of_const.count(rhs)) { - mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); - loadedConstants[lhs] = true; - cout << "Loaded constant literal " << rhs << " into " << dst << endl; - return; - } + // if(reg_of_const.count(rhs)) { + // mipsCode.push_back(" move " + dst + ", " + reg_of_const[rhs]); + // loadedConstants[lhs] = true; + // cout << "Loaded constant literal " << rhs << " into " << dst << endl; + // return; + // } mipsCode.push_back(" li " + dst + ", " + rhs); loadedConstants[lhs] = true; reg_of_const[rhs]=dst; @@ -776,6 +786,7 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { else { if(rhs.find("alloc")!=string::npos){ int rest=stoi(rhs.substr(rhs.find("alloc")+6)); + cout<<"last_offset: " << last_offset.top() << endl; lhsInfo->offset=last_offset.top(); last_offset.top()+=rest; cerr<<"Allocating " << rest << " bytes for " << lhs << " at offset " << lhsInfo->offset << endl; @@ -1154,31 +1165,34 @@ void handle_pointer(const string& line, scoped_symtab* scope) { if(isIntLiteral(rhs)){ cout<<"lhs "<symbol_map[lhs]->type=="float"){ dst=getFloatRegister(scope, lhs); - if(reg_of_const.count(rhs)) { - mipsCode.push_back(" s.s " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); - } - else{ + // if(reg_of_const.count(rhs)) { + // mipsCode.push_back(" s.s " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); + // } + // else{ mipsCode.push_back(" #Loading constant " + rhs + " into register"); if(availableFloatRegs.empty()){ handleFloatRegisterSpill(scope,rhs); @@ -1189,14 +1203,14 @@ void handle_pointer(const string& line, scoped_symtab* scope) { reg_of_const[rhs] = reg; mipsCode.push_back(" s.s " + reg + ", " + to_string(0) + "("+dst + ")"); - } + //} } else { dst=getFloatRegister(scope, lhs,"double"); - if(reg_of_const.count(rhs)) { - mipsCode.push_back(" s.d " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); - } - else{ + // if(reg_of_const.count(rhs)) { + // mipsCode.push_back(" s.d " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); + // } + // else{ mipsCode.push_back(" #Loading constant " + rhs + " into register"); if(availableFloatRegs.empty()){ handleDoubleRegisterSpill(scope,rhs); @@ -1207,7 +1221,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { reg_of_const[rhs] = reg; mipsCode.push_back(" s.d " + reg + ", " + to_string(0) + "("+dst + ")"); - } + //} } @@ -1342,6 +1356,7 @@ void handle_struct(const string& line, scoped_symtab* scope) { int symoffset = getScope(scope,structName)->symbol_map[structName]->offset; string dst = getRegister(scope, lhs); if (var_to_reg.count({scope, structName})) { + cout << "Struct " << structName << " found in register" <> token) if (isalpha(token[0]) && token != lhs){ //here + cout << "Token rhs: " << token << endl; inst.use.insert({getScope(inst.scope,token), token}); } @@ -1501,8 +1521,10 @@ void compute_use_def(LivenessInfo& inst) { while (iss2 >> token2) if (isalpha(token2[0])){ //here + cout << "Token lhs: " << token2 << endl; if(first){ inst.def.insert({getScope(inst.scope,token2), token2}); + inst.use.insert({getScope(inst.scope,token2), token2}); first=false; } else{ diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 00fddc8..9bf469d 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -1833,8 +1833,8 @@ selection_statement temp.push_back({"goto "+label,curr_scope}); } else{ - str+="if("+$4->place.first+"=="+case_value+") goto "+label+"\n"; - temp.push_back({"if("+$4->place.first+"=="+case_value+") goto "+label,curr_scope}); + str+="if ( "+$4->place.first+" == "+case_value+" ) goto "+label+"\n"; + temp.push_back({"if ( "+$4->place.first+" == "+case_value+" ) goto "+label,curr_scope}); } } string endlabel=newlabel(); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index b44876e..88c69c7 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,16 +1,13 @@ -int main(){ -<<<<<<< HEAD - int i=0; - for(i=1;i<10;i++){ - int c=3; - int d=c+4; - - } - -======= - int a=5; - - printf("Hi %d",a); +struct A{ + int x; + int y; +}; +int main() { + + struct A a; + a.x = 5; + a.y = 10; + int m=a.x; + return 0; ->>>>>>> 6ff312695b6cdb9a4e3b8b18207282560174ae9d -} +} \ No newline at end of file From adfb9c2d6eff0ea218e3ba87c448be1ad5f2ff4d Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Mon, 28 Apr 2025 13:33:11 +0000 Subject: [PATCH 33/52] printf/scanf --- Assignment4/output/output.s | 73 +++++------- Assignment4/output/output1.txt | 199 +++++++++++++++++++++++++++++++++ Assignment4/src/codegen.cpp | 49 ++++++++ Assignment4/test/input1.c | 7 +- 4 files changed, 279 insertions(+), 49 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 5aab371..a2aeef0 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,58 +1,37 @@ .data newline: .asciiz "\n" str0: .asciiz "" +str1: .asciiz "" .text .globl main main: move $fp, $sp - addi $sp, $sp, -96 - sw $ra, 92($sp) - sw $fp, 88($sp) - li $t9, 3 - li $t8, 4 - li $t7, 5 - li $t6, 6 - li $t5, 7 - li $t4, 8 - li $t3, 9 - li $t2, 10 - li $t1, 11 - #Pushing b to stack - sw $t9, 8($sp) + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) #Pushing a to stack - addi $t9, $sp, 0 + addi $t8, $sp, 0 #Loading constant 5 into register - li $t0, 5 - sw $t0, 0($t9) - # Spilling t0 from $t9 + li $t9, 5 + sw $t9, 0($t8) #Pushing a to stack - addi $t9, $sp, 4 + addi $t7, $sp, 4 #Loading constant 10 into register - li $t0, 10 - sw $t0, 0($t9) - # Spilling a from $t0 - lw $t0, 8($sp) - # Spilling t1 from $t9 - add $t9, $t0, $t8 - # Spilling b from $t0 - add $t0, $t9, $t7 - # Spilling c from $t8 - add $t8, $t0, $t6 - # Spilling d from $t7 - add $t7, $t8, $t5 - # Spilling e from $t6 - add $t6, $t7, $t4 - # Spilling f from $t5 - add $t5, $t6, $t3 - # Spilling g from $t4 - add $t4, $t5, $t2 - # Spilling h from $t3 - add $t3, $t4, $t1 - # Spilling i from $t2 - move $t2, $t3 + li $t9, 10 + sw $t9, 0($t7) + li $t6, 4 la $a0, str0 - move $a1, $t2 - # Spilling j from $t1 + move $a1, $t6 +#scanf + li $v0, 4 +syscall + li $v0, 5 +syscall +move $t6 ,$v0 + move $t5, $v0 + la $a0, str1 + move $a1, $t6 +#printf move $a0, $a0 li $v0, 4 syscall @@ -65,10 +44,10 @@ syscall li $v0, 4 la $a0, newline syscall - move $t1, $v0 + move $t4, $v0 li $v0, 0 - lw $fp, 88($sp) - lw $ra, 92($sp) - addi $sp, $sp, 96 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index e69de29..d6e708c 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -0,0 +1,199 @@ +====================================================================== +No Errors in the code +Intermediate code generated successfully +====================================================================== +0x55b2184a18b0 FUNC_BEGIN main +0x55b2184a8f50 a:= alloc 8 +0x55b2184a8f50 t0 := a + 0 +0x55b2184a8f50 *t0 := 5 +0x55b2184a8f50 t1 := a + 4 +0x55b2184a8f50 *t1 := 10 +0x55b2184a8f50 d:= 4 +0x55b2184a8f50 PARAM "%d" +0x55b2184a8f50 PARAM &d +0x55b2184a8f50 t2 := CALL scanf,2 +0x55b2184a8f50 PARAM "%d\n" +0x55b2184a8f50 PARAM d +0x55b2184a8f50 t3 := CALL printf,2 +0x55b2184a8f50 RETURN 0 +0x55b2184a18b0 FUNC_END main +====================================================================== +Printing scope table +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| A | struct | 0 | N/A | +| main | int | 4 | N/A | +| printf | | 0 | N/A | +| scanf | | 0 | N/A | +| x | int | 4 | N/A | +| y | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | struct A | 0 | N/A | +| a.x | int | 4 | 5 | +| a.y | int | 4 | 10 | +| d | int | 4 | 4 | +| t0 | struct A | 0 | N/A | +| t1 | struct A | 0 | N/A | +| t2 | | 0 | N/A | +| t3 | | 0 | N/A | +----------------------------------------------------------------- +Function main stack size: 32 +Pass 1 done +LHS: a, RHS: alloc 8 +Token rhs: alloc +Error!!!! Variable alloc not found in any scope +Token lhs: a +LHS: t0, RHS: a + 0 +Token rhs: a +Token lhs: t0 +LHS: *t0, RHS: 5 +Token lhs: t0 +LHS: t1, RHS: a + 4 +Token rhs: a +Token lhs: t1 +LHS: *t1, RHS: 10 +Token lhs: t1 +LHS: d, RHS: 4 +Token lhs: d +LHS: t2, RHS: CALL scanf,2 +Token rhs: CALL +Token rhs: scanf,2 +Error!!!! Variable scanf,2 not found in any scope +Token lhs: t2 +LHS: t3, RHS: CALL printf,2 +Token rhs: CALL +Token rhs: printf,2 +Error!!!! Variable printf,2 not found in any scope +Token lhs: t3 +Liveness analysis done +FUNC_BEGIN main +a:= alloc 8 +Handling assignment: a := alloc 8 +Getting register for a +Assigned register $t9 to a +last_offset: 0 +Allocating 8 bytes for a at offset 0 +t0 := a + 0 +Struct name: a +struct A +t0 a + 0 a 0 +Getting register for t0 +Assigned register $t8 to t0 +Struct a found in register$t9 +Pushing a into stack +Pushing struct a into stack +0 +*t0 := 5 +Handling pointer arrays: *t0 := 5 +*t0 5 +lhs t0 +Getting register for t0 +Found register for t0 $t8 +querying available regs +available regs +9 +Loaded constant 5 into $t9 +t1 := a + 4 +Struct name: a +struct A +t1 a + 4 a 4 +Getting register for t1 +Assigned register $t7 to t1 +Struct a found in register$t9 +Pushing a into stack +Pushing struct a into stack +0 +*t1 := 10 +Handling pointer arrays: *t1 := 10 +*t1 10 +lhs t1 +Getting register for t1 +Found register for t1 $t7 +querying available regs +available regs +8 +Loaded constant 10 into $t9 +d:= 4 +Handling assignment: d := 4 +Getting register for d +Assigned register $t6 to d +PARAM "%d" +PARAM &d +Getting register for d +Found register for d $t6 +t2 := CALL scanf,2 +Handling assignment: t2 := CALL scanf,2 +Getting register for t2 +Assigned register $t5 to t2 +Handling function call: CALL scanf,2 +--------------------------$t6 PARAM "%d\n" +PARAM d +Getting register for d +Found register for d $t6 +t3 := CALL printf,2 +Handling assignment: t3 := CALL printf,2 +Getting register for t3 +Assigned register $t4 to t3 +Handling function call: CALL printf,2 +----------------------2 +RETURN 0 +FUNC_END main +Pass 2 done +################ MIPS Assembly Code ################ +.data +newline: .asciiz "\n" +str0: .asciiz "" +str1: .asciiz "" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + #Pushing a to stack + addi $t8, $sp, 0 + #Loading constant 5 into register + li $t9, 5 + sw $t9, 0($t8) + #Pushing a to stack + addi $t7, $sp, 4 + #Loading constant 10 into register + li $t9, 10 + sw $t9, 0($t7) + li $t6, 4 + la $a0, str0 + move $a1, $t6 +#scanf + li $v0, 4 +syscall + li $v0, 5 +syscall +move $t6 ,$v0 + move $t5, $v0 + la $a0, str1 + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t4, $v0 + li $v0, 0 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 + li $v0, 10 + syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index b05a918..89c4d09 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -34,6 +34,7 @@ vector paramtype; map string_to_label; map loadedConstants; map reg_of_const; +vector reg_for_scanf; int get_size_from_type(string type); void handle_function_call(const string& line); @@ -850,6 +851,7 @@ string newstring(){ } void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" + if(var[0] == '&')var = var.substr(1); string srcReg; if(isStringLiteral(var)) { @@ -885,6 +887,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { if (sym->type == "float") { paramtype.push_back("float"); srcReg = getFloatRegister(scope, var); + reg_for_scanf.push_back(srcReg); if (paramFloatCounter == 0) mipsCode.push_back(" mov.s $f12, " + srcReg); else if (paramFloatCounter == 1) @@ -900,6 +903,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { if(sym->type=="int") paramtype.push_back("int"); if(sym->type=="char") paramtype.push_back("char"); srcReg = getRegister(scope, var); + reg_for_scanf.push_back(srcReg); if (paramCounter >= argRegisters.size()) { functionparams.push_back(" addi $sp, $sp, -4 \n sw " + srcReg + ", " + to_string(0) + "($sp)"); // mipsCode.push_back(" addi $sp, $sp, -4"); @@ -937,6 +941,7 @@ void handle_function_call(const string& line) { if(funcName=="printf") { int floatCounter=0; + mipsCode.push_back("#printf"); int cnt=0; for(auto &type : paramtype){ if(type=="int" || type=="char" || type=="string") {mipsCode.push_back(" move $a0, $a"+to_string(cnt));cnt++;} @@ -953,6 +958,49 @@ void handle_function_call(const string& line) { cout<<"----------------------"< Date: Mon, 28 Apr 2025 19:41:03 +0530 Subject: [PATCH 34/52] static --- Assignment4/output/output.s | 51 ++------- Assignment4/output/output1.txt | 186 ++++----------------------------- Assignment4/src/codegen.cpp | 17 +-- Assignment4/test/input1.c | 13 +-- 4 files changed, 40 insertions(+), 227 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index a2aeef0..84ecb9c 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,53 +1,16 @@ .data newline: .asciiz "\n" -str0: .asciiz "" -str1: .asciiz "" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - #Pushing a to stack - addi $t8, $sp, 0 - #Loading constant 5 into register - li $t9, 5 - sw $t9, 0($t8) - #Pushing a to stack - addi $t7, $sp, 4 - #Loading constant 10 into register - li $t9, 10 - sw $t9, 0($t7) - li $t6, 4 - la $a0, str0 - move $a1, $t6 -#scanf - li $v0, 4 -syscall - li $v0, 5 -syscall -move $t6 ,$v0 - move $t5, $v0 - la $a0, str1 - move $a1, $t6 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t4, $v0 + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + li $t9, 3 li $v0, 0 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + lw $fp, 4($sp) + lw $ra, 8($sp) + addi $sp, $sp, 12 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index d6e708c..b35d350 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,199 +1,53 @@ +=====================LIST OF ERRORS=================================== +Line 4 : Type mismatch in assignment +Line 4 : Type mismatch in assignment ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x55b2184a18b0 FUNC_BEGIN main -0x55b2184a8f50 a:= alloc 8 -0x55b2184a8f50 t0 := a + 0 -0x55b2184a8f50 *t0 := 5 -0x55b2184a8f50 t1 := a + 4 -0x55b2184a8f50 *t1 := 10 -0x55b2184a8f50 d:= 4 -0x55b2184a8f50 PARAM "%d" -0x55b2184a8f50 PARAM &d -0x55b2184a8f50 t2 := CALL scanf,2 -0x55b2184a8f50 PARAM "%d\n" -0x55b2184a8f50 PARAM d -0x55b2184a8f50 t3 := CALL printf,2 -0x55b2184a8f50 RETURN 0 -0x55b2184a18b0 FUNC_END main +0x63ed4fe344b0 FUNC_BEGIN main +0x63ed4fe3afc0 a:= 3 +0x63ed4fe3afc0 RETURN 0 +0x63ed4fe344b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| A | struct | 0 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | -| x | int | 4 | N/A | -| y | int | 4 | N/A | ----------------------------------------------------------------- ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | struct A | 0 | N/A | -| a.x | int | 4 | 5 | -| a.y | int | 4 | 10 | -| d | int | 4 | 4 | -| t0 | struct A | 0 | N/A | -| t1 | struct A | 0 | N/A | -| t2 | | 0 | N/A | -| t3 | | 0 | N/A | +| a | static,int | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 32 +Function main stack size: 12 Pass 1 done -LHS: a, RHS: alloc 8 -Token rhs: alloc -Error!!!! Variable alloc not found in any scope +LHS: a, RHS: 3 Token lhs: a -LHS: t0, RHS: a + 0 -Token rhs: a -Token lhs: t0 -LHS: *t0, RHS: 5 -Token lhs: t0 -LHS: t1, RHS: a + 4 -Token rhs: a -Token lhs: t1 -LHS: *t1, RHS: 10 -Token lhs: t1 -LHS: d, RHS: 4 -Token lhs: d -LHS: t2, RHS: CALL scanf,2 -Token rhs: CALL -Token rhs: scanf,2 -Error!!!! Variable scanf,2 not found in any scope -Token lhs: t2 -LHS: t3, RHS: CALL printf,2 -Token rhs: CALL -Token rhs: printf,2 -Error!!!! Variable printf,2 not found in any scope -Token lhs: t3 Liveness analysis done +Inside pass2 FUNC_BEGIN main -a:= alloc 8 -Handling assignment: a := alloc 8 +a:= 3 +Handling assignment: a := 3 Getting register for a Assigned register $t9 to a -last_offset: 0 -Allocating 8 bytes for a at offset 0 -t0 := a + 0 -Struct name: a -struct A -t0 a + 0 a 0 -Getting register for t0 -Assigned register $t8 to t0 -Struct a found in register$t9 -Pushing a into stack -Pushing struct a into stack -0 -*t0 := 5 -Handling pointer arrays: *t0 := 5 -*t0 5 -lhs t0 -Getting register for t0 -Found register for t0 $t8 -querying available regs -available regs -9 -Loaded constant 5 into $t9 -t1 := a + 4 -Struct name: a -struct A -t1 a + 4 a 4 -Getting register for t1 -Assigned register $t7 to t1 -Struct a found in register$t9 -Pushing a into stack -Pushing struct a into stack -0 -*t1 := 10 -Handling pointer arrays: *t1 := 10 -*t1 10 -lhs t1 -Getting register for t1 -Found register for t1 $t7 -querying available regs -available regs -8 -Loaded constant 10 into $t9 -d:= 4 -Handling assignment: d := 4 -Getting register for d -Assigned register $t6 to d -PARAM "%d" -PARAM &d -Getting register for d -Found register for d $t6 -t2 := CALL scanf,2 -Handling assignment: t2 := CALL scanf,2 -Getting register for t2 -Assigned register $t5 to t2 -Handling function call: CALL scanf,2 ---------------------------$t6 PARAM "%d\n" -PARAM d -Getting register for d -Found register for d $t6 -t3 := CALL printf,2 -Handling assignment: t3 := CALL printf,2 -Getting register for t3 -Assigned register $t4 to t3 -Handling function call: CALL printf,2 -----------------------2 RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" -str0: .asciiz "" -str1: .asciiz "" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - #Pushing a to stack - addi $t8, $sp, 0 - #Loading constant 5 into register - li $t9, 5 - sw $t9, 0($t8) - #Pushing a to stack - addi $t7, $sp, 4 - #Loading constant 10 into register - li $t9, 10 - sw $t9, 0($t7) - li $t6, 4 - la $a0, str0 - move $a1, $t6 -#scanf - li $v0, 4 -syscall - li $v0, 5 -syscall -move $t6 ,$v0 - move $t5, $v0 - la $a0, str1 - move $a1, $t6 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t4, $v0 + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + li $t9, 3 li $v0, 0 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + lw $fp, 4($sp) + lw $ra, 8($sp) + addi $sp, $sp, 12 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 89c4d09..1890304 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1453,6 +1453,7 @@ void pass1(vector>& codeList) { } void pass2(vector>& codeList){ + cout<<"Inside pass2"<& program) { compute_successors(program); for (auto& inst : program) compute_use_def(inst); - + bool changed; do { - changed = false; - for (int i = program.size() - 1; i >= 0; --i) { + changed = false; + + for (int i = (int)program.size() - 1; i >= 0; --i) { auto old_in = program[i].live_in; auto old_out = program[i].live_out; - program[i].live_out.clear(); - for (int s : program[i].successors) - program[i].live_out.insert(program[s].live_in.begin(), program[s].live_in.end()); + for (int s : program[i].successors){ + if(program[s].live_in.empty()) + program[i].live_out.insert(program[s].live_in.begin(), program[s].live_in.end()); + } program[i].live_in = program[i].use; for (auto& v : program[i].live_out) @@ -1646,6 +1650,7 @@ void run_liveness(vector& program) { changed = true; } } while (changed); + } void printMipsCode(vector& mipsCode, const string& filename) { diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index ad2a2e3..62b0d6b 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,16 +1,7 @@ -struct A{ - int x; - int y; -}; int main() { - struct A a; - a.x = 5; - a.y = 10; - // int m=a.x; - int d = 4; - scanf("%d", &d); - printf("%d\n", d); + static int a; + a=3; return 0; } \ No newline at end of file From ec2c3b0cfd4c9eaa8b28c05b3abdae863254a9ee Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Mon, 28 Apr 2025 14:52:46 +0000 Subject: [PATCH 35/52] union --- Assignment4/output/output.s | 41 ++---------- Assignment4/output/output1.txt | 113 ++++++--------------------------- Assignment4/src/codegen.cpp | 7 +- Assignment4/test/input1.c | 8 +-- 4 files changed, 29 insertions(+), 140 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index a2aeef0..e1ff3bb 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,14 +1,12 @@ .data newline: .asciiz "\n" -str0: .asciiz "" -str1: .asciiz "" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) #Pushing a to stack addi $t8, $sp, 0 #Loading constant 5 into register @@ -19,35 +17,8 @@ main: #Loading constant 10 into register li $t9, 10 sw $t9, 0($t7) - li $t6, 4 - la $a0, str0 - move $a1, $t6 -#scanf - li $v0, 4 -syscall - li $v0, 5 -syscall -move $t6 ,$v0 - move $t5, $v0 - la $a0, str1 - move $a1, $t6 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t4, $v0 - li $v0, 0 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index d6e708c..dd948de 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,22 +1,13 @@ +=====================LIST OF ERRORS=================================== +Line 10 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x55b2184a18b0 FUNC_BEGIN main -0x55b2184a8f50 a:= alloc 8 -0x55b2184a8f50 t0 := a + 0 -0x55b2184a8f50 *t0 := 5 -0x55b2184a8f50 t1 := a + 4 -0x55b2184a8f50 *t1 := 10 -0x55b2184a8f50 d:= 4 -0x55b2184a8f50 PARAM "%d" -0x55b2184a8f50 PARAM &d -0x55b2184a8f50 t2 := CALL scanf,2 -0x55b2184a8f50 PARAM "%d\n" -0x55b2184a8f50 PARAM d -0x55b2184a8f50 t3 := CALL printf,2 -0x55b2184a8f50 RETURN 0 -0x55b2184a18b0 FUNC_END main +0x55afb6d6c8b0 FUNC_BEGIN main +0x55afb6d73f50 a:= alloc 8 +0x55afb6d73f50 t0 := a + 0 +0x55afb6d73f50 *t0 := 5 +0x55afb6d73f50 t1 := a + 4 +0x55afb6d73f50 *t1 := 10 +0x55afb6d6c8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -35,13 +26,10 @@ Printing scope table | a | struct A | 0 | N/A | | a.x | int | 4 | 5 | | a.y | int | 4 | 10 | -| d | int | 4 | 4 | | t0 | struct A | 0 | N/A | | t1 | struct A | 0 | N/A | -| t2 | | 0 | N/A | -| t3 | | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 32 +Function main stack size: 20 Pass 1 done LHS: a, RHS: alloc 8 Token rhs: alloc @@ -57,18 +45,6 @@ Token rhs: a Token lhs: t1 LHS: *t1, RHS: 10 Token lhs: t1 -LHS: d, RHS: 4 -Token lhs: d -LHS: t2, RHS: CALL scanf,2 -Token rhs: CALL -Token rhs: scanf,2 -Error!!!! Variable scanf,2 not found in any scope -Token lhs: t2 -LHS: t3, RHS: CALL printf,2 -Token rhs: CALL -Token rhs: printf,2 -Error!!!! Variable printf,2 not found in any scope -Token lhs: t3 Liveness analysis done FUNC_BEGIN main a:= alloc 8 @@ -85,7 +61,7 @@ Getting register for t0 Assigned register $t8 to t0 Struct a found in register$t9 Pushing a into stack -Pushing struct a into stack +Pushing struct/union a into stack 0 *t0 := 5 Handling pointer arrays: *t0 := 5 @@ -105,7 +81,7 @@ Getting register for t1 Assigned register $t7 to t1 Struct a found in register$t9 Pushing a into stack -Pushing struct a into stack +Pushing struct/union a into stack 0 *t1 := 10 Handling pointer arrays: *t1 := 10 @@ -117,44 +93,18 @@ querying available regs available regs 8 Loaded constant 10 into $t9 -d:= 4 -Handling assignment: d := 4 -Getting register for d -Assigned register $t6 to d -PARAM "%d" -PARAM &d -Getting register for d -Found register for d $t6 -t2 := CALL scanf,2 -Handling assignment: t2 := CALL scanf,2 -Getting register for t2 -Assigned register $t5 to t2 -Handling function call: CALL scanf,2 ---------------------------$t6 PARAM "%d\n" -PARAM d -Getting register for d -Found register for d $t6 -t3 := CALL printf,2 -Handling assignment: t3 := CALL printf,2 -Getting register for t3 -Assigned register $t4 to t3 -Handling function call: CALL printf,2 -----------------------2 -RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" -str0: .asciiz "" -str1: .asciiz "" .text .globl main main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) #Pushing a to stack addi $t8, $sp, 0 #Loading constant 5 into register @@ -165,35 +115,8 @@ main: #Loading constant 10 into register li $t9, 10 sw $t9, 0($t7) - li $t6, 4 - la $a0, str0 - move $a1, $t6 -#scanf - li $v0, 4 -syscall - li $v0, 5 -syscall -move $t6 ,$v0 - move $t5, $v0 - la $a0, str1 - move $a1, $t6 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t4, $v0 - li $v0, 0 - lw $fp, 24($sp) - lw $ra, 28($sp) - addi $sp, $sp, 32 + lw $fp, 12($sp) + lw $ra, 16($sp) + addi $sp, $sp, 20 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 89c4d09..0d982af 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -109,8 +109,8 @@ void push_into_stack(pair varPair){ symbol_info* sym = scope->symbol_map[var]; string type=sym->type; string reg; - if(type.find("struct") != string::npos){ - cout<<"Pushing struct " << var << " into stack\n"; + if(type.find("struct") != string::npos || type.find("union") != string::npos){ + cout<<"Pushing struct/union " << var << " into stack\n"; reg=var_to_reg[{scope, var}]; cout<offset<symbol_map[structName]; cout << sym->type << endl; - if(sym->type.substr(0,6) == "struct"){ + if(sym->type.substr(0,6) == "struct" || sym->type.substr(0,5) == "union") { return true; } return false; diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index ad2a2e3..dd484ae 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,4 +1,4 @@ -struct A{ +struct A { int x; int y; }; @@ -7,10 +7,4 @@ int main() { struct A a; a.x = 5; a.y = 10; - // int m=a.x; - int d = 4; - scanf("%d", &d); - printf("%d\n", d); - - return 0; } \ No newline at end of file From 6ccfb75a64099ecc5ff5952a333e07b31e7da547 Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Mon, 28 Apr 2025 15:20:30 +0000 Subject: [PATCH 36/52] until loop --- Assignment4/output/output.s | 31 +++---- Assignment4/output/output1.txt | 154 +++++++++++++++------------------ Assignment4/src/parser.y | 21 ++++- Assignment4/src/scanner.l | 2 + Assignment4/test/input1.c | 13 ++- 5 files changed, 113 insertions(+), 108 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index e1ff3bb..b2dfe47 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -4,21 +4,22 @@ newline: .asciiz "\n" .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - #Pushing a to stack - addi $t8, $sp, 0 - #Loading constant 5 into register + addi $sp, $sp, -16 + sw $ra, 12($sp) + sw $fp, 8($sp) li $t9, 5 - sw $t9, 0($t8) - #Pushing a to stack - addi $t7, $sp, 4 - #Loading constant 10 into register - li $t9, 10 - sw $t9, 0($t7) - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 +LABEL0: + li $t8, 0 + slt $t7, $t8, $t9 + bnez $t7, LABEL1 + j LABEL2 +LABEL2: + li $t6, 1 + sub $t9, $t9, $t6 + j LABEL0 +LABEL1: + lw $fp, 8($sp) + lw $ra, 12($sp) + addi $sp, $sp, 16 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 22d4835..339affc 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,13 +1,17 @@ =====================LIST OF ERRORS=================================== -Line 10 : Missing return statement +Line 7 : Missing return statement ====================================================================== -0x55afb6d6c8b0 FUNC_BEGIN main -0x55afb6d73f50 a:= alloc 8 -0x55afb6d73f50 t0 := a + 0 -0x55afb6d73f50 *t0 := 5 -0x55afb6d73f50 t1 := a + 4 -0x55afb6d73f50 *t1 := 10 -0x55afb6d6c8b0 FUNC_END main +0x5593cff3d8b0 FUNC_BEGIN main +0x5593cff443c0 i:= 5 +0x5593cff443c0 LABEL0: +0x5593cff443c0 t0 := i > 0 +0x5593cff443c0 if(t0) goto LABEL1 +0x5593cff443c0 goto LABEL2 +0x5593cff443c0 LABEL2: +0x5593cff454c0 i := i - 1 +0x5593cff443c0 goto LABEL0 +0x5593cff443c0 LABEL1: +0x5593cff3d8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -20,75 +24,56 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | struct A | 0 | N/A | -| a.x | int | 4 | 5 | -| a.y | int | 4 | 10 | -| t0 | struct A | 0 | N/A | -| t1 | struct A | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 20 +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| i | int | 4 | 5 | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- +Function main stack size: 16 Pass 1 done -LHS: a, RHS: 3 -Token lhs: a -LHS: t0, RHS: a + 0 -Token rhs: a -Token lhs: t0 -LHS: *t0, RHS: 5 +LHS: i, RHS: 5 +Token lhs: i +LHS: t0, RHS: i > 0 +Token rhs: i Token lhs: t0 -LHS: t1, RHS: a + 4 -Token rhs: a -Token lhs: t1 -LHS: *t1, RHS: 10 -Token lhs: t1 +LHS: i, RHS: i - 1 +Token lhs: i Liveness analysis done Inside pass2 FUNC_BEGIN main -a:= 3 -Handling assignment: a := 3 -Getting register for a -Assigned register $t9 to a -last_offset: 0 -Allocating 8 bytes for a at offset 0 -t0 := a + 0 -Struct name: a -struct A -t0 a + 0 a 0 +i:= 5 +Handling assignment: i := 5 +Getting register for i +Assigned register $t9 to i +LABEL0: +t0 := i > 0 +Handling operation: t0 := i > 0 +Getting register for i +Found register for i $t9 +Loaded integer constant 0 into $t8 Getting register for t0 -Assigned register $t8 to t0 -Struct a found in register$t9 -Pushing a into stack -Pushing struct/union a into stack -0 -*t0 := 5 -Handling pointer arrays: *t0 := 5 -*t0 5 -lhs t0 +Assigned register $t7 to t0 +Operation: i > 0 +Registers: $t9, $t8, $t7 +if(t0) goto LABEL1 +Condition: t0, Label: LABEL1 Getting register for t0 -Found register for t0 $t8 -querying available regs -available regs -9 -Loaded constant 5 into $t9 -t1 := a + 4 -Struct name: a -struct A -t1 a + 4 a 4 -Getting register for t1 -Assigned register $t7 to t1 -Struct a found in register$t9 -Pushing a into stack -Pushing struct/union a into stack -0 -*t1 := 10 -Handling pointer arrays: *t1 := 10 -*t1 10 -lhs t1 -Getting register for t1 -Found register for t1 $t7 -querying available regs -available regs -8 -Loaded constant 10 into $t9 +Found register for t0 $t7 +goto LABEL2 +LABEL2: +i := i - 1 +Handling operation: i := i - 1 +Getting register for i +Found register for i $t9 +Loaded integer constant 1 into $t6 +Getting register for i +Found register for i $t9 +Operation: i - 1 +Registers: $t9, $t6, $t9 +goto LABEL0 +LABEL1: FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ @@ -98,21 +83,22 @@ newline: .asciiz "\n" .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - #Pushing a to stack - addi $t8, $sp, 0 - #Loading constant 5 into register + addi $sp, $sp, -16 + sw $ra, 12($sp) + sw $fp, 8($sp) li $t9, 5 - sw $t9, 0($t8) - #Pushing a to stack - addi $t7, $sp, 4 - #Loading constant 10 into register - li $t9, 10 - sw $t9, 0($t7) - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 +LABEL0: + li $t8, 0 + slt $t7, $t8, $t9 + bnez $t7, LABEL1 + j LABEL2 +LABEL2: + li $t6, 1 + sub $t9, $t9, $t6 + j LABEL0 +LABEL1: + lw $fp, 8($sp) + lw $ra, 12($sp) + addi $sp, $sp, 16 li $v0, 10 syscall diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 9bf469d..057156a 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -42,7 +42,7 @@ %token DECIMAL_LITERAL HEXA_LITERAL OCTAL_LITERAL EXP_LITERAL REAL_LITERAL FLOAT_LITERAL STRING_LITERAL CHARACTER_LITERAL %token ID INVALID_ID INCLUDE -%token AUTO STRUCT BOOL BREAK CASE CONTINUE GOTO DO DEFAULT IF ELSE FOR CONST TRUE FALSE STATIC SWITCH WHILE VOID RETURN SIZEOF FLOAT INT DOUBLE EXTERN SHORT LONG CHAR ENUM REGISTER SIGNED TYPEDEF UNION UNSIGNED VOLATILE +%token AUTO STRUCT BOOL BREAK CASE CONTINUE GOTO DO DEFAULT IF ELSE FOR CONST TRUE FALSE STATIC SWITCH WHILE UNTIL VOID RETURN SIZEOF FLOAT INT DOUBLE EXTERN SHORT LONG CHAR ENUM REGISTER SIGNED TYPEDEF UNION UNSIGNED VOLATILE %token CLASS PUBLIC PRIVATE PROTECTED NULLPTR NAMESPACE VIRTUAL CATCH %token RBRACE LBRACE LBRACKET RBRACKET LPARENTHESES RPARENTHESES DOT COMMA COLON SEMICOLON PLUS MINUS STAR DIVIDE MODULO AMPERSAND OR XOR EXCLAMATION TILDE EQUALS LESS_THAN GREATER_THAN QUESTION_MARK INCREMENT DECREMENT REL_AND REL_OR REL_EQUALS REL_NOT_EQ LESS_EQUALS GREATER_EQUALS ASSIGN_PLUS ASSIGN_MINUS ASSIGN_STAR ASSIGN_DIV ASSIGN_MOD ASSIGN_AND ASSIGN_OR ASSIGN_XOR LEFT_SHIFT LEFT_SHIFT_EQ RIGHT_SHIFT RIGHT_SHIFT_EQ LAMBDA_ARROW VARIABLE_ARGS @@ -1871,6 +1871,25 @@ iteration_statement $$->code=replace_break_continue($$->code,endlabel,startlabel,1); $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } + | UNTIL LPARENTHESES expression RPARENTHESES statement + { + string startlabel=newlabel(); + string endlabel=newlabel(); + string truelabel=newlabel(); + symbol_info* new_symbol=new symbol_info(); + $$=new_symbol; + $$->code=$3->code+"\n"+startlabel+":\n"+"if("+$3->place.first+") goto "+endlabel+"\n"+"goto "+truelabel+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->final_code.push_back({startlabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); + $$->final_code.push_back({"if("+$3->place.first+") goto "+endlabel,curr_scope}); + $$->final_code.push_back({"goto "+truelabel,curr_scope}); + $$->final_code.push_back({truelabel+":",curr_scope}); + $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); + $$->final_code.push_back({"goto "+startlabel,curr_scope}); + $$->final_code.push_back({endlabel+":",curr_scope}); + $$->code=replace_break_continue($$->code,endlabel,startlabel,1); + $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); + } | DO statement WHILE LPARENTHESES expression RPARENTHESES SEMICOLON { string startlabel=newlabel(); diff --git a/Assignment4/src/scanner.l b/Assignment4/src/scanner.l index a898ff4..ab36018 100644 --- a/Assignment4/src/scanner.l +++ b/Assignment4/src/scanner.l @@ -57,6 +57,7 @@ FALSE "false" STATIC "static" SWITCH "switch" WHILE "while" +UNTIL "until" VOID "void" RETURN "return" SIZEOF "sizeof" @@ -176,6 +177,7 @@ INVALID_ID (({DIGIT})+({LETTER}|_)*|{DIGIT}+{LETTER}+(\.{DIGIT}*)?) {STATIC} { yylval.str = strdup(yytext); return STATIC; } {SWITCH} { yylval.str = strdup(yytext); return SWITCH; } {WHILE} { yylval.str = strdup(yytext); return WHILE; } +{UNTIL} { yylval.str = strdup(yytext); return UNTIL; } {VOID} { yylval.str = strdup(yytext); return VOID; } {RETURN} { yylval.str = strdup(yytext); return RETURN; } {SIZEOF} { yylval.str = strdup(yytext); return SIZEOF; } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index dd484ae..b5b0a64 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,10 +1,7 @@ -struct A { - int x; - int y; -}; int main() { - - struct A a; - a.x = 5; - a.y = 10; + int i = 5; + until(i > 0) + { + i--; + } } \ No newline at end of file From 62abcc7ccd5c22f023dd0ef33ea06e7345be8dea Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Mon, 28 Apr 2025 22:46:51 +0530 Subject: [PATCH 37/52] static var --- Assignment4/output/output.s | 29 ++++-- Assignment4/output/output1.txt | 109 +++++++++++++++++---- Assignment4/src/codegen.cpp | 167 +++++++++++++++++++++++++++++---- Assignment4/src/parser.y | 48 ++++++++-- Assignment4/src/test | Bin 18016 -> 16512 bytes Assignment4/src/test.cpp | 68 ++------------ Assignment4/test/input1.c | 6 +- 7 files changed, 312 insertions(+), 115 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 84ecb9c..8136cdd 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,16 +1,31 @@ .data newline: .asciiz "\n" +static_a: .float 5.300000 +.data +float_const_4.000000: .float 4.000000 +.text .text .globl main main: move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) - li $t9, 3 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + la $t9, static_a + l.s $f31, 0($t9) + la $t8, float_const_4.000000 + l.s $f30, 0($t8) + add.s $f29, $f31, $f30 + mov.s $f28, $f29 +mtc1 $f28, $f28 +cvt.s.w $f28, $f28 +mtc1 $f31, $f31 +cvt.s.w $f31, $f31 + add.s $f27, $f31, + mov.s $f26, $f27 li $v0, 0 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index b35d350..2767633 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,11 +1,28 @@ -=====================LIST OF ERRORS=================================== -Line 4 : Type mismatch in assignment -Line 4 : Type mismatch in assignment + +a +static variable code: a:= 5.300000 + +4.000000 +t0 + +c + + +t1 + +b ====================================================================== -0x63ed4fe344b0 FUNC_BEGIN main -0x63ed4fe3afc0 a:= 3 -0x63ed4fe3afc0 RETURN 0 -0x63ed4fe344b0 FUNC_END main +No Errors in the code +Intermediate code generated successfully +====================================================================== +0x61b9de7e1fc0 a:= 5.300000 +0x61b9de7db4b0 FUNC_BEGIN main +0x61b9de7e1fc0 t0 := a + 4.000000 +0x61b9de7e1fc0 c:= t0 +0x61b9de7e1fc0 t1 := c + a +0x61b9de7e1fc0 b:= t1 +0x61b9de7e1fc0 RETURN 0 +0x61b9de7db4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -18,36 +35,88 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | static,int | 0 | N/A | +| a | float | 4 | 5.300000 | +| b | float | 4 | N/A | +| c | float | 4 | N/A | +| t0 | float | 4 | N/A | +| t1 | float | 4 | N/A | ----------------------------------------------------------------- -Function main stack size: 12 +Function main stack size: 28 Pass 1 done -LHS: a, RHS: 3 -Token lhs: a +LHS: t0, RHS: a + 4.000000 +Token rhs: a +Token lhs: t0 +LHS: c, RHS: t0 +Token rhs: t0 +Token lhs: c +LHS: t1, RHS: c + a +Token rhs: c +Token rhs: a +Token lhs: t1 +LHS: b, RHS: t1 +Token rhs: t1 +Token lhs: b Liveness analysis done Inside pass2 FUNC_BEGIN main -a:= 3 -Handling assignment: a := 3 +t0 := a + 4.000000 +Struct name: a +float +Handling operation: t0 := a + 4.000000 +Static variable a found Getting register for a Assigned register $t9 to a +Assigning float register $f31 to a +$f30 +Loaded float constant 4.000000 into $f30 +Assigning float register $f29 to t0 +$f28 +c:= t0 +Handling assignment: c := t0 +Assigning float register $f28 to c +$f28 +t1 := c + a +Struct name: c +float +Handling operation: t1 := c + a +Assigning float register $f27 to t1 +$f26 +b:= t1 +Handling assignment: b := t1 +Assigning float register $f26 to b +$f26 RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" +static_a: .float 5.300000 +.data +float_const_4.000000: .float 4.000000 +.text .text .globl main main: move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) - li $t9, 3 + addi $sp, $sp, -28 + sw $ra, 24($sp) + sw $fp, 20($sp) + la $t9, static_a + l.s $f31, 0($t9) + la $t8, float_const_4.000000 + l.s $f30, 0($t8) + add.s $f29, $f31, $f30 + mov.s $f28, $f29 +mtc1 $f28, $f28 +cvt.s.w $f28, $f28 +mtc1 $f31, $f31 +cvt.s.w $f31, $f31 + add.s $f27, $f31, + mov.s $f26, $f27 li $v0, 0 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 + lw $fp, 20($sp) + lw $ra, 24($sp) + addi $sp, $sp, 28 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 1890304..fc596ff 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -16,6 +16,8 @@ int paramFloatReceiveCounter = 0; int string_counter = 0; map,string> var_to_reg; map> reg_to_var; +std::vector> static_var; +map scope_id; map funcStackSize; map size_of_extra_parameters; stack last_offset; @@ -637,42 +639,86 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& string op2 = trim(rhs.substr(operator_pos + opp.size())); if (isFloat){ string r1,r2,rd; - + string rx,ry; if(isFloatLiteral(op1)){ if(availableFloatRegs.empty()) handleRegisterSpill(scope,op1); r1=availableFloatRegs.back(); + rx=r1; availableFloatRegs.pop_back(); load_if_constant(scope, op1, r1); } else{ + int fl=0; - r1 = getFloatRegister(scope,op1); - if(var_to_reg.count({scope,op1})){ - string tempr = var_to_reg[{scope,op1}]; - mipsCode.push_back("mtc1 " + tempr + ", " + r1); - mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); + for(auto x:static_var){ + if(x.first==scope && x.second==op1){ + cout<<"Static variable " << op1 << " found\n"; + r1 = getRegister(scope,op1); + mipsCode.push_back(" la " + r1 + ", " + "static_" + op1); + string rr=getFloatRegister(scope,op1); + mipsCode.push_back(" l.s "+rr+", 0("+r1+")"); + floatVarToReg[{scope,op1}] = rr; + reg_to_var[rr] = {scope,op1}; + fl=1; + rx=rr; + break; + + } + } + if(fl==0){ + r1 = getFloatRegister(scope,op1); + rx=r1; + if(floatVarToReg.count({scope,op1})){ + string tempr = floatVarToReg[{scope,op1}]; + mipsCode.push_back("mtc1 " + tempr + ", " + r1); + mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); + } } + + } if(isFloatLiteral(op2)){ if(availableFloatRegs.empty()) handleRegisterSpill(scope,op1); r2=availableFloatRegs.back(); + ry=r2; availableFloatRegs.pop_back(); load_if_constant(scope, op2, r2); } else{ - r2 = getFloatRegister(scope,op2); - if(var_to_reg.count({scope,op2})){ - string tempr = var_to_reg[{scope,op2}]; - mipsCode.push_back("mtc1 " + tempr + ", " + r2); - mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); + int fl=0; + + for(auto x:static_var){ + if(x.first==scope && x.second==op1){ + cout<<"Static variable " << op2 << " found\n"; + r2 = getRegister(scope,op1); + mipsCode.push_back(" la " + r2 + ", " + "static_" + op2); + string rr=getFloatRegister(scope,op2); + mipsCode.push_back(" l.s "+rr+", 0("+r2+")"); + floatVarToReg[{scope,op1}] = rr; + reg_to_var[rr] = {scope,op1}; + fl=1; + ry=rr; + break; + + } } + if(fl==0){ + r2 = getFloatRegister(scope,op2); + rx=r2; + if(floatVarToReg.count({scope,op2})){ + string tempr = floatVarToReg[{scope,op2}]; + mipsCode.push_back("mtc1 " + tempr + ", " + r2); + mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); + } + } + } rd = getFloatRegister(scope,lhs); - if (opp == "+") mipsCode.push_back(" add.s " + rd + ", " + r1 + ", " + r2); - else if (opp == "-") mipsCode.push_back(" sub.s " + rd + ", " + r1 + ", " + r2); - else if (opp == "*") mipsCode.push_back(" mul.s " + rd + ", " + r1 + ", " + r2); - else if (opp == "/") mipsCode.push_back(" div.s " + rd + ", " + r1 + ", " + r2); + if (opp == "+") mipsCode.push_back(" add.s " + rd + ", " + rx + ", " + ry ); + else if (opp == "-") mipsCode.push_back(" sub.s " + rd + ", " + rx + ", " + ry ); + else if (opp == "*") mipsCode.push_back(" mul.s " + rd + ", " + rx + ", " + ry ); + else if (opp == "/") mipsCode.push_back(" div.s " + rd + ", " + rx + ", " + ry ); return; } string r1,r2,rd; @@ -685,7 +731,25 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& load_if_constant(scope, op1, r1); } else{ - r1 = getRegister(scope,op1); + //check if op1 is static + int fl=0; + + for(auto x:static_var){ + if(x.first==scope && x.second==op1){ + cout<<"Static variable " << op1 << " found\n"; + r1 = getRegister(scope,op1); + mipsCode.push_back(" lw " + r1 + ", " + "static_" + op1); + var_to_reg[{scope,op1}] = r1; + reg_to_var[r1] = {scope,op1}; + fl=1; + break; + + } + } + if(fl==0){ + r1 = getRegister(scope,op1); + } + } if(isIntLiteral(op2)){ if(availableRegs.empty()) handleRegisterSpill(scope,op1); @@ -694,7 +758,23 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& load_if_constant(scope, op2, r2); } else{ - r2 = getRegister(scope,op2); + int fl=0; + + for(auto x:static_var){ + if(x.first==scope && x.second==op1){ + cout<<"Static variable " << op2 << " found\n"; + r2 = getRegister(scope,op2); + mipsCode.push_back(" lw " + r2 + ", " + "static_" + op2); + var_to_reg[{scope,op2}] = r2; + reg_to_var[r2] = {scope,op2}; + fl=1; + break; + + } + } + if(fl==0){ + r2 = getRegister(scope,op2); + } } rd = getRegister(scope,lhs); // string r1 = getRegister(scope,op1); @@ -1386,6 +1466,9 @@ bool check_struct(const string& line, scoped_symtab* scope) { if(ppos == string::npos) return false; string structName = trim(rhs.substr(0, ppos)); cout << "Struct name: " << structName << endl; + if(isIntLiteral(structName) || isFloatLiteral(structName) || isStringLiteral(structName)){ + return false; + } symbol_info* sym = getScope(scope, structName)->symbol_map[structName]; cout << sym->type << endl; if(sym->type.substr(0,6) == "struct"){ @@ -1670,12 +1753,60 @@ void printMipsCode(vector& mipsCode, const string& filename) { outFile.close(); // Always good practice to close explicitly } +vector> handle_static_code(vector>& codeList) { + // int count=0; + // for(auto x:codeList){ + // if(scope_id.find(x.second) == scope_id.end()){ + // scope_id[x.second] = count; + // count++; + // } + // } + //find lines from start till any FUNC_BEGIN + vector> staticCode; + for (int i = 0; i < codeList.size(); ++i) { + string t = trim(codeList[i].first); + if (t.empty()) { + cout << "empty codelist error at line: "<< i+1 << endl; + } else if (t.rfind("FUNC_BEGIN", 0) == 0) { + break; + } else { + staticCode.push_back(codeList[i]); + } + } + //remove static code from original list + codeList.erase(codeList.begin(), codeList.begin() + staticCode.size()); + + //iterate over static code and find all the variables and put in data section with name static_ + for (auto& code : staticCode) { + string line = code.first; + size_t assignPos = line.find(":="); + if (assignPos != string::npos) { + string lhs = trim(line.substr(0, assignPos)); + string rhs = trim(line.substr(assignPos + 2)); + static_var.push_back({code.second,lhs}); + if (isIntLiteral(rhs)) { + data_section.push_back("static_"+ lhs + ": .word " + rhs); + } else if (isFloatLiteral(rhs)) { + data_section.push_back("static_" + lhs + ": .float " + rhs); + } else if (isStringLiteral(rhs)) { + data_section.push_back("static_" + lhs + ": .asciiz \"" + rhs.substr(1, rhs.size() - 2) + "\""); + } + } + } + + return codeList; + + +} + void codegen_main() { mipsCode.push_back(".text"); mipsCode.push_back(".globl main"); data_section.push_back(".data"); data_section.push_back("newline: .asciiz \"\\n\""); - std::vector> codeList=cleaned_TAC; + std::vector> codeList=handle_static_code(cleaned_TAC); + + pass1(codeList); cerr<<"Pass 1 done"<> cleaned_TAC; + vector> static_variables; + vector> static_variables_code; std::stack parsing_stack; std::stack pointer_info; @@ -1032,9 +1034,18 @@ declaration } if (type_priority[$1] < type_priority[curr_scope->symbol_map[top_symbol]->type]) { - - error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in declaration"); - flag = 1; + string left=$1; + if(curr_scope->symbol_map[top_symbol]->type=="int" && left=="static,int"){ + static_variables.push_back({curr_scope,top_symbol}); + } + else if (curr_scope->symbol_map[top_symbol]->type=="float" && left=="static,float"){ + static_variables.push_back({curr_scope,top_symbol}); + } + else{ + error_list.push_back("Line "+to_string(yylineno)+" : Type mismatch in declaration"); + flag = 1; + } + } curr_scope->symbol_map[top_symbol]->name = top_symbol; @@ -1046,7 +1057,19 @@ declaration code=$2->code; } else { + cout<<"heeeeeee"<<$1<symbol_map[top_symbol]->type = $1; + if(curr_scope->symbol_map[top_symbol]->type.substr(0,6)=="static"){ + static_variables.push_back({curr_scope,top_symbol}); + if(curr_scope->symbol_map[top_symbol]->type=="static,int"){ + static_variables_code.push_back({top_symbol+":= 0",curr_scope}); + } + else if(curr_scope->symbol_map[top_symbol]->type=="static,float"){ + static_variables_code.push_back({top_symbol+":= 0.0",curr_scope}); + } + + + } for(int i=0;isymbol_map[top_symbol]->type+="*"; } @@ -1096,7 +1119,18 @@ declaration temp+=$$->code[index]; index++; } - $$->final_code.push_back({temp,curr_scope}); + int fla=0; + for(auto x:static_variables){ + cout<final_code.push_back({temp,curr_scope}); temp=""; index++; } @@ -1217,7 +1251,7 @@ init_declarator if($3->place.first[0]!='t' && $3->place.first[0]!='&' && $3->place.first[0]!='*' && $3->place.first[0]!='-' && $3->place.first[0]!='!'){ $3->code=""; } - + $$->code=$3->code+"\n"+$1->place.first+":= "+$3->place.first; int index=0; string temp=""; @@ -2005,7 +2039,9 @@ start_symbol: translation_unit print_errors(); // cleanTAC($1->code); // cerr<final_code); + vector> temp=$1->final_code; + static_variables_code.insert(static_variables_code.end(), temp.begin(), temp.end()); + cleaned_TAC=clean_vector_TAC(static_variables_code); // print_vector($1->final_code); print_vector(cleaned_TAC); } diff --git a/Assignment4/src/test b/Assignment4/src/test index 285d6ae1c06fcfa8ddb0356de173a21a7501cb3d..01d8ea11db310d33efcaa695dd6499746ec48015 100755 GIT binary patch delta 2489 zcmZ`*eQZ-z6umz#NV4J=Srk~HBqbr~ z8kBU|mb9EiA%O&AAY#-=hVdVa9hw0OK@vkIiCRrawge*s5*;AVbKkqS$c#6+?|07c ze7yV4z2~;25jvQq`C4buLA0UhK#FaJ4g|n8zwV-Xgq-)zHaMECOCDm1dgr{J1 z1oE@zyix;vC@G8nFKv#e&4Jahv-+pS zk8f$)61z9ie?)%b)elB;seNZ*#IUSp9wrtmB&49p^WcJ^3raB~+%Z(sKVin;hJ>*e z+Hf8+rcGBdrV&m_F6knH<)(}9OQZ&3740xu5rA(hWV3-7i9`(WYsJEh5wo*O_;IG1 z4q^ojq@KMI2SqOzw=?~8;a#khku-5`kGJ1S&_|S1l#Xu$IVQ6xLI!!U1pl;C=X0H8 zz9tDn5)PZ2A!4z^_vQ#SL#4%CDQwK~CQyqT;ugEdrf1NeilQqf1UnqX7=un|&(ENM zF_RX1C9{iBgmH^|?7pjLKImw)>f zs;W+yzJ$y2(pAHzqv*fCXdLRjKWr+XJT!p|7+`sa&P`3Ce|)%R2G4eU=qh7QAOn4_ z=D-@ZMkF%KWz1Q^>cr01c1%(vtjD}J@b&>{}KIOIv*1iYsRYdAK9?t;SspPb|^ zq2)wt8ZHEUGzZgx5Oshj=%Wg>2SakcOAE%P(?=5a27S&Ft1k`?q*wtT1)rk>FpGf+ z@PxL}JY++ya6VM>-28W)FvyQn!aKkZ<6$>V!jIvQjGg(&*aug_ZV0znXd2pE0_(lx z#i;HeKI1D?De;m`oHz3L?+{t`8D0jhsL0*pyeN|gvSFX63e!>Cyzn9(E&$$N;m+vy zl8cCIRv5!tl$(f4S@7)|UrR*M1phqp4&osWMKC(PgjMw;Pv-C&(O)J`+#zN6;#-i|6$7lV^xFD9f z$hS=E0d#aQp55@70FxxUeus+`h%1n1Z=L&zU5v+VQWV|UfvaF+1M;jSMA6jp;}wnf zl4P_@X~H(0U+|w7>_&sOG}C)!=@XRvY`LZjWofc3-Qs@LFunRz?fTTSZGCP>f85zdLq8-qZn~uGs`@BXy9CEE_9EywX_d$t0z15LH65 zgWvT6704o+V88P?1bSf{*#XW9OaP6BY(>suD|JLy%c8>sCLtTmU~AFtkad9X&H%J` zx5|TD6Nse@Iksz9 zHf@M*5ZD9RSV)fhb*sP|5bg5ep9Z{{d2gp-Hr8qtot}gCo>r^qpgipDX)RwidA#e{ r7=ZDf4D~~_H&dD5%c)0x0bJ^Bw&mH4%rpZ?Pp!6|Xw_9OmfrUdUAe=` literal 18016 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 diff --git a/Assignment4/src/test.cpp b/Assignment4/src/test.cpp index 85d4d68..88fe65c 100644 --- a/Assignment4/src/test.cpp +++ b/Assignment4/src/test.cpp @@ -1,63 +1,9 @@ -#include -#include -#include using namespace std; -using namespace __gnu_pbds; - -template -using o_set = tree, rb_tree_tag, tree_order_statistics_node_update>; -template -using o_multiset = tree, rb_tree_tag, tree_order_statistics_node_update>; - -#define ll long long -#define ld long double; -#define vll vector -#define vvll vector -#define vpll vector> -#define mll map -#define sll set -#define mod 1000000007 -#define mod2 998244353 -#define inf 1000000000000000 -#define maxN 1e5+1 -#define pb push_back -#define loop(i,n) for(ll i=0; i 0) { - if (b & 1) - res = res * a % m; - a = a * a % m; - b >>= 1; - } - return res; -} - -void solve(){ - int a = 4, b = 10; - int *p =&a; - - *p = 10; - cout << "Value of a: " << a << endl; // Should print 10 -} - -int main(){ - - ll t=1; - // cin>>t; - while(t--) solve(); +#include +int main() { + + static int a; + int b=a+4; + cout< Date: Tue, 29 Apr 2025 00:37:01 +0530 Subject: [PATCH 38/52] changes --- Assignment4/output/output.s | 81 +++++++-------- Assignment4/output/output1.txt | 180 ++++++++++++++++++++------------- Assignment4/src/codegen.cpp | 39 +++++++ Assignment4/test/input1.c | 27 ++--- 4 files changed, 203 insertions(+), 124 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index d98fd6e..7506700 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,51 +1,48 @@ .data newline: .asciiz "\n" -static_a: .float 5.300000 -.data -float_const_4.000000: .float 4.000000 -.text +str0: .asciiz "" .text .globl main +foo: + move $fp, $sp + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + move $t9, $a0 + li $v0, 2 + lw $fp, 4($sp) + lw $ra, 8($sp) + addi $sp, $sp, 12 + jr $ra main: move $fp, $sp -<<<<<<< HEAD - addi $sp, $sp, -28 - sw $ra, 24($sp) - sw $fp, 20($sp) - la $t9, static_a - l.s $f31, 0($t9) - la $t8, float_const_4.000000 - l.s $f30, 0($t8) - add.s $f29, $f31, $f30 - mov.s $f28, $f29 -mtc1 $f28, $f28 -cvt.s.w $f28, $f28 -mtc1 $f31, $f31 -cvt.s.w $f31, $f31 - add.s $f27, $f31, - mov.s $f26, $f27 + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t8, 2 + li $a0, 3 + jal foo + move $t7, $v0 + move $t6, $t7 + la $a0, str0 + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t5, $v0 li $v0, 0 - lw $fp, 20($sp) - lw $ra, 24($sp) - addi $sp, $sp, 28 -======= - addi $sp, $sp, -16 - sw $ra, 12($sp) - sw $fp, 8($sp) - li $t9, 5 -LABEL0: - li $t8, 0 - slt $t7, $t8, $t9 - bnez $t7, LABEL1 - j LABEL2 -LABEL2: - li $t6, 1 - sub $t9, $t9, $t6 - j LABEL0 -LABEL1: - lw $fp, 8($sp) - lw $ra, 12($sp) - addi $sp, $sp, 16 ->>>>>>> 6ccfb75a64099ecc5ff5952a333e07b31e7da547 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index ff2330b..abb0fe3 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,22 +1,27 @@ -=====================LIST OF ERRORS=================================== -Line 7 : Missing return statement ====================================================================== -0x5593cff3d8b0 FUNC_BEGIN main -0x5593cff443c0 i:= 5 -0x5593cff443c0 LABEL0: -0x5593cff443c0 t0 := i > 0 -0x5593cff443c0 if(t0) goto LABEL1 -0x5593cff443c0 goto LABEL2 -0x5593cff443c0 LABEL2: -0x5593cff454c0 i := i - 1 -0x5593cff443c0 goto LABEL0 -0x5593cff443c0 LABEL1: -0x5593cff3d8b0 FUNC_END main +No Errors in the code +Intermediate code generated successfully +====================================================================== +0x62d782f4c4b0 FUNC_BEGIN foo +0x62d782f535c0 a := PARAM +0x62d782f535c0 RETURN 2 +0x62d782f4c4b0 FUNC_END foo +0x62d782f4c4b0 FUNC_BEGIN main +0x62d782f54220 a:= 2 +0x62d782f54220 PARAM 3 +0x62d782f54220 t0 := CALL foo,1 +0x62d782f54220 c:= t0 +0x62d782f54220 PARAM "%d\n" +0x62d782f54220 PARAM c +0x62d782f54220 t1 := CALL printf,2 +0x62d782f54220 RETURN 0 +0x62d782f4c4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| foo | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -24,85 +29,122 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| a | int | 4 | N/A | ----------------------------------------------------------------- ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| i | int | 4 | 5 | +| a | int | 4 | 2 | +| c | int | 4 | N/A | | t0 | int | 4 | N/A | +| t1 | | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 16 +Function foo stack size: 12 +Function main stack size: 24 Pass 1 done -LHS: i, RHS: 5 -Token lhs: i -LHS: t0, RHS: i > 0 -Token rhs: i +LHS: a, RHS: PARAM +Token rhs: PARAM +Token lhs: a +LHS: a, RHS: 2 +Token lhs: a +LHS: t0, RHS: CALL foo,1 +Token rhs: CALL +Token rhs: foo,1 +Error!!!! Variable foo,1 not found in any scope Token lhs: t0 -LHS: i, RHS: i - 1 -Token lhs: i +LHS: c, RHS: t0 +Token rhs: t0 +Token lhs: c +LHS: t1, RHS: CALL printf,2 +Token rhs: CALL +Token rhs: printf,2 +Error!!!! Variable printf,2 not found in any scope +Token lhs: t1 Liveness analysis done Inside pass2 +FUNC_BEGIN foo +a := PARAM +Handling param receive: a := PARAM +Getting register for a +Assigned register $t9 to a +RETURN 2 +FUNC_END foo FUNC_BEGIN main -i:= 5 -Handling assignment: i := 5 -Getting register for i -Assigned register $t9 to i -LABEL0: -t0 := i > 0 -Handling operation: t0 := i > 0 -Getting register for i -Found register for i $t9 -Loaded integer constant 0 into $t8 +a:= 2 +Handling assignment: a := 2 +Getting register for a +Assigned register $t8 to a +PARAM 3 +t0 := CALL foo,1 +Handling assignment: t0 := CALL foo,1 Getting register for t0 Assigned register $t7 to t0 -Operation: i > 0 -Registers: $t9, $t8, $t7 -if(t0) goto LABEL1 -Condition: t0, Label: LABEL1 +Handling function call: CALL foo,1 +c:= t0 +Handling assignment: c := t0 +Getting register for c +Assigned register $t6 to c Getting register for t0 Found register for t0 $t7 -goto LABEL2 -LABEL2: -i := i - 1 -Handling operation: i := i - 1 -Getting register for i -Found register for i $t9 -Loaded integer constant 1 into $t6 -Getting register for i -Found register for i $t9 -Operation: i - 1 -Registers: $t9, $t6, $t9 -goto LABEL0 -LABEL1: +PARAM "%d\n" +PARAM c +Getting register for c +Found register for c $t6 +t1 := CALL printf,2 +Handling assignment: t1 := CALL printf,2 +Getting register for t1 +Assigned register $t5 to t1 +Handling function call: CALL printf,2 +----------------------2 +RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" -static_a: .float 5.300000 -.data -float_const_4.000000: .float 4.000000 -.text +str0: .asciiz "" .text .globl main +foo: + move $fp, $sp + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + move $t9, $a0 + li $v0, 2 + lw $fp, 4($sp) + lw $ra, 8($sp) + addi $sp, $sp, 12 + jr $ra main: move $fp, $sp - addi $sp, $sp, -16 - sw $ra, 12($sp) - sw $fp, 8($sp) - li $t9, 5 -LABEL0: - li $t8, 0 - slt $t7, $t8, $t9 - bnez $t7, LABEL1 - j LABEL2 -LABEL2: - li $t6, 1 - sub $t9, $t9, $t6 - j LABEL0 -LABEL1: - lw $fp, 8($sp) - lw $ra, 12($sp) - addi $sp, $sp, 16 + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t8, 2 + li $a0, 3 + jal foo + move $t7, $v0 + move $t6, $t7 + la $a0, str0 + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t5, $v0 + li $v0, 0 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 89b603e..070ba4d 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -958,6 +958,42 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { paramtype.push_back("string"); return; } + if(isIntLiteral(var)){ + paramtype.push_back("int"); + if (paramCounter >= argRegisters.size()) { + srcReg=getRegister(scope, var); + functionparams.push_back(" addi $sp, $sp, -4 \n li "+srcReg+", "+var+"\n sw " + srcReg + ", " + to_string(0) + "($sp)"); + // mipsCode.push_back(" addi $sp, $sp, -4"); + // mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); + // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; + // exit(1); + param_receive_offset=0; + } + else if(paramCounter == argRegisters.size()){ + mipsCode.push_back(" li " + argRegisters[paramCounter] + ", " + var); + param_receive_offset=0; + } + else mipsCode.push_back(" li " + argRegisters[paramCounter] + ", " + var); + paramCounter++; + return; + + } + else if(isFloatLiteral(var)){ + paramtype.push_back("float"); + if (paramFloatCounter == 0) + mipsCode.push_back(" li.s $f12, " + var); + else if (paramFloatCounter == 1) + mipsCode.push_back(" li.s $f14, " + var); + else { + srcReg=getFloatRegister(scope, var); + functionparams.push_back(" addi $sp, $sp, -4 \n li.s "+srcReg+", "+var+"\n s.s " + srcReg + ", " + to_string(0) + "($sp)"); + // cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; + // exit(1); + } + paramFloatCounter++; + return; + + } symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { cerr << "Unknown symbol in handle_param_pass: " << var << endl; @@ -990,6 +1026,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { // mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; // exit(1); + param_receive_offset=0; } else if(paramCounter == argRegisters.size()){ mipsCode.push_back(" move " + argRegisters[paramCounter] + ", " + srcReg); @@ -1470,6 +1507,7 @@ bool check_struct(const string& line, scoped_symtab* scope) { if(isIntLiteral(structName) || isFloatLiteral(structName) || isStringLiteral(structName)){ return false; } + // cout << "Struct ke andar: " << structName << endl; symbol_info* sym = getScope(scope, structName)->symbol_map[structName]; cout << sym->type << endl; if(sym->type.substr(0,6) == "struct" || sym->type.substr(0,5) == "union") { @@ -1608,6 +1646,7 @@ void pass2(vector>& codeList){ continue; } else if(check_struct(t, code.second)){ + cout << "Struct found: " << t << endl; handle_struct(t, code.second); continue; } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 9a14e51..ca1b970 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,15 +1,16 @@ -int main() { -<<<<<<< HEAD +int foo(int a){ - static float a=5.3; - float c=a+4.0; - float b=c+a; + return 2; +} + +int main() { + int a=2; + + int c=foo(3); + printf("%d\n",c); return 0; -======= - int i = 5; - until(i > 0) - { - i--; - } ->>>>>>> 6ccfb75a64099ecc5ff5952a333e07b31e7da547 -} \ No newline at end of file + +} + + + From ba4fd1fc357fef99159f687ef04dc3363e0a03f3 Mon Sep 17 00:00:00 2001 From: Nayan Kakade Date: Tue, 29 Apr 2025 02:45:00 +0530 Subject: [PATCH 39/52] float errors fixed --- Assignment4/output/output.s | 67 +++++---- Assignment4/output/output1.txt | 255 +++++++++++++++++++++------------ Assignment4/src/codegen.cpp | 85 ++++++----- Assignment4/src/parser.y | 5 +- Assignment4/test/input1.c | 13 +- 5 files changed, 266 insertions(+), 159 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 7506700..241ab24 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,31 +1,46 @@ .data newline: .asciiz "\n" str0: .asciiz "" +float_const_2.000000: .float 2.000000 +float_const_1.000000: .float 1.000000 .text .globl main -foo: - move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) - move $t9, $a0 - li $v0, 2 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 - jr $ra main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t8, 2 - li $a0, 3 - jal foo - move $t7, $v0 - move $t6, $t7 + addi $sp, $sp, -36 + sw $ra, 32($sp) + sw $fp, 28($sp) + li $t8, 0 + li $t7, 4 + mul $t6, $t8, $t7 + la $t5, float_const_1.000000 + l.s $f31, 0($t5) + li $t5, 0 + add $t6, $t6, $t5 + add $t6, $t6, $sp + s.s $f31, 0($t6) + li $t4, 1 + li $t3, 4 + mul $t2, $t4, $t3 + la $t1, float_const_2.000000 + l.s $f30, 0($t1) + li $t1, 0 + add $t2, $t2, $t1 + add $t2, $t2, $sp + s.s $f30, 0($t2) + li $t0, 4 + # Spilling t0 from $t6 + li $t6, 0 + # Spilling t1 from $t2 + mul $t2, $t0, $t6 + li $t0, 0 + add $t2, $t2, $t0 + add $t2, $t2, $sp + l.s $f29, 0($t2) + mov.s $f28, $f29 la $a0, str0 - move $a1, $t6 + mov.s $f12, $f28 + # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 @@ -33,16 +48,16 @@ syscall li $v0, 4 la $a0, newline syscall - move $a0, $a1 - li $v0, 1 + mov.s $f12, $f12 + li $v0, 2 syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t9, $v0 li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 28($sp) + lw $ra, 32($sp) + addi $sp, $sp, 36 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index abb0fe3..82a9d61 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,26 +2,25 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x62d782f4c4b0 FUNC_BEGIN foo -0x62d782f535c0 a := PARAM -0x62d782f535c0 RETURN 2 -0x62d782f4c4b0 FUNC_END foo -0x62d782f4c4b0 FUNC_BEGIN main -0x62d782f54220 a:= 2 -0x62d782f54220 PARAM 3 -0x62d782f54220 t0 := CALL foo,1 -0x62d782f54220 c:= t0 -0x62d782f54220 PARAM "%d\n" -0x62d782f54220 PARAM c -0x62d782f54220 t1 := CALL printf,2 -0x62d782f54220 RETURN 0 -0x62d782f4c4b0 FUNC_END main +0x6244cb5b04b0 FUNC_BEGIN main +0x6244cb5b6fc0 a := alloc 8 +0x6244cb5b6fc0 t0:= 0 * 4 +0x6244cb5b6fc0 *( a + t0 ) := 1.000000 +0x6244cb5b6fc0 t1:= 1 * 4 +0x6244cb5b6fc0 *( a + t1 ) := 2.000000 +0x6244cb5b6fc0 t2 := 4 * 0 +0x6244cb5b6fc0 t3 := *( a + t2 ) +0x6244cb5b6fc0 b:= t3 +0x6244cb5b6fc0 PARAM "%f\n" +0x6244cb5b6fc0 PARAM b +0x6244cb5b6fc0 t4 := CALL printf,2 +0x6244cb5b6fc0 RETURN 0 +0x6244cb5b04b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| foo | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -29,71 +28,132 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | N/A | ------------------------------------------------------------------ ------------------------------------------------------------------ -| Identifier | Type | Size | Value | ------------------------------------------------------------------ -| a | int | 4 | 2 | -| c | int | 4 | N/A | +| a | float | 4 | 1.000000 | +| b | float | 4 | N/A | | t0 | int | 4 | N/A | -| t1 | | 0 | N/A | +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | float | 4 | N/A | +| t4 | | 0 | N/A | ----------------------------------------------------------------- -Function foo stack size: 12 -Function main stack size: 24 +Function main stack size: 36 Pass 1 done -LHS: a, RHS: PARAM -Token rhs: PARAM +LHS: a, RHS: alloc 8 +Token rhs: alloc +Error!!!! Variable alloc not found in any scope Token lhs: a -LHS: a, RHS: 2 +LHS: t0, RHS: 0 * 4 +Token lhs: t0 +LHS: *( a + t0 ), RHS: 1.000000 Token lhs: a -LHS: t0, RHS: CALL foo,1 -Token rhs: CALL -Token rhs: foo,1 -Error!!!! Variable foo,1 not found in any scope Token lhs: t0 -LHS: c, RHS: t0 -Token rhs: t0 -Token lhs: c -LHS: t1, RHS: CALL printf,2 +LHS: t1, RHS: 1 * 4 +Token lhs: t1 +LHS: *( a + t1 ), RHS: 2.000000 +Token lhs: a +Token lhs: t1 +LHS: t2, RHS: 4 * 0 +Token lhs: t2 +LHS: t3, RHS: *( a + t2 ) +Token rhs: a +Token rhs: t2 +Token lhs: t3 +LHS: b, RHS: t3 +Token rhs: t3 +Token lhs: b +LHS: t4, RHS: CALL printf,2 Token rhs: CALL Token rhs: printf,2 Error!!!! Variable printf,2 not found in any scope -Token lhs: t1 +Token lhs: t4 Liveness analysis done Inside pass2 -FUNC_BEGIN foo -a := PARAM -Handling param receive: a := PARAM -Getting register for a -Assigned register $t9 to a -RETURN 2 -FUNC_END foo FUNC_BEGIN main -a:= 2 -Handling assignment: a := 2 +a := alloc 8 +Handling assignment: a := alloc 8 Getting register for a -Assigned register $t8 to a -PARAM 3 -t0 := CALL foo,1 -Handling assignment: t0 := CALL foo,1 +Assigned register $t9 to a +last_offset: 0 +Allocating 8 bytes for a at offset 0 +t0:= 0 * 4 +Handling operation: t0 := 0 * 4 +hi +Loaded integer constant 0 into $t8 +Loaded integer constant 4 into $t7 Getting register for t0 -Assigned register $t7 to t0 -Handling function call: CALL foo,1 -c:= t0 -Handling assignment: c := t0 -Getting register for c -Assigned register $t6 to c +Assigned register $t6 to t0 +Operation: 0 * 4 +Registers: $t8, $t7, $t6 +*( a + t0 ) := 1.000000 +Handling array: *( a + t0 ) := 1.000000 +Array name: a +Float array +Error!!!! Variable 1.000000 not found in any scope +Assigning float register $f31 to 1.000000 +$f30 +Loaded float constant 1.000000 into $f31 +lhs2: t0 +lhs1: a Getting register for t0 -Found register for t0 $t7 -PARAM "%d\n" -PARAM c -Getting register for c -Found register for c $t6 -t1 := CALL printf,2 -Handling assignment: t1 := CALL printf,2 +Found register for t0 $t6 +regii: $t6 +val: 0 +t1:= 1 * 4 +Handling operation: t1 := 1 * 4 +hi +Loaded integer constant 1 into $t4 +Loaded integer constant 4 into $t3 Getting register for t1 -Assigned register $t5 to t1 +Assigned register $t2 to t1 +Operation: 1 * 4 +Registers: $t4, $t3, $t2 +*( a + t1 ) := 2.000000 +Handling array: *( a + t1 ) := 2.000000 +Array name: a +Float array +Error!!!! Variable 2.000000 not found in any scope +Assigning float register $f30 to 2.000000 +$f30 +Loaded float constant 2.000000 into $f30 +lhs2: t1 +lhs1: a +Getting register for t1 +Found register for t1 $t2 +regii: $t2 +val: 0 +t2 := 4 * 0 +Handling operation: t2 := 4 * 0 +hi +Loaded integer constant 4 into $t0 +Handling register spill for 4 +Spilling t0 from $t6 +Loaded integer constant 0 into $t6 +Getting register for t2 +Handling register spill for t2 +Spilling t1 from $t2 +Assigned register $t2 to t2 +Operation: 4 * 0 +Registers: $t0, $t6, $t2 +t3 := *( a + t2 ) +Handling array: t3 := *( a + t2 ) +Array name: a +Getting register for t2 +Found register for t2 $t2 +Handling register spill for 0 +Assigning float register $f29 to t3 +$f28 +b:= t3 +Handling assignment: b := t3 +Assigning float register $f28 to b +$f28 +PARAM "%f\n" +PARAM b +t4 := CALL printf,2 +Handling assignment: t4 := CALL printf,2 +Getting register for t4 +Handling register spill for t4 +Spilling a from $t9 +Assigned register $t9 to t4 Handling function call: CALL printf,2 ----------------------2 RETURN 0 @@ -103,31 +163,46 @@ Pass 2 done .data newline: .asciiz "\n" str0: .asciiz "" +float_const_2.000000: .float 2.000000 +float_const_1.000000: .float 1.000000 .text .globl main -foo: - move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) - move $t9, $a0 - li $v0, 2 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 - jr $ra main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t8, 2 - li $a0, 3 - jal foo - move $t7, $v0 - move $t6, $t7 + addi $sp, $sp, -36 + sw $ra, 32($sp) + sw $fp, 28($sp) + li $t8, 0 + li $t7, 4 + mul $t6, $t8, $t7 + la $t5, float_const_1.000000 + l.s $f31, 0($t5) + li $t5, 0 + add $t6, $t6, $t5 + add $t6, $t6, $sp + s.s $f31, 0($t6) + li $t4, 1 + li $t3, 4 + mul $t2, $t4, $t3 + la $t1, float_const_2.000000 + l.s $f30, 0($t1) + li $t1, 0 + add $t2, $t2, $t1 + add $t2, $t2, $sp + s.s $f30, 0($t2) + li $t0, 4 + # Spilling t0 from $t6 + li $t6, 0 + # Spilling t1 from $t2 + mul $t2, $t0, $t6 + li $t0, 0 + add $t2, $t2, $t0 + add $t2, $t2, $sp + l.s $f29, 0($t2) + mov.s $f28, $f29 la $a0, str0 - move $a1, $t6 + mov.s $f12, $f28 + # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 @@ -135,16 +210,16 @@ syscall li $v0, 4 la $a0, newline syscall - move $a0, $a1 - li $v0, 1 + mov.s $f12, $f12 + li $v0, 2 syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t9, $v0 li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 28($sp) + lw $ra, 32($sp) + addi $sp, $sp, 36 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 070ba4d..0ac5d55 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -399,7 +399,7 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } } floatVarToReg.erase(it); - + push_into_stack(varPair); } @@ -439,6 +439,12 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { } //if everyone busy, we'll have to save any, so always choosing the first one pair varPair = reg_to_var[regi]; + if(varPair.second==""){ + availableRegs.push_back(regi); + reg_to_var.erase(regi); + + return; + } cerr<<"Spilling to stack " << varPair.second << " from " << regi << endl; push_into_stack(varPair); cerr<<"hi"< emittedFloats; if (!emittedFloats.count(var)) { emittedFloats.insert(var); - mipsCode.insert(mipsCode.begin(), ".data"); - mipsCode.insert(mipsCode.begin() + 1, floatLabel + ": .float " + var); - mipsCode.insert(mipsCode.begin() + 2, ".text"); + // mipsCode.insert(mipsCode.begin(), ".data"); + mipsCode.insert(mipsCode.begin(), floatLabel + ": .float " + var); + // mipsCode.insert(mipsCode.begin() + 2, ".text"); } if(availableRegs.empty()) handleRegisterSpill(scope,var); string reg1 = availableRegs.back(); @@ -618,9 +630,9 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { string valStr = to_string(*val); string floatLabel = "float_sym_" + var; - mipsCode.insert(mipsCode.begin(), ".data"); - mipsCode.insert(mipsCode.begin() + 1, floatLabel + ": .float " + valStr); - mipsCode.insert(mipsCode.begin() + 2, ".text"); + // mipsCode.insert(mipsCode.begin(), ".data"); + mipsCode.insert(mipsCode.begin(), floatLabel + ": .float " + valStr); + // mipsCode.insert(mipsCode.begin() + 2, ".text"); mipsCode.push_back(" la " + reg + ", " + floatLabel); mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); @@ -704,7 +716,7 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } if(fl==0){ r2 = getFloatRegister(scope,op2); - rx=r2; + ry=r2; if(floatVarToReg.count({scope,op2})){ string tempr = floatVarToReg[{scope,op2}]; mipsCode.push_back("mtc1 " + tempr + ", " + r2); @@ -812,8 +824,8 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { cout<<"Handling assignment: " << lhs << " := " << rhs << endl; symbol_info* lhsInfo = getScope(scope,lhs)->symbol_map[lhs]; - bool isFloat = (lhsInfo && lhsInfo->type == "float"); - bool isDouble = (lhsInfo && lhsInfo->type == "double"); + bool isFloat = (lhsInfo && lhsInfo->type == "float" && rhs.find("CALL") == string::npos && rhs.find("alloc") == string::npos); + bool isDouble = (lhsInfo && lhsInfo->type == "double" && rhs.find("CALL") == string::npos && rhs.find("alloc") == string::npos); if (isFloat) { string dst = getFloatRegister(scope, lhs); if (isFloatLiteral(rhs)) { @@ -1220,6 +1232,7 @@ void handle_array(const string& line, scoped_symtab* scope) { } else if(isFloatLiteral(rhs)){ if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="float"){ + cout<<"Float array\n"; r1=getFloatRegister(scope,rhs); load_if_constant(scope, rhs, r1); lhs = lhs.substr(3); @@ -1229,15 +1242,21 @@ void handle_array(const string& line, scoped_symtab* scope) { string lhs2 = trim(lhs.substr(plusPos + 1)); lhs2.pop_back(); lhs2 = trim(lhs2); - string regis = getFloatRegister(scope,lhs2); + cout<<"lhs2: " << lhs2 << endl; + cout<<"lhs1: " << lhs1 << endl; + + string regis = getRegister(scope,lhs2); + cout<<"regii: " << regis << endl; + string val=to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset); - string regii = getFloatRegister(scope,val); - mipsCode.push_back(" li.s " + regii + ", " + val); - mipsCode.push_back(" add.s " + regis + ", " + regis + ", " + regii); + cout<<"val: " << val << endl; + string regii = getRegister(scope,val); + mipsCode.push_back(" li " + regii + ", " + val); + mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); - mipsCode.push_back(" add.s " + regis + ", " + regis + ", $sp"); - mipsCode.push_back(" s.s" + r1 + ", 0(" + regis + ")"); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" s.s " + r1 + ", 0(" + regis + ")"); } else if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="double"){ r1=getFloatRegister(scope,rhs,"double"); @@ -1249,14 +1268,14 @@ void handle_array(const string& line, scoped_symtab* scope) { string lhs2 = trim(lhs.substr(plusPos + 1)); lhs2.pop_back(); lhs2 = trim(lhs2); - string regis = getFloatRegister(scope,lhs2,"double"); + string regis = getRegister(scope,lhs2); string val=to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset); - string regii = getFloatRegister(scope,val,"double"); - mipsCode.push_back(" li.d " + regii + ", " + val); - mipsCode.push_back(" add.d " + regis + ", " + regis + ", " + regii); + string regii = getRegister(scope,val); + mipsCode.push_back(" li " + regii + ", " + val); + mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); - mipsCode.push_back(" add.d " + regis + ", " + regis + ", $sp"); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); mipsCode.push_back(" s.d" + r1 + ", 0(" + regis + ")"); } @@ -1277,25 +1296,25 @@ void handle_array(const string& line, scoped_symtab* scope) { rhs2.pop_back(); rhs2 = trim(rhs2); if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="float"){ - string regis = getFloatRegister(scope,rhs2); + string regis = getRegister(scope,rhs2); string val=to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset); - string regii = getFloatRegister(scope,val); - mipsCode.push_back(" li.s " + regii + ", " + val); - mipsCode.push_back(" add.s " + regis + ", " + regis + ", " + regii); + string regii = getRegister(scope,val); + mipsCode.push_back(" li " + regii + ", " + val); + mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); - mipsCode.push_back(" add.s " + regis + ", " + regis + ", $sp"); - string dst = getRegister(scope,lhs); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + string dst = getFloatRegister(scope,lhs); mipsCode.push_back(" l.s " + dst + ", 0(" + regis + ")"); } else if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="double"){ - string regis = getFloatRegister(scope,rhs2,"double"); + string regis = getRegister(scope,rhs2); string val=to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset); - string regii = getFloatRegister(scope,val,"double"); - mipsCode.push_back(" li.d " + regii + ", " + val); - mipsCode.push_back(" add.d " + regis + ", " + regis + ", " + regii); + string regii = getRegister(scope,val); + mipsCode.push_back(" li " + regii + ", " + val); + mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); - mipsCode.push_back(" add.d " + regis + ", " + regis + ", $sp"); - string dst = getRegister(scope,lhs); + mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); + string dst = getFloatRegister(scope,lhs,"double"); mipsCode.push_back(" l.d " + dst + ", 0(" + regis + ")"); } else{ diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 64bab23..7bff164 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -166,7 +166,8 @@ postfix_expression } else{ string code=$3->code; - qid temp=newtemp(find_symbol->type,curr_scope); + qid temp=newtemp("int",curr_scope); + string add_str=""; if(find_symbol->type=="int"){ add_str=temp.first+" := "+"4 * "+$3->place.first; @@ -1224,7 +1225,7 @@ init_declarator code=code+to_string(2*$1->array_length); } for(int i=0;i<$1->array_length;i++){ - qid temp=newtemp($1->type,curr_scope); + qid temp=newtemp("int",curr_scope); code=code+"\n"+temp.first+":= "+to_string(i)+" * "; if($1->type=="int") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(int*)($1->int_array[i]->ptr)); else if($1->type=="float") code=code+"4\n"+"*( "+$1->name+" + "+temp.first+" ) := "+to_string(*(float*)($1->int_array[i]->ptr)); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index ca1b970..af43deb 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,13 +1,10 @@ -int foo(int a){ - - return 2; -} int main() { - int a=2; - - int c=foo(3); - printf("%d\n",c); + float a[2]={1.0,2.0}; + float b=a[0]; + // int a[2]={1,2}; + // int b=a[0]; + printf("%f\n",b); return 0; } From a12cedef372cd94e6ca5bdb40f7811210f6e6337 Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Mon, 28 Apr 2025 23:11:15 +0000 Subject: [PATCH 40/52] recursive func call and return handling --- Assignment4/output/output.s | 96 +++++++--- Assignment4/output/output1.txt | 336 +++++++++++++++++++++++++-------- Assignment4/src/codegen.cpp | 89 +++++++-- Assignment4/src/parser.y | 28 +-- Assignment4/test/input1.c | 21 +-- 5 files changed, 422 insertions(+), 148 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 7506700..c2d906f 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,31 +1,83 @@ .data newline: .asciiz "\n" -str0: .asciiz "" +str0: .asciiz "HI" .text .globl main -foo: +addx: move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) + addi $sp, $sp, -72 + sw $ra, 68($sp) + sw $fp, 64($sp) + sw $t0, 60($sp) + sw $t1, 56($sp) + sw $t2, 52($sp) + sw $t3, 48($sp) + sw $t4, 44($sp) + sw $t5, 40($sp) + sw $t6, 36($sp) + sw $t7, 32($sp) + sw $t8, 28($sp) + sw $t9, 24($sp) move $t9, $a0 - li $v0, 2 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 + move $t8, $a1 + li $t7, 0 + seq $t6, $t8, $t7 + bnez $t6, LABEL0 + j LABEL1 +LABEL0: + move $v0, $t9 + lw $fp, 64($sp) + lw $ra, 68($sp) + lw $t0, 60($sp) + lw $t1, 56($sp) + lw $t2, 52($sp) + lw $t3, 48($sp) + lw $t4, 44($sp) + lw $t5, 40($sp) + lw $t6, 36($sp) + lw $t7, 32($sp) + lw $t8, 28($sp) + lw $t9, 24($sp) + addi $sp, $sp, 72 jr $ra + j LABEL2 +LABEL1: + li $t5, 1 + sub $t4, $t8, $t5 + move $a0, $t9 + move $a1, $t4 + jal addx + move $t3, $v0 + add $t2, $t9, $t3 + move $v0, $t2 + lw $fp, 64($sp) + lw $ra, 68($sp) + lw $t0, 60($sp) + lw $t1, 56($sp) + lw $t2, 52($sp) + lw $t3, 48($sp) + lw $t4, 44($sp) + lw $t5, 40($sp) + lw $t6, 36($sp) + lw $t7, 32($sp) + lw $t8, 28($sp) + lw $t9, 24($sp) + addi $sp, $sp, 72 + jr $ra +LABEL2: main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t8, 2 - li $a0, 3 - jal foo - move $t7, $v0 - move $t6, $t7 + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $a0, 5 + li $a1, 3 + jal addx + move $t1, $v0 + move $t0, $t1 la $a0, str0 - move $a1, $t6 + move $a1, $t0 + # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 @@ -39,10 +91,10 @@ syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t9, $v0 li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 12($sp) + lw $ra, 16($sp) + jr $ra li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index abb0fe3..6fd89b8 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,27 +1,40 @@ +=====================LIST OF ERRORS=================================== +Line 8 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x62d782f4c4b0 FUNC_BEGIN foo -0x62d782f535c0 a := PARAM -0x62d782f535c0 RETURN 2 -0x62d782f4c4b0 FUNC_END foo -0x62d782f4c4b0 FUNC_BEGIN main -0x62d782f54220 a:= 2 -0x62d782f54220 PARAM 3 -0x62d782f54220 t0 := CALL foo,1 -0x62d782f54220 c:= t0 -0x62d782f54220 PARAM "%d\n" -0x62d782f54220 PARAM c -0x62d782f54220 t1 := CALL printf,2 -0x62d782f54220 RETURN 0 -0x62d782f4c4b0 FUNC_END main +0x564ba6f7d8b0 FUNC_BEGIN addx +0x564ba6f858f0 a := PARAM +0x564ba6f858f0 b := PARAM +0x564ba6f84e40 t0 := b == 0 +0x564ba6f84e40 if (t0) goto LABEL0 +0x564ba6f84e40 goto LABEL1 +0x564ba6f84e40 LABEL0: +0x564ba6f858f0 RETURN a +0x564ba6f84e40 goto LABEL2 +0x564ba6f84e40 LABEL1: +0x564ba6f86060 t1 := b - 1 +0x564ba6f86060 PARAM a +0x564ba6f86060 PARAM t1 +0x564ba6f86060 t2 := CALL addx,2 +0x564ba6f86060 t3 := a + t2 +0x564ba6f86060 RETURN t3 +0x564ba6f84e40 LABEL2: +0x564ba6f7d8b0 FUNC_END addx +0x564ba6f7d8b0 FUNC_BEGIN main +0x564ba6f88510 PARAM 5 +0x564ba6f88510 PARAM 3 +0x564ba6f88510 t4 := CALL addx,2 +0x564ba6f88510 b:= t4 +0x564ba6f88510 PARAM "HI%d\n" +0x564ba6f88510 PARAM b +0x564ba6f88510 t5 := CALL printf,2 +0x564ba6f88510 RETURN 0 +0x564ba6f7d8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| foo | int | 4 | N/A | +| addx | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -29,105 +42,263 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | N/A | ----------------------------------------------------------------- ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | 2 | -| c | int | 4 | N/A | +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | N/A | +| b | int | 4 | N/A | | t0 | int | 4 | N/A | -| t1 | | 0 | N/A | ----------------------------------------------------------------- -Function foo stack size: 12 -Function main stack size: 24 +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| b | int | 4 | N/A | +| t4 | int | 4 | N/A | +| t5 | | 0 | N/A | +----------------------------------------------------------------- +Function addx stack size: 32 +Function main stack size: 20 Pass 1 done LHS: a, RHS: PARAM Token rhs: PARAM Token lhs: a -LHS: a, RHS: 2 -Token lhs: a -LHS: t0, RHS: CALL foo,1 -Token rhs: CALL -Token rhs: foo,1 -Error!!!! Variable foo,1 not found in any scope +LHS: b, RHS: PARAM +Token rhs: PARAM +Token lhs: b +LHS: t0, RHS: b == 0 +Token rhs: b Token lhs: t0 -LHS: c, RHS: t0 -Token rhs: t0 -Token lhs: c -LHS: t1, RHS: CALL printf,2 +LHS: t1, RHS: b - 1 +Token rhs: b +Token lhs: t1 +LHS: t2, RHS: CALL addx,2 +Token rhs: CALL +Token rhs: addx,2 +Error!!!! Variable addx,2 not found in any scope +Token lhs: t2 +LHS: t3, RHS: a + t2 +Token rhs: a +Token rhs: t2 +Token lhs: t3 +LHS: t4, RHS: CALL addx,2 +Token rhs: CALL +Token rhs: addx,2 +Error!!!! Variable addx,2 not found in any scope +Token lhs: t4 +LHS: b, RHS: t4 +Token rhs: t4 +Token lhs: b +LHS: t5, RHS: CALL printf,2 Token rhs: CALL Token rhs: printf,2 Error!!!! Variable printf,2 not found in any scope -Token lhs: t1 +Token lhs: t5 Liveness analysis done Inside pass2 -FUNC_BEGIN foo +FUNC_BEGIN addx +idhar +yaha +addx +abe +bahar a := PARAM Handling param receive: a := PARAM Getting register for a Assigned register $t9 to a -RETURN 2 -FUNC_END foo -FUNC_BEGIN main -a:= 2 -Handling assignment: a := 2 -Getting register for a -Assigned register $t8 to a -PARAM 3 -t0 := CALL foo,1 -Handling assignment: t0 := CALL foo,1 +b := PARAM +Handling param receive: b := PARAM +Getting register for b +Assigned register $t8 to b +t0 := b == 0 +Handling operation: t0 := b == 0 +Getting register for b +Found register for b $t8 +Loaded integer constant 0 into $t7 Getting register for t0 -Assigned register $t7 to t0 -Handling function call: CALL foo,1 -c:= t0 -Handling assignment: c := t0 -Getting register for c -Assigned register $t6 to c +Assigned register $t6 to t0 +Operation: b == 0 +Registers: $t8, $t7, $t6 +if (t0) goto LABEL0 +idhar aagaya +Condition: t0, Label: LABEL0 Getting register for t0 -Found register for t0 $t7 -PARAM "%d\n" -PARAM c -Getting register for c -Found register for c $t6 -t1 := CALL printf,2 -Handling assignment: t1 := CALL printf,2 +Found register for t0 $t6 +goto LABEL1 +LABEL0: +RETURN a +addx hello a +Getting register for a +Found register for a $t9 +exit done +goto LABEL2 +LABEL1: +t1 := b - 1 +Handling operation: t1 := b - 1 +Getting register for b +Found register for b $t8 +Loaded integer constant 1 into $t5 Getting register for t1 -Assigned register $t5 to t1 +Assigned register $t4 to t1 +Operation: b - 1 +Registers: $t8, $t5, $t4 +PARAM a +Getting register for a +Found register for a $t9 +PARAM t1 +Getting register for t1 +Found register for t1 $t4 +t2 := CALL addx,2 +Handling assignment: t2 := CALL addx,2 +Getting register for t2 +Assigned register $t3 to t2 +Handling function call: CALL addx,2 +t3 := a + t2 +Struct name: a +int +Handling operation: t3 := a + t2 +Getting register for a +Found register for a $t9 +Getting register for t2 +Found register for t2 $t3 +Getting register for t3 +Assigned register $t2 to t3 +Operation: a + t2 +Registers: $t9, $t3, $t2 +RETURN t3 +addx hello t3 +Getting register for t3 +Found register for t3 $t2 +exit done +LABEL2: +FUNC_END addx +exit done +FUNC_BEGIN main +idhar +yaha +main +abe +bahar +PARAM 5 +PARAM 3 +t4 := CALL addx,2 +Handling assignment: t4 := CALL addx,2 +Getting register for t4 +Assigned register $t1 to t4 +Handling function call: CALL addx,2 +b:= t4 +Handling assignment: b := t4 +Getting register for b +Assigned register $t0 to b +Getting register for t4 +Found register for t4 $t1 +PARAM "HI%d\n" +PARAM b +Getting register for b +Found register for b $t0 +t5 := CALL printf,2 +Handling assignment: t5 := CALL printf,2 +Getting register for t5 +Handling register spill for t5 +Spilling a from $t9 +Assigned register $t9 to t5 Handling function call: CALL printf,2 +printf me ----------------------2 RETURN 0 +main hello 0 +exit done FUNC_END main +exit done Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" -str0: .asciiz "" +str0: .asciiz "HI" .text .globl main -foo: +addx: move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) + addi $sp, $sp, -72 + sw $ra, 68($sp) + sw $fp, 64($sp) + sw $t0, 60($sp) + sw $t1, 56($sp) + sw $t2, 52($sp) + sw $t3, 48($sp) + sw $t4, 44($sp) + sw $t5, 40($sp) + sw $t6, 36($sp) + sw $t7, 32($sp) + sw $t8, 28($sp) + sw $t9, 24($sp) move $t9, $a0 - li $v0, 2 - lw $fp, 4($sp) - lw $ra, 8($sp) - addi $sp, $sp, 12 + move $t8, $a1 + li $t7, 0 + seq $t6, $t8, $t7 + bnez $t6, LABEL0 + j LABEL1 +LABEL0: + move $v0, $t9 + lw $fp, 64($sp) + lw $ra, 68($sp) + lw $t0, 60($sp) + lw $t1, 56($sp) + lw $t2, 52($sp) + lw $t3, 48($sp) + lw $t4, 44($sp) + lw $t5, 40($sp) + lw $t6, 36($sp) + lw $t7, 32($sp) + lw $t8, 28($sp) + lw $t9, 24($sp) + addi $sp, $sp, 72 + jr $ra + j LABEL2 +LABEL1: + li $t5, 1 + sub $t4, $t8, $t5 + move $a0, $t9 + move $a1, $t4 + jal addx + move $t3, $v0 + add $t2, $t9, $t3 + move $v0, $t2 + lw $fp, 64($sp) + lw $ra, 68($sp) + lw $t0, 60($sp) + lw $t1, 56($sp) + lw $t2, 52($sp) + lw $t3, 48($sp) + lw $t4, 44($sp) + lw $t5, 40($sp) + lw $t6, 36($sp) + lw $t7, 32($sp) + lw $t8, 28($sp) + lw $t9, 24($sp) + addi $sp, $sp, 72 jr $ra +LABEL2: main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t8, 2 - li $a0, 3 - jal foo - move $t7, $v0 - move $t6, $t7 + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $a0, 5 + li $a1, 3 + jal addx + move $t1, $v0 + move $t0, $t1 la $a0, str0 - move $a1, $t6 + move $a1, $t0 + # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 @@ -141,10 +312,11 @@ syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t9, $v0 li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + lw $fp, 12($sp) + lw $ra, 16($sp) + jr $ra li $v0, 10 syscall +File copied to Windows at: /mnt/c/Users/anups/Downloads/output.s diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 070ba4d..bfab490 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -530,29 +530,53 @@ pair find_operator(const string& line) { } void generate_func_begin_MIPS(const string &func, int stackSize) { + cout << "idhar" << endl; + if (func != "main") + stackSize += 40; mipsCode.push_back(func + ":"); mipsCode.push_back(" move $fp, $sp"); - mipsCode.push_back(" addi $sp, $sp, -" + to_string(stackSize)); + mipsCode.push_back(" addi $sp, $sp, -" + to_string(stackSize) ); mipsCode.push_back(" sw $ra, " + to_string(stackSize - 4) + "($sp)"); mipsCode.push_back(" sw $fp, " + to_string(stackSize - 8) + "($sp)"); + cout << "yaha" << endl; + cout << func << endl; + if (func != "main") + { + int spillCount = 10; + int slot = 0; + for (int i = 0; i < spillCount; i++){ + string reg = "$t" + to_string(i); + mipsCode.push_back(" sw " + reg + ", " + to_string(stackSize - 12 - 4*slot) + "($sp)"); + slot++; + } + } + cout << "abe" << endl; last_offset.push(0); + cout << "bahar" << endl; } void generate_func_end_MIPS( string &func, int stackSize) { // mipsCode.push_back(" move $sp, $fp"); - mipsCode.push_back(" lw $fp, " + to_string(stackSize - 8) + "($sp)"); - mipsCode.push_back(" lw $ra, " + to_string(stackSize - 4) + "($sp)"); - mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); - if(func!="main") mipsCode.push_back(" jr $ra"); - // regMap.clear(); - // availableRegs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5","$t6", "$t7", "$t8", "$t9"}; - // floatVarToReg.clear(); - // availableFloatRegs = {"$f0", "$f1", "$f2", "$f3", "$f4", "$f5", "$f6", "$f7"}; - // loadedConstants.clear(); + // if(func!="main")stackSize += 40; + // mipsCode.push_back(" lw $fp, " + to_string(stackSize - 8) + "($sp)"); + // mipsCode.push_back(" lw $ra, " + to_string(stackSize - 4) + "($sp)"); + // if(func != "main"){ + // int slot = 0, spillCount = 10; + // for (int i = 0; i < spillCount; i++){ + // string reg = "$t" + to_string(i); + // mipsCode.push_back(" lw " + reg + ", " + to_string(stackSize - 12 - 4*slot) + "($sp)"); + // slot++; + // } + // mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); + // mipsCode.push_back(" jr $ra"); + // } + if(!last_offset.empty()) last_offset.pop(); + cout << "exit done" << endl; } -void generate_return_MIPS(scoped_symtab* scope,string val) { +void generate_return_MIPS(string& func, scoped_symtab* scope,string val) { + cout << func << " hello " << val < 0){ reverse(functionparams.begin(), functionparams.end()); - for(auto ¶m : functionparams){ - mipsCode.push_back(param); - } - functionparams.clear(); + for(auto ¶m : functionparams){ + mipsCode.push_back(param); + } + functionparams.clear(); } //cerr<<"Function name: " << funcName << endl; @@ -1574,6 +1614,8 @@ void pass1(vector>& codeList) { } } +string curr_func; + void pass2(vector>& codeList){ cout<<"Inside pass2"<>& codeList){ istringstream iss(t); string dummy, funcName; iss >> dummy >> funcName; + trim(funcName); + curr_func = funcName; generate_func_begin_MIPS(funcName, funcStackSize[funcName]); paramReceiveCounter = 0; paramFloatReceiveCounter = 0; @@ -1597,6 +1641,7 @@ void pass2(vector>& codeList){ istringstream iss(t); string dummy, funcName; iss >> dummy >> funcName; + curr_func = ""; generate_func_end_MIPS(funcName, funcStackSize[funcName]); continue; @@ -1605,9 +1650,10 @@ void pass2(vector>& codeList){ istringstream iss(t); string keyword, val; iss >> keyword >> val; - generate_return_MIPS(code.second,val); + generate_return_MIPS(curr_func, code.second, val); } - else if (t.rfind("if(", 0) == 0 && t.find("goto") != string::npos) { + else if (t.rfind("if (", 0) == 0 && t.find("goto") != string::npos) { + cout << "idhar aagaya" << endl; size_t start = t.find('(') + 1; size_t end = t.find(')'); string condition = t.substr(start, end - start); @@ -1877,5 +1923,10 @@ void codegen_main() { } printMipsCode(mipsCode, "./output/output.s"); + + string windowsPath = "/mnt/c/Users/anups/Downloads"; // Replace with your desired Windows path + string copyCommand = "cp ./output/output.s \"" + windowsPath + "/output.s\""; + system(copyCommand.c_str()); + cout << "File copied to Windows at: " << windowsPath << "/output.s" << endl; return; } \ No newline at end of file diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 64bab23..e884d2d 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -1840,9 +1840,9 @@ selection_statement string endlabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; - $$->code=$3->code+"\n"+"if("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+endlabel+"\n"+falselabel+":\n"+$7->code+"\n"+endlabel+":\n"; + $$->code=$3->code+"\n"+"if ("+ $3->place.first +") goto "+truelabel+"\n"+"goto "+falselabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+endlabel+"\n"+falselabel+":\n"+$7->code+"\n"+endlabel+":\n"; $$->final_code = $3->final_code; - $$->final_code.push_back({"if("+ $3->place.first +") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"if ("+ $3->place.first +") goto "+truelabel,curr_scope}); $$->final_code.push_back({"goto "+falselabel,curr_scope}); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); @@ -1867,8 +1867,8 @@ selection_statement temp.push_back({"goto "+label,curr_scope}); } else{ - str+="if ( "+$4->place.first+" == "+case_value+" ) goto "+label+"\n"; - temp.push_back({"if ( "+$4->place.first+" == "+case_value+" ) goto "+label,curr_scope}); + str+="if ( "+$4->place.first+" == "+case_value+") goto "+label+"\n"; + temp.push_back({"if ( "+$4->place.first+" == "+case_value+") goto "+label,curr_scope}); } } string endlabel=newlabel(); @@ -1892,10 +1892,10 @@ iteration_statement string truelabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; - $$->code=startlabel+":\n"+$3->code+"\n"+"if("+$3->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=startlabel+":\n"+$3->code+"\n"+"if ("+$3->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; $$->final_code.push_back({startlabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); - $$->final_code.push_back({"if("+$3->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"if ("+$3->place.first+") goto "+truelabel,curr_scope}); $$->final_code.push_back({"goto "+endlabel,curr_scope}); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); @@ -1912,10 +1912,10 @@ iteration_statement string truelabel=newlabel(); symbol_info* new_symbol=new symbol_info(); $$=new_symbol; - $$->code=$3->code+"\n"+startlabel+":\n"+"if("+$3->place.first+") goto "+endlabel+"\n"+"goto "+truelabel+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=$3->code+"\n"+startlabel+":\n"+"if ("+$3->place.first+") goto "+endlabel+"\n"+" goto "+truelabel+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+" goto "+startlabel+"\n"+endlabel+":\n"; $$->final_code.push_back({startlabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $3->final_code.begin(), $3->final_code.end()); - $$->final_code.push_back({"if("+$3->place.first+") goto "+endlabel,curr_scope}); + $$->final_code.push_back({"if ("+$3->place.first+") goto "+endlabel,curr_scope}); $$->final_code.push_back({"goto "+truelabel,curr_scope}); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); @@ -1935,10 +1935,10 @@ iteration_statement $$->final_code.insert($$->final_code.end(), $2->final_code.begin(), $2->final_code.end()); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); - $$->final_code.push_back({"if("+$5->place.first+") goto "+startlabel,curr_scope}); + $$->final_code.push_back({"if ("+$5->place.first+") goto "+startlabel,curr_scope}); $$->final_code.push_back({"goto "+endlabel,curr_scope}); $$->final_code.push_back({endlabel+":",curr_scope}); - $$->code=startlabel+":\n"+$2->code+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"if("+$5->place.first+") goto "+startlabel+"\n"+"goto "+endlabel+"\n"+endlabel+":\n"; + $$->code=startlabel+":\n"+$2->code+"\n"+truelabel+":\n"+$5->code+"\n"+"\n"+"if ("+$5->place.first+") goto "+startlabel+"\n"+"goto "+endlabel+"\n"+endlabel+":\n"; $$->code=replace_break_continue($$->code,endlabel,startlabel,1); $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } @@ -1952,13 +1952,13 @@ iteration_statement $$->final_code = $3->final_code; $$->final_code.push_back({startlabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); - $$->final_code.push_back({"if("+$4->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"if ("+$4->place.first+") goto "+truelabel,curr_scope}); $$->final_code.push_back({"goto "+endlabel,curr_scope}); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $6->final_code.begin(), $6->final_code.end()); $$->final_code.push_back({"goto "+startlabel,curr_scope}); $$->final_code.push_back({endlabel+":",curr_scope}); - $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$6->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if ("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$6->code+"\n"+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; $$->code=replace_break_continue($$->code,endlabel,startlabel,1); $$->final_code=replace_break_continue_final($$->final_code,endlabel,startlabel,1); } @@ -1973,7 +1973,7 @@ iteration_statement $$->final_code = $3->final_code; $$->final_code.push_back({startlabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $4->final_code.begin(), $4->final_code.end()); - $$->final_code.push_back({"if("+$4->place.first+") goto "+truelabel,curr_scope}); + $$->final_code.push_back({"if ("+$4->place.first+") goto "+truelabel,curr_scope}); $$->final_code.push_back({"goto "+endlabel,curr_scope}); $$->final_code.push_back({truelabel+":",curr_scope}); $$->final_code.insert($$->final_code.end(), $7->final_code.begin(), $7->final_code.end()); @@ -1981,7 +1981,7 @@ iteration_statement $$->final_code.insert($$->final_code.end(), $5->final_code.begin(), $5->final_code.end()); $$->final_code.push_back({"goto "+startlabel,curr_scope}); $$->final_code.push_back({endlabel+":",curr_scope}); - $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$7->code+"\n"+updatelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; + $$->code=$3->code+"\n"+startlabel+":\n"+$4->code+"\n"+"if ("+$4->place.first+") goto "+truelabel+"\n"+"goto "+endlabel+"\n"+truelabel+":\n"+$7->code+"\n"+updatelabel+":\n"+$5->code+"\n"+"goto "+startlabel+"\n"+endlabel+":\n"; $$->code=replace_break_continue($$->code,endlabel,updatelabel,0); $$->final_code=replace_break_continue_final($$->final_code,endlabel,updatelabel,0); } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index ca1b970..03e6e67 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,16 +1,15 @@ -int foo(int a){ - - return 2; +int addx(int a, int b){ + if(b == 0){ + return a; + } + else{ + return a+addx(a, b-1); + } } -int main() { - int a=2; - int c=foo(3); - printf("%d\n",c); +int main(){ + int b = addx(5, 3); + printf("HI%d\n", b); return 0; - } - - - From 24bbadadebffdf799b908ec0c9685b18f855ed36 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Tue, 29 Apr 2025 05:10:15 +0530 Subject: [PATCH 41/52] float operation --- Assignment4/output/output.s | 63 +------ Assignment4/output/output1.txt | 234 +++++------------------- Assignment4/output/output2.txt | 324 ++++++++++++++++++++++++++++----- Assignment4/src/codegen.cpp | 53 ++++-- Assignment4/test/input1.c | 17 +- 5 files changed, 378 insertions(+), 313 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 241ab24..e2f4e98 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,63 +1,18 @@ .data newline: .asciiz "\n" -str0: .asciiz "" -float_const_2.000000: .float 2.000000 -float_const_1.000000: .float 1.000000 .text .globl main main: move $fp, $sp - addi $sp, $sp, -36 - sw $ra, 32($sp) - sw $fp, 28($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - la $t5, float_const_1.000000 - l.s $f31, 0($t5) - li $t5, 0 - add $t6, $t6, $t5 - add $t6, $t6, $sp - s.s $f31, 0($t6) - li $t4, 1 - li $t3, 4 - mul $t2, $t4, $t3 - la $t1, float_const_2.000000 - l.s $f30, 0($t1) - li $t1, 0 - add $t2, $t2, $t1 - add $t2, $t2, $sp - s.s $f30, 0($t2) - li $t0, 4 - # Spilling t0 from $t6 - li $t6, 0 - # Spilling t1 from $t2 - mul $t2, $t0, $t6 - li $t0, 0 - add $t2, $t2, $t0 - add $t2, $t2, $sp - l.s $f29, 0($t2) + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li.s $f31, 2.530000 + li.s $f30, 4.300000 + add.s $f29, $f31, $f30 mov.s $f28, $f29 - la $a0, str0 - mov.s $f12, $f28 - # Spilling a from $t9 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - mov.s $f12, $f12 - li $v0, 2 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t9, $v0 - li $v0, 0 - lw $fp, 28($sp) - lw $ra, 32($sp) - addi $sp, $sp, 36 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 82a9d61..e12bb1d 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,21 +1,12 @@ +=====================LIST OF ERRORS=================================== +Line 4 : Missing return statement ====================================================================== -No Errors in the code -Intermediate code generated successfully -====================================================================== -0x6244cb5b04b0 FUNC_BEGIN main -0x6244cb5b6fc0 a := alloc 8 -0x6244cb5b6fc0 t0:= 0 * 4 -0x6244cb5b6fc0 *( a + t0 ) := 1.000000 -0x6244cb5b6fc0 t1:= 1 * 4 -0x6244cb5b6fc0 *( a + t1 ) := 2.000000 -0x6244cb5b6fc0 t2 := 4 * 0 -0x6244cb5b6fc0 t3 := *( a + t2 ) -0x6244cb5b6fc0 b:= t3 -0x6244cb5b6fc0 PARAM "%f\n" -0x6244cb5b6fc0 PARAM b -0x6244cb5b6fc0 t4 := CALL printf,2 -0x6244cb5b6fc0 RETURN 0 -0x6244cb5b04b0 FUNC_END main +0x563b3b1d54b0 FUNC_BEGIN main +0x563b3b1dbfc0 a:= 2.530000 +0x563b3b1dbfc0 b:= 4.300000 +0x563b3b1dbfc0 t0 := a + b +0x563b3b1dbfc0 c:= t0 +0x563b3b1d54b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -28,198 +19,63 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | float | 4 | 1.000000 | -| b | float | 4 | N/A | -| t0 | int | 4 | N/A | -| t1 | int | 4 | N/A | -| t2 | int | 4 | N/A | -| t3 | float | 4 | N/A | -| t4 | | 0 | N/A | +| a | float | 4 | 2.530000 | +| b | float | 4 | 4.300000 | +| c | float | 4 | N/A | +| t0 | float | 4 | N/A | ----------------------------------------------------------------- -Function main stack size: 36 +Function main stack size: 24 Pass 1 done -LHS: a, RHS: alloc 8 -Token rhs: alloc -Error!!!! Variable alloc not found in any scope -Token lhs: a -LHS: t0, RHS: 0 * 4 -Token lhs: t0 -LHS: *( a + t0 ), RHS: 1.000000 -Token lhs: a -Token lhs: t0 -LHS: t1, RHS: 1 * 4 -Token lhs: t1 -LHS: *( a + t1 ), RHS: 2.000000 +LHS: a, RHS: 2.530000 Token lhs: a -Token lhs: t1 -LHS: t2, RHS: 4 * 0 -Token lhs: t2 -LHS: t3, RHS: *( a + t2 ) -Token rhs: a -Token rhs: t2 -Token lhs: t3 -LHS: b, RHS: t3 -Token rhs: t3 +LHS: b, RHS: 4.300000 Token lhs: b -LHS: t4, RHS: CALL printf,2 -Token rhs: CALL -Token rhs: printf,2 -Error!!!! Variable printf,2 not found in any scope -Token lhs: t4 +LHS: t0, RHS: a + b +Token rhs: a +Token rhs: b +Token lhs: t0 +LHS: c, RHS: t0 +Token rhs: t0 +Token lhs: c Liveness analysis done Inside pass2 FUNC_BEGIN main -a := alloc 8 -Handling assignment: a := alloc 8 -Getting register for a -Assigned register $t9 to a -last_offset: 0 -Allocating 8 bytes for a at offset 0 -t0:= 0 * 4 -Handling operation: t0 := 0 * 4 -hi -Loaded integer constant 0 into $t8 -Loaded integer constant 4 into $t7 -Getting register for t0 -Assigned register $t6 to t0 -Operation: 0 * 4 -Registers: $t8, $t7, $t6 -*( a + t0 ) := 1.000000 -Handling array: *( a + t0 ) := 1.000000 -Array name: a -Float array -Error!!!! Variable 1.000000 not found in any scope -Assigning float register $f31 to 1.000000 +a:= 2.530000 +Handling assignment: a := 2.530000 +Assigning float register $f31 to a $f30 -Loaded float constant 1.000000 into $f31 -lhs2: t0 -lhs1: a -Getting register for t0 -Found register for t0 $t6 -regii: $t6 -val: 0 -t1:= 1 * 4 -Handling operation: t1 := 1 * 4 -hi -Loaded integer constant 1 into $t4 -Loaded integer constant 4 into $t3 -Getting register for t1 -Assigned register $t2 to t1 -Operation: 1 * 4 -Registers: $t4, $t3, $t2 -*( a + t1 ) := 2.000000 -Handling array: *( a + t1 ) := 2.000000 -Array name: a -Float array -Error!!!! Variable 2.000000 not found in any scope -Assigning float register $f30 to 2.000000 +b:= 4.300000 +Handling assignment: b := 4.300000 +Assigning float register $f30 to b $f30 -Loaded float constant 2.000000 into $f30 -lhs2: t1 -lhs1: a -Getting register for t1 -Found register for t1 $t2 -regii: $t2 -val: 0 -t2 := 4 * 0 -Handling operation: t2 := 4 * 0 -hi -Loaded integer constant 4 into $t0 -Handling register spill for 4 -Spilling t0 from $t6 -Loaded integer constant 0 into $t6 -Getting register for t2 -Handling register spill for t2 -Spilling t1 from $t2 -Assigned register $t2 to t2 -Operation: 4 * 0 -Registers: $t0, $t6, $t2 -t3 := *( a + t2 ) -Handling array: t3 := *( a + t2 ) -Array name: a -Getting register for t2 -Found register for t2 $t2 -Handling register spill for 0 -Assigning float register $f29 to t3 +t0 := a + b +Struct name: a +float +Handling operation: t0 := a + b +Assigning float register $f29 to t0 $f28 -b:= t3 -Handling assignment: b := t3 -Assigning float register $f28 to b +c:= t0 +Handling assignment: c := t0 +Assigning float register $f28 to c $f28 -PARAM "%f\n" -PARAM b -t4 := CALL printf,2 -Handling assignment: t4 := CALL printf,2 -Getting register for t4 -Handling register spill for t4 -Spilling a from $t9 -Assigned register $t9 to t4 -Handling function call: CALL printf,2 -----------------------2 -RETURN 0 FUNC_END main Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" -str0: .asciiz "" -float_const_2.000000: .float 2.000000 -float_const_1.000000: .float 1.000000 .text .globl main main: move $fp, $sp - addi $sp, $sp, -36 - sw $ra, 32($sp) - sw $fp, 28($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - la $t5, float_const_1.000000 - l.s $f31, 0($t5) - li $t5, 0 - add $t6, $t6, $t5 - add $t6, $t6, $sp - s.s $f31, 0($t6) - li $t4, 1 - li $t3, 4 - mul $t2, $t4, $t3 - la $t1, float_const_2.000000 - l.s $f30, 0($t1) - li $t1, 0 - add $t2, $t2, $t1 - add $t2, $t2, $sp - s.s $f30, 0($t2) - li $t0, 4 - # Spilling t0 from $t6 - li $t6, 0 - # Spilling t1 from $t2 - mul $t2, $t0, $t6 - li $t0, 0 - add $t2, $t2, $t0 - add $t2, $t2, $sp - l.s $f29, 0($t2) + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li.s $f31, 2.530000 + li.s $f30, 4.300000 + add.s $f29, $f31, $f30 mov.s $f28, $f29 - la $a0, str0 - mov.s $f12, $f28 - # Spilling a from $t9 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - mov.s $f12, $f12 - li $v0, 2 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t9, $v0 - li $v0, 0 - lw $fp, 28($sp) - lw $ra, 32($sp) - addi $sp, $sp, 36 + lw $fp, 16($sp) + lw $ra, 20($sp) + addi $sp, $sp, 24 li $v0, 10 syscall diff --git a/Assignment4/output/output2.txt b/Assignment4/output/output2.txt index 4941557..5c187e9 100644 --- a/Assignment4/output/output2.txt +++ b/Assignment4/output/output2.txt @@ -1,17 +1,38 @@ =====================LIST OF ERRORS=================================== -Line 6 : Missing return statement +Line 17 : Missing return statement ====================================================================== -0x55bc954118b0 FUNC_BEGIN main -0x55bc954183c0 a:= 1 -0x55bc954183c0 p:= &a -0x55bc954183c0 *p:= 10 -0x55bc954183c0 c:= a -0x55bc954118b0 FUNC_END main +0x562328a3e8b0 FUNC_BEGIN factorial +0x562328a46300 n := PARAM +0x562328a459c0 t0 := n == 0 +0x562328a459c0 if (t0) goto LABEL0 +0x562328a459c0 goto LABEL1 +0x562328a459c0 LABEL0: +0x562328a46300 RETURN 1 +0x562328a459c0 goto LABEL2 +0x562328a459c0 LABEL1: +0x562328a46bf0 t1 := n - 1 +0x562328a46bf0 PARAM t1 +0x562328a46bf0 t2 := CALL factorial,1 +0x562328a46bf0 t3 := n * t2 +0x562328a46bf0 RETURN t3 +0x562328a459c0 LABEL2: +0x562328a3e8b0 FUNC_END factorial +0x562328a3e8b0 FUNC_BEGIN main +0x562328a48d50 a:= 2 +0x562328a48d50 PARAM a +0x562328a48d50 t4 := CALL factorial,1 +0x562328a48d50 b:= t4 +0x562328a48d50 PARAM "HI%d\n" +0x562328a48d50 PARAM b +0x562328a48d50 t5 := CALL printf,2 +0x562328a48d50 RETURN 0 +0x562328a3e8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- +| factorial | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -19,56 +40,269 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | int | 4 | 1 | -| c | int | 4 | N/A | -| p | int* | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 20 +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| t1 | int | 4 | N/A | +| t2 | int | 4 | N/A | +| t3 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| n | int | 4 | N/A | +| t0 | int | 4 | N/A | +----------------------------------------------------------------- +----------------------------------------------------------------- +| Identifier | Type | Size | Value | +----------------------------------------------------------------- +| a | int | 4 | 2 | +| b | int | 4 | N/A | +| t4 | int | 4 | N/A | +| t5 | | 0 | N/A | +----------------------------------------------------------------- +Function factorial stack size: 28 +Function main stack size: 24 Pass 1 done +LHS: n, RHS: PARAM +Token rhs: PARAM +Token lhs: n +LHS: t0, RHS: n == 0 +Token rhs: n +Token lhs: t0 +LHS: t1, RHS: n - 1 +Token rhs: n +Token lhs: t1 +LHS: t2, RHS: CALL factorial,1 +Token rhs: CALL +Token rhs: factorial,1 +Error!!!! Variable factorial,1 not found in any scope +Token lhs: t2 +LHS: t3, RHS: n * t2 +Token rhs: n +Token rhs: t2 +Token lhs: t3 +LHS: a, RHS: 2 +Token lhs: a +LHS: t4, RHS: CALL factorial,1 +Token rhs: CALL +Token rhs: factorial,1 +Error!!!! Variable factorial,1 not found in any scope +Token lhs: t4 +LHS: b, RHS: t4 +Token rhs: t4 +Token lhs: b +LHS: t5, RHS: CALL printf,2 +Token rhs: CALL +Token rhs: printf,2 +Error!!!! Variable printf,2 not found in any scope +Token lhs: t5 Liveness analysis done +Inside pass2 +FUNC_BEGIN factorial +idhar +yaha +factorial +abe +bahar +n := PARAM +Handling param receive: n := PARAM +Getting register for n +Assigned register $t9 to n +t0 := n == 0 +Handling operation: t0 := n == 0 +Getting register for n +Found register for n $t9 +Loaded integer constant 0 into $t8 +Getting register for t0 +Assigned register $t7 to t0 +Operation: n == 0 +Registers: $t9, $t8, $t7 +if (t0) goto LABEL0 +idhar aagaya +Condition: t0, Label: LABEL0 +Getting register for t0 +Found register for t0 $t7 +goto LABEL1 +LABEL0: +RETURN 1 +factorial hello 1 +exit done +goto LABEL2 +LABEL1: +t1 := n - 1 +Handling operation: t1 := n - 1 +Getting register for n +Found register for n $t9 +Loaded integer constant 1 into $t6 +Getting register for t1 +Assigned register $t5 to t1 +Operation: n - 1 +Registers: $t9, $t6, $t5 +PARAM t1 +Getting register for t1 +Found register for t1 $t5 +t2 := CALL factorial,1 +Handling assignment: t2 := CALL factorial,1 +Getting register for t2 +Assigned register $t4 to t2 +Handling function call: CALL factorial,1 +t3 := n * t2 +Handling operation: t3 := n * t2 +Getting register for n +Found register for n $t9 +Getting register for t2 +Found register for t2 $t4 +Getting register for t3 +Assigned register $t3 to t3 +Operation: n * t2 +Registers: $t9, $t4, $t3 +RETURN t3 +factorial hello t3 +Getting register for t3 +Found register for t3 $t3 +exit done +LABEL2: +FUNC_END factorial +exit done FUNC_BEGIN main -a:= 1 -Handling assignment: a := 1 +idhar +yaha +main +abe +bahar +a:= 2 +Handling assignment: a := 2 Getting register for a -Assigned register $t9 to a -p:= &a -Handling pointer arrays: p:= &a -p &a -Getting register for p -Assigned register $t8 to p -*p:= 10 -Handling pointer arrays: *p:= 10 -*p 10 -Getting register for p -Found register for p $t8 -lhs p -c:= a -Handling assignment: c := a -Getting register for c -Assigned register $t7 to c +Assigned register $t2 to a +PARAM a Getting register for a -Variable a is on stack, loading into register +Found register for a $t2 +t4 := CALL factorial,1 +Handling assignment: t4 := CALL factorial,1 +Getting register for t4 +Assigned register $t1 to t4 +Handling function call: CALL factorial,1 +b:= t4 +Handling assignment: b := t4 +Getting register for b +Assigned register $t0 to b +Getting register for t4 +Found register for t4 $t1 +PARAM "HI%d\n" +PARAM b +Getting register for b +Found register for b $t0 +t5 := CALL printf,2 +Handling assignment: t5 := CALL printf,2 +Getting register for t5 +Handling register spill for t5 +Spilling n from $t9 +Assigned register $t9 to t5 +Handling function call: CALL printf,2 +printf me +----------------------2 +RETURN 0 +main hello 0 FUNC_END main +exit done Pass 2 done ################ MIPS Assembly Code ################ +.data +newline: .asciiz "\n" +str0: .asciiz "HI" .text .globl main +factorial: + move $fp, $sp + addi $sp, $sp, -68 + sw $ra, 64($sp) + sw $fp, 60($sp) + sw $t0, 56($sp) + sw $t1, 52($sp) + sw $t2, 48($sp) + sw $t3, 44($sp) + sw $t4, 40($sp) + sw $t5, 36($sp) + sw $t6, 32($sp) + sw $t7, 28($sp) + sw $t8, 24($sp) + sw $t9, 20($sp) + move $t9, $a0 + li $t8, 0 + seq $t7, $t9, $t8 + bnez $t7, LABEL0 + j LABEL1 +LABEL0: + lw $fp, 60($sp) + lw $ra, 64($sp) + lw $t0, 56($sp) + lw $t1, 52($sp) + lw $t2, 48($sp) + lw $t3, 44($sp) + lw $t4, 40($sp) + lw $t5, 36($sp) + lw $t6, 32($sp) + lw $t7, 28($sp) + lw $t8, 24($sp) + lw $t9, 20($sp) + addi $sp, $sp, 68 + li $v0, 1 + jr $ra + j LABEL2 +LABEL1: + li $t6, 1 + sub $t5, $t9, $t6 + move $a0, $t5 + jal factorial + move $t4, $v0 + mul $t3, $t9, $t4 + lw $fp, 60($sp) + lw $ra, 64($sp) + lw $t0, 56($sp) + lw $t1, 52($sp) + lw $t2, 48($sp) + lw $t3, 44($sp) + lw $t4, 40($sp) + lw $t5, 36($sp) + lw $t6, 32($sp) + lw $t7, 28($sp) + lw $t8, 24($sp) + lw $t9, 20($sp) + addi $sp, $sp, 68 + move $v0, $t3 + jr $ra +LABEL2: main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $t9, 1 - #Pushing a to stack - sw $t9, 0($sp) - addi $t8, $sp, 0 - #Loading constant 10 into register - li $t9, 10 - sw $t9, 0($t8) - lw $t6, 0($sp) - move $t7, $t6 - lw $fp, 12($sp) - lw $ra, 16($sp) - addi $sp, $sp, 20 + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t2, 2 + move $a0, $t2 + jal factorial + move $t1, $v0 + move $t0, $t1 + la $a0, str0 + move $a1, $t0 + # Spilling n from $t9 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t9, $v0 + lw $fp, 16($sp) + lw $ra, 20($sp) li $v0, 10 syscall +File copied to Windows at: /mnt/c/Users/anups/Downloads/output.s \ No newline at end of file diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 0ac5d55..5f37492 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -678,13 +678,28 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } } if(fl==0){ - r1 = getFloatRegister(scope,op1); - rx=r1; - if(floatVarToReg.count({scope,op1})){ - string tempr = floatVarToReg[{scope,op1}]; - mipsCode.push_back("mtc1 " + tempr + ", " + r1); - mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); + // r1 = getFloatRegister(scope,op1); + // rx=r1; + // if(floatVarToReg.count({scope,op1})){ + // string tempr = floatVarToReg[{scope,op1}]; + // mipsCode.push_back("mtc1 " + tempr + ", " + r1); + // mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); + // } + + string typ = getScope(scope,op1)->symbol_map[op1]->type; + if(typ == "int"){ + string r1 = getRegister(scope,op1); + string tempr = getFloatRegister(scope,op1); + mipsCode.push_back(" mtc1 " + r1 + ", " + tempr); + mipsCode.push_back(" cvt.s.w " + tempr+ ", " + tempr); + rx = tempr; } + else{ + string tempr = getFloatRegister(scope,op1); + rx = tempr; + } + + } @@ -715,12 +730,26 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } } if(fl==0){ - r2 = getFloatRegister(scope,op2); - ry=r2; - if(floatVarToReg.count({scope,op2})){ - string tempr = floatVarToReg[{scope,op2}]; - mipsCode.push_back("mtc1 " + tempr + ", " + r2); - mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); + // r2 = getFloatRegister(scope,op2); + // ry=r2; + // if(floatVarToReg.count({scope,op2})){ + // string tempr = floatVarToReg[{scope,op2}]; + // mipsCode.push_back("mtc1 " + tempr + ", " + r2); + // mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); + // } + + + string typ = getScope(scope,op2)->symbol_map[op2]->type; + if(typ == "int"){ + string r1 = getRegister(scope,op2); + string tempr = getFloatRegister(scope,op2); + mipsCode.push_back(" mtc1 " + r1 + ", " + tempr); + mipsCode.push_back(" cvt.s.w " + tempr+ ", " + tempr); + ry = tempr; + } + else{ + string tempr = getFloatRegister(scope,op2); + ry = tempr; } } diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index af43deb..3d49886 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,13 +1,4 @@ - -int main() { - float a[2]={1.0,2.0}; - float b=a[0]; - // int a[2]={1,2}; - // int b=a[0]; - printf("%f\n",b); - return 0; - -} - - - +int main(){ + float a = 2.53, b = 4.3; + float c = a + b; +} \ No newline at end of file From 50f8803e33ec4bc72d49e5583d913bdc0994f318 Mon Sep 17 00:00:00 2001 From: Rushit27 Date: Mon, 28 Apr 2025 23:46:36 +0000 Subject: [PATCH 42/52] multilevel ptr --- Assignment4/output/output.s | 64 +++------ Assignment4/output/output1.txt | 248 +++++++++++---------------------- Assignment4/src/codegen.cpp | 31 +++-- Assignment4/test/input1.c | 10 +- 4 files changed, 122 insertions(+), 231 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 241ab24..bb58bc7 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,63 +1,39 @@ .data newline: .asciiz "\n" str0: .asciiz "" -float_const_2.000000: .float 2.000000 -float_const_1.000000: .float 1.000000 .text .globl main main: move $fp, $sp - addi $sp, $sp, -36 - sw $ra, 32($sp) - sw $fp, 28($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - la $t5, float_const_1.000000 - l.s $f31, 0($t5) - li $t5, 0 - add $t6, $t6, $t5 - add $t6, $t6, $sp - s.s $f31, 0($t6) - li $t4, 1 - li $t3, 4 - mul $t2, $t4, $t3 - la $t1, float_const_2.000000 - l.s $f30, 0($t1) - li $t1, 0 - add $t2, $t2, $t1 - add $t2, $t2, $sp - s.s $f30, 0($t2) - li $t0, 4 - # Spilling t0 from $t6 - li $t6, 0 - # Spilling t1 from $t2 - mul $t2, $t0, $t6 - li $t0, 0 - add $t2, $t2, $t0 - add $t2, $t2, $sp - l.s $f29, 0($t2) - mov.s $f28, $f29 + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + li.s $f31, 1.000000 + #Pushing a to stack + s.s $f31, 0($sp) + li.s $f31, 0 + add.s $f30, $sp, $f31 + #Pushing b to stack + s.s $f30, 4($sp) + li.s $f30, 4 + add.s $f29, $sp, $f30 + l.s $f28, 0($f29) + s.s $f28, 8($sp) + #Loading constant 2.000000 into register + li.s $f27, 2.000000 + s.s $f27, 0($f28) la $a0, str0 - mov.s $f12, $f28 - # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - mov.s $f12, $f12 - li $v0, 2 syscall li $v0, 4 la $a0, newline syscall move $t9, $v0 li $v0, 0 - lw $fp, 28($sp) - lw $ra, 32($sp) - addi $sp, $sp, 36 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index 82a9d61..cb1b93d 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -2,20 +2,17 @@ No Errors in the code Intermediate code generated successfully ====================================================================== -0x6244cb5b04b0 FUNC_BEGIN main -0x6244cb5b6fc0 a := alloc 8 -0x6244cb5b6fc0 t0:= 0 * 4 -0x6244cb5b6fc0 *( a + t0 ) := 1.000000 -0x6244cb5b6fc0 t1:= 1 * 4 -0x6244cb5b6fc0 *( a + t1 ) := 2.000000 -0x6244cb5b6fc0 t2 := 4 * 0 -0x6244cb5b6fc0 t3 := *( a + t2 ) -0x6244cb5b6fc0 b:= t3 -0x6244cb5b6fc0 PARAM "%f\n" -0x6244cb5b6fc0 PARAM b -0x6244cb5b6fc0 t4 := CALL printf,2 -0x6244cb5b6fc0 RETURN 0 -0x6244cb5b04b0 FUNC_END main +0x55638336e8b0 FUNC_BEGIN main +0x5563833753c0 a:= 1.000000 +0x5563833753c0 b:= &a +0x5563833753c0 c:= &b +0x5563833753c0 t0 := *c +0x5563833753c0 *t0 := 2.000000 +0x5563833753c0 PARAM "%f\n" +0x5563833753c0 PARAM c +0x5563833753c0 t2 := CALL printf,2 +0x5563833753c0 RETURN 0 +0x55638336e8b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- @@ -29,131 +26,72 @@ Printing scope table | Identifier | Type | Size | Value | ----------------------------------------------------------------- | a | float | 4 | 1.000000 | -| b | float | 4 | N/A | -| t0 | int | 4 | N/A | -| t1 | int | 4 | N/A | -| t2 | int | 4 | N/A | -| t3 | float | 4 | N/A | -| t4 | | 0 | N/A | +| b | float* | 0 | N/A | +| c | float** | 0 | N/A | +| t0 | float | 4 | N/A | +| t1 | float | 4 | N/A | +| t2 | | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 36 +Function main stack size: 32 Pass 1 done -LHS: a, RHS: alloc 8 -Token rhs: alloc -Error!!!! Variable alloc not found in any scope +LHS: a, RHS: 1.000000 Token lhs: a -LHS: t0, RHS: 0 * 4 +LHS: b, RHS: &a +Token lhs: b +LHS: c, RHS: &b +Token lhs: c +LHS: t0, RHS: *c Token lhs: t0 -LHS: *( a + t0 ), RHS: 1.000000 -Token lhs: a +LHS: *t0, RHS: 2.000000 Token lhs: t0 -LHS: t1, RHS: 1 * 4 -Token lhs: t1 -LHS: *( a + t1 ), RHS: 2.000000 -Token lhs: a -Token lhs: t1 -LHS: t2, RHS: 4 * 0 -Token lhs: t2 -LHS: t3, RHS: *( a + t2 ) -Token rhs: a -Token rhs: t2 -Token lhs: t3 -LHS: b, RHS: t3 -Token rhs: t3 -Token lhs: b -LHS: t4, RHS: CALL printf,2 +LHS: t2, RHS: CALL printf,2 Token rhs: CALL Token rhs: printf,2 Error!!!! Variable printf,2 not found in any scope -Token lhs: t4 +Token lhs: t2 Liveness analysis done Inside pass2 FUNC_BEGIN main -a := alloc 8 -Handling assignment: a := alloc 8 -Getting register for a -Assigned register $t9 to a -last_offset: 0 -Allocating 8 bytes for a at offset 0 -t0:= 0 * 4 -Handling operation: t0 := 0 * 4 -hi -Loaded integer constant 0 into $t8 -Loaded integer constant 4 into $t7 -Getting register for t0 -Assigned register $t6 to t0 -Operation: 0 * 4 -Registers: $t8, $t7, $t6 -*( a + t0 ) := 1.000000 -Handling array: *( a + t0 ) := 1.000000 -Array name: a -Float array -Error!!!! Variable 1.000000 not found in any scope -Assigning float register $f31 to 1.000000 +a:= 1.000000 +Handling assignment: a := 1.000000 +Assigning float register $f31 to a $f30 -Loaded float constant 1.000000 into $f31 -lhs2: t0 -lhs1: a -Getting register for t0 -Found register for t0 $t6 -regii: $t6 -val: 0 -t1:= 1 * 4 -Handling operation: t1 := 1 * 4 -hi -Loaded integer constant 1 into $t4 -Loaded integer constant 4 into $t3 -Getting register for t1 -Assigned register $t2 to t1 -Operation: 1 * 4 -Registers: $t4, $t3, $t2 -*( a + t1 ) := 2.000000 -Handling array: *( a + t1 ) := 2.000000 -Array name: a -Float array -Error!!!! Variable 2.000000 not found in any scope -Assigning float register $f30 to 2.000000 +b:= &a +Handling pointer arrays: b:= &a +b &a +Assigning float register $f30 to b $f30 -Loaded float constant 2.000000 into $f30 -lhs2: t1 -lhs1: a -Getting register for t1 -Found register for t1 $t2 -regii: $t2 -val: 0 -t2 := 4 * 0 -Handling operation: t2 := 4 * 0 -hi -Loaded integer constant 4 into $t0 -Handling register spill for 4 -Spilling t0 from $t6 -Loaded integer constant 0 into $t6 -Getting register for t2 -Handling register spill for t2 -Spilling t1 from $t2 -Assigned register $t2 to t2 -Operation: 4 * 0 -Registers: $t0, $t6, $t2 -t3 := *( a + t2 ) -Handling array: t3 := *( a + t2 ) -Array name: a -Getting register for t2 -Found register for t2 $t2 -Handling register spill for 0 -Assigning float register $f29 to t3 +Pushing a into stack +Error!!!! Variable 0 not found in any scope +Assigning float register $f31 to 0 +$f30 +c:= &b +Handling pointer arrays: c:= &b +c &b +Assigning float register $f29 to c $f28 -b:= t3 -Handling assignment: b := t3 -Assigning float register $f28 to b +Pushing b into stack +Error!!!! Variable 4 not found in any scope +Assigning float register $f30 to 4 +$f30 +t0 := *c +Handling pointer arrays: t0 := *c +t0 *c +Assigning float register $f28 to t0 $f28 +*t0 := 2.000000 +Handling pointer arrays: *t0 := 2.000000 +*t0 2.000000 +lhs t0 +Error!!!! Variable 2.000000 not found in any scope +Assigning float register $f27 to 2.000000 +$f26 PARAM "%f\n" -PARAM b -t4 := CALL printf,2 -Handling assignment: t4 := CALL printf,2 -Getting register for t4 -Handling register spill for t4 -Spilling a from $t9 -Assigned register $t9 to t4 +PARAM c +t2 := CALL printf,2 +Handling assignment: t2 := CALL printf,2 +Getting register for t2 +Assigned register $t9 to t2 Handling function call: CALL printf,2 ----------------------2 RETURN 0 @@ -163,63 +101,39 @@ Pass 2 done .data newline: .asciiz "\n" str0: .asciiz "" -float_const_2.000000: .float 2.000000 -float_const_1.000000: .float 1.000000 .text .globl main main: move $fp, $sp - addi $sp, $sp, -36 - sw $ra, 32($sp) - sw $fp, 28($sp) - li $t8, 0 - li $t7, 4 - mul $t6, $t8, $t7 - la $t5, float_const_1.000000 - l.s $f31, 0($t5) - li $t5, 0 - add $t6, $t6, $t5 - add $t6, $t6, $sp - s.s $f31, 0($t6) - li $t4, 1 - li $t3, 4 - mul $t2, $t4, $t3 - la $t1, float_const_2.000000 - l.s $f30, 0($t1) - li $t1, 0 - add $t2, $t2, $t1 - add $t2, $t2, $sp - s.s $f30, 0($t2) - li $t0, 4 - # Spilling t0 from $t6 - li $t6, 0 - # Spilling t1 from $t2 - mul $t2, $t0, $t6 - li $t0, 0 - add $t2, $t2, $t0 - add $t2, $t2, $sp - l.s $f29, 0($t2) - mov.s $f28, $f29 + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + li.s $f31, 1.000000 + #Pushing a to stack + s.s $f31, 0($sp) + li $t31, 0 + add $t30, $sp, $t31 + #Pushing b to stack + s $t30, 4($sp) + li.s $f30, 4 + add.s $f29, $sp, $f30 + l.s $f28, 0($f29) + s.s $f28, 8($sp) + #Loading constant 2.000000 into register + li.s $f27, 2.000000 + s.s $f27, 0($f28) la $a0, str0 - mov.s $f12, $f28 - # Spilling a from $t9 #printf move $a0, $a0 li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - mov.s $f12, $f12 - li $v0, 2 syscall li $v0, 4 la $a0, newline syscall move $t9, $v0 li $v0, 0 - lw $fp, 28($sp) - lw $ra, 32($sp) - addi $sp, $sp, 36 + lw $fp, 24($sp) + lw $ra, 28($sp) + addi $sp, $sp, 32 li $v0, 10 syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 0ac5d55..469b5a7 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -119,9 +119,9 @@ void push_into_stack(pair varPair){ return; } - if(type=="int") reg = var_to_reg[{scope, var}]; - else if(type=="float") reg = floatVarToReg[{scope, var}]; - else if(type=="double"){ + if(type.substr(0,3)=="int") reg = var_to_reg[{scope, var}]; + else if(type.substr(0,5)=="float") reg = floatVarToReg[{scope, var}]; + else if(type.substr(0,6)=="double"){ reg = doubleVarToReg[{scope, var}]; } @@ -132,39 +132,39 @@ void push_into_stack(pair varPair){ if(scope->symbol_map[var]->offset == -1){ sym->offset = last_offset.top(); last_offset.top()+=get_size_from_type(sym->type); - if(type=="int") + if(type.substr(0,3)=="int") mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); - else if(type=="float") + else if(type.substr(0,5)=="float") mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); - else if(type=="double") + else if(type.substr(0,6)=="double") mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); else{ cerr<<"Error: Type not supported for push into stack\n"; return; } }else{ - if(type=="int") + if(type.substr(0,3)=="int") mipsCode.push_back(" sw " + reg + ", " + to_string(sym->offset) + "($sp)"); - else if(type=="float") + else if(type.substr(0,5)=="float") mipsCode.push_back(" s.s " + reg + ", " + to_string(sym->offset) + "($sp)"); - else if(type=="double") + else if(type.substr(0,6)=="double") mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); else{ cerr<<"Error: Type not supported for push into stack\n"; return; } } - if(type=="int") + if(type.substr(0,3)=="int") { availableRegs.push_back(reg); var_to_reg.erase({scope, var}); } - else if(type=="float") + else if(type.substr(0,5)=="float") { floatVarToReg.erase({scope, var}); } - else if(type=="double") + else if(type.substr(0,6)=="double") { doubleVarToReg.erase({scope, var}); @@ -1415,6 +1415,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { else{ if(rhs_ptr){ if(var_to_reg.count({getScope(scope, rhs), rhs})){ + cerr<<"Pointer found in register\n"; dst=getRegister(scope, lhs); mipsCode.push_back(" lw " + dst + ", " + "0(" + var_to_reg[{getScope(scope, rhs), rhs}] + ")"); symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; @@ -1462,14 +1463,14 @@ void handle_pointer(const string& line, scoped_symtab* scope) { } else{ symbol_info* rhsInfo = getScope(scope, rhs)->symbol_map[rhs]; - if(rhsInfo->type=="int"){ + if(rhsInfo->type.substr(0,3)=="int"){ dst=getRegister(scope, lhs); if(var_to_reg.count({scope, rhs})){ push_into_stack({scope, rhs}); } mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); } - else if(rhsInfo->type=="float"){ + else if(rhsInfo->type.substr(0,5)=="float"){ dst=getFloatRegister(scope, lhs); string regis=floatVarToReg[{scope, rhs}]; if(floatVarToReg.count({scope, rhs})){ @@ -1493,7 +1494,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { mipsCode.push_back(" li.s " + regii + ", " + val); mipsCode.push_back(" add.s " + dst + ", $sp, " + regii); } - else if(rhsInfo->type=="double"){ + else if(rhsInfo->type.substr(0,6)=="double"){ string reg = getFloatRegister(scope, rhs,"double"); string regis=doubleVarToReg[{scope, rhs}]; if(doubleVarToReg.count({scope, rhs})){ diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index af43deb..a5af7e4 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,10 +1,10 @@ int main() { - float a[2]={1.0,2.0}; - float b=a[0]; - // int a[2]={1,2}; - // int b=a[0]; - printf("%f\n",b); + float a = 1.0; + float *b = &a; + float **c = &b; + **c = 2.0; + printf("%f\n", c); return 0; } From 9842420631a5e398972d559c292f372bb6748042 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Tue, 29 Apr 2025 05:20:25 +0530 Subject: [PATCH 43/52] print --- Assignment4/output/output.s | 92 +++++-------------- Assignment4/output/output1.txt | 160 ++++++++++----------------------- Assignment4/src/codegen.cpp | 2 +- Assignment4/test/input1.c | 3 +- 4 files changed, 69 insertions(+), 188 deletions(-) diff --git a/Assignment4/output/output.s b/Assignment4/output/output.s index 2854db4..73d9648 100644 --- a/Assignment4/output/output.s +++ b/Assignment4/output/output.s @@ -1,80 +1,28 @@ .data newline: .asciiz "\n" +str0: .asciiz "hello world" .text .globl main -addx: - move $fp, $sp - addi $sp, $sp, -72 - sw $ra, 68($sp) - sw $fp, 64($sp) - sw $t0, 60($sp) - sw $t1, 56($sp) - sw $t2, 52($sp) - sw $t3, 48($sp) - sw $t4, 44($sp) - sw $t5, 40($sp) - sw $t6, 36($sp) - sw $t7, 32($sp) - sw $t8, 28($sp) - sw $t9, 24($sp) - move $t9, $a0 - move $t8, $a1 - li $t7, 0 - seq $t6, $t8, $t7 - bnez $t6, LABEL0 - j LABEL1 -LABEL0: - move $v0, $t9 - lw $fp, 64($sp) - lw $ra, 68($sp) - lw $t0, 60($sp) - lw $t1, 56($sp) - lw $t2, 52($sp) - lw $t3, 48($sp) - lw $t4, 44($sp) - lw $t5, 40($sp) - lw $t6, 36($sp) - lw $t7, 32($sp) - lw $t8, 28($sp) - lw $t9, 24($sp) - addi $sp, $sp, 72 - jr $ra - j LABEL2 -LABEL1: - li $t5, 1 - sub $t4, $t8, $t5 - move $a0, $t9 - move $a1, $t4 - jal addx - move $t3, $v0 - add $t2, $t9, $t3 - move $v0, $t2 - lw $fp, 64($sp) - lw $ra, 68($sp) - lw $t0, 60($sp) - lw $t1, 56($sp) - lw $t2, 52($sp) - lw $t3, 48($sp) - lw $t4, 44($sp) - lw $t5, 40($sp) - lw $t6, 36($sp) - lw $t7, 32($sp) - lw $t8, 28($sp) - lw $t9, 24($sp) - addi $sp, $sp, 72 - jr $ra -LABEL2: main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li.s $f31, 2.530000 - li.s $f30, 4.300000 - add.s $f29, $f31, $f30 - mov.s $f28, $f29 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + la $a0, str0 + li.s $f12, 3.100000 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t9, $v0 li $v0, 10 syscall diff --git a/Assignment4/output/output1.txt b/Assignment4/output/output1.txt index f42ff51..6c666b3 100644 --- a/Assignment4/output/output1.txt +++ b/Assignment4/output/output1.txt @@ -1,18 +1,16 @@ =====================LIST OF ERRORS=================================== -Line 4 : Missing return statement +Line 3 : Missing return statement ====================================================================== -0x563b3b1d54b0 FUNC_BEGIN main -0x563b3b1dbfc0 a:= 2.530000 -0x563b3b1dbfc0 b:= 4.300000 -0x563b3b1dbfc0 t0 := a + b -0x563b3b1dbfc0 c:= t0 -0x563b3b1d54b0 FUNC_END main +0x6083836aa4b0 FUNC_BEGIN main +0x6083836b0fc0 PARAM "hello world %d" +0x6083836b0fc0 PARAM 3.100000 +0x6083836b0fc0 t0 := CALL printf,2 +0x6083836aa4b0 FUNC_END main ====================================================================== Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| addx | int | 4 | N/A | | main | int | 4 | N/A | | printf | | 0 | N/A | | scanf | | 0 | N/A | @@ -20,127 +18,63 @@ Printing scope table ----------------------------------------------------------------- | Identifier | Type | Size | Value | ----------------------------------------------------------------- -| a | float | 4 | 2.530000 | -| b | float | 4 | 4.300000 | -| c | float | 4 | N/A | -| t0 | float | 4 | N/A | +| t0 | | 0 | N/A | ----------------------------------------------------------------- -Function main stack size: 24 +Function main stack size: 12 Pass 1 done -LHS: a, RHS: 2.530000 -Token lhs: a -LHS: b, RHS: 4.300000 -Token lhs: b -LHS: t0, RHS: a + b -Token rhs: a -Token rhs: b +LHS: t0, RHS: CALL printf,2 +Token rhs: CALL +Token rhs: printf,2 +Error!!!! Variable printf,2 not found in any scope Token lhs: t0 -LHS: c, RHS: t0 -Token rhs: t0 -Token lhs: c Liveness analysis done Inside pass2 FUNC_BEGIN main -a:= 2.530000 -Handling assignment: a := 2.530000 -Assigning float register $f31 to a -$f30 -b:= 4.300000 -Handling assignment: b := 4.300000 -Assigning float register $f30 to b -$f30 -t0 := a + b -Struct name: a -float -Handling operation: t0 := a + b -Assigning float register $f29 to t0 -$f28 -c:= t0 -Handling assignment: c := t0 -Assigning float register $f28 to c -$f28 +idhar +yaha +main +abe +bahar +PARAM "hello world %d" +PARAM 3.100000 +t0 := CALL printf,2 +Handling assignment: t0 := CALL printf,2 +Getting register for t0 +Assigned register $t9 to t0 +Handling function call: CALL printf,2 +printf me +----------------------2 FUNC_END main exit done Pass 2 done ################ MIPS Assembly Code ################ .data newline: .asciiz "\n" +str0: .asciiz "hello world" .text .globl main -addx: - move $fp, $sp - addi $sp, $sp, -72 - sw $ra, 68($sp) - sw $fp, 64($sp) - sw $t0, 60($sp) - sw $t1, 56($sp) - sw $t2, 52($sp) - sw $t3, 48($sp) - sw $t4, 44($sp) - sw $t5, 40($sp) - sw $t6, 36($sp) - sw $t7, 32($sp) - sw $t8, 28($sp) - sw $t9, 24($sp) - move $t9, $a0 - move $t8, $a1 - li $t7, 0 - seq $t6, $t8, $t7 - bnez $t6, LABEL0 - j LABEL1 -LABEL0: - move $v0, $t9 - lw $fp, 64($sp) - lw $ra, 68($sp) - lw $t0, 60($sp) - lw $t1, 56($sp) - lw $t2, 52($sp) - lw $t3, 48($sp) - lw $t4, 44($sp) - lw $t5, 40($sp) - lw $t6, 36($sp) - lw $t7, 32($sp) - lw $t8, 28($sp) - lw $t9, 24($sp) - addi $sp, $sp, 72 - jr $ra - j LABEL2 -LABEL1: - li $t5, 1 - sub $t4, $t8, $t5 - move $a0, $t9 - move $a1, $t4 - jal addx - move $t3, $v0 - add $t2, $t9, $t3 - move $v0, $t2 - lw $fp, 64($sp) - lw $ra, 68($sp) - lw $t0, 60($sp) - lw $t1, 56($sp) - lw $t2, 52($sp) - lw $t3, 48($sp) - lw $t4, 44($sp) - lw $t5, 40($sp) - lw $t6, 36($sp) - lw $t7, 32($sp) - lw $t8, 28($sp) - lw $t9, 24($sp) - addi $sp, $sp, 72 - jr $ra -LABEL2: main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li.s $f31, 2.530000 - li.s $f30, 4.300000 - add.s $f29, $f31, $f30 - mov.s $f28, $f29 - lw $fp, 16($sp) - lw $ra, 20($sp) - addi $sp, $sp, 24 + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) + la $a0, str0 + li.s $f12, 3.100000 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t9, $v0 li $v0, 10 syscall +cp: cannot create regular file '/mnt/c/Users/anups/Downloads/output.s': No such file or directory File copied to Windows at: /mnt/c/Users/anups/Downloads/output.s diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index c311b76..8be55d7 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1020,7 +1020,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { if (pos != string::npos) { literal = var.substr(0, pos); } - + else literal.pop_back(); // Remove leading and trailing spaces from the literal size_t start = literal.find_first_not_of(' '); size_t end = literal.find_last_not_of(' '); diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 3d49886..94f332d 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,4 +1,3 @@ int main(){ - float a = 2.53, b = 4.3; - float c = a + b; + printf("hello world %d",3.1); } \ No newline at end of file From 110a16dcc893d16cc11467ad8f31601586e33799 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Tue, 29 Apr 2025 07:35:42 +0530 Subject: [PATCH 44/52] cleaned --- Assignment4/Makefile | 5 +- Assignment4/include/functions.h | 6 +- Assignment4/output/letstest.s | 62 ---- Assignment4/output/{output.s => output1.s} | 3 + Assignment4/output/output1.txt | 80 ----- Assignment4/output/output2.txt | 308 ----------------- Assignment4/run | 20 ++ Assignment4/run.sh | 2 +- Assignment4/src/codegen.cpp | 364 ++------------------- Assignment4/src/help | Bin 1765048 -> 0 bytes Assignment4/src/help.cpp | 70 ---- Assignment4/src/parser.y | 18 +- Assignment4/src/test | Bin 16512 -> 0 bytes Assignment4/src/test.cpp | 9 - 14 files changed, 65 insertions(+), 882 deletions(-) delete mode 100644 Assignment4/output/letstest.s rename Assignment4/output/{output.s => output1.s} (69%) delete mode 100644 Assignment4/output/output1.txt delete mode 100644 Assignment4/output/output2.txt create mode 100755 Assignment4/run delete mode 100755 Assignment4/src/help delete mode 100644 Assignment4/src/help.cpp delete mode 100755 Assignment4/src/test delete mode 100644 Assignment4/src/test.cpp diff --git a/Assignment4/Makefile b/Assignment4/Makefile index 2192cd3..1fddb31 100644 --- a/Assignment4/Makefile +++ b/Assignment4/Makefile @@ -14,7 +14,7 @@ YACC_FILE = src/parser.y INCLUDE_DIR = include # Default target -all: run +all: $(EXEC) # Rule to compile the parser and scanner $(EXEC): clean $(YACC_FILE) $(LEX_FILE) @@ -22,9 +22,6 @@ $(EXEC): clean $(YACC_FILE) $(LEX_FILE) $(LEX) $(LEX_FILE) $(CC) $(CFLAGS) -I$(INCLUDE_DIR) parser.tab.c lex.yy.c src/codegen.cpp -o $(EXEC) -ll -run: $(EXEC) - ./run.sh - # Clean build files clean: rm -f $(EXEC) lex.yy.c parser.tab.c parser.tab.h diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index 37f7dab..612ceeb 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -164,11 +164,11 @@ void cleanTAC(string input) { } // Check if the line is a label or function - cerr< $(basename "$output_file")" + $EXEC < "$testfile"> "$output_file" 2>&1 + ((counter++)) +done + +# echo "All test cases executed. Outputs stored in $OUTPUT_DIR." diff --git a/Assignment4/run.sh b/Assignment4/run.sh index 4d53257..4c40299 100755 --- a/Assignment4/run.sh +++ b/Assignment4/run.sh @@ -11,7 +11,7 @@ mkdir -p $OUTPUT_DIR # Run parser on each test file and store output separately counter=1 for testfile in $TEST_DIR/*.c; do - output_file="$OUTPUT_DIR/output${counter}.txt" + output_file="$OUTPUT_DIR/output${counter}.s" echo "Processing $(basename "$testfile") -> $(basename "$output_file")" $EXEC < "$testfile"> "$output_file" 2>&1 ((counter++)) diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 68f07ba..99de138 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -1,12 +1,7 @@ #include #include -#include // Include your utility header +#include using namespace std; - -// Simulated symbol table structure - - -// Symbol table type int currentInstructionIndex = -1; static int paramCounter = 0; static int paramFloatCounter = 0; @@ -99,12 +94,10 @@ scoped_symtab* getScope(scoped_symtab* scope, string& var) { } scope = scope->parent; } - cerr<<"Error!!!! Variable " << var << " not found in any scope\n"; return nullptr; } void push_into_stack(pair varPair){ - cerr<<"Pushing " << varPair.second << " into stack\n"; mipsCode.push_back(" #Pushing " + varPair.second + " to stack"); scoped_symtab* scope = varPair.first; string var = varPair.second; @@ -112,9 +105,7 @@ void push_into_stack(pair varPair){ string type=sym->type; string reg; if(type.find("struct") != string::npos || type.find("union") != string::npos){ - cout<<"Pushing struct/union " << var << " into stack\n"; reg=var_to_reg[{scope, var}]; - cout<offset< varPair){ else if(type.substr(0,6)=="double"){ reg = doubleVarToReg[{scope, var}]; } - - // else{ - // cerr<<"Error: Type not supported for push into stack\n"; - // return; - // } if(scope->symbol_map[var]->offset == -1){ sym->offset = last_offset.top(); last_offset.top()+=get_size_from_type(sym->type); @@ -139,7 +125,6 @@ void push_into_stack(pair varPair){ else if(type.substr(0,6)=="double") mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); else{ - cerr<<"Error: Type not supported for push into stack\n"; return; } }else{ @@ -150,7 +135,6 @@ void push_into_stack(pair varPair){ else if(type.substr(0,6)=="double") mipsCode.push_back(" s.d " + reg + ", " + to_string(sym->offset) + "($sp)"); else{ - cerr<<"Error: Type not supported for push into stack\n"; return; } } @@ -170,7 +154,6 @@ void push_into_stack(pair varPair){ doubleVarToReg.erase({scope, var}); } else{ - cerr<<"Error: Type not supported for push into stack\n"; return; } @@ -178,9 +161,7 @@ void push_into_stack(pair varPair){ } void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { - cout << "Handling double register spill for " << newVar << endl; - // 1) Spill any dead double‐mapped var immediately for (auto it = doubleVarToReg.begin(); it != doubleVarToReg.end(); ++it) { auto [vscope, vname] = it->first; string reg = it->second; @@ -197,9 +178,7 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar } if (!usedNow && !liveFuture) { - cout << "Spilling double " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling " + vname + " from " + reg); - // free even reg for doubles and its buddy in float pool availableDoubleRegs.push_back(reg); availableFloatRegs.push_back(reg); int num = stoi(reg.substr(2)); @@ -210,7 +189,6 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar } } - // 2) Try to carve out a contiguous pair by spilling a dead float var + its buddy for (auto fit = floatVarToReg.begin(); fit != floatVarToReg.end(); ++fit) { auto [vscope, vname] = fit->first; string reg = fit->second; @@ -226,22 +204,17 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar } } if (usedNow || liveFuture) - continue; // candidate must be dead + continue; - // identify buddy register int num = stoi(reg.substr(2)); bool regIsEven = (num % 2 == 0); string buddy = "$f" + to_string(regIsEven ? num + 1 : num - 1); - - // find the buddy's var auto budIt = find_if( floatVarToReg.begin(), floatVarToReg.end(), [&](auto const& kv){ return kv.second == buddy; } ); if (budIt == floatVarToReg.end()) - continue; // buddy not mapped → skip - - // check buddy's liveness + continue; auto [bScope, bName] = budIt->first; bool budUsedNow = currentLiveness[currentInstructionIndex] .use.count({bScope, bName}); @@ -254,39 +227,29 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar } } if (budUsedNow || budLiveFuture) - continue; // buddy is live → can't form pair here + continue; - // spill both the float var and its buddy - cout << "Spilling float " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling " + vname + " from " + reg); availableFloatRegs.push_back(reg); floatVarToReg.erase(fit); - cout << "Spilling buddy " << bName << " from " << buddy << endl; mipsCode.push_back(" # Spilling " + bName + " from " + buddy); availableFloatRegs.push_back(buddy); floatVarToReg.erase(budIt); - // choose the even‐numbered reg for our new double string evenReg = regIsEven ? reg : buddy; - // remove it from the double pool auto dit = find(availableDoubleRegs.begin(), availableDoubleRegs.end(), evenReg); if (dit != availableDoubleRegs.end()) availableDoubleRegs.erase(dit); - // allocate new double doubleVarToReg[{currentScope, newVar}] = evenReg; return; } - - // 3) Last resort: spill an existing double var to stack auto dit = doubleVarToReg.begin(); auto varPair = dit->first; string regToSpill = dit->second; - cerr << "Spilling to stack " << varPair.second - << " from " << regToSpill << endl; mipsCode.push_back(" # Spilling " + varPair.second + " from " + regToSpill); availableDoubleRegs.push_back(regToSpill); @@ -299,9 +262,7 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar } void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) { - cout << "Handling float register spill for " << newVar << endl; - // 1) Try to spill a dead float‐mapped var for (auto it = floatVarToReg.begin(); it != floatVarToReg.end(); ++it) { auto [vscope, vname] = it->first; string reg = it->second; @@ -318,7 +279,6 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } if (!usedNow && !liveFuture) { - cout << "Spilling " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling " + vname + " from " + reg); availableFloatRegs.push_back(reg); int reg_num = stoi(reg.substr(2)); @@ -343,7 +303,6 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } } - // 2) Then try to spill a dead double‐mapped var for (auto it = doubleVarToReg.begin(); it != doubleVarToReg.end(); ++it) { auto [vscope, vname] = it->first; string reg = it->second; @@ -360,9 +319,7 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } if (!usedNow && !liveFuture) { - cout << "Spilling double " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling double " + vname + " from " + reg); - // free both the even‐reg slot and the float reg pool string pair=reg.substr(0,2)+to_string(stoi(reg.substr(2))+1); availableDoubleRegs.push_back(reg); availableFloatRegs.push_back(reg); @@ -372,13 +329,9 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } } - // 3) Everyone’s live → just pick any float‐mapped var and spill it auto it = floatVarToReg.begin(); - auto varPair = it->first; // (scope, varName) + auto varPair = it->first; string reg = it->second; - - cerr << "Spilling to stack " << varPair.second - << " from " << reg << endl; mipsCode.push_back(" # Spilling " + varPair.second + " from " + reg); availableFloatRegs.push_back(reg); int reg_num = stoi(reg.substr(2)); @@ -404,20 +357,14 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) } void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { - // currentScope = getScope(currentScope, newVar); - cout << "Handling register spill for " << newVar << endl; - int maxdist=0; string regi="$t0"; for (auto it = var_to_reg.begin(); it != var_to_reg.end(); ++it) { auto [vscope, vname] = it->first; string reg = it->second; - - // 1. Check use in current instruction bool isUsedNow = currentLiveness[currentInstructionIndex].use.count({vscope, vname}); bool isLiveInFuture = false; - // 2. Check future liveness for (int i = currentInstructionIndex + 1; i < currentLiveness.size(); ++i) { if (currentLiveness[i].live_in.count({vscope, vname})) { if (currentLiveness[i].index - currentInstructionIndex > maxdist && !isUsedNow) { @@ -429,7 +376,6 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { } } if (!isLiveInFuture && !isUsedNow) { - cout<<"Spilling " << vname << " from " << reg << endl; mipsCode.push_back(" # Spilling " + vname + " from " + reg); availableRegs.push_back(reg); reg_to_var.erase(reg); @@ -437,7 +383,6 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { return; } } - //if everyone busy, we'll have to save any, so always choosing the first one pair varPair = reg_to_var[regi]; if(varPair.second==""){ availableRegs.push_back(regi); @@ -445,15 +390,12 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { return; } - cerr<<"Spilling to stack " << varPair.second << " from " << regi << endl; push_into_stack(varPair); - cerr<<"hi"<symbol_map[var]->offset != -1){ - cout<<"Variable " << var << " is on stack, loading into register\n"; string reg = availableRegs.back(); availableRegs.pop_back(); mipsCode.push_back(" lw " + reg + ", " + to_string(scope->symbol_map[var]->offset) + "($sp)"); @@ -524,7 +458,6 @@ string getRegister(scoped_symtab* scope, string& var) { availableRegs.pop_back(); var_to_reg[{scope,var}] = reg; reg_to_var[reg] = {scope,var}; - cout<<"Assigned register " << reg << " to " << var << endl; return reg; } @@ -542,7 +475,6 @@ pair find_operator(const string& line) { } void generate_func_begin_MIPS(const string &func, int stackSize) { - cout << "idhar" << endl; if (func != "main") stackSize += 40; mipsCode.push_back(func + ":"); @@ -550,8 +482,6 @@ void generate_func_begin_MIPS(const string &func, int stackSize) { mipsCode.push_back(" addi $sp, $sp, -" + to_string(stackSize) ); mipsCode.push_back(" sw $ra, " + to_string(stackSize - 4) + "($sp)"); mipsCode.push_back(" sw $fp, " + to_string(stackSize - 8) + "($sp)"); - cout << "yaha" << endl; - cout << func << endl; if (func != "main") { int spillCount = 10; @@ -562,36 +492,17 @@ void generate_func_begin_MIPS(const string &func, int stackSize) { slot++; } } - cout << "abe" << endl; last_offset.push(0); - cout << "bahar" << endl; } void generate_func_end_MIPS( string &func, int stackSize) { - // mipsCode.push_back(" move $sp, $fp"); - // if(func!="main")stackSize += 40; - // mipsCode.push_back(" lw $fp, " + to_string(stackSize - 8) + "($sp)"); - // mipsCode.push_back(" lw $ra, " + to_string(stackSize - 4) + "($sp)"); - // if(func != "main"){ - // int slot = 0, spillCount = 10; - // for (int i = 0; i < spillCount; i++){ - // string reg = "$t" + to_string(i); - // mipsCode.push_back(" lw " + reg + ", " + to_string(stackSize - 12 - 4*slot) + "($sp)"); - // slot++; - // } - // mipsCode.push_back(" addi $sp, $sp, " + to_string(stackSize)); - // mipsCode.push_back(" jr $ra"); - // } if(!last_offset.empty()) last_offset.pop(); - cout << "exit done" << endl; } void generate_return_MIPS(string& func, scoped_symtab* scope,string val) { - cout << func << " hello " << val < emittedFloats; if (!emittedFloats.count(var)) { emittedFloats.insert(var); - // mipsCode.insert(mipsCode.begin(), ".data"); mipsCode.insert(mipsCode.begin(), floatLabel + ": .float " + var); - // mipsCode.insert(mipsCode.begin() + 2, ".text"); } if(availableRegs.empty()) handleRegisterSpill(scope,var); string reg1 = availableRegs.back(); - // Load float from memory mipsCode.push_back(" la " + reg1 + ", " + floatLabel); mipsCode.push_back(" l.s " + reg + ", 0(" + reg1 + ")"); loadedConstants[var] = true; reg_of_const[var] = reg; - cout << "Loaded float constant " << var << " into " << reg << endl; return; } - // Fallback to value from symbol table symbol_info* sym = scope->symbol_map[var]; if (sym && sym->ptr) { if (sym->type == "int") { @@ -663,27 +557,21 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { mipsCode.push_back(" li " + reg + ", " + to_string(*val)); loadedConstants[var] = true; reg_of_const[var] = reg; - cout << "Loaded symbol (int) " << var << " into " << reg << endl; } else if (sym->type == "float") { float* val = static_cast(sym->ptr); string valStr = to_string(*val); string floatLabel = "float_sym_" + var; - - // mipsCode.insert(mipsCode.begin(), ".data"); mipsCode.insert(mipsCode.begin(), floatLabel + ": .float " + valStr); - // mipsCode.insert(mipsCode.begin() + 2, ".text"); mipsCode.push_back(" la " + reg + ", " + floatLabel); mipsCode.push_back(" l.s " + reg + ", 0(" + reg + ")"); loadedConstants[var] = true; reg_of_const[var] = reg; - cout << "Loaded symbol (float) " << var << " into " << reg << endl; } } } void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, scoped_symtab* scope) { - cout<<"Handling operation: " << lhs << " := " << rhs << endl; bool isFloat; isFloat = (getScope(scope,lhs)->symbol_map[lhs]->type == "float"); string op1 = trim(rhs.substr(0, operator_pos)); @@ -703,7 +591,6 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& for(auto x:static_var){ if(x.first==scope && x.second==op1){ - cout<<"Static variable " << op1 << " found\n"; r1 = getRegister(scope,op1); mipsCode.push_back(" la " + r1 + ", " + "static_" + op1); string rr=getFloatRegister(scope,op1); @@ -717,14 +604,6 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } } if(fl==0){ - // r1 = getFloatRegister(scope,op1); - // rx=r1; - // if(floatVarToReg.count({scope,op1})){ - // string tempr = floatVarToReg[{scope,op1}]; - // mipsCode.push_back("mtc1 " + tempr + ", " + r1); - // mipsCode.push_back("cvt.s.w " + r1+ ", " + r1); - // } - string typ = getScope(scope,op1)->symbol_map[op1]->type; if(typ == "int"){ string r1 = getRegister(scope,op1); @@ -737,8 +616,6 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& string tempr = getFloatRegister(scope,op1); rx = tempr; } - - } @@ -755,7 +632,6 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& for(auto x:static_var){ if(x.first==scope && x.second==op1){ - cout<<"Static variable " << op2 << " found\n"; r2 = getRegister(scope,op1); mipsCode.push_back(" la " + r2 + ", " + "static_" + op2); string rr=getFloatRegister(scope,op2); @@ -769,15 +645,6 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } } if(fl==0){ - // r2 = getFloatRegister(scope,op2); - // ry=r2; - // if(floatVarToReg.count({scope,op2})){ - // string tempr = floatVarToReg[{scope,op2}]; - // mipsCode.push_back("mtc1 " + tempr + ", " + r2); - // mipsCode.push_back("cvt.s.w " + r2+ ", " + r2); - // } - - string typ = getScope(scope,op2)->symbol_map[op2]->type; if(typ == "int"){ string r1 = getRegister(scope,op2); @@ -804,19 +671,16 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& string r1,r2,rd; if(isIntLiteral(op1)){ - cerr<<"hi"<offset=last_offset.top(); last_offset.top()+=rest; - cerr<<"Allocating " << rest << " bytes for " << lhs << " at offset " << lhsInfo->offset << endl; return; } string src = getRegister(scope,rhs); @@ -970,7 +815,7 @@ int get_symbol_size(symbol_info* sym) { return total; } if (sym->pointer_depth > 0) { - return 4; // assuming 4 bytes per pointer + return 4; } return sym->symbol_size; } @@ -986,7 +831,6 @@ int get_size_from_type(string type) { int calculate_function_stack_size(scoped_symtab* scope) { int size = 0; - // cout<<"Calculating stack size for function " << scope->symbol_map['a']->type << endl; for (const auto& [name, sym] : scope->symbol_map) { if (!sym->is_param_list && !sym->is_return) { size += sym->type == "string" ? get_symbol_size(sym) : get_size_from_type(sym->type); @@ -1021,14 +865,13 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { literal = var.substr(0, pos); } else literal.pop_back(); - // Remove leading and trailing spaces from the literal size_t start = literal.find_first_not_of(' '); size_t end = literal.find_last_not_of(' '); if (start != string::npos && end != string::npos) { literal = literal.substr(start, end - start + 1); literal=literal+"\""; } else { - literal = ""; // if only spaces + literal = ""; } string str=newstring(); data_section.push_back(str+": .asciiz "+literal); @@ -1043,10 +886,6 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { if (paramCounter >= argRegisters.size()) { srcReg=getRegister(scope, var); functionparams.push_back(" addi $sp, $sp, -4 \n li "+srcReg+", "+var+"\n sw " + srcReg + ", " + to_string(0) + "($sp)"); - // mipsCode.push_back(" addi $sp, $sp, -4"); - // mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); - // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; - // exit(1); param_receive_offset=0; } else if(paramCounter == argRegisters.size()){ @@ -1067,8 +906,6 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { else { srcReg=getFloatRegister(scope, var); functionparams.push_back(" addi $sp, $sp, -4 \n li.s "+srcReg+", "+var+"\n s.s " + srcReg + ", " + to_string(0) + "($sp)"); - // cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; - // exit(1); } paramFloatCounter++; return; @@ -1076,7 +913,6 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } symbol_info* sym = getScope(scope, var)->symbol_map[var]; if (!sym) { - cerr << "Unknown symbol in handle_param_pass: " << var << endl; exit(1); } @@ -1090,8 +926,6 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { mipsCode.push_back(" mov.s $f14, " + srcReg); else { functionparams.push_back(" addi $sp, $sp, -4 \n s.s " + srcReg + ", " + to_string(0) + "($sp)"); - // cerr << "Too many float parameters! Only 2 supported via $f12, $f14.\n"; - // exit(1); } paramFloatCounter++; } @@ -1102,10 +936,6 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { reg_for_scanf.push_back(srcReg); if (paramCounter >= argRegisters.size()) { functionparams.push_back(" addi $sp, $sp, -4 \n sw " + srcReg + ", " + to_string(0) + "($sp)"); - // mipsCode.push_back(" addi $sp, $sp, -4"); - // mipsCode.push_back(" sw " + srcReg + ", " + to_string(0) + "($sp)"); - // cerr << "Too many integer parameters! Only 4 supported via $a0-$a3.\n"; - // exit(1); param_receive_offset=0; } else if(paramCounter == argRegisters.size()){ @@ -1120,12 +950,11 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } void handle_function_call(const string& line) { - cerr<<"Handling function call: " << line << endl; istringstream iss(line); string call, funcWithComma; int argCount; iss >> call >> funcWithComma; - iss.ignore(); // skip comma + iss.ignore(); iss >> argCount; int arg_no=0; string funcName = trim(funcWithComma); @@ -1137,7 +966,6 @@ void handle_function_call(const string& line) { } if(funcName=="printf") { - cout << "printf me" << endl; int floatCounter = 0; mipsCode.push_back("#printf"); int cnt=0; @@ -1153,21 +981,16 @@ void handle_function_call(const string& line) { mipsCode.push_back("syscall"); mipsCode.push_back(" li $v0, 4 \n la $a0, newline \n syscall"); } - - cout<<"----------------------"<symbol_map[lhs]; if (!sym) { - cerr << "Unknown symbol in handle_param_receive: " << lhs << endl; exit(1); } @@ -1233,9 +1048,9 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { if (sym->type == "float") { dst= getFloatRegister(scope, lhs); - if (paramReceiveCounter == 0) + if (paramFloatReceiveCounter == 0) mipsCode.push_back(" mov.s " + dst + ", $f12"); - else if (paramReceiveCounter == 1) + else if (paramFloatReceiveCounter == 1) mipsCode.push_back(" mov.s " + dst + ", $f14"); else { mipsCode.push_back(" #popping from stack to " + dst); @@ -1258,8 +1073,6 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { sym->offset = last_offset.top(); last_offset.top()+=get_size_from_type(sym->type); mipsCode.push_back(" sw " + dst + ", " + to_string(sym->offset) + "($sp)"); - // cerr << "Too many integer parameters received! Only $a0-$a3 supported.\n"; - // exit(1); } else{ string from = argRegisters[paramReceiveCounter]; @@ -1273,15 +1086,12 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } void handle_array(const string& line, scoped_symtab* scope) { - // scope=getScope(scope, line); - cerr<<"Handling array: " << line << endl; size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); string r1; if(line[0]=='*'){ string arr_name=trim(lhs.substr(2).substr(0,lhs.substr(2).find("+"))); - cout<<"Array name: " << arr_name << endl; if(isIntLiteral(rhs)){ if(availableRegs.empty()) handleRegisterSpill(scope,rhs); r1=availableRegs.back(); @@ -1301,7 +1111,6 @@ void handle_array(const string& line, scoped_symtab* scope) { } else if(isFloatLiteral(rhs)){ if(getScope(scope,arr_name)->symbol_map[arr_name]->type=="float"){ - cout<<"Float array\n"; r1=getFloatRegister(scope,rhs); load_if_constant(scope, rhs, r1); lhs = lhs.substr(3); @@ -1311,19 +1120,11 @@ void handle_array(const string& line, scoped_symtab* scope) { string lhs2 = trim(lhs.substr(plusPos + 1)); lhs2.pop_back(); lhs2 = trim(lhs2); - cout<<"lhs2: " << lhs2 << endl; - cout<<"lhs1: " << lhs1 << endl; - string regis = getRegister(scope,lhs2); - cout<<"regii: " << regis << endl; - string val=to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset); - cout<<"val: " << val << endl; string regii = getRegister(scope,val); mipsCode.push_back(" li " + regii + ", " + val); mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); - - // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); mipsCode.push_back(" s.s " + r1 + ", 0(" + regis + ")"); } @@ -1343,22 +1144,13 @@ void handle_array(const string& line, scoped_symtab* scope) { mipsCode.push_back(" li " + regii + ", " + val); mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); - // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,lhs1)->symbol_map[lhs1]->offset)); mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); mipsCode.push_back(" s.d" + r1 + ", 0(" + regis + ")"); - } - - - } - - //add cases - - + } + } }else{ rhs = rhs.substr(3); string arr_name=trim(rhs.substr(0,rhs.find("+"))); - cout<<"Array name: " << arr_name << endl; - //split on plus size_t plusPos = rhs.find("+"); string rhs1 = trim(rhs.substr(0, plusPos)); string rhs2 = trim(rhs.substr(plusPos + 1)); @@ -1370,7 +1162,6 @@ void handle_array(const string& line, scoped_symtab* scope) { string regii = getRegister(scope,val); mipsCode.push_back(" li " + regii + ", " + val); mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); - // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); string dst = getFloatRegister(scope,lhs); mipsCode.push_back(" l.s " + dst + ", 0(" + regis + ")"); @@ -1381,7 +1172,6 @@ void handle_array(const string& line, scoped_symtab* scope) { string regii = getRegister(scope,val); mipsCode.push_back(" li " + regii + ", " + val); mipsCode.push_back(" add " + regis + ", " + regis + ", " + regii); - // mipsCode.push_back(" addi " + regis + ", " + regis + ", " + to_string(getScope(scope,rhs1)->symbol_map[rhs1]->offset)); mipsCode.push_back(" add " + regis + ", " + regis + ", $sp"); string dst = getFloatRegister(scope,lhs,"double"); mipsCode.push_back(" l.d " + dst + ", 0(" + regis + ")"); @@ -1398,12 +1188,9 @@ void handle_array(const string& line, scoped_symtab* scope) { } void handle_pointer(const string& line, scoped_symtab* scope) { - // scope=getScope(scope, line); - cerr<<"Handling pointer arrays: " << line << endl; size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); string rhs = trim(line.substr(assignPos + 2)); - cout << lhs << " " << rhs << endl; int rhs_ptr=0; size_t amppos = rhs.find("&"); if(lhs[0] == '*'){ @@ -1417,36 +1204,21 @@ void handle_pointer(const string& line, scoped_symtab* scope) { rhs_ptr=1; } if(isIntLiteral(rhs)){ - cout<<"lhs "<symbol_map[lhs]->type=="float"){ dst=getFloatRegister(scope, lhs); - // if(reg_of_const.count(rhs)) { - // mipsCode.push_back(" s.s " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); - // } - // else{ mipsCode.push_back(" #Loading constant " + rhs + " into register"); if(availableFloatRegs.empty()){ handleFloatRegisterSpill(scope,rhs); @@ -1456,15 +1228,9 @@ void handle_pointer(const string& line, scoped_symtab* scope) { loadedConstants[rhs] = true; reg_of_const[rhs] = reg; mipsCode.push_back(" s.s " + reg + ", " + to_string(0) + "("+dst + ")"); - - //} } else { dst=getFloatRegister(scope, lhs,"double"); - // if(reg_of_const.count(rhs)) { - // mipsCode.push_back(" s.d " + reg_of_const[rhs] + ", " + to_string(0) + "("+dst + ")"); - // } - // else{ mipsCode.push_back(" #Loading constant " + rhs + " into register"); if(availableFloatRegs.empty()){ handleDoubleRegisterSpill(scope,rhs); @@ -1473,10 +1239,7 @@ void handle_pointer(const string& line, scoped_symtab* scope) { mipsCode.push_back(" li.d " + reg + ", " + rhs); loadedConstants[rhs] = true; reg_of_const[rhs] = reg; - mipsCode.push_back(" s.d " + reg + ", " + to_string(0) + "("+dst + ")"); - - //} - + mipsCode.push_back(" s.d " + reg + ", " + to_string(0) + "("+dst + ")"); } } @@ -1484,7 +1247,6 @@ void handle_pointer(const string& line, scoped_symtab* scope) { else{ if(rhs_ptr){ if(var_to_reg.count({getScope(scope, rhs), rhs})){ - cerr<<"Pointer found in register\n"; dst=getRegister(scope, lhs); mipsCode.push_back(" lw " + dst + ", " + "0(" + var_to_reg[{getScope(scope, rhs), rhs}] + ")"); symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; @@ -1523,12 +1285,6 @@ void handle_pointer(const string& line, scoped_symtab* scope) { mipsCode.push_back(" s.d " + dst + ", " + to_string(sym->offset) + "($sp)"); } } - else{ - //yet to handle this case - cerr<<"Error: Pointer not found in register\n"; - exit(1); - } - } else{ symbol_info* rhsInfo = getScope(scope, rhs)->symbol_map[rhs]; @@ -1592,13 +1348,10 @@ bool check_struct(const string& line, scoped_symtab* scope) { if(ppos == string::npos) return false; if(isIntLiteral(trim(rhs.substr(0,ppos))) || isFloatLiteral(trim(rhs.substr(0,ppos)))) return false; string structName = trim(rhs.substr(0, ppos)); - cout << "Struct name: " << structName << endl; if(isIntLiteral(structName) || isFloatLiteral(structName) || isStringLiteral(structName)){ return false; } - // cout << "Struct ke andar: " << structName << endl; symbol_info* sym = getScope(scope, structName)->symbol_map[structName]; - cout << sym->type << endl; if(sym->type.substr(0,6) == "struct" || sym->type.substr(0,5) == "union") { return true; } @@ -1612,11 +1365,9 @@ void handle_struct(const string& line, scoped_symtab* scope) { auto ppos = rhs.find("+"); string structName = trim(rhs.substr(0, ppos)); int offset = stoi(trim(rhs.substr(ppos + 2))); - cout << lhs << " " << rhs << " " << structName << " " << offset << endl; int symoffset = getScope(scope,structName)->symbol_map[structName]->offset; string dst = getRegister(scope, lhs); if (var_to_reg.count({scope, structName})) { - cout << "Struct " << structName << " found in register" <>& codeList) { for (int i = 0; i < codeList.size(); i++) { string t = trim(codeList[i].first); if (t.empty()) { - cout << "empty codelist error at line: "<< i+1 << endl; } else if (t.rfind("FUNC_BEGIN", 0) == 0) { istringstream iss(t); string dummy, funcName; @@ -1643,12 +1393,11 @@ void pass1(vector>& codeList) { while(isymbol_map[funcName]); - funcStackSize[funcName] = size+8;// 8 bytes for $ra and $fp - cout << "Function " << funcName << " stack size: " << funcStackSize[funcName] << endl; + funcStackSize[funcName] = size+8; break; }else{ scoped_symtab* scope = codeList[i].second; @@ -1666,7 +1415,6 @@ void pass1(vector>& codeList) { string curr_func; void pass2(vector>& codeList){ - cout<<"Inside pass2"<>& codeList){ continue; } else{ - cout << t << "\n"; if(t.rfind("FUNC_BEGIN", 0) == 0){ istringstream iss(t); string dummy, funcName; @@ -1702,12 +1449,10 @@ void pass2(vector>& codeList){ generate_return_MIPS(curr_func, code.second, val); } else if (t.rfind("if (", 0) == 0 && t.find("goto") != string::npos) { - cout << "idhar aagaya" << endl; size_t start = t.find('(') + 1; size_t end = t.find(')'); string condition = t.substr(start, end - start); string label = trim(t.substr(t.find("goto") + 4)); - cout<<"Condition: " << condition << ", Label: " << label << endl; string reg = getRegister(code.second, condition); load_if_constant(code.second, condition, reg); mipsCode.push_back(" bnez " + reg + ", " + label); @@ -1717,7 +1462,6 @@ void pass2(vector>& codeList){ mipsCode.push_back(" j " + label); } else if (t.back() == ':' && isalpha(t[0])) { - // Handle labels like LABEL0: mipsCode.push_back(t); } else if (t.rfind("PARAM", 0) == 0) { @@ -1741,7 +1485,6 @@ void pass2(vector>& codeList){ continue; } else if(check_struct(t, code.second)){ - cout << "Struct found: " << t << endl; handle_struct(t, code.second); continue; } @@ -1768,18 +1511,13 @@ void compute_use_def(LivenessInfo& inst) { size_t eq = line.find(":="); string lhs = trim(line.substr(0, eq)); string rhs = trim(line.substr(eq + 2)); - cout << "LHS: " << lhs << ", RHS: " << rhs << endl; if(lhs[0] == '*'){ lhs = lhs.substr(1); } - //here - // inst.def.insert({getScope(inst.scope,lhs), lhs}); istringstream iss(rhs); string token; while (iss >> token) if (isalpha(token[0]) && token != lhs){ - //here - cout << "Token rhs: " << token << endl; inst.use.insert({getScope(inst.scope,token), token}); } @@ -1788,8 +1526,6 @@ void compute_use_def(LivenessInfo& inst) { bool first=true; while (iss2 >> token2) if (isalpha(token2[0])){ - //here - cout << "Token lhs: " << token2 << endl; if(first){ inst.def.insert({getScope(inst.scope,token2), token2}); inst.use.insert({getScope(inst.scope,token2), token2}); @@ -1808,14 +1544,12 @@ void compute_use_def(LivenessInfo& inst) { string token; while (iss >> token) if (isalpha(token[0])){ - //here inst.use.insert({getScope(inst.scope,token), token}); } } else if (line.find("RETURN") == 0) { string word, val; istringstream iss(line); iss >> word >> val; - //here if(isalpha(val[0])) inst.use.insert({getScope(inst.scope,val), val}); } } @@ -1871,37 +1605,11 @@ void run_liveness(vector& program) { } -void printMipsCode(vector& mipsCode, const string& filename) { - ofstream outFile(filename); // Open file for writing - if (!outFile) { - cerr << "Error opening file: " << filename << endl; - return; - } - - for(auto data : data_section){ - outFile << data << endl; - } - for (const string& line : mipsCode) { - outFile << line << endl; // Write to file instead of cerr - } - - outFile.close(); // Always good practice to close explicitly -} - vector> handle_static_code(vector>& codeList) { - // int count=0; - // for(auto x:codeList){ - // if(scope_id.find(x.second) == scope_id.end()){ - // scope_id[x.second] = count; - // count++; - // } - // } - //find lines from start till any FUNC_BEGIN vector> staticCode; for (int i = 0; i < codeList.size(); ++i) { string t = trim(codeList[i].first); if (t.empty()) { - cout << "empty codelist error at line: "<< i+1 << endl; } else if (t.rfind("FUNC_BEGIN", 0) == 0) { break; } else { @@ -1940,11 +1648,7 @@ void codegen_main() { data_section.push_back(".data"); data_section.push_back("newline: .asciiz \"\\n\""); std::vector> codeList=handle_static_code(cleaned_TAC); - - - pass1(codeList); - cerr<<"Pass 1 done"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

xlj`Vnq5_@u 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�KwXv^zuBm;!vyRRqx))cZG4 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�hU;=Hjfm=tWoq=IrT`nk~Co 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 h$K?;d^ -#include -using namespace std; -vector avail_Regs = {"$t0", "$t1", "$t2", "$t3", "$t4", "$t5", "$t6", "$t7", "$t8", "$t9"}; -string get_reg(){ - if (avail_Regs.empty()) { - cerr << "No available registers!" << endl; - return ""; - } - string reg = avail_Regs.back(); - avail_Regs.pop_back(); - return reg; -} - -void free_reg(string reg){ - avail_Regs.push_back(reg); -} - -bool is_constant(const string& s) { - return regex_match(s, regex(R"(\d+)")); // matches integers only -} -void handle_arithmetic_operation(string tac){ - regex pattern(R"(^\s*(\w+)\s*:=\s*(\w+)\s*([\+\-\*/])\s*(\w+)\s*$)"); - smatch match; - string result; - string arg1; - string op; - string arg2; - if (regex_match(tac, match, pattern)) { - result = match[1]; - arg1 = match[2]; - op = match[3]; - arg2 = match[4]; - cout << "Result variable: " << result << endl; - cout << "Operand 1: " << arg1 << endl; - cout << "Operator: " << op << endl; - cout << "Operand 2: " << arg2 << endl; - } - if(is_constant (arg1) && is_constant(arg2)){ - string reg = get_reg(); - string val; - if(op=="+"){ - val = to_string(stoi(arg1) + stoi(arg2)); - } - else if(op=="-"){ - val = to_string(stoi(arg1) - stoi(arg2)); - } - else if(op=="*"){ - val = to_string(stoi(arg1) * stoi(arg2)); - } - else if(op=="/"){ - val = to_string(stoi(arg1) / stoi(arg2)); - } - cout<<"li "<final_code); - print_vector(cleaned_TAC); + //print_vector(cleaned_TAC); } ; translation_unit @@ -2144,17 +2144,17 @@ void yyerror(const char *s) { void print_errors() { if(error_list.size()==0){ - cerr<<"======================================================================"<symbol_map["printf"]=new_symbol; curr_scope->symbol_map["scanf"]=new_symbol; yyparse(); - print_scope_table(); + /* print_scope_table(); */ codegen_main(); } diff --git a/Assignment4/src/test b/Assignment4/src/test deleted file mode 100755 index 01d8ea11db310d33efcaa695dd6499746ec48015..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16512 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 (yU}BnKGDZ;cghs`XsrVE66QBJY z3xqz-`4=~0C%kzMU&^064+@p{Yti>#KfmDk?lV-FHJSSLg%|p3wwLwOAa+dqA@?@1 z6YLM@&=kc!9ySu8ZyDD8mGvXQNpx1>koR)=yMgSN_2*0Mg`S3Ov&UZEqYiceL=!#3 zE%Ac?3j$iZ5?|gkWdE~Fj4un|Pu*6I&+4vJ?AN=9>4-Zom2>Y^jk3cbUNBcd rco_~EzubQ=048Ji+Rt_y?lPZH;)*W4hWS*q=&8>djdq`bk5&H$ec%*& diff --git a/Assignment4/src/test.cpp b/Assignment4/src/test.cpp deleted file mode 100644 index 88fe65c..0000000 --- a/Assignment4/src/test.cpp +++ /dev/null @@ -1,9 +0,0 @@ -using namespace std; -#include -int main() { - - static int a; - int b=a+4; - cout< Date: Tue, 29 Apr 2025 07:38:55 +0530 Subject: [PATCH 45/52] change --- Assignment4/README.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/Assignment4/README.md b/Assignment4/README.md index 25286d2..4e265bf 100644 --- a/Assignment4/README.md +++ b/Assignment4/README.md @@ -1,13 +1,12 @@ # CSN-352-Compiler This project implements a **C to MIPS compiler** using **3-address code (3AC)** as an intermediate representation. -Currently, the project is in **Phase 3**, which involves checking the semantics and generating the 3-address code. --- ## 📂 Project Directory Structure ```bash -Assignment3/ +Assignment4/ │── src/ # Source code directory │ ├── scanner.l # Lex file for lexical analysis | ├── parser.y # File for syntax analysis @@ -17,9 +16,9 @@ Assignment3/ │ ├── input3.c # Sample test case 3 │ ├── ... # More test cases │── output/ # Stores output files (Auto-generated) -│ ├── output1.txt # Output of input1.c -│ ├── output2.txt # Output of input2.c -│ ├── output3.txt # Output of input3.c +│ ├── output1.s # Output of input1.c +│ ├── output2.s # Output of input2.c +│ ├── output3.s # Output of input3.c │── Makefile # Build automation file │── run.sh # Script to execute test cases │── README.md # Project documentation @@ -42,8 +41,8 @@ After that run script using: ### 3️⃣ Check Output ```bash ls output/ # Lists all output files -cat output/output1.txt # View output for input1.c -cat output/output2.txt # View output for input2.c +cat output/output1.s # View output for input1.c +cat output/output2.s # View output for input2.c ``` ### 4️⃣ Error Handling Errors for each code are written within the generated output file corresponding to that code. @@ -55,9 +54,9 @@ Errors for each code are written within the generated output file corresponding Uses Bison (Yacc) to parse the tokenized code according to standard C grammar. Each of the output files contain symbol table and constant table generated after parsing. - Intermediate Representation: Uses Three address code. - - Compiler Backend: Will generate MIPS Assembly Code. + - Compiler Backend: Generates MIPS Assembly Code to be run on a simulator like Qtspim ## 📌 Notes - - Ensure that flex, bison, and g++ are installed before running the project. + - Ensure that flex, bison, Qtspim and g++ are installed before running the project. - The project is structured to automatically generate output files in the output/ directory. \ No newline at end of file From fa87fbebda7aad63d489dd9be859e115a2cb1f1d Mon Sep 17 00:00:00 2001 From: Ann18532 Date: Tue, 29 Apr 2025 02:26:12 +0000 Subject: [PATCH 46/52] cleaned + commented --- Assignment4/src/codegen.cpp | 76 +++++++++++++++++++++++++++++++++---- Assignment4/test/input2.c | 13 +++++++ Assignment4/test/input3.c | 13 +++++++ Assignment4/test/input4.c | 13 +++++++ 4 files changed, 108 insertions(+), 7 deletions(-) create mode 100644 Assignment4/test/input2.c create mode 100644 Assignment4/test/input3.c create mode 100644 Assignment4/test/input4.c diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 99de138..2e0dbbe 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -86,6 +86,7 @@ bool isFloatLiteral(const string& s) { all_of(fracPart.begin(), fracPart.end(), ::isdigit); } + scoped_symtab* getScope(scoped_symtab* scope, string& var) { if (var=="PARAM"||var=="CALL"||var=="RETURN") return scope; while(scope != nullptr) { @@ -97,6 +98,9 @@ scoped_symtab* getScope(scoped_symtab* scope, string& var) { return nullptr; } + +// Pushes a variable from register to stack, handles different data types + void push_into_stack(pair varPair){ mipsCode.push_back(" #Pushing " + varPair.second + " to stack"); scoped_symtab* scope = varPair.first; @@ -160,6 +164,8 @@ void push_into_stack(pair varPair){ reg_to_var.erase(reg); } +// Handles register spill for double precision values by finding unused registers + void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar) { for (auto it = doubleVarToReg.begin(); it != doubleVarToReg.end(); ++it) { @@ -261,6 +267,8 @@ void handleDoubleRegisterSpill(scoped_symtab* currentScope, const string& newVar push_into_stack(varPair); } + +// Manages register spilling for floating point values when no free registers are available void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) { for (auto it = floatVarToReg.begin(); it != floatVarToReg.end(); ++it) { @@ -356,6 +364,10 @@ void handleFloatRegisterSpill(scoped_symtab* currentScope, const string& newVar) push_into_stack(varPair); } + + +// Manages register spilling for integer values by selecting least-used registers + void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { int maxdist=0; string regi="$t0"; @@ -393,6 +405,8 @@ void handleRegisterSpill(scoped_symtab* currentScope, string& newVar) { push_into_stack(varPair); } +// Returns a float register for a variable, handling register allocation for both float and double types + string getFloatRegister(scoped_symtab* scope, string& var,string type="float") { scope = getScope(scope, var); if (availableFloatRegs.empty()) { @@ -431,6 +445,8 @@ string getFloatRegister(scoped_symtab* scope, string& var,string type="float") { } +// Returns a register for a variable, handling cases like constants and variables already in registers + string getRegister(scoped_symtab* scope, string& var) { if(isIntLiteral(var)){ if(availableRegs.empty()) handleRegisterSpill(scope,var); @@ -461,6 +477,8 @@ string getRegister(scoped_symtab* scope, string& var) { return reg; } +// Returns a register for a variable, handling cases like constants and variables already in registers + pair find_operator(const string& line) { string detectedOp; size_t opPos = string::npos; @@ -474,6 +492,9 @@ pair find_operator(const string& line) { return {opPos, detectedOp}; } +// Generates MIPS code for function entry, setting up stack frame and saving registers + + void generate_func_begin_MIPS(const string &func, int stackSize) { if (func != "main") stackSize += 40; @@ -495,11 +516,17 @@ void generate_func_begin_MIPS(const string &func, int stackSize) { last_offset.push(0); } +// Cleans up at function end, restoring registers and stack pointer + + void generate_func_end_MIPS( string &func, int stackSize) { if(!last_offset.empty()) last_offset.pop(); } +// Generates MIPS code for return statements, restoring registers and frame pointer + + void generate_return_MIPS(string& func, scoped_symtab* scope,string val) { if(isIntLiteral(val) || isFloatLiteral(val)) { @@ -526,6 +553,8 @@ void generate_return_MIPS(string& func, scoped_symtab* scope,string val) { } +// Loads constants (integer or float) into registers + void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { if (isIntLiteral(var)) { mipsCode.push_back(" li " + reg + ", " + var); @@ -571,6 +600,9 @@ void load_if_constant(scoped_symtab* scope, string& var, const string& reg) { } } +// Handles arithmetic and comparison operations between two operands + + void handle_operation(string lhs, string rhs, size_t operator_pos, const string& opp, scoped_symtab* scope) { bool isFloat; isFloat = (getScope(scope,lhs)->symbol_map[lhs]->type == "float"); @@ -743,6 +775,9 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& } } +// Processes assignment statements, handling different data types + + void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { symbol_info* lhsInfo = getScope(scope,lhs)->symbol_map[lhs]; @@ -780,6 +815,12 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { } return; } + if(rhs.find("alloc")!=string::npos){ + int rest=stoi(rhs.substr(rhs.find("alloc")+6)); + lhsInfo->offset=last_offset.top(); + last_offset.top()+=rest; + return; + } string dst = getRegister(scope,lhs); if(rhs.find("CALL") != string::npos){ handle_function_call(rhs); @@ -792,12 +833,6 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { reg_of_const[rhs]=dst; } else { - if(rhs.find("alloc")!=string::npos){ - int rest=stoi(rhs.substr(rhs.find("alloc")+6)); - lhsInfo->offset=last_offset.top(); - last_offset.top()+=rest; - return; - } string src = getRegister(scope,rhs); mipsCode.push_back(" move " + dst + ", " + src); } @@ -853,6 +888,9 @@ string newstring(){ string_counter++; return label; } + +// Handles function parameter passing for function calls + void handle_param_pass(const string& line, scoped_symtab* scope) { string var = trim(line.substr(5)); // after "PARAM" if(var[0] == '&')var = var.substr(1); @@ -948,6 +986,7 @@ void handle_param_pass(const string& line, scoped_symtab* scope) { } +// Processes function calls, including system calls like printf and scanf void handle_function_call(const string& line) { istringstream iss(line); @@ -1036,6 +1075,9 @@ void handle_function_call(const string& line) { reg_for_scanf.clear(); } +// Handles parameter receiving at the beginning of functions + + void handle_param_receive(const string& line, scoped_symtab* scope) { size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); @@ -1082,9 +1124,11 @@ void handle_param_receive(const string& line, scoped_symtab* scope) { } - } +// Processes array accesses and assignments + + void handle_array(const string& line, scoped_symtab* scope) { size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); @@ -1187,6 +1231,9 @@ void handle_array(const string& line, scoped_symtab* scope) { } } +// Handles pointer operations like dereferencing and address-of + + void handle_pointer(const string& line, scoped_symtab* scope) { size_t assignPos = line.find(":="); string lhs = trim(line.substr(0, assignPos)); @@ -1379,6 +1426,8 @@ void handle_struct(const string& line, scoped_symtab* scope) { mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(totoffset)); } +// First pass to calculate function stack sizes and parameter sizes + void pass1(vector>& codeList) { for (int i = 0; i < codeList.size(); i++) { string t = trim(codeList[i].first); @@ -1412,8 +1461,11 @@ void pass1(vector>& codeList) { } } + string curr_func; +// Second pass that generates MIPS code for each TAC instruction + void pass2(vector>& codeList){ for(int idx = 0; idx < codeList.size(); ++idx){ auto& code = codeList[idx]; @@ -1505,6 +1557,8 @@ bool isAddress(const std::string& token) { return token.size() > 2 && token[0] == '0' && token[1] == 'x'; } +// Computes use-def information for liveness analysis + void compute_use_def(LivenessInfo& inst) { const string& line = inst.code; if (line.find(":=") != string::npos) { @@ -1554,6 +1608,8 @@ void compute_use_def(LivenessInfo& inst) { } } +// Identifies successor instructions for control flow graph construction + void compute_successors(vector& program) { for (int i = 0; i < program.size(); ++i) { string line = trim(program[i].code); @@ -1575,6 +1631,8 @@ void compute_successors(vector& program) { } } +// Performs liveness analysis on the three-address code + void run_liveness(vector& program) { compute_successors(program); for (auto& inst : program) @@ -1605,6 +1663,8 @@ void run_liveness(vector& program) { } +// Extracts static variables and adds them to data section + vector> handle_static_code(vector>& codeList) { vector> staticCode; for (int i = 0; i < codeList.size(); ++i) { @@ -1642,6 +1702,8 @@ vector> handle_static_code(vector= 4 args + +int addx(int a, int b, int c, int d, int e){ + return a+b+c+d+e; +} + + +int main(){ + int a = addx(1, 1, 1, 1, 1); + printf("Sum of 5 numbers is: %d", a); + return 0; +} + diff --git a/Assignment4/test/input3.c b/Assignment4/test/input3.c new file mode 100644 index 0000000..bfcb092 --- /dev/null +++ b/Assignment4/test/input3.c @@ -0,0 +1,13 @@ +//struct +struct A{ + int a; + int b; +}; + + +int main(){ + struct A c; + c.a = 1; + c.b = 2; + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input4.c b/Assignment4/test/input4.c new file mode 100644 index 0000000..d7ad2cc --- /dev/null +++ b/Assignment4/test/input4.c @@ -0,0 +1,13 @@ +//union + +union u{ + int i; + int f; +}; + +int main(){ + union u a; + a.i = 1; + a.f = 2; + return 0; +} \ No newline at end of file From e8be4dc703f0aadfd676faf24eb24f870497686d Mon Sep 17 00:00:00 2001 From: BitBeast Date: Tue, 29 Apr 2025 08:49:35 +0530 Subject: [PATCH 47/52] final --- Assignment4/README.md | 9 +++- Assignment4/output/output2.s | 90 ++++++++++++++++++++++++++++++++++++ Assignment4/output/output3.s | 26 +++++++++++ Assignment4/output/output4.s | 26 +++++++++++ Assignment4/output/output5.s | 77 ++++++++++++++++++++++++++++++ Assignment4/output/output6.s | 89 +++++++++++++++++++++++++++++++++++ Assignment4/output/output7.s | 48 +++++++++++++++++++ Assignment4/output/output8.s | 49 ++++++++++++++++++++ Assignment4/src/codegen.cpp | 56 ++++++++++++++++++++-- Assignment4/src/parser.y | 8 ++-- Assignment4/test/input5.c | 12 +++++ Assignment4/test/input6.c | 14 ++++++ Assignment4/test/input7.c | 8 ++++ Assignment4/test/input8.c | 9 ++++ 14 files changed, 510 insertions(+), 11 deletions(-) create mode 100644 Assignment4/output/output2.s create mode 100644 Assignment4/output/output3.s create mode 100644 Assignment4/output/output4.s create mode 100644 Assignment4/output/output5.s create mode 100644 Assignment4/output/output6.s create mode 100644 Assignment4/output/output7.s create mode 100644 Assignment4/output/output8.s create mode 100644 Assignment4/test/input5.c create mode 100644 Assignment4/test/input6.c create mode 100644 Assignment4/test/input7.c create mode 100644 Assignment4/test/input8.c diff --git a/Assignment4/README.md b/Assignment4/README.md index 4e265bf..774d186 100644 --- a/Assignment4/README.md +++ b/Assignment4/README.md @@ -8,8 +8,13 @@ This project implements a **C to MIPS compiler** using **3-address code (3AC)** ```bash Assignment4/ │── src/ # Source code directory -│ ├── scanner.l # Lex file for lexical analysis -| ├── parser.y # File for syntax analysis +│ ├── scanner.l # Lex file for lexical analysis +| ├── parser.y # File for syntax analysis and generation of 3AC +| ├── codegen.cpp # File for generation of MIPS code from 3AC +│── include/ # Auxillary directory +│ ├── 3AC.h # header file for 3AC code generation +| ├── functions.h # Auxillary functions for 3AC code generation +| ├── utility.h # Data Structures definition for nodes │── test/ # Test cases for the compiler │ ├── input1.c # Sample test case 1 │ ├── input2.c # Sample test case 2 diff --git a/Assignment4/output/output2.s b/Assignment4/output/output2.s new file mode 100644 index 0000000..7466475 --- /dev/null +++ b/Assignment4/output/output2.s @@ -0,0 +1,90 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "Sum of 5 numbers is:" +.text +.globl main +addx: + move $fp, $sp + addi $sp, $sp, -84 + sw $ra, 80($sp) + sw $fp, 76($sp) + sw $t0, 72($sp) + sw $t1, 68($sp) + sw $t2, 64($sp) + sw $t3, 60($sp) + sw $t4, 56($sp) + sw $t5, 52($sp) + sw $t6, 48($sp) + sw $t7, 44($sp) + sw $t8, 40($sp) + sw $t9, 36($sp) + move $t9, $a0 + move $t8, $a1 + move $t7, $a2 + move $t6, $a3 + #popping from stack to $t5 + lw $t5, 0($fp) + #pushing into function stack + sw $t5, 0($sp) + add $t4, $t9, $t8 + add $t3, $t4, $t7 + add $t2, $t3, $t6 + add $t1, $t2, $t5 + move $v0, $t1 + lw $fp, 76($sp) + lw $ra, 80($sp) + lw $t0, 72($sp) + lw $t1, 68($sp) + lw $t2, 64($sp) + lw $t3, 60($sp) + lw $t4, 56($sp) + lw $t5, 52($sp) + lw $t6, 48($sp) + lw $t7, 44($sp) + lw $t8, 40($sp) + lw $t9, 36($sp) + addi $sp, $sp, 84 + jr $ra +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $a0, 1 + li $a1, 1 + li $a2, 1 + li $a3, 1 + # Spilling a from $t9 + addi $sp, $sp, -4 + li $t0, 1 + sw $t0, 0($sp) + jal addx + move $t9, $v0 + # Spilling b from $t8 + move $t8, $t9 + la $a0, str0 + move $a1, $t8 + # Spilling c from $t7 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t7, $v0 + li $v0, 0 + lw $fp, 12($sp) + lw $ra, 16($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output3.s b/Assignment4/output/output3.s new file mode 100644 index 0000000..e6ce4ba --- /dev/null +++ b/Assignment4/output/output3.s @@ -0,0 +1,26 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + addi $t9, $sp, 0 + #Loading constant 1 into register + li $t8, 1 + sw $t8, 0($t9) + addi $t7, $sp, 4 + #Loading constant 2 into register + li $t6, 2 + sw $t6, 0($t7) + li $v0, 0 + lw $fp, 12($sp) + lw $ra, 16($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output4.s b/Assignment4/output/output4.s new file mode 100644 index 0000000..215dc7c --- /dev/null +++ b/Assignment4/output/output4.s @@ -0,0 +1,26 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + addi $t9, $sp, 0 + #Loading constant 1 into register + li $t8, 1 + sw $t8, 0($t9) + addi $t7, $sp, 0 + #Loading constant 2 into register + li $t6, 2 + sw $t6, 0($t7) + li $v0, 0 + lw $fp, 12($sp) + lw $ra, 16($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output5.s b/Assignment4/output/output5.s new file mode 100644 index 0000000..2980fd8 --- /dev/null +++ b/Assignment4/output/output5.s @@ -0,0 +1,77 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz " Answer" +.text +.globl main +fun: + move $fp, $sp + addi $sp, $sp, -64 + sw $ra, 60($sp) + sw $fp, 56($sp) + sw $t0, 52($sp) + sw $t1, 48($sp) + sw $t2, 44($sp) + sw $t3, 40($sp) + sw $t4, 36($sp) + sw $t5, 32($sp) + sw $t6, 28($sp) + sw $t7, 24($sp) + sw $t8, 20($sp) + sw $t9, 16($sp) + mov.s $f31, $f12 + move $t9, $a0 + mtc1 $t9, $f30 + cvt.s.w $f30, $f30 + add.s $f29, $f31, $f30 + mov.s $f28, $f29 + mov.s $f0, $f28 + lw $fp, 56($sp) + lw $ra, 60($sp) + lw $t0, 52($sp) + lw $t1, 48($sp) + lw $t2, 44($sp) + lw $t3, 40($sp) + lw $t4, 36($sp) + lw $t5, 32($sp) + lw $t6, 28($sp) + lw $t7, 24($sp) + lw $t8, 20($sp) + lw $t9, 16($sp) + addi $sp, $sp, 64 + jr $ra +main: + move $fp, $sp + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t8, 2 + li.s $f12, 2.000000 + li $a0, 3 + jal fun + mov.s $f27, $f0 + mov.s $f26, $f27 + la $a0, str0 + mov.s $f12, $f26 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t6, $v0 + li $v0, 0 + lw $fp, 16($sp) + lw $ra, 20($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output6.s b/Assignment4/output/output6.s new file mode 100644 index 0000000..98928e6 --- /dev/null +++ b/Assignment4/output/output6.s @@ -0,0 +1,89 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -52 + sw $ra, 48($sp) + sw $fp, 44($sp) + addi $t9, $sp, 0 + #Loading constant 7 into register + li $t8, 7 + sw $t8, 0($t9) + addi $t7, $sp, 4 + #Loading constant 8 into register + li $t6, 8 + sw $t6, 0($t7) + li $t5, 0 + li $t4, 4 + mul $t3, $t5, $t4 + li $t2, 5 + addi $t3, $t3, 8 + add $t3, $t3, $sp + sw $t2, 0($t3) + li $t1, 1 + li $t0, 4 + # Spilling t0 from $t9 + mul $t9, $t1, $t0 + # Spilling t1 from $t7 + li $t7, 4 + addi $t9, $t9, 8 + add $t9, $t9, $sp + sw $t7, 0($t9) + # Spilling t2 from $t3 + li $t3, 2 + # Spilling t3 from $t9 + li $t9, 4 + mul $t0, $t3, $t9 + #Pushing t4 to stack + sw $t0, 20($sp) + li $t0, 5 + lw $t0, 20($sp) + addi $t0, $t0, 8 + add $t0, $t0, $sp + sw $t0, 0($t0) + # Spilling t4 from $t0 + li $t0, 4 + li $t0, 0 + mul $t0, $t0, $t0 + addi $t0, $t0, 8 + add $t0, $t0, $sp + #Pushing t5 to stack + sw $t0, 24($sp) + lw $t0, 0($t0) + #Pushing t6 to stack + sw $t0, 28($sp) + #Pushing c to stack + sw $t0, 32($sp) + lw $t0, 28($sp) + move $t0, $t0 + la $a0, str0 + # Spilling t6 from $t0 + lw $t0, 32($sp) + move $a1, $t0 + # Spilling c from $t0 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 0 + lw $fp, 44($sp) + lw $ra, 48($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output7.s b/Assignment4/output/output7.s new file mode 100644 index 0000000..fd5282c --- /dev/null +++ b/Assignment4/output/output7.s @@ -0,0 +1,48 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + li $t9, 0 + #Pushing i to stack + sw $t9, 0($sp) + addi $t8, $sp, 0 + #Pushing ptr to stack + sw $t8, 4($sp) + addi $t9, $sp, 4 + lw $t8, 0($t9) + sw $t8, 8($sp) + #Loading constant 10 into register + li $t7, 10 + sw $t7, 0($t8) + la $a0, str0 + lw $t6, 0($sp) + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t5, $v0 + li $v0, 0 + lw $fp, 24($sp) + lw $ra, 28($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output8.s b/Assignment4/output/output8.s new file mode 100644 index 0000000..b849066 --- /dev/null +++ b/Assignment4/output/output8.s @@ -0,0 +1,49 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "Sum of 10 numbers is:" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t9, 0 + li $t8, 0 + li $t9, 0 +LABEL0: + li $t7, 10 + slt $t6, $t9, $t7 + bnez $t6, LABEL2 + j LABEL1 +LABEL2: + add $t8, $t8, $t9 + li $t5, 1 + add $t9, $t9, $t5 + j LABEL0 +LABEL1: + la $a0, str0 + move $a1, $t8 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t4, $v0 + li $v0, 0 + lw $fp, 16($sp) + lw $ra, 20($sp) + li $v0, 10 + syscall diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 2e0dbbe..034d514 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -9,6 +9,7 @@ int paramReceiveCounter = 0; int param_receive_offset=0; int paramFloatReceiveCounter = 0; int string_counter = 0; +scoped_symtab* globalscope; map,string> var_to_reg; map> reg_to_var; std::vector> static_var; @@ -32,6 +33,8 @@ map string_to_label; map loadedConstants; map reg_of_const; vector reg_for_scanf; +map> offset_to_var; +map,int> pointer_to_offset; int get_size_from_type(string type); void handle_function_call(const string& line); @@ -528,13 +531,27 @@ void generate_func_end_MIPS( string &func, int stackSize) { void generate_return_MIPS(string& func, scoped_symtab* scope,string val) { - if(isIntLiteral(val) || isFloatLiteral(val)) + if(isIntLiteral(val)) { mipsCode.push_back(" li $v0, " + val); } - else{ - string reg=getRegister(scope,val); - mipsCode.push_back(" move $v0, " + reg); + else if(isFloatLiteral(val)) + { + mipsCode.push_back(" li.s $f0, " + val); + } + else { + string type=globalscope->symbol_map[func]->type; + string reg; + if(type=="float") + { + reg=getFloatRegister(scope,val); + mipsCode.push_back(" mov.s $f0, " + reg); + } + else{ + reg=getRegister(scope,val); + mipsCode.push_back(" move $v0, " + reg); + } + } int stackSize = funcStackSize[func]; if(func!="main")stackSize += 40; @@ -824,7 +841,25 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { string dst = getRegister(scope,lhs); if(rhs.find("CALL") != string::npos){ handle_function_call(rhs); - mipsCode.push_back(" move " + dst + ", $v0"); + istringstream iss(rhs); + string call, funcWithComma; + int argCount; + iss >> call >> funcWithComma; + iss.ignore(); + iss >> argCount; + int arg_no=0; + string funcName = trim(funcWithComma); + if (!funcName.empty() && funcName.back() == ',') funcName.pop_back(); + if(funcName.find(",")!=string::npos){ + arg_no=stoi(funcName.substr(funcName.find(",")+1)); + funcName = funcName.substr(0,funcName.find(",")); + } + if(globalscope->symbol_map[funcName]->type=="float"){ + string dst1 = getFloatRegister(scope, lhs); + mipsCode.push_back(" mov.s " + dst1 + ", $f0"); + } + else mipsCode.push_back(" move " + dst + ", $v0"); + return; } if (isIntLiteral(rhs)||isCharLiteral(rhs)) { @@ -832,6 +867,10 @@ void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { loadedConstants[lhs] = true; reg_of_const[rhs]=dst; } + else if(isFloatLiteral(rhs)) { + string dst1 = getFloatRegister(scope, lhs); + mipsCode.push_back(" li.s " + dst1 + ", " + rhs); + } else { string src = getRegister(scope,rhs); mipsCode.push_back(" move " + dst + ", " + src); @@ -1295,6 +1334,10 @@ void handle_pointer(const string& line, scoped_symtab* scope) { if(rhs_ptr){ if(var_to_reg.count({getScope(scope, rhs), rhs})){ dst=getRegister(scope, lhs); + pair var = offset_to_var[pointer_to_offset[{getScope(scope, rhs), rhs}]]; + if(var_to_reg.count(var) && !var.first->symbol_map[var.second]->is_array){ + push_into_stack(var); + } mipsCode.push_back(" lw " + dst + ", " + "0(" + var_to_reg[{getScope(scope, rhs), rhs}] + ")"); symbol_info* sym = getScope(scope, rhs)->symbol_map[rhs]; if(getScope(scope, rhs)->symbol_map[rhs]->offset == -1){ @@ -1340,6 +1383,8 @@ void handle_pointer(const string& line, scoped_symtab* scope) { if(var_to_reg.count({scope, rhs})){ push_into_stack({scope, rhs}); } + offset_to_var[rhsInfo->offset] = {scope, rhs}; + pointer_to_offset[{getScope(scope, lhs), lhs}] = rhsInfo->offset; mipsCode.push_back(" addi " + dst + ", $sp, " + to_string(rhsInfo->offset)); } else if(rhsInfo->type.substr(0,5)=="float"){ @@ -1481,6 +1526,7 @@ void pass2(vector>& codeList){ iss >> dummy >> funcName; trim(funcName); curr_func = funcName; + globalscope=code.second; generate_func_begin_MIPS(funcName, funcStackSize[funcName]); paramReceiveCounter = 0; paramFloatReceiveCounter = 0; diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index d5d2ab5..a9c7d85 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -248,7 +248,7 @@ postfix_expression else{ for(int i=0;icode; } else { - cout<<"heeeeeee"<<$1<symbol_map[top_symbol]->type = $1; if(curr_scope->symbol_map[top_symbol]->type.substr(0,6)=="static"){ static_variables.push_back({curr_scope,top_symbol}); @@ -1122,10 +1122,10 @@ declaration } int fla=0; for(auto x:static_variables){ - cout< Date: Tue, 29 Apr 2025 08:51:10 +0530 Subject: [PATCH 48/52] ch --- Assignment4/run | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100755 Assignment4/run diff --git a/Assignment4/run b/Assignment4/run deleted file mode 100755 index 4c40299..0000000 --- a/Assignment4/run +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/bash - -# Define paths -EXEC="./parser" -TEST_DIR="./test" -OUTPUT_DIR="./output" - -# Create output directory if not exists -mkdir -p $OUTPUT_DIR - -# Run parser on each test file and store output separately -counter=1 -for testfile in $TEST_DIR/*.c; do - output_file="$OUTPUT_DIR/output${counter}.s" - echo "Processing $(basename "$testfile") -> $(basename "$output_file")" - $EXEC < "$testfile"> "$output_file" 2>&1 - ((counter++)) -done - -# echo "All test cases executed. Outputs stored in $OUTPUT_DIR." From 020558f0fb93eed37a3faf1b8423d7237744619b Mon Sep 17 00:00:00 2001 From: BitBeast Date: Wed, 30 Apr 2025 16:39:26 +0530 Subject: [PATCH 49/52] switch case bt fix --- Assignment4/advance.cpp | 62 ++ Assignment4/basic.c | 71 ++ Assignment4/funCall.c | 52 + Assignment4/mix.cpp | 97 ++ Assignment4/output/output1.s | 1768 ++++++++++++++++++++++++++++++++- Assignment4/output/output10.s | 77 ++ Assignment4/output/output11.s | 90 ++ Assignment4/output/output12.s | 48 + Assignment4/output/output13.s | 78 ++ Assignment4/output/output14.s | 390 ++++++++ Assignment4/output/output2.s | 211 ++-- Assignment4/output/output3.s | 699 ++++++++++++- Assignment4/output/output4.s | 31 +- Assignment4/output/output5.s | 94 +- Assignment4/output/output6.s | 78 +- Assignment4/output/output7.s | 84 +- Assignment4/output/output8.s | 49 +- Assignment4/output/output9.s | 26 + Assignment4/peep.c | 36 + Assignment4/src/codegen.cpp | 12 +- Assignment4/src/parser.y | 10 +- Assignment4/static.c | 32 + Assignment4/test/input10.c | 53 + Assignment4/test/input11.c | 38 + Assignment4/test/input12.c | 30 + Assignment4/test/input13.c | 63 ++ Assignment4/test/input14.c | 32 + Assignment4/test/input8.c | 18 +- Assignment4/test/input9.c | 73 ++ Assignment4/var100.c | 29 + 30 files changed, 4149 insertions(+), 282 deletions(-) create mode 100644 Assignment4/advance.cpp create mode 100644 Assignment4/basic.c create mode 100644 Assignment4/funCall.c create mode 100644 Assignment4/mix.cpp create mode 100644 Assignment4/output/output10.s create mode 100644 Assignment4/output/output11.s create mode 100644 Assignment4/output/output12.s create mode 100644 Assignment4/output/output13.s create mode 100644 Assignment4/output/output14.s create mode 100644 Assignment4/output/output9.s create mode 100644 Assignment4/peep.c create mode 100644 Assignment4/static.c create mode 100644 Assignment4/test/input10.c create mode 100644 Assignment4/test/input11.c create mode 100644 Assignment4/test/input12.c create mode 100644 Assignment4/test/input13.c create mode 100644 Assignment4/test/input14.c create mode 100644 Assignment4/test/input9.c create mode 100644 Assignment4/var100.c diff --git a/Assignment4/advance.cpp b/Assignment4/advance.cpp new file mode 100644 index 0000000..fdc361c --- /dev/null +++ b/Assignment4/advance.cpp @@ -0,0 +1,62 @@ +// #include +// using namespace std; + +// class Animal { +// protected: +// string name; +// public: +// Animal(string n) : name(n) {} +// void display() { +// cout << "Animal Name: " << name << endl; +// } +// }; + +// class Dog : public Animal { +// private: +// int age; +// public: +// Dog(string n, int a) : Animal(n), age(a) {} + +// void bark() { +// cout << name << " barks! Age: " << age << endl; +// } +// }; + +// void greet() { +// cout << "Hello from function pointer!\n"; +// } + +// void callFunction(void (*func)()) { +// func(); +// } + +int main() { + // --- Class, Object, Inheritance --- + // Dog d("Buddy", 5); + // d.display(); + // d.bark(); + + // // --- Function Pointer --- + // void (*fp)() = greet; + // callFunction(fp); + + // // --- References --- + // int x = 10; + // int& ref = x; + // ref = 20; + // cout << "Reference value: " << x << endl; + + // --- Multi-level Pointers --- + int y = 50; + int* p1 = &y; + int** p2 = &p1; + int*** p3 = &p2; + printf("Multi-level pointer value: %d\n", ***p3); + + // --- Multi-level Array --- + // int arr[2][3] = { {1,2,3}, {4,5,6} }; + // cout << "Multi-level array element arr[1][2]: " << arr[1][2] << endl; + + return 0; +} + diff --git a/Assignment4/basic.c b/Assignment4/basic.c new file mode 100644 index 0000000..abdcd12 --- /dev/null +++ b/Assignment4/basic.c @@ -0,0 +1,71 @@ +#include + +int add(int a, int b) { + return a + b; +} + +int factorial(int n) { + if (n <= 1) return 1; + else return n * factorial(n - 1); +} + +int array_sum(int arr[], int size) { + int sum = 0; + for (int i = 0; i < size; i++) { + sum = sum + arr[i]; + } + return sum; +} + +struct Point { + int x; + int y; +}; + +float point_sum(struct Point *p) { + return p->x / p->y; +} + +int main() { + int a = 5, b = 10; + + int result = add(a, b); + if (result != 15) { + printf("Arithmetic test failed: %d\n", result); + return 1; + } + + int fact = factorial(5); + if (fact != 120) { + printf("Recursion test failed: %d\n", fact); + return 1; + } + + int arr[5] = {1, 2, 3, 4, 5}; + int arr_sum = array_sum(arr, 5); + if (arr_sum != 15) { + printf("Array sum test failed: %d\n", arr_sum); + return 1; + } + + struct Point p = {3, 4}; + int p_sum = point_sum(&p); + if (p_sum != 7) { + printf("Struct test failed: %d\n", p_sum); + return 1; + } + + int value = 0; + if (a < b) { + value = 1; + } else { + value = 2; + } + if (value != 1) { + printf("Branching test failed: %d\n", value); + return 1; + } + + printf("All tests passed successfully!\n"); + return 0; +} diff --git a/Assignment4/funCall.c b/Assignment4/funCall.c new file mode 100644 index 0000000..e61d695 --- /dev/null +++ b/Assignment4/funCall.c @@ -0,0 +1,52 @@ +int add_all(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, + int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, + int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, + int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, + int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, + int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, + int a61, int a62, int a63, int a64, int a65, int a66, int a67, int a68, int a69, int a70, + int a71, int a72, int a73, int a74, int a75, int a76, int a77, int a78, int a79, int a80, + int a81, int a82, int a83, int a84, int a85, int a86, int a87, int a88, int a89, int a90, + int a91, int a92, int a93, int a94, int a95, int a96, int a97, int a98, int a99, int a100) +{ + return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 + a94 + a95 + a96 + a97 + a98 + a99 + a100; +} + +int main() { + // Declare and initialize 100 variables + int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; + int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; + int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; + int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; + int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; + int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; + int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; + int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; + int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; + int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; + + // Call the function with 100 arguments + int sum = add_all(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, + a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, + a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, + a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, + a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, + a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, + a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, + a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, + a91, a92, a93, a94, a95, a96, a97, a98, a99, a100); + + printf("Sum of all variables = %d\n", sum); + + return 0; +} diff --git a/Assignment4/mix.cpp b/Assignment4/mix.cpp new file mode 100644 index 0000000..f978f15 --- /dev/null +++ b/Assignment4/mix.cpp @@ -0,0 +1,97 @@ +#include +#include // For var args +#include // For malloc and free +#include // For file manipulation +#include +using namespace std; + +// Typedef for a pointer to int +typedef int* IntPtr; + +// Enum for colors +enum Color { RED, GREEN, BLUE }; + +// Union for different data types +union Data { + int intValue; + float floatValue; + char charValue; +}; + +// Function with variable arguments +int sum(int count, ...) { + va_list args; + va_start(args, count); + + int total = 0; + for (int i = 0; i < count; i++) { + total += va_arg(args, int); + } + + va_end(args); + return total; +} + +int main(int argc, char* argv[]) { + // --- Command line input --- + if (argc < 2) { + cout << "Usage: " << argv[0] << " \n"; + return 1; + } + char filename[100]; + strncpy(filename, argv[1], 99); // copy filename to char array + filename[99] = '\0'; // ensure null termination + + // --- Dynamic memory allocation --- + IntPtr p = (IntPtr) malloc(5 * sizeof(int)); // using typedef for int* + if (!p) { + cout << "Memory allocation failed!\n"; + return 1; + } + for (int i = 0; i < 5; i++) { + p[i] = i * 10; + } + + cout << "Dynamically allocated array:\n"; + for (int i = 0; i < 5; i++) { + cout << p[i] << " "; + } + cout << endl; + + free(p); // free dynamically allocated memory + + // --- Enum --- + Color favorite = GREEN; + if (favorite == GREEN) { + cout << "Favorite color is GREEN\n"; + } + + // --- Union --- + Data d; + d.intValue = 100; + cout << "Union int value: " << d.intValue << endl; + d.floatValue = 3.14f; + cout << "Union float value: " << d.floatValue << endl; + d.charValue = 'A'; + cout << "Union char value: " << d.charValue << endl; + // Note: Union only holds one value at a time! + + // --- Var args --- + int total = sum(4, 10, 20, 30, 40); + cout << "Sum using var args: " << total << endl; + + // --- File manipulation --- + ofstream outfile(filename); + if (!outfile) { + cout << "Failed to open file for writing.\n"; + return 1; + } + outfile << "Hello from C++ program!\n"; + outfile << "Sum was: " << total << endl; + outfile.close(); + + cout << "Data written to file: " << filename << endl; + + return 0; +} + diff --git a/Assignment4/output/output1.s b/Assignment4/output/output1.s index b64e451..ad12f00 100644 --- a/Assignment4/output/output1.s +++ b/Assignment4/output/output1.s @@ -1,18 +1,1765 @@ -# =====================LIST OF ERRORS=================================== -#Line 3 : Missing return statement +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz "hello world" +str0: .asciiz "Sum of all variables =" .text .globl main +add_all: + move $fp, $sp + addi $sp, $sp, -844 + sw $ra, 840($sp) + sw $fp, 836($sp) + sw $t0, 832($sp) + sw $t1, 828($sp) + sw $t2, 824($sp) + sw $t3, 820($sp) + sw $t4, 816($sp) + sw $t5, 812($sp) + sw $t6, 808($sp) + sw $t7, 804($sp) + sw $t8, 800($sp) + sw $t9, 796($sp) + move $t9, $a0 + move $t8, $a1 + move $t7, $a2 + move $t6, $a3 + #popping from stack to $t5 + lw $t5, 0($fp) + #pushing into function stack + sw $t5, 0($sp) + #popping from stack to $t4 + lw $t4, 4($fp) + #pushing into function stack + sw $t4, 4($sp) + #popping from stack to $t3 + lw $t3, 8($fp) + #pushing into function stack + sw $t3, 8($sp) + #popping from stack to $t2 + lw $t2, 12($fp) + #pushing into function stack + sw $t2, 12($sp) + #popping from stack to $t1 + lw $t1, 16($fp) + #pushing into function stack + sw $t1, 16($sp) + #popping from stack to $t0 + lw $t0, 20($fp) + #pushing into function stack + sw $t0, 20($sp) + #Pushing a10 to stack + sw $t0, 20($sp) + #popping from stack to $t0 + lw $t0, 24($fp) + #pushing into function stack + sw $t0, 24($sp) + #Pushing a11 to stack + sw $t0, 24($sp) + #popping from stack to $t0 + lw $t0, 28($fp) + #pushing into function stack + sw $t0, 28($sp) + #Pushing a12 to stack + sw $t0, 28($sp) + #popping from stack to $t0 + lw $t0, 32($fp) + #pushing into function stack + sw $t0, 32($sp) + #Pushing a13 to stack + sw $t0, 32($sp) + #popping from stack to $t0 + lw $t0, 36($fp) + #pushing into function stack + sw $t0, 36($sp) + #Pushing a14 to stack + sw $t0, 36($sp) + #popping from stack to $t0 + lw $t0, 40($fp) + #pushing into function stack + sw $t0, 40($sp) + #Pushing a15 to stack + sw $t0, 40($sp) + #popping from stack to $t0 + lw $t0, 44($fp) + #pushing into function stack + sw $t0, 44($sp) + #Pushing a16 to stack + sw $t0, 44($sp) + #popping from stack to $t0 + lw $t0, 48($fp) + #pushing into function stack + sw $t0, 48($sp) + #Pushing a17 to stack + sw $t0, 48($sp) + #popping from stack to $t0 + lw $t0, 52($fp) + #pushing into function stack + sw $t0, 52($sp) + #Pushing a18 to stack + sw $t0, 52($sp) + #popping from stack to $t0 + lw $t0, 56($fp) + #pushing into function stack + sw $t0, 56($sp) + #Pushing a19 to stack + sw $t0, 56($sp) + #popping from stack to $t0 + lw $t0, 60($fp) + #pushing into function stack + sw $t0, 60($sp) + #Pushing a20 to stack + sw $t0, 60($sp) + #popping from stack to $t0 + lw $t0, 64($fp) + #pushing into function stack + sw $t0, 64($sp) + #Pushing a21 to stack + sw $t0, 64($sp) + #popping from stack to $t0 + lw $t0, 68($fp) + #pushing into function stack + sw $t0, 68($sp) + #Pushing a22 to stack + sw $t0, 68($sp) + #popping from stack to $t0 + lw $t0, 72($fp) + #pushing into function stack + sw $t0, 72($sp) + #Pushing a23 to stack + sw $t0, 72($sp) + #popping from stack to $t0 + lw $t0, 76($fp) + #pushing into function stack + sw $t0, 76($sp) + #Pushing a24 to stack + sw $t0, 76($sp) + #popping from stack to $t0 + lw $t0, 80($fp) + #pushing into function stack + sw $t0, 80($sp) + #Pushing a25 to stack + sw $t0, 80($sp) + #popping from stack to $t0 + lw $t0, 84($fp) + #pushing into function stack + sw $t0, 84($sp) + #Pushing a26 to stack + sw $t0, 84($sp) + #popping from stack to $t0 + lw $t0, 88($fp) + #pushing into function stack + sw $t0, 88($sp) + #Pushing a27 to stack + sw $t0, 88($sp) + #popping from stack to $t0 + lw $t0, 92($fp) + #pushing into function stack + sw $t0, 92($sp) + #Pushing a28 to stack + sw $t0, 92($sp) + #popping from stack to $t0 + lw $t0, 96($fp) + #pushing into function stack + sw $t0, 96($sp) + #Pushing a29 to stack + sw $t0, 96($sp) + #popping from stack to $t0 + lw $t0, 100($fp) + #pushing into function stack + sw $t0, 100($sp) + #Pushing a30 to stack + sw $t0, 100($sp) + #popping from stack to $t0 + lw $t0, 104($fp) + #pushing into function stack + sw $t0, 104($sp) + #Pushing a31 to stack + sw $t0, 104($sp) + #popping from stack to $t0 + lw $t0, 108($fp) + #pushing into function stack + sw $t0, 108($sp) + #Pushing a32 to stack + sw $t0, 108($sp) + #popping from stack to $t0 + lw $t0, 112($fp) + #pushing into function stack + sw $t0, 112($sp) + #Pushing a33 to stack + sw $t0, 112($sp) + #popping from stack to $t0 + lw $t0, 116($fp) + #pushing into function stack + sw $t0, 116($sp) + #Pushing a34 to stack + sw $t0, 116($sp) + #popping from stack to $t0 + lw $t0, 120($fp) + #pushing into function stack + sw $t0, 120($sp) + #Pushing a35 to stack + sw $t0, 120($sp) + #popping from stack to $t0 + lw $t0, 124($fp) + #pushing into function stack + sw $t0, 124($sp) + #Pushing a36 to stack + sw $t0, 124($sp) + #popping from stack to $t0 + lw $t0, 128($fp) + #pushing into function stack + sw $t0, 128($sp) + #Pushing a37 to stack + sw $t0, 128($sp) + #popping from stack to $t0 + lw $t0, 132($fp) + #pushing into function stack + sw $t0, 132($sp) + #Pushing a38 to stack + sw $t0, 132($sp) + #popping from stack to $t0 + lw $t0, 136($fp) + #pushing into function stack + sw $t0, 136($sp) + #Pushing a39 to stack + sw $t0, 136($sp) + #popping from stack to $t0 + lw $t0, 140($fp) + #pushing into function stack + sw $t0, 140($sp) + #Pushing a40 to stack + sw $t0, 140($sp) + #popping from stack to $t0 + lw $t0, 144($fp) + #pushing into function stack + sw $t0, 144($sp) + #Pushing a41 to stack + sw $t0, 144($sp) + #popping from stack to $t0 + lw $t0, 148($fp) + #pushing into function stack + sw $t0, 148($sp) + #Pushing a42 to stack + sw $t0, 148($sp) + #popping from stack to $t0 + lw $t0, 152($fp) + #pushing into function stack + sw $t0, 152($sp) + #Pushing a43 to stack + sw $t0, 152($sp) + #popping from stack to $t0 + lw $t0, 156($fp) + #pushing into function stack + sw $t0, 156($sp) + #Pushing a44 to stack + sw $t0, 156($sp) + #popping from stack to $t0 + lw $t0, 160($fp) + #pushing into function stack + sw $t0, 160($sp) + #Pushing a45 to stack + sw $t0, 160($sp) + #popping from stack to $t0 + lw $t0, 164($fp) + #pushing into function stack + sw $t0, 164($sp) + #Pushing a46 to stack + sw $t0, 164($sp) + #popping from stack to $t0 + lw $t0, 168($fp) + #pushing into function stack + sw $t0, 168($sp) + #Pushing a47 to stack + sw $t0, 168($sp) + #popping from stack to $t0 + lw $t0, 172($fp) + #pushing into function stack + sw $t0, 172($sp) + #Pushing a48 to stack + sw $t0, 172($sp) + #popping from stack to $t0 + lw $t0, 176($fp) + #pushing into function stack + sw $t0, 176($sp) + #Pushing a49 to stack + sw $t0, 176($sp) + #popping from stack to $t0 + lw $t0, 180($fp) + #pushing into function stack + sw $t0, 180($sp) + #Pushing a50 to stack + sw $t0, 180($sp) + #popping from stack to $t0 + lw $t0, 184($fp) + #pushing into function stack + sw $t0, 184($sp) + #Pushing a51 to stack + sw $t0, 184($sp) + #popping from stack to $t0 + lw $t0, 188($fp) + #pushing into function stack + sw $t0, 188($sp) + #Pushing a52 to stack + sw $t0, 188($sp) + #popping from stack to $t0 + lw $t0, 192($fp) + #pushing into function stack + sw $t0, 192($sp) + #Pushing a53 to stack + sw $t0, 192($sp) + #popping from stack to $t0 + lw $t0, 196($fp) + #pushing into function stack + sw $t0, 196($sp) + #Pushing a54 to stack + sw $t0, 196($sp) + #popping from stack to $t0 + lw $t0, 200($fp) + #pushing into function stack + sw $t0, 200($sp) + #Pushing a55 to stack + sw $t0, 200($sp) + #popping from stack to $t0 + lw $t0, 204($fp) + #pushing into function stack + sw $t0, 204($sp) + #Pushing a56 to stack + sw $t0, 204($sp) + #popping from stack to $t0 + lw $t0, 208($fp) + #pushing into function stack + sw $t0, 208($sp) + #Pushing a57 to stack + sw $t0, 208($sp) + #popping from stack to $t0 + lw $t0, 212($fp) + #pushing into function stack + sw $t0, 212($sp) + #Pushing a58 to stack + sw $t0, 212($sp) + #popping from stack to $t0 + lw $t0, 216($fp) + #pushing into function stack + sw $t0, 216($sp) + #Pushing a59 to stack + sw $t0, 216($sp) + #popping from stack to $t0 + lw $t0, 220($fp) + #pushing into function stack + sw $t0, 220($sp) + #Pushing a60 to stack + sw $t0, 220($sp) + #popping from stack to $t0 + lw $t0, 224($fp) + #pushing into function stack + sw $t0, 224($sp) + #Pushing a61 to stack + sw $t0, 224($sp) + #popping from stack to $t0 + lw $t0, 228($fp) + #pushing into function stack + sw $t0, 228($sp) + #Pushing a62 to stack + sw $t0, 228($sp) + #popping from stack to $t0 + lw $t0, 232($fp) + #pushing into function stack + sw $t0, 232($sp) + #Pushing a63 to stack + sw $t0, 232($sp) + #popping from stack to $t0 + lw $t0, 236($fp) + #pushing into function stack + sw $t0, 236($sp) + #Pushing a64 to stack + sw $t0, 236($sp) + #popping from stack to $t0 + lw $t0, 240($fp) + #pushing into function stack + sw $t0, 240($sp) + #Pushing a65 to stack + sw $t0, 240($sp) + #popping from stack to $t0 + lw $t0, 244($fp) + #pushing into function stack + sw $t0, 244($sp) + #Pushing a66 to stack + sw $t0, 244($sp) + #popping from stack to $t0 + lw $t0, 248($fp) + #pushing into function stack + sw $t0, 248($sp) + #Pushing a67 to stack + sw $t0, 248($sp) + #popping from stack to $t0 + lw $t0, 252($fp) + #pushing into function stack + sw $t0, 252($sp) + #Pushing a68 to stack + sw $t0, 252($sp) + #popping from stack to $t0 + lw $t0, 256($fp) + #pushing into function stack + sw $t0, 256($sp) + #Pushing a69 to stack + sw $t0, 256($sp) + #popping from stack to $t0 + lw $t0, 260($fp) + #pushing into function stack + sw $t0, 260($sp) + #Pushing a70 to stack + sw $t0, 260($sp) + #popping from stack to $t0 + lw $t0, 264($fp) + #pushing into function stack + sw $t0, 264($sp) + #Pushing a71 to stack + sw $t0, 264($sp) + #popping from stack to $t0 + lw $t0, 268($fp) + #pushing into function stack + sw $t0, 268($sp) + #Pushing a72 to stack + sw $t0, 268($sp) + #popping from stack to $t0 + lw $t0, 272($fp) + #pushing into function stack + sw $t0, 272($sp) + #Pushing a73 to stack + sw $t0, 272($sp) + #popping from stack to $t0 + lw $t0, 276($fp) + #pushing into function stack + sw $t0, 276($sp) + #Pushing a74 to stack + sw $t0, 276($sp) + #popping from stack to $t0 + lw $t0, 280($fp) + #pushing into function stack + sw $t0, 280($sp) + #Pushing a75 to stack + sw $t0, 280($sp) + #popping from stack to $t0 + lw $t0, 284($fp) + #pushing into function stack + sw $t0, 284($sp) + #Pushing a76 to stack + sw $t0, 284($sp) + #popping from stack to $t0 + lw $t0, 288($fp) + #pushing into function stack + sw $t0, 288($sp) + #Pushing a77 to stack + sw $t0, 288($sp) + #popping from stack to $t0 + lw $t0, 292($fp) + #pushing into function stack + sw $t0, 292($sp) + #Pushing a78 to stack + sw $t0, 292($sp) + #popping from stack to $t0 + lw $t0, 296($fp) + #pushing into function stack + sw $t0, 296($sp) + #Pushing a79 to stack + sw $t0, 296($sp) + #popping from stack to $t0 + lw $t0, 300($fp) + #pushing into function stack + sw $t0, 300($sp) + #Pushing a80 to stack + sw $t0, 300($sp) + #popping from stack to $t0 + lw $t0, 304($fp) + #pushing into function stack + sw $t0, 304($sp) + #Pushing a81 to stack + sw $t0, 304($sp) + #popping from stack to $t0 + lw $t0, 308($fp) + #pushing into function stack + sw $t0, 308($sp) + #Pushing a82 to stack + sw $t0, 308($sp) + #popping from stack to $t0 + lw $t0, 312($fp) + #pushing into function stack + sw $t0, 312($sp) + #Pushing a83 to stack + sw $t0, 312($sp) + #popping from stack to $t0 + lw $t0, 316($fp) + #pushing into function stack + sw $t0, 316($sp) + #Pushing a84 to stack + sw $t0, 316($sp) + #popping from stack to $t0 + lw $t0, 320($fp) + #pushing into function stack + sw $t0, 320($sp) + #Pushing a85 to stack + sw $t0, 320($sp) + #popping from stack to $t0 + lw $t0, 324($fp) + #pushing into function stack + sw $t0, 324($sp) + #Pushing a86 to stack + sw $t0, 324($sp) + #popping from stack to $t0 + lw $t0, 328($fp) + #pushing into function stack + sw $t0, 328($sp) + #Pushing a87 to stack + sw $t0, 328($sp) + #popping from stack to $t0 + lw $t0, 332($fp) + #pushing into function stack + sw $t0, 332($sp) + #Pushing a88 to stack + sw $t0, 332($sp) + #popping from stack to $t0 + lw $t0, 336($fp) + #pushing into function stack + sw $t0, 336($sp) + #Pushing a89 to stack + sw $t0, 336($sp) + #popping from stack to $t0 + lw $t0, 340($fp) + #pushing into function stack + sw $t0, 340($sp) + #Pushing a90 to stack + sw $t0, 340($sp) + #popping from stack to $t0 + lw $t0, 344($fp) + #pushing into function stack + sw $t0, 344($sp) + #Pushing a91 to stack + sw $t0, 344($sp) + #popping from stack to $t0 + lw $t0, 348($fp) + #pushing into function stack + sw $t0, 348($sp) + #Pushing a92 to stack + sw $t0, 348($sp) + #popping from stack to $t0 + lw $t0, 352($fp) + #pushing into function stack + sw $t0, 352($sp) + #Pushing a93 to stack + sw $t0, 352($sp) + #popping from stack to $t0 + lw $t0, 356($fp) + #pushing into function stack + sw $t0, 356($sp) + #Pushing a94 to stack + sw $t0, 356($sp) + #popping from stack to $t0 + lw $t0, 360($fp) + #pushing into function stack + sw $t0, 360($sp) + #Pushing a95 to stack + sw $t0, 360($sp) + #popping from stack to $t0 + lw $t0, 364($fp) + #pushing into function stack + sw $t0, 364($sp) + #Pushing a96 to stack + sw $t0, 364($sp) + #popping from stack to $t0 + lw $t0, 368($fp) + #pushing into function stack + sw $t0, 368($sp) + #Pushing a97 to stack + sw $t0, 368($sp) + #popping from stack to $t0 + lw $t0, 372($fp) + #pushing into function stack + sw $t0, 372($sp) + #Pushing a98 to stack + sw $t0, 372($sp) + #popping from stack to $t0 + lw $t0, 376($fp) + #pushing into function stack + sw $t0, 376($sp) + #Pushing a99 to stack + sw $t0, 376($sp) + #popping from stack to $t0 + lw $t0, 380($fp) + #pushing into function stack + sw $t0, 380($sp) + #Pushing a100 to stack + sw $t0, 380($sp) + add $t0, $t9, $t8 + # Spilling a1 from $t9 + add $t9, $t0, $t7 + # Spilling a2 from $t8 + add $t8, $t9, $t6 + # Spilling a3 from $t7 + add $t7, $t8, $t5 + # Spilling a4 from $t6 + add $t6, $t7, $t4 + # Spilling a5 from $t5 + add $t5, $t6, $t3 + # Spilling a6 from $t4 + add $t4, $t5, $t2 + # Spilling a7 from $t3 + add $t3, $t4, $t1 + # Spilling a8 from $t2 + lw $t2, 20($sp) + # Spilling a9 from $t1 + add $t1, $t3, $t2 + # Spilling a10 from $t2 + lw $t2, 24($sp) + # Spilling t0 from $t0 + add $t0, $t1, $t2 + # Spilling a11 from $t2 + lw $t2, 28($sp) + # Spilling t1 from $t9 + add $t9, $t0, $t2 + # Spilling a12 from $t2 + lw $t2, 32($sp) + # Spilling t2 from $t8 + add $t8, $t9, $t2 + # Spilling a13 from $t2 + lw $t2, 36($sp) + # Spilling t10 from $t9 + add $t9, $t8, $t2 + # Spilling a14 from $t2 + lw $t2, 40($sp) + # Spilling t11 from $t8 + add $t8, $t9, $t2 + # Spilling a15 from $t2 + lw $t2, 44($sp) + # Spilling t12 from $t9 + add $t9, $t8, $t2 + # Spilling a16 from $t2 + lw $t2, 48($sp) + # Spilling t13 from $t8 + add $t8, $t9, $t2 + # Spilling a17 from $t2 + lw $t2, 52($sp) + # Spilling t14 from $t9 + add $t9, $t8, $t2 + # Spilling a18 from $t2 + lw $t2, 56($sp) + # Spilling t15 from $t8 + add $t8, $t9, $t2 + # Spilling a19 from $t2 + lw $t2, 60($sp) + # Spilling t16 from $t9 + add $t9, $t8, $t2 + # Spilling a20 from $t2 + lw $t2, 64($sp) + # Spilling t17 from $t8 + add $t8, $t9, $t2 + # Spilling a21 from $t2 + lw $t2, 68($sp) + # Spilling t18 from $t9 + add $t9, $t8, $t2 + # Spilling a22 from $t2 + lw $t2, 72($sp) + # Spilling t19 from $t8 + add $t8, $t9, $t2 + # Spilling a23 from $t2 + lw $t2, 76($sp) + # Spilling t20 from $t9 + add $t9, $t8, $t2 + # Spilling a24 from $t2 + lw $t2, 80($sp) + # Spilling t21 from $t8 + add $t8, $t9, $t2 + # Spilling a25 from $t2 + lw $t2, 84($sp) + # Spilling t22 from $t9 + add $t9, $t8, $t2 + # Spilling a26 from $t2 + lw $t2, 88($sp) + # Spilling t23 from $t8 + add $t8, $t9, $t2 + # Spilling a27 from $t2 + lw $t2, 92($sp) + # Spilling t24 from $t9 + add $t9, $t8, $t2 + # Spilling a28 from $t2 + lw $t2, 96($sp) + # Spilling t25 from $t8 + add $t8, $t9, $t2 + # Spilling a29 from $t2 + lw $t2, 100($sp) + # Spilling t26 from $t9 + add $t9, $t8, $t2 + # Spilling a30 from $t2 + lw $t2, 104($sp) + # Spilling t27 from $t8 + add $t8, $t9, $t2 + # Spilling a31 from $t2 + lw $t2, 108($sp) + # Spilling t28 from $t9 + add $t9, $t8, $t2 + # Spilling a32 from $t2 + lw $t2, 112($sp) + # Spilling t29 from $t8 + add $t8, $t9, $t2 + # Spilling a33 from $t2 + lw $t2, 116($sp) + # Spilling t3 from $t7 + add $t7, $t8, $t2 + # Spilling a34 from $t2 + lw $t2, 120($sp) + # Spilling t30 from $t9 + add $t9, $t7, $t2 + # Spilling a35 from $t2 + lw $t2, 124($sp) + # Spilling t31 from $t8 + add $t8, $t9, $t2 + # Spilling a36 from $t2 + lw $t2, 128($sp) + # Spilling t32 from $t7 + add $t7, $t8, $t2 + # Spilling a37 from $t2 + lw $t2, 132($sp) + # Spilling t33 from $t9 + add $t9, $t7, $t2 + # Spilling a38 from $t2 + lw $t2, 136($sp) + # Spilling t34 from $t8 + add $t8, $t9, $t2 + # Spilling a39 from $t2 + lw $t2, 140($sp) + # Spilling t35 from $t7 + add $t7, $t8, $t2 + # Spilling a40 from $t2 + lw $t2, 144($sp) + # Spilling t36 from $t9 + add $t9, $t7, $t2 + # Spilling a41 from $t2 + lw $t2, 148($sp) + # Spilling t37 from $t8 + add $t8, $t9, $t2 + # Spilling a42 from $t2 + lw $t2, 152($sp) + # Spilling t38 from $t7 + add $t7, $t8, $t2 + # Spilling a43 from $t2 + lw $t2, 156($sp) + # Spilling t39 from $t9 + add $t9, $t7, $t2 + # Spilling a44 from $t2 + lw $t2, 160($sp) + # Spilling t4 from $t6 + add $t6, $t9, $t2 + # Spilling a45 from $t2 + lw $t2, 164($sp) + # Spilling t40 from $t8 + add $t8, $t6, $t2 + # Spilling a46 from $t2 + lw $t2, 168($sp) + # Spilling t41 from $t7 + add $t7, $t8, $t2 + # Spilling a47 from $t2 + lw $t2, 172($sp) + # Spilling t42 from $t9 + add $t9, $t7, $t2 + # Spilling a48 from $t2 + lw $t2, 176($sp) + # Spilling t43 from $t6 + add $t6, $t9, $t2 + # Spilling a49 from $t2 + lw $t2, 180($sp) + # Spilling t44 from $t8 + add $t8, $t6, $t2 + # Spilling a50 from $t2 + lw $t2, 184($sp) + # Spilling t45 from $t7 + add $t7, $t8, $t2 + # Spilling a51 from $t2 + lw $t2, 188($sp) + # Spilling t46 from $t9 + add $t9, $t7, $t2 + # Spilling a52 from $t2 + lw $t2, 192($sp) + # Spilling t47 from $t6 + add $t6, $t9, $t2 + # Spilling a53 from $t2 + lw $t2, 196($sp) + # Spilling t48 from $t8 + add $t8, $t6, $t2 + # Spilling a54 from $t2 + lw $t2, 200($sp) + # Spilling t49 from $t7 + add $t7, $t8, $t2 + # Spilling a55 from $t2 + lw $t2, 204($sp) + # Spilling t5 from $t5 + add $t5, $t7, $t2 + # Spilling a56 from $t2 + lw $t2, 208($sp) + # Spilling t50 from $t9 + add $t9, $t5, $t2 + # Spilling a57 from $t2 + lw $t2, 212($sp) + # Spilling t51 from $t6 + add $t6, $t9, $t2 + # Spilling a58 from $t2 + lw $t2, 216($sp) + # Spilling t52 from $t8 + add $t8, $t6, $t2 + # Spilling a59 from $t2 + lw $t2, 220($sp) + # Spilling t53 from $t7 + add $t7, $t8, $t2 + # Spilling a60 from $t2 + lw $t2, 224($sp) + # Spilling t54 from $t5 + add $t5, $t7, $t2 + # Spilling a61 from $t2 + lw $t2, 228($sp) + # Spilling t55 from $t9 + add $t9, $t5, $t2 + # Spilling a62 from $t2 + lw $t2, 232($sp) + # Spilling t56 from $t6 + add $t6, $t9, $t2 + # Spilling a63 from $t2 + lw $t2, 236($sp) + # Spilling t57 from $t8 + add $t8, $t6, $t2 + # Spilling a64 from $t2 + lw $t2, 240($sp) + # Spilling t58 from $t7 + add $t7, $t8, $t2 + # Spilling a65 from $t2 + lw $t2, 244($sp) + # Spilling t59 from $t5 + add $t5, $t7, $t2 + # Spilling a66 from $t2 + lw $t2, 248($sp) + # Spilling t6 from $t4 + add $t4, $t5, $t2 + # Spilling a67 from $t2 + lw $t2, 252($sp) + # Spilling t60 from $t9 + add $t9, $t4, $t2 + # Spilling a68 from $t2 + lw $t2, 256($sp) + # Spilling t61 from $t6 + add $t6, $t9, $t2 + # Spilling a69 from $t2 + lw $t2, 260($sp) + # Spilling t62 from $t8 + add $t8, $t6, $t2 + # Spilling a70 from $t2 + lw $t2, 264($sp) + # Spilling t63 from $t7 + add $t7, $t8, $t2 + # Spilling a71 from $t2 + lw $t2, 268($sp) + # Spilling t64 from $t5 + add $t5, $t7, $t2 + # Spilling a72 from $t2 + lw $t2, 272($sp) + # Spilling t65 from $t4 + add $t4, $t5, $t2 + # Spilling a73 from $t2 + lw $t2, 276($sp) + # Spilling t66 from $t9 + add $t9, $t4, $t2 + # Spilling a74 from $t2 + lw $t2, 280($sp) + # Spilling t67 from $t6 + add $t6, $t9, $t2 + # Spilling a75 from $t2 + lw $t2, 284($sp) + # Spilling t68 from $t8 + add $t8, $t6, $t2 + # Spilling a76 from $t2 + lw $t2, 288($sp) + # Spilling t69 from $t7 + add $t7, $t8, $t2 + # Spilling a77 from $t2 + lw $t2, 292($sp) + # Spilling t7 from $t3 + add $t3, $t7, $t2 + # Spilling a78 from $t2 + lw $t2, 296($sp) + # Spilling t70 from $t5 + add $t5, $t3, $t2 + # Spilling a79 from $t2 + lw $t2, 300($sp) + # Spilling t71 from $t4 + add $t4, $t5, $t2 + # Spilling a80 from $t2 + lw $t2, 304($sp) + # Spilling t72 from $t9 + add $t9, $t4, $t2 + # Spilling a81 from $t2 + lw $t2, 308($sp) + # Spilling t73 from $t6 + add $t6, $t9, $t2 + # Spilling a82 from $t2 + lw $t2, 312($sp) + # Spilling t74 from $t8 + add $t8, $t6, $t2 + # Spilling a83 from $t2 + lw $t2, 316($sp) + # Spilling t75 from $t7 + add $t7, $t8, $t2 + # Spilling a84 from $t2 + lw $t2, 320($sp) + # Spilling t76 from $t3 + add $t3, $t7, $t2 + # Spilling a85 from $t2 + lw $t2, 324($sp) + # Spilling t77 from $t5 + add $t5, $t3, $t2 + # Spilling a86 from $t2 + lw $t2, 328($sp) + # Spilling t78 from $t4 + add $t4, $t5, $t2 + # Spilling a87 from $t2 + lw $t2, 332($sp) + # Spilling t79 from $t9 + add $t9, $t4, $t2 + # Spilling a88 from $t2 + lw $t2, 336($sp) + # Spilling t8 from $t1 + add $t1, $t9, $t2 + # Spilling a89 from $t2 + lw $t2, 340($sp) + # Spilling t80 from $t6 + add $t6, $t1, $t2 + # Spilling a90 from $t2 + lw $t2, 344($sp) + # Spilling t81 from $t8 + add $t8, $t6, $t2 + # Spilling a91 from $t2 + lw $t2, 348($sp) + # Spilling t82 from $t7 + add $t7, $t8, $t2 + # Spilling a92 from $t2 + lw $t2, 352($sp) + # Spilling t83 from $t3 + add $t3, $t7, $t2 + # Spilling a93 from $t2 + lw $t2, 356($sp) + # Spilling t84 from $t5 + add $t5, $t3, $t2 + # Spilling a94 from $t2 + lw $t2, 360($sp) + # Spilling t85 from $t4 + add $t4, $t5, $t2 + # Spilling a95 from $t2 + lw $t2, 364($sp) + # Spilling t86 from $t9 + add $t9, $t4, $t2 + # Spilling a96 from $t2 + lw $t2, 368($sp) + # Spilling t87 from $t1 + add $t1, $t9, $t2 + # Spilling a97 from $t2 + lw $t2, 372($sp) + # Spilling t88 from $t6 + add $t6, $t1, $t2 + # Spilling a98 from $t2 + lw $t2, 376($sp) + # Spilling t89 from $t8 + add $t8, $t6, $t2 + # Spilling a99 from $t2 + lw $t2, 380($sp) + # Spilling t9 from $t0 + add $t0, $t8, $t2 + move $v0, $t0 + lw $fp, 836($sp) + lw $ra, 840($sp) + lw $t0, 832($sp) + lw $t1, 828($sp) + lw $t2, 824($sp) + lw $t3, 820($sp) + lw $t4, 816($sp) + lw $t5, 812($sp) + lw $t6, 808($sp) + lw $t7, 804($sp) + lw $t8, 800($sp) + lw $t9, 796($sp) + addi $sp, $sp, 844 + jr $ra main: move $fp, $sp - addi $sp, $sp, -12 - sw $ra, 8($sp) - sw $fp, 4($sp) + addi $sp, $sp, -420 + sw $ra, 416($sp) + sw $fp, 412($sp) + # Spilling a100 from $t2 + li $t2, 10 + # Spilling t90 from $t7 + li $t7, 10 + # Spilling t91 from $t3 + li $t3, 10 + # Spilling t92 from $t5 + li $t5, 10 + # Spilling t93 from $t4 + li $t4, 10 + # Spilling t94 from $t9 + li $t9, 10 + # Spilling t95 from $t1 + li $t1, 10 + # Spilling t96 from $t6 + li $t6, 10 + # Spilling t97 from $t8 + li $t8, 10 + # Spilling t98 from $t0 + li $t0, 10 + #Pushing a1 to stack + sw $t2, 0($sp) + li $t2, 10 + #Pushing a10 to stack + sw $t0, 4($sp) + li $t0, 10 + #Pushing a11 to stack + sw $t2, 8($sp) + li $t2, 10 + #Pushing a12 to stack + sw $t0, 12($sp) + li $t0, 10 + #Pushing a13 to stack + sw $t2, 16($sp) + li $t2, 10 + #Pushing a14 to stack + sw $t0, 20($sp) + li $t0, 10 + #Pushing a15 to stack + sw $t2, 24($sp) + li $t2, 10 + #Pushing a16 to stack + sw $t0, 28($sp) + li $t0, 10 + #Pushing a17 to stack + sw $t2, 32($sp) + li $t2, 10 + #Pushing a18 to stack + sw $t0, 36($sp) + li $t0, 10 + #Pushing a19 to stack + sw $t2, 40($sp) + li $t2, 10 + #Pushing a2 to stack + sw $t7, 44($sp) + li $t7, 10 + #Pushing a20 to stack + sw $t0, 48($sp) + li $t0, 10 + #Pushing a21 to stack + sw $t2, 52($sp) + li $t2, 10 + #Pushing a22 to stack + sw $t7, 56($sp) + li $t7, 10 + #Pushing a23 to stack + sw $t0, 60($sp) + li $t0, 10 + #Pushing a24 to stack + sw $t2, 64($sp) + li $t2, 10 + #Pushing a25 to stack + sw $t7, 68($sp) + li $t7, 10 + #Pushing a26 to stack + sw $t0, 72($sp) + li $t0, 10 + #Pushing a27 to stack + sw $t2, 76($sp) + li $t2, 10 + #Pushing a28 to stack + sw $t7, 80($sp) + li $t7, 10 + #Pushing a29 to stack + sw $t0, 84($sp) + li $t0, 10 + #Pushing a3 to stack + sw $t3, 88($sp) + li $t3, 10 + #Pushing a30 to stack + sw $t2, 92($sp) + li $t2, 10 + #Pushing a31 to stack + sw $t7, 96($sp) + li $t7, 10 + #Pushing a32 to stack + sw $t0, 100($sp) + li $t0, 10 + #Pushing a33 to stack + sw $t3, 104($sp) + li $t3, 10 + #Pushing a34 to stack + sw $t2, 108($sp) + li $t2, 10 + #Pushing a35 to stack + sw $t7, 112($sp) + li $t7, 10 + #Pushing a36 to stack + sw $t0, 116($sp) + li $t0, 10 + #Pushing a37 to stack + sw $t3, 120($sp) + li $t3, 10 + #Pushing a38 to stack + sw $t2, 124($sp) + li $t2, 10 + #Pushing a39 to stack + sw $t7, 128($sp) + li $t7, 10 + #Pushing a4 to stack + sw $t5, 132($sp) + li $t5, 10 + #Pushing a40 to stack + sw $t0, 136($sp) + li $t0, 10 + #Pushing a41 to stack + sw $t3, 140($sp) + li $t3, 10 + #Pushing a42 to stack + sw $t2, 144($sp) + li $t2, 10 + #Pushing a43 to stack + sw $t7, 148($sp) + li $t7, 10 + #Pushing a44 to stack + sw $t5, 152($sp) + li $t5, 10 + #Pushing a45 to stack + sw $t0, 156($sp) + li $t0, 10 + #Pushing a46 to stack + sw $t3, 160($sp) + li $t3, 10 + #Pushing a47 to stack + sw $t2, 164($sp) + li $t2, 10 + #Pushing a48 to stack + sw $t7, 168($sp) + li $t7, 10 + #Pushing a49 to stack + sw $t5, 172($sp) + li $t5, 10 + #Pushing a5 to stack + sw $t4, 176($sp) + li $t4, 10 + #Pushing a50 to stack + sw $t0, 180($sp) + li $t0, 10 + #Pushing a51 to stack + sw $t3, 184($sp) + li $t3, 10 + #Pushing a52 to stack + sw $t2, 188($sp) + li $t2, 10 + #Pushing a53 to stack + sw $t7, 192($sp) + li $t7, 10 + #Pushing a54 to stack + sw $t5, 196($sp) + li $t5, 10 + #Pushing a55 to stack + sw $t4, 200($sp) + li $t4, 10 + #Pushing a56 to stack + sw $t0, 204($sp) + li $t0, 10 + #Pushing a57 to stack + sw $t3, 208($sp) + li $t3, 10 + #Pushing a58 to stack + sw $t2, 212($sp) + li $t2, 10 + #Pushing a59 to stack + sw $t7, 216($sp) + li $t7, 10 + #Pushing a6 to stack + sw $t9, 220($sp) + li $t9, 10 + #Pushing a60 to stack + sw $t5, 224($sp) + li $t5, 10 + #Pushing a61 to stack + sw $t4, 228($sp) + li $t4, 10 + #Pushing a62 to stack + sw $t0, 232($sp) + li $t0, 10 + #Pushing a63 to stack + sw $t3, 236($sp) + li $t3, 10 + #Pushing a64 to stack + sw $t2, 240($sp) + li $t2, 10 + #Pushing a65 to stack + sw $t7, 244($sp) + li $t7, 10 + #Pushing a66 to stack + sw $t9, 248($sp) + li $t9, 10 + #Pushing a67 to stack + sw $t5, 252($sp) + li $t5, 10 + #Pushing a68 to stack + sw $t4, 256($sp) + li $t4, 10 + #Pushing a69 to stack + sw $t0, 260($sp) + li $t0, 10 + #Pushing a7 to stack + sw $t1, 264($sp) + li $t1, 10 + #Pushing a70 to stack + sw $t3, 268($sp) + li $t3, 10 + #Pushing a71 to stack + sw $t2, 272($sp) + li $t2, 10 + #Pushing a72 to stack + sw $t7, 276($sp) + li $t7, 10 + #Pushing a73 to stack + sw $t9, 280($sp) + li $t9, 10 + #Pushing a74 to stack + sw $t5, 284($sp) + li $t5, 10 + #Pushing a75 to stack + sw $t4, 288($sp) + li $t4, 10 + #Pushing a76 to stack + sw $t0, 292($sp) + li $t0, 10 + #Pushing a77 to stack + sw $t1, 296($sp) + li $t1, 10 + #Pushing a78 to stack + sw $t3, 300($sp) + li $t3, 10 + #Pushing a79 to stack + sw $t2, 304($sp) + li $t2, 10 + #Pushing a8 to stack + sw $t6, 308($sp) + li $t6, 10 + #Pushing a80 to stack + sw $t7, 312($sp) + li $t7, 10 + #Pushing a81 to stack + sw $t9, 316($sp) + li $t9, 10 + #Pushing a82 to stack + sw $t5, 320($sp) + li $t5, 10 + #Pushing a83 to stack + sw $t4, 324($sp) + li $t4, 10 + #Pushing a84 to stack + sw $t0, 328($sp) + li $t0, 10 + #Pushing a85 to stack + sw $t1, 332($sp) + li $t1, 10 + #Pushing a86 to stack + sw $t3, 336($sp) + li $t3, 10 + #Pushing a87 to stack + sw $t2, 340($sp) + li $t2, 10 + #Pushing a88 to stack + sw $t6, 344($sp) + li $t6, 10 + #Pushing a89 to stack + sw $t7, 348($sp) + li $t7, 10 + #Pushing a9 to stack + sw $t8, 352($sp) + li $t8, 10 + #Pushing a90 to stack + sw $t9, 356($sp) + li $t9, 10 + #Pushing a100 to stack + sw $t9, 360($sp) + lw $t9, 0($sp) + move $a0, $t9 + #Pushing a1 to stack + sw $t9, 0($sp) + lw $t9, 44($sp) + move $a1, $t9 + #Pushing a2 to stack + sw $t9, 44($sp) + lw $t9, 88($sp) + move $a2, $t9 + #Pushing a3 to stack + sw $t9, 88($sp) + lw $t9, 132($sp) + move $a3, $t9 + #Pushing a4 to stack + sw $t9, 132($sp) + lw $t9, 176($sp) + #Pushing a5 to stack + sw $t9, 176($sp) + lw $t9, 220($sp) + #Pushing a6 to stack + sw $t9, 220($sp) + lw $t9, 264($sp) + #Pushing a7 to stack + sw $t9, 264($sp) + lw $t9, 308($sp) + #Pushing a8 to stack + sw $t9, 308($sp) + lw $t9, 352($sp) + #Pushing a9 to stack + sw $t9, 352($sp) + lw $t9, 4($sp) + #Pushing a10 to stack + sw $t9, 4($sp) + lw $t9, 8($sp) + #Pushing a11 to stack + sw $t9, 8($sp) + lw $t9, 12($sp) + #Pushing a12 to stack + sw $t9, 12($sp) + lw $t9, 16($sp) + #Pushing a13 to stack + sw $t9, 16($sp) + lw $t9, 20($sp) + #Pushing a14 to stack + sw $t9, 20($sp) + lw $t9, 24($sp) + #Pushing a15 to stack + sw $t9, 24($sp) + lw $t9, 28($sp) + #Pushing a16 to stack + sw $t9, 28($sp) + lw $t9, 32($sp) + #Pushing a17 to stack + sw $t9, 32($sp) + lw $t9, 36($sp) + #Pushing a18 to stack + sw $t9, 36($sp) + lw $t9, 40($sp) + #Pushing a19 to stack + sw $t9, 40($sp) + lw $t9, 48($sp) + #Pushing a20 to stack + sw $t9, 48($sp) + lw $t9, 52($sp) + #Pushing a21 to stack + sw $t9, 52($sp) + lw $t9, 56($sp) + #Pushing a22 to stack + sw $t9, 56($sp) + lw $t9, 60($sp) + #Pushing a23 to stack + sw $t9, 60($sp) + lw $t9, 64($sp) + #Pushing a24 to stack + sw $t9, 64($sp) + lw $t9, 68($sp) + #Pushing a25 to stack + sw $t9, 68($sp) + lw $t9, 72($sp) + #Pushing a26 to stack + sw $t9, 72($sp) + lw $t9, 76($sp) + #Pushing a27 to stack + sw $t9, 76($sp) + lw $t9, 80($sp) + #Pushing a28 to stack + sw $t9, 80($sp) + lw $t9, 84($sp) + #Pushing a29 to stack + sw $t9, 84($sp) + lw $t9, 92($sp) + #Pushing a30 to stack + sw $t9, 92($sp) + lw $t9, 96($sp) + #Pushing a31 to stack + sw $t9, 96($sp) + lw $t9, 100($sp) + #Pushing a32 to stack + sw $t9, 100($sp) + lw $t9, 104($sp) + #Pushing a33 to stack + sw $t9, 104($sp) + lw $t9, 108($sp) + #Pushing a34 to stack + sw $t9, 108($sp) + lw $t9, 112($sp) + #Pushing a35 to stack + sw $t9, 112($sp) + lw $t9, 116($sp) + #Pushing a36 to stack + sw $t9, 116($sp) + lw $t9, 120($sp) + #Pushing a37 to stack + sw $t9, 120($sp) + lw $t9, 124($sp) + #Pushing a38 to stack + sw $t9, 124($sp) + lw $t9, 128($sp) + #Pushing a39 to stack + sw $t9, 128($sp) + lw $t9, 136($sp) + #Pushing a40 to stack + sw $t9, 136($sp) + lw $t9, 140($sp) + #Pushing a41 to stack + sw $t9, 140($sp) + lw $t9, 144($sp) + #Pushing a42 to stack + sw $t9, 144($sp) + lw $t9, 148($sp) + #Pushing a43 to stack + sw $t9, 148($sp) + lw $t9, 152($sp) + #Pushing a44 to stack + sw $t9, 152($sp) + lw $t9, 156($sp) + #Pushing a45 to stack + sw $t9, 156($sp) + lw $t9, 160($sp) + #Pushing a46 to stack + sw $t9, 160($sp) + lw $t9, 164($sp) + #Pushing a47 to stack + sw $t9, 164($sp) + lw $t9, 168($sp) + #Pushing a48 to stack + sw $t9, 168($sp) + lw $t9, 172($sp) + #Pushing a49 to stack + sw $t9, 172($sp) + lw $t9, 180($sp) + #Pushing a50 to stack + sw $t9, 180($sp) + lw $t9, 184($sp) + #Pushing a51 to stack + sw $t9, 184($sp) + lw $t9, 188($sp) + #Pushing a52 to stack + sw $t9, 188($sp) + lw $t9, 192($sp) + #Pushing a53 to stack + sw $t9, 192($sp) + lw $t9, 196($sp) + #Pushing a54 to stack + sw $t9, 196($sp) + lw $t9, 200($sp) + #Pushing a55 to stack + sw $t9, 200($sp) + lw $t9, 204($sp) + #Pushing a56 to stack + sw $t9, 204($sp) + lw $t9, 208($sp) + #Pushing a57 to stack + sw $t9, 208($sp) + lw $t9, 212($sp) + #Pushing a58 to stack + sw $t9, 212($sp) + lw $t9, 216($sp) + #Pushing a59 to stack + sw $t9, 216($sp) + lw $t9, 224($sp) + #Pushing a60 to stack + sw $t9, 224($sp) + lw $t9, 228($sp) + #Pushing a61 to stack + sw $t9, 228($sp) + lw $t9, 232($sp) + #Pushing a62 to stack + sw $t9, 232($sp) + lw $t9, 236($sp) + #Pushing a63 to stack + sw $t9, 236($sp) + lw $t9, 240($sp) + #Pushing a64 to stack + sw $t9, 240($sp) + lw $t9, 244($sp) + #Pushing a65 to stack + sw $t9, 244($sp) + lw $t9, 248($sp) + #Pushing a66 to stack + sw $t9, 248($sp) + lw $t9, 252($sp) + #Pushing a67 to stack + sw $t9, 252($sp) + lw $t9, 256($sp) + #Pushing a68 to stack + sw $t9, 256($sp) + lw $t9, 260($sp) + #Pushing a69 to stack + sw $t9, 260($sp) + lw $t9, 268($sp) + #Pushing a70 to stack + sw $t9, 268($sp) + lw $t9, 272($sp) + #Pushing a71 to stack + sw $t9, 272($sp) + lw $t9, 276($sp) + #Pushing a72 to stack + sw $t9, 276($sp) + lw $t9, 280($sp) + #Pushing a73 to stack + sw $t9, 280($sp) + lw $t9, 284($sp) + #Pushing a74 to stack + sw $t9, 284($sp) + lw $t9, 288($sp) + #Pushing a75 to stack + sw $t9, 288($sp) + lw $t9, 292($sp) + #Pushing a76 to stack + sw $t9, 292($sp) + lw $t9, 296($sp) + #Pushing a77 to stack + sw $t9, 296($sp) + lw $t9, 300($sp) + #Pushing a78 to stack + sw $t9, 300($sp) + lw $t9, 304($sp) + #Pushing a79 to stack + sw $t9, 304($sp) + lw $t9, 312($sp) + #Pushing a80 to stack + sw $t9, 312($sp) + lw $t9, 316($sp) + #Pushing a81 to stack + sw $t9, 316($sp) + lw $t9, 320($sp) + #Pushing a82 to stack + sw $t9, 320($sp) + lw $t9, 324($sp) + #Pushing a83 to stack + sw $t9, 324($sp) + lw $t9, 328($sp) + #Pushing a84 to stack + sw $t9, 328($sp) + lw $t9, 332($sp) + #Pushing a85 to stack + sw $t9, 332($sp) + lw $t9, 336($sp) + #Pushing a86 to stack + sw $t9, 336($sp) + lw $t9, 340($sp) + #Pushing a87 to stack + sw $t9, 340($sp) + lw $t9, 344($sp) + #Pushing a88 to stack + sw $t9, 344($sp) + lw $t9, 348($sp) + #Pushing a89 to stack + sw $t9, 348($sp) + lw $t9, 356($sp) + #Pushing a90 to stack + sw $t9, 356($sp) + lw $t9, 360($sp) + #Pushing a100 to stack + sw $t9, 360($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t8, 0($sp) + addi $sp, $sp, -4 + sw $t7, 0($sp) + addi $sp, $sp, -4 + sw $t6, 0($sp) + addi $sp, $sp, -4 + sw $t2, 0($sp) + addi $sp, $sp, -4 + sw $t3, 0($sp) + addi $sp, $sp, -4 + sw $t1, 0($sp) + addi $sp, $sp, -4 + sw $t0, 0($sp) + addi $sp, $sp, -4 + sw $t4, 0($sp) + addi $sp, $sp, -4 + sw $t5, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + addi $sp, $sp, -4 + sw $t9, 0($sp) + jal add_all + move $t9, $v0 + #Pushing a91 to stack + sw $t5, 364($sp) + move $t5, $t9 la $a0, str0 - li.s $f12, 3.100000 + move $a1, $t5 + # Spilling t99 from $t9 #printf move $a0, $a0 li $v0, 4 @@ -20,12 +1767,15 @@ syscall li $v0, 4 la $a0, newline syscall - mov.s $f12, $f12 - li $v0, 2 + move $a0, $a1 + li $v0, 1 syscall li $v0, 4 la $a0, newline syscall move $t9, $v0 + li $v0, 0 + lw $fp, 412($sp) + lw $ra, 416($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output10.s b/Assignment4/output/output10.s new file mode 100644 index 0000000..2980fd8 --- /dev/null +++ b/Assignment4/output/output10.s @@ -0,0 +1,77 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz " Answer" +.text +.globl main +fun: + move $fp, $sp + addi $sp, $sp, -64 + sw $ra, 60($sp) + sw $fp, 56($sp) + sw $t0, 52($sp) + sw $t1, 48($sp) + sw $t2, 44($sp) + sw $t3, 40($sp) + sw $t4, 36($sp) + sw $t5, 32($sp) + sw $t6, 28($sp) + sw $t7, 24($sp) + sw $t8, 20($sp) + sw $t9, 16($sp) + mov.s $f31, $f12 + move $t9, $a0 + mtc1 $t9, $f30 + cvt.s.w $f30, $f30 + add.s $f29, $f31, $f30 + mov.s $f28, $f29 + mov.s $f0, $f28 + lw $fp, 56($sp) + lw $ra, 60($sp) + lw $t0, 52($sp) + lw $t1, 48($sp) + lw $t2, 44($sp) + lw $t3, 40($sp) + lw $t4, 36($sp) + lw $t5, 32($sp) + lw $t6, 28($sp) + lw $t7, 24($sp) + lw $t8, 20($sp) + lw $t9, 16($sp) + addi $sp, $sp, 64 + jr $ra +main: + move $fp, $sp + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t8, 2 + li.s $f12, 2.000000 + li $a0, 3 + jal fun + mov.s $f27, $f0 + mov.s $f26, $f27 + la $a0, str0 + mov.s $f12, $f26 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t6, $v0 + li $v0, 0 + lw $fp, 16($sp) + lw $ra, 20($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output11.s b/Assignment4/output/output11.s new file mode 100644 index 0000000..0d6816e --- /dev/null +++ b/Assignment4/output/output11.s @@ -0,0 +1,90 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -52 + sw $ra, 48($sp) + sw $fp, 44($sp) + addi $t9, $sp, 0 + #Loading constant 7 into register + li $t8, 7 + sw $t8, 0($t9) + addi $t7, $sp, 4 + #Loading constant 8 into register + li $t6, 8 + sw $t6, 0($t7) + li $t5, 0 + li $t4, 4 + mul $t3, $t5, $t4 + li $t2, 5 + addi $t3, $t3, 8 + add $t3, $t3, $sp + sw $t2, 0($t3) + li $t1, 1 + li $t0, 4 + # Spilling t0 from $t9 + mul $t9, $t1, $t0 + # Spilling t1 from $t7 + li $t7, 4 + addi $t9, $t9, 8 + add $t9, $t9, $sp + sw $t7, 0($t9) + # Spilling t2 from $t3 + li $t3, 2 + # Spilling t3 from $t9 + li $t9, 4 + mul $t0, $t3, $t9 + #Pushing t4 to stack + sw $t0, 20($sp) + li $t0, 5 + lw $t0, 20($sp) + addi $t0, $t0, 8 + add $t0, $t0, $sp + sw $t0, 0($t0) + # Spilling t4 from $t0 + li $t0, 4 + li $t0, 0 + mul $t0, $t0, $t0 + addi $t0, $t0, 8 + add $t0, $t0, $sp + #Pushing t5 to stack + sw $t0, 24($sp) + lw $t0, 0($t0) + #Pushing t6 to stack + sw $t0, 28($sp) + #Pushing c to stack + sw $t0, 32($sp) + lw $t0, 28($sp) + move $t0, $t0 + la $a0, str0 + # Spilling t6 from $t0 + lw $t0, 32($sp) + move $a1, $t0 + #Pushing c to stack + sw $t0, 32($sp) +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 0 + lw $fp, 44($sp) + lw $ra, 48($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output12.s b/Assignment4/output/output12.s new file mode 100644 index 0000000..fd5282c --- /dev/null +++ b/Assignment4/output/output12.s @@ -0,0 +1,48 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -32 + sw $ra, 28($sp) + sw $fp, 24($sp) + li $t9, 0 + #Pushing i to stack + sw $t9, 0($sp) + addi $t8, $sp, 0 + #Pushing ptr to stack + sw $t8, 4($sp) + addi $t9, $sp, 4 + lw $t8, 0($t9) + sw $t8, 8($sp) + #Loading constant 10 into register + li $t7, 10 + sw $t7, 0($t8) + la $a0, str0 + lw $t6, 0($sp) + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t5, $v0 + li $v0, 0 + lw $fp, 24($sp) + lw $ra, 28($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output13.s b/Assignment4/output/output13.s new file mode 100644 index 0000000..d2458c1 --- /dev/null +++ b/Assignment4/output/output13.s @@ -0,0 +1,78 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "1" +str1: .asciiz "2" +str2: .asciiz "3" +str3: .asciiz "default" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -40 + sw $ra, 36($sp) + sw $fp, 32($sp) + li $t9, 5 + li $t8, 1 + seq $t7, $t9, $t8 + bnez $t7, LABEL0 + li $t6, 2 + seq $t5, $t9, $t6 + bnez $t5, LABEL1 + li $t4, 3 + seq $t3, $t9, $t4 + bnez $t3, LABEL2 + j LABEL3 +LABEL0: + la $a0, str0 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t2, $v0 + j LABEL4 +LABEL1: + la $a0, str1 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t1, $v0 + j LABEL4 +LABEL2: + la $a0, str2 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + j LABEL4 +LABEL3: + la $a0, str3 + # Spilling a from $t9 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t9, $v0 +LABEL4: + li $v0, 0 + lw $fp, 32($sp) + lw $ra, 36($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output14.s b/Assignment4/output/output14.s new file mode 100644 index 0000000..836c9b5 --- /dev/null +++ b/Assignment4/output/output14.s @@ -0,0 +1,390 @@ +# =====================LIST OF ERRORS=================================== +#Line 10 : Missing return statement +# ====================================================================== +.data +newline: .asciiz "\n" +str0: .asciiz "Arithmetic test failed:" +str1: .asciiz "Recursion test failed:" +str2: .asciiz "Array sum test failed:" +str3: .asciiz "Branching test failed:" +str4: .asciiz "All tests passed successfully!\n" +.text +.globl main +addx: + move $fp, $sp + addi $sp, $sp, -60 + sw $ra, 56($sp) + sw $fp, 52($sp) + sw $t0, 48($sp) + sw $t1, 44($sp) + sw $t2, 40($sp) + sw $t3, 36($sp) + sw $t4, 32($sp) + sw $t5, 28($sp) + sw $t6, 24($sp) + sw $t7, 20($sp) + sw $t8, 16($sp) + sw $t9, 12($sp) + move $t9, $a0 + move $t8, $a1 + add $t7, $t9, $t8 + move $v0, $t7 + lw $fp, 52($sp) + lw $ra, 56($sp) + lw $t0, 48($sp) + lw $t1, 44($sp) + lw $t2, 40($sp) + lw $t3, 36($sp) + lw $t4, 32($sp) + lw $t5, 28($sp) + lw $t6, 24($sp) + lw $t7, 20($sp) + lw $t8, 16($sp) + lw $t9, 12($sp) + addi $sp, $sp, 60 + jr $ra +factorial: + move $fp, $sp + addi $sp, $sp, -68 + sw $ra, 64($sp) + sw $fp, 60($sp) + sw $t0, 56($sp) + sw $t1, 52($sp) + sw $t2, 48($sp) + sw $t3, 44($sp) + sw $t4, 40($sp) + sw $t5, 36($sp) + sw $t6, 32($sp) + sw $t7, 28($sp) + sw $t8, 24($sp) + sw $t9, 20($sp) + move $t6, $a0 + li $t5, 1 + slt $t4, $t5, $t6 + xori $t4, $t4, 1 + bnez $t4, LABEL0 + j LABEL1 +LABEL0: + li $v0, 1 + lw $fp, 60($sp) + lw $ra, 64($sp) + lw $t0, 56($sp) + lw $t1, 52($sp) + lw $t2, 48($sp) + lw $t3, 44($sp) + lw $t4, 40($sp) + lw $t5, 36($sp) + lw $t6, 32($sp) + lw $t7, 28($sp) + lw $t8, 24($sp) + lw $t9, 20($sp) + addi $sp, $sp, 68 + jr $ra + j LABEL2 +LABEL1: + li $t3, 1 + sub $t2, $t6, $t3 + move $a0, $t2 + jal factorial + move $t1, $v0 + mul $t0, $t6, $t1 + move $v0, $t0 + lw $fp, 60($sp) + lw $ra, 64($sp) + lw $t0, 56($sp) + lw $t1, 52($sp) + lw $t2, 48($sp) + lw $t3, 44($sp) + lw $t4, 40($sp) + lw $t5, 36($sp) + lw $t6, 32($sp) + lw $t7, 28($sp) + lw $t8, 24($sp) + lw $t9, 20($sp) + addi $sp, $sp, 68 + jr $ra +LABEL2: +main: + move $fp, $sp + addi $sp, $sp, -124 + sw $ra, 120($sp) + sw $fp, 116($sp) + # Spilling a from $t9 + li $t9, 5 + # Spilling b from $t8 + li $t8, 10 + move $a0, $t9 + move $a1, $t8 + # Spilling t0 from $t7 + jal addx + move $t7, $v0 + # Spilling n from $t6 + move $t6, $t7 + # Spilling t1 from $t4 + li $t4, 15 + # Spilling t2 from $t2 + sne $t2, $t6, $t4 + bnez $t2, LABEL3 + j LABEL4 +LABEL3: + la $a0, str0 + move $a1, $t6 + # Spilling t3 from $t1 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t1, $v0 + li $v0, 1 + lw $fp, 116($sp) + lw $ra, 120($sp) +LABEL4: + li $a0, 5 + # Spilling t4 from $t0 + jal factorial + move $t0, $v0 + # Spilling result from $t6 + move $t6, $t0 + # Spilling t5 from $t7 + li $t7, 120 + # Spilling t6 from $t2 + sne $t2, $t6, $t7 + bnez $t2, LABEL5 + j LABEL6 +LABEL5: + la $a0, str1 + move $a1, $t6 + # Spilling t8 from $t0 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 1 + lw $fp, 116($sp) + lw $ra, 120($sp) +LABEL6: + # Spilling fact from $t6 + li $t6, 0 + # Spilling t9 from $t2 + li $t2, 4 + # Spilling t7 from $t1 + mul $t1, $t6, $t2 + # Spilling t10 from $t0 + li $t0, 1 + addi $t1, $t1, 0 + add $t1, $t1, $sp + sw $t0, 0($t1) + # Spilling t11 from $t1 + li $t1, 1 + #Pushing a to stack + sw $t9, 20($sp) + li $t9, 4 + #Pushing b to stack + sw $t8, 24($sp) + mul $t8, $t1, $t9 + li $t0, 2 + addi $t8, $t8, 0 + add $t8, $t8, $sp + sw $t0, 0($t8) + # Spilling t12 from $t8 + li $t8, 2 + li $t0, 4 + mul $t0, $t8, $t0 + #Pushing t13 to stack + sw $t0, 28($sp) + li $t0, 3 + lw $t0, 28($sp) + addi $t0, $t0, 0 + add $t0, $t0, $sp + sw $t0, 0($t0) + # Spilling t13 from $t0 + li $t0, 3 + li $t0, 4 + mul $t0, $t0, $t0 + #Pushing t14 to stack + sw $t0, 32($sp) + li $t0, 4 + lw $t0, 32($sp) + addi $t0, $t0, 0 + add $t0, $t0, $sp + sw $t0, 0($t0) + # Spilling t14 from $t0 + li $t0, 4 + li $t0, 4 + mul $t0, $t0, $t0 + #Pushing t15 to stack + sw $t0, 36($sp) + li $t0, 5 + lw $t0, 36($sp) + addi $t0, $t0, 0 + add $t0, $t0, $sp + sw $t0, 0($t0) + # Spilling t15 from $t0 + li $t0, 0 + #Pushing array_sum to stack + sw $t0, 40($sp) + li $t0, 0 + li $t0, 0 +LABEL7: + #Pushing i to stack + sw $t0, 44($sp) + li $t0, 5 + slt $t0, $t0, $t0 + bnez $t0, LABEL9 + j LABEL8 +LABEL9: + # Spilling t16 from $t0 + li $t0, 4 + lw $t0, 44($sp) + #Pushing i to stack + sw $t0, 44($sp) + mul $t0, $t0, $t0 + addi $t0, $t0, 0 + add $t0, $t0, $sp + #Pushing t17 to stack + sw $t0, 48($sp) + lw $t0, 0($t0) + #Pushing t18 to stack + sw $t0, 52($sp) + lw $t0, 40($sp) + #Pushing array_sum to stack + sw $t0, 40($sp) + lw $t0, 52($sp) + #Pushing t18 to stack + sw $t0, 52($sp) + add $t0, $t0, $t0 + #Pushing t19 to stack + sw $t0, 56($sp) + lw $t0, 40($sp) + #Pushing array_sum to stack + sw $t0, 40($sp) + lw $t0, 56($sp) + move $t0, $t0 + # Spilling t19 from $t0 + lw $t0, 44($sp) + #Pushing i to stack + sw $t0, 44($sp) + li $t0, 1 + lw $t0, 44($sp) + add $t0, $t0, $t0 + j LABEL7 +LABEL8: + # Spilling i from $t0 + lw $t0, 40($sp) + #Pushing array_sum to stack + sw $t0, 40($sp) + li $t0, 15 + sne $t0, $t0, $t0 + bnez $t0, LABEL11 + j LABEL12 +LABEL11: + la $a0, str2 + # Spilling t20 from $t0 + lw $t0, 40($sp) + move $a1, $t0 + #Pushing array_sum to stack + sw $t0, 40($sp) +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 1 + lw $fp, 116($sp) + lw $ra, 120($sp) +LABEL12: + # Spilling t21 from $t0 + li $t0, 0 + #Pushing value to stack + sw $t0, 60($sp) + lw $t0, 20($sp) + #Pushing a to stack + sw $t0, 20($sp) + lw $t0, 24($sp) + #Pushing b to stack + sw $t0, 24($sp) + slt $t0, $t0, $t0 + bnez $t0, LABEL13 + j LABEL14 +LABEL13: + # Spilling t22 from $t0 + lw $t0, 60($sp) + li $t0, 1 + j LABEL15 +LABEL14: + li $t0, 2 +LABEL15: + #Pushing value to stack + sw $t0, 60($sp) + li $t0, 1 + sne $t0, $t0, $t0 + bnez $t0, LABEL16 + j LABEL17 +LABEL16: + la $a0, str3 + # Spilling t23 from $t0 + lw $t0, 60($sp) + move $a1, $t0 + #Pushing value to stack + sw $t0, 60($sp) +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 1 + lw $fp, 116($sp) + lw $ra, 120($sp) +LABEL17: + la $a0, str4 + # Spilling t24 from $t0 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + li $v0, 0 + lw $fp, 116($sp) + lw $ra, 120($sp) + li $v0, 10 + syscall diff --git a/Assignment4/output/output2.s b/Assignment4/output/output2.s index 7466475..3026161 100644 --- a/Assignment4/output/output2.s +++ b/Assignment4/output/output2.s @@ -4,71 +4,114 @@ # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz "Sum of 5 numbers is:" +str0: .asciiz "This branch is always taken.\n" +str1: .asciiz "This branch is never taken.\n" +str2: .asciiz "Results: x=" +str3: .asciiz "Counter:" +float_const_5.000000: .float 5.000000 +float_const_30.000000: .float 30.000000 .text .globl main -addx: - move $fp, $sp - addi $sp, $sp, -84 - sw $ra, 80($sp) - sw $fp, 76($sp) - sw $t0, 72($sp) - sw $t1, 68($sp) - sw $t2, 64($sp) - sw $t3, 60($sp) - sw $t4, 56($sp) - sw $t5, 52($sp) - sw $t6, 48($sp) - sw $t7, 44($sp) - sw $t8, 40($sp) - sw $t9, 36($sp) - move $t9, $a0 - move $t8, $a1 - move $t7, $a2 - move $t6, $a3 - #popping from stack to $t5 - lw $t5, 0($fp) - #pushing into function stack - sw $t5, 0($sp) - add $t4, $t9, $t8 - add $t3, $t4, $t7 - add $t2, $t3, $t6 - add $t1, $t2, $t5 - move $v0, $t1 - lw $fp, 76($sp) - lw $ra, 80($sp) - lw $t0, 72($sp) - lw $t1, 68($sp) - lw $t2, 64($sp) - lw $t3, 60($sp) - lw $t4, 56($sp) - lw $t5, 52($sp) - lw $t6, 48($sp) - lw $t7, 44($sp) - lw $t8, 40($sp) - lw $t9, 36($sp) - addi $sp, $sp, 84 - jr $ra main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - li $a0, 1 - li $a1, 1 - li $a2, 1 - li $a3, 1 + addi $sp, $sp, -104 + sw $ra, 100($sp) + sw $fp, 96($sp) + li $t9, 5 + li $t8, 10 + li $t7, 15 + li $t6, 20 + li $t5, 2 + mul $t4, $t9, $t5 + move $t3, $t4 + add $t2, $t9, $t9 + move $t1, $t2 + li $t0, 4 # Spilling a from $t9 - addi $sp, $sp, -4 - li $t0, 1 - sw $t0, 0($sp) - jal addx - move $t9, $v0 + li $t9, 5 + # Spilling c from $t7 + mul $t7, $t0, $t9 + # Spilling t0 from $t4 + move $t4, $t7 + # Spilling t1 from $t2 + la $t2, float_const_30.000000 + l.s $f31, 0($t2) + la $t2, float_const_5.000000 + l.s $f30, 0($t2) + div.s $f29, $f31, $f30 + mov.s $f28, $f29 + li $t2, 8 + # Spilling t2 from $t7 + mul $t7, $t6, $t2 + # Spilling d from $t6 + move $t6, $t7 + # Spilling t4 from $t7 + li $t7, 100 + # Spilling unused from $t7 + li $t7, 0 + #Pushing u to stack + sw $t6, 0($sp) + li $t6, 1 + #Pushing x to stack + sw $t3, 4($sp) + add $t3, $t7, $t6 + move $t7, $t3 + # Spilling t5 from $t3 + li $t3, 1 + #Pushing y to stack + sw $t1, 8($sp) + add $t1, $t7, $t3 + move $t7, $t1 + # Spilling t6 from $t1 + li $t1, 1 + #Pushing z to stack + sw $t4, 12($sp) + add $t4, $t7, $t1 + move $t7, $t4 + # Spilling t7 from $t4 + move $t4, $t8 + move $t4, $t4 # Spilling b from $t8 - move $t8, $t9 + li $t8, 1 + bnez $t8, LABEL0 + j LABEL1 +LABEL0: la $a0, str0 - move $a1, $t8 - # Spilling c from $t7 + # Spilling temp from $t4 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t4, $v0 + j LABEL2 +LABEL1: + la $a0, str1 + # Spilling t8 from $t4 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t4, $v0 +LABEL2: + la $a0, str2 + # Spilling t9 from $t4 + lw $t4, 4($sp) + move $a1, $t4 + #Pushing counter to stack + sw $t7, 16($sp) + lw $t7, 8($sp) + move $a2, $t7 + #Pushing x to stack + sw $t4, 4($sp) + lw $t4, 12($sp) + move $a3, $t4 + mov.s $f12, $f28 #printf move $a0, $a0 li $v0, 4 @@ -82,9 +125,55 @@ syscall li $v0, 4 la $a0, newline syscall - move $t7, $v0 + move $a0, $a2 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a3 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + mov.s $f12, $f12 + li $v0, 2 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t0, $v0 + la $a0, str3 + # Spilling t10 from $t0 + lw $t0, 0($sp) + move $a1, $t0 + # Spilling y from $t7 + lw $t7, 16($sp) + move $a2, $t7 + # Spilling z from $t4 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a2 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t4, $v0 li $v0, 0 - lw $fp, 12($sp) - lw $ra, 16($sp) + lw $fp, 96($sp) + lw $ra, 100($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output3.s b/Assignment4/output/output3.s index e6ce4ba..e0768a2 100644 --- a/Assignment4/output/output3.s +++ b/Assignment4/output/output3.s @@ -4,23 +4,696 @@ # ====================================================================== .data newline: .asciiz "\n" +str0: .asciiz "Sum of all variables =" .text .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - addi $t9, $sp, 0 - #Loading constant 1 into register - li $t8, 1 - sw $t8, 0($t9) - addi $t7, $sp, 4 - #Loading constant 2 into register - li $t6, 2 - sw $t6, 0($t7) + addi $sp, $sp, -812 + sw $ra, 808($sp) + sw $fp, 804($sp) + li $t9, 10 + li $t8, 10 + li $t7, 10 + li $t6, 10 + li $t5, 10 + li $t4, 10 + li $t3, 10 + li $t2, 10 + li $t1, 10 + li $t0, 10 + #Pushing a10 to stack + sw $t0, 0($sp) + li $t0, 10 + #Pushing a11 to stack + sw $t0, 4($sp) + li $t0, 10 + #Pushing a12 to stack + sw $t0, 8($sp) + li $t0, 10 + #Pushing a13 to stack + sw $t0, 12($sp) + li $t0, 10 + #Pushing a14 to stack + sw $t0, 16($sp) + li $t0, 10 + #Pushing a15 to stack + sw $t0, 20($sp) + li $t0, 10 + #Pushing a16 to stack + sw $t0, 24($sp) + li $t0, 10 + #Pushing a17 to stack + sw $t0, 28($sp) + li $t0, 10 + #Pushing a18 to stack + sw $t0, 32($sp) + li $t0, 10 + #Pushing a19 to stack + sw $t0, 36($sp) + li $t0, 10 + #Pushing a20 to stack + sw $t0, 40($sp) + li $t0, 10 + #Pushing a21 to stack + sw $t0, 44($sp) + li $t0, 10 + #Pushing a22 to stack + sw $t0, 48($sp) + li $t0, 10 + #Pushing a23 to stack + sw $t0, 52($sp) + li $t0, 10 + #Pushing a24 to stack + sw $t0, 56($sp) + li $t0, 10 + #Pushing a25 to stack + sw $t0, 60($sp) + li $t0, 10 + #Pushing a26 to stack + sw $t0, 64($sp) + li $t0, 10 + #Pushing a27 to stack + sw $t0, 68($sp) + li $t0, 10 + #Pushing a28 to stack + sw $t0, 72($sp) + li $t0, 10 + #Pushing a29 to stack + sw $t0, 76($sp) + li $t0, 10 + #Pushing a30 to stack + sw $t0, 80($sp) + li $t0, 10 + #Pushing a31 to stack + sw $t0, 84($sp) + li $t0, 10 + #Pushing a32 to stack + sw $t0, 88($sp) + li $t0, 10 + #Pushing a33 to stack + sw $t0, 92($sp) + li $t0, 10 + #Pushing a34 to stack + sw $t0, 96($sp) + li $t0, 10 + #Pushing a35 to stack + sw $t0, 100($sp) + li $t0, 10 + #Pushing a36 to stack + sw $t0, 104($sp) + li $t0, 10 + #Pushing a37 to stack + sw $t0, 108($sp) + li $t0, 10 + #Pushing a38 to stack + sw $t0, 112($sp) + li $t0, 10 + #Pushing a39 to stack + sw $t0, 116($sp) + li $t0, 10 + #Pushing a40 to stack + sw $t0, 120($sp) + li $t0, 10 + #Pushing a41 to stack + sw $t0, 124($sp) + li $t0, 10 + #Pushing a42 to stack + sw $t0, 128($sp) + li $t0, 10 + #Pushing a43 to stack + sw $t0, 132($sp) + li $t0, 10 + #Pushing a44 to stack + sw $t0, 136($sp) + li $t0, 10 + #Pushing a45 to stack + sw $t0, 140($sp) + li $t0, 10 + #Pushing a46 to stack + sw $t0, 144($sp) + li $t0, 10 + #Pushing a47 to stack + sw $t0, 148($sp) + li $t0, 10 + #Pushing a48 to stack + sw $t0, 152($sp) + li $t0, 10 + #Pushing a49 to stack + sw $t0, 156($sp) + li $t0, 10 + #Pushing a50 to stack + sw $t0, 160($sp) + li $t0, 10 + #Pushing a51 to stack + sw $t0, 164($sp) + li $t0, 10 + #Pushing a52 to stack + sw $t0, 168($sp) + li $t0, 10 + #Pushing a53 to stack + sw $t0, 172($sp) + li $t0, 10 + #Pushing a54 to stack + sw $t0, 176($sp) + li $t0, 10 + #Pushing a55 to stack + sw $t0, 180($sp) + li $t0, 10 + #Pushing a56 to stack + sw $t0, 184($sp) + li $t0, 10 + #Pushing a57 to stack + sw $t0, 188($sp) + li $t0, 10 + #Pushing a58 to stack + sw $t0, 192($sp) + li $t0, 10 + #Pushing a59 to stack + sw $t0, 196($sp) + li $t0, 10 + #Pushing a60 to stack + sw $t0, 200($sp) + li $t0, 10 + #Pushing a61 to stack + sw $t0, 204($sp) + li $t0, 10 + #Pushing a62 to stack + sw $t0, 208($sp) + li $t0, 10 + #Pushing a63 to stack + sw $t0, 212($sp) + li $t0, 10 + #Pushing a64 to stack + sw $t0, 216($sp) + li $t0, 10 + #Pushing a65 to stack + sw $t0, 220($sp) + li $t0, 10 + #Pushing a66 to stack + sw $t0, 224($sp) + li $t0, 10 + #Pushing a67 to stack + sw $t0, 228($sp) + li $t0, 10 + #Pushing a68 to stack + sw $t0, 232($sp) + li $t0, 10 + #Pushing a69 to stack + sw $t0, 236($sp) + li $t0, 10 + #Pushing a70 to stack + sw $t0, 240($sp) + li $t0, 10 + #Pushing a71 to stack + sw $t0, 244($sp) + li $t0, 10 + #Pushing a72 to stack + sw $t0, 248($sp) + li $t0, 10 + #Pushing a73 to stack + sw $t0, 252($sp) + li $t0, 10 + #Pushing a74 to stack + sw $t0, 256($sp) + li $t0, 10 + #Pushing a75 to stack + sw $t0, 260($sp) + li $t0, 10 + #Pushing a76 to stack + sw $t0, 264($sp) + li $t0, 10 + #Pushing a77 to stack + sw $t0, 268($sp) + li $t0, 10 + #Pushing a78 to stack + sw $t0, 272($sp) + li $t0, 10 + #Pushing a79 to stack + sw $t0, 276($sp) + li $t0, 10 + #Pushing a80 to stack + sw $t0, 280($sp) + li $t0, 10 + #Pushing a81 to stack + sw $t0, 284($sp) + li $t0, 10 + #Pushing a82 to stack + sw $t0, 288($sp) + li $t0, 10 + #Pushing a83 to stack + sw $t0, 292($sp) + li $t0, 10 + #Pushing a84 to stack + sw $t0, 296($sp) + li $t0, 10 + #Pushing a85 to stack + sw $t0, 300($sp) + li $t0, 10 + #Pushing a86 to stack + sw $t0, 304($sp) + li $t0, 10 + #Pushing a87 to stack + sw $t0, 308($sp) + li $t0, 10 + #Pushing a88 to stack + sw $t0, 312($sp) + li $t0, 10 + #Pushing a89 to stack + sw $t0, 316($sp) + li $t0, 10 + #Pushing a90 to stack + sw $t0, 320($sp) + li $t0, 10 + #Pushing a91 to stack + sw $t0, 324($sp) + li $t0, 10 + #Pushing a92 to stack + sw $t0, 328($sp) + li $t0, 10 + #Pushing a93 to stack + sw $t0, 332($sp) + li $t0, 10 + #Pushing a94 to stack + sw $t0, 336($sp) + li $t0, 10 + #Pushing a95 to stack + sw $t0, 340($sp) + li $t0, 10 + #Pushing a96 to stack + sw $t0, 344($sp) + li $t0, 10 + #Pushing a97 to stack + sw $t0, 348($sp) + li $t0, 10 + #Pushing a98 to stack + sw $t0, 352($sp) + li $t0, 10 + #Pushing a99 to stack + sw $t0, 356($sp) + li $t0, 10 + #Pushing a100 to stack + sw $t0, 360($sp) + add $t0, $t9, $t8 + # Spilling a1 from $t9 + add $t9, $t0, $t7 + # Spilling a2 from $t8 + add $t8, $t9, $t6 + # Spilling a3 from $t7 + add $t7, $t8, $t5 + # Spilling a4 from $t6 + add $t6, $t7, $t4 + # Spilling a5 from $t5 + add $t5, $t6, $t3 + # Spilling a6 from $t4 + add $t4, $t5, $t2 + # Spilling a7 from $t3 + add $t3, $t4, $t1 + # Spilling a8 from $t2 + lw $t2, 0($sp) + # Spilling a9 from $t1 + add $t1, $t3, $t2 + # Spilling a10 from $t2 + lw $t2, 4($sp) + # Spilling t0 from $t0 + add $t0, $t1, $t2 + # Spilling a11 from $t2 + lw $t2, 8($sp) + # Spilling t1 from $t9 + add $t9, $t0, $t2 + # Spilling a12 from $t2 + lw $t2, 12($sp) + # Spilling t2 from $t8 + add $t8, $t9, $t2 + # Spilling a13 from $t2 + lw $t2, 16($sp) + # Spilling t10 from $t9 + add $t9, $t8, $t2 + # Spilling a14 from $t2 + lw $t2, 20($sp) + # Spilling t11 from $t8 + add $t8, $t9, $t2 + # Spilling a15 from $t2 + lw $t2, 24($sp) + # Spilling t12 from $t9 + add $t9, $t8, $t2 + # Spilling a16 from $t2 + lw $t2, 28($sp) + # Spilling t13 from $t8 + add $t8, $t9, $t2 + # Spilling a17 from $t2 + lw $t2, 32($sp) + # Spilling t14 from $t9 + add $t9, $t8, $t2 + # Spilling a18 from $t2 + lw $t2, 36($sp) + # Spilling t15 from $t8 + add $t8, $t9, $t2 + # Spilling a19 from $t2 + lw $t2, 40($sp) + # Spilling t16 from $t9 + add $t9, $t8, $t2 + # Spilling a20 from $t2 + lw $t2, 44($sp) + # Spilling t17 from $t8 + add $t8, $t9, $t2 + # Spilling a21 from $t2 + lw $t2, 48($sp) + # Spilling t18 from $t9 + add $t9, $t8, $t2 + # Spilling a22 from $t2 + lw $t2, 52($sp) + # Spilling t19 from $t8 + add $t8, $t9, $t2 + # Spilling a23 from $t2 + lw $t2, 56($sp) + # Spilling t20 from $t9 + add $t9, $t8, $t2 + # Spilling a24 from $t2 + lw $t2, 60($sp) + # Spilling t21 from $t8 + add $t8, $t9, $t2 + # Spilling a25 from $t2 + lw $t2, 64($sp) + # Spilling t22 from $t9 + add $t9, $t8, $t2 + # Spilling a26 from $t2 + lw $t2, 68($sp) + # Spilling t23 from $t8 + add $t8, $t9, $t2 + # Spilling a27 from $t2 + lw $t2, 72($sp) + # Spilling t24 from $t9 + add $t9, $t8, $t2 + # Spilling a28 from $t2 + lw $t2, 76($sp) + # Spilling t25 from $t8 + add $t8, $t9, $t2 + # Spilling a29 from $t2 + lw $t2, 80($sp) + # Spilling t26 from $t9 + add $t9, $t8, $t2 + # Spilling a30 from $t2 + lw $t2, 84($sp) + # Spilling t27 from $t8 + add $t8, $t9, $t2 + # Spilling a31 from $t2 + lw $t2, 88($sp) + # Spilling t28 from $t9 + add $t9, $t8, $t2 + # Spilling a32 from $t2 + lw $t2, 92($sp) + # Spilling t29 from $t8 + add $t8, $t9, $t2 + # Spilling a33 from $t2 + lw $t2, 96($sp) + # Spilling t3 from $t7 + add $t7, $t8, $t2 + # Spilling a34 from $t2 + lw $t2, 100($sp) + # Spilling t30 from $t9 + add $t9, $t7, $t2 + # Spilling a35 from $t2 + lw $t2, 104($sp) + # Spilling t31 from $t8 + add $t8, $t9, $t2 + # Spilling a36 from $t2 + lw $t2, 108($sp) + # Spilling t32 from $t7 + add $t7, $t8, $t2 + # Spilling a37 from $t2 + lw $t2, 112($sp) + # Spilling t33 from $t9 + add $t9, $t7, $t2 + # Spilling a38 from $t2 + lw $t2, 116($sp) + # Spilling t34 from $t8 + add $t8, $t9, $t2 + # Spilling a39 from $t2 + lw $t2, 120($sp) + # Spilling t35 from $t7 + add $t7, $t8, $t2 + # Spilling a40 from $t2 + lw $t2, 124($sp) + # Spilling t36 from $t9 + add $t9, $t7, $t2 + # Spilling a41 from $t2 + lw $t2, 128($sp) + # Spilling t37 from $t8 + add $t8, $t9, $t2 + # Spilling a42 from $t2 + lw $t2, 132($sp) + # Spilling t38 from $t7 + add $t7, $t8, $t2 + # Spilling a43 from $t2 + lw $t2, 136($sp) + # Spilling t39 from $t9 + add $t9, $t7, $t2 + # Spilling a44 from $t2 + lw $t2, 140($sp) + # Spilling t4 from $t6 + add $t6, $t9, $t2 + # Spilling a45 from $t2 + lw $t2, 144($sp) + # Spilling t40 from $t8 + add $t8, $t6, $t2 + # Spilling a46 from $t2 + lw $t2, 148($sp) + # Spilling t41 from $t7 + add $t7, $t8, $t2 + # Spilling a47 from $t2 + lw $t2, 152($sp) + # Spilling t42 from $t9 + add $t9, $t7, $t2 + # Spilling a48 from $t2 + lw $t2, 156($sp) + # Spilling t43 from $t6 + add $t6, $t9, $t2 + # Spilling a49 from $t2 + lw $t2, 160($sp) + # Spilling t44 from $t8 + add $t8, $t6, $t2 + # Spilling a50 from $t2 + lw $t2, 164($sp) + # Spilling t45 from $t7 + add $t7, $t8, $t2 + # Spilling a51 from $t2 + lw $t2, 168($sp) + # Spilling t46 from $t9 + add $t9, $t7, $t2 + # Spilling a52 from $t2 + lw $t2, 172($sp) + # Spilling t47 from $t6 + add $t6, $t9, $t2 + # Spilling a53 from $t2 + lw $t2, 176($sp) + # Spilling t48 from $t8 + add $t8, $t6, $t2 + # Spilling a54 from $t2 + lw $t2, 180($sp) + # Spilling t49 from $t7 + add $t7, $t8, $t2 + # Spilling a55 from $t2 + lw $t2, 184($sp) + # Spilling t5 from $t5 + add $t5, $t7, $t2 + # Spilling a56 from $t2 + lw $t2, 188($sp) + # Spilling t50 from $t9 + add $t9, $t5, $t2 + # Spilling a57 from $t2 + lw $t2, 192($sp) + # Spilling t51 from $t6 + add $t6, $t9, $t2 + # Spilling a58 from $t2 + lw $t2, 196($sp) + # Spilling t52 from $t8 + add $t8, $t6, $t2 + # Spilling a59 from $t2 + lw $t2, 200($sp) + # Spilling t53 from $t7 + add $t7, $t8, $t2 + # Spilling a60 from $t2 + lw $t2, 204($sp) + # Spilling t54 from $t5 + add $t5, $t7, $t2 + # Spilling a61 from $t2 + lw $t2, 208($sp) + # Spilling t55 from $t9 + add $t9, $t5, $t2 + # Spilling a62 from $t2 + lw $t2, 212($sp) + # Spilling t56 from $t6 + add $t6, $t9, $t2 + # Spilling a63 from $t2 + lw $t2, 216($sp) + # Spilling t57 from $t8 + add $t8, $t6, $t2 + # Spilling a64 from $t2 + lw $t2, 220($sp) + # Spilling t58 from $t7 + add $t7, $t8, $t2 + # Spilling a65 from $t2 + lw $t2, 224($sp) + # Spilling t59 from $t5 + add $t5, $t7, $t2 + # Spilling a66 from $t2 + lw $t2, 228($sp) + # Spilling t6 from $t4 + add $t4, $t5, $t2 + # Spilling a67 from $t2 + lw $t2, 232($sp) + # Spilling t60 from $t9 + add $t9, $t4, $t2 + # Spilling a68 from $t2 + lw $t2, 236($sp) + # Spilling t61 from $t6 + add $t6, $t9, $t2 + # Spilling a69 from $t2 + lw $t2, 240($sp) + # Spilling t62 from $t8 + add $t8, $t6, $t2 + # Spilling a70 from $t2 + lw $t2, 244($sp) + # Spilling t63 from $t7 + add $t7, $t8, $t2 + # Spilling a71 from $t2 + lw $t2, 248($sp) + # Spilling t64 from $t5 + add $t5, $t7, $t2 + # Spilling a72 from $t2 + lw $t2, 252($sp) + # Spilling t65 from $t4 + add $t4, $t5, $t2 + # Spilling a73 from $t2 + lw $t2, 256($sp) + # Spilling t66 from $t9 + add $t9, $t4, $t2 + # Spilling a74 from $t2 + lw $t2, 260($sp) + # Spilling t67 from $t6 + add $t6, $t9, $t2 + # Spilling a75 from $t2 + lw $t2, 264($sp) + # Spilling t68 from $t8 + add $t8, $t6, $t2 + # Spilling a76 from $t2 + lw $t2, 268($sp) + # Spilling t69 from $t7 + add $t7, $t8, $t2 + # Spilling a77 from $t2 + lw $t2, 272($sp) + # Spilling t7 from $t3 + add $t3, $t7, $t2 + # Spilling a78 from $t2 + lw $t2, 276($sp) + # Spilling t70 from $t5 + add $t5, $t3, $t2 + # Spilling a79 from $t2 + lw $t2, 280($sp) + # Spilling t71 from $t4 + add $t4, $t5, $t2 + # Spilling a80 from $t2 + lw $t2, 284($sp) + # Spilling t72 from $t9 + add $t9, $t4, $t2 + # Spilling a81 from $t2 + lw $t2, 288($sp) + # Spilling t73 from $t6 + add $t6, $t9, $t2 + # Spilling a82 from $t2 + lw $t2, 292($sp) + # Spilling t74 from $t8 + add $t8, $t6, $t2 + # Spilling a83 from $t2 + lw $t2, 296($sp) + # Spilling t75 from $t7 + add $t7, $t8, $t2 + # Spilling a84 from $t2 + lw $t2, 300($sp) + # Spilling t76 from $t3 + add $t3, $t7, $t2 + # Spilling a85 from $t2 + lw $t2, 304($sp) + # Spilling t77 from $t5 + add $t5, $t3, $t2 + # Spilling a86 from $t2 + lw $t2, 308($sp) + # Spilling t78 from $t4 + add $t4, $t5, $t2 + # Spilling a87 from $t2 + lw $t2, 312($sp) + # Spilling t79 from $t9 + add $t9, $t4, $t2 + # Spilling a88 from $t2 + lw $t2, 316($sp) + # Spilling t8 from $t1 + add $t1, $t9, $t2 + # Spilling a89 from $t2 + lw $t2, 320($sp) + # Spilling t80 from $t6 + add $t6, $t1, $t2 + # Spilling a90 from $t2 + lw $t2, 324($sp) + # Spilling t81 from $t8 + add $t8, $t6, $t2 + # Spilling a91 from $t2 + lw $t2, 328($sp) + # Spilling t82 from $t7 + add $t7, $t8, $t2 + # Spilling a92 from $t2 + lw $t2, 332($sp) + # Spilling t83 from $t3 + add $t3, $t7, $t2 + # Spilling a93 from $t2 + lw $t2, 336($sp) + # Spilling t84 from $t5 + sub $t5, $t3, $t2 + # Spilling a94 from $t2 + lw $t2, 340($sp) + # Spilling t85 from $t4 + add $t4, $t5, $t2 + # Spilling a95 from $t2 + lw $t2, 344($sp) + # Spilling t86 from $t9 + add $t9, $t4, $t2 + # Spilling a96 from $t2 + lw $t2, 348($sp) + # Spilling t87 from $t1 + add $t1, $t9, $t2 + # Spilling a97 from $t2 + lw $t2, 352($sp) + # Spilling t88 from $t6 + add $t6, $t1, $t2 + # Spilling a98 from $t2 + lw $t2, 356($sp) + # Spilling t89 from $t8 + add $t8, $t6, $t2 + # Spilling a99 from $t2 + lw $t2, 360($sp) + # Spilling t9 from $t0 + add $t0, $t8, $t2 + # Spilling a100 from $t2 + move $t2, $t0 + la $a0, str0 + move $a1, $t2 + # Spilling t90 from $t7 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t7, $v0 li $v0, 0 - lw $fp, 12($sp) - lw $ra, 16($sp) + lw $fp, 804($sp) + lw $ra, 808($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output4.s b/Assignment4/output/output4.s index 215dc7c..c4bc304 100644 --- a/Assignment4/output/output4.s +++ b/Assignment4/output/output4.s @@ -8,19 +8,24 @@ newline: .asciiz "\n" .globl main main: move $fp, $sp - addi $sp, $sp, -20 - sw $ra, 16($sp) - sw $fp, 12($sp) - addi $t9, $sp, 0 - #Loading constant 1 into register - li $t8, 1 - sw $t8, 0($t9) - addi $t7, $sp, 0 - #Loading constant 2 into register - li $t6, 2 - sw $t6, 0($t7) + addi $sp, $sp, -24 + sw $ra, 20($sp) + sw $fp, 16($sp) + li $t9, 50 + #Pushing y to stack + sw $t9, 0($sp) + addi $t8, $sp, 0 + #Pushing p1 to stack + sw $t8, 4($sp) + addi $t9, $sp, 4 + #Pushing p2 to stack + sw $t9, 8($sp) + addi $t8, $sp, 8 + lw $t9, 0($sp) + li $t7, 1 + sub $t9, $t9, $t7 li $v0, 0 - lw $fp, 12($sp) - lw $ra, 16($sp) + lw $fp, 16($sp) + lw $ra, 20($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output5.s b/Assignment4/output/output5.s index 2980fd8..ebf8aa4 100644 --- a/Assignment4/output/output5.s +++ b/Assignment4/output/output5.s @@ -4,58 +4,31 @@ # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz " Answer" +static_counter: .word 0 +str0: .asciiz "Static counter =" +str1: .asciiz "Program finished.\n" .text .globl main -fun: +count_with_static: move $fp, $sp - addi $sp, $sp, -64 - sw $ra, 60($sp) - sw $fp, 56($sp) - sw $t0, 52($sp) - sw $t1, 48($sp) - sw $t2, 44($sp) - sw $t3, 40($sp) - sw $t4, 36($sp) - sw $t5, 32($sp) - sw $t6, 28($sp) - sw $t7, 24($sp) - sw $t8, 20($sp) - sw $t9, 16($sp) - mov.s $f31, $f12 - move $t9, $a0 - mtc1 $t9, $f30 - cvt.s.w $f30, $f30 - add.s $f29, $f31, $f30 - mov.s $f28, $f29 - mov.s $f0, $f28 - lw $fp, 56($sp) - lw $ra, 60($sp) - lw $t0, 52($sp) - lw $t1, 48($sp) - lw $t2, 44($sp) - lw $t3, 40($sp) - lw $t4, 36($sp) - lw $t5, 32($sp) - lw $t6, 28($sp) - lw $t7, 24($sp) - lw $t8, 20($sp) - lw $t9, 16($sp) - addi $sp, $sp, 64 - jr $ra -main: - move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t8, 2 - li.s $f12, 2.000000 - li $a0, 3 - jal fun - mov.s $f27, $f0 - mov.s $f26, $f27 + addi $sp, $sp, -56 + sw $ra, 52($sp) + sw $fp, 48($sp) + sw $t0, 44($sp) + sw $t1, 40($sp) + sw $t2, 36($sp) + sw $t3, 32($sp) + sw $t4, 28($sp) + sw $t5, 24($sp) + sw $t6, 20($sp) + sw $t7, 16($sp) + sw $t8, 12($sp) + sw $t9, 8($sp) + lw $t9, static_counter + li $t8, 1 + add $t9, $t9, $t8 la $a0, str0 - mov.s $f12, $f26 + move $a1, $t9 #printf move $a0, $a0 li $v0, 4 @@ -63,15 +36,30 @@ syscall li $v0, 4 la $a0, newline syscall - mov.s $f12, $f12 - li $v0, 2 + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t7, $v0 +main: + move $fp, $sp + addi $sp, $sp, -16 + sw $ra, 12($sp) + sw $fp, 8($sp) + li $t6, 0 + la $a0, str1 +#printf + move $a0, $a0 + li $v0, 4 syscall li $v0, 4 la $a0, newline syscall - move $t6, $v0 + move $t5, $v0 li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) + lw $fp, 8($sp) + lw $ra, 12($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output6.s b/Assignment4/output/output6.s index 98928e6..b64e451 100644 --- a/Assignment4/output/output6.s +++ b/Assignment4/output/output6.s @@ -1,73 +1,18 @@ -# ====================================================================== -# No Errors in the code -# Intermediate code generated successfully +# =====================LIST OF ERRORS=================================== +#Line 3 : Missing return statement # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz "" +str0: .asciiz "hello world" .text .globl main main: move $fp, $sp - addi $sp, $sp, -52 - sw $ra, 48($sp) - sw $fp, 44($sp) - addi $t9, $sp, 0 - #Loading constant 7 into register - li $t8, 7 - sw $t8, 0($t9) - addi $t7, $sp, 4 - #Loading constant 8 into register - li $t6, 8 - sw $t6, 0($t7) - li $t5, 0 - li $t4, 4 - mul $t3, $t5, $t4 - li $t2, 5 - addi $t3, $t3, 8 - add $t3, $t3, $sp - sw $t2, 0($t3) - li $t1, 1 - li $t0, 4 - # Spilling t0 from $t9 - mul $t9, $t1, $t0 - # Spilling t1 from $t7 - li $t7, 4 - addi $t9, $t9, 8 - add $t9, $t9, $sp - sw $t7, 0($t9) - # Spilling t2 from $t3 - li $t3, 2 - # Spilling t3 from $t9 - li $t9, 4 - mul $t0, $t3, $t9 - #Pushing t4 to stack - sw $t0, 20($sp) - li $t0, 5 - lw $t0, 20($sp) - addi $t0, $t0, 8 - add $t0, $t0, $sp - sw $t0, 0($t0) - # Spilling t4 from $t0 - li $t0, 4 - li $t0, 0 - mul $t0, $t0, $t0 - addi $t0, $t0, 8 - add $t0, $t0, $sp - #Pushing t5 to stack - sw $t0, 24($sp) - lw $t0, 0($t0) - #Pushing t6 to stack - sw $t0, 28($sp) - #Pushing c to stack - sw $t0, 32($sp) - lw $t0, 28($sp) - move $t0, $t0 + addi $sp, $sp, -12 + sw $ra, 8($sp) + sw $fp, 4($sp) la $a0, str0 - # Spilling t6 from $t0 - lw $t0, 32($sp) - move $a1, $t0 - # Spilling c from $t0 + li.s $f12, 3.100000 #printf move $a0, $a0 li $v0, 4 @@ -75,15 +20,12 @@ syscall li $v0, 4 la $a0, newline syscall - move $a0, $a1 - li $v0, 1 + mov.s $f12, $f12 + li $v0, 2 syscall li $v0, 4 la $a0, newline syscall - move $t0, $v0 - li $v0, 0 - lw $fp, 44($sp) - lw $ra, 48($sp) + move $t9, $v0 li $v0, 10 syscall diff --git a/Assignment4/output/output7.s b/Assignment4/output/output7.s index fd5282c..7466475 100644 --- a/Assignment4/output/output7.s +++ b/Assignment4/output/output7.s @@ -4,29 +4,71 @@ # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz "" +str0: .asciiz "Sum of 5 numbers is:" .text .globl main +addx: + move $fp, $sp + addi $sp, $sp, -84 + sw $ra, 80($sp) + sw $fp, 76($sp) + sw $t0, 72($sp) + sw $t1, 68($sp) + sw $t2, 64($sp) + sw $t3, 60($sp) + sw $t4, 56($sp) + sw $t5, 52($sp) + sw $t6, 48($sp) + sw $t7, 44($sp) + sw $t8, 40($sp) + sw $t9, 36($sp) + move $t9, $a0 + move $t8, $a1 + move $t7, $a2 + move $t6, $a3 + #popping from stack to $t5 + lw $t5, 0($fp) + #pushing into function stack + sw $t5, 0($sp) + add $t4, $t9, $t8 + add $t3, $t4, $t7 + add $t2, $t3, $t6 + add $t1, $t2, $t5 + move $v0, $t1 + lw $fp, 76($sp) + lw $ra, 80($sp) + lw $t0, 72($sp) + lw $t1, 68($sp) + lw $t2, 64($sp) + lw $t3, 60($sp) + lw $t4, 56($sp) + lw $t5, 52($sp) + lw $t6, 48($sp) + lw $t7, 44($sp) + lw $t8, 40($sp) + lw $t9, 36($sp) + addi $sp, $sp, 84 + jr $ra main: move $fp, $sp - addi $sp, $sp, -32 - sw $ra, 28($sp) - sw $fp, 24($sp) - li $t9, 0 - #Pushing i to stack - sw $t9, 0($sp) - addi $t8, $sp, 0 - #Pushing ptr to stack - sw $t8, 4($sp) - addi $t9, $sp, 4 - lw $t8, 0($t9) - sw $t8, 8($sp) - #Loading constant 10 into register - li $t7, 10 - sw $t7, 0($t8) + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + li $a0, 1 + li $a1, 1 + li $a2, 1 + li $a3, 1 + # Spilling a from $t9 + addi $sp, $sp, -4 + li $t0, 1 + sw $t0, 0($sp) + jal addx + move $t9, $v0 + # Spilling b from $t8 + move $t8, $t9 la $a0, str0 - lw $t6, 0($sp) - move $a1, $t6 + move $a1, $t8 + # Spilling c from $t7 #printf move $a0, $a0 li $v0, 4 @@ -40,9 +82,9 @@ syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t7, $v0 li $v0, 0 - lw $fp, 24($sp) - lw $ra, 28($sp) + lw $fp, 12($sp) + lw $ra, 16($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output8.s b/Assignment4/output/output8.s index b849066..e6ce4ba 100644 --- a/Assignment4/output/output8.s +++ b/Assignment4/output/output8.s @@ -4,46 +4,23 @@ # ====================================================================== .data newline: .asciiz "\n" -str0: .asciiz "Sum of 10 numbers is:" .text .globl main main: move $fp, $sp - addi $sp, $sp, -24 - sw $ra, 20($sp) - sw $fp, 16($sp) - li $t9, 0 - li $t8, 0 - li $t9, 0 -LABEL0: - li $t7, 10 - slt $t6, $t9, $t7 - bnez $t6, LABEL2 - j LABEL1 -LABEL2: - add $t8, $t8, $t9 - li $t5, 1 - add $t9, $t9, $t5 - j LABEL0 -LABEL1: - la $a0, str0 - move $a1, $t8 -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move $t4, $v0 + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + addi $t9, $sp, 0 + #Loading constant 1 into register + li $t8, 1 + sw $t8, 0($t9) + addi $t7, $sp, 4 + #Loading constant 2 into register + li $t6, 2 + sw $t6, 0($t7) li $v0, 0 - lw $fp, 16($sp) - lw $ra, 20($sp) + lw $fp, 12($sp) + lw $ra, 16($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output9.s b/Assignment4/output/output9.s new file mode 100644 index 0000000..215dc7c --- /dev/null +++ b/Assignment4/output/output9.s @@ -0,0 +1,26 @@ +# ====================================================================== +# No Errors in the code +# Intermediate code generated successfully +# ====================================================================== +.data +newline: .asciiz "\n" +.text +.globl main +main: + move $fp, $sp + addi $sp, $sp, -20 + sw $ra, 16($sp) + sw $fp, 12($sp) + addi $t9, $sp, 0 + #Loading constant 1 into register + li $t8, 1 + sw $t8, 0($t9) + addi $t7, $sp, 0 + #Loading constant 2 into register + li $t6, 2 + sw $t6, 0($t7) + li $v0, 0 + lw $fp, 12($sp) + lw $ra, 16($sp) + li $v0, 10 + syscall diff --git a/Assignment4/peep.c b/Assignment4/peep.c new file mode 100644 index 0000000..c76652a --- /dev/null +++ b/Assignment4/peep.c @@ -0,0 +1,36 @@ +int main() { + int a = 5, b = 10, c = 15, d = 20; + + // Redundant calculation + int x = a * 2; + int y = a + a; + + // Constant folding + int z = 4 * 5; + float w = 30.0 / 5.0; + + // Strength reduction + int u = d * 8; + + // Dead code (if optimization is enabled) + int unused = 100; + + // Combine multiple increments + int counter = 0; + counter = counter + 1; + counter = counter + 1; + counter = counter + 1; + + int temp = b; + temp = temp;// Useless assignment + + if (1) { + printf("This branch is always taken.\n"); + } else { + printf("This branch is never taken.\n"); + } + + printf("Results: x=%d, y=%d, z=%d, w=%f, u=%d, counter=%d\n", x, y, z, w, u, counter); + + return 0; +} diff --git a/Assignment4/src/codegen.cpp b/Assignment4/src/codegen.cpp index 034d514..9f34d90 100644 --- a/Assignment4/src/codegen.cpp +++ b/Assignment4/src/codegen.cpp @@ -33,6 +33,7 @@ map string_to_label; map loadedConstants; map reg_of_const; vector reg_for_scanf; +vector var_for_printf; map> offset_to_var; map,int> pointer_to_offset; int get_size_from_type(string type); @@ -1549,7 +1550,7 @@ void pass2(vector>& codeList){ else if (t.rfind("if (", 0) == 0 && t.find("goto") != string::npos) { size_t start = t.find('(') + 1; size_t end = t.find(')'); - string condition = t.substr(start, end - start); + string condition = trim(t.substr(start, end - start)); string label = trim(t.substr(t.find("goto") + 4)); string reg = getRegister(code.second, condition); load_if_constant(code.second, condition, reg); @@ -1607,6 +1608,10 @@ bool isAddress(const std::string& token) { void compute_use_def(LivenessInfo& inst) { const string& line = inst.code; + if(line.find("printf")!=string::npos){ + for(auto var: var_for_printf) inst.use.insert({getScope(inst.scope,var), var}); + var_for_printf.clear(); + } if (line.find(":=") != string::npos) { size_t eq = line.find(":="); string lhs = trim(line.substr(0, eq)); @@ -1651,6 +1656,11 @@ void compute_use_def(LivenessInfo& inst) { istringstream iss(line); iss >> word >> val; if(isalpha(val[0])) inst.use.insert({getScope(inst.scope,val), val}); + }else if(line.find("PARAM")!=string::npos){ + string word, val; + istringstream iss(line); + iss >> word >> val; + if(isalpha(val[0])) var_for_printf.push_back(val); } } diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index a9c7d85..5e03930 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -1868,8 +1868,14 @@ selection_statement temp.push_back({"goto "+label,curr_scope}); } else{ - str+="if ( "+$4->place.first+" == "+case_value+") goto "+label+"\n"; - temp.push_back({"if ( "+$4->place.first+" == "+case_value+") goto "+label,curr_scope}); + qid var=newtemp("int",curr_scope); + str+=var.first+" := "+$4->place.first+" == "+case_value; + //str+="if ( "+$4->place.first+" == "+case_value+") goto "+label+"\n"; + str+="if ( "+var.first+" ) goto "+label+"\n"; + //temp.push_back({"if ( "+$4->place.first+" == "+case_value+") goto "+label,curr_scope}); + temp.push_back({var.first+" := "+$4->place.first+" == "+case_value,curr_scope}); + temp.push_back({"if ( "+var.first+" ) goto "+label,curr_scope}); + } } string endlabel=newlabel(); diff --git a/Assignment4/static.c b/Assignment4/static.c new file mode 100644 index 0000000..1de589c --- /dev/null +++ b/Assignment4/static.c @@ -0,0 +1,32 @@ +void count_with_static() { + static int counter = 0; + counter++; + printf("Static counter = %d\n", counter); +} + +int main() { + int i = 0; + +start_loop: + for (i = 0; i < 10; i++) { + // if (i == 2) { + // continue; + // } + if (i == 5) { + break; + } + + printf("i = %d\n", i); + // count_with_static(); + } + + // static int repeat = 0; + if (repeat == 0) { + repeat = 1; + printf("Repeating the loop using goto!\n\n"); + goto start_loop; + } + + printf("Program finished.\n"); + return 0; +} diff --git a/Assignment4/test/input10.c b/Assignment4/test/input10.c new file mode 100644 index 0000000..3e8ac8a --- /dev/null +++ b/Assignment4/test/input10.c @@ -0,0 +1,53 @@ +//funcall.c +int add_all(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, + int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, + int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, + int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, + int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, + int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, + int a61, int a62, int a63, int a64, int a65, int a66, int a67, int a68, int a69, int a70, + int a71, int a72, int a73, int a74, int a75, int a76, int a77, int a78, int a79, int a80, + int a81, int a82, int a83, int a84, int a85, int a86, int a87, int a88, int a89, int a90, + int a91, int a92, int a93, int a94, int a95, int a96, int a97, int a98, int a99, int a100) +{ +return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 + a94 + a95 + a96 + a97 + a98 + a99 + a100; +} + +int main() { +// Declare and initialize 100 variables +int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; +int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; +int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; +int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; +int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; +int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; +int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; +int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; +int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; +int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; + +// Call the function with 100 arguments +int sum = add_all(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, + a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, + a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, + a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, + a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, + a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, + a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, + a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, + a91, a92, a93, a94, a95, a96, a97, a98, a99, a100); + +printf("Sum of all variables = %d\n", sum); + +return 0; +} diff --git a/Assignment4/test/input11.c b/Assignment4/test/input11.c new file mode 100644 index 0000000..6f4d557 --- /dev/null +++ b/Assignment4/test/input11.c @@ -0,0 +1,38 @@ +//peep.c +int main() { + int a = 5, b = 10, c = 15, d = 20; + + // Redundant calculation + int x = a * 2; + int y = a + a; + + // Constant folding + int z = 4 * 5; + float w = 30.0 / 5.0; + + // Strength reduction + int u = d * 8; + + // Dead code (if optimization is enabled) + int unused = 100; + + // Combine multiple increments + int counter = 0; + counter = counter + 1; + counter = counter + 1; + counter = counter + 1; + + int temp = b; + temp = temp;// Useless assignment + + if (1) { + printf("This branch is always taken.\n"); + } else { + printf("This branch is never taken.\n"); + } + + printf("Results: x=%d, y=%d, z=%d, w=%f\n", x, y, z, w); + printf("Counter: %d%d\n", u,counter); + + return 0; +} \ No newline at end of file diff --git a/Assignment4/test/input12.c b/Assignment4/test/input12.c new file mode 100644 index 0000000..5e013be --- /dev/null +++ b/Assignment4/test/input12.c @@ -0,0 +1,30 @@ +//var100.c +int main() { + // Declare and initialize 100 variables + int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; + int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; + int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; + int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; + int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; + int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; + int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; + int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; + int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; + int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; + + // Sum all variables + int sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 - a94 + a95 + a96 + a97 + a98 + a99 + a100; + + printf("Sum of all variables = %d\n", sum); + + return 0; +} diff --git a/Assignment4/test/input13.c b/Assignment4/test/input13.c new file mode 100644 index 0000000..bab7e86 --- /dev/null +++ b/Assignment4/test/input13.c @@ -0,0 +1,63 @@ +// #include +// using namespace std; + +// class Animal { +// protected: +// string name; +// public: +// Animal(string n) : name(n) {} +// void display() { +// cout << "Animal Name: " << name << endl; +// } +// }; + +// class Dog : public Animal { +// private: +// int age; +// public: +// Dog(string n, int a) : Animal(n), age(a) {} + +// void bark() { +// cout << name << " barks! Age: " << age << endl; +// } +// }; + +// void greet() { +// cout << "Hello from function pointer!\n"; +// } + +// void callFunction(void (*func)()) { +// func(); +// } + +int main() { + // --- Class, Object, Inheritance --- + // Dog d("Buddy", 5); + // d.display(); + // d.bark(); + + // // --- Function Pointer --- + // void (*fp)() = greet; + // callFunction(fp); + + // // --- References --- + // int x = 10; + // int& ref = x; + // ref = 20; + // cout << "Reference value: " << x << endl; + + // --- Multi-level Pointers --- + int y = 50; + int* p1 = &y; + int** p2 = &p1; + int*** p3 = &p2; + y--; + // printf("Multi-level pointer value: %d\n", ***p3); + + // --- Multi-level Array --- + // int arr[2][3] = { {1,2,3}, {4,5,6} }; + // cout << "Multi-level array element arr[1][2]: " << arr[1][2] << endl; + + return 0; +} + diff --git a/Assignment4/test/input14.c b/Assignment4/test/input14.c new file mode 100644 index 0000000..be111db --- /dev/null +++ b/Assignment4/test/input14.c @@ -0,0 +1,32 @@ +void count_with_static() { + static int counter = 0; + counter++; + printf("Static counter = %d\n", counter); +} + +int main() { + int i = 0; + + // for (i = 0; i < 10; i++) { + // // if (i == 2) { + // // continue; + // // } + // if (i == 5) { + // break; + // } + + // printf("i = %d\n", i); + // // count_with_static(); + // } + + // static int repeat = 0; + // if (repeat == 0) { + // repeat = 1; + // printf("Repeating the loop using goto!\n\n"); + // goto start_loop; + // } + + + printf("Program finished.\n"); + return 0; +} diff --git a/Assignment4/test/input8.c b/Assignment4/test/input8.c index 451aa94..2da8042 100644 --- a/Assignment4/test/input8.c +++ b/Assignment4/test/input8.c @@ -1,9 +1,17 @@ int main(){ - int i=0; - int sum=0; - for(i=0;i<10;i++){ - sum+=i; + int a = 5; + switch(a){ + case 1: + printf("1"); + break; + case 2: + printf("2"); + break; + case 3: + printf("3"); + break; + default: + printf("default"); } - printf("Sum of 10 numbers is: %d", sum); return 0; } \ No newline at end of file diff --git a/Assignment4/test/input9.c b/Assignment4/test/input9.c new file mode 100644 index 0000000..db1e3aa --- /dev/null +++ b/Assignment4/test/input9.c @@ -0,0 +1,73 @@ +// #include + +int addx(int a, int b) { + return a + b; +} + +int factorial(int n) { + if (n <= 1) return 1; + else return n * factorial(n - 1); +} + +// int array_sum(int arr[5], int size) { + +// } + +struct Point { + int x; + int y; +}; + +// float point_sum(struct Point *p) { +// return p->x / p->y; +// } + +int main() { + int a = 5, b = 10; + + int result = addx(a, b); + if (result != 15) { + printf("Arithmetic test failed: %d\n", result); + return 1; + } + + int fact = factorial(5); + if (fact != 120) { + printf("Recursion test failed: %d\n", fact); + return 1; + } + + int arr[5] = {1, 2, 3, 4, 5}; + // int arr_sum = array_sum(arr, 5); + int array_sum = 0; + int i = 0; + for (i = 0; i < 5; i++) { + array_sum = array_sum + arr[i]; + } + // return sum; + if (array_sum != 15) { + printf("Array sum test failed: %d\n", array_sum); + return 1; + } + + // struct Point p = {3, 4}; + // // int p_sum = point_sum(&p); + // // if (p_sum != 7) { + // // printf("Struct test failed: %d\n", p_sum); + // // return 1; + // // } + + int value = 0; + if (a < b) { + value = 1; + } else { + value = 2; + } + if (value != 1) { + printf("Branching test failed: %d\n", value); + return 1; + } + + printf("All tests passed successfully!\n"); + return 0; +} diff --git a/Assignment4/var100.c b/Assignment4/var100.c new file mode 100644 index 0000000..667fac4 --- /dev/null +++ b/Assignment4/var100.c @@ -0,0 +1,29 @@ +int main() { + // Declare and initialize 100 variables + int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; + int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; + int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; + int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; + int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; + int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; + int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; + int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; + int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; + int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; + + // Sum all variables + int sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 + a94 + a95 + a96 + a97 + a98 + a99 + a100; + + printf("Sum of all variables = %d\n", sum); + + return 0; +} From 0b7aa7188ca3df68bcac26cea1e89380398fc4cf Mon Sep 17 00:00:00 2001 From: BitBeast Date: Wed, 30 Apr 2025 19:31:20 +0530 Subject: [PATCH 50/52] static, continue solved --- Assignment4/basic.c | 20 +- Assignment4/include/functions.h | 13 +- Assignment4/output/output1.s | 2097 ++++++------------------------- Assignment4/output/output10.s | 77 -- Assignment4/output/output11.s | 90 -- Assignment4/output/output12.s | 48 - Assignment4/output/output13.s | 78 -- Assignment4/output/output14.s | 390 ------ Assignment4/output/output2.s | 1902 +++++++++++++++++++++++++--- Assignment4/output/output3.s | 822 +++--------- Assignment4/output/output4.s | 704 ++++++++++- Assignment4/output/output5.s | 93 +- Assignment4/output/output6.s | 104 +- Assignment4/output/output7.s | 87 +- Assignment4/output/output8.s | 155 ++- Assignment4/output/output9.s | 26 - Assignment4/src/codegen.cpp | 39 +- Assignment4/src/parser.y | 27 +- Assignment4/test/input1.c | 75 +- Assignment4/test/input10.c | 53 - Assignment4/test/input11.c | 38 - Assignment4/test/input12.c | 30 - Assignment4/test/input13.c | 63 - Assignment4/test/input14.c | 32 - Assignment4/test/input2.c | 58 +- Assignment4/test/input3.c | 43 +- Assignment4/test/input4.c | 37 +- Assignment4/test/input5.c | 41 +- Assignment4/test/input6.c | 3 + Assignment4/test/input7.c | 2 +- Assignment4/test/input8.c | 28 +- Assignment4/test/input9.c | 73 -- 32 files changed, 3604 insertions(+), 3744 deletions(-) delete mode 100644 Assignment4/output/output10.s delete mode 100644 Assignment4/output/output11.s delete mode 100644 Assignment4/output/output12.s delete mode 100644 Assignment4/output/output13.s delete mode 100644 Assignment4/output/output14.s delete mode 100644 Assignment4/output/output9.s delete mode 100644 Assignment4/test/input10.c delete mode 100644 Assignment4/test/input11.c delete mode 100644 Assignment4/test/input12.c delete mode 100644 Assignment4/test/input13.c delete mode 100644 Assignment4/test/input14.c delete mode 100644 Assignment4/test/input9.c diff --git a/Assignment4/basic.c b/Assignment4/basic.c index abdcd12..f525779 100644 --- a/Assignment4/basic.c +++ b/Assignment4/basic.c @@ -9,7 +9,7 @@ int factorial(int n) { else return n * factorial(n - 1); } -int array_sum(int arr[], int size) { +int array_sum(int arr[5], int size) { int sum = 0; for (int i = 0; i < size; i++) { sum = sum + arr[i]; @@ -22,9 +22,9 @@ struct Point { int y; }; -float point_sum(struct Point *p) { - return p->x / p->y; -} +// float point_sum(struct Point *p) { +// return p->x / p->y; +// } int main() { int a = 5, b = 10; @@ -48,12 +48,12 @@ int main() { return 1; } - struct Point p = {3, 4}; - int p_sum = point_sum(&p); - if (p_sum != 7) { - printf("Struct test failed: %d\n", p_sum); - return 1; - } + // struct Point p = {3, 4}; + // int p_sum = point_sum(&p); + // if (p_sum != 7) { + // printf("Struct test failed: %d\n", p_sum); + // return 1; + // } int value = 0; if (a < b) { diff --git a/Assignment4/include/functions.h b/Assignment4/include/functions.h index 612ceeb..687e34c 100644 --- a/Assignment4/include/functions.h +++ b/Assignment4/include/functions.h @@ -263,6 +263,7 @@ void print_vector(const vector>& vec) { string replace_break_continue(string original_code,string end_label,string update_label,int i){ string new_code = original_code; + // cout << "Original code: " << original_code << endl; int flag=0; size_t pos = 0; while ((pos = new_code.find("break")) != std::string::npos) { @@ -287,28 +288,28 @@ string replace_break_continue(string original_code,string end_label,string updat vector> replace_break_continue_final(vector> original_code,string end_label,string update_label,int i){ vector> new_code; + int flag=0; for(int j=0;jsymbol_map[lhs]->type == "float"); string op1 = trim(rhs.substr(0, operator_pos)); string op2 = trim(rhs.substr(operator_pos + opp.size())); + vector> stat; if (isFloat){ string r1,r2,rd; string rx,ry; @@ -730,9 +735,10 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& int fl=0; for(auto x:static_var){ - if(x.first==scope && x.second==op1){ + if(getScope(x.first,op1)==scope && x.second==op1){ r1 = getRegister(scope,op1); mipsCode.push_back(" lw " + r1 + ", " + "static_" + op1); + stat.push_back({r1,"static_" + op1}); var_to_reg[{scope,op1}] = r1; reg_to_var[r1] = {scope,op1}; fl=1; @@ -755,7 +761,7 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& int fl=0; for(auto x:static_var){ - if(x.first==scope && x.second==op1){ + if(getScope(x.first,op2)==scope && x.second==op2){ r2 = getRegister(scope,op2); mipsCode.push_back(" lw " + r2 + ", " + "static_" + op2); var_to_reg[{scope,op2}] = r2; @@ -769,6 +775,15 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& r2 = getRegister(scope,op2); } } + for(auto x:static_var){ + if(getScope(x.first,lhs)==scope && x.second==lhs){ + rd=getRegister(scope,lhs); + mipsCode.push_back(" lw " + rd + ", " + "static_" + lhs); + stat.push_back({rd,"static_" + lhs}); + var_to_reg[{scope,lhs}] = rd; + reg_to_var[rd] = {scope,lhs}; + } + } rd = getRegister(scope,lhs); if (opp == "+") mipsCode.push_back(" add " + rd + ", " + r1 + ", " + r2); else if (opp == "-") mipsCode.push_back(" sub " + rd + ", " + r1 + ", " + r2); @@ -791,6 +806,8 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& mipsCode.push_back(" slt " + rd + ", " + r1 + ", " + r2); mipsCode.push_back(" xori " + rd + ", " + rd + ", 1"); } + for(auto x:stat) mipsCode.push_back(" sw " + x.first + ", " + x.second); + } // Processes assignment statements, handling different data types @@ -798,6 +815,21 @@ void handle_operation(string lhs, string rhs, size_t operator_pos, const string& void handle_assignment(string lhs, string rhs, scoped_symtab* scope) { + for(auto x:static_var){ + if(getScope(scope,lhs)==x.first && x.second==lhs){ + string r1=getRegister(scope,lhs); + mipsCode.push_back(" lw " + r1 + ", " + "static_" + lhs); + var_to_reg[{scope,lhs}] = r1; + reg_to_var[r1] = {scope,lhs}; + string rr=getRegister(scope,rhs); + if(isIntLiteral(rhs)){ + mipsCode.push_back(" li " + rr + ", " + rhs); + } + mipsCode.push_back(" move " + r1 + ", " + rr); + mipsCode.push_back(" sw " + r1 + ", " + "static_" + lhs); + return; + } + } symbol_info* lhsInfo = getScope(scope,lhs)->symbol_map[lhs]; bool isFloat = (lhsInfo && lhsInfo->type == "float" && rhs.find("CALL") == string::npos && rhs.find("alloc") == string::npos); bool isDouble = (lhsInfo && lhsInfo->type == "double" && rhs.find("CALL") == string::npos && rhs.find("alloc") == string::npos); @@ -1545,6 +1577,7 @@ void pass2(vector>& codeList){ istringstream iss(t); string keyword, val; iss >> keyword >> val; + if(val.empty())val = ""; generate_return_MIPS(curr_func, code.second, val); } else if (t.rfind("if (", 0) == 0 && t.find("goto") != string::npos) { diff --git a/Assignment4/src/parser.y b/Assignment4/src/parser.y index 5e03930..7db2e2a 100644 --- a/Assignment4/src/parser.y +++ b/Assignment4/src/parser.y @@ -260,8 +260,28 @@ postfix_expression vector> temp_list; for(int i=0;i<$3->param_list.size();i++){ middle=middle+"PARAM "+$3->param_list[i]+"\n"; - temp_list.push_back({"PARAM "+$3->param_list[i],curr_scope}); - } + int star=0; + string temp_str=""; + if($3->param_list[i][0]=='*') + { + while($3->param_list[i][0]=='*') + { + star++; + $3->param_list[i]=$3->param_list[i].substr(1); + } + temp_str=$3->param_list[i]; + while(star) + { + qid temp2=newtemp("int",curr_scope); + temp_list.push_back({temp2.first+" := *"+temp_str,curr_scope}); + temp_str=temp2.first; + star--; + } + temp_list.push_back({"PARAM "+temp_str,curr_scope}); + } + + else temp_list.push_back({"PARAM "+$3->param_list[i],curr_scope}); + } if(find_symbol->type!="void"){ // debug("idhar",$1->code); $$->final_code = $1->final_code; @@ -1058,7 +1078,6 @@ declaration code=$2->code; } else { - //cout<<"heeeeeee"<<$1<symbol_map[top_symbol]->type = $1; if(curr_scope->symbol_map[top_symbol]->type.substr(0,6)=="static"){ static_variables.push_back({curr_scope,top_symbol}); @@ -2069,7 +2088,7 @@ start_symbol: translation_unit static_variables_code.insert(static_variables_code.end(), temp.begin(), temp.end()); cleaned_TAC=clean_vector_TAC(static_variables_code); // print_vector($1->final_code); - //print_vector(cleaned_TAC); + // print_vector(cleaned_TAC); } ; translation_unit diff --git a/Assignment4/test/input1.c b/Assignment4/test/input1.c index 94f332d..cf3c250 100644 --- a/Assignment4/test/input1.c +++ b/Assignment4/test/input1.c @@ -1,3 +1,74 @@ -int main(){ - printf("hello world %d",3.1); +//basic.c +// #include + +int addx(int a, int b) { + return a + b; +} + +int factorial(int n) { + if (n <= 1) return 1; + else return n * factorial(n - 1); +} + +// int array_sum(int arr[5], int size) { + +// } + +struct Point { + int x; + int y; +}; + +// float point_sum(struct Point *p) { +// return p->x / p->y; +// } + +int main() { + int a = 5, b = 10; + + int result = addx(a, b); + if (result != 15) { + printf("Arithmetic test failed: %d\n", result); + return 1; + } + + int fact = factorial(5); + if (fact != 120) { + printf("Recursion test failed: %d\n", fact); + return 1; + } + + int arr[5] = {1, 2, 3, 4, 5}; + // int arr_sum = array_sum(arr, 5); + int array_sum = 0; + int i = 0; + for (i = 0; i < 5; i++) { + array_sum = array_sum + arr[i]; + } + // return sum; + if (array_sum != 15) { + printf("Array sum test failed: %d\n", array_sum); + return 1; + } + + // struct Point p = {3, 4}; + // // int p_sum = point_sum(&p); + // // if (p_sum != 7) { + // // printf("Struct test failed: %d\n", p_sum); + // // return 1; + // // } + + int value = 0; + if (a < b) { + value = 1; + } else { + value = 2; + } + if (value != 1) { + printf("Branching test failed: %d\n", value); + return 1; + } + + printf("All tests passed successfully!\n"); + return 0; } \ No newline at end of file diff --git a/Assignment4/test/input10.c b/Assignment4/test/input10.c deleted file mode 100644 index 3e8ac8a..0000000 --- a/Assignment4/test/input10.c +++ /dev/null @@ -1,53 +0,0 @@ -//funcall.c -int add_all(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, - int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, - int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, - int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, - int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, - int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, - int a61, int a62, int a63, int a64, int a65, int a66, int a67, int a68, int a69, int a70, - int a71, int a72, int a73, int a74, int a75, int a76, int a77, int a78, int a79, int a80, - int a81, int a82, int a83, int a84, int a85, int a86, int a87, int a88, int a89, int a90, - int a91, int a92, int a93, int a94, int a95, int a96, int a97, int a98, int a99, int a100) -{ -return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + - a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + - a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + - a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + - a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + - a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + - a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + - a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + - a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + - a91 + a92 + a93 + a94 + a95 + a96 + a97 + a98 + a99 + a100; -} - -int main() { -// Declare and initialize 100 variables -int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; -int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; -int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; -int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; -int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; -int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; -int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; -int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; -int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; -int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; - -// Call the function with 100 arguments -int sum = add_all(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, - a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, - a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, - a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, - a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, - a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, - a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, - a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, - a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, - a91, a92, a93, a94, a95, a96, a97, a98, a99, a100); - -printf("Sum of all variables = %d\n", sum); - -return 0; -} diff --git a/Assignment4/test/input11.c b/Assignment4/test/input11.c deleted file mode 100644 index 6f4d557..0000000 --- a/Assignment4/test/input11.c +++ /dev/null @@ -1,38 +0,0 @@ -//peep.c -int main() { - int a = 5, b = 10, c = 15, d = 20; - - // Redundant calculation - int x = a * 2; - int y = a + a; - - // Constant folding - int z = 4 * 5; - float w = 30.0 / 5.0; - - // Strength reduction - int u = d * 8; - - // Dead code (if optimization is enabled) - int unused = 100; - - // Combine multiple increments - int counter = 0; - counter = counter + 1; - counter = counter + 1; - counter = counter + 1; - - int temp = b; - temp = temp;// Useless assignment - - if (1) { - printf("This branch is always taken.\n"); - } else { - printf("This branch is never taken.\n"); - } - - printf("Results: x=%d, y=%d, z=%d, w=%f\n", x, y, z, w); - printf("Counter: %d%d\n", u,counter); - - return 0; -} \ No newline at end of file diff --git a/Assignment4/test/input12.c b/Assignment4/test/input12.c deleted file mode 100644 index 5e013be..0000000 --- a/Assignment4/test/input12.c +++ /dev/null @@ -1,30 +0,0 @@ -//var100.c -int main() { - // Declare and initialize 100 variables - int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; - int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; - int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; - int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; - int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; - int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; - int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; - int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; - int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; - int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; - - // Sum all variables - int sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + - a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + - a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + - a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + - a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + - a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + - a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + - a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + - a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + - a91 + a92 + a93 - a94 + a95 + a96 + a97 + a98 + a99 + a100; - - printf("Sum of all variables = %d\n", sum); - - return 0; -} diff --git a/Assignment4/test/input13.c b/Assignment4/test/input13.c deleted file mode 100644 index bab7e86..0000000 --- a/Assignment4/test/input13.c +++ /dev/null @@ -1,63 +0,0 @@ -// #include -// using namespace std; - -// class Animal { -// protected: -// string name; -// public: -// Animal(string n) : name(n) {} -// void display() { -// cout << "Animal Name: " << name << endl; -// } -// }; - -// class Dog : public Animal { -// private: -// int age; -// public: -// Dog(string n, int a) : Animal(n), age(a) {} - -// void bark() { -// cout << name << " barks! Age: " << age << endl; -// } -// }; - -// void greet() { -// cout << "Hello from function pointer!\n"; -// } - -// void callFunction(void (*func)()) { -// func(); -// } - -int main() { - // --- Class, Object, Inheritance --- - // Dog d("Buddy", 5); - // d.display(); - // d.bark(); - - // // --- Function Pointer --- - // void (*fp)() = greet; - // callFunction(fp); - - // // --- References --- - // int x = 10; - // int& ref = x; - // ref = 20; - // cout << "Reference value: " << x << endl; - - // --- Multi-level Pointers --- - int y = 50; - int* p1 = &y; - int** p2 = &p1; - int*** p3 = &p2; - y--; - // printf("Multi-level pointer value: %d\n", ***p3); - - // --- Multi-level Array --- - // int arr[2][3] = { {1,2,3}, {4,5,6} }; - // cout << "Multi-level array element arr[1][2]: " << arr[1][2] << endl; - - return 0; -} - diff --git a/Assignment4/test/input14.c b/Assignment4/test/input14.c deleted file mode 100644 index be111db..0000000 --- a/Assignment4/test/input14.c +++ /dev/null @@ -1,32 +0,0 @@ -void count_with_static() { - static int counter = 0; - counter++; - printf("Static counter = %d\n", counter); -} - -int main() { - int i = 0; - - // for (i = 0; i < 10; i++) { - // // if (i == 2) { - // // continue; - // // } - // if (i == 5) { - // break; - // } - - // printf("i = %d\n", i); - // // count_with_static(); - // } - - // static int repeat = 0; - // if (repeat == 0) { - // repeat = 1; - // printf("Repeating the loop using goto!\n\n"); - // goto start_loop; - // } - - - printf("Program finished.\n"); - return 0; -} diff --git a/Assignment4/test/input2.c b/Assignment4/test/input2.c index 1dbf007..f5fe193 100644 --- a/Assignment4/test/input2.c +++ b/Assignment4/test/input2.c @@ -1,13 +1,55 @@ -//>= 4 args - -int addx(int a, int b, int c, int d, int e){ - return a+b+c+d+e; +//funcall.c +int add_all(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8, int a9, int a10, + int a11, int a12, int a13, int a14, int a15, int a16, int a17, int a18, int a19, int a20, + int a21, int a22, int a23, int a24, int a25, int a26, int a27, int a28, int a29, int a30, + int a31, int a32, int a33, int a34, int a35, int a36, int a37, int a38, int a39, int a40, + int a41, int a42, int a43, int a44, int a45, int a46, int a47, int a48, int a49, int a50, + int a51, int a52, int a53, int a54, int a55, int a56, int a57, int a58, int a59, int a60, + int a61, int a62, int a63, int a64, int a65, int a66, int a67, int a68, int a69, int a70, + int a71, int a72, int a73, int a74, int a75, int a76, int a77, int a78, int a79, int a80, + int a81, int a82, int a83, int a84, int a85, int a86, int a87, int a88, int a89, int a90, + int a91, int a92, int a93, int a94, int a95, int a96, int a97, int a98, int a99, int a100) +{ +return a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 + a94 + a95 + a96 + a97 + a98 + a99 + a100; } +int main() { +// Declare and initialize 100 variables +int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; +int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; +int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; +int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; +int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; +int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; +int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; +int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; +int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; +int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; + +// Call the function with 100 arguments +int sum = add_all(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, + a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, + a21, a22, a23, a24, a25, a26, a27, a28, a29, a30, + a31, a32, a33, a34, a35, a36, a37, a38, a39, a40, + a41, a42, a43, a44, a45, a46, a47, a48, a49, a50, + a51, a52, a53, a54, a55, a56, a57, a58, a59, a60, + a61, a62, a63, a64, a65, a66, a67, a68, a69, a70, + a71, a72, a73, a74, a75, a76, a77, a78, a79, a80, + a81, a82, a83, a84, a85, a86, a87, a88, a89, a90, + a91, a92, a93, a94, a95, a96, a97, a98, a99, a100); -int main(){ - int a = addx(1, 1, 1, 1, 1); - printf("Sum of 5 numbers is: %d", a); - return 0; +printf("Sum of all variables = %d\n", sum); + +return 0; } + diff --git a/Assignment4/test/input3.c b/Assignment4/test/input3.c index bfcb092..6f4d557 100644 --- a/Assignment4/test/input3.c +++ b/Assignment4/test/input3.c @@ -1,13 +1,38 @@ -//struct -struct A{ - int a; - int b; -}; +//peep.c +int main() { + int a = 5, b = 10, c = 15, d = 20; + // Redundant calculation + int x = a * 2; + int y = a + a; + + // Constant folding + int z = 4 * 5; + float w = 30.0 / 5.0; + + // Strength reduction + int u = d * 8; + + // Dead code (if optimization is enabled) + int unused = 100; + + // Combine multiple increments + int counter = 0; + counter = counter + 1; + counter = counter + 1; + counter = counter + 1; + + int temp = b; + temp = temp;// Useless assignment + + if (1) { + printf("This branch is always taken.\n"); + } else { + printf("This branch is never taken.\n"); + } + + printf("Results: x=%d, y=%d, z=%d, w=%f\n", x, y, z, w); + printf("Counter: %d%d\n", u,counter); -int main(){ - struct A c; - c.a = 1; - c.b = 2; return 0; } \ No newline at end of file diff --git a/Assignment4/test/input4.c b/Assignment4/test/input4.c index d7ad2cc..5e013be 100644 --- a/Assignment4/test/input4.c +++ b/Assignment4/test/input4.c @@ -1,13 +1,30 @@ -//union +//var100.c +int main() { + // Declare and initialize 100 variables + int a1 = 10, a2 = 10, a3 = 10, a4 = 10, a5 = 10, a6 = 10, a7 = 10, a8 = 10, a9 = 10, a10 = 10; + int a11 = 10, a12 = 10, a13 = 10, a14 = 10, a15 = 10, a16 = 10, a17 = 10, a18 = 10, a19 = 10, a20 = 10; + int a21 = 10, a22 = 10, a23 = 10, a24 = 10, a25 = 10, a26 = 10, a27 = 10, a28 = 10, a29 = 10, a30 = 10; + int a31 = 10, a32 = 10, a33 = 10, a34 = 10, a35 = 10, a36 = 10, a37 = 10, a38 = 10, a39 = 10, a40 = 10; + int a41 = 10, a42 = 10, a43 = 10, a44 = 10, a45 = 10, a46 = 10, a47 = 10, a48 = 10, a49 = 10, a50 = 10; + int a51 = 10, a52 = 10, a53 = 10, a54 = 10, a55 = 10, a56 = 10, a57 = 10, a58 = 10, a59 = 10, a60 = 10; + int a61 = 10, a62 = 10, a63 = 10, a64 = 10, a65 = 10, a66 = 10, a67 = 10, a68 = 10, a69 = 10, a70 = 10; + int a71 = 10, a72 = 10, a73 = 10, a74 = 10, a75 = 10, a76 = 10, a77 = 10, a78 = 10, a79 = 10, a80 = 10; + int a81 = 10, a82 = 10, a83 = 10, a84 = 10, a85 = 10, a86 = 10, a87 = 10, a88 = 10, a89 = 10, a90 = 10; + int a91 = 10, a92 = 10, a93 = 10, a94 = 10, a95 = 10, a96 = 10, a97 = 10, a98 = 10, a99 = 10, a100 = 10; -union u{ - int i; - int f; -}; + // Sum all variables + int sum = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8 + a9 + a10 + + a11 + a12 + a13 + a14 + a15 + a16 + a17 + a18 + a19 + a20 + + a21 + a22 + a23 + a24 + a25 + a26 + a27 + a28 + a29 + a30 + + a31 + a32 + a33 + a34 + a35 + a36 + a37 + a38 + a39 + a40 + + a41 + a42 + a43 + a44 + a45 + a46 + a47 + a48 + a49 + a50 + + a51 + a52 + a53 + a54 + a55 + a56 + a57 + a58 + a59 + a60 + + a61 + a62 + a63 + a64 + a65 + a66 + a67 + a68 + a69 + a70 + + a71 + a72 + a73 + a74 + a75 + a76 + a77 + a78 + a79 + a80 + + a81 + a82 + a83 + a84 + a85 + a86 + a87 + a88 + a89 + a90 + + a91 + a92 + a93 - a94 + a95 + a96 + a97 + a98 + a99 + a100; + + printf("Sum of all variables = %d\n", sum); -int main(){ - union u a; - a.i = 1; - a.f = 2; return 0; -} \ No newline at end of file +} diff --git a/Assignment4/test/input5.c b/Assignment4/test/input5.c index 9f14701..981cdbd 100644 --- a/Assignment4/test/input5.c +++ b/Assignment4/test/input5.c @@ -1,12 +1,33 @@ -float fun(float a,int b) -{ - float c = a + b; - return c; +//static.c +void count_with_static() { + static int counter = 0; + counter++; + printf("Static counter = %d\n", counter); } -int main() -{ - int r=2; - float res=fun(2.0,3); - printf(" Answer %f",res); + +int main() { + int i = 0; +start_loop: + for (i = 0; i < 10; i++) { + if (i == 2) { + continue; + } + if (i == 5) { + break; + } + + printf("i = %d\n", i); + // count_with_static(); + } + + static int repeat = 0; + if (repeat == 0) { + repeat = 1; + printf("Repeating the loop using goto!\n\n"); + goto start_loop; + } + + + printf("Program finished.\n"); return 0; -} \ No newline at end of file +} diff --git a/Assignment4/test/input6.c b/Assignment4/test/input6.c index 3b937ed..0901e46 100644 --- a/Assignment4/test/input6.c +++ b/Assignment4/test/input6.c @@ -10,5 +10,8 @@ int main() { int a[3]={5,4,5}; int c=a[0]; printf("%d\n", c); + int y = 50; + int* p1 = &y; + printf("Multi-level pointer value: %d\n", *p1); return 0; } \ No newline at end of file diff --git a/Assignment4/test/input7.c b/Assignment4/test/input7.c index 650425d..b374e60 100644 --- a/Assignment4/test/input7.c +++ b/Assignment4/test/input7.c @@ -3,6 +3,6 @@ int main(){ int *ptr = &i; int **ptr2 = &ptr; **ptr2 = 10; - printf("%d\n", i); + printf("%d\n", **ptr2); return 0; } \ No newline at end of file diff --git a/Assignment4/test/input8.c b/Assignment4/test/input8.c index 2da8042..da8a9de 100644 --- a/Assignment4/test/input8.c +++ b/Assignment4/test/input8.c @@ -1,17 +1,31 @@ -int main(){ - int a = 5; - switch(a){ +typedef int Integer; +int main() { + Integer a = 3; + Integer b = 10; + Integer c; + switch(a) + { case 1: - printf("1"); + c = a + b; + printf("c is %d\n", c); break; case 2: - printf("2"); + c = a - b; + printf("c is%d\n", c); break; case 3: - printf("3"); + c = a * b; + printf("c is%d\n", c); break; default: - printf("default"); + c = a / b; + printf("c is %d\n", c); + } + int i=2; + until(i<0) + { + printf("i is %d\n", i); + i--; } return 0; } \ No newline at end of file diff --git a/Assignment4/test/input9.c b/Assignment4/test/input9.c deleted file mode 100644 index db1e3aa..0000000 --- a/Assignment4/test/input9.c +++ /dev/null @@ -1,73 +0,0 @@ -// #include - -int addx(int a, int b) { - return a + b; -} - -int factorial(int n) { - if (n <= 1) return 1; - else return n * factorial(n - 1); -} - -// int array_sum(int arr[5], int size) { - -// } - -struct Point { - int x; - int y; -}; - -// float point_sum(struct Point *p) { -// return p->x / p->y; -// } - -int main() { - int a = 5, b = 10; - - int result = addx(a, b); - if (result != 15) { - printf("Arithmetic test failed: %d\n", result); - return 1; - } - - int fact = factorial(5); - if (fact != 120) { - printf("Recursion test failed: %d\n", fact); - return 1; - } - - int arr[5] = {1, 2, 3, 4, 5}; - // int arr_sum = array_sum(arr, 5); - int array_sum = 0; - int i = 0; - for (i = 0; i < 5; i++) { - array_sum = array_sum + arr[i]; - } - // return sum; - if (array_sum != 15) { - printf("Array sum test failed: %d\n", array_sum); - return 1; - } - - // struct Point p = {3, 4}; - // // int p_sum = point_sum(&p); - // // if (p_sum != 7) { - // // printf("Struct test failed: %d\n", p_sum); - // // return 1; - // // } - - int value = 0; - if (a < b) { - value = 1; - } else { - value = 2; - } - if (value != 1) { - printf("Branching test failed: %d\n", value); - return 1; - } - - printf("All tests passed successfully!\n"); - return 0; -} From fbb60fca8fd1f89dbfada9c4e6369b86e12fe253 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Wed, 30 Apr 2025 19:47:26 +0530 Subject: [PATCH 51/52] single level pointer --- Assignment4/output/output6.s | 35 ++++--------------------- Assignment4/output/output7.s | 51 ++++++++++++++++++++++++++---------- Assignment4/test/input6.c | 3 --- Assignment4/test/input7.c | 9 ++++--- 4 files changed, 48 insertions(+), 50 deletions(-) diff --git a/Assignment4/output/output6.s b/Assignment4/output/output6.s index c407b1b..0d6816e 100644 --- a/Assignment4/output/output6.s +++ b/Assignment4/output/output6.s @@ -5,14 +5,13 @@ .data newline: .asciiz "\n" str0: .asciiz "" -str1: .asciiz "Multi-level pointer value:" .text .globl main main: move $fp, $sp - addi $sp, $sp, -68 - sw $ra, 64($sp) - sw $fp, 60($sp) + addi $sp, $sp, -52 + sw $ra, 48($sp) + sw $fp, 44($sp) addi $t9, $sp, 0 #Loading constant 7 into register li $t8, 7 @@ -84,32 +83,8 @@ syscall la $a0, newline syscall move $t0, $v0 - # Spilling t7 from $t0 - li $t0, 50 - # Spilling y from $t0 - addi $t0, $sp, -1 - la $a0, str1 - # Spilling p1 from $t0 - lw $t0, 0() - sw $t0, 36($sp) - move $a1, $t0 - # Spilling p1 from -#printf - move $a0, $a0 - li $v0, 4 -syscall - li $v0, 4 - la $a0, newline - syscall - move $a0, $a1 - li $v0, 1 -syscall - li $v0, 4 - la $a0, newline - syscall - move , $v0 li $v0, 0 - lw $fp, 60($sp) - lw $ra, 64($sp) + lw $fp, 44($sp) + lw $ra, 48($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output7.s b/Assignment4/output/output7.s index b2ea518..c350d65 100644 --- a/Assignment4/output/output7.s +++ b/Assignment4/output/output7.s @@ -5,6 +5,7 @@ .data newline: .asciiz "\n" str0: .asciiz "" +str1: .asciiz "Single level pointer value:" .text .globl main main: @@ -16,20 +17,42 @@ main: #Pushing i to stack sw $t9, 0($sp) addi $t8, $sp, 0 - #Pushing ptr to stack - sw $t8, 4($sp) - addi $t9, $sp, 4 - lw $t8, 0($t9) - sw $t8, 8($sp) - #Loading constant 10 into register - li $t7, 10 - sw $t7, 0($t8) + lw $t9, 0($sp) + li $t7, 1 + add $t9, $t9, $t7 la $a0, str0 - lw $t6, 0($t9) - sw $t6, 8($sp) - lw $t5, 0($t6) - sw $t5, 12($sp) - move $a1, $t5 + #Pushing i to stack + sw $t9, 0($sp) + lw $t6, 0($t8) + sw $t6, 4($sp) + move $a1, $t6 +#printf + move $a0, $a0 + li $v0, 4 +syscall + li $v0, 4 + la $a0, newline + syscall + move $a0, $a1 + li $v0, 1 +syscall + li $v0, 4 + la $a0, newline + syscall + move $t9, $v0 + li $t5, 50 + #Pushing y to stack + sw $t5, 8($sp) + addi $t4, $sp, 8 + lw $t5, 8($sp) + li $t3, 1 + sub $t5, $t5, $t3 + la $a0, str1 + #Pushing y to stack + sw $t5, 8($sp) + lw $t2, 0($t4) + sw $t2, 12($sp) + move $a1, $t2 #printf move $a0, $a0 li $v0, 4 @@ -43,7 +66,7 @@ syscall li $v0, 4 la $a0, newline syscall - move $t4, $v0 + move $t5, $v0 li $v0, 0 lw $fp, 32($sp) lw $ra, 36($sp) diff --git a/Assignment4/test/input6.c b/Assignment4/test/input6.c index 0901e46..3b937ed 100644 --- a/Assignment4/test/input6.c +++ b/Assignment4/test/input6.c @@ -10,8 +10,5 @@ int main() { int a[3]={5,4,5}; int c=a[0]; printf("%d\n", c); - int y = 50; - int* p1 = &y; - printf("Multi-level pointer value: %d\n", *p1); return 0; } \ No newline at end of file diff --git a/Assignment4/test/input7.c b/Assignment4/test/input7.c index b374e60..31dfe7d 100644 --- a/Assignment4/test/input7.c +++ b/Assignment4/test/input7.c @@ -1,8 +1,11 @@ int main(){ int i=0; int *ptr = &i; - int **ptr2 = &ptr; - **ptr2 = 10; - printf("%d\n", **ptr2); + i+=1; + printf("%d\n", *ptr); + int y = 50; + int* p1 = &y; + y--; + printf("Single level pointer value: %d\n", *p1); return 0; } \ No newline at end of file From b06c42ce1d500bfc5b8acc37016473083d677c22 Mon Sep 17 00:00:00 2001 From: BitBeast Date: Tue, 13 May 2025 18:55:30 +0530 Subject: [PATCH 52/52] Final code --- Assignment4/output/output5.s | 60 +++++++++++++++++++++++------------- Assignment4/output/output7.s | 17 +++++----- Assignment4/test/input5.c | 7 +++-- Assignment4/test/input6.c | 1 - Assignment4/test/input7.c | 6 +++- 5 files changed, 54 insertions(+), 37 deletions(-) diff --git a/Assignment4/output/output5.s b/Assignment4/output/output5.s index feebfd0..e76f0b9 100644 --- a/Assignment4/output/output5.s +++ b/Assignment4/output/output5.s @@ -4,7 +4,6 @@ # ====================================================================== .data newline: .asciiz "\n" -static_counter: .word 0 static_repeat: .word 0 str0: .asciiz "Static counter =" str1: .asciiz "i =" @@ -27,12 +26,9 @@ count_with_static: sw $t7, 16($sp) sw $t8, 12($sp) sw $t9, 8($sp) - lw $t9, static_counter + li $t9, 0 li $t8, 1 - lw $t9, static_counter add $t9, $t9, $t8 - sw $t9, static_counter - sw $t9, static_counter la $a0, str0 move $a1, $t9 #printf @@ -49,11 +45,26 @@ syscall la $a0, newline syscall move $t7, $v0 + li $v0, 1 + lw $fp, 48($sp) + lw $ra, 52($sp) + lw $t0, 44($sp) + lw $t1, 40($sp) + lw $t2, 36($sp) + lw $t3, 32($sp) + lw $t4, 28($sp) + lw $t5, 24($sp) + lw $t6, 20($sp) + lw $t7, 16($sp) + lw $t8, 12($sp) + lw $t9, 8($sp) + addi $sp, $sp, 56 + jr $ra main: move $fp, $sp - addi $sp, $sp, -48 - sw $ra, 44($sp) - sw $fp, 40($sp) + addi $sp, $sp, -56 + sw $ra, 52($sp) + sw $fp, 48($sp) li $t6, 0 LABEL8: li $t6, 0 @@ -94,26 +105,31 @@ syscall la $a0, newline syscall move $t9, $v0 -LABEL7: # Spilling t0 from $t7 - li $t7, 1 - add $t6, $t6, $t7 + jal count_with_static + move $t7, $v0 + # Spilling t1 from $t4 + move $t4, $t7 +LABEL7: + # Spilling r from $t4 + li $t4, 1 + add $t6, $t6, $t4 j LABEL4 LABEL5: # Spilling i from $t6 lw $t6, static_repeat - # Spilling t1 from $t4 - li $t4, 0 # Spilling t2 from $t2 - seq $t2, $t6, $t4 + li $t2, 0 + # Spilling t3 from $t0 + seq $t0, $t6, $t2 sw $t6, static_repeat - bnez $t2, LABEL9 + bnez $t0, LABEL9 j LABEL10 LABEL9: lw $t6, static_repeat - # Spilling t5 from $t2 - li $t2, 1 - move $t6, $t2 + # Spilling t6 from $t0 + li $t0, 1 + move $t6, $t0 sw $t6, static_repeat la $a0, str2 # Spilling repeat from $t6 @@ -128,7 +144,7 @@ syscall j LABEL8 LABEL10: la $a0, str3 - # Spilling t3 from $t0 + # Spilling t4 from $t9 #printf move $a0, $a0 li $v0, 4 @@ -136,9 +152,9 @@ syscall li $v0, 4 la $a0, newline syscall - move $t0, $v0 + move $t9, $v0 li $v0, 0 - lw $fp, 40($sp) - lw $ra, 44($sp) + lw $fp, 48($sp) + lw $ra, 52($sp) li $v0, 10 syscall diff --git a/Assignment4/output/output7.s b/Assignment4/output/output7.s index c350d65..e241e3f 100644 --- a/Assignment4/output/output7.s +++ b/Assignment4/output/output7.s @@ -41,18 +41,15 @@ syscall syscall move $t9, $v0 li $t5, 50 + li $t4, 1 + sub $t5, $t5, $t4 #Pushing y to stack sw $t5, 8($sp) - addi $t4, $sp, 8 - lw $t5, 8($sp) - li $t3, 1 - sub $t5, $t5, $t3 + addi $t3, $sp, 8 la $a0, str1 - #Pushing y to stack - sw $t5, 8($sp) - lw $t2, 0($t4) - sw $t2, 12($sp) - move $a1, $t2 + lw $t5, 0($t3) + sw $t5, 12($sp) + move $a1, $t5 #printf move $a0, $a0 li $v0, 4 @@ -66,7 +63,7 @@ syscall li $v0, 4 la $a0, newline syscall - move $t5, $v0 + move $t2, $v0 li $v0, 0 lw $fp, 32($sp) lw $ra, 36($sp) diff --git a/Assignment4/test/input5.c b/Assignment4/test/input5.c index 981cdbd..67b73bc 100644 --- a/Assignment4/test/input5.c +++ b/Assignment4/test/input5.c @@ -1,8 +1,9 @@ //static.c -void count_with_static() { - static int counter = 0; +int count_with_static() { + int counter = 0; counter++; printf("Static counter = %d\n", counter); + return 1; } int main() { @@ -17,7 +18,7 @@ int main() { } printf("i = %d\n", i); - // count_with_static(); + int r=count_with_static(); } static int repeat = 0; diff --git a/Assignment4/test/input6.c b/Assignment4/test/input6.c index 3b937ed..9158655 100644 --- a/Assignment4/test/input6.c +++ b/Assignment4/test/input6.c @@ -2,7 +2,6 @@ struct A{ int a; int b; }; - int main() { struct A str; str.a = 7; diff --git a/Assignment4/test/input7.c b/Assignment4/test/input7.c index 31dfe7d..d7813c3 100644 --- a/Assignment4/test/input7.c +++ b/Assignment4/test/input7.c @@ -1,11 +1,15 @@ + int main(){ int i=0; int *ptr = &i; i+=1; printf("%d\n", *ptr); int y = 50; + { + y--; + } int* p1 = &y; - y--; + printf("Single level pointer value: %d\n", *p1); return 0; } \ No newline at end of file

$&@s>i zmm%q*5JcALK%im#8{sM7nA=>un%gtD9i9vfnE6?bOJDz*Ge+(OPoZG~GB z!;twSh}}gPxe*T#;zPqvz91UH<-Z+mH4t=?*@*^ubz#MPp|Ne ztQzncSUUi=yuwd8S>|tD!nfhC`BSgtr#KEYNR)>zSX|({#hs(S6In~1G&_z+UWc83 zUj%ZX+xp!SR1Bk$`h7KcD%GmSJ>n=_c)#X_eh$uz2b4tjtaoY?jpQi0URt;;9DfuN z0u(3?ydpnW93>{5;&~>d_wXE7M@&8yv{%V z=aVve5fEI_-;BxFe%sh0j7VUcl$73Tx>-rrlD(}gBE(UI0L!-3XsThpGy6^4K~8!< z#V0r%O20PB?C`F4v6xY)wT_DCZfJ(;3recWjMopv7^B45atnH{Jss7Cf=KQ%ThwNU zT)e~?$0a+2uTIl?HI0Mx*>c0f$EIoIsP5>bhm}gadJDJ(8Xz~fM6 zhdQZR1O@8tDF{}dtCG-)1_&vz!mMgk*a2wi15|2tKq?suv@if3IQaizPv?KNOZ7kfl8DDOvlPy{2kE-~)=8rqgT z_|u<7HqCB{D38RK3C@$*l3J*QGm_01FmAr^Rp=3TG}6E0XUMT>LFRxGn}Dci4|tMd z*181*`yWHYOQnIbRs?ZbKbo2Md&oOH5Gq4)wzxyCjk2VsA}@GJt3Trg8?Flf;?=$oOI z@IOy=p&XLnWRj(m>k#|?!mqtw-lBmBTR}Iw{SwZr>a`PZl%<|F6W?8M%Msqaei!7a zx*ey(I0pt%Oi)Fw6jje0=9OJ9$+NV&-n}%YiGALcl5Q&Q3}Xr^&vCbaP;^_%^%@g4 z|IZ(P{q@`Lvtsg($NzYV^UPYM`r0PXZScr+IsV6~i~!u%RsSy#Yn-$G?~p@nlp4<@ z4Kt47kSZ9@?Sp-Ni*{h&R??$WZmmX&9uRoy>eX$LHip~?HtENF!<_iN*loXP6xJ5Z z@M&xl?LR*~1lqVp>VRyWobtao31b#2x0poDy}gk$bzm^iFnCUK4YPr<)2TO;>Z!F^P}$R zYktz$oYT&71-|XXaUlXvdC3?-gG4`nG_282YG$ zQ~lSOupp?RREw*$hQySWA|8w`WhxJQm8Ygq=~BOOq@LMMwI_t>d0*V_Ze`{*H`{2L zKN_cAXY6kjk=w$Q+SLI}Ffy7L1!zbhmK-`TF#F7iL8wWxPhs2)Ff{QHQuvp#YiQz= z)d#op)qX~%O?bAmj!@S{$;}5y^bA{NNN2dk8{RDUOF|W-FmZ(vz6$C5VtyZYWlpjB zOx)22)K%~Ue-yF=+ch|ZzXTHas_>h%@gV?;FK-cuBi6^pG(7XNE#!ZscbY}fLtdVe zO11#1;hYev3!~I4sP!83(FP60$K%sqN`1*X>54RC;AE+5UqHlxhJu_NW_X1by&l@$ z7pJUhg}3dC%wZbQ=6+6>iS&$@jO8)4J+(Xti2G{9GmHg>)K51_oj&AwGA4e_CI{2S zp!IQ1>@>{M6d&{M)iW=WZoX1*pgLF|R`z}`JQ*9_s+gSB{kHurL}eGohsnF>R0+8M(LzNR~`Rr)BtqYw9RKtEN1 z1(_Se+PQ*Ze^O-R*D3z6D2Li`ynlfm^A|!q+>A?()tp6246KoGPhlX&hc}Yr;qf7 zH*0Q22*j7m|Im>|3y}frI68U(W?_T2BxbBN@A~9m$YJ>^M9eJ=|pH&plT?? zu;GcRzBasUu#I^bfa1n-yK|^ToyxUo)Zb!4=4#(L3^3`l40R;!Z?e3-Xi*qE7tcIf@rX-L(jV!%XMXQNb`3{%b zy+?*VR-NppOGq5V`xX?HznAJPj`PpXF;y~0(jLM-!JT7xI=YUfj?`pO?f2c`TuyB% z*CdOs^XKCHh9k^ioJuK2S>bxrT%79Fa4~3de<2h6a(N3dr#CTFcTm;&faGk^} zmB~gO!^(+^u9y4$PWIO&f&Jtut`dUcTDGzHTAUB^ksTJ<1^6j~O&=ZGg+En^Ve21K zHqH6#AHz4K!qK0I0^}+meid6+E6b5XksIS;l zQ=YSgd=S%mkW{jQ9Dba^?Fp@zT+BRQ<3qQY0rEA%PnBp#}>y@0KVe!kAvcesuKxFVW<%XLkz3ElXptkLEfZ0hIZ7fuPIRkaaNRp_Qhz1=Ma zWN$#wBULMi=?srgso-*KI|IqQ4$$ZMdi8k=7CR1*kN!q6r27jc31~niivmu>m&~9M7BM$N?{t6&}+YP9%=$3fadPQK}=G^&iShD z1?djDk_8BqI+dy#2#Qt#B{~l3a&a5Gf<2Zsz`8zTEn|B<-BirQldfrqSDZkgQ!7RW zF2YQD4s)P4*XVm8VX^g+?t~t6QK=6waSyI@!PCZMuP34`br_RJu4APjl7m)i*rL3_ z8fqT`dz&n0S?Pdl6C{nNL}%xzQJO6bj`-d{j&#@_3uz_t#pK1|etVpM$J{Fpy>g{4 z6zLEnMHyj$BC}M8h5Hp(0fI?hHM1WGv@T*-Ei4@is0du}RBrMmo-P^{7+p_L?>b}2 zxKd*?s|-87=mg+Gn5Y4`Fk~f%#=5N+C%#L7XLwCNtK21txC)=^af(RtOH8R}<#hYm z@rm%9<3|4OG+n*Y+-Ig+_}U!hRk=xIu^Un%bhj8w>m}opLW+e<;D~6HZM*c=Yyf*g zBC5K@?6z8d6%U_v#rR!3rE4GZHa^oM|Lb4N1tViAD*0TE#^9^`v4!U!IM&0Fk=`5S z+gxpxs#Z8uCm3pZ!o`&4iY&1he6hyb64$3L8tFUAhBuxvC-9Vr`S$a2x>)!GJ)W^7 zUOH@{mfIy({X^ zKvFjEezpGGm9s=kb;GV;DJ=L!rGlmD*AJyUB(^T&U1)ps<9Ej|%RTvD)<4C*3>@v^ z`}fJD>uZUYlR$xIOnd1)l>&!)qQ&uuEa)a^9+|J(arc2-UT|yL_W$BXq!4?S`EDe) zxL&`i7hBr&pXvXuQHLyK#M+-MXt;=AgpLw+j4{uA5tZR5HjO zLyi#JKQP}9wOfzccsyjbx>y0D6L)Ti<<5c{`)krml7pQFYKe>RPg4vY z6#=2?!wlMiiM!eDx$%8=QMH2Ll!s5j9*A zEVTHcVinFF&sS=ULwAdkJtykCJBUu-zoYL%(KMsEiMA<2;L-{cZ!iaeq)iAO-|6 z%7$lmJwg(7ErVsjp9h*gBQ8YJzvI6k+7M88?mG2%vbi4V7$aHVxkwbY`jBd)ylY@o_gD}$deZNUil*5lf!O* zY|VEnFaQVG$C9wm>wiI?$M!p9j>L?Rq2BB$PPKbQjP1q*Khj~Kt!q~ht*Ul(Fcx4J5|wfbNRSCRx^hlKw`;UU?W}Vv&ObWXWSiDN_?+}^Vi7*7907{3 z2N4l-qs!gF4NY?TaBL$($43JHVan%Ll~$EWWDaeb7!Dq3F_}q=I<7)TT9`CW?Ix+w z4G9-8+b%0f653UF@`Q1)4k{SM>-TLLfd`PnGE0eTTS#nM*W2Ljh6q?G5sp);hy&}C zDr3mHEvbgTzeJb(8u+ztsAl%2O|O0PDP#}XtORfb;6p1DUD)$Dg+fAN9xwvUXK16n zMo!~q|3~@?=zYM?{O=^piq49PfwP}54V1teJj3s_CG_b;JrB#hRO<%&QZ^>ll)AMr zj#yh9KzlS4f?)pW2~{@VvxYlWFYgVfpTT3It}zQh44Qo8=@3jT#~=d9?f2ra`tOpWt|&$DzQZQ_`W{>OVWU3P!D54HkU)4E zb(^JK^h{x-g>!rT^&7KDaOB_S_lH7IaX}O>kIVnyG1;T046Q^qvL)h&Pj1CPR z@UB_y-L{~GyZ=Q4U-l~d$!7xJ)K35l+A`LxsOs)%V>SBVN4+|#9qAf)fCDH!hql`? zQe+EG+8&2`)~V$(ZSccKPrH@NjIvf`)kDGnlh^>-gKMCf4bAf{UpTOFH>MUpI$6*F z*}PW?m2$38n)rM@UfRt$Jc z@dnvr_g|lXD{Ba>DiO&crS5x@ZI9&`BVrE>OEjbj zNWWv6fXfm0V5t(FgST+Aa7z?^#x~O@w|9px=;!m?Cv$F@tYmQp0)cE%4MGghWLptm zVimSPBYBC)0wN3Tw(jb z665DKPrR!FGn4a-mFYE@gt@}0$>abEI-eo|8DwC#ihaG*>n}Y3wyP-$&LZZC8R5Z_ z6_@|A9Ej<)m7lG7fhhh6>p2QU4{h}pjk*hCmx-uIc6%0 z)5{Xs4>;G%o2V{`S*WU68DD{{%g_jg?BxTD%j07h515ii(>DW`UI-!iv1~^w0PAo_ z!;E7dpb2rWl1zMXPWi%1rLiDY<}w8ZubHhjE_%LQKJDfY0KajYz-$zpX=i(pk5O=dMHNaJ8Q!_wha z=3}yeYJ7E1rq}!?(`#g$7ExA(4T?|i*>Cl#5I`?J9d}lww!uhlK+}GDu4%WkG!ev!vgO-&R?!HM(k}{?J_27XuGo4W@z`Eh|x+M(cR*4#L%kz2U$# zKTJpEi@8-8-Kj5E zBjjIQXIN{rV>GsTQ77NZxBF=556P>fBfok@n8Hy}OGw}AA>p~qs6H0$GB%#m8(WUjs{`egFn zn<&FN(xofY(sM|rF!R7&dNX*|s*tqJ&*D>0D9km_?Xg39oQ)ihpdfHUw|NbMonjC_ zCu9^~R@);pVq&XOhiSFG@`c;O<9vsyNa61d@uTu16dGaC zN+&wf1N)D(a@W~_==Cyj>2YSPsIQkdNAv*MnR#2Rr;!dN$)gD_nApOH7DhX|KP9xz z2g@K=l&YECCkv(W zhZPrre&LOl3gRH~F#hNz(H^kHw~i=|fUSNH$atAsWgraCi!*;-e7s$7ZBv%jWbXe5 za*wlifZueA3JwZs26_x-F?*Y5NW)|kSRh~U5gd#mkP&#OmmUDHpILf;=V#hOx$2w} z@aYH0RA-YSraFXh!4d#`m5JF{esJ3grc~wi1{BF>K`226$8q5R5eR#!vEFYrsA{iA zd?0=@2{F3AFGq84Bz{7WoW98%u z95DoYzm%0R*s2x>fDo>9Xa%cV4q=nEHW$8Az-YDY7{)o0@%0!MwS0Y*a}l5&{QC9M zg*l^}JX8l=x%Z<(lH5BRWj-HDP!yUHUcTgWds}~>IKn6z>+iUo!KL(IPDYt2Cq8bA zuuXh$AbpbJ!8nd-V1TN@Es@!TQAy}n77QGT1sXYKjcLn|tF{agZ76_M)@@5(@@ZOaD7}S4|O~G}^n}S^+%gg2q zhA?iJ17qJFNU$z}Eg>lnn-s*ggi=A$wS)7$K zER+dbthwVm`l_ltC`&>t=A1`9A@)smyLZR?((w)=Ng@m6palh|E;_wH7x~GIe-@AylqH@q%(wJ3{ z4J8M!?deKD$ze@XiblBhG1!`{f-zRsiC7~}Td(^LqZ(B%ZKyYo?47Ejd+If< zh0F;&gpEwcG)4_IrtV>JX=96e+x zfbmH7c^t6w_>YGftmjRTKZ07HoqATALKu5mQYSA^#`bjv z%s`5BkeQ2Ylc?>(Yjmn2ukk#KPY9xU$#+M{p5!~tBhwj+Kj>3OveIh%b%*T%W3+~7 zeY9I^2pmtK4WB)ICImSZfFNQ}Skr1nML-HV{}x6hdZ-N77k;HXNTd;CB*ToChW99z z2~z@`$KnIaW8NR>@@iu@d|xFD8Z%fKA&l(0=LBI?d@w)Qy|ov((I`5p5fk$icKYZiko_^Dv!l znW_R@9RTw^=3OpjX*gDvkzb1VMBstOJT0@;2~VA$Pts0f3KDSdu}ZAfje9S2fAz7wf~75_OEtr+)i&fi9FP^!nj%_q;COJ9(q{sF`=rq5k6j z<5Wnp_?s|rTuG@c27Ac@c2ij_x`_TWTYd2Q$LtK>Qqvs`0e8G339+D_4!}e_^Hbc) z3+%2#?Q3%z#Jo?5qi^wEeLp99G1glh3)vOD+q(wMQk|nY#2JRCmxLOUqPWHoJq}ip zDKm`X8dW+U#|ryLn(w|^9j|g;w4bD58vafQR(huv{+!Qbp$K3Dl!8`>0)!+z2-L2$ z>zZf{IyA$!h;CBGQvtNI$xD8V{ZRymfqiT9QiK0bx=?gSbF#{d}RlHL+k9 zQ?sCDm7j<28531c!y!f|c7^@#Lf3DnBC{Hd)HhJmprfx+I;sh)``b)s+oylbCM`D8 z{~) zO)34pjuQWrdL3)+qoiYTBo$oe;Lg!hMPShC+DJtSrkS@ir6X^no-MAHpI2MCM10!e z8wfzwN>$ZMiQb~`YW4e&*rlWz03VTfwDStMyDEBtCOC|YC9@Ds zC3&}$r3K~`u_}>z+X5sCNZ&KI&tf`VpoQG93!Rn9BNpu3lf zTnN@)DzdEr1KvZe-?`Dk>zWIutp0Wo8f}sXIrQ0-ye_vb5x<zL)7D7DFBQDfke6*Y6CBc^u1`lbWU8npCd)5AnwQ5YIow?8YZuHX3g>}biAXKnS zFA6R;p0b@0|9&C=o17g-QdDWT5^f2K*kb>_;7SuWuu5R~5Wc4Ve$X>QETj-0J}M3V z$CHrE!qM*(momt2ayZVwIDwT&{XTnG<25Z}k-k)6)TN?}4s3N{;wq(}#f%@F*ZY znp3}8sc2(bH^wSpMhR>xi?b-t4bh_C)R32!e)bIjH!6TmfF>&rLwjBv+XyG@v@|zz zma}0;%t747&8`67nE~8=J=0Tc4#gIMR;TAEiWLC@4kg&5UXIDdF5;LfMkr;8M2_om zK7o{9aG1Gy?0W>_B4`5iGwWlXOoc;F@JktycROG0QI(_`%fG@LogsYYw2#}k=T;gL zZe4>3GLXgmK5o7Z{V5U{a5t!I{&XCU@Rz~>`Uo@XB(LxLx{9{0k0@Vh%BIETV&U21 z%Y1*}Fc+!3VZhec^TofB3GnJypD|Adk7C1>B#Q108-=j8JGEsD5S~zwwjDAigQ^m8 zV67R}8QeoH_{9^?st7N^EZrW~s7DAnMyED5SZKo$klBq`<9m}Au^UY0$hIVtZ%81&h6rLK&DpiebleNJv2DY>MOz@R}uo)O=6aUKe>E5;i5OT=Yi z;b#baq#{@MX|eEJjY6W^Fxb7QA>EQtjta;5Cpq5*g2r>atDE{46mzte#_D<-8otB+ zcj1@Qx8Kb1 zX1YJ_90ld%b=x2%vgRo^ab!d~99eVIzIJ{@8t}|W~*7E7;dWn_e~|*cO*%5a#ZMi3Y#c9TV*&9wmZK+YXo*-z?*(wxaa@ftLa1$&4 znr%C0JU2f>eZAT)G3x{Ti96n~loeCKu1aujv%!?E!rr$t- zag#)e#gkKbB{C-xTGG17qx*aQ1^CKGMTH)cK9uIF{h9+1RJlwcGc6;^kk1j)VR&b5 zVoi-CMR7xNUl9iNALqoPi_chJd){mg5cPEkjianW5HFd<6B%D6qgB)7R*!iU_c~xg z2X@{%iJnoS!?O`q!|UO8CeQXusjKgoew<{42R~kZRAy_%CZ0!7p8=bAdU~F|@63{$ zEA-4bJJrcPr#MIQra~l;P?zhrya&ih_P04P8FM}X&tq5%zd5&N9yKl(HQRu~t@MQKX57U_cES|=Dg;(#CyarxP18Qv!%UYlD!kKJi z1HP}9diLR0IMsBWXfk%(^&`~qi18pTT=DU$o!uuHJwl}Iv7i~`ljAa`46c6@3Nb+w zI<4AKfHhuVqYeU38 ztmaQk1C7@T5s2is$!lg-3}EfW^7Hch`}yH-iOFTG?L<~=_^wf7D~8tmv=j_!%TkQf zY75LJSj+<)=m{=}xZEUvS4qZ*h%LSp$Lj>-J@F>^_kSZI@xI+ z2)?ZuYmC@hFZ(&D_J-mQ-g`jd4??S&lx=@{crcdRAF7E6KPV?Ay6qt-*8}H^)W)M% zC3G4kwWmR3Z4Dhq=y-P^F@ShSd6O~Ho0T9ncml}r(SmzUlR~)Bxt0NQ#u0YUSP{|L zbP$SC*HvY|mHX1c0W5R~Z&J(FraoiF%X;?>5%U%FmSqkF7yIVFx9=D|R*@|0GwUWJ z-c&F^&>ss1MwqhjP~|9b99``l?Xkk%){!>}Y%Q-Bv`+Atd_K}&hR!(i)Mpi5CI#4YKRdM2Gxcr%D001sVkB2xm> zXvt$9^@yopxOmuDr_`Ap33IDcB++=zuE!LhXT@y$-zGh(me=$1QrbG8sPsgt>&Ykm z!*x2Cx=afBQ#{ENc!7Pn^Tq0T-*(k2duuBUUMEE}y)j5u8ZfHZ8QN(431KA5yj!8{ zeEQc1$Yrtk{(XM6`Z^()c38O~filQYD)ZBP5m<_vagxa+w9BXEZOF67Y!yDBpj2{N ztUNPS+}`&XoNXvAvA6L-eXx&Yaqh{|CO!7{ILK&rohcr?a|6oE-5NfV7&rNJ^-RYY zGw+aDCp`ytrPsaQkenTopK!X)QC{+Vt{2jAz1nSsJLsV?9kLoxkp2eQ^sWk96@j6^ zGdKw!9%#By@4o6+^ZC4q%LWm7OLrR?Vu+C?dE?eQEL}RDJ@TzPflN{y=bw4QO_wmT z6GVXZjyHN%yxU>H_w8=ITHH_1V2!GJ&wHhKeKp=uwD8T6<@GC>A?|Xj;UIuP@DVQu ztcEvS!ZYP=3tUmh&h&DY&QUsanZs{Csgw9I5U|QUk1R%jbOCb{g_&ZfrELN|t+=im|aAUEBk) zsNhE{X>I`8Pih~8?YR)Zr`Jm{5O`5(Q*2dkV~A}wjVRthS$zYwfG;NG7~i}LzRaH# zJy&*n??;9+ZpLLHMxRWw)VMabaJFr+v6z@oPWpeCPKGFdn3L3zCh5^YX?42mB)yOa z1C0M2?Ga!)=#a(s{=|U{%MbAT6$y46<|Dj=P1EdB{6gDswBqW|hUq*n>pnSPR z;1kP<2u&xX{b0k#0x+(ob{JBqVRl~$g?%y`N@ODw174}ceY%w7s@K#={6?ks0HY&D zsGMfQoB=-^2>G(q2gBY*YX%AJC5CwBrv8Dw;J_c}R{_2p1IZi6 z>6HHHo7I|xeC_j*qMQ!N)k}VfK0dd3eCn5}>w@Wvw;&%0`B3l$k;{kQ+QHF|P&wF5 zm{k``=%aSEnC#4B84~b6yoGBY5Vg8+4BQl6>xxTjzzLJlxrRT*Mp}S-ZX!&uWEi)@ z5r#a;9y&K$;SoH;4f3I&g|xE12(7F?(`r?Z(>E?L?wk>|Sp+_Xffc!vC9L6*_`UigTE67-=^*_HfSYdE z6X2SQf%#X{uR8J*DhDW|AwleIFWE`jEjvW?rf%y*_<+WQ41?;PCrFuF3Pjof^bjz4 z&2H1I|E5O>5G)&986HLox2~n8vdE%MHZuDQ*Ib<%on#H<5t4$8o5u9q6=k9g_0!v* zx#{ha3mmvcSJ1QmmJXuKFLFV?9t&PEeo_-$&cl;&+>9A?_a$a#Il4b+KTc73WMdmP zg*Qn37)Ve5i3Y+%^}`UJUa#2pAftl`)GgKkKJU>VFJs2$+vDs?Ja4Mj zda*xu${+2!wG|*BzTrO?z6YsZ|4tiYLKT2J@r7pZ%9M`7<{cg9FJndAj}ce0ys@Mf zZc)NtP<~(-gDd4g2u?Sv78Lws%r{Y`k^En(!CzMgOkB8j$$9<7;FIH|J2!nzvutcw zic~`U+(TE#PH+c+mhphqwlMLCUC}D|bPaXl$417Gdfjq;#w`}c?Y%G1oUVf?HO~eW z!Q)p>-2;yy3_}=HhtDLPy27F&JePi37{0-Yh%_xxA{dHA^Af5u=GbgT_yC1*4rGG? z;dx8V$3=5kjjplVxx_eDXCsUOsdUv;zfj88wD89UxwliIjNjzn*Ae8_;; z)c}cAX)MtB+9@;`Sh<<5QC*gMZuj|7Wb^3G99BnJ?Md*hs~%l3E?{q&^O8P&Qt%`2=Un{IGKO2`rkXZK(yPDP-yq<%xgd{qiW4g`V=yuNQ(l zqbMJSv2GZd&JV!=G5d0>=$ivfTWj}VboPWWvJg_Q1%9=Tr3A_Uba#uMHX%vA+dP`S z83<#V30@A&tPOBR5s0CsCY}kswkm%cwmmF`jL@~LgZMt%AizP53srZWw-_zgAd{#; zFHpPA<;lDS$%D?gsHDqsm>1^3(w~Eft^rQPT%>kxUqm~`XPgKA=@dTv>;D{%7|gWK zL76s*FxQnhZ>3fBHC4f;5=g)yVvr;nCDy(_j#i80yD!T%#|6KupQ8spE8DEGoi|CU)o=rR$PV@C|nBMa~w(V zgOJmH9V4D&=F&w!*do+rE|80W2BR4yu>q+SHdSlvL`0_*aUjjy4@(-Dl~g2Q_y%Zm z)Vo=^^G02^;}N1}|D?D;D#r}iL|;bQtqC$gJXCDV>SyP!C-Y<_q8(tKI6FX-Hv0<` zXAYzaFoWZ*;_BhMAXIN(6JBoumBY9W=g- z$>p)7fpRD-XTINJYUcrBh`ECMjh{WkN;W4|KPl)@_n>Djj{?q3@rOlu>ItGRMqz)E zs)PT0c>BNW#T31ovL67)oE=Phhdazv={t6&eBiu?5QuahGJ#DVVMx-IyZ1m^cNBO=L|;97FuN6_Pd~-AF~sWPKsVylCfOoZZnKMjuW+eIUM? z2)w?N!L*^7*#Mo1Hl1oXV4m{_T}Vx);Sj$VifmSBQ87=~`4nS9#JmfaBwP>jT9D+F zB0^WMn3RgzxN*Rc+KOE3sx>@E@vF~KAjq*$WLjU zCz(ihLQ_C-@T%sxdR}I~{>b>9Rmo@1uO7(ucL|W<#Kw$Gzb_YeAW60|BZihg1NPH`QQ(o-U-^Myzhw%HpE-TFyILXyDAv2(-*Z_|P&ab=0eIS> zG)CIL-KFpd`O8`k7yb{1+Bwe5Cgz13ngfP=@yEm~NG>FC#N?^W6muX57&d#OQk^Xj zMx}AM26{~9`=i9MI)yiyH_t0W#S}3WB7y@JbFi_rgZ+2&V~~*fLe`K+KqRyDjqqomZbA*s{o-=B3+8&?y0?kp1$y<7rk|_VZ2j z1pae;EUv=R4#disRh=GMS)O)-M%_Z9Cw|f>E(Gy!m`3(fXZz4h!aSY3RWA0(vQ!@r z9c)r8)yE=%-tHi2gQ&4X30TfkA5kHg`iNA(X>CO?(u|x?eErl#&M|PGGM@CN$p?y{ zus!VyDzl!I@g4_nSbB!KwkK-J^?rBj^oj9pq^~%t5Ps90S2ThWKh_8UkDA5p_|x8G zYDrNO_ay5o50~^*Fk4y3Byb?eNZJ+0C4M)9m|;T3he}N4L}&FFQ+1MlnBso6Kq%!$ zrGgo}84o}wiRtVGKuFzj@7|Sj2YM@yr*21C=-f+0&d&R6SSu*l;2FyKn?59(`bvhjZ8FLIPI`pQ%E zTE<+;r8$68*|LYpQ(=A;94#w@x^kej3?C(KC&x>fq)VbM39qoU7IRdyXfihEU9<9d72&soDcILU@t~m4-h8Z z!Kj5DmFGc^LbC-?^*lR>#&6yg$9%clTOmrRnM4<2l3s-}?N)%$#=!<0H_<2!u;zn% z184#o8Ukn%rZ2EO8JDrS)g-W&jqY2U4DJfbM8Ix!ETr8GnK6uGEx{?O_8^h)W-z90 z@dAgu0P8voY3A1$*pJn_^99qT#TxU*#OCxM8W50#1i%^ihOU!0E$Rugp$ms)sRF|` zEe<$w=~)oNy1!$6g9F&`IIcAouZv>q&3uh|H(NF21aO{}7QxR!#505|>yAQIR(knO zWygyeOx+r%mV}OgO<%MK?g`~3S4x)kJ3_+%2H?zpjA|u(t&Xo~o#g0D&+$6 z1VQaP+4!h%K;5)Rp>EUMw84>VdRBo|O3}CP0YD*HUlU4_#)!on8^qiMA*4~9*az07 zn?fLS3Bl5OOG^&9(3e+ zb*Y+U!|Tk~R?4tO9PJdy(I>9EN|}QC?Ij>Af2<1Mieb&4Y~uhJqctUifS4mI3wkUu zWbNYm7YJK|#fCk*T+FxI<^FewzhuT_t1-0HphHbidWo7#;)rsDdT=lj!u3;kk#Zxr%eW5o_>^CJyReXOPJ#(NGcJ ziIhc6al5v#Fv2mvJv)afAQ_1JCE)gv*MTFwUu42AK@$Gey8aBopI(bQL0L0I8MHJa`-mCot?kF0@xF=RD2hpaB@uF&$pQLx-T#U z4$vDpYIzPsx-?$B@vhuGUMT zgY!G}Z{4tI;amfZ!pnHp^;fTwEO_`0t@yRdfk1g-5cu{ZvuWr80Xvsg#A$mQ6H`J& zq>mv}pkGw+nLfwTt)Ke^KkT+YNt8TDe0`=LK8a<4nD$p6yEV(!;V09X9xF#Bnx;M$ z+*xn2;4FU0G`#zJM#}EKH2$f17Oi(^_#ooyH)VO0c~EsUv@yjGj_)_box(%8_wxi2 zEeC6SJ?K(RAwuoCwR8O&428+s-&`?FhDmtUWUhd?s<}#rlx89HDjWNR3k5D=b3}7e z51fog*xW3aM)t`p94%QP$E-73R%W|{Ge90gc?|jxdOD(6CqHGrSRg7-VshyApymXa zWVU+wMB*9u!mpRK4Yq%!q>X(+W9jxMu&NqWAAt-lEvh}EhmCbq@lK(t6_b1;N1cNi zL>p4HaG%MYq?&(a&{U*Cn8`N!=1!&`FlUiy0LiPXso^-DE(j=M^HD(L7em{xGVNwrnZ5>yt zx|t}`aN*%Fhd4j}gV=;Ra>n5cdwpqoLmJux{%_NFf;$<%&KGnR(_cnuUX z!!UL5R55j~Jo`PREaeV18*17&)hYQ{gYvE}Ipbyj2gl2VS@S-E$F?fAV3Kie~+=-Gw zH*^e!NxFxJ`4Y#;Cqgc9o+Z{7mzwltiFuRGUcpzFyuf9GTs8zk` z(2kA1GU2x{%#q%>s0X!0C$dV}j-3_bdG2{O`as!63 z{S$u2H569f5p~385@yx zx^atjO^+LNAf*gPXf;VF2DPrPa3Qmc-=1R|^vac>l_YX=yT{Psn{o|O7caQYMQ+KJ z`&HQU4Ev~ZsTm6-0@Nl`c0N#Z-wr@1^CA~-R2vNB-%e+OY;;NeJmz&+?$Jzpx7p~3 zABJux1kg+(eZm99hg+8+?_^S9B-Gml-6Hohoe`aPPhEEKtBVzig6@?))h|93;e%jW z!vQOyfj}NAs9-8Ef72ElSOgCYnb_YrEPDOU=lb`nU?E$a86Pi={)Y)MPmqRoHzKcBQ0>Aqi!~TG^ zFQf|O&2vAp?uJ+P_ag9}m?i75>a>FW~c8o9?L*vM93(C~R<|-1zkZ`4D5|7lY$}xzP=H@w(F(NI>u6Kb;(xr6)`(Og( zmo3rB3OYkIB&q3?GCHdd-3zgi10YaF(D+K3dRVA0U5NF{Q!eHR`J=0f4yYTTM!17j zgiY8%czIm@hag?qV-6APaD2gW4L8P_#^TX0&KFF&(zpwCAUu9$p**Q6_fENjA&!-D ze38OrzStW#_TUI%Dk=akbB+(oUFeIUxK*L`_RaQybgq^&#PVUb9@R;9GWE!pv5Qy` z7Z>g67g?3JbutD&ZcWDa$PLg>dPx|=oRikQEk$1i$a4-1 zVvIn>igrwo>gTS&F+ogxpkQl^mjU6?Zf&GN_ zB3F6i++!X45T50vRM};uYDOP6*oQs$ud;EJa+D2C#3h~>MyY~v4o87|cGLJ0K^hYC zy95;zLT2gCC8r-zX25i(#rHY<{PD|v_wE1u@z-C!{XQ!u|9I@dp~_%B zbtu>p@%(^sa3~32s3uG)W0%k?3MWo5a5oO--{-a49o6a|&JC9XRXv`l}ei7P6z zV*Iki?Cb~t-yNV(SX1}tBtD^Wiq60dLPW*FP2kF?lmS9#au^!nS(40^42Z!p=spIR!!)FwN2+?)J$^**d&F` z$x{bi$xC6W++p(Ka1YV=jvfmNgPoKS@FP4Rb^scPta~=9W*sf$p5GpJC5DLcmu4G< z**LcKAPT%6vG&A_So=C(G>6!S8B#MHY^)>k}exax{T)1 zoYY$FHj-#_JLoCV-u|oRqjxmybDRc0j~(E$$;%J(c<(!CPKfC(%hB7$hlDoybz;Oj zts}>k;;L;|&w@=oIvP&n2&-AqY)E*(i~}^XjG@7?rFFj)&)+aEasHK@=Z3+g=x)*( zus(K-LXR*7CCfc_tp>Ef3Cj?pwwhw?1YD511eAU*S#`L>{!5u^hnPk3j>H0W!4;Le z-^})X^++?FhH zqYVUJS@}U3ZgD4zbq9#sx_4A5DAraxL!xSGXOqX$&K&xn&j%r`%zho728%0kErbC< zjGvt(Jr*4QA8WHirC{1^7>s80gW_{ry6V7RFnZPtHDJyIXH$!yc}Y$O8FR^EWq2uo zj_O+n!5-k@5e$21cs#e!nK&$+9k+L3;cl6K3)jLUYcq=~8iTG4a&BNFv<)Dkrb`R7 zG_iEv2&PPfj>(}u9{CYHd}=KIumlzQ?VcZZ>)kg@iWcGmL?_`VScU8yDrqn_l|~7s zKc6br*7fqCLl77Nf`)fPIZx3vW$82B*p#m7R@Zv^_mmyJ|&^|ARA2gf=?QKLk#cp#0@cD zr;oTI#@ndck`UgYR1zBGC(Z@*b$$;CvE)5ZWg)aY0xs7ih8ll#cM%>(PdADA?U*Zg z4kVzc87koSGfZ;qfDjK4RKR&5DOmhbe57@(w9`IH)8o-@WuS{mQB^5)`g49uk9s*A zaNkpXhKcZ>kJzhVDf<67n>b%vS-H1H5@B7>?ktJMrWcx!ff$pq$FxX|gBoerBm+So zGfT9D7Z_#OWXOR#nIK1>6Z$2COTgn=beKHSrk~@U3r;Em8Z<6Q{Rlfz&Wf*CfgX)qWpcRRTOu3{e9ZY!| zSe_)4rl86?9&Rd3BJ~{?zN;@J&GjNzE2WL}Qmg+EjSTt)by{4n^BF;QdnfDu>eK3} zy1G>RsfW~?kb%*$J~Wye37nN~TzM@+4nKW6u`e37M_|wQOP0Oh3vM|qV6Rutd07U~MA7w{KSNu{`o?##B=%kOS{+w9F> z2UlaAV&aXS#j=Fa3m{XCYx-g%F_J5vDO7(2jzUh!PYB;&T<3?i4#K>~}n?b5-hF z%-QtLMuF?(#8u!_h#VnI_%>*KBXLzMf;}Z|Yzk+`OcDv6S!s(+TAo`XwZvI-6%b|$ z?-xu-ms~{GP(1gpDIENBJMr2!}jwJ(o^=>s3!O_6?-UGP+a7nYK|b;P&-W{5iqpA$G(%1^VB`-F{yjP+nR3 zqwT|I=$l8lq#v><;Nif!XHY^hV2PkL#Uhkfc5>92H+)cZHT{P|!m1S5g@OPOvKu}q zwp!zKp?q)xj^w?XuUG#C;XpU3Zn;82jd9zR4xJgXnr@gV!wgJ$_W|{ltq8~;!e((i zOZRhyt@THX&%|eA!0@x;LM(|)9xvsra?&0s?yh>FQ^uqh$wNXMx-1(C=?N~XJyY%l zr751p5d$7evq``MZ!DnO<{Ww#y?1)M!TK9taC8f6co&tl)8x*Z6y8qNqT-`d@kyMj zRfGQ2CP{EPh>CRVMe9u#@NQQMnZSt3$An)?#|lKm~5=3PhFOCSg|M zSbA1&q`<7GEY1~2p$$%9ab&Bp8dO(|VI@62EDsKf|AA;vo`z>=-DruP%H@8~HJ7Ad z(&WH%Jqs-%XHTC^r;#>rc7{r^bcJ1^QvEj#@^Q7jTMjXAu+aF28xgJejqIc`3n=l+ zlSghD_wYU3++c-UmQD>sY@Y#J$pOl_yZ;^8_K)1za;`C<$?RRrDUsTV=2gX>6C@3i zPM7WI@sqR-i3t^3W-_}M4MFMd>fh`xfuwn`;it||0K7(_C%>F?2+kQ#`8gVUkgSuZ)vFGd^Gl>)6i?StS73P619U>_cNe;-3Boyu?G!?ZR86seZ@YAkgDs z?7~qEQ+=N`i!!+#$}-IeDJI)^x?{h9yd8#&NAhF=dyn0b2Hq?q>ZdZLMbhcXnG7p) zp7!uiFd*FAd9s4iSh7cYQnv)HSqUQst*tNx)DsaZQ; zc#{?$b{k=q1KBl6?jAFQ8O@r_zVYPr>^Zn;{m{v`j z5N}}lAJmG}H?)UD)ty;VZ5q0b0{(}A5D!7x?ZA+P?4cRa^?OY(|F19YJeYqg#D z5|hW|24nX!{tx<n-0=`>mlMpYCqg7|Y4!J)|R{bU*C+fLudNoTJezBYxewBy1B4H+?ZGlxy6UDu}~R&~GQ1qtC5(mmL<61LLY zBKz)V+$T;_ITO9Yq9I*Kbc`o-^5WMu#_>6Emuv#bVDQ@vtqQ~HiZ*SMB{iE+o{c)L z0%at=dsb+Stl8<}TB>9u&SrVNnqv^juDDt4u?nV5=&Gy(>sQ`5lxA>92@vj8{(*hq zQP#gdH~b);h__4LEr|6PBb znwF|ja{m{%yIZumE&k4flN`pSbtH@QC8q|u-+*cd9{{Of9|_%(^8;0lBxo-Y^Lj3T zYrSwl0Zbl!dBmLTOQe5^USx46HUGJ8gm+*aT%%Lx5Wz{5Hjdy)wXCXD!#k1iof0*= zR^3lbo^|)46{pPV43Z=mFCR7_g7GzYexGb=mc`KxEjFP2+T!iF9$jZENr->pCK9A~ z*)aiC``Bw(dGxZdg(!O6Z9m_Eo&ZXc%e6S1>9E^Bm_2lsaPsK>UJ`ILyt$^G7uP^I z=G%pv{tnTuE+#&`UftX*_e=bsn;}IPJ;WPBm)y5q@;0*^25HJ5ffDNL)E`iKpIp2dwf3x3hT%3^m1#6pa$pChb%>&hW zsk9Ze=cQ<%C7Vde9juTCKhP@#b^J>qt#om(czK#&%VEpHH8nk~NtL#Ss2dn1qM>7v zJyCSHGR%PgLV~+JT6jc&Lbub6FI{S~q|fJ|TClpLg!YG!X!UB_0`1a17=hs4@B42w5 zIK~Pi81zS#{IQq?3RW%-6#Mfm&R^sjvt!=*Xh^Q z<$1y4!l0C=MyPBLc}Q;8^q+phgi03#I)aMJpMLa&Ln-7_YpyX47z_wX_wgkuXhiiH~7ewQ(VXXq81NC zyBO{05Lf~W+i#n5A!_ls$AZ@~&Q))|R8!lTKK|Cl&GBA+tiTd6Sn9rQ2B(=gP$&%?X!77GeNw{tX5uiZ!F~E5z zgb0ul-^_2&U$Wf#zE$HS7HC9-iBm^pmEFQZ(H|KmX$OCVGQAMb4!oTBRe2drjp!iA z4uL4n-|LQVPJ?)Ph4s*ao-1DPhpi-X0LJs}^4k&A%ptd!#|1b=BN$SiA7GoC`ks)} zMA?W4Lu6)^E$qeH4Pt^;3%e0p5bbLz2_B=62+dqon;&Frtkp22vrIus<*aRm&_AofSxEvHu)9ODWp zO&k>#S+ap@_#^ShY(|*^YjaK``lTUS8mt!?S>02uXtaLH*Gt}Oh(?ue70N?z8y+wY z2=Iv>&MOzWGtj;;`#~5@2;FsPQuvHnf8QS@=7~@n&rgH02$><)Bl(FO{GdDW34fpz z)G3Kd2hqZ)N1W9b3tU|C%^Vdvfr7odz+kL?P3}5Os89g}T_Gq{-FkyUcoZ$r{R9_> zIn$=2@Rl)5!QX;4_`LXdyWjvRr`jr=gRWGQn7j~z?i87i0k2VJ-lFBt+BDd#(jcWO zCK$GkV+NkcB-nW`?YIj(dnG`53VfHP2Gd*Dfse0h83)tX19}K%3X=fpg1eL~qE4Sh z(*}sWol^)ygzZ@V_ebO^+O1I|BzZX#CjmZsR*(7>k8Bitz2y2yUS=e)cO~Fx>h5EQ z+JF<6*rWSf#h^#<+5g$`$e1xzIKCfUJw|jpi7}t`2WB6x*2{g0NR^04v{SUKEAVue zu1(ziOl((fSPquv#fkCBzNxZM8WqHsLg7f2&goN}RS0x_BmeX99lj@zwYbJ@n${$d) z(LQT23pgA6!`1GU_ND4G!Ud&emA;8KOJbBWyKwtO@oITE?sxYCdlfP2$^o9ZwI~RJ zJt%)Xd3p^MsO>*K$cI0W?gfS>)IT3oo2b6h0}hc$BV6$MkOmebeM75XkP^=xXIILy zR1gMzIdaPjT^OM!xh|7N4xKiF zzru<9p^n)*(D5FjnnM$+nh&>D$|Uc2<<`!5(bN<|u+q>SIH%Rs5#9*;+85sTjmI3R z3VOrLp}vaq>0eUnGtE)L34YLJb1>dG$3e|(s@bUvvS8&o?X-)pb*}_&D6_9Mk!X#% zg^s(mono7n#8kh_6Bg@~klg{Dhy+wVDkt<IkT;bfAq`r7 z0@TeU9OnTuV;k4y;nj!r#|ccP>=37CetAZ~hqL?E`@mOez=225AfRWselppsQp}5?~>)9LViY_YU?VOqN*V z@j{Sb?(8ZLh#%_-jg-6E_{^KlsM&DzRUlDv;$5>gikOkH3t(qJO=Mv@X619r+Tu%j zWqR#Z_q2fn2O~o8J_a;?bgYYxb5aLnD?XrJXUL(eRc1>|roxcRgm+a_a|itZ#_8tR z_LRP(5u&)5Z?Ui*1r!_?D&zBGu{<^HcNX3NEWvYbU{_^ljp!`oxc&F)!jR|6RG{4cF9wyVD#@0G>%#!-FU!T>4Eo9A%*Kh5 zcboE!8iD!ny~LVv&u(6J`=AmGjFm}3sU-ZE=u}pg>P|M|vxg~4=SY(NS@Tfi2J2uA-91P6xX}3gFw|ANZV1Ld zfB#NIB_136{e$)$lo-l*R&R(5>#!rJ6q>S*h4@$_>jr zWh@>`02waxqA!0Z$y=)Gu#x7gr{9;0J1q6-P*ERZT&3fVAcl$2@GMB6_=hD)zz$H{ z-(yY+@x%Axq>y5MAdeJ%==j~rT~?Hd4tQ=a$S%ai&0sFRx&nWZwe;q&I~Rxn+W7z& z!l7Vf{||yNR#t0`lQJ>S)g3$NlbUvyxh~m2Ye-2gMHJ=+6-4k9M(1I7r_3>z^Q|`= z#BsMQX3&fm#RmlWa3QhO1{oEB@&RlZqb}XXZCyGnF##`gI-m1B(p^uz@fj`jTfRrF zZPnGm-a9AWU4O~wW;?HD_-Y20cx1v36nXV|D|iG?m}7B2@8@d{Z$Dtv!*Pc73}VI^ zc#RB&OD^vd*t|JBOXiKe`#~pEIrQ!0rH^nDqD#qiCM*ZKA%ipeGxYV7Ct-{Y;0iYz zb_}uTF`5^uC1K<%I)e5Yvoo(p!-Jm4PW?5Tu6HWPxw(6GdQmd9E#xG!bFp)wt zg*7TG&P7y)$vu-|GtR7OL`Not>7)WYeZ`~v81v_BmOyRLhm2pfAq?lIXhCRvoZc>} z=4Puzo~wq28ZJWKK9H$KrjX{F^?(~pdz3y78SQUJdh6Sy$#Tcr&#sdb6drcpZS}i8 zY`&dAcW%0|HD{UDLVoHf-HAeXJY$51uu(A42w>*livu?GxtnKEthTVz-*Pj@sGLP& zI8b>0kO&M49or~S$YMj?6JyP>#rm*p6!YXn8%?BD2bjJ$uE4B&*x0$GA#*JSGf5%J zW+Hi(uD2UZ9)kjpFv8qeuTWt-(A9v)m5E4jT6IMA^96jR($3LpK1pcjkRJ`gyGn~L zA+T7xZ=^J~F4Kp+%`K&vox>Y@-nSb6{1@*EKYDSnpKtY7}yF9L!GgN`{73%m( z43QH2ukMg!o;(s|M3Zh00UvW*)n~02b{@gBd;>mx5PK@M($UF61Nh9AXdw*>k!OJ! zq|@`)7$p~oy%4CWy?sUy4Ym;V%d+7zMx^uL^)oj|pCC+eg|X{@%OD&Sy8#+7*7d`SY^HY`wk=H zv4r8Uop0RWM__)4)9lDI#DmX@mI0|6Sv>&B$QcFQvk+WzXKj*oRm<O%v!)(7dwKhxwq={N*$ySC0YpJ63jdqokQn(@`8Q#8aTI?8O1X zPzAN4hSZ3n;qRlsL`_4<1tmq`N0>|s0wqApkPQrqpM@a#3@>a-v!r;r`Kw&v458m3 z3X-tfC!kykB)3n;CaTmVYmnzIWKB_fqVJK-H} zA`CA;kbt;KTl;X4!6*$fkVsj2O*+$bYLFoNOf;lilV|tvMGir9wYu{c#q4A8diHKA zTWcw&37N!7;D9P~EgWHA=cTiv7}C98Z9n7xF6W#2bWWlsMq_80@kMIPBnWTd+7&tV7pLr9JtmKoxs9fK9c8**-gPs*2&H_g?kO^4yAA%m=8 z!bV?9yPS*nN*CW3SCE2?aI17IFqYKRK8KZn^eSUcjx{My3ms~Yi!A|VK^LppMP>n# zL0U_nqA&WxKQI5s3&+*sRiG z^7{sU9#|2vKo`q`U8^1J#k`oz(6@*?dYMf>I>V14h`@Szfj9hba6l5KA%WNF;t2wz zKGY)hO#Zom3^V8m-xk(N74tJmYDuvDaK z57}LP0d^)Cni{an>-v7N-JYw)SH}aVsp8Rc2utIA{7zr<&UJ0nK~oPz>ev-t99m^d63+-%mHVm;X93h+uku_;WI`L)(aE$`OVzie>zUNGP}p-xGNJvfq6x zv5&{&GM&xH@_n^+Ap{;QR#Af=?~Y2dRCL@U&qOz`7u`7VBV#ZT=cP8lPDW=)AVRIt z^Tlqx2H^#TyqB=7+XMD(ZD@1wD;0^I38A__FtO^$40g&!CuxUG!eED^u#q61UE5{# zk-Nt04*sut4LFYM>))dO>t|io&!=2ptT7JRKabIz92>Lm(mkgSTov=lmDZ*rmdn^f$|b` zX%L2nT%-$z2EXl0c}p>dyi7$bo*cdbxITZ4qO0wa`zW$giv3x9LBBTEK_Bt2+uaeA zM8=~`2wX{ez51JZ0AZ=K3I0^r%kjvWC4d${(CUT$t>ZRJ0>Qt+>;r z;=AO0`bpBWFgW{;e0pOfGxNK)5&RnQJA*v-^2K1h{+A&qW2O|TJ;QS-O4jrQ!{ZJS zsnTeT50|_3Vd@v7|Mge#_#aQ4+Tt3_=$=6-6GW47z7P{wkX)he`(MA$jbBp#p4LfP zhyPr`A;!v~2h)5GZ9+|PnejY%}cj#5^?)z<_yoRuaGf?3~clUtPO>Z@xprtjX z+TWYw?;1=(cOwlO=G0HWWyWk!rHMn8%;!Jw^@6GIfvDGZ1i}w5bR(X|D4NyhFUQU9 zaP(P89%SbbGehnS*BFnZTs<@|s$x)sUvN$Y0xM}-_6?T%LCWb2(z9OeqYR=tP$dFdILmN>kut#Hd`i~&z0_r5yJkH>olDimk`IQz%b z<_JOKTsqaNgBkcNoDBstfLC@fc@(+2jVurF04ncLF%uI6n`8naM*qO8rg8Zu)xhGcO7pO(`UplXa$@s)YzfUgMjNH{h$&My9*twI_YMphsF$ZFh3kbutUnk>}v z-O@w^K@U^Dw?NDMcAKwk&^v zmK-1>WvaF)KJ+9XTd{zK;U9K=;Tl^)N|&BBCEt_TMU^-dQVPV`FTQ`DOgfu#oIsMx zN9?%lob{*&={7l(+%hP`o!Nhj5DJ_+`4c2J$h|py$a%!RZz1tv(6n}+2ar|N3K60- zbxaPPSpt}ofBbt%JjqT1epS)==Ou#d|;usS@K@65NC<=qjj zn$Ng2TH`(lf?YJ8rv$-;)f3yAUbtj})$~ZE&sKJybgb-N2n>PfC>VMRB*A@;0OMA= zcJCeH$&KeBJ5SU;XFw~$w+y6=;3W-j7A8BOfZ}plHc)B9y##|XB? zb;78HzHRE!Z(su#u2iNjU56aG8oU}ExP;$tVH_Dfy}(1dMpQhnT32%}eZrau#{3N3 zsTi;qd5aIGO^nF_@4(d$Mm0Mc-i~B8uK_U+^W#%-CEeR0TyuiFnM(I@hN_TU$cQo70>?L~(~e~A35?FHliX1`p@-eQ>Hj8}j>;DmAx zp(`H&&pr_Yhcg9}X1V|L{*U!;yZpo=CcGMFvP>q<)5@yZgt;*hoJAjGP=vek2U(I5 zR(|QuKan~D9?5P`qnxsb+;e%_9_qZTN=jwYii#0x$V_QjTova*FdSFbw3a)If(PAg zg!(;PIs6h+hz93~RZoK0AN8b13(rlT6THdE+OOX{ZBq&FdzdG zNZ-5q-h&3oX_YT7a)&=U8qCYjJCMdm?=mTwxy$S_HmWtJ^+I_g+MS~S%o4n&Z}a^% zCduI)Lu}E@%DJy~_tr!&Lx>iezNneSSY=lIBnG9v*q%*!=xepTDtaPEFxP3rNNvx- zGe0M8vq&t?+2ntU|J{B=w*;)i;ckN#p+EjW-T4u070%-p`>Fp8Uh9SH2~G`AM^6|mBow7{iiEiPJ;<8h!1lS?-3ioM2?W;Q zMZT2)BKdFud*ihiiSgZ z!(9t7U>PGYs@*u>+_VS4BO(J*<+A9&DByq;0&njQUqIhS9{{J;y&;AT%sGO~oWnw- zz-l40U1N!>yy_-a68v)WumaWmW@f|n=+LbZ$7Rb|=)i2KE+)izRdoEfQ1?15X+TL& zKr+ZNS#>C)`C>B_C@E*Y+dP`$9*ux@&P=MC_tFG*$mcS{3uGDJBzi!^guwtp&cG`G z$-IUyoo^S2q0ALjUEa|0SAAiyR0ZXjZ2WUPdxr4tdbcU&i-mRtOA*sgRL7I|NtpWh zsKn=XSbPDY$J3;jrMQ1ZCtJw)#&aE6z$dqQDdf<};poYTX(@^%L`bh2EXJWOHDIY~ z-XP(F=1>4hI;=9HXXu0V1Da}#DC!Uqu4Abrn@2V1sk};fB;XR-fb+_>p%Py+0UW;P zwD3*R?}qLGoRkgUkh!80!$u<=pjCL;XOT9ymq1!XL<%wZKfWp- z?R4@W4PlX7HW_qw;vGiKr+%9hZx6t9_Tq=ps7>^b9dw`;O05Jl?sJbliu?07ULJ@vB zC7rK7?+Pa04;GyXkXf;d0eEQTG6q-z#o%;L#JOt~*0c{qjLTVpQ8)Pg428v?BkN{e zU;cLD9GkrAjD<5MI1tNnxA0Sk=5kxP>lmW$LKS5k6;yfl`U=?rj`E`;9$C@(wr2y# z7{DlO2|6`2YKdq;H~$>7;pxSuYNCTYv@KTi4Jps)?pd3n6wNYE$^$YcR9Q5kL^${m zW{}hz=jz~l^ksS~O5dzHdKdTyyasEE{6Ak=_(xlfNCyl7h#$Vi5+>NpR0xjTxY{vu z6~vrq+~E2~i2;eO18(#)9gs?nJct~ov!xP-r@{F+Y1jFe(qRHzm%h*WzaaFbe(G$D z6>%@z_Rx_B2nL)8k?Jb{*e*|VCk=clBW#^BSpq4Zkp# zp*b%VE)4JMcFf@XGU!Z?V#vu7YvNmxu@pa+(Q}s>HnL>m(N~`iF&OV{0>(0Y-avH2|R@3#Y&y&={BC@pCK2eqtYtqaQ zZ7h#oGK_5Bz!D*-Q9!Nw^M`9l=P zkf&Dci?0q+Q0y_-)Q^xb6te@A6N_>EM?(Q!c8$njW)o)CGBoRIqKp!u^2)}j0MLd9 zg0>y&5u?hQh=N*zr;x!OAp(suIi&W2@3f=hdewURUb~`;KzL6jm0-pS`Gqq!I=#i2 zeDVX)p2?u;ZPEtZGY0R8hiw>%0pXbv_)^TPA>kNgt}MXph0|skon3?49QI<;hKO35 zLbDX7(gGwS@z9Ul@Ls_66ZuvAoZ~F5u^3^Rp{lrg?(%*YAv_ITKTKyHB$3FVbTu{_*h=M7_a+#OPzY^V=_JD-}S+yHZh4=YNQvRUN(}FF-xNkr*)pfoT`p~0%V{jvOMO}NrrvV<`g3_> z3A~C8yV2dno!fenO)G}`L{`Ii@}xZk$;TISINE>iFrJxwDys>Vk!{ zk#y1*{L#rOpW$-3_RGwxRQrWyQl8Uc-hO?=5Vsh+dESiQ@KxC#tR(_1!c-(Iqxe}S zCBe^{MyN0=cC(QT-pN!pSWu(xhgERrIJ}X;UU$EphC|?&`)KqPWb%YNpD;k-bj|Ne z;%|}!c9`_5eHKp_9NY&M;MwZBym`#VcZkOq^DU;+{SI3xb$S@uLFf9I9GQB8QkgMiR zBa1*u4|xBrucG)z1iDfg%prVZjw8R*0V$!pk2#M2uc*IV#l zD~4EI-`!?2P+s2Ob6wHy?ija){Qu2eJ&YvBbsmeBELpI11}K2G1o&V}fB;F0+r7Qz zF}owR6qgjq#V%npurZvS>Af9cc4s&(}roZo1y{cC=-96nsv-Hhjuji+$ySjef@Auy0e1Qcjwdll%{R1Z9#pTYfUS&xZ45m#!)h6i3;;m@^lUFC=x@^@WVU= z!N}Zon<7KB2dgE?+-T+TR_Mtl?lGue3Sq#2L3vb4(F8R^Iggn=fi6-wP@r7TATA3A z3)tHOE{n+ed2tREqb$SLxBn`W&D&67rzeZUg$DCOXe-FO;;C`sy2GHGA(LW)r^WlJ zoS1D*5=_6zgZwU`K{4IJi?JS^1EI|Yn`3VV1H~)AM>PxqBSG5?HnuxgN!J;V#b}>|gf-;06n8*TGkU(K{ZY=QSzEW&~o*6a>XsPi#cj@inRVYC=ZuAv+i%PXeE3PiGv)dtMYeg!4E z#}iirJ3d`TZGHas#8?yGUoC6FLF>s*^*LLg84$awjQTgI;HpT}nE+y!d8lEReH`5! z@OygYKER4@q+>@xn$c47$m~Ng&gQaW~0T(RkxxE|?Y^ObCq_xvP z`@xNu5|xuNORBG~u?2Usn|MR8N{gm=z}72LZc!R_c9DqmSu2fJqcdBNnuz-~Y(2n; z+|t-GG&6XOli1W!zTIgRM$<9^c(5cP>LJ-T1%@EzmCGILL6wG7m-ZKK?XCd|?CEP{ zIHfri-q!L-HyCdo$aKS`5Ry}}Qtn8!JSDfn&?IlLD=VcLi~0j!=Yt`wM#5=qvjtmU^j%QHdkIWGRKT@e?P?a4T;qto!6X70O zRqfb<5x#$2TpJ922dS7t5jm;>4lvHf&%w7%XnbB57uls4Yrhij8jM3>`a6v&NE_rT zpG)m6OqQLcM(C>G3$GCk#4e$D1m}2GN0FpIT9pAPD8m24Qcj4sl$21#+^az`;c7rblPGNduC0ckgrE)Ft zF3tBZo@sDOHP9E?Rb-A%m*n41Q&#yhY%ygO0{b>WBACZ*kZX#|9EvMy(pE!)BO~^k zV}dZ0?xWd)9AY@dkC%jhrFmPzR%@lUtJDS?7RXFg+jYKzMIx@5#x%U#^9Hh^ghs2( z1aN$(buIExtH1%f>TAMETF#FjKwnuMRBYR32vEf}vFC8F2<^l?DoEOzk}?VhDPkM^ zQ&7YzQiIOp$z64W=tjYkjEr2A7x0RAO4jd~%MEy^t%cdhp?as7L(PGUxvJN;h zX?%-NRX0d#XzEV?T0-x+uowpEM+bBok2e^7_j--`e2KhVitWpKo*7?OxDn=qCY+RE~{NbOj= zsL%M(SeiPdoCB5S6v)>P22X*=W^{tvi-z!JJpP7R{Aw1vi23mFb@d8hfN$FCFQ7By z^~Y?8CYDr$g_#gtS(C(AnVX8gsRz$HS1Ypx>@yiJglP}rtGSq=eptqau{3mrfd#(V z$2z!Lj?c%1+lQ77uB-+$Q0Y5W^OIfFaF=FCu2hYErD2j}+R~xim^yi>##_GYOn0p` zZ#F`i1V90;rPP6-pcie{oGYaELTH4Ot3tUlBs8P)cKLng$QKJfX9e zO-I@-=+wG zdMat!nN}Vv^-FlEVl^pwr#ukePORx4F!)jq{S%Chrglb=^{`%K^(0T#6ib0JsE2jA zU|%dRIAS1Kflp#J2=Xr0ma*oz6=_f?i%=JcBJ^oXy&xc`a;53~LeRA>s zqs!?POKHxReXjt8VQ-#c=&n|ek(+qhh8Yi~RvzvnF>_rG%!tT>5xu{FIipzg$g&3T z2EfgP^!_V(J5=CGx?OBkc zSO`+8<}M#wZIZ3NDf`h-s!YnqRt|#c(U1#3oKZG7vU`L>x~II8N6|2qvU(W%Hde=| zTr!r=`4&_Erwv6uCG}a1)nt4nB8fUURVQjPO zdC`A7o-bkGNtxSda{Tzzvtw_5*p7v#5(M!Q673mc6cQmCCZ4RrR+6xfrK??piLM7G zw5O7-B<2ul4jWrze*-dRE7+&~Rt|4r=#oB890#Z0;Y6Xw&`P5hMu9s zq`>o~l@^~7a;E{2GF`!M;(A%m`Xjs3jX>b3_3a}fG=yDOQmg&83^{6{U%?!{CbW@S2z*rhV=+EEa%h=hK-K zIg8KzrU=iTM?4B6{E)a~e9 z2%=aU@}-o~U;zbhu!{`fRkcd^b zYpa|d3}&-})eg%|VUWou>dGaoEst05XbQKVqvR%nxY8F|<)d{Jr z73B?bspX(4MOI2j5`byJI!Tg|3pOInu|#Y4o)$pzd10=v#sD(*XVZlQaS7Xq376x@ z*J+atQUN)v1h-*HNhy7jE|d^7+jugJXmIkzxK6nTsj&iPMjeu#)IB;$kdL|a1j~np zzYUIAMa!CvYQ?2BxFqpzTBR_qSi&SXMv4eyp@$(8|cHl^j`%8?k z$v`$;*`A@H`!-Na^RwNH%m@UL;Yv0gyZWa-DSXj%Fqg2m0vN^Lpks$fa&3$h8`ilc1R*zP88N`3%0ND+1zyqip) zV3RXZ)RZ+*KFqvjVR4IKDf@^PRUi^iXfoYj5mH1PT;)SuXjRPHh}JiTGB8kCtc^Pu z%?_c@=wKKrP;X_r5c+e`0lX1Ed$%A77>$(lLr#kG@_AVdv%CB}{8IZQC9B)z$n8(3zYN?WTmNt3fOfBANDxJsR|ps6&R@GbgLB)S7&6 zaQ%>a2Isb{A8)jP%!lG$n$i(Hr~{`!xEhQeH!S}fNs;0V4uKdt5m2KiEP*9LE(r2O zBZbV4Z!2{y*+^g{Rp!T4%a2t@b?^MYvKa15335v;ztJ66uKkm@*!%%>%=sJwk+tMG zjO=im<*a}KBXrv{AyT)@+_g?g&Sph@ZJHs6u}Y$}oi0IoD)WS*k5K?mL{eFtuyRSN zZz58^DfkbM>YHVn{lSeMh~Re_5px>RF~j^$2$130lW z)Kfq*^#aTVVN++w1&;IYN}ORIHdv zoqcb>8lsR9sJ31uwaFC%R?urDUnfArcge++7$T+V?KsNs-=j; zoh9{Z#eS&0@G5I2Z`u2WQJScN+`7*;_gC2_o^ z;bk_-vhXPJI0`VvI2_wPNvHY0Uyv^O+R_C;#8M-T|qme@ML@-BlDyrGw&HG?4&;|?c? zx&qe#_7a)CqDma>y=|gIx}f4j!Pz8A1Q&2C@W!Z&nhGSKrL(EPZuo3nsq#z%UxZm9 zNu{6cEmzHk?Y$n*C!8Hiwo^fX1IciyDoN19#h`%=q~xllNY*k=gd)F)N8$e7$ME*) ztI{<*T`I1bt~KUyybB!}h$DEj&nP^U%TW}h55u!014P?Z@&LS7sPFfSQ(J@=<(-V8-WpnUvndzX-LrmY!swGRYE~j=l<(T3T*Azx7#TM;3WvOb) zj2>3j{SMJlOdF|M*=v2&&Lm+J))TyfZ@mhn1Z<0t@t8yW45B)MWjx|JI=MIT{Zdwl z?YZxoln*wBrKorY2W0c)1hD48n}mb}`^02ndphQzWT)xg25~?-g28Ms93#Z~vP{j0 zSQxX?nqI#aWM}0?Tssb?5K+S|xM69Vi)VN;CyZk)Ezv8jH`)gB(xJGk%aXDO>wNsZ8Tiey@sJB=|OIB?%ew{k4vkG~N8V}cUe|_m%h$R4BjUQbsFQ*G9 zWY(~fE**=Q)tf__sQNFK3Q_;NAWf_=mhB>NND()atj?!PP?}1IZNtKjl9$VIJh6~j zORm+4%nrxOE5%2)Rlp(jIlJ1cnzP5;Bp(1}#9fwv1foZmhPPP||8B{*-@k3FS#1cX z%6GCx8YZ}n5Xb!^NWUcLt3B3CZhixH8X(xfNp(WNKH;gT*$g5G<8O&U@tG^>flP!YCMiv6-uEPhDl-xkMLV z$3I%UZBzpKc>;8W_{ONx;Sr%SU5$z-eIL5;?qY@=g@%%yg`bE)6M3t8Yi*fBOLmwP zE^`c%5pkH}L~&eottGz95N|TSA<8WjZIgVq_#_S`KnGrmwV9*Vn;REbat)LlrYdq_ zD@uL6D$>cvhKZ&g(%V@)y<85?a9qya@j~A*f$x0Q+qs%9i=9VT*E=)B2q7~5srl;c zdOR6@b3F22J$(7-n=Az+r=!05MQ>;H^a{6d$K~Ap^0=5UkRB)b(8q6x&K|IVe>a;f zdpp$0dpmf$^JwbdEQ(=oXIVVKN9c=VoIPcF-`-Af0g^I6&XtQ1uBM-Go8houJQ)@< zxPk{~lfqrKKbX%4co<$o-}5@`1}-UG9$b!bFL(8`#iF+}oL(|_b#K$xmvDjK!{4X; zgB{r7s{x%Ty!`0xk#)Asj$dp+K_ImtEcK+{YpO3Qk z-}mkHcsn~kZ~xc${dXUKJk|bx+}D;Z~wA8t@kxfC|-K}@Q>VQ zw*NEyGpFFdV2K3 zFW>RMeEj|c-?9HX|Gk-Oug71XvsHZEj&J4NPw~HP|C|4G?e+Nl-=+=n`~O$g{jPrIY8 zbN_Q#zuJ%IaPu#i_CNIPf9Tumc~$MdfcEUa-v39w{f~V6_w)yUf!lf^fBZ5UbA^P{ z{?zrm_c?dGL20J#v*^@1Oqh)BYQG(EI9_e}Xqi7}h|dLmB?aPrKd(QP2K7o2&WcC-#9q!@n#Y+noM_qTZ6v*`D_2;}>xI z@>BMA0n|gg?CFp6)?uPQ+x`-F*q2+BpVH4xnOHccSC3OBj_o?Ju&8WW*J-_bb?w!o z+vMVInN$JgN`wE=r_LEV(g(v*i!@d4J5M`k<6DOxH);O? zr5Vv4`_4G`#(lCsnV%UQHMY;r@DX1RO};aGO~+09-4pt0L%~~<#*NHN?Z0lq-RA@z zU*=!1|9}a#N37rV_-lWi(D7y&#-biACPjBZ=Uv#iLJp~$ZYo{~B zog4kl!`$h2d(iJlap%7X0?e)bphr79Jm_D8Q@FLW*`wb~54-jBXutoz+}l4KoYk%0 z!TY(>4+F<_7^_(L9Y{^3Cnc#O-9hq$-D z3lfD}zXLq{d9eq7dq@s$?X>dn=e8d9iF%Ct7Dy^??f3Q2x5z`DwI2TSJtT3r_CNEG z=Uor`f8yZ}H}3D={(&C;Pz%$nn>>R&#<4T>i#gc-d7*=QJ9j|>cWeKfL*405dg$BQ zBi_&U=yzWaf9MI5iJLr+d&m>yk=&>GH?9p$whaVPu^!v3(zkhn<+j0+jfk!@><>7DX z9^?MFhhDhPa2xkmJmRI3hu^OD@Sit4`hD6X|DWQ)zsaNhgFN^j_Ml(t;Xmhi%xkSY z=fB{5idhP7&m!d@bI4- zJoLqVO&a`f|J>tY|6Lw=b(Du4ZuDs9G!J?DdC;pp>@&h64?sA&>eUbUkG7Qse6k0B zYmf2j;1Q4OJn}=#W4@c^k++}lSl6}m@WXvP>~k8d>yF0V>wMk;ABu*7pPRr>j`DTz zm45&V!cTAd*XLUg^C0q<{0tT0XRV-r4t|LA79nnDyP$s${T}E$!dL$#x05Q`{}cQH z+s_j1cM<%*0YA3Wa67jn+rI(yMgA3nAHtS?Hp6%!JtXMpulVx{_zCt~E&7FJ1O0S` zX5HkU4R%9%`TpRL@N=Aya|e97$+H#Ock`12M8Cl=SYO%i-5@{8Q)|hySlIu-sjTmx z)H|F7fIX4FT(l$Y_P&t++y%@p$Lk`|Z?51M;`^owdX^=RFDGaGq~fBS$)$NEr8zmi zoIxXoy@X}Lra`LB5%gD&c zhm|wB=M2xuFAh!5!B!_{2lIpHG3&&esBP*OZKhsikwB_+ir&|~w2@0mZbAg`pks-Id?5So~mUywa%l8~So`V~&g zp42?y2V@Ki=1cW-As`)GC=11yii_#Vd?b$!G61uGnh|evW@%w zFE;KmCNKZW=K5JiCTd$;1ff`#UkZbsojrvH9phnKamm!YlCjFTIi-2yX&4J37>7;7 zug&mEE$@gym@y!^6ink_V;||6UphTh00|(oaBOz-+@|@S-xK_3GKL*=JiK(GYgXgz zGz^6A&WWrT%vX>%Y0!wA5$QSE6f)lF4#pjvbVLR?DfEFhPznPcJ25zgf)*?*G8~wp zCyWvpgY#(d#L3x(&9ln@PL{(W%v%S^o)!c}(eC#~oWW95maI)d0Ay@g> z_TJW|At2*I+JYYXIcEzn0MMJMNUy@8$ps~)*^{7&9?fh65<9dp1w0I9;rwZNIpfPP z#Pag5Dl063>9#rZWUsu*lMBZeWlw5mk_DrjFBEDIkoMB^N1yE3s z!{*A#D;k?qQZOcOVqQ^x!I&U~O>f0gR6MpI2ZE?zczVt-8W-@1o^m1{lQ%YJTv<_m zX(6muV6vY`0niK?GrEs2D9wQeV95ZpM02xcue?wQ0w=rqQ*zI7CB;Rh&Fw!lSaj{M zVPR2zNx`IoqEZjjqEj`)W<5*B6|%0)Ttql@#iSJ+IBa&wZ7E-g@>V_@-(K3t~r)+XT4rz=g zkn8kQ^NS}=%qzvkR5oZn0@s<+KF#xn9<-b%RdhFdx}gK}H$Qb6JvSqH^vs9tE+_u6 zc|nvPCYs)+Q|6VFTSvLmg=S#aDpq_hdtP3l&_ZMA@SFtGWahwb3ic-u zEIEU~P0oiIWfIJS%^MDx&%mtB&4_YQBSz-$kE*d(RcRGQNUdr?(IGig3&$1|Q5f*# z*Nh?L{Qo~_DrRq9CN*0C(vghaj3#;(ObWra()O)AJrHrOr1xx#$ve7!O)a*KjFI54 z31>R&-<(OCy9(xIIG-vs!;0!yp_z8%?n!vs<3TXm2UjlJp!^ZAx9geH>^Olqu#U6v zu%c%(HxhEXzqn{BIAhM(>98h(gE*X8o0m#paf$l}umzm3@N&l3nuCjE^khuO1$jlK zlQYukh>Vs)VxE-~&z`zbA3T15y>n?n_AuIW4;_w&3%F7&?JZ|f*c(9eG~<>O$i-PR zd{!J4ju?gGZRplKdr?}O4BHBEiijxz&O`M)Y^1>do4HqeB2|yxQv{)IVmB(cv2{@1l&mM z&HwiUgy4A)oY0&+Np$$k|8VTwV{+lutg`9De{XpqyZ`&MH7w_M=RmGUlN5fi#n5|{ zzuz~73?19^sW1<_aU3wVV7FUYGe1o%9uFz+e>Nl|Je|my z0PCa@n4g0A;CanGcGt4dsExzJ7-NevvS=#o>~n?{OfH*L;G0}Jwy?+-Dl44~ITjuX z+i$2vjT>i?tv}Vn-O?KtxS_g_HA2OQ(yx4imt%!cw43hJ*J49~{z*!+#2WaJY}m zIih8HVl^ob1cuhI%W)xCjhBw|O_^LIzVSo>X9ci7x*F6IWDp{MLJ7*8KPiMCkh%$l zru)Vff_%lkaZ^j+IRc7{EIH^{Ma4Pjue7xT-JsL_lTN}L#l3t0$LE8xh%yl6GyR+a z19G}|OZS~Kcu@ZVIhozMXR5C~)VB=%wY&bB*{vsYj2;b5^iWj=%*gN!7(KdQ|3Nt! z-MV+{<6zCSU@wE!!6K{00y7mk+A413!MgkS_Jz;=h?DCxcT3;?qBioih8~fQt+#@A8ru2} zfKS;Y(pgF_M~Rq%|Dq&qsT}!JMH$ni?5qXr*#bBYg#WP)OVk3sBUQ_XoGs{o{5J`{ zqeWW7C;o@^WO)jF#~-8*ggXNAenqhJbb3;LIncN~$u~lj=K^8*t#`na;uPOFK|83h z5N@Kh^IawIJSyMMca6YL5#GmlgTQ5n6~Y7Q*1lT-<4+5)^Qoc?asS3U;RZsg?_NR6 zBYc4Gae=3A{5QzAzwZT!seE7GdV!}9PWF8u@H_v$5^fN*^?fDqSSoMh`$6CW!oUJI z%+Ur{5pLy65xDe(+u+f8OW%>=2D-fWFQ2FTN>FN_uR*-0A?fe-;OF9v7QOZ==J&nt zd@jFe6+iD!wdmD?o@UV(3wpXmUn1yP7X48{4_fpZLC>}5&j@Jm!vUo4XC+=y;@w%-C+dtW&*9v;7 zMQ;%F4i^24p4?8FMSnxkH(T^HAy1=4?~=>@le*dIC)I03`xf2zGSky7daj^nS@c># z4_frJSGb*Ai(W41A&Xuw=;anYYaO=}wdmD?UTx8RbGmcLHa}1tK3eiMXwh04i;UGV;7tL8n=^f(E|c!S@c}NAGGM@f}ULO z^aqL4EPCHs?zf9Y?LXOewm<`TlDdQKF6X@67;A=FBS9! z7X2DQueRv31bwMRzd_JzEc#7?zQUr<74%w*K2OlsTlBjGeS<|`B+S@gdIy^BTPe~p-r zEcyY0-rJ(53VN1BZ!hQpi++%x2QB)+f)!i&f}U*AKNs{=i{2>K4;?J}uY$ip>>u&I{Y~PCfj-23$EGJ6^zOhY-&g41LGR*0 z@9jYkc+f|C&?k7%r+Lulc+eMk(3g79S9s9Zd(by~&|@C-Mh|*#vA@G{G3_t+g*IKD zTOd8p7%#c+wCO88<$Q~8$J`J9%b!|pv(7wkpEtTF5kyN`U3{NUc9G+^aTdJd<%~+ zWZgN2hgZ?mPnto8SB2G27lRJ3W~rZagAT98sh{2k zUB0V^g;@q2UX@fo0fP>&Y^k51L5HJr^)uR_iz9L>%Qfg76}Qhf!Jr>$&_f2jlR=+m z(2p|c$4LGLDs@L6xrPci5*gPv~C8w`4eL2oqZnFihWiT3{<20huJ z_cZ9K2ECU-?_kj7yPa5^X3+Z>{9O$CX$C#rpr3BgdmHpK40@J9?`zNl2K`Kf9yI7@ z8T8QxJXx9}E0rfqyLUj|Kk!vA~ZhNB$nD_%=BZPWte= zeSCq++R~Q0HUuhOPF_n&?&^8&HT(E>9XA;MP3e^7Lw?$q$G7d;wQF3IFh0PDZ_>CW z;x!t#LcCn#)`%BtoP_u`joTo;USr&(#!EC#Mm$DiJj#g=(-ufqjgLmWM&n};FW2~3#EUgP4)JXocSd}@#>XQr(YOoZF&dwM zc$mg`ARq6qF&@OnGc`UL@zEN0MciKFZiriIj0f=Xoqs6((-CjeI0Nw}jWZFi(YQO} z)6OJw8lhJXnwS*BB4fO7j9+1a3Y1|+28jS}aUas-kh!<;|jrcZ=2O_>+ z<8u&~XdFO1M&m(ovxM=y-|7cmN$AqcI*l$A@W*2hQ>S z8skB8JX2#lV2&TH@nwkHYm5iV@s=9nL2`WOZ%Y4M#M?B^L%d1jF^Jb_oR4_9#$ypL z*0=!iZ5oe5e7(lw5tnF;6Ht7N#&{qcAEq%L1jqYpj0eE+OpPZZK3d~Rh}&yigt(=~ z#fWz{D*Z!ug#sl5>VvX@2H-4MOQxIRTF&^l~OEkuV-1r!c z@c=hIOk+H_jrZ3W4{YO^8skB2{Ai75Aa1WQ9?ZsDYK#Z6@twaa{mT(=(|8u*O&VX1 zc#Xyth?i?T8}VX|D-qwO@ePQtS9sTP2Ta|^H!h_U^g2;i4(7~@G}-(X5oh{ zyvV|LSa`05Z?N!83s13dk%h-u_;L%6vhYv~547-^7Vc%?ZWiur;Ug`4u!Rq>a2pH% zb(M2GezEX(7XHe@TP^&)h2OI9It#C|@G}-(X5oh{yvV|LSa`05Z?N!83s13dk%h-u z_;L%6vhYv~547-^7Vc%?ZWiur;Ug`4u!Rq>a2pH%6|%s8z zE&RTP-?H#J3$L>9GZtQE;fE}|$ijCxaK?^7RU0o4RBa1Xe9;gbk)2VS@oFH__nl{3 z`gZxl!1~j;ZYiB`QRDLg{X>`>1CgXn_|d1a)DK51Q-BGNR`%IdpVFxu`PPb0;D3bp zdoIS06aETRH3U|FcUE9^W2-=mb%Bk4l^z5QWQzupch&PcNY=;oP!Ph|5m!%-K9bXbJiE5EJ(KEUy^t-Om9{-;1sWs}9@#iHaMD54UujZoEo?tt zUAw1JRb@A9p9DfQ1cVUtepZ5k5DuBo=c0O$F9yQY3;D`{4Dua8tvG8ufi=Ru?T1iV z7&V5DW;FQ9Zg!QutwZ*HBm0dQ9+>s*v=(T{m2==+B~bNrIepBZ1|O!GH)qs_{o^O2 z2W8i=;XYpjy+g~3>*()mQ%XIGfC0PpakmJu+v}iP!LdPb z)KgQH2$AD5%~2ybYMBEeawL5W(uC)iGc|-AumLCh3|}Mj*?^TnU2r}Z5Nm`BB9T-m zzaS7962*UNF1W&X1sFKe0IdQcg5m%TzG1iUt>1H~dOz|5`bv@UX>7;4AWg-~!9dl$ z3s@rVxGwe_^;${2g4mBTlv;fG6Ab|NgGvqlo?wH3eF^e#Ux_{7m;hS=H^ReK7i)85 zD<6!N8r3e}0c)5A30I=eQA`M@;!s|{6L_jR1j3c%p^^D4b|jtbMb1_Xae&P-sV?^Y zPv9O96PqD$IZ>p{?g>5?KMDT9&;_TH&bbzN167+L%#mA#`Nxo)P=O_|+r}D$s$PZ; zq^agYrR{AsUD|AlMVH1~`XgCO8ZQOaj#NtH`3SP{y1moVXSB>#>|`}7&H3yRPIG<; zexE&iM`^oN7+!&@Ph%s&{)4MN=N3t8Wu(`BbXELw95GP*F^J9B`v|1r3u2e_yR_eB zm#O489CC61a`Fl@QN%D&^oMyE3|z~8{`@K&^Ev<4V6>{v*5EK5b>{Xi_+7~u@OQ7GBZr1qHcI( zEZn{-HNLPF&KtyjuV!D&?1!4{Kc=L%{4wP~U%XIP3F#`uTm^GKO9wrO&R_q2*RFVX zU8|q2)rV^xY}QJ7rv04Mcq`3+u;$;#lOLQ>Dzd$e()&a3X3*QA$WBmXCn{2{tGuME zJj7LSqSA_l+Xui{#k#`nxIxHdg|oRr;$Wm`_JNw+&+INX`V>Ql z2k%(T|0QH0(AiCaWx7HOUEwL03POPyy27VP%BmGE6#{Ic!Meg~U16Aag~N4)yLE-5 zyeoVI4lk50))g9l@KhS76j9-9UEw9~3UhRY4!Xizt^i9(+b_0XESmqJwK7qzH}}bc z`*qEo$=vM|+m7lyfD51nC|cFZ2{fTRoeLjULW2}Yg|Nbk1k*TSQ3iNu2jxes0;%B% z_@iwiI-hAk%cac56GY;V_^Wm40#OP}2QZ>)8`Do!cFjwzp;GLcA21JN+RCm;dB&Hr zY6E;*QI%@)k6aO;#H3oNs0Hc#$LXH3p_Og637i~hE1qtFTa201~3#Ix2D9)+ep)lKaUHT!+*EqO_ z*_P|l7pT<5Y~?Q{*G2V^a0v+ZQF&B6TXFxwngIrDU1<8TtVMf=z(x~K<> zQD!!X{zdCMmZSqoQaKI1H%xSxj$nOsF$^M6ZGq+!tDDQc=~K4b^c^%O=JavfvFWDg z@czg{3oyqVehG#aEDMf-p@rfd>lJU zYTCbZY{`1Br@NA1a!w61-Gx*Y<;k-g%1DD{cW)fgDts7|$?wOs*0)@7GtCD1MkL$?6; zc_UHRYA{Z}zuHJ6)NI8u;RW)t17RUtmrX|<@ea7iA$EUzVy9GnI*7Ub(s1_dKt5zr zc6wgM%>vC)fqhfv*FwI_bmO^^U#Box>%D^5;12lRsfQ3I0j6Wq0ig{n+?AFYk5K&`8xHE=MH@K{M2{}oA| zvZ@x!zxi_4E;!0@SRDGjY5V??eS*>2$%(BE;!)$)7P`0glx*u;@Dyl0RpPPmR31dL zdQYjGjY(8!@C)-CgP7cT6+Ylc-HO<&c9kX6KgXy)0d77(-mUBfG)SJXJ&Ythl?OWw zXyFZV<269}^$&CrIt4lvG@q=T8F`)WzYVi^hE9s zmH0lFl{g1v355N%7bB$R-UG_^zQA&#&?=I&MlfHD%vGQURL80>Wu~ z+vxVz(d{jw2|hXxeNp&mO64msLfjzi|G@(wpfRV&J#-jUiO+(6^fnBfw=Q7egHv^{5 zvhqNcn6V-uNHb?wRZdLIHV|>;peFE>!QcIS*RHzkc{pf+x@=q-`nF$5CJA#}aLV<& z%0U;#DF=ZM45d$dTe(4N#X2znrqR~DYiO*_B_#|q@`_u zp(^|1itPFp#0pa<$Ak~#U(TD)g@L8E1-G;w90FR~s50?W%}drYuc{s#}BBhFCx87ZuSrke|U*kct_bcazs)>t19Tcq75KdJTx!w!{s>SE_6W0H6H?rGb*>qvoy>SD(cQ)2Fp zKzCR^5(JEuBS=sfJS$bLG$a08l7jrE@H3iI_g#ULaC{^D1GO6=-wx3{*^&qLy1w`m zn&$}3bCl$vcB(W_ist#Vp89IL0u$l(38JIle?*gzFds_>>}dNrg5h1w@PcHZ7CH-t zD&581k^vgPr7=pQBNh)N)&m9B#sM7Ps;9H)V}5V?pkr?<@B)#_3#qVjG+0!wgSVFB21zkiC}$`L;F6Z#Gn>SF!jd%PW7eFkex#3G?b`5!l7xS%Ry6mk=L~+c7MtyM8}$q0}!!SGylv zo{XL_NVQbQ)^FriJxGsi(fZxX-$}n)>ATYJdVujE`>NiSPTMe<~u3tShXzN$Tj#rE0^y)`izm@!*^!pEeSNbgm7^jEV%0EA7Q2M@^bvH(bYZ!_jlLN=c?a)_CwMy{-M_I6aG&6ZKUr?zcm2k z5lB`6rQaXlEB$tCX+pmjh>!HEU_ssW8^Ov;{i=1f7M}X0Q5}2yo@PHJ{q`~R`*Snt zO8Wgk-<5vb0LGtyS2eVLM```qHKpH{@6ZmU-vfNw;I3aOYa#Vpr>h;s)oLLvrDN*C zH8?kzMRjcb-eW%`{Z3$=ph8`&qoLn{PW@VDM1% zyq!b8dEct|o3yzJ{Z1!7^3PUH>Gv)dO8t84YO}!o!7MKNRZ|^Xzn<)eG=5d@Y5ivK zchc`F`mXdF12End7CCzSp4+bUi+s?8ewPp*>30kZTJAc(|HOq-zsq#B`@#L)^{b^i zwtgeo4@tjA-qrfu%il@ATj{&f?|OjoA@pEXthfAIzftjhv7uNvV^c8_97JRU_wMBVWKy)RN>BCqFlGn3Jd)X^D;8m)OWRn_O)2o|C8= zSqb#`#fgnP=;UWfqE4b}WEwW&Pi!RD$|7V6|)6PM z5gNhMI;)ZQfo>jo&=9Y75>+FQAbpV4!aOH4i*cQks9G5Bpv&DrUF>|IyEy&?7)kWG zbPNE;Ml&fk7|TQpj(xJ)HsVDNdL)4-s`s9^j}M#r8G8!*i?R{Ygi!$|1HJ}4GmRvb z3BEU(Z=mM8g!$kR2l5ROd=E0;k(v+3%XprQJJ_nSpXf?S#f(N@*?v&_SL6mN_CMAK8^3B;rkI;MxOG=oIS02LE`Y}1!WDd5C_6}c?Sg%LNZXzq zsGufV!sQ<*t%6%HgyH@Le8bKIEo$Lt;V;=^iw%K3#F29Sj}QTZJ#Z4sv#}BGKehlN zbFt>EmDoVa@$mPaZfSg{g)gx2L28ldsX(8(pHLBj?4qi20@e=CC+4aR0a*M8pkENA zqP8uL_Bl9a@PrfDDpul$FJ<;!*h83mj`V=9^Ql}~YGa^kC!L?a9h>tuHqX_SJ*hL< zMddV-fIlL^ws2c0kP=u!mtt4f!^K#xta^I|$4&Rh_BVPw*wLdHCF&7dBdsdSxl8)+ z?ozlxAF@$t3aCNG0;3GuKw9NuGYMlR97PC>okoIkp!W4a17(NSCA9<4 z0=_c~eDTFcZD;|lG!Dg9rX3ef`VPMJEr6oyI)sxx1AqehgP((N&$Ld3Ctq+JgXcO` z6dhsuw*^UDK@$5?<~#(&EdBu4Go{>e2jDQVC}r#6@ST+HLk*NovC7k6d0-erG<{w2 zulJ%=wwF|_q(CoiTk!;bX~EU2C=wwq12B@wFeLa1x$S6Fqbe2jhc6hs@vJ`}CE>#! zu7N7<_)4hwOf8Rq)Ms|-TQpkOGZ|w*ySCC8Rg@X%3GPYsl{6GS&E12G;I-q*WRQie zf;Wj$Zv5>HFg#l&a!@6Z&Ymi<=YxQQFL zwLkKm+zs#vxeOsjdBr2RrmO6L>Q_~chKF@@(76z=TyR9010iw@)*QKlBg7mCk>jU-gFtfp zd}oIz1T+eSM`wX(sjOVCP>yjV5<-cq@F{0M5*i-+y&Ze_C9=njID(KPWfj7aNKjQt z(p5^S%6w`r@-(rqeS^?<6l&lnnkUHDj4P`_bflq@K!b0n41D8j#@SWyDB{DxRbR*E zE(KxWdhy_@2hk^hkp-xWUHmFR7PBt)U$~tWg<_HcjB+{`v*LBJk43Sx*|_zjB=(Oc zd~*%KY5`X6O>&U&xKh((Jeb8_!$cPQ` z>f!s_vE}(xH4>o?gdg#)exFTH9;R>zM4~bBd-gL}M!hnmmf{@QWQRrW@Voe0{y$Jj5g(D=(3yAv)3nKAYO7t0u%CW_I7 z7$+@XAtlQNEabd`gM_6QGnBqnxrCTyj9tr3%NXk@nywX<&sqiCyN$7NDMf3rtEYAo zWe>ast*J0bjIs}~Tu0eQ4>&~K_%bNu9%WL1?z@SzZV*^T2iHN1@k8PIBF|+Tz!rNL zXU{Gs(L|ihagVdXAF4Qe;W^-MBF>J|taI0@7{MWQiL=GfdDC%Lt~qi=8&;fk!O2(| zv#Gf(DuX5=&eqX=V2ZOXu>1nUia1*!t0cr(pUo;Xmr|9z5oc@e2Vq?2vbpf=Rf!4r zU*KgYGtP>+SjJhZC`J>ad*6){4$q|sTX1f{K|;9m1uB(s))9pe%Ni&>h?|yi_B32G z!JcbH5Jd8R(j&VwR`M|U8|`d;fdAmp19_H<%t>amSIz#c&BD<4f+Z{LnU22 zu>*A8v?u;@pW;9>VjGqxF2X5mk34aybgKkU%%Z!|c;dg`Q=WJv zRoNS!*c-HW_r%t<4o`d#F8i3C_~lDfEIsiCQH&-;UrXhjUM}EN%q|gH>|yByhSC#n zUqq!c&0#2p-c)xw#!GL)XU z4+^1kqK})Fo_N1#x>i(P`!smsHL$Vd**SC79(&@U_fS8=6F0bf;&DtjYnzP|%nc1_o0dVd?Njc#R#a|X1L^xkIE7?SoV;R>J@MlC)Q|8) zAH4D4a!~mF>&g=^$1{T_Jn?1CngRMY?TOjYdDEVFjOIWyx}@*dasJsOPfQldB_0%> zKtfacp7|KrL!|FiStY>}KYmSl;(1hMZ+K$CJP^j!6EmK6c;co{oSxX8i=`(%DT>jA zn7;dRf-Vl_KMWaX8C>Gs-G>_yq@0b+NOMX3Pmq96+YyK}!=y zBQLIGnV@-W`K8-Tc5$G{vl+O|2eE?xkVWMDcE^)2E2KXyWAST{3uguM_jjPS=*k<= zXnJG%)~(d9h{ZH%JHpC#`RkSKHZ2AICStL-W_=J=T}{X0bI^Iyv3RHE$Q24$+sm_X z+EfSgU8Dk>`S}z((r$5`Qs6*TK<3lRbmo_XpA6ZZ!%iHJ(?q_NPJ{pNg3b8lA9ytX zV-zIfhzr6j1i}TS7w{-^Vu0V*0+(jY++WSbGUED)Vl))`(Cd((p|NrSGdast3wR7e z8F52V2pw_R+_a3iuRe6<{$z}xa3zV$519htjvKqd124HEtHhV=Ag!C0rLN_Ihb%iA z&juuAD++x&Oe65Lq!y)=1$D7!Y6wc%FC=lo%vA|*o_&A;DZA zsG|@XHZq^=8)^54zK{E)acU}#nj`*gy8H*&t4Mjo^M$I9#ErrCj50WtjwCg9#V3Dt zvFP)<62Kq+O-e+?;BI3`B0=dp3`sPAF9VEU{vUiq9-+f>nOn>iW&w84L{b^gOJ+I7 zSIpJyyrzU#H?iN zosimSj$H6jm&L&{p1U|ID+5viXF@tqOI7{=DJ*9HpyW5xP^8^wYm~x4;@@l8sNiN0 zhqF<@nT;}@Ape!wXw!SnY}B5MWj1;^RW*I8a zqT|UY%XP8QqUl=E^ws#>CEW3X6CvzG5~zs5lX&P4+*l?x^6|)H)DlI69mm(=Y!3BF zYnT1np}dxs(R74U#($xViM@;V@E1UEls)!HBHsdfRKl!-Bh?Z?3@1(K$+UJV*ELNQ z@qeqY;BLj~MVU*8$Ht*0%3}5hX|5k11#RS5)WyDF7!t|wJ%*$NILkVQs0{kfvj|03 zBDV~9+%4mDHK-M_4s-_sp2}B-e!+&w1Hxo~|FK8-e5n8(n)Wmae0BKZfVU((u2qI zlpC7)qm-Gn7WX3Sj)~wlq_sdMVFjg;JiW#rc!f3>9%IcRU2Uh09eG`IIu)z~nF&Bag6gB*FzUMh5Y^L=Hy^ zN+R0fU-^=`QcbU?!@2HY)O(Z;{T8;lS917Tby(%pC4s5 z;^siVi7g%E0%r3MqwCI8KZEOsxSZMiy>$73TuzGEiJ%*`J)g@e4eQmie@X2RWJ6IO z5VS2BQeOane2C1LjuHU;f?=wF?*WWYhbvxA^ZojQGT$GtZvT7cyZc3zBWLjBL!C!l z%y%BEPqK0jg}Yh*imUoNd9fUFnD5t^D&J%*rfu_mPkp(Blr&3F3}hxukRB$2>; zWen4Wy~Z(274SlY;f|@8{~T$6MWHk>`~hm8qd;8vl4+nnuTPk}E|yHq$q1)eC?X@g zM&x?>@c;Upve8HQz&=vBfeM7W5#r_uU&=OW;QGwwp9$9o#Z-Sj*C&BJUraWneqd1Q z8FEK;v5gE<1@jt)tVvz$Nrt32)Lp``hV-n9%}1zqLXJdFi;30-JDC--mQPB#21JrW=vb0ysB<<$j#!0KYF zv2Cr00XGiNyfsk~Z7l*=q} zE6_h#mmhBKI#BmBk7V87Hxd%)ekyy1)V&Kssr#V-<0E+P60^Eirju6YG`O^*mD$q4 zQs!hgWiHyL207JDnRU8+DDHx!3!^eub!27saVm4geU5>=grQVsFu?eYj!8l*a~1VQ z{yYhuU}|L!u$9TV!ewM`{!A$|fH%peM@IZFFDrvhgf4#UFahIoBHbVY&@Q|9qTTw-WuN1 z>!AAba29`t8Etj3t@k>_f19Bczm}nt{3?8a7w&ikHsuVPgl+Ca3#nbxylOI-&pA0N zLiG~t1YRPc#6+uxDNo`sQHcI17G3=k9YV}#mLSe;DosrST`a2lY-=|hd5n+0$Yc=g6O`8AxQ@CT!!hwKBps8 zZ70qgzoA~jey*ox&))@3xFa#sH*G+YCgQKsci^9chy$M^sci#=*?3VlF0=UW{*N+H zCe~F-$mvlV=ohCSo^ubm548gp>CG@GEOG+ErZir^fU3(F{Snsn@!J>5vp}@(9-ake zKuu6toCS`SM`O;jz;*vtYWBoK>?Y0v@6oKucdL`WYRC+Dj#q;jLY`mO#g2f^n?4Kt zeVXFP6>V4#Cl+5v3W&47T&aNbEHFt+ReB5Yi?hH9lHYk2_}((5@Y%$_*Ukbj0tMZl z1s(@Z4YrbJf$LT~&jQpM0A3>Fbr^mmti$-&2-ab}52R@U z{hrfdRX&MAaiN|fJoAwnj!8FbQB|J$LYF_r=OwObc|9K)=_zBmpQns-IksgqJ$5Hq zUYcVeLlOzB6JdxVqbX+sjOXyugj81RFg7+N`L;M0t31x;HmmT+BV zb&TI@ir<5441)M8uw;TE)BjFt<6`Y)^fef<{b8yLcQD!6vx)t6#XeuKe*%=S4}R^{ zLRij}f<=?^NhNG@;{n{{t0-dF-*R7s)XpK`7Tdd4kWBCv8%i3;->gKdi@l3FtKU9& z)-F<6hFE+qS&}`dF7^?^aL0GrL-S7eNLZGn%;Sd8JLP$&oa6uEX*Y^xV276lD}{As zNM=Hk0sf%CFW5r6*B?=#cbXVpkp_CggpR;o~(lFvtV1zVSA#@P1H+ z{E$Kj7An+}{~Ws4&PQo5bAYL6#O-;w6M-O!Hv-UmIZk^Jp1XcykF)r-9cE!R)C&7g?mL~`Je5BD`|Er6OSo=`3dGX`dT=9T>%ti)%JrGe z|Hi}0E@NpUAYW!nT+Mai*rEF10@H7GIMWpj)3J3Zy@X+^fP)#bLh#g%A?Xjy-5A!8 z9pU$_GK>nC$}l8g3x+`fcScE!py=pxglb8exURk*=StzKuIuVCb0O7^Zo*e7quai^ z>9YR|UnLbI{@xF%F*#h^okL~WAGNRU;IbMni_(Yxj|WxVd3=1cfeNIr5;yze6I{Q6 z>oc3bm~NGmFOJ~)G=%oi-&I_fMjQTC4Y`!RT-WWubwgC(;)@G;$r7bt(DbqD^mm0`LleVbvbfVB)sZ(#lpL((7MVum$n6@a%hj0!lL zVMxF-hC$KtID}0(SJKTSXS%4~i>u2uz)^4>7hin~o%n6p59d9((uA`TxzfC9J_=UZ zg;$#Rk+9O_lNDHLzSRaAF;DzDT}0`H?4(wjgX#J<4SB2UsXU7MsFh}>F7KCkzM|68 z<;Fo0J#`D93SdH!)1;RDB4h*V14=U)l1KoLVHgw^JqTcY*<3UUs~icXfkxOCoN*h! zqxl-clo5X;iA=M|;jowC6`*KxHH^XREh)4A%jbw>NUv6pbF{ixxB3dKP8_XXNv)QS zge6NFu80!E6~B!0d3aDtR(XvTWvkE~r8{vtuBr^;6FhMU1O{mj4cApJ6)O%b_>tJA zeJk#_%C!rPS-X_`Rs7GKMT5!wkguPjwaeq8rMk)*xr$kiB8llU4D+lIA<7FGWK#>7 zYMg_rNZd6MT9x0@T(Cj zQTht%0@f%b8Ld&sW@>RV36qmroE#0y%!-v{K+mJ`2U}Tz^2osv0Fo;4$=F4o~Das=uF9AO`ZBoe^i ztEe<6ym~vp_(6&1X%vZzFb_bTR9<}u4=QI5k^_&I6ooIbQ<9>6_^5#?DC{uN)^|8A zQj5CSl`M{Qw*8m$&K>K8=i{jHf^^XcqZT&TN;G$$v$-RIs=|jJk)U^DcGXsNDph4>b)z=ow? zVM1XML_$F}l_1VXpJ#Ees!|C>@N+_O@OL79E1@i#Emfj~(!GL2feb-aDML_;Dnp!y zhYl)3TtFFuEaI6VDt0BKtuWl!4c@(gj6vb3GDM44m9bV_P32JdWj6;PY~%?Rlb|;UQJ1;jco&Tll0z26RJ(!wWuRNFsq3Y+@J` zqp%iW{IW_@JKRKzOIz@lUQ#Nrb<85PQIE(=PTVKu!Mo6ia;qvH$xy)w4^V*=?*bG+ zjR!X;H|ObO7ymhTDTAHJ1|e}H^HbSw#KxPJMlKI=0kipQUs3h%n`0PU)+cVRzar7# z@E5f7J^mc5Z*M%LZ^IiB#|SSL<}76+L32N%%3D-bX&jCJUh);^Zmfe_Pib%ypw&PHZYu6>?oN zknrD#|06vdsaUrObH2;oDShR*S>!s@6&UPbhTLUctS!T!Fj!+bF{cX{2N{^CFlmbd8 zF-#Zma)zk_o)0h{hrjY<8%teK#uW-*THLdH$_LL^X8CQlVOHy&^6P9e5?Xoo&+}B> z60RFHZ7C0qZ{fO5bGBWp>h{9AO_=j{_D*Te^JbDyQCDEFGZ>O&0J|~_3WFWVFkQeD zfbmDJ)AoZ4JxP4D|T0V&`(TKwa zIB2L?lO~$%hYJx|o6deU*Q_-p0{7hk7~{Xpbck35tF)x+ZbSL#G0v^9mB54GL*a0Z z-`}_c^^|`Q+7KK0KaFMOK<8EWl890UPf72@XJm582~QVm)8L}we$+V`=OF4Fm(yZL zuz=MOzg7?GieLVP1I9Y-JO`STI~8 zvDZiDJ_CFOR%ly(v{q;*vo;iIYK3-@z5<q-EJUJb(Q$1rCxB$1#roncT!`%wVnk6k10HI!hW8Zkl^-~j1#DfHqV zAZ#ZU$J24uBR!wCVSrRiAH*(#^7yIHCy;5)Yh;*}bCoZj4mlCWl>U&D=8PH3bsi*pt+T#;^3D9j*`d&Xbu^a@VgbKIV}4nLbqH|!Ivg= zW*cv;^K7?tWVSPbG2ZEFhiR%XvppD5neAEF>!Dpbs?7G{bmyo!HWHLe#$4<+Y$Zk&c&@40Mozd=|YpAnW1>)TydrN-jBLf~)W8rcZVx_Yv@0#*%2F)r80 z-h=ExOoSl7rdxrh|t>r|E1QUSv9CPKSabCd#IQ2}{7t8%I2cU~i#tNH(& zfc$&y8d-a^Kfh9%ih(0955V)k5`yv?*>!Mz!hFH~B`#*Y;r(|}j8;PT{^lxDvs}On zCKAMPz|#HsE5o43Id3ye7qAv!{NfUsf)0cs+rx-&97@I!5nm$%z!~w8N~P2v z1;F1##E;ReZ^JUQ>6geqht8Xh_|=*Nec9zD@RKOYWZ_HK-oQ?{ph_99W z&WK;A`S&CKy%zClXn*lbWSkNIZ4vo{jQ9v#WiccEO)i!ZUnGjrN*L3PlSs{S0dpvC zso#qjWGEy4njyq2U9W_jmJ$Ci(X@>Cp5uWVViv{SZNz_dC2$#m>>2S}@Zo~N__rhe zy$UtPD`2jXxzmpLn@XvS;z}K$Jf-Vqa9y&69q~iCt~27->C59km#}4U`gDu<=P>>0 zh~IY-L235?P9#W@!3ciKFepO&6Nc#mz6CHop-4u2Cm6CljQBR^kpV=+um9HdcS_we zOBr+DF~HwM#D_HNComT@9q~WFDL~T^|F-7vi1?{IKZ%InAQf;%{72Fq`tx5P=9iruza`aj&vgbNg})GC3~694T9! zeVYd<=0c66jQEe7sVvfhEfOV*(#}pl(Rrr{Ydwo)(oLL?^+>b+?A_96w~u!iZ8k#^ z2Xrn&sC5>90znYuZy}J2O>UB(b>PS-A^0d;tnEk$@=u-n58z(e{&lfkV9NMi6J$CM z!cgsDIzKg=+(@MJdYRn_t1a6b*C->OjwftQr1SeV>jC3bvc@#xvSm9OI&V6i`!q+c zXv5mFE#>)0r1O|mz?shX(^6f12`Mbnd4uG4rt>XVD}~P`{=JsYbIt~Fcmdb=4LMd& z#M?;)1Z6sZ1D+?C>3n}Kmg)QnQH)l?*gKUIcDaCyE+?&V9I*5jhSH^<=aVmr94P(I zSn64(^I@XtT2Z+aGgG*d#8v5<;=T$`0gs}K?&P%VIT)x+X47ZMw3JOB(Z%6tJ)B%u ztZ7k2U*c~TNMD`}dhVewU&#kq!j~K6&^mqDH(d>FG4A%8@a6ZWDc1flg*Cl283mm; z?aMth2ab}EEiC_3~vgCLAa*F1kN&I`wmv6_TH}>TQ zr!VJ>arm+??DXX5m0&e06t`=}DL+Q)kWsyy!FMpZm@Z}ps z)3u`VQap1GSCY6czMMn%&dHbmz@QKbTKe+KQ_(@lmp_5x_#yeyYu^Hm_RwpeK8pkv zUYjZh(do74PEoG-+$i90!fQKe)|+#cPolM4GH^9?-n7@w)Ev2@4J!k8=I2SmYdc5< zoL*a1rW9!8Ew}L6G|BJu+KV**dg9+}Ui-ukDRO=;vXlaMSD)b+HZbumf{{t*E^7Lf{TplDIBj zyX*n9HF@noj4aD*JCbS1YmbNGcwVmb+77vU?6tejAc2L~c9DbV^xAoo)u6W;0sKvP zZJ}m;ALf^)bL}_KdDC9IUUT4hxa8Up&w0XY)1?AVuYIRPDbRm7DJ;CUx8!$v?E{*> zJ@M}~uRR{^&t6;a^x7XUb$IQ(N~hPp%f-@b%S16+3H@>xXVY>4$6>OOZ&KF9E@UXZ z_WIMQROZ_0+_d!C!$i~4YtO(q4p)-6E?)a*wes31y1(VM6UnsXwO2uL{IScV*N(Yt zkG*!#X(X`l+AKMUPOse>QiDDO&kCCG+9x$@8W^r=uk8VyH|@3UHHU}SKF_n8@Y;Y> z!0ELewNy9r-BIDSLCNp*+8xD8;Y*2suX*iNeZZdVwVRz@+xKFJ*KWPu>9t34vGm%P zM6vYRL7Yvc*Vb^XRtqP-pP}^HH+qv3NUvRc5%ny+cC2W+R#d(LpQ(f^Nn97N9kNJy z?MLYTme=;6V)EJ-pg8_B{E210>GL>fw1+E%+fOBdh1ZUjgXr|yE=6h(?;HyJO?d5} zlN9R}up(^QYiB~|O?&O7nghqfCD*p**-dzDu2jJ3wd1u^@AHAO@Y)HI-|4ldYW|0a zf3JD%3%$Ue?6n)5UVGz(4zKM3kAclS+5|3^Ub~MdMk`^iy`8gZxq!cOtX2!S-Msb< zH$PDby+UZmO-rv`1{X-o6~cz|fjeAD;<|Y4efKD@Jr*O&^4goJn7lR#isNUEc6&s8 zf*Tc@q5~cATee(ZC_Qilw7LC4w>IB1sPY$e@e@FOrb4Gnc&hc=Mn2W*hv$p%0*bS1 z#kNVX9Y$>Qrq&H`Gy#W63j(X_llaex?m(s%>V%3alL5vKNBeZV>>Vg~c98Ja{av6J zuF`M=Z(kjl1Cx|7d_zZKtLj0gefEX-g{*s@NLXqfhDi&{!=xH~g)-uAcclvM2Hf1p z-*iX6;%;!&H{!<88lLAHs8VDD*WGx9s$0l)Q%M*3Tk?pTZ!BHU_0w5bX7fL;>z}~& zgItbm`Y>)F*9~zQv-qd!x;r?VN4cEX)Y0a?SXa2KdPYK=yx^Tb%3Fhpi%gx!R22qQSp$)rt_Q&BJA*qn< z?Dz0&&BIa`%Ns_v@jB@JADlgHf^yhad=^5(6S18AJuah>j7VqyV!Wz*E$*kBFK)=! zyXkOtKG!EdQSWxYr0bu-^@HrN$flkBBCZ?aGG_5dbzL9VjdD4$DQEA9b(K?ztAE7F z&c2j=kSTE9j-#iY{TqfsY#Cf`3&V5)-(Z+3;7W#MB4A#|kgN&tK87{I*`o-RT#3#; zl%HM51=l5~fV2Pig1_PHo!($C9*+%qJA32n%$7xL!b zWYgjLDAx^f8MFAm%2%o40V5Q!tAq{q zWi4f!|AiW}x4^GvN{j@dyI$1YG6+_n-5hWA@fB@b?sexnJOvy@v{BSGdZ0eJpuzRIE&xIe7p+|dW83oV`)3&r-DU~5lolr3jMmUCvy zFOkVDTV4v?L#`Q#nK049a$`bccPm)eE7z3cT0nBw#Rj6e_R2aqDObg83^zj_x#oG^ zWjS-rt2wG}9@nL~bIUbXbNzJmNwqXsqU#^U^@CiFY&zGR$#p|q#w`Bpblop;A1`cW z-z92^byZ9!=9-Ap$+qI?>7~Kj45>>#P zn6>w4I#jRgvXCI6Wc{}?jYnkmhVk2k275v`m?2X9e z=Iq7Us71#Kuk7C0mkcD!idiU1Hj{76-R?~I7o9`4*$WeEhs%`1{&%pqv%ksbDo$tr z_)=B3lyw`-XMa}L@4@wh?9j-jo&5r?8{#r%@!zTIHu7`)D3=qPnppi< zS2(%BzkD4qRIhSJ&RAXIWC zI{QF8JJgpph93*g{^LOH?BI=JV*SLR?luHktY+UHgw1=0z(=*rb~Le32+W0OaE8Fo z$mA9R6Z>o3F!}%I%+>L0DWo@zhgu!~dV}(_Wxcgs)Ya$V z`m+DGe7%e(QCuCTtYK9i=8Pz3*W|Nlps61i%HIYM42hxq24T4418A+?%vhhIvL37B zx15=D9<{nRPHu*ieQ9;viw!_-XK!Yc&n4rLhpNr&A-e9r#U%m?B$w6kdTu+N%H=OA z+c{bdPBGUHayhc;AikOFl7-dn*Uh?acdi@dy2Pe}IEZysup|cY7Uy7|%tOL$!1|YA z5LrJ?%%3qNYXaQFutscV*CJGMB?j>FWaGei%S%>Ru&p{hz zxE{Vgc~q1}O`M{)3+Ow|yLwQ$ImJc%AM2a?efa`_4%ggOtZ^f|stnhQvS^g3AF#){ z3`1hjPDdE-_!DZln{Z7(iyAToQf}7CITw71tb1jFxn!gYnH%Aj8d#JZ%nsL!*f`{i zDqJV%x_HA4>XPfa&AEqi{d5`}8Lk6#{o1psevr$NO^53z+;)h|n8ly2>(1u7Q7$Jo zWykxmt_q99a6Or$i0Z;%&Oraub8Zns>JmzG7^Y)K0D}xu1?u6oWbG^o1`;s^!}Nb?>x?;XVB1luxVqaZ#E;@KI* zvyjOxh#OBs-8%m8{O&`b>ltKk*AO^@S1EF6wjt|Y34!~EsSubAm)pETU=$yQIYXd8 z*ZmXkjWrPh2XlS$9<}Vu()Cwz{UEzBvgr``h~)}#8MF8=)bAY3;<`~TCpHxVi?FV8 zwZsrOfjyJzf@@rTIt>Z80k_r|2C-!*y_8|PfI}Fj3V0?%83Ly;lp&DDP=>&P2$fuk zA@KG&WKWrPKRy&f;My~E2<+C`tDj+Kk6}aJ&OTkRttK{d_O7sscRKq#WO8%%{d%Jo z9b2#1y|ZWaAv-BY9YrmYdgWC>q8MF8&>KpR&j9X^*fx>^Vu5zkGXFr2| zFe>aE!O_$CekMce5}du5VY*<>Wtb}91q{hVz}%l9SrcG)hBYGJAB#}QmFVo-cn*`! z{{6w=?6>s!8_xdZlkDvO#fH3{{bs@TF0qlbXTfUM>Ff_9lbf?2*%P(sc*xVcclP1E z$g-}^-k%pfauAYFCEM(U1BJT5%Gn>qn`R!1n``^JID1&vJ%;Pjz`Hs78C;+IL^=C7 zUH|jbsr?{2j_vF|t{dVqX7SI`7yTdRx=}7CHkH|5M!A$zB|7{0?1NMnT(TNRPdodq z45>>fy`Et@b_8%T!&CvsGL+6flA(0=fefXypNde)mFVn0^K2!Zz2!mR?2CK-4QF3h z!_IyHPHo=KexG3b8vEnlML8VSgHC6E9+}*nJtGsf=y>At-8=iZ?qpe4XCKK+961Pw z_aNKs1!wZK73WNL_IwBrr?bC?Om5EJ?_|`X<7toY-r1*gCCj=x zdjT(e|nOeC$OdshoY8t~-$H(!jepdk)tpKT*zJ zrR%rh`ayPBWYf-m4A%{D8MFAGC{c312KUFnL!(?yY|7cc#&(rcB|3Wv`ykZ?mt2dZ zr=9&NhSVjLKFBZ~I|6tI!&CupWJo50(rFCIng9zK)(B_67@?9Y(b+rj{3)INxc$J{ zU+JoyUFZ9M8`Rx~z&j6f2po>hdxyZ|g6$`qNjU^^A!wW-P=`!zA#mmiS~os^y*~>F zi=LJo44Dg$U%xxK1^kWs^OisxY;P`J_zUPL$5I}@zN&9Gmv^GEHe)8@e^B4?UzM)Q z;a*rI>9eJ*@pR6J(x4xmNCPd${dI;RF_bR?j1LA0VTfeRiRm@VpzhY(V;|zqAIEg< zZSKB;t&-SiJM{ysah&EJjZALle*1Xa+?i)7b3Y7f>(lO!7hC4;`m>9%b$m zIn~3darzaB^H0&`WbP8-Is0m?VNcf8;25t%9&T|y6w3xOJ=B>NMsMi*s@cIB6YK7&z>a)A@pUaOXIp+%Mgj| zk(jR~S<+Z<_OaI2n*CmhAxpOW&N=UMp6By?`ph-I-|Lq@H0Sf2=XuWZKId6KpZjA% z5I6YSz=PHloJ34H_n;U?u5quqsg>Tyk|pkbY6XTBgk4M$1|Dj z-jD14OA!Bum2KsO`7}(5tdp&zRhNYSKL+uSJGvl#cT+Kdz%Cxd_rN%UP#46H`MUd| zt^hhIh)+cQ8n%*~_~d>4j;NnTIkWj7-V}9fQ3jS&&ewfw6OlWQa$$2p{5`kpf@R4d zK7XUYnXjxbB-$txp8_de67(McS;HL>ISFL7l2?Hg6H)2KAjO(Q)`D!*AU=jkC)bie zyiSO@UdvDrzqUbA5KoUh{nsG=;8s9-J#N1BAbv#I{^Zn)AU=uWISk@Am?0|pZzCN8_|i+oeL6zxY^&+y`1)PV=v}~B==^_OadcjN_cq8{C7&m`P8U4prfInJeot|@Od zH}RQtqANdmBVR7&K3|cuYBZS^if1t-{G8-CkY?@!i7b7)Zj!m@CO&wsE>0&$^d+W%3ozx*bi&%fB+YFLhr2mB~#!2fqxM@XF*{ z%Zah|mC4bjK={h!HeRYbI}5+QGFfN*;VYBNdH%D7f2qAPIsR|5KVF&aP!c$#HQWwl z1ltD`3&mgPdPDS;$!$?=uS~wL#cU;x?BU%-%{nCus|z_<$r&JRHuS|`9`IE6gYMF^ zy)t>BHr=F^CvmpPR*vE32?6k9gl6V8z&9&rp*jz49hUAd!@dr1ZUfvQ>= z5M@m~vKu?2vWxP}MwRwTc5+qnzRHfM^2G$m(SR!NDmjmHem(bsVOM%-k1CDIb1YZM zrmo>$0=~_8gs#ubX5VJ_?sU0V3;3``x$X_6-T~Hws3r z$%-exBzhd?4d#zcM0)#q!|@i=0$4kc>sV9clGtt4Bpx-bfWDcoP2^2LTU^@r&7=>V z+~JMRTO_^PPbN2eyYG&;F{!R&1)^(AooLlEirjSZGB4K2bYqUh(jJA)P1$x@m&+15 zeVwpql?Zfe!)mBZ-`kGJV4C6caq-RR#e`*j<@Gb{qg0EW2^S+Df}Azb18k}D{0-%U zQ9q4xVRL$%jk>ic154^r-}joRn@8WZY+O5lmkXa;OZ@~pya)_PMY2PeHN-5^50ULb zN`FKy>MEr*+zXK~}jhMx--0?MGjt!x_-A zHn72Vhr9Y+P(P1yVRQD|TIwe0564R-)*m{cGU*R8tr{*`J=C8`n|Ir5($Z3{0r(cV z?_6J^8sk(DABgJRLlLfvwuC!UQ9PBo#un`*>1jE)cEo`s4)f+X?FiO6{ztBNK<1LlRg%B zAtR05cnuo+bUo^&^*Md5vds`S+06Ws)+X7COw&1iBJJX92(r7XSxb5nJAFzO=!2&1 zXUL#kIfKV+9$S|oI?@EzSbJ{j?E3`iN%gico=C&F)LNeJ8t^UA{`J&;HZ?sL^Go}A z34Yn;5EsnzJ9xW0zts3(-z2gDBc>d5Ell}kWP6nW)W37!mp&lPFB=nC`YAHbMzoVw ze`P#TGrJOK<%fE0>)N^SUFBGdIV$KK!dsfytbpUJD`RR`f1057E^?Dva>dW>6VyKR zFlUyn*6`&b;6VzF1(>)R90zv_)ZPuGsa?aQhok?_f#d~&OYhY@i;aMmyO3OjZF#V{ z&=i@Ty$VKKfkUKqRNt&@pL1@;gm0A%f$FN;$cUrPjmYTieZ1CsKx*+jo?+*EYWbDE z)kPFGvGp%A$@ll-B#ZkBtFTqdKnLc#7>yB2$G$=P|MF>q zYEF&0RAyrbiV;|r)JTC`;r8F**pbpB&2!Qy150Y4ulpJHKx$FWY<{n7G1|?e3@oXh zzV6*i?w_~;_c^X>b5sKk&?!^h{eVcr>#fzSlv^oW4N|(K=&J+C(s3}J39?4XV?kCc zc>t3UlgkG`?SVqMavsM#T=W5m~jsP&?CFe^{3x`7)hcBEWT$UI%tpE*|Bn8i6LoE^{5J~pkoUb5vzyub@9XiVAE zN1}5=M?r~!hL3~mGe1*@1RZ;L;41v%*tz9}r(t%Egethq8QqUlB1nZ1frF~ue;Dr@L*^!(zy_X(@jieun=-WU_e?;a% z)^IOGULvGT-XqHQT#?P!ecdZsaSECjryR+~)Ba6jbIKq>BmWe;D5W__Dz!v*EJ==q z-^$=^LVrt5juq3>?_M+D#unS{AavE0qZhMe@iP{C2f;oO^X$6Luy@hzGw--+82$xc zz5~kBf#GY!Kr(UIAC3{(+?#W24tDMTu4{LxkDsM-xw?zgHT|1CxTb{h_B)%~pGtlU zQbZ!_dl%TouKvsAmWe)2+_+Z5fv^RNVnIT7p@)LSTh2K}xq|h4(<#sM;?v>Dty6a9#>! z7#xQo6qqg)Z$xb{(9PeX01h6Z-GMn#<(gk-)(x>N8_oeFS5Je+!k)^m5r17 z7Lh=Q$k_!^WlEm}`=Dl_I1HqSMZOydvPRS_6n7NT(rC3;{8*EV<=sVcg{W`k! zkuaA3!)?3VrKuUnliYO$;AL3+kWu7Ehu1)gWTf^?kfH&R4+`WkKALk|{q3crk>IP< zWM`qNypl(LA&`PU3dIAdbnHx-g;r&CA5e@$HtCC(@Hn z2z2_gUWBz!{DJwRUX#ood0@MNqHiuWcMa#Ur&frj4)heAfz`t+wSm`$`YX&esGmo< zusMY97xk#^$sOVQ{+Tyb%6N1JuxTD$0oIVN$Y*~nBQ`*nh2ngWX?4R#AZwI-9b~nV z&k$Mqn|`d-tY$w|V&iQjoE~l$8aH9&x|&&XirMIl?c7M+5Lbpw@$(R=uP;SoT(Luf z$4tN1a9CpGU#OB-g%*G`Q+*O`FtuA(cDMAj%5u@|$%ihW6bngET=BYqS6X$utiAVi zX!#PC38fpi4R+=LSH50kzex68`d>^vkh4CHBr_s+4W-`#r0Ld!Nky+&Er#GOtGhmb zUp|W9yaZ7c!3D@9jk~Gn`(0f9(@|e_u4aP<^Rde#Iys$h@bx$6`eji36QF0V*`tCx za9a!8fHc)N1esR1b^%$VWP2uKhG{iT%|N~tg~;Tu{B+NXa==It`>)kH}kz zEN$P8z!3JvKkanEXaNn22++LxiXTMXPdhE@=M4PN!U(ABCuk4%DP#d*((;}f*rkva z;T#x`FRuMO27tN}dB?1}V6kYIS3`XQvR27AL9)mU#wH?5hgH};i&e?0ZM>8yp_rqc+vq)u z*HLWuEKb*Awh|*^(VybiIwgCu2 zEFMCgm&f9^o`bENfW?n-=Au|^G6g~`rgwKzJ=7u!D;8%Pe~86uuf@f}ztpgJ{r^au zL@W;fBfw%iI&h6*u^);Ji=WeR02i~B7>lRJ? zn)O)$yVjMNXZ#@+$8~fHFO<8VOAU)1*#3!FeD}8ii|5ekLKKUSq1do^uoknG7>o0e z`RbJ18`sd;4_vxENW za%t0F4U3jm6pIz#C*I3Fas}s_*Gj}+28&yH*4tdo@ukPC~I^aaS#7D=`*lBlFcMxdpD8Pgb%ANW@!7Q32j!o2v_^3FAVzajoISiHxxb|Q0> z$KuA+d3h{WdX84GI1S^AVzGxQ5Mpug_D+F|zZQixFZMM45R3CF9sdyFUusx9{!J1m z5sNh~0T$n)I}%YWu8LyA;=@{OSlsysQPZ$^CnC_Wcs)qN;;c7>+4AD_AA-Dih&J7% zKt7+NGls=xF_>U+E+M(J+K-0Cmr2ex=EX+rGbt8p%rzkv`!DBQ^XQi(NEs}y=~*wQ zfuKAVCsOC-v3S1cU@Ir&#dUd*b9r%lQy|3Ro7*}C7GmA4SnO;3Ar=o@*6}|t{7Vgs zb6+Fz6R~*Lf&h#C=|C`w#SDrKiyLV%TZ!{xBQjr|lB;tH@e}n9APtLKvk*QnZi=RX z3EHos!|rHaT);;)F)R)gg9#P~5%@}%eQ#LY<@+{caf4Sy48`IAb4`fFC)zpJ^yHhU zWw3aaXZ@3Md3h{WQRn5cxPW%ol%o|aHeh^#Pcms!AjIO(t(^iV;SQ=|ahUOkSe#wq z__q`OrG~{pynUF6#jf)MEIvV(Iigtn{aYzEEZ(fehQ$qVJ;Jb<O8~xITuXGls<%#9)HOCPH%QkNJkh|B@PQ%!?Cdix`T<;pUnUi@pD; zq!qg?LvP{xn`N-LjAuQA27>Zf97~;-$Ko-bqZKT!z=NF2iz7^d5R32nmnA;Lx?8bW zYy2S=cV6rio+|uH4U0_$5-_NFtyC>BSe*s!>Y78@2PAoCd(|3L&!RyehQ zG%R*wA$(q34NV&sAE6WMXkL7echO>4+)WH7SloudS3139SlqDGW-PA!l8B*L9Br-% zv3UDm&NbB^6Mq>jp6gk^pqW;AEdKVQ<6xul2%KkY3|bPBH{{7Vgs+mM3ESgiOuz~b$6J0pt4&%O%s;-y;5 zR^l;wWgbYq9nZ!U@X1qt_iW2`opn!Q!{SJJv&JASjQ;Q>pXvd2yiUXa$Qu zVti37PA~;REWW*&!{YN;cPkbr8-Iw!4ZIfD3I9^V;*{seo{4#J)E5C3Q*`JU#o|FI zhTetZuXGH|#fHT?ywy{u`1uAAI9bWLAPtMlvJgHm{_(l=Y*?JAO*d)fnY@b@!{U}= zFu~$l1isS2U-}yWbl=Oq{}VpVmAwNak&#PXw#WhMWL`A6dr62KyV|)E4Z`L~;}LNRZ}?#dKPmANOI^ zxZk+pT;(c9;S_gGK9H#A%Wt)EHY;uSo5xL6etRT%Zebp$T4Pz&U^r3jlE`j!?lCDS zJo^v*M_(Iz6O50Z*HEE{@)3*(4Q<79y*>%`M`O^cP#jET zA@iNy=kwaku)tQ=G|TOUj{E-N(DWpBv(1o?(UqAzJ`ZphnYfMVv)?mfLQS7d)@hhN z-~ZWl+MhculRl?<)~+;Oluw_%sPppab4AZFoFJO8+2osO{UZOT^(w-)fDHsK6yK-o4jy#${wInpeLk+m zY$XoQemv#!L-`a$^JFc(DH7bo{KC`149wE^Up^MVTKYUfn>L_b#Nm_8h`5>;SM4mZ zyZ>Q`%cFS5UBUo&N+fnOA4%+9r98*e#$dLhKGQj@spDLIdA>Orp=ZTS=XOuBlA@+`mF_87gaA>SmRChkdW;#_TFiTk{B zK3wd+Phe@_G&*?NK?EMPHMMwPVv8G~MZUy0wxu1t8`c3ID4?$o$cGW=hxwu(9~eSb zp$`&Njk}jpPd2svL9D2xJg8ECFX^a>*TKRlRX2 zd~_nVKuxy->1+KEB4&WJBy}H=NK)b3DRU7%t&ApUTT<>S*oeRr7Gv*2AjU-6qU6^V zE0<@vmT>X=e2A?smRn<0TJI2YF4+7&J4$_P}h{%X>vz33cj!T$=&$8JR zk+_m5czq5bmB7O=f#R8Y;uifd#=kq~Oj7eHbF5?^_R!r7MS{ZbbOOfj?_RVgd1-i} zXf-Mt2cmfCWUc#O0-4l}eS#wv1pE9?f?!m&Q=w4&x*hpWzQI8!y_^HSIylKHk4Z8@ z4v?O^hw2j0TO>z_ktwnn~){A~JkX3DL#3`x3E zqNFQDC6za$JH0QkFqG^$7o_IsuPTu6)u%0G#YgIvP`eWw=+dfA+=4H!j3i^To!Qa3 zRAC)AaqCE#E10-FLdc5bgu6gmaP?>T$dMb9#sej7#q;wTJXgq8yi`|1;A%%hhQ9CJ zfnn_CxH7RpvfG^^p)|cCyW4o_bw|z)MX_$YgBd(FQ(J;NG3juLrP(^0n!gKGot9Yj zKar}rROJFUb}S|>$7Z+%y6DgU>?9d~%wyElv58G>g{C;;Q@W?O+$(oXul`+U+Q64 zgkS2}Mcod(JSlgyWt9DxqCUXO*!LFG@6J|@qlF%cT)9nRcgqFcRdcI4`R3&XC!E(1 z7E(myOlsA?E+m7e72P3*OTD^3hhFq0nGrnKsLwRgjH-}%P0>)uG#f7XQv_T{D4amO zW~GFpnKB4{w_*;Dnbh-0I#6vV)yE100fJi?aNJz0UfHNJcj1wMUa7y9UJ^a$4icu8 z6w5Yn*MRo3w-JNA?r5(t0QwTOJu#G|#mcy&Oj8>Fy2uw;_2;ErXQOys2iv_TVY!T` zwhQ$uee0&NcVZU+<`p-tCbu@WN9R@ z&~s=~@?OM~7tRH>J*ZECUhsLR=iU`zAav?Nx!5hxJC-s_0KE>>7ej9`zb}!kd?KCH zU477oZdXP?IS`Qw4fo_gw?jA%qAnbb#U#2dK+< z=Zuwk(V63r zN#zkY9V>*iAj%Lo%fEtgCe{dfDNjJ$FOls)H}kyd8;7_prM|s{6v^^`0Vd*AGRl5$ z1&G@fq=-eOTY#)lO!WX+tK_O6tCd`a$!z6QgOj|UIkML$(ms^2)X^+DNopD)^%ESqb;Jtfs&Q`y zjywmXh()C*f~-+j9Rjje$pK7eE8Fdt_n@Mz#E^v z5qRU;K}p>mi|$(S#-f|bd*f(c|HVIJF~YwSvL??0Vhg%xBEL1Vv+2TWchO0_@d1yY z?iKJzSlu150@?f5*8^{S1Jb-P7o>UPWsv5LCz;Gvp1p69dG_E#@z5I-NMFq#FCRsx-IZ7rSyj zj5;sBr`N}G4A(Yd$8(=FiUPW)SMh`1jSTnn`gy4un}lEY^g0-SxTm+O=dTm~rM9Qn za36_-Bas<0Cvbau$Gjp?usywH7Pbra^ma$F?dg3%+uPA2k&!QpnsqW`C=}nt$(IcL zgq#;a3S5b7nIg=21=2S!OV75aH(r}=(zfoW0~FwF?N^Dh{&{>d)33v1&BoK?Pm3>1 zrIza_iE7!5{DW;k3Z@qMBm@2ag>+ZhZ!gLqB+Q{S*O1+?s?2-yX}+U}FR?YCOuiSt zB!VKb(fCgdm0o^@XLYtDgedgA_}L<<74RB~`1xVGxwIr)hRMDhPW71y>;`QhOZ6j7 z@%MD3IJfO<@`6Y~J~&qVn&r?U-R0apA_n)C=|Fd1OT7}Gc1e0_9dq_<%hA!kpSZx= zJhCYfe-o~Px2fVL1rEfdS-{GW@lk;^v$LK;@pU3gC%r85=1cmMzx0!@+0}G8l%YX$ zK&Gjxfz~!vSK!FuAEf2gxggUT9WN6J_^(6wX=9pQ z{%+Ai(`>b6oiNQ#{Lr~@Mc!pElV)o@>&Gv;B+B8PkY<0p%W-f%NVo;@rso*09I-Te z9tX0!k<--_2-EBbA2YY6{ROS7Akf|_RYVVeEp1wpu_*@?7+ z89h4r5XF{e$7nHIiF3yCI8kD=GC7itpvX#-l{^Zh!L0sHDK(hYp=nFA>uS?YT6vF| z#2pEqj0m2cgnufR*`1&~wuur{13sNXAt>wJH+h7vr;RWqE>1r5J-N!a`?bP<8}l=l zY>G{NR#KUMjV1bdfgxC(U(s4ShoGI8`qsMbJDQ3O8%2E|+*+OWQKz1{oVdJ0mrLC^ zm$4)oO(ulXR>=lS@SNv)#t2XR<6c$c_$$u7UNBE*x1fXcRiUY$wUn1jec&_EoY};s zN6a><#u5l~$ZDKhn0s%3PJm_3zm~~(;zf#)#Jg3Ku;WRgcpR~pJ_>}Ft;<~M>N(CZ zmlOIp&psOPiIOa-SMZEns|x<^-v#*kTNy^)MdE2EP}#KDG)oEo=7(yQY7ALY~OnF ztleLLV`L1uWx6PaCw!jq*e)0+hC*ZW;T!OgMJV5e%zJPRsGP@skb&l1ZJ;x4E+R=e?VpfD!Z>4#3%5|K*j9ao?{HT=Y zrNG{o@8;i`nMo02?u*Y7K6uHOi9Ro=K1c8h%lmvLd@6mAjUNnMd>cp+jY{+I7*Y#w z)bGZPMpBr4I9`Ij1E)VqW7L@>#7s@#RI^N>xWhB8JN9|lz&rM%o#5Ef(U}2#PoLYc zp6K`5=$@r>to9Uf?r+-2cCtxt^Fx{(x(%ZPBIgo<+R;2ZY$^Om*U&Y)|EK}Sy**%u z=VUXuYTPHuz8}0@%=fp|iyLaiw+&+8T*ue^UF)$AOS$;PO`5jzZ`wQ?ng7Rq{|SaP zZ?oB|?r`Kk3x;QBip``CQtn}pA`+2zf)vq+yq?I?E-OcKF`ZhDw%}14k8L75iT5{` zoqsnZl=}qm?@y8(8tU3kZa@zMX)blpJ8n{vVzpzek?$Nz9=-ygH7!4Unp>~De#bIU zJ@QFzwjw(6nIMwY4k=f;2P#K0ThApG;=F}V>gQ4e{7WkR`6^qe4=2c6s`!>0BaWlY zNrPw4M7|e2-%i4}^ty+*JVDSifN6t9 z6Z^>zhyNwAkeREy{H5hqV7qlce0u^;=px)7VR;nnH$EW^NxSiAybQAla2JY$&}W(| zXB)UL*#7E_s3a?DYC*1lrFIb8i0#+HrbjjRX`1DP8&j8WQC=hE@~vG0(Zl|x^)<7k z{aV!L-s$5u!j1YVq=q~Sz?S;xO&54WrM`WnE#mvNIJ~?KN5T@)072m>km#sT90IbM zd!f?4AfX0jSCDBfU60Ao@Q97q-f)oFn-(2Bf1)s2(n+JU;!JlibNAb114`!EzJ2M# zy3x~JeYQ9?C^C`?U$X`?(ujAx3cDitFaD zlYhIywuCxd7h&;x*^(L!W@RX?%={%J#2VXp3Q8Xv41J?<&+!i$Cq?ZeQQ`bkxsFd4j)pl<7c%zmJ&_gzm$S1^&Jh zq=-c(yB;LuDikvyMPVvE7o^yS$df=e%Gg2Qe*{^p{vJqVDNjdiF&Dt!#aEoaPktQ! zzP&B}F7Sj9{-z5ARnPFTz06cGlG8R11(gWs^6ScfyZrVv58}F`={`{WxzC?NQ7-Dk ziT-=!r$-%Vxp$x6T-zzsO~XMN&^2NVaq#A-FXnL{COgIV{T{)dWXnr^SqHfNv0q>3 zq6FV&rU$-#{}Caj3-V6^WLh0E17wYo_kpZd@@A0c>MTfe^%x>cG%HJX<~0A($1RV+ znKv%UyJYbGVTXXj(*N$p{yum9G9$r_k=%L(%0;!f8}Egg#R~4{8^`(^*n?3wEpE`s zMRW)~3H58G+&->)r+*h^71Yn8T-cl+HbFpywtb_1YLfvMxR3UAL@nqhv9_fpcneBt!7djWqHPrFGjO_)9?+?TV zw|O*I*;||ZkarewS&7#ls5n{nbz}*+EOi+i_a8rv%$jp=X;#uUnq1DloEL(&QIqMr zq)^&6L=d57-63H1LQU8ddOj*b(O3JXvI`5v9-JLv5~mjZ{^0{6iL^^h7t#fneChZH zBX;bXO-X1pl!sCDo`3VC2R3j-==hRwxk#C8&TXs; zX=p-I(g%`DA0+vzAVnl1mjRj9;95vVDCMTHTHWv6M6`j*nE`Dv@?kW|az>MbgbQKK zI-ItcOjok4&3}brZ`u*d)9*quS4CCkFPhciXzc}(u8l`)Q?VDOM{8+F8^6KOx5=6Q zAvS%PqqUT0z0}`6V6Y|}t=&MKm%qU<%5x0YHeyF>YtdjyHo*~7W|%1u9<5zG%PH{v zZNjfdYr~B{JX#y#`JWN~rFOLT&Ug|BHyFl;M{Bp;C(gE`wZ61~jvlSmq1cYr*41LR z5{Ki|DWYbblB*%NuphW|*=VXM6gOuf{64~lXxfg}UZRs3?zu@T7a6VDNg{5xa>hm- zDhB0-^9w^@$c$(Uj1qbELnRI?9eC;@S|o?SA?68uE1twVbNvMI#+x_}pBWtvca!c4?6<23ICds;RaA|m-`1o4Q3tyh zw5yKh0)gUI~R?I-zUvVEV!*H;YR&W5m+*S~}PQ7G=qsn1R7thACUmu{m|g>34lZsL9J6^7sAbdfsG{kXR% zYyB1HjcE&l?JMPW1^U4GPU{meZfT$q2*-04BT;%x^A(A_geCMt)>$A~4rV@%$kN|; z3PAM4G@IHBva%MC^~RCXq*QYG@CAPX_`(|^y4V?Tvwzd$iF>_B@oDCyNSOpv(>l;& zSTs@6?_b{@=y5+t(_4w%JZVqsWjOp{Mq#DeJSE^DAb6rBnka}tKD_mnjF{0 z3Hh2AQP=L{ol}raat%5^&2#Iyjt@QR0%q+7;x98HALm(rq&Zjl&jeIb=jA8lU;M{$ z45#@ZPwHb6@+=R?xy)tkRC+PY6cE~WMLK@}h*RLm>xDl9{u#zEv}UAS$7ei$Z{c5R z6Y||jL7kA-h7*u8EmmosyRz4^CF{ ztVmiU=1F73CgN=(uSe6i6xddqZqmw!aGnY`Z?X*{{MhGuNG#1M{&zA-mz^X}vz5zA zDwMYvfmhi;dWXklx%(ztJ~}sXgJDx_WTPt^$&;n*wIaRca7qKmMYAD&1>qJkmC1j? zi?Ad_q2E73vBlQGIR2F7h(#RY>lxYA&W!qt0sO*%nWZ`OtGqGe z>42wcE4l78t~)VOmnTL@s+pvxz6)9~kmZCmd+j_*uK0b?(%__OrS0h{7WF@nRoa+C z-alU)po{w17E)?KK~=8fsf{iKKgbh*nHY|DmqYG<$SJS}E8vpmT;mTH^%r>l($&nr)N;t;(bPN^^~1v)^2$wue2e5$ zY1oM7kf|s(J`QCe{0u3Lrh$n<@kd%8$b?WU zcjB0}wKd~Y1jjt-9F9jTBd!K1yW~09ALgNYPH}&*pc2C1qMIeKIF*EVdnf>~yv?Or zrm+hpn13f=(FK(Cts|X|WYc}=2{)2mtv)@f)Dx}B9AIpbR^C*f?)ROts?0;vZf^I~ zaiV>#jF+~BSoAlhZ@bc4$E|f!{!N{aBMbBR-0lw=N6E65-*S~-rZBe~b4R3resAeU zakj)8dG8I7A`+3aK(ff}+eRj#X`%0^<0&tccD^ZYLAHaHu1%%L4DU^7b7pw@9Fb5n z!#oR=Ff$B&zy($lo2g7@*vPY9N25^r%y2JtUOqEqJVz^;p*KcG%?w3TAj}N;sZN1^ zaL*F~muWHnFf$DI{BH{XQp*fqjv{*^GYkteLt{gb8HUo>7R?OTpx83QR$6SC;b}~w zEHkVx`OV#=?+ns1!)`2u&kTLgv}J}lGsDdAdycr>>_Q?A7YaoI*`|^Je&|}CB@n#X z{PkEnFlW6H8oH7N@KFG2UD~R|UWK$ajaRp>S7p}42beMY7v{Ppn5(Ae^SOJjqsm#t9|3T}ztVO9J;_L&C{K3H6ciat#)cdy+-lI8<+jJvj}? zMTXBXAe*K*Ja0i8;^hLe!Lu$y<3ag=>_VNF56GX-bR4Y&DX)5fb3xWVL-m=`F9omr52C}kb)YJ=`bMIVLaQMf_|^;$uJ-*P;3EtyB1qOZpIMF zxg)r1k%lJgXge091>}RZ!fXS@-HgOs#sYFLZMsP-kGO)kU1-o)O&!ra+-yb^@Bz8@ z)e?~Wv{1*9$o~;``s&J_{v2R`YGp)VHpeU!3tT)P`xvO1Le>AFUp@Zg5t5>iNm~nr z%rN`Y8bi3|n1urije(jelxu7nHx{Z?&*3Q=Aw1JpIc;95-!)r zSlh7>e)L?F3xf3~ZQ6qMsmq94r*(Dn2nDpiTv0mqYMI%|aO4(_%9hPD+t}yY>AJ8F z@nW90fV5~MQr|sQgjA&VG{=QVJ^2m?zqywZf0=pSuAX%&O$o~*bryAA9;uT&M=MC} zk8x3vT4M@?NS$)KQ($#gzyOfh-uOeLj`sZDT*CZI4XJ;fLd^rI1Hxftb~Zrj$&ZFe zy${8P)P1zrkoqp?evj0hIKlWgCVPQ2q#nXTc%%+S)4&A%UNPm|=n61;4?D6$!2?G) zcXNeR)34=39L}zIG?Gs}DVzsHXLWOUA4v1OFk*<1lx+LCGNXGiWYnFN&93wdA{hht zejH~4jBgxTVXuD2M|Q%b>4kjmf@<2O=fY6)7IBnjWnE(!Z{m0H#_Qx(gV;@WS)O*U zIFm7{Ht_v;Y2*~BtTcPDG+UB1NCL$x+MER5JW2eoNuaOAM3@AQztzRiI~NgunIy1- zXT67JW#yB=lhk?nBrw5qw2}n+V!YKPFu)WDlfa#moC2${0xk)pjXz8RXM6t7d9Qcr zC4t{gq~?(X`i4p1`OAYOa6BD!L>GH^q1ci@e=W8o@FtHbJ_+=ZROS|Y8-uhYus;jo zlfXbUZAswUhr%SVGH<+PGa|0r1{H+ceoTV^+HWimBRoq!bKoVO3*{4+b* z;;v9^m=?nMJro<9&(&gsbA?PA-BRf!1o32D?F<8Ha2|_&JzFYWfTj)3-L&Z@t-K2d zcs3*Awhhkp93QR2`ISrP1okd^s}ITe@JyT0yZf=?Ohs?4IWt7>oC(hPd(kF&IrKi@ zS=Siru*p_SxM1{A$@#vh{h>l>ZI z2MPaDL+>fakoZW(H6eQYTpFNv&ix^JS4Xj-cZL?Tm3ZHFccj}oCGSJbvLCqgW{`&7 z7l(@t4ZTkjnka4zy+>-(O00H`Jw%8y5C1y=-0lY$c2htN7>BPBd0prw)F({gVm??qcz{A%HC zG^5L=a=*9dA*|MI?tikcH=_;T9aoZj-f~;(IV^L<>biNKOC9pEgIWa!P|e`~SRBtgsSq zrM(lMZkhPBTjJBo#HT;hCH3|{dD?y9Ut(bZFEbvo8WlSEp!bf5o%M>@Wn?k_7(?`1 z;qP4}W;9rzOLKdoRo^^UD($3dE4HTD%(cLATb)I#;d>;!%@sT^o z$roICXN)dUEVws+7E$6PV0j#LV>^&*AHgQ2;h-}VkUpri5~PSko4~gdrl2F;0hw38p|eL@d0p%mK?(V)d_B}UUa7zFB+ybNb>la)LVq+#uj!vq9|wVTki4G}wP z(@k3W2#&yPM#R-2g1*1P`I7p5y@3kjucAyz4sH?7LP3(~i`bO*!Eux}I|$8+{7J8) zjH2@3b(Hrm5c5bEB-XiiYW%O?j#3i!DY|4DlLeE~K(JnM!CqVheb*JiVn1Xv`h4l! z%sUXWpwB|_+dJ5ke!iz4i_`Uz%O^+qv84)E6QsTP!SH8TJ<0ONeR0nWNT=kd0Y)av zOo(Q#eh{RkmD`9c^@fS;*>5!8{C8;^pK}p*%*BGHL}|DF7ipgX^i0~SP}&NR>bx0k zb>10R(wk9ol^rplk#Sd2)@o1&jWv~SRY+&j zJUmJAX62JVIcK3LQ*5gMCjk)1(m-ZZkOnqlSxQys zGJ3jiA_Cc%($ZF8=AIm}hUkAaXTSJNcBQcA2X3LB`Mb(VGub)cv1uaT>g>6j^dV4k zGueZtyTDu-3v9uI8+l%O+LiCaI|Ay%_{g()q>R=bxyqqGBCVEq2gDp-DDHE%n9eY_ z6G#z>0NM*=T7BM~$kOAZY$kg;Dc{DVdeBhmRg>x>cp?5);kTDN)edFV%OurVp0yXv z0n5*1`%>rSlj_=@V>pFZ!c6w1Lqq{hsue#b-fGyyOT~NHWM)mO9gIIrs=r_66dob` zOD(DXCr#pDv!h2ilO1@b0KoFww>KgE83Hy%vE{c{wV18M8SEfTz3P;F8X-Jc$!XDu zE)?eu5t|s+-mI0LEx*-j(@k3WT8_YMM#Ob9+4$Quw&zb{kZ`8 z9wLIpX0i{SE(WyW@}wb&UYU~EoeHPbE&iFm%LgplXUm-tdG;gs(jLYl{zn~?fg#b0V0bi&Ez?(Mu?1yc6kDeMjFw+~1j!0Ah)+c>XU&;> z`*?B9WF?;mX#w>;_UPDz%>30U0&dInmub^YT6qcwPBd%tO!mxTd?q^}*;dkug`K4L zwXmrUVP0ZS?8*DPyrn8Lx#=2fD&5|Y&ZH^Q3W4%wWy?3tSt!b++bY1sqs2HX0MBHf zr}IQVlU-k4UXq#YrlBlPogAcrBUqMF|5IgK#2mFOFFF1-Q$GE$3yYDFWkx(x?#2Un znN0agn5McxK6C8KLRL1gsmRagUrCMe``FQMeYr2==;TIsSH)8&as~69p!$vI6WS?5 z1~Aoc89@U_pHl*J{47)O%2ic{U$T(F!rHFZJ@#K`k2|7$NUy`9PYT8Rc((el7Cy|k zxKd;jBW~f3u}*7s!Q#3wtk|4k=d_PDtz(gWT+n!7_@HAzb;&)^Zya2!ZSL^~& z=79cef$lZ*q>!1XcQ8wb)BA}SK^~_{Z5%;v<)-XBDl^OyYB+*yJ;qy>H>}HyARRpG zIdl!7{0LG{otGa$PVyYXDVHRSAXS4z0Ubexn*!koa@K`TfzNoy*G=0;7=Ji|?C$yh zEBs4s+Wyj>Bu;b$Is6MGrK~s>@5s{rEa z^UEbRf0Xj=?wfy>hhh3?1e$*R82-UZ4l#Nkng8M6C!|kcX}vL=cin5q7t>3L6dS`e zAnDH$_9wku#g(%S{A55j2WpZ~_4JL*xw7p+6UfR}KZ9j*JfIaawbnu*Gur;l%2R5L zpHO4WLpP&^3L8608|zDrmFCeKM#v90lDpcNA1>-gVz~TJYvB^+hfbqicwIV7#BTlm z^LdW-AaZ2+{BSaLUOqqU?KxV>4?pZJ3TS>9Z3=|>VSg{xv)Bee5M}C&KgRS+swJBPfgZ_d!~; zw__pvg|bD%gJ{1=o3?0w>QLg&W<*?F*1PF~zSUFBXB>6~QV8t&9d#779A%~}26A#v z_fEH@I^*;F|A2!8%WofTP6#wt#m&)q!zUb4yk1*H{-O`kUcw?){_rss@T9TwEBdQ6 z>lhn#&t>DuXJ=kx79`w{ccDu4-JfLE>zS2ISW(=USlbv&TkR@lM3&5qH)w^iR2by~ zqz~_tml5vz@~Ig@38V(qZgC#8Pz_OB)GLbT5y-*GlO!8cXd_Y_T*&i`hy%{%l3V8=0j} z$(xWtCM$UbNQ`%GrNky!=&gNe0`;NNy9(Obbk z*{~3T|CKWx7IxruK^gGh=2=&!Ica(D_n^+pgMTsUS04QLU?cEV?*$-h++f(R4q2}Z;PSAz<&!u z-oT#&Y2cr+gV@Bt|IlFp_|w|7f&Z)nh@0|1i~D~G{?sr5|0;70{GH{mLUI2Kxy{O7 z<{0?r(_f_*4>$0SVQmHcZ!-(P|HXDxslIy?v);_C0{)@I+D7niPlFO=2nGKP!$JuD z*H3p?*qQgy%Ygq5&ss&JZF%soPo0+se>=~?ZcSKa-G`w|!QW&Ggy3JBo5ysz*tHSiB-2Lk*RA^3XA4JQ$TEfYb*J?rZ<%_<*3pHb)KBWRZAU~D8r&`B8oG=k=u0$~Kb za*9)62UfuCQ_M5|FoJIO{3{6mQj4Iq+5U*2Mf`e`e-HE90|g8S^+GZGpD==6MX^QD zX84I`d+U#Z4tEfe#D*4h`3<{5ffqYGH+KkJcs2_sr^9~P|uJ>+89uGQ;U8`DjL4RfZB0{!{dDeh`&rgRe9Di zG<7QH!Ze+x|_!hA5beJjaWeay^oX{6nnA|eqp~3nzn#y zIv+h-Kz%-txU(4%_x~-R=A7u<@g%Qo^k5)999_x7YMFpq9T8+&j7SFobtsdzx1YFy zPb!i! z?Cd#OiI^`jh5|X64yJ(6?yz-lFV%D`_cdawjX#W-)jj`Z!oSoaW@2x$CnBa8M$Acr zgNW%s(~ju!eE^CrVoK+t*dpd^9w&Une1JS*5%VfY!`iRCgxQ9m1^Y?Q7BN?8(-tv} zdl7dwBjPR@G5Kmr>W1@5A+T?C$iDxI;7&vQJ{V7}@P5hPgALb@lFn_!^~B9YCB=1D zb90F6nqwVUZ`+;t%iy}wvz|qVGv#r88FgMB*T;K~R&c%YR-%C7x`!zc;`)qZoC2R< zC9k;dY5XCsck}!Y3jb2W_4AvO_`vnN5Z6~T4r~rsDAtS$ab1gI!}Y3KY`C6?TwkX% ztz~f1H(AMr2yVmm+AM@02~udi-2Zs6+S$b-pP=6v#*zi@rYq=zs zY5WEA`1C>2RCKsZ!j1ZesqRv4 zzlk<6@A_|t`e~Hc$bqr_K;qh{TZ=NVq2 z%MZTFl~2V8lSVnS4XXcEBW5=0)}jn7skMFGGf+1#7`i-a$w$zP> zxxTkR{brPdEp?_ZuR?hX+HXet!j1NOqJ43h%O>0T`fu`Lhu$G!mr}%`J{&9;n~JKt zl;^;f+Qh#JbT#VNqC8Fi_-yom>W(t7q@Fs|>2?6>HljQ)|D+mx`PL|JmVyR>MUYJf zsqUx`w$$Oi{z6{M(>b0-G<0iWZrEmJ)R(AoKh3wFe?RCE)K5!&{Y^g0Ce5lh%D|HP zbePlaJk-sjZc{hk8IMkU_`nOE{fkhMxq2bos#UXV3PP5@c0 zWIaehGO2I@NI;oxZGvo+$SD+$0GU^EKajOb?g}!kwGt|e|D&;*(d9Q^c!k9~KQ_s>#+iTMrNq$>fr_{Ly={VQ% zO|QYFkr}woWOJ#vZuG*81`rM6CyQ+Oy;4&4Fd|E|V&N#!!5Be%D|G^+}C}Hm-{go zN1gX6+76x9!@u`*8P_k9u=fFc&4&|r4t#heNRf{0_#coWC6T9ttWl>O4YFFvG)VJd zKaj{6neAg4CNKJTe8i*vaoHhPxaw~{NN{)ENt_ujGa-_cFWOO52rLraJ?J-sqEiyn zR6ZFfW1GzZJG0Hj+_67-sRdc9>K+496d~K}57H9k!sBEKU-{}2!0c~~Sr5<+z%9_C z$|)jC5A7`J+y;P=drR*&JRAkm29F^`;#_f7Y7^E z5PzAirzr&3qPF`UMuG=~5NKS;zcPRn)UBtv;nq{<9mLrXv`~DE&=TEJ z{bhS#K{kL2#T&Gkt;7Rv51h@^DS0_I=q4*U8l<86&eg>xhTEIbv~4}@q)oHZ-1Lzg zmGs;5$y-lt-DjYskgSg=n0U5B3jmn}r$+c!ht|NAhgy^~n_t|_M_C?aU`hS4pL6rI zyNF7SCP0~XRGd#t1$rPQkVL^*F@bKlvm3?sUv*(A2@_hOMxw%gd4JT zLi@F-54O~LzW$S_pGSSQjc}v>JLo^i{He}fw+py_nS8%1uy2uZ^|lga(j7s+4kY?3 z6wd^iW?`uGSdcYJ9ssgh$vr`eRf&09kg#r{xDm)kF?ON2I>@||9YEG9`TI5^Ra(h! zLDnewA;@YaUjqqz7K$@LHZ!V7j0ZtBDtQ~oypnm4wMt$BGOgrULaGyW_AA5h`CGGm z4b{x2$6A<_59flo^qPoPb)06nijMJa*?O2DhIB<@vM19|g<**Kv9>4OTi%H;3c&XF=MtZh! z`Z{ge#_7j4A?|EO#0`&#?6Y|j!p%rtq|%vy49jli+7sKBI#%Z;q;mrFTR@*l0e zDDU~P{CU((b27}?CgI!tUEimmZY|2emU`Hi?}PF@%E6X;&%bT6DaspBE^KbB+#7v2 zqYNymNxts)xDC)EpG@&D=B&c?%jD>{fnP)S`kM=!r8|m@ z&LGhrt^Yx$rF&Zc_ZH?FCBFe#t>j#gVlry#Wsoo}{r)k?Mm8vwP6e4)@)nS_O6EYO zmAnXKjgn`8tX6V3NI^2SJQO6LOkXVp*~pHd(yc+}mE1r`g+X*Q-K-a@s{V_vf>+~$ zxP4(D8BKrMOl%bRCz>GrXnHrVB;zf?FEX0;+`_j+lAkXUx!-{}1!S!n|8S6bB?oD# zs=15SRdREXHA=2SWa)|CGMeUfWAi*r$r_a$0kT=iLy5#_x(6Asjic$ND@w-E(X`eE zmvA(l)z?MR=IauFnbGum&)RM?H&${M=aI0HbG=XMDeAoZXu5C($HC)7!e}~?ha>kM z&}dU298DMR<`fv&L-=(xtuy{`G=0PK?;`wBuuyM2u>Aj7_3lp!>S#JU98K5WRFGz) z>8$<3(e$59q}WE&$y&@-;*i>uhrFB{O|MyBNcIDlUJBCk&9n|uYB;?MP1|VNUz=v7 zx$;Tt5qCBt;)bJX!d+G!Nt1?Gta{z>il6p!NA6eyZ{;14!gfV9$49O~LPD3y$iZKr zT;hkuK4D93aF%oY6`PBaX(^C#+mFllqHZn9z>=E2tE)R0b@M0(Tk3!Q{hG~D-iUH$ z^W*NmXuBC@U`gHX>;BYR1BHu^(7Bu%%`ggKkwpX zzZT_^w%y?&vbG!^PKE5XXdi5;Cw=|>Q9m!`CZBLazEf3q)CXJY0sk)1YN+3g@<#s0 z%?q|b-4>LACAF*X`+eMStL6mi#{IQ@`E-=mpd4(eMLRp)Z$Nok$_+EZ4cQ-pY_+Hl zw$wAe{=ul9M}5h=`e`)OKLhoHaV6DwhU>oz*Do`ge9$u(O*Y#|Na>COZ7q-@9g!VD zij+hy-cXopST-Vm09mc%Jdk2pDt!y2SeVG?KsJgq=zGH;^Gee0Z*oE0Rj{>8As&*7ZCQ{X%ZuE2OOYwWSMZ}H-#(Ds+`2Ky zTJ>XBka;Cn04Z654EP6x5?~TJA7oyQ@DY)vb2pSJM72KK1~bhXB{u|_RLmjBWosa3WPI?2exwxbYlhVW@Ki9@rN^tF`j?EtpAtVjG}_=k1L!_;f&(7 zbtPnMMlo`qa7Hl=#WtfDti?8?n2U*1oz4Pw>n2)HR3Zm`N$n_&df8?=|dNN*qik2i#Li7 zZp4z$Y?OjbwfvJ4Hk6N%-IbZmC;(gK%#&UH^`(BM1?9{(sQxEiCicZnPBrH&ox9{x zL!@sRioe-VtR^YWO<~TGwxzs)a>Q-|CcTgy{>W5R91^(Tb1Gs*f(QNe|l2k14M|2lbx}y>4 zP>|@4#($7$>7K@akTpv70$HtOcaUOLYHAgbux_FF&sx$^qZqqTYyp{9@-vXNO1=#; zt>p6{Ym|HxWVMoagA^oFzc+vs;1hW{NC^NUM}y1@& zd-d3?PWqDTw*6vXa_t9EZ7}_u?xo0=oF~$E)5uRXs{Umg(NOB3EaiA-cQr5@{_=4sPpoZz*{`WaMCkj61eALQ9vhwGfaVS5_oTK zr$850z)b?1j6a+Np6B_$?#TR0Z4&tBuOvPufiuEMU;*B?N#KaS;UsVhifs}&P>b10 z9P96N5j73BJK`*EvX*WJ(jxs}7Q(;BvmctaN#OVNJ#s!CYSPNp2rh~IT!Y{<*Rhwk z*r$;hrrTp*&6nT57KxV4KwZ4fW}p_BpRTyp(3;gnU@qN}VvS5{ZJmNzkQ9p7QDLcf zS9_oBOH!nbaq#NT(KwiGun6N|_+}19Z>~g2l!=3FJ?kB*e~W|Z)Oq=_@aq}0GJv*pWqTiKrQb>|+}Vx$_gITh6VuS3gN|ITVi`5GE`bpoln_E!Nl zGHaPD*YVm-oX`7X0W9je$QZaj&4{>eW1<5I z|5DwdbZ^#v|9Jpjn9il%miJmPe`cKizN+E0k#uMyPH+4^iqi^GD^K~MA;f8~4V~L2 zR+h(UJI{JLO$^J=oi3%$%j0yo=U@*c;IzXpqJZMGgDDW=^wbTU0v{|F#c8$ihdABI z^WQK0OAV*97C4+v4sn`YCBSJfy3G+CGfqRX;k2U`vy~X9H_DXH9my?5bWYaNA3z#T z*JL65n6WCFHk>|8_aUNV#=FZ4PDR`pPU#ZPk~rP&5H`Nxbaet|X=s(>pcH5!oSpTx;on*bNmS*PQO?w!09+z^+j>|0*Vc%Cup(Z^ao_jItAvz zoL>By{oWuAr)PZ|;PhlPZ8%*~n{Lv!dU51tGa_ybr&|U%-JU2q#@t(sDL6fYBS3c< zEZtrpujNQ_nu<$TtZXpuw{n|d+_NMaK;%q~c~xk4pK#_n4h6kSjjX#9(Yo326;a_Sn zPLqNP<9rC?wN?mVJd+?2h4J4Vq}X75s}{4BINkQdF;1P5S0i{QD_IB9U_A93v5Cz& z??BTA<2|(LCart|AF*UJB5o@%9>A*TR|@b`!#r&mP$|Gh=KZ@;5FK#F?jeR>0>jKZ zl^g0@*$xX05!()?ZR7c!$Rfne%0KV!>Ry0#hKQ9*STFCoqL|k#bai_n%|dk`MIZH63*9>@Qls z`n!~iwH)9|{{5j9ur&Z{vT1s;ZUmkeqT7{);)Wa-e(KW&q#><6k=TwrlHAe8DfOOT zh-jMQ2T&L%OsW63hKr2>e-M9}9RHwa?M6dd`5eCmbzVNlck~>by%KW#V;H26>oRFm zKxnu0>*}St9KO&TKg{^U9AE6}6h1`wms*ZL?Q^mxrYhsZ9KZdt;%o?7DE^P`3`TSO z8Ys3L|D+bPl^8jDB8%54IrT4b^JFD&0cqh|_)JPIgFUm1^lUl)Xl=SlD__DJU)hX^ z>vFt=pq@$B^CpTkmg~5Ve=TSG$UNRf!KvQT%kr>P=Cq_h35^;yp}Rs#6M6+A3z;wN zlR%`A#b~yHpCVFsd0k}hAf~pwmzI5-)Ft~mr#}x-p@aH9Cu}%I_$v~ZPL;iVeNnZH zDu2OwrpkWpg1FulB>F29w*XnIdr&=y94m^_k6o~4{9_kx-%DO1*Cb1~8ELiPfBE9O z#s83rie@63fqE11Q!G!w*d}hKs7Y8Q19;6v5 z0}`Us?}-yRzf*pGb$))w{QMR3^V{d=FPER+E}zZZ0wg^Uz5TSv7sRY8tM`7Eh|rR8R}_b!LwC2?KJS z$%>U{u1PG9FSkt9tY&J7yQq4+VnVy-`pk0l_t=^I|BBIrE|EX>pvlX{eX~;JTBz#9 zEp%SSS3hxw=gwI(#x<}T`k64lYfOTxRe}lineile={CBPp3hbezqozH*hPy+^~qKq zM1N+QMsJv{+?W2^W+{ z%9qj3Svy!hS6{gr*UeQvFK^ToiWg3+r~uot=k&`~en~T$Ow+|x*~$;(uXB2r zj-gIzJ<68NrCy__^3xo7t>2CA;1??IqsQEB9^Yc46I!amIyqa7C8V*nNmq8#B{TW| z9jMBv;bY}VyRq`9Vssj1V(~q_OT}lC=v0JTIdSZwcIRvyE1XATd!!3(@8S{ao&h^$ zYS_u+t`4M2m3CAcPH)l~q$v2TygE}T?#S;&jGe|=umkugx@hXow2%zp4C*H)d!55Z3|KMK)@ZVin^gCsr_Wrp|r1I;96RGAHpUtR7D4)%!ep)2M zrOl`g#nF|`sP+MAdGegOiEoXLI?kJ z;!S^0=A~btit0bAvbg)7{J2nDk#eoq)iUtUi;`_{rFLhD`?VOK+2DBPGaG!5a~89~ zLD(iV8|($rY;fkBWE&hE>&$HMTaVBNYtXSzXoCi_UV;sF71I=o%m1BZgO=ZtZ7^QD zGaJl~@tF;VE1%imTb$jS4Th4GggUdq?jX$uBi~Q9!Qrva%mxeTOBFoJZ_>GTicW?? z8(c%yOR&L?VjBAX6Gh6BIQZ_@WE+gr?#u=+#Q4kxM<}1!;A@;?m<{$LDI+%66{OkV z@HW;RS zW`oahfx&Dr5POZ2)p0w5G#i}oZn6yyh;?Q*nBP6LK}R}T3T;qN)=RL#R$>~u|4w*V z(gt7toNR+J+MU_p=@_5c;6UXw8+?MSXEx}M^EtCYACP8)W8O)&!H`&IW`l3&+DbGQ zR-l8Q&;}W@UV;ra7t_%DpM-}cZ7^?PvJFOScV>ebF+Q_FTKUWdA0X?Q4f^4D%51O| zNVCC_ZztPe-&kj6gD>c6Pt*pL-^Fck30W_}2Ahg$==*nshb3+B(ND=X7^U5r4IYj0 znGFUhpV{DjWIeONE+l0nA8ZcNY;fpX$u`(K)|uJhQ@R5mwLv>N-3f8k6RF# zimXD8N-+21^0-jEn4lLix7y(3Sa&9EJLzsoH=L}kZJF3ww^(cDo@Hat&9d`<2$eO@ zyhG0uRQXQ4Tqr(D2=b~}rCVc-nLGQ?Z65}zb$V`$&)m6+@|im)AWzn*|Nbck(bEFb z+}Z7oWOuF*>&)DFJH1mAjh^S}JSTMLZe+6r8x-X+-TxzKdmH4{oi~41D=ljN<8)$oz22pwP zYVcJ2xwf-xteskYKL6Xqa9xfd!>h;FD0z50S?ANKQc~x)#-7)zP?yD?r}g>i$(>(L zp5xAkBzC?-tTEGk-Pm*MdG6FjS&#Q)&#kFv=y~bJ#HQ|yRWYfuvFFy* z+5CLSlBPX8#&7NH5qoa!Y!-WNgY!G2aYF9yMKEB~{!IS$om(fL6cfSlo4Bb^oE20u z3GSmxQ81*{x!1&=*XZ-}`T2Ifb8F|A7{9eMF!tP>w^<=k!+liP)dFFyvA@0vg|!j- zdb$u99iiWi@!1G{n)2BQ{p;5>>IUfC!1yjq`c6?<+2%$l+1Hoz$=5=6rJNCR*pFbIUp4R7g#Gk92SJ3kkIVEAZJtJ1dR6Zp3+*IBz_Pj;A-uVBp z_ulbURoUBk0z|PUs3`W>VQiP4h)Pf+7fr@kP%H@6v7kl;bw*JzM7dtCUJHtKaBSE! zI$%V>P;bB%6a{#io{;jlgHB6zQtaw^PM5q71|jb{8?G6+q*glG z;++*{gDiTr(08%us^dnaOMDWws|a5S7mo{n>tko7Z-6Ih{H(LmeeO!+FI4GjXQeUj zO0`m{GFnMu{0p46%sLu%gw)z9T1ybhhp2E&DxxhPMd^y@Qj4yLK1cMbIB54-beZgKsdaj^mLTz0h;o^1fJIl6?O@T>Wa|;#VY073jPh5LU4sKB zPLs{HDyYdG1l?h>Ic$`icMTjf4rH~(EUWgn=-Rq6i>|Hf=@vdjgm2&!{{06|jW?D` z%iscm#;VyIR0`WeHG9aSt7bP?^n|qV5{q6W^pin%z<4RlM=4~mQ>k7SGgYdaMOUSM zem~j>Rq7+q9m0QMbn*Qkcxr%%rs>Dsl@>~+Or%m)nt7?EfoeR;qN~P3ExKyFuSG8s z{#$|WXh}kpYKM)3mSm;U$L~d9sTTSYi(V!4r!9Iy=y!td5dI9C7Uv5@I8Gr3i%rSY zhu-T@x+2wVZ)09A^$w0Gt?=*d7Ivsq+SFO8{avSqYVq0 zv(gQy6pk0g`Vxz-Sf6as73)LY!pUDq<2^)p4AUzCj|0;^q~14hh@hpa+}rOs;rWiC z#`iC!QcPGkx3F1K@9Ky!g>{TuSglm5bXFSZu2dzJdN?a}a#z|`Dt!X$2Uw_jue|Lx z;0%kd2E50js{w04cLc?~Y}cH3rU;K=IvYwm40xv0+b5#53hQAhp>y22eCmUPRp_=A z(Z=Zq*r~$pG`T&;+$v&Io{i4S)T?SNVLHd%R)lHSdjR%; zg2X`Q8=iAxcPiTxUu}dl2ZmE|TUg?%B|H7PJlbZ(>{E-Lkn%5s?l9bEtW(Z=0^Sn{ zS7x_c%+vt;=0y!~fmKcou)dU21KfnO0wDvmH$@E4Vs6y{Tg-GDppzv`4R9w;9fcPe zUcjzU)Bq*G(t*K8OwM_az!?J!vI5*KZ$*Kw7W(BDT`@b&q9>&M;h;N&pDx1piU?O` zTUyN208ioz72yc@`pu}4YJh8`oEo4A2NgmFxD*hDBH%1@s|L8`KW+m|w1lYvwiaO; z0fVrQ6E(oIZVX1VZ{n>TL_%NyRbw+tTvh=6Wm&Y%)k6Q+qAQk5h#p$5Q$9~y<(1E! z7Cj;SuLj*=$h)|0IRAu*3L2rpD=lVf$j@+0J#5I`ta56|*-}moITR-iLWX?um53q# zX>Jw4B~QBzS^q{9K{aHR2vb8|g!9r-Lw@bX;C7gb`teb4>Np0&EOCm#M>uUC#$YF_ zoMP~tlv4~2HVJ!z17`Lo9KM!P|HbC5*w=RyoDs-%?I77-ag53E~I; zf|el+ZZWrt!5r+0xkj>&H@Pu5M1&~@XD+re_!w$BFi0~rIqzu1L>z+yEOCm#n>d0Q z#-O`ZPBC~w$|(i|P3l$*?uC{i3~n^HiovWW-55-N&5c2s2vZDBZL~4?0BSlgxR#;8 z{ug2*jzOs@BEgGZ#CV$c`;4H~T&+zBm17^KauVleXwHwF*9>c(Jy z5vCZNj7^(pEW86X9T?OwG&p~Zm9S@xY~(VK)m*`n78z1pHH#z#F43&fXfFJz#w{)Y&OBeDyaIV$ZhmAXVK zDI#CL9BsKG@|HzcMCMp@MdTriu87=V(G`(PEV?3cvPD-!${uqfGK#$b^IybEfQVM= zW--f(`F?&W+URPbe+0S%!Cx3ytpC8b0wK!mad)MKQYjOuq>?VRG^i2{Mp^WP(1%*| zBBAeV(G~WsEV{zJdP%h93i}rpT@hUTh!b`Xz|wG~4!#vf5oMEV^R#C2TG;Y@XDZ4wNz?pbR)9VqAMcLS#(9@K8vo1q%683 za-l_6M2@%UipZdcors*kUVy*<9%-Cb+Sp>INUh368?9ix2f72n9~fBt{WJJhfS@va z*j=eXDou`5Qb`wC8dQlnPO#_+p&w+?i-i6ci>|P5X3-V)Ulv7MuCRY>(G|f34?1E0 z1i+FbJ_g?k5Yb9gEM{3zcDzNe7Wx^WJ7B+3gd7?XqRbNRO2ed5w@4+G^xuWi=2wXZ zpIG#S&|k9XMM8hZqATooS#*WH#-c0i=UQ|{u<`*X>|Q40DD%H+5yZQFb`>=XwemsOD(!0GRmSWB10{@BGT($PDGOI z1v#%M(l|xrmw8S^HkV58!dK#mEJUU7^sh>M=Lw6hh)l8QipY42u85pr(G`(Oi>`?D zx9Ez`=tv*?P*_xCyx*-RSu4$K}$WWkG0MBWGLgvf)DN{YyhsN_QA zQj4yLjI!v8$WV)}i0o_86_Kqhx+1cAPE;R7iZ~^t8n+D}iyR zMOQGc2Hhd#E?9{WJk2Sj(qg7U`df4rvb|f#01@&#Y#g*inR&CFn&nHS#gR%X=^0dV z+4e4ro)B1SEP9d9&$Z}k+oLVI+IEmdSKIDl(bY@^cROvnD_n%*A2tpU(MoT<5N(_y zHOHbW7!QH&uYf+`PibXkR_lygnYu*!}uSL6ttvDG@D{E(>2Py@ztjA8s&LbIbEYHkaD_4dE;|{ zGgzbi@fp6ICQH{}m|Mkuvpd{tlzEmg-M5*Fqw=Jbu2IgyzE5^S9sBM_oa!x7?y9#Hue^^dg}@Y|%BCZX|l>9fxWuf2mbo z<&LuGDtD+w*Pz@N^bpqD+#a>N#%NcodREq7+n$X!zgp-kKzDfjw*Zo2_c?fe;PL8o z_gl=e($=&^R}3z83n70YA;&m{9B469A-h|26|$*Y$Q~l(8~9tiC2!A+!lFXvT67ii z277?P%3Oiu-(~M{ftHf3xTJ(g_a~8cw z=ud&(@_UzXXsJ8gN{>E?K9X$J>jMhbT=bc697)y6BQahrj}EewP^JH3(N*cqh!r;R z9C82CfA9z!dX7i$;gM@tv%sROl*cW4k!X7>(H)_Gg;ic#ak@oU{uLIzO=7g4MbC=d zEpLhDfF>#51?5|g#&?L~{@(Ho9+gBNiK(u9k4&{)^qEL{nyR_qRJ7ovPiL&VoLdXA+>4@Mp-w?USaYLT*wMXwV2MixCG^zZ*2ZFP~*-vzzpFA>oy zqQRtGs>GsK3%%H)Yooim zh3_Q7TaX$8;acg9r=m#d2=-hYh76BjAG6Bo2=-tprz6-`aCjgzg6&6JYnfUd!R}^m z{g&Sl4VkR8@IXtLj$q$fZj{pTU^})-q9fR`ZVa}EpO67QLvDy;@Y<7Z4E`qK6!?d& za*DxVDW@1L#^Hew1_|2Y3NYBo+$shY88-&|S;7>9*KtTPJc?iSkc~k#&~rH9)(lO~ z`w0FJ$Ka(W+!&lD;uM4Xt#XRNAStI9ETql-U?#H{ZE6J=Y;SHAgXHyY3VE$un3{Dhrioso0 zImMu_lv505KN`VcSK4I@{GhwJRSe3mb7QcNB}_3`gkz3j47~eo3{D4n4h%M7XmZ}0 z@P{}CFFxwV;5ZSd7~F1^Qw;W%a*DxoChJX*(N-}m6~dsKxm67IPq{JpizQ4kn1^GI zVGKUSW=Yf!Mgu(u1{*Lm`1{}Rhd2h$KjOyVXc4Cv++vke4EB_Aiopz%^%R5cV5txW zo0wb0pk%TegWWA*ioqNla|~n9e4mZMNkGqmK>^Y+!B`gMQb#G1%D>rWnk^F~=|l?@hBY7yfyp@kf=~%C z$jY$v;Rl?R8l=+XNF}x3MW_^>BrCHMEP8|V4&UKmy6X+%6GY0+PAMCA!0iFz*1Bc9 zE$`lswgm4;y-c_9vzVU&U>Y|+f%ph`sH#IdQ1vOPb!ntlm7sVEM1=v-8OP5!jZQ{W zPb#&_sV6O!a_UJZn!Kr=G>Ya67zc1Qy6+g?OtN4F`-g2I>!cKtI)*3vnNVQ^rpm5Sql%gmW z&+frm^l@rYVM)_EpDrfNe|N4-^|0!w=6M!fc}-qnl<(APTZ@}&)!Cw}R;~YxwnDXf!=kHJ&x77_ zO(&O^O`}KWMjmCQEwvW6Dxsfe(Gx-+ZqciSegKK+8WEvBzB4`gDnG24N?+gNrqaK; zH`;cUzTBd#^cO*Ixh^6?r9VKAE{Hr*=_!kwO25#etMub7x=J5HBJg)3LQA2_YIm!O zrp`HwqN(%ud!h~2)Onkf8?7@DIuH>|P_M-TY$$bJW^T3V_g~>ooi|y+GufB1{|8PL;HW|-p;F5*XODe0J=(|l=&$r>^T;FBt}h;i9W5b1Z)?$ugx=YrYu0SN zJ<6v_%D(}6%Y;ZztB>lfDk^%KMOV?2ExL-Xw&>t ztBR`n!)?)4tE%r?bX9esMORgyu;{Al6pOB^jt9Mi-L+G#Dpk_D!z{Wsp^rt^CTwHT zwF#Xpx;EjcZ-{jedat*zywPNzuz2fvW|UjlX9bV{Cjg`>~k%) zp~B-|bE`JK|3b?v1;?8#VLJBdCBn4Hhhu{$8069yUvh3ltJwo{UJ3jVuStvi$IJuqI0k?t)pETDBQk)D+Dc7IG5fSZK=ZfoJF4|L31Qa2^ME>vdSq^y*kk5CYXtkIzFO} zM%lp@H`Q`ai>_L34!R>N?Il81!N@_ARmcZ7M4PNa7Fl!^@}xztlF+{mbcgV#*x_>C zr4iv;=@g4uE&Wk1;PLa!Xc8;6%3UMnmP)zNVviGXfFLx1n}>a)P!fB_-1;pa<4$5P zXQGH`W<6bmsZp=NjtnKSq5dSk6B(u?j`2S%j>=&(;uwysgn&5=6&zrm$_B>wui(Ui z6a{k&ON#3K_>3r+E3c2XPkV$(Qcl6#)a3jLg6%joHw5OH=2pSH>0CFMS6RZeN7zb) zDHNsH+KKiEGu#-Q%zl>hc86C77^oUWmbk0{+MbTKxmxJW7G1Gy1l?hPk60&s{|a6m z2-ixtSj^M_d;TYCfOD;KYJkpCP7RR35rB|4ubLDwz-Q*xZ}~ZH1N?qnwB>4m+nzB> zsR8P1YyuC>G| z20My4#bA_GPBHkYE{efKle;HKGV-8h2!prHtzyvSZ*B~}yVi}tbs|hLczlA5K~I>< zfx%KH=e#=*6LAb`EOCm#wjxe3IMFJn7<`ZO+TnfT@h0Ue2A@L95C(6WTg4#nOg9E! zU*pE$8WE-#Oux#;U{{#Rfx#<8ma=2t&>4_byWc*Wc*2JNT0G5CCv8-puFm|`$(yp6$jFqH#?g-p(Q z8N@_@fvRz-B`zx+@F5-FmCba(?FUvF=U?C?fo@qb>cbW{wa1O1JB&SDm{mKOoj}YS z^M->gA*%8_j{t!1yg{XRb4&k=NdFEl7c?ayO?huZ6d0XcjkTpzNrlI(3hJ8&Qw4aH zYExsCQ{UWH%8eG^e9&ZVHSfmQSPS{)Z-3`o_0686+`hS`B}{$u$>~NZ#jfcx+czuR zppm~&e9nef1)!-K4__4pP1z4-aq(0`{zBX?aB@4o18(0w?Dq8Ih1*U}ZX0#L?fwq9 zZ6w^@fSbfyI{V6KOS9qy4_b7!dd8xw*Ng+*5g9kYZUoG+5#d^?%wndlw&J0vtM#zT zsjJmVId!%D(3`=x)Yb00G~#MEn_IQC%3P!h$^qjUef`$uUX}sHxo`0=%!9E&Elp`Fd1}* zvF{URXFHi4P0So=aF8WLRes|E0N_f48@i?MBGOyoazRrP;?Hkh9tB3z;CZ$b_00#Y z3hJBtQ-x3(yuvD{zPW{z8!c(@UX%CKyanSTzWF0Ig1}ULbEgyBzFBAqQ{Q~}exsCP zxAYH7N+m3OaM_VIe_1R^AclzvCK$KLT0q==3+nkt%gsAXq!OZ2F7r2E?79mv;A?j)S zSS+gvFm;7d z7uufot{a0%uonScfqWMLtr!fj#3=@^PK#o&sZ~xfcu2}A1__hvCrI$!4lM!6G`XE@ zZWV)Pj&);j-=%I0N=2AraALKM!E&hSNRSg4nw*z}XU8$2ZS$93FoMLdVlv50Pnlw8>41XiE3}GLqBaa2bI zE_HVlxW!gE1@06nr@*zERH?ung{FmoJJ{SRaOWT82JR$Fm?qLycNwJ=xGk|?72P7a z*^R*<#xv)2Mj*w3`|2VmaO+8>SK)a z6}YX@v=DF`np*{~|B-IscCmyhaL?Zv1@3)pjYNSv9*{enrxW9u^OnGg0u0pS{&S(T z(ksjh>z|QI3fxtwW;87X+){I^!2NoJ8@Mm4 zqe>}oSBtO)Nrn%cZ39>AcAmvd#`-6mC;(0|xZDz_&a=6QQw)x_$|(k|Q==G+Gf7!7 zcn?~JFnGn>DhBO;bz|`P1#S$k6k&?NH0-BDoo73@A1q`t)<5Ay0R~wKj7uTT;c;21 zG{RZwAa|t`rP40WN}E^>Q*?hgKiXim&ifWUAsR2V=tV+*!lLWRwkZ}}PqvM>=yh^} z?F@^a6?&ybuNHcLi(V!4?Jasj=mi$NNa$ak7sa9N2Xp4&O^ef&uEr^|=xUsv7F~@~WYOEC(d}cRjcyWpvqi5HdZR_p3cb#v zR||crMXwV21dE;!`dJpeNa$4-U5!&>(bYJ`7F~_g)uLy`Xl>_4ai|vh3X5JP^ahKb z5c+hBUL^FaMQ>YWoa-`+-X!$V7QIgBNzfh6bqdT&Q>0$Vl!0?;s(KcqQ%9w}q|z#Q zX1vl3w@`A8&(wbef+ULkIaEuM!1QyXIA(>O1>HJXtBH7A2USK|^lD*MZqciRzPCkB z2)(;SFB1B1XGc|S6Ic7pqBjZs70_GoC*MPdgR{cwX{$=L(C@V9RYJeoq9=rYjzupL z`cW2LRo##1X9ZSJ{ySUctA)>o7CkHU@6L)sp^kIiP4I#6C`GZDYgMQdj2;2q;WP7K z0`i&b;Bj$n$6CyE7_c!(M+dIjS6JnA81QK}It(};yZor8!+m&oo~^r#5TuT^n}n4 zwCF`b-`%3CuWV}3)s#P;8EvSV@&k*W6%#MA=+#1h(xO)h{Wgo95c-uCy-4V1TJ$!_ zpntXKO+p`F(d&f1gGJ8@eLag_E%dL?h~iKs^tXr}`c#_QWsX(8TJV3!qGyGEgGEmW z|4S@-kLpSS2)q2Et*N64hD@@kihEqYdPKGC9A3;%;H zdX>=kwCD+;Zw|U6WcGqPP{^!8Mu>;Z2d6~A(2%+0x@gGEw90A7{8h?n$gDs|5$cr& zpBM?5gt^s_IkC(gGQ%uk8ZsZHj8Ymhov{mq$!X!F3&XwA<-nn3l(ScA8y#(}nr4MX zuM*QVSoDO@r(5(Qp=T|6o4Dd-7QIR6qb+)!(32KDEA)g#uNHa_i(V!4Jd2(Xx;H9{ zLy^#%EP9)`R=q`U68bcYUMKX)7CkHUYKvYi^br=lO6X-4Jt6d-7QIO5MHXFqllGI{ zq1sIJ^@FHTe`vJmS+Q@OMb~-EREw_jm>Npj4Fz?`tvB zP<`o|XsB*vmD5nYU&?8y?u`y76soskqYJmwr0=UWw;HN-`@2K+-jPuRHB<+PFb&la z*h1n^eJ&iTO;EMvVP~k8Ta48-ds}oxr@KW@2x`Bb6jiWD=$~2iHVJ`OEP9jBXIS() zq2FWCvqG=6=+#0$&!SfeeYizW2>k$yUL^G0EP9)Sz$O;GN$5YE7{#GZ={$sY0)*r`df4jvF$CohFAg79li5cCq!{jzk1W6 zXT?uuTl8uP;Rh{xmC!R5Jt6dQ7QIO5BSCkhf=ggVN(BcZqXnrzqp_#OY=Q)B!_|}u z;;R`wgZTS~dnqWQED zkz}+!cG*J7s2zJpxYg$GQsPcV-7I06j2@X79XGs$9Ti&C-p3zi4<$f%44_f#zc?Za zO+uRgFz61P8`zjRZ!(fmz)Uf_$YQ3LZ7Awh3-iOQa*El<6HGG{voR(`tMT7Jt3sG9 zFt>`?Hv`<5y?K5$p=OL$#fRSqpMQpqiTJjbo!osCmx4%D}G7AG6A-c@CCxYMxhc zVgU9~^YjCNA@l5JZWWiR{%-ReXbDsEyme*NrD>lhx=%CKjluTpx%mDuTs4ltYs1|b z{7u9u1`k{16obK1PBBVY_6LE^c{Z=`}V33qk3>KPPrhc#&EEU3FdvmK8B>TEC7+?ug z3|_q=ia}e2jlme8=fI#lLxb-h!yn=paJH~egfEAS#9^6>O5qkNvqvntDs_`v$fGbOVSf>Xc=ymv=8WbOhnzHI z=H7kpfsqyXU?gurlmzPWzJhPa7D%+Ep{{8Ohf~~z=eIEYtUV_fq z#eTh`QE|lS$#j?9dg5s^Rqpj}NM;Itcp0@JG>tW)WNky?tqqeJ3Mc)Wiew7%nBO8? z-9SQ6jPOjRyN{Yrw{H<;EKxEA+xbOLlcN8nR;Ii63yKaiMK|<|mPpYiQ*?u%=nkgn zRd-W^NP$hH=!2%{2lIRdz6YgcFO0rX>O;T$`veZu8)wQt8I+$-luW^|FHwQ=`eYja zp**Zb|N`M$38k+O)R@#TE)9NH-=&Q&63){N=a1(4jsFpp);_*V8WFuo1dkED z)02B{!3G~&;2lOI`w$^+d_AWEj-X1^K3r07SaU%LA?LD79tG*|2WzIrveE-D?kgt*rBSdESG zwE2PNr(R4psqGr2PBqjbP+Rv!4&}!v-H*;Irl~?19@Q}W{Lu3@s+XBU^?WMZ;C4KK z4gLc?X0qGW78{BD1J3VU#Co(tUudV)BBMth%C_v)m3Y^32~>E59*hOWs}ZNjL` zKhWR+qntpe)S*dk2tm-Y-}O+#@q)BW^ORF#c+9!7eT8pfVwigzLR3KdV6l~LB4^aACN zC_P=2%#_y|CZ*j;J_V{#&QQ-b;a^7@&IS-ImsnhkGVh-3E7Oc_9m<@uW@YxZ*g#36 z%$bGf&m&=PZsk(vox{l`%2}O#NS!aN#u{~w57ar*sFN`2bh3(Ps;Z*xz2i_Yz1b>d zn061C{)({%+IX5_ia4-=1>j?ku)t2528zw5Y~gC(FNX!~`zyStbweWp62c-1XHG}} zK&TKAlBt4Y0G!MwPu}kP)e1OASQ9OTe4bkFr9uMVA4L0I%*JtUq-mZMt80W;OC?sEu~yjk2r@b=K^BsZe_ zS!v&?(!=udAW$sd4~kBDw{X&xz#v!KCLz)?*z&1Nwh>&@Tp&4>IxsZ&<&977|&g z{4FUf?fnebHH=cefOXo6WXMhh1S3g2nfB~T=NI1GfB{tPO{Qz`)25oU0Hu9%Zp}VL zKH2@vlyA-#hK9{~2IL3kT=hrhqyoM zmZ?tT254=l+;tV=0abqnla`k45WxO8uh#UOIqydlfeXVWhpz~a^-d-ihF9*6jN#WZ z5NrwPYyV+Gd)MdVF8iZJ`k;L0vc?ukJ1g> zOQS?T-Hrm?(aOunvfx!lfTqg{0e?h$5w#Y0J0DIwsL6qD&|Z>O+J)lSC`4`leBbJQkH$NH{5cpwVr zYNw(U7?aD;C1;wC)|wU6TlSn_5c!7v-2!0bo;Osa>WcAC?~f*Y zo=itp3yvFdtmf5rglsskHui3)$UH$A?D@`kRFP`QaW6;N6=pIW9?cV9Jd&IqBhlBq zqjt{AtIV9y6EgF2wZFn?d3KWF%Vdg5PcWq^CcZ}LVKob+G-W~(1m2t!x%9C?>Fahu z=}g70QoIX_^Dr?}OP7ZEfq^Q!?V6Xzii00D0(qV@sada(nm=*I;1L0bGT&!ve+0QA z&E+f78Cu_{peTL~{|-wvC21z`3z|~>tXV_34W~yS#W2fxd(t#FnYo9hPMkl@w2AM; z9zDq(>+J-e{v2$&)e#%QW=Cd7iw0kGCQNhQ_ApvSX17D};Ca%yBJ~j@nFe#WLTZNq z*t*KM#pDFpV$80XT({EtNr2L(rcg!d8}Bp}8dkF~Ugqs1m=Tp3+)7unM`Gz z&*P>HImb`?GE7E~ocG;oi8jQyd;isQHsaUP4sK*>(_WzYGhF3#VTm( zeL{6p^Nrdt=MglyPi?;!RY@1@#x=G7C)*E8EgJHo#E#gn2gtttDpEgIq~K@YR;2z* z6HPc-rr>L7{dL?HF=5WjnM7K!{0T*4p^wHlumpL|C#8(W%fjJFQZG~RpkLz|zsBFO zAw@O*jT&ZjQZN$_F*+%jLxnO04-1pC4U^G6lN)>{{e;PwfXPk5a%!6#ri3_H&zp{ykl`a^&>9CrWJt?d0 zLw(ifm8n&JS6Ny6)!5$koZEV>ph!m!ncLhcnNL5RhhPzAoBd~&-b~bgYGF(>oKWyF=~1D(#^yL)Ro8%$dFON2;QsxdG+ex zmPa4KZFc1REQ#ga66}=VUT^>Kl6F>L%l4oOQ&QvFKy8atLkvR&+Y4vr!8)jci;{U* z6A0C;S()GtHZ`s}nHs(#Su=h`-nb394J~(|z20t!W~^Ramduq?`}0~y0^nxSDwz+a zmB5=W8)dQV3R8Ujdi<_#JppB<0F{+$TDD5d!Zq_+_es{2x92mrLFFqhx`TCS?Lp%> zsp`qn%8vaadr7(n<^2Oa8dTksdBEbAV^rL_iQc{4*RDk^Uy&NOEId4D@7<6tUpCj< zadP<=6UKj$H+Fs8{~auNQL^%mrXzV#XaOp$Y|ayC2Nh z9O(u}r)t6G2n~};&=%l2t|8nQ+Ehzp7iO+Ecyjq06UM)hH+BOipg~>uA_X16i`zs> zzP%GQY8mu=9gS+{M!kWiOQT*#VMqxYwI4t*g>zmz<^t5HH%uXJ)G7|6xnx8FkVjJ+ zVthoc@`6^4X+6UaO_H4R9wTOsZKKWmn`nM_U=Yo$Q_gGbLyyp&;l$a`E+4^LIQ~(? zTShljJ~CchBY>Im4-FKk*Wd$HR}7%Y&L5iAF7?;Z_CTTpB&bB^bxc!%SJrIFsd=dnXgtvh&TE2)8DGzg6yvGE0=(UhYM^EWV-Ks zD0O8^XHltSy8rVJQg4^5r;zs&G%~T=yN^-93)~x`+o=>5g1aJv?f;i?Cc<%x4VL`Y zuKF;XX=Ps;5z*$I`U~d;lL-bP4c^*-eN^UHMU~r#bFy^axb<1B)`OHGOB=g47Xhf} zB41HIC%Q<+TMC7-4<&UAIBkV?x>fs7&W&ev)z)w>qCJTnNK8e#tO&`En?H+tTHb*g zvbxD30j;2#XkAnmH!4aZSh!W#=wO+cQ_Z`0JtA>p2=zFr@xP|VwWrH}-6h-)`P7Xp zDhmG86cQ#aOO0Dag3@{E;j2<_0n29y%k=Q}R41Z`jNMU%F&$T6=S+?JG{yarmoDp( zD*rWI-V8CPq83}sgRAr~8wfXnhAu2!{wZs+xueJdRHXdZxLTy_EUXdd&FM=13<+aV z)ZK)jY?+j$t;JZ`(eRMzi^^x`FDjpd|6a_`l{XZlLauxP{Uq6Z6fVd@h~Dz)Xh~Pf zNVvv-MWF(v^Z3NX*a|9^Dht{Lj;3?Q&-~jQUQ5!Nxs{CazYfGaSY2u5bbot9PP$+Lp z;j*c9J6uv>xD*O6OAlWLLVH``+@e%dwx&Jbw18rjRP(l{&LU)oOu=)Ly5u<`J=He3 zoPEr+18wVCIA=Ih*zBv9hPbGcMe7v*K^^k5b`G7CjA|INo)!4vaZY6$wZ)855TlDj zBR^YW;mooUK(|HV%<@%*GaD!rl2Z$39@43_^)H4=&KtT9XJbS^Stb$J4!{IsOG(nH zZ&OXFC6kALI=Q?V%s(~EJz_qoQz`riQnzwGXgv&qJtM3PZ32AFg>x!DC90;K$>lJ9 z`Re`3o5%LBm{hKwd_4=G0wJt{nbGOY)bLf4DcN!=Phh0bRygzZWIq0FDttEY%w5V? zor&}{#Y$hviR0T>L+?wA>hn73e$`Lo+FJ|k#3mS%fE>9#`97?X^Jv}>!Ag4+KSqE) zm#u=|_}7R9)X$X_6R*(N+E0FKmlFR^q|bXeldMDfyxOW@`%OD#Xy2{j-X>QrBNxnc z&rCtD%>V%(gf5bJRZ%D`>2MCvPmN!R@MwOq2k`P9=}F@ajCUy2@__b3?^@QPV9`A~ z<-MC2)3ESE?~%QA_P2m;@5G7;%@tw3Z}240m;6b36R5%Zz(#aXWHoFQDaX3zA*qbr zQZGA=-AFIjkM`N&x)Mt$$*GEJkRlDozz;&r)|rPszZIk5h@XW#lIkxY9iuT@L^(y; zLq+B?LIQEb0a-|{tS31mT`ww2L^7lJGiT1>aR!fs_n_^%lMC9o!glP}b!JRX);YIrx0D5q$%$0426B_cUcu!M$SDcX%QqRGLv=Ee8 zl~rA2?vLaF>7ufu#+v)1X>Nw{$6R85hqI>|xXMNlM#6Z+&ZfZe@_WL*=Ke(aJ?SKK zKT>{AKE>RRTHpMR7KKj{g-;c}r-{O+i^6A!!e@%Ye-nkz5{1teh0hU%&t-*?E_&}r zWB#gY5*OTFCbzx#X?B7DnVT?~FvUOgoKj2ndbuIDy1{f=tO|O;qzw0K8b)xYPF+1U zRQMEAnDxYPxVoi5*-jvybBggl@a&5T0fyLG>@r^IVCkkn>D$fSmF9AXMbqa^OoQG*py-?lM$*}TP?|jG>#f&0D;FaxVaoy!`_Ls>RMjB|7v9TF% zud#s4!Jj){$(*Q z-}&vO)4-HCV5vqR*nq)HeKJ*9cSx%I@k3IL>EXqbX--q#19OdOsiw*0cjKlfZnF4I z;CC{9llYy0->PJ)_A-O*2wYaJXMvXD_9YNa^8)*n97UFswtuyb7f=2@Koe7Dsn#U;Nj7t30ZxVn{X># z;veQ!V8RzGWl}U*P)E;D`3|4bD3l$AlAF*B3jJevcyxst55oxzg+3xhl-8X^M?SvD z4;M}7jfbXOW^xG?4A#c@iZ=Vs??<_x7y8~ux2!8+?+%6eO^Ze-mqinf4=zujODYj8 z3l>g#544uo@jqS5l6AF=a!VGd!b^4#ixg<1o~A7~g55tAH<|Wmn4(Y}(?cl==Rryl zOB|zh#CWHw965Y;6z+qAO2i!K9YBTRYi-BEhw1SSZ~$)@-S9G`@6-Nx(k#y)ty7q@ z!)>%ZH?J+3W`}EscNK?n`x;j;NvXhf=WfTG$kmFOTr;m&ggj&(H9$xi<78a8A#MEE za^psBKzT#qOz!C$C-V;q)9|1%Wq#P9NqEgXI5s!sOoJ%uWy!gz@MOJeNN35*nSpz;CeAZu-YdYLutR^!yXmykfW23|ned@^Zeid#XCGudr=Da^MCo)9hZXV$ zeuFGKcE8rXmYeLuRpW@>M$QdxCnLRiDfaXTqJOR>KT+pH=K{hlxo^{;CI1`}YRR)G zz4k3RovX%M@-n*&-hV<`^xAwm^kCL@i_1c z^@V;fD)IKfpInvUc$Hp$%$5YKiQmz<4#%%8@5@2ZCz@vx2ydJR4qkV}&KWk;+w$;F zYXK%&ZCLsL2AvV@bz_MX3+9>fZ+IBB+`Ih1yu6yWd`!XK;)htE4DWB|_xLTe+?pEy zUTWNm9JZms8aum%Pc`tu{0a;u3ZI&nDqqFK@>Qt@jD4{PzoNAKy^9O5Lf3j|y8J!t zj$PapH?*%dfbUnyeW%vlai1Ji-Y$gBt=&PGMNLRzIW|@PUQPMRF0D^QXNXRVy^0f( zVT)0;VQ7w2jMYOriB^g6`g;gT4-Ez}=RMw?e1kSh@l>jaR z`iLDgr3r(xX><>t1FvbmYf%|KmoafA%}SH0*|dz9nn4GdQd9D*SpeCrK9NZDPV`Ci zP0mX6OY~0+NDRb$fe*o@rt~Bk^@);1Y41eu-pN_L`}FSHyI=4AC}9p(PATCMy$AFj z*t?{6X>wMdM4#S$`t<3G5@qx#H6_U<`tX0I29yja9hevh?aHU&+4N-nz&-=}4(vA&dJP;faNxj_fzXQ%yJB)yUy>;4 zUDBrn8kO`b>0dIS1RBxC_wYtMD=8^01#rn(rD$*|6vH#v8Uax+1k$B+U@6MMQsr;s z*+*$U$5Z3wr)sxA%lLJ$bcPIg0i0{i=QNxX_CNhoS!5>43fk$AXQqv!sLm=DMQhnCW`&i*m(;GomzWA z{)$MdpjE0Bey)J|R&cU-FtpY@ab>ZIK{|q)n!&Hbq^8g*RXcJ1|3UcwSP+t}I0!d} zkG3qL9>JV1P9hBFdYzK9=Ks+1q#Nh`&@=hd$H}>0b_yL8%xqE1T?n5V?3C<kRVh~e(SPlK3La|CgZqHqw?`d5!2V3MgB<~ z-(B$T5Oo2Cy(%XZ_8Oio>@{*)VXrgl3VWT0*NVn974{n69Evu6v6{}18IUtoUF(a; zxWEu?c%H5$roT^~ixUOtpeKHm*M=6RK2G*pk}O>|b~C7%hl0tP>vwI(>?E(X1s(Xr zk5|)7rPs3Hy7u+4MY}Pz#_O8QZ%)>9MViM?Lm>>^1!q3H2-rF9Z;QbzSGy}3lfYFn zQx5Uwjq{B3rQGS_ygTEfW}d>Q<>bHW?M7rF<9yky@tNdlO~8On zm)XA)jLBuvGnit`h$BvPdLF}ze11bl*yOyA`_Whj)l0xPIPq52TB;)y6^XxBM`d|r z%p-;HC~w&69!Ck zfGEJvc?&l%Qt!Zi293LT1kCFkdu~K3SSNRiefchCC547rMU2@88#7IbhOcxbir6dS66SXq?N^Caxmy<;!~ZlJI*mVs9B$ zlW*WZ%mT z7m8>{fu?TdO*ynpLBRgH$)40-TtEd73-8bUBp3H;!<_ujAu3-9vdC3iR5>DRP##t>2+WUr2vtJ<7@W`)2@6yJ694 zGuk!c#VIV<1gFUFk{YL>hIa$q)GQbwuPgd1%Ikvjrv%HN#CZ%2p3tQ*s=6BTUJ%p&zh=&<1+|F!#yX$H(0%KfV zIJS7>81cg~!}?uCu$r^6D4p|;=Fuh&@@8;&IYTQRT#R0C$AVuUQxoqFP&Iy>^A7t9 zvA|%g65r~eF$VX!w{eZJkz?o>@gIfQM(jcdF3QaBU}hLvWFXhbt7B5-YfxhaWHt}O z#0?|bO!uK%%C^*p-jh^@R2Mzw^}@Z`M2x&}QQa97yZ{o9cN;-J`gj<5MmzS+P^u72FFRB6ZA zC;ADR7b+9oe<<>w$OwPsx3RnsltCjK%%sAX9*Kw)Z8ik6g#mzD?!hDHm2fLeglt|y z!9YoU|DrTiGqC&11V!+W;9H4?DKj~ZdW4XWiEP^y#Q$?LKs30*eG|RZfl@mg2ADgW zIZYWDgr-T(2BF&9Y+Z5&Huj^xvP-e*c$EgL8yIMO;Qa$?+xAf%Oi$WII&|gMvysd> zHJzlHkWIiUXwkSPgk7T@p_y{L7KuFp(=)yPGxU&SHOKz4s$1EJ#E`PG;M1)^TlUC(B5jg;Q)-oE3sYYHwzqyk?pldMj$JQ3DXn z{OG)cl3aG-S1SD)u!$SBG%%7Qzci9yVwje8TgHdt9jGeei5J2Rblf&WqWufv>-GXiFAm( zehK?1qI3DmGh6Fwy- z*PFrEqVg~D@LxWC`=W5twX_e!XKpY){FaPL<3q$4-T|ZA{1xaLsG~yu&v{>b4bq@; z@8Yes(3?WJ$ZmXZ?lZv3-)h=Md}bd{vk7<`e}^ly?u`nKMi3Lvl}KIvgE=It?fX^Br_W&jye5N^^+izi6nDu<<6;Xz>BDbGs|kEseWjMu+YQvsQg=HNzaP9<3_ji` z&+*`H$Q*11lc@k&&bxqWruYMWZ@>Z^$VQxbT>-jPb!|O_!Vt-$eA172DKhl|edXs- zu%mD2fXUxYw}7%ZY)U7RsqY?cnq)ffA%q*kx{Sj*@@D};p~?LdUI;IpH-0@R=zn0q zpJCY}sd}8B3nfVNYH45(8WiQc!@p5)Y^K}&=@wJhgCT*R?+Jp*g#7$v-+B4zY~1o> z9beqQ`=#}cDQwMxB6~Dn1SQ}%X4G_%b;>W2X;7$M?2ccy``CXNBHNs7*#KL@uDq&F zNe4E~c~9bvd!USGG_0Tz7m|+&G5juiu`Aj9n`g=A{h8W7xK3U&)tL=V0=r_O4Bw*8 z5r*E`T;;qZbT($JGbA2^T}>@9zU(LFzRr6dOuL zR!V!}kRX~)(4ZMP@A&ok-p`$O#g8lhi#m2r3Uo>)Hk8euRDmBFd#vUJ=lpZWtf6q3Jbc?-Nl*0_S z;cJUBT>OE}A9RcF(g4R{h8I_=8GJwWk@m+IesA%vfz@|^%?XY%Vdv0Vl;1lnn1FMp zd_*%fV>ITJ;V9s}I620d^Lpc;bh5OT%3@UvU)z{;Q|G+AdZYkgSU71Fe)$s!d^mV) zX)^8CJYXBtqzu883Dk?XCJJo`jhrSNVk43(LgjO4rQW8eu)68PijsP{S+dvCO2&8N>N{Rogk6+E9cK~KP3#}xSKxPS{U7i~q1_;o=a#C^C;f(9K| z;B!^x#6l>gBYkt+@Ia;Ok(^x(55;MnkTma034`HTtfy&nu^^hpVcoeOcjj-giJnzO zEyFMx&_ZY<{(KD$%qAD!!d`Tv!NmAr&Kt26H8c!&F&3t|^YmN(I6?`ZdJG|XFR(SvCxF9cj68#L`DDDObazM{+6QKa73tzo z18$_vLjI`W#$8kgG~QoEm`=h1XTN4k)s5O%ksb|G88y=*^s*wI2-Vm}1XSd=VYfLL z8r&OV+yUCe(8Nb{kNIp5S*2#>gf$M1Xa;HKEihqd-hzt7Jla71N#QX3N}O|F39o81 z<2>Ly>kF{Q@9#Lc6kXfNen#ocI+|t1F7a&kJ-VjQnt`A9WR&wL+8^qFf?+{>(v0h< z0T|SVKiaYm{Y*I=4KW7KFn#5~?QsOa-&B`Obmd7QAba z3;LNfuMkK2nL-xj=x6r%+3#oGw7UD}u;K3NXO8N_@8qj*s`g4MY!%7Iml=ku^x0Md_@ASnyi8-vyh28>_OXn*4l&K%oIltdWW%fHpKhpZq$l( z>p|P_7iD}NS~uQ(6`U3HfILjEEagFw%n=&Qb zgFXb4M0?OAC_xYUE6>*cpa<=Y)AMW7gO*YQ_`A989`pkertQbq7I4DI=(e^!=n7h! zg#fz;T^3^O_n=Xp+ za4FY;vHx(coh=}rpe2(!)4TDg_*blH!4bKJqObpT zYW_9!`d^2j4JIs ze*NRUdy-rN$t(C|eH$OHN2a8`B-fTP$XM^@gyZix~vv6#zJRdLJ*9FNWY#wGS)6oic=!51swG*kH!H12x>kw$$94lkNe_r_z<_p zV>+sX-3b)^9_F?D#j;7T_p}GkSXk;lxU~I@>LsCZBUUB}#rm+r@kuq;Ii;7WchJJn=Y2n<=PzR-i_Y}O2Y_*oHYx{3@}^|R!ae7iPT65ZiiXGz;`e}R-pJAH4a zi5kG~yn;dkpSVnQA~9<$`)`cRLj^*1G9UlL=R4_p^7i+J!(U+}WJ+MR705YFl(}() zApVK+;ANQw%PGhyWg|oB$>yh6XQWP9IfCm~HlY!XCR^y zAF#MxQgg7yS>QdxvZ7HGYB;2}p#wt`efJGz48quYujqU5i^kb#z)=r4>Hx>|m^b^| z0n^dft)L(WZ0KjXrEn}7hwOVD`mekg-)*rR!Lz7Zn1!Y{PECR6hh)H2wx;)Ply_t(6!M9q~qnb`?j zM5U$P#3Pw_zGfJ;hmjtJs^OIfLOIj@nIZm{M#Fw&`}rbTD1iUY!N{BadJx(c=4LkG z3`DRB9gX7!3+hVvd&l(sqm9vMeA9RZn9(V)M5h$>wMoZB&xksd%#)I^mAumz*%j zj)Wei4P9!bOPwY1H31cVXANFRe~TjEU=Um32P(atHZ}pKAhF|-BevllT9a1vncPac z_ap>&y#@lpzAie2VudJ?HK=unq(|USVeU06|G$c)tJw9!k#xWtu}Jz7h1M>Tik6`= z&kUvmy*l2kc+I=6sl!Mb{Q8W) zrkCx73GZ5X+5hEOcop-+|M#`5UTZCb7^WV*CtL(kkJAz64FSqX$P(OVj47cJ7d zb0e2S7iT(S4=-Gz9(r1{0ijO)9mrTz-yPUCqA1AtHY+tTMZH3U>^E>^z zU#Q5)=4~H)h89Q^Y1TXtS_mtO8;%*Y!z7NUS!Q@VVz~K&{T=ujC>b6JC{M z(UCbmUk%~Y(T-`zT2m3US-c)JIh+*CXI>{0Qqv&993RTk?Nzun?u3f?{vF@K^y8*u zgxe6jVsJSMB;?Eqn=n2re1;qgPKiH4Ccw*i&E! z$y@(7`}~t}!fEY#(;&O*C}!O#j@~U;U*o@7V@@Jpk)r@MiQq||i;&-WNptv^rjLG< z0Y7V;UCiAl7pH-=8EMVKnZ0luNs}ZBHd2;@x5QWLXfna40^v8qaUNG*V8c=2O7)`d z7{0-&_^|FNEP%8OW?}Ioy@RNfW6pfnV&f^Ny$nyefo|4#Zs~jyoTB82Smc!QT`4)P zX)Aq^C6XD`$I{`y>_Q0i2%y4WO(UR#wfLSQBl2el=}4-rSs9qD0E`rLjp2Yd>qiuJ z&7$R((6Y4*dZK*J`-OC-$xkM-6hDKuQ8V1>Hz5bKY4L4Ip_=lho**<~x2SR4%q%rI zz`MXZx{;D}EV@Eo8eUI;4wJw%f>rpr|7GKs7xLsN;2SO_?}2?c%R)U|29g>8Z-)QmFz znL_6YQ<;AFf6R)tTr!jFnx0M1vByY-lW9{mQ#%@WLsD?YoHv@Ria-BM&ofi#ff#>J zT6s+ir>Y_?LlM8+tKel>QwvOHG2OBDWI>S;SVZcNk_0a2YgfW z@!l(SJb3Q`hOigq6jm>Xf%+X>KU?}q>(sQ5Pz~sq5lA;==xuZS`!J>E|Fp2<&k-2u*?@>nCt0U}(>r+bo7TYevckY z`SJXSo&dR!QxLw(gNp_bR^XQtBEzyL?(x;GEFLt%-RnWDCnTTr-{ET%Bo8D_%wTsp zUGh+~6PJfS(&mdEJ0%Y2ErrwR%!zhzz#LRek>p(W`#u}<<(^3V4SF%|1JSRBz>X$$ z95W?8QtlBXNxZ4cfNmzYU2R zjlYE?gZlVr?%S10%FeMf{$8A|*!#_w)Dv{o>duxgCqak#&6q;6KJ3n?aQxTD;FtQR zYcO9)AB8@l5|t|9p0pvzeK%ax3_svnL|?%!X1)DVoQJnxzMVv)5C23C|A`#qr?=0N zcb!OsuIQqQ(QID+fQSyq?Wm4sQY*q*1acsN z`j5aONpwBn zW0)oEwTc?1eu#3sBGZ#2bq381@x}5U_zCxT=1mzclj+`sS7H5w@wGTEito3UQN6VJ zA}j?#Z8A(idXNvQOA+We2K&IEmQcBj`BZyGKJCt9i+vf%+7V$sQ&@~a=N2S4CZcgKz}ZH?Hu)f7lgrtRL`(a~Y_hnu7FTgBgG~h|cN_=xsMT&+gqU_MS~36=5I$~={KHRoX!|$WVGgdLTH7WIkv!?GXu%2 z^jZJNoi`iTX8uZWNRBMqu~+~fTrNTs)YG1E1}cBN5~DOxMsdaiZiqk z<`-?)hh%fN!l#d#a7|@b;Mc>iNA0}iX|e_VnaD=E9Y-lIYeoa%mKH-1^d;8mU9gDm z+kDEcitpQ$!Q$bTOYEF zO?mT*hDMw&x?A7O*PG?v^EFdYvb&h0Dn>%sgl!ISJRFNgs!sr?3Plao1LAurGUr8BP=nYE(3Kjchh3PKG|Q*u{F<5Va%IhomFp=k_| z<@97=GwCTZX<85dX$?-JeQ!IoZ4-fLc;VqIewckNq(%PicU2&a1UJ{2v%a z_C)#$jUv~_ZDMw#@Gj zN0F<@OXCZHm31bOc1O?QmC;RX6dA!k!}DwUqFX|&Sqgok)-3zueA{(jXe0S{2WpU9 zU&f7#o_Tomsc2SOL%uy2Zi`svA?2@p?Z~%t_8}x_DI%V4LpioHRM8yk&qmc%Lj%gA zVqZ-=o*NPQLd?4F`%d3F;(z-S&tMjFCZ0O|Zx1Rb{x{dT@7tMA3sCcEYKv~BgMHrz zJJ|Q#V1Gym`QP7N8@lmX%u%jl1>P%982_6B*Yg_aCgy+C!zSTUNXq`~9?6qdb$I^L zg?ie{gg{x9vUh`I^*XjRFFfJkKGtjS9M9ad`YyAcWeHq@7Q zVQDm7+1zAd8ZmJ{wFidYSt}Fz)AX1daYicwvv#TeJ5>)ylhnn)!W2Uf+6$+V`HT0~ z3P=esS^uXQk~ zOO%%BFpKg^(--l1{5Ashy$nod%FXw>JxR7?-izomx>(WC*{8^c=3#s`Jw7sd=rKD7 z^rWE;4ip=hOOKU1niar`i2ZeVbVnj7^Fekfgl-)!ZyDMYtz^xd{ zwe$K($EUKMLB)`zgK=cXXNhL{`ZQ8&-)JENI?fVJ=W=9xW6}=J5_Nfv{uE2}EKx7c zGw9f8w$E?P0g$UY%;8s<&Kn7vQX1Y~TjtE+yDhhK_-^;3S@9gcAL@IH(PYix zmF!2%yAvXBEfb|#FZJ{8WjvL!^6ogEwS?ENJIuSZA{Xj{-*B;Oim_YEyjuYCMDp&R zndN%lbq;2^t64vObKOj#C@)|TAoH-;EccnkWHhX%#b&wn6gjE#X?|UQmizv0{A4<8 zI2|SGP(o+9=P?rNGRqxgYSg3aY(l^MDnCalcY8~CnS6AV{0)CkQ{r$4G`J7^@j zOoCQ?t^^73Oy>jbXzoa97ymfCFX}I1Ml&)1GVAU7HRw1#(X4MW`hczJtixs8XfHHt z6ZRUeN7Kq>EZ6M7L!k?os=*@@3)~;b_|ShWJ8}5s7neGPEoHx$>`4Oe+&JXEv@-%ERQRySuqpeew6 zi)waP0D*w+CTS}+ahEK{HB7M>Vsu+N2>_2PKTg&=R{&7S zsEu$ZKycR<+wy{TtpbY;;z#{J<{$YLE75A{{i@Spxyhfd%`m& zK$aQ}K(-q~9d+)bpoD;@ZqxfhnEn2{}=DwI36&7h% z=(g+{K6!nD*DpU8J#2;QX#wLw3ru!C>Lj`c$-)T2&@BR%^A**OBxRT+x6R_dTAATQ znmUn8es|dN*LRX_{LwYLb4$|*juimZ-yO5!n9KP1(hBl{5&2w zlo8?UzlyPKs%BLwdRC=sSC{72HgJl88;Wp3_W2=M{&UpP3EetO7QD;jy{wc6)4m z2`6`e@_nZ=xYv^1(f~{N=cSY|+=lFtQ?eW-aYXr>Dm9l08R#RO&xEmyQ(abR-@>UX zv-%dKmRhMsLkguF95x4Zbk9a>rb5dfZ9_q@+t6S>6zNw!3OqODk{?7$Rsb*P11#fY zohJKvT{6jwHO)~YAL;L1istCVH$$9NV}82aC|CIVHzyz99rp4SY$=d;EtWu)(n$lG&u zs}ouNd-oi7kgp^`!#$q?jcoPY@HWm71iWo@kzxhym9-6X?40I~h5`d{>YJ=Lo|AO= z)`Jkb{uY>bLTmJBtpVRXIzxW6y-Y>k!M6-( zxd5|!Fc*jVt9S?o3Pd#jO%$lhWo=M5u(QZtTA@BBhaY?o!WVL123?!FggGX8kDO<4 zG(L5JeULoA;Pf?sbu!OisvNf5tarH_^{XXR#SYg^Z|UI^)467fXkI;@z_JjEb|h$Vg9pVBR?tN&OkgHi$m2til`Mozwx}elfJiZVq(#u+L zgLgnnu{Rqa2nV%MiVNnT&s|^_5>v%ycM4s&hvzlL^!4BenVLzzf&>_^X*(sn3{5&pYCad+0qRdU~R|b1$ z8AQYe)GM(uJ6rk=V_v!@)SCbpy+=!WK)rVQ3q*@qqj<#oh-lKy;{Eg(6i{Vb!O0%ce?KE^HA9VN*4q!KDSWz(wdh8g*c>(5 zYBDz+L?dDG#}O5ld($FpZeK8-O|i95JGX-c9-tkP&*K&a^}CvMxErwcc4N>p#7Er) z4F;~WPj!YR9DV&9TML%vQnRuby1ov`@|xgitdM91sHVe;6$W%hq^@1zH+hOh z(qin-Z*GXSKcm)N5^`tj*YK?`S|=WeVuFVgfgQ1+f^E+2qyki?KGJvUiH=@_S}TWI z12ydP8^c*CMeaa`Ft&Yu<7?ITe&Eq#6_I2ynK7Xbetu&V+OS5&SPan0p*h8wi$eF( z2<~yC=0+GOXWv1;v3bx0#%I_Fmqc$rXk5Nk| zgng-*gY7fndfZd^fQZFkoX;+{=QBDg4oW4ivxy0NESjQmur(^rMOy z`u#}v;Ybvx;0L}aF~K?LK3RtAvO6CUE?Z*y>z92)CabLXdz5W*x>+)NK04UjhJR>d zk@%WF#$Ja$M?zXUs&8iJQO;QaRDl`C^2ovcz0IO-fsGCG}TiWJszvNJMb zTHjr_{tb}xb`WlNtZri;HizT~tu_;bo!}%>ee4kFP-FT2kw~TGNP$sFcS{oIP&g2! zvV=o^%VZ6!6wfX(F%|ww*xbP>WX<;lL-+}yVVDC4hos;&(8!^6$#kl+9(F}gQDVIY zdnJZ@Xb!G`YKhFInZ(DOGT|A@O#K+ux^ftz0tXO7{35B^h@9? z5LizM7F?3TdQVTrFZWF_b8#U?+g^Moco(5u;}%6dw4U|0LRCvEYRLVV0Z${}@hRr^LV$;sz+ZjGFg)Xf)QOH_ zW@lu@+o5}Z#wDmN9ul-59+Gx=(m*!OPKrLj2qeQRl|6Dx)lXG1?lj5 zltxMr7Tb+aB_O#6)$zxHAXJ$X&lIS5RX*8nnHS#h{$Y~oqGhf64~sP(OHCFXeF8{a zsX%C2rJ}?+$B+^<{|zPnBSsxgK=u>?t>L;_MH3zZ1zR%v2GFIq0skmvfp3!6i+%uX zLlR99!TnK^kr-t0U><#wF8~ZiUFT}3hsJAs4dty(%@b8-|7=jo>|tbk-FyjKu@%BM zPC!?pKes9H=vPAm_L1@WKG9E%`>`$Aeg0eA#_>4{3{^#G1VdqPqW5g5ulgc8 zfW}cxaXHR)xcF52Fq|G_6kp#JlB{(ng-CyT_TP8lg*0|#b{Kl)NJ1&F=oiVNC1!l{ zs@W&l2>@{M4%YySpo^-;H8C}`4QbhrtGpXiAz+=|n9Z3K-Hn-s!zN z9{`uzqcx!X!^aKzKl*#gKf^f(l>ZY&?pC+_cN%GS<$uD_TArfvzqQGVlYgPaIaBk? z|FBh)|0`CP{9i@+hc?k>h_^NvB2NCV)bfvPubVI5S^hbLtUmb{XoJiDv$t9D{}5jy zqA(1-8nXP4R_w6~^8elt<-ZzQ2U;xeiY|ipVRa7P!MgPO?A<7BC3c8WV6Ret*t#NU z$=$oD@U{1lcTe7bFtmFTz_wP`1L+!Q+BWEZ%mxxx} z{ZdCO8ZWEz&4sPG8-@K=#hN=lriRv8-^ZFOR&vk+1qE#;2JYumK;Wn~SAmj|PVfIq z$C^6|p@q#5Uz~wg5o1F-0s2DLijBQ;6st4%Oh?1=4ejQOjXm!+iU%UxBC)aitR;|I z{JIQVlOCR`a#|s(t*G0E5+*kG@h7P{VBMM{?o$Uj06JS$Xb0PNp<;)yuN4|wPHonY z!^}#X^-v0`Sx5N??z&K&W{;c#-RAeIN)R9W)?bNQ1sWmZP5Kn4r|2c|vE`<#Xyd)# zh3o%X>Qn2X!?n%2eygc(C>)ND#gX;NXiW6}z65Ft0*zE@@CNn~WrB}7Vr`kC>twJ) zpoQ3bj?QKkoXu?~k%~s`CgonfmA%3=lR=anTvuR@thWytma8xccEK6%W@71{3B2VZ zTRJ)al%W}=aAexbdea4rzoYyMk4?qwC?C#pp*a|mh#h5nRZ}X{D5p$)gKZb81#{-A z?eo6y4`-kELA)w<5~5ryuc3Y3D+EhAXc(#aefD`1KZ4)~n3Hxh(K(Dh{BH>0vxkZ& zyE6$SV`o;#NfRd6^ZbhbpV)og7M2e0^WGzUkTHHppoKOvr?-kjH{`di@izibkV^SB z0pG_2q4V4wF_%n0^*XUl77pLfwX z3&-$2?@SFD#LnPTt&t7X{RFdMpZCa}QD`Xpyr+z{TFtZ1yMv8c%s%hNz$miM`!9}v zc%S!HC>0Vg-#+iJSt%V5&>!Bb1X{k~Z5d;A;zg5}&nd}d=2)T0`2vuh&=vyxx9os%ik*U~7B`P#ixUI^BQShJ1x!4r$}qhX;E;#8 zUzULQQgBM&V>4p!m~h`F)>PrXpPeN$KQU6v0yddU)-MKDVx@ebj9u)k-$IW z@P=+XYOC}kfzJU@DQh}OaOw3l#9l!3*2Xv(-%As@2G%-U9MSGcf&LiB7Sx1>oryAlBiwZ2a$^|nXu;yN&pz+}!Se$kUFc6A9E1E1?M^)b8wx=0GSdcv)(l@ev@OLVYm)C2A81S#8V)|(OL8t zDjo%TxZ~qY89Awc2j`*8Gi*Yp$WfJFml)Wj1*J9zl6FujzXR!I0 zy&j+Fxxl~O|81n?Mj*cjq$fuH5sP!qCKfhTVojy$=h<|bKmhI&<+XtQ9jnip!)hcH zpOVlu<-Wl+bT7pf*TeQ0qL(7H`vkl;ML%5}N`0$LJiPr9;BlCctvccMD}s5hqIT^gC98sTT1pmHP& zdcfc2S;l)6q!#3DfNOy^5`&daC=(va@g=*6Sb5~K<4>p3X>y0y(8O9t2HLq#`NG*x z+rk~HWE5ahvsn4cE5JBIkcU?yhbFWbvoHIEEz>C>`2B* z+@E(Od-}0@9m&8MXEVrrrA6}7Pmq=hUG%NL<=_mIM#_?A)P2l84Ol!h4cWGG4R!HljIqJXfze3u)HxfBC6SQj`WQ9~p1mrknutF+c6KSz4q+MA$yh7Sd z`T!`1mSN4XZ9V?i1Fw)iWvEOlp9wvEbL0-NLV6yxBP*mb!GqIov!1Ny-9GRNshna6 zaW!U~9|=2>86xcdXb!gK>^(l7M$!6eZN`QY6b>bRCM1zExHY~LR!meGIoX3Wf3;ALOSlSK~_i) zZ9=5gl0Ljby7`o_Y2)aiv|1qzL$|HDe6_5Q2orLSnG||+fECgwCl7svBy+YO_gM~y`&>*9}aB!Gqd zb@7=j$y!{K%m>i&Q|g(8%PD@S;wx8!|rdm_?n$BrG3m2!NS4 z>s<}F)^%CR1XhRyOX12r434rCM&s2LdYt@Gfizb@D!M_GE+E}4j6M#!0GGytN%Y?6 zL6U`bH@^XBNWlD*V)O@AGs1V` z>phFUDpu&>>un^du!2zHTD(q5y(_m);R6AZNu`UbvP^iJDfLUr=mKZ^ z{9}~=u9z-GT?^Ac2{L3Z!IalU1(-f0nT&`vm_E;x7)&`nK2ZiZBzO<%$5^LWABFbj zEByf<%2~PXCDfKaWN!B69Z9!5=kIr#KUZ6C8m)T{ZpE_N=2{4*J@Nm$2N~$c^Zi3l60?<+XfQt^EqO z{Uszqpx^!t*;&>02asfJEJY;w%QTu8nk3J_k)qWi$v*}KE&14r1Pvs4J-i0;aj<0C zl6(qNV&tP#v`JKwFGBh6D#9oL)@FN#oxx7Mu zxgNF|lgU|OKfOQpX%`nsn9oA%=IV`$B6z1y)f}}mX;~=@*K#P0!6hS;3c3Ti$HE; zfZsGX-L9P1)(w_B94&Y#SPbmd``@VVJ%4QAKtGbBsT}Ader8ZKb2Bjz(kCAoF-5he~{gxM1(HmgJi*x&#Zlvd$PGc=#)$O^X1;xRtY zHpxkGMzl^s7{QLN0FuZOE<%NNK&()|u%&)j1l-w_eKzJsz`bXZqY-eOCMzxiP6qS-FQ!70B!O@tGU zh*OPFZoYK}e^oZIyow5=epYuu?Z|dM=eEx#`uLDde5QW-%jNAG{9BMLc^Zadec%4J zmW*OV!w@=M>4G=Fb0O=a5=;ZCh!qSqgiqMj8BK{~+_@&#P!CL;*QllpaeUhbxKsc* zbc*)G0on`&jW~g!fLAurFOfNNr;He|o;I@Y7N8ck(Z0n}`_oB-Q9HauiXXKHzY`ok z=+%(?WEYIF!y%=)jX{Ne(s=kKBze~R3B>_(d%0wcPxRHkZC^AQB|yaL-vtn?g?6N; zkqSq~RX{9A^m-5A_a^a6(J`<>Gt`Gn3B}m%>h?IYr|fDe*c#3qP=VJ;F^=}=fg*U% zdN&9PVypi+~a1hENorA8MVF8K2cCeRiFrM5yc>SIz5uE@!$f$IY3?%XU@2Va_?K1>Vx!WHL8 z2f366`o_h(XMU)2Y^dQob{NXsrIpeY^;vXjo;I=_d%4e{oX{O-jG1ZcJM1%Y5vinp zhHp!d&|}OWXu_;_fSu~@IT&3c+*QEBJ0yvMf5Ts(36xY-flnYN%ELx$$(D2SOZ}{l zf?C*$oF}v1PZ>G4ccQ&!7j&x=sqIW%ANGLqB+8&Kf}>enhr%VV{!&KH3B_(qEE9dkzdjXbM0rO9C*ULD17sDxe1`iXW;0#Nh|rFV`B&6Njmx!L2-70Wo30UJ#Sc-*jV{1&j0l>mX)v{2d#%a~ni%A3%(x{jRrG<|SO@9&Q=|)XTs~_TcT|$_rInU5gasd!2K#Q;O zxlTQI@|l;yApI$M9wyIicup-&C%#F&j-2c8HlYAHHAl(MMJG;RotlLFT=bI(gjTbc z{9JS}qI!0z@2|ROLVbVf`IYrvX>xuci{lRgJ%9Nynd++VDP&;E9LAAuh*omj;hzP> z6s_%!)^Z!bjavLGF07U=`~lLvO|aw$6oE0PK^|CTm|Vldt!4l9{YZSS-B1c&Gm=-% z{J7YF0aU0j*R3pK22>SDJHlKxw#z{>G9Y=_J67s*EnvQns!_x|AO^vo+MSyGnz`;U zJ@qv;gPgI63?`;RI{TX1&_6bgSK!mcL#%ie-F2Vfg=sW(Rfj26)X68b+@%miCT_Of zT-b6Ofs+}1k94%jGj+0ceR$-5xvg}Om#C3baYdv6U`{#+#kbWfH%auH{$~|vqn2@R zk^|lO!q(`3^9bNLGH>PoqU7U_l64D8)~zbVUpf9N@K=S_`q{1fAx`#Qk*?{Ljgsz` znR3TZKxZ&lI~sd-hsmx&b}&Z1wo>*rDznytGS)$$YkNAhS*c(q$20I^#LP zG?2tJpg(zf*qCHWANW%RGU`;CVuts*mdGUP78GN2*ynpduB366VCF|2lb@A^JbAZG zYnJDjlA)JGfmQIfmU7Rq9tuL-2~NZ4RI&s5|BY$W>KEloW>wyXzD>*DB=SX*FDKokU!?xNYcU!_iCm zT7dutCxZVa$qdX2F|SlxnP$1KO1JC-eMC04v#8jNez!kC(S%C!u0kVXmZ;i(`L6^C zs4Quy3x`}}O2V=HL!`Gz5zD2Cud1;H>uZME9=`~2ydX|La0w-B}l~i1nBCmLY(gj^$ zCGYEfIpPsrFcXA|Ia}GbVC@2;0XvB2gQNpoQwjFdq&XN;S}l#@yYi=6HjwkJ#WsR^ zm!QHuEAmbtX2>2(G=Jiw>D!!nz6~HVF?ARIsJsASu4pV64_4X-Dy^rt80-yRc*hfej1b_5Gv5b6)MusMp8V ze_1M%uiEzB zl!!^P$yTLQ?x7|Z1jM}?an^@fndn_X$i7f>j;`tY`V@A0ErS{r3KOYuQcMlqmtc(p zN>rnVooKZK24#DA!He^ZO@wKit{3j@&@uuuqz|W)%spfoL_a}BWF{#CasV9X2yj<_ z6~GSMUfX5Q%j%S67h$R$2pTSELi#;U`VC_@NUC9yyk@E<_b*vIV=h!2>v45#puDm^iaZea8$Ues5BW8C6y4>0%l5#|z|VPCt#8RHhF<2c;U8%TLC`PdZWB*zi6c z>~R+NTmuWE&C&%0_>YJ_39At{!YH|rr}x$2M594LZWzOM^jmt4YP`A(DFzAww20Z6 z^F<-{5;AK-N7?vJ}*8lvKHFYCBjV zjSX9(Y;Lrbe1M;9C4LDvW$v=?()#@X7uPxi<6>I>jh}3_{v=wjdzzRQl*}H9RX&I& z9Zxk>AQ5l!gFcN$BrBFOYRD0~20 zkvByQc~s0_vAZ^Kz&At4I+M3PHK7a=P7;Mcx~`DogC{J^YPfiyz0uSNe^vbUG?| zbNJ#~nU4O3!o|k|{T=>@wo|MV64`F=|i= zbl{o-@rlTuFHI|JVy`svQ_o;ik@e8jqiiZ-obHp`%_p8JcWrFBBJYk}6zNXh9aOl1 zFD?}f?lK|MF$V0qFv)p2Xjo;G9=RTIrf*{ycIiA$SRUd%JI{Y7_~!NJI}@GODU zlL>9ogNPWs4Yb$TdYkV?bkGJt1l(4Nk&f&(glkVV^z3RiFu^7L2m0!Lyo$n@}MBw}Cj1GEFzNtuWr$h&(*%Od+ zXwgCI-9qoc_lyoYff%e}bkJ>c*l@7W-CV(#Nu8P=Vsy|{z;L32y5TtlA_0(d1spGm z?goeSP$V$QU_%Op$nv_xBR)E46?DruS-fLt8O#B8+7$2q8{KlqH6h)y0h=0vZdpz{ zH&U+1tD?{Y<>CtHmfb`HMAq?@M)=}&%TXH+u3K&!8>?ITFznuh9|pQ*5uUYfx$sBd zTerLdI}O4xOh;G_s#{=C7I^>t_S>QAmIL1(f^L~XB#f^5|5>+~nW0k_k}_xEHiAVE z6WJd@a@H#&etC`{LQ+7qtha9ixMxUFGS7({jdCVa&_Gc#8wpTniB<(pbGCK3q-=*2 z^S=_oQn_X*!&;t+A+)bw3TW~on~W?qyR@8N24j%RxKO;u0Xv3PmlZ$&@M-~jYWD!= zyBG{)&kAN;D#izG0W<}D5Mzh@lmud)))j}~-O?3k-??SL8Nq?=l0}2qCA-b$KwEZ6 z1)GlOgs5Fo99yo)8$qE4cf2qTx?{x{Bd-4H)Zh+ft2XR3Q&@J%MVpfv1KTCjwe*sKx3CQ;92XAeSp#Tv`apkNNQn?A9F=1IK($n{N6fNN;NgfV_ywflMJt? zfVmt+UR0#hR?68#>Hm->;cm<-#xNgm&F^bru$0abE9L8|7~&4iWZCE{GHsm6LVH5Z z_~KbmW&neoqXEsA!KPhRljW`}*>GU8R4N#OwV|E{3}`+UFdUQR)3Dt$xXH31@o-EQ z3V^;Z&F2|gRVcq)x6*%L=XZ;eE8bL}aqyrg@kigW*h3p#MZ(aSbtA(zh78)=sXbXx zVxcovuC0I*);1z=9J$|q>=;fyz%CEtr%bTZp+C)gp7oTs$wu~h)(JW#{yb|n1At?~ zZw}iwtREa}4?6Aa{p@`m6?5VfSL`639@nd@qfi)VaneISa7XaC(DC_V_}=-Ij9MG|hGJQ79-L1g*8nkmt%XWI1TlQOPmPJ;JNhlG0Q?xfUGWC6 zY$i5_@4&Wj4BrYhZe0)p{Bi6=2tGVT_E6$t_(pRlgz6Y-IEdl9N9Ow=hHnvFqr%or z0b8H{le|zDs)1Kf2a4gl{&fJ>&4*+7F5D`@)4_P!Azk)(!X(0gJXp@EF|l`!RH(B1 zZ<)VrIjtvK;FadVbeZ+G5n6Lczy#n9f0LbY^~@iDiKS1=Se{OZMzh zQ76x|i6|^NQi54*TcZ?2fxm2}6{m<=$zrLQJ~yd;vA==+ zpFVZb1fDvRWBZbOcU=I7g*usO`?peP#I{&fOsKc8oHozG|A@_lAvYeG$;8sRxc^KD zk!|Zxha}ORc8oEl7r(guS!9TQ4S5}g@p4Y!%sq3sba|N?jNmp9EZ;af?I1h;reH_# z*kS^lLn&71YFc94~0)~DM)s?K{awIh&87>BfTRJbOZebYuQ>@$w@iI4>SaB zbd4D=9xjL-<(!~D5U&=-yUQ!WQrPK5A{6g%&gmHApVJ)H(Sv@3)~ghyf~N}>CpMZR2PR@56s#BgNkf|kZp=ohuR)^rMFyj8jj&_)p}TkdhzMuBPo$XN%>Tx| zD1kJ`*%#uSJ-&Bv`{MGNFaXu{j53z~GLdAnW(vQzx4H+nlzlYlXb})|Y zx&27D{r9jCwAx=MU;B44T0U034C8Bt$%us^!5)Aq-zi}c5A>^O1p2XFv+XfFcH5(28MP&t*qzT0 zUzhW_k3eMn;(D%KT_dr&vU+_B=x-VC*WgtxAV`A}@$*o}b!#2BHrHkm0tAEKuaLz; z6h6vAnA=o9_F)VRa0Q6vuX3d8FT;cJ|O5^7 zF*br#=jkjNv+8UYfc~oUtd$_ZAgj(pRhf=_t4>UhxL@H7XVp2Hb=0c!U}&uYSDhQf zfu~R%Xw@0ZljxwN` zq*d05UF1Ih2_zY9r_@!!dw zbXA@X2ATB&@=nAVy6PxbqpwK;{bNWSHJJ4V)Uowk@89(0C)sbzFbuIL&U~J zxxdn9E)`MNNsBVKmzvG8-t(*!0RDOpwgYeoWoM2)5OF1+5pY+ow;0f>sLruShaL4O z5b<*3l|*K}3)V1_%h_HEo(mo8ZMs$xptgm^1 z=&%bloTn*2{v9V#F4%$sY4NnVO=+NA;#3CSQTW{(rs2olDCp*wXw>d4{HlmxFYvDJ zA}2~oqLjWs4`c&DFy&OFh$*5^LT0@KCFRdPB%EH`hh=bt&OZcro7#M8oP_AUW#|GmWUNtACu2ws{^eHMI@Dm<`}T#&?wf1tT^c`W7ET z!1t5Jum?+C{+0+%R2Nli74?ij;P_^}`}mxqfmEl5d;fF6FM1cTmbsF(bW-XAukvmx zz$WB&`^P>?W?zkla#xUnLZ4Kcj>h$MO`DA%pXlqmG$Dk!)`9oMfrqc#{|Hj)Jpk!a zO!X87kzjc+1^)VT>px#iPIoo^F9xVl#tDzJFLP zKR(f!t!u(-A^rq#rm<5!dT5cr7VGQhU-q5`^Y@-L9EUOpOHS~q%4Mdq9HE~N(Js)H zZ~+`ERjNt{3{VMN6jVBjm4>TIC)aF&_718k!@n2QtcQP(s#zQVUR1LN{{3k!E8Z_F=i$f1F2r_QhjZoy`44 zdc_>gjE#s$kXo9)lUK-Yx6&P(yh`2Cr3qJA`TbA~=qlyTbCd_- zt3-LA8!IfiyLuS7UJsl{)=R%Bv|3l%!uzvu@AncFlkh`TU}t&vxnYIR4Ql{bV6aZz ztQ8eulGl*D8ZVMtV8r6}??RAwr=YYRj6A*QKxvJS;(A%4pg+Ph&KyzduXz0N!BWN_ zAF%`!;qZx_g4|gE+pm-|j`#82F4zh99vQY<OmsDAxQ^CF1xNokOXq9pJ4_q_yFf%qJ80%rl7y^Wwu1Aae!Yk?5Ya zF4yKK1fAH$4_Cb0ew?Mdg^CN zCSHF-*PI*GAw-CMBf<9FX<4mv0H_;E8*d5L;N?NVL~~X635~z4|#= zXqGKyFc7$?KE`fs1Cu&RTFQF(7_L)07-6}m1f!gpR*6bI#N=ohWHH5-AFc)-m{&4u zJ;IyNa&=)r$*mm_G){2B&GHV|LqzgM3O}eOOM6$5c>XoudtI^+9d#xwOht*>1 z7PJ9E;shx;Jw3HmuY%s@PQ6}_&E-s?{EjAj0kc)eUYo8l@+n;-(i-1h-1uGwZ ziP@okiMpZ7x1u@9)8eQBY!{3YzQeh7UizZ$#4!CmNS3U@jUHdfy)fM%m=#wRy%OW) zxMD@#5yTBW-VigGH<2%{bX)fwT};}i9)}A8KXR@r)!Eo^GG4>uiDjy9+WwXCcV;oq zt8?`F9AOu-n#DG-oKXD32Z$seXnu;b=gxR0~PAtj0v*HpO92EoocJ zxleZ#jFL#pG9-X!(vxBqTj?QfcySJ{Y~(-D$ZpC8g#ahQungfT7N(Cz|ku36gI)MTP%MRR0< zgzw2Eefx8p0vC(`0V7kKN2e33)pnb|KvP~7j%KIu3Z)D;m4c|ax=-x_TuN;#?^*9$ zzBCat-ysGE*4dxg^p##}f2YD96BxSz$XaL>Pw}1U$d+Hea|HPAoY(bbDGn;FoMH~) zw_8#PqBh^zk09zZv$em@sYfbrE+cMIcKOecUNo)322Dj`Gif1hP zFKy;pQ>1W6+Da{|gKKCc2-NX_YFl}RFEt??KCA+aZt!6jtldsI-61P@B#F2qS;U=; z!Y1(NT*3XxCFG454Jf1L^z~(|3-XpEMew;B6oFU3)q$#)LbK>SV0sraRlCI2I%4|3 zRi!sdPlLstPAsYK7_N*A*^&UCFY{8w2?M|h-oKpkX3Tjpa}zMIWjL_9KpXf)#X~*0 zjrXG-l$v~R96B`lxi_jtiFZt?S21w5C+i53Q=ql|>vg_(SpWr=*l9=)p` zgS2+Ji9)hkAwv~NYBi?l)@(vNLI+gp>TM`fCC`~@N!4DWN2D9Tt13~mk_}#8g_=Sw zplePHZR}%=TWC1&8qN#_JE&ca+RDmPKmqW`rSy}(tEb|}1u-}Sr{0@tYJ_yA6ZbBt z!!Jty4kokSy;6Sn1zbokQ3pK;N*HQ{-Lyu`*eveDbx7hr=dkG1C~IzG^XdD99|D^i!o5VwvB2Vh-AIb{~au8cTo-LaMW$3m|}HZTu4=q8ra#JFRcXn=X*=#{RcQw zdHq*`RGyD##qwGzf6dHQmr8ZBJpHt*DwX~F#z5lCh3 zASDr$%Ib41kzBtc7}ql_aaUsI9IXq7DzL9o;+jp+SRoNJ=D77q*$5T zaJiDXcm5qCb6@7-WiFT_WQvO6?gaWa0C!g-JK*jH!`)Tq8rCjd7?41-_KBK<&-EGm zSQK&@dox_}CB@L;*VI;aJx}%PMLdniQWVphVPr!}MeWwg*jY z*HCP&$5pLDU2Ba5I89(ZMjyIvXJ>LboTYHiI^yxj_F-5%F~dr|J-FGQ&* zix%&D;yqNp!q{xKk%2RSa^dsXM9(iuUKgXSON=<){3q6N0bYAB9K5ulXTfmd1Nc|- zm>F5rHi2&R$Swhnt_8``&YcTc^htLQ>D-Siu-4`a%kl25^JIJwkUw)q?OXCYXjcm| zGj0jfWc159JA7a>wrc7(^V!tu!k*TLccg%{aU~HfOZvNEf7-ud>1@Fb1!4*nXo{Pd zpOToEpH2MSE#+gQMc%}J!soKndtxB;z=McjSKKd+MAyIw5nN*1XrEvZWLdc8M916l z{kWo-O)MT zL!3YS=$wy^foN9UYIkpe|_ zfgF236?_UruHBEMD^)VfADIx# z|4x`X)s6PC{h8Vrp9UC#@c8o>^sqOU7B4ripc0hd26$pEG8Rij>`e5_SsTfe1qwnC z8HfVNmcull(2i-TE!EYScnHn41M{T% z#aC(qTGV&Im>@z}_tWQw%^O~sBo#maI#vr`<-IBO4?q{H^in^29E!ezDR1pRBNI_0 z4;9p4qYAEksBeA6JBXuzcIsMVaP+V9f-(9H>wAe{1%ALw`~afH=fEQB)qx*f)|?7p zwBlLZt*W&D!>snIkEz_@-VQHBF}Sx)tfn`-pJH#ER4nX<%>e^Uh5-N>)GX_^Pah@+ z$*A-sO&2#9sEb6&bGzwc7j*2Y@rI1p-AzvciE-eZD{krbp2v!05gSN_CNvQf2PJ#L zH1LjWXx;RPF0Ia#gS+1yp3EH9FLW$?PIu=_lxhn5iU*sshYvVskJNK^=56Sdi{GNw z0u|+}aoB-<$CH#3ct?PeF}?Jv=oW1Rpd6M&ij*hJ*Du_EQ3=n-x8GS52OkHbfLbm-o$0nh?NcU7Is;h zP1{oWt}MQ{eRMjm1?q(!IIXpPK(+sTYlAEMdHw?@Vz#kEE@k`&t-*#_~p zt~K)C&!lU4t&tTtudLX&h1~o)UX>rCnXivCcL>%<6?@S9+Zb!)R)L_bkxQg4+ZvG* zXWAM$l(~U5GVk$KvPO16<2qKj?+r3Uj5RW{jlHpAk711rhZ68E2VWX%WEfOKj5YEW zSs4`hEj7nWeEHtiNOP^A(+2``f#@4P=K{LLy?LyW3=gOpyMxLVQkwPD_qO=jPu=SZ zTPfrkI+jAET!TLY467yP>K!3RR#ZKm!&XLP|Abh>J#MwI8YKezas^)U9!DZ3AB097 z`}`dc(3OZHltB=A(rn#ly^l`_OT?|CK{$M%I$!ksKM&OHBt#-EF^wqu{I|>3|QU>cJ-d(OMZ#)Imj#QV~G_q5-WgJ?LxbQ`A)`PF6R&fHbR zk9I8n!d7neQ6etPg|?-Zq z2(v^Ldobhnm|5a@fuLrIFV1FL_AGJV$-ykKE=vZp#MKY4(k$`iZT>9L{!*S<;^p75 zH|{L){43D<2ZI-k-SixuV`hopq8w+5GcW~tx9}y;EU_B-Lac{T=ost(p3-CcCHwN% z=8G2b+$}*Fx%Cufvg5;i@iFdfbNOQPrG%58FMbag7GI1vjVQi2g}FoE3$Y%O%`tp& zh(J($@y?lS%jS#Bi2+}Hxesy!zPRJTRpN_(-0Jg1%L{q<;>Ii48<#I0dl}>WLyWWG zi${e4pl_x+-n}%+aa@ji73DAIOCG*3HmhTimP@L?dlAt&^MCl=bRk?~T{5@0x^T%j z>1ae3E``Kc_H)EikKlEw;6>8#vfHSKLAlpF+-;)m`BT3F7h{O2v6b)SMu3R%CA`EM z!7<$B2pR>+IZ1YEh2D!#uy{9v(q?4Jx;O-YoAqAgV|?_cMfbQ_slxFUe5VC`9Y^0; z-w$;GKhSjeubrK>jq$~*RZKrjVyc3k2$r}@S}EVaV-TJ zNb!;g*9E0P#NmsLY{15tQ4WK)y8G(wS<)!LSHDE?6L9gCz0(A(g3{}NThe>wYbhGKED&JOacK5WIye$#U*Bt?CLDJ7qH zLh(vfEXg1JZKss_xRL&Rl{&qS%^n7#;^eo99h=Te(&QH5tT+8hF--M0wGbFaB`7nf zph=Iel$4>qiVN9Hq6HW!TqX5)3S6C=`g2KDeyz;p4%nS7$xLnCp-L6~7P+~ZT1OdN zUYSo^qCsSdXQ{%n-a43~OqH~c@y$YuH6!j!3q@_=5TmyE!Q3Hon9DjmK((tZZ+^Ci#H-H_zWezWN`nY**|gDzqJgh`%Yt?*7d|hoNb; zoE^f-_Vhb-=>b=^2cc9`oK=w-y-r0DxQP>m=znNU9OY4P5CHlzlo{#VwO7R~hHQ1#XGN(3#>A$R^$= z_PM=vGi|J)uJW+@t*%JuPTE%_T#sXW^@;Zjas5K!6&I-L=0XBekQC+->SCh5&M3k{sx-?y>`pT6`5gelQpHcS+g&=7YRyQA+YIrb@9Lv|#m&y2!( z_ArC9gJJ#xt%4QnIsgnq{KfooJg6aVxiS9cfi2h;g4u8Gz^Dv(+rSsr7?dr>Fn1zk zux{2DKPze2Kn*yWHl!pLnv}IX*!;l{)WK$U)4LHoAee%Jt?&)W4H>n2YUDYVB-xl6 zl9hl=%2*+*opNcId1}tobv!_+?K zsb!?vxe7tmkD<02$WaT6&?#@-`D7%grG0A6g%6}E7Jr3OKwYrFM^_gw;J*Ua9k_e=?8%Y?^v9(rNE{A)0Xa^a`l{8$9R|TjMPi%&7 zOY2(kqzD}+AvOE6l*Q;jSA(S5mZRK3eu(D12RMkXiH3TAr0}`4cB=pvBx%f=@U%9I z(a;0h1z;I%(`dIW2ynuvLBs((rp zWpFg+74L|vM5dgJ-Dh_UeCddd@8Q7L-K{AXvruRrBVxEpN`j>yo99SZoCd%RLo0W- z`DHV7q4ydv1~R}e$AFSTnK-r(#ks{O#m3U&wClCv40PfTYbO$b8kbT)SK#tY5&G^K zWegp-9dP;D$G}&!``92$RtaR^wg4%gTN2{=ASc)$*Igx$cM{}Ojb%Re!?_%-1YY(o zdlKxoEh>P-(`&~HJ;2iIis4aafyDvq#Et$Op87!j)cN6^<=oTC2yPtp=%*&^Yx{OMlvidy7 z>TCX^K{KW=a`}`|N_xg`BeL_7>eav(R9e%1w zAk+%~oT54rhtFYF|7Z!#s;yM?X#_C-r{2h+RL)lE(BzP-T*#T&Tl3McsflLQZZQxX zn4ePmtv}?~hidhMyw_pG2q9KMwVgPU&;jaWI>#}>z{B~s-%$-x;Lw7OYE{SY@hzeg0Z4+ikBZfA`Rwo`*I|1#%`WlbETi@}(o)6*nK7#0If3A1lCz(-gRxsakb8or$my8=%*sgoi0|N&R{{iomu^SOrzPbV? zGy1}U;en-iHygsp~Ott4Zs=6a^cSwxR?KmkpovvZA}(pfidS|DM8Mi+<{7+sN6}~ zaw(@c8j&LA)-DxyPCi^nG4bxX#E4Z7>s&2$fH#iO?^XM)yedf(&RYYdAsN< zu=eC8En}4gY6^lV^h&B02~ z;A~+PTBb`6ejfz1%CkB2=UR(?U8pTQBk~ht7;r0;p(n`wHRY}*>fuIUsDlpr7@~rN| zK-#nl^`7${M? zO`@d`$2udl1bwvgV|q!faW4*OC7V{uya(^4`G;eU&m}VluFS2qbeM9d)-R^}^%C+b z>Lf{LQV7(kE{}BgF4`ulyU&9?Rd?+%D;MDi^>;HeNWT7>xe2;!tUkCoLiv9|uVO_q zvFqoF5Gf|OHbeo#zs{^$fm9B(jE-n_8TcsxI@sMef2PtfRdW&kmeEM{H6}hQnK$(_ z;;2~UbD$W*!_oDxj>x<@cR zxLr$LLnM8ki4IBgg1g=YcSRgH8N~>=i_xWKuyPYvxe@5#H|zZrdst8$jYz}fI2HN4 z0p~DBzkS zZNqOXe%tZePNZ&;TBsJWWHDT}O&FRHUjs3QFe1G!3Ezw(;TueJ+Rr;8x4Yodap1m) zfCDF145(Y=9+c3Rk%C)N_SYw_HwCG@HSY3dW*F%=kMs)&5z|!UEO24T-Dcy6K6C5T zuX8APCrDFn6CNHeq<54?9#w+~P@VMAu8J(@z;Lw7-xZI0p-uDQvGMo716mVTnrNkD-iq&4F zwJhP5u{V93C0nio-1PBEh8)C|4UEEZU}j!svbxSd{)X|{f*d@;X<1+3*WC26-XUCs zaSo&%SE?Ujl!;;74)+k#ASEJR=U%T%4;U$W7)t3`)LuCZJnsz6rv2@0n0KzfmEs%N z&->jzn2ie3@Tt)t+Dyps#(jJxkDCt>&yu>EL7bEV_8@pc z%r-=Dq5g8jO@buY`k+-N1^*^V*g?rm#`f9NHk=zk7B+!2Ube$&EJhxvHwHr%M|2Q8 z>)pWWfn8W9uOZWSmNa4O^t|AzTyVR@fs@bCi`{0^z9QbzGQs)rciZfy{*#+;E-3Q; za0@v8j+@zevJ;mY!HOg69ROKy)@PcB#9$|1UJ0{ z#X6Y2{77;+m{v>^?zUl9P47ZX()`vZji|KCgz(r`(Szf1yb1 zAEK(Zkv_UfhQ9?(10@k1?*`Z_b1?YEUfH-AWt8*lB|fU_mQ~=k&yzl7meheVjYAS~ z^&w292C!zzB<|*#39Bn^re~(&O%OT;Mh_GYZkblW@7uYVXWnn%}H3rK7D^CO)f`ua3nxrIvRl z5H(o{(Xmk9cX}iWcjLNQpY7wuw1TKt-H=D85Vb7X1CtCN{cr?&B}+LT_hAqvPmXwk zhwyIc9P0l{3`!@YVvz52ANeneKKTnqNE#nt!42vv21NyVT!0VJg4IPvma*w+h~v?$ zVx3*vC%0R`Qc|uWwp@|76BPj9dF-wVe-F&tQ*T+e)3Sh{7ybWLE219JkW`lZw zNuQ({TPW&w+lEnJf9fQWHWXAi6Ugh%d>#8tGW8}>I=FjzQwR2x%h`oMgA{q0CK0lB zg7`;9o~8ar*m71Ai@d%guNaODoL<4nBF3I_k%fx@RWODW{sRl|o#;8A(T0+82~+Ud z>I?XBIY~JcDY+4N16|!ikzYehqSj+MhsEx?Yz$(&gL^_+)#nrX0Fe8A{w-Dy0AMh~ zlAi7uqv!XF?5SbK>+SN2{=eyOoeXzfTL2;$38U1{>M79C`u^S|wasMwxks7TKL^4T zw}DS!{Q%a75%v)L0;=$j{ERee1)xKh`x>QW z+6b;0;LrpLO({lms5H4lECS1!S)s7Ii zI)-!_VnJlqLL*hhN%c(~G=xv(RiL<_v91&+<02#L_1sDegC;Lt-_&6-E5{I3Rp2<$ z296HFXp|b+B8-QQllW~*%czr9Gf=46W+Ej&%?mapSx|Ap5i5B<;Uu)xob zdGa9bcHjgx+dVz5-7VwVt#;de;%2n_8aGwZwFQh!A-KuXZprLx`JS)O2cd1hucZLt zn=(C+EJkRaT_Q2`$}T)B4#mraZXwb<%*22+8xqA`42q1!B#IAAB56uyud6eXMGgwn zEfg9PbEOlgHR5o9W>1SXn3DiT1w2a-sI3C8O@F;o9T@4k2C9e4K5^@dZFo282~dBO z_n_MWO&kwiq3#csi4#fkd{q4QU>0A5eN7?>-Ud6o?ClvxtRrQxL&U0MVnD23NLEgt zrz?`UAZiO+?LBraI#a)7hI4vc$w4*bpfxH7t^UC70rHXPhbp4CrVAF7f{^I-Vwl4E zyj02TIf`wVje^YnZIE3v0sUkahX7fPR@S=AA`$mP|9f8_A>1bk2g0)H{j*L8DjyzK zd1u(iy|-DFcZChz+Za^VNd3U7975_-7|Z7Pmyc8-mdU*nEx2pYQ&thc)jgUQSGkX6 zM_83V-vtSus^e19#jmjKP2xtWcZvltgy>;bmXGK!u`S-)Y=M3Zj{M$hbV5MAb>b?& zvIoi@XH_1BI~aQp(+TqZ5021|5K^c_e##o_m}dDPBp-cw*iLRbT*7?+yNhd9Vnmzu zLh*pTjjpt6ok2%SSXbV`#DK?(nxGJ#P`a{p!4Jr6KJ*NH?u15d;k*G(g_QAJb)l`&=$n@dA>Vz z`{)2tAnT124=U$Bi#(I$ib<*f%#mgmoW(>IL#=J7PDpa2;I2YLc@*6JR~rSl@+whq zUC-EzN z-6Qn4hn)jp1VJF_sUi$v0Z&&xm_0yt{nD8TY2 zT#3rG2h&x>assSoOZ8f?U_G{l3KxTHs4#Lq8_yM~)t#==SQ_iq(gx-)4wYr4zc%A+ zapm%Aj(6&5n%9vzqk*ZA6g@lK`%{sWIUS7+3&a|i{A8-30M6HBMkS^iiusn7yagL* ztQUjG6cjFmQBo?PGj9`&4$)4}5ffkW?Ha-y3cf#vx9!id%a+WOmP+P<(IqyTM+z1v zvrEzLO0RVy`vZXsRqn20W%6TFAaiSyD>8`FHeuo-H2)NiQ1yMLKrPJaZ+Iua1|fL^ z3cz%6wC>_E@HV^Hhy1Ws|mk>X#}YM5v@jq3;welQ$I2(Ib?fP?NuBDW!mj#B7)$ws2x&~LGX-=%*|h;%7B zWS>LX#tqqaGTxyfJDQ2dOw4~-4%jQ=>pS7Uq%vi3i$8vpWHjbqy zGrjJ&5!uazcr_7AvmC;!#Q4Hl6l1BjU=t0p0|S*uyM0iHinNHm39OiDCgh@BOd{d=wZ_*9;*SR;*oE#_M(F)<_Myht;aZ{vPM+2V& zAbCjj)D<9=9L`(sGOkWU69ADd4GhEKKURo12Nkv2$~NHJW}bf^%iy&q8g>z|fEz9hoW)t4K#{M|2oeh%@V~%0-nx9batZAVS)}@QN1Pw4BFR;Ax~d9yRg{S@D?^@9iO7^) ztPc35zzj5+gMhph*Rve_mU(>yyGqBaVWTY+`9LbzrIQ z(W-z)t4vV95tJOGyV}&7(EI_|8BHNi=FobkSBB^XB3fl=#Y=}?#(U{bS7iq7Vf_J4 z5BFr9RqP=ZfFSiHx<)HQ92wGCNs-sA_t)piP5C`^;z$<@7UP)r&c;(cLZPKghNcHp z{Xh=X!5@r^(ZO69hyt}5TKyo+S!CmM)e(7!} zn#O}`pA=Cg5KBtFwS1@A*WK^Cr|Fiq;->ZIp!zgPFTIFZ`Lb-#g8s5FNs*|e`IK)J zT5tiRC7)KJoar_2Fidqywe`!G;6#?%8QnuQ*^dwUhQ4M(Sp{;$MC1uI?E3+BM8%Li zm7)f~TgnZ?Pwruiq&|m$eDDnQp6nxRFU|86d#TUKA(cSJ)Ok!0M{l9l&*~~zr7yhC zPXkA5M;YW-I0|K)sQ-`2g;AYr?P)r7*+(IA&HDP?_n<~{}L_Wf)=8)QtHCu)9>VXuv&9(J^Q7tyEj!LGzrv|KGa0Ai)Ul%^(bbr z>t?FPTW}UJDu8XQ3gO0%UT*IKPP(*YUWNqM6U_u%E=pZc#0Ye!0Qu1M-7g`!#SN6%vYh|D#5zkx%eNnuw|3+Jvt z)!11m>CxL1NR-SYrnUk**n}ZaAxi5zvvt$hVh&~06kh*4=p$hI7L=m5247q)u6LLj zPxHRb=lVqK(yAJc6C^9^_0QtSK>uho@8ZDtXWKkjP*swxgzy&0r8=#iQ8I7x`^-`U z`obZs#|wh0YEa+VML+r6cw@uJa@<{(I({SZ8?%AfLu|K!mr+fxP?%Y71H1;emzGH; zgo?M|)uQ4xcnzqSmQ0(94=^Q6 z#Q|E|3+2_Oue3Hs0MaCqG20lgL2D;Vrrp}UObNG^pXyW9e|aJ|^>q)!FpxcnDn0H@ zQ2pT31FD^$Jby6EFfUq*R7de1SNd zO_=9zE_%<&EA45BxUr|ROmq}rUU1jC;4X~=_pb=J{M?6$iT~x{K9#xB#0|fF8o00X zRB|8IQWBYu9T#xpfQ;iaoi;L$oARwwLFpr9zYTev_RVo(A_Z1p><9u+3|Dor@Vbg! z<9n%o=P%zeq0+XjE_2qQs|%vfLncOFthi+Aaq*+2=F9|@lc@|Ha-peiY2tcqr_B*} zU9hsdZ8Rr6Rn>~YASC_C#lRH72Lq6*EQV0P{*DKe@!T6CF2*41;(-YoRV4!m=p}$^ z3Fzr;L{^ldK99p|pbn0gOj{jX&Xll#4$#_KC~vj)O~PsIBfJK!RYqDXwOfnhCS}2= z*Gq=(7qKJVGgCjt+7+BcE|LXHA;8)~VMokScDPm=;G63g-px)dZUWREKn2|d>VZTS zueOK5NDn243vFC_EB7|*RW}lWI(-&)i@Y^J@HLQsg$A9IF^U+@SB5CAB?GwxzU-{%6xc$Vw^OptJ|T)G5mmSN#xbils`dVq*}&U zc41kjWK*FN7J7qC(C~M={q5pMhXuF4ohQu?{r0!Qv&o@xx4((3ZVhgKJ3-V8 zmyY;zZ+|NnWe;A(*H$byqP~T|xzUV{G&=4lcLI)Z?|ZUZhKr9!R*X|$xivv}9gx~Q z&bYcoIOejB+B@k!6?10XZE$-CzF5HN%kA*R;d!W)u0SK~M3cVF?R7;vxeX3^YD&R? zf38P3s9!7fA?8#H{%vr#nEJY^Uihb{sN3MMm(P!|%(w11dj!`h}M@S;{x zD6kco-FY!VaCKrFQDd%&yXHhrcwvuy1-P#}G#`T$!r*(KDLetUbi$M1KXUy~ROkAT z*vI!y77DE+H$zi_v>88e#Q%#K-48)~NAnE*%Uh4hJn!N)4rIs<}ugT2g7< z9LFK5CFYoGxD-Vw)k#lKglov92)EdkUV@gWp}*&O*V=opwf8FxAF%y^^8`B6=Bo#s>3u%CtCIG-^Qm?lhGUL!0pW6DHB)f5Py z6;1N6HwV9tX4sWjn2NjKXO2~a4s2o2p+*og>2SNCOGz~8@B;xEY<_@gO^4g0tW7$M zGn$+c)g;&X?8Yr4uM&09pzUm`?2WTfA*u`pr9)IXpP4>Y zKA@S<8npW4c2MPGREm(5D^5^U83N^T&Szq6Q00$a5ma&Q$`i`k(gnL3v_P^vYg>ea zP$8=907{3bavU>#s=P`wp{cTrOGa&3+l8nUL6y@-Dyr-P<#CQ{XqcjtmD*ryQ9aMP|l_IDz?07|$-cTN=go(95m3KGJ zLY3vPrSQzAtaP)fvSLsKRelAfLsZ!rLTOOt7T6M(DzBW-4yx3kQUq1@IZjb!HN?c( znTZfp+~wWIMX~R>7Sbr6rJ`>*VR!Z3d!l+!^=2d-1t5 z8C^AxkxJckrHirv;(>K`c4`RFU;>g4Sb6iB9TlMN#0cAeSm`p)TMQYYqKxr+bJ`5Q z{1*s@rfTJQu#OzPBf4J~kkzln-FaM%#9?kN4&1wybulo*ng9Gb_2AKsIFP6&g;U{0 zAP?Nyb>sE4WHE_I?R#e_uj6ouNky%G-y69iQSG02-wd(`P{@%euYxvGN9&IruS5cq z!pL9^{oy7yDk+g*HSZSg_QxubSPp4$He;f4;dlgVLq_>)8*4_%yYkyj$(^969wjS0 zN^YqrSz%D}Xq%FE;Eq%jCGP?km2w%Be2bYrCHJOX)s!54TstT^7?mO@`SEZ?$@@ou zl5a7wwkbJ$!*)~hQy>vR$%lEKSw0rv$>b-J<;i3zo==UU4Rg~QD7*KK`6Jbiy;>R&RtxJ^8GHoQLsOi{Z*khXb zI(5GnONLEIHPN6vb|hhAsZ^)W9VY3?xdK^Ea_}Ko-x)`~xcwK-^xx z%5}cy(8H@dGXNRR2D}4do-4(l06pXCJbbdGa86ElxqZ9dw)$okJZlK?Dt42~?V=H1 zpNKc3fd+$plz#Dn^4ac7LT!htwkz*32K|)LHlZ&IdF!e>%^}w6qucK43vRjHA-UWL zY#tp?sbVnyms;dw2|l5hIn~F*2TQ6vgv_fHja2Ro6Pay^j1O?AD39JY)ZNG|l@+4GQmJMIUuS@t}|yS2mq|EgD5&rGhs`QwFgo;7wVXHR?)?A-%dX+Q|+e< zrJP6OWnVAt^g$Um^}Jm|Mn034wkU8iSa*=jU#8|~}G91i7HGU=d(7yQK=ko}ZG{bbP^cYo8qmrtU zuu|0!t=FsUv&HA@hH2-G5~Gd20Il(0Z$x36b!g@ndcEP0r1My_-JE&Ah);`(7 zm9-KfyOy`R>(E9Gd;yDWlPGVWyos`N&3U zii<`YvZgReJ7=PmDQj-?46?SIyo0RGf|xmZ+Yw_-XfYrn=jBx@Dq9b_#Y zhpb)7M0;iJdCss6Sv%IZb0TZc@9WFjhnPclNY>8pnL*YH4q98Xwkbv&lC^G|MatTG zrrczbwduhicCD0|ZjQ)WkABgzme(a(*7jz; zC2MynL*~lbfH%JhN5?k zqF#8tNWuxV^HmO}Hjl9L-oiPG<{>tS8#9Ag4=1&oH?~2HIU*-V9?mf0%&ezg67^M6 zuuT+<2jYz0yK<};M(SYj)SYg~(U-B}D`nr8jg5WZ+871L4C(JA zey^0Z8Pbn8nw%fi1pD75N>HAKj5wb$VXZzQ%JL)x^O9DOzLf*6dJ0wsX2v*ERRBry z%Eu11t&kP1q5VS8#I#bu@^b_2$)S-DC;d_g=B2ga5H0SiUD}yU^1HEc+IhM=WpWDJ z#8Wt}>XwMkkHI4CvZn~#&BiT7f`o}9@989`OC2S(@`{ddw?c18 zeF}kd`%V_R9K7Qoa@UlCJDDTPP7)2RI*=9IYwfc3`6#oJcdMK3s#ABwGLT^)T0G%( z(WjRf_G98aUsTz;x@<@3JXKnNf#!&OO0&I(p;`FTTxETX>S_WY)%P@LDJOl^ZE)PR z)wgFxqQfeyLlWHR@HOI@rNaP!=6B1YJ8kqDkc82Zy_SV~Wiz26di{*z?Y@Dab45<>MFAI|o>T*`m7xS> z?+)IjfmT?$Y0%+HDKBu#d0vv!nnD@ z(O9jKb(LiCaaOz-E{)~mvmY~C!&-hgutvflcCM2es&uDcp_0&spV!m7o^cunh^Xm+Fvs{Z~m2$<8_#ukb|4;4otVdp8~>Z)*bQ}+h)Xq`YE2G@{zO0WP^{|A#mU!3Fuopt zF&vx*m$5HWN1pG=!8}6{1p(5|?_@uw_Sv4XP%j@S>?-F2I}x#E4+BAtK1pjyD#)j| z&3#Wdn(+7UycK?vc1ghjn~#c=k1=V|ZqMr!?M{b^vXV!;hgnll5W;x0`|w?hb{Ei3 zs%LC7(hieH*2zx0F{}SDX@~OyNOp#H|9XhMWv87I?^Y111&jm}v%aaY6XeQ>hF!|H zak}0-QSU~6?#&lO)y8H8xqjJa@Z{81UKRf- z2mU^HRx(pQ3Ta*5I2ar??<0tezVin~7U0uP!vNP985X7(qeW?XL(mMQl+J%6-b;2> zT%2|k$q_WsQqbIlSt)3YoVk~*9As4^Z5e}!kV4CZ6$!CTHrdx)exp^*(n8*HCWEcZ zF~6Xd)yNwq5Q2Im{MZEqo!2UlYgnJWhR!$PTUvN>`e3OGx;ejdb%ADKcpf?eBk&0_ z@3sVPO~B}DIt)at!$G4i=z|mES#W2)7V>3p+>%y2ZbdVIl2e^ygJUQGsp^AVs)HKw zzjc6j0|3?w{vtnOy8sQHc(rgipRZ2XyJYKk<@hL3d zrZIzMzo=+_89?8l3Fx?WdvA?jg;@9uWZN8pz7J@2YCZN~k&BTd8v7#(**p>r;*^4F zD3N+dH3@2eP^Kup5X-^TY32PT{WWc80PBmgwBNdp0%q1b@F@qXd6A z02*x7j52N-(RL1?GQe!j1?T1x+Y1yL$fM#>0ckOz%Q6~#mK?o~s&{K2AY+qx<{|jW zGV`kmZg>=;49Q8Q6$>|Bx@34{D^5*u#OM(gCe;aSVC9BcGVSr;^~(S+Zo%W|3o&}o zAD%-@Puj_sriDm0kr=eSR2T#T(?KD7Y_8;^JXKnRCanzS@W+od#3-|XuL^nM66S=a z69ANhC?JluXn6lYSv1K)u~@VTVOvn-4rEabH-t6zNohSFNms@ui)rAsL=PD)?Fs1@ zUo_?bFrLw>6*&8mvn{B=3D~t<+K|!UVG)_060lT>kx(GmEdw#5Zta=>&;3w0fiS<< z6fp~_+{(#abCTV=;_bv#@5}KUACTOCbrTf}k2|PuD9hmb1Jbh1rKeyKXNb%G6e|-f zdI3@Avj0XFU55C3S$$;DJQn>cvZ&{gD4H5sbT*2buMA`U4)e!^^G`Yo`G<$|M;wj( zJ;M1L3`c$+XRDQe@O)ul(%sy}Fm#b3yz!azLY@eBlcbJil?WTWFYqN)L|1F%JwU;- ziLR{Ur50b1t#2K@q82Kj8x5f|Ra6}}nHUQ&{2J1qjAXJk-!itNm_cGB9e3vy< zwJswNGPKSL4rcLBGME_{%*<+| z<`YF|tV$jm%b&cy=!ysW3rLlsliOLP@-CRC5dTgT%{(|Eh1?*DIU0`C;mu^n*w$20cso3g_w4FO3otm z;S%%OQtsmL9ITtOJ#vO7ejJ+kjskwH5L?du;4X9p*x3NID^P#DsDM!Hdu(?un`NLQ z3s(dgDD6CTEtxOxZMm<9bUQ57v%A|nJdgJl?#}Gk$9%#M+@>O)9PiNNXi!g~ zj1L0opF@+yMvDU@Ivd)hWoTlVy7|k|^)fo)vtL>H!ETiFjA%6D;d%WqeKJ4TW!R%4 z+M{f~s2i_SX^`4PV8#gWMGw6z6pv7D2?N$?T|dqy!$Vxsf4H{sqvNBPAT9- z5WtwlbXM@r7BHUW2(Ko}N}`$!o-Z`V2NIuQ;2?9}ulvei94vVhfzDC$UuCIGJynz5 z$5qpoq?$S=N{dXH#&`m2Bt=3d!ZGHDml7p&sRs%gSS$<4JIu1eDK+93Wr~G|TP3U= zAFq}eYrN%Y(>vqKbO<*1U;Dl_z0cOz&f0b>p&?(X!YX3gc@LQ;Db(^%#s#~4M5G9@ z+E}p5k6f@j5pFGF!LF#tT6c(|U~#})fb4K;Py_j|eWM=;32?UG(jNW$$TUaacIWCj z7k~N`nrY|17s5F7U%;?5>-QXAQPPhoMcUa&kwDr%!1l5+B*|%#ghfqZ#^GDm zs|#qDg5PsIo0SKe-*bHJc&G=TrMn15=EhOv?D~+4Y5ly} z^*)kxKVdmMoPrJW*9K=@M0$tU1}8vhd};Np zRoKp6f$`h8DeI?e>V5FD@;}5O2W{)d=2N_&M*7Jo=^uhR1fZ}Y!%y(GP;d`Mn$t6B zCPq|pm`wG)Pzp;aDNNR?Bp2EZZ)3fLqTiV_DdxTfvOatZd%UnOso~vGdE`7Kp)L9_ z*M^e(j1`||cRG9g)~sco5W0dnp>tyI5_rOYtfrD_4dZet1M5ts319svHJTh8)g;$h z&WIZ3^axrDagWECvT)L<`4p^hmYPvKFT)%{SQX%T4mve?-c9&u z@?3HhlXsIskLRbVq{Z_rlKK>?XTf^S#y1UzbEC#L5}lgkJ4tXh$0s>zd{fkbT$z4B zCEGi`bzpn{vhmGYKYDyK1LJ!(G(O2uM+ zd!c8OE1L->CRZd!VLe2l>2l@Lj$vK-dxv!;o&oFe0j#eIVJ$fd>xXQtKk69P|LQo_ zQ`e2A^^ySApNFuP9EJ6|67F~!K3FB&s{tQ%9P1@{(O8$DXH!BB5==}9ksO8f1vb|A zMq^!sC?K%*26L~C?;hC1p#8|7Gh&4@$Bl%7xkuH3=9WZIKcb{QFT6g%$Bu9;D8+MOJh{d6%dLN^b9Fx05898@2V<`J( zt0qQ3BP3~UF1yXCi2_{qmbsyebv21kjnz57jNCw zuC^Uw!$ zqw~{NhUuw(v0#i;^t0qRRCGn157|O1P`>4~)|g za?jT5@;Bf)QSA5St~BZLh`Sm^G9M1~Q?Lkdvh+iby*B#Uw~c;&?p!|s9|{3zrlgVx z`ZFNse9LtwNf%Qh)z7J2IN^8cb={fDm{i`K!8XNhhPlDUvB$C1ULl~;4P|8QP`Va0~e6S z!a>^Ug2>tC7zTzl1zkL*Ly%83A#al%a-R-C{<{hJumEI6KR+ZI5^tQ90Oh#k03yCH zV#Qg?@`9c%Ri$0cLuG7HE@xNrpD*o-i*7&f-hdCq;2jQJO4&@cFUWr(w&E;aYLSBt zdL75G*lI^Wkqb*OiH54!;-H}>8IvQ))&^4hBA5=fQy|Hi>mu1@p<8-1N?)YZ$aaCO zQ}@77d4?+$TWZS_E;Fu9j#!F-2;<#R>AAPwonfzvxwh zcP@fu#-JCg!x|hf7V1hz!@a3PLC=6U&2Dy_edyCdzoCGlWA*UZdg!5YVX=K<+FggN z3zMXdq^Os;&pWoQB3)Sm`I9AbN+IpsZ`V3hl2VI1PY~{USlK$ac9|4|)aqN@z*+>J z`%cKJ$3P(SlGQ4G$Z=g{38{5BC&;~t7NK#@2e)jS?s|LQw}-5JAmoHjrk!~_?n)cr zFIfQ9w3CZ)1S~umWs=U5@Py$RnhDyH!(^)W9#SZw43lT5WI^co^ZXC#g)vB6wS*{O zROV7CJV8;EB|m&sc8^hp?mA(~!xlE7LqylYuJe^`VebrB*#4_LiyN@8|KklD+TK(t z^$jGG18yh(PiHF&JC0S9g&i-oE1e3`=Frd@fMo|2;oECr=k1HA4A6z@S5cPy0JHs8 zgQ$v`7?@{SjVp64tFZ-2U$m`80}e7oT8-C1J8&b2^gipw&pWMq7+4OXqrYwRG+gl*+qbzNbDJT}JBMh+hIacNsFGbZ$&H(YcCa z4V`=KqwG4Dhl5U$I(IY*LOPej9y+XZeR+0Fw)RBl765WQAvz~#=CsbWO19_E@Ahkr zlJ>UFy&=URPkkDz+B$b6vuvF^N3xX89mQBMXj=-wt+k?ao8c%gfd@VH4d~U>xtowy zi$kubmK>#XFG``ObImFl*15uWJe}JK@`X`Fcj!l1ah^{Nd(e;7M~YkZ9AzAojbaVrE^pNTxCYbd!jU;a}G|$N9x=c zKLvEID~1-ObKk9A#pt-_(T2_){eE_xn}#FnkvjJ&3PQ4Y1AFMO&OL?$?uO1CB}vh_ zCjQhqH`%V$->u_I=9IP7J51tQ^~N-J@}@lbI<04bdIswq~*qoVEisD4zGvS zLUmElqu`P)x&S_X9hFf9C?XnLX&&WyOjj?o-DiiMXb-t3u6U9OMJ2%mU)8t)@ybf zcQ;@nKEX8FKx1$0KgS_J{`@)eHM?$TWiBTQQ8Dyio<#HT!r=A4K{HT192(+GWFqP% z9wlq?VqoGG2g9SREsc~lmc~6O)$QsuPC~MLNNPPOBCu@>r z%i2Xi(UUboP%ORaJx?3W3)3 z2%WX8xmh$=cTtGiM_vCM~2)*=sXvPu9K#2Qtdq#rJ2EwQj#h%32>phGALj4o!x9 z(5_jswj8^gS!M0elS8uBS4^GQHCNVlKvq!Jt{H8~+S?Kw>DPGNS2}Icxa!%UtWD&6 zC@5=JGSiZ^2S16HwTEX#%i8~PS)0PSbWql=Wu_%-1O5{&YlGx)boiCdvCOw*?QLbqTv=QBOJ`*5 zRkZ4WtR1pK$=Zg$K-LB_5hZJZ)y$T-ocD{h^6E1e1k=v^F(5R5>o3=TyXX%dILo;6 zwIvw?qH?QMPELhSEmW|iF6A5^(5sg+0@30Hebi^Unc())er>W>XMpN ztY9-K#uqxI38+47CbB?B2^)Tt7QvgMWy3M+zzzU#@R#?05MZFXY+b0Ob5XHj?*NTP z^x1S+qCTE@7c1vCb(gsxY0*Qt%~c6S{$k=mNx|B&dE~h62MAzrc3v#|X4nWa$s^Y@ z)H?9&Gsq0todNcHF_>^%V!2(Eq2es`deMRw-` zgum__-1Gg>F6CU!JA(_^B%auao{!7E{yL=v1I3WTProB6yf-T{^rz~+BVBsh;z9HJ z^-heYGt{ISDp-}F8c-aZ&=x&sEh;R&oc$GSwy`SV@6Tw1u;-biD;~cjo!R18WP~z;@FIU^bnsol^QsSD6c$AdPTNdtZJ#!?atPv z=xz)2Y~UZD86*bpsR>*Wri*mTD5+3XW{YB@#eNYjLi2X?T8a@uVan%XQ@IYC%a##< zlvfj`KX1x)ra>@#X|U`Es@7rTL<4_IO5&AH9z?ASSMwzU1?{uhY?>{4l}B5gU!D_dh&(ZDk4hV`x0`qZc3P}CgMLbjn>PWZnbNyb z$}7Mhj3}`F=5yJly1ZyFls^S@w5eV~iUn-}4T~TxjYe{6q;1W?WQ6{Gk1)kn_JjWy zq~`!(2`|tnTH-IBcK{s^!bq6l7+d8x#;Ec}s=uHk-j{~Mpq(29I`S_}wCro(sgULk zRI{|xAE=OM7Ae94;^l<3o6;Gk*J&Yo`P2n=#g`I0tY=6ytZ}^WVxOID(uv{lRO9mG}s8_i%kmQffb?(mRWCx9gS8#??WT5oY<06-h=qc z?Q0Cuzx)ExQjuY*XIDi8&%p0WDUcfw5!HEJ%ccwonWjXd5r3A@in+fF_&ZDr#rpQ& zM*8MUK*@9)Nr0&*Xk>fS6`EVeW~C18>%1oY5opjx1nuK*OiKld7P#D(&z^|{{Ry~~ zmt9Dw%2;cWjC*jbrTkO6YmYj9L_HcnY9NT!koGFnuF-;nzqkN|KxOhbiey!U+nsP_ z&kFT%yN%uPeaoaAkOG`xwSY4NDm)VgunzF*Snn-Ci}Lwp9lQ4vG1AUyW_PhXxF z4KHrN^J6&U{ioNZX(6y_;?Q4`q@1Lj2G&{LD`?aV72g?LZj}**Rr(46sf*1Umm=Lz zTf#nv#mWs?EXO0|75J;#Fip55z)TjW%`N6?^=a-TTu-1G%e*5TBMlTbh4 zdRP88?CpH6K?Y>+s09yRzDO4x-`0hs|Ug45fYVL5eI389k&9h4u zJd5Mh#}a=2^A$H>Fbc+j1R1V99koMsHx2i<4f?a4ZVAMqQN~kW6?@;54R*(7j&11!FSz^8U=u^|Du>mknY3Kxk;)@WRR;y9{Vhi*Xso zc1kCEox{V6?umUB0fUmlsGGIlX&(ZgVhhvO$9BI+30W-vlXP%VNmyCq~%n$*n zsfs;lDi9os^X5ZQuNVRF3`4JKv|e4x6QT*eXD&Vke?7e#k9~O*L1|+3u%ZQG0rRJv z!(~1N47$Ym7pvspXG3!#oJbvIy5=)1DQJgs1AnstDJA7XrGFq>kG>v7d8)b;^-)FE zQF0LUe%)=cyR3USZXCo@BTKz}^!zgNWLX!#ADH>a>M3)vC@0^ZqeImn1A9QEWFm0~ zQR0R8i!q2@z+bEc#2OAuv~nPSpeC>!FEvwebN&FzaC8VoCAxPK1I9$i2pWh-1UbdH zJji@yT+aO$2(D@YpVGqSt&obScOdG4^C+|?!RIXrdtx1;i9k61+m=OWtM6h6RsV&c z0Qhdh>|{k1eA=8M{2vDS2;ya|!v*PmUd6-}UCOo=FiOfza11*DF3_lKA6B<~<_^qR zBu*3tS3<&8NFqF+pfw$EtmhuvYvJl}G7vNeEENPK@qJCs{xG1&p45y7fjwgYXHdWSf@oN`+OVo(zYr%i1`k2Yc)w*Hj?+-e0FtZh_7l|f z@nD`2uetM63px_t6^81ER>n!Y(ZavX4_8I?V@g z9?G1=2QuSS^h}cOvTXMISAVW{cKdjhdqvK98o%{bgR?$ymD*jqif|EIm%Lwi=8{FAZ;LZqv)4Xl( z@H|?3^}QaaC$zpBQT-6gxvknK3BrurOUhK(ei8@-c?|~n=hE~X5M6d8%1C7&NJKpU z141`jOJUVI9M6A`BS@a8+41~}<>G@|fC>IlAe+?BHsbke(&I-cMD!+?I30`HE- zLpA!gV)7%PeWuK{Gg>~M=kQ!#0=+sv zYfQcekO|njV$iS6n7l`zmzN=^@K70|0+*}dLjA;I8uc{ zL;E@&qOato6&<24<8StEhv-w04f*5*B^aV#u8IQDUpPd65}fWUMM z*l$U6q-Q_Ue;hq8+Y@b_ez(bRQ3)tk&K=EA=5mf9{FOV1=v)@xzXXD0RFAVdLLMoW zWwE#Jql)KGQ4e7IfcvthU^Bc(_9WC~m97IJoH$ejz6hYyk()+swZ7@q1^#w{w+D{4 zqG%j-A$~Ws1>j)-K5w}VpFUQ1cQ zTVbxRvpIOleg3>Dh8|mK$?f23Z}mAPBQBb#D+VS^8=zwIY0*G_z+`~~qNuyGrIIqr z7<&u=T4+=b&XY>Z?C=XrGB;out6RICGjLSFUyF>P2u~-$sWFc)A&NgfEnJ^dy7Zb+T0uW zY0yu$$kNXK@>ghZ{hHFCyEUYC(BLGiK~|oP=Sd+9^hWtB_3xY zyjUaA7Asyi_~}jfzb=55(p=kAvLKtqXGS?m5mmd+DK?z&uY|ji+ z#zPSX{czt-FS2>asaKLgKit;Bv`@XB0zTtwx10saHZX>Qlai85D;myIFRnX<%nUuQ z?jj?{$gt5T@+pcs3iYiSs&>AC4R<+?Yf#h^C&P0p(RWX(0l~Lr50}ydZIIs1QN6j1 zIQT-3GkQC|>P}2#{83&aqZB(eojQ!HUqSQU$QOEUCZN5AxXUG3*t}_S#FD_7sVh+=GrWN31^y+#A0k~o*R;uM<99B( z^sipDvkY<}=|Tj_;ZCNXwUAxwiQKJenoh>4_Im1G(0E^RM9LMd5pRK|p)(R|iDe0( zX2^9U%Rac>Vp**aQdqWtKRdy)xB3ao>i-sCSxi8CEPGgzkt}-@MFz`Uk^BFQZvRIA zZPD#+Oc@PP=l-sC$s5QfY{vE9jG{h$C!t%#ZUMU8B%nRIwMa6OZa<;u|4+JY#j`iQ zoJY#rnV5STblZ!>QlZT8ouu2S9ffWKb`8+&KQ`S4Nl%e<+Ydz<=(d(LaSD29i!w*t zYEkA!!B;eqXPP>ri3jZPR#k0&VMR+jb;Q07hn?NR1;Nk&p;HH!XP${dQZwMCiDrdgCZh2&7$G^vx6 z$=^;W^HRS6Wx5Gyk1}USGLkZ9qv)@t%v0#0Ez0~c)uPNI!B=Ev8Gm-dudUohC{w*t zfHLO^Xpb_BB^gPXcTkjpGPpn=TY+cpR@i~sS~5R5IO@_C!4}_a5o|Lw(V{enKRZFN zg+)TJqjn4s>}8u^TS-rm1S>+3K`?XvBN3}mO=8p}_7U7Sqo<*j?}ZpOtR*rI2jI5I zIHlSm6QDt?DXe+d=e z2H>`+cmQULMwIYB8JkeC;DXLkai6|I#rwAlP;sh&_Ne%yBqOP~5=9-R;ta_8UqZ!= zK!>)d_-o3dVlhdlyu&e_q~Z@-3KfTL8=&F`HWl}lo+7C@5Jk~cEP|#wYThSDMlmlk zZ$m$Zh8S?j1}ODc=Ull*-(O8yd77DXS2_JrE5lU_I}>=~#)i{I&$HU!GuB|f{E-jgChDuEoPne{`IZy;`Xi>eKKV2jY!WdZt)I*J_-@ayTFskH@@X3VL_#uF ztET2ZPr*xAb1?Oe)yjQ2#rav+F}HybRJGfm;o_4(z!shQ$jxB+f@t}}e0p{(N;bD* zbGKGMu{4_7y|3iXTsDt`ktJ4aaB({fhp_yW)3auAUoC&~t*BM;3dfdHHX7yA1R?L% zZVPCS+#7VR-Z=P}xde&Bn90};>a2M_*nn^6CPz#|gK9N`Gm#hGpe)0K=Uzv8@8q8V znH)8(`5%OfFS6qKh{{+E_PDT|JUBKpf6DIUhTlv$m3B&1GZYBb4+R&3Yq$fO_n`FB zMC)4H2(KEkp1~#IUOV&yu(Did(6eM=+UW|`IlD0-frP2WMb!I5`BGC3un5DaKd}g; z#(XF2OF}*y?&!yo@u=I+cqo}wf~zfyz+&I#auym#7j;pRIIs>%=q(Vyve1O4}MXEC{6d`RvwsorSNwCPL zi@SIkf`vh;^S~~=UK!w>5`~}8z^XcPkYZ!F_ndYfR988`QI&4wNVzAi_M#yTLeLG^ zQG)A$jXGyP$${`g3Vi+lN}8MXdP_a9mheB;-e`>AZR^R#GhNki3FM9;h~ zmZtj42LED%feWysfjy&X)hM#Idd55z#FxBZOL6wE{ zf4@)$uA-cJ?AlupL*BYA`5GRSug$MC)6xHl;lvpCBp0Pfh z4O|hsIV57MpZE(!Y!wCr`k2aANIwMY)dX2@BHAxqYl+yVS5Xc`#CGM+PKeku8;OYh zZ_|K?%?37xh~-O9ks`J+iVP9+{Ah={`R}W7K!ut<49?@+nFpxH*9hGIMkH z$NxfZj=rXCZZ5B|xH$n$G&iU6XD7J1lwWX6_0I1d;N~_0+M80AOEQw1<59F$xOsDB zc5ZTKz~|=ww5F1q`B=w{;O3KTkeQpOKl&GPv+v}#x!Ly`i<^VcM02y0KRdzAP4UPG zxVif#0d9T{(i*zCr}Pxb&Am|+#Z7ufZ;b_)aA99?f}Y<^>0)fvQiH_=vFcL#TUvZ@ zXp3Bl_qSJBe2>d3>Vu;EIdj$VsO^x@WmpSas)7PeyI@(lLT=d#W$b)N&v(z*$#W?3 zI+=rn?qp6^xBw#PfI?AyjK{!hU{I?OfmMYgu$npRYXJW~TOP4nPl&f{2`5ByY$aBU zzf}mxX6W=xovy>*8o6!6{->$tS1>c4s+MO-8I&c5p{>mS&ma%=M8$a!qKjQ-bv1G) zW_vTUEg$or-gD=bIM21ZxhJa4WM6fR7&WB70n)Pm3fr1F8|lIHP}uC^wz!Th49sLi z5?1zvyewM=D#~c`b^AqU2{CvJPI^4VYhNWJLwlJx>Y;6M2TpZ9sDTi}8Ar**uwv=c zelc}FXs!FQpgX*YxDLDQ3>OLaY2G1%ME>L_)KOEPRs9rpoNU&5kEjj=48^-51qd9+ z?m32sd1^l(Vug-7Jp=}%a%cX`1D^T~r0cJMI_pDEy8s4f(I1f@BphJ<`$!oSo=-#C z9@N+wdQgmfrQ_}ZpjHB^+#833feVX0PVY4dw7;%33P-kCnzy@0GbutR|V`UYEP-a{t)prWRqFaMN{JTG7D* z{ND!z@Dda7AsX()(mk7cu2_MyBY{3PGT&LxJ zWTwhvXit#w_S)+GZVlM# zqJuNq>gOQg!Qn;Q>K9MsAR=satrWU+t6RBpd!!&Y~_(6`kO;5qJ~ ztv=$QjJCQ7nq=GR2>=kV)vr?kO!N8#7FWZzdj1K*J1-93!-r(V;S++uP9?A?TRjUB zf}xgwYYcU>3xc-#r}H{&t4~sZk2L|$IbQ+xZ1oB}oeD|pKpZ~p&InsQ>D(-~dd@9T zw)*AUWZZu&Gi>$NK(Af4`l#t>9JbYC2@|%u7^d7giHS9~)#rU0wAH6y9$~A$yVdQi zOa&8tp2dzrq^-_V zLw$XzG1T+U4%+HN&+4$PehQ)o8qP2QZ>#}(wmN=HM{TtOGbyw**GxV*Ba5xR?&c_4 zU7*lATB9d%^`#hPyKMCXH(_jHTmACQ%uYL#r@>Y~#l#xh>fHYXZS@P->4Ukn*FX;R zI&*C`*Jpw+eOhVbGF3AlZ)+mvFVYGnc%BMdbFyl>80#W#>C;lmJyPt$`&A@cP96XV z9~~~AX}+s(?XIGaxq#wt1zM&00~WKa8s191-Yj&YzMGt=6p;;mjd4U*(aKXegrR&5 zSikW65*95nQZ82yS=}H5OqLd^LCIeXuoSgPhtlx3;i^WVI|u-Va~lK+{4fv2dt2$BAQo;-L-HR0xuSGLCxDi@ZbrN@%1$T3GFr$jNDBm41(h76+zu)uFbhS z-Cn1>4<(pAt$>>HqfyiFfGHoB^{`T3D;@_yn}Le8=)49mZ&eRX#Hzx(4^<>p^{;Zj z5xB|1@j2*GZS|mG+Bp)XB75aH4i=j`EYTEC{D%d{u%2FWdXzzE0s@Lhn)!r>S|TP@ z<@k`gD%yxEp?s5JSOX*#i;6s0B^whdX}y3?wc@c0|8ct?B(%j_&$^e>1YToXOQ(aP zs^vP*rIZ<%SPe5UgNe$8a>4S zYdzU{rheGHcDH-Y0?!`BOUlcJ;LS=}qi}VO+N<9tm=8?+akfVqo|J8E?sAJXVC4qN z5+MzDNj+a0cBK6dOT(2|jtfe|4;&74%aevXrIs%ZT)&Q%hI!X#lm@_afB~q4f7Th} zCxEMI$4G}b1gH*LVSPjdTA@DP(O>K?sW4OR%Kh>aNZJKpq3ZZoITvSfL7{YPZXP5T zDp0RFF)YD$v(V(w4x8w5UJ96o)e3ifUQ1VKSw;Ji$s2!~12QI8#uf|@v0 zOa#4WF|7!Mpb1Wegv4KbWMK>ZYIS{^;ulY%@EZZdxD|(N8!!39`bGc*ssyk=@pABN zM19aQachY#!hj|xQ0Y9WXksf`z)l!2?m`Jk9$3f-OwwuRIwnYC>tVKM{%KhN-;M!R zf#90pAEZS5TD3Sbt&8O^(}k*fX`$(REloiM2uRvd`b*`IWC3Y|GbPjJ!l36P6pwwt z7(eZlPgV?9-vdKNPgg!E`N`q&c=!pE6bgw;|uh0cWK12k7dh$YoH0O2Wpt6(z^F>X17? zBD5SMYVvJ81x&rtJwSIdRdrIY4FZb63*RVg?G`6XN_4NFefaY|M`3MLcoOyb9+Egy ztm+Kdnk{KmfVD^-=m%Q#$77p32kS`on1f;4pCu{VTeS@v4?46=MQY< zm9AY7(*y)znv(14Veg$n*9sd51f@^vFq;k8z_+nb}!a0gl00DGUInjLL_x zkP1j?*AxB_1%}*9j?JMC5Bj^2Huaz%MhQY{*DT*qOgpb5FpMW*GpTeq$ty|r*{Dwm zeveI&FvW_*M0yif+^VqOFZ&g({NB-dTMeq%jo-q>7g)gk%bX|XH1jP$LGxq^4$wV| ze=9F&=z>VXDZmOwLr(c8tkgW%jgju3K$l4bA-qbahpoSQwR1Rl;6^)d^=J7`smmm*3Pv{%CeomZ z+uDE`>cxGlXwvc~Dt_XXLcoY8o-2?))AQs{DhGc|o7}kj+<0<|R894+T-+tci!b&7 zTjB}z{dQdgHa9V400Frfu#E}%Qn{N0+!Mpt@05P5mzu8rOi@^f`Cg&`<3xiGXL>PH zibvgq!}39TKrNMmDI-;FqEGIx#GFQgktu3iY3E($B&Q2h%(CZwk&Bcx?gB42T@hpY zXlb7stALJ^KX;GkpQLxA?sgBhDo5<4V5`P_icIe2AzG?}VW`GuYHDCt@LPX8>hPHT zB2*1AJ_s<>$D`07?QDyr|M94A=SV!7mSKW>&_cx%)Le)Wa;WZS@6*l-oG0Ta0QC5h ziY027h>55bxtu+ZOhMd9a4geJ0tlg3^-7^w;rKAMnx-gTGh16Xz5 zDiAs)Kb7x!66bH+E;WX<;BI??CRR*|ma9#Q(e!G18!`cLys$8VMjUTcqVR&$VA3|Vzpr840MIRaM{V&4E%+=!9P%c0M61> zH{-2cj~{!j!|^H6;zc-3IWMG!@0Pi^$a)VD1H*6!Uo4WA60ua&ssM7R?++7GvYoHO z6zd@vFV{%*pQwx!OtXI|FxTmddc^S!6gw-gL}JoH>VD+czlvc)&^oxr1H+hhwmTe1 z(9^>ec>14%?L}m^AhU&)o?)dx$W?((ear1R1_=_ubNVZ5^)bSZwe268)WsjyR9bNz zS!WJP9ZMwlz{RxlC2#vAXsc&pC|o>@{K%s$qSdpm{=nls*CAG*_*qlssaJr+!8p7W zW9sOu;V3ZXhrvf%PnIe& zJ0nj ztWXtu`4#ggCp9ce-B28{0Cz5yZj&YG7UGwV=}juwm0!R|p1tRi9eJyy6NG{7kc6Ol z@p1{jq;RInPdhzufLZS(10gk@9eJeVHXxwRm#6rPgIR_%*n&5adZA2^x-fuLBP$}W zQ6bfYpAZ`{1yq?9BIOuJEoqKG>S7#Q4kC3k`g7+#0jqKNWtP=2qoeRQT<(B@1Tpyu z8uybh+y%mjrX41Xnl`t2Fbg@z_te%fmdhp50_D@r`*JiJM}ixet0=Yt^)zy(-INfGBxMQF}d4geMQbWwb<$zr~4INISJKO;Ex_ko^K6pFC8?YJ%j_ z3qa1u3KE~5%vls$L_S7gdSN-OMLFN_cQLI{V2_RlJ3#;?OE6T3r<(sXK!URfOM@va zNC=6ZTBd}Bg*3kSn|2NcHlDEPYq>WlzIDeSXi=hQ^C+gPkb}QVv2Y>n{EECFs38iJ zWg4quX*?UWXb}EPpBwaHFJEd(BVS{1KpZ=MHYGw_jEW~yDuhvkEkVa|<>?Pr@}N`k zotIfe%km~^=M>sE4kO)7~6g^$Eiuo=TZxh6V^9}*3TH>yS~t&#-> zhpSEg<%L5J1d-H=tIBUutob|g2XKwpjz)%zP`kS$0l5yd=a~}N;>)<$-K{Z2SSEdZ zD_?&y5|&|D4bZH`XM<*7Txghfb_ETZPeiH?K|)?U1xuiM|A>MvNj&#@0m&`OjbeN( z8x$X!JhN_S@&cG!8z}aMhb5M=)_g#yMt_J$-B&QID=q?RvT(A|u9oX;FitV}gG<2R z940Ckj+BVkSg$3AL4X!ukADSZ6*y+D#p{{9Ba0&K|K{?|&jNGLbGYmbEfYk4Z0K3I z#IRKPQlYq4M7a>O+^(F!Udp{6NnhL* zuBSbKREOj9KIf70ZN=xmHauH}S~UK{cG2{)=Nk}~3hT4P=XaiO z$LAf2wLjTk#oC|H8!&{%=RD{jAgAvi5DK&hsMttqRj67|`nBvR`*+wU&~#0s?DfA; zF$!!R?4G_)T8s0)USKgpnY|CuUz<_(*$SyOjj}Imia=`p2&9J4Nasr24@1dmmG`R9 z(sRwY##&$uN7;L+bCB|xC$dO~*t_o^3bCi)Bpb+Xh1eJ4P`F1f9b!L%dQpb5l+MX? zMwuh*d-s)a*!v8O4zKUpFI#whnG&I>5b~%1JRMsP%?fWvz{?U_Z;S)yh^=upNqwqD zOKt1EkvOic!1}n)lzcR3-;2L#r}-R%3p%hqOmQn)U|ou4V5k*X*G7Q)6DM0y&$4M* z1MAbrT6Tkxbv<+%k+oVae2$@eI-u`nI!F)OG4Ph`O$4BDfA#YfRgMF3m1v$&rVIZdCdAz29j7M|>#GPvv(tz<38p5x{3GYP3p9~< z=!q~?Bp4u50ocV>trY(yXkrjim-vAxoX6T??~#z5OzgeX#e6NXw?kxo?#%3D{SZ&h z3B9tCmBBkmikXKjy;6Fuk0m_~Cvvih4+iEMn!x{)B^4^S!S*!ir;EF zq-RCRl7ip~nmkoatkqF2OJq@*(ju+baxb~K6(XHx?8Oz<(5ak4&+JeG{KE?$o^X6`?D(a&WH>TAmU`pU7oD=%n z8-5MqQz$TrMckY^0;W9jgD-odq5j}YE_Vo?9tUd%(n}O*>Q7z%9zah{xs)O zw&hzRbKW6+f9E3GCrQMkxG{`-9r%#yBPf9JvK+>sEKIZKTd{x^KnS-EvXmcS}_vILd#pJ zfBIm`_4rK*wKm^+i$Vtu!Icni6JaVvoj$w9L&eZju3O3C8oH&45NhLynOiIJh}j#v zM4sNM9%ZRXdmN?Wt=C)hmzdn+Zu(11kDi1mYuX7kLnM~}1+4BQ@?cQXl#dV=ppNbGp^B|Bw?A$ASzRW++DX*DHz%iFG16lNr^Em5N#u|%x%BEOa4vsaHzbs@7 zhJZ>8;hLH^M|mr8Jwf`wX;HEoM}7%{M}Aw%KMlxu5fDZb!*kl>W)#z+P1s?ePlTe0 zQ&jz40mBO8`zj`HInGPliPWNX+UbL1mL~D^wE-CqitiSDeP!hM{hmnJLf{FWmN%gZ zc!Rfgc4t@K3RhAfNPIt)Kck7H$@5;nKa7D8d_Nbw`UFm8YqzpX@PF4_S=rjP4A)D$ zUNg@B0@Rr<+E>p74yoRWMcu&Bg63f^ZoR3WK5pfbENtG*Emy~ANLma@)O35`+`NGc z_Xwn__3A=E^*m-nMq5xHyb}QX$e?*_K%cpl>tRy#FTbczTKJo3>no$?`n({afnC~p zXeY%}PTQTYw{fX1OyDydT%J#Ks}51TNJuI}Ogmdr5Dja)GtzA^_@lqOT?rcN2?SyA zM*JDQzo00Rc3O5^I~=}ij&S(4g#ixZ>swhlyn;uU5+;Z5w>bQI1`bDZU^@(kS|uDf zqsS$TaNvpda^Nybfx&^vNVma(5r1>L5)Pap5QGEg@n?1pT)4y9;Xt2Pgaf$?)|dmo zk2Q5{I}9O8$09j!-}VLvzU=FgMK~~~y&Pyj|0V}ML%IzP{CiioE8)N#fgl`sjX$$< zU^(os4ZmNftX$1(;lQQy)|dmw0cqdLO++e+12D&il~azTh`z*iET?USgt(=&^C#}h zXK^e8gkrv9IRt5&CLzaiDq|4ec<(3>gyy^PXLg#8-*)ZLeEXM#=HI`%#x$RURXm^O zUm+Dm^GKv z&#;d+{LV@J{dK~DQFGRq1BF1^=fD9-wVMO|#n@{OoZH9Zz<~C0U^&0NYj9u{(l&)c zI&cyKBtr*276`(DFZeS%2ghGHHvG=%z&+0i2L{ewV-74n z)8xQUNVS^-JJ8z0^mA{_IcqbE1J{59`7h+0)n@!ziyloKcoJ!wLLnVE9s!J@12+l; z;lOnM%+7&vTdo}rY&lCf@W_j6%z+(&w66ohkc#2}0t9tN$Nt`1qGogWQ>o7gOjN zU;}Ka4Zd?4GT|BF&o3_o_|vvFXMcm=k?v2gKG|j>Fds!TOdMb@u2ROL$ben_SFa(>#X8$53E4@{hELr44Hjlo^ z;wOOP9--QZ0$F97wficpMw|1Mj^lt9ffIFWh*QJu807ykoGy&SX+&#XH*lmmKb~eZ zfTc|b_Ymjj;d=EI%d2fh8B<7Wp{&Pg7_Bd^o?{4a?R`JGy)_$EO>=Lch*RzGm%|_$ zPX6kK+Te?ks{tH;b$6;6zl`{w73u*kWn0>xz@*z=+u!-^& z$q}gQ8vhf~ShgiQh|{_OoYu8*dUs$XPA#zjPBQx71_74>?Kfc-ohoVvg|Ww2Yr)I< zr9QJ0*)~!42~)lQc8hVT@)~x8x0d4ix*?+y+#qyQyiUot=e@g#$AF>8s=%%Z{;4nV zDX%(3mDIYGlOwA13hdLWWCoZp18rxb##o60($1TwaGcyU>^VIL|KazHxZIDFog91w zOg#?)vmvGQF^5FnAika9onAzPOBtnH}L+xX%2|^}$cfY(wzdzNgD9zEUU8?Eo z&v4va98ryHi(O$6tF<*;EU*6Sia>+A+-_>7zHU^7Qzui@U_e*7sHljhE-G4^Rbvn0 z-i@_lPW!4hC|ax&$wpvEVO5nqbKIOMY{sNS5wDSKQ$49j+sI*_XqH0kd^cvtij(5Jxq^ z#)#BOJJV62`3RuV2<(`P`*&hgYEb~YfX2JIb>Bf2gTW>EoBw z%?emH3r9Sjq?RZHI4&v);^;{N0}8VnS~K+|6G$!6@YTsAb^hcVJ&xlw0ntlx9$S|F zWr3HZYT33*Fw)NbQVr*sM7-*?G!#?3^!*@wJOvn&G{WeMeYo^VAeW$UAK*ghyQylD zHJCskh=6Tz{F4JBIbO$acbInu+CGePgzCZkP7qbrjDqMRsz?^~HP;{=U8@4zOHn2^ z1~+tY=R-bF^pVrEl21q0=pvc5rk!)xFIR%KO+q5=Nf4 z%Mi4;`ChigDBaCDQb1;*wacu}F&{wR)q&9_$N$M&Kl)X}{|#ETdh#bOM<31!bQ=c% zx=r{jxOW$zPOl@=Cot+bKodqis&Zx;sQZ-6e||XV_XhN5W^!Xi!b8D&Wv2DH-+nHn z!GvV9$wBwD!0vH$Lkq3zJwm|V7+1vot-tNdY@C+aA4edzVInl=gKS28kVYLNhslUF zA*Ox5iZPxtuBYJ&KgQIE;f)*65OD+WrNO2xbOUj@AyzSQMNZkSpl>U0W)ZOoLSt^I zA`2pr=l)t356u+F*1A`>ly!e;@E&JE^#Zs0HmuHs?hC!+$=wn z*NGQN-dZgMlax=nnJI(2R&4QV4GNvD22g>x7}-Q|ot^;743Iu|zET5on2lqd=&rCj z6lfICp(&Jc5?zd3TWdBiZ0JV+0(w_AQU|>Dl=ci|{8-D~Qx&SfbL6g_HJb@{1Bq1c z^!9AvoR0zl^Nk_iu{8YEmNw$(`G$mQDavRPfx z)NhxH+Z}W6P^)9U_hf$Jb)jO83W#0>aaaPn5F?GQqYD^h65^->6LsNycY}%dvXiKx9D)KeaW>FKjTodN z?Id?!6}mHXWb>h%m{SXM9CjvZ85d?$(^6zc1Tp9Ase+i@_eKzNG82*WIYt=on_8PW zhFRB-Va7+sFh7GWzGcV~AN+u6vSCBA)NFqwapo_cUkrNFd;Fr}fH%E@rZ?J~7PRUj z)0@IA!BHoNk9EB%yem{hyet3GyTX;yyW)@QU9YPU5xrG8&`FX?+^n4Ib>du;x6*OO z6O)vyy_qS4Lbi{sMWORzvE^f@O{R|#ANx*+ee8l!=sVe#k3D7`%f~*!M#{%NEA6xT z*z^DV-H;8ArymzL5N0-Y=#**Ut>R;kxpR$u?7=|V-=R7WsVE=Yfw?r@jG6)(bLjzi zjv_Rd-s)(QE-;sVxs;iKx%5G(=}%EZbLq$~zreCY*17b<(mm~5td_>-OO-a}(vyc1 z7rwfnJpv5X__5jM(v#I1i=OnGbLn1$Wlz%P$*2NzX{b*dbLss7$tOniT)N>D3aPbt zp_~{w1K*TsE`1`g^hc|G)wKf6WRx!0N(ur_?3QDMYQeem0q2;$>%LvuKbOA71*qrJ zvsK!dOOHBMx}0gCu3VN9#L!&&HwanuT>5*$w%K$Svf4eDetqXiH}vJM$_+jCcetSs zm{^;0>1aQ6A-ZXoAKLu~&-xc?$KcMu&h?9m13u#czbLMY;(7+Q#4Y;2=`*GXk08!! zUiP<&HSig4BIa(}XKdZY@)@((NcoJ}(mt!t7|^gCs}?3 z9GDZ;iwUykL|w!Nh37Q!&>kkbO5q2f*>?r_E25NWm_VMf~;7$%6Ms_PwM~(cOF{WQRY=`#GiFPs|>p9VA zl|{E<&53@O{Pxd@?tnOEoD(GpENUowpdd6Sx_tZg%!!Uht+N_KIZ~CHNw<9k+Uo;NuK%Jhy zj2J;}Yis^;%c|dXkC=9(o&DKJ`J$M#&+3bw_+jn%qLB&lMVH>V#=hu7SVZ3!{ee`J zFXB?F_s*Pp56(Cmq~6fN(z1VyE99-XnK=>@4Ibmd{bFdAdRj}82W^97mxXTWQei4r zG8=~`zR=WtfTmmTq;{i~iui8g>}??psocHGyMQN)UWN0_ar*uOekDht`&h%!)My|U zYn;Op;?W1%>u%)ndi%(;IM4bfE+1EsX>dK30h{-5S5S2S+Z9pj8WFY`8$-FyzU&@Q zy8}IR!!q^N8$1nL#4i%U^&G^kgDd2DrkvyG6;7p{i!pBJE+#4$j<)Gf*#-iwkb`}@%7^dVgDmd)LZkb(A@<^|V+)AG zxI;H6)^K${fG`lub^gxIQn^i+D2nD$7N@QdiZ;emBVmFe4A{rUQ;iMk*vEbca>o6Y zQSiPh*j@^jVqWzXNU~HD@q5tqtVHZoa29H7>sz65Vp5g%;c0Yg` zp*8~*lLio&vER{dEguIAM6I`^a3(yp9<`M#t5W(W@sb`5Eq{f}7h21IYp$?$xA)5pNduJEu(v5lykEJdyA*0s4p|f!LqAZhcuTHlPRO*Mp+C) ziCU_C&r7DA-@B5c8cf=`VsqljZn0B}-vR4zR`aQ@Ytzhq8SRZg*aK9I#zww^xCNny zHDoWy3p@NB0^sb#guPnRaZB%KEW$vU-Ui}-~iqeN9#VM8B z;{wG+Mg`7y-(|5R-(p0jC8-5d?05m+j}BXspEir6Q%{j*JReD63RsdBlD6~lf@eu; z(1&43{sT-5OLC=P5U?ZzF{u@~0}F2lX`?82G|@}teud>zFVdRzzpy2FbW_#6maY?Z z_d1zGX~>e?LB`pZfvNcCxCH)sl>su0xjOib7(Pc7|Zw&iPD4 zSQ54C(5a|kbAn9ezHzRin?wZ@mJ8j?r~nqjjS5bH74V}17U-y;L<)jY!GA!#KvXag z)8c^M=Q`CCNo(HPajo1JgE6#nVsBTr#J~3yQUR!`{ri64YLslPBx_Q+16bE1;0HTLgasRv@u z#N8hRObo4DDi{Q`@_|Ert?UNUMp14yH~`8WHP)b9-*3ZOxydG~d#x`EnZ)!LtX$Z?zad?RwDP~gskHMr$mV>=M1)qZ zRsVi5J4xkkd$ysc?>nSq`~3Uo2-&^55&(q#`)t-B%|rhENv_5UH)Ia_qnE_1FTVi^ z-@o6!5%G+Pe^23eK+nVeeF>H?3_tGq_fj-A@)g9vgdWzAW65k7$t@wL&Y{A2u6nrB zCU-)GbB2Y+L3H;t7T)Qz&ng>p5$=j}7hGnEyK~sGQSN1pLzX!wF}ecKAOe1lwew9O zB>JE90DM_HlH}q^YVC**RY?u^1J|#!o*lukU-PVVma_*ND3mkf=G$GMfybEmN?l@D z175nX7d+(QtOEQLtGXD+;FaZQ;20ia)F@*>qqK89N*NSlYepvEA2ah&sxFo);)w%s zWjM6{;Necn^JpkuWs=vEMAy)p} zxfslYMYNvuMS35%eNs@Ek1v1JGs=snhSdW*kWeD+YhDA{us#GTH7_Qq23AhkUF-*4iEG~>*OFV(&VmQ=IWcg)_z|A38Ptc17 zC3$!rRR)KDQB%Q0E81|!xb};*eXFP!Ff{t6V{jk5qq&#QTLkSTEK`Jq=TQvX$`61& zY6Liak#$!cpXiK0Lt}WSNqFnTZ`Jfp@Ju$>m|1yTJpi49D zvE*E-bL8G~`2!d##h^(W%zc$zYa+GGt6LlQ%*rER_BKSI-82fEME)J43bdtdUqf2$ z3yhRuF=+KGHeA$3U5HlQTIrfhT7AM3bd)Oj#A%RL%hmm^5UsvmFDtFmwC4~<3@~ln zG?%yf(oQ!rSPj0I45wxp9xUj`87EMJAUWkh$pKqG7xt>?!+_Gxfb9}PPRkWOW1WNni|x+CqK7$8wJ^?E< zw$7>R6CDBDDW~!!3zc%K zcl+-AgaJ9jC89e5`bg`+C?@ns!2e_KP2jAa{{QiFr*4hNj5NtoMv@lG6s1s2>T*$J zDOn0-DO*&NEK#PR>l!AMY?VEGmNHVAlJ4-~V=QU-ph0+#$;a3-sOI;4zRr2C_s&xI ze!u_6Up?x+&v~8Y^?IGx>vdjdzwK%;-{(1cP9g#e;D1J4+Cf zqh|&oL84csn<%a-il^W8QGUt$IY@~1iBwF$Sq6>VSopT=8 z=Qlmc<_yU8-Wzfwr+X`idlv~pi|vEYD{JtaaBw#OMbQ#HY5YrF1ExUTQawP!!XU+Y z)nWkUr7oOI7wJZvNH`|plPnMA4(zJq1U4-o-<=OffBhIQQh==%c#eP0Y5jKXNqF*M z@xDz0Zk;C7y#0jpo+Y2e3y-oFrUaKNg==`uLnNR%tS2O?vbSk6*Kj{&@3}rJC0`1-_F8Msn(Hxhs9(k1dR^r$}gIN zGahxan?cebf&I>FwOsau3q+)+^DCf8LL#y`GaZsiCd6}d;G$&`%k>$!>mI*ft=n9? zf(h_FXzk|OzWm0Z&C`?Ed@1Jkj28pWu2AhM_a>H`Uouqq#IcBUcA`jcaWpH#lZ18Z z*56P)6vKp9LoKmu`$ZI2u{0a})-J&@?{CI5>pRn?zSAPl47>*hYs@l~>?xEmYr?wv zgUxtUR9m!`$lcP;?Y#cv@s)jZglOP|)r&?Vc~a_C#pr}}6Qt03o&nz&$WdYPX+x0V zm+j2Q1$fiDzafS*o(wC@nuZbV%OC(;>NyeLtg8v0Ly*T7H|Pm~FZX3z`gGp=lHpt^ zoo|0fIiIZOlk0lbx0k$Ai7A1?$YW@lg%IgQXoq6J`HQqNr$Awb=ts)nmq37Z-trL? z8O|9z=8j~>wT84y431CY{RE~45_kbS!C9o&B`7AWh_S!pRH$cGdOm`K`OM+RgJWM4 zzV0?EKF0PjP9#CU+zl?5RGsg-vA_T?QA&N%PE6YFqiMu@Ogh3uI`_r4tn zON15>;|1?U~32~)KgE>aH2+E zQ6hqIg#;Czlv!vczzHuT^3e$FEi*UR>NaV-|$s~HQjt-Lm3ynZtU0FO$;wbCMSsT~73jZBMutgZcycu7)^^iv2$8)VU~ov>QS zx35WG!lFfrCS9PTeN75h7M#mY+AkEN-cBhL$LMHZ2}wfnh_rJ+D00xu7WBFTMz*}3 zXE;9tzucjYBTaIp5$+QK6kb8y2@XC5W;u``+wm#%xD{Q$@4BOBQ&(wEk->7|A{iRu zYF@Fk^7kgu;wQ}$AkmCxF|gv&U5!z^JN<E{-6Y zDZHXw#%r(Wk|C~FbT+%!MTbHT;h)SJ>X?L8 zf%Jj7N4LDVd0Ym3?LuqbG})T7+IYIAO1!w)AG$KL?j8{cs(NYE_oC6RayNrY{E+mft zllcdkAAn49c!z;44hQ7G>{=HsXXy@?l`TLa3sDGv7vXmy zev9#2%t{~rg}K1NfVYt;f@{R*dM5H1s{mi`dDVMH#LgJ7jVQ{EN!CB0@-|Tx(m*a& z9}>pRliS(WTL<)EbEHJmHq6KsW2zXZHesNp%@|V;@{c8fb3_{Jm~BE8cL*Y!AVE!R z8kwAxCY&N5%B%s0qOp_G(H{#%XJ}}d9}3?4-vfLMLgr(3HW0FCsk{!ozOMq&39Ge~ zOJu51mQ)pzs7wTrA`=KyGhtP4vXHSzl$liVLEBpK(^8(V;(MGbycN%IVpCSU_dsbR{3cw zZ4_<)Vk#ePjH!pV%KE`?zWjI4wo`z%8yZDhK@x3@sfV`b>IeU~`0t=CXQjX0j%yTc zLy~A?Og*$+RX@1Z-$L7|C4SmkHHx;ZB-$8L4{ZbL2lsmE?`XFv@LcSD*xZ!&aijWx z@0rS{Z;Yvjwms{o?TjUV2W|JQ@YD8UqiB00i8jX6L)(`6!PhPRJ7_C`N8oL@IgO(2 z$t2nsQx9$H>jyvh;@?5r26zNs+NLy$w!$RZ7*h{zD+6FNq)aiT(TFHb*<1pC{%H@gOmyDWd<9uLVx~OGE9>J&dXoOx8%RdU))6!#HiE1 zLf;81fAsDBEA)MtxQ};*KFk>33jI&L>RO?He}g@dT)|QO5d8CR zuK9^qh*jyOP#2}7!F3(0{X2nYUf(~-lS)b3@(0Kkhqh-Vi1y(ske{fO*{}0wA8)cd ztVuo0lrd$(S{vO`%Qr{n`iSMI5vfpnhEsmjbUNy9!Mh_Ha*u0E_XO}Z63P{b0Oo|ZnaQy!Ch#MPT*nUe%KV}I8= z>pd#RuAmXJ>`fGA zJ?AF1st!U@V1#nan0UO<#03a&P!P?>wob5aF^fiVHQu%09Y6Q7FQsgCn9sIxL~~aO zifG!03nUc<4(b9+}taiX#FN2n|Np_YXmqF{P#VyvZ+Pfdn zmIJXif(9oEf+-rn&dfiI6xnsAsZNk!U?bh}j1*1t+C;WLD9S4XA0YO*>CtZ7>xib1 z{YQf&8U#1#N;W&wgh*279AVX6_8g&Xxg47AmpE4g^h^%q)0qRz5*(ozG1y89A1*U; zqOhmHYq`v}+3D4x#HY!9 zA!JW(Ytb(bdgXzw(?B1YEiIDVM~*^8NwzMztR$Y6k?ItE?#{mQQY!yTlGRcEg%b4j zOD=7ur_Ki$#p&+h*zj8_y!g5(VflX&u}d~uOkZo0((32D?&Ky)Q<2K zxJFu0CvJIqb8YX)2LHAwk8Y4xV?oS9DE0#QdvjCmOOYAsgf+8Va4CV1zY3g6F*#j0 zu1LQe18i6KkjT4NMw}d_QF=dTza+1aTIb`mogx@1*ZD4MUdFZYZE7iYzSEs12Mj}{CvcETCPq@ zGZSIM;v%I*Yx51(586m0F73 zGz#0<-v1&RD|2bKEpI6#AKgF24oiL%BU;;rc7RIi(?satnyj}*iKO}a%#<}euuU~g zbZfY}u{A8;rW$T@Ynap68a~>l8lH4(cs@l9kmF3pnxYB5ez^XzdrH{~tWX^etLGi5 zKPm_ZR8QCHS)qDd5Ty-)v`KgR1!UCYlDJhHkK@RB+M_J^&!j9$!6#TTUNKip?|SRy zwOG{j`<429?m4!-jg`%e+~@U5^d`WUU|frfieU2ZgMobs2D4-ZWtal`G3JgCfg}lQ zE_O%Jpe>+NYmOk^`TlRR@6rSpe?YS(X3@PxtB6$D86HB0`mCbVbdc1PY!&B#L}D@u zJ%ei%MK_K|xhbsTc_zmJ$YGtv0Ii~Z1mB~^*`$%BA^ccFa*2&d^TWZ;g$mkgXl zVE0GGvOA8xt$6$rovEXJ&WE3(-e9-S67DD@G}aP+>gxE0M(B9j1Akt}hd=Ju@$yFL z_e=iT$7Ne$V@#Y`o}#I}!3G0|2Z?_PY=Zy)cZeYAOZcUcne z{=9u$iWM^3K2G^H**;GCx6eM#ekX-}yc|x0V;}R8p+Wn&v(%JqA18xEHfcW?!+?G4 zhH_Kb$3Z5?PRL;$#y~3jXrBb=3}GvmA-OrBY~6I1Y>&l!mUg-iWi|OVq2P4})+je2 z^gdzjSXaWHZbC8aU%Z{VMD%o+6+l-7)qt2JtYg7jbi#u&R?rlcI`Q3|cv`M9Cw_Mw zk4OIo#VQBIzR;Uz_M_0{ukMVC76**A_a+4myXTEd&;e|&>J!!XX$!d= zQO;e;X49jtrLZu3nGhMY8#Mo4Y;t*m22-K>DVihXx|ck7C*h&FP0-+QLkhzY{R!;} zA3jK87gkQAJjhNf+2pi{`&6$LVQ9<-rrz7e%?e`$>*8a%LmutIV3o=fS)ilvB zCC=6Oyfn`s$d?r5Hf+Z~T8dRIT~xxFf{PrhI^bwnQM%NBL}Xz`!31*9JgWd9ZB4N^ zoS92b`NoGQRz+R41$qgqBg!oDUTz~gF-mw0@%PWCT=^DRpRoFa<<>6|@aFe%VAeG_r2Y zc@BkD;HJf)=~X%S5(HjCLd`P(5?0A>G+Y!d1Z|$}AU-Bz64w4$gh<^os27g5Ir_<@ z7w*V?x}3sBG`6KmkVPY&jf;A z3{h4MkgGyj+w8z7R+6~tc+>rN6%{40m=qI8dRX>G|x zv0C4;2Li@(QLt;spIV~w27*{olKT%5(%=Vsx=?Go4UbTgS$`*syp4Uvo z7Nh)#a!?-c;eenXSA%cx30JZSIdhPzD79I3)li$n zY+71~4JxF+NZ%%5tpvu}#334&0gwRkijXp4J%pfGyw4bVOn@}U$SSq3VNCw&Y@b=G zr?yj&-c#EkDbU%=&=WzowrK+N);5AM!P;yi=u(?vf_KfUv|rXuH`+d}5PPE309z7@ z#&MP;)+8D`1u``tGa4J18Dwf;zT%dDNl#g0?imYAqIC|iTB-~8XY;e!!CU=PC^9S! z@moL2rSvRsEqB_~^_c?ocM{wa*8Sam=g(}LZY~?~8nUpu5K-{(Dl#<@QW{Q;##sEhyJ1n7(U3G?*bPQPRO|dlBq8P*M zm{P=)*yrMZI?g^9-@KSMv+7VgeF*98(tg1<)WDvr2N8vh0JjzE0Yh-Knd8G#_a-&b z;$iwvm|G>2Z-+9+z+1>h%COaKDTdH(ip3FwIHEHsp-tm~PpI~CKs_=H-ZaF`gGKOM z`81N}3Rxq{xFAr5XH*sJU}>&+?h$s-hdVkT8uLQ5wmS}aXjh*1qi5jnN*@E2t^_m! zK~1FNZzZ1;E=TR2>%T7K8S$9zFtimv4J7h%Bi#I@uNC7Zdlh;ArnI}Lq%c{yt5;s* zXp59+FYGdvpyCj@i}dh*Up!zR4o$WTNt)<&=W=Nuhu`9J=j7o92dpa0leJ2Si!(-nqyFv)k(1aQmH&l;__kt}0L)`r8HD0wE^gF-5` z%aqp8%?*=^aZ~~OJu@M6!}SP={lruOylLM&gx%!Q)Cnsc8SAYqx%%Xo0GE1z3NM#B zAWS5G2fyvBp!{4?o5`ggdkL3*;t!Hny{MbV<7l6?cUu`^c#fB zX21ahmH`P4zAQ&r`U@NW=qYU2%pc&j;RRuX1vYHZ!qOJWAS~}Afv};f6ZH|KL}qNr z%RqfAP1d`a6>DB7WfbK;e|4tMkF#~!Rp^vl+i-)2Yx_;zPOi;EDXyfY;M$(R+RL>a z4Hd7wR6o~F6t1m3RJisbe?adu&j-2IS##}aBuLG*drj6c%&NK88C7pD*PfZ~;oA4t zY$w;oq7;{F=+H#xMp}*crZp0) zE)8InQr;$^bQ&|!(#2PAC+7}oERMf+t)Fu#aV(>awQ<~KdvUxOr8KH_U*8@a5Afo6 z=~dgw$FE@~T^t=|h^?db%2+Z2qbvM6_DTJ+wYHwk^bJ^>$zqn*yo%e4mG#n;B&;)D z!jm@*+UT5yvE~@VgY~t43hNRvi{^6GP%_qfJjC9GL(qnLmn@!hR6yqb_nb(<+$!C$ZlIJLvL0c?iL=NNe`n)yAcq_%vNc zueXrxxMwm>l^g{?&YP=mQZDV(8NaM_e|o*xmx5mpHpchT?IF&%GZ~oX>Qw`y|4NkU z8U24ORXL;of9aY*V3|Am7j%+F{|%2J!<|7!;jnK41NDax?HP>HsPqQU;Hf09@cO4v z&wWFWzgB+RpM%?XYxK|nImNx7elfvt=rHN(>^PW1B;e>_R?CSSAqm%D{K)A;WS14P zcLiNfvhI=$6G$?j28Lkz<{j(3E^JEwPJ#oUqQl``JRwz4P=)bpitFWvaa9H&LHnCG zcF=t8B27=FY+2>JpuT+mRWsojM!$fu$T`SVL2()QFQ&)s+xX=oFjgo4 zaf%x)#bNX+C*n}M%vz?Q5F}gAjJrw3wnT!#pMcoRwpF`W%_c&vjHkShPA?T+f&^$_ z5`(Z1bA3V+!yARFLNImS{rq98>61Z5floQ$lU3&+Fj8IB&YCenFsLS4^VtAqjQ1@i zLLYDgOfcB8h8X0%#kzf?yO~e;Mt4agnN*5nrcu*Dv`1-vBL?m?>bD5G6PsHE$VmcQ zF83nKQs_^nV=0X1)lGQo%$L_d$dlDSzoNgZ?BL$zC}knIw*Zq`bCZYB0LjuRz}U46 ztQO$|l7v}v*{1@ja@RPwT!;Z<5ddYCF>SH5mT`6l`+#*ukcH+JaiDRdtVF6&vdqyS zAg!>0*Oek}F2s#B+-1b=Y;XrM%Ml>+Ed&VVCakIC8m&$@)Wt)hz@duW9Bb3hNMzi0 ziHy>aAu#dt%tCL=I$jDz3ME)9|B6xwihHn^CVKYJTv}B3_N?6t-L=*B@7Gdm5tr2CdZ*()W%Jq1cFgaqb6 z=EcN^ALs5plOu{GV6~S&z5_=8v5d#uCoTX%IR=ztK-F3!2#Oj|)PVZxe#K&R{N!_DL(f6+6)<6A zrJ9)hR%9$0dO5>0`Ge!oadsR>Pl?9oOk+0~8vvU&OFrW_&XkUEPLTknODHyrp{k*_ zAJG>P!d#mTMMVm4JZob?5IwJvyeBe%P(DC^M4VcfRw0D(*A=+7fm42c1`2w1o z*9I)ti%WFe(Vg;ivtDj2&B&Kj^A~U|5)Y3T-^%zPT%nf4+>j2iC zzq+m2*6nLM@S;)nJzWrM$i6pa0~z~%0d6jI%=78c(Qa1LZ)8fXFhK(AF0 z8-Z;dW3d!X>p&|ZRsmuD(n`Q2&`RLPwh}i^qaldT(S~5UgkrO_k+@NeM0}2n-(u6X z$(Y4ZN?Q@0Q-`e>H9Li^$SZPe#dRWWUQZ&~RxCiR*5dm_r~J0!Lf2M|_t=Ut@V1j} z1&iT!#A{HJu@#E7*I_GQhNqV5BUP(s4l9`%S?2X^>?eibbh?{P4&((W62t=5-NY9y zVZ!@C^)S`AjIE*l<&Q4q9o!%KBa0+*9roz0K0NZ_^*i9>!^0yb*R|3y>*T!uI>h+T z`=gKW_;|kONW^+Rc0aL6Qv4iYYQm}ka@M{Kr1q~<%-di1XZp(9_pVbb_JqJtQd9Jm ztFxV4(Li6hi>+q=r?lc5+|=uy=+H!=3rtwi+f!)8*>bP1G}l-*R|7pL#o3xKQWoez z>(GknF3snKKm^QoH;M#ZMQsqS-OG{hwnn~@RED!*2uvMX zF?k;+S5PbdXm3FOr?ldu+v?DY9=D~?ieqnf`ihg;T#eC+m`GXUwBlDB+p4>-I1wco zt@wa~P={9Zw*A`1&6JGaE%i*vHE7DDnUV$TQ_hs+35^M>ugIs@Qw&?D6Xs(S@T-CR zV6f|xMD}sTnD1BwSh1NL!EdfU^>YI|OmpDi4Usa>-q94Nejd?jO2CA2$ZsirA=(si zC_L6V(rB^n9|=izCm^pt9$wFh1nNj<=9Ya7|CnoMZ59uBPT=xYV zFER}iz4&KNPKrhk#l8(d7TAg9l6ZlfD~H`URfvBw1FFwOf~IA#gYe$~8nz%B!nX0* zQ#h}v4-%9haVau^?+NR6Ns0F2btCo#^Lp~LoNWuVT&+q zoon(xYv;F_s%ea$oEh!L`+$a^BAHh_`#5GdoCgZAOgFSh@5vOzX3E}egNHoW>erTT zci7tE=!TiuFZT+CzI+|bOISlbmsYi+*mLQKhK1|c&;r$ntY)IipC@|$ZGI)Ud*``0 zo6ydD*B-1zQVbF4|bSchC4~`X#Km}g0Dd+2XMrF)<4)=_p7E4MJI{y#DH97apn7r%E z=^jV%PeU4c3eQo#*Kq0Mv0$#NV86;>C^B;}=C23GE}c6#cK!k!8l-M6WT}VQ^+XVz zurlpR^og)vekW3#^`EBEN+|=U!S&DdVs-gxL}&E?E&Q_Liih{41Z{p^ zm|{U1+->x>>DdO5d0SDfWnzAjTtj;ghW+cuV;H+kIdLK zX-8Dgd*0;57vZAozpz2_g_Oo`Dbsl|N2QV(VBBJISJEawp|}x z2&2;Q?ts_97bqd=7QXL|Y%ba<44gJ@V@0=}rTfzzRWGN|#BiqL9cwrvldM|j0KpYx z*6#k|TBIs2&neE)Yh&fXGt8OllPBB5zl-DG-|(29f6c&D&rSimd3}wChBgaxF|KbU zt#RZ4WtW*wVsLw#irFK%82>a|11HC@^9M7t4V@h0vF+rOV?VM-kS@N)t764qS%9)2 zO7%;2lX@jvUZtKGw%$dfSj%p5S|&_kxdf74Z_7|>dxP7M#k?}eMX8){*YsOehl3M< z;H2)3G;xj$Un)WRqb05kmvNpWKT@8}jrQ4+^N2`U9w&j&;NBh^b!NIP?3*h+FBGHra>4UJKce_zTUzz6(*_bz;V~4}@DH#xKa?fLDtAg)M;cP<(tujPQ%D&<;cxB)-4>XkHze{WI zviZ~+b^SUr-Xm_FZ5u}Ix3Q+?jjW06Y>QUa7DhY}bKdK&p{CE*_V9elNesdRhxw%R z2F`mK9|vmXF$0d{l&s!@E@`fvR4F}AK6*QKcOwG=fzD{+5CjZfn4%pi?-Nt~a?e2M!jYP|m6 z$u(XqasC=llelfEF&FJv>UAo;2YdH!lzHAerFlN()Rg9V_Zw-RT}g6;%eFxc_MGBd zB%l1!jz?{O<9T$S0sFky4UT=rsn~?|79#%&`@An_(_H)9T7m)lybB{?Et=A9G^LpU zW_8(TpLq(lM&U468Q&%E=j++L3N%l3Rez^@FN~}+l=o3Xq&yLkO26Q%m4f49fMECTaxX6G9B=INZ5G|Kmhx0gTG6I+Ui`SRJd3HVk=*vtI#C>CEoF;YUeS|0xw5Rq&CCntDc?fB& zg_m}wQrs^o?^kBvzlDwv(2U4Xmi&ig$i z$UE=vEAe|!$t9SXl-ECml(~jri3Di~%3VioHzC&RklC(~&+h75RN)XNtXWhG{LaI# z*|BQ7$OiL~U`bUU5DgQMu+BB_Mg!}m&2ctOgN*4%J@k$>0-~e^&v$0I5V-g( zO{Sxx#+G>Be|81sF4X18XFD@1t!AFNX&{*G6vx4lk;&HU$m~o~2%h&|1tIXrkmO+H z7;x0}wt_>t9!(=H#8{hy-9V8?ohSe!P-L;pkH>~B^qPFV{JRKk1}T(j+A{LJ1QF%< zEyHgGe&rsAB57GppO~4gBj4ckAvb_PlEfT*zB}4m&yC}H)|(t}iZtpJfeY3O^MEe-zuJ$ZJ)Ho3x4aw%}CJqOIu zo-N1D+Ok86g&>Ort*k+Z9;vBZ43i-eB!dHiXNV+E+JV?r4uy?G3!^NY8+cjfBH7~Q zrmQbf7EGc}+tHJ@RdU*wylHD#uPOKI;-qrp-n4Id(k^9MXZVnDTP{phfWCCnmtWIl z62=+0Lh!a2v-2{{Gw^@fq;6I0hP*_y*Ok#YT2-TMtcE6I^-Ei!RwtzO5Vq`}obWAg zLheG4gj-)CoskNUig|ao0E8Z3=oEPJKlAz-%G^5Z6%^&sBYOwN2sH3qNWbrPE1A!f z3!fm@*z1L?Xyk>c|1prf5N-x!kRnN06zzZ&4Ql$eCI%Y)qEWUj1gwq~oI0_6frTf2-E_t_UANs(g^92~2}iqPQL*Tio+i<5_U zwJvyO1bsVZfdTfg;qqVJh;mY1_i*)_;P}&tthUiO*{pY5071ce&O>PXsRlMKaawm?WIp$qqWK(xT${;oTb>VEm6FfRO^$aU%GU2!rslKl zGQn`W6K6@irrctPBnj)N$wb2)l8OEw$inHH+4t8#s$e~alu4vs`MbLfJgXiq=2F^^ zXLCx0n#lgnnav-<@=#e8l`zm3c9**78M%F7vb8Ll2IKBGm^bh0b$+%*j}Kt`ZKr&d zg6t$c{*IAGkJnzvM^TKuoCE(LS-x`NKkF$%v6o-LgY?N)lWmc&^QFFI`T8hN^ZWrw zjoV6d*$mGlQp(q3CdYW>u5#N)SFjouvk1B1>e}S?;;Jh z#Jc-%-|X+D$m8sRN#1y|x7#)&S_;L~pSVRjX-K4J|3#Wc-`Rh0h7jrBf02u-T+f(#9z`{!=&#sN#op@d4Ze_o zPEs;gdXN&A&GF!7m)E%Kh)yjoDZIS|J?a73o|9~Q zPAUo7jxVJNas(xJ)7KnLrP!Wan^fq^E=lPOcI%pVI3Jj&^0uvc;FSxN4Xte%zR9BCeBt$QB? z-Ie711n9jEa}Z;KYs>Z2_AXfGscn^T(y8qQ1l`)U3ea2Ihl~l zwu_D7&u}Ejax<{^m;!dsg|#b!wS%qD(;6?5dcBjX1iyfD3xRB*C}Xp+!d1H;c(*6bW#1HX+0xwyjpKt&(|;*_w)aMrP&mUUXwp&)2J1vA5 z$~i!>CS`a}nlqLe^WeN>6wC%rffUa$1vj)(D)KGN<*tf)t}j7bQAK1OLrPrUNzzv! zO4@DwO$=kB41S$EJ=QbkA{~>lq7+4-{5%w;eXETah`|l9c%gItrBK z17eXeVclRLw+W=JW()3VM-a<9vgVesCg^M#E9mUuAJ++lbp!KRF2{xCv5%Z<_10%X z(-G(MDyLqM+*`R4jxid@PN4;UCYcs`yMWd59s<$36%v#Sm9K0iReSkVkNtl5D|=Ew z8h$o{o&~oX5p?bM9Vpq5YKSjp@}T`DzMUPzpf~5?6eC$F{BBhsEs$az5E-+@F4#_J zvLVj}4z3|bhD;}ef7S99vcW$)l;ensEFjX!mgOFbFsK)G0XHKxqRE2mj6LNpOIuG# zS`?)eL*SAw|JT#zWgzn%6awR^*OE|}#Ne4A^6!X9amMXzHzZ0}-`ly!3Om|VLf=R3_^;jx85nTu1x0Bi6kC+m)u3XWE8l&kB@#4Gq(JkJL$>Sa*Ebtw;~I@)`h~nlU)Kej zWO==f+gaJE+?a+ax`d|IPtp8T6h&Q%-rZh7VZpA#HH6s{$(Vhb3bQsYW`}JrW}o>m z6E6Bzh68J!+EAEQz?0Y+c8fs0CPKYD>&MWcp(wAkuI|_@h@k)&f=D?HeHlJzM<711 zCH@uFOSRi)uPf)*WK8alokKJ~rAyIyL#IS1`;LLs#k^CDe~h9W%61YUBci(yiK@7u ziU@rH5?upZu>UJ_Sh_?0_t`8CbM!nO!u4%TRlZ|I8Jmb$Qm?=0Eh7Ok9ST-BP_uuB z(sE?=T2!a+3QG6N8sClpldkdd-4DHIK)$a)RFcN_818874`Lv_on9ji;RF=y%6B6( zO_of4n`BnuopS;dKPLtCCR&$BdFHEzlX7>0=>=Z>-H7?BeML_6aN)``DKlCGCd$>} z&h*!L5`>KU=c_iHDC2>sf4=H4Cicx&z03)3-+a|$h^b0BUp0%eBps8(1H)VNUxArH zaYd_b`PPC5*U~@!&P9Q4JCUDl!B5CNCcjLF^*B|@?Xd2Vpr^ya&3&mcl0x#QR;Wqc zbXnpGR6xOyV+j8F4;jTU`?LKsXm?|mND3`-wF9K(fHYVV|ILKYAsQ|ZQ3pxGKkP>Kwo;}8foYskgR<~@;SOFsN##*`9(&jeG)f!WWYCQniNTJn9x<$>_T+ss~d_x0^&AS?D z6oTZv*WNcdCWfuW!?Du3;8Y4DTm%2CW5PP-w4g7e_1Whei7PQ~M;Rj7gBx4xJ(eh` z=QcK6>m-*6l1FG`P-?))7zOqe-0(neh`*S64}O4yI4#0$&fFLU-)hqNS?#kPLbDwp_r3BRil{e^zAkU5B}Cc=QMqRwHNhenoZMI)S430}&9fd`=9n z#^?bvJQGZU6w;BA_Smnrv9dDdV#j7ktl6w%-yd+<`|@&L7;{hMA&`WkoMJxPmBpa9 zk!hQRRWylVymN$KPE2q?!%e+Nr>0w7%2cC~O7{7dql`tMV4=P$)H|itCsLkq%KEQhYQW?DU)utp; zHp?A|zTD=;jeDYtDvUf#N(-f2#mT+Gsbydb+6!%pVa~C!8YXClj712er*StaKYEJo z>N%D~t2YF<&L>tn=&EMo5k@mtoGCGxEPZAsFv9DM3G0suq?C~rGc#GUZ!+-!)a)@e z4I7mOJ}1UFT7o77mkQw14Ua*=)9IolUPJN>EO1?hWGp!>S&RWm<N6f|B3nas ztPMPr?(2J#y$I>5M5&)ZQtdhc;e<7O3dDAwa{aDik{6LFy^?ewoNk8E(w5=Z3gjY# zWv{j2BtrI3)X!L49pRIc#!}VAPnFj*2QKB{EBRh#_)h*4NAlk@hq$`A%ptlGQ1@Kd zn4jvWiZTUpdCyttX^1d|=3*wuwr?qCdUKyq_l!6iPuH}@({=2{jiGDh7ioW*u#cMg z?piT9hf_=OAdGZrE!!s`_q)=2xT4<+gKs)9L%U`5nW1HldC`g)bJ2rss_e) z-y*SReD@y&J>$E#Bp4Xqy}?L(eCJTnu)m^5l|H+yu7i7&WRCYfQ5<5J0%LNWN^E^I z6rcBXUGGlRKI@5=g{SdQc{fV{g%SlDS;DF z%m*JM3ui`N^!D1?11?GS8_|JOO#<3nc|{S@Kj!Q}`DBmH9tL;Wjnne_J$|**X zrc*n?&;hZ6}|%Y#6q9BTd&_G&Qn#w$t4l(1eIYx|Ei z@E=`m_vu*b!uJKq-VuF@(tnWq{Ar1ruG*%u+eq1tRCyIXH8O{8YliE#HA4%(&NqzG ztYC)R`h3;?kmxcrI)q$&rV9MhnYQrj`l|g?`l@5IQu?X~`IR+!WX`hP8+GL5dSGq^ z<9}dNP;yn+IwyijmE#9e3K7K-X~No!IIqy8)c)Qe8+z()KrmE#?i*Q*#_;ryk4lh3 zf7F8IK)EyLAx7dndm7KPrvX;qdG_4;SZ$u?Zh+OHl&s#eYf4tX21a-Ue0%wD*vDK0 z=Agi0a_rc|0GYw&Z(>wmw zH0OpljJ7Sf=iIQza^?UlNE23p>L0;(0;cp0YlK1yU10ic{h(wn(HNj`OwX;eX8%TN zP5#sz>YRiN#PK?w4RM8jyaaXqV6;~LOXU2BclDACPg&fv{^Ay-D(?Q2#j*X+F2+!4 zQ*2c^w*wt^KHJAp&Jd0}nEe{dSe$W2zB>=8#6tOR2bzue)VBlKqEk=R{m@H$s_t0M zpllV%_f-A!g}Umd@J;CMpg{4L?n8XtRkwB8#8{m>uAzx*i>8FgV0}x1Al2U1;@eHr z2;@h~jpYvCPFd^hbFp}Brs3PJOeGf0kNhhb8QaKL9YMJ!QoHt*u?#!NQbXmqye+lX zD+8QUSyum}kVbD;`I(%on}Uh<1G56%vRP_z`#p>-9c!7?im3*@ zV!Uw^VzqB$U^x%(yDjntg6_t^w*~0k*u9Z44UhKgssE$zef2-*um3?`{X>%Kza&-t zlz_H=b6{>Zeyyq9dT7~%bv|yqwX!F;Aw8;x1MB|l<3K5b zo)&l+LAM2XnIrpc*D7Abn4}g62+*rY6c8Zva2|v1A~~d*LvS zryS~OR@hsYOJf55{k!Zw=u>co5W17FT8WLL&oYudkHxr45tpKm7>c5N2O{;(p<=tJ zgkT}dp|Vq%MPQF$;gEM=KTv^8Gxlo3(|Rbo8fNyd%FPkt zJSvdwsDQycQ^|{G&!RirGGeq>m)cH0DTi zrrf~=-&Izr%FV!HaCde-;!l*J?sV2YTE|tx)x|%ywz#_E5DlKR(oqTPdM1nKW*dIc z9(Z?$@6^jTZ1=44cqb>dbd&*w>Z(gYFiwnUBtDgME`k`4@ZmgHgV1EMc@L5y_`QK> z;J25Q;?J>(IpV5{I~%I;!RoL9p<3nLB5fJOeP~ZF?mUa$Su|jIIfOB`_yhd!B?2?7 z@$jhxySBj5RKSKF z2W8=O>lhpfFi)@+hCg_bxbKt}4}bd-C@KlX!k^; z6)IOZS7kT;HnC3TZ#=wp3CfHW3`G-VEXlGMic1LF2J{D@BLIzu*8>}?9@X&T)xJMB^z@}*zfShwQEEc}otqSb84WX(*fqYlb z(fQ`;TBk2(-F?94>-NZ4A{9y9r`%Cb-E#;;-5IZznLJ>gjo4N9n+o~}!WjkE!1M%= z7*<~aQ*gYRr5g;R`NFzTpomtchzt7eoR(35t1oJc0x2?YbIR!raQ<@sukw1Mf$|nR z4HOTbhk#~Apn!L7^%Z~yVw-`nOP+IDG}=ufW8oXzI3C^#|0uF3sIQ?=$QSZ{fq0F| zxV$DsRTst!h?a1#0K(3u{dEC^zG)g7c73AYNFt3tRR=>@`=XM#L?J^6%vVRY$jgX_ z3m-E|ID;ROAQTUOzbH-hk-)XD=_)VExaode?_laIY;D)L&qGq9w0su6QFg!D3drsO zE)|sB@R1B_$&QD+A)pyoIh{1b!}p^`+Kiru&}M|&BUro>WUF$xTq+TsYT#KKzV%ta zTN2(&!$%tUFFhpxXN2!ecpDAxYv5}&dM=Zz6;??H2hNo&(rWxgww65oTK5(4Sbk}_al5)!Y6C^{RZAs!`lzJl=G2;U^fg2U|$e6fblBfKr)A8Pm( zLlKQ-_?4If4L9)!=)@Z|OT4ScPJuONJH!Z+=z+uy(!Yxq3Evk8}D z-0|=hL9i|8lUVpYTqEx6$yv2EJCqR}j8G;hS(+j`DBdi#2>6 z;dDwWKh*Foh!FZU{5rzB5WYmiKQ-_?4If2#SHkCL_;Ldurs4ev??(7!4Zq*Odun)l z!Ve&PxQ0(P@GK4A3g@KwK*D=z_(%i)2A-$kqX_Ro_#6#iZs5Z-ydU9*5I$MM?>F$C z8s47pLkS=k5jCdNens z9TF!BqNck;I(|kAv7fcDWz0=?!v334msFc+s?FBbGRSI2qgs;!@4yRUN~d6uDRSKu zWhMpPY2eBrQ&>9*>fI$+a5;VibqSjrSPEPIgqbCS{nEW8eU45)#ZE8b!h)eveaqL} z^fya-{kDt^FC^bi!XUSZ|1CP{B6ShGfkKjnh{9?Via30g>8}BFlhpw6_vO<}=ROz) zF8Ql5Vr+N+LbSIjA5>k|32le=5iAo{22NF>6`WUpPSjvcbi%4WL4#Qxd2%%-e36=X zF!=f2612Jgo&>pfI$y{1soO7QabNE#3S48H|~x@>s8X~HEL zthI-%y(*KJt@jtHL(0QR5;EQnSgZ*mUS`(Vh+KR=gU>{6lsSsiD7Nc)Y9$_SX7bGI z%2L8NAz5*l@K*uXV*LVXZ=6`)(?ke2Vm%G)2#WQ`@L-K#Jg^56*Cp1^yXmg%=m;%2 zN^J^=bsW{!FV^GS6l^n=5fJNLS_tY!tY_M&`^9=M7ppIKm-Jd-3X1IX61K&*<;J@l zYG07_e~(!ID-F14v0n3tPpt3SS42!>nXr1}NRwBrr)aP(*1H>U8K|KkJ=8&HtTw?G zv_pjjwpjlmimJuB3o$Tay{|6R7VFi=>pE?*{+fH%VULNZ7VCqBOCr|CK-RQa_w8tl z^%$lEHupkZe#|(dV#4yTc|@J_jt zZ7srkGi5Cvet|&9>+v-2F>E#nch||$?MS-OI$hkP+jnm}-42L}4UHD3Q-=Ft`?{9l z9{Vssqx_29w~`dwuUKR^tVf1Vzr&HuY;Mh}ONP6<={BJws^70@fokiQVQY(%f(?{H zhKsle=g4rejk;fk@4el@espU|pM!)Lc9+=cCG5!X#cui@lK$_J;p0G^k>SV!pA5HY zkG8WlEn&TMv|omQZ6{z`hUXeESws=)pe=5-3C6VA+6MS)32GT$xY?EA2X&#g3=cGg z+A@4Tl{p^1Z@weLugr2}cn#$r^CJWTftxx|^a{=a0{ZFFM@dh7HX|~YoE+lJN7l)b z_^4dcDZWcVDZpG?kc`p7Xb8qbK=fI)Q~OXW!J-ZG77iT>{R2ey>f}=&B#5^S_u{wX zHcyF=eerO`JTdrC6IHwem1P&~f-3IKujc&Xq+R6}I6K9M^Xn&m9l@_kejUlL_5A9~ zueJQ@$FG0!t3SV1@++5LFY#*tzno$Hx_*KBKqxp3WzmDP8 z75s|w>q34V%de6AI*wnb@auSf9m}u5{OZpyu8mjrc+1V`Lz$fcz=K8Zu~ll zUoH7{GQXPe>lA+dhTR~=r}FE2ehuT-SNs~zumAAtG=9CyuMzx8@auGbE$7!6{Ca_3 zXY%WDex1dy`TQEmui5+>#jiNO&gR#2esNG#c_qKj<=3VB8qF_mTqz#IuhaQ;9=}fH z*ZKU4;49v8?Hv$|c-95?^C#SYHpQf8Tg+QREXA+4&V(oy@5mgxN{)wgjze{hmO94{ z-W**-c*Cubf^*3$N-96XS`%uiz7La!;g9iubWAm>V;IW^OHsI}K^aA|prjI>h?2@H zq2jJ2RxehNE6S0zBQ1eDxgGwAq8`usgg?%#dOWu`Ce%lxs1G!F zc>uguEWAb_;TLoQ(OV}!3hXAxLJ`BWbc(BeMI>^m7esb~2A}Bz^Lm?jcnsq(Z_3_E z;J97&2G~v_{N=rzStU_2vl@+s`yjP-Ee>pZ=Z0Y|?!}lPRxpSu3@9#{X=jRV%;UJ5=^=O@7HmF_~tr`~_u$ z+F$MoQhPkIShvEX)Oex9K8P_GBlH?_7(y#g{zh<4XM%Xv4-`dDQ<2lZF^)6TU;yFP zq27|$6RLTElE-;UK3urre_6G1cUs5rakqd@uz%DZSW&LL>ucEF%31h7ilbxBieko$ z-mnUl2jM@i?(#T{>uFuS8u?cni{@hv0GdHZoHRr zJV9H6XmV)go_Y(OpZW=b>TK#;nCdP!1M=en>1^u1;C=*f)299s`c>|1!27@wL7V#3 z64ccH_;U*CzsyQa{WYcNoWDQ-7KE%c^MwQ0ZD=>7jm&1U2wNyyKTP?SbC^0m7u16(~l{r z|7O?J)L(C^v8jImlW=~?Z-?edLH!y;llohs0i+(|2;gHE(^-neKGcA|6q#Hjkju(v zpzwUlJfp%=_`)~$y+mQ8_PSeaU6?-}TbGNi5ZC|{4?oO~I2M6ahJTnVNk8U~FKImM z3&xFkFPgs!Hwv&9TFZz&t0rc^z#SXY25zce>UlyJbBC{(cr z%&I^*HgvDb;c#Y<>UEv!8GowWw%sD7?7t$*D!F=xg!k!$1-^t)*^-h~Brt9QL36-A z8TJ-vu(0O@z2z19vu&sZhkNp;mZ|GIO3cu<22dDnjvWWll{icxchg$2p>3;nv4L1= zM^T6}5&0!)(J^HVNM(AY+e+3ZvCAZOR61U`BhWlA;v__)v5Dv11Y#hk_sD7v3qfZY zdCTr86LZM3@FMxix|=^9Cc8|@pSnzC-1;?a&vblcW9hzmA|fBiJwfL_GmyI@sGPy6 z{6wUrE1D<~SXQmFj;8lz_CAEomUt>>qgD(1F&|4f@0w@s7Rh< zw0gGut(JStz<{1sX9VK#v6@P*PA1nTthiV$oph*j;VeyO6p=vtZUp0zWxy=na?72h zr03WCS@|{glKc>j;|9Dd(&IzG!8f9XNAApxIXp%{lljm1SKemDw9t;#ma6N6>0o8HREmq z#8X)jpR3F3;wujhHNjPoEEx;Lv-SfVoBh!$$g`8q^9x5KPSeG6+xA(RaqIKQ7th)R z5R!*h!4}~2-I`EYEb>7-@_{H&_+K)PY5AfQfZa5qQtr5-2FF`IE3lq(1!lOpyO~yc z1dSPu4Mei=Oi7k?g(S22AVnB;yMBfifNpwmYlKcez?VKg?1TJo)1cw;tU&+}<1+aE zk~G{&=g9Eo&|`_+7)K9RHg|+KQyk-2U-8G`hp152cZ{=*zDfSJPQD~5c{CP2{WhXe z?BA9h4>N5n@-yh}jRa9_m96|k+AmUrVIH=$VXLfs+PjBlU54E&*ga$}$e9`WDUR&+ zE}fq))_YsHedu@qV&Rd36E_ovhvT!Vr#Jba3HDZ)$j{TK{w({2TI1QGpIBg4r}4U~ zKpo>5ZEq8b{N&jqH0&xTGUzMDL9g;V#&=~Fib z$lu>^TF7@ZUC!u~it7{ENb=o0N7k8V^u#0-aQhJ&8$yvk^=FkAMmc8tn#%=l z?~YCVM9x&j!xxAJ;PaMQr|=V9mF(*2CxNW}`QwvbjA7HjUn?V@Q$6wUK1hM6SY!iu zo33;HKymcs;x5eaMn+^=6yZxqVOY{JS!STo^F*t0ve_ZoFf9fZ)hwF{$ zde9y&!3RJbI}eG=C(jkm3@>0E^e$rI`|%mv>>Cf?gjh7~6#NKpu9PrrLq@?_6KaQ|Aw)632s=Sk**#D-}&J16RkNl~dg`rcXQCP7vbv!=ekuCrKZL?yODGao5NvArfZy?~ z<&wkhv+NppQ=N7x*P!pU!YBcZ@SeGZI%jfMx3#mzqrg-2Rl4ZWDT{_OWXyO@3&BuN zra?N>fhjWq=Tm`y4uBA=eefe0&_K+kI=o1ira8l$s>UBA@w!NsY9(^HaSB+57f{&@;&*Dr zo64UQh+C7|=)Bx?MvkDE9DKoCOvT-~xJWR9^07ZP30cp5ZC_1YPuD zDT_8*e>i~9`fm6Ut=~iEY2wQR{8}+WYyGdHFIg4*aWIZ&ZA4gW{fC5@mV8que!-X6 z7D1$G1)S#)sQZ?7{alHM&te8s^H5zzAEyl35Vz)x z8P7<&ggblk?4|RBQ|5sr6`&=6@Gm!_nt0Y{{4pG`RVMrfBMo88`HdNlXe|7^WC_1w zpzMa8m8h(_{Bii`A~>m)^)2q_O@tpp0z<6N4mv8e7ohZcku)6eosa z;bWwpaIQ(pG4oqj5|XfL&;dbNYMdh^V_A*Nkf@!v;U!H8Rz#Nb8 z)9F=Hb0Yl6l@KBxWi4!Zx@6@6L}_hnslsM1GQ}!_RN3>!@$m0?X}Gl94nrZvT_1=z z#}|Ql7+)AUPV_~@rf!B48w)>xg1ugdbI32;9O+X-e!0#E!T1ajE_Qa&ANrFe!rf7q z7>`7_%?(<=q3VBNfWklctZ_fXCP5!mL(AW zu1-hrpFjU_;2#eB!-0P|@DB(6;lMu}_=f}kaNr*f{KJ8NIPeb#{^7vi%z=>7^8j^K zv)=`3RL8Rp>e{V;=PqZCyk_dP>Yy{v>N=_;e>!(T^flK80xe7myk|5?4IXe*WUv}{ z*(7zrCF8N-VdA6-<1V{UjTw9H1T}j6_)FAzsCXXL?URSBME3xUS(dlaN=_`K+$^du6vS z*LEJ|e01t$V&qpHl%1`P9(KY&m5o2@!ts;FXR8)!^n~-zy;zMIf7zsQm*t(W4)3d2 ztLlp{r0UvNbyWxVRR^p6`l|g@x4x>IIU;I=3`t`*>)v2%Qq(=2sqtvy1 z)wSyU2@}R+r%FA4(*FPbCzRHtX}DSQ^c`C4xKqoWGctE+wQK9FHoLXmeUCl&YS(`6 z?0q`y+i|~6`%_d8IPjo@bGr99xp=qn;9q^To zJnhvdl82%F5%*}*QOyUd)A03i^Yq$1B^AmIJ(zZD^IMzmW5P`B{ktlR+M0M{z7Btl zxb)h2$k7V*AEWM7L)81VSE?gat~ytpr49w;8Y!=@nyHHLHBD`lw4~(Grey;2mf5P= z^@y9T7O4Z&D%GmlYW2P9(e&Tyef0t2KUD8EW$Kv8_aAje=&6vMf2}H4w>NpQ`Oq|t z=N+n}-pq5)8+YMF=Ug!Md^P6cvnO8? zQ+Ir$hL5;ZU3R*PEA_>fU+1e^)LpahJXM{k#-BDxouO8~tu`X}&7lqIMm3{w?i@9Y zrCqJARM)&y!q1Wau1X81H*MCW`3^1AZ7O@8z1#2GL8%>gZrf3H>Uv;K&)$b0*)R8~ zQ`Gp|=c~K9-aZ}d={RW7DC^rRCQec6+UsDG&7XBjy?>G_Tf79}mx^Crsv&!|P!B4# zJI>#z)>&##JF(~YR;BKLc-|vLYL>d;rh*sL(Z?MRQ*px369*4b>UwpRdT051^_j^~ zq0|Sf-hQ*}jrUf+i&dPK>fwi!%2aJy?F#eL?SO+0rtRr4{N&Ph`(dqO>aHqkd#bT&oVr+Dp)Ny;H)@Lkd$x8?Eg6zt+a7IR?#SF| z^>Xb(geC*hB@_x(VG`e}{V!tH;NNt_E>*YI_NcuIp?C1_a>VGrBe7DnxON8<(s8GV z{*Vm&&*i{kg4!o^8{C0BH5n~D1&q5|U4!mzs=5wrEK*OX-_(<6z}~8lItX3l?rIOT z#}M_q+Do0NhN_d)-Rd4#%7JPStli!!TkQk;aYX1wbrbAPi8>N;bi4WvJbfAr8>WWC z`i)S}!pc0So>woZ9YQav#j1naS9L_+JJ?1IzirVg&r${GjHjuIkjcALKeZe7a-E>M zs5j9bIcjL=OLWP7Lvbt?9}Uab0~&e=;K{nhD+J4y`tZ&gx~g6zPfE87fQd6v|TL@b5r1R~?B|eesX5R{`5E)G4%oh@lngX2h$|ajI=- zg$jqhPI8ssqC7RjW`1(w3`F)QHews!ixq)iU&v>J|EzdP}{n z4p&h%TOA8LqoIi?x&FT=1J3$ChMG53dxgp%rSGap=z!3Hp@TvPhfWNArcMi;9Lfyc zq3%@Yg}zanm8G_*)}ZYSb!zA<$=x#4PwgD~5SIN5bzJCcwMXa#;B-#tgwR%C+C{Ba z{X(y+{@8}{Z}kqi*fO+Uof6tJbTYo%0L#-uV?$?zTH^1Sp@b?`7l&$*=3X@^G+AP= z3N^*=EY&&GC3Kg%DAYC7E%b&8g+_;(2>1319UICCbr09(9pG^u$mgWCe%zF7U~&l zuF};GFjPCLonT9LRvEA*yQo(10a~m3)X|}{)JS-VXRCA26OUG7)cvYZ4UqCX^_YXph}Pxhf2k^B8)~h3b5~u2pyWRFEpslH3q~4y`>*LKn*a{O@tG zFc(SqV)_3Pb*cRFzsuBk;HY4bgE$gO9;g70N)bo?*%llngZZ!L{|9hXYTNn9KI?yy zkAD@8FL@frFOO_%`w!(&i9Fgdjr-kpKK@_lVGzINh7r`2A{wMJp_P>Z0iUh*8lZMVcZ-YNp)tgJdIu-w%#`7J z_@MRvDD!&1JWS5#7JR&Peek>r4=In2lCJmW;rWhZqSwLeofy#m@vlm2G`s)Kybf%K z(PN|!ypr<@5~+{M_OSM{J#;%vIcPgPxCY$!zP+k<=S1=QEU{w?jZ*Sqwdp`g-~H_b zTVZsZpXt5G*^tvraJh2?$2*^LwKET$9YuC^tUTDSbmvA+^x4(<*&)u940I-7j5wb* zWUz3FkdZhyl4aPE#NI3#9*zBm7+n)B)FomMv&?AzInH4uwrq+cT~Wr=onXplUk@D0oPkuy6ZO)=WJji()> z);gxYK%3zYAk5+j!+vI(3!J}+=8@wZP^RUsb6zA%erz@DBIjXFO|0h#bKKWH|LB~+ zCTAU@vog_nnCLvh7AMSJaxNk|!}f~z#pZjG^cOncGTE7@j%kmKWd^+*>o-`JT<2(p znR}MBWF*eQMCT>;d1uM%5s7n5&CanzIknrcVa^o{m#Sv-zCfCXI`b2qt!g&z0@DvQ z)oaej^fH&^e6!@hrOplvGd9bakdEQQ{4e@{!KZJaK>YVr3`bXBS@Sb ziOy{ePb}#QIX+nYt4&cV6<;t-SGjwU&#tC9RqQW28{+Rwruvd|Enhz9i1MP?Btwf# zIV>oNMdul=ZJ)A-Wo`*7oe!#tog@dZi=7h8vW&QV{Ezl?X=gfn)!SK_KF*+}J1-TT zy~}Wk^=?~OievdB4yyGzav+-j@crj8j#sZgW!)>yh_O1thC+pwG zOW%99vwvm!-fw^RanqMvzo_Tcv8M08o&BH6zmD{Er0#?E>;I?I_dk(;2bXV0z4`d% z+f~U%^|+&*KD2yKO7wN3_BjmWiT-HvZ={E|)3Nq`T}LTICg+>%D@DKGZ@#A_YSqE> z{owvwG>?u~*F=A=W8PWjG9odjuKw6`+iiUi=^-i|AQM`YCUdg$HVN~z`*>wH)=k?w^ zjE-TW`E}Htj(K4s3^m4=MlTypmg0RJO;oA73519iDX1c6e|N7`*=| z?BHJ2yL00Gme{d{M(guowdvhwCHDXBdh{_Tof1FvBDW{ zk2Z82()F&odlrwVx#_O1H+CIzV{FLW8|znHF!b)=(IH(I-8ro8o~#k0S3P#?E%R?% zP&Z=mH&;Bk@~*k{`>*UfJ#(n5^m4wCd+FGc(re15mQSnrO6Byb88fe|o^?alVK?4; z-`AEb8a+7crXgjsW-qI+A2Rs1;kPfmE7rCBYQPhFoqF1c*>jeEqyAf~9$NkF@2rV+ zeQ4FHp=Dj?EVzGYS(yuRE*)E3?lQm&vkNDWx#WxamtCGS>f&*E<1;T9de=QmzdkH$ zSk~Yh?p*f3=#I+*Cly^k?}n@q!@X}9(RKOop+g@YI$}=Nh{1EewftKn1}`7{(EY=P z-m`SroMG3_?%K7yynNcUii)pzRVLCs=eo=rhTXgL>lX~2^0lsmvu4jCmMvTMzyr$@uWv-J`ft{+sDH42W&O9jR;^m~&_fTc zUj6NFKm6_Qc&&+E-+knfM;?8&;jxB>=s5)Md3AEhQpfACSju53haJ|blS?_G%VJa7 zN2J6KJM1ta`LA8mB;SYgpqHrr#r%s#zx(AZUP`n`)5MI9u0Cy_&`=9cNr@I6%|L7k ziKdCB?sV8;DN!&@$6O^e<*-i9l0@&rqiMxV{5$-};E2PIJmN?*h?e7)b=QZOHoLg2 z*u}+H2gTJDK}m6SVc?SEvS8ZeDxYTsxuxaB@gP1Vepz`@@#M0?N*7VjEUYXobcJ<1 zx(Ycu@G^SLw5oVvdAzW)vT#;ncrY;DCmsxlK1|i8cM$)~yXP}yM)~Bb(rM-Kpu!d0 zRa2t*jGS6gH7lO{9iLuRSXDf=*frbJCl{6FQLC`YpymlzPAR#9A8 zST(IOE_%5XPAZPim~IWOE3GPt?_d1n!m_d`ZhO4=v?=kz$yGB7%dAmRe9E-SslHYe zRu)bzt}3pKmz7ShiWf~Qo*s{8Ikm8Aa!Is`7Y@(OjR(okWJ*Rx7g`UAkDpah{9n!U zU9-y@K6d!%xRYP5ZJ#kYdJy-%7^RV;ZkB(k(zZbXyDt?Z2Q zM5ZR#UpDU@|C#<>g3t61`l4^*w6pn-ubibW#9e$|R9sm+MJS(KY(2~471I=vwGRrX z%GBv{M&b%9gNm{l(}St5PM;oBm6jD1yZWxUT1AmBQjs{bY`&wX70oD{c1U@|rHveeUhs-yTe;+dboJ70OUav1MpIKN|T69RV+PB?k zF$Xn1(`QYcG_5Qi6o17AIz33P$HYWcZ2w+VIUlaATeTrmtEmOB9ChFG2 zVwaOfHRiz2_9>%k-u|`PO%v^3eT%ATbP>PA<+X1aMa30bm5xkKZm;iI|70VY+%}@- zt#opf4H}?nljFe|)6>sL-n&G%)qoGxQpXIezpD5<#9Zi1Jc6|zMANm; zPa||$q7jNF-@o5@*BV6Q>@uQepftXH2guE($IzD=sXbQ86TbAdXv+ zrd?ZDQe1e@*pB!?kokk%VHB=;y)}IPjn?qIzqN*qZ?}e{-f0atx3-2ywY7%#c>c<% zopyywkJy!%wt?Nc?g~#AmU;C2djCVfBLAOYG@rNpN3=}?cZI9Y-xYSw+!el&wJSVq z_^$Bp*}K9&AGFvYr=14?+P1l*cE=aMmlfV6*dSD%-a<% zxNTQhFYH>dD?H}*UEx!Uc7>aTTkhT!-Y>j$k902H6&Bu`Oxtz5L-_j>yTY4(xGVg` zdec3%D?H=rUEyOt-4zaf*8fqzaaVZRFL#B1_|>j(>L&Ak!MuNC*+R5#KW%qji}-IG zSm#gsK3Lc;ocQ+x!=pGIq2Y+#;V*^PgxHb0!=A$V!dPLdFkg63h^GG`pE+uGc;Yd; z!)zfM_E_rf@a*n>3loJI!kFU^%s=bI-C?z`R_IvfNAWq+$4=TEeoBa@|F@pI!{d7G z4*Lty?`KZi9ZowV`TdQv4xRUjy_3JwKC?Tl6MCiZ4&UgvJN!=nL#O*F>3H`vlLqb% zmk5swO~R|fTj%Z$JD+Dc!a!k^P$0|{vW6#@*(F!LjZS_)X^gawmA1=vhd&bT$lo2V z6Bc}VcldqbA6M-Tb0+N$XBV5kL|F*$T(dh|e66w&ekd$1OU~;-{#fW*A&;tdho6|S zJFK5A{>{6?`)=DE{_d{b;g+Sl!$(%^4ln=K?r`5jyThM7th^rC9o{MYScul~>_?ME z-#_R3Mj^5B>(1#_>S&))G$ek;^yrR?=r#0T@(RXGizk*cJ=*VAl@x0QbC>moC@b?A>g4NvlaqV#xbg8zE{cyFJNA;XkQPTcP}Cw@lX z{^w4QM-IqHdVZ4r(a$cyn9mNk!#uFhN%V2;qvMJ6y>I-Y#O&JR_e)GSsc?GfWL=Wz zwp6{RY30f8Rn#e;QaNpEyj-Ssbf*&Co?vG2WJf7OhD;niF*^Fv8JJjFKE2qTtI@0d z;AOH=3Tk>)(U2j@2ytD6XxCX)Vm~^yuzF(DGw6MGBGUWEE7EN${-9`5I;E`CA(^td z+Kz2%VWrMy)Q$I8ZLiYyPTE-$Cg-1(*q2u7iAB9bhf9*7dQ}!*Jwu}Gy(%hIpXdl6 zs%Od0-B}Z=$Bg+H5f8+hF~;j-#7rbN7&Bw)B+1fU8FSI_-TIz4ez=rF^r!lt(l#nn;gMn0q`j;BnZ=Ui51 ze*OBLeO6p&Xjq(@e_-S&Oa(K6oi1gCr2O){x@mXK4?puB3S@Fuk@~ewKxL`W!cYEo7#8?OFgJvRmfS~G} z)%UE#Sq&v{)|b^1OZPSJl5rR3e^9kLxEv4UQgmwM(3!kX-RMa9=mSj=Wh1 z<1P-eb4Lc*7xoth2noOy> zZdy=PQdwLqM`lz8Q%YwRJ1(parWel?r#L#~4eajRV>``r4Gf-In*3I#@$MV#R+5WK z9&9JSU!B+uRUS0fE@k?Gm5-8TJv9J*J)B{<>%@|O#fz@3%W<9DsKj3fM<=c!jPAl5 z>x#MY`|q!et|Uuj$8^W{mBoGAt4OlY6DyZEQ1AP$(UVInC(oEVrL4Hx{@bZ5U5m=% zXfvK!+_z9q#wo<)9c^;L6^O~}sjp33M;+Z)mb{-dx|1|{A88^5TBfpD`xCIgekE#K zG7*PPk?pAz?WcBC_V;;xd(PhQF5%AW_lAXR<{se$-}?&>`~EW_n(ks@mJqvTZ}{h% z_lAGEX>a&L4id%*<-%=3C*c$!n(mwYH{m)h+=so!jH?C>?>`{1FPvCaSy);%{o=_ZN9IoIp9mvIe#ip;>G@}j{GXeD z#{Y2oqxpZF^beSLq22MnF7uVkA^HEY=l@?M{-2uvN67qtdj20X{rx8nFQ4_XvOn4e zK6?H9@67+dScOB%_v6n0BNV|uJ^%ly^e5B)KbQX<^Z%br|NmtENApgG53Qf$ss@}h zaa_g3L?64jXktZGrNhmNGJV^q_20j57&y^!(}(X5Mvfd;c=61Uxnl-ToOpHljKpqZ zz{K2Xp4s6*pmg%AkpteFlyO!4&pUYej+cus{ur|me{d8(I_z@BKKh&F#Hzvr_pKS< zf8uC=9IKxAac6zdUaeF=!DaFKD_46*y_c(9>ps*K;I5n3ry1r-@c!P>HTR=k2OixM z(J%2H5?r94ll=Z+pM&*>2I&pO^nTnApIG(;{h=!p->z_fLcaddmmIMKo(>TN=efo{ za3y?yeV8fjp9SvQ81IgWNtPGACcbC6o}G2byW1hZ4jp&k*HwCDfu~VKXJ(>hM@!GJ z)WEYUKI>iRE{6kCzu&i`jX&|fnC8%U(NfNFH~Wl}OWi;2_{6v9-lV>sx^c|@;h%J;%b~G)9`gIs?Z3K9S2SJp{E&|6&+_dA zf8G3)yL(bRKcQoIG-X$zk1LX+VW$h}f@h>8e#a9}3yIb=aCbxUR86Pk&jX+By~tSf zhx(4|4LXKJf6@1Fs@Ne~oP`1XlT zM|Zl=cKudtWbjgKN9@92TkL4V-i&=NIJ#4G56&pZBJ+Jex>IKGMl9R6z!un+nCdUF zU&Q)o1un4Nej)f(?9!kqHblFyIX2$!nVzDt$#l~au^;exv(P3^G`FKWy&bzPF(&!z z=uUr$-5$%2tZ=XzbzGcVZ93z8-rxcsRB?wlcOXwjy>fgWx`4nQ`~U z7RK&~-4k0JyDfIRZ;NB|Vzu6Nu{&e88g`@ci(5dGZ$dda;?zYd;t*VdzkElmu+*OP)g6G|xcG#uw?U16GhMR%4aUt_gsQC^OZ zT^XC?DKFDJn`L%vt{l2^|1=%b9&oVwJ2=+y9@75pg8f4}#$?7a4;ePp^L>W44@rLi zu+NUUL`KW#SWfi&y~`RF`&?qqCq(xRT5j~2l^Bwo&rtEBSRb~;k3R0;v<-HLTD0_W z?RhfXHWrQl=yUsMQy#j^ah}iguYCVA>HX+&KWNHBhY$9Qp$ijh7a9FeorkV_^4Ed- z`0j7XyYLP_=svvnK2IpR$1Qq)%3e0Q&+TN--8!ZH9o+$SN)Wf_Jk1{Rly}|tcZ$8| zDfW)1*mIt;|Ng)JdIjhB9lZzYnVhGmFzBH71zO+iU{LI0ZThJ8cl6AzFBmp5aqcNs zUoASnRNziUm$~V+T^XDkE79L5)w3I;4|R!mp7+(B$}rip6sGHYRq2sA=c_*you_hT zoLE!!*sf1Jb*#eJ3xb;y&m9}AhR*Wrv4OGK!4rCgHDYAME)Z)>@PovBqj@LO+>yeu zmi$@q#<^~)W7uWEEs2zT+q^RqPa}KSerTNMh%NCnvVO6Jo&?rcoJWK7SoEy2A9_OB zlb+Nxe}5@1GQ}c88a(AL`CjPPXZCNck4b-Y@9cu0PwdC~m_K&s>Sdnsm3%)g_QIgC z{e7vJXUFP1Q7w9R%&)gp+?9BrrFDJAa~BudXZ_R@!!Bzdo*dgTeVS=L9Xmbt)8MpN z+>@}L7UOA8s`}~vrFJYmn%C3&m;SW1Iwv+iG4KAdQ{C%&N^F36^>jb#NwE`+>7gZm z##6eYX^yvtIWBf=?311cc8+-udCz;eav2^R6H6L>Ug~|c{r9Ez?Vj)D^S1ZAZ}*fm z|Apc~@5|&@UC>p&oEJOK{k_p=$NT))`LUyf=-oN-d89je57(7TT)63=B6QF1UiYZ( zaZl?m&t3e7{m$P#+v{!5`1+e?ef>3f)05{~?1x|X47lxj08W*VJ-_Y|PsdvwJml$J-|{@K2i-IM&7fZIW4Wh(E%U^pC`2~cD!?sC*dvd zRK;7}Lp?Zllm1Qg6u^mkIafMHxzH5Rz1@S2J8XX)e7_due{ONJG5KTJ8HF0(PK!y7ikxxcTeqCa!AyUL@isgJv(myl*zFj?bjzwlj@0m zcWEoSdcNPCiMFth-#>1DAKZT3xxf9oQ~TD(6BDDhvA=fWD2FipwO3Jl5VZzRIoJvO z4o&w{t-^sep?}nV=~Es0zCa)Ag4jQTq|s;87keksBO4lfJJDx}dP|4CKNow;efI~y zv-I7D$Nm-!*Ao~K+Yv;c9q$YE3H}m9pBKhnPx$BkEzk$IKgqTyYImCKTb|SMJez27 zp0s~jXaDy^d%N?vXACshcRgaSwMHBCu;&9M+o6^3YJ;K{Xo>kam` z*C(FpIwSCxGA&VswrHw7^R@QcrT(^awLN;VJ@;gL`2wxfmG=3U>jzw{wU3@xaE>GK z=-B(y`W~n1nH=NkW?eiN@ksY^{%^KWAHJ-E+pG6}j}9K9@c)I^!Rzw>m32y9)ft~O zV~PtW+-gu(c3Q_}UHktIUb_G4r0A-z=ZPZg6;TwdDXOQi_70{64z0^ z&ol7%$9vcO3-@1S)@A=B2WEZn*!D^_rO-Vf@#v4LF4b}ag%yb|)~zfzv^cuAp>N-E zmtZ9C;Yi$v5Cngl5QYn;yO;3FFw7DPgc_kh;bC=SEl3X4m^F#p=*Iz{VsYk3&nDcmnSD12A=f$+5OOX1&zSA;(cZwq^cBd2*< zfN-*KhVWTouyCO;TKJ++C|oPd5N;H16Ydcn5FQd96MiK8O!&3%JK>MQ8^S+?ScUui zgyV%%g|mfogrUOcg-eB7gdYp<2ra@#DBt!=Q`)PsYunvD6C~p$YCyd2K~Z9Xz)n_>k#~%csw%EN-7Xy31hlwFj=R z`;d4OqYdWJrF`ge+NYmYRXpANCl$J~Dw&bVTu9EXeeC`VL_hv@hS7;pFZmuj`LGLC zU+S+8TBSL2TEnfrx7D_WDPx16+pVo(PtLicHQZo$@uJqyPBhrVIDc?wtL-@mTJLc^ zIoB?34cA{41nZZW5381$&%_|;^FV8u#;wfdfaR@W8E;$B8ZPE#-x7~s=T`oOZPD|QACtYZ40Jz}3fE!uK?QCE-e8y7CypmmwO=nm&9ilb6LhRF1tc}KEgG8l}$Y1%i?o9yL~YT zo?tr1Oc0;9vyAJwkgswLPrFilp3fGJX19FjN14u9%;oJY<9aUSn_RG{j}=_SI?gWL6RzW0 zZsGQ_J@%oVxjS`_{iwhEv4(kUV+DKK-iDO#3A33pO@8uuF6NR7_1E^&$jxl#P6l65 zZ*4aj9M3%Nu$}yvss7+Ms!}>x$vnQrYW`t{?T0gGN+(y%l1~2U`aNOvr@_}5=lOG_ zo3$+96RhEjtY^v%d%{KzU^8E0=c{ekbN7V3c@=ZHjum{4bud_!< z5cI6s6AofICvYQcxSRFNy=hOlfvdQkFR*i|{JTYda7C^3vWYc(o%Kw;ReCvq%^W*# zPndFz^iQ>(@Al4>O zYq^cjF~yy#Z!(QX->%%bhS43YuW%tV7Ro1H$xY0;!*Y2Kdw8JwO^cKdn^?dW*6_?b ztuHTPBWu{qXXp@1f-INMGMBHhjPbiHmsM=wMs8xyyOj^evir0kIO(1}VJ3%j0;h5g zuUV|!<7#eX6SuSFUhPJO{Jl?oWbifhk%L&l3zzH(m$8EDxrkeN!u`_w6@Rg2oQExy zPy8&4IDxgC^L5MRQf}lrZs!(uu2fGS&|a}0b9p(-Sny5d%UZ7G3*5{$?&L`;tnYN~ zEC;geLFLOOE3GeAtX96P__pP8J-4&l!Y&!2qX{+KUtFZ$$>&+blb)1s zyoM`T&kdaUBlU&Pvhxl06YR}Tu2)|;h$YPDe9q%)Hn52=u!ToICEat?Qx0Sv$8!a% zxR#6gEZ1@iH}iGwWE;ERs6X%%?HI3OKIgHT0~@s`tmFpH=Qcjilp5Q`)9MT7GMmd; z#0{+FcCKXSXT)c3ZsW~NxykPMr{c4g*?f>i%->);;Wb>tg+G&SuH{a4epY_pti56; zJO5lfX0VpET*Dn~ihgetkBiye!*lm>Abb8oe(@q!aRL|fKCb2b=d}B5U@KF8sXeN- zT{DY^H7O?^&-v`l)jaiAmdgQb;RJTORsVqLtYn>whaAU*k?5vBmm+Rk}Ekqd1=Pey1JdS}tSvm(*+C#b!Q7 zf3^vZ*s5OgS>|#J%h>7n(#t+v!zONKkC!c%SF^`$`VGuv3n%cISL~;FY_odBF@Mm0 z^0rsC16;<`1(wGQzR5h+{ZW17D_q8Y+w9+1#AdE|O?|puy<-|*WHwt^#54b-UU1=` z)yHT!H*g=f@toJiU#K21jpfYdGc04jzgS-ua1HNf6IZf@X)Vh44!&VK;#lT$6{|V$ zP3h)SY-BT=`4*kZ4o3V{`LcjnT)+aZV-25YJ-4xur|%G-gXj->!6e4HkXd|!1#Dvt zFaMkPypD}*U^CyL)8IkgTjKL8%;Li=U?Xcd=WY4MrQE=E+{PD~a+mzwsh;p$=5P{A zxRCR?oU7TujeLgNIpXi~?QZjDI@5M3Z(hU-KEpb;uz}-u+i&nG?%-CY-XkBG!PGtC zvw#)s)h0f3*}!F??U@-tTj~oy;W)Yj%?Ne>x4)$Z}QqwVm z8=1%PC$@!iIP@gTWgZ(j?&P*`8<#TW>p}1*rm-Mqb11 zoZ3ryEz{mHov~Au7YDJ7qqvYu*}#XniA~(W+_?OHK)cC-?3dOS<};7gY~m8W&UH*Z zLw<86Te*-umfPQ)*%oGU91A#wHGGXL*>;w6v$D5zvzDE|p?))+Ja57QsAgNA{Y%Qoil z=5sBVn>n9l=UXmY2gzsl8Z4hVkUdr^4`#AthZavM7j6@Qg$aG1u0%;s_yaXo99IZXYG#&aWAa68wr^F#8D zy*WQiIdeJ7_!<}T*x}ZjZQR8EBh*i3Gj+9eGJ{i?$62i4ovh<3HgFp^aW{7`^+NH# zZNI_{4$jt|@Z^!&6W+%qT+4M_caePK7W(sFaO~%`C(LIS?`8ql=O{0Bxmdb6dz9t! zP43{RFIet(v}+v5r#PM)bJY`;kCxwT8zaA&c8UCE9aGk5kC?`t%;ph!@|!uVlZ``oh=P<45xQdil;Q=Ch48oIgi-b1R$J z=LXB=)$F!D2(D*37crOXSjN}5klp4=H!Io1wQS)LH;Vsb`M`9Z&s@%91&7sW$5_C1 zoXIVGlC6BW;%zDNrT-4w7tiDb7I6;$$a=oRMlN5Zp0J52Ps_(UZ6Cb3PC4=J zyVP%P;u3bg+xjxjEgZyFUd|rR$OjJMO6If6J>qjbm$07exPx1mu~__QJbV09`EwBG zGM~?}ntAt%&lOz9z1+go`^0A%du*_sa}b|lK3iDLBfcg+^SO>Ua|>6qmCv%r&$P=+ z0eh~+``V!%D)HHZwAZd8y{x{_py#+zM;Ihh?}DE+`)}Z z{kiFw!GZPSa}q1KfOUM54ea+#@ma<+V3bwG0eO8FiVcf(#?qC5^ zf1$oHgR7ax;~o^B*{tKuY~X#|#MRuvbxeIO2;N`@JFOI--C4nW*0Exhc9D(T%FYjI z7uknBe`&wNOb%Kt-#Ou7+c$sCdS-q{yT+%ujc2b>Uz_arn8p>%=4&kCzDF#VV;+@m z-p5T`#~pm0slU=*GlQv*TP~Mz4tsr1d(IKxx1Df2n>mjzsC53&{*%3)(4OE$Ck@}%;I7e z@I}@z^C|H;n~hw=X4cc?pg{xU{7+^v^(W$UbE9^NGoMz^*~*RVxj}o#Ja&6QIWnD( zFqb`lrkpu}b*y0n@8u>Q`>b+i27CTSelnBeIf3<@!!v&_-MoN}Y-Tez{z5r#wq5*M zIdjkp%9+`ll{06umh)cJj`Kw}vHS0oGtXq|zuTUe!CL0=Nmj6hb==1W*1aU%e2qJp z`XA!IXnSV{^O?tWtl+s@?Y}sIYxyiUb1QdpAG`n7e15OL#5l*ZoK^e|7c=c;@i~T@ zIf*+tm)*ChmmJ9FIiB5L5uaCZF}H9%gJ#e1uKh z!WMRWRe8T;I;OLXxvXaypW#Ao<{BRHNAX$77QW1G|Dj*DO?-ZVxm?N$9`T>@o!M+) zIXAI}JGh*wTeT}3$jsNY=L|WA$NtIo$qcUNjcn%gO!>Xzj_v9TpJp~M{5t#NM!icOShsT+9W>>Q(tqQ>-fE4 z28)=-nXF(v>-ZcSxW0#U^NJItn`P|rC+#sa+2bVX<|58vJ(uxuu4nvY&-RGMGiAH| zW6!-|8oM)_!&t;T*77N?X8I}8&CzUOIlKMY-{qOXZoT$~<9QvccpDdUHP`Y@Zf4f0 zd&8Z)i``#0zxdv8ASZG>f5mEMo+jPAitD+MTlpH>IP7%g^%wg!X7apGOE>db%h_DX zb=<&R+{UBRtapp{n`!(qv-u25xS8{rd6x3x3N|sPw{-JO_I$&6hO@H#m$7LTjAfzMnd9-sTX^!?5H zQc5m&gwmu!wV6%Vk{2A8`W*=E)acb*b(3 zZTZ38Tsn4dn9D6JW0!Gz!-dS`8a~6#96nw-a5}s1RKGZopS?`FS;i{9$;BLaxpZ?8 zH*-CAM&sH2@Aiir$hi`2?3l zH7OvzKQ}%`%8FD*6d9`xiV?WN`%x4Z4u!JvhA&)Il?mV4MoWK^Avs;^fCe!&i zb9qXsdc);h$Of+A$=8U_zHH%QcH8T6jcc`A+|Kblw@kUSjEgy!Yq^P=Iby1EkH)k6 zKK)S+WVdOyGoHseEZ{P>a6M0`u)Q#gZERxC(Efs%jDJOZuHhWM$Yq>VDLxl+D|<{A zpCi~ahy~9xldYV<+A8tc#AVE%AwKK5mFY9ZXBB%!S6N;sK65yMzu_DnTP;4%<9gD z&+}^47v`{ut=!4gw<_-=V!^ZXY^QwqtMZHMIfrHQtuK4tW_>wifqKqfx2tDIx}KBi zZ0308E)tLH>cnH(J(kD1do7PIuzTm2^9Yv5*IC3aOQe&FxSDIYkx|3oa9#5BINLb`e8gVN2JtmF6Dz#~>#Z}#90)-u&?_N$n|b#R`B_6S#Ne< zWxY9qn|bU*%8Spj`!VLbT6@4|j^{<+)}C+;7xVOo#peocj>dmSeCB^wzNN;3-jB#P zWj+anjSjp>hB?@z{p>zTvnSjOOS?I3$_4PRvwmwrz>$f~vK z=dtpO>CF1Rc9c)BjORTeK6i2rcdwIgEclUhvv9rjJ}wsA&4FxYK0ocmmkdFsZT2}4r2v>$T~K$ zfvL|(H&?QaPq60+>fKMZf6U_q{(v=nmG%5P8`*h-bn_$zpNa*SFwQz=G4*HaDHpJo ztGSXt;s*YT+t}$@^|VJUxR7alhB<6z3E$>?9{zLd%^}>#>$#n~+0A1qdTdl){0wtB zlx3{sLVk~HIN%r7nB+HR z76t@8Jd>yGg!r7(4fh1(&inCo_jjSi;|NKJ))gzOj}~{2E*M zZFchjjhC6uQ(utpT+Rw^VjX+@M!sQ(Vm!Ze+vnq?-jVDeu#5H_YIz%;S@+;2zd-_J2q> z*KjlUv6ZP?rTf#`TW0b_PT+RV;VHkDZeGRpe3{L>>t*Rqv%N8mPcWN*VG+|`QC?ib z)tuNYzgfu^*0S3fwqvGqH*-1r57Nzg*0Ia0(#>*iVe@P1$(g2SoT-1ZeR2+q_!{SP z)OO{}^)1$yz2C6Dyqi7GiUsd5izRQ#XKv;~4traB!WG=i?yc%IYZ&jXJzy5=S->v4 z)NA%;Jx8&TZQRZ?cB_|XtKaO+GUo6;mavfv`6}12SDWQ>CtI1lSNZgb1=ny8pJYC} z?6W;GolDp$R6ZQYtsD~D7p8nhzlv$>)@fgu&8t|%8Heo)=W`iXvs22xa3gzgJ6E$? zy7f7HUzpA&=JKyc?h7ke(Rp83$IWcuX-Dk~H*qX?u$HNPl~0#_;UH!+pO>?mv$%vy zxQ-8V3)i!iTaK3Qe#+w*>1F|oSjk$hRY6HB;*PqBN3{_2VQ!Ysbd0-k@;zOaU6tmj-dvW44t!pZWxzk0wl z-p3qnVhPhuk>7l&m;7eIsnX2}r%5*leOi7EP#>7VoV0ym9{JPtTZd@f-fA7KMO)mwgZF;fP{f+NqCZr;gk_Uj|Rnaf(1aU~aX z1J`mJH#6m2^_6M-?q{qw`=wiNW^q2(ay6gjMqbc&U)aKGb~{hMjp_Uwb9rjNePJ03 zxR7(XhP^*)y*Zyd_ySYU*AL3D-WB`o4P9zAehxRs;W#%lH)Y`bJ8w{QY)K39EV6YIH~jm$i6U)anmXd?|$ z&X;c-!)(rB5uai$w{j)t4U%u%#O>V2&KJnv!Rk4$Vh%eGk#8K!g{;G4|g+Z@l+GWUg5oW#Yf;ac_?s=jbCTlszV92yJ$$V{dUv)&xRIc#A)hkZ_c zVHvma5vB~2FHGaiEa~QImT))cGkv)F!c1=DB5r3RJAY0-us2U1AwDl<39sjTev7NQ zi5ofOLh)I|&RP2V?9E=;;`54&zT)`oXs|_WX}twpP6jP z6Q3b#7{64$a}pa_!)EpwE8nxVH%#Lr%;uEKtv5GvA>ZN}_WYvy!tVL%3nw#mq;{4W ze3p6K#tJU_lJ(}B6QrAYS4uZ?u99wkjq!`L&&=X(7O=-e>E<(B$=Q=Fms{Dw%|+UW z&&PsK7h5i~na6po;7ZnU%oO>}GH&L>S6eRolv>{$@tDn?*Qh5P%lWLkR(r_Qsp>bE zmD?^a)=p1TKX}DgERO>!l`ku%D^4eyGM%q6mu)QL(bvgeUd0BM za}$?v2OnnY7o@j(UpSCO9M5iZv_tI2C489cxRG1L!NsiSAK1tq^Q4E6tj3E3%Hy$T+ezw&qg-0nP)yA z{uQy{%Zzh2v$%u>e3&&{&w6%RE6!^Yj_vyxsr|i0h{?8 zg97!8aqd{DJ!j^(Z1238wfr?#@`zQoTlU~Kevv7KvEY8DaXqtH^^o{XSuH-l$CZ4G z8+gLE#b-WKCdGoOOk)kRxq?Mp%UY&9Y`f=7Ze%03v)gxU_mk~^*_&<5W%o7q4=mt9 zHgFAhuqhhp*=~#5~Sr1(&gokFbF|xrt}56Q9>GwN!iZ zL+u?GKdHX)an^7H>)GW;)|;PWGiw-JBV9jMUi|%2mdm`K$ZyW$VqVv%o#k`f%HV1H zHI8NcTJ?ijY-9nmo{?Xy<4UgL2CnBe=5J6>%Cu+f&85uYn=Ij$pQ$I&Z?0j=v+|oK zu!ZBkOtjFWh9kSdNYS5T*3L= z#?|b!Nql~q+j%}aejrcr{8+jGCa}GOCmyXTqDKBOo7qfzovyM~$U47w=+`{MB%I)k?CI4PjPx)!) zvw+o{%O!k>>-a-%VajjC=jrS*L%DJguVg+~vzpIx3IED@m}E69@4J z%x9z7cKf?)}%Nj0YJ%7ta{+Z3p{15F*wftrp z7c!gAu!!4P%VW0MUO1B*`4evEy}wuAXQ@{&%XgmlihO4dEBFK#^G{sMHg0C>AGC|i zWB1vPgE)}$Ii5>d#jID=cb0HH7ji3~`=fMUZ@b$j-OOP&uVE4Au$GIslDoNq-Tu>d z&T6L2v0XBa?=YL4UlX5ItmOk-$p&uV_CMLqS+-qy-JpK|S^L5!7Vu@(u-ohMo4we` z1#IT`7|c~47-#nu^_)vs#rij_FMq-H+{&%&^H=G;Q9H{FKCwgn;47@=TU^4dw=9nv z*uv7cb#A9Bo{NW^~+@yVE8lT#&TzSME<;vcy<1jYx zVQ%6p+`)crmV2}M$3grv^SOuBOy4WL9Km&*&Mmx^tvq6%{Jlm0frEGp^La0;*(H>2 z4&-{)v6)?iFifd+ewAr_h1nb!3*Bd}UEq99;A%e4jm+v4hTHi#JKySj%3)#Ho2!_^ zbu8hhQ^e=FT+N5s#EFM{o)#O~ZJzVaM}%QIM;{rw-&%S*hwitwy>lVI&IVq0ROo(d z<-wi&1-pM$`_LtHzqR$}c#dHeE4i4%o%V|9{Bm#ggLSOpBV5d_T*pp*)DQMyD>K>SF6SMY#TQw?Zl96g?8kZz zNViDfh|jQ=Tey<@xPeppDKE}v=X@RC@)^i zgu_fw|nqGQPuwJZpgX9Lgq^vn3kOZue?G&JmvvF_-^f z8IKw$K6{>L`{3Q&#Gi5p2b~{=srTvMFoWBe$6kZf7Z$OOPqKkKxrsvti_d$Q`Ze{F z89a7~_$*@uSFw&QY~V!~h|e3jgX@^O#QudD9GR)y`9)UoVJ_w-uH~Si%AHrRmGjx- ze*G2>;_J+3*J0`_dvOVKxQ>$sk8b1M(OP<+m2e3|_Rv-pW@^_DlYmOtl8UNTa> zKpH76Tin6{*2we5ev@ARbCv)JbsT={5u!(+|icH&vP@s&sP41J?dk@e{v8{7$d)# z&T5Y45>Dhg)^Q6TVJlx@k8fJvOT_0H%;){A<|p#RXJ4-47;a%Xd#uoJ;vhc4d_K== zzR8X3d8zH1x$OL)c8<$Ozj`v%M5>vJuKC)HREf5V0Rx0{p)3vN~(+{+f;af{`xa$Hzzd3>9> zJZheLz<0Qi=gb$M=iMegi`c@f1>!%X{<1e0GKUYagpY7OpWS_>vZ8Kj<`sI{EWu05#HM8|4Qfn@gok5Z!-90 z<3A{Vi}AnukoeuK_qq=mpKknvA2L4I_(jGadvN+LK9IgL<7Xa znmBRdniD4~n>cCW#EBCZDk@G?)HP9Yq2k0viH1r_MoNo(lcABWMMg%8jJJ{THZn9a zGBQ*$@=cSsdrdy~=Q)RSt{0u>@%zuW+wJ}K>~()!&+Bs;pt`)2Oo*st$q zuT8yhE4pvyvnIdBZ__Az1^g=}kKXB(k0kNTFv<<%Hm+Mw}RjOWGSS`0GbHSiP6 z`YZkV3*cW4;T3T4Z?joGda-RlVp0zug=d@m3g3P^d?JMR!KdLl^o1ASq@(R568mHD zj>m?}ym$gCBmtzM139@)dslWAIG)F(xnfd2BxKyTDI3xiiGQYxy|_&kEtO19{H|ex}*}S|>ghzhw}=OX1gW z94jyO=c=(b<8FC)Z|6J{VeztT+4w%_*)^o5p7kA9WTF!pGrFaBYkve}wY@Tz?-`~M*NANyMUS@8J>>Fq205MJqW&3*%X zL5Tg158?eGJd-w$(*I)rcdQ3u9Yy{aE@Zv2C+fu^mBr<=Df?ztnQ{7plZRp_i#QI! zKT96Qwi$M0-SQbb9qoK9#m>biOwT-I+KJxl)l&oi9lR%jKjZNhc-z5xe{{n;;99;7 zhwvQgoTMEGvj$(y{1yA>*?v5V?oDcp-E~0HoAZ_xM}M#^lJtOm9+kFd661`Oj?b|v zqYQ12KIOzn##%`V?;R?>iJdC!2>)-6V?Ul_$62o0Yt3eK@675R({(-Qno?bRck8+_ zbjv^P>aGpeiT`OIBR(fi&m>{I=>Gjp6z}-+p*Jd+VsrE1Ut@!gV^c8&U5e!@i+EM z!;XD^N;)fsDbbCg`^TE;nE@FCKQ(mX_fPyWkhXyLd(WI!=i(LcAHjfyUMZZO z$sta$)rK8u*O4Eyb<(dB*!jx^(=%U9@Oy{HQ@C&(A>Xt)DjPngfZnAbr|L`@69}T^EhS&Nkw(>As|UV~q#gH9zU6^OqGTy*H0x zeI4UFX`grWsnDbT|D@5sV&tn)CW(C`Hx!5=ud4t3JErQ9vj{?+2S-PVh}qfMUYKlFaP!~5-e?`T4fPLjG7$kA0C zMT9;PlWUHN z8yqfkNH?2HQ}7&_(+;>XVGgBnwot~~D7yIX-=BGvb3p80TYcT^`Rvk zg&zx^d!(Ih_;dukj^o&`4FBa^VO&QHVrMJ5e-aPRkEAy|KPTa3G3{my>nj{{qg)ETqj7p&o=y!xi;pXLrSsp%%S>RRs-JyKPSNte?8g)|7QsA zhG!h6U-J#am%+95(X`8#ne|_3hrwRIrE?*aNBJNw{gFc)*TFkDj$QZ#KcA#O9`Wsz zW9J3MPm8iO*cpMJCw4w%*oitD6ryQGbI{@YW;Tgt{}#Wl=y_hh^;1ti8twXO9KIaB z8XI1}*Z6)Wb75BkKf&bg9*@Ou7V+8)xBa}$^uhPD08KL*+s}(ljqm3c>Uklgo(61; z%+~WM(}rJ9Cz^xOXX9~0U_6GYCm)U0o=I$MfZOf)scFNnCykiZ&DQfxQ{%TM|8T|& znq$qlUGBtH=ABY(?15h;YoUt`8=rI6*%vtLA<@>O{ooU>cCD_J`J$V8SAA07(;0>r zz!#Z*UEufkG<*$wiOHQUIVbL{pj~W3z{8h?3_B=)Hr=0W3dNK51IjvW5*gA8H>+3ZMI+&_*4F= zeKY5CZ2BBM(~nE)C-^2U8f_fq!0!y<#qb+L_!jt;A-oBGp~9uD9rW8e__2~t=UnH< z%vtMyQlf968^+E#i}uZYk>iB6Ugx(pj;0;W>2ow+KqCE@aRh5hxYX;}_`F{}58e+a zZGCR+8I{4GgMZrOoBZ;%@ICOLIa=y$roV(g%5m(bD!;ALuT8$4KJ4Tk8GH}GqU;#_ zY@hUbH{HIk?bNk( zvEJ4`mk0T3VS5bTNcpgFpZqE2khz+ubMsAXWWgura`DrcJBrX)pWZifB6=@}s+@L6 zdn<_fN_aoVu|Hq!$3*Nr>$kTVJ1?U<+O%Wb=i3GU6Fl4GS2*S6JTgE%Z^HLWJ$D=R zxaXYc+kRdAndiu}nfkp83qA}N|GhT3bAZK9`S20Ab{-H-h1mGazL_^U_H0O-?NQ_8 zV*{E;m+YHaYHBX?{p^5uz)vzcHm*h@ZSJLyd*L6Id9kh1kL}sB*S^vB#2T{56t*5a zIyip9(->5paAdx}?zz+Arxoxg;0-2s<^g*Ih>cP-3$lW9R&3O`{5PfziOJ9WHn*br z5jKMQS?cJ4|3cwX#|V57uJw)Bh#(v|Cb+G_E%*x|JRjZMm}}1y`5Qav{g|9#C#l3FA3gw2IJZWfy+GmR@HqT*vpjh| zyT+)4XROrwqz!JtgVq=pHhbZR!MD$`A2sg3j-jbW6EvPBUU3XyPVd>~xSI#E%RrTN}dj;05rYu`lJzK7`l8&!BwJc#!g~@O5x4 z_j=$r!?oNSfjh9KHcfp z?_Ois?T7!G^8Cl=Wq$wm00!Y~3;W!;o%@iG9hiW9*j{Vxt1hC&+zoo=8fyCwXa0CH#_A`({|W_`JmTp+S6rYkS`v z@GAI^%<}F{C$ZlTkDW4SY+mo%ABShamz(8f@xZ^Od@?7OW$>U_3eSQsf^RU(N1cbe zgcrh#;o5a$C43D$C|4}X*U^{xa686Fm-~HX#JCe1>(FR19)O>br~5DgUkPW~?e~Fm z8EwZPg@sfOT#G?A+=2(SL1It@Uj)};T=gOL8(sTaj62~Qu&>2<0A3JM{{(y^Tx(wn zC-${)t^RCyO-TJk@M}WquY%Wx)ZYlN3aP&n{%A=31Mnt=%N#dG|8Iw1$#Lvg7yCIT z=eZ00v5>|hyceA|@2-GPz_od|1fFqf@O6;nNi}>qJg6VVPsxK!xb5e$x}QDRxg4G5 z=Lq~hxaMaZ{v15$ddET`#;JuAPHNT^_WrVPSHbieIKYq2O;we%{XsP-y(m^3S8y=^A&3+O59fe!ce)#BI|0SQC+aC5D+=OO9NDR8*A7Fza;^%|= zoRIWIKm9$Q@=tLb`}iimKc${FC+{rSB)Ud)r;2XxMZV5hH)n7%dK`_q{(-l`*J8sQ zA94{a@h*e!fq&EF(PrBT;kEGm)p|Tz;mhG#ZuhvHQ>S0Qu|67s=Te?!kk5_%$2dGM z#C`^gkuaX;@{3IS(PFQCW$>G^|JMZms>f^LC$G`Zr>*c@cu@PLuXm9PC&71d99voH z_o4Ll<90Q6PK{xw4_#2+ik&!icEcCT_}zD5f}Nx^|2jQ8hwINX^xP{Tp55>g@n=t> z9rsZ@+n;LejG?PS=jBb**}xKi8nKg8;9lSCm}AGdzUjeED>`i~3}L4oZu_%ljvaTM zEO{8?Cea`|&7Tb7mvN@+&-^)d41bES(}3<^vt33#Rqz`4H71Wb6Rr5s2;T$O)>obI zUbxKFUfhg%dI0_cTpOkQ}oe^|e%$u;2b(S0RopbCMG4I9BgXk8TJ{#{`jKc3$xU@O)S^5P2o>^YT z&zt`E$wYH@pV;_!xXW<%76A z{>h7CxPAU!WxT^+oWEs^WfIGZ&+VIu$UKp0=)AqQ=!8T~>MUKs+_f%vZ6&t0U~4`6 zH%Zv~`}zKyvwn8JHfi_lzFj-ECePvT{!-4%dw0QV@lzi>XZ^mJFPmKY@QZ#Qj-z=9 zO|hwQ_o>82GK;|H;ipCU$Lt=WJkxNT|4c(Rn$cptpNrsc!L@#>a(PfcNX#1H6O<3) z(od2H@4)ST`oji4W=21WogwT*Hw53y5ewbh7c+Dh^Pew)c9p6+uuVj~yL zchTgU8soW~V&c6AZu@#_u&)+n>#+0k`TXr?(~i_-JOk8@W^0K){`%k*aBcjJ!LNsN z`Qx|Oy`N&|Kfc}!-wBR=`#e9c;)kzQ68$B#WPR!5iSeH@VbfT$c=^S+y}Z-=)oy7{3N?_s?&O z{Wcr9B)W8Bcl(8|?#ID8@wt#hxW82Iqe^%^TruJuy^ybFGZX+P?`KqYM}BhIOpy64Sj&hgt3aNcaf))-orXu{5y>3Q56LKAc@5& zrSP}lLFZd3UjsklGJQ?d0#Ao)Yu#@6VmM2DKMuxT=`cJ8ewfLfN9OIhd>Xzagr{?1 zoB@~XV=vCewQ(+BRY>_#xYV!tU*ne7cniEBq)-U#B9ZUI6XupJ{+P*y_lMM93V$c0{u+4J<$C=s@MGXw{oU|2@Sy&+r2X(* zc#qkB83)FDDseP}Xcn0o;~BY()A@T`Av_O0pm6b_4E_TAT+_bz;I0RxpX$);MWbCa zw!!}f&o*s1m&$e?_rl+WYk4#ZkHfWb8p)@hLbwGVRk(#u`S6$EcW~^D6MGHetQMt> z6=;@S5&SHX1+Rw}!aKMY@N5vLq(|fmfN{vr9cTtN>-(tv@E75=XgwRz8@=-5@TFJj zaY|mza~<%?g!0bDn$({KuZ3Te!2N6YLiqD=Ete|ceej@s75feFXG6+&z`NnveA*8m zhd-C#pL3H>?2p5DR0hwNvd)t{XojCF*JF#$^3PGy538Mi5M36!o@?Ff@{B}X)VMA$ zU4ypDc`x4UkDL7YqXxbf&Z*h&FY1zIuK3#mFNc?#+_*;R%ICQRxXf>{mbJdW#vC_- zjhE4AF^j|JUl+VCkhZ1~vvm0UD0Q4-)FCmMp6BIO!5NI<>-A^#D&UK6*f+Byp)JnK ztoqs^CX#)#K0zuY+rG=!8EI!Uy2(a4ilK@Q2_u$IrQ2{hUnUWZDha#%MPD zsSsWSm-;!i`u2@ALlt~aNcl#$e*WW^H_qvufY+4r7DWc&L-22#<>{m7*Zek4qA9si zfA1o7EzdW@wKaVX{2_QyA7xT+Au;ZNr^=W)_l(3`iTZmfHP~soNzauQcn^Gs*_Nn3 zX1d{vZw~fDa(WoPB7{%F*TS`2Nk5DA13YNVSlG{nx4>7^PH%pb{h}Pdjb&(d*93p} zLTuE+5oeIVendxJwJ`}a|3)UJm~zHMUgi8YYV(_9(naizAiJnN9SEb zCDq7`Y@r>(*5K{o&znx8`Pv=9{Vz7sKgXO5Poh4rE*VSz_Qz5lnyczU?tj7WgP(&5 z&qmaL$EgX@~cR)X@ij_Cx9z zM-%&sem$MMo@ckRx^Rjd6i=7F?TOGvSxOwcIFxm%z1kr>qOhiT4ni zoziDtI@#|t$szY1iv?@K*82Ox=jvT(ZbhT5QHS97!L>PR3O)qa=BTvu*tdbdi9cR$ ziJ!*%D!FKyz8bv#l=c=A^PO<}+VMwxC2lrHv1494)?ugaetjL>2JeLLFnuxB!M*T> z4><2odUY7@4v)eM;18Q~+&cMgRZ_joadL&RU*u-ijLUFy)qVozbd4>r(3SpgjfgqXzyK<=2|NI@>$;{M-Uh{bumB zlK9z$pG)D#5U<$NC-{EK9!$D3b}V$G*vWo$&O3b)6KATAh$eOs?**XYYZLzXabjOC zmhAjTv-7ciGdCjf&$HKf=Zix4UU*pocRuoJ@mnQ)dE36kZ+M9x&ZiFSHaDWFK%@0d zJAHRK{3Ful|H(;cb9CA{??`MU4+_4uZ{~51W8H>M>T7Xy(xy1|?Ll{++3uvf?cfQ| zU~@g^+rjteh3CO@;Z+>_F>xjq;bri8xORT1g+CO+Tj3q>pfMx%d*F}2*O>Ji`?(|V zo{;i!_*3wc%<{x&_8K$e^O49eL(1pDyW!i+@=<5w%x*t?VS8{63$KM|!(|QT#m{|~ z+v2BY`ey~ajN{n;WqyB0oxBnoz1XNiqs3?xehK_^v|b&~qX~A-MKFFl{CJaZ_H!wn z7~KmWjN!v=h7U5%eirldA3H0*yKja|cfX$KYMV<=mSd+J{u7R48x1>>lTZ5fHK3b9 z*C@JE=ICyBbQY|e`bwXe^BjcOGR`R@Xd2LP>1+7p@4v<2yW!fLpTXj82+k7PDDQup zBo99Sd-~csgJR`qwsq=psiA+`;dWfEIL`0mIdN%2m;0m}m$T>SjJOO^Un@G6KEBU$ z;xdJ10F4%xv`e_Ig`aBLFz#clfTusD$E5_m4o)?RJ{W7`8Z`B2v~^bt{2BP2rj4k) zS>W6c?uMs*U%zf1hA)E$<)ie=G`tiZv>uUsO~v^_xZN-R%NyCo^_!Wmx#&jF+4=g% zIXa_XDlcWN*fr-H(9$o?P!FC&)lMbzc_aDhMnleGnUc@ICOWIQDEf z`C`A-DD4;YY)d;@HdEQfH14 z-U`nO;XUwU;M)3n1ilKs#=;zYo40uElu_UK3J2R>^bb@Fk{y#vGpsZ-O6fa{KNT=Ldc(fIkeU z8ozyW=HE&*ucEor)EMiz2KXt@1;@amOb7fpc-Z}#0W`Ou(dMlQ_+9XmO&^SBT2ol` zw1)VQ4ZjZ_cCIQ$v*TyM&#g%=Zh=1!*Vd&?@JYC~F6|)5qi}m&de>3vx^xg-b+5ZF zy>^bySeHhw;a)4cuu2HVQT#aC@WX$vZ=O6MC3V$e z>+wE)-?|n4B0MN=7Ug^3y>KqU{C<MY5Ic91KzxW?$3EgO=gbM%kS%)Q z7W@o&kPpK1;U_BGf|tXy;0ZoDbECaGEjH@WT#hDaT`9aBUJlppA@sqk;l(k;<{Em9 zzdtjMrtQD?&9u!kG)WKJi)^VQnTgf<^}d-WIQDErzh!r9CO=uk@d>!h6R{gUm6%`d zo{I%5#?H&=e#5b6NBZPvPL4=j)oAJl_RU;wYNAdO3U7w*fd`ET;k#TOG~Zb8A^0fe z6V?slgZoUI*qBCh%5Q@ERcxf+!2SXJzc@~4$JhOKA6?`5KL}q3-;uzb8!O`9B)kiLUIKUaH0}0p zZ;6@IYEjXm8i_~r1WCO6gs zgYYW&5hg#+cHdrWOu{$AH<;WwSEt^{bG;$oMS(l?#~(a+>$h3&aW1_A#?*n?mH6G+*zER zTa0%kh&zju1?Pc?P_;UDelN*2Irj&U1!>454sxf?U zd>xY$kmOARcAEd7*V6&-fd3$&o(?ZB`{ApG^>IB8-wfBrb@ENDYv8Aw_Kk6!1>X(V z#&se5S-3W?E8$)6m2>P@&bA-^dHl81eO)rM(4Pwfu1nHxC02jb=ZY2Z5qO~)>pT2dm%w8q`ZZQHd_KI&s^NR`{I>+_~Vi_-z+_2>xm2e{arau1Y#oW`3u?heh*RaK4C*Y50+U-Z#UvkYFQv zmEVqxZJe*r1oWqR+R%?LIyG zzj;+nF>wTL1Mdp9F)~8wU=irOYcp2Bth45bZVJ0`8KdOZ9h6k-%vM5tWe@J<| zEswFvpFLLx-bXmOK@$yQUf1_FERZy_MBVbZ@{%Ucf+&)q3_8J!`H*L^3(8U z_-SVS#(E~5&4Z`m+W9aS{y1FgpHg@WTst4uz#HJ&`LG54O?c3JA$inA|8>CoWL^FD z6n}g;_w#=+yRII^PQgE&=kC2R6m>Q+WIRObSa-sM=6DNi!LugA=ZXT+ysNL>E8uzX zBP0B8b{xC=o8m)#ox_9r!h*NMH&LD~8^64>k7A!p#6~}wb~LA(8e{!F4)23Y>^vWg z>+)m*&<{V<m{3)EUM`Dd1_2cb5BOjH=#_Y9L3APseZ}2ss_*xB5for+b z4F7<-G`R!wy~5MC^LJ|C-!W}OTkXYx z#c#RrY54d&{xRF9vIcooGS69ql%eVQH|v7~3{BGI2h7H)7M{G1cUO{3{=U745g%IN z6Z`p_9#NA!FA)pxfe+6F&r#CPLv>se!4IZ{B-UEx0yj zir}O0qs;Qg{roEU>u{|P8sS55?VQmG?}MLX+Be=O9)Q0KKh@;Mb9)o;gXhQXzjNWm zDC*n*l|D*g!l;C6eV7g33O~fOZ#*wh1m6t*q{*GFLwjDVf?p0_WODbJDyhE_UJloC zxYMowOtZYPcQ^oVq5N8tJ6oUjUi%pR{~VlCKi|1MAYndm!(jWF_9dPzJTM;kT(0=J z0-gca&SxbdJd^TO^n;W~7U55AC;D-#J>+aZS`pMLepr;poMB=6SpXk{YkPzh@M-u;v;1{_ zJL};Kl6Cv-@N~FlzYm@b*T&r#d>K3_2GYLRmpQ+~wYTiQ?w-vQU!Aeu%rKll($7n%_?zd-NhqQv5dek_L2eDNUN*D3h*aLw1W zdl;keFkf@gJRG8tn3kd0gGS4nTKLC48c+N?V(y3fqdrzSDmf36LIQ4d>>Fv(=Dmf45?J~d4q%8XaN8*+T zfBMjP;ImwkM8Vnd?oyxg!2A-InD4Z;M#g&7knE$C?73s4#BJ7@0s=`PH#Ff7ayk4)?~{ptYprMhpEV z{FY?;<-L8rFU~$sMKbkR==!mfzcfDc3df$m(&k?~Z5GW0n!RYk;*$CRYn5Z;>b_YH zJT*J`8c6CWhR=r+-b6pP`?0S^vlY!kQ)Aoq~+48SgU30%8Y9D-jRVt)!= z20zoZZ(K*DJ;?L4@SyX9^yvzC8$9Sb(1Mr1AA*;e^9Fs9wBDXN>@{-@nir4LW6%Qc zg$Knz>ga}lAO3BQ6Z-pWPMjrohUo8Q%iQzWZ~re*XPn1k&5Rdx1*R?I+xeOBCin>^ zckeA){FX;Ncf!x(ICi5^k8vGRiH$)t8%!IdfX4}Np2LwH!TnL z(}Hh-7s0PL%g@=%Y)11C8ZG~J!FR!LGHtjod5aH2@Pj@Z?1S(rcs#_%w1+s~hxlk= zBNt6Bb%eE}49#{l)#$w(b^oBI_)!agImFLact2e0(;oOsN_h+WBk(@B=A&pL4|DCg zLf43&nP^JU1f4U57r-x4xCO6(Z-Sr8u@?uKn^*gDa|4>YLo`xPCz>ua*P3>WX8;D^ z`{3FbnSlQT9(1k|`zbA)BjDP+m$TJPw)hHo2mB(F8`oVW@YmrN zCh+xMJFDSGoD{s*D|1mJ{geU!J;$+CQ@#(*Jn>60B<<+I&I^hi;Un;Y5FUrW2tN(2 z*G}UeSjHpd1AMi~oyQRD`t#r)%Z;n|$jabR_!6_cagVPSo(ws}jWPT%Oy>9KFHcd;sX%_IGhA#s9#hvV3f-}UXt z7&e~KEkIXvimQ86*Hxi=0o`7)cbB1)XLM)}X8-Vpq@6z31yB4{AKWX|8USu1g_iC8xW(OkKAE-I{z?w?NlP9^|Zcb<_Xy<2T2@ zdUT7{xVqPMT_?JfGhE$(t{X!4{;Y0yu+EY`_$JTC6~t#=;MmI%>DwMB#&TV0kt6q= z$+e!uxYn@sxqFiu*~CrCb=G#GEkfJ5*417SuB}1)!db3%UAVR#?RcT9Jwex6_%KYH z=C5Ne$6vEeNhdjeN06Y=jwLqvGV}jw)22)XBT#MoTu9vz|L;CZKp!F6UWXI=j(RT zh~cYn+s;bePQhc$4;RE|4m4vO{lHEhiBB1Jc5jT&93i=rY}k=Ff5hnziBBVTIxf`j zJ9NUk;M)0n;6wOC2p2zN#6#?l#5lg;pNaYKYyVx66>Y3(%5*M`yojlkax;c@sRT#IMMw<3{$ z!f!S0yElp~e#?UwUW|Wczte`K48Kpy(X78jKR?yM^WkAO+R?1NRKFhRgIBPi ze#hW9D_r^`PF^&?xqTLi?fi!yOX&~ee4o9OXL8WpVb)`ON4^MtX1VT175qZ@iDr4@ z8Qw;C6`WgEz7OsOnB+qz{CDtEO>W%Z9Dq;4?=-pbj_Cw^!)5yVHie7n8u+G!^8S6W zZ1~gg<4o?p?<4*d!F%CaKUBeAf(KpG+v6X;2fo3yZ(JjH!l&SenB2JkIspGWTpKSF z@OR;we<|(s|K;(-cN3zQ+5=Mj%Z3-hwfGmouZAx){d2F;Eq<$lm%%SHx#XDf4U{G{ zkD$@^7Q5ij!;4KDQUCp%LHJ(y=_aQRnSP`Vlkmf?h^x;5rLxF70)D7j-hB>8%IClj zh6lA#criQ**J88Wx>XI-uPSqlH@HF}(C;NORzVESo1uigUh zg&$^e<9XU{`0fzY2?{La%?aPJ#h4Nbel*0c2*UHzx$3y&Uf$t6B-SF78 z!Twv)ez$zsUO^m9J~lLs#L@aL?-Qb7*!bhoeGX1|KK$USU_XSH!{@=ZIMl%x!nHWI z!IPEp7WRALN5HkcCGlYl%~~|M9D8$$@my5w3GT1KwewOYd_6p9Jty`H;FWMKmnz_! z;7iQ!*}X)*tW0kXe$aPYZzoy=WosKPfJwx!PL--WD2Oi{yv?J|Fu8Y5*+g|}+9>PoDd2r2sHM}FF zd^7y%5WWlE6Jmb|p0!o?e+s@FuKAbt6wft;lwSew2q|9zPrFgCzZ$*>uGQZR|4K;t zUGV0R@YXqI#A<&?1pQ3-E@pJ{UUp1Z|w4e;mTd|AXV@9YnMOfpI|ooITu#b?Gi z_Ue#x ztOz@CSLgMQk&jjI#yi6OZ9=o7F5KT;Xx84T`#XTYxp3RxmAb!i?DV?2Ab&G{$UMD0 z+~0gO>+TBow*t*U^}4^c^idoew!h7<2F6!%w;f$QcCL+*yW0$%v(H{C`|P3{ki6L8 z>aNmtQ|MB@?CMH%T?TO~zQ@(A4%W#WP_&!#=Dor93oUpBc6P&MZzQ(Bu;cFG$yjSZ zGl=FD(Y(X|pWOrT_8_A6{Z9+tLw&d37oV}rIfMBiX`z1(8b!11tMQq;(0jI`&IhZ+ z=g5z^4u)&j9u|Bggy+Lwg=^O~wpsrb{yb9$pMW1_a^pI_4gL=N7?T_OIlb`d zkn*GO_u)bFnB>YdxfyMWJKuG>ci4}S%&W#TS6SUWON6e<^dsstMB-Qo-v&RytZ zCA=|&H^3i-FEq=$dxv7b1KtE*V{-Rh35(zQ;ZMW&m|WVh%a8R0n&SKQ{o9lubDaq< zH*Fa27-hpBh2Lg!sl&LIE=Kbn8m%2$;BSWTCin>aII|98kGTu}7F^4>LHHzmvsvE# zmYv0Klkk-fgg-ZyLY#J^xe|Ts?w1pD!gy{h?^&(~(S0tVu6#S-(r0DxMGpqg2f}ON zr^A<<<&8B%EBrk8i6%Gh7xch4!@pqisFQSJe+1qgVm}Ul0e((G`2x@XjGxe#aIG)$ z;IU@?IrB1jI$Y*EZ|*VXx@zeQ_${)IKIZqn#+&Psu8^5b+R}lo?O)UP#rxq;!Hdnh zjD7KO_-k-&Up%=d64?(wFQI&)7mF+fv%X8534NAy=- zjEdlgwZ!djFnawR{l3Sm;7`Hx%<{(Ge!e zQyc7RapACN=&TS+=SEG;E+~TJq__}YzXFksQ#Pg3nNJ^5GiPHyL z(Bytok6{yh94>o6o{glB+9!0WL-Jtc(YW)s|6(us8sl&O4Pj&1V|uPm!7aFUPEGq6 z@8ZIXsL%7k-H4MsSpnY&4;pK7PAwwNJK#Gxj$QRXz75I8W;+xS3s#GrNSnTQE1EVm z$A)OcpFZ&ijW$n?!K>hhqxIV3JdS3Mi&!sfGx!T8kN({2vrPDcZ|Qkm0Dl~=2{;M^TL?LPqCk~578dC|5l%8 zU-H)d8}FjYLbLdB&Z|-WG3$e9>{Yju+eK(9I^r|DN#$$YKg=WjR0TityTNND3*HFd z2w%^!Sx3}4rP_Vfg{DriA$1JG?^n15pM>v(pU-hZ9cTJ^nYM@f)F0wUE}FPfkN8mv z|JW0HTWjEp;9-8WqFImT+_}E4c6^n3dePj9Mq6)VnO*P+c*6abInRX-qdERbeGhsXz6ySb>4WhsMfxxK z-gpSlgoEJ*L>`N-vkfyaRALA8ZC|!@L#|+ zA5;FDZxF&YAG6^vz%?I>;BUjjeB6R&ZI|w26Z~Yj=3^K9Sh(inAUq$g`8Wx`3?AlV z8VkW5G+G>2z`qaId@O-~3$FQC4c`sdd~AmQ0UqXKH=5-?(ATuX@MGXw8>ZnIaIFpL zzh=z~*V>Q^|1?}{Ln*uf9@d6hG;L_I&H3Bd8*GJl!nHQ^z#oHaZ5V;y57*idhd&P2 z+K|C%{#Wp@HsqsO{IuSNa`-a1)`mLxQE;sdZSX_jS{r)dS#Yflqwvqc!`cvI+18FG zTj_^Pco$r2LjnBTaIFm$@UOwOHq^tPfNO1NhyNNL)`osGOP&c{Us|+ll)lb|pT%)3 zgT>(NHH`ayxvbk#US!WM#6~8uydEysy|ED%gtIn`eWqe;JQ8A~5*wXx*=LH$0^hUY z?=>}J<5e_AqVc%#y|`U2*Wx_{AE3O(r{K>iJd-L@h-DZ2s3<d@DSt4#|ljcm-UG)fD_zxE8Clml(rv zEmjtF2EGt`UM!4zKCSR;;95I+;CH~ac8tK=;9>2E{EllN zG-2(?M03wi^mY`$Z-;B`sDN*QYwf6q-woH=(GGtcuC+t@ydO=pN55tshbP0YHe)S$ z=RWsi@q5Y;`z>g$n5%L38DwtEBBuAD`9h4j@x30u->{W*g*+YZ?1hzLYq*zpo=jWL zV<+~0NDcfYc+kF!MVS_OKfKB;Fa8?uhxVXJ{dstsM$v3U6V|3UZF&fe-KLX*+ax|^ z|DN;cFT;H*Mw9h?xKGt+u16E*QxpC56dK#7A93?$_B?6CS$yin*7OVEK8>Nt|8=-e z$=v4KfhNqSOk(*w8YfP=PbJt&9n^i2e62xKisoRBy|x+mn_J+8A-o%&3%|xJAHB@W zzhU@xxOUAw4X=YQHp{!;+mt*{C1z6oX^vx;a--0Qf3)47tMmWBxcMLbUP3wiQ1}wF z9^={PI(P>BNRu0Doi>**HM!Hwh{bQ+__>7g!ehVWhT^QBu0~=#hK+1AM{(?N_Zb6e zYaAQP;HS*P#@&Vu=lQE+Wf#*zmp#lm_9f@NbkB~AN#_=rJ+6zD6OA6P^XX z93FHXX;GvQz6HL~EHANirmKkLMg{TSiH0w6M`9h%`1QEoP>8zUw2*eUV6W~?z3;o> z+u`S!^+o+>cZT8Lho5M2+g&_v$S?=h9Z z4}xoT)WYK*Qb!w_wb(e>^uzd@wY~6ixR#%z@aDJUGrJS=?@2HJBBPvd|Dm6QEO--q zUqbnJz5L51j#dBUn*q|NZ~VaTQ^~(y`}tRi9qV8Ew@w@24I#V(J_&y;!vAL1IMIi^ zancXJ;az>bHx9oJ9@H1om&t$O{VR9_$G&~%r4iv-@L$2T`U~M}|5rahRKhO|;SKOg zc(z%;u@~F{uZC;q>3;aLA$%MjnF>CS+hcx|>v_t{^P@4uKCyuzZtIixC>ql5A$&t&HHH9Dfu`J&y4FnrjK*o z2iJVeg_poJA4}mI;9)-2q8Ub``Pd4N?$>?nfv3VXA4lNJ;hK+ecn&)@#$=svc=7r?`O>_gLxM)PqD{v2HMG4>YoBV6+_6aEfdi(>(N z0{+CDTr=m-N;F$%g74Q`lxu)r4c{==hO?x%=ip8>52MlAF#!J#Tx-V!{CT+6j+D1K zm%yKx>qD!5uFFBQF0wyxJudAihF<{>YezMj`_X9aXof!q*V?fQ-V4{-F$8}OuC+t_ zoJLbHFWk?J3Hl6;=4T$f4zBrG2Hy$S{H%qy!8JeSyxE3kNpyeUHN5a%crH94-o`fz zM&Z|ll#l#_br}3$YZZG^V z@TDfd%+J?R_}d{o@=hf3?+|XmBT4(!efE6#I`}bW{l@!g;X(Vo7B<`9 zFT(Sp{A2dIPp&PG_3y*?p?Twg{pvo^82s<>pz9E+gTH4HSv7xu;`jSxjr)Io9JA0Y zI&i5uhEURz7B z^XNx|+ahhPhL6Ixne`aYtv16~rRX`m3tkYyhv4f&_!PV}gs1(By{-_x0$vruOW-$$ z@M?Hn2ycde1^#+Md|t8RYw_DIc+to9hdviSjOG?JN0~N^_e$k6tTk|L?oNM~X8_>Z z+?@+=frriAWoQ;H(C6-2cn*An>7zS$OTI}STn_J+d>dlt#T@_t<>y-;cHaHCo^NCD z6$|xziv2J5dqQ|7ybwN};O9TR{wRQ3hlKY>C7QF*X#LRuFM@0R(E-06uJuPhyb7-M zhs1M?K7SXDJ$~CCO^l~8e$%G7zBycv=L&cgT#H8uydXV19yMrgK%>Q@1-=EY#iJYk z09=d5FuVyK7LO_N;;>J+`PK2w#CRC_mHBV388h^F6u`&fT0AP?y`Kt?M+2I-(P;7L zfKR}+c=W>;EYjmK4o`t=@sN2rWiK&RY}oU^#1ww&JjUbKTm5)B_lb{_-CofZp?mzu z{WEunuKquCH;7K^tEIjVto?z{h*Np!{Nnm^;# z`>LUv6RR3@Pb_ik{pEk??0PNib-c&5aF!kmsk0ATyV2Nfz4t$Cd2O9QH*kzwr+k2V zc3z#+)-+<9d92&k3PWeKRr;}j#Q#$E{=jE>gjc|C3*q(fYPhz4*baXnq)qWl&{~tMvCTQ&=ZODQ@1Yc^}xXdqK2yYAVp%N}_xWg=O z$J_aOfYi~5<{dPvOpScFlz&_NUne~IxcxI7oDaQr(vGA@{Bz+Tn#P>{fzLlk9h30; z;I$lkHlogEtMJtK*=K|Y&8xz5;N$Sa%<{(ja>el16mC&w3w#LPW0se`c*>7uGn%Rs zbRTxXuLX!0YJ>QgwvT%k@Gu{9(M+LPXSTylD2Y=ke9`jYe3G%cg??B7 z{|U#jqg(vGkXStF#6ol}=ysxO6y3pdbnbm>3)WA4^FO=a{*H&&uVTx%mYqPe63sd2 zJ&keCG$qbhg=^z58-6D|Xq-u#i{RDp<4pS%e!o`1x5Jm1+;|qM5#9jbY;yP86=J^= z{vtf#99ZLzj{*2U;o3O2urZ0|h!wg<>Pg#Ac+li??8V7>4c377C` z_ykVrnT9yL7rxx&?lU`5K4XTx7x?E)9(7*E7Mm-G zVH}<%>zsR<{W|b7=?G^nV4WDMGgpbN^@gq4zb|ot zZ*Ld&8c){8y3{$0rUy+Q_Pn->U%MSU(!MyFvQvV`tJuhh%!^zN5BnSM`Dl(iHF!T% z>L`b=g&)PS=ZA3}S_eNXgtx&9;U}2ojpwd<;TOTRJRXJbfFEL(H{SD&@Us4`@Sr>t z|1J2nA@%3OYvDoX61)BIts&*>;Pr4V$6Dy4r{H#uo&A6x!#O$DkDaGZ({oIGnLsn| zbiFT9qVpor5S|TBf-f>-Y20rwf`{3!a_u*m<&D30+X%k~`;R4X{~3=?_?z&c^M^&5 z0r(`m#4Io4%s2;5qOtPz{!V35T?oI(v|;>hryTg%a4nyU;YDyQMqA+P;95R6!OP%f z3H6_EPyQCabfS`gsT&FQPe;V{gnE&pk}JyujpNbj~kQJ}ovc z@-F3r#)Ji50Uv|^!YnUw{-JN96wO_$bsuWr+u>TATHtl?ARolXZur&^J`AsbtLH!X zSKud_Z7`k>OXp9aKL*!gmvk-wqL81FsC>E$}^XEk51w zUbq&YVffP_d>Y;k*W!~te_rGTxE7yW_@Cigd`jW3!8QMD;3II&{}%X*A-o$d?brMt zhQ9&V{GW#JgKPe$^T&MNhim@l!l&Vy|E2J^LU;{a+OPTF0*{`d``-;e9Ip943_lF6 z`9BR$gKPe$^GC<#hwxmuv|sbT6uyY^TKsF^pM`7wx4@UfHUGQeIU)WH!xx9}X}Gjs z^FN)3R9C?@|8wEz!ZrU(;p^d=|26O;xEB8w_-P@$8!qkF{2zvIglqm!!>@&F{-+*ZePq zzYxM};L?80{}%Y`aLxa2_$ZXWgOh^kArqJ9cT_WZ5ZEg?1Q(#H6O;{1Mnapqz$o!_z2hX zI1`@nIXw>w;1*o#=L+~?@RLpdjdxh;;W_Yx{juovb^s*zBo7+kw=q}5Hr?s>6LCti z?~pm~#tmTSPwRMA$gIbBj(h_CK3t1a$|2XkO;?xMg z0e-CMzq4%|vG}diEq|HGC0Cs70b4VOrW+e!nkh7UKSYzx2Uu4W>2@S<^3ZHWqn#tm z;9KC@_^yRt4%g=IR(JzkI|uf_zX@MGCmzz}(g#EI_jB;9dF0KiJN&$H?sKNgPN<## z{Nd#1&e8KC6aE%l8$Si`Bi8GAQ2}2C*Yctsei~fMi+1=5c&XXW=(+azu=uSHUIo|s zT-rE}<_R=fUnL*L90S+-DhvJyTR{x!h&!nHZB1O5*DB(&Z< z?MxB&J(+&^{B!m8jl*Mbt$oS7L@o7e?aP8^P+n_aA^Ze*Q2V6c%ZdL6xSfl8YW+4C zxhT3O>})9BKf^YqubF*6a?9a z-+wh|mTsK0HgPwqrH&T(CV0?zwcy?GQaH1kU&oy12}aQD3aKLwAA@W6E;9Io)vqdC ze8__j!duN;m43U=zsFRLrm$46qYi!=Jm_Ah#Gwto4t_qzUM!=|4IGP~df~Uj-!i!q zhgT)qVq*+V!9}_cu}?BThww~z4qO{c1@Oi2(@Y<3^8301o)1qm`Pn|Nhpz~+-ws~_ z*Pc!3gC7PD%168X@MGbPX8qB-YzKtLGUi1dhToaMog3>Gzh%Ow;bGrjC`9w#=YwM; zHY(w7!msDp>qn=b?Dwff(}?D?Wx7Uu?Lu=KnxMWA8-ws0;1_W0)gxoiS#sO?FomWK zP0+JEVk7NSoGU-XMlPBWG)v5SjAt22;jhDwHo4tWt||Df2L2}eDw8|$u`IwTg(C;RPKL>A49EVyL9`hKVdzZ@P^hxnKe zuZ9QphwyUv=8*Dr@EZ6HrjOChUT(I*e-%=`7d{M^`(a*x8~4IS;R`R-uTdjMGWOs> z^Q`!9!I#62GVL4puk+!bg==HG9DX!ho8Ri(@`sxCjcepKcoyZCo7{Ltp%=aiuFVaj z@MGYQndOc5=DEQg>44vrz_)qvx8NTw*ZVggzMt}WW_jb9s~mm=<+b?M!P7(Rx4{nz z;l1!U^=tVz3V$c0eUYQ)Ma~PcZ^6%iCp_oH7@B>rHy?gIJg9xLz9}XCRq&s199wXs zpQFxLx8L-ZJZr$tOo$&H@PCE)(GSnKO!q_b;0Uc6I`cpqWFY@=0`g7o~ zz}5D{W0wc_gWZ036t1=({!zFV|1S9ckopJVSt0dL!k2{9pPD%@a(qbrIq;+4YWv|u zA@y&8uY;dr_CMoE9xapjG{LV7slN+;VMzUh@a-Y>Pr~a$>QDX5yvR3{`Yrs+f!_jJY=NGOB&O?bq zE_@z5EDmL8a?k|Ljndb(@MUmqZP5zPhimKF9{5JMwgwx4m%+6)SR8%@JZueS9nJnP znxOq(i9!b!WJFeV6Q)Ak3|FE3I zsssKSJZN69;QjDHxVF9)8xv@b*sRAph0Td$;o4dx8*ahbcJtfn{%t0)Uj$FPO5X>o zg0FyU_8Z|#;o4fO6P^tZih-PK`{>U_@b7RO>*49!+5LR!kB6Q95I?7|(~3@>yYw{1 zcVE)zsCIbJeHp1In>cpBPa_Vo%M$BJ%JKWO3_H(N>ided@VDU0O+SpaT`N2e*W%Fw z{{S8o4{7HJd@_W`;jhE1%=(S%i;Sg=&#QI&d2kD^l`n%=g_N&_UlLNj75+p>`5t&{ zNcj=?I9xl|#^L``>`OmO9*n_rrJwJ=+Rqj8DQT(G&yquV=%%i5*3hxL4c+X%o%;@l z*sMfbbgi2^R~uTfY2;4Jv0Qgm>3!b~uYhZPKMdapUuO2L@!jv~4=JCX?UdL0HW$7V z`&w*E;onpIlQ?W4_K(8XOKfkgOpI;5AKMmmeb>3Mz0S}D#I_G@#`Vs7+_Ccvt&D%; zUG6D-i=)$gPdjd2UflHq#^x=;oHV9=)MoaFNFu?h4?;BJsaS*?>8mZWBQ&-jB2*JzF%$V0({RyJBZev zch51j;=3{LRxO(sIp@Y;-z3X3$(?YNAd>5{p{+=W2tw1#g8v2*1EAFKsdQa(mJAq0!cqqwpWYwS0+u zc3z|tzSXS5eEtLeK?u)>7vH9rFNg08;dSsSxRx(%@Qt_Y{`bNQ;aa|o!XH%1ON=8c z$X9q+zGR|#8O;w9V$^9TjPzpx{MtMA&y*){=S3~y74S}Y!n<5i|L@k;!~X?mS?=dj z(vkKeK+3nn|F3S&`@&{O#~Y_%Gqw+|&v0fuCrWuk!sHfWHKn^Ssvv<9)XY z_{(r@+^4K$?+pH?SzgB5AN@LV&^&&Z?qe~$6|P)*Y^P`jSv>gxEawC0F|wU2CuZ(7x5+y#Eq= z!O%*qjCWwlPU4*U<^6%*@)rN9vGWMrZp&8u5A#JOv;On+^*1POVwf%=?_zHMXK1q&t(w9r%vYv`n@l>F( z|6sl!KZ2br&}r?6!)xH${&@x)oVSPgv4U7`ne}7xLe-B7>^!OXA?>Nf&YoF2yL3C9 z*qKr6NL&ZtX)VEXrUf6Po`rDP6N{A^^%(nNsi(7tgofKAetVKKy!A;AeDT+V?yWx#~9g>62lGz@ME!epToz{2V@asePFuWcfG-q1)ISt-%*?FJvfACYfuP_G0R=@+E}|l$f+C6{ z0-_?`5Jg2%Q4tjt@rEL|^POvqY4C2b{X75v|D5NXXRqh+{kXnktT8WZ&be-LEmU16 z!(IaWX#D?nA28F6d}Ysv{ppbU$L&hkyTE>@_V0r2+w{fU57==>>#z8Bb97wc^D}(v zt7kXZe}VmO_3Q#OGuuouAo zRqcAH^{tQouy>wce?5uj$^Lz=hm1^bV%*Egm|!9D@@`tp|n`?$N<3t=At zdwu6H)|X6TJnSuN=kN8u`auWSzq-rz{bBzNcAwhY*ZQu(NZ3!pUf&!XFW5g@P=EQN zV1FC-JDsnpcAf#dXFc1yz+MRZPp~(ueLjnRYLS1P&pP(Uz0B~cnxE^GfliuL8l7NY z4|{!eI1u(7u-CVbN5k$CQU5uf5A6Sd-J?$Wf895WhJ8Bh^}R!q3HxH$>+2(DVc!Y+ z@H+8nC#&)~zKnSpk@dbZ9U>x^}LUZJ)h2zx)+>-%oRXxM+hOMD;LXWu1$H0%Jg$H6}JF6n2(J`MKz>Zla<39#2U);bTwJ2!W+ zcY{3ucGueFQwMyk8|8<673}quZyfBKVXrTLez32p$L@kO;$U9_`v-RCEtbK?DVmXo z{qQ-usQx@$gS`ay`sQRde-+m#ciFxN?2Q)JUx&kBZwY&Sb?_tXkKV;T8}?pzu_wU( z>Rs&nVgKMR_G_?z4SRiKZSz4GD`Ee<_C7X$aQk@O1NO#C?z|7xJ{ktQ3HG0AZ?DcR zYdwSb1wKRJQ(qqD!oK=0X{>{N(ch$z51%sl)Hh~V!u~*X{m1P#ui>}~`<;&4s+_%H zH!r>WdslAoafMHP=ke~azXSWU+I7W$JW-_)4tpx>ce{6;0iW}K<8u~1Eo16`UZc`# zG#K|u?&72RcQ^QCz~@f)0MxbIK-6gw?CbDACl1`yRAUEad8 z2ITkg+U2eF&Y>&pU0{Erww+#IG0sKYVDAn4;M#W7hx&A@iti5lXxRN~+iQKpAsqHY zu#c)^|LgDbro!HKW&Q230QNSp->FZl^u3|NHIs|DIC+ zOL8*urP6KlHtyZ*!TAB&%I$dAcb4D&Y9Frf$@kO{YLf8(+Ig(~Hv|je)8|N4 zO?7P_zR{=lk98R8F2AZ~W*z(F+j;B&`*hgn*RjvOZSN1e)6x3d@JQHyg?&q%?UQeB z?*)6?V^uW~b?kF*+oNC)gS};)I=JU{9c92Cc)Y6SVx8@2(wHh=A?zax@GP#*_C0QI zZ+*uk{ybrKkIsDScKRJ)A91q&Yr6ihkApqGPWt@-mo{RZRfwKtF}*t{qeil3t(@1m-u2h`u|%;|lvG*zYtxsw8V_P=7V1CKF9^7iI#Pq`O&En4U2V&coy~ zyp3X#$M8-OYs%U22{}Z(hKTro%Sk4QGhveqk|M?;%PeBEgaAvg?%?aPOp4WrEk&hC zCP)!#mcddan`O0Cl$zx!tMIePOe?+#D#NW}p#!#28}}S3YowTBlGknGgh{Tmi795e z&?bB=@`Qtku*mHWqRJxU9mERR2|lq7)#yCf(CJnAJ3c~6S!gg+PQ&!7|M6Pmm$CgP z?hX|WBHBiw?s*z~L;j?y$VjNoYckU&ek-@kaTHsnONC7=a2SsNm)UT82N~%;2!6lF z3abb($z-coVUkO%s`yY6&9cafKbs}@TE%&bQlh!i8u!QJvUMicd1kTAObIpajbrz8 zlU#|L2AuW`^C(%+Ow2TOJbb^%LftnPLFUKt|08C3s5$;#mfYN2%(TcA%|)3-=^Lza zehZOnl|C)RC9AyJTpW-}4{?wuTZlCda#stn$3d=ZArfs$udvA_Ek&TC3}`7z?<6m@6xW^P!IolX1DW1Zlr=EoH9;@>Mbv=V`h<>FRiWn<~zN(4C@@tvjn{o=Z_Jl{&pY$6Y|5@k({ z_)TT{{UW!iTz|uz+r<2a@;H#wNKOSN z-6K!N+QjjDWEN22j7<(SkrgX#!lS7?1td0;zQDO=vS@`(Y;G=h15qtA(4h<->00Y@H^C97;=jf*@0 z+-L{Coc7W?(I%?e%S&r)VpRt@4>;XHUcttj9+8Iuk4NE`|EQdXR`1!1Xtc&4Y)?O^C8)hzy74i6Q-#U@he>>AB4&j=d$%L#%#F?gQoxl^cNYw+)x7 zw`CDr<`0v*fsMmtB9J#sE&z_dW4I&_m)kL5{549tC3dH~_?NtICYd$JH~ z?(fT)SPOq&-q?$3A>SZE*Y})I;*ea{msv ze=L)Mn;*+4!2c6D9k}ud90EU;D|e$7K9xy3Q462S2w;YroC2J5Gi(u`Nv~Ztk@lIq z0P*l=azC(ggkdWgA@{)M`?*{TEcsl90n10qIf%IngErQRM#?k5t}l?18csO$KWt~tlSEm`A+$blL7l|qHvtNm4mdtmnVVX?`0Nn>w7pv{2-U?w~34& zy37O$#>*RUcmGiy2ZDc;+W_yM#wc6i&v1ADr_9IyH~mxk=c0lBBA4aa#Fk&=7Ob8A zMJ@*>{`R60XZDZ;QSxb5195Z zc@t5V{Yw@Aet&+Xf^EV9cNTaAtT=?O3Z4Q(JWO&2xB*-Z9t1imzf+E5VDdM~6mVI9sn7fq7(!;@2wQ-B z&Nj&?a1A&e+znoX-^xIfRDLJH3(zaT{a{v*Nlt=(CCJoC*=y#QU@4dY`h}QeC>RHNf!_1gRtxcaq7Vlca65P$ zj0bDLU@##}dF{e)&}o~P8jgKeWD_yqEHDeKfL;uqQuYY61@J_q+Nuh_(PuFHEHp_! zFbTYgt@6ME@O+eMEympqi%s$<%x4#y9zjw|Ofv8+jyBOI%yr7dDN`2KDna~Vj-@79 zgSGOdreWwd%S^KJ9L58%5IhR*1k1n#rN^pm^6?vAY!j20n`R-gIGpdC!|L3XrjbGf z$C>1U^Emp%sic?1qa|VOc)Ut_@hY^Z3#eTX^@NkfRID9bt&*-uFv*Pfk1DC(i$hOHed09Xzt$BxAr0$)?{h zCugHcmX+GX1@IW?lVXxv!Dw&=7`aKMP=((^SD>aMcVJ2y`r2iiC;>NvyV9}0z~vb# zX37?mym1xdGI$)k1#Sc9ZN*s}ID4Clc?rLH*P&*jpMY`O(K@eTTmmz|O*pZO1p{^} z@2xvczo*{7h`Ss6w#+8Bfd$|xFcYi<kHMAHY? zoaZ0tGr{+ndB-DM{y9G2VN{T$t~`VV*Yt_aj+7c1m;~--X}{; zGSSmf%(#T+2QDl{=bPv#_JI-Ls>>Kqz?oM~*_eA!b{&QHaumg7Xfcx<#pE04_uyi1 zJ-8K&1dG6_;KZ9~ckqt{4}&RSI#^at+i$vMnt`rxsscmWWaJrFK$YH(;wo4O&ZX9OgGC*GaQBQ46{54t^hZIyTK)32{;p+ z>T8xa;2#4X2e*RT!0MT_{Wd?ds=f36W*Oz{D2@l1rH7xRr~uE+bQB@8aQOso0F%HY zU<7yroC407ZI+j@-D)roJReBgX9cO+^PG!IFhpAj?go>=L~wSnDrX#iL;M{@)I77i z8Q>^V!2+-V%mm#-%rXuP2j_yxpgWikp2c=I!E7*YK5btiw&W+bW)TnR1#_kc6O^WY8mPg{uU1DAl?z~fQ0eaa%E z`c5uJ^#wVK14~f+x!614Ib5a&M5Fq^RbUdB14e));1tkzDXI_K#ejL>$r##x*)k*S zo>q_sxa zrR&V{FjnU$ndRCAjv@&R1M@&{upGQJ-%$jwN1cOfz)fH-xCFcm&IFg@zJ=P}XQL4| zHpMJ2U^RRbx?ng`1>?bdFc_=^J;2aZ)Oi>>3b+?M1SWykzz8rlowmQ8ZiEfaz}*pS zHe(C=Y$Q?zH-p>3W#Bn*7C2=q>O8_xECNq~TfiOQ32-$SoJrf?%v7x}KFcgq7dnc) zU^G|^`hjP5C~NpGR9F;RIyeK&1FypxzgxAdzt~Y61;fB9&>Nhejrv>U zC^muz!8~viSPm`$1NWl-z+JfIp|+3Rr_wyV-z-CyU?=68r5CsWyZ~z%h!N}nDhul5 zgJ!v6DMm0b2uug7qtPJ2B5>j%^k8rSmN! z@5*h79I_v(K5wtp`Jj(L`1tw_qqZ_q_R&S_ryC2 z@2l7&U^o~CUIKBkaLp_eR$<5nL%}nk7npF}oQWZM>kYK;)#^Bi%!4)HIhb>AnjaNn zV>xyZ)T3Y#SO)F}x872rFXDIOCXD_S=8NV<_>XTja=ZqI39upodj>oO7K1y$$u%fB znD1`!vZxJ;J#k|T8*KH$T|m%dl0~MhLn8!FV?A$@rS)R9KG`CD!Hr;CBJu;y1*<@J z@VvLBo3gLMJ;fbZPn<&j2f!6;k#8^v44P_@)v&Jui@@Azy;Zpd8&cY=F2V9Wyjl2G-2mexsFFT{<|2++&lB9B0i0yl#h z;4*MkfTfGFUk^aKSg)Ez{=u^?GHpH50hfY#pg(vqknB@}EOH9ATMAx=z8%a1bLNme zd9FpOeCC1|;1?Ebk!O-Ibc1`qS zp`Slzk^8akRcv`78H~VlfbgSe^`H-U7%YXp;)3Nt70>6Q<#hZm=4aoY>_cw!DY)1iwdymItl>c`gO~rYW;AT<+aPlaY}U)!vPoz zrhz-brQik7AN06oc|`fIzlFwLfW~u+wqI6ZdCmI-PS-2Zk)SWA!cGBGz)j#Wa0ysa zZFx&=zpn<}75-D)tx~OT11FtCV*@Wj_x7;LTyP1v5saQ_HPSsX(JI5?H^-B<%LP48 zp&a0O=z(5Vxer_eZU7S}(RP<6S>*!wEt*W*9S1!M(E!17(8Ii~axb_EOahntke|;K ztK5DX*9~AixP7Ws=3~2ZFabO?%_>8|z!~Jf7W71U0(}t&jPN2Ny>SaFvHtp$t**M?a! z;dWIxwz-JD04@egKwr>1!Ya$)bs5B8@Q$>~X(j4H1QB7Ky-=wuqO5YtB@_v~3~Mo% z2YN2D$~5rOBI`0-Vkbpg9}g)*c9tS3xJSlVrCL7^=3za58Li(0uVFnU)+#TRqBVgB z!D?_5xL~;=TxwbCl*UBN*HoCr>dv&!PjIQW4%;C665cn*vNr^H+3 zRB-bu>lT;^l$`p!<637`5G`4QL_PF${qFz%+0JcmiAqdL*OL!TI1- z#JRGO>M1+L8i{J1l4h0eH&9IQEW&L8v%%fzYTqo{g3Q92097??F_fyAzHas7CPeK`SQsA3cPe zdpL>NdFaAm0yqWS4_=1X)FW28a-x%n0q205!5Y{T^Q|)0(@7ivXM2t1O@7B#wZ-;N+9&K3+~D^c0c?HgySmjpm61W0PDY1^hWmBnD-tuu0tH6`s zZZHcx1Fiy(T~_sybOrlrs*@-LGr(I{(aoly#Mi8H8#v`UY5*)Ov-+V#S>?#tbSH5g z%mk-ZpcPJY5*xrB;Jiw!Tn%2Yvc|&whP#x7zD^?2L&}}tx`|TWnBgSOf_uPio>Hy_ zw@y+|y(1<|dDair0%n6Jy``*}=_CStq}&Hy1~-5{(_|)sFZPx4LV%Ol3+@Nc%#^am z-$~5zlky-~25th61jzn4b(ke(>1;HB*-{@vE7p@ML z@>&oo3Cstt&6Cm_j0%zRc%YN;43%;lSU6t}z<3>ojLvZqGsC4k1xABAzzPr#Pa>tv zoa-dcfpOrGg;H(}h80`^&WVyT2#f=(VXpx3TzZj|(IHO4W3iNe;G88W{5(_{I15}H zjWn@ULX4DiLY>4eum*m+mPvUU>qX0C>s{cESSeS}N9}+iVCHfay&S*s3!HEQizdX<~- z4M=qnN(9aUPb5p39_1wbH%d7VECnZm)tjVTuoyL#D&=IwG_(^iE={)H4+f@7xqgY0 zhzBFV0ArrYX8f*;b`r!Ul6<}!5A9kN*@cx&d%R^o#f{fjVWk zlqsP19$F6u4`6)8srdM3VNJFk4-==fw7=pv6QpH z>hsEb<3%aAtVPn`aEA`|G+TNzf#Jq4Nf8rj0D50 zq@1c)qr8*x>$?&4=&oieP4sY(r72EgId}-%JkddVf>*&K@XGOYkek8eNe%;rI6T=w zUQ2Znle`^dJ{aQTAicpI;PFk!{S*he4V*pA0nc2nO>>Yt(wxMh87ie~_;pW5OY&7~ z)%cyi1@UJ($VuQ8@M4CO@bz<$x!?+LBe)w}1eSm^l-=I}6DME?kAl0wEno?_9P|xv zkbz(fScTNGz|&wcxC@**%R#OIHwLO)?8NV_?HJj>lVC=WgUkX8!BwF990xfM34V8& z7MKsN0&jxzz`2;^G!a|}7NfQffjOXOm?}jmephB8Rj?3@40ph^1k??9eJ9#sxWi*d z!So13-GS1A^T60h)FJep;1=)#xE!30Ic$MoELa7^l6g&iO2UEdwU^F;oiG%b5)1w{aS@<6Tv%v~*9k^(zgA50AVpOS4;I}dt zJpe2OZ-G0(++_~3A{%uZ>mW~oLCYPaFSr#fLT(nVaFDyfv^erV3SQXnB&xvu;QV+8 znG7a@QD7c89V`d0?Q;^rtI)Q=BrpTa17pE*aJI6qM!s@j2MfVma3^>jOaKED9AqfC z2J}*P@WNi$!Tn$$=Bg!wx7JerX05|^DA#H*6g&!gsq!YNT9~pP`!*jf0GtCxf;C4_ z8t~Xb9I-bz$gN;XvV**Q0Q~^m4({6MAmhP{o5+7ks)G!}c1uBTa65SEF!l|25S*0e zAUA=Fz$M@oa3**fype~IFC9G`i~zTRY2Zrm1UN_8HzS=xu!Cp7G;j}i0$dAvWFUPo zb1UWN1b7Dd@Yn`Fa2dE3%*<4!K8WALr*JL+rh}zm47g*vgY-X!<2qP=6fJcJ_92)I zR-$%7c4D7^TXvKGX)x;~N{5+&tH20w9+(DB1W$m)Cs3PU4mdv>{TbW{MuJDdsmcys zDS&-1@&#@L)4`))3|IvQfWbNF&&Sa=z>{Dem<5)DtH9uWNMG5(iOLQZqdetc4mj-~ z%cW&IyfJke;6(7H0lzJ0*@U*9T%eC z=40Q27r~ie>~Zqn32rP#{|6U=J_Q(S!D#UMIm7{vf`#A~(CY-o2`~x_1T(;@v#^7w zL9dg@7Z?Su0W-k)$_`Ef-A`exKZ8*d%mq`yjbH(|2&@EWfT4v*zX*F5JPPK6TfjqJ$rSi-^hjdU63E)MP;~1C=W}e4hxPZM5&I6M!sM;*Wulq%eP8S_o zpM|>ZqJs>%gq~J{o>YRK1jd7>E@51N->g#fSMUlL3U0YV{-;4tY`5pCiW+kbc`8Nk z2Tz0NuVd^3L&`Ar!Rr>74PLp4(cv=oY`H`0{owI(w7@G)q6UlvkK9tx5-X6_HRK%h z0&i5J_g%#?yb8S;oLr6G4DV|-4!GHP%-tr#%TOW@oAd$0Cfelc>&O{64P4=A!xcE{ zZ;}n(lPB9`)J>ezfYZTk-Zr`R2GRg$f(LwT@&=-0OtsSwMo2)>TAU_+<7q0u+%%I)TLQbpiRbC zq7Xqg84QMj9^e5G5B=sKa5Z*5SW$%vn`@Jc!N_2ntcI7zJew>6FN7%X>7h1R4DUJf zZE{bIlUNI`1rLH@;IS|y?cP9Cg9+e*aGMMTQ$R0pQKX8p1;6ng4KOzeIRZTvB1hoO z#kP{e$T8+dJHI{)|G8|wuh1fPSY9)W)jecr4c>gp3xDKMO{u}!-~DTXsd!gR0&{K_nMJsnX4&6S)R8cQ z-4`EKh&lic;BGUF*#N zr*ZP1BC1w`YFo$WWMAXKFEI0(u@EhD*zChdwiGVzp}1 zxc2#%dRxNC;lBs5S3({%HTwrP8!A6Gp#h?%=BNxKim}|W-2d|!wF_UT7&WH$J(1kc za<&vGp09(*z~n-w@Q&FJ&_Y+!uY4kgmSl>qH=f~li|#!9e7Y;!J7lMviv{y zakrRq@kqiVaDV@=qEj6Y!t5bT)LLk^;F0-RvoM|v*QsO5-rv>Zf0*wUf1h6C;m9QV zAiclK&;M~d_DOH~q3Ndve+vJ} z8FyqLI=&*`5MQHU_I(Y1MHLS^^DF|-#&iQvJ{WKR(OQVN@(ErtX zov=n*x^sU18gEsdAaff`7EFG;j*sD}JyK^MI**WB&0+(lN}2^Gd>HBer)|-B{MCk- zCwk8Z3C_aL882+8Jl7ic)q3OiaDN(;0-~ijsqUpfYPcAaKk>(cxUtk}IdxVVV7|RN z=J94zF|`-pY30>>--Z0^i@EqRI%oU;U8V6jy!p7))Yr#o2u4BwZ%fYK?Z!^R62Uw-V%Fdqeb9Z=l=mqL!1Nb#q081sSgj3fllJ{k$6UfF>)Us zb(-@{cpiB}&M-sU;zW5+`?b*%XucoH5#o2!8e){(fse#-q!ypaVzc;D=9opQsUOCJ z5DWDbwXOcwV3c}!ulC7AUFB|TO~!_r7g@y|%PTXi>a{nca{d=ZqrGCLJx-~%a>J`V z>eX)T4GS>C8Sh1#@dQGZ$msWfb54Nq*LjRwXfmBLwe>IyOw+tQA|Qm*$8sbcCTi7? zirshs{Kos3a3+n1%#<8t=N_YQOV#vf0v;WjPdga;|BBXNG~P`Y=&iR?__yy0gdyncX8ge8MADpCDhgjubFr_lKrpqt`>cv;H8ofoTB)KE6!*_EduXAcv%Eyrx=Dt4}&ktmxX#23XZpjX8ga&WK#*Q z9Pq?9(gE*BB0mt@OgFuV(*VmzybHP;k3k)TC+?vA^dl;ljwyNBK2>3N`b-oMIM>OfTa&yOyt^oL`mk z_`7$QS8u{OEWf>c2d(+b*#4hCgjmE}v&$rl$mC{GUtAPtI=&5nkIEr&`<3^_WbO~V zd6v;b(D83_7Ftnjn{7s(af$PzJc%WR@{ zkVGE7@uN!R)c+4}iCW=`_)pFg@3^D?bFt3#Jz}4@>Izw7ww4M*mSC9L5r^ z*Bjw{5lf_AcQIB)lwNN{>oIyA55v?F$Lq8;9%k}7opEA9lJ@8H(s|v=@iMiYH`uM$ zU5)T!zxJn9aah}3NGQ}ZhR1nHv$|njX^B|J*fPt%u;6Wo}}+&8qWV8`f=g% z)tBW?ZqyF!?ctlbJ!nHl-E}v+^;Elcmo0Vu-R;&3?ABek*7aB4v8l6ctGn)Ix1MUZ z?vh#8-`#G#z;4}jdtLur_xETn7$+liZR4d5WBKJ3 zqSi~h)4I;L4{u0O@poj&EZQ=)Uqua-5A|$F)x4gHdrfMo;dPzQQeGd^jqK&T9#5