Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
db0baced
Kaydet (Commit)
db0baced
authored
Nis 04, 1996
tarafından
Jack Jansen
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
Added support for editing override preferences in applets
üst
bbb4e10e
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
179 additions
and
72 deletions
+179
-72
EditPythonPrefs.py
Mac/scripts/EditPythonPrefs.py
+130
-23
EditPythonPrefs.rsrc.hqx
Mac/scripts/EditPythonPrefs.rsrc.hqx
+49
-49
No files found.
Mac/scripts/EditPythonPrefs.py
Dosyayı görüntüle @
db0baced
...
...
@@ -18,13 +18,20 @@ DIALOG_ID = 512
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
)
preff_handle
=
FSpOpenResFile
(
preff_fss
,
rw
)
return
preff_handle
# Load the path and directory resources
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
:
...
...
@@ -159,6 +190,82 @@ def main():
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...
main
()
Mac/scripts/EditPythonPrefs.rsrc.hqx
Dosyayı görüntüle @
db0baced
(This file must be converted with BinHex 4.0)
:&%9NDA43HA4SEfj3FQ9QFbjbFh*M!(*cFQ058d9%!3#3"`a
'KE-!N!3"!!!!#bN
!!!S
T!!!"(
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'JJBf
p
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"`a
4jf8!N!3"!!!!#bJ
!!!S
S!!!"+
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
r
r`!!"QN!N!3",2rr!!!'l3#3"!)!rrm!!!Ma!*!%!J$rr`!!#3S"N!#q&!#3"JR
`!*!%$NphEQ9b)(*PFfpeFQ0PDV%
:
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment