MFU2  Shunting-yard<C:\Users\Karol B\Downloads\Shunting-yard new unary minus.mfa4(@0YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYATNFAPMSASUMAGMI """)))UUUMMMBBB999|PP3f333f3333f3ffffff3f̙3ff333f333333333f33333333f33f3ff3f3f3f3333f33̙33333f333333f3333f3ffffff3f33ff3f3f3f3fff3ffffffffff3ffff̙fff3fffff3fff333f3f3ff3ff33f̙̙3̙ff̙̙̙3f̙3f333f3333f3ffffff3f̙3f3f3f333f3333f3ffffff3f̙3f3ffffffffff!___wwwcO 00xlg_;)m@tj:YPFa)2H*KIQ$G%(Mq*7VZ-(DuSBh aKgw!*x޻}v ">~}^¡.\܍[nDm80>.y_ ].1SFa[R>1> V\5o& @[9qe ZuưzUΙ.o}@lg;mlf<pݷnfz|V`l2Ab`8*2.Fߟ!wJdB!˙oZg :! r+xF˸ LJU -I_fiûl4 HυYn[BP31Xok;w NY& @-Z̷A>0?7 |>3858Y:΂kRX+jԗ^8?d:pdѷl\˚E[g7H0;a%\̧zfbD+ufܜ۬]`| TÝcH?n`ïe3}@]qo<*=uwLvF·IٓzXב/=Ɠ]~n3n ہ1z泿2i.]$3";#=7n̺4Ǔޗ6ţ1 D!{AkOek4uY?>=S󹽌eo"@, |(w]EP*\W(<}YezOEA<7n~V{bX4F)T ҋJ]=.?{U>}< O2d118W.T`Q3ҥ%H'D7(ݖLj>!¹@dm\?ݔZ$L|HLOq mqTuh02 4]`$ J-+GiY#l iӝd Z K3ɻ߸b+18@&#Ϗ6*? iy T:W7=f~[8ouY~ y|&WE`; M`+).%L Z4@r&a?l&Qr怹#"YbE6YR#F Q`Qt]O HN uӖ9FyXJ>PZ: rdm1ǶC_Y&*d46KY(Y)|"YbCow(odfJGguv.&ۨHv诲%"Y؄za767}r*kxY>bDUjK0Ϡzi/{M7]3Yd^mSw@[Aս%ʣ5JAcfO%|FOЎ:f06X$1mf f WY39M03) 7rMG΂3`|ΞHdͣx {of\ 6t{+.4vZ*rW+wEXEFW<x@C";C;F/:=74Lޥg`U]БLj*0XUѳZX@##`idO컇F>[S% N}됮VɁ)`}[4uv4#҉i]M7)T* Kygٕw˹8m;{ ec ڦ.Tܠ1Tp_c^يp?T.ĞF5R?S.#I !ij}j S݅w)W>}]~M +4uU o~NEjڪڏUj߯G?=wFu=OBsSѹ`i@o+*'|ZsX5鳇kv 7y[Up(k =R T8~U_~ZTPꛆ\ jW&bd'/  xUoHg݊ݲB6VvA !7Bf9,kGIB!"B}9"`8[ٺbMVQ {%vsn^|D{ PP;W]E2:|~~u/Q,=!o/,%ke) ⣌ڡl */v̚T" *-Jf7~S\%#^u[)jVӈ*fզveY!nb[Ӗ̗:=zUBBEAPǤ1iC[ݸ[;=0倴JK\ ]Ӯa&pX/u?,z;dʑ@}dqĆcw9\8Swh7'?,ucB*"EG _sWgTb h}$O(uMR##a厺6tpA:2>FL[؏ryP#"/Xz2cu= jǹϪ?w~GjSG-$3L?.>%S*^ט<ř¿nϓ$e aԸ|/qʳຒ}-J7$jL37t.+ 4ŝkvq$a*!b@"ٳg@<\[.&MH}Kt!䅾5,z`ݫȧ dN\έăa:DqѾygE,c.%hc[-n)btc V A8B&Siɠg< :C.]}Mʩt݊Ŷ}lH^7~.quߙg>ر*.e?F n`e17|pTQTTQU_ @[xe?hQ_' N>AQp)N./(d8HH`;ep G!Wǁ9b=! w߻pN_~{?HAY@ 4sF;mMe5seQ+ F-1:7`o[x]}5pi5hhQG[>޸,_foygvmE;Q+ÂC ruDmQ;s㺥Swy V?j ]Trw yQFm*8sFk{:T0 Gkg8LmTN 2{]}C'~Fl0jK^Q+~7UFf Nf\T< ~y 8MysQ&N1ްl4Jc<"DHKX@4 {aqNY83ߏiC_Q(ħ͓qZ+&ΜVp8nPi00x͗j@t60T2e ja~5+Bp'HjFƍ$2q[Xsf4#ɗ7?>]ܛ<\(gDӏǩ.Hs8-d|kJաe2u;`sɔMlt[;:H6;G߾TM)tݼXi:СzU\,&RYzunyH>:4uoBelk}?o ɷ;t'm?VcH<=#ZY'KОP]Y_L_q]w=?xzbVKV4Q,nud[ͺ=\)hl؂-}=y՟DUuʇ ђo_]jV?f|t`M^kk:WYe:gYWΗy+ANsOj\|JtO=K|Hc8|v L?=*¤s*mt}G"!܅MV&׏Q?Ne:2ߡȏ*ɯt2)u*Pv*n=6U<l',tbޖU*80aYʂ o 'k.~cz'7fإJlaAѕJ!ŽWܡ! Ԓ cA3:6y6?}xsKuhv lrkKY]E>UK x1o@op`tt;n#t OFLssMc~Faq&dH8I =@'D=NVswO\#O91LP\^kmdמH^ta axڞ$Z3/;\kXqzZI4;5+ <&Ҟ='U<f4۰ϗm`pE$s+y-F<wΥq#Da3>Km2g ZA ʪK-)Km`[fyIuv=W{dNGU+lAKLcBH{<=yв^u9Msh jԧ78?B,F7 Ͻ*-|9ɸ7VrxUr?YM,{x;0D(T|;* N`C%`ðDJ47#~U`{HG -5:H^T=iu3$iea 2sᩡ&O׸pKg>9' uᠣCx=6h܋=]*7Yo 1fv 00xA0PQ{vi OD?5)+8 )@Rtdoe8 qPO%^azVzԪOw@^#Sw |Bt_xCBWtt3qyCoH]/O(rnt:|~/df]X$]D)tAOzeހz%i ]L}>-aƢvmRPn. x C; vԎ=T*$+v_tRu2Jʆ<Vxi@h&(}ݯ&zq w紪!M^Һ~10ލE+<vw#g_L{^' @Гˠ8; }vTKxƁAcax!CST"NN 1!m |":О"*5?+~9lϺ3|&H/-Q79Ԯ?t m KLg!xݝ tT՝gI2I&d8 0(A b :6Fi0xtF3DHkhc,ht1YHV]dFEMZtlCj|]9|$sZǛhTG<-^Cj hYn_:[!T@6w-Ul RE)`Qwdwߪ%.mSշ[ fUK({o58J da Ζ9փ8 qG'ehbDs #[rz oZ0VԘJ!J H:{><{VCjm +wBfo$I)m!JNPz 1~d ]6M{۬wQs]1RJrc@LXXj3ɻղI뛐:(elcRui"ZcNѱ%>lڋN17t H?%څW<_Z=}mݾy'rĎwf>x9A j @ wρ|^ }.0iAbv̌7ߊbD  0&&xvL~" ^Gs c2LӲCJuWo |$lDsbpo*wm_ObDOigY3nZQ!ٛTyn0 )s Yhce2p7F]wu9(B;A>'@_ ΉQշTaFyu ny~&fH/N1uM Fd4'+I[|[ 탟wtBÜAc"c]5!D r4I tl^{e09}#(l%SPK& %/}!HnX@/դ/* V͵ Ael=?C~ @^ixѬhƧO@2IdID!= iBA?@!i;siMD!}یiDX  W7Pky:|y|~1yz8ea ˆT ^D#߿lh|U @3<a-g脶xGSƠ?@2G }*Q~BYgEP6`嫃'޶!+z.z?hf`M D x^jֽ7;}y\{ȯW k7F7ê? ?ݟz=n H!g0l5>{O4ü ?i{{"R}c(BT? 'H&|߃G!}>Jӽl5V~>믚;0:p"Ư9<qY@m #ZJժ@jŵ2xH?֭0! l >My%;e K^}kCm$o=l& ` 3C 0#6}[j{OW~zf,Xboqok$O>V`엁}g@{@ *-qT<}?_>>w1NX2[|gjIû}䳪HqByhi,7F_6\H#"/$`KǸdGw :߃dևޯu bؽHWפv9^D4ZVO'8z11?lVp3* ' Ɯ' Z'aw9@ݻY&h`Gxsͪzc|燨T+zo [>>`bxќ.Gd2}P'ߤRW+ -;x>ns@32+ӧ=QSd 5u . .E hy }jDatLpzzW*P *g&\yz~]w9 mFn}PTVVU~كj_`RMaVC#otd ==E߄> |gۀeFN>_v7 */ĸj߃* z H!,(#ߌ A-1 np.wٕ`+>^6.X`9(f#xQrc} U g~W^6t-\?$Ԫg~=`=8}Ϙ.~iFFIFnd5ՠ5; A.AEmg}R%{ߡ-ۯ;;`b?P H@hU/﵊o0; #W;'& ~ru/͂WT gvKyr)Nt+째f@4cc@w{+mk^ (Bapw7o ɩg$KѩqVX/]{g(;qÔ Cy切kzRGl \ S ;0=\T*;057V@>MQ~Y@-B̗#qg ^ E p8(RRӌ/ gGQ7S/Qhx^ Poo=Yff?WGsd /x䫀@غ9=&r9B?V?Ǐ3ʆ>x#@iž}j>JJPP+vPrz0[? -S ,lְgQTϘ\vrrvJV` %oP/hWuIݻyrӻG[^Og5Nεd/??*iF}Ph'قֿ>3~8~>Њ A{k\f7);O=,A}\GN;{_a Q7 m293Mo+DWP6gy_RFv'ONF.[z(kd [#b~۶Ho{zVD>\]sF.gwv?Q"wEjǤodž? M~r,o)_S~pT pHEؑBolPFFo3[v`;݇!;EN2T|7Gﰖ}Jow@EvZq(@ݏw!%ԡW|_S#N甜z_S'#d=!]9 W9g)S%g찏_~@bgۇ< j3v}:\6B&߬AՖ!nHWd?̀hW|ZkSz>2 ";X~|~?&, FX%sk}dߌ F,r]dS;;v>J=GK.86-`S|Tm֖S>5oukڧBN:PbcfJS6h5[<V)k]P,,Pd~:;yZV9/}*{5k?g(F#ۦO̧f!O-<7#ۚ-(9_4̯yGĻvJ+Bq3r(#cth*"3U|sP;'~ހR}p2FG_zNr3c .Xd |*OnY/UNH %N h-e}?] >?K5l#XADpqvl{z|/̧_"qZxKS\q-Ik@.iŷ -G+v'oѝ;i~%Fg>6UV[",m{o|_7@'"2U|5 CpkԒ=Ө? x6,iŏ|~w!P2{,e+`$ T~# |&|yŏ຿W";PV73+lmǾߌs`UdT)'TӲ|VUC4eu?cgO?n'Q~x`ߊzP -TW,ķŽMBzÐ[~{85ԧ$} ? Mi)>zjFVWUk̾(;=-zrJQ_v٤+]`c~/MWp~fE'6rTB4n#q98)e+TbPʾ6S a}8޽}ե&glzMdR, 8p^f"7~[ BHQʟE6IO| ,)qhpwWzmJV*z}M|=3HJ,__nx~Kn+22ݻmRt65ʥZmzS"b䬃 z7fFLgJ-3R@4~/A~[Q^FRrS og3k R,եKypmA^jjyu%i7&Lhv>~r\9Gh﫽j^!j̓Sbɜ1鳥c}{IVv{?:/6z)x+rmU+s3ߖ8-Na7?;k2H_0;(TKaw9ԙ'Gn[1+-%_m.85%' F)E>AtA.9c~bԏt]2wFr~Λ ]usFRRғ)3oH=M7.1i39}m~VVq zkM,M˹)e&xMʏmH留 Sɛ3:vRs5U.huy/Yǝdms{"jSWX%O=D18;Kre q4~Rj ۸uߵ;&5'{ 0I9U0//.?u+.ʐЦ̐6Aڒ `eOA]~q.soiZuAyIj\#w~cQndEKkc{< X{EG,՟{i_%gjO_Z2`տ7v?X}ܠabv?|gG|tկD}ybSCf1qw7-ч {_D]~~bS8$VG9 z;mc`ꦿFQᆰ]0w_<~ߺ={Wso~ޛ̏L ϣ~'խ]9?7Tޫ<@qڕ5W6*giiyeD)馹wtM #y33'6)Ye^ʺ_MIı?bYٓz7AFnk/'czjsgN&fλdL^G/vܽhH;0 ,Zy-uPo?˽[/^|Iv^LapyM5 퇆*ꉝ7_|IL ;oo;A7+ ǚ7՗3(AJZf]]mS_pO55֮+ f4M'@F9gko\M[zdGzps]wTxΈ M/Yv7֔VmÆ26l}ڲ5(.\`)۠OI;ҳ3/-Y^Q20V,f_b2feB9} i)LyܸhfΌt=~{Rs׻(MhbEeG^{O@y \Pu@`o]Unq 4]b P\ aѯ=؟[޳tC2-n^ղH7 Ұw>AOq7"%hEs;֞[tCv}?o4eAZݭBT?K x9.ʠ }}ݲdzE7kWVV_uC#N1j7}y;bH)!PYI^ۣC */koBGڃ_;wرֶōKBچ0fwP'쁬dǗ~~U"BeG;v[~ny;W4yD$s@ޟT}|!E^ʜ1q;&OGrswh%)O>;WoX[>.{[yȽK_{9y%R'C@N2ǦrFtf{a78'E++E"sN,Ouv,y8dKj`GO|9$Ȓ}ZQzCC{O] ?ֹc/!׫>}<^,,g )K%'AS/@Y}.vfТ;/4PC{HJ}=gIJ1m=s";('c4}=K7XN:N`4S4Wp ÇydgMy'agQcṣ f?a jZA :Jda@}vԂAx d'vUoOj}LⱽC*zT洎bZ>_3t%f䌦_{Z>`_cmӣWpvoeE#]NakO(k| _X ltzFGWz KU<=ζN'o<S 哼|僜QJX/Z;)GN7 9{|cϣ^; z){޿&m$E>_zR"i')Y'Y]gmtk" ߣ-ϱc Q^x=j.`- 1.H2Iu'4jxi_ډև, b߽|W$=;mlEMX:@<>[uv]e-Ff|\x(Lsས/>]KZP*v,K_;)FR?&}S?8Cb'gq o D&4'dWz+ -_r kҜwNrśl~`=C[=]}DԸgҚ@<7HNuJAU/`:a&}!w|;O髳7}?#ysDutzأU>عc'oo*fʃ/I>gsfQW}쵫"/`:iu0#;*0G^MCbi|~RfJ+E|u>䅶=8P<]oJ߶Kϡès>ٶ϶z6yuI.}=^_ZM"["ʇ :{=9_g[gUa_-d|R'+<_3^YZM^9ZgpD*b/l+Oy5>y=볼>r4ujtj٩rRu027X+=b*!߇90+Z^_9c5j\NA5/R,/p'/TkՀ쥞pC!A}T^A?-hgP럭: zH?"D}P Vi ..b__eW䯏yJQ_{w kjW'KlwԽŗ^^/h$KTO?3 K~Kj+&܈l YoT~5QϽK<}K%>f:`ސR7'yDz|ml- 5 oDK}"?烞l4k="}n/h'h'ؓ1qćcX$lDŽ r LL~wo_=_,d%ˋ/(@1qS@|R @]4,_pv)z~ˇ>ޓY=⎩㳞O~- _1}yf`z޳d^PAr~Pu*:}9yc;"ξNh<'HP)g[>M{7Pu@CdZ;Qpް MjЗʫOh=Mуuխ~T:5ǀRT*j@ÚoN6>}+Jl_ioOQGz|h:ny o|AkY0Nɢk'y_ [|Ҁrsvpy=-E+-_l+?*#?$]/rrg[Q|?M_J :N DPlc-:}o<ҋ0.zR(߫[>ŝ@iWbO[ _J t ;6rtU_ֳNO9yT(W{XaC !uzܟYϢD4@z!R;B^NzH'0ì81] _d"}`8IB& 2iIL* I_ʞJQ 8o{ W%n^9/q>|{y}: cp$JUʕKf.EW4 .@IX;De)}J!ZMAh P߽,{ӤV `O9jBD/4rpO_ "?\ëd֯_|ׇVH;?ty!+ /3NX 9. G)`j@ի<}O70󃫽xg[_ꋵ|U vɷKkW{[?h@y#Za{@ e pQ ?P\AXi;}I5 r/翎׃9բGV P~=YQߺx/tOR1Tk^iwsA3xf~'$UIb^_y&J?یΊrWg"}ג1,uoy28VW5?|CMg g@ZEge?R1|g)߷ =}': Th01X>$^u `A;"ҟaX?~۾ g j?{H׽xOeW?M7 YkBOU>bGX狀|=yۇy>` xWqC;Q~G%(;83K{{ :DT?Au"9;ϊr)2}kAL߾W=Uz?GuDP|W=lwx.?ߣMvu|B[>v@*n0b׷R!ݟ1}XIYR=K | Wq<|G.>',bO&wq״\!_OHS|i?gi$֪y:>\큞|,H|_taxo]^e^Ww?t_=)zc׳tD[?M#Sǃd b`h@[D_w'zKKdF#r <X3 ,zDx:7ѳ?1;`9#~|'U_) #?CY_1{$2~#?YU-T|9 V~r]u{Z-;+&=Ъ/N2`0se"z3 iPR:u`eW~GU}ՕՒn`(?.ٷQc o!Ӡ.\Y vCx'8-L+ * <5Gyg*pU]aW%\pF }wrgY1J>y1gb7ݞpwPIpy}>wu'3s.c;?De?+۰<@G /_gCVs@fFܟB|;E>Z>^YKϐO|>:G~ x7U]vW}zTɀuvӒQ>zSJ41]d_U Pw@ e_99@(fzw6agI+~0G}CpT|~(,3Ź߉[kmx֏/9@wO9?rެG|,aIýV|/m{P>"׃k2;5-cL__qT"o?F/@Y>!%& {p'P4+vy >KA?ndi[f/}ė6=9 @Y o?5S~r/`k~Y(_N<Ěu ([o' Y_QqVZT]vGyN%Ba/}-kV;ϺW{ 4@ID^}5{BN&G=?q/}kd~k^-H55vy'_$v4LZA=>Kc?8 luU~߅xt g~xW{Adk|׀N;N$Z@뀚,M_wx:`1 :?tfb_Zv{o}?>-33buȻ@iKԵ` {ڬw5{3wws޿oy 9* S!;B}keE9aqp\|&/g/_d#??m;BUmr~!eΏvy[<""+m>QQbHKV=ZPd%z}U">x^pί~+u ,~@} , Л+= #_k~Ŀ[\*6Չ{4.CB|@W!a5@סg61bGm1{ul_ ww?A'rl)7/+[ĕٳa>N׀#ĿA_$V$|~ y?$%zͿ=c#?; 'RgiN.=mJ~#".VfXh| x_7ũXkzQI5X?Ǒ[\9@T;J'? vը":ߵ[?<3$O?Gc߸[/<) IEK}??w{ Tjɟ?ubb?~(j"@ +POY N-=̱DBt 옧i-"OxU~h+f4_=w,>}OI(w FbzHH/Z~ߋb?ts.;_īzN҇8rO,7"Z\-ɎY[V;+`b]bX(tעCBe/>0jr7xKwii`yJ 8у]Lʖ>97S] Q)Y?"Ԁ1wgBF%"I@K5E}]@-|@=`-~H#@ۧ1O5@G~)RKQԧcPvĴmUB?Fb! ~gEmp!? @Ԫ-_{oL5ٟ'OV {DEO #N_@SJ}?8#fٟce .r7wWBD~kR/")ATG43@ 8;,M a ÛA3<w"8(m쥖Eȿˮٿ?{ψ~/{}+y2ti}1._eiH}&{_E_ k*hFe}&(ua>M,O}SeW8 ʟwzuW-ཀྵ\5P%s/! Q"-ofrz [;_Ϸ#+?l |WZ#ppCrBQ gN0?8$1|w]?.|B~W~O9u4=c8{2A9z儏YKw |"?z:| k_tm}w; y#Z_?wDv'w cu*Di/{/?m===/ yTK/݂ 2'/v{ƈ}&hi/&ej^POVOV,oAKrnS.hwȏXP_4Asf>rv1F=-J[]᯾ E pJKFJ1{W_=Dڿ"w #?bW|q7B~LFf/&Zz]{c-]Cτs~tJ>pJGvY:>>Z~W\7)UO׀[1<1g^cS8WTE Z~q. '|W=@ȳ |/gΘR-Ы bWfO})}%Ki#ϣQ䯱(Z1i@7 }DӖO'}' yNqI7>u껁>ƀ֏Aͳu@h'YVkѯ$w g}ʿV`83 gzĥ:@kKKy= { =B` !ugZYqF|';uHM]7{5ϟ\ラh<@o7j"~ Py=&.m-MRm2˷waP$~k}^񏿯1ƜőwC_5AJ;e'"و_={,`ெ#)z:D٫}H? xx0zě>XїgZ1ĭ`~a-o&!Z2{%}'3 < 1>W F eDGD#k[X:~y|P[,x=_wWvׇb7/ +K 5Au<T,kWWv-y Հcn.-/Kh>h{6y=IWYj <Ҁv+D/}1@}0n2SXYh-_%ω{d5kZgW[Ϣ;WjY|B/2Wm@͐^U` \1RK`;"0 c?<@x@tG`Xչa' :̟1d_a(x}ǷXYŐ{=M{=$̿Uʁ:@K#Ο1@ 9!lr{E-͊鷟oȿF<`?}Y'MJ.~]~ߩIyxܫ)%o5/ztx-dQLNV]u҇]P"R_ C_sCG{ \AFDXwjKNA/ТQ'XvHYHx0WD֞.'ϲz̞MyWʞG>E'|_Fn7=,Xqg[{2׍z ܢB?!_o 3Rȯyh7SW&ɞ_wmxOԫ0<$D>/[#0dƟLP?m6wNbWP(󧅤o$xW] Z\}D{}(8+C՟"|-e XX 2|Fws9AS y̞o=@1|]/rp%{8 2>WWa^zޯ3@-pSb< 8'\ג]⯚4%`K-|yCߥG&lJ>y-zKRG߲L4w<`ąP FCJ'jЛM!c]&{,fK^n.R7lֶN)+u{}?K￀#0CoCdZ6LfGJk6se {^a[u.TM)"w;W8= yAWxW?M8  h :E~*/u~bZJ:{S1?T)tp5I2%@[tRWNWb".>C>1~ `{ZH/mE?))*RKEm9y9{Б+~YZSkhk;X|t_I5 F]y=яϛT?b6_K=þD~:~JP⥪i,;r-`_QaHP  zֳRf_]<=W~kTN}+t4,gZ4#?K?=3 9)uMf{~~W,*5@ xgɌ|R*JzBn g%}>X]>錿eFMoM66bmmwcW~U\}pTWFu(i" ݺg ;P9\V4@Dרj'3k{MkiAt%Zo=\S kT#SIG(k^MOT_qW $? DZ'3~Wiŧ;n|^1{*oq >9Tpdﮓ@ItB+-X>TO|[U5@)}Z+r=Ч 1<q:poP1vz@Y 5AF$U(NO;&L $P]j@Jz DwK!OYo_7\@ROdxjZ5B7*<8! ʏ3phFֵR'n\ E;M'*zU1i*Dg KgV^َiB ;J wq_YwUYAƝYۥZփ@uAwJ<"a`__^+832~[M^E-끲&tCSK[?}Z9pϼ##c[-Դ^rR(Wu?*`T+ݟg٥kh酞-y^NaԩA{S (G~:wԑ'Y=hoܽs&ʃ^r3~{--끲&hO֥SCwա=?~@<@*F~:q,-`>]9;o!9q=zz0PTRd|%=ЯZ?; Wr7E1SS%=У zE/n܊BX.#Wx%(l@Of"[U 7{ZsE~u`xf/}-=Ч oIn3q#cO_ L-fW;0&*B}~' b:o"zo߆5cwUVx͟*b3cA2Ɗ~e0é`E~2~5AM3%}^{2Kd^28L~WFb@xI#?gÍpW~'34`U#(Fea,n_D W[r s+AI7>?MTZrb`j AE:}TW|`^g$(7U.@~W2 8`ƻ#91ҝT`BHDSi],2)#? zbb- y yy!V|ֻo^4 ߺFfxA>/ 2 Y%@곏"ryM3?s-#DN+{B!"cf_HZn/8;Lj_A}!5??b3~)}Gv,kd-4 G~+PV?sfRn0SG4@Gp/盛{Y [B%Ljӻ|K KW 80'L$< -[Pأ0\fS#\$8f:)~|xGE_Ea,ؚ@Ξ8GQ@_U(*~hWJ驃gx^?5ndC"Ёcf P@ol(뻨oשe5ۺE|O \#-UW@M*e@we5\|ѝ-G ׇW o}{*_ui (|@-gnq=|do6j( p:v g{=X=?kjb,t(yN q}l|M^\:4@TΪ pOo91QX#8/aϪh̜vϚ<ёdlBتn9O'e\8wq啥&:f''qjh ̞t>5Ƨy1)I "sŸDNKU1}Ĝ̌x% ŏ{rZk8ƽEyelVv`#pÅhk\|RJ5o:y8ρ9S\zh=g)c+_yfOjy͏KLJsOo&Ϗ/VMua|\LThS3<(klBRJVA=?~\_9VΞfr0GL9|f_ZLOper@vĤ!dw.HONF4`kKJ˺OWYgMsNb-.~NW}=e0gڽisSM;t糦?jfaԄxAB1}sS2>,WTʕr$N}scɲYSSd *^Ȩ8{j&x}EuIA~ pUQ/Z5?=oq}lI9|>7\͞UgRcfLqIEPf)?gI㷛=c8u缒 Yh25.>%kzp\ЦgNǁ`r'e^&GgNo2\j'Ξ6g0~ҙƥ%EN8ά(?>5hYO561eJ>hδ1\*tq&ȨfQ}_pD[qhkbJFxz>r҅ S8h R~Oͪ ͻKgMn1& @:~s5w,5yBjb!&\_|JCfL1\\1i֙=/ԝs'e'@']m|ݺxryo(?9xRy>Wf1{F>w.[8!7oPC_57vH=Q񩓌c ع|n>&(0ƗO-]407o:.KHY0qҹYɱQ>.D3{?Zrݜ)~H-mְtxwM 'e} b5^;'x~i٩v~_1|}w㝕WͰY}x5!ހyWNa2g??i(.h[_ƌΆg92buA`˚a4lբ=H.6lxW.YwQ.2Ա~ټ ԕsoKfC8׬XXVnԞ?(g3 ˜IV$d2{w͂y\)c6 ?pMWMU/a0]Q煮;9+5&J= 5||ELsOdD9?8~ť9v[ ~`mZ^Bϥ~Q f?jPo+ 3bT>1)?7Q3eDkbq5f?hQ1odJeKa/_SYϾ ;n=%;٦![ʦ::Rf?d_9p\*PQV~`Mָ͌b(~3~Ġ?RWU6i=&;^0:j_qu'X! K-gD,y+wV~㬂DlZ*0#V~exQ,ѱ'~`kWx4:Q8ُ#/X5jTTlˆ~pl}}lI#pC:~\`Q`˫ ۫n_0uRJ|42c.cCX25I?6G ѕKʮN]e9 V%?1)oh/>zO+,įM4B4aѵǧp򏵵`!gry bα;n)<616t{F'ogYiavR89 ?cbZ@cLrُU[sõ&g$Zf8(G첿|t=*WA@eCpqmMyqvZ\?f*/[ʜ8~oH|o;il_THe{!56B:>[pe~j\ Rr\]x3#>tDKkm0<|We%mau[Ǐic`WDF'@!~3s"'V@!<-w/̌ix l~hEU4::z hM)/?z|wʚYp1)#=zhyATk+uv7~`uEcc_jo=rkE8~V[ُ]?m\zlȘsQhC*gF["c//8No^w 33G~@߶l{qIXҽf?NߞX ǧPǓ ̝iMH5+M+/`4Z^>en׹`޺~a3%%8=ϬrFAj5~)upKv/uQIQZb_55~džŗwaf?N"I癇VT̀O ?\; hwXPd7qB>>t|ʥr^mK Y2'ٳ<׿#cƾdz1 c.Ћ;7=? 8]iK0B<>[+Cf?Po;?ON<(g[|JV5r4O߯o1.)c`_3._s&ڣׄ~P_$G8s!~CmLkG9OL!"/c. /_,1 Y~ЍޝqI80 ~Ѝvn]rF^J LO1o}qttl|'=r5d:gO0B5: ο[0B5zv=-וfآc6B4N:9zy pIz~ЌҸp3n[ɗP|eU+\3{l 9S~Pn]G.@._f?[(y+KDζo6 Sp ,mOW]19;n Y_ccGJȹ O _lm4/=9Z 9W"}k}/@w_cn016gk)c?SIoA|y[-DHϯs,5A4~'4,GXd |t͚tfV|ic|eOۃ__V863xvb _|vw+hU< ֖=e~ZDZמۢC[5|Oj߿ROkoZwu/g:fc<>XsҜL{ 701ʑt:Zuu3H=IL8뻞~ʧNNM{$WDcKכsuU%K=. jK˞`\x͗v?1qHus,7ݻ:6WɄd~> %V6hyi[[㲪YYxy/#c3'O]x'7d\|7=qwk4:})@[Jn[OF_xycn,<{5Z(K-=g7`|'Ι"}Q0k/F]qb"̟NL)ǂ.ս[XyKӞ>kp\t^c.fRv:WG̟ꠉ3.F￰+˧fgj%R WY2{}ϳ޷|n~vzbl֘ F/W?_pvqvFhS/ 2ʖ>p5i}=74/[4pRzo4RL*;\Lon_Z>kҘtGZ $rNpx o^ۼt 鉶(KʏT`tTLbw|f4şe 3c~z~r&f3T^o^4hq} 4KyQwwlZ$.\ҥBp;3 | $^ne_{aUuF}yߘ=UƸdKge%55{ϣ׻oqnqq`?w{:2{};V,Z0gJ1q_<`J5>nq{`w>feœǧe܂+]7Jā~e_'l|ڤ4{1q@6n҅5[dq:\ryMSRl1:^%*ƞ66jقEw7ٓG_y7E J&OHI2,^@dlbX.WͿ3y[ _bkf9gc"w} Y9%Z]S?Χ{ ͜HOVcS2OQv x;nZ|w͢ 卍c0j%jL**[A9smO<⮛+NO+`N?@jVsU-^g__iEWM/JMKv8'7}N-w޷ſvkwn;-/7=947>| Dڒ38#׽|S?辣U6Rlڭ}+ 'e8lMu H^~n6wsfKIq)!~ $f_dي-w Sqzko?ҼbYs &q~/| 3fd-15sl~ጫ\7,Uk6>vp/l5\(_Zç562֑?uUo <Ϙ#4k:i믻jfqclJ- Uߤ 19 ZPcO|;7? *6)D%S3O/{m^ղqO7<^ϫ/ݳc{u]˪︹jܒgL{71Ĕ g-\y<{Of }W}ag3qmKC7.(]8yBVfJb|5D'B,v?ez5޸d]+On9 ?޻;omVk{ْ^S6}j>{{7wVE\0v0ΑWT ֖9.'Y8dnUnuٝ Zf ckeT]u킹gNLKNĀ1FA K 9O0f|ΤE3Jʮ]Eŷܶ}}72{Oe,\xye%3 &dIzÛ=d蘸ĤlI¢3gϝW-^,h ϝ]2}jsDGNVFZb9ԀJice;r&L~ҹW]=o޼k$jnٜ+8&8ǏHONJX#=F!%`ONIK3.'w`JaaT(*,R8!ǧd{G>&N~p<"3..'$SRRҙ#--55M E`NS(70:222 \zd^B9s =2rh ߂58́[,~^7\|({ ([ x!O!^C.O"~H~Qd OsΡg tD}0Dw?6;r~TڤAl7>O'%X߽޹w'D'Q~LR3~uPs>0$oRzA.@. e[% x x1H@!Cp),uPTp1tI]8tqbA8v`tutp!kz^MZ?}{wK+>rP3̨46zO,`<Yf;=BiEƷS=zz23AO-o~zC  ·J`fCamV>wF g'?%x_XbEl? q<L!X+H;m}ObG:l~|v{}}SL&e^AijX_+ѹ2H!_1?z]̟u4Jat7JkL"`|=`/ Xy gD[ ˼\E ^E4]nX~{c+"Q Ԝ7QZ3d*j@yd8bizQVf4uZ3j s^d9 x A|d"cni5wTį?selkcZ3n-Zָ*0 0i CW 3Ce^yZe_+??wiY!w͟?i{޿ҿR^&ě x 0 `nV=]:@w`"q 8VeΏcS"+|u6kh++z!Aiz *L?@"-~X( ư [_o;4ZkXTcjqn}Hs^}|ϼ??=ϿB˿=_x_OןQOrv" xc`AX"aÄ&nxӁd{Av\Cn }0 H+ zҏV܏_B-C0ybҏl?#OCC1~qAbOY%R[?'e7'%7>?`@0xӱ 09=7^iR$!?(3h#0_ߟU]Wn/>_|>徟|>h'mbA xc`AX"aÄ&nxӁd{Av\Cn }0 H+ zҏV܏-Έu? af?i?.I׏{O~y:$_b!_~RV~SZP^Q^RR@7 x E@.ÇPJ-D^9SW# 6l:+uثxN盗3}.|:M)ul{}Gy~zlK}ZLkYq,>wbßU AGMI{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' wp/xF $)ƯY1ʈQL3( ƪ:  xՖK =F5\<ކNi `X8hsٺSqG2z8J뼴8 Xmz)9bcc9<rM[H&xHUJO~Ώ#~d-9v>b-֮?Dm  x E{.YƋ J S(EM@yDTtP9*a-. +>9f6+C:v8p͇4|/2\O/G2>K4'?ɢC,3SRwDz0vo ~|M  xc`@  l$nu0ج@4p4|7(@혮xrQ̦p C4 S/1`RGs.K 2r>cEj(4b>֠h>C|O/d4-V`$)|e>wZOhݾC[ڵ Shunting-yardH<&(%' &(%' &(%' &(%' &H&File&New F2Pass&word&Pause Ctrl+PPla&yers Ctrl+Y&Quit Alt+F4&OptionsPlay &samples Ctrl+SPlay &musics Ctrl+M&Hide the menu F8&Full Screen Alt+Enter&Help&Contents F1&About...  P Y S Mpqsw Error message  kclist.mfxList%Y kcedit.mfxEdit Box%YStringTokenizer.mfxString tokenizer%Y AsciiChar.mfxASCII Character Object%YMain-{׻kϻ[ǻwwwcccSSSCCC333oSKC;{3k+Ww#G_7K'3 kWCw;k3_+S#C7g+K 3ssccSSGG;;33s++_##K7#ۧϏ{gWG7{+osccW WGK;;//ssKK##kS;#ۻÓoG#gc[WO;/s_K ;CϳÛscSwGg7W+K#ߧϏwwggSWCG3;w'/g#[K ; +ӃkgSK73# o_SC7'{cK7'o _##'#'#'#'##skkSS??ۧןϓLJsgߏ[ӃSsKgCW;K3?+{3#o+_OC3 '{k_OC3' w?? Console   Movement #0List kclist.mfx%Y$$x1Lucida Console(((  Console 2   Movement #0List kclist.mfx%Y$$1Lucida Console(((!Edit Box   Movement #0Edit Box kcedit.mfx%Y  @)1Lucida Console Output   Movement #0List kclist.mfx%Y$$(PTahoma Operator Stack   Movement #0List kclist.mfx%Y$$(PTahoma  Operator name   Movement #0List kclist.mfx%Y  (PTahomaLORLANDBORBXORBANDEQUALDIFFERENTLOWERGREATERLOWEREQLOWEREQGREATEREQGREATEREQADDSUBMULDIVMODUMINUS Scanner variables4Scanned character index!Scanned lookahead character index Unary minus Lexeme start Source stringScanned characterScanned lookahead characterToken categoryLexemeAlterable String FisAlpha5ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_ isDigitDot 0123456789.isDigit 0123456789 isDelimeter &|<>=+/*%^! Movement #122 Function name   Movement #0List kclist.mfx%Y(PTahomaMINIMUMMAXIMUMSINABSOLUTEFACTORIALPOWERSQUAREROOT" String tokenizer  Movement #0String tokenizerStringTokenizer.mfx%Y Buffer variables4 Has letters Has digits Has symbolsBufferPredetermined token categoryFinal token category Movement #122 Operator symbol   Movement #0List kclist.mfx%Y~~(PTahoma||&&|^&=<><><==<>==>+-*/%!- Function symbol   Movement #0List kclist.mfx%Y(PTahoma minmaxabsfactorialpowsqrtexploglog10sincostan  Error console   Movement #0List kclist.mfx%Y$$P1Lucida Console(((Error variables4 Error codeMessage Movement #1 Throw errorKLBEDAEH1STVE: 3%"Segoe UIRegular "%"Segoe UIRegular8(-Throw error"$  &Error listI5  %"Segoe UIRegular 8(-Throw error.  2 N1 =6-,Undetermined error"#  %"Segoe UIRegular( 8(-Throw error.  2 B1 =*- Syntax error"#  %"Segoe UIRegular  8(-Throw error.  2 J1 =2-(Invalid operator"#   %"Segoe UIRegularR  8(-Throw error$  D1 =,-"Unknown error    %"Segoe UIRegular 8(-Throw error 8J8 V-8Error found on position   ,  "  ", 2 SMER)This loop is started once if an error is found in user's input string. Prior to staring the loop we must determine the error code in the "Error code" variable, which is then interpreted in this behaviour and given a proper user-friendly error message. This message can be then displayed anywhere.This flag is required to display the "Unknown error" message if the error code is not interpreted in this group. If any message is assigned, the flag turns on, which prevents the "Unknown error" from showing.JError code hasn't been determined in the main code before starting a loop.-Something unknown is found, wrong characters.!Operator isn't found in the list.)Message is not interpreted in this group.&Display the error and reset it's code.SJBOError variablesSpriteOIC0 Error console0TSLOIC2GMIC([ !||;|!|P[|!|P[P[|!|;|!|;|!|A;|!|;|!|8+;|!|8+8+;|!|8+;|!|;|!|;|!||!||!|P[|!||!||!|;ﻥ|!|;|!|;|!|;|!|;|!|;|!|;|!||!|P[P[|!|P[|!|!!!Scanner variablesSpriteOIC2GMIC9n ``````````4ޅ4``4ނ4ށށ ށށށށ ށށށށށށނށށށރ ށށށނށށށށށށށށށށ ރށށށ ރށށށށށށށށށ ށށށށ ށށށ4ނ4``4ދ4``````````SPRGError liste8e7wVsīV!Nf<FǦl>Nc8b<eQf>ܽawvvivuuxe!DNE22 Operator precedence   Movement #0List kclist.mfx%Y(PTahoma102030405060607070707070708080909090100 Operator associavity   Movement #0List kclist.mfx%Y(PTahomaleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftleftright Operator arguments   Movement #0List kclist.mfx%Ynn(PTahoma2222222222222222221 Function arguments   Movement #0List kclist.mfx%Y>>(PTahoma2211121 Lexemal token list   Movement #0List kclist.mfx%YTT(PTahomaNUMBERVARIABLEFUNCTION$ASCII Character Object  Movement #0ASCII Character Object AsciiChar.mfx%Yp p pppppppp ppp pppppp p$ H l``TL<x<< < < xEvtsrl %"Segoe UIRegular! N,-"Initiate scan <,-"Initiate scan,1  =-!P ,  2  U U UB V4-*Start of scanning V-R0-&Scan characters  &Get tokenϵ &Global loops4  %"Segoe UI RegularJ L<-2Get scanned character\1  =D-   6 `P-FGet scanned lookahead character\1  =D-      %"Segoe UIRegularL  6&-Get lexemep1  =X-       %"Segoe UIRegular  D4-*Allow unary minus,  2      %"Segoe UI$Regular @0-&Scan characters '  %"Segoe UIRegular @0-&Scan characters.  2  @0-&Scan characters,  2  %"Segoe UIRegular  %"Segoe UIRegular @0-&Scan characters.  2 V4-*Allow unary minus ^<-2Get scanned character   D%"Segoe UI RegularZ @0-&Scan characters '>-While  &Skip whitespaces2`  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,-WhileJ  $$Q  ,  2 ^<-2Get scanned character , ,-WhileJ  $$Q  J  $$Q  J  $$Q  J  $$Q  .  2 *-While '  &Token check  %"Segoe UI Regular &End @0-&Scan characters8  D"-End scan >0-&Scan characters    ! %"Segoe UIRegular "!&Minusheses (2)( #"@0-&Scan characters:   -.  2 \1  =D- T E _ T - V4-*Allow unary minus ,  2 ^<-2Get scanned character F$-End token  $#@0-&Scan characters:   -.  2 ^1  =F- T M _  !- ,  2 ,  2 ^<-2Get scanned character F$-End token  %$  &%%"Segoe UIRegular '&& Parentheses ('@0-&Scan characters:   (J1  =2-(OPEN_PARENTHESISV4-*Allow unary minus ,  2 ^<-2Get scanned character F$-End token Z )(@0-&Scan characters:   )N1  =6-,CLOSED_PARENTHESIS,  2 ^<-2Get scanned character F$-End token  *)  +*%"Segoe UIRegular ,+& Operatorsq^ -,@0-&Scan charactersh D5    ,  2 ^<-2Get scanned character  ' H&-If level 1  .-& If level 15d /.6&-If level 1 ' >-While  0/& While scanned character is found in isDelimetersDigit (2) 10,-Whileh D5    ,  2 ^<-2Get scanned character  21,-Whileh D5    *-While '  32t 436&-If level 1H&-Get lexeme N 546&-If level 1Z 6 _    ^1  =F- T  _   V4-*Allow unary minus F$-End token  '  656&-If level 1Z 6 _    ,  2 J(-Throw error F$-End token  '  76 87  98%"Segoe UIRegular :9&NumbersV  ;:%"Segoe UIRegular  <;%"Segoe UIRegular( =<@0-&Scan charactersh D5    61  =-NUMBER,  2 ^<-2Get scanned character  'H&-If level 1  >=&If level 15  ?>%"Segoe UIRegulard @?6&-If level 1 '>-While  A@&While scanned character is found in isDigitDot( BA,-Whileh D5    ,  2 ^<-2Get scanned character  CB,-Whileh D5    *-While ' DCZ ED6&-If level 1 'H&-If level 2  FE&If level 25  GF%"Segoe UIRegular  HG%"Segoe UIRegular IH6&-If level 2F "4  E,  2 ^<-2Get scanned character  'H&-If level 3  JI6&-If level 2F "4  EF$-End token  ' ' KJ&If level 35  LK%"Segoe UIRegular ML6&-If level 3h D5 +- d  ,  2 ^<-2Get scanned character   NM%"Segoe UIRegulard ON6&-If level 3 '>-While  PO&While scanned character is found in isDigitot (2)0 QP,-Whileh D5    ,  2 ^<-2Get scanned character  RQ,-Whileh D5    *-While ' SR( TS6&-If level 3F$-End token  ' ' ' UT VU WV XW  YX%"Segoe UIRegular ZY&Variables or functions0 ^ [Z@0-&Scan charactersh D5    ,  2 ^<-2Get scanned character  'H&-If level 1  \[&If level 15d ]\6&-If level 1 '>-While  ^]&While scanned character is found in isAlpha or isDigitB%0 _^,-Whileh D5    ,-Whileh D5    ,  2 ^<-2Get scanned character  `_,-Whileh D5    h D5    *-While ' a`  "ba%"Segoe UIRegular cb6&-If level 1.  2 rP-FGet scanned lookahead character d dc6&-If level 1 ' >-While  ed& Skip whitespaces2 fe,-While:   ,  2 rP-FGet scanned lookahead character H gf,-While:   *-While '  hgH ih6&-If level 1:   (:1  ="-FUNCTIONH ji6&-If level 1:   (:1  ="-VARIABLE\ kj6&-If level 1F$-End token  ' lk ml  nm%"Segoe UIRegular on&UnknownBn po@0-&Scan characters,  2 J(-Throw error ,  2 ^<-2Get scanned character D"-End scan  qp rq sr ts&End tokenص  ut%"Segoe UIRegular. vu4$-End tokenL*- Output token D"-End scan  wv&Output token[4  "xw%"Segoe UIRegular yx:*- Output tokenZ 6 _    H&-Get lexeme V VH-    ;: zy:*- Output tokenZ 6 _    $ V-   {z%"Segoe UI Regular |{:*- Output token*1  =- }|  "~}%"Segoe UI Regular ~2"-End scan ' Remsif scanned character is found in isDigit: set token type to NUMBER add 1 to scanned character and while scanned character is found in isDigitDot: add 1 to scanned character loop back and if scanned character is "e": add 1 to scanned character and if scanned character is "+" or "-": add 1 to scanned character and while scanned character is found in isDigit: add 1 to scanned character loop back end token(If scanned character is found in isDigit.While scanned character is found in isDigitDotIf scanned character is "e""If scanned character is "+" or "-"+While scanned character is found in isDigit ;Check for end of expression. If found - stop the main loop.Check for minus.Check for parentheses.!Check for operators (delimeters).Check for a value.9Check for scientific notation like "2.3e-4" or "1.23e50".!Check for variables or functions.Check if this is a variable or a function. A function has a parentesis '(' open after the name. Here a similar loop to the one on the beginning of a scan is started.^Here something unknown is found or there are wrong characters, which result in a syntax error.Get the first character.`Inspired by: http://www.speqmath.com/tutorials/expression_parser_cpp/html/parser/parser.cpp.html<Unary minus can occur at the beginning of the source string.Every loop the scanner is guaranteed to start on the beginning of a new token, so we have to point there to then evaluate the whole lexeme.Determine a token and store it.UCheck if a token needs a lexeme. Send a token and optionally a lexeme to the output. Reset a token category.$1Activate all groups at the beginning of the loop. >Find a character on the current position in the source string.<Cut a string from the source string and store it in a value.LValue is set to 1 if a token which allows unary minus after itself is found. If a token is already found - prevent another one to be found in the same loop. For this deactivate all the token checks, which are then activated at the beginning of every loop. ;Skip over whitespaces (spaces and tabs). Here an infinite "while" loop is started. If it stumbles on a whitespace, it moves it's position by 1 and scans once more. But if everything else but a whitespace is found, then the loop stops and the code continues to run. Space=32, Tab=9, Carriage return=13, New line=10EvOb Console0TSL Console 20TSL!Edit Box00zE Output0TSL Operator Stack0TSL Operator name0TSL Scanner variablesSprite  Function name0TSL "String tokenizerENON Buffer variablesSprite  Operator symbol0TSL Function symbol0TSL Error console0TSL Error variablesSprite Operator precedence0TSL Operator associavity0TSL  Operator arguments0TSL Function arguments0TSL Lexemal token list0TSL$ASCII Character ObjectICSAEvEd"!    "#$   ConsolesFunction listsOperator listsEvTsEvLsEvCs!DNE!#% ( &'<* +,.0 8 ACHKajCb <@DHT`\dh lv2 #default#itDz10.1.0^1.0com.clickteam.runtimeȧ 1.0 bcom.yourcompany.yourapplicationt Shunting-yard1.0.0.01.0.0.0 , resourcessrc 6 #default#i  Bcom.yourcompany.yourapplication>Touch the screen to continue.