From f584d6204f5e5fe3f2725847dc29fd97e3615126 Mon Sep 17 00:00:00 2001 From: ghidra_red Date: Thu, 27 Aug 2026 17:36:21 +0000 Subject: [PATCH] GP-6992: Add help menu docs for TraceCallTreePlugin --- Ghidra/Debug/Debugger/certification.manifest | 5 + .../src/main/help/help/TOC_Source.xml | 4 + .../TraceCallTreePlugin.html | 251 +++++++++++++++ .../images/TraceCallTreePlugin.png | Bin 0 -> 24174 bytes .../images/TraceCallTreePluginHideReturns.png | Bin 0 -> 27179 bytes .../images/TraceCallTreePluginRightClick.png | Bin 0 -> 41305 bytes .../images/TraceCallTreePluginUnfolded.png | Bin 0 -> 34126 bytes .../tracecalltree/TraceCallTreePlugin.java | 2 +- .../tracecalltree/TraceCallTreeProvider.java | 34 ++- .../TraceCallTreePluginScreenShots.java | 285 ++++++++++++++++++ .../widgets/gtreetable/GTreeTableModel.java | 5 +- 11 files changed, 572 insertions(+), 14 deletions(-) create mode 100644 Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/TraceCallTreePlugin.html create mode 100644 Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePlugin.png create mode 100644 Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginHideReturns.png create mode 100644 Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginRightClick.png create mode 100644 Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginUnfolded.png create mode 100644 Ghidra/Debug/Debugger/src/screen/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePluginScreenShots.java diff --git a/Ghidra/Debug/Debugger/certification.manifest b/Ghidra/Debug/Debugger/certification.manifest index e90f410858..6e874ee5a6 100644 --- a/Ghidra/Debug/Debugger/certification.manifest +++ b/Ghidra/Debug/Debugger/certification.manifest @@ -71,6 +71,11 @@ src/main/help/help/topics/DebuggerTraceViewDiffPlugin/images/DebuggerTraceViewDi src/main/help/help/topics/DebuggerWatchesPlugin/DebuggerWatchesPlugin.html||GHIDRA||||END| src/main/help/help/topics/DebuggerWatchesPlugin/images/DebuggerWatchesPlugin.png||GHIDRA||||END| src/main/help/help/topics/DynamicStaticSynchronizationPlugin/DynamicStaticSynchronizationPlugin.html||GHIDRA||||END| +src/main/help/help/topics/TraceCallTreePlugin/TraceCallTreePlugin.html||GHIDRA||||END| +src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePlugin.png||GHIDRA||||END| +src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginHideReturns.png||GHIDRA||||END| +src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginRightClick.png||GHIDRA||||END| +src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginUnfolded.png||GHIDRA||||END| src/main/help/help/topics/VariableValueHoverPlugin/VariableValueHoverPlugin.html||GHIDRA||||END| src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginBrowser.png||GHIDRA||||END| src/main/help/help/topics/VariableValueHoverPlugin/images/VariableValueHoverPluginDecompiler.png||GHIDRA||||END| diff --git a/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml b/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml index ff425d4024..ac1f923b6d 100644 --- a/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml +++ b/Ghidra/Debug/Debugger/src/main/help/help/TOC_Source.xml @@ -130,6 +130,10 @@ + + diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/TraceCallTreePlugin.html b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/TraceCallTreePlugin.html new file mode 100644 index 0000000000..764bafa090 --- /dev/null +++ b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/TraceCallTreePlugin.html @@ -0,0 +1,251 @@ + + + + + + + Debugger: Trace Call Tree + + + + + +

Debugger: Trace Call Tree

+ +
+ +
+ +

The Trace Call Tree window reconstructs the call hierarchy of all functions executed by a + single thread over the entire recorded trace. It does this by:

+ + + +

The resulting tree shows the sequence of function invocations in the order they occurred, + with each call nested under its caller.

+
+ + +

For the tree to be populated, the following conditions must be met:

+ + + +

The window is divided into two panels: the Call Tree Table on top and the + (toggleable) Log Window on the bottom. The divider between them can be dragged to resize + each panel. The log window can be hidden using the Show/Hide Log + Window action.

+ +

Call Tree Table Columns

+ +

The call tree table has the following columns:

+ + + +

Log Window

+ +

The log window displays diagnostic messages generated while building the call tree. Each row + describes a snapshot at which the tree builder encountered a problem, such as:

+ + + +

Log entries are automatically removed when the condition that caused them is resolved on a + subsequent rebuild. The log table has the following columns:

+ + + +

Actions

+ +

Rebuild Call Tree

+ +

Cancels any in-progress build and restarts the call tree generation from scratch using the + current trace and thread. Use this action after changing static mappings, adding function + definitions, or any other change that may affect the tree's contents. The tree is rebuilt + automatically when new snapshots are appended to the trace.

+ +

Jump to Current

+ +

Scrolls the call tree table to the node that corresponds to the current debugger + coordinates. The node is selected and its ancestors are expanded so it is visible.

+ +

Expand from Selected Cell + Recursively

+ +
+ +
+ +

Expands the currently selected node and all of its descendants in the tree.

+ +

Collapse from Selected + Cell Recursively

+ +

Collapses the currently selected node and all of its descendants in the tree.

+ +

Show/Hide Returns

+ +
+ +
+ +

Toggles the visibility of return nodes in the tree.

+ +

Show/Hide Tail Calls

+ +

Toggles the visibility of tail call nodes in the tree.

+ +

Show/Hide Log Window

+ +

Toggles the visibility of the log panel.

+ +

Clear Log

+ +

Removes all entries from the log table.

+ +

Popup (Right-Click) Actions

+ +
+ +
+ +

Right-clicking a row in the call tree table provides the following context actions:

+ + + +

Double-Click

+ +

Double-clicking any row in the call tree table activates the snapshot recorded in that row's + Snapshot column.

+ +

Limitations

+ + + + diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePlugin.png b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePlugin.png new file mode 100644 index 0000000000000000000000000000000000000000..30cba04599346400a9be5f86403ae428256a84aa GIT binary patch literal 24174 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 literal 0 HcmV?d00001 diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginHideReturns.png b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginHideReturns.png new file mode 100644 index 0000000000000000000000000000000000000000..8ce2b12d7b6fdff98e0e2fe0ba1cb0e3ee9fb7ec GIT binary patch literal 27179 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 literal 0 HcmV?d00001 diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginRightClick.png b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginRightClick.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ad124b1ed0f03dfcef638681519269777911b5 GIT binary patch literal 41305 zcmcG#cUV(f_b!T}6s0LD9Yi`v2N6O*0qMQ>B2Bsh0Vx3y1W|emNbeveN^c1W5;{n4 z0i^d(LoavX{=U8U`Q3Y;bN)Hc@;oYri$!NX379uk{iY_%7?-wcDH-9~Cv!{R_sPJtu3G ze2^or@%)Qq07J%m_JR6)g^vo@RbJe@wko{u{3@8_nv?>2fV|ekq5l?h{f5ecYjTv5 zv)k6P*ECyod4247YAV9hwo#CRHHb`#fH5d4V<}cmBAO2z{pUxryW(fNUA)sMgu`g* zy%!pP{@qM+3_qRmzf}3_$MKa&$qRyy``H1S}SX+HbfJcQK<>ma3N7u zCw|p#SXfx0YEP`9?(}L*%!^CIJs7U{^)|H9bdBY!gwRVw19(m?*AuDwtDat%GASeY zR{?<+uSPghL496E`1rxZLzT>}C-UVo2uZQ$mmiQb>vEivB0_u(Ec_gLci5A< z!UXy5VvOhf?y$f2d%S0Y9_>vsP*K6>ff)uMt8W9URM&f^Ii$&j9aY~4_l>i(EMsEe zcZFY?zDEWxZN)_Id3F`ZK+7LKpOL!l+2yI|W3``k14{Z~E1Kc1unm8O9!g5-ptD9M zJR|`VPpGJ|J70F={04VqOggzRq*Wr`PpI-OtR#~JVv0uX7KMT!?fc?C>kFw+KBUjb=_m3a)&JA)1kicEg11F$v1o*9;(*nu&v5=Lw{rh3%AVw z*bPV+!`E%wr})o`;tlsK6AxlplsGx|Fbad!Zk%R|udUAJ!0y#qNLsUDZK!J5^rNDk zJ+>mqsLJUQ1Dvz~5-Co}5qY^^BQ!Ch|G>C(3&F@}J9Fqm5;_CHZ&?e_EI1CPTypH|DbN2Lb ztrt;P(^Kk||u&%>vqbu&w zV>^~HSY3l~Ggrl~X^-~No$=M59psw+nouwA$-#j+#oL8YWK~?6kzrceQALBqv3sFF z?xzKsXti7Wyboy(U6jlGT>{SG?i@MHzlxdaeK)2Uwel_FZ5UEL7K54K| zJnzsG-QP3*y4v-Xt~)%PDZJ`Q4BnkB#rfgz9PFo&0Viv{Fzn^p&w@M%6!spK9?rOzE*> zQ;|kVFDWN>pY|EQyIOPm+K6^uFG%0&AEn!@0EXJ+J zLmRDSgxAq8JQd?;+irj6OPF`w8LDP|zP}##W**aLJkc?_V}L!6*;<_3cFA1~O1N9~ z%kmYkkC2EmC$=bOq+|lw>2S)_7AZf^K;1Rqq!hcbs02Kd^ko6=qRtQgyqzIF6YW!7 zTM4HWXxs<4velUD(;?=d6AX?YPSI2$X^CVS0Xe-bkcX;-QgqN4iz2 z3G!%TUB7qjl zF#lXXoY7oQHnMW^PrF7r&6ea~!xfPXV`hGodx)SA-WY_>A^YZdxm=agB&&l>uX4QC zp-#j?*i0c44YN(J;3L>&yuW2g*9XfPpYBu0_~p7kGtUHQX(DR)=r~3IW4p}0S4wj< zv|lBSjOhC+kPeIfhNLgQNR~?mi>>qvL?W>Tc8Ot$;71)29Px11mF44r!>+DI3Z8a3 zABmW|TuSnV+nSn=-u$)mZJ>oI(XGySH`pR6@-N&)jR)e4Y8 zZYF38hLG#)JiZOnfeU%(W1%3mX+}^)N_1nNS=@cle9qD@EGOO4e$ma-g{Dw9*R_qC zN#FT(ljNZOukvj#(*|Qi##B4A|CpCUluiE7)A-~hDGl5A#_0LK9FKk%HDy2He_>G( z#vrNcfkAV~MbZo3r=cl&v(SEL909TX)Kd?4Wwt$w;3;IX&GOqhIv_7|KXX%r^- zOrjL_i@g=9LW)s+s(hQl8hT4pFMoe0890PIGHbIPE?qI%O*g%a{uWQ4jqJ%*p??v~ zAvlB0FS2~_QVpdz_=4EFGh!xoVOH&r>w%~fV*D?T^~7YMJgs^UM8bVC({Fc>lcz`N z_~>zuo*)h00uwm^V#ZS{zBg*V!YNLy#D3dj-b4_8+%eFlQHHEOtl#`Wby z<~u6S?bfg<%@)gs^o=j(GT+e~r#-u$+RWY4>$IHqrmJas&dsZ$%>p%O7C%T7EwnH& zEqX2N&VubsD3v&A0)#xvd)C zl6=TN7peQabK=43V17r#_eS})y!||YWNwDq zT1c~VeTfZuq<0Z7SU(fr4(a1a9p9-ku6-*-(sK!?JzpPXJ_XWYa2OwzgIfJ?6aGMr zbh4*Y0{(==LkoZAgDOvg*pU`PpVIobZpogu4P0>eTa~nA9f?-Kt|QJ6zqH$k%Wo;7 zP*ps7+J}em2D1;H_mXsFFz1V=wTqKRIb$NN*4Q*1*Ok{{apyIke0MjOO|Lxo%kkkI zt>fKAtia}qdv$5ZzVFWX=y&}OX&yz8wlZXR>UA6RvZKToW|Pr6M84J089SDWb$?;} z_P|QLib9poPfH;SRMCN%WnTPNttO9I?W0KVuzYu;#MkQmmS%H{iJQ&e*ByfBjJV{gVPs- zB)c89sW~R~9)$j2o8{tsvN2mD0bHCCz`REDo@)iPNk#^}3?|$#UfKjf&`fmu_r>^& z>4OAgF@$2T3~$2Je0uazjXoS&f>Im3{HhyIUcSV(Y9~VEYp((VkkLkkV~ap-NsrUr z5een#&C}8(lD+AZ$PrCnRmkew+*l#dlrsJKvBtQsxm%35@1L4;HkQB0(y28=9uW>} z?z+|0W+aiI*J2hw>EB>->s(#lm9&?elnDAP!NrW#=TJ^zT&?KsBH+^w1zvlHJx(~? zAZ5_Snz<4959kYiU)DC&`#S+kDM9q$Lx2h5H0Q)D8%C?X{;P$AelPI_RFdfN&5uTs zu4@drl#w`LS%8&Q-O8hjtkX6-fn$E!Z$Z=U&`wU&Z7FO*x33KbK)~K3I+H0?RVVs~ zdOY;;{v@P_l!w*UeHE~~;XY2H_3KWxXMLukWi_$1`YT}dVF36>S)hqm@gxvop#9UB znOuvR;Iwt@TAZsBVS8MLi_`8Z9`W_@)o*glaySMwiF5o@B^4=M$-H7f; z0$6T7O!07P>P6|t4REak|Kngz{tM>@)`N zzJNi~{T8;%=q;G3@NbV@J$iXb5}-x_N%SJ3%NdNHKkzr+G5ZYh{JKC?)#&S9juA2| ziV>95{SlNd=B{|YIbNU4L3!wr?#Dyy-KUE>k5}`9MNYU!4d$!i|Ex*>G{qBg@fJV` zYF(|3u#Va(7p{3fp0A;_Mu!P!h{}YNDGjX)Q2}F~w9o{V^IILExJKOojJwQE_K?O8 z@z3u*txUWEk)p#NKQJ*DJ0)5r#jr49=mdLzzD=O;N|5`YkTh)_vth|*w)m@Wuf3KD ze0VUsW^7XDs=)gA^2L*lY39?ptQ<6aap5FjRB4)bx3eHOd*SDI@`2y$Hm(lkSxXl{ zRS({$KU|P61kC31tDDo(R&zb#W0XISsV?iFyfkHd9`4SXVE5epJ}s@meg$c3b9MfV z@@j@bM*_qO1+Pi8NXSuy+u{GT;lCUZ6n?4$m`vPD^L%rvIz+P(sS*#l+#Yn^eLG0l zSu^iaq*iycyN1C)-)ycrJfZ87KH8rI3v;Vq^9u7hFUk}!a_Ai2bm>egacR$WqmN~n z)_c@gtF3R`!26#86tp>_x z^ZCTg680i_vU`lI$oof;50OYWv$A+qt62Au>&e**J5da;wTuPX3|%E-$7QhjtCnhd zm_HchJJ!HnxTh2JiM-8RuiJ3GLcCmrEz`F;}MX8o%e@y`42`$r4ISkM#j;$s1LB8`d5~NZt+I_r1zl#VB4L`?Q}yA~9UB-u4f% zf{PoyVv70IjV%5yMf3cd?hD-!)#4~bUCQ{umz2qI`45AR^tuKlrOCy+e7`OuQz0VC zppn(dd~IZe8ik*7p>e*e=32I3f>c{S&il*KpBYiP=PwqDJdy&-XV7|dc_^-m z1^|T#>34Jn{dZCFyW)T*@fv=JRtg283P~2*Z@BSr9b|VTPvUDzy0gtmI1C7W$ULg! zXlEW_wUNC%4}fb6VZRU?B(rTc1;@PK;+#U{+}$^;R`0tj$V0_23YSI^FV0wtK=JBc z`r+w3Qw_F3kdP;s3HF<76j9#}n-`+#Bjw{Ibi{*ebAqr0N=FuXD)dkaR(Jd%tZ@-r z%tm^OZ@jd~SlfJr(yYga_$oOUkwN@E`p2yxSd?)6i2VF_m4(F%Ubc?g0>Acz@3qq( zR{RpC^5i^kRi~o%{O^^Inu_X|PP;40KNiqQ;cD+^-psG1Ja|acHJTmV)vm#0H6%hP zNf7kLgo4*p*=?S_{EU43(9JIN%XZWTm64{0znQUz-|4#zO0RTBI$fD6B6fBf?LegRcjG9G8{4o^Z#?NqT8F zi?Jr|e_N&J#=eS>!)?jYF4DYP%O>z2%8y60WHRGCc4iTC*wUcsWxmL~UM%pfi{d?% zTIgSJCFjE{vUh~r^3N@ zlu7_d3nS7hO@3o$cXHtYFwhRWnM~+_yRlwv^)Vu5vvHhx5`Uaouf=%as0&qQITOJ= z3A$>t{QviAz`3ZY@LM^@3P2-;DGJ34UR*yKFhX|TDcGYe_=B$g-^*3!!~EcBIm#72 zxg>PI`RBb6XLj8GqYIRZ0?*%^ry#g$!`>S5BGE>A9}gNzgoFOmwAJ{L%Z!4q4&?s3 ziwh#8BVmvzW{XxPS_f5_Lqi@EZ~c0Yr8CSx+Mx+){679TA>r1a$-McWSA{S#KY|$y zzagb>k9fZN?~CCejc>Dm-};{y0giFc@#yb6|MR}TYRGTW`2Bt7-)~!(qm{2J;J&5} z7VV+pe;L$pelV$+ua-Wdmrvz*bitulnnDENJ~a=P;;kE)nt75We#_vr4f1MJ-2c4u z)yL{l9tIQBDC+C$-;HP2keU&C_*?I51RZE8UN=uU>D`%fDG3p%$?CK%l3{ctkB(|; zJCYvESz=fjbBd`~bFP`iF;r}z1@NFkmoFAM@pk3)X#>e&rCSTne0U8j3IK$p zV3ym2>v(Z?tdm@$`wAU+``k40q|l_kY6GC8Gec}Yejx?EJR7O5j3~3|;cWeMUu)*W za&PLOi2Kce2Gc6%DNf$Tv$BOQm>RwR8RQr{YKB!A2zoXmVx9`J9Vs^0{UuF$bBLi1 zRWn+or}pyY%Z7UelyRT#b14F}Vt6?apL8wRL@>blr~@+FeA8>= zds~h-cCE}CYd>D?l3r|5uX}R1mG11m5mX`IMCAphva*7nwj9M!O8PY*75m|4l9g$w zDbXLsGrGlx-f>>QYBe*ZZq{C2oGzyOU-XMqvrtax$&$C9RE_jsoS!Z(r~B(}uB3WS z_g`(N&NM44YazkNIhuq{to>kf()wt7HU{i-@UEed)C!6_QtN+lwx{Mb`+*|oS-|zL zX?AEZg-R@|%KpL|CbIaAdz7C06*SbMt~mnLb}AV(ey+s^<+9*b{L?`n!=$RPhBP99 zGUR!{K^n-@nZuwg#~A55?m$<1$JgR_4^eo%+xuE%$=K9-B&}!`{ZPvE;rmRewNOB@ zOTE|^325C{rUp@W8eo+YXWP<+x+P!q4C_5M7ed+6wiT6bUpJU}=Z;BV>PhZu3cwxq z)J_$1e}&%Uq2~H<>;A6yrw>0`Z(8pw&v#Yn!A&)5U9D@6my(Aa(m1s85+`Yz?!kCW z44nd<`qx3`O*nA9YFX)_#wNINZB_z<@AmVKShmPDmWgi`fwlBcxkK(#9uktXCN{VB zml%m)y|$(iCrgE_zlbG86L`%^d!4MTa*&-rXKJP4;A#1Lyr#y^4Lh9^7y_UQ9e&vzm3FjMthgQP9a;t%!1 z>tlUFE2qpF-fDzJJ(i_9_`4$MLBh}4pvr7R1#Fj1s z+k&vzU+K5;c0EirXNkf(>B$k83DTFQOn=7iZN6!w2YVN!sZ_XC90C-gy~1vAVKqNp z_i&Rf-FKj9Gk?ij!I{Ba&o8weQ>Wy2vdRXpP)UB`W#Vb~;^8{Yx8BXJt=rU|3N^3x z(`;AHj`!>ljmf*&krH1MC?4xS#3!LuXA_c(pfwH04<>!edk9IX6(B(wTN@E@-k(xZnn{#$}^4~1{k z&9b#MUS1US5}Wd8228Y;i-~#?lmy&qqd5C!(K2)Zbmas`vwNeS_#8Ouv=!*>@6(VH z@eznjy@}n&Oc?=zkmFodLr)YY@KDXndfSuksO~C*6ubCmAgb*KWsw&r4qgkI*cT*wSsq=5ybG)$ttI!wLQZyP-kczy3zqwXZDc3-hTM&(up}^;`-z# zXR==;G(xW)_JI#m>_HD}-7rN^(L%k)^YmrTQ(|u7(Xpqhe0SSVM%D>3dS=B_pF*U# zK?sWV<;fX8S!hP!O>6)}LtoafNVi1u(4DdfpZ;wVnoW3A$@LV+Y*C~Maf>v$MsIa> zjMQ31>8}u}KlAuiqtyH&kUZ};c%i97W&Grx=TbKn_Kk?wu2p5&C+Wu%=vucPr{Xb$ z?sva{c?DutMsabpaisW;)yHWFuK(gUTohdes{J zu5g-ZE_lPE&lJ2*M)Q}@@w{fHVxAaB9wyQ=Qm%MTotOk}qpy8{Wwb_#FD3%cE!K$l z1)d^EHcIpNS+mzcqD1o%yrM*!C@zET9+8>$&%DS22_wLn_af3#Q$*doop8xMCmPQC z9c&nMBycB>Vy|a=O}UR2Ixr;?ES*$k&8+wDeF)*REdCtp<~)i_8REigSh4~m7-f2IJWkKeo2JqEpJIL<8`VFV`XsXG!oq}y|59BIQK&$VOuLN)16Tg-%cQ&kNrsMw7 z_c`F3Z+GR`Z&Fh@bB-|}zT$a!HH|Uu-~1gM#OAnPH(H<}jrb(!ef)0fV&rd&>90+a zwAA1>5Vkm|8&kafU?<*f@W)uZ)b&pLl!tL>rEU8M>&^(QZY4tyK5@>?$z$TG-J|R7 zk!htso$ffnt`7&s4=+3wUG~`IV!_(C@|ZMk-CzO|@A>Rn)ueN*n&kPALzt#LruCul z>8wggB{2;n?W?`QTGNybOFa@UzV~CMTLx`VA{#Prm7T(W0(}+;bchYQ1QMd^+?lHw zFW`cd&7JLPCPBmm2={RtRTZ3Ly+-)SZd!|M>yd!W(GZK%0U&+pw9b}aTxv-H1;qaC zYA$R6sHuAC=cyp{Gcvqu-JHQA<+SlODN<$V$k&X&R$)!urz(?(eRpbw#qWV6^AvBy>A zSvmAJ#wW1&IZ5$*A!V`>9ye5Uzy6K?;fDFcC~UZx)TuP(1W*UC!-YtSd=E(kadyZM zALPGAplfJtONMX}v^<+0AwyOGw-Dg`YH6@IKIhHNry zOluuI^A@X9KFjhnt<38m2w2R&0} zoG7n^8eX{s#(@U<+FlXE@>V+VI0?I5WX^n*g#6%I zzyJXFn97N%Vp=_xg)2{4Z09uH5KqV3N@>Ls+n+U(@CVya_miB- z+nulAIxY=aw)=9br#E(c^%Ms|D~2NF6a7(wq64aOOZcyQME5=*&vuoDGnV_(;Z-}H znC+!&q-GzV%OMzfjd4qis-IN1McObr4df`Sz1{I9K@ku3TuZ!hrpaB(DBf+cMBgwX zgx7V#h5Op|FW-9=Dy<%H>lC~`qAvvIa(S-+(mD#$?2{h+{0;7uWouN zFdDF(37rANmA486FP!2PCC3MhcQkorymr!gd$NN72a*}K#A~gi`gIPB|MHik##dyl zyGzL~U)&_;3m?EoW9vEAMa;BKf#%mR48e~ed-?bpUe%8=Cb~wy;2K-7T0>`Rg=}Io z30MY>IQa4@wK{7Hci(lTNxnG>)URg-&E3KzJ`*`xcsAeKL#zeKBH8(LXYhEHX#j|- zV!1$6g%h90QQ3&)BAMjp%Rm~=1g1xiy0LFng3qJy{SfyNZ)(O34-fV5*#2^@E7&P5 zg7H{EO?7z5`GR&^g`5tjec-opy)KTI5lEb~DJ3Au=h1KTTNhlLU@ztHy<`4bc-rqK z%@sD?z+m6XOBn@?Kas}(fyV2PwI8j5=B_(QP!d`}Cx@dWVtu~*nLf8a*t4B`rU<9- zKOF<&LYY2bOMsRXLp9=>#{wj$Cb4SX5Z+g4g*vj8U|IKt>e}Ihk;Kv`_x;d|Ea(^v3h~(@g>3`W3f&F}Ga(EoUo~vf>hw=OSLY?3N zxW9jyL_u^nY2(=6d@Dv6qn~u=ec?76rOKzQ6a^PakAX?XKOFA|TRIA%U%&lkBx_;V z1Nhx2C&Gj!dYXshQx^NDTMurA0-rD4*?oe`z?;F&so{OP&4EDlH)sKjP+OggAgtb* z`YhRFsz7{u$M^E&W0pX`{`!P22j8xDeYRIV`=_je3>`cg&#A}EE)&o%?o;T*FLD}5 z`X|^lb_P~c7d4@+D{i^SW1Rss3*VEsIP)_jyN^TMV*6=7xqjbYAAf|PW44^b9>g~U zj81a@Su|BHkpQMn^qa`0ZVUZ`2YCzDBT%Z{CkJ(nJsS=K8LLLQ9R-yN100;-9J9W> z{dLLEq*0Xy7u-hYErnHn_xuqF>_KwFh+Jw++Mvg=G078Aj+yU`m+>|;E~+uAR|2Kg z!VF=IDPn_xh4PS7OO-9rv&djn#cSQ*$(JNn!}9ZQL}yF_3SuvE;rr`83EHcb`b$n9 z6B6fl%A9SBg&5A4b;w;DesA`G!s`*Q&>WnvzfSmvKc4cFn(H%(uYD%$Z+TBkqv zE!|8HuhP6+tWD#JU68JoR*`jyN#(a)0H$?AWsPD7)fc0}$mKE@ zK}La&OV9d&)*AowL88J5x94-Nohl&Z5CKf%B{%N{eY*KHad}#bsEcr5mH_-Nd~es} zf&7~dLMkD!Cg-8?^}_IfD-(*>3-HK#?E{_9PAHa}Z!?a03?w3=h6YCn+AHFel1$Dex{1z!4`3h`f! z+}jTW?(+uv8RU0(Q_qvolP8f%KRq%LM84oC40y! zwGlcDi%IWYqPf${+BF_!KGPSU4(iFMi2hbU4ed47~PDh@o=8 z5%(22?;#27=;*Ci-r)Nn5zXL$L(6Fkw7(HlJ;7O$XJ?tGeR@oA;0)iT#jx!B<+1&R zgy`$JloTNgYfaP(`b*61oZ$|C8Q*T==w-v} z)w0KvkY+BY^~}NDRo+S3MZ389*w9I<=>*HQ_%qu^=W1@VP_+kLziWN00X0bHH#JjF zncg!uKz8I>Nq_d{yDvG??0_E3wajar5C~b04=r<^FAC34AxfgjojB`13VQP0d8?4w zDQjVEIHm$oTGly#<+J>jSGi`Bv*v2lc-!Y}0{PWnM9v%|cj9K4#-Asj_d zUYDet9>&C7I4Z=rYrh8=NX@eJNP~Jvy=C7?iHr0_Sbd|Isx!2fo=Ye4;?k?Cf7BW; zHyILQKEZbOWb><++Q#CZ07gRPRHw!C7-p%t3d`2Cds#do@}pP{DrCTi5XC)QRnnUTDO$=bv!?w*r`LE-$7j^<_8i(RQ@gWV2N zuAu{WyvKZ_mNRN?#X>Nc^H@n$;gsa8|NgOi>PDmlvzoUA&7``v;W~1uF}WGnR#~}N zdmTI@w9B`}GSM9s%ciD?^;3H6l4rx>Fx~&4n)WFRjMpq7IQ!AUaT?dv1hr4)GA3^8 zd$VJkWrA!GuXRJ2j7wW_`1dlaNgb^c;MsaL6@%Bha(eadXy(pPy9b8w%aYz2VM5+t zq9G;Fe}epJF&#ddHueDiJREukJXl;`e#`0xQ7eS^xxJo*c$|#a?pL6}ji|eH-nmwp z?ySk)>C{{~^Jd@XzScCfQ`Oz1@vukM4FP|0J#Z1Ol0m$=C%%CM*=OJKfA09bpQi5Z zB!mjF@GNFme1G+Bt?P@pAESfMH!b|Vb2GtA#*bc_HR#cbTf?6XAD*T))-)!RCED!2 zCjC;b2R+c4(H*Dq^mpHIK`{Edl#IIxD0tgw)KPmTVr>EeRfg$TgbkW5@c@71~$7PTQ9qXvhJ(iVoGO2i@afS zGzq3^Bfi{>rs>A6Og&c<^?v(}$n9dQwQF}|o1pS+aRagDE*5rtiDE$)OkOnTJlTl! zOv%?E@vWuo@>rDSy&p09g(7I0hT4;}oDfmKCyFXFq0w-fliGEovi^f#Dh-Y>g4#PrxJ&Z^QZrN%o!-D2VEXpDJ&CqoSDy9>zh@=Ah-Y zC#@*=CRmoriE@?=M`V*J|3c%_4uN>`7*~1Vzzd#o5N{AZ`3TKl z*o2F;x4$^G?mS`Qbec%#x7msq6vw)b=Vp6$@bIE)w342yy)h`oOK&MInTBds8tvy% zuWwF#jC~S7@A2;W`;$v$)fEDqku-M#()kslXT0Bp=|~AyS{XL%PT95Am7iM58*-{+ ziO(x`qm&Jk$w&rYZaf&qExo*4u(CxnUOi**^nO!KOVhfS?E@e{<-+Ps62mOesUK0P zQA3$wAUqc~exMJAaqys1vqzJf31jZxZOquwbD0m`=fzzYcu8_C@30IL_~X^bY@q~@ z%0%WtOOcT{^Y70Mb<0Y$2=AjX141&X*qA@tI_*@t9LQp?CPZWr_&4EhI;2(M#)2>5 zmZrEz8&})15dS5aAT>{tsX}9^L&Qi#sxLkD=115|@vt;i7IpwkGd}LG5y__Kqlq#N zURda=Fv#AG=KBbP^jurR-~9u`&r?DnsQic`zbmBSH*s$vdkN-A$KLt*rdeO z3y-3*p6-dFVnacr*EX9T=9&643pf3>7o>8r7J^C&UMJjVTL)L?-!$=?$@Cr#-TzCEt{%{*9Rz+UPLH1n5& zZ+4nMOzl=wOxD?CsrKGRnnjD+5-R`$F(f0ARO>svAi3Gu^;IkSvW0K=(Tfj0mPn+qq6TI>0fe2O(NaR5bKF% zfa9>y4k9hc$i07*z**P*?q?#K!hd9+2-x5?shq2$y@XSl^ZaDOiv9ZdkdKQcGXe}q z-c6S;Gpm`IX?h=%O@`v%P}ZV=&NbYs{Xul|1oq%XtxC;e zyOUfM%F6ltOC8zo2@fdLSag7XinsMMDScwr+k68lLn2nfn2WWs8E=Bo^r@fMlQe!< zqY=$kr3Y0sTHt{i@))r=h{)2rQJ<;G*Hq`D+K36~7!MTL+Op4;pn z!|GX-W!Ihbg0sDv<2-_*;^F66oHbgTlZ!)#u(^>^BC7W1g0VI6iI*6-ZU^5FqBFF z;F+k`ZVs)apYcme%fRj8+YjQt2s?E4rh>34f?*W`82`)j zYFdzovf9DR^^uZY;2ee$()V~_r;Pz-=6|j;!_53_@;Qx^kyNtOq!f*`k#w^3q%@6; zkxa78qzsMlL{YyVA!86(4CF=$1nAcYhM&&1gs_N-iAjh105h04LV95EQfySM>aj7# zc>BTQDBz=u%5w1%djWuy8-RlvbYS~UX`%SvQH^$i`tv7_V;L?9H_T9A zmSb)+r16I_8Clu2B4zV0KG-#ucrLw!WEZ3XFnnXx%2Vba&6b#`cHwRPOrbaX?CtG$ z)z|({2Q|CBpsmF9Z~ob`;X@Z5);JdtK27hgnOeN4dyelp{ImzV6 z9QW5lE~ECW5C(#Pfbl2Yjd%$BS3_EygR$PH23>nF&6PUMS0*Tx$t05eQ7~v zX%+9We5C|?0nzJY-?JCmqg%S#A64MV((cT*1QTmb_9ct-8I#V33;jHkd+|bHwA4gL zt#PO6otwv?iiiSG&f_(H)*98k&a7?Jz*|@?BD#p68NGYKOaF{0(C+5)b!@OYBbe^e zXZWj*>1q-kXx?w`C*fb)dT}Eh(pZElciny+MjNj3(IHae9=Fe-Y)6C>$ojmFc=t5S zfa)dM!qj5F7+2k*tOSAJ%fe~Hb)%xEcXs}4`2r59cAn}M0&Rr(*zX1s0#lNxwZ&iv zbTMAfYG$ve^6f%GIv&{n(eWT7LrM<{i7v8zbm4|gHp(jr$gS8<@sS_$g~%o)}i ze#7a;81kl{@dgggtMX{$vEH}-MickB0SNz6He35&9tT@9E+p!$4{cg%=AYk2(J|`w ziSLEgNtCwMtY@kN#C0~u*Aop1=}zRAR%1<~Y)ER@>jf>Q`Cy`t_m=TZs2Q1s2&v~U ze*5rxcc0uz@_zNH0kPy%NPdwpl&+=r<)U9(BJCjBm%rR4n9?&bX}z>wb*VRXJ>G`s z;fHI&VIbv4-9UHfUU|b%p;jB0N?UJ@nUder#+5t%*kQf+0Ac0tsR~{znITrd3YG+j zrha8g4?7Co=hD?at#+CmF?NCB6A4S1;jC2y)1|MY2-$FI0jCKe-a*^y#!4d9NRa3} z36uS3dBooPlb<;A>donpwifd6dKZBrh|AcwOg*+65#=766ICwjzOz;y`TIXRlr=A^ ze$Xfc?Ua}`ngTE7Hg~?~2q(K+2RvE-{YISyD>R4Q_uATfU$o>gsjl#Qw0i2!$7>Hd zM!1rPPLR65M&D6xkV+gqQ`0riyW3LZGG6uqdYm~rc?(Zw?zVvFM%ZcPg6(21%rs`y z%-;lBCCG6#CQuRVriq|n^_oY8+i%a&xHK^KB#VetS9jsEQcoHf)Vk(204dycy`=i< zwM>Fm9FJ3@uHXALv4R*J!OpYo7E)8YqdDnmk4)JlKnFAPl*7#C2?o11EXa0E|NF}i z)N1d2qAz}L-1gt(1Bbfu#m2=tk=YkSCKKifNy)Fo%%bS{+m7DXH13q&_1w*=K%+H3 z^>DGWT(WZfH6bM(TW)kj*UDicmH=m z%xFyd{huK;;9(EeR{Jk^v?AWR4MkpyKsb(RVyVO#9#M$u_a8UDZqgcvDvtOuD3U{q~l zT+4_t)^F!uu_O)eRFzWVLXM-(Q(6ec+s zhUI&FG$(VURBqD~^RtGDisd`}KDb$B@^jpD;)H&p%jfEKhh>;~Abb61fk(|B|4Ml%9L4H2bz17RX&Ye&l1EmV^^KK22ch%f)$#7M7Z?K1$vsg~jahIwskyK=OXGQ!Kv;8$>GUro64p3RK)m9=PG?V{!>dNw?r;^e$h@T2YXQ9p~akPH>{Nx)C zD3$-!P=SWMB&9^6Y#cu7?yT8S*lXc=x&D-;LRc5il%8qQc#V;?HQ9r}C@>lp5PNc9 zjV}4VI{Ffg<*QqGEpU}wH@aQkYhmYk-?DLLF6jCRd>x#-?2T4 z(X^aev`32N=lkg|TwiI>1+jQ4%H33zrrm>>u@isnv~DKMhCGRk+st{-uLtC;|< zHh+7sqg1V{DJd{Vy{mq)X%<(&YJ$uw!=2Eeg4MXnX-XEL&YZvkNWRer%H8n{3m7Lz z(yw?GecT8X*IXMB0X*1Rm#PiX^^X>9P4hE;r#;Hjk$glMSkIg9V#PO=8Gm(+X1%x_ zPhrE*EV@2f4L?cGG)G^v36(mhM)X~*O*(t95xtV@I|tNCIxbJTT@9%`&scBbl}=tI z8n(%?q(yT@rl266=ay)-bEx7ie|`O1l^o2I2QFH9*O#(p7W`aiLJqqsSO#CA2^CoE z?9kV|oB4~#h-kcj)W2DMSqhY-q%ZNUl;U4`K}q}sl)>YP3V6S#gDMQlZ49d3B;==Z z-0(hrE!m8FJ&(8nnBD2L_w4maG6oa`m*Xi9hTIavmz_0_0UufXq(`fYXa88W(LwQCxfyp=#kO zIfJj-g^#@Umg0eorEk-lvRc`b_2TnFVSZW+z`Q$vGSm5KmoFavOPX3pg96w@W8um_UOm?nQ@IJ(Fhmg?40OGQa z<`1`f&L=DEn65}2aBfK9&6|p$QWK-Ex+V6dY)RyQyTj=L}-W+<(rW;)4$yWgCBQOc5K4IsSRM?EWlyGHT`09b*^R&qN{hGui?k3vg!Gv z`TgY!Y$L!-*4=#G;o}DN;-nbuXJr44+6P}VI^rKQnl`EfCmxq(>3Sef-_fhK^<94NYsmZl0hj{Pzo39ojiTFw9fZ|8;!x<+Geett1r zWI77SIFrsUzX17ZWokTNug=r0M!50`xtcg5Agj=GAx>!kKTIP1+hiad@bB?*TNrkI zbiGJf-Oo`FkoCg%ZPUC^Too@wrbn!QqL$mErBi8egR0`VjYf=l0AZ(h)Hlr%L*Z3` zbn1P14#=uFN9S5U4}0|iy_gtvnwaB%JOo$WG;yBBx#l@Bo(X`?Kar5TuKg>0W&SV@<0FCPE@NKgqUG8D>2+L8J=hk#dvlHL9du?HS6#G#CRh&RKDklkW zUdcZ=8*Y-`|5zfD_caVS6@7(1f8;-nBxhAt=il%-*w9$#S0c7)ND}udTl*kKpZFoz z%K7gnn06g`iUD0|T(yrn0Qp(5vXF8WfTIRQr``I%_FrF|b=qrd4-FHEKQ^jT{?KAx zCtGj5kDP(D(Q*0*H3~V5JXQz;*}Ug4sjE1_>OPi}kx5*?gBJ)WDd>e1+e(g zY(zeNt4uKt2*Kc3=DmNC9xO9tf^6=_-{!9;qV|lT{(Es40YL6x|4)Q>0pAt|{3ja% zzVUx0tNknC{;wa=w}1wAEntZv0w)Dg{>wFigvIjs@#9eQPl0sQp4b0bJ`Uv}AZS)l zRt|%yBh7(a{!fYr;h+!-v8>)@T)>|GNu4Cyw&;4#EuO2!Oxv~Bj@F%V(ST0%>!Ryo zXUG4Ckap?fKS`}f{J)x8BHE|Fj7g*9;HHQi;4as_9ucMQFI%lT<2Xzwe>Y@3KAiGQ z7uaA2l2I+7lmCoV zq3K|sDw)4}CoDi~>n;_Q-P!HcnZ`zeJ)>&pc#D?c!p-HLWZP0XKY62X<^i-%Uq1ui z16naa$OHnNEDq_&lS!blR^c?My9v~pe;LaxP|Ko;7&y?+b|ps@SO(5+#sadr#C3Bt zJ~6cwPau%r6}l3*5d+14r!6K@2VU{s``*iJYH7s@J5f=BwyK1rq$1VVfGEy~0Ozu= zdTFfhP*c|~q^ya;=rIz|lef7oZ%FCI$G89r=gj#Ah0_Llv-1Bi_tsHWui>_^Zd6oK zkdhQo6r}~ErMpoS5R??@Zcsp4T0%-nM5VjC5s*d}-Q8W^v(T-3pL@>u&bi~>G45Y` zjLmYbU%c-V^O&%6Z~_;Q z+sAfq`P@I!nvCDUaGApm;G2K$<5o^r!@Gc2ti*c~Ba zoN9WPpMNqle1>dlTazKa%s)<%j{2ByGE|%w>B%>NsgnERI&jH@0l56U(Nkcefhlw2 z^6#C>h5Y`Ba7896bb+USyX%F8_ixL6c;$DERf4X@5|A}jiE#R~3xS#(l$6!2mh0FBFv7|7lI371u9Sb|8PGtZ2HMV_p_2LRz2&)AF>^Pmd49)E z2TmwSn6Lf5gcOu}%hZYg<)8nHBI@6J`u}7x^xZ}Hp~lTVkrbI2?fLFhd-KnYQdY3U ze-?Nf4CkuvHuUoG0|Reks*9q;sV&iNsM_R>yM%#MR{ z5M^X+wu&+KNlW~G;{T!I`Yw1{aVf3bv!70z)$J&D1XYLrNO{@ciU7P|7SquO7OGkf zp#XgS{|Ewp;>@OPS5VdeRc--5$~8{|rAD^Z!lS%J>WUyLQ3+56O#y*04CWs#u#_I! z#|yjx^P~WBzI3w7awBINIIR~Sr>d6~bM}5u6#cR}>ECY8E05pU3{+ogs9Ticj@}Ku z?}N(n22eLy`(A^5ENB3&iIn(8>ja z$^-AEX5ino9Z9`yf9CV%#x?+*4IGlL5A)K}N)%f!fz1;UQEKnR;gDsQbZ3c;35Vru zpy7{PaeR8U7t13brHOT7ZI*uA0I5B#ZW)q1Z-1xQOw<|U+P%P;SckTIX2jl{C=7Rh}=hEFT7JswTIU`1pXm5-Isgo(KeexQk`C>m)-mr%A{bN<* zB4I#*4blt7YYY3nKIu}!3g+VdP*L^3tILmwrJFgO37xinRK-Q7Z=;&kr{EThbr{3t zN9vx#pU8vk}6w}+`^z{M^!yhp5^b&5lxyVqD>Ch<<}+wIS#^ys)3Xjr-_!}1;_+!qx>=8{9Zt0`8 zG7HF|M-$qhluV%P^IlY~W-A;9h>)Si6H9sSxEXV^6g$@44E2M4*GF2l2D(2B`t0mk zQ4<#X7^m0kTEs^UF0ppgL>V0rj8wv(Gh0kH#<#saTg}lNMrS~;_3Q>2^;e}YkG{$<^4+J?MqkAsYS*d}T+)5O^KO#QkOxxFbU3pn~qiq7@!%B$!wM6lVDKapBh|)|N6AZ z?)ZXXVQ{{l;DAbor0cfz8WW38jG1W6by+H766$dBYA5VRuBe1kBfFC!vhPjkQ zj@8O2_fu`t;v{g=CUOQ*S(Zm%KReuAQ=g+K%3iQSsjjJcsE%?0ov{n?2P1gu5yNz2 z4pqQt_0hS$#HfFj=IxI=1OuuvjRDyBwN>fe>Up%PO7|hQ^n|#P{m$G_=I{8Sp!i?8 z>Bey|bm4an`X3_@|7ETI-^%N;O+^#_T-x=1ME2PRbKR*SQZbwlWo7W#jG`Ih9jpBL zCX7k?{+AT2ZT$iP6*wR+?EDkUX9y8DrQgpsrB}w8^#!2K5SOidQO?+wX!rZq7h7NG zlYp8n*>-JQmx0y)+qKTKZuhktu~QYmZR=ZTOCS+R=wH`TdJBL#kR)Ho|e^o5I(}Op(kwK7DNWGj6qj4lf0rs~K#zmah`oM4#M! zl8rRj>S3P0Xf`G6i~kN3Y?2@}3@+6tgz0-IXb9h-O{tbxr%5m3UBk*AUNPKF#lQA zUmT{Ruk3FD4Z>63^{f;vI?ucb&;vU2ja2gj6epZ#JFe?@e0a^hgRuB0ZqW7dE%OA( zFoS1jU*Mr=v#C-ovndndXC^CLrVP=bf>?khCpZu+?d#49#23ix8 zF9Wfl?X+ji^4J2XSu+a<8`q7}% zwAulKLK`}uX->jgfNLUKKKx3<8Tal$B@zxGOjJu_%@4Eyi#Nl2Al~_+L)ZoqG6`GT z!Xk{uSRRM$`XPJn*>}c>!Ym{?BaP2t`zw5-G?-E8E~BtGA$4UZ0rsU+VXE5DA42IN zK_G%<6UXaR+PS2eT4J^EQ9uvfv=pSA4@L4d>wIX*C-t6%Hwa?!P;1ru$;W-K z@y8}`l1r@sWf1LzV+M?4BONz2i4FTR`QM>T6W%1D1);M<&9g_FnG+U{j-@yHzQE{W zpK0vJgN*xRt{o1%$Wd_3rj8VA_2N*8@|*V``bgYp zzY`n1stSfpUS6E#31woWoAPtsD;fS4ny(lG0I_@DQrvXz(S-koCz-`jgSP_neO7vU z8B!F@wzKn>p7Ys91i*jG4k4d)D&J}XtJUs(b+UAR<++N}hqjIl0FlsZ2pLq}w z_9C+{BSwS+;Y$)?*qvuZuo(RD#;*4xMN+zCr`L$=HRJ7zu2}e=Hk$8X-(kwJ)!J(r z+q^2Yze^QHRyKT#PuGd55|Xj%&t&ZOuVmbFMn0OrrJfWEi%P^#Zg7G#g7LYlk0iVE z)n?;3P_=%FwET)9`??~#@AE^+t@#Pgd;dt$VMKrO7|JGpw1=ODj4&2!>z6AUm>b?? zgU~#u>O@G_25U77p~u#m3kkVL^1UJwc8(Z0_neur>{t_FHQ|2}U>c580WX*BsOtkR z$qnv?x0#ne;ckW!n@yY%xu%26-+GIhk^1MK^IW`B1dNKFC=cYwwXOxFdkp9~sbmVP zz42gSHeX7uhq&^?b)uoDaLj{P=?Um47PqSwxjzL!gmp-En`|zJBH^J)gncIkH@Di< zo5j)wp}wKo$Nj%;^~D~_yhYm}E-&UWzkB=h~} z{t3)OY)E1rlCw6Dt#jJQB3Vt)X9C~tN3h_J->=Gs5Bek#FocTt3zGp(g%0Epd-KLu z`{3S?!aQGQzZDGKtQa8BNIM4@WZcduUH3s)4;tZ+k)^M^1Y9Y(l~?NckJ*8BMgc*j zS=2;BfFv~g+K?^gtMt|xwT64hC^i~V1G3mC&$7T7qMn3! z?2;iUNN?RD4!xr+a{-IYkba^cTSD<4001f0CkU3M+dmAZ^GEj=GL)ZlJR)=2l;0ck zBrokm@*S533&H_?Z-I{LmaxxN`RfFaqu5QtAm=ti&$jij5B*Poe1!{lMb993UW>~Z zao^$z`!bS`@R8s-He((V?E#SQvz3=s8+b2pIzJ=ijIbf$d$0nq&XXRE7_hJSB6qb` z4vUygYKhBanA?J<+4Y_w3<5ZF3W%9@kxm_3zN>E`k$+zLTJHq&V)K)uofhaq9~L&$ zdgB^7yfXU=HK}5pd^n&l!BE$IS*J9-uy<`H#bl&hAyEWlVfk{mQ`p@n!Q6xtqz4%) zd9+=|TGBNff{m@fU@#)S6NiuN9UD&yY;HbNP?|Zm_Uu0rM z=MpF>gQU-$m484_kZ@O`qww6>^OOYg4@R%x;GGky3_@$hq`&Lhh<)*#`|QKoptC0< zF2jN{s)}8Mt@luRjvV4<+~z*dzn}kX@o|K6E5^dzix+3-UVoOBr@TD^_&e>;lHyFEgm8p;`hKiWpyG4 z7v>kND*y~HvNo85X)bDhf0u#_SW>8}-x`T7HDFj)BT)GcDCi@@C|ekUbzb6t>b~yM z?Y$*3-Vva^BHE)1fT43gzb(i4$bP3B>RV6cC-5{82RT;6SUMg?-teG?hVCz6P%p#U z7TOFdOu3ZSlH_tmpL`5|@)+ zOrK|AxU6Id#xKTCU|r#U3^z5tfJrht87*(r&yY3~Yr4Q^n!|sGafY+8i6)K&*G8p( zKzY@J`U*&2t?sVGDUo)XaI5JVD}d9+1h9tYztna5a3eTn<94q8SwK?lG_i_vC((NPH?9Kqnt*g}`}CYt4l>cok2 zbweYjNi6PE>=?WS&H#)pBX+yV)2|;qfziFgQ6&o2RR>CJ_jWGI&<0uiD=Rzt0t3a; z-1jqh&)*LDb8)!-xExL}tWqoIY9OY*)#AvTuOswMXtk(OUr!rfrH@B1+RQ^ToWh8b zELSt+W6j=1U|5aqXsqpc+nR^x-E#`;rG*y5`fE3~Zs0+*%zl)nQWRIjYZ)rsG2*oI zlzo}URbocU_(CCvS2zt;5(4I`CH>4Qu^Eur`xgv{Zj$*;wMFbkij334U_pr7+u`;D zr7N8uUN}@|OBviFl_QFal1WQyq{!oMd_HrNqTgON<&m>!=6Rk*7;Q(Z?JV@Q#}KSH z48;1!$F64C0tt7e(;7bN7@XMV;1;8JMO0-IoT(Pm&*PArTn&ZAT5?7EP%hBU&Q3{z;5d4G5qdyJB_-$BU(oG%+0SG(-wSZK`l;V3gMMC)( z?b;zHXdX0O#j$}xmvUbWAz20BrKDFnP3&E&3_o7M6gibn{bbDXx`6;{lxT;r8wOj` zI~_i6?}yy9fTxn&YKGdz!hQk$p_dX%`h9)QsuAINY3Of;OoP0p@s!oZ6l}+#ze8hx zWVbsfs2|DaQXb{#)n4;Ws&pgDXb>4nk&YM@hf@qOUs=5Ij>rH$A?O#J4lG22OZqN4 z9y`IfFIlR#Z@D}FB||Mmk@I6`bNS02S{t6D*3>coOwEz&W(2UI5&~*@JmYI~2#K+Ff@;s^Aa<6bOCnm{j~ z@=3LuY5tm(f3Ya(=2lQK(bq3y_Fv_0!Br=Wqu}^(6=g(TzPWw9G4%!^%3%vb1z;oRu0Ab;Q-=gX!oyWHF<`f=U=UDmI6+1a?ZL$Bp zW+_{^L2V8k8{{3_N+2bJ3wz?vnL-P{PT72AyIBoAp!TWPUC|o;%h%n#XmNIU#)1mb zf~HR2st}&{LF}p+f~68D0`m&k?)~KO$3LH=8T%MzoDI$&o&;QhTQHw1ieo66#Bl&8 z8v)hH3u;sz1f{^tTq>OK&w=*rdwSWn%EI?V&ywEM(I0S!ef}KNge8mFEsJ@5>S!hk z@q@_3;JnwOQJ+2o#njS(UR)kL5rjYQ{tK?Tq>x1@fwEy5lazN10X+`|^FD(%Yoba;6vanKj;P`;BuNapQ; z6A?X~!grJ!lEe7$3%J=2OwxL(0j(qE)5%(Zi)9Q!kw45Uih%Ai;Jgtv(tn92dX$s% zCM6%=NE2^xyOlGz6f6Y_V&2}~Oi0LoQfiwuWLkqEQ~G4NE{561vCBJTT@1Ay;?s{e z1nLpJ_RTyxT!d1_n;~(BwLNcrPWJ=l=OmmR8LBW~OkZAXF{vnUxiaYDXEcI+KHt2H zeS5ZctJkrJ0RkozJm9b0~a?D?vC+LF~{|_jEv%W+JmmR<4I@#&xICW zJ<04panbODfz)!X??n4UWVIKrZl7v|C}b+76#-?&65vJBwy_brDe7hRbzw|nvQWNg zW!!m5e3K?&isUtX(yWu_R_H^OR;Mra5lRa{AGF>%puG%BN5Jb-umob|8skX$UV6uL z`kmZ8ml2(fzLjjd1?z!>JuahOy^+DeJLP#RHj!mpb2i(v#4ZH~s2R8ON;mES=o8;& z<+R!zU0)%zhEy5!%i2|kxU#x;P7@gP{Lw+KyNUsfowqt`^jHz6KMs**9P&AC-{zQlBdoU z%_jIFVx9(8R|_aVZsR*~X(15g#(S1tMze(%KWt(wd#@P6RA@QTb=Oy1K5?ie_(hqo{21?M;TPelGKhFvI?bn!RDLb2Dx%taq4cK8ITNHhvO?d%=zBasNi7{Kb5{ZSVeiBbBfCV?gl@ zfhUmF_uNeH+8(FXeBp%XOJdfS+Uz5aIjW-STk@i$Q}se4 zLSGz%LH6nZy4Dx!VvPLxj(7VFg#6pTDF!nF>B3R~lbct-xyXZz zmz@2tO1qNXabK+k?uEV#n-$eEdn?;_C9g-1@QO~K$(9azEx4i?!?561kNqggMlMxQ z_X^!<37jB7YnE}c_}9YjG`_)h!MA+FE@J~8ov0x`v#4)RO1h@g?pUTRcPTGsHnrpr zCIwXFpB!vEeCbhN-{KB=Z_^C1QaOvNXgWiXoO9v3GB~ZASwY+CDx>k@(jGYc0IVXpn67hBm$ELgL$?GT# zm1wuLIa4TV8-z$f5a&!YRk=5Pt$qT^7XPWEkk5kqZ&9lzZt6fEy}b1$qg>@~S|c*l z_8Pkf?QGH z%x%@Qy8dtZ<8geC7bx{lGUf)qesgCq?46HcV|NKCZC5*rkv`evI+!06__9-5igQ3K zyIS@G0RFyfC!TzVRjl?N1>#rv`L?eNdmz_S)7G>MB_YY(g%EEp*H;nDKQ2^1pjd`H zZl#aH?ff`f+q>mRM8s`;xz19Sl?1W} zu$wq+ZM=!7bmvbOvq2KzoS>gd?}>|wc_!LmJ1)b^+HjSOl;-YoBU^)8u2~t8-3>Ct zyPQ4j8VuJbDpleC)D)JX7+uZkNv3u8T5~e6vkCePVvGeP^=t zWKNmWjHZF-$tXwFp*4x?_wDKf@vEsxG03M=V{`6YaO1xAI2pr3j|TLlP)DF> zWGN9%#^B4Tc$F2hEN_=fy*sOY;qM+K7#DgFFU&#a1PRJO8uK4Sk#Bmf+KKd{#}w|0 z<$0lMO25Zcm>MHt_9&!@Ewm^d8@uxQUeJd^Dm_cv8?waTF+NtDq^DMGr}Y8>By z`;eSo$0KY9%V*rz3KFNhTQdI4TxmD+2VP<_A?qr;u?2pa0xHii| z_r*k>KCi`cz4upGQ1NJ8%o_7fULi_CbJls`LEJDMmBhJM%@MPff=fc6j6VrR9zzF5n47J~(S$>MvCmP4Qu~0XaEDkSTz@kS z!--2iT>4VcCCJW)SmGSXn4SjW#YdGD_yK9}a#XxGzoInt@&sSMrnHE0wsnS4{s`9K zvmCymxg@7;J+7r41{2E`Vmvw*=jQNy+aqJuM!6v2HR&q)lB^vB&cPkoRj1|;Bw_~u z0?d|c)eMHRb00_{u8`CQJsJ>-QQV<1gE5D_+V?lM*?y(W`{*$O`r=qAVzy?O>gbng zT4q-xFFIqT^?R}CGb6{v%_KGtnhTjmFI-C1MYrhGtgi6APR4P8v+-skOxujrHdnhm zI|bffy{+U(W~@6NGvb4|;5shD0nCS-C}}(*z3SV>FQJzT@3sGMm_t7x-8wAv_d>AI zteHN^dGGW{WkH@eZS7UXAPuog=EoX#l|i$UTwOu7{^%YqBk`bI23nszsEJA`%@}SS zR=wQ1HS~#jY}6sN{z>_QTMH37RjJX(YQ=ci$|VFg>m_r65;U#1yd2o7XBpPa=ek}S zi2do;Xq=pno*$QqGEz^ydQI9 ztnk{`1J^g~1o9igsE<3^`Iw_>hep4G_l4t@J`;KqsoG4<&e?BDw%hLuS z#}}#>UJ$pYl{<*rGblZRyCYk04XZVCTDC2ZX~pr8Cf|X>->n_=`tmp470yWf^M44B zm(y@V)1FQ8^W9LIjo|+Cw}J{+E}eFMp2aNAhqml3gD}p1j!PqBnNtsZ(jJT_b(2?G z(YYn}|JcVpDR%`OX4IJ^n0#8p0AUc=#CkNb zwh2!imhyTNMX_v*6|0Is(wR^+xIfsHF~0}DmntK3irLE-umSWV~| zKHn=`T)4Kn6^HEJiUKY2>uDorwe+LsvvLNRLrmJBdweOWY311ecP0@C-oI z`w&_rBx({CLW}^rTrPNEOQDJ~Sr8#hLh;M*x}lSDb|aPd3ipAZsRit^Tlr-7$#ZWp zXp|$$MA-D7&+xD#Ox;)wdRu|Mu+SSMAlTx_9k>r}r&m?C;kk3Xo+{PbV0+GcysO1E z?nU+W!v~5|TIQrXD>yp{FI&2~IeJCpn!6`39_xy1O_CE#(cLa!m@_xJvy#=u=ol7& z3ih$V4pjiRCbEf)y8o(u6;RWXCD(CYATe+O&0r{rJ;?#kA$nu9Rp=k}q~G5&Sr{(pX;Bjlws$vvecQ+=P-p1hNSDJE zoG8W1oWr|(#|%sGiyb&4Xk}d40d6=?W?gL9ehn61sZcqGU7tEaKPUyy=|`@9UB0&{ zfIu;UHKDf^qXQ{bVqu!!4Rn@C=jkiEbp#qDsxwb2oXZ?W=6k->eEABU*z(ap@mo(~ ziu@Zgd`Ffx6QLM#9)UK-QsewX-&<2pH=+>VxR1j}?{(8a5~Rs>Of(E{Tg1uJX2@zu z!6&BWW?H3VJ_S4jb18)Wb3Kh*?T_QgLL8$@{4?epJ6YQTKPsuV#dND#hKAGD!*CH? zT^Q5dQ2FrM;5Q0>xb_PLe_?{|q7sxeI38tVh~Sza8Dkd zo$)&Y?L=#t^XO|-AD$~01<+2su2A{VQCYd}gwO|l8?1HPm{$x;5aaB`gm|Hl`1kL^ z+~Wh@0TTJ)Qg4@aUdLr8Lza;ncGZITf29(uBleh`=ZG!yMQ&SxBWoz}sPhX-73Lit=mg7rb+?XbLE^XZ}N#HXUU1y?b zKtAk(?8mWAY{r7IY<+Ig#+?y_@}Ows0d}wV5)G}Ki3FE_37~$HpQOB{kdMW?mPb0! zTqWy@UZ*y&h{{7bmMdrMfvS&?dn3j=;Y03nxK^jqFJ7h(EOuggobRRMK6eZOn|@t( zCzm=p_fV@w^wHq1HxwG^4Kq7{s{E4%pV|c znr2QmS6CB6>@ZKNbTPN-eXxpN8{zmapmYys=Ll6-ZaVczW{m^3NCGE}U(Q zv>1m@deo&BZ5$0eQ+!LgU5JY>ozroTr&$Kn^}Tk;-i7#xj+ckWcTt@Wj(%y5xIOA! z{`F0N6kHs6X*Up!X-k{e0Iw_B!rAemQPlAT zOQOPrsG`q{i{^I@=(d-!oI9%(LWU!K*nybl!i6;A(`z$36Ys-+rdcbjhvu!eT ziYHZ$<2DcM5A$>02gfK14VjrpFm#6PV&5wUGL>fPWjxuB%~$(&p#Z>Ou-3?jP-z-@ zz#)A0SSH%6o+y0;Pp8!7cvKQ#UV8_S3Ck4c=o$x|`khB#Gl9@n z#4rWCK$`s6O0WAomb!s!lQdMIMmcs7bA5d5aL@AE^wg+h z2yq3>Vr_T`11auf^M5v&-Fa=8iDe#V_qL-ohO2LVVfaK`0WZ;|Kubz;V6uVUad zf%L`9Be1f-`N+nomK}FDF#fH$+vtvcV6u`9ZH&==V(&n5GQ~_mczBy>7>e+ zYbH`g3wRagEgFt%!tC+a&eb_V3ZiGX2Yz>!)9M>D7+M!C)SH(_xGwNC_13xdZURfM zI4(%M{KNYCx{pzfU&pa8Q%{!gTd8-c+T$|h7t8}+?~B|iT*+-VP(cr(dBEvP7Z;g;x=ys!*RC z&hVAQ-B#S(lXbKt^#5l*!W;t$C}dOWokngwBZ=znnIN~MW*NM|KYoYNZ8e!ZIGXHmHopM0^Yd?|lW z?Xr8tqo&@oIj#V5jnGA8PvOBI(b3f$pL58^2cOjO) z@5^<(jYBjcumC{3Q>FnCo-4!EW7&ELE6;$pVWuJC*DWU}7idXZ5!KKtHUY}v*>cmp zvdIyY4VhJkpkj(DhI-2YI@+Hr*W517cHFz)pw=f^^BKMoS(U@Mc*A)DHEi4+r9SNO zC91pZ-6ulh%QrkL@KRw6#RbH4*Lz-;%}Shu4@%qL8Qb|OlXpH*#%F%`vAIQ>eMlSB z3O0P6H@IWWuR6nKtko!B|Hs8+PO7ip0Af;TfA)t$i{rW4cWs~09?+f(@O2BQpGZr@ zCEn{))58h~Kt9qPmZ{f9HMn2Tak;$P?%%e7-@x(anpp?wfo0A!hffAcgcQ7p+O#J* zH}mOZEzi~Q^su_y9$ajZW;UBKIY$>&wN8Yk9iY{OmP{`vvfG-(pQMOfQR7bOonZ}@ z3lesXkYX4nL%Po52Cf1(prJQe(Z71-?7NW3h3yM}2X(>6h^7K`mw`82DNupZ-wP<# z9~jH&8o);Spc8Z3W-e&gZISTU=Q^NEr{rocU<;MM&>u@yTWut;+n|bl0JPm9E$#J3 zxA~wbOB%enTNkm|pCE$F3K60wNoVBx2xX)EEgJn}bwW=~1 zJgUw&*&=occNw$MU!zmCzyWzSgN&Z%QpsQsT2RKwa9plHt?qj;rM&{sC8cO!;R>I7 z9S_-aGt~0Cgt~7TWI4_Ef<$c*E!&Pn%#xIXm)3QHUy`oAspk}7d(I_de{nibf$V;- zqAX93G-Y3&f%49a`;Li0v%l`FpKm{9D!6nLqFMt?REUSW`4^}LnHSXqZ9A`AwGp$z zm{>~89ryoq{UQ3LdCvfC>Ocz1ucx&r-9{j$JK;L}E%nG^n11?_%5o062QY~x{PX6{ zUz*w9*wc5K)|Y`^(AVl*vKCG7x4cQ+po*o`X8F<`_l(!gO~ax;vnD~LE5jGVmwPug}T6D%|@?j=$_qk^r2en3(+M? zjNODWQnrRIF&n3SZ<0Vk{FXod?fP36IHOhxeGfU8kDCrAWkv!}qh9h9C70*jA@REt zMJH#|DLhWke3rEOMNC4eHWmEH_jOTJ_8_OlFU&WxalIXCM-RXApOe>PqTvWO#WPcBZYPjib|d9z(qT4>AmI)pVe)#`plpnz|6pTQdxdWkxqf+V|IvS?hX zl({M_nD^3}A6&+u+gN)rzemd7s4Q&nw6fxZs1K1qz*tF(2Ftr%LOMT|m{euct~JgG z*)9KvHs^V?j)Ht+9~qdQ;kG}+GWydgvr{&Ah(*gP2+ziUvsOn$&PS_{I67monAL?C z+Y7TJXLzkeTH0qlUM3_*<`Qjl0gJC7Ry2K)27TszSPasa5E|mh?c$%4mw~W$Q3>>r zF!zlK#k3tpBNld+0SV4^df1t)w2G8n$Ra;j3GpPd=|fM*1Com>ev#MFBA?lkdNgSg zQjrl*7Kt&_CAE&%O{lorYIr*ks(cIL#~PQR6~R`ShagMP%$_pU=gT$7n5$wca8~8* z#9P!KK*oNINgcxxq_IB86|~Rl_#gr(*zm$f=^oAtm#*NAz0=|pZ)`aMUR8*oXvf?8kj+H zNize(Rr7?1m(gnOUidT53^?5z+RMOIEG85sE+A~emXVZ`;IdfH^`rV4JDtDI=<=a( zh6IV=dU&gk=UH3O+45;B2MwO{rdfXQgr5SMEHfM4BMvbep2S9q<%^E_!C&Z3>2B%Q z&1BCu2p3C2jq_CU22~j2u5)Ih7Pnc7Fs_--Y&8W;%k%ZEW*m_xJ{eEGv;EU3E1x#X zBXxedm6I2$X#V1F3?XOI6w1=^BdIzN=SrP5;)dq$;!I@D}eXRec%T%doh z8xoT|WeHxT=#|1FArXK5{5+8$0#_EX$Nl%f#X@FwRU(!xfmq7rlB;9>%bw<=*1Zpj zcU{}AmLU@x!w?@&FNu3?#-2JGBOO-BID};9M0z5b|!L&*Jf?) z95W;(a2l5{9Tqc4g4tdD!aGV!xoPU8$fc0&GPByCFu~Kw-W#ru?AB++x8k>=Qtcz( zM`$4k25nu(k%W>Wi-ygHB$Df+7x@k-MY($HWr0K}vB}ej|B1bb*B|%~7lRDM5M5_( zr{EEr-ISgNlLyJj2~5Xypj|X#_yUp3gF~Omk{+WPJK*BcC;3DlI;<`vg^QkZ<}-I| z9N&oa`d}B@}k|g zzX?_u&j^p+WVN-j;7*eV zD(0Rx&V{>3fO3(bV)xC_7?#ULlbb?s9t@o}CqHjgAIaF{8gs`r9IbrK29Ss<%*V?% zJ0-Uf7VU4?@ia38%jSTH3L10TQd;`och@xv2NV^+^m>@o7yAHB%;E23^y>lY1EGST z|J7NPYG299nZ)z4SKlZ4b2h*1{W_;I?WP8_7-Nl!X6VTb%Ea(sM?awBrWo9yN$AVwv6EMio%y@G# z*dH+GzsavvV2~R9B15%+zVtJpBR(|`0|P_8U%U8%0}S>wTd;S4huxqqxb!104N&}L zy|(jdTP(V*US+x!B%avb5o|{9Lw1BnAHg)>7yb8@7C!d@HHygEUzRs zXC51Hz_+iNVcEP8UKEd6L$*6*SYnCSV??}!KGh*ZS|gB%^-V!$tO|H;jj!(-kbUo0 z0q@HpYYKD*c>rrSs5jv5fZj+2FlNmR@x3eo%4}~6+U!GC@8Bt0$}lC;@1?wu*w1FJnHTD8|L74Qske8oHQT{|I9pW z2QlRz{6EQ&KzzMsTH3f3?@2b#8Bz|ZB;R~W0zm(03{uW}`J{7nz;Dh%iu}Nr_8IVG zausDbk{{nWyb-Q8t};y{74Zy7duBgBnd#~I-VkJUNHsii=7Fb5e@@Qi-p?4OiX^L^ z9JZhIgURq{y`|nH0X26-eYM_PZ(3B0-E^ci92!~t?tTBe{p)xhol!G z4MLDp3iZ1}k-vAXdR5Y$W$;K&;{l@7Se-!VrQdM_Pl|I~rr}YiHX*UPm(>61nDajm z9y|A543`!mhbuS6fzpI&QYCkKu@}6MJ`aYcMeW2O`Rp&$ z4L--z9R;fFL0B8rU&en^WO*>KcfhlQz0|gXe>^sdV(BRyD=InsXUX%^nz_JxSv=fm zw~0g9H4IlX_vQhT*YXx?pPCl1gfcY%tat>>rGuUfXB`+zVJ=t4L?O)$oY#Cc`hn=B z12dRhNXYnu9!I5+g?cle3l_wIf_4xhc0h;)@pHOj%R=^ zPyH2&+()SjH^PG_)((&we$yO9|UpusPi;8#T<+$v$mqCR7MUq=Wtc)ok1M5-ER<} zpi>LyN=BE`%xBX6j&&Fc$<4M%EicVxZY(N)p}5;6*T4`?6e#NRQLwlf!(L7x**2`m zD8f1H{9rtG@E=hlFujnf$BS!kk$?OWd-f2BR(4p@HcFAg*1G(;A9-I6hGK0G&U!m6 z2miBxx+f-z0P7Zm1~P}Q7+@ph&%G|z(%v4B_C+P{a||4B$!Dx~E=J60<{|IFbx#sa zBp*G?=q1P&?$+ImEDW)yGWY#CP52f3_!HVvNvKxskbGJP(B}>y;;?K-6^TqGIPVAp6^_ztiUbtSCTEoGrmZp`{LX z8i6mAhf$#E_64zN$rC|vU^I&2wEA2IZY^wP<3bJ)$QLtQj=sDl=TnD1oG5--&hwLG z_w9LnE5Blqn8amyR41n-;|mL)Gb+aH(|%IAH51(nb11r)KntwN1okMzEV_PWpcP>Q zB>~VbL*IfanY#0y4l(GvFvxikAeEZdB`0Op_9_D*6x>(y#ea1p|C*2y;F8yG|2k-MtEASr?hLn~D#mY7u7d!wP@da4q<$_N0F|5!uNN&CVb85N|0Odc< zbL7=R(W#^1yq64d;2Q|;UV=Gf7U*^dKT1bwax5A2rRTNt9<=fvZ7QmQ0~=I@%mPF4 znDXJD6uar-He^m8SE_Hf`20<)?mlG=mzpgVBn{xQaGg66_emsB{2vph*Ez zJ;eT2@@8FxMbn-{T?4s`Au5UKtDaBtRHdJ5*W5K`n89NsAO1fA80$JnKkk-GDP12u zujAfsn3E$j( zqw(f^&q4$HjdJJqStFWO_6`o@@byK0n^sNo#RTqeJAqjgk>#h73YK> ziy;ULAAx3m0b*m;*4V_Qindcj7&vI4;7&+WqkAEoK-`%(OXIrG2X5v_Cw7B17Z82b zM1@{MW?HXLKj|S3I7n%ef((RjGIczZCZzU%32bEZVY<-^$Kx*6Hsaz>C=J$tZ#dMi zFRkJ4s$g88cIO20$Ao{KD2RW2${Gae*O?kfCSviyqo5|ec>c5I0`gtP_%d>9ayMbF zgTSz46OSBubbzY=hY*5cICI*DPCt34Wnw8L+Ywkm?gR~wfxn34V#q`jY4G6AF`sUE zB+;c}uZnYl*E*7wD7RzT*0?Hw>D7sE*jAj0kq2FVN_|GIi&N2z1A`B&Bbu|`ND}yB z66n~9+LL76pOY9)zSp`zmki~ZH9UcaUeCJwJ=@6S37mkwre}a!MeTYlVW)s`Sjmok zs!s#-)C30KpMr6#WH=1loeZ6JZL2dZFpN#X3}z)=l==RNl+#)Cw&xagMKT4LsBk<#_Vdh0UhkTp4 znHv@fL6QpIT<70JotgBrkn9)>#>|h+1bXw#HH4Izbn3HIparj~^t!d&<_a~Vgm%O_ z@qy`EZp&96-^3J;EqsSVUKe!P=&*jTx|8JryX`Iin0(tBW7X{E%HK~)4C6y~Vzw&` z$_s2BE#AV}Avaw6IK<|n6~7geJ#7DWKeN_3`21WJzrHNZtN|gCSEfj7rsq`(Mc7p| zZI)8HEBH3+#Sl5+d`~QMI4hxO^Rh@Je=e|r`I%($$_O0VmtB<7ryl&qHLFai)b)VJzW^Jfr&{xwvQwiL_JHMXYyF8f_^ z#rQ)Mhi%YDGKJCO;%}`ksJW}<0kaDt3F=mU*PtQbOnuL9;*2*N{tY~9%R zp)^lV)qkgonEiJ8On(#OEM1pD!xpxs{9eWUfg{|4f#^Igqv2wKzIk4!I?Sk2!xHKJ zU4w%P(9PH%@!racvvf__NNNle#!>fdSTB>EFtmMovpR&y49mxUm$jP6@F=C#+6U zd6BDczNwUTO;4``?L>a5$eD|C*3)oOeX$iAp{%Jfb*Wt0jxqrE5C9C*)Uh!m9O3(d zt`|)NZ6$6jLvxu@5_0hZY6}py{V6P0hKGDL7-KZS08FN~?0(7*vg@L` zvK&)axuA1d^0||4npks&>I230-5JC=oq6CS=fdgZ6x*B^*Tp4yXIM}3CVJny%QG#U zRA-HVH^3748IFh2DwAa(&INzaA9zvWseN z&-;@lw1sLRI_am?|FWxCoBD$X7{`)$<)t__~SCoCb7BKw6g7>KY(N*z-=7bMDPMxA7PePcY zzAn_#_1f<8sWqe1t&m@>BN(}=GE|<7YqMW`~Ikf5lqLk3YxJ2h&bNL6@&Q9O4{;{ikU6Oi~nD9*Z*TyJ{oTPMo1otz43g+dYnz8WG!sk|N)3F4cV5 z5ZC&`%q%R8?Y_3_cDv`EbAP^{f8hPg=ks|z&+~eo=j|qVs%bH%7dV{U(5V?pw|_9+ ztw2hbx4RqDTnDY*XB1w&6&5HKVJ*9BlOT>QiSe)aSM2r*fV{$zj zICQGLJj2#A)!(&buY}p1peG4lKf%KO<$IT|8%B82RDKXCvw!owPsv@uJPc2;m@)VK z9O`x*_Q?fos}|s|oKIfwhtaZMtFP_aLf^iCxj+3T1AmHRG+^j-Xt0Mo)DIjOHHzRI z_?EWbd>ys>D3T_})4c1II)r%U6J6(m_72p$plMbP;8~h?8>4nOh>^2*>RdJBM$<}e zxINFwj9(ua(V>r&f6d0i+EOJaV9yw+@&~tKjTHVL5 zewQ$ot+fj&-sikBK83#S|7&cn5cHpIE%M`xq}&ZtrUB&>x8*v93`?awdM*f+_EoPh zbM@BbRpv)a+ZrJFs`{#JL;6nac|{ok1Xi7byNJK?LMT1(yLh7KXLd7Su>Zf=O}-7l zlro)Y6ackJisC}W%uL2EJBZ4nG$flefwuEEh#jh`>L)%FXeB%&3-S?3t6Hr>L1B5|1M34EbA=31AoUb~?^d!eUE(<5u696H`!sm4iI+r!VhDe4wRLCA9O)zbHWNmS0q zvS?bpe8sL=gkWW)Hq_RD<#-5|YZU+@d!e%-5-w|+27p^_a`k8WAq*6aO#PmB^*{iH z0dtk@Y>4Q~W5(G&(+jRE^nTL^!dRKEMj-DE?1_p+j~H5o&C(umSaAOwLJoHa#KciN z$`4C`!IE{vg&gI#+vaH^Oz09UW<6UBe?X>b&Nq5tkY#RSOe4rL*Px>DWozJeu*|iN zjRf$bnt_YK7pp5#tDRN0BEz08F>|L2Au!ygn-1O3^eh7(RW}zT#hPQ6TpB^l;z2JE z_0{1(CW`W+KR~BvK-T!qA?~GZNAA^CvKPPD58vop{_>U>sG1M?dJv4vb>p6zFXN=; zq=G~wKjfD=1Yx+SAaS}!FQ3jK$P+%+a=_LP?MBB*7P`uq@1azEb6|v8 zx@olZ5n*eh6f&%_tyQ~EkH}!xrM_Fysg_Pm@9AxU4nt#ttUGwfZ$3-Tj-Ahv7up@% zxQX$y<5cbPF0ww}ZL-S3PclP_@dmN!*aQHPVAvtxPs4f%VxPy2+$OKMeSDoPg8jtC zgHY!}b7=%F-^U#~2l?9uoR8@?+;Ha!Q7O?P7&Gsg=F~{vzC|}%aZ&DDA$ z$_rDkh}UH#B^e0ZbA>rms{2Onh6Q>VP&MW&+@&k)LiZn6#ItZeY7%{&EZ?Q=IFXh3 z5noY$5se}ZN|3nv)@9GIUqtG=F8(`GA2!gaH5^Ih)ic{?mo0#257y7C#3MB64^J&C ABme*a literal 0 HcmV?d00001 diff --git a/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginUnfolded.png b/Ghidra/Debug/Debugger/src/main/help/help/topics/TraceCallTreePlugin/images/TraceCallTreePluginUnfolded.png new file mode 100644 index 0000000000000000000000000000000000000000..f7787748350cf91aa3a65efe58ca6d73addb48db GIT binary patch literal 34126 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 literal 0 HcmV?d00001 diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePlugin.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePlugin.java index 269aa238d0..444c9d3654 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePlugin.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePlugin.java @@ -35,7 +35,7 @@ import ghidra.trace.model.Trace; packageName = DebuggerPluginPackage.NAME, status = PluginStatus.UNSTABLE, servicesRequired = { DebuggerTraceManagerService.class, DebuggerStaticMappingService.class, - DebuggerListingService.class, ProgressService.class }, + DebuggerListingService.class, ProgressService.class, DebuggerConsoleService.class }, eventsConsumed = { TraceClosedPluginEvent.class, TraceActivatedPluginEvent.class, OpenProgramPluginEvent.class, CloseProgramPluginEvent.class } ) diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreeProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreeProvider.java index 20fb5398aa..26560d0521 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreeProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreeProvider.java @@ -79,6 +79,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.CLEAR_ICON; setToolBarData(new ToolBarData(icon, "log")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "clear_log")); } @Override @@ -94,6 +95,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.COLLAPSE_ALL_ICON; setToolBarData(new ToolBarData(icon, "expand")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "collapse_recursive")); } @Override @@ -114,6 +116,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.HOME_ICON; setToolBarData(new ToolBarData(icon, "jump")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "jump_to_current")); } @Override @@ -134,6 +137,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.REFRESH_ICON; setToolBarData(new ToolBarData(icon, "refresh")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "rebuild_call_tree")); } @Override @@ -158,6 +162,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter Icon icon = Icons.WARNING_ICON; setToolBarData(new ToolBarData(icon, "log")); setSelected(showLogWindow); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "show_log_window")); } @Override @@ -188,6 +193,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.ARROW_UP_LEFT_ICON; setToolBarData(new ToolBarData(icon, "show")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "show_returns")); setSelected(showReturns); } @@ -212,6 +218,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.NAVIGATE_ON_INCOMING_EVENT_ICON; setToolBarData(new ToolBarData(icon, "show")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "show_tail_calls")); setSelected(showTailCalls); } @@ -286,6 +293,7 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setEnabled(true); Icon icon = Icons.EXPAND_ALL_ICON; setToolBarData(new ToolBarData(icon, "expand")); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "expand_recursive")); } @Override @@ -299,6 +307,10 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter } } + // Package-private for screenshots + final UnfoldRecursiveAction unfoldRecursiveAction; + final ShowReturnsToggleAction showReturnsToggleAction; + protected static double computeResizeWeight(JSplitPane split) { final java.util.function.Function axis = switch (split.getOrientation()) { @@ -326,12 +338,12 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter private final Map traceToMaxSnap = new HashMap<>(); private final Map rootNodesForTraceThreadMap = new HashMap<>(); - private boolean rootNodeChanged = false; @SuppressWarnings("unused") private final AutoService.Wiring autoServiceWiring; private JComponent component; - private TraceCallTreeTable treeTable; + // Package-private for screenshots + TraceCallTreeTable treeTable; private AbstractTraceCallTreeNode currentRootNode; private AbstractTraceCallTreeNode currentNode; private TraceCallTreeModel treeTableModel; @@ -398,13 +410,16 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter setVisible(true); tool.addPopupActionProvider(this); tool.addLocalAction(this, new FoldRecursiveAction(this)); - tool.addLocalAction(this, new UnfoldRecursiveAction(this)); - tool.addLocalAction(this, new ShowReturnsToggleAction(this)); + unfoldRecursiveAction = new UnfoldRecursiveAction(this); + tool.addLocalAction(this, unfoldRecursiveAction); + showReturnsToggleAction = new ShowReturnsToggleAction(this); + tool.addLocalAction(this, showReturnsToggleAction); tool.addLocalAction(this, new ShowTailCallsToggleAction(this)); tool.addLocalAction(this, new RebuildCallTreeAction(this)); tool.addLocalAction(this, new JumpToCurrentAction(this)); tool.addLocalAction(this, new ShowLogWindowAction(this)); tool.addLocalAction(this, new ClearLogAction(this)); + setHelpLocation(new HelpLocation("TraceCallTreePlugin", "plugin")); } private void buildPanel() { @@ -905,10 +920,10 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter callTreeNodeCompletableFuture.whenComplete((result, ex) -> { if ((ex != null) && !(ex instanceof CancellationException)) { treeTable.setStatusMessage(ex.getMessage()); + return; } else if (result != null) { currentRootNode = result; - rootNodeChanged = true; final Map threadMap = rootNodesForTraceThreadMap .computeIfAbsent(coords.getTrace(), e -> new RootCache()) @@ -1255,7 +1270,6 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter final Map threadMap = rootNodesForTraceThreadMap.get(coords.getTrace()).rootNodesPerThread(); if (threadMap.containsKey(coords.getThread())) { - rootNodeChanged = threadMap.get(coords.getThread()) != currentRootNode; currentRootNode = threadMap.get(coords.getThread()); refresh(coords); } @@ -1289,12 +1303,8 @@ public class TraceCallTreeProvider extends ComponentProviderAdapter private void updateModel(AbstractTraceCallTreeNode node) { SwingUtilities.invokeLater(() -> { - treeTableModel.setRootNode(node); - if (rootNodeChanged) { - rootNodeChanged = false; - if (node != null) { - treeTableModel.setNumberOfParameterColumns(node.getLargestParamSize()); - } + if (treeTableModel.setRootNode(node) && node != null) { + treeTableModel.setNumberOfParameterColumns(node.getLargestParamSize()); } }); } diff --git a/Ghidra/Debug/Debugger/src/screen/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePluginScreenShots.java b/Ghidra/Debug/Debugger/src/screen/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePluginScreenShots.java new file mode 100644 index 0000000000..f41ffc9095 --- /dev/null +++ b/Ghidra/Debug/Debugger/src/screen/java/ghidra/app/plugin/core/debug/gui/tracecalltree/TraceCallTreePluginScreenShots.java @@ -0,0 +1,285 @@ +/* ### + * IP: GHIDRA + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package ghidra.app.plugin.core.debug.gui.tracecalltree; + +import java.awt.*; +import java.io.IOException; +import java.math.BigInteger; +import java.util.concurrent.TimeUnit; + +import db.Transaction; +import generic.test.category.NightlyCategory; +import ghidra.app.plugin.core.debug.service.emulation.ProgramEmulationUtils; +import ghidra.app.plugin.core.debug.service.modules.DebuggerStaticMappingServicePlugin; +import ghidra.app.plugin.core.debug.service.progress.ProgressServicePlugin; +import ghidra.app.plugin.core.debug.service.tracemgr.DebuggerTraceManagerServicePlugin; +import ghidra.app.plugin.core.progmgr.ProgramManagerPlugin; +import ghidra.app.services.ProgressService; +import ghidra.async.AsyncTestUtils; +import ghidra.debug.api.progress.MonitorReceiver; +import ghidra.framework.model.DomainFolder; +import ghidra.framework.model.DomainObject; +import ghidra.program.model.data.*; +import ghidra.program.model.lang.Register; +import ghidra.program.model.lang.RegisterValue; +import ghidra.program.model.listing.ParameterImpl; +import ghidra.program.model.listing.Program; +import ghidra.test.ToyProgramBuilder; +import ghidra.trace.database.ToyDBTraceBuilder; +import ghidra.trace.model.Lifespan; +import ghidra.trace.model.memory.TraceMemoryFlag; +import ghidra.trace.model.memory.TraceMemorySpace; +import ghidra.trace.model.thread.TraceThread; +import ghidra.trace.model.time.TraceSnapshot; +import ghidra.util.InvalidNameException; +import ghidra.util.exception.AssertException; +import ghidra.util.exception.CancelledException; +import ghidra.util.task.ConsoleTaskMonitor; +import ghidra.util.task.TaskMonitor; +import help.screenshot.GhidraScreenShotGenerator; +import org.junit.*; +import org.junit.experimental.categories.Category; + +@Category(NightlyCategory.class) // this may actually be an @PortSensitive test +public class TraceCallTreePluginScreenShots extends GhidraScreenShotGenerator + implements AsyncTestUtils { + + private static final TaskMonitor MONITOR = new ConsoleTaskMonitor(); + ToyDBTraceBuilder tb; + Program progHw; + Program progLibc; + private ProgramManagerPlugin programManager; + private DebuggerTraceManagerServicePlugin traceManager; + private TraceCallTreeProvider provider; + private DebuggerStaticMappingServicePlugin mappingService; + private ProgressService progressService; + + @Before + public void setUpMine() throws Exception { + programManager = addPlugin(tool, ProgramManagerPlugin.class); + traceManager = addPlugin(tool, DebuggerTraceManagerServicePlugin.class); + mappingService = addPlugin(tool, DebuggerStaticMappingServicePlugin.class); + progressService = addPlugin(tool, ProgressServicePlugin.class); + + addPlugin(tool, TraceCallTreePlugin.class); + + provider = waitForComponentProvider(TraceCallTreeProvider.class); + + populateTraceAndPrograms(); + } + + private void populateTraceAndPrograms() throws Exception { + ToyProgramBuilder helloworldBuilder = new ToyProgramBuilder("helloworld", false, this); + helloworldBuilder.createMemory(".text", "0x00400000", 0x50); + helloworldBuilder.createEmptyFunction("main", null, "__fastcall", false, "0x00400000", 6, + IntegerDataType.dataType, + new ParameterImpl("argc", IntegerDataType.dataType, + helloworldBuilder.getProgram()), + new ParameterImpl("argv", CharDataType.dataType, helloworldBuilder.getProgram())); + helloworldBuilder.createEmptyFunction("print", null, "__fastcall", false, "0x00400006", 2, + VoidDataType.dataType, + new ParameterImpl("string", CharDataType.dataType, + helloworldBuilder.getProgram())); + helloworldBuilder.createCallInstruction("0x00400000", "0x00400006"); + helloworldBuilder.createCallInstruction("0x00400002", "0x00400050"); + helloworldBuilder.createReturnInstruction("0x00400004"); + helloworldBuilder.createJmpInstruction("0x00400006", "0x00400054"); + progHw = helloworldBuilder.getProgram(); + + ToyProgramBuilder libcBuilder = new ToyProgramBuilder("libc", false, this); + libcBuilder.createMemory(".text", "0x00400050", 0x50); + libcBuilder.createEmptyFunction("gets", null, "__fastcall", false, "0x00400050", 3, + CharDataType.dataType); + libcBuilder.createEmptyFunction("printf", null, "__fastcall", false, "0x00400054", 3, + VoidDataType.dataType, + new ParameterImpl("string", CharDataType.dataType, + helloworldBuilder.getProgram())); + libcBuilder.createNOPInstruction("0x00400050", 1); + libcBuilder.createReturnInstruction("0x00400052"); + libcBuilder.createNOPInstruction("0x00400054", 1); + libcBuilder.createReturnInstruction("0x00400056"); + progLibc = libcBuilder.getProgram(); + + tb = new ToyDBTraceBuilder("toy", + libcBuilder.getLanguage().getLanguageID().getIdAsString()); + + intoProject(progHw); + intoProject(progLibc); + intoProject(tb.trace); + programManager.openProgram(progLibc); + programManager.openProgram(progHw); + + traceManager.openTrace(tb.trace); + mappingService.changesSettled().get(1, TimeUnit.SECONDS); + + try (Transaction tx = tb.startTransaction()) { + tb.trace.getObjectManager().createRootObject(ProgramEmulationUtils.EMU_SESSION_SCHEMA); + + tb.trace.getModuleManager() + .addLoadedModule("Modules[helloword]", "helloworld", + tb.range(0x00400000, 0x00400050), 0); + tb.trace.getModuleManager() + .addLoadedModule("Modules[libc]", "libc", tb.range(0x00400050, 0x00400100), 0); + + tb.trace.getMemoryManager() + .addRegion("Memory[ALL]", Lifespan.nowOn(0), + tb.range(0x0, 0xFFFF_FFFF_FFFF_FFFFL), TraceMemoryFlag.READ, + TraceMemoryFlag.EXECUTE, TraceMemoryFlag.WRITE); + + mappingService.addIdentityMapping(tb.trace, progHw, Lifespan.nowOn(0), true); + mappingService.addIdentityMapping(tb.trace, progLibc, Lifespan.nowOn(0), true); + + TraceThread thread = tb.getOrAddThread("Threads[1]", 0); + tb.createObjectsRegsForThread(thread, Lifespan.nowOn(0), tb.host); + TraceMemorySpace regs = + tb.trace.getMemoryManager().getMemoryRegisterSpace(thread, true); + Register pc = tb.trace.getBaseLanguage().getProgramCounter(); + Register arg1 = tb.trace.getBaseLanguage().getRegister("r12"); + Register arg2 = tb.trace.getBaseLanguage().getRegister("r11"); + + TraceSnapshot snap = tb.trace.getTimeManager().createSnapshot("Start main"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400000))); + regs.setValue(snap.getKey(), new RegisterValue(arg1, BigInteger.valueOf(0x3))); + regs.setValue(snap.getKey(), new RegisterValue(arg2, BigInteger.valueOf(0x1337))); + + snap = tb.trace.getTimeManager().createSnapshot("in print"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400006))); + regs.setValue(snap.getKey(), new RegisterValue(arg1, BigInteger.valueOf(0x345807))); + + snap = tb.trace.getTimeManager().createSnapshot("in printf"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400054))); + regs.setValue(snap.getKey(), new RegisterValue(arg1, BigInteger.valueOf(0x345807))); + + snap = tb.trace.getTimeManager().createSnapshot("return printf"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400056))); + + snap = tb.trace.getTimeManager().createSnapshot("in main"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400002))); + + snap = tb.trace.getTimeManager().createSnapshot("in gets"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400050))); + + snap = tb.trace.getTimeManager().createSnapshot("return gets"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400052))); + regs.setValue(snap.getKey(), new RegisterValue(arg1, BigInteger.valueOf(0x1234))); + + snap = tb.trace.getTimeManager().createSnapshot("return main"); + snap.setEventThread(thread); + regs.setValue(snap.getKey(), new RegisterValue(pc, BigInteger.valueOf(0x00400004))); + regs.setValue(snap.getKey(), new RegisterValue(arg1, BigInteger.valueOf(-0x1))); + + } + + mappingService.changesSettled().get(1, TimeUnit.SECONDS); + + traceManager.activateTrace(tb.trace); + traceManager.activateSnap(0); + } + + protected void intoProject(DomainObject obj) { + waitForDomainObject(obj); + DomainFolder rootFolder = tool.getProject().getProjectData().getRootFolder(); + waitForCondition(() -> { + try { + rootFolder.createFile(obj.getName(), obj, MONITOR); + return true; + } + catch (InvalidNameException | CancelledException e) { + throw new AssertionError(e); + } + catch (IOException e) { + // Usually "object is busy". Try again. + return false; + } + }); + } + + public static void waitForDomainObject(DomainObject object) { + object.flushEvents(); + waitForSwing(); + } + + @After + public void tearDownMine() { + tb.close(); + + if (progHw != null) { + progHw.release(this); + progHw = null; + } + if (progLibc != null) { + progLibc.release(this); + progLibc = null; + } + } + + @Test + public void testCaptureTraceCallTreePluginUnfolded() { + selectRow(provider.treeTable.getTable(), 0); + performAction(provider.unfoldRecursiveAction, true); + for (MonitorReceiver e : progressService.getAllMonitors()) { + waitFor(() -> !e.isValid()); + } + captureIsolatedProvider(provider, 750, 500); + } + + @Test + public void testCaptureTraceCallTreePlugin() { + captureIsolatedProvider(provider, 750, 500); + } + + @Test + public void testCaptureTraceCallTreePluginRightClick() { + selectRow(provider.treeTable.getTable(), 0); + Rectangle cellRect = provider.treeTable.getTable().getCellRect(0, 0, true); + rightClick(provider.treeTable.getTable(), cellRect.x + cellRect.width / 2, + cellRect.y + cellRect.height / 2); + runSwing(() -> { + Window window = tool.getWindowManager().getProviderWindow(provider); + if (window == null) { + throw new AssertException( + "Could not find window for " + "provider--is it showing?: " + + provider.getName()); + } + + window.setSize(new Dimension(750, 500)); + window.toFront(); + provider.getComponent().requestFocus(); + paintFix(window); + }); + + waitForSwing(); + captureProviderWithScreenShot(provider); + } + + @Test + public void testCaptureTraceCallTreePluginHideReturns() { + selectRow(provider.treeTable.getTable(), 0); + performAction(provider.unfoldRecursiveAction, true); + performAction(provider.showReturnsToggleAction, true); + for (MonitorReceiver e : progressService.getAllMonitors()) { + waitFor(() -> !e.isValid()); + } + captureIsolatedProvider(provider, 750, 500); + } +} diff --git a/Ghidra/Framework/Docking/src/main/java/docking/widgets/gtreetable/GTreeTableModel.java b/Ghidra/Framework/Docking/src/main/java/docking/widgets/gtreetable/GTreeTableModel.java index 91ef7d4966..d090b105a3 100644 --- a/Ghidra/Framework/Docking/src/main/java/docking/widgets/gtreetable/GTreeTableModel.java +++ b/Ghidra/Framework/Docking/src/main/java/docking/widgets/gtreetable/GTreeTableModel.java @@ -142,10 +142,13 @@ public class GTreeTableModel extends ThreadedTableMode * * @param node * Root node to set + * @return True if node is different, false otherwise */ - public void setRootNode(GTreeTableNode node) { + public boolean setRootNode(GTreeTableNode node) { + boolean ret = rootNode != node; rootNode = node; reload(); + return ret; } /**