From ecf9e01ef5dcfedee1b05d1d60bf32bd7043e381 Mon Sep 17 00:00:00 2001 From: mchr3k Date: Tue, 17 May 2011 12:44:30 +0100 Subject: [PATCH] - Add code for relaunching the InTrace Output window. This doesn't work yet. --- intrace.ecl.plugin/icons/intrace-editor.gif | Bin 872 -> 856 bytes intrace.ecl.plugin/lib/intrace-agent.jar | Bin 361619 -> 361619 bytes intrace.ecl.plugin/lib/intrace-ui-helper.jar | Bin 101540 -> 102798 bytes .../ui/launching/ConfigurationDelegate.java | 23 +- .../ecl/ui/launching/ConnectionHolder.java | 3 +- .../ui/launching/ShowInTraceOutputAction.java | 444 +++++++++++++++++- .../intrace/ecl/ui/output/EditorInput.java | 10 +- .../intrace/ecl/ui/output/InTraceEditor.java | 39 +- .../intrace/client/gui/helper/InTraceUI.java | 24 + 9 files changed, 499 insertions(+), 44 deletions(-) diff --git a/intrace.ecl.plugin/icons/intrace-editor.gif b/intrace.ecl.plugin/icons/intrace-editor.gif index 09cab8c96ee254df5d24744e7c007ace75537443..598f54f3ce62927dd7fd0e1b00517220fc5f0b32 100644 GIT binary patch delta 83 zcmaFCc7tsLFSEA}0}u!RAp?gk13QO|$A$$5n>mElSPpDZWN6{%cAKKHA1QrSjwagNAkiMY$<2 zK0I{k7G+Plk`d6*z#y&c#-k~u?AXW6xFBTaCzX?v_@X!I>ec4AuYw C2qG5% diff --git a/intrace.ecl.plugin/lib/intrace-agent.jar b/intrace.ecl.plugin/lib/intrace-agent.jar index 0bcbc5baa21bce87c08a309b25ccf80408c56a5a..15bd20093a3d1d2d24bdcc71741f2c86332b5d08 100644 GIT binary patch delta 2958 zcmY+Gc|4SB8^_IzC(FU(Od%{Ry!*4Iv7P>zb5ElVpEiYM@8)j)={r_orYj~E}T5vhYz;v_ZRFK!^=B%Tc zz|)2uuJ5Dr`WzBdzw8ac3?dHO-y=d0-`_0mDuz)D;VtAeE`s+pa&Nph z;~f_qFU>AZWq+B$mW;AN6e@7{=345hN+y(sDc*8AB&oF2BNtcxs_44^is8223e6#z zArsUmnHzdDO*blSkD&cyJm*}vAwsxsE%AOsXzRC_mV(uhIIMR{D5g&}-|W-Eu%K^9ou%Fp{^j$EF`I*$Qq3L}{On0_ zdfWQlteD8}TpB}i6y|tBaw)nkQ2;oL^yf->4dMIUn z6Yr3B@fJMUP`t`js`XYri5KXuD);shTIw$m$8SK9g>^BN210JQ?zMC0>73)Wik9%$ zW3&FL+JMx(2M%S2sBa{f(mm?3F6B($Sb@`RMH#fKp( zw~J=b={gR-QL?ygSZcMLH)r3UA(th8H{uk;=Q;b01eq+@S-mAu3-8$4r-aW~AvJ@D zEVL{>Dg|wD%Ap(wG%Sb@Yj~=Ax!e?L1TNee7DS%MeOxim9Drfe$+U88Y5u_uQaj6)wWfK8h0NtU1j;A@e#>O z^+4~$`futqFKj+>4Rl5)01VS`uc({NaW3*|Vy{0&go$8U+xoI%uL~S?yph>$Nn#Bd zapxV>z51@&7rT4=f@YF<*_vB)x_%+?ujRuI=6gv?sZ_6}Os@nX;Ei|Q1ctHh3`v(B zrDdwFbDOZ>!m-XWh%Y zH{!EVMrjZFgGJKePrtxu@Im!L=egkM0#z*!N61P*vDxf73Crmc<d zsaP;vsl-#&P9Cr&%fiDlHe%h!Y!jkXp_+UO73||U*KmHLR15nA-iuf74tmg2eha^N zrFP!>UgWu)<6G~Igoc7LC5ao|b&sE0)LKkmvlyXQN!mu{LY(Ct{m(e@byN*~7RMbe zr3h^(W^lQf3Vq1*Q+hym5(gAt1O_ygJ{ERwn%c!B$0iL^LnYoQiS0c8-cP6Ev5N++ zmRl$cPHNKJPvk?n#M=4xB8B5!xa$6DLx$yt=VdjTyy}XbS*~B7&XKomk(FhJVcm~N zZ6>EyP(NGmxn6ENT1V*ra0@6#-i-m^Q!_p0sm)%jZt1CQf~>AB zy|rT&-PbNZGQ6d%WAm&r=?M1kqKva%?J6{9w`)fsJzmRoGPH>_=0~X*^nwvsziLUbj4+je)9mUA}1 zHMuYH>&Xf$X{U%+B8@^#Y8VQYLk&jvfqgJa`YW+|EU7umu|68^*p!qtA2|Wd79e$% zN#``gjWyMckju8sYa&)eTjIv;$92^cU`_k(TSeb~y*Q!9mbbb%_Lfu=HLRLADzU(p zkw?Jhw^~>oK09sVhxIQs{`SY%*B!Suio4G>gn!;$|FQP>yM~`kuN-M#6LF}&!@#B4 zR(#r$xk@6ZGeoC*3|(ZNK^0XF#k6i-3cf`Zu zg-SY&b4D#MU9qrT-^TQLN7gJqHxFCu9{wzg?KwKnH*W1lM%!~&N;J?5k{^r-@jN2( zq&%CiDi+Qvfnp`Nx=QyTKkq$umi_yU(!;*R4r4;sv86*WPKy#sy+8^p2pHs1b`YE- zk_5q=IUPqR2)g)`iyZV8RyAT|NaKGampn@+$ z5+<>1gevS|*u(ubJj1ebff=3n0SE~B@%jggnND0-FVyZ!78Vg6@&t1z!wC#3J?H7v&83u1m@J2S#O$dg)t5ePn7fE5$!8?*rW v!Ow8t2w;PQu_x9*IRs3bz6uD}hnxp49thp80M8*XWnb7~2WjdCP$TePX$&?g delta 2944 zcmY+Gc|26>AIHs%V;Q^bdzPz0c4m<6W^5T(Vq^(fCWd6+Vhn@pcQwUeB3CIbGGxsz z`_gbFM9NmkPNA~pn&aO4dv*SK-p}{*{eI4Kp69$?&zGDcKu!_h_{|c=2xp)_*HI;D z94GM6s1p4#lJDZwVF(3bVBk9(txPT$DVd{D%2q~bbCikgh0|83L~ELFn+kUW+a{OJ zBW701l#g9~Tlq8GEGIV|wO)_$j4nx?Ox%m{I)5dgak;g3xp$eTn@fni*UY_dT>R?k z6!n3DSvV}(B(3b6y+!aFW+D;Yq+i~Iw@GZ^yD{1@X)e~tVR^ls7|h39zL;2H+bpct z6B{q&R7SLkw16m{5=u*7e3Sj_$kwx`%<0$=L`3Ujp$ff3-Jq{?wsTE;72gCzU63kv z7j?1DJ|PeL!Z4Kjx|YV%Y#!ro%KX^mZLR6tmE*It$^L%C@w0nFj;piZKT;H^f`wlg z7slWn!q~~5wuWp8k%1j<5jhZ|0FHMds;q}|eJSBi-xuV!5Cweju@T`j7=cTXJVNKB z3`MvJaeKxyfcaTtF%RDkE|#E`+exps79AC-;ltznw`KibC+SII zn{bVX?@Y;N_e@O1>J0S|KHJbcOab>*74Bu~A-x<(hFWJF2LI&Jqn-3#@>cBPYWR{d zcE?FbgfOe~_Nz_$c|OIq=XsgtRHGu2&>MIqaV)Aq+NTn))FE$@s8AXlnKK8G>2&gq z4nj+vdFBlF%numLkgIZR>oob%dv^ndeCVz&KATk-5>qe~q;A^%iLCx7@5Rc=eFUYDCJdL%b6NiwyB_J@YSoyo8_%WuD+@kg&pM!f1c7JH{GDamf^sCt?ZpS*_p3 zlGXz~*}ha&ER}yvqYd8Sf8S91_6b^YFp%L4R5uIuG#}$uWpiREjko(f(Z=lH zmKUvV_^pS9za(dIyV2e)qkPJPWloIc!L22ZS^)Q2?bjPn+~C$#ndm5`WO=?7hy`wk zNtyvK5V@1YVKK{{G@R8|xw-rCHdmKO9-o6r&~_cFYa+{1`X*1Nv;nV~_RAE}gseUj zlEh#jpEWCW9oEK{j(FraW3zW#D_4^m7dCQ1F3{QBBjT47?<-1T`^2hM+PyCJmq{+x zr}8-Y&oy75!lA{UX_b$E zTQBG@*cay#`N;t=lKT*=`tzeuO31pRgg?C-n*1pg7KAg7ikRMB&ERx+#IAvfvjc@%} zn{&gxq;Sjp`lI+z*1Jm)R&p+_)Hm$7&=ey^6-w#5;G!AE%Ry1oI;9BYiE}xjfR*uX zp;}!)NA!671wqkF$b%%T@G-xd#TKGSr5MsVFXz^!P;Wa2yI)a-JH?;I%dr;21^BWX zUgDpCw2G$-hAwQxx}MM5N-xx|Zo_CW+n*zXvM1K%tZ4~;%A>Bb1(MaC>n4a z-#dZn%Ah_77Vxhc7rlRx+U9SFaO_9&e3;MoQz)}-uiHO}8#bb%Nh7@;Df&4L@#z~Q zrB(h;K)ue7#JT5R3Ak?OE?DrWHXeg4I91}FdtwX9u6e% zi)FVBd|oYqqp&KMS_Uf+1ECx!AU#;#gHm?Bu^#Kb;Swb&nyGbj%-g03xQ3NoE z>FH@f>h;@?@HvJU)b8iL2#(NV@7o66{e|&=*E;t@EWEu`^uc#wjCSHzJn1~AUi12j zho{8-#+%pXR7=*TJJzHy-`tgV7HE)AjSnoG9;umuP?-}SPJW5VaruVOwC3Jt4CH7a zLNlsIq$hSHQ+-AsPdERbWYu@2i%q3y`mJl{pS}N9<=RfB*sy%5u&doIZaYJzg$jEb#LMLx( zw(pqd9H58X?d`U#PuodM=qCU1Q9UB&363*>RJ|Xy!5)igsSmEvm>5PTa3u@3->erd zwie!|6=<~o{zLWt(2X<8f>qt0Pp246!>z1swgtbZmq$ODRk$wh{n7r?9x^0Bq_Ep0 zd(7z46ej-kc(aF`33kP;;oWC7P3HmHG)4zZV}1Lx4$1MK8+^3ycmuJWEV4&N^yEwNNS}2qgBbgbjo+zhkVRLMRd^ zPlPg)OG7!q+Llm8b}*xxFaQA|H^Jy=F;mGd%wUe;&5Q7VY>$eYv-v<_B)gU!1oES$ zqZbp3)IgKxMP)D$e4oW1*{+pVK|zzp6&m0;QK3&C6C^9EB`YC)%=Ah1T0JCm3?yt8 zw37oQl>(^dRgkXm!iwGKL^+IUP)e@=K($RUOspGJujw)pw&<+{Wm5$}aQxJFQIM*D zCa49f0-}&JlpCsm;Bk7paoCOh_pmcC{=?i1D@Gm=1~LJ1>?8!r2m7z1`zfFIr~EVu zL=BMpe-A@ZRs;AU9rP$ad5s02xT*o*fl)%#fZyo*M(Lu%;U7Q|Q3pIgh*Jl!AS|i_ zwqTB-2H*_BT@Ano1U60JDhSs#fnX56XdYJ44V|?BM{t8^NI;Y_qy;E}W{lc^D+u1& zfE}neX#>V!1q=aLgOVKrZ~~zM0bB+_2zeNxyM`fw^Z&YXrw(VqM+qRud?#%hlz2}_U|J1u`^;=zQ z^{@7R_EWnk11h!<3Q<`O90CsH@2AGBHUW_ay!y|;6A2C{Uz#vT{IB7N`tOj03d)4^ zXB3)pjeIi)2LaKAN(zF)O(V7j#j6hlbp-$WrTQC)V9_9P-&@lJ^wSyPTnSWlHz=i*3PiuG=|ICaL z1^zRmNU{$No^4iJ&q-qkj`U|kLgAjx7^GkzAnFiFTTIMJ8}!hCY;^^vIT4hAGl+JV z4GIMf8sg$&h)kY*MR)>~pJI_BWf&r4`Ch|1lvU$xw^e$R1lvy}je$JZ;Lj@II@Dw& zD0Maa8!H*y>{IOZzaKxwv_Sk?w1Pv=d{=5}0~PR>oC`x3*BexZ8R455?e(l#l9k?n zGNn|j@@_j}h*x?6_H&;N_oHf;v}9<8ka6WXVJ$lQr_TpRm*GQY-vj+bFc08gQ*%q=ISB721Dq>7*M;K3 zun#^Z47PO$#?D9~+cMm@#rs7zN5v{z7bu@%iEz63nL!(XxH*b#CGqUMcl4IR6SP`t zvT#!w_gojw2q~;gB>e^g9&J}+vl&rbJEYa++HKxrPL{itOC11 zm&^JOY?!9HAs1PqxSAAN8|iSEKUuIo>@jdO@c~Yu7to+-i7hA@#jV5(IVS1dGp*32 zzx9x8$38v*uIAcViat}sx8Ww_V^gD_+OA4DbXOb%F|CP)Pf8YqH8M-~ zK_!(Cg}Mt9P}V;t=QKEu84JZ0>12?P_47J+nN;Rm29Dw0!d1;0 z7IpXYX|lJA60-+1N&7($A^+cV1OxJyBI95#vAsVOl_hO5@dBpQ=0q@lH!&*E(k7D~ z!#vl6F-p^PL%_qN24~PRio-)Av5}r98!x*jCV%#S+vD+l+V921o%yym`t36*me~Os z&iCi2xz|=&^VZwr#oEWq+Zi`VlJXiU`3~nO3mFcgNd-7EE0ZX!8CWR_m3TUw8P1%^ zxUps*IjkGnAugazk%Qf^wz6)5&`P`8 z(Y@-pq&KuYxg6*^G6C0&sgc|vyjI3-(~AOZABZQi@mWk6i68`u4DoH}(1>6AKX~V^ zQ95ifzrVYUc*&$BTyXCE(hT4mSRLat!ao}g#QphTiDZ( zL*ZA$6*Es^&|;@u7A4%U2*)r`0ElMd^YuxV+n)JPTt`p3-MTmhG^AHdD~z#9_2&&rhg=s{lJ$g&RN_wT zN`l2FA=L779@%^s~W4;z@y4EPr#TI_18(INVQMFQklylYOgMf2!$XG z5AND;{O-9D$21;&*fG8uu*yo5vR<)qT}1kY-JKkn)N4usTCVpP47{FjMz`$m#CEX( z^H8Ixy=g6qW-IvU8;JM){H5SH_S60%friG6FR)$O+wiOY&#~LMMWJ|TwqjUz(te09 zpa9xyBG6AXlXHZf-$A|X?%p#WjmH7jg~!z>@LgX7o}t`&n@6Cw7Un6=Q1NX|(}x(> zsRUit3nA92KHQQ6+s$8Gas^g*-a>VTQcGV)M)kJA5mbot);u7%?I?tF%|9|o-7&j_ z|MvtCDas2)|2YA)kRVChOiZaxpwLN}%oG4NhNL?4jKq)a!Oy*Kta#`V$KP&Nh%Gwm z9rAu6pHcA>TU}+j9Zqh%yqv9hfkb&{4x%`gTT(%T*W+S@DU0b0>m%K@B=w3RH5(r& zi)suP#8MJ^;R54Yte{Ad3yqVA*`m1~Ur?J1rXLu7%kbNK;% zt^!&k)3#Dojnp0DJ9 z>9u+qvTioQ$)9i)epHo6#9OSb+)e@*n=0D#0MlyXmTXyCS#X)^2@qh3A5ITKjmD!f zPGnoKU(uULjkN%$_a2Flo7;9-Y0Au3g5a}-(ySd~S+-xmR{%d-p1xV`L7&I{HTvWk z`#w0?1Mo-bmY^a)&44S4f4$Fa+nvW|0rPzoZbRlQRA#Bz^3`llj}A$9f00H#yUZPMN; zfcdmuPsKA0UGE&d>0*|vtUsjj^V1G2NidUJqQJWBU}_q!v>Ipr8vF$P zxSTcdM0^p(gnC3#K8M7MN?jx}WHUehD>C~BXv+PtwtJi0Iy$2<+>&#)xx(rOMojYO zN%{elqiSx!+r&T$k7l8OdoEmlT;2!N{}L(qRqf>w@(+@5(0@}qfSt+A-o(uXvlvrv=C`lyPK@bk*z%dm8S(rD(v^7s8Nvd$z1kR!^_55YX?2l`mhL-u;_Y-lQ z#}JJkG4%Da>=U!sNw_5h{kQ^L z&18-f7&e^w`FKMh05KY;#l$$7w5fNag*n;Pd^C6OjAB&y2!FkdX1GzBr58ohE|yq{ z9btdWaMZQvwuO;l%_BrzvvgP6uFn8FCnaf2_m1aB3>D$YPg-Dv#D*q7f=Js0#$rq| zKgqQyy}CmibCb=;LuNLCd2QWbC#Ud51ZOsbEwFc7hPI;uFcx4GPod$2bTf`Zxpk~T zQ3;zZ+MrzJ-IVU(9@w-6U45ocTZ?PcZjn3v9o@E4pTl`>0B1-cYk(G=dfKD_9a~<0 zJ2i+Fz1bx!pMEOkTEmGHq{~ZYxo-u<{Oi(ypgHdBr=oX)Ul+~qy4=IaGad|2Ja(wd z?;|_;5mF=H0qOk$;&s2TtgNdSdk^Z&87qXao5)(8B;_z^pSCZn=V--4bQ$zgr?Svm zWeHS{G${?sLL+snY04;X#=>4^+Tj135L@0`BjCK~6oHmXd!HZB_{+E3pML1VG} zO0!H9t`2R6j@uM(6^+v>t78O^@&Y4eB8`qn9r$Jkz|Px^JfGmm^()TPc}pj!%Gn{Y ziK%fu)$=@B;_4Xfn70TP#s&h|Cky^4)A-bsd74#;omZcczbY@^V6)(23))o7qPoB>7z%eP5=`xA zgG`kNIOLPIejDOm_-4=mJR#}3npS8iwQ*hl<~B`!C%^>ZNFk=N;p~cTkDjl<;Stho zV*Lo7nLE2#^KFEwK&j!FQMbv&))u?+tyZxx!ZbjF;T<<%hgmwb+mz=0Lgajh#FIRr zps6ifXjS|^DsqoOMX<=Gf0JEgR)#OBmw{*<|KvC9e-6kW4J<@}4KP0aqrvZBlSF8k zl2|yQ0gajlUg(lIUz-?L%(G|l1|z|$&>S+cni$DKO+n4Td*e;fPqDw+bBWhocye2L zrKa*T?=N}h8|(UZTtj=Gecn7zQYAt}%J2+lC1v<*`3UDcnOQzgbpt-Zd&ux$JA&9< zdCE=TfIyvb>YBhoo=KZ$lq1R;mEdJ;H0{1Y01uOm_Rs;3P^=kc>>R9quSTh-0#fb> zDSem{X9d}h-L^=4x?8x0x00mQMkl{6<#-1B%qN9@){RURw62TARLlX14J6e&I7_%3 zBX)bO=aNChvD#MpXkBZ3k4uggr~Qq(_12^`*))eGEP6Q2S#UeSD}PJzUhTzlS4eb7 zz}mr}b9>)MosLTj#Fy~%4+(b_mGtR^T%O~;w5@L9TOPXs$ZP4qljFY$wT+E4>T zUP{Mwv-f1`W1LV5Km80^mBx~5N8t44Zo#F7#=7}40wl26C3uHt)08K|2B@d4=JI{V zt%6>f2hDE-J|q%NT<6zTFJC`Ym--DRpnvI^3XT-zt2OMJ8#tyHZkMEJugyoa;Vx2h z$R?5!U_10R_5{wr+czYx$TffOn2j$xa5Z*3?y|M*r`rc`AFjS&mmf%M%%*P4s@{ux znLnf)R%x1K0-p@b2x9+XT&LFG_=`%kh|fd&EdQ+OltVC20a6VVo7XQ*tI*X7AXsLb zi~>148|D>lsf&diJl`k4dEqVfO;g$uCtT!qmU*jDloK?JCg_`L-O&_ky+U@=3^C`3x_MnGpy) z<91n0g!d9Q>Ip@U+AiJd%Z&4p0f8g3RdS*F_~K>Cda6}&$Y8zAg$h2M_c3{DRRDS| zv=S1*MLFA*MpG9~y-Doqr>P_OXjNsIG9#;Ihd0%3sILi~mxZ-7aYO4UQu%UES@Vpa z$ivpHduE2OExZ+R{fc4{=7e=wL>xBm!+MMb=LY2o>2PsXFaD$TO+N`r0DJ24c5=OO z;`2MW2M0pdx!sFM-N&hhSRn4N4e13^w+hknioc}b@-hq=Uf*%@KV`BCHoUAo5{^|e zsoCoNl-b<;a7G1sj|-)hf3SWD?wRsV`+`+TeND6(=KoE&$9-+w2q)^1$TCwIiDhvh z!Q7tsREOjBzqDi?9L;$rHs}L{=_E z(_Og*<`P9wFL8&>VU&MWeN{~qCVuD1aPwbf%-@Ir*~u?e|C#i`!Tz6YsiQWhjPaX^ z#Kw%SF_>O#zN}cJf0wCBx>46;NRxPA+(V*oZ%2MDs&nO8B|9PTnwGr`n>m~PBSW9GWvL68QT z2BnXFo9q|2D(3?aV1)jXrkN7X>){8V6%I{%F!L8?TY;aeoN+uEbyv%q=={!@8 z)(FNdvSQc9oAv$i=vEzTc`G_#YxokulUZPSTJJOfXYUz}-%lTl^cBm@4tbJcb&rrUIf2n0QOL8Q@mEkJxcN4%EMH3S)@UdPw`c^0Q_BrF7sl%Ah%ql7X! zaG}9L?KCzmPTQcrT-fpv$P!=4=C7xF$gpq}GmWIuc-D%Q zfa0WSl3v+MdnJ=^^X)u3z+Qb`PsWx8x~{vdF>eOW!d+GRbw+IE#F<=QD?jleG?5&EqgBb z`tOB71`H$lq}k}yQI(dzcJ$$qr%XVv}r{EFDagmlOfhWV!Lv28rj%VsNC!QT=U zLw1UUXN^^((}N{$GhUd!h1BChfJKH^5v90jhhlVKOOzXDg* zV9mt3s8%&2JrdGN`e4*aSka)G|hpNn7biP_H-EIJ;tDuJRygGw*^xsLGi>9fp`$n4mG*>37=2sOLa zUr4Mbhi6Xs0qQ4_{O$)xkxrtOO?}0BSXdi?o)Rxe0IS zP@2cQ@P6c}&KdSgtI7V5OD5H$WRCL2Jd%3bDTmZG%p+P%StgHZ1|#Pg>$s7CK>88% zAv*mgprodFO689*{jor*Fzquc#~D`Mbw#%;l5c-Kr-znB z9S|@G5Drbu1fPhcXZJ|Y3nr&5FNqwe0 zu&QKd%q0SSubT7i5|No`4b>|cjyDwoZ`tqKfY<$(d@_d)5{=FDzJSQioXsZgYTr2R zliJx|0;t*!;}r|*s3Ts5sIUx=DJ2v48}Yjiya>3Z59CHbem2cV0mwTp4p5jD!Ajao zAe&5h!efQv*%^Vo0_At}Ce`}fOhgBTI0)C6L%X0`5?Qm{9NII-9cc##Eh1?oH}N+U zKr#)X05yB;7o<}r$GzAnHJVl$vq4F41!zWWhYD9%DQC7J6rS z)2!h)noU2t7=Ia|QgEhi9xC3lrxL9sj`oDFW=0y4M5FCWPa)SZ02gyiGnMF?S6ugk8Kts1{Vl6A<7mOQ;2IR3pozO|?WcYB)oi6!@CnA%pranc9zebCY5wE9}@-uw*i$9IC8bp<$Z2~qaZ zO}DQ{Z|iQ`RPc-T5F#!;nqNDUKxt_N-NF`i2$-F-_xRmI&p?4i(h^&S4gA1;_K^mHJ(~ z*NsF?_u~ zAc>)hi>`8W&E#~qNk+~mS<5B@lbQIS)wBK}c8fxS#(Gdm0m5y+hJ8U_ysj%ye(i1} z@5{&D&~(m4W@K3nXRYKyY*`C@)IGA-zOAt?lvn@$(}p~9>Caxxoo%khaU=#gNrUMX z^ea4Zf8k|UpD4hY(8ZFFJ9*8;A#Mb*VkGJ3l}R7Tyn8N^(ZWGyFN=TQ08JR&lU&%7 z&WwAupW*8)k3r!rpapfSZj*2-%*w_1s)G36lA=xX$vp`Av=}$j=k`z(O&UXjv}zb*%JLA zxNdO>kpbe_ODDLLgwk=&Kx>U@<&nMbC~7=0^$N)6LS*rP2p{va+KiUg?B#vPp9@ z0dqf&+aGXl2ILSapbES5{a99eN*$ylzKY>VCjyR~D4IIo^pj_BQ(47q#9vX%?jdMT zXeXtGO~hVt>u24@<+_axUNN6+J~Uqi86Nmj>SNu!;rr)2#m-7P2rd6CPL^sg<%|Pn6_GaJGu8qz>YfS!ImA5N=QszK}>$@R@fo z?uouLy;zf9*vpFNc8Y1ygd7;cJUPN)+r&%*g1xSxRABp{rr*cW%L@0L{x^aY*70<% z{E;Q!nXts{$F}b$d|n#^>RfW@&kc7buX8ny zEW-x}jNM#g<7V^w=UX}XI@5y!FFp^P(J7YV{zmgt#)=fmuK?J6`_(!HRVVLGhy zq@;l`G24DwKN{&4G2XzKL_1*9SWkz2ky-(@&DmdJPcVav+D>5_8CsEwZ9=z5ZufC! zyq{3jgUB(37xc%9VyE3g42kjMX4)hzQAEk^Km~i_aA3doecQIe_-6E#tob4-DZx6c zEx5c0{Qj7_R6-f#KydQ zo>jVJ6R1KuZv>>y=oB>#=W+HU6?1i6$lcU>_a<8Fp>Qmao-M_%a+ln-ewW| z(wDEoi|{=WDs)<6fuU%>uo$9sar#?A3((Nhn`>h6p|}{<2N;2@6UilWyr#j{b^^r}i6PW7gs26HTv_Nm2mddz7+20>6kf(Ie03hW`4IUxG>d z!H)0&Z+Ty>J=>k15BOxf_r-c8`@nN$FWmQ`Ep7`OqiqVOmq4*G0VaGE{x39P|7yFY z=Pr}rq#!AF0PjCE#;6*|f&B^0h2P89Y)b+F*kYD5vJxng%&H{XqM28Fe8(eP_-`|x zaFGRJUqyuJ+RPFK+iIRRdEKTm*!`Z)-uBRYP(9gLYV1wm=&`VBZA~Wz+9D8v>hozP zrN3&HuD|7wYhXBQ@l;WVMrIi@WOrQ?Np8<;0OYRLm!`tqnNp&eaFBkX*FUZze3`g{ z17-l#cd5P}hvyCQ6Oo1juUxAqz)P3Nr>7TjdW@G+&_pNpOlV+Ma_^^SX)_d{Y74X% zp(;viviuF`mhQw$eV52i-we>db2TY9n25^+&d}3DI0tfDDhD)Rw;CRhTn>-XM2rTohlto;MoW*pmis_k+ zucTvNQZ*GZjY}dwIcCXYC=P+yciMUO#M5ytA@A{$^+VS$|Me&Rb=961N%`KBy5*Ds zjxajtY1n$!lJKU~a77L9^RjBIy7IGJoPmiLTb17@9O^7qV%qVKp{*kKcz&auS@AP^ zzW=caqJ&3qhuyg3!cFCk$K@vlk2d{s?mVwr-_~-w-{Fiw^<1KjgGL7-zT9XAx5&9f z?_5A&x$wqvRI%uox~3dev9?a`6H;*lyzgAWuE_fJxq=8BZx8i4eDy>PdkKREnj9%V zGEXRvAS~fx^%msUygbBhffllBOJ#^^Q=-Up6fWk|4SCg{DDj7j#En>hUE zYUO-&L?)7sEg3fMil}Rr>FsZwcFGLC0DUei=eDQEhrR|5!z?+IP6}8#Mu45K5{P~ zmdiV$+6?$9pxT&R6X}sE=AlioI5qSp6LMo$v4Hx^lMXUYj&HaF} zOZ%Ej{s{34nP-Km8*q)&EdBz!>nGiSWn}MS8-;J}`pqx7HV~iclGpGRb?+jNn&|54 ze5+q3wtzX@6bw%ChLdWLJPW&B8)Hi((rE@|YbW8ki*c;o#Qf-_I?w4A*?bsgUo0L4 z(M^g@0#NB&htZj+eo-GvhDWkS zD=~<7kr^=yj*^=;aNbLd4#{)Dl@VngV*x;LQff1)!}-W6cjclcU(GSuPv~Z*uu>y2 zbdb@&8@cB5(fjKR(eFC9rt^sOcGB%}iYnk%!w=xIZ6@EOMmJmNr`*K0_-XN&Z2O^Y zdgWs-g>0OOowbF0M-w7RmO^W*`chFyJ0^P!0pKx__-0E{LaD%MT~cYR`#roY6&Em0 zhJ?2MYak>))3Q28UMJ+j&K9Ax9&0aqG{oef$D*WIo0h#Ix}3EymQ%waa5{!!cQm9_ zhc4ez!QF~z0Izs4*>aH!?Qz*zp&5a)07^%0q0*S681l!wwkl_E=WBd?)+MHF7>7YU zAIygbq#Y*8M2<;tAvh@n=gP2lUOT;)Iwm0d()Y$U;v0Ij()UWEG{u+a5C;G zDR<1Uo%nP+a~w@uQd;*ck}tZrX(dIGsg3|uKiE*BL@{e(!Ia=oP^H`3g0*lz3bC}V z_){s$@}Q!Hwa&bBSh^_jjB^TV-{V|-Q{k(->qj#+`S1}Hxm5>4n<}GlkqKa;L7ix} zhi>T8R&cfaIo)vaH_M)vu;v(=ZMI)6#D=uQ@22&(~=i> z+L;P*F^oPc(6dM4PZh4kD7wR5ii<7yI_%$M&YKo27BV`-m=)^p-KQ(Rhbw=K6hU5_ zamQ}|#LwMU>ud6Oo4O!&umDg`#P}!)+>Y%XU#T)mMrAnq1E*lWj~5k8al+_}^HrVv zP96Hf?YI}^vAz!_C6t(5ilRkbMq%~wmQ;@j#LC|FFJIJCa3tuf7YJd!LHdDKLW$rE zQjchFIk}aZb>LO|o6DUX;!ls&*jNm+OIVEsZFGtbF5FU)c_6jW{ue;l^|`f^t>X^= z8g2e=FW&XEJ&uN{uKJUdw}kpPIqlklkZ+GsE_=KLlU?Z+o#1heB(~orlDb{@?EJ}h z^!k1evx#4a?;s3e2;!X+=UReR?*&`sDC<)jPF%KK*JX%~P2V5)E^zbi7jD^Ci|{Ed z{1OIcHa5E2DOpQbkd^>KYhFliU?g4=Czu9RiFz#Nnq3@+2vIkp*YKBBtfVk#y;%io z#^E=u`s65?H#No*YP>vP7uSnC^WpDd|2U)#cWJV;0=p3`N2t{kC4{`c%W;FK?I3Z<<5aUe@~?8E0zmib$SCmwPjiK>{0S#a#?QkCz%c)Js(e`Gaxz za1Dmn4Y(qJomz#rgms)JqbwuGBrD0RvQH=48N8?8hlxMSzB#=TR5h>51hhfFLN(ke zHl9$M1b!5HXdP#YcV*p&U!vEbN0LhuVz7xdmSwKee-4PxGs(?N_O_Hs`A^LMPsrbQ zT$$+qQ${NPX?f=Tr;KE_aZEDQsf+V4qIKIT|o&-e=O&+=-!OMJZoL3Yziyd9@HWlwJ^ZN6i2sP8%HHJRadcpjI# z)dikDAOv~mGk8sVE^d{eXBN)bhS?iWrxWX~y|sx#B)VKQnyjC+X189S zyskQ=zKCF)F63jp0xMhT1{f|=4>iJSVhK<&8R1sLfKW;5i|6km#e<-VIm8|FNKIak zPW98En^%@b2gcS-O=!_~U{U0m@X@?0(D|=a`jvPamp1Sr7Z3tQ@w2MTMp+%SbQL`$ zpYP-E&7tXg(%4)Dl2ka^pefM0|D0hrC0r z1@RW@hHr|}jym5PXWGSOoNJ03Fxn6{5*CdL_`=W@)^dx7sMFzDmPd9qP3#lbIuh37 z=QJli*1pTMi}unj?@vtT#DVaxYGT(?uv1n5K2O(zRg^eLGJ^vNAT$`TkWMQw63et^ z3+(?d&+xCpku$_&YfLiHaRnUPdGDM+c5nqrcU*(|(>&xlNFqis=)3>!pZxqdI(Z^C z>IVHctY$nBju>bodFlU#6+4c+s)m@a`Xxuk6yU z;VJGtR99ctC1A+JJ^)VM*E$rh?JG(3n{EqWJe@`;$_IA5LyAJm##XG6M2CFDazq*^1L>S!U%R3^GNtFR%28BJZ%5Ps=9{j-2nj32?EwS z9SIMRjc4TXJ%{#EhpzJeYr`J1ca$1$D#4s*z*uQDOzX*_`~5C3mZOf(y(rmRZ5Tln z&+&xDEH&O^JV-aycNT3EcoxNa!io9V^`5oXHSL1$Wz7_;BKYgArUBcwgEVxQ#l_qo zIQ!{9rxB4W1&zK0)msrgNpOp*n5#>8U?P<^Q^ z?G1Ev%}Y4hBJX23ve<)L0e7G0*)40@ovMcf(t=~b%arsf{fh}CT$mY>;%9rwuCS=_S|w}TK*IA^2}8S)5A{EU7VXp(@Mfau z!>W#&#al-QcSj}-SP;pi<$nee6^w!)b%XrJ+55|AJjX+Dl7qfGlil9 zOWN_pD)|=Uyo~%^hq#BevQgQ{*<+_-k$=O!#_o<}#j+?btN4i0rgdBt)~4LH zxE;Pd0|+I5=(`Ba{b=l!dd>8KA@jQU-FAW)BZmXKy+5%KrB9C495C@SbCs`|ZhfKd zu|T^u2eas|#Nid2f&rm<+;)e9Tn?>(T`>X)z+tuO-=%AKa9Pl0n?RZ17TMNV)LxR# z9j)Tx3-|U5i?D~h5Q5WgZQa4ry=(y-i8CM^1VG;=CvvOFevzm)cH)&yr=WCbe`#ki z$8y0L=1K^`W`(!&+7PYh{(&a+YBV?N3V|*PwX)cPLp8ucOX>#0r=hi3+9vsR0b}LD zwkmsVn%e^tH@XZ*RM(nVmglC$eEOgwBb9PzhN*)9W6 z1Aw7YFfQE1s*YeP-RCl+P+D>E;@Bu3bgNpX0!zoUsE(ukgJe*r>5E;Jp^AyA_@Irb zCcZ;TW+9ro%a>(7tMUU`+v?s`FuIh5{Bm1su>p6z(9m188|vIhPRjmN78mP+kd_v= ziCG76J?)Kc$+nqhm7VpR?|=@a>J-+1=~)q>R?IrEl^vH)lNdyy%!Ol_ z-uQ^xk!F~!58@+Km=u&WhPj$C(KV^CZ`pj``6o`hy5b0_D2=ylTem(Rel@&HgcBzE zmL?xzIau>~PTu<~#$|=ne%rZIaNW0o?lDQ!TSupT<;Bl4s^c1vv`WCjRzMqJM+C@B z$dEA+L1ePO&c2CMZ{Y|AHAmo5o^73sb7{B5{^?8&mC!5bMDh{pjM6sYP?Z|yO1_^` z9`bY!iMAD$-!0|iYo3wx)!IEq+7;vVMCIqfN=M`OwiM=(@nxGK3{FyTb|vP)3iOk{ zk`cfU_CuQrUCtSB2`VP^oY9lEIt6%tg{BTkGPsAlOWNtM!v5$Lki5$co}QZVMwC&d zKQ{K7o)AD_A+~9Xu+i*iSnCsLkHSAET3i`!=@;r1e5CC%&)vcIB;Kl>x&eO!6RxYi z#(%>D)H&T?zY*cRD3Fq&MYza=20emN=H%l8wk114qzRIrwfY9kf~LuCT$TCQb;BCG zIy}JwE1{X@NQ+KXhsw>9z#RCTnHuiAW3pKFVf;H30l5(MF?4$Y^6>{2A-S8tbGwn> z$^!otZ2nrcN&80yv`GTyasbCU7M$PfYKu&EazQSZ;Czey=}V*#b5OJD4h5 zOmda;GztX+C*F({R4CX2AjqN5*_tHFkSgSZpD%ZSnvcDs<|~kiu}d{sM*Yw+Dni>iM5 z^u?dOiuWp?$SHNi4*wvdfJx(M>~hk(jKGv-oJ!{10EJ>XA5YWo6sJs`+Mhx}kE~!4~6Jy+{oB+g&{KgH&+@3{3=gshj ze|6)C9`omO9y*mIUk2I@<_Ma$thT^R`wO3$MDEteUImI?iIwOs^h1Qtnl}P}!@uZ>mnS%)BCZOEk5X(g z|0iAjC1{%e!f`RF+foMLjz5U|d+1TZPEsZsmO?RNg#tKIcb-Dn4z*Im)AS8760sJR zry`sW)4! zX1c7oOyeyp#_lqDEDYjUncBRvs`a2VYwX9)ex&UR-Y>W)7ar$@!h$xX!R%zD%G7q8(n&;&n98$<|x5znMee$IcpF&eC--@XGqR3V3DXti5V&OI`j-gVQomPq30dbF*#mO%{!FwOk>dbss+sFk8dD2$?!2j5#^bs z(PR{-MbBZq7%$I|`hjUP@5J)-3|$GbtlfCwk$iK+?n_;#}(6X zwBBKp%PuJQP}qxQA=sZotIHTor@%r{@<({?HJ!W#mxSSS)}28K{+fwANno+5&{6EI zJQ(NHvZ!J|g0V@iEI43jPtNVhXV+xSqBfN;%}F8>m%1$Q8Rf8_qg6E&9HY%C)Abbf zCTD$521NiU0ZK*fmzRE%Y$}xFJ{)VsfdX?rzbP&V9BFoT@Hmv}pLcRC{SZ(zM)-mD zjCZM3najF<<3n2b&ZO6rU6sNpHB}@Bs{GE3A=um`O>clR!T=;JzN7?_f3jo9ULV0m z8*>C1ZKs*{9$kb&T!L%3>sQuhR{2;`1{v)vA)o^a&0gnMM(3Ug8D(^C>VYZ^=A~`( zKeA|! zJgF#2k>rM=0&Y=XL%*{I3GW<0{EpW8IpU?hXYfHMTTOM1XK2M!qfn}PToOXhuNZE)+kOF7bXuwvOBpYA-P%dh-Rhx>rGdgAX0ufbfy%uCT)s z%AaYWC(msRumLNL4r!ZOgA59u`b$-_R;RN7I(VZ*Ti{1S)+WBQ`6#-jXl@S4FLiJ% zi3Vd??(AS9L}plB?usa|QaqShxxPCJeI!ZSl4>;cQ8mRl7Z%`^m`vz2I-@fAi)WfmMq}qOihjK{%QaF5 z8!)adG0P=A2s2E6@J_?m*uZ>32M=J=*_xl{Nx{gRUUU1-lAySoDk07j6*r+Zc}z6T z<&8Nw^m0R@{X^(F4{of(ROF=I;IbPahSfwiX{Tvw6}Jt4WKdeM)7mNVIXb0X#pc?9GeKG`gta|w{laDuqpxSpQU`M;oPp^<1Dm&M&RJi$2?IpUs>5O*u-qJ8( zvLG={<4Ym=ZXpq2 zp4It$`ARO244C*!I0%PRU-1vB*J+2aOV>U3{5Om&A!G5<9C~Zn%EA{qU944~x2nfw zzJ`o>jRvNo?@OrN!5gLBW?oJJLRh@@`aC|4t|z!h6*nV4J;G*)m`6TG%7~Ak0mk<4 zi!N)J>x$WH-_LmRYCen!3CnJnkQ(Q2Qur>F$IE#-;!ky?tO&gfL%V8X$yZWiQy&XG z2>haJ==<8qI{5qcP^rkzV_7gwltNBm{K(Ivro&m#O#mU_s5#-z%K2=7_HWTdWqaiS z_IDQp*rZLj>4tr+kQd;@_{4kfeXC)30y6QI>K1+hp(ZjYKj%G8ZX$H3LFg(5cI zSGcQdm-iHw9K3Hkv4-vugW&OPhlAIEGB6a?hUU+1j;*?|)j^>3vHq)o}6{9~$R|1s70lX|^5 z02Hhgtp9GzNcoqqHvBo4nwnaS0nrg9o1&V0Ko%VAZ6iAiF|R!!RqsG;;gap(*_>Q$ z0hal^opif>AQ`|iG-WDarH5k2In5==?{+wTrGI#S|1q`X1R_t0E{Q?TIuO4*Llfm5 zJ)n&Ns~@pTH)J-=irQ-qp@s_3M-TsAX00K2o4?~Ts{$49BluG5rV=SVlj8mY>xTcVz0Se5zO)<8Eq<7S(p zMRb(Nd*G|+u|PvXJ*wc{t6tJf!;)qj#nMKF@@turcDml4&ZqmegM<*ETTel4iH&GC z;Vhr?f4Dja|GK-S?Kce?+qP}9v8~3ojUDdTY#Q6PlO5Z((^yR!zPZnX^StLj*q`5? zHEYexHQ$RXnPf`Lu$jQaf26DW-dUakU+PUy46#acRHuRAYMK)x?IOc1!^ZY-QjiLG5escbhvhGKhy~!Hw zxXVZUnFEwj{)-aq!O5F=7l+q@yw4>Sgap!AB7O}1oLX+u+Cu{UI0Im9A%9%=@ohj^ z@#iy>OiQ{jRuHtK!Q30>&JqMF%%xUF*vWDnSUqmxENay^tt7(rK&c*4Vg`3)Qxxyr zD?tTT1^)1s@JNsFD7{SLEC~q8tO1&9J$GD-jC2-rsEE~Bx#s}Hn*_@o-#Nq0c9FeV z?MSVe#~(K4r5JZ?EIk0^yECD5F+sN8E6d=&$$y*>NAEdP>fE;JN3t2UV+KuXGd4+JIwoUz@8k6g!xk+(Hq&lkdv9{iU)QTqBph0$a-}L_V*5n~G-{gJ_oFD3w z!&cvJ)Nk%RNq>Qm}KhHipaW=8XBWLj22S|1P zwoI5U*r*uWnD7m5!)T95xh~jXX-RD^T>OgG`c#SV<7Bq_$10J%QB6cV*%wzdAwVL? zR4upU4>rG+$n6_Fg=38e`eh`7nl?()@fNp<{pQ$~>+B?YS2DONqQ)3opB_-vRaBCW zE1sNCV|{2hd7(I%;CEjav%~B1*l9-<5CH+l#-gL5B!La@WraCm&e@8v7^pZlY-R2S z+TdhmC@q;jY$b7oITDV`ZYz(>gjz9r`r0t5&lMBk96nJDp(2}9^Lw#B9U5M;%`77R zw|d$4vu?ue5@iaftZ#X>5fzEtm|I7QHPIrEfSNq|2J{DSx#lNl-@E z4Y-ArXLGxm&x(-kc~Y&1lG*ZuFF*W|YjCa=#_L2~f>nT(?vR1jyA?^kZj68uxC``{ z>O_9=H{0D;)!P0!ReTzL(1K#!-nRwHJjR|hZg~^E7#7(b?NYoOcxQohq7$BcLt3Wz zm8s4I>F$7LdExm`@LKS~Y%;%qf*QDIw$8StobML&p`j>>_%tpq@qN`&UeQ}LHnwd zS)oyFpQ~RkaReZSV28w5PRN*VI~n_p$n4u0VY{a&f`H^2`t`@2AI41?3JqxK=U<$y zqwK^B0Bnn87~=EjZZfUWca3Aw_3R>{sM#^;X{B8wYIX(*ha|_%*FZN3tpWizO9##0 zZn}N}>EhYf_l?mDQnZiMo#S$xb^avLD{^0%ErU8jFTbVsVM zv~>Z`WHSV%Wq;hn^~EZ`M#BMUe)tUf_nHZ@Wh@TPQ^YLV?@*$kJJNwZOWZ{9+wDP$ zIoyManYbY`?J?x1|K$YzmoCCx_N_@Ism=2{z|Ixl48wnG(%ho{XY;Q>|4R9Bb_CAN z5ZgJVkN~9&%;;ib?vS5QHk%j;I%&A>!Rr8(eC>NvGP7+cNp!aiveqk&@a^ ze4WL2SF8dRdp>eRs@HGioMF&$6;EJHgsL}U#pL%Pkwj%rbwN4gPA1e3sz+00PdM`p zop&x6ip|isSt%z6G#H9>o|F+Hna5QY0E}1C2m$Vzoi=j&q0Y$TpWVGVaJ2fS&$2+W zaV8p1@xB^}#J2p?mq%Sl8--qMw=U78F^r3P2eY?TVm_N=IE@{PN6nyKH+wWorZs=& z3Eotu_<91N>!Gh~rB4M%jq2#FyOG!`0mN(0_GRbK?uIb7J^A;Jdg1J-eK6}+07B#y znn63N>xs-13Wjl*`q0QM0V9m@)HDL8p}z-#C>rgX?&mv*fn);mHXOT?Qw3jdjJOo1 zYVeu}&K!%_?Y#DnToc^ymANc1<1(@*&n(%dwp3ThGAm&1U@ggFO}t{*FYTB5E}@{l zX>kgmk~eCvk9IT^9ChmE9WE&k17PbZIt=;P7!P%zoJSZ#jtkRie>St7C-Ss-#vN;n zRcvOU6Bi+*(Jf9kz1%*N<;I#-w14MWbZFa0nasXwl6s?pdbg!R=h_`Pqdz5ULNIo0uy17uBWcyc)6M4 z;RxXbS{D8WA90m_Aul}1GyES(L)G*|)S?M^+hvxaO5)tHKOCLG+e$*!f@&Nap>GQ~ zCK|J2kP>Q55&(b@1#u&BSMFc@lJ82dcpBKz8OM>cBeNB|Ul6TZ0U?mq^VASSIcL8f zChCDk?qmWocbi(QhKDf{L}ic-{0`>~NmPTut_L_~Y{YxmAsCsp(KyR=IC@2Y>woes z8e}}u%_s7)Gm*5zFSF4Knhm8lMg7e@J$wVY9`zKqv&N)g99RnLyScd|-I}R$EL^YK z%#|!{c>b+iGa%_<0K{ci9m0&o-f88x%ug_x*^JCwGj8oqlg4CM0v~VqekVQm;JrMM?go6u>R%d^W4!Xh{_df*A=2rG^@j&Vdt*-;w&LP)ane+f?PGPgt-F|B zYYi&#ul!@I5teR)X zvnKBuiL=Y{0B$G|FnY7j}Eun>s*b?1}mH5~*yo#0Y0jStbf?E-3=i~j87fE<@pQUcf z%5dOM-1QZq2Eb(DPB^VH(!}Wa>xklW;LTLUq(W-K z{e7ElMds88)ozc*7JWKbH&Zgl6VqqVg_}5g*l!P#pPF%})f0tnk3wx=+*7JENOG`( zn@S%93Ao{XbN3F;p5RhObJ#`NvwM~PF_1IJ_f*ju5;ySmouXVc{PP2P4C>r;uh70z zJ`aX*%l)|u8(R(|8xV0eaouFOHA5S^`Jz(_FF2s=OX#!_*0UqBW;4jc9|N-{yYrQB zm}O0MK*ttD-Yx9O@-B^n32hFY7i!6M?1I9j2w1qLc}u0W-~2Hc?~lilHK69?gOQ^@ zCX+}#Ai2W$&e+8+8r_~YKroy}Om2aSRRDNqKwG6xa(#9F<-u-oM`U`JGiOdYpk>Ym z_$hxxAIl7B4Z~OOPhMYb>iuGEsm&U1_?b~y9gD!KcgWq+;x}l#z$P%1NgXi|H=th) z4U-ip8rqV|Z}@K$_!@ZW*5IlLEELD1 zFR^`T*kJ1LGvXN@duH`$Vqm-5hTk7U4*n0T>7Sw*pF=W8BuObi0e~in?N5oPjhYsx zlAMpOTuZrY5=e_$(Cn*iiB>2-AS3IvDwniq#&tRM6|3vY&S9Ns#)pBlM4&_{w`X*I z-s3hDx|qF$hl=fPs`GB*g`e&2^7Y~I3h*_3KmkIal`#rW**Aa&gR21Agf>V}PBMO= zidvm8ZThL?M zbi7=LzDNuHE)M0g{Q6$(3|wFlR-4{lcK5--!ANisN!!4iFd+GB0vl%-CHbx0c-?>= z@K9@>dYCM>hBf4PgWuvrN*B=pv6-_?a*Hz!UT?lu6Ja{hy@`z;hqW*RAz!Z8Z+Hx= zbwmTwOiE44=_~EuACDd(Q!Oxa%XEUNXY^7X_>L_gkIw-=;;ru>a*z*Vosl8>W|L|^ zbLMeJDw9-j0YC~~S+oYvPTMG5kxim(LVqxgJ=+a@`rwhiOu{GYIDH{i?FTXUGSvn= zmN-|hI{)@D>R32ZBynge4qDidpn3H!|+fA!cWUOxJo{-f${Sciz6? zA`FW)T>vO8mOA7G#f7N8;V*w2p>xj%*N8P5mV^sU2CI;r|< zjih4KsZHL^MpOsyW4oB(N;|4XW#}@G3kv!7c`^-tZpLlfdEUnt#`&;!*rr5NIyDb+ zpg|CYgg$AqC*+~ms#E+JrgMlhqS(TcDIP&@spiZ!O=w0*{zq&s*SifhKp- z3IKdvY@Bcbyz!E(KF)GkoAythS!{Hd@Oq8qsddeR3I?z6@a@QnATI!{W-n%DV|MIS zcULT6>l$o}Pk0&Rz5McW@{VH?W+~b4IWH*L>>O~HSgul>A)K7ig{{VDD03>Nayp#v z3_~|&c9251q6~FY;EchP?5Q1l_MIorOmjebyO!JlL!ucKo6-vE22H|}Jw*I@Bt}KH z4?CuX>>gJdtdHvCCv^XB(C|q~>iw12;j(H~(*2aK_zBU!hgAP0m**+i z=A`owT|k|daz4c_t1t}(LZfJIP+|aO5vDk=T&&TW5oHz+IRDdSMa?s~uR~FCkBwD5vF3D z_}&ZX#PnE0D361IO>0i@@5BWb@(EC0``|fE)(mLW2 zgRo-5)kczj_AaW|zOh$uz^TLGq3XPKpz2IRe?z8dVxF|EuD|P#L0WL^MvCEG{V`78 zoEP{Avt_!IR5E_hLA#ai28uUH?Y*5nR$B=Z4-bzEfQGh33+6iuGLH!zFJ(dr!!W7` zHh>izp&;{tyLkv%q0MV*rrVZ>AMM=MDX!9v5vRS_s0JsS;w7c8)^sG^b|K<~JHcwb z;TDpy9zz6Y&rBsVAX0GoO(5@1FX;ZEKIV`YuHL}8b$r(c?xmRE;BPqz#3Q~jsCT5} z3@gN_wf~X9ARdY;0h=^L|E$qG)JRYo4={-8gJCe|yM(}>wB1mMYsZmIrlPCj)W>4? znNQfU*6sB{nj_Y&kx1-WdjzmamzE!&Kv?G|;SBYX?)MyUOomDLI6g(Fq^aXu*OW3Rx+4&>J>#_OZG}Uz8!rm zO@KXTW9{!TYO(WtT`IaUgWlxbdZUbu5`1=E8J`IQZf$at!*gWl@g)KMofq#zO!A5w zZ}&(M1`S<3@H!W^d}Vs)uvj}!z)t49i+QOtiltG5V+C05^0AV!@MFU3h@HJMutwuVG)!;>;lCGE17=vdRNp}hc8LpGH}!zpinExt^yra>B6lbxsbJNr)TXi}Y9 z;-afZWD&foWOIAS$?Nb3T;2g5%h^S-lO*L({S&;Og}ph??91~H;t)Dbz>f+Ck@zO0 zV2Tb`z_I~fF^!iTN32PG%ij-zwbg`&72Kk8dvDV(d9jE;L15)HdE+S0kGo>ebAazv z5DysT>-)h>y?bIz$dNrEx0R+Vie_jyqO&MP&6Mkw!^2Myw`Gn5;AYsIVn`{n?0?pY zpoM%RWN$v(GVBDx0-|>$03Ae>(@wcTlE(XpwqwgT4EZd(Mdfl)Ny}+?1fu+XtZUdU z%dA_b|d6zN|nwS80E;|5-`9BN?d(M)?l*V!EGw^V;bwZl*!5s+rkz7_&>^t ze^N@ke1%;|Qf!100El3#)f}i&D`5qRO9K-U+8rLMW93zr2eF_;Yh5*N4lm2qVdV~r za(Kge9*uiyJ1)$VoSOCjL*>O!cy$i7hD*)Ea%_4$HPJPl^)ivgcXuq*^M<&CO4ySB zjVN+DImo4THBvX-UR=l=eZp9w&(4>ej6&iFW1}x9h zmtr6*G-L789EuFG-$2Wn?$=7WX$vYnncjoLF&JxQ+NXmuQ*ANcYCj#4z}bUSU@7_8 zthsXP2c5slTA|r#`*ySB9zOP0Wxfzae+iL`zpuq9(Q1_%m*BM!lVW zX0z+^AtT5W&{bQf=@^o9R&3|Zg&o}o#qv9ry1O4a!@WK;&#$lXuQ5%}P!xpGtkiLk z$;ncrKD&4iFE%PXbHJ{SNmNvfa=3N&dJ)d06KG!>m`ALnKn$5?bD3IlBOm0_bf33X ziG7WQ{|8!8jybcYZk@G(N1uaS(yrJ}tB79Fi+_3s@S)?DM<)05N0zeuv(=tL3f(sf z>@KrOwLfl*)?~lH*Jj=;x`d{7V$HVampg;ZQNb}#6*bRPncZw@#D`<|2~TL$;sr*t2K

r$+R+)8MoB_*@t{0LEt4mX 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%0AmrZNMXMh5#66)+XrN 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 diff --git a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConfigurationDelegate.java b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConfigurationDelegate.java index 834e802..b2d44f6 100644 --- a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConfigurationDelegate.java +++ b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConfigurationDelegate.java @@ -3,9 +3,13 @@ package intrace.ecl.ui.launching; import intrace.ecl.Activator; import intrace.ecl.Util; import intrace.ecl.ui.output.EditorInput; +import intrace.ecl.ui.output.EditorInput.InputType; import java.io.IOException; import java.net.ServerSocket; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.atomic.AtomicLong; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IConfigurationElement; @@ -31,6 +35,11 @@ import org.eclipse.ui.ide.IDE; public class ConfigurationDelegate extends AbstractJavaLaunchConfigurationDelegate implements IExecutableExtension { + public static final String INTRACE_LAUNCHKEY = "INTRACE_LAUNCHKEY"; + public static final Map intraceConnections = new ConcurrentHashMap(); + private static final AtomicLong intraceConnectionId = new AtomicLong(); + + protected String launchtype; protected ILaunchConfigurationDelegate launchdelegate; @@ -65,13 +74,18 @@ public class ConfigurationDelegate extends AbstractJavaLaunchConfigurationDelega { try { + // Create working copy + ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy(); + // Prepare callback server socket ServerSocket callbackServer = new ServerSocket(0); final ConnectionHolder callback = new ConnectionHolder(callbackServer); - callback.start(); + callback.start(); + long connId = intraceConnectionId.getAndIncrement(); + intraceConnections.put(connId, callback); + wc.setAttribute(INTRACE_LAUNCHKEY, Long.toString(connId)); - // Add VM arguments - ILaunchConfigurationWorkingCopy wc = configuration.getWorkingCopy(); + // Add VM arguments String vmArgs = wc.getAttribute(IJavaLaunchConfigurationConstants.ATTR_VM_ARGUMENTS, ""); if (Activator.getDefault().agentArg.length() > 0) { @@ -94,7 +108,8 @@ public class ConfigurationDelegate extends AbstractJavaLaunchConfigurationDelega { IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); IWorkbenchPage page = window.getActivePage(); - IDE.openEditor(page, new EditorInput(callback), "intrace.ecl.plugin.ui.output.inTraceEditor"); + IDE.openEditor(page, new EditorInput(callback, InputType.NEWCONNECTION), + "intrace.ecl.plugin.ui.output.inTraceEditor"); } catch (PartInitException e) { diff --git a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConnectionHolder.java b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConnectionHolder.java index 44e5eb5..90d132f 100644 --- a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConnectionHolder.java +++ b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ConnectionHolder.java @@ -12,7 +12,7 @@ public class ConnectionHolder implements Runnable { private final ServerSocket server; private Socket clientConnection = null; - private String agentServerPort = null; + public String agentServerPort = null; public ConnectionHolder(ServerSocket xiServer) { @@ -38,7 +38,6 @@ public class ConnectionHolder implements Runnable { Map settingsMap = (Map)obj; agentServerPort = settingsMap.get(AgentConfigConstants.SERVER_PORT); - System.out.println("Detected agent server port: " + agentServerPort); } // Notify the UI that we have the connection diff --git a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ShowInTraceOutputAction.java b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ShowInTraceOutputAction.java index f6df346..9a57e70 100644 --- a/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ShowInTraceOutputAction.java +++ b/intrace.ecl.plugin/src/intrace/ecl/ui/launching/ShowInTraceOutputAction.java @@ -1,52 +1,452 @@ package intrace.ecl.ui.launching; +import intrace.ecl.ui.output.EditorInput; +import intrace.ecl.ui.output.EditorInput.InputType; + +import java.util.Iterator; +import java.util.LinkedHashSet; +import java.util.Set; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunch; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.model.IDebugElement; +import org.eclipse.debug.core.model.IProcess; +import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.jface.action.IAction; import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.viewers.StructuredSelection; +import org.eclipse.swt.custom.BusyIndicator; +import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Event; import org.eclipse.ui.IActionDelegate2; import org.eclipse.ui.IViewActionDelegate; import org.eclipse.ui.IViewPart; +import org.eclipse.ui.IWorkbench; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.ide.IDE; -public class ShowInTraceOutputAction implements IViewActionDelegate, IActionDelegate2 +public class ShowInTraceOutputAction implements IViewActionDelegate, + IActionDelegate2 { - + /** + * The underlying action for this delegate + */ + private IAction fAction; + /** + * This action's view part, or null if not installed in a view. + */ + private IViewPart fViewPart; + + /** + * Cache of the most recent selection + */ + private IStructuredSelection fSelection = StructuredSelection.EMPTY; + + /** + * Whether this delegate has been initialized + */ + private boolean fInitialized = false; + @Override public void run(IAction action) { - // TODO Auto-generated method stub - + if (action.isEnabled()) + { + IStructuredSelection selection = getSelection(); + // disable the action so it cannot be run again until an event or + // selection change + // updates the enablement + action.setEnabled(false); + runInForeground(selection); + } } - @Override - public void selectionChanged(IAction action, ISelection selection) + /** + * Runs this action in the UI thread. + */ + private void runInForeground(final IStructuredSelection selection) { - action.setEnabled(true); + // final MultiStatus status= + // new MultiStatus(DebugUIPlugin.getUniqueIdentifier(), + // DebugException.REQUEST_FAILED, getStatusMessage(), null); + BusyIndicator.showWhile(Display.getCurrent(), new Runnable() + { + public void run() + { + Iterator selectionIter = selection.iterator(); + while (selectionIter.hasNext()) + { + Object element = selectionIter.next(); + try + { + // Action's enablement could have been changed since + // it was last enabled. Check that the action is still + // enabled before running the action. + if (isEnabledFor(element)) + doAction(element); + } + catch (Exception e) + { + // status.merge(e.getStatus()); + e.printStackTrace(); + } + } + } + }); + // reportErrors(status); } - @Override - public void init(IAction action) + /* + * (non-Javadoc) + * + * @see + * org.eclipse.ui.IActionDelegate#selectionChanged(org.eclipse.jface.action + * .IAction, org.eclipse.jface.viewers.ISelection) + */ + public void selectionChanged(IAction action, ISelection s) { - action.setEnabled(true); + boolean wasInitialized = initialize(action, s); + if (!wasInitialized) + { + if (getView() != null) + { + update(action, s); + } + } + } + + /** + * Updates the specified selection based on the selection, as well as setting + * the selection for this action + * + * @param action + * the action to update + * @param s + * the selection + */ + protected void update(IAction action, ISelection s) + { + if (s instanceof IStructuredSelection) + { + IStructuredSelection ss = getTargetSelection((IStructuredSelection) s); + action.setEnabled(getEnableStateForSelection(ss)); + setSelection(ss); + } + else + { + action.setEnabled(false); + setSelection(StructuredSelection.EMPTY); + } + } + + protected void doAction(Object object) + { + ILaunch launch = getLaunch(object); + if (launch != null) + { + // Get connection object + String connIDStr; + try + { + connIDStr = launch.getLaunchConfiguration().getAttribute(ConfigurationDelegate.INTRACE_LAUNCHKEY, ""); + Long connID = Long.parseLong(connIDStr); + final ConnectionHolder conn = ConfigurationDelegate.intraceConnections.get(connID); + + // Launch editor + final IWorkbench workbench = PlatformUI.getWorkbench(); + Display display = workbench.getDisplay(); + display.asyncExec(new Runnable() + { + @Override + public void run() + { + try + { + IWorkbenchWindow window = workbench.getActiveWorkbenchWindow(); + IWorkbenchPage page = window.getActivePage(); + IDE.openEditor(page, new EditorInput(conn, InputType.RECONNECT), + "intrace.ecl.plugin.ui.output.inTraceEditor"); + } + catch (PartInitException e) + { + e.printStackTrace(); + } + } + }); + } + catch (CoreException e1) + { + e1.printStackTrace(); + } + } } @Override public void dispose() { - // TODO Auto-generated method stub - + fSelection = null; } - @Override - public void runWithEvent(IAction action, Event event) - { - // TODO Auto-generated method stub - - } - - @Override + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.IViewActionDelegate#init(org.eclipse.ui.IViewPart) + */ public void init(IViewPart view) { - // TODO Auto-generated method stub - + fViewPart = view; } + + /** + * Returns this action's view part, or null if not installed in a + * view. + * + * @return view part or null + */ + protected IViewPart getView() + { + return fViewPart; + } + + /** + * Initialize this delegate, updating this delegate's presentation. As well, + * all of the flavors of AbstractDebugActionDelegates need to have the initial + * enabled state set with a call to update(IAction, ISelection). + * + * @param action + * the presentation for this action + * @return whether the action was initialized + */ + protected boolean initialize(IAction action, ISelection selection) + { + if (!isInitialized()) + { + setAction(action); + update(action, selection); + setInitialized(true); + return true; + } + return false; + } + + /** + * Returns the most recent selection + * + * @return structured selection + */ + protected IStructuredSelection getSelection() + { + return fSelection; + } + + /** + * Sets the most recent selection + * + * @parm selection structured selection + */ + private void setSelection(IStructuredSelection selection) + { + fSelection = selection; + } + + /** + * Allows the underlying IAction to be set to the specified + * IAction + * + * @param action + * the action to set + */ + protected void setAction(IAction action) + { + fAction = action; + } + + /** + * Allows access to the underlying IAction + * + * @return the underlying IAction + */ + protected IAction getAction() + { + return fAction; + } + + /** + * Returns if this action has been initialized or not + * + * @return if this action has been initialized or not + */ + protected boolean isInitialized() + { + return fInitialized; + } + + /** + * Sets the initialized state of this action to the specified boolean value + * + * @param initialized + * the value to set the initialized state to + */ + protected void setInitialized(boolean initialized) + { + fInitialized = initialized; + } + + /** + * Return whether the action should be enabled or not based on the given + * selection. + */ + protected boolean getEnableStateForSelection(IStructuredSelection selection) + { + if (selection.size() == 0) + { + return false; + } + Iterator itr = selection.iterator(); + while (itr.hasNext()) + { + Object element = itr.next(); + if (!isEnabledFor(element)) + { + return false; + } + } + return true; + } + + /* + * (non-Javadoc) + * + * @see + * org.eclipse.ui.IActionDelegate2#runWithEvent(org.eclipse.jface.action.IAction + * , org.eclipse.swt.widgets.Event) + */ + public void runWithEvent(IAction action, Event event) + { + run(action); + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.ui.IActionDelegate2#init(org.eclipse.jface.action.IAction) + */ + public void init(IAction action) + { + fAction = action; + } + + /** + * Return the ILaunch associated with a model element, or null if there is no + * such association. + * + * @param element + * the model element + * @return the ILaunch associated with the element, or null. + * @since 3.6 + */ + private static ILaunch getLaunch(Object element) + { + // support for custom models + ILaunch launch = (ILaunch) DebugPlugin.getAdapter(element, ILaunch.class); + if (launch == null) + { + // support for standard debug model + if (element instanceof IDebugElement) + { + launch = ((IDebugElement) element).getLaunch(); + } + else if (element instanceof ILaunch) + { + launch = ((ILaunch) element); + } + else if (element instanceof IProcess) + { + launch = ((IProcess) element).getLaunch(); + } + } + return launch; + } + + /** + * Returns whether the given launch configuration should be visible in the + * debug ui. If the config is marked as private, or belongs to a different + * category (i.e. non-null), then this configuration should not be displayed + * in the debug ui. + * + * @param launchConfiguration + * @return boolean + */ + private static boolean isVisible(ILaunchConfiguration launchConfiguration) + { + try + { + return !(launchConfiguration.getAttribute(IDebugUIConstants.ATTR_PRIVATE, + false)); + } + catch (CoreException e) + { + } + return false; + } + + protected boolean isEnabledFor(Object element) + { + ILaunch launch = getLaunch(element); + return launch != null && launch.getLaunchConfiguration() != null + && isVisible(launch.getLaunchConfiguration()) && + connAvailable(launch.getLaunchConfiguration()); + } + + private static boolean connAvailable(ILaunchConfiguration launchConfiguration) + { + try + { + String connID = launchConfiguration.getAttribute(ConfigurationDelegate.INTRACE_LAUNCHKEY, ""); + if (connID.length() > 0) + { + return true; + } + } + catch (CoreException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + return false; + } + + /* + * (non-Javadoc) + * + * @see org.eclipse.debug.internal.ui.actions.AbstractDebugActionDelegate# + * getTargetSelection(org.eclipse.jface.viewers.IStructuredSelection) + */ + protected IStructuredSelection getTargetSelection(IStructuredSelection s) + { + if (s.isEmpty()) + { + return s; + } + Set dups = new LinkedHashSet(); + Iterator iterator = s.iterator(); + while (iterator.hasNext()) + { + Object object = iterator.next(); + ILaunch launch = getLaunch(object); + if (launch == null) + { + return s; + } + dups.add(launch); + } + return new StructuredSelection(dups.toArray()); + } + } diff --git a/intrace.ecl.plugin/src/intrace/ecl/ui/output/EditorInput.java b/intrace.ecl.plugin/src/intrace/ecl/ui/output/EditorInput.java index 2913725..64ff7e9 100644 --- a/intrace.ecl.plugin/src/intrace/ecl/ui/output/EditorInput.java +++ b/intrace.ecl.plugin/src/intrace/ecl/ui/output/EditorInput.java @@ -9,10 +9,18 @@ import org.eclipse.ui.IPersistableElement; public class EditorInput implements IEditorInput { public final ConnectionHolder callback; + public final InputType type; + + public enum InputType + { + NEWCONNECTION, + RECONNECT + } - public EditorInput(ConnectionHolder xiCallback) + public EditorInput(ConnectionHolder xiCallback, InputType xiType) { this.callback = xiCallback; + this.type = xiType; } @SuppressWarnings("rawtypes") diff --git a/intrace.ecl.plugin/src/intrace/ecl/ui/output/InTraceEditor.java b/intrace.ecl.plugin/src/intrace/ecl/ui/output/InTraceEditor.java index 19e971e..a0930b4 100644 --- a/intrace.ecl.plugin/src/intrace/ecl/ui/output/InTraceEditor.java +++ b/intrace.ecl.plugin/src/intrace/ecl/ui/output/InTraceEditor.java @@ -1,5 +1,7 @@ package intrace.ecl.ui.output; +import intrace.ecl.ui.output.EditorInput.InputType; + import java.net.Socket; import org.eclipse.core.runtime.IProgressMonitor; @@ -53,22 +55,29 @@ public class InTraceEditor extends EditorPart }); inTraceUI.setConnectionState(ConnectState.CONNECTING); final EditorInput intraceInput = (EditorInput)getEditorInput(); - new Thread(new Runnable() - { - @Override - public void run() - { - try - { - Socket connection = intraceInput.callback.getClientConnection(); - inTraceUI.setFixedLocalConnection(connection); - } - catch (InterruptedException e) + if (intraceInput.type == InputType.NEWCONNECTION) + { + new Thread(new Runnable() + { + @Override + public void run() { - e.printStackTrace(); - } - } - }).start(); + try + { + Socket connection = intraceInput.callback.getClientConnection(); + inTraceUI.setFixedLocalConnection(connection); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + }).start(); + } + else + { + inTraceUI.setFixedLocalConnection(intraceInput.callback.agentServerPort); + } } @Override diff --git a/org.intrace/src/org/intrace/client/gui/helper/InTraceUI.java b/org.intrace/src/org/intrace/client/gui/helper/InTraceUI.java index 7cdc5de..e9a13e3 100644 --- a/org.intrace/src/org/intrace/client/gui/helper/InTraceUI.java +++ b/org.intrace/src/org/intrace/client/gui/helper/InTraceUI.java @@ -162,6 +162,30 @@ public class InTraceUI implements ISocketCallback, IControlConnectionListener }); } + public void setFixedLocalConnection(final String xiPort) + { + fixedConnection = true; + if (!sRoot.isDisposed()) + { + sWindow.getDisplay().asyncExec(new Runnable() + { + @Override + public void run() + { + connTab.addressInput.setText("localhost"); + connTab.portInput.setText(xiPort); + textOutputTab.filterThread.addSystemTraceLine("Instructions"); + textOutputTab.filterThread.addSystemTraceLine(" - Select Classes you want to Trace"); + textOutputTab.filterThread.addSystemTraceLine("Full help available on the Help tab"); + textOutputTab.filterThread.addSystemTraceLine(""); + setConnectionState(ConnectState.CONNECTING); + updateUIStateSameThread(); + Connection.connectToAgent(thisWindow, sWindow, "localhost", xiPort); + } + }); + } + } + public void setFixedLocalConnection(final Socket xiSocket) { fixedConnection = true;