mirror of https://github.com/python/cpython.git
Added support for editing override preferences in applets
This commit is contained in:
parent
bbb4e10e91
commit
db0baced23
|
@ -18,13 +18,20 @@
|
|||
TEXT_ITEM = 1
|
||||
OK_ITEM = 2
|
||||
CANCEL_ITEM = 3
|
||||
REVERT_ITEM = 4
|
||||
DIR_ITEM = 5
|
||||
DIR_ITEM = 4
|
||||
TITLE_ITEM = 5
|
||||
|
||||
# Resource IDs in the preferences file
|
||||
PATH_STRINGS_ID = 128
|
||||
DIRECTORY_ID = 128
|
||||
OPTIONS_ID = 128
|
||||
|
||||
# Override IDs (in the applet)
|
||||
OVERRIDE_PATH_STRINGS_ID = 129
|
||||
OVERRIDE_DIRECTORY_ID = 129
|
||||
OVERRIDE_OPTIONS_ID = 129
|
||||
|
||||
READ = 1
|
||||
WRITE = 2
|
||||
smAllScripts = -3
|
||||
kOnSystemDisk = 0x8000
|
||||
|
@ -61,7 +68,7 @@ def message(str = "Hello, world!", id = MESSAGE_ID):
|
|||
n = ModalDialog(None)
|
||||
if n == 1: break
|
||||
|
||||
def interact(list, pythondir):
|
||||
def interact(list, pythondir, title):
|
||||
"""Let the user interact with the dialog"""
|
||||
opythondir = pythondir
|
||||
try:
|
||||
|
@ -70,16 +77,20 @@ def interact(list, pythondir):
|
|||
except os.error:
|
||||
pass
|
||||
d = GetNewDialog(DIALOG_ID, -1)
|
||||
tp, h, rect = d.GetDialogItem(1)
|
||||
tp, h, rect = d.GetDialogItem(TITLE_ITEM)
|
||||
SetDialogItemText(h, title)
|
||||
tp, h, rect = d.GetDialogItem(TEXT_ITEM)
|
||||
SetDialogItemText(h, string.joinfields(list, '\r'))
|
||||
## d.SetDialogDefaultItem(OK_ITEM)
|
||||
d.SetDialogCancelItem(CANCEL_ITEM)
|
||||
while 1:
|
||||
n = ModalDialog(None)
|
||||
if n == OK_ITEM:
|
||||
break
|
||||
if n == CANCEL_ITEM:
|
||||
return None
|
||||
if n == REVERT_ITEM:
|
||||
return [], pythondir
|
||||
## if n == REVERT_ITEM:
|
||||
## return [], pythondir
|
||||
if n == DIR_ITEM:
|
||||
fss, ok = macfs.GetDirectory('Select python home folder:')
|
||||
if ok:
|
||||
|
@ -91,42 +102,62 @@ def interact(list, pythondir):
|
|||
rv.append(i)
|
||||
return rv, pythondir
|
||||
|
||||
def main():
|
||||
def getprefpath(id):
|
||||
# Load the path and directory resources
|
||||
try:
|
||||
h = OpenResFile('EditPythonPrefs.rsrc')
|
||||
except Res.Error:
|
||||
pass # Assume we already have acces to our own resource
|
||||
sr = GetResource('STR#', id)
|
||||
except (MacOS.Error, Res.Error):
|
||||
return None, None
|
||||
d = sr.data
|
||||
l = restolist(d)
|
||||
return l, sr
|
||||
|
||||
def getprefdir(id):
|
||||
try:
|
||||
dr = GetResource('alis', id)
|
||||
fss, fss_changed = macfs.RawAlias(dr.data).Resolve()
|
||||
except (MacOS.Error, Res.Error):
|
||||
return None, None, 1
|
||||
return fss, dr, fss_changed
|
||||
|
||||
def openpreffile(rw):
|
||||
# Find the preferences folder and our prefs file, create if needed.
|
||||
vrefnum, dirid = macfs.FindFolder(kOnSystemDisk, 'pref', 0)
|
||||
preff_fss = macfs.FSSpec((vrefnum, dirid, 'Python Preferences'))
|
||||
try:
|
||||
preff_handle = FSpOpenResFile(preff_fss, WRITE)
|
||||
preff_handle = FSpOpenResFile(preff_fss, rw)
|
||||
except Res.Error:
|
||||
# Create it
|
||||
message('No preferences file, creating one...')
|
||||
FSpCreateResFile(preff_fss, 'Pyth', 'pref', smAllScripts)
|
||||
preff_handle = FSpOpenResFile(preff_fss, WRITE)
|
||||
|
||||
# Load the path and directory resources
|
||||
preff_handle = FSpOpenResFile(preff_fss, rw)
|
||||
return preff_handle
|
||||
|
||||
def openapplet(name):
|
||||
fss = macfs.FSSpec(name)
|
||||
try:
|
||||
sr = GetResource('STR#', PATH_STRINGS_ID)
|
||||
except (MacOS.Error, Res.Error):
|
||||
app_handle = FSpOpenResFile(fss, WRITE)
|
||||
except Res.Error:
|
||||
message('File does not have a resource fork.')
|
||||
sys.exit(0)
|
||||
return app_handle
|
||||
|
||||
|
||||
def edit_preferences():
|
||||
preff_handle = openpreffile(WRITE)
|
||||
|
||||
l, sr = getprefpath(PATH_STRINGS_ID)
|
||||
if l == None:
|
||||
message('Cannot find any sys.path resource! (Old python?)')
|
||||
sys.exit(0)
|
||||
d = sr.data
|
||||
l = restolist(d)
|
||||
|
||||
try:
|
||||
dr = GetResource('alis', DIRECTORY_ID)
|
||||
fss, fss_changed = macfs.RawAlias(dr.data).Resolve()
|
||||
except (MacOS.Error, Res.Error):
|
||||
dr = None
|
||||
|
||||
fss, dr, fss_changed = getprefdir(DIRECTORY_ID)
|
||||
if fss == None:
|
||||
fss = macfs.FSSpec(os.getcwd())
|
||||
fss_changed = 1
|
||||
|
||||
# Let the user play away
|
||||
result = interact(l, fss)
|
||||
result = interact(l, fss, 'System-wide preferences')
|
||||
|
||||
# See what we have to update, and how
|
||||
if result == None:
|
||||
|
@ -158,6 +189,82 @@ def main():
|
|||
sr.AddResource('STR#', PATH_STRINGS_ID, '')
|
||||
|
||||
CloseResFile(preff_handle)
|
||||
|
||||
def edit_applet(name):
|
||||
pref_handle = openpreffile(READ)
|
||||
app_handle = openapplet(name)
|
||||
|
||||
notfound = ''
|
||||
l, sr = getprefpath(OVERRIDE_PATH_STRINGS_ID)
|
||||
if l == None:
|
||||
notfound = 'path'
|
||||
|
||||
l, dummy = getprefpath(PATH_STRINGS_ID)
|
||||
if l == None:
|
||||
message('Cannot find any sys.path resource! (Old python?)')
|
||||
sys.exit(0)
|
||||
|
||||
fss, dr, fss_changed = getprefdir(OVERRIDE_DIRECTORY_ID)
|
||||
if fss == None:
|
||||
if notfound:
|
||||
notfound = notfound + ' and ' + 'directory'
|
||||
else:
|
||||
notfound = 'directory'
|
||||
fss, dummy, dummy2 = getprefdir(DIRECTORY_ID)
|
||||
if fss == None:
|
||||
fss = macfs.FSSpec(os.getcwd())
|
||||
fss_changed = 1
|
||||
|
||||
dummy = dummy2 = None # Discard them.
|
||||
|
||||
if notfound:
|
||||
message('Warning: initial %s taken from system-wide defaults'%notfound)
|
||||
# Let the user play away
|
||||
result = interact(l, fss, name)
|
||||
|
||||
# See what we have to update, and how
|
||||
if result == None:
|
||||
sys.exit(0)
|
||||
|
||||
pathlist, nfss = result
|
||||
if nfss != fss:
|
||||
fss_changed = 1
|
||||
|
||||
if fss_changed or pathlist != l:
|
||||
if fss_changed:
|
||||
alias = nfss.NewAlias()
|
||||
if dr:
|
||||
dr.data = alias.data
|
||||
dr.ChangedResource()
|
||||
else:
|
||||
dr = Resource(alias.data)
|
||||
dr.AddResource('alis', OVERRIDE_DIRECTORY_ID, '')
|
||||
|
||||
if pathlist != l:
|
||||
if pathlist == []:
|
||||
if sr.HomeResFile() == app_handle:
|
||||
sr.RemoveResource()
|
||||
elif sr and sr.HomeResFile() == app_handle:
|
||||
sr.data = listtores(pathlist)
|
||||
sr.ChangedResource()
|
||||
else:
|
||||
sr = Resource(listtores(pathlist))
|
||||
sr.AddResource('STR#', OVERRIDE_PATH_STRINGS_ID, '')
|
||||
|
||||
CloseResFile(app_handle)
|
||||
|
||||
def main():
|
||||
try:
|
||||
h = OpenResFile('EditPythonPrefs.rsrc')
|
||||
except Res.Error:
|
||||
pass # Assume we already have acces to our own resource
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
edit_preferences()
|
||||
else:
|
||||
for appl in sys.argv[1:]:
|
||||
edit_applet(appl)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
print # Stupid, to init toolboxes...
|
||||
|
|
|
@ -1,51 +1,51 @@
|
|||
(This file must be converted with BinHex 4.0)
|
||||
|
||||
:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a'KE-!N!3"!!!!#bN
|
||||
!!!ST!!!"(6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4
|
||||
SEfj3FQ9QFbjbFh*MF`)!!!!rN!B!!$q3#!#3'+eNVN-!N!B-4[m4`+KT!4e!%Ir
|
||||
c%h!!%#lrmlh5%@B386Dq9@X"!8*%[D'q9@X"!6"4-J&R(N39$!!!('85F!!3,N-
|
||||
9$!!!(f)'F!&J!!%"!LaD9#dZ4,d"!"Xm!@B`*e8q'NU!)&-#+!#r!#iL!1d*!J%
|
||||
!3)-Sfc36UGF[$%kk!3P+CfX"!+CA3cS!!!%!!!%!!!!#J!!!"%!!!!JJ!!!3%!!
|
||||
!)BJ!!%'%!!#$`J!"!m%!!JIiJ!3(K%!)"!)J%!MK%#!6))K!(L"mJ!2J1N!-!$N
|
||||
J%`!k%"$J2!J-(MJ%!!(i!J`!1!%5!%!!N[L!!%`"!!!J!J!!%!3!!!J)!!!%%!!
|
||||
!!L!!!!&!!!!!J!!!!3!!!!1!!!!(`!!!$q!!!"r`!!!rq!!!Ir`!!2rq!!(rr`!
|
||||
$rrq!"rrr`!rrrq!Irrr`2rrrq(rrrrcrrrrqIrrrrcrrrriIrrrm$rrrq!IrrrJ
|
||||
$rrri!Irr`!$rri!!Irm!!$rq!!!Ir!!!$rJ!!!I`!!!$i!!!!F!!!!#!!*!%#P$
|
||||
J!"k%J!!(S5!!!!!(39"36!#3"Ka3HA3`!!!!!8C548B!N!@!5801)`#3"!%X!!!
|
||||
!3!%!!S!%3!YJ%j!!)JK&*),M33-J`a-r#`X%%!)J!8!!J!%!!i!(`!rJ(r!rq(r
|
||||
mrrprrcrr(rm2q`I`!q!"`!#!!!!%!*!3r`#3([m!r`#3(2m!!!$r!*!Dr`!!pI8
|
||||
!r`#3'2m!!2@3"!$r!*!@r`!!pI@`X2Ae!2m!N"6r!!$epI@`X2Aep3$r!*!5r`!
|
||||
!pIAeX*!%pIAe!2m!N"$r!!$eN!5`N!6eN!3!r`#3$[m!!2@3",#3"2q3"2Ae!2m
|
||||
!N!cr!!$eN!@`rrrr#*!%rrAe!2m!N!Vr!!$eN!Er-`L3"rrep3$r!*!)r`!!pC!
|
||||
'r`J)-rrrr`L3"2rep3$r!*!'r`!!pC!'r`Jcrrrhprm)N!ArpI8!r`#3"2m!!2@
|
||||
3"rq3"2IepImc#*!&rj!&!!$r!!$eN![rN!8"#*!&-rrrrrIr!!$rpr@3#Irr-`L
|
||||
3#M2rrrrhprm!!2rhpC!(r`Ahrrmc-c-)N!Bcrrrrprm!N!6rpr@3"[m&"IIhrrr
|
||||
r-j!%#!Jcrj!%!*!'rrIeN!ErrrAeprIhrj!%-c-crrrr!*!)rrIeN!chN!6rN!B
|
||||
!N!Rrpr@3"2rrpC!)pj!%rrrr!*!+rrIepIrepIreN!Mhprm!N!lrprArpIArpIq
|
||||
3"IAhprm!N"$rprArrr@3"rIhr`#3%[rhpC!)prIr!*!8rrIeN!Ehprm!N"Erpr@
|
||||
3"2Ihr`#3'2rhpIAhprm!N"VrprIhr`#3(2rhr`#3([m!N"%"!*!)r`#3$[rer`#
|
||||
3$2repIAr!*!+rr@`X2Arr`#3#2repE$rr`J)r`#3"[repIAr#*!&r`#3"2repIA
|
||||
r#2m)#2m)#2m!!2reN!Arprrrr`J)-rrr!2reN!Er-c-)-c2rr`!!rr@3"Irr-j!
|
||||
%rrm!!!$rpIArrrAerj!'!*!%rrArrrAepIIr!2rr!*!&rr@3"2Ir!*!+rrAeprm
|
||||
!N!crprm!N!lr!*!+J!!!!!m!N!I`m!#3"3m!$`#3"I"9$r!!!!!2!&r`$`!!!2!
|
||||
!m!!!m!!2!!r2!2!2!2!!!2crm!hr$`!!!2h3hIm!m!!!rphGr`!2!2m!rrrr!!$
|
||||
`r`!-m2m!!!m!!-m!N!A`$2!!N!82c`#3"r!!N!8#!*!)$`#3$r$`!*!0$`!2!*!
|
||||
0m!!!m!#3#`m!!!!2!*!,m!!&8!$`!*!*$`!!"9!!$`#3#I!!!&99!!$`!*!($`!
|
||||
!!&99!!!2!*!(m!!!"99Irr!!m!#3"3m!!!!&rr!!$`!2!*!&m!!!!!r3!!!!m!$
|
||||
`!!!!$`#3"2c0rr!!$`!2!!!!m!!!!!r0rmc`!!$`!2!!$`#3"!rrr!$`!!!2rrm
|
||||
!m!#3"[rrm!!!$Irmm!r!!*!%rp!!N!30rrc2!2`!!!!2(2rGd!!!$Irmm!!2`!!
|
||||
!$a(-rrhGd!hrr`!!!2`!!!$r!-c2rrhGrr!!!!!2`!#3"3c-crrrm!#3"2`!!2m
|
||||
!N!6-c2r`!*!%$m!2!2!!!!!-c`#3"r`2!2$rrr$-m!#3"`r!r`!!!!c2!*!*r!#
|
||||
3"-c`!*!*$m!!!!c2!*!,r!!!c2!!N!X2`!c2!*!0r-c`!*!0$mm!N!r`!*!+&3!
|
||||
L!'J"@J'I!!%"!!%!N!8#!*!&pJ!&!*!&-J!8!0-"*K!*4@4TG#"8CAKdK`#3"!%
|
||||
B!2!",!%X"!*25`#3"!%B!"3",!"1"!C$B@jMC@`!N!AF!"3!m!%U""e5C@e[GQ8
|
||||
JFhPc,R"KG'JJF(*PCL"KEQ3JCAKTG!#3"[S!&!%-!5X%(e0PE'9MG#!N+&"C9%K
|
||||
26LNJD'pYC5"QEfaNCA)Z,LjQ!*!&#J!8!#i"*SK24@jdCA)JFhPc,R"KG'JJBfp
|
||||
YF'pZC@jdFb`JEfjP)("PFL"XD@jP$5K9Ff8J*#K3@94)6diT)'C[FL"`HA4SEfi
|
||||
JD'pYC5"QEfaNCA)T1J#3"!%!!!!"!!!!#bN!!!ST!!!"(3("fQ`6eJ!!!"`"$J!
|
||||
,3Nj%6!!!!'**3diM!!!!EP0*@N8!!!"k4P*&4J!!!)CTBh-M!!!!NQPME$J!!!#
|
||||
HD@0c1!!!!+TTBh-d!!!!YQPME$3!!!$#4%a24`!!!-j%594-!!!!fP"jG$!!!!$
|
||||
Q!)$rr`!!!4d"`Hj8!5crr`#3"!("lcMrN!3!!!%%!*!&J2rr!!!"%J("ld!",2r
|
||||
r!!!"23("lkJ",2rr!!!"J3("lk`",2rr!!!&K3("m$`",2rr!!!'L3("lk3",2r
|
||||
r!!!($3("ll!#!2rr!!!*%3#3"!)!rrm!!!NU!*!+#L3"`Hrd$NphEQ9b)(*PFfp
|
||||
eFQ0P50X:
|
||||
:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a4jf8!N!3"!!!!#bJ
|
||||
!!!SS!!!"+6B8)&3JD!!8)&"p%E"S%3!k!@FQ%Lm-6VS#$!`k!&Tj&%9NDA43HA4
|
||||
SEfj3FQ9QFbjbFh*MF`)!!!"bFh*M8P-!!(*cFQ058d9%!3!!!!%!N"1YC+j$!*!
|
||||
'$&(r%F#SD3%G3"(rma0`!"!Zrr1pdK&Q%&%f[P9V!3,fK[P9V!3%`86)"Caj
|
||||
%&3`!!"aP%R!!%#j$&3`!!"pL"R!"B!!"!3)X@P3Y,N5p!3!E2!&Q-#G92KT+J#"
|
||||
6!LJ![`!Z)J$Y#3)"!%#$+0Xd%kRA,`a1ZJ%*5QGV!3#Q9d-k!!!"!!!"!!!!!S!
|
||||
!!!4!!!!))!!!%"!!!#')!!""K!!!Jm)!!32"!!)(q)!%"i4!#!3#)"!)i4!J%b#
|
||||
)3"iJI)!$i$T!$!!j)"-!1K!3i$`)$"ii"!!"q!)-!$J"%J"!!*,iJ!"-!3!!)!)
|
||||
!!"!%!!!)#!!!""!!!!)J!!!"3!!!!)!!!!%!!!!$J!!!"m!!!!rJ!!!Im!!!2rJ
|
||||
!!(rm!!$rrJ!"rrm!!rrrJ!Irrm!2rrrJ(rrrm$rrrrKrrrrmrrrrrRrrrrmrrrr
|
||||
q(rrrr!rrrrJ(rrri!rrrq!(rrm!!rrq!!(rr!!!rrJ!!(r`!!!ri!!!(m!!!!q!
|
||||
!!!(!!!!!J!#3"!T3i!!HK)!!"k%J!!!!"d&38%`!N!C!!3!#J!4!#f!6N!!L#%8
|
||||
NJZ0"!b$$%cm,#`33!L!"3!#!!3!$J!I!$q!Im$riIrcrrhrr2rmIr`rl"r!$i!(
|
||||
!!)!!!!3!N"$r!*!Hr`$r!*!Fr`!!!2m!N"Vr!!$ep3$r!*!Br`!!pC!%!2m!N"E
|
||||
r!!$epE#`pI8!r`#3&2m!!2AepE#`pIAe!2m!N",r!!$epI@`N!6epI8!r`#3%2m
|
||||
!!2@3",#3"2@3"!$r!*!1r`!!pC!%X*!%rj!%pI8!r`#3$2m!!2@3"E$rrrm)N!6
|
||||
rpI8!r`#3#[m!!2@3"[mc#*!(rrAe!2m!N!Mr!!$eN!Er#!Jcrrrr#*!%rrAe!2m
|
||||
!N!Er!!$eN!Er#$2rrrIhr`L3"Irep3$r!*!%r`!!pC!(rj!%prAerc-)N!ArN!8
|
||||
!!2m!!2@3#rq3"3%)N!8crrrrprm!!2rhpC!*rrmc#*!+-rrrrrIhr`!!rrIeN!I
|
||||
r"IIrrc-c-`L3"M2rrrrhr`#3"2rhpC!'r`8&prIrrrmcN!3)#$2rN!3!N!Erpr@
|
||||
3"[rrpIAhprIrN!3c-c2rrrm!N!Mrpr@3$2H3"2q3"J#3#IrhpC!%rrreN!MhN!6
|
||||
rrrm!N!VrprAerrAerr@3#2Ihr`#3$[rhpIrepIrerj!&pIIhr`#3%2rhpIrrpC!
|
||||
(prIr!*!5rrIeN!Mhprm!N"6rpr@3"[Ihr`#3&[rhpC!%prIr!*!BrrIepIIhr`#
|
||||
3'[rhprIr!*!FrrIr!*!Hr`#3%3%!N!Mr!*!1rrAr!*!-rrAepIm!N!VrpE#`pIr
|
||||
r!*!)rrAeX2rr#!Mr!*!'rrAepIm)N!Ar!*!%rrAepIm)r`J)r`J)r`!!rr@3"Ir
|
||||
hrrrr#!Jcrrm!rr@3"[mc-`Jc-rrr!!$rpC!&rrmcN!6rr`!!!2repIrrpIArN!B
|
||||
!N!6rpIrrpIAeprm!rrm!N!ArpC!%prm!N!VrpIAhr`#3$2rhr`#3$[m!N!U!!!!
|
||||
!$`#3"r$`!*!&$`!2!*!&m&82m!!!!!m!Ar!2!!!!m!$`!!$`!!m!$mm!m!m!m!!
|
||||
!r2r`$Im2!!!!rG$Gr`$`!!$rhGhr!!m!r`$rrrm!!2$r!!c`r`!!$`!!c`#3"I!
|
||||
-m!#3"3r2!*!(m!#3"3)!N!J2!*!2m2!!N!d2!!m!N!h`!!$`!*!,$`!!!!m!N![
|
||||
`!!93!2!!N!N2!!!&8!!2!*!*m!!!998!!2!!N!F2!!!!998!!!m!N!I`!!!&99r
|
||||
rm!$`!*!&$`!!!!Arm!!2!!m!N!A`!!!!$p!!!!$`!2!!!!!2!*!%r-hrm!!2!!m
|
||||
!!!$`!!!!$mhrc2!!!2!!m!!2!*!%$rrm!2!!!!rrr`$`!*!'rrr`!!!0rrc`$m!
|
||||
!N!6rd!#3"!hrr-m!r!!!!!mFrph3!!!0rrc`!!r!!!!2%FcrrGh3$Irr!!!!r!!
|
||||
!!2m!c-rrrGhrm!!!!!r!!*!&$-c2rrr`!*!%r!!!r`#3"-c-rr!!N!32`!m!m!!
|
||||
!!!c2!*!(r!m!m2rrm-c`!*!($m$r!!!!$-m!N!Rm!*!%c2!!N!N2`!!!$-m!N![
|
||||
m!!$-m!#3#`r!$-m!N!hmc2!!N!d2c`#3$r!!N!S9!#)!D!&D!Cm!!3%!!3#3"3)
|
||||
!N!AL!!8!N!95!"8!m`%R%!P&C'Pd)&4PH(5(!*!%!4J!m!%X!5`%!Np,!*!%!4J
|
||||
!&!%X!%i%"N0KEQ0PE!#3"IS!&!%-!5X%(e0PE'9MG#!N+&"C9%K26LNJD'pYC5"
|
||||
QEfaNCA)Z,LjQ!*!&$3!A!"i"*JJ*4@4TG#"8CAKd,J#3"5S!&3"1!5H)6d9ZG'9
|
||||
b)(0jFbj`BA4S)'0[EA"[EQ9ZG(-X)'pZC5"`CA)JE'PZC3dS9A0P)#3S8&P85%p
|
||||
1+5"QEh)JF(PdD'pZ)'K[E@8JCQpXC'9b+6S!N!3"!*!%"bU3"!!"!*!%*&"jG$!
|
||||
!!!!"4P*&4J!"!!!!J!!"!)&*3diM!!%!!!%X!!%!N!3"!!!!#bJ!!!SS!!!"+3'
|
||||
3!-'8'$i!!!!F!4S!#d*14%`!!!"L5801)`!!!'j659T&!!!!HNC548B!!3#'D@0
|
||||
c)`!!!*jTBf`i!!!!UQPMFcJ!!!#fD@0c0!!!!-*TBf`d!!!!cN4-6dF!!!$D4%P
|
||||
86!!!!1C3HA3`!!!!mJ#!rrm!!!S!N!8",2rr!*!)rj!%!!!""!#3"B$rr`!!!4)
|
||||
!N!@"rrm!!!Re!*!%!5crr`!!!4d!N!3",2rr!!!"B3#3"!%Xrrm!!!9P!*!%!5c
|
||||
rr`!!"QN!N!3",2rr!!!'l3#3"!)!rrm!!!Ma!*!%!J$rr`!!#3S"N!#q&!#3"JR
|
||||
`!*!%$NphEQ9b)(*PFfpeFQ0PDV%:
|
||||
|
|
Loading…
Reference in New Issue