[comp.binaries.mac] XCMD Miscellany Stack

np@doc.ic.ac.uk (Nigel Perry) (08/23/89)

[XCMD Miscellany Stack]

This stack contains two XCMD's:

* PopupField: Ths XCMD given a file description will draw frontmost
  window the same size and position as the field and containg the same
  text.  The style of the window depends on the style of the field, all
  standard window types (document, alert, dialog, round corner etc.) are
  supported.  the source field need not be visible.  The window remains
  until a mouse click.

* SetCursor: USE AT APPLES WRATH! This XCMD allows you to move the cursor
  around and even disconnect it from the mouse...  Tested only on a Mac+
  Sys 6.0.2, should work on others (its plays with undocumented
  low-memory globals, tut, tut!)

Copyright FreeWare.  No commercial use without agreement.  Enjoy.

UK mac'ers: this stack may be obtained from the sumex shadow archive
at irlearn, fileserv%irlearn@earn-relay from JANET.

--
Nigel Perry                                  Department of Computing
                                             Imperial College
Janet: np@uk.ac.ic.doc                       London
DARPA: np%uk.ac.ic.doc@ucl-cs                SW7
Uucp:  np@icdoc.UUCP, ukc!icdoc!np           England

---
(This file must be converted with BinHex 4.0)

:%eK$683J6@PcBf9XE'&ZH5jcDA3!8dP8)90*9#%!N!3F$J#3",)h8dP8)3!"!!!
F$R*-BA8"!*!(!J)2@%004#"0DA0MC@aXB@jj!!hTp!!+!!iP"J#3!`-!$LYk!!+
k(!!0ZeS!"1TU!!iP"J-'!3S!'!!"!*!$$EYd8e4"5eG*6%3"!+!BLDLJ'KX8!!!
+8`!!-8!!!!J`!!!6@,,$JC%!N!E5Q!!!"!J)3!(""!3"6(%3%-Z3!#C%!$")'$#
)[RrZ3L",i!`-J!-kR1J$i-(*!iF3364*-fG-'6CX`VM*)i#LcCXiFqT-#%V-X3-
"B`!*U'"+N!!f"U!"#3)2J!!B%-liFp)8!)JA!!Lm#**9"&B%,ljN4A+1"`!5!%`
%3#+%f$!8!&5X,B+X'$8LE)8)!4B-QL!Qh`$`%2("5CfV@EGfr4Tfl,NB!*cS!X!
*-!"'K!dMeXU9J&F!B-85)!YC-J!q)!)`#5K!&KL'!&"'R%M4)NBRFA"l"%$'LC@
!C!G!-1%'Y"m!B!4)@F4JJY8cq-!`H-D[S$FM"SlmJlBF`J3NJ-`b'!S$+3-M!(+
m%AFH!)Xc"*3B-@-!aK%3#*,$q3HL1!-BJ)#`!'!)!11%&iC03F866S$J)!LqrB0
2F$!3"eSPbVc!!!T))-''!%UmX)"N!@J"a52l43!-!Xh`-)&mCLJ3"$X#1%%#%Ki
&!!%)DcJ&!K3Jm2!J#)"!iS*%J*JK4aPPQ)'!%$JJm-aZm$"`b**c0'P"LLXq%`)
q#,#!!!aIMSN!#VY*Bf8EEp3aKaPErU1LP'A#F'DC+)5j'bhY#I#'M$5UFH0ZT#$
KaMrqm1M8#a")jSmm*lB!K)4+(1S2'i!+3-HJ!3(5AJ"QL0#IK!a!i*iC'"Mk$cq
M6SL'3)lbFQ+PUlE"3CpQH+!UUcdD`+LMS-ak+$pX)$#M!)!-+S-3ClcJ`UT)i)%
!$DLd!X%(5J$Jj,'-$)T"#1kX1UB586jc"J0ehJPQRLc38Kd!CbM`JV`M6QE#L9`
Li!b8,+,`"@!-'1J&#&mmm8j@6N$64""*02LJEm#G!d#&a5&!JRp#!#)&)%TSB)B
qr8Q8bMJh(L[+#8J!!-8*f9)"a`3h$-@%SNJi!3N)5S!b!K`"")'2!J+-M$)!3J!
F'B*e6&%%&89))F868Vc4)`"Z[!&#'(+F88FECEK""`TcT!!#(9C283BG3p3Kaaa
[b%'ee@1md6BCF`!J4KKNJ)"'#h(2E6IH)0M"YpabN!!"30q&c`&#Qh3XEJB)BV6
T"Yd"19!%(R58)BFEBE$a44&bb0%f33BBm9T$$meQNfhZi+DE8f*!$)#)&ZDRh#*
+62#aJ*!!Z!+D#9mFQ#!646MXB)6m8%J#'`@i%6)#F!!!!345!)%%-%Hq))&Nrr#
#a52AXf"98SH%iS%*5)L!a2-J(!#+#cL$)VB8)L`ac6%J'2"qr#Ud$idK8`#%"3,
%2$@%B!NU!d%"i5!!S3"JCJA8'`"UGV-#YZ"9qf(9%N$a!4!mLam!%jKKMV!d)b5
K#%`J3S6m%CcK91`i21["T2c4(!#d`!`D@-jqC)JS-%#!1J@"J!(!i`dJC'Flbq(
!""KJJ)QCTiRU%3F-RZ@2B1$22`!5%)&%Q,3&'3p#9T!!%1dUjU%#1)*lXAQ%T+$
9)`'-LKqrdX8rq(!L*%aKBeMK(KcUf#Xm4ND1BZ"M9[c)25UFk)dkQe%"1#'#!Si
JC8"DB!0PTX!#U%'#&+bN'Li)J!bU#Q6$LZ-r+&$(3q'$N!"b0-!KKk@c+Ij$(p&
SSbYKf5YAiL-D8l"P,,-#21(9!3T"N!##dU43K#%JMb`(J-&abNJ,4m(JHfYN&5[
&0Uale4!1Cl""%+D44!JS8JihdX-"T--,#G$(%@T`#KJ3J!9&+%d*4@#$1lEC658
Bi!`'B1+Ti'&2-bMM"`G!"5)313+!JF1A`"4Q%458"GriJaaN#3$&3+-K$M&J#J)
aJe1%NB)P@$)&E@bHU[$K+%GmVic'N!"-2bMa24)!!345m!%%'(!%1XM"$"6!JU9
dZUSX(%SI2T@3!"mJ!!BL51'R4bA9%9TL"JFBi&$KmNF9KZ8(!S!""65G!aV-`)!
V@-UVUr,$!-"JJ5PBbUbVSZNEX%N!"ZSR!$k`5XiHH5KiS))13MK&ANFD,D!a#k$
4qXFrQ*AA9%b!B#e!`MrSJ33SS')10*8H2L0,!$2BS)c8N!!-2pM4dTIQ,!8RN!#
#bS,J$Rr!BfJZ3d$-(NJcQm9["-jDV+&-Q`S0P"%GQV9&Cq-(@Y%#Xl5R69PU9cZ
c(Q9bVV1&afcGN3S!r-!&rR!(+Jj44ReS9JqGADlf0-Z23mleZG&&K5)Fa3%2j91
c91KXC+259Z3)!!i&J'QT!%!(qT!!"4$)3F"p1qPH1""!KJqe6!#JiBD(a[@eXi6
'%DJ!K%KBbTB+G[#UB(!!"[03(ch3$MlfDXU4TN)DL%@#2mc4Ra(,Vm6QD!%8r+%
1md*)&rZ!aQkP-0maR'&(0$B9'q#c(c!B)(T[,E%k(+L$ejTA"T,CKbGf@q!@[`S
$fp8&2cMJACd*@B)qd&PID`4M1M#Ca5%BLJqL[!mHI1r!6ADJN!#8N!!a#S1#"#J
'K3UF0H*83#1fp%K&"I#FLJr`@AfQT,-j8M%02X-@ZS0Z4QcY1JGQTB)1emV@'Hc
KD%KM5e[f#&*!"!X+'I#C![i#'#!14$#$)8aK$2XL6X33N!!!T)%eGC2H'`+#J$)
%"!KM#*!$kK!3!M#!$QJS!`L@0)E'[H&a!,!!X)A0KMH-`A%J'!2@mRD(0%cZ$AF
!3!5@2EBbB'i+G-J$'i4pE"!dJ0Yc#2HiS5d"G+1KEBhM(0HJ,6eZC`jc4RL$eqJ
0!AYlQ`j65)-Hb)hX#A#lfQ3S3a1`GJCV+klFf`jfYc%A"$DNi3c1+hHl*Aj[1L#
K$"G(Jl'4h@U#'#3J##%)4K1!!MViQL!F!%"FBj-kJ44%)MVaJJPZlK4E!#!"*b"
%!Xb'0V@a63i+J-*Dk`!()k6K*@3!N!-J!$#&5T!!*Im5rM-$V*kTJ!)$aJ!5F#$
%LaF$"&63!H+!J!c@"AaJ$k0*N`8#3MV*-U-)3!!#[)`j8bE-PMKckYc*XkI2Rd#
$#Ke+Y+M4SdL6+Ph+Y+R6Te#MQV`C-5!L!#)!A-f+#*%)%9fr)P)P3YABXXa8c9#
9GUdl9EY8[BhVEYFZGhA[rY[ecphH[Rm6m[d(#))!%!%3!#'JX2%rVj!!`BU))))
))XU@L3&LJ'D)!"JQBX%BX!%E-!D09!&3c9UVL#U5B51#A@Afkc[GF1[Z4[@LULU
rJeFC3!J*$!B#!J334#3(%8(+!b#L)#))SL!L+!!#&-3(!J38aSNJ`)L1L!ZB)2J
#K!M"1J5)!*9!*L-4'4*-*)RL&-5ALQ38V!-%+!%4S%"!J!!"!J!#%$#3!'S`A38
6BGY9#!J#()J3$#!"0%JK)2pmK`!qjKhab!8La2%,!,rm!XZ,X2ccKbpGL")%62V
8Nb-S82!SeBp!"LRNN!"%&QRNN8JQUH556$ETj*034LRPP"!*!%!63468'&18G"4
!%@!%K)P)!2#c4%$jh")3&#8"B%N4!9&a$C9deQRRRAMQk4-J6#44d%KYaP6444p
a`#!!"J!`!$J-pZ!46K(-qC'H1!d%44"(`!P!T)#'`Z%T*S8%aKq1rI0,UDMq`dp
!$5`"bJYGG*((,drm-mmh@k`cKM[[Z#212[pmFdKIp!5d!"LJl*!!aaj[V+23*re
mXmmhpRba6$QQcM(2,kY5kZfhi)BVlVMNPQ[ZZHLQUqkkl,EVlV[`aL[[[25f#i3
35aa"a%BG!3#"TKK0bK'r8Gf,*43"rBZ44JYEB@9'$LF9!"XJJ6"%%&,X#d")!6Q
JjNkF!M$`J3d%*)!RL!Cd!$jBaC3F!"N!-!N!0!5JaNNDI56"T"KJP*8!,e2dd48
!R0(54`i`,)(2LJBG3%TA")$'d3!N(G$5&bQ"+--A+!U!#`"iF"%9a!J+%N331&(
'(5!)83FGG,cK4N"bJp$''hA-88B9F$4`aKXJS2&''f8d8)BEC0L0YpjmP``!#`!
Nm,)@6`I33J$p!($!54maJ$B4CF`aKX9eb$(('h*F"2N"NbYU13$kD-ljaTq(2MS
8Em"4"a`BmDk!4J(B!!!4!6!"!#U!6!S4`l3R$2VGbG$YKZ*jlpfh(@R-88FBE)"
3KKPQP$%'(5#N)8If)14q1!KcX2('(Ai$2NBBFL3Z!Zkk``(#mfq)B$MLe'0Fhb$
#Z`8!c`B"H%,a!M#,j#d-)TjcAKQJ*ld!@Um"f0-Hpl`(2['4chcS8prdf[Hqq)&
JI[8$J3L'8,V6b@&r%qcIra*hYqSe,L!df*J!B&)&!&3J!#N)J$T`"N'd$B%0D4M
$'N!3Ya2+M3jTF%-GbK#pL`J#!!hJ'J"#!!!B!-"4$!Z$DTJA3AqTM@eZJj[F+PK
$!6B!IlXc3KV+`!ElS6"aCTKM(88!!K1B!!4aU--Ek&#'2UV`L%PFBK2(m-3S6M%
CI2aM)!GCZ-24F(%A"%"#X$#%*K!""%h)hKMSb)B`Z#%2Q[3((1%J4cU53C2pQ%)
Ck-"#dk&1NrPBC5[V#!)bC!m1TFc$(%!3"K$F)BTNH&rjTQF'16`aI@E`RKh+))F
md!%086b$ppLJ0bHkJ3jKL')fQBL'3M,bQiHM`c$I%-eLcJ%1iNY$(XZ!4cf5J3A
N40ma%DG-0)4KQ0FXj"c#3$J38+%)@+!#-H93KQ,qNjb&R#F[6CNip2RbRF'Njc)
KbMk##R3-$&dI(0i`Kc4!8@iZ!%%5b"I3kGdKR1S%34fqQBEZ"G5#j4[Q'*!!U%5
08Y5Bf"`$'N!`dLKqN!"m$,hE0!&D6Q-LmhdTT8*6kAH'1K$ZQd`%R#lYQ90LJU!
J8NL#%ilJ6A#+d`hD,+C3ClV%-Z!"$JbG3dRVGSHJ$M80C%LR21I)e)MD-kT0h@F
bf6B(1Z5"$B@XANARS!-3-(4mTM`$BPm`"hm1&J4Q3*eM24MCb9Bf$*H9+"RQX!2
fJ40ap%YF-XGJeA4L9V1LFbBEN!#)9XcDNl51a4X!'5N(0e"6SjPp)4hNB-ThdXq
eSKhQ6lP(6I+*i3eiH1d,FaH'32V9PA0)U4&J#p)hc(DF2aeZFH&`A+`QPk1L"B%
E20V9L`)c$(R`D9qGbNqf3C%1L!AE2qja"B`j3Da(D#`+`T!!JR`1Nj1H*1CXhcI
-21!YUb$!RRI$3%L1"J%1`#aN&I6f`L5J8`jQ#--S3A#%1Z#9MP%-A3K!J!)a&2L
Dk%2`*pYJbM6SVT5%(#B+f*R(-D5"Hfc)3c)+2029YKDGLC2X'm6!2H8#d*rVG%1
3!%%JKM+X,mH%6&cGLYN%%Dm!RbCPRq$U`-XlS'k*@jlH&)T!jEHTY*Gb1`(jeZ!
'CBEKZ@j13K,`UHISDRE0,jJ"$%k3!&d39'(0)!L#3V2`K#T)!342Z))63"$@+5c
""3f3!#8Y@kKC)$-B"!kZ!i6eaY+QaYE+df1Y,B8,1&2Q!36ZQpp*TlGFEJ+ZL5M
)D`SBZ6[%FP69,X5X-pZ!8k91-*ec5%DL6lR3UPk9I04dTZPk18X2DP3-VpCd,B0
ph-h5SA5qVHMdEPS%2"#bYpcl3K(N)'d3+*R*E-!d&3"Rl&pcqSA98k'fl`d#(U#
K"Ba%(4Pm`!)Hf!(JEa#i$d339F$PPGFCY[HUK6diMVBaXGd8`EiRhN`VL`#I3Q$
caD43"#08J3P1[DD"LGPAKRDecXD%,i3ILlH)KcP[ilcT'XU3!)IRT[B&9mhELS0
!EBJM0R(!eZcm4JM&f9+jN!$'6Kc1DlYa&cEFLEdZj%d[6N`!hM6T,`c$'F)j[Ab
A`D6PI+('ClPYcFCePKm(DK+(UVZBIThI6&BLK1[kfldrP1r6HhM0Mij2cDjpda1
rH0cV1RGB0h5T%JmfhedHjZcTPaj5,53@QM!%)K"kSc!HCQ&&[-4ZT`)%-FJ"$R*
!j9Fl)3eRS#-)S"$Y21"cT(+Bp6UMqI8hj(@KK6cp&2*!Bh51cX0M5'N@(NcM9qF
lS0f8mHFl6XGA4a(8H([Kk*8iKpXl%hYj6G`e+Bap85G6[B0N(bN,rm,VZcTp!Ah
K5em09hD'ZCQ$`qFe55T3F(+IaD'h6$Y9"hNe6&2J6`ae"FH9!LNe")2cE0h(2R9
`"V&A@'NJ0a()5'h`ANB9JA!96RU$6`aPAB8e6-&e3RN60m3QI6Sf#LiiC0j$"mQ
A96V3!+mAHpe$Hqb@"`d!1R"!2ZaN-B06Gp6d96jf1+28!%Q`JG6dBphMJ,09"V(
A!%`J0mQNCPG`!`e3"'K95SLcK64@8ihP"R!!"(@`"LiJBLk3!%3ZX&S0X)9ZS!C
[N!!()H!iG50#8q"rDp!!T-C4XH9Gh41%Gf4EVU4#S#-kXjFlZm0(633$I$K,IYK
G6LH)U8@)[&3CYN-kUmD)J11)@e@))M#)SK9*NL4)&IC(+m46LL3rM54&9"4*J'5
+P34!H+L(EpJ#,3!#DT!!JK"f6QC32FR3!&['EZqc"$bh8'+!3GQc2Ghc2H%c2Z9
c2ZX%6b2N2[!M6ij&8B1$!M*3B$f!HJh38LBdL2HML2V$2rj$4hScMT@i3[b'MM0
82QB3Mr6M6(GJM+Kd%@!J"!I6-4qc2#B4!"(6%N%!!2iJN!$+d4-B-!)$N!!m[e!
)$aQ4%$Q4%XN,KH!6#@!a'+-aV3)8)6-`!q%i!K!l+3%!""!2!-!+QJ-mB--&!E!
[`1"!'9&%%R3hLCJrE)4*MF03m%4qak4bD3!#haJ$%#C&E9"Pda90Bi"(G63(Ef5
1Zf4(P6L+II4(DG!!XEC%ThBi$6"6@FNq))9UmFL6$88(mAKa0a33+X!J1`3!+*!
!-TX3!$%J1bE41@Jc"C+)@+Pc%9NK16"K"!"3!J#3!!X"`!0Q%c$0ibp-J`"Yq8T
`FJd"`!8Q16YP"!&-X`"YH8@[9!m"m!H(8TH*DCNA!6B+d*B%3JJ"-!%"m!P88jN
mN!"Hkd8i2T!!%5D`-F$$!J'!!J%J"!(!#$)*N!"RNc!(U%a413FjD80p8hI'*(#
S"deq+$LjTelX&B3&C96bd`CNd!"NkC0S9cj#fCa0C*4)kCa,L9P0f3$R0`EB@C8
U*)Vf4)VP-jCPd*0QLBhUQ6MI+!*)F',q)ijpH&1a@8M8UA@!Sh'#`cE&QBlF9$M
rf93"kT`&e86kH@)JN!#Jm5K2CkQ6!`3!0j0&-E%#@i-%J@Nf!e!XC)3fCp3fEa-
hF`-!GB1@el1-'q5-(K50k,06r-FqeXL1+43$'BUF*I-2UJ59A19H`D4FPUKPijB
lcPN'de40-&CEkPK)i991,J96*YKT1,96L33#Z4KQ,E9CaMCIST95H#PEY+90jp9
Y4JTI'M9efM4kU*9#4[CXp$9B%IL63h96K'4Z`&G-0c93"995HN#PC-T9DH!#CC!
!8S'DPe4'2dj&"N!j6(Af3@i`J1%(HS(e9'ac6*++"[U&$jr)5fdU6&k9AR860rS
6K%j+6GD%69+kS&dRIPBDFbD9T@'hTDVSTH96DZZ69'm!H6G9TPpP@FUdTLjAUQp
D8VAP6XCk"aVP5pcc"YSN@(B'3''!B3dPA+E'AJpe8kJ$Hq[92@@U5IF`UUVe5dG
kUPb9UNc+UNrkUZ-dTE-+89GkUp,P99c(TAVhTEik2F!UV%e&V%p!AYD9T-U9V1V
UTP,(V'N&Ch8J"VlfA296K0,U2YA+UIVA9"5E9bp8CH1%0qT%S8()Tfj&2XG96#A
E91&k"P'd3HAk$rD!VVfdX+CD6+LkT+XD6Dd+TE#U6I4DTH[c8[KkJX@dVl[UVrB
UTX%D1ZMe9`C&A'jJA!aPAVF&I$@,83`V8`lV9Fj8C%l8@d9SVAH`XB9%YPf&XfY
$9'Q!"qS)De49K1-hELal2LilVNR+2VIQ6ll+4#IlTf*+G[-PU)ZU5I9!Xk@+T$Q
E96XV6DiDT8!VUd*lVc&PY,VDT8SETJ(VY--+Y9,!@9eiA8f*YFVDX1"P@K49L4`
BH%j)VAGkVBQ6V6h*V3,PVI29XLp,VRm&!+X%3hIMSURQ2RSc"+R9!0LB3@NJX3+
UP&2*986TRj!!Q*9EZD4-*!G6p)J!"+1p@)PLX+*e-k'rCk&p+,eKH@@!%f),HU(
cD%NR*,aP3,cemiE$D)riL)c+U%(0f%(3#%)kjEik@N*rFd+9k+2X@ir&b(0)J3#
!-()DFb`H15FLda%$N3!&!JYHSbJ8l!8a`6!T-*Nr!!"Sm*X"FD)e#6Kc#E`@e$L
NeRB[&'[1fEeU0$fBD*-bN!#1fDZK!@%-$-)`BM#CH!$#)RbBPFNr)#!$aqP'9DG
Ce*GTE-G[USTBCJ#%c*Y#k6A$J&2$$8#dj"-$11#)5IbaJk5#GSX'8Lc!9-a99Pc
%rU2&U#F$AYc%%rGfCXQq-1Si!%!J"!!m$a!!NK!!*4!!pK$%*1`[#SJie(6%CA!
&D"G&$D#F@iG*5!!#+j!!MIc8"LJ`!`@@Lc+`6%f%"ShXCSpF29BJbC5F6*D-bEb
kbGBCB8b-H-''"LaJ"cqU0iSFT58M!%Y6!-#c!R`F!%%3!2FJb$6T,d+J@k1%b&a
iERlM2[!@1(R&"Z#%6hE`c1$db9[-bB#$"Y3F"YEFR+XmcA48cA5-5FP-6I)l24G
Abl#kc%Zf3GSFcQ%JcG[FcD'X0j'mbTlXb%eeFD2mcFBE65M`cY"F6%0CB$m9d0m
jaQ9F8,NB!bp@UmVC!N5*cr0-VpJBd0[mR4*Yd!#%d0m)a3YG"LN3MPEDc42p6GP
Fd3#%S4F0cJ2pR3jGVbKJ"prjA'T%E!2+Uc%GTK&pdNhNdZ)XUbfGdGqid6*0dpq
SUK!UdL60PFVTdi!$e0c-[KMkaB'c!J)GcAD`!P)pbiQmb'lJ1$GM!,XFSL2+-#8
Ua#LkYQR%SSMF1"R%M"cdM"mNMHfESb3%2`%mL!4m`d!D%,A*1KV4`466"3'`+J4
!Q@M6"%f,%@r*Q"V4`f`3!!Q!1C-*QN-F3dA-0*+M(!i!!*-p!lejfBKCQ4Ia$rQ
3!!64&'T%P6GlbV(H5ldh"G*QLi)6Gda1YiXE#'%!qVGj"6e+5$l*a,RB0%cBPP2
DNdf0CG8Z()3`c++'U0NeV%Rim!66ScZ9PA1`(F1mh93J(AQDK6l8KdI$CR'B9+q
k$3F!YEF%UMrIc9ZqPC3VPel48,f[TP6D$A@BT'a"%-9&U,D%*6j@1&pJje5jE9A
kdd3hCG-Uk&L`4mE1'B#LGAYKN!"[BNGfpDUjX`4ZMkTh#VlGd(hFfC2FcDT[F"a
XFXa`$G"I8["IBp9BUPeqa%5aII[FG40E0ZCFVfCBF$"1+r5!&08#,X"(SIC#"Ij
6A)IEh90P46Gip,4LmdC-G[!'H18p4eQ2rc3(G[VK14U%V&eAVHCbH1CeYeC0[9V
E1$UmPHK2L+1Ab$e&5(Ti,'a"rS-#M#G8F1DdPIUcmJK4VpCY4NG2$'LZ-4jU*q"
bP3TUN!")XI5NIfD1@''!2E99c`,kT1RM@a%1iKKik4bPd0%cjrb$`QRq[X9Ve4F
AMk-1[pNTM,4'M2GiM256M(%pSrTEecIU[hR0SiR6el(Vk[LS&!B9"%R!")da!9*
&BCm(C+r&"QZ3!&dZi!+Z!`!!!:
---