Flipper

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

Flipper

Alan Reider
I like Flipper but in its current state it has caused me more grief than
benefit. There is no easier way to crash the session than to have an error in
a printOn in an object which is, say is being displayed in a list. Or trying
to inspect some com objects such as an Excel application. Thats often fatal.

This often lead to lots cursing, knowing I'm going to have to spend 20 mintes
recovering my image and packages.

Maybe it can be made more robust by catching exceptions from the printOn (as
in a regular inspector).

-alan


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Jeffrey Odell-2
One other side effect of Flipper is that the aspects are instantiated when
pointing to a generated Active/X object.  I wrapped FileSystemObject, and if
you inspect a Drive of any size, it takes a real long time to inspect as it
runs through executing some expensive aspects (collections for example).

jlo

"Alan Reider" <[hidden email]> wrote in message
news:[hidden email]...
> I like Flipper but in its current state it has caused me more grief than
> benefit. There is no easier way to crash the session than to have an error
in
> a printOn in an object which is, say is being displayed in a list. Or
trying
> to inspect some com objects such as an Excel application. Thats often
fatal.
>
> This often lead to lots cursing, knowing I'm going to have to spend 20
mintes
> recovering my image and packages.
>
> Maybe it can be made more robust by catching exceptions from the printOn
(as
> in a regular inspector).
>
> -alan
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Alan Reider
Since one is usually using an inspector to see what the state of an object is,
it rather lessens the utility if bringing up the inspector causes a change to
the field of observation.

I would really like it if the inspector would be more conservative and not
come up with self selected. It may seem trivial unless one is using printOn a
lot (often one of the first things i write in a class), AND one is using lazy
vars which are ref'd by the printOn.

Also, i think CTRL-left click should select/deselect in the treeview of the
inspector.

-Alan

On Fri, 5 Apr 2002 21:30:32 -0500, "Jeffrey Odell" <[hidden email]>
wrote:

>One other side effect of Flipper is that the aspects are instantiated when
>pointing to a generated Active/X object.  I wrapped FileSystemObject, and if
>you inspect a Drive of any size, it takes a real long time to inspect as it
>runs through executing some expensive aspects (collections for example).
>
>jlo
>
>"Alan Reider" <[hidden email]> wrote in message
>news:[hidden email]...
>> I like Flipper but in its current state it has caused me more grief than
>> benefit. There is no easier way to crash the session than to have an error
>in
>> a printOn in an object which is, say is being displayed in a list. Or
>trying
>> to inspect some com objects such as an Excel application. Thats often
>fatal.
>>
>> This often lead to lots cursing, knowing I'm going to have to spend 20
>mintes
>> recovering my image and packages.
>>
>> Maybe it can be made more robust by catching exceptions from the printOn
>(as
>> in a regular inspector).
>>
>> -alan
>>
>>
>


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Jeffrey Odell-2
In reply to this post by Jeffrey Odell-2
To clarify, Flipper, in it's list pane, displays the "=xxxxxx" on each list
item.  So, even before you select an aspect, it is instantiated.  This
causes you to instantiate very expensive aspects even if you don't want to
look at their values.

Worse, I think it is recalculating it every time the window gets focus.

Of course, I can remove it from the aspects list by pverriding
#publishedAspects (I think, I haven't tried it), but that makes it
unavailable when I really do want to look for that aspect by clicking on the
list item.

BTW - I like Flipper, and I like the idea of being able to inspect (passive)
or use aspects (active) - I just think it needs a little fine tuning.
Perhaps some Flipper options to turn off the printOn: value of the aspect in
the list is a good starting point.

In the case of looking at IFolder, generated from the ActiveX Scripting
objects, I think it is the folder #size aspect that is the culprit.  The
list fills pauses, when it gets to that aspect, a bunch of disk access
ensues, then the window finishes displaying.  It largely freezes the Dolphin
as a whole, so yuo have to wait until the aspect is finished instantiating.

jlo


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Blair McGlashan
In reply to this post by Alan Reider
"Alan Reider" <[hidden email]> wrote in message
news:[hidden email]...
> I like Flipper but in its current state it has caused me more grief than
> benefit. There is no easier way to crash the session than to have an error
in
> a printOn in an object which is, say is being displayed in a list. Or
trying
> to inspect some com objects such as an Excel application. Thats often
fatal.
>
> This often lead to lots cursing, knowing I'm going to have to spend 20
mintes
> recovering my image and packages.
>
> Maybe it can be made more robust by catching exceptions from the printOn
(as
> in a regular inspector).

Actually the inspector itself (in beta 3) does do this, but the
ValueWorkspace presenter it uses as a standard presentation/editing
component does not (#823). I'd be surprised if an error occurring during its
#printOn: would actually be "fatal", whereas such an error in the display of
the tree could cause a meltdown due to it firing as a result of
paint-related callbacks from the tree view control.

It is worth bearing in mind (I'm commenting here on other posts in this
thread) that the Flipper inspector's rich presentation of an object may not
always be appropriate/desirable/fast enough, in which case one has other
options:
1) Hold down the Shift key when ever performing an "inspect" command (e.g.
Crl+Shift+I) to open the alternate, more basic, inspector
2) Override #inspectorClass (e.g. to answer BasicInspector)
3) Swap the system #alternateInspectorClass and #defaultInspectorClass
options so that a more basic inspector is used by default and Shift is
needed to get Flipper.
4) Rearrange the order of the renderers in Flipper class>>defaultRenderers
so that the PublishedAspectInspector appears after the InstVarInspector. The
former goes through accessor methods to get values, and so may change the
state of the object if the accessors in question do that. Since it accesses
the values of aspects just to build and display the tree, any lazily
initialized instance variables will inevitably get initialized as a result.
The InstVarInspector, on the other hand, uses #instVarAt:, and so may be
less intrusive.

Regarding the last point it would be interesting to get some feedback as to
the preferred order of renderers in the inspector as shipped. Would you
prefer to see the "basic" instance variables pane first, or the published
aspects? What does everyone else think?

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Bill Schwab
Hi Blair,

My flipper "horror story" (greatly overstated) has to do with proxies.  The
flipper sometimes assumes too much.

The flipper is great for many kinds of objects, but, I think that Squeak has
it right offering inspect and explore commands; it's not that much clutter
in the menus and is more clear IMHO.  I'm actually more bothered (not ready
to make picket signs or anything<g>) by the changes in the collection
inspectors, mostly the behavior in inspecting ordered collections.  The
implementation details are important, but, are secondary to most of my
debugging.  My preference would be to keep the D4 inspectors pretty much as
they are and add the flipper as a new command and tool that can be used to
good effect on many kinds of objects.

On the subject of speed, there's a distinction between the IDE and apps for
end users.  For end users, I care about raw speed; e.g. how long it takes to
open a window.  In the IDE, a tool that's slow to open but does something
"worth the wait" is perfectly ok.  My new browser filtering goodie is an
example: CHBs take longer than ever to open, but, are more useful to me
because they show (more or less) only what I want to see.  With that said,
opening an inspector is very common, so it should be fast unless the user
explicitly requests the more complex view.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Jeffrey Odell-2
In reply to this post by Blair McGlashan
Thanks for the insights on how it works - I had not yet looked at
alternatives so you've saved me some time.

I think #4 would be a good idea - essentially you get the inspector you
always had, but the additional tab to explore the object via aspects.  And,
if you made that default order a Dolphin Option setting, folks could then
change it to their preference.  This would be a natural progression from the
"old" inspector to the new.

jlo


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Jeffrey Odell-2
Oops - this doesn't solve the problem I pointed out about the aspects
getting instantiated via the printOn: string being shown in the list.  I
swapped the order of the renderers as in #4, but the list pane on the
Published Aspect Browser card is still instantiating behind the scene, and I
still have the problem of a long delay on open.  Then, when I flip to the
Published Aspects tab, I get the delay again.

Can that list be deferred somehow?

jlo


"Jeffrey Odell" <[hidden email]> wrote in message
news:[hidden email]...
> Thanks for the insights on how it works - I had not yet looked at
> alternatives so you've saved me some time.
>
> I think #4 would be a good idea - essentially you get the inspector you
> always had, but the additional tab to explore the object via aspects.
And,
> if you made that default order a Dolphin Option setting, folks could then
> change it to their preference.  This would be a natural progression from
the
> "old" inspector to the new.
>
> jlo
>
>


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Blair McGlashan
In reply to this post by Bill Schwab
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]...
> Hi Blair,
>
> My flipper "horror story" (greatly overstated) has to do with proxies.
The
> flipper sometimes assumes too much.

Try:

<your subclass of ProtoObject> new "Ctrl+I"

If you get a Flipper inspector then it will not be due to the system as
shipped.

>
> The flipper is great for many kinds of objects, but, I think that Squeak
has
> it right offering inspect and explore commands; it's not that much clutter
> in the menus and is more clear IMHO.  I'm actually more bothered (not
ready
> to make picket signs or anything<g>) by the changes in the collection
> inspectors, mostly the behavior in inspecting ordered collections.  The
> implementation details are important, but, are secondary to most of my
> debugging.  My preference would be to keep the D4 inspectors pretty much
as
> they are and add the flipper as a new command and tool that can be used to
> good effect on many kinds of objects.
>

Bill have you actually tried the alternate inspectors in beta 3 yet?

> On the subject of speed, there's a distinction between the IDE and apps
for
> end users.  For end users, I care about raw speed; e.g. how long it takes
to
> open a window.  In the IDE, a tool that's slow to open but does something
> "worth the wait" is perfectly ok.  My new browser filtering goodie is an
> example: CHBs take longer than ever to open, but, are more useful to me
> because they show (more or less) only what I want to see.  With that said,
> opening an inspector is very common, so it should be fast unless the user
> explicitly requests the more complex view.

Then you will probably want to reconfigure the system options to make
flipper the alternate inspector. Personally I wouldn't, but each to his own
:-).

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Bill Schwab-2
Blair,

> Bill have you actually tried the alternate inspectors in beta 3 yet?

Probably not.  Inability to move the image between machines and the
complexity of building a beta 3 image from my D4 packages have had me nearly
shut down.


> Then you will probably want to reconfigure the system options to make
> flipper the alternate inspector. Personally I wouldn't, but each to his
own
> :-).

That's what I've arranged for Migrate to do.

Have a good one,

Bill

---
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Bill Schwab-2
Blair,

> > Bill have you actually tried the alternate inspectors in beta 3 yet?
>
> Probably not.  Inability to move the image between machines and the
> complexity of building a beta 3 image from my D4 packages have had me
nearly
> shut down.

I'm starting to suspect that the basic inspector is happier as the alternate
than as the default inspector.  Rather than try to explain it, try setting
both your default and alternate inspectors to BasicInspector - then inspect

 OrderedCollection new
       add:'Try';
       add:'this';
       add:'again';
       yourself.

with and w/o shift, and you'll (if it reproduces) see what I mean.

Caveat: it could be something about the way my image gets built - maybe a
package clash is causing this, but, I see things like the attached, where
items 4 and 5 are nil, and it's happening in beta 3.

Have a good one,

Bill

---
Wilhelm K. Schwab, Ph.D.
[hidden email]




begin 666 inspector.jpg
M_]C_X `02D9)1@`!`0$!+ $L``#_VP!#``@&!@<&!0@'!P<)"0@*#!0-# L+
M#!D2$P\4'1H?'AT:'!P@)"XG("(L(QP<*#<I+# Q-#0T'R<Y/3@R/"XS-#+_
MVP!#`0D)"0P+#!@-#1@R(1PA,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C(R
M,C(R,C(R,C(R,C(R,C(R,C(R,C(R,C+_P `1" #M`?(#`2(``A$!`Q$!_\0`
M'P```04!`0$!`0$```````````$"`P0%!@<("0H+_\0`M1 ``@$#`P($`P4%
M! 0```%]`0(#``01!1(A,4$&$U%A!R)Q%#*!D:$((T*QP152T? D,V)R@@D*
M%A<8&1HE)B<H*2HT-38W.#DZ0T1%1D=(24I35%565UA96F-D969G:&EJ<W1U
M=G=X>7J#A(6&AXB)BI*3E)66EYB9FJ*CI*6FIZBIJK*SM+6VM[BYNL+#Q,7&
MQ\C)RM+3U-76U]C9VN'BX^3EYN?HZ>KQ\O/T]?;W^/GZ_\0`'P$``P$!`0$!
M`0$!`0````````$"`P0%!@<("0H+_\0`M1$``@$"! 0#! <%! 0``0)W``$"
M`Q$$!2$Q!A)!40=A<1,B,H$(%$*1H;'!"2,S4O 58G+1"A8D-.$E\1<8&1HF
M)R@I*[hidden email]-$149'2$E*4U155E=865IC9&5F9VAI:G-T=79W>'EZ@H.$
MA8:'B(F*DI.4E9:7F)F:HJ.DI::GJ*FJLK.TM;:WN+FZPL/$Q<;'R,G*TM/4
MU=;7V-G:XN/DY>;GZ.GJ\O/T]?;W^/GZ_]H`# ,!``(1`Q$`/P#K_'7CIO!;
M:>JZ;%=BZ0GEE3;M5#W0YSNKB_\`A?2_] &+_O\`+_\`&JE^./\`K="_ZYR?
M^@Q5T>A:A9W'@'1(].\-1WEO_9BV]WJBQJ!!,MH7)'RDMADVLQ*@,P`+-D#K
M@J,*493A=N_6W4SO)R:3V,.?XQZA:AFN?",L"J^QC+\@#9=<$F+KF.08]48=
MC5?_`(7E)_T+T7_?]?\`XW4WQ>U30-2\/PVVC6ENDMM?Q2F:)8E\Z%HI1O4*
M=_EY*?,RA6W(5+!@3<\:>'M/OO\`A*=-TC2[,WEG<Z=';Q1V<5K]G,V%^21.
M9=Y8`B3:%SD$X%:PA0DDW"U_-^7^9,W-.R9F_P#"\I/^A>B_[_K_`/&Z/^%Y
M2?\`0O1?]_U_^-U2N/A]X:A%G<3ZT]E;)K+:5?L9C.L;!"W#M#%M.5VD[64;
M@V<`BK2?#JV6WU>R5OLZR?V7]FN%FAO4D2XN"GF))Y2,%]EVYVG)92*OV6&_
ME_,CFJ=Q_P#PO*3_`*%Z+_O^O_QJC_A>4G_0NQ?]_P!?_C54?">F:%#\88M
M@TUY[:*>[M;@:DT5RLPC5BK*OE+L.4SW/.,XSEFB>"-'U^U\-/<R7D>H^(_M
MS&6%XTAMWA+$$1"/E3@?*&7';'9NCAUO'\7Y^?D"G4?4T/\`A><G_0NQ?]_U
M_P#C5'_"\Y/^A=B_[_K_`/&JR],\`Z+J>@Z/?65Z]_Y\]I#J+PWJ1O9M--L(
M,!C)P/NAM_)^8+MJ]:?#+1=7U.*&SNK^UABUZXTB<32),TBQ1-+O4A%"$A",
M$-C<#SC!'2PJO>.WK_F'-4[DW_"])/\`H78O^_Z__&J/^%Z2?]"[%_W_`%_^
M-5AVGA/PEJ<\TVG:O<W,-EI5U?WEK$S%MT1&Q5F>%!A@P/\`JSC:1SD$,>WT
M`_".YU!-)F#MKA@MY&GC,\?^C @/)Y0WINR=@"]1SQDU]7P_\K_'_,.>?<W_
M`/A>DG_0NQ?]_P!?_C5)_P`+TD_Z%V+_`+_K_P#&JAE^&.BC5M1TM+K4!-I5
MYIL%S.9$*W*W+*K%$V9C(+9&6?ICWKD=3\.Z5_PG\'AK2;J\$9OOL,T]W&N5
MD,[)E0IY4+MZX)()PN0`X4,++:/Y_P"8.=1=3M/^%Z2?]"[%_P!_U_\`C5'_
M``O23_H78O\`O^O_`,:IFG?#+0-5U>.&&?4X+>+7+K2)U>>-WD\N%Y%D5A&
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
M9(9/)DDC1F*"3 5V&TY56R-K=-IQIVVJVEW?2VD!F=XL[I!!)Y60<$"3;L+
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
M`!NC[.G_`#]WW_?<7_QN@"2BH_LZ?\_=]_WW%_\`&Z/LZ?\`/W??]]Q?_&Z
M)**C^SI_S]WW_?<7_P`;H^SI_P`_=]_WW%_\;H DHJ"6.*&)Y9+R^"(I9CNB
MX Z_\LJD>T".R-=7P93@C?%U_P"_=%@'T5']G3_G[OO^^XO_`(W1]G3_`)^[
M[_ON+_XW0!)14?V=/^?N^_[[B_\`C='V=/\`G[OO^^XO_C= $E%1_9T_Y^[[
M_ON+_P"-T?9T_P"?N^_[[B_^-T 245FW^I:/I3HFHZ\;-I 2@N+JWC+#VW1C
M-75AC= Z7EZRL,@AXB"/^_=%@):*B$$9D\O[7?;MA?&^+H" 3_J_5A^=+]G3
M_G[OO^^XO_C=%@)**C^SI_S]WW_?<7_QNE6%4;<+B[<C^&1HRI^N$!_6@#YZ
MO_\`D(W/_75_YFBB_P#^0C<_]=7_`)FBM"3Z.N?]:O\`US3_`-!%>'ZMXN\2
M/:69MM5MM1$ED-6O8FB:Q6W1\*L"R),KR;6/\.&/'+ D#W"Y_P!:O_7-/_01
M7E^L?!VQOUB:RUJ]MI8E6)/.1)46(9P@4!3QGJ23ZYK3"N@JR>(OR=;;A-2<
M?=W(? OBS5M6.CR7FM),\D\FGW%@;':<K"\HG$P8[B0J*1@#D_+QN/IDO^LM
M?^ON#_T:M<GX<^'6F^&[J"X@OK^X:)VE5)F38)&0H6X4'[I(QG'-=9+_`*RU
M_P"ON#_T:M15=-U&Z7PWTOO;I<:O;4DK?T+_`)%[3/\`KTB_] %8%4I?%=BO
MA!]+A;5;?418&W21=*O,1R^7M!#I$>C=USZBHAN.UW8IRZ#'X;\<*MG>W3V^
MKPWM[/;RB/8LHFB8,NU <_OW&6))`09PJXLZS?2Z?IWFP*AFDGAMXRX)56EE
M6,,0,$@%\XR,XQD9S7"_#^QD&N1W+:/=6!@TUH)GN+-H?.D:<MP2!NPH4?\`
MZJ[3Q+8W^H:(\.F-;+?)/!/";K=Y>Z.9),-M&<?+VJ9W:TT?Y?==>?\`P="Y
MQ4*DH)W2;5^]NOS,?6]4N+)6TO6KGPQ()%#G[3JC61F3.>8BC_+P5(WL& .>
M#MJMX.GL+_4(;[3-9L8K26P$@\/VC*1:N_EEV.&Z@C& B@%B<!F8ME2>#?%4
M_GM*VFM/<$M+<-?2%V8C&X_N1R.,`8 ``& `!I^#?#E_I>IQ7-Q8+9*E@8)@
M&0F>5IF8-\A.=J #)YYP.E<^%]M9^V_3MY=]M+^=EJ4X1]GSIZW2MY-/7Y6M
M\S>\06?]H1_9?M]S8;X'_P!)MI%CD3$D1X9F4#.,=1P37-P^&$BL9F?QMJLL
MC17$BB746WH8]R*HV28RVX..O,8QN7<&Z[4)-;M;ZTN]$@T^:2-)$D%[,\8`
M;;C&U6ST/I^-9FOWGCS6M"N].DM-#A29,,UK>3>8P!!*C<@'S8VG) P3FNZG
M5E%<J=C.$%.:3=D^O8K>'+*/3_&GB&VAU!K^-;>T9;AI#)D,\[;0Q9B0N=HR
M2<*,FM#6=&37+B6VD\03Z&%6&3[3!-Y;-@RC9G(X.<X_V:H^#=$N]*GOY9[1
M;.&:.V1(`5Y=(L2284D?,Q/N<9-:]S<>([#5FN=$M=*FCD@6-S>W$B$$,QX"
MH>.1SG\*A3:DIK=I/[U>W75;"DK-I=&_SW^9S^F^%+4)8K/XYOI#+$9Y&GU&
M0%#NB/E-ME7MO'8X9^^TI9\$6XL_[?M1=O>"'5#&+EVW--BWA&\GN3C.?>H_
M%A\<>)-%^PW-GI"0B59&CLKN0O+C(VD.JJ0"0W)ZJ.]:/A72Y]+M=0$MNMK%
M<7\T]O;*5_<Q$@*N%RHZ9P.!NJYU'/XG_7;]=K>=RG",81DGJ[Z=K6M]]W]Q
MR^J7>NP_$J9=$ADNKLQQ@61./M404$CYB B*2Q$IX#':-Q9UJW?>);S4I;6_
MM=(=M,TN0W-ZD\]NV6QB`L$E;;&<M*KLNPE(VW!,R+UNJ:7'JD,(,TUO-!)Y
ML%Q#MWQ/M*[EW KG:S#D'&<C! (Y?6]"U^]N]*>\:RU2R@NO-GM+:U%LK98,
M[E'D*.6.\D\',AZ@_+E4E>-TM4NF[MZZ7)PN'7.XRG9-MW?3K8Z?1=376=(M
M]10RLEP#(K2QE"RDG#8(R 1R.O!')ZG#UC6;:XM+Z&:U6_EM+Q3:V,:,DS.H
M0+(K#)WB0R* F"5?)& V=+PI87FF>%[&SOS_`*3&AW+OW; 6)5,_[((7CCCC
MBN:UWPWJ4-S<WL2B[A=WE80J1(@)=L;.2V %'RDEB?N@5RX[VE-WI+F2;^:U
M7S_$JE+9M"> KB2UL=%M;C[7%<RVA22VFFF?"JSB-BLN?+_=QJ0J$!A(254+
M'GOZ\OU'PYJNH:]?W@T9[JT874<22F-<N0X5PKD8&XKAO]G(R-I/HVF6\]II
M-G;W4QFN(H$CEE+$[W"@%LGDY.3S5X>$HP?,WO=7UT?2][Z>:6ZML:5E%./*
M[W5].CNU;\+_`#*VE>'+'Q-?Z_/J1F:XM+M;6QF1]K6:^1#+NBXP&+N22<[@
M`IRO%8-EHE]I6NZ?X>O)TT^PTR#S;2&QW1+J3 G,A;.=J@J6BR3O8EBR[2VM
MHK^(]%L4T;3X-,MXK<L[ZE<(\[7C,<[FC#J1)U+L6()P0.2$Y+7?#GBC4-7U
M&[NV34[J>)!9WL02$6C>:C (K-N38H?!4DG.2<L:Z59M)]U^+M?IMN_(B$%)
M2;=K)M>;[?,](K+U;5A9*T$#)]IVAF9U+K K':K,J\L2WRI&OS2-\HP`S+HS
M.T4$DB1/,RJ6$:$!G('09(&3[D#WKG?#FE:N+JZU/7FA,TTQFM;5`I^R[EVG
M<RJH>0+B/<=Q"J0&PS"N6O[5PM1W?5]//S?]:[-)+=C].\,6AN5U/4+16O=R
MNOF[6D!'(:5UXDDS@X^Y'M58P NYNBKSX>&=8_X2J:[:V!9M5BN4O_-4E;=?
M,+)G.\9!1-N,<>@KT&KHT8T8<B;?KK?SW>_GKW7?2MI/E4KI)?BKM?)MKU,;
M2?$GB >/M(\-V]M8MIB^'XKQM\[*[ NB%R?+/S+A@$& <Y+=`I+H,?AOQPJV
M=[=/;ZO#>WL]O*(]BRB:)@R[4!S^_<98DD!!G"KC/U$Z'<Q07T5QX@L=?M](
M.F^9;:?>*CXPRAF2(G"R`-E",\@[E.*R? ^C7MEJL<\NFO8QQZ>89RRA?.E,
MQ8'C[V$P,GUQ71IU\_Z[Z[:7\]-3/D7L^>^MTK>33U^5OQ._KE/!&HW<VI^*
MOM<[B^BU9X@I^61;8*/(&.#LP7*]B68\DDG0\576KVFBDZ+ 7NI)!&95C\QH
M%(.76/\`C;. `2%RP+$*&-<II_@*Z73;C4[F\U%M:-NZ6PCO&B95Y98V9-F<
MM\S'`+,6=N6.(2%N[&CIS+:?%K4[#3V"6,VFK=WL,9R@NS)@,1_ [)@D#&[@
MG/6NQ7_D(?\`;I)_Z,BKB_ ]M?07'-K+:6[6IDO%GMV1YKII6PQ=AER(U&3N
M/W@3DDFNT7_D(?\`;I)_Z,BI*[2;5O+KU7_!]&ASCR3E"][-K3;3MY$E9ZD?
MVREF[Q".29+LDA=Q5 ,KRP)R8TQQ_$WI6A5*&Q;RQ+-%%*^8LI<OO61U256;
M'S;5S("!@?=Z#K31++M4KL1?:-\L=N^RW<KY\:.JDR1#.'('0GJ1UJXL8BCC
MB$ADV(JESGYR``6Y]3DTTQ1M*LC*Y900"LKQD9(/52#U4?E26X&9:B9+6\EL
MW!19)3%#';>:IP!)]Y'*K]\+@<<=,YK1@E,R,6CDC='*.KHRX8 '^( XP01P
M.".!4+V3322%Q;LAE9U\Z3S&Y2->3)%)_<]>_M5F&+R8&4F++2[@L711Y<:C
M^!!_`>@`INP(Y#6[^1-<FAFDN&M54*8HI?+R"N>N".I[@^E0RK>V=K'=6%GJ
MEI;#$C22N7C;.-IX11^><Y%:VI^&KC4=1EN8KJWC5PO$NX'(&.P/I^M:45G<
MM;PAX'4K%"O,BG!14Y&+E0.5SP`:I6L(TYT$5Q)&N<*Q49]C6-J]C"RG4/M#
M6US GR2Y^7KT(P<]2./7OTK2M[<6MI%%LV8WX0N'*KO;:,@MT7;W-5IM-6]U
M.VFNIB;.#YS;;0?,<'@'/&#WSV! ZU/497TVX.IE6U!##MC#I9X9?M 88\PG
MC,?L"<GKQUU2=S$G&3SP,5'<K]HG6YD&^>,EE8D`\C!&<' (XZ<=1R!4A&&(
M!! [CO28&>-3634I=/C51<(1M\Q]JLNW<3G!/'H`3T]\6?WL4\43RI/YI8 I
M$8]I"EN['(PI]#P.#GAXA@$OFFUMFER&\QX$9LCIR1GM3U"K+YH4>9L*!NX!
M()Q]=HHT`JZG_P`@J\_ZX/\`^@FM"[_X_)_^NC?SK/U/_D%7G_7!_P#T$UH7
M?_'Y/_UT;^='0#F=4U!;G0+F=@!!,42U$BE6D;JY'/(7CG&,\<][6D:?8B[6
M^BM?**VB-L*2*H>0#!7>26X$O/W>%QD\TM[H<-P+?R4B`AW8AF:0QMN/^RWR
M`<GY1R:FLK"_AO5EN;NP:!83$L<8D)0<;0NX<?<1>3TR>2236EA%^L;4;#3C
M-<SW=N[M+$&5XPS,@7.\[01SMVX)^48Y]]FLRYL=3EO)IK6[M(%950;VD#$#
M)Y"@@_,<_@.Q(*0V:$%JMA:6]FJ*I@C5'VDG+]7.3_M$T^H[:%[>RMX97A>2
M.,(QA!"\<#K@DX )]R:R?%$NO)I'E^'+>&34)Y%B$LSA4ME.<RD'[V..!GKG
M!Q@KJ!Q>FVVE6^G77B#7-6NK66_LX;DW0OI8`UP&?SX#Y1&XQ\!(S\_WE!(0
M[=SP)92Z.+C1R6"0VMM/);[PZVMQ('\R%2.B@*C8))^?<2=V3BP>&-7T47=A
M;0ZS=QR1>7+>*]I,+O>-\K,MPQ*!G*@JH&1'EBY(*]EX5LI+'0(4N+)K6[=F
M:X$DOFO(^<>8S;FR6 4XW-M&%R=M7*]C&'+SNU[^=[?*^GW&LO\`R$/^W23_
M`-&15)4:_P#(0_[=)/\`T9%4E0;!1110,^=[_P#Y"-S_`-=7_F:*+_\`Y"-S
M_P!=7_F:*T(/>];NM075]+T_38[5I[T%0;EF51MBW]5!/0'M5))M;DV[-2\)
MMOQMVZ@YW9V8Q\O?S(\?[Z^HK0O/^1[\+_67_P!)C7SM>:5?7]UJ>H01^; E
MQ*2_FJ6DP=S%`78R;5(9BK/M!!)P<G7#T%5O=V(J5' ]Y2;6Y-NS4O";;\;=
MNH.=V=F,?+W\R/'^^OJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBO#[/P
MG=BX<:A'Y<2VUS(WDSQN\4L<$DJI*H),;$QD;7 ;Y6'4'%+Q)I2:'XCOM+C?
MS!:2F'?YBOO*\%OEX&3D[>2N=I)()KI6!BW92_#_`()G[=VO8]]2;6Y-NS4O
M";;\;=NH.=V=F,?+W\R/'^^OJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZ
MBOFVBK_LY?S?A_P1?6/(^DDFUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBA)M
M;DV[-2\)MOQMVZ@YW9V8Q\O?S(\?[Z^HKYMHH_LY?S?A_P`$/K'D?223:W)M
MV:EX3;?C;MU!SNSLQCY>_F1X_P!]?44)-K<FW9J7A-M^-NW4'.[.S&/E[^9'
MC_?7U%?-M%']G+^;\/\`@A]8\CZ22;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^
MOJ*$FUN3;LU+PFV_&W;J#G=G9C'R]_,CQ_OKZBOFVBC^SE_-^'_!#ZQY'TDD
MVMR;=FI>$VWXV[=0<[L[,8^7OYD>/]]?44)-K<FW9J7A-M^-NW4'.[.S&/E[
M^9'C_?7U%?-M%']G+^;\/^"'UCR/I))M;DV[-2\)MOQMVZ@YW9V8Q\O?S(\?
M[Z^HH2;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^OJ*^;:*/[.7\WX?\$/K'D?2
M23:W)MV:EX3;?C;MU!SNSLQCY>_F1X_WU]10DVMR;=FI>$VWXV[=0<[L[,8^
M7OYD>/\`?7U%?-M%']G+^;\/^"'UCR/I))M;DV[-2\)MOQMVZ@YW9V8Q\O?S
M(\?[Z^HH2;6Y-NS4O";;\;=NH.=V=F,?+W\R/'^^OJ*^;:*/[.7\WX?\$/K'
MD?4.E"^GCGFN[K2)XU13&=.G:7D[3\Q(&/E=2/4$'IUO6&G7NH6OVE+RWB4R
M2($-NS$!7*]=X]/2O-_@JF-"UM]F,R(-VWKC;QG;SC/3<<9Z+G+=#J'BN[\/
M7.F#[?:6EA]I42K=R)$LRRWCQR%2RDR&-?F(5H_+RK,9`VU?-KP=.;BNAT1E
MS1N=A_8-_P#]!&V_\!&_^.5GZF+;1?*_M7Q-I%AYV?+^U((M^,9QNE&<9'YB
ML3P_XQGDN-(FOO%>FWW]H:Q>:;Y$*Q1Q;$,Q1UP2Y<D0`?,1LE08+$.W01ZM
MIOA_Q%KDFO:A::>]W<1-9RWLRQB6W6",;49C@A9?.)0'*E]Q`\P%L+R*+?\`
M8-__`-!&V_\``1O_`(Y49TBY6X2W;5K,3NC.D9MCN95(#$#S,D LH)[;AZUS
MFC7VHVGB30]!_M>#3[2XBO[J/3GA47!A6Z#6Z .<QJ83M"; 51)!@$ QY%MK
M]X=<M]7AD_M+7W\-7KM:IIY8VUVOD2?9&>,#Y48$"-SYBEL,Q,B47D!WW]@W
M_P#T$;;_`,!&_P#CE']@W_\`T$;;_P`!&_\`CE<A%XDUETT"UD\5Z5&M_JLM
MH+F(I</<1?9RP*2E(HV82G8"D94,T:G<5=7N6_B3Q,;WQ.R_9+B2SM[Q[;3E
M#22H\3E;?=&L:E!*HW8:1C)D-'M4, 7D!MS:>]O]H\_7-/B^S1">??!M\J,[
ML.V9/E7Y&Y/'RGT-1V%NFJIOT[Q#IEXA0/NMXO,&TLR@_+*>-R.,^JL.QKC;
M:ZL_^$_FNDU/^U=,C^Q7=[J(M0(WC1;Q5>62-1%)LE:##@`*(P3_`*AV'5WN
MI::+75M?\/K&'N7LX+O6( K1/&)=CR*V2K&&-W8R$%!@`EO+95+L"_)I%S"\
M22ZM9H\S[(E:V(+MM+87]YR=JL<#L">U$&D7-U;Q7%OJUG-!*@>.2.V+*ZD9
M!!$F"".<UR%[K&C7%]HDFMZKIM]8PZQ<6]KJ5ZT`%U:MI[^:2P"HR>:XC.T!
M<JJG+#)C\.>(=4%GX+LM.O;%=/.E6 VO)DW3DF.X156-VD:)4!.UH_++9D)7
M@%Y =O\`V#?_`/01MO\`P$;_`..5&-(N6N'MUU:S,Z(KO&+8[E5B0I(\S(!*
ML >^T^E<IXAO;W5/#GC!)M>GBFAT_44FTJ.WC(@1'(A<L4+)YD2YPY.\2LR;
M0O%A_&,IOM7M++Q#!=PP6FG-'+Y:++#$\[1W-RW&&PFV7?M$85HVVE3ER\@.
MG_L&_P#^@C;?^ C?_'*KWNGOIEG)>7^N:?:6L>-\T\'EHN2 ,L9,#)('XUSD
MGB;4'O-)L;7Q9:"SN]8>RAU"2*%Y;V'[*'WQL-L9*S,8@50C?Y8()#*YH%U;
M?$*;6M/O=1CO[:ULGM(YK=T)4R37<#3?*-OFO#'$<XP`[;0JN02\@+\^JZ+:
MW$MO<>-O#T,\3E)(Y'161@<$$&;((/&*W/[!O_\`H(VW_@(W_P`<JA?_`-CK
M\0M*TB3["/M.E:COLVV?O?-EMV;*?Q;]LI/'.USS@UCS:GKVJ3^*SI_B?>VC
M:@H2STNVA>4P;(FD0AQ(6DP)43[N9%;)QA4+L#HSI%RMPENVK68G=&=(S;'<
MRJ0&('F9(!903VW#UHATBYN4+P:M9RH'9"R6Q8!E8JPXDZA@01V((J#PU9SZ
MEJ4GB>ZU.[N$9[JWT^W=8A%';-*N&5E0%P_DJZL21L<#YOOMCZK9Z5X?\9Z4
MNH:G(FF7-EJK2VURL;Q2F:XBDD5ALSL_>,S<X5(020HD+',P-O\`L]_[/_M#
M^W-/^Q>5Y_VGR/W?EXW;]WF8VXYSTQ4D^D7-K;RW%QJUG#!$A>222V*JB@9)
M),F `.<UYS:^,9_#_P`/],CM_%>FBXG\,/<VZRK%BWEA$21QQKD%G;,JG>6R
M\9(4!62NCO\`5#XI\67/AY-;\W2KR)K=H-,,,G^CR6A8R2[UWIEI$*2QEXS\
MJ$*QRSO(#HSI%RMPENVK68G=&=(S;'<RJ0&('F9(!903VW#UJ3^P;_\`Z"-M
M_P" C?\`QRK&M6WD>;KT"SR7MAI]S'!%%%YN_?L<_NP5+MF%0%#+G)&>01P$
M/CZ9= N8[GQ%8O+;ZJMH]W97MM+*\36_G*4ED2.#=O#+ET1=L;J,R $I.3 [
M?^P;_P#Z"-M_X"-_\<J./2+F9Y4BU:S=X7V2JML24;:&PW[S@[64X/8@]ZXS
M5?%6M:-X,M=5C\0P7;2?:[Q+BXEMA$ZQG]U;&6)"CR%>#&@#.RR;94"?-(?&
M\^H>)$TVR\9Z,L4^NM:H8$B=S;-9AT\O+D9$N5W$,#(5XP#&3W@.K_L]_P"T
M/[/_`+<T_P"V^5Y_V;R/WGEYV[]OF9VYXSTS5C^P;_\`Z"-M_P" C?\`QRN4
M^U6VJ>"/$'BRWU&.\U.PM[B&"[A=#L>S>Y,$OR# =TDRP^ZROC;L8@^ETG)H
M#G_[!O\`_H(VW_@(W_QRC^P;_P#Z"-M_X"-_\<KH**7.P.?_`+!O_P#H(VW_
M`("-_P#'*/[!O_\`H(VW_@(W_P`<KH**.=@<_P#V#?\`_01MO_ 1O_CE']@W
M_P#T$;;_`,!&_P#CE=!11SL#G_[!O_\`H(VW_@(W_P`<H_L&_P#^@C;?^ C?
M_'*Z"BCG8'/_`-@W_P#T$;;_`,!&_P#CE']@W_\`T$;;_P`!&_\`CE=!11SL
M#G_[!O\`_H(VW_@(W_QRC^P;_P#Z"-M_X"-_\<KH**.=@<__`&#?_P#01MO_
M``$;_P".4CZ3<6L,DT]W%*J@85("ASD=RQ]ZZ&JFI?\`(.E_#^8JE)M@?*U_
M_P`A&Y_ZZO\`S-%%_P#\A&Y_ZZO_`#-%=!)[]>?\CWX7^LO_`*3&O")7ND&L
M6AT6ZNWO;AFCE#.R,69=K$9?<P\Q"C*^?WV"TBO@^[WG_(]^%_K+_P"DQK=N
M_$<-OXC.BJ;19TMX;AS<W0BW++/Y2A!@ECD-Z?,T2_QY76A6=/6UR9PYCY_O
M?%>LZI*TKZ9K,[72S;XYKN66%7FA:(>1'M 1?])4@'><-& PR2W,ZO%J.MZ[
M?:FFEW2?;KE[A8UC9\>8RL #CG_6QX..=Z_WA7UE;Z[H]W]C^S:K8S?;M_V3
MR[A&^T;/O[,'YMO?&<=ZR]#\::;KQ66W>..S>RM+J.>29>6N))8Q$0,@.&BV
MXR?F;;U'/1'&<NT3-T;[L^4TTK49-NRPNFWXV[86.[.S&.._F1X_WU]10FE:
MC)MV6%TV_&W;"QW9V8QQW\R/'^^OJ*^O)/$N@PZ7#JDNMZ:FGS/LBNVND$3M
MSPKYP3\K< ]CZ57T;Q3INJV6CM+=6EKJ&J645Y%I[7*F7:Z;OE7@L!AN0/X3
M5?7Y=A>P7<^2TTK49-NRPNFWXV[86.[.S&.._F1X_P!]?44)I6HR;=EA=-OQ
MMVPL=V=F,<=_,CQ_OKZBOLBVO[.\V_9;N"?=$DX\J0-F-\['X_A;:V#T.#CI
M5BCZ_+L'L%W/B]-*U&3;LL+IM^-NV%CNSLQCCOYD>/\`?7U%":5J,FW9873;
M\;=L+'=G9C''?S(\?[Z^HK[0HH^OR[![!=SXO32M1DV[+"Z;?C;MA8[L[,8X
M[^9'C_?7U%":5J,FW9873;\;=L+'=G9C''?S(\?[Z^HK[0HH^OR[![!=SXO3
M2M1DV[+"Z;?C;MA8[L[,8X[^9'C_`'U]10FE:C)MV6%TV_&W;"QW9V8QQW\R
M/'^^OJ*^T**/K\NP>P7<^+TTK49-NRPNFWXV[86.[.S&.._F1X_WU]10FE:C
M)MV6%TV_&W;"QW9V8QQW\R/'^^OJ*^T**/K\NP>P7<^+TTK49-NRPNFWXV[8
M6.[.S&.._F1X_P!]?44)I6HR;=EA=-OQMVPL=V=F,<=_,CQ_OKZBOM"BCZ_+
ML'L%W/B]-*U&3;LL+IM^-NV%CNSLQCCOYD>/]]?44)I6HR;=EA=-OQMVPL=V
M=F,<=_,CQ_OKZBOM"BCZ_+L'L%W/#O@U;R0:)K1E@>-F:,@M'M+ A6'.T9&&
M!'S'ALX7.6]9\._\@9?^N\__`*->IM6_U1_ZYG_T)*A\._\`(&7_`*[S_P#H
MUZ\W$3YY.7<WBK*QJT445S%!1110`4444 %%%% !1110`4444 %4[S38;RXM
M;DM)%<VSYCFB(#;21O0Y!!1@`"#Z`C#*K"Y13 *S]9TR75M/>SBU2^TW?D--
M8E%D*D$$!G5MO7.5PP(&"*T** (X((;6WBM[>*.&") D<<:A510,``#@`#C%
M2444@"BBB@`K/U;24U6*#_2)[6XMI?.M[F#;OB?:R$@.K*<H[K\RG[V1@@$:
M%%,#/TG24TJ*?_2)[JXN9?.N+F?;OE?:J D(JJ,(B+\JC[N3DDDZ%%% %.\T
MV&_N+62X:1X[=_,6#(\MI 05=AC)*D949P"=V-RJ5N444 %%%%(`HHHH`***
M* "BBB@`HHHH`**** "JFI?\@Z7\/YBK=5-2_P"0=+^'\Q51W ^5K_\`Y"-S
M_P!=7_F:*+__`)"-S_UU?^9HKJ)/?KS_`)'OPO\`67_TF-:.L>&[S4-8NKR*
M2!8Y?[+VAV((^S7;SR9X[JP`]3UP.:SKS_D>_"_UE_\`28UUL>I0RZS<Z6JR
M>?;V\-P[$#:5D:15`YSG,39X[CKV2V!G+Z?X4U*RM_#5N1IK"QLK6VO)#N._
MR0#C:1B4;@&1CL:)@6!8.R&G'X"O#I2:==&QGMTM-)LBKDLLT=G=.[EE*X&^
M,K\O(#$J20-Q] K+TS7['6+CRK)I)$-E;WR2E=JO%.9-A&><_NR2"!C(]\,#
M#?P]K%CXJO=?L$L;F2:64);3W#PCRY(;12Q<1OA@UJ?EVD$/G<",''T7X>WV
MFMI\5P8+B-/L,L\@U*Y1(Y+>*%,+;+B.7)@#!W((W#*L$ ;TBJ>DZE#K.C6.
MJ6ZR+!>V\=Q&L@`8*ZA@#@D9P?4T`8?A#PW>>'OM/VJ2"7[3%"YV,6\B0;]\
M$60-MLF5\I.J[GSUKJ*** "BBB@`HHHH`**** "BBB@`HHHH`**** ,W5O\`
M5'_KF?\`T)*A\._\@9?^N\__`*->IM6_U1_ZYG_T)*A\._\`(&7_`*[S_P#H
MUZQJC1JT445B,**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH
M`**** "BBB@`HHHH`**** "BBB@`HHHH`**** "BBB@`HHHH`*J:E_R#I?P_
MF*MU4U+_`)!TOX?S%5'<#Y6O_P#D(W/_`%U?^9HHO_\`D(W/_75_YFBNHD]^
MO/\`D>_"_P!9?_28TOBC0]2O]6U.2.P^U:==6EE#,B);R2R".2Y<B-)\Q[@S
MP$^8,;2VWY@,)>?\CWX7^LO_`*3&NIN-<TNTUBTTB>_@34KO)@M=^9' 5F+;
M1R%PC?,>,C&<X%);`SA]$\.:M;OH+7>DSN]K+,J27-S%NM8/M$C(/W9Q"PC\
ML 0[D==T3JJ!&6O9>"=1M]#CTS^S_(1+31K60V\RQ;VM[V1[B1&1@PRK>8&X
M8[^SY ]0HI@>=S^%I+75K@2>&H]3\.Q7$OV72(E@,:;X;7;*D4C+&H#I= \A
MLRD@$.QK+T'P1J]I?:++?VU]]JMHK 1S0R6@CM8XH8EDA:1E:<99)LI$=CB3
M!(WN1ZQ10!Q_@?1-1T?S_P"T;?9YEI;+;_.I^RPKYFVRX)W^3D_O3R_F?[-=
MA110`4444 %%%% !1110`4444 %%%% !1110!FZM_JC_`-<S_P"A)4/AW_D#
M+_UWG_\`1KU-JW^J/_7,_P#H25#X=_Y R_\`7>?_`-&O6-4:-6BBBL1A1110
M`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% !
M1110`4444 %%%% !1110`4444 %%%% !534O^0=+^'\Q5NJFI?\`(.E_#^8J
MH[@?*U__`,A&Y_ZZO_,T47__`"$;G_KJ_P#,T5U$GOUY_P`CWX7^LO\`Z3&M
MW78)IM8\,/%%(Z0ZF[RLJDA%^R7"Y;T&YE&3W('>L*\_Y'OPO]9?_28UUMYJ
MVFZ?<6MO>ZA:6T]V^RVCFF5&F;(&$!.6.6 P/4>M); RY1113 **** "BBB@
M`HHHH **** "BBB@`HHHH **** "BBB@#-U;_5'_`*YG_P!"2H?#O_(&7_KO
M/_Z->IM6_P!4?^N9_P#0DJ'P[_R!E_Z[S_\`HUZQJC1JT445B,**** "BBB@
M`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "BBB@`HHHH **** "
MBBB@`HHHH **** "BBB@`HHHH *J:E_R#I?P_F*MU4U+_D'2_A_,54=P/E:_
M_P"0C<_]=7_F:*+_`/Y"-S_UU?\`F:*ZB3WZ\_Y'OPO]9?\`TF-2^,=6T$7%
MSX>OM0TW3I]2LME[=W<R0LMJQ=0$+$%W),H4<JF69OX4DBO/^1[\+_67_P!)
MC7<TEL#"BBBF`4444 %%%% !1110`4444 %%%% !1110`4444 %%%% &;JW^
MJ/\`US/_`*$E0^'?^0,O_7>?_P!&O4VK?ZH_]<S_`.A)4/AW_D#+_P!=Y_\`
MT:]8U1HU:***Q&%%%% !1110`4444 %%%% !1110`4444 %%%% !1110`444
M4 %%%% !1110`4444 %%%% !1110`4444 %%%% !1110`4444 %5-2_Y!TOX
M?S%6ZJ:E_P`@Z7\/YBJCN!\K7_\`R$;G_KJ_\S11?_\`(1N?^NK_`,S1742>
M_7G_`"/?A?ZR_P#I,:E^(%G8S:-J5\+>TGU"QLFE,TDN9]/BVR$7$"8.)=RD
MK@Q[S& 7&P8BO/\`D>_"_P!9?_28UUMYI.FZA<6MQ>Z?:7,]H^^VDFA5VA;(
M.4)&5.5!R/0>E); RY1113 **** "BBB@ HHHH **** "BBB@ HHHH ****
M"BBB@#-U;_5'_KF?_0DJ'P[_`,@9?^N\_P#Z->IM6_U1_P"N9_\`0DJ'P[_R
M!E_Z[S_^C7K&J-&K1116(PHHHH **** "BBB@ HHHH **** "BBB@ HHHH *
M*** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ HHHH **** "BBB@ JI
MJ7_(.E_#^8JW534O^0=+^'\Q51W ^5K_`/Y"-S_UU?\`F:*+_P#Y"-S_`-=7
M_F:*ZB3WZ\_Y'OPO]9?_`$F-0?$'Q6FEZII&F1ZU!IK)=VEW>&2=8VD@-RD?
MEC<02I'FNS*3M6$AAB2I[S_D>_"_UE_])C78WMC;ZA L-U'YD:RQS ;B,/&Z
MR(>/1E4^^.>*2V!EBBBBF 4444 %%%% !1110 4444 %%%% !1110 4444 %
M%%% &;JW^J/_`%S/_H25#X=_Y R_]=Y__1KU-JW^J/\`US/_`*$E0^'?^0,O
M_7>?_P!&O6-4:-6BBBL1A1110 4444 %%%% !1110 4444 %%%% !1110 44
M44 %%%% !1110 4444 %%%% !1110 4444 %%%% !1110 4444 %%%% !534
MO^0=+^'\Q5NJFI?\@Z7\/YBJCN!\K7__`"$;G_KJ_P#,T47_`/R$;G_KJ_\`
M,T5U$GOUY_R/?A?ZR_\`I,:7Q/J&KVGB&ZD-SKEGH5KI\4\MUI\-H8XCOF\U
MG,ZEFVHJ';&&(';+#*7G_(]^%_K+_P"DQKH=9\/IK>^.74+Z&UFB,%U:PNOE
MW,1SE6#*2N0S`M&48@\GY5VI; S8HHHI@%%%% !1110`4444`%%%% !1110`
M4444`%%%% !1110!FZM_JC_US/\`Z$E0^'?^0,O_`%WG_P#1KU-JW^J/_7,_
M^A)4/AW_`) R_P#7>?\`]&O6-4:-6BBBL1A1110`4444`%%%% !1110`4444
M`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110`4444`%%%% !1110`
M4444`%%%% !534O^0=+^'\Q5NJFI?\@Z7\/YBJCN!\K7_P#R$;G_`*ZO_,T4
M7_\`R$;G_KJ_\S1742>_7G_(]^%_K+_Z3&NYKAKS_D>_"_UE_P#28UW-); P
MHHHI@%%%% !1110`4444`%%%% !1110`4444`%%%% !1110!FZM_JC_US/\`
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
A<X6__P"0C<_]=7_F:*CGE\^XEEQMWN6QG.,G-%;"/__9
`
end


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Alan Reider
In reply to this post by Blair McGlashan
On Mon, 8 Apr 2002 09:38:53 +0100, "Blair McGlashan" <[hidden email]>
wrote:

>4) Rearrange the order of the renderers in Flipper class>>defaultRenderers
>so that the PublishedAspectInspector appears after the InstVarInspector. The
>former goes through accessor methods to get values, and so may change the
>state of the object if the accessors in question do that. Since it accesses
>the values of aspects just to build and display the tree, any lazily
>initialized instance variables will inevitably get initialized as a result.
>The InstVarInspector, on the other hand, uses #instVarAt:, and so may be
>less intrusive.
>
>Regarding the last point it would be interesting to get some feedback


IMHO this would be much, much better, assuming that the aspect inspector would
not do its thing until it was tabbed to. I tried to hack this at one point but
didnt finish it. This would be the best of both worlds. In combination with
the following, this would make the inspector completely unobtrusive.

How would you and everyone else feel about not selecting self in the inst pane
when the inspector comes up? This is the way other smalltalks work (at least
VSE). Then the inspector comes up completely safely, (and quickly I might add)
and I can choose just to look at one inst var if I want.

Even more important, I would like to see this in the debugger (not to select
self when stepping thru or whenever a stack frame is selected). This
definitely causes me pain because it changes the order of execution of things
(by going into printOns) or executes things I dont want executed at all. These
side effects are detrimental to debugging.

I actually have hacks to not select self in D4, which I would prefer not to
have to port to D5.

-Alan


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Bill Schwab-2
Alan,

> How would you and everyone else feel about not selecting self in the inst
pane
> when the inspector comes up? This is the way other smalltalks work (at
least
> VSE). Then the inspector comes up completely safely, (and quickly I might
add)
> and I can choose just to look at one inst var if I want.
>
> Even more important, I would like to see this in the debugger (not to
select
> self when stepping thru or whenever a stack frame is selected). This
> definitely causes me pain because it changes the order of execution of
things
> (by going into printOns) or executes things I dont want executed at all.
These
> side effects are detrimental to debugging.
>
> I actually have hacks to not select self in D4, which I would prefer not
to
> have to port to D5.

99% of the time, having to select self is is just one more thing to do,
though you are correct to point out that it's impossible to undo in the few
situations where it matters.  How about an option so we can each have it our
way?

Have a good one,

Bill

---
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Chris Uppal-3
In reply to this post by Alan Reider
Alan Reider wrote

> How would you and everyone else feel about not selecting self in the inst
pane
> when the inspector comes up? This is the way other smalltalks work (at
least
> VSE). Then the inspector comes up completely safely, (and quickly I might
add)
> and I can choose just to look at one inst var if I want.

I've been given grief by this too, and it's a major pain when it happens
(though, it only rarely has, to me, so far).

Actually the real problem is the way it reverts to 'self' on every F11 too.
That's a nuisance in both the exceptional case, where there's some slow
error in the #printString (or #debugPrintString which is what I think the
debugger actually calls), and in the normal case where nothing is going very
wrong, but I just want to keep an eye on some variable as I step through.

I don't know how difficult it would be, but if:

    - the debugger came up with nothing selected.

    - entering a new method reverted the selection to nil (as it were).

    - stepping through a method preserved the current selection.

then I think that'd be both more convenient (on balance) *and* safer.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Chris Uppal-3
In reply to this post by Blair McGlashan
Blair,

> Regarding the last point it would be interesting to get some feedback as
to
> the preferred order of renderers in the inspector as shipped. Would you
> prefer to see the "basic" instance variables pane first, or the published
> aspects? What does everyone else think?

Changing the order to put the PAI second is already part of my standard
config script for D5...

> Blair

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Blair McGlashan
In reply to this post by Bill Schwab-2
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]...
> ...
> I'm starting to suspect that the basic inspector is happier as the
alternate
> than as the default inspector.  ...

Yes, it is less than ideal. You are always getting the basic BasicInspector.
I remember being vaguely concerned about this when the suggestion of normal
and alternate inspector classes was originally made, and though it seemed to
me that a better solution would be to make the selector sent to the class be
the configurable option (since otherwise it is difficult to see how one can
sensibly permit different classes to have different classes of inspector) I
didn't think through the details enough to implement it that way. I think
I'll just make it a toggle, so that one can choose to use to invert the
order of normal/alternate inspectors.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Blair McGlashan
In reply to this post by Chris Uppal-3
Alan, Chris

"Chris Uppal" <[hidden email]> wrote in message
news:[hidden email]...
> Alan Reider wrote
>
> > How would you and everyone else feel about not selecting self in the
inst
> pane
> > when the inspector comes up? This is the way other smalltalks work (at
> least
> > VSE). Then the inspector comes up completely safely, (and quickly I
might
> add)
> > and I can choose just to look at one inst var if I want.
>
> I've been given grief by this too, and it's a major pain when it happens
> (though, it only rarely has, to me, so far).

This is the purpose of #debugPrintString. It should be overridden where
#printOn: is doing rather more than
>
> Actually the real problem is the way it reverts to 'self' on every F11
too.
> That's a nuisance in both the exceptional case, where there's some slow
> error in the #printString (or #debugPrintString which is what I think the
> debugger actually calls), and in the normal case where nothing is going
very
> wrong, but I just want to keep an eye on some variable as I step through.

I'm confused. Selection is already maintained as one steps, at least as far
as that makes sense. When the method changes, then obviously it may not be
possible to maintain the selection.

Personally I think it would be a right royal pain if 'self' were not
selected in the majority of cases (we tried the Flipper inspector without
this for a while, and it was). In special cases you always have the option
of defining an appropriate #printOn: (or #debugPrintString:), remembering
that for application display purposes #displayOn: is provided.

A possible improvement in the debugger would be to maintain 'no selection'
if the user deselected self. However we'd really like to get D5 shipped
before next Christmas, so we (and I mean that collectively) need to start
getting realistic about what is important to the majority of people the
majority of the time, and what is not (you may judge, correctly, that I'm
getting a bit pissed off with this).

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Alan Reider
On Tue, 9 Apr 2002 09:25:43 +0100, "Blair McGlashan" <[hidden email]>
wrote:

>Alan, Chris
>>This is the purpose of #debugPrintString. It should be overridden where
>#printOn: is doing rather more than

I do want the full #printOn: in the debugger, I'd just rather it wasn't
executed on open and every time that a stack frame is selected.

>A possible improvement in the debugger would be to maintain 'no selection'
>if the user deselected self. However we'd really like to get D5 shipped
>before next Christmas, so we (and I mean that collectively) need to start
>getting realistic about what is important to the majority of people the
>majority of the time, and what is not (you may judge, correctly, that I'm
>getting a bit pissed off with this).

Sorry, I dont want that. Afaic, forget about it. I was just curious whether
the self-selection issue was something bothering everyone or just me. Seems
mostly just me, so I will adapt.

re the original Flipper issue; it can cause instabilities and I feel I did my
duty reporting that. Again, afaic, not an issue worth holding up D5 for.

-Alan


Reply | Threaded
Open this post in threaded view
|

Re: Flipper

Chris Uppal-3
In reply to this post by Blair McGlashan
Blair,

> I'm confused.

No, it's me who was confused.  I'm sorry about that.  Please disregard my
post entirely.

(Things have turned a rather ugly around here, and I was more distracted
than I knew).

    -- chris