MZ@ !L!This program cannot be run in DOS mode. $ԅ9WWWVWWWWWWRichWPEL;߂M  6> `XP d0X@h@.textJ h.rdata@H.data@INITF   .rsrcX0@B.relocN@@BUESV5tW3SSS@TSDPXt hjy'eYESSSS4PXt hByeYESSSS$PiXt h ydYESSSSPHX_^[t hxdY3]̋UE SVuW=`3@3SFFF FSFP^TdžSSF$PSSF4PSSFDPׁƨVp_^[]̋UVuW\Wyt 6W dYY{Wt 6WcYY_^]̋UVWWutvhycYYNT"/Wt hycYjjDVX^]̋UVu\Vt6hzicYY^]̋UVVutvh`z=cYYNT"Vt h4zcYjjVX^]̋UVmVutv hzbYYN T"EVt hzbYjj$VX^]̋UVVutvh {bYYNT"Ut hzgbYjj4VX^]̋UESVp(WUt h|-bYV] {`vtdtOHHt4HtHuwxUh|aUh{JUh{3Ut}h{p#Utmh{`tMt8Ht%tUtKh{>Tt;h{.Tt+h{Tthz{Tt hZ{=aYFt=t)HHtHt HuG@ @@tSSue8tDSuV@ރt)tHtt@$ŋ@뾋@뷋@밋@ 멿2ҋˉ{PVE_^[]̋UQeSVW}jVSMuJjVPEMuSPjj@\~WMuSPuPEE_^[̋UVuPQ$PQ$\~PQ$^]̋UVulPQPQ VuPQ uƆ3^]̋UVu Vu PQPQlPQ^]̋U EVu Wx(EEE􍇔E9tSSB;tUX]Q ME9uU]ZPQ HMU;u[F%PL}tf2ҋF PW=_^̋U EVu Wx(EEE􍇜E9tSSB;tUX]Q ME9uU]ZPQ HMU;u[F%PL}tf2ҋF PW_^̋UQQW} EEE9?t~S]V7xF@;Eu)EN!3FFHKƉHCMƍUHE9?u^[MUQO8HGEM;u_̋UQQE @`VWxEEEE PDu uEPPW$u EPPWu EPPWu L'EUPa2A PVHME;u_^̋U Ot h|s\YESEEVEPD]96t,W>O3҉pHMǍUHE96u_uL=O@t hN|\YEȋEUPaa2PSE9EuEO^[t h0|[Y̋U EVEEWEPD}9t%S01Nu]pE9u[BUu1Q M9u㍇BUu1Q M9uuL'EUPa2A PWME;u_^̋UE jjXPX]̋UE jjHPX]̰ ̰̋UEVtp(ts~~mSM]@t Sh|EZYYW3v"M@tE Ph|!ZYYG;rM_@t h|ZYjSu PQ[3^] ̋USVuW3WWWW0SFTtƠwE@9~t(9~t#;tWWPX Mt h|YY MuWS@_^[]̋UEt@(tM VIV]̋UE3;t@(QQQQ0Pt]̋UEt@(j0P@3]̋USVuWh3SVXE u$E VE;uE;uPE;uE ;uhlVPVWPVPhqSW X VpwtwPT=`@@S@SHPSSXPSSdP׋lVdžh`yp<PlVp@(PlPP3ɍASXXQ PS0P<VERhPwzSPTwUwVwSSS~SwV j@wxwwwYXX IuWX{SPVW~SPzVPwЃ$džVP8@t hwMYSL_^[̋UEM Wx(2APW_]̋UEVp(W@@t h MY~TtM y9k@t hbLY3R@@t hPLYVM !y2PVW_^]̋U@t hLYSVuW3WWWW0StƜzEN;t9~t9>tX~>~ MuWS@?_^[t h#LY]̋U?t h LYSVuW3WWWW0StƠzEE ;Fu;tX~~> MuWS@?_^[t hKY]̋UESVWx(>@t h\kKY>t h,TKYE p`vW,vWٮvW脳vWP`u VWP4f2ҋPWW_^3[]̋UESVWx(S>@t h€JY38_Tt8>t hJYu $u F`9Xu#>@t hnJY#^Fp8t]8uUEPDPN8HFXQPAv`NuLPQ,^%^2ҋPW_^[]̋UESVWx(O=@t hIY38_Tt4=t hIYu $u F`9Xu# =@t hҀIY#^Fp8<t]8=uUEPDPN8HFXQPAv`NuLPQ,^%^2ҋPW_^[]̋UE@(SWEI<t h HY} G`@W$. <hw;phڂ`;YhI;Bh2;+h~;h`;h@i;hR;hnt\ tGHHt3tHui#;h ;h΁|:tyhl:tih\:tYhtLt9HHt%t:t;h`.:t+hB:th:t hGY2ҋGPu_[],-,)-,@-W-n-̋U]M̋UE H`QMpP txH83H]̋UVuMu pt;v&SW+Px7QStM_[t;puatA31} t PlƸV^]̋UE H`QM|P H83H]2̋USVuW3WWWW0StƠzE;t WWPX MuWS@_^[]̋Uz8tuh<DYYVa8utt!7t hX&DYWW6X M uWS@_^[]̋USVWg7t hʃCYE u?7t7hCYY3WWWW0St~E @9>t!7t h}CYWW6X M uWS@_^[]̋UEQMQhjP\M |U!]̋U}t]%`3]̋U Sh"EPpEPjEl؅,6tuhBYYcVWjx^EPCs uESjPuhE| 9s uCVPusB E}u jY5_^t hԃ,BYSdEE[ ̋Ujxu jh"uh@x]̋U ShEPpE4PjEl؅"5tuhVAYYVWEPuESjPuhE|"{ uCjPuxA E}u jY4_^t h:1AYSdEE[ ̋Uju jhuh@x]̋USVhtjP@MU jXj ^Yj]ZjEEEEEEĉE؉E]YtPu]ZMU h@Dž|քxEuE]uEДMԉU܉u|^[ ̋U}t`S] V5xWjSjhքu@WjCPjhuWjCPjhuWj SjhuW_^E[E]̋USVhtjP?MU jXj ^jjEEEEEEčYtPu]ZMUh@Dž|"xE]uEMUu|^[ ̋U}tMS] V5xWjSjh"u@WjCPjhuWjSjhuW_^E[E]̋UpSVjpEjP>MU jXj ^jjEEEEĉE؉EYEPu]ZMUh@EbuEL]uE8MԉU܉u|^[ ̋U}tLS] V5xWjSjhbu@WjCPjhLuWjSjh8uW_^[]̋UTjTEjP=EM jEXjjEEčEPuEvh@ME | ̋Uju jhvuh@x]̋UTjTEjP=EM jEXjjEEčEPuEh@ME | ̋Uju jhuh@x]̋U Sh܅EPpE8PjEl؅/tuhT<YYVWEPuESjPuhE|"{ uCj Pu4< E}u jYv/_^t h;YSdEE[ ̋Uj u jh܅uh@x]̋U Sh8EPpEPjEl؅.tuh V;YYVWEPuESjPuhE|%9C uPCPu3; E}u j:Yu._^t h:YSdEE[ ̋Uhu jh8uh@x]̋U}rkE 8CucVu|:HuSP@EUfMjfFPjdPX|tyIA3B ^] ̋UUVW33kȃ| u|$uFf|Gf|2_^]̋UEPxR|TVXZ\^]̋UEU U$U(U4U8U,USVW0U3ɍ@UjZfX`f]ۉY]ۉF(Juكf|_^[]̋UQUVEUfEj?P^fAANu3f;^̋USVW33ۉ]}}wE썆dE EEC]E+t h 8Y8tz+shֆ7YcdPTGPTh:jCV蠯E;u,+h`+Ht-t*@thw7Y|dPT|@u"tuxu VuO|MEig|jMQESEPSSSjEPjP8_ASQƆVVmUPU!*@t hj6Y9]tu聯)t hJv6YS_@L_^[̋U SVh"EPpuƐVjl؅)t VhX6YYcWjx_EPVSjEPuC{ hE| 9{ uCWPu5 E}u jY')_t h,5YSdE^[ ̋Ujxujh"hjx]̋U SVhEPpu4Vjl؅(t Vh5YYcWj_EPVSjEPuC{ hE| 9{ uCWPu4 E}u jY&(_t h4YSdE^[ ̋Ujujhhjx]̋USVhtjPD4M U jXj ^Y]jZjEEE]EYEEĉE؉EtP]ZMUh jDž|քxEuE]uEДMԉU܉u|^[̋US]V5xWjSjhքWjjCPjhWjjCPjhWjj SjhWj_^[]̋USVhtjP3M U jXj ^jjEEYEEEEčtP]ZMUhjDž|"xE]uEMUu|^[̋US]V5xWjSjh"WjjCPjhWjjSjhWj_^[]̋UpSVjpEjP'2M U jXj ^jjEEYEEĉE؉EEP]ZMUhjEbuEL]uE8MԉU܉u|^[̋US]V5xWjSjhbWjjCPjhLWjjSjh8Wj_^[]̋UTjTEjP?1E M jEXjjEEčEPhjEvME |̋Ujujhvhjx]̋UTjTEjP0E M jEXjjEEčEPhjEME |̋Ujujhhjx]̋U SVh܅EPpu8Vjl؅#t VhF/YYcWj _EPVSjEPuC{ hE| 9{ uCWPu/ E}u jY#_t h/YSdE^[ ̋Uj ujh܅hjx]̋U SVh8EPpuVjl؅}"t Vh.YYcWEPVSjEPuC{ hE| 9{ uCWPu. E}u j:Y "_t h~.YSdE^[ ̋Uhujh8hjx]̋UTjTEjP1.EM jEXjjEEčEPuEވh@ME | ̋U}tju jhވuh@xEE]̋UTjTEjP-E M jEXjjEEčEPhjEވME |̋Ujujhވhjx]̋UTjTEjP!-EM jEXjjEEčEPuEh@ME | ̋U}tju jhuh@xEE]̋UTjTEjP,E M jEXjjEEčEPhjEME |̋Ujujhhjx]̋UTjTEjP,EM jEXjjEEčEPuEh@ME | ̋U}tju jhuh@xEE]̋UTjTEjP+E M jEXjjEEčEPhjEME |̋Ujujhhjx]̋UTjTEjP+EM jEXjjEEčEPuEFh@ME | ̋U}tju jhFuh@xEE]̋UTjTEjPs*E M jEXjjEEčEPhjEFME |̋UjujhFhjx]̋UTjTEjP)EM jEXjjEEčEPuEfh@ME | ̋U}tju jhfuh@xEE]̋UTjTEjPc)E M jEXjjEEčEPhjEfME |̋Ujujhfhjx]̋USVh@jP(MU YhZpYZY Z jXYZj ^YZYjPXltjLZ@TPuDžHމDDžd؉`Dž҉|Dž̉DžDžDžDž h@|^[ ̋USVhjP'M UYZY,Z4Y H Z PjXYdZlj ^Y]Z]Yj08LThpEEEEEEj]ZPDžމDž ؉Dž(҉$DžD̉@Dž`\Dž|xE]uEMUuhj|^[̋US]V5xWjSjhމWjjCPjh؉WjjCPjh҉WjjC Pjh̉WjjCPjhWjjCPjhWjjCPjhWjjSjhWj_^[]̋USVWhEPpE=lD0PjE׋'tuhr$YYfhEPFF uEVjPuӉE|8~ M}t udjjv ؋FPSQ$ "tuh6$YYtuh#YY}t }#VdPtuh#YYE}+*t Whh#YYujlytuh4r#YYfEPF~ uEVjPuӅ5tv h,#YY}t udv jlv ؋FPS# mtPh"YYTtsh"YY<tsh"YY$ts hh"YY tsh>"YYts$hm"YY39~ vU]j3ҋYut h >"YtEPh "YYEG;~ r]t h!YVd]_^[ ̋UM AHPQjhuh@x]̋UTjTEjP!EM jEXjjEEčEPuEŒh@ME | ̋U}tju jhŒuh@xEE]̋UTjTEjP!E M jEXjjEEčEPhjEŒME |̋UjujhŒhjx]̋UTjTEjP EM jEXjjEEčEPuEh@ME | ̋Uju jhuh@x]̋UTjTEjP E M jEXjjEEčEPhjEME |̋UjEPjhhjx]̋UTjTEjPEM jEXjjEEčEPuE&h@ME | ̋Uju jh&uh@x]̋UTjTEjP E M jEXjjEEčEPhjE&ME |̋UjEPjh&hjx]̋UTjTEjPE M jEXjjEEčEPhjE\ME |̋UTjTEjP1E M jEXjjEEčEPhjEME |̋UTjTEjPE M jEXjjEEčEPhjEME |̋UTjTEjP}E M jEXjjEEčEPhjEʍME |̋USVuWVPt hYVlV蘹VVV:PQ lPQ PQ VP8VPdpwtPӃ'?tƈV7Ӄ'_^[t hZY]̋U3ʼnES3W}]]]]]]]]]]]t h@Y;tAVw(VFT j EPWhV8VV謄VP\V4^2M_3[őU,3ʼnES]VWh3j;ƉHWVPa3 ff;PPhTPjY3󫍅Ph?PDžDž@6SPh4Ph!xPh UPh pwVKpw; tpwPh YYz tpwphYY\ tpwphYY> tpwp hhYY tpwph>YY tpwp$huYY`;Ɖ} Dž`TPhSPhRPhPhPh8 VPhA(VPh@,VPh<?0VPh>4VPh@=PPpPVPhmTVPh `WPh$SwPh(4wPh, HwPh0VLwSh4jYjSY󥍻`TjYj:xYU󥍻SR VPV(V<,V0V@4V TV$W(w,4w0Hw4hjLwhhzhZh^h>hh\hThPhXh^h<dhjh@pSh5 5$M_^3[̋UQeSVuWE.E9]rWjP W jPWjPWjPW2jPWBjP@VHjX3ASVdž dž$SMQVPL؅ZSPPu2PPu0`TPPuSPPuHRPPuDPPu0PPuxPPuUPPuEPh u[E; u VPu V(VWWu9Wu,VWWu0Wu0VWWu'Wux4VWWuWuoPPuPVPPuCpwPPupwuFhr'tpwPhYYtpwphvYYtpwphXYYtpwp hh:YYtpwph>YYtpwp$hYYTVPPuPWPPuDeE3k!tNPh YYt hА} Y NWQjPm  VhLjY3hLu_t Vh$ YYFtFpFHFDF@F8FF4k@^iSt hYc3^]̋U$E@E3SfEVu W}ޫM3fA3ۉM]tO@(RL ];tu)E<uE<uE<uE<uEEHHwHHLHaHfEfE8E8txNt hnY=jXfE׍EPEPEPuU 2Ӄ}tt h0}Yj XƆƤ>ujXfEt hR@Y}~E~}}EtEPPh> Ee}Et@u<EPEPEPuU2 }t@t h0Y,h$]3fEfEބu8t }Ƥ>ujXfEt hRUY~~}tPPh. E3E9EtA9Eu<EPEPEPuU2 }t\t h0YHh1t hY= }}jXfE׍EPEPEPuU2Ӄ}tt h0?Yj XfEƆ׍EPEPEPuU2Ӄ}tt h0Yf!E}~E}}EMtEPhYY}}3@fE׍EPEPEPuU2Ӄ}tt h0oYE% GEjEXfE׍EPEPEPuU2Ӄ}t hY3fEfE޸fEfEfk }fE8= ojXfE׍EPEPEPuUthxt hzuY3fEfE޸fEEu@t hnGY^hDN< ~ <}}ffE8= tLjXfE׍EPEPEPuU2Ӄ}t,t h0Yj XfEƆ׍EPEPEPuU2Ӄ}tt h0`YfE׍EPEPEPuU2Ӄ}tt h0 YE_^[̋U39M ~ UA;M |]̋USVuW})E MM @N8$tEUE>U ?tEUu6Љ4UЋE _^[̋UuEuHu QP]̋UVu$N MFE;~ʅ}3;~…}3N F^] ̋UE}SVp(E(H @EW} EG,EPVE}EEE $EE$}MUEtw} uqȋEiȃxHH9uE(ƇH @GxƇ;}EЀ}t } t ;E+;ME;EE+;ExHH9u+RQjP;y|;so}} wt2U3GxƇ~8IAA ƆwEGxƆ~Ƈub}q} gu-8]u(8]u#EƆVwƇƆ~u(GxƇƇ`]}u<} R~t Eu EƇ'}  M  }t} tƆw } tƆwxtGxGyȋEiȃxHH9uU(B BU(B MrEG;]~,+;E}%9;~+;}E8uujY_^[$̋UEHP SXVp+pWx+x @++ىEt:t6t2t.EE™} EME_^[] ̋UE xf!H]̋UE HHf!H]̋UE x f!H]̋UE H H f!H]̋UE H xH f!H]̋UE x xf!H]̋UE Hx Hf!H]̋UE PщPP ѹf!HP ]̋UMA$+ASY+Y Wy+yEt>t:QA +Vu F ™F FEIFf!F^_[]̋UESX +XWx+8t@tuuu>utp p0WQX^_]̋UEVp(WPw3@9Eu}};tjX;tt M E MQVPLMQVPLRRVu}u~9Euy;tltgSMQVPL|'MQVPL|RRVu苮[t jX;7E 9Eutt E _^]̋US3VuF(CW9]u RPwPw#;uuuu V\UwOu >@=TtN9]u,}u&P@t h YT *@hY;u9]}ijZ;u}9]3;u/9]u 9}u 9}9]9]}u 9]u{9} u9}ul9]ug TwYuI9]u!9}tD9]uEVw8u5~.9}u)9]u$3~8Iʉ u_^[]̋UVu~tE jVFFu F^]̋UQQE @MEu1@t hFYh.YVu@t6hvYYHSW _u3G$]@t hfYjV*fE PFPVuU2 } h0@t hRvY3GWV~E PFPVuU2 9} @t h@1Yj_WV~R@t h, Yjw@t hYj_@t hY3GWV*~ӍM QFPVuU2 9} tt h0YfF@t hiYj_WV~ӍM QFPVuU2 3G9} tt h0YfF@t hҔYj_WVJ~ӍM QFPVuU2 3G9} t5t h0YfFӍE PFPVuU2 9} gWh0dYG@t hKYj_WV~ӍM QFPVuU2 3G9} tt h0YfFӍE PFPVuU2 9} %?h0Y@t hYjVFӍM QFPVuU2 9} tt h0UYfFӍE PFPVuU2 9} tt h0YFӍE PFPVuU2 9} t\t h0YFӍE PFPVuU2 9} tt h0YFӍE PFPVuU2 9} tt h0YY@t h~EY~@t hn)YE PƍHQPU@t hVYjVNfӍM QFPVuU2 3G9} t8t h0Y~ӍE P@t hNY_[^ I݋"H`xXz*V̋UE@(Ltjuhu PQ3] ̋UE@(}MM(Q ISVu E }W>(VUVMNE+} MUt?}+u9iɐfLFHxHNTNPH9NTtMU;}؍ ;E+;M;E+;UxHN\NXH9N\uӋNX+NPV\VTRQjP;VL ;FH} }+E E EgCt hYjE PueiǃfLFHxHNTNPH9NTu=} u}+t1iǃfLFHxHNTNPH9NTu_^[$̋UVu # F# FF# FF # F Uy6hPYY>yvh:YY&yvh&YYyv hYY^]̋UQQy hf`YMQ +QA+A SY+YUQ$+QVu EUiW#‹Q iE™Fi#‹Q iE™FFi#‹Q iE™}FF Iii# E}_F y6hPrYYyvh:ZYYyvh&BYYyv h*YY^[̋Uy hYEH +HSX+W} W+ЉUW +WMUiE Vui# EE iEFi# EE ؋Fi# EǙ}^EF i# EǙ}MMNF y6hPYYyvh:YYjyvh&YYRyv hYY^_[ ̋U%y hPYSVW}G7_EG u]Ey Vh<oYYy Sh(YYYyuhAYYyuh)YYEH@t'y}WPtU%8u EPuVF+MY+EF +FEA +AEt}ty+‹UiU™+‹UiU™GQF+‹UiU™}GIF+MiM}G y7h*YYywhʖYYywhYYiyw hYY_^[̋U0S]VWs}Хs(}𥥥s}॥y hjYhu EPEPEPS_^[̋U0eS]VW3}䫫s}𥥥s(}Хy h-YC t u SF,E+Eh2u EE+EEEPEPEPS0_^[̋U0S]VWs}𥥥es(}Х3}䫫#y hYE+Eh2u EE+EEEPEPEPS_^[̋U0S]VWs}॥es(}Х3}y h#YE+EM+MEh2u EEPEPEPSM5_^[̋U0S]VWs}𥥥es(}Х3}䫫'y hʗYE+Eh2u EE+EEEPEPEPS_^[̋U0S]VWs}𥥥s(}Х3}䫫y h+YE+Eh2u ȉEE+EEEPEPEPSM;_^[̋U0S]VWs}𥥥s(}Х3}䫫1y hYE+Eh2u ȉEE+EEEPEPEPSM_^[̋U0S]VWs}𥥥es(}Х3}䫫y h)YE+Eh2u EE+EEEPEPEPS<_^[̋U0S]VWs}॥es(}Х3}/y h*YM+ME+Eh2u MȉEEPEPEPSM_^[̋U0S]VWs}॥s(}Х3}y hB+YE+EM+MЉEh2u EEPEPEPSUM4_^[̋UEHwh$u PSVu PKu PG@u P85u P*u Pu Pu P u P]ȝӝޝ̋UQE$SX Vu WxFE$F}E y ShYYqy WhȚYY[yu$hYYCyu hlYY3Ɔ9E9E=9t}xHH9u׋+RQjP,;|,;v"Ɔy h2Y|HHH ;9Ew}M$ ;wp9E wk7y h YƆu y h̙YƆy hhYƆkWh\G ;w>M ;w19E$w,M ;wy h6 Y nh ;w7M ;w*M$ ;wM ;w!yhh ;wu9Ewp9E$wk9E wfy h^YxHH9uƆdž|y hZY_^[ ̋U3ʼnEVuWh5t hY~(PƅlQ$sp(LSxT|yuh.YYDPPSuu &398_ƅ Ny h؜Y|@t SWЀ;Auxw~ Iƅƅ;u<uKQVPd@thVYYƅ<4G<8hjP'ffSPh@t@@Ph\YY@@PPShsxVP~~P9~u⃾wCPCPWQtChxjP>fWfxzSP(WxPVV@xxƅtDžH~~H9~u⋆Rp%džR0@t hNbY3@tPhHGYYF |C$ KKKK$PQQPjPP j^##\#‹ȋ`#‹щ\K`$SKC@th0M CCCC jYPPP$PjP8P j^##)@th \#‹ȋ`#‹щ\K`$ SKC -@t h(Y+D+H3+3+f@tWVh jY󥋍9D}Dȋ9H}Hff@thM Ctƅ@tPhYY@tHhYYi@tPhnYY Hj   Px @thFaYYPPPtx2 t薿t h0YpyQhpjPfVfprSPVpPR`xP~~P9~uQQPSP tjpPhjS$ E9[lP([_^t hYM3 ̋U3ʼnES]VWjYu }3lyuhzYYyuhbYYѽyuhJYY蹽yuhڞ2YY衽yuhYY艽yuhYYqyuhYYYyuhfYY;~9{u;l'yshDYY}9{:syvuhv y6uh[ ɼyvuhԝ? 譼yvuh# 葼yhYYvyhYYF;u9>t N;u9~u l^Et2pxF|pPEPt;t pp;t xx;t ttF;t ||syphYYXyxhrYY=yth^YY"y|hHYY;p|;x;t|;|~ EE;Cl;C2M_^3[ˆ̋USVu W}GE3@fGfOf{]yPhBYY$EPPyEPh2YYMCMj ZKK[ʀOEME Mt'juEPEPVYEPEPOPjuEPEPV2MUO Wqq ;w|;~qHtu0WP4O +G;~˅}3;~Å}3GEO &Ot+t'juEPE PVEPE POPME Wju}P3WjuEP$EtjuEPE PV/WjuE PWjuEPE }G EGHtEtu0WV1uG E GjuEE PuEjuPM +E;~˅}3;~Å}3O G_^[̋UES] Vp(EWu}t,VPspSslxjYuu8CyV3E VGf {d}EEPCxPC`PuU 2 9}tdt h0Y}tƆDVClHVCpLVƆ~_^Cy[]̋U(ES] Vp(W}(G ECECEC,EOUP@$EU؋U$E$}uE}METVEUt'W uuuSuE}(u܋M}uu8Eu{(C(}}u7Miɐc$C xHKKH9KuM9E}EEU;U+E;EEU;+E;{(uE ƆUw롡xHKKH9KuK+KSSRQjP;S$@|;C s9}}E<8(}}}t ujYu܋}}t ƆUw}tX`TH t@tQp0VRXuEC(Ɔ~uCxEC(܀}=TuU`TH t@tQp0VRXEuƆ~3AuCxT%E}u }UwtK}tE}t?UfGE;~jxXfGE+E;} fGE Ɔ~EKj}YCȋEiȃc$K xHKKH9KtM}(M}u}uP}uJ5}t/}t)UE4;u~+;E}E4;~ +;ZEKj}YC_^[$̋UE@ Vu tVPf!F^]̋UEH@t)y}uPtU8S]Vu WCPK QuMVF +FMy +yEA+EtHtD]+‹Vi+™}]C IF+KiMCfK_^[]̋UE0VWp}Хp(}𥥥hu p}॥MQMQMQP_^̋U0eVW3}䫫E@ p}𥥥p(}Х_^t u Po,M+Mhu MM+MMMQMQMQPq̋U0MVWq}𥥥eq(}Х3}䫫E+Ehu EE+EEEPEPEPQ _^̋U0MVWq}॥eq(}Х3U+U}E+Ehu EEEPEPEPQU_^̋U0MVWq}𥥥eq(}Х3}䫫E+Ehȅu EE+EEEPEPEPQ=_^̋U0MVWq}𥥥q(}Х3}䫫E+Ehu ЉEE+EEEPEPEPQU_^̋U0MVWq}𥥥q(}Х3}䫫E+Ehu ЉEE+EEEPEPEPQUl_^̋U0MVWq}𥥥eq(}Х3}䫫E+Eh:u EE+EEEPEPEPQ_^̋U0MVWq}॥eU+Uq(}Х3}E+EhZu UЉEEPEPEPQU_^̋U0UVWr}॥M+Mr(}Х3}E+Ehu EEEPEPEPRuM'_^̋UEHwh$zu PVu PKu P@u P5u P5*u Pu PWu P u P]*5@KVal̋UEHwh$$u PVu PKu P@u P5u P*u Pu P1u PF u Pg]ɻԻ߻ ̋UMAE PQt fHf!P&]̋U|3ʼnEVWjYPEu}PM_3^c€̋U8ESX(Vp(D3҉uHM$U(+S+SMU[}QW}?C;x}UMEE}WE$E}E(P$x3fEȍ}ʫfVEE EE-yPh衷YY=3!E!EjfEXfE׍EPEPEPuU2 }tӪt h0LYj XfEƃ׍EPEPEPuU2 }t芪t h0YƆ~E8e,pTE Q@tE PhȶYY7@tHh譶YY@tPhn萶YYE jEP},[ },ѩ@tu,hnJYYEPVPuTwtXwjYuu苃WP(EEEEM_^[(̋UteSVWEEt h輵YEx(ut h虵Y2 E؋@(E苇KE܋EpM% |(M zMzth]Yzz E[̋USVW詘t h,#Yu ~`Gse脘t hYptwhYYXtjhҤYY#f2ҋ΋FPuTA[ut h\蔤YWPuf2ҋΉ~Pu Aؗt h:TY_^[]̋US]V3zM;Hu M ;uxuF |^[] 8 k W<Xk 3ɍzz3_̋U@t hl輣YVu F`xHWs"#f2ҋ΋FPu.@G@uPQu,f2ҋΉ~Pu?Ɩt hHBY_^]̋USVuW3WWWW0St}ƘwE ;Fu89>t49~t/mt6vuhNX~>~E }@rWS@_^[]̋Ut hĤ蔢YSVuW3WWWW0St}Ƙw9~t89>t49~t/ԕt6vuhHNX~>~E }@rWS@葕_^[t h Y]̋UQVW}wE3E8t F @ry k Sj8Sj0ju3;E|7M ]k Ǎwwt'S7Vhtk > ww[˔t hGYu3>t譔tv6Wh#G @r֋E_^ ̋USVW}3wM ;Hu M;uxu F @rUAt!k wwVhJ詠 k 8 Xk 3ww3t h(hY3ǜw?t˓tw7VhJAF @r_^[] ̋U蒓t hrYVu F`xHWs(#f2ҋ΋FPu<_^]@uPQűU t h蜟YVu F`xHWs(#f2ҋ΋FPu<_^]@uPQuB̋UQeS] C`@VuE s E#pwW{ }tPdpwGtyx9} rkWjlpwDt Wh輞YYpwt9WuP辞 M QVPL|pwu |u PP_Ec2ҋˉCPV;E^[̋UW}pw@VE衑tpwphƦYY~tpwphYY`tpwp h`ӝYYBtpwph.赝YY$^tpwp$h薝YYeEPju W_]̋UUpw8tAHQPu RaW3E}쫫EPju RA_̋UE~Qju P]̋UEjt49~t/蛏t6vuhNX~>~E }@rWS@_^[]̋UFt hF›YSVuW3WWWW0St}X{9~t89>t49~t/t6vuhvNX~>~E }@rWS@迎_^[t h*8Y]̋UQVW}\{E3E8t F @ryH k Sj8Sj0ju3;E|7M ]k Ǎ\{X{*t'S7Vh袚k > \{X{[t hbuYu3>tۍtv6WhQG @r֋E_^ ̋USVW}3X{M ;Hu M;uxu F @rUot!k X{\{Vh§יH k 8 Xk 3\{X{3t h薙Y3\{?ttw7Vh§oF @r_^[] ̋Ut h<YVu F`xHWs(#f2ҋ΋FPu5_^]@uPQűUNt hʘYVu F`xHWs(#f2ҋ΋FPu<5_^]@uPQuB̋UEX~MMQju Pj]̋UEh$UTVQju P]̋UETVQju P]̋UEh(VWQju Ps]̋UEWQju P]̋USVuW3WWWW0St}Ƽ~E ;Fu89>t49~t/t6vuh[NX~>~E }@rWS@_^[]̋U蒊t hVYSVuW3WWWW0St}Ƽ~9~t89>t49~t/Nt6vuh–NX~>~E }@rWS@ _^[t h8脖Y]̋UQSVW}~E3ۉE8t C @r~k j48~Pj0juE39E|7 k E E~ut-u7ShÐ k ~;~?t ht軕Yu3>t!tv6Wh藕G @r֋E_^[ ̋UQSVuW3}~M ;Hu M;uxuG }@r]讈t&k 0~ k 40Whڨk ~ XE k 31~3Qt h͔Y3~>t0tv6Whڨ覔G @r_^[ ̋Ut htYVu F`xHWs(#f2ҋ΋FPu0_^]@uPQűU膇t hYVu F`xHWs(#f2ҋ΋FPut0_^]@uPQu4̋U@tjh:莓YYEMMQju P]̋UESVp(Wˆ@t hحGY38^Tt4谆t h,YM 2҉yPV/ E @`x SSS0SPEtt64;4; tWt)hĭmY؅t hTYu VP 貅t h.Yu VP 茅t h|Yu VP ft hdYu V At hP轑Yu VPd $(tW,t)0h8_Yʄt h$FYu VP$褄t h Yu VP ~t hYu VPXt hԐYu VP{2t h̬讐Yu VP,U\;8LPtWTt)XŃ.h=Y訃t h$Yu VP<肃t hYu VP8\t hl؏Yu VP46t hR貏Yu VP0Yt h>茏Yu VPD3`t}dtSlt)pƂqh*>Ya詂t h%Yu V臂t hYu Vet hYu VPH?t hΫ軎Yu V)f;;totSt.Ɂt hEYu V见hY芁hvhxbhbNt hBʍYu VutXt.t h&耍Yu V+t h^Yu V t h<Yu V:螀hªY聀t hYu V ;t} tS t) ht蔌Yt hZ{Yu V&t hBYYu Vt h*7Yu VhY|t hکYu V:# ' thC t>G t6h̩x"t h螋Yu VzIt h|Yu V'~t hpZYu Vn~hT4Yt;]f;b;wTD }`u VPl $(o,=0u VP(\;wT8LfP4TXu VP@`dlpsu V;;wdnYt<t&u V!u Vu Vt&#u Vu Vu V ;wPt7 b 4 uBu VwUu VJ# t9' #C G Su@M Y'u VSu@_^[]̰̋UEVWx(PEQ$s{thPYYjjuEl;{tjh貇YYEf fEFE FMltMztjhqYYEEFE FfF pzth#YYuP(_^]̋UESVp(SP$\zth®҆YYW3;9E t @ ;uH ;u59xu,RdytXhwYK;t49xuH Pyd;t9xtPQHP Q Hy Pdy_thxYYSP(^[]̋U} E@(Wt.}?r#Vl6Pu ܅ ^2_] ̋UE@(]̡X̋UESVup(PQ3;ÉEE ;uE;uh3@W=<F`FdSP^XSPSP׍p3ASXXQ P`jSShGATXP3f DTXxy|3_E^[]̋U E@(eEwt h8YE SV5lW3GWW֋؅EPESWW=h׉E=#uPSduj֋؅fuJwtuhYYEPSPEj׉E}|jwt h范Y5phxEPhfEPhZEPvt hBQYE E)Etvt hYSdv_^[t hYE̋UESVp(WSvt hςYE Hj[KHHWSlL;9WSP蚂L`L@L@L@ GLXLǀ$LǀH@Lǀ$WSlL;WSPL`L@L@L@ ALXLǀLǀHLǀhL PVWSlL;u WSPWLL@L@L@ L@NLǀLLǀHLǀH}Dtth$h8踀YY;}L;tFPd;28t< r&Ɔst VhbYY_^[]̋Ust h:YEVp(WLt Pd'Ƭƀ|stPhYY_^]̋UESVWx(3uAst h"Y3fEfEfEfE捇uu苏PEQ$l3fEVjfEӉEtVjPq }u E]rthh3YY3j@fEXPjfEӉEtj@jP }tvrtj h~YYEPjWhEPEPEP;S3VVj"EPhp(h3QQQQVPu%E}-qt h]~Y_P#PH`3fff ftPdPjl\qtPh8}YYaQjP} PPh.PEPPMQQuEPQ3P4VT0VXVP jPpt h|Y3Eu􋇼P(}_^[t udFpt h|Y}t ud pt h°|YE̋UESVp(ot hl|YSP$tFot hB<|YWx(WPW_SP(so^[@t h.{Y]̋UESVp(WEot h{YSP$?t"ot hB{Y7PSP(_^[]̋U3PPPPut]̋Uju@]̋UEVp(Wnt h{Yu lV_^]̋UV3hhVPuuuz j XlEMtMEEVVEhPuDžpҲj|E|uEXm^̋UjjuX] ̋USV3VjEP`}] ts`WFjY@3_C`$MH M@@=uVVVVEPtC^[ ̋U(mt hijyYSVuWLju MElt hgyYlPPƆxW E}lh{lt hzyYFXF\FX;trlt hdxYu VESlt hJxY?lt h&xY+lt hxYlt hxY} ]2ҋω_PVjWV_^[]̋Ukt hZBxYSVuW3ۈxPL8FXF\FXFT9_ twkt h:wYu VW SPNk@t h&wYVgVVV P kt hwY} jWPW_NiVE V9tP;t Pdj_^[t hسwYE ]̋UQQS]LVu jVEE|.F`pEWj{hYu@tu SЋ}jYsh_u E2ҋΉFPS jVSE^[̋UVuWu (hVju V_^]̋Uit hvYVuLNXN\FXƆx@W} tWVЃgCit hxuYWVY_^]̋Uit huYVuLNXN\FXƆx@W} tWVЃgjPWV}ht h1uYht huY_^]̋UVuL@tu Vu V^]̋UHht h,tYVuLNXN\FXƆx@W} tWVPgWVgt hetY_^]̋Ugt hD>tYVu~XLWƆxuN\NX@} tWVЃgWV_^]̋UVuLNXN\FXƆx@ W} tWVЃgWV[_^]̋UVu~XLWƆxuN\NX@$} tWVЃgWV_^]̋UVuL@(tu Vu V^]̋UESVu Wx(jjhVP؅}2ҋΉ^PW4^`CW$5fhwfph`fYhڶIeBh2e+hehehjehJ}eh2nt\ tGHHt3tHuiNeh7eh|#etyhletihȵ\etYhLt9HHt%tdt;h.dt+hdthpdt h^1qYCwj$VW]aVWXVW[OVWFVW=VW4VW+VW"VWVWVW[VWX_^[],CF|aOjsX̋UESVp(W} jjhWSE}2ҋωGPV WaVEs jWSE_^[]̋UE SVuWx`SP$PQ$tC>s 1OIH3Ɔt PQRPQ(SP(_^[]̋USVuWSP$SƆP(_^3[]̋USVuWSP$SƆP(_^3[]̋UM A`j Z9Ps#@EVWf j f>_fjxǀ_fy _Q3^]̋UESVu Wx(jjhVPE؅}2ҋΉ^PW ^`C =tl= tU=t>=t'=t9at[hзN)atKh>at;h. at+hf`th@`t hemY[ tPt?t0Vtt_6WMW VWUVWd2ҋΉ^PW jVu_^[]̋UQESVp(W4`@t h"lYL@} jjhEWPE؅})_@t hmlY2ҋω_PVk~Xu?W]؅|-EtWVЋ؅|_@t hlYV2ҋω_PVjWu_^[̋UEVp(LWx9_@t hFkYtu V_@t h0kYVu a]V_^]̋UESX(VW^@t hRIkYu jjhVPE})^@t hkY2ҋΉ~PS(f2ҋΉ~PSjVu_^[]̋UESX(VW)^@t h^jYu jjhVPE})]@t hnjY2ҋΉ~PS(f2ҋΉ~PSjVu_^[]̋USVu WVF#F`$}VjVPW_^[]̋U 3ʼnEME x!SVq(E EEAE EEALtH`IH`QJJWy u IIu~dPV ~d_u>t48t/jMQ\t hp.iYSTM^33[h ̋US]KdVu F`@ ;WL}OVv`FjYu @F``$j@ @VPV4Cdu%\t h}hYjjWXVSB_^[]̋U[t hи@hYM A`@HQut]̋UML@u Qt]̋UML@@u Qt]̋U*[t hgYML@@Vu QtbZt hogY^]̋UML@@ u Qt]̋UESVp(W} jjhWP؅}2ҋω_PVL_`]Zt h0fYCWVt%HtHtHt H_^[]̋UES3Vu WF(0$,dž Ɔ4538<f FFh@VP^(^xPQHVPQ_^3[]̋USVuWLWP؅|P؅} WP_^[]̋UEH|Hl3Bt;~P|3]̋U`VuWLPWPXy hr1eYe3j[Y\Oy h[Y@Oyjh[YYPPPPPSS0Oyjh[YYOuy Vhpw[YYyjh6[[YYE0vuNy h8[YNtyh[맄y h|[YuS(ErNy h<ZY}uXNXh ZYHjjlu13Ny hZYCjSPS,3;tWMy hoZY]9]vnEMLtS39y ~LÍQ@CÃs-G;y |)MhrZYEEEE;ErVde^My hBYYuEu P86My hYY3;*39EvUMPQ@F;ErEML$heYY̋USVuFE@Wt Hk\$j$[SjltSuW'Y ~3 f_^[]̋UEPQ,3]̋UQEeSVW-Ly hXY=0VVVVVS EVVVVV PSׅuK_^[y hnXYE̋UQEeSVWKy hT7XY=0VVVVVSHMVVVVV PSׅuK_^[y h*WYE̋U SVW3}}HKy hWYu,k PWl;uKy hWYEe(0E;tR}9$vGEMT39z v$zMk ˃a!Ey@;B r3EEE;$rJ_^[y h~WYE̋USVW}$(][Jy h(VYt6ۋdvEEtPӃ&Mu(Ӄ( J_^[y hVY3]̋UIy h|bVYVu0t Pd&I^y hR3VY3]̋UIy hVYVW}WP$WPgI_^y hUY3]̋U@Iy h>UYVuVP(t Pd&I^y hUY3]̋UQQEVp(8t P jVEP|"EMPuu ;U EP^ ̋UE0tIjQPRH]̋UEM M3] ̋US]VW{jjlt:jXjfXfFE WFVP8WVdG| yh y hj3TY_^[]̋U`EHVjZfUjZfUU UURP8]G| yh y hSY^̋UESVpW3WWEP`EPEPjWWWWh";u4V؁uWWWWEPt3V_^[̋UMA`U $`@ "PA$]̋UE@0VjPt uV^] ̋UEVp-Ft h RYjjVXF^t hRY] ̋U3ʼnEeMSY3VqLW}ث{EEčA Eȉ}MN+ei'EԉU؋FE܍`PvEuoEh(EH M̉EIEt hQY5EtFPhQYYEtv hQYYEtvh|QYYDt hjgQYXYExALj XfbjHXf`E܉p3EDžxu|Džtu~DtuhPYY`PuUB`$M@"H @=uVVVVVjEPjPR9dt~DtdhFzPYYdLCtuh&OPYYE}dvSP`u܋SP\e3EPVVxuE}CtuhOYY9ut{`Ct hOYu9uvMut5$?twhhKYY85ujjUGhRPQ]?t hKYSSSSSjEPjPEЃxXE8XAjUGhRPQE;u>th&KY85jYfNjPYfF^ EF^H^I3fFJVufFL^^$UB`$M@'H @EЋ=ul >t hJYSEPSSSjEPjP;=uuESSSS0Pt=t hfDJY=t hL0JYEPSS8]t%MEPSSEME]uԋMQWPlE0PT?G=tYh&L7=t hIYuESSSS0Pt =th<t huIY;t<t hl]IYVd9]t<t hN=IYuESX@LM_^3[H̋UTjTEjPIE M jEXjjEEčEPhjE(ME |̋UESVu WFV3ۍ(PQHVPQVWPWE P E %1;t7h:,HYY33 FFh^(^x[=`SSP׍3ASXXQ P_^3[]̋U;t hvGYSVuWLWP؅|UP؅} :t hN?GYWP ƆP@( VQ_^[]̋Up:t hFYELPQI:t hFY3]̋U$:t hFYEVLQVP9^t hhFY3]̋U9t hDDFYVuWu 9t h FY(PQ PQ HPQ FPQ$FhPQ$PQ$VW$_^u@9t hEY]̋Uv2W3WWEP`EPT9} EPEPu$uuuuu u;t`M V8uy h'EYWWWWEPty hXEYu9}E ^| M82_ ̋UE@3QURQQju h ]̋UME@MM MMM3QU RQQjMQh ]̋UE@3QURQQju h]̋UEWxv2V3VVEP`EPTEPEPVVVVVh4;tpp=u$87y hCYVVVVEPtE9u| 7y hCY6y hpCY2^_̋USVuW33ɉM}諫FM98MQMQhP$Ejjhu E} X&E E@ GE@\G\PVƆSu5th5t hkBYjjjVSu5tht5t h^9BYMMj XEEEPVESu5thHu5t h.AYa5_^[t hAYE̋UW}u<u3SXVtӃ& tӃ&^Ƈ[_]4t haAY̋U4t h>AYjjuX] ̋U MSVW}G3ۉE]E`yo4t hH@YE@0SPE;u"EPSS}|'4t@h3N`$3V AY Y3t hn@Y_^[̋ULMMSVW33]؍}ܫEpSSEEE`y~Pu``dj,P(v`38h?Y(C3t h^?YEEčEEȍE3hLGdEtl2tuh"n?YY2tw`hV?YYE􉇴EPESSSPt2xh;t;9t'x2t h>Y@(ǀYVE(2y hR>Y9]u2h.>YoEPTE@`$M@4H @1y hJ>YU1y h'>YSSSSSjEPjP+(HtOHr1t h=YuSSSSEPtG1h=Y*1y h~=YE@E 1yuh^=YY]9]vYE0E$9Y),t h(9YWVVVVEPtW_^[̋U3ʼnEMhSVW33PTyƅ\ ƅ]ƅ^4_DždGjtz`plwh,P(v+h+t hd<8YtXDFHL+y hR7Yjj\QVP5tPPSSSXYlPd3AX;t^hDžd+tXh(7YY+tlp`hs7YYXl9tHhDžddPtSSSPօ*hhSSSSSQDPjDždP+HHDA*7h6Y'$*t{Ph6YYPPtSSSPօ lxd8zu){ ƅz`pƅ| n9`u{ȉ`p}Ip{ ~Ap;`u'8Qu9Q|QWPDt z{GhRPQ #pP|PtWzPPtSSSPօ(thx(t hRK5Y(t h275YtSX@LM_^3[4̋UMSVuFW3ۉ]Exj,P(vD(h*(t h4YMF5tQISEPjEPSShh<u'tuh_4YYE t$EPESSSPօu't]hP't hV 4YjEPSSSSh7S<ur'th(b't h3YN't h3YESX@L_^[̋U(EVp(LWEEPh3j}\;ljESlhjӉE&thhB3YY9}u E<3fE踀fEhEPpEPjEӋg&tuh2YYg3@MQGG uWPEPuhGM+QPu2fEf+G fE苎tQdfEPjӉ3fEf%tPh8 2YY%t Sh2YYt%tuh1YY\%tEPh1YYB%tPh1YYEPj1 SS$thu1YYEPS$thO1YYE uE3fEffEjEPEPE|-EEƀuu uEEƀu`[}t$T$t hL0Yudet,$t h$0YWdE_^ ̋U]̋U]őUSVuNW33ۉ]}쫫R P I\H\]Ɔ#t h 0YVPVWuh#thX#t h/YjSSVWu8#tht(#t h^/YMMj XEEEPVEWu"thH"t h.\/Yjh^Su(VW$E"h%/YjFhhPuSP$VW$r"thXjhPXu*SP$FhPQ$VW$E1"t>h"놋VP@PQHPQu (VPE_^[3jL̋UEVW} _3^] ̋U3ʼnEESVp(3W} PDHf!y h-YPLQ$\;@(T!y h-YDPSSSGPtd y hg-Y9dhQWPd y h/-Y9dThhSPX- x y h,YDPXPhPdP*9) y hz,Y8tTaj`P\ƅ` hP\y h\J,YhPP[,y h>,YhhSP, yy h +YX;dSy h+YLP(0_^[y h+YM3^+̋U3ʼnEE Vu`3W~9ESSPdhPU+ DWdPhPu`7)<u2}v,}tu苆hQVPpShjP* E9du[M_3Ͱ^* ̋UQEjURPE EEAQh ̋U 3ʼnE 6EM :jURMPE EEDQhM3* ̋U3ʼnEEVW>}쥥j URPE E EFQhM_3^) ̋U3ʼnEEVW>}쥥j URPE E EEQhM_3^g) ̋UQSVu W~} tFPPhpo) ]4uB5u98u0<u'E @}WfNfCj 6Y} @}2fNE fC6?uut hL(YSPtE jMQESE EEXPh_^[ ̋U3ʼnEE SXVu tPh<}(YY@}s^6EEE EEC]EtEPEPSh;(?utEPh(YYjMQVPhM^3[' ̋USVu^Xt h'Y4u 5tGW@WP(;E}WPdjuu WPWPdE_^[t he'YE] ̋UEL5u{U ƀ4:CulfJf@s^fRVfffH֍8yIA3F 28u<uWj Y6_^] ̋U 3ʼnESVu^WWjP&3 fftUVPxfWPh@Ph6VjjxM_^3[%̋UQMEUfEj?6ZfAAJűU@3ʼnESVuFWWjPDžU%3 ff63ҍ`fff fBBGG~rfffPPh@PjY3󫍅P3h?PDžDž@;ljPjl؅th9$YYcPjCC "$ PSjWhsj Y󥋽3ItPVh# FGG@rSdt h#Ythx#YY}Sft hZS#Y3ɍ`f8f:fAABB~rffVPtj Y DžM_^3["̋UM AtUHtDHt3Ht"HtHuRuQuoDuQu6uQu(uQuuQu uQu] ̋V33@VPh55`hVhV5 5x 5| VVP^̋UQQeW3}hP MEPjjE`y_̋USVuW 2~t%T M DAN=r&_^[]̋USVuW} 9 sE | 4̈́  | <͈  | 39| r | QjQh_^2[]̋UQQW33}M9Mto9M tj3Ҹ4uV5 hjCWjBWjB֋=ja Pja֋E iEEPjjUja$Pja^_̋USVuFW=PEE3$+t4HuEPhx Tt uu%SSSSSjEPj8^AtS^@^AL_^[̋UQQESVWx(/t h(Yu jjhVPE؅}2ҋΉ^PW_^[Xu&V^2ҋPWjVuˍEPVu P"؋EtHtF#F`$HtH̋Udt hBYju0]̋UVW2t hzYEjjPu u"t h`tY_^]̋UVWt hGYEjj%Pu u!t hY_^]̋UVW3nt hYM9}t(jX9E s#Q(@S]$U3[jWPu Q2!t hY_^] ̋UVWt hD]YEp(E MMh$up_^t hY3]̋USVWqt hYEp(8<3AQP dž$dž(Wdž,`Wdž0Wdž4V0@t h`pY_^[]̋U3ʼnEESVp(3W} PDHy hYPLQ$\;@(TOy hYDPSSSGPtd!y hY9dhQWPdy heY9dThhSPXL y hn*YDPXPhPdP9_y hNY8tTaj`P\ƅ` hP\y h.YhPP y hTYhhSPM y h+YX;d y hYLP(f _^[y hYM3̋U3ʼnEE V\W}w39ESSP`hP DV`PhPu\mt9}ƅgv,}tu苇hQWP4ShjP+ E9`u[Mg_3^ ̋UQEjURPE EEAQ, ̋U 3ʼnE 6EM :jURMPE EEDQ,M39 ̋U3ʼnEEVW>}쥥j URPE E EFQ,M_3^ ̋U3ʼnEEVW>}쥥j URPE E EEQ,M_3^ ̋UQSVu W~} & tFPPhp ]uBu9u0u'E @}WfNfC<j <Y} @}2fNE fC?u t hLYSP8E jMQESE EEXP,_^[ ̋U3ʼnEE SXVu5 tPh<}YY@}s^EEE EEC]E tEPEPShe?u tEPhEYYjMQVP,M^3[ ̋USVu^ t hBYu tGWWP(;E}WP(juu WPWP(E_ ^[t hYE] ̋U 3ʼnESVu^WWjP\3 fftUVPYY}Sft hZY3ɍf8f:fAABB~rf:fVP8j Y<`}M_^3[m̋UM VQPu *QPu kd2^] ̋U3ʼnEE Vu\3W~ƅg9ESSP`hP DW`PhPu\t8}v2}tu苆hQVPHgShjP E9`u[Mg_3^& ̋UM AtUHtDHt3Ht"HtHuRuQuDuQu6uQuO(uQu%uQu1 uQu] ̋U8E@(I(Mo YY@Wh6U YYusV@E @tvv h E 33AV WtMW8tU@tEPhjYY]@tHhLYY@tPhn/YYM Hj  M VF FU@tvhFYY_^[ ̋UESVp(X(W} Ȁ``uT @t hYGhLw} fM=~j XfEny hY3!E!EfEfEӍEPEPEPuU2 }td!tXh0YK}yjhb~YYjVv~yjh@VYYjVN_^[; űUQMj55uh4%|%d%thud5D$l$l$+SVW1E3PeuEEEEdËMd Y__^[]Q̋US] Vs35WEE{t N3 8N F3 8E@fMUS[ EMt_I[LDEEtE|@GE؃u΀}t$t N3 8zN V3 :jE_^[]EɋM E 9X thWӋE MH t N3 8N V3 : EH99S thWUT%SVWT$D$L$URPQQhwd53ĉD$d%D$0XL$,3p t;T$4t;v.4v\ H {uhCCd_^[ËL$At3D$H3Uhp pp> ]D$T$UL$)qqq( ]UVWS33333[_^]ËjK33333USVWjjhxQQ_^[]Ul$RQt$ ]SQ SQL$ KCk UQPXY]Y[%8%8%<BASEPrepareDelete : IOEvent OK! BASEPrepareDelete : DPCEvent OK! BASEPrepareDelete : WorkItemEvent OK! BASEPrepareDelete : RefEvent OK! xTouch : Increaseing Reference yet =%d xTouch : ** OutStanding Ref Event triggered xTouch : Ref = %d, Decreasing Ref xTouch : Increaseing OutStanding IO yet =%d xTouch : ** OutStanding IO Event triggered xTouch : OutStanding IO = %d, Decreasing IO xTouch : ** OutStanding DPC Event triggered xTouch : OutStanding DPC = %d, Decreasing DPC xTouch : ** OutStanding WorkItem Event triggered xTouch : OutStanding WorkItem = %d, Decreasing WorkItem IRP_MJ_INTERNAL_DEVICE_CONTROL IRP_MJ_POWER IRP_MJ_SYSTEM_CONTROL IRP_MJ_PNP IRP MJ Others IRP_MJ_DEVICE_CONTROL IRP_MJ_CREATE IRP_MJ_CLOSE IRP_MJ_READ IRP_MJ_WRITE xTouch : DispatchRoutine Called Leave EDONotifyDeviceRemoval EDONotifyDeviceRemoval : complete m_WaitRemovalIrpEnter EDONotifyDeviceRemoval 0x%02X Write to EDO RxFifo = %dEDOFireRemoveEvents EDORedirect : Returned CheckSum = %04X EDORedirect : Get EEPROM Addr = %02X Value = %02X %02X Redirect : GetEEPROM Addr=%02X EDO TX Thread : Write Data to FDO. EDO TX Thread : Get H2D_LOOPBACK CMD EDO TX Thread : Get GETEEPROM CMD Write Complete EDO TX Thread : Get GETEEPROM CMD ,but first EEPROM CHECK not finish EDO : Tx Thread is Close EDO : Got Tx Thread Stop event EDO:Read Timeout %d Complete Read Irp - Read %d bytes EDO: Read %d bytes from Fifo EDORead : 0x%x EDORxMoveData: Fifo Empty EDORxMoveData: CurrentIrp NULL EDO : Rx Thread is Close EDO : Got Rx Thread Stop event Increase EDO Ref EDODefaultCreate : call Increaseing Reference EDODefaultCreate EDO : Leave EdoCleanAllBeepEvent EDO : Enter EdoCleanAllBeepEvent (Leave EdoCleanBeepEventArray) (Enter EdoCleanBeepEventArray) EDODefaultClose : call decreaseing Reference EDODefaultClose EDODefaultRead: Read.Length == 0 xTouch : pEdoExt->m_BaseExt.m_bDeleted, Fail IRP EDODefaultRead EDODefaultRead: Write.Length == 0 EDODefaultWrite. EDO IRP_MN_SET_LOCK EDO IRP_MN_QUERY_PNP_DEVICE_STATE EDO IRP_MN_SURPRISE_REMOVAL EDO IRP MN Others EDO IRP_MN_EJECT EDO IRP_MN_QUERY_CAPABILITIES EDO IRP_MN_QUERY_RESOURCE_REQUIREMENTS EDO IRP_MN_READ_CONFIG EDO IRP_MN_WRITE_CONFIG EDO IRP_MN_QUERY_INTERFACE EDO IRP_MN_QUERY_DEVICE_RELATIONS EDO IRP_MN_CANCEL_STOP_DEVICE EDO IRP_MN_QUERY_STOP_DEVICE EDO IRP_MN_CANCEL_REMOVE_DEVICE EDO IRP_MN_QUERY_REMOVE_DEVICE EDO IRP_MN_REMOVE_DEVICE EDO IRP_MN_STOP_DEVICE EDO IRP_MN_START_DEVICE EDODefaultPnp EDOBeep : m_ulTouchStatus: %d EDOBeep : Beep Source: %d EDOFireBtnEvent : Set Btn event! EDOBtn EDOFireHWeelEvent : Set HWeel event! pEdoExt->m_ulHWeelStatus = 0x%x EDOHWeel EDOQueryMonitorInfo FreePool EDOQueryMonitorInfo ExAllocatePool size(%d) MonitorInfoEDOQueryEdgeInfo FreePool EDOQueryEdgeInfo ExAllocatePool size(%d) EdgeInfoBeepSourceBeepModeBeepDurationBeepFrequencyConstModeConstDurationConstRangeTouchGridTouchSpeedMouseModeOrientBranchEDOQueryCalInfo : FreePool EDOQueryCalInfo : ExAllocatePool size(%d) CalInfoEDOQueryLinzInfo : FreePool EDOQueryLinzInfo : ExAllocatePool size(%d) LinzInfo EDO : EEPROM Thread is Close ChallengeThread : Got Callenge Thread Stop event Other Status EDOAuthenThreadRoutine-Register Fail EDOAuthenThreadRoutine-running stop since EEPROMOk EDOAuthenThreadRoutine-running EDOQueryMonitorInfoFromService : FreePool EDOQueryMonitorInfoFromService : ExAllocatePool size(%d) xTouch\DeviceDefaultEDOQueryEdgeInfoFromService : FreePool EDOQueryEdgeInfoFromService : ExAllocatePool size(%d) EDOQueryCalInfoFromService : FreePool EDOQueryCalInfoFromService : ExAllocatePool size(%d) EDOQueryLinzInfoFromService : FreePool EDOQueryLinzInfoFromService : ExAllocatePool size(%d) CalSourceTouchHoldToResetTimeTouchHoldToResetFlagIdleToResetTimeIdleToResetFlagFilterFilter ThresholdLowUppperA3A2A1A0EDOQueryActiveAreaInfo FreePool %x pActiveAreaInfo->rcBoxArray[1].bottom (%x) pActiveAreaInfo->rcBoxArray[1].top (%x) pActiveAreaInfo->rcBoxArray[1].right (%x) pActiveAreaInfo->rcBoxArray[1].left (%x) pActiveAreaInfo->ulNumsOfBoxes (%x) pActiveAreaInfo->bEnable (%x) EDOQueryActiveAreaInfo(2) Get data size(%d) EDOQueryActiveAreaInfo(2) ExAllocatePool size(%d) EDOQueryActiveAreaInfo Buffer size too small. need Data length is %d EDOQueryActiveAreaInfo Buffer size too small. need buffer length is %d EDOQueryActiveAreaInfo :Query Reg failed. len = length%d EDOQueryActiveAreaInfo :Query Reg failed. error code = %x EDOQueryActiveAreaInfo ExAllocatePool size(%d) ActiveAreaInfoDesktopTouchDownTimeEnableDetectTouchSequenceFlgRectangleLimitInActiveAreaReportOlderRectangleFormatEdgeBtnRealMultiReportModeFireWheelEventLeave EDODestruct EDODestruct : call decreaseing Reference (EDONotifyDeviceRemoval) EDONotifyToRemove \DeviceDefaultEdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea == NULL FifoInit : pFifo->m_pBuffer ExAllocatePool size(%d) Write Fifo : fifo full Read Fifo : fifo empty helper:ForwardAndWait Helper:PassThroughIrp NativeNameLeave add device routine ( success ) Leave add device routine ( fail ) FDO init fail Identify fail IoAttachDeviceToDeviceStack ruturn fail DriverObject( 0x%x ) , PhysicalDeviceObject( 0x%x ) Enter add device routine Unload Driver( 0x%x ) DriverUnload : g_ustrRegistryPath.Buffer FreePool Leave driver entry Enter driver entry( 0x%x ) xTouchLeave driver entry ( fail ) DriverEntry : g_ustrRegistryPath.Buffer ExAllocatePool size(%d) Mouse Point Lost WHEEL : GESTURE_SLIDE_X (GestureValue == 0) post up WHEEL : GESTURE_ZOOM WHEEL : GESTURE_ZOOM X WHEEL : GESTURE_ZOOM Y GESTURE_ROTATE : GestureValue = %d GESTURE_ROTATE WHEEL : GESTURE_SLIDE_X WHEEL : 0x%x (%d) WHEEL : GESTURE_SLIDE_Y WHEEL : 0x%x (%d) WHEEL : WHEEL_BUTTON_DOWN WHEEL : GESTURE_SLIDE_X (GestureValue == 0) eTouch : ParsingInputData has an exception ! receive %d bytes points pkt(02) IDP : Leave dispatch command routine IDP : Enter dispatch command routine pBuffer[ 5 ] 0x%x pBuffer[ 4 ] 0x%x pBuffer[ 3 ] 0x%x pBuffer[ 2 ] 0x%x pBuffer[ 1 ] 0x%x pBuffer[ 0 ] 0x%x FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , g_bDragWaitNextDown==FALSE , post Move FilterMouseTouchEvent :g_bDragWaitNextDown==TRUE , post left up other PostMouseMoveAndLeftUp PostMouseWheel PostMouseLeftClickSpecial PostMouseLeftUpAndDBRightClick PostMouseDBRightClick PostMouseLeftUpAndRightClick PostMouseRightClick PostMouseLeftClick PostMouseRightUp PostMouseRightDown PostMouseLeftUp PostMouseLeftDown PostMouseMove DoPostMousePoint: pPostMouseState 0x%x eTouch : We have lose the data DoPostMousePoint: We have lose the data DBG_TDI : Send reset frimware cmd pRectBox->bottom = %d pRectBox->top = %d pRectBox->right = %d pRectBox->left = %d OnActiveAreaSingleSplit ActiveAreaSplitMap ActiveAreaBox->bottom = %d ActiveAreaBox->top = %d ActiveAreaBox->right = %d ActiveAreaBox->left = %d RectBox.bottom = %d RectBox.top = %d RectBox.right = %d RectBox.left = %d OnActiveAreaMultiMapping OnActiveAreaMultiSplit OnActiveAreaMultiFull OnActiveAreaMultiUpper OnActiveAreaMultiLower OnActiveAreaMultiLeft OnActiveAreaMultiRight OnActiveAreaMultiQuad1 OnActiveAreaMultiQuad2 OnActiveAreaMultiQuad3 OnActiveAreaMultiQuad4 DetectTouchInSequenceState : state 0(out area) DetectTouchInSequenceState : state 0 DetectTouchInSequenceState : state 1(out area) DetectTouchInSequenceState : state 1 DetectTouchInSequenceState : state 2(out area) DetectTouchInSequenceState : state 2 DetectTouchInSequenceState : state 3(out area) DetectTouchInSequenceState : Switch to enable Touch Function. DetectTouchInSequenceState : Switch to disable Touch Function. DetectTouchInSequenceState : state 3 DetectTouchInSequenceState : TimeOut. state return to 0 DetectTouchInSequenceState : lLastPostY = %d DetectTouchInSequenceState : lLastPostX = %d DetectTouchInSequenceState : lTempY = %d DetectTouchInSequenceState : lTempX = %d IDP : Leave dispatch origin data routine ReportMouseData.ExtraInformation 0x%x m_ucDeviceID 0x%x m_DeviceType 0x%x ucTouchStatus 0x%x ReportMouseData.LastX %d,ReportMouseData.LastY %d ulWidth 0x%x,ulHigh 0x%x do New rectangle gesture. Multi-Input 2: %d, %d Multi-Input 1: %d, %d %02X Multi-Input DispatchOriginalData : Write to EDO Len %d. DispatchOriginalData : Get Button Status CMD(CMD length is not correct %d). IDP : we got a command packet IDP : Need to parsing length = 0x%x IDP : Enter dispatch origin data routine rcBoxArray.bottom %d rcBoxArray.top %d rcBoxArray.right %d rcBoxArray.left %d cy %d cx %d pActiveArea->rcBoxArray[%d].bottom %d pActiveArea->rcBoxArray[%d].top %d pActiveArea->rcBoxArray[%d].right %d pActiveArea->rcBoxArray[%d].left %d pActiveArea->ulNumsOfBoxes = %d prcVirtualDesktop->bottom %d prcVirtualDesktop->top %d prcVirtualDesktop->right %d prcVirtualDesktop->left %d prcMonitor->bottom %d prcMonitor->top %d prcMonitor->right %d prcMonitor->left %d ShiftBit 0x%x PackMouseInputData pFormatData[ 0 ] 0x%x FilterLostPacket :pMouseData->ExtraInformation 0x%x (FilterLostPacket)pFdoExt->m_bLastButton4Down = %x IDP : Leave post mouse point routine RectangleAndRealMulti == TRUE (8)PostMouseState = %x (EDOPostMousePoint)pFdoExtension->m_bLastButton4Down = %x Active Area : EnableTouch Active Area : Post last Point and Touch UP(Real Multi) Active Area : Post last Point and Touch UP(Retangle) last touch state is up Active Area : Post last Point and Touch UP (Real Multi) USER ID(Real Multi) %d Active Area : Post last Point and Touch UP Active Area : DisableTouch do not limit in ActiveArea. TouchSeq disable touch TouchSeq enable touch Zfilter : enable Z filter Zfilter : disable Z filter Disable EdgeBtn EdgeBtn : Y %d EdgeBtn : X %d Enable EdgeBtn EDOPostMousePoint : m_ulTouchStatus = 0, set Touch Disable IDP : Leave post mouse point routine.because EEPROM failed IDP : Enter post mouse point routine EdoHookBeepEvent(%d)(%x)(%x) Leave EDO Reference pkBeepEvent EDO Reference pkBeepEvent: (NULL == hEvent) EDO Reference pkBeepEvent: sizeof(HANDLE) (%x) EDO Reference pkBeepEvent: DeviceIoControl.InputBufferLength (%x) EDO Reference pkBeepEvent: Buffer too small EDO Reference pkBeepEvent Leave EDO Dereference pkBeepEvent EDO Dereference pkBeepEvent SetRemoveEvent(%d)(%x)(%x) Leave EDOCleanAllRemoveEvent Enter EDOCleanAllRemoveEvent (EDOReferenceRemoveEventArray) EDOReferenceRemoveEvent(%d)(%x)(%x) (EDODereferenceRemoveEventArray) EDODereferenceRemoveEvent(%d)(%x)(%x) EDO Reference pkRemoveEvent EDO Dereference pkRemoveEvent EdoIoctlSetActiveArea : pEdoExt->m_pActiveArea ExAllocatePool size(%d) pEdoExt->m_pActiveArea->rcBoxArray[1].bottom (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].top (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].right (%x) pEdoExt->m_pActiveArea->rcBoxArray[1].left (%x) EdoIoctlGetActiveAreaBoxNum : pEdoExt->m_pActiveArea->ulNumsOfBoxes(%d) SetBtnEvent(%d)(%x)(%x) Leave EDOCleanAllBtnEvent Enter EDOCleanAllBtnEvent (EDOReferenceBtnEventArray) EDOReferenceBtnEvent(%d)(%x)(%x) (EDODereferenceBtnEventArray) EDODereferenceBtnEvent(%d)(%x)(%x) EDO Reference pkBtnEvent EDO Dereference pkBtnEvent SetHWeelEvent(%d)(%x)(%x) Leave EDOCleanAllHWeelEvent Enter EDOCleanAllHWeelEvent (EDOReferenceHWeelEventArray) EDOReferenceHWeelEvent(%d)(%x)(%x) (EDODereferenceHWeelEventArray) EDODereferenceHWeelEvent(%d)(%x)(%x) EDO Reference pkHWeelEvent EDO Dereference pkHWeelEvent reply ulHWeelStatus 0x%x IOCTL_REFERENCE_BTN_EVENT IOCTL_DEREFERENCE_BTN_EVENT IOCTL_REFERENCE_HWEEL_EVENT IOCTL_DEREFERENCE_HWEEL_EVENT IOCTL Others IOCTL_DEREFERENCE_REMOVE_EVENT IOCTL_SET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_GET_HWEEL_STATUS IOCTL_REFERENCE_EVENT IOCTL_DEREFERENCE_EVENT IOCTL_REFERENCE_REMOVE_EVENT IOCTL_GET_ENABLE_DETECT_TOUCH_IN_SEQUENCE_FLAG IOCTL_GET_TOUCH_FUNCTION_STATUS IOCTL_SET_TOUCH_FUNCTION_STATUS IOCTL_GET_ACTIVE_AREA_BOX_NUM IOCTL_GET_ACTIVE_AREA_INFO IOCTL_GET_LAST_POINT_TICK_CONT IOCTL_HOOK_RAW_POINT IOCTL_HOOK_CALED_POINT IOCTL_HOOK_CMD IOCTL_REMOVEALL_HOOK IOCTL_SET_ACTIVE_AREA IOCTL_CLEANUP_WAIT_REMOVAL IOCTL_GET_BEEPINFO IOCTL_QUERY_COMM_NAME IOCTL_GET_VERSION IOCTL_WAIT_REMOVAL IOCTL_SET_BEEPINFO IOCTL_UPDATE_MONITORINFOnIOCTL_SET_EDGEINFO IOCTL_GET_EDGEINFO IOCTL_SET_CONST_TOUCHINFO IOCTL_GET_CONST_TOUCHINFO IOCTL_GET_MONITORINFO IOCTL_SET_MOUSEMODE IOCTL_GET_MOUSEMODE IOCTL_SET_LINZINFO IOCTL_GET_LINZINFO IOCTL_SET_MONITORINFO IOCTL_GET_CALINFO IOCTL_SET_BRACNHFORMAT IOCTL_GET_BRACNHFORMAT IOCTL_GET_OIRENTATION IOCTL_SET_OIRENTATION IOCTL_SET_CALINFO EDODefaultDeviceIoctl FDORegisterCallback end--- Hooked=%d FDORegisterCallback : pTempList ExAllocatePool size(%d) FDORegisterCallback begin--- Hooked=%d FDOUnRegisterCallback end--- Hooked=%d FDOUnRegisterCallback : FreePool FDOUnRegisterCallback begin--- Hooked=%d Leave identify device type FDOIdentifyDeviceType : ustrHardwareID.Buffer FreePool It is a SERIAL device ACPI\SERENUM\USB\We got a new hardware id , and compare it FDOIdentifyDeviceType : ustrHardwareID.Buffer ExAllocatePool size(%d) Enter identify device type FDOOpenPort : Internal DeviceID = %d FDOOpenPort : pFdoExt->m_pPort ExAllocatePool(NonPagedPool) size(%d) FDOOpenPort FDOClosePort : release DeviceID = %d FDOClosePort FDOOpenEDO : ustrDeviceName FreePool FDOOpenEDO : ustrSerialNo FreePool FDOOpenEDO: Create EDO failed #EDOFDOOpenEDO : pEdoExt->m_ustrSymbolicName.Buffer ExAllocatePool size(%d) FDOOpenEDO: init EDO failed. \Device\EDOFDOOpenEDO : ustrSerialNo ExAllocatePool size(%d) FDOOpenEDO : ustrDeviceName ExAllocatePool size(%d) FDOOpenEDO EDO PrepareDelete. FDOCloseEDO : Decreaseing Reference call by NotifyToRemove and Destruct FDOCloseEDO FDOStopEDO OnFDODefaultHandler DebugLevelForceRedirectedLeave start device Enable Device Interfce done Going to Enable Device Interface Empty Port's StartDevice Do port start device GetCommName Success GetCommName Failure TouchSendSyncIrp is success Enter start device xTouch : Leave remove device xTouch : IoReleaseRemoveLockAndWait is called FDO PrepareDelete. xTouch : Do port remove device xTouch : Enter remove device Leave stop device Enter stop device Leave surprise remove device OnPnPSurpriseRemove : return status not success. Enter surprise remove device Leave OnPnPQueryRemoveDevice OnPnPQueryRemoveDevice OnPnPCancelRemoveDevice IRP_MN_SET_LOCK IRP_MN_QUERY_PNP_DEVICE_STATE IRP_MN_SURPRISE_REMOVAL IRP MN Others IRP_MN_EJECT IRP_MN_QUERY_CAPABILITIES IRP_MN_QUERY_RESOURCE_REQUIREMENTS IRP_MN_READ_CONFIG IRP_MN_WRITE_CONFIG IRP_MN_QUERY_INTERFACE IRP_MN_QUERY_DEVICE_RELATIONS IRP_MN_CANCEL_STOP_DEVICE IRP_MN_QUERY_STOP_DEVICE IRP_MN_CANCEL_REMOVE_DEVICE IRP_MN_QUERY_REMOVE_DEVICE IRP_MN_REMOVE_DEVICE IRP_MN_STOP_DEVICE IRP_MN_START_DEVICE FDO: IOCTL_INTERNAL_MOUSE_CONNECT FDO: IOCTL_INTERNAL_MOUSE_DISCONNECT FDO: IOCTL_INTERNAL_MOUSE_ENABLE FDO: IOCTL_INTERNAL_MOUSE_DISABLE FDO: IOCTL_MOUSE_QUERY_ATTRIBUTES FDO: IOCTL Others Increase FDO Ref IoAcquireRemoveLock not success, Fail IRP OnFDOCreate DecreaseRef FDO Ref. OnFDOClose OnFDORead FDODefaultWrite Serial : Powering Up! Clear Power down Event Serial : Powering Down! Trigger Power down Event xTouch : Enter FDODefaultSetPower Power : Leave OnFDOWaitWake Power : Enter OnFDOWaitWake Power : Enter OnFDOPower UsbPort : after set configuration NULL UsbPort : before set configuration NULL PnpUsbRemoveDevice : after abort and reset pipe PnpUsbRemoveDevice : before abort and reset pipe PnpUsbSurpriseRemove : after abort pipe PnpUsbSurpriseRemove : before abort pipe UsbPort : Assign task usb infomation fail !!! UsbPort : Get usb information fail !!! UsbPort : Init Cmd Fifo success UsbPort : Init TX Fifo success UsbPort : Init RX Fifo success UsbPort : Leave usb stop device UsbPort : After release fifo UsbPort : Before release fifo UsbPort : After stop thread UsbPort : Before stop thread UsbPort : Enter usb stop device UsbPort : Leave UsbGetUsbInfo UsbPort : Leave AllocatePipeResources UsbPort : Enter AllocatePipeResources UsbPort : Leave QueryTotalNumsOfPipes UsbPort : Enter QueryTotalNumsOfPipes UsbPort : Leave ReleasePipeResources UsbPort : Enter ReleasePipeResources UsbPort : Leave QueryTotalNumsOfInterfaces UsbPort : Enter QueryTotalNumsOfInterfaces UsbPort : Leave ReleaseInterfaceList UsbPort : Enter ReleaseInterfaceList UsbPort : UsbSetConfiguration Fail UsbPort : Leave SetConfiguration UsbPort : Enter SetConfiguration UsbPort : UsbGetConfigurationDescriptor Fail UsbPort : UsbGetDeviceDescriptor Fail UsbPort : Enter UsbGetUsbInfo UsbPort : Build DeviceIoControl Irp Fail Get Device Descriptor Fail !!! UsbGetDeviceDescriptor : pDescriptor->bNumConfigurations = %d Get Device Descriptor Success UsbPort : Descriptor Allocate Fail !!! UsbPort : Get CfgDescriptor ( 0x%x) Success UsbPort : Get CfgDescriptor Fail !!! UsbPort : CfgDescriptor Allocate Fail !!! UsbGetConfigurationDescriptor : Configuration descriptor length = %d UsbSetConfiguration : success UsbSetConfiguration : after submit select URB UsbSetConfiguration : before submit select URB UsbSetConfiguration : pEPtDesc == NULL ( fail ) UsbSetConfiguration : after USBD_ParseDescriptors UsbSetConfiguration : before USBD_ParseDescriptors UsbSetConfiguration : pSelUrb == NULL ( fail ) UsbSetConfiguration : after USBD_CreateConfigurationRequestEx UsbSetConfiguration : before USBD_CreateConfigurationRequestEx UsbSetConfiguration : ulNumsOfEndPoints != 1 ( fail ) UsbSetConfiguration : after USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : we got a new pIfDesc and store it UsbSetConfiguration : pIfDesc == NULL UsbSetConfiguration : after call USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : i = %d UsbSetConfiguration : before USBD_ParseConfigurationDescriptorEx UsbSetConfiguration : Enter UsbSetConfiguration : Leave UsbSetConfiguration : free pSelUrb UsbSetConfiguration : fail and free resources UsbPort : Leave UsbQueryTotalNusOfInterfaces UsbPort : Enter UsbQueryTotalNusOfInterfaces UsbPort : Leave UsbQueryTotalNumsOfPipes UsbPort : Enter UsbQueryTotalNumsOfPipes UsbPort : Leave UsbAllocatePipeResources UsbPort : Allocate pipe resources fail !!! UsbPort : Enter UsbAllocatePipeResources UsbPort : Leave UsbReleaseInterfaceList UsbPort : Enter UsbReleaseInterfaceList UsbPort : Leave UsbReleasePipeResources UsbPort : Enter UsbReleasePipeResources UsbPort : Leave UsbReleaseUsbInterfacePipeResources UsbPort : Enter UsbReleaseUsbInterfacePipeResources UsbPort : Leave UsbReleaseAllUsbResources UsbPort : Enter UsbReleaseAllUsbResources UsbAbortPipe : return fail UsbAbortPipe : return success UsbResetPipe : return failUsbResetPipe : return successUsbRxComplete : Leave UsbToComRxComplete UsbRxComplete : Enter UsbToComRxComplete UsbRxThread : RxThread Terminated due to m_PnPState not started UsbRxThread : Usb urb error = READ_URB_ERR UsbRxThread : Receive the stop Event 0x%02x 0x%02x UsbRxThread : Copy read data to RxFifo UsbRxThread : Receive %d bytes UsbRxThread : PipeHandle = %x UsbRxThread : Usb urb error = %x UsbRxThread : Rx thread loop start ! UsbRxThread : Pipe Handle = %x UsbRxThread : Transfer Size=%d UsbRxThread : Polling Interval=%dms UsbRxThread : UsbPortRxThreadRoutine is Running UsbRxThread : UsbPortRxThreadRoutine Fail due to no more memory to allocate Irp. UsbTxThread : AllocateUsbControlPipeIrpAndUrb Failed for URB UsbTxThread : AllocateUSBControlPipeIrpAndUrb failed for IRP UsbTxComplete : Leave UsbToComTxComplete UsbTxComplete : Enter UsbToComTxComplete UsbTxThread : Free Write Irp UsbTxThread : Free URB UsbTxThread : USbToTxComThread Terminated due to device not started UsbTxThread : Leave pending Wait ( exit thread ) UsbTxThread : the stop event was setted UsbTxThread : Stop Event was setted UsbTxThread : Write Done UsbTxThread : Pending Wait - ok UsbTxThread : Enter Pending Wait UsbTxThread : Read No Data UsbTxThread : UsbToComTxThread enter Wait Data Objects UsbTxThread : m_pOP = 0x%x UsbTxThread : m_ulWrite = 0x%x UsbTxThread : m_ulRead = 0x%x UsbTxThread : m_ulLen = 0x%x UsbTxThread : m_pBuffer = 0x%x UsbTxThread : UsbToComTxThread is running UsbTxThread : AllocateUsbPipeIRPandUrb Fail !!! UsbTxThread : pPortBase = 0x%x , pTxFifo = 0x%x BaudRateBaudReate = %d !!! PnpSerialStartDevice: open edo failed PnpSerialStartDevice() Leave PnpSerialStopDevice() PnpSerialStopDevice() Leave PnpSerialSurpriseRemove() PnpSerialSurpriseRemove() Thread isn't stopped yet!!! SerialStopDevice (m_IsPnpDevice)! SerialStopDevice! DeviceSyncIoctl : status != STATUS_PENDING DeviceSyncIoctl : status = STATUS_PENDING SerialSetRTS : set RTS fail SerialSetRTS : set RTS success SerialSetRTS : status = STATUS_PENDING Leave init serial port Set timeout success !!! Set timeout fail !!! Set LCR success !!! Set LCR fail !!! Set baud rate success !!! Set baud rate fail !!! SerialReleaseIrp Enter read completion routine SerialAllocateRxIrp :Leave allocate rx IRP . SerialAllocateRxIrp : allocate rx IRP false. SerialAllocateRxIrp :enter allocate rx IRP . RxThread : Leave Rx thread RxThread : Stop event is setting SerialStartDevice:RxThreadRoutine --- Stop Event fired !!! RxThread : Leave DispatchOriginalData RxThread : Enter DispatchOriginalData Rx : 0x%02x Rx : 0x%02x RxThread : ulReadBytes = 0x%x RxThread : read event is fired SerRxThread : Power Down Event Trigger End SerRxThread : Power Down Event Trigger RxThread : KeWaitForMultipleObjectsRxThread : IoCallDriverRxThread : allocate rx IRP false. RxThread : IoSetCompletionRoutineSerRxThread : Power Status is DeviceDo! SerRxThread : Set m_ulTouchStatus =1 enable touch SerRxThread : Stop Event was setted SerRxThread : System Power Status is %X! SerRxThread : Device Power Status is %X! RxThread : EnterSerialStartDevice:RxThreadRoutine --- Running !!! kIrql > PASSIVE_LEVEL || NULL == pPortBase->pReadIrp write complete: Delete Pending Write IRP write complete: Device not connected. write complete: Cancel Write IRP Write data to lower success Write data to lower timeout write complete: Other status = %x Enter write complete routine Tx Thread : cancel Irp Tx Thread : Power Down Event Trigger End Tx Thread : Power Down Event Trigger SerTxThread : Leave Tx thread SerTxThread : Stop event is setting SerTxThread : Stop Event fired! SerTxThread : send 0x%x SerTxThread : get power down event SerTxThread : Stop Event was setted SerTxThread : System Power Status is %X! SerTxThread : Device Power Status is %X! TxThread : Enter SerialStartDevice:TxThreadRoutine --- running!!! kIrql > PASSIVE_LEVEL || NULL == pPortBase->pWriteIrp SerialIsDeviceExistingThreadRoutine : Leave IOCTL_INTERNAL_SERENUM_REMOVE_SELF is failIOCTL_INTERNAL_SERENUM_REMOVE_SELF is successIsDeviceExistingThread : ( ulModemStatus & SERIAL_DSR_STATE ) != SERIAL_DSR_STATE IsDeviceExistingThread : stop event is setting IsDeviceExistingThread : we got MSR %08x IsDeviceExistingThread : Enter SerialGetCommName : pFullInfo FreePool SerialGetCommName : ustrTempCommPortName.Buffer FreePool m_ustrCommPortName = %ws m_ustrCommPortName.MaximumLength = 0x%x return length = %d bytes ustrTempCommPortName get from PDO = %ws _DEVICE_ = %ws \DosDevices\SerialGetCommName : pFdoExt->m_ustrCommPortName ExAllocatePool size(%d) SerialGetCommName : pFullInfo ExAllocatePool size(%d) NativePortNameSerialGetCommName : ustrTempCommPortName.Buffer ExAllocatePool size(%d) SerialStartDevice:Fail to StartDevice - CmdFifo !!! SerialStartDevice:Fail to StartDevice - TxFifo !!! SerialStartDevice:Fail to StartDevice - RxFifo !!! SerialStartDevice !!! PS2 UsbFlushCmdPacket : Leave EDOMutex UsbFlushCmdPacket : Debug 8 UsbFlushCmdPacket : Debug 7 UsbFlushCmdPacket : Debug 6 UsbFlushCmdPacket : Debug 5 UsbFlushCmdPacket : Debug 4 UsbFlushCmdPacket : Debug 3 UsbFlushCmdPacket : Debug 2 UsbFlushCmdPacket : Debug 1 UsbFlushCmdPacket : Debug 0 UsbFlushCmdPacket : Enter EDOMutex 2.0V ResistiveRedirect : Update Data in Registry Redirect : SetEEPROM Addr=%02X, Value=%04XRedirect : Returned CheckSum = %04X Redirect : Get EEPROM Addr = %02X Value = %02X %02X UsbPort : Leave UsbInsertCmdPacket UsbPort : Enter UsbInsertCmdPacket \InformationEEPROM : Query Value Fail! Update Registry again EEPROM : Query Value Returned=%d QueryEEPROM : FullInfo FreePool EEPROM : Query Addr=%02X, Value=%04X QueryEEPROM : FullInfo ExAllocatePool size(%d) OnFDOSystemIoctl : EnterFDOWmiUnRegistration : EnterFDOSetWmiDataItem : LeaveFDOSetWmiDataItem : EnterFDOSetWmiDataBlock : LeaveFDOSetWmiDataBlock : EnterFDOQueryWmiDataBlock : LeaveFDOQueryWmiDataBlock : EnterFDOQueryWmiRegInfo : LeaveMofResourceNameFDOQueryWmiRegInfo : EnterxTouch : Leave FDOWmiRegistrationxTouch : Enter FDOWmiRegistration SerialFlushCmdPacket : Leave EDOMutex SerialFlushCmdPacket : Debug 8 SerialFlushCmdPacket : Debug 7 SerialFlushCmdPacket : Debug 6 SerialFlushCmdPacket : Debug 5 SerialFlushCmdPacket : Debug 4 SerialFlushCmdPacket : Debug 3 SerialFlushCmdPacket : Debug 2 SerialFlushCmdPacket : Debug 1 SerialFlushCmdPacket : Debug 0 SerialFlushCmdPacket : Enter EDOMutex SerialPort : Leave SerialInsertCmdPacket SerialPort : Enter SerialInsertCmdPacket SerialQueryEEPROM : FullInfo FreePool SerialQueryEEPROM : FullInfo ExAllocatePool size(%d) pMouseData->LastX %d,pMouseData->LastY %d IsNeedTransfer2Rectangle : end DO_NOT_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is not ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is ID2 NEED_REPORT_RECTANGLE IsNeedTransfer2Rectangle : is ID1 DO_NOT_REPORT_RECTANGLE(no ID2) IsNeedTransfer2Rectangle : is ID1 NEED_REPORT_RECTANGLE(has ID2) IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (don't init ID1)(0x%x) IsNeedTransfer2Rectangle DO_NOT_REPORT_RECTANGLE (init ID1)(0x%x) IsNeedTransfer2Rectangle pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp(0x%x) RealMultiReportRectangle:Clean status RealMultiReportRectangle:pDeviceParam->m_RealMultiRectangleStatus.m_bDropSecondUp 0x%x RealMultiReportRectangle:ReportMouseData.ExtraInformation 0x%x RealMultiReportRectangle:m_ucDeviceID 0x%x RealMultiReportRectangle:m_DeviceType 0x%x RealMultiReportRectangle:ucTouchStatus 0x%x RealMultiReportRectangle:Do not report this mouse event RealMultiReportRectangle:m_bNeedPostUp ==TRUE RealMultiReportRectangle: ucUserID 0x%x ucID 0x%x RealMultiReportRectangle: pPostMouseState 0x%x m_bNeedPostUp ==TRUE RealMulti: pPostMouseState 0x%x pMouseData->ExtraInformation 0x%x pFormatData[0] & 0x40 pFormatData[5] == 0x60 pFormatData[5] == 0x5f pFormatData[0] & 0x20 pFormatData[0] & 0x60 ReportMouseData.ExtraInformation 0x%x (gesture) EdgeBtnAction : WHEEL_DOWN 0x%x EdgeBtnAction : WHEEL_UP 0x%x EdgeBtnAction Y EdgeBtnAction X HWEEL_RIGHT 0x%x HWEEL_LEFT 0x%x EdgeBtnAction: pLastPostMouseData->Buttons = MOUSE_LEFT_BUTTON_UP; EdgeBtnAction: TouchDown == pDeviceParam->m_LastTouchState `))))v)(J)<).)))*))###### $&$0$>$P$b$z$$$$$$$%0%F%^%t%%%%%%%&L#6&N&X&l&|#&&&&''>'V'f'|''''''((,(F(d((((((8#&# #""""""t"r#&`#\"D"(&8";߂M4IRP_MJ_MAXIMUM_FUNCTIONIRP_MJ_PNP_POWERIRP_MJ_PNPIRP_MJ_SET_QUOTAIRP_MJ_QUERY_QUOTAIRP_MJ_DEVICE_CHANGEIRP_MJ_SYSTEM_CONTROLIRP_MJ_POWERIRP_MJ_SET_SECURITYIRP_MJ_QUERY_SECURITYIRP_MJ_CREATE_MAILSLOTIRP_MJ_CLEANUPIRP_MJ_LOCK_CONTROLIRP_MJ_SHUTDOWNIRP_MJ_INTERNAL_DEVICE_CONTROLIRP_MJ_DEVICE_CONTROLIRP_MJ_FILE_SYSTEM_CONTROLIRP_MJ_DIRECTORY_CONTROLIRP_MJ_SET_VOLUME_INFORMATIONIRP_MJ_QUERY_VOLUME_INFORMATIONIRP_MJ_FLUSH_BUFFERSIRP_MJ_SET_EAIRP_MJ_QUERY_EAIRP_MJ_SET_INFORMATIONIRP_MJ_QUERY_INFORMATIONIRP_MJ_WRITEIRP_MJ_READIRP_MJ_CLOSEIRP_MJ_CREATE_NAMED_PIPEIRP_MJ_CREATE;q@Oڗqe]Yi7N;$D4Ezb`[HRSDSb1JBb\e:\output\i386\sertouch.pdbuwffZ:X$./.F//,2T2,_X020Y|*\8()v*z+~,.(((:D^n&'ghphh~g~gr#ghphh~g~g=ghphh~g~g4|Ny{}ހ̼V$Lp~Dhnnnn22@ffffffff  bXctccdfdeeef`f( tT4x`L<$ v^XnV   42>U,2F||.DDbv|@x^\   B!!$P$b$z$$$$$$$%0%F%^%t%%%%%%%&L#6&N&X&l&|#&&&&''>'V'f'|''''''((,(F(d((((((8#&# #""""""t"r#&`#\"D"(&8"?DbgPrintKeWaitForSingleObjectKeInitializeSpinLockKeInitializeEventInterlockedIncrementKeSetEventInterlockedDecrementIofCompleteRequestbIoReleaseCancelSpinLockInterlockedExchangeIoAcquireCancelSpinLockeKeReleaseMutexKeInitializeMutexKeInitializeTimerKeInitializeDpcOmemsetKeSetTimerqKeRemoveQueueDpcKeCancelTimerDPsTerminateSystemThreadKeWaitForMultipleObjectsKeClearEventObfDereferenceObjectGIoOpenDeviceRegistryKeyMZwCloseExFreePoolZwQueryValueKeypExAllocatePoolRtlInitUnicodeStringKmemcpyRtlWriteRegistryValueMRtlQueryRegistryValuesIoDeleteSymbolicLinkRtlCreateRegistryKeyZwOpenKey[RtlAppendUnicodeToStringZRtlAppendUnicodeStringToStringdRtlCheckRegistryKeyKeInitializeSemaphorefKeReleaseSemaphoreIofCallDriverObReferenceObjectByHandlePsCreateSystemThreadYIoRegisterDeviceInterfaceIoDeleteDeviceIoDetachDeviceIoAttachDeviceToDeviceStackIoCreateDeviceKeTickCountRKeQueryTimeIncrement_allmulExEventObjectType:IoInitializeRemoveLockEx#IoGetDevicePropertyvIoSetDeviceInterfaceStateIoCreateSymbolicLinkRtlIntegerToUnicodeStringdIoReleaseRemoveLockExRtlFreeUnicodeStringcIoReleaseRemoveLockAndWaitExIoAcquireRemoveLockExPoCallDriverPoStartNextPowerIrpIoFreeIrpIoBuildDeviceIoControlRequestRtlFreeAnsiStringRtlUnicodeStringToAnsiStringRtlxUnicodeStringToAnsiSizeNlsMbCodePageTagIoAllocateIrpIoCancelIrpKeDelayExecutionThreadObReferenceObjectByPointer"IoGetDeviceObjectPointerKeSetPriorityThreadKeGetCurrentThreadIoWMIRegistrationControlKeBugCheckExntoskrnl.exeRtlUnwindcKfReleaseSpinLock`KfAcquireSpinLockTKeGetCurrentIrqlaKfLowerIrqlbKfRaiseIrqlExReleaseFastMutexExAcquireFastMutexgREAD_PORT_UCHARmWRITE_PORT_UCHARHAL.dllWmiSystemControlWmiCompleteRequestWMILIB.SYS USBD_ParseDescriptorsUSBD_CreateConfigurationRequestEx USBD_ParseConfigurationDescriptorExUSBD.SYS 8Ph  3a0MOFDATAMOFRESOURCENAME4VS_VERSION_INFO " "?zStringFileInfoV040904B0 CompanyName^FileDescriptionSerial Touch Device Driver\FileVersion5.11.00.8918 built by: WinDDK: InternalNameserTouch.sysZLegalCopyrightCopyright (c). 2000 ~ 2011B OriginalFilenameserTouch.sysFProductNameSerial Touchscreen> ProductVersion5.11.00.8918DVarFileInfo$Translation FOMBQDS}TQB iD 䂉 ! -L p !JH*BB([vDI`F*hr7 <ѐt>DchGy8' FH0DY3`cd%BX`PQ 8#[HBL1a6 %J8T"xFѣDl <#:s rd <3,w ?D vOy& c`X 5n?pzNxGtp9̑= 4{>DO?:AFfh|$0BH~{>Jd!'A'|8yZeBj>*(P2,jhOoF~n0ıP L"9$7aCuhl0/"a N!y0X9m9p NjGG;دh8}U F> >G>?? 00J0l0001"1c1}1122"252f2222 33%393U3333 4%4?4Y4444445E5g5555526\6r666666677i7777778T8y888889)9:9]9|99999 :W::::;;9;a;;;;<<='>7>G>W>n>>>>>>>>>>??0080H0j000171G1W111111252b2|2222213>3e3s333333,494a4o44 55!505R5]5u555'646A6P6r6}666$7.7;7J7l7w7777 8'858z8888888 9)9p9}999999:':q:~:::;K=k======>j>>>>??0?L?z??????@00!010M0{000001|11111111112"222222222 333333333334Q4Z4j44444445 55-575G5c5555 666/696L6h6666777d7y777778!8&8.8t88888991969>99999 ::&:A:F:N:::::;&;6;Q;V;^;;;;;-<6*>7?G?W?g?w??????????PD00*0<0N0`0000001G1_11111112G2R2x2222223=3d3q33334'454{4444445515?55555556656C6666666777_7h7x777788,8\88899Z9999G:L:Y::::: ;R;p;;;;;;<,<=> >+>6>A>F>T>Y>c>m>w>>>>>>>>>>>>>?`001112#2A2_2223&3@3334H4{4445y555555$6N6c6~666667747W7p777778=8R8_888888%9:9H9Q9w99999:(:W:::::::;&;:;F;L;T;Z;`;q;;;;;;;;; <<<<9K>s>>>>?/?W?q??????pD0c000M111112C2x2~222=344m556666667; <x11g22^4}4u9999;/;N;l;v;;;;;;<<,(>F>_>>>>>?4?J?r?????0040B0`0t00000000000111 11111'2D2222 33333345535\5J6b6z6666774738K8c8{88809U999::T:::2;C;;;4> >>>>>>">[>q>>>>>H????t0T0w0000$1e111/223334456657}78B8c888 949N99::::;+;C;[;s;;;;<<:>xP1j112263S3Y44<5U5777N889|99X::;z;~;;;;;;;;;$<(<,<0<4<8<<<@C>Z>>>>???p%0000A1q112I3c3354c44 5C5l555 6F6J7W77778,8889h:::-;y;;<<=%=q==p>>>>? ?&???0:0]0t00000 1n11122L2|222223&3B3S33334:44445O5~555d6667N7l777789N9_9{99999:%:u:::: ;;;;;!>/>O>n>>>>>,?;?r???L0g00001[111212J2t22 3/3U3{3334=4c444 595_5555686Z6|667>7[7o77777!8G8`8889&9L9e9999:):=(=t=====:>>>> ?3?N??0!01000%191a1t1111111 2B2O2`2222223 303@3R3t33333333#404=4J4W4g4w4444444#5D5V5i555*6m666666677Z7q777777P8`888888!9N9p999 :$:I:::::;C;y;;;;;92>@>L>]>>>6?W???0,0@0001J2X2k222222 3#3:3Q3h3333333 44,4B4444444444444444444555 55555 5$5(5,50545T5b5v55B7S7f7777777o8888889K9d9v999:&:7:K:^:|::::::; ;2;R;i;{;;;/V>i>>8?,0f000J111 2B2f2222&3:3m3333B4^4444445+5I5]5555556#6?6R6g66677=7J7777 8888899%9:9H9q999999:%:>:N:^:o::::::L;q;;;;C<<<<&=2=e====L>>>>>?*?O?|????? 0$0L0011*1111122~22222v333333f444445E5g55556$636D6W6m666666 777777I8k888889.9F9^9v999997::::::;;-;?;[;;;;;;;;< < q>>>>?A?????00060J0U0=1W1a1111111S2p22223$3\3l3333424r44444H5b5i5o555556+6E6i6666667(767O7o7~777778-8M8v8888 9"9P9d9z9999999:G:[:i:v::::::;#;z;;;;;<<<5|>>>@00&0<0~0000000-1=1o1111112G2Q2222=3N3X3p3333334;4x44444P5y55555686o66 7$7H7{7777.8i889?9h9999:::);>;};;;l<<<"=B===>!?&?3?U??P 0N0d0i0v001$1l11111 22>2 3333"3-333:3@3F3K3R3V3\3a3333334#4.464=4C4J4P4V4^4f4o4u4}444555?5S5555556$6`666667H7x778-888H8u888888889E999993::: ;2;X;~;;<<<<=S=h==B>>>>?_???`[0`0m000Z11111 2=2^222233D3X3x33:46s6666/77777 8%8?8X880999,:J:g:::;Q;k;;;;<<=-=J==;>>>?.???pd20`00001K1h11222223b3|3333484s44445(5H5N5\5h5t55556637L7m7y788888844 558000 00000 0$0(0,0004080<0@0D0H0L0P0T0X0\0`0d0h0l0p0t0x0|000000000000000000000000000000000111 11111 1$1(1,1014181<1@1D1H1L1P1T1X1\1`1d1h1l1p1t1x1|11111111 33333$3(3,3034383@3D3H3L3P3T3X3\3`3d3h3l3p3t3x3|3333333333333333333333333333333444 44444 4$4(4h44444444444444444444445 55555 5$5(5,5L5P5T5X5\5`5d5h5l5p5t5x5|555555555555555555555555555555555666 66666 6$6(6,6064686<6@6D6H6L6P6T6X666666666 000$0-040