Compare commits
261 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
430ab272b9 | ||
|
|
0a61cbfdba | ||
|
|
b8a55dd2c6 | ||
|
|
aba4bfd64f | ||
|
|
596d867f61 | ||
|
|
b75d3116e4 | ||
|
|
7328765920 | ||
|
|
044c5a63c1 | ||
|
|
5b372297e3 | ||
|
|
18e76a5186 | ||
|
|
4c5ca223bb | ||
|
|
d0abbf1bc8 | ||
|
|
e90c40885b | ||
|
|
84453f1024 | ||
|
|
6f710171ea | ||
|
|
70a494acb5 | ||
|
|
348c91131c | ||
|
|
2286aceaec | ||
|
|
54caeba888 | ||
|
|
a166824bf0 | ||
|
|
73d9a923bb | ||
|
|
d9abdda588 | ||
|
|
dc1068e38d | ||
|
|
fdadaea683 | ||
|
|
103195be61 | ||
|
|
916d55e1e1 | ||
|
|
b53fcbd29f | ||
|
|
792cd5ab5c | ||
|
|
073cbe4e42 | ||
|
|
4ae59ccc13 | ||
|
|
453805a706 | ||
|
|
3faabd41fb | ||
|
|
d02225efaa | ||
|
|
4f6a459dee | ||
|
|
6f151b566e | ||
|
|
be831dadd2 | ||
|
|
749279c766 | ||
|
|
83a970ca11 | ||
|
|
cac8be85d9 | ||
|
|
42951a11e7 | ||
|
|
5e782a932b | ||
|
|
a5464ea125 | ||
|
|
1543cece01 | ||
|
|
fa2d957445 | ||
|
|
60b96a550f | ||
|
|
222e9fa7ec | ||
|
|
5fb8d4deaf | ||
|
|
12b0ae6fbd | ||
|
|
48985ef458 | ||
|
|
6cc8241681 | ||
|
|
c4e0e5b09f | ||
|
|
2fa2c0a516 | ||
|
|
9b3696f1d6 | ||
|
|
cbc7c75dc1 | ||
|
|
2159930abd | ||
|
|
d3b031f694 | ||
|
|
b329dee143 | ||
|
|
18664767f4 | ||
|
|
bd61242c1b | ||
|
|
60ecb10298 | ||
|
|
f059eedd88 | ||
|
|
fe4cd8c787 | ||
|
|
0ab660525e | ||
|
|
7ecfdbbad1 | ||
|
|
2c068866bf | ||
|
|
f301b9c443 | ||
|
|
690a53c590 | ||
|
|
5cb29d745f | ||
|
|
a812ef6393 | ||
|
|
0ef8f2d453 | ||
|
|
c5b1b80c7d | ||
|
|
c207e3bb73 | ||
|
|
c936f30db9 | ||
|
|
4f703bf678 | ||
|
|
9b59119cf3 | ||
|
|
69bd756bb7 | ||
|
|
d3fac404e0 | ||
|
|
b72740d994 | ||
|
|
f067112601 | ||
|
|
153c22d929 | ||
|
|
bea44ed778 | ||
|
|
385d4455a9 | ||
|
|
7c29d37323 | ||
|
|
eaa39967b3 | ||
|
|
b80715e14a | ||
|
|
b751d5529e | ||
|
|
fdaa7d29c1 | ||
|
|
f41085f9d2 | ||
|
|
93abc31703 | ||
|
|
de51a27501 | ||
|
|
6b2da6a798 | ||
|
|
68351df3b4 | ||
|
|
a7808c2433 | ||
|
|
b66e85cb4a | ||
|
|
d5fedd911c | ||
|
|
7f6af1accf | ||
|
|
988edb72ba | ||
|
|
8e6c5ce5f8 | ||
|
|
997ef4a6ff | ||
|
|
7e14c20337 | ||
|
|
eaeea7803a | ||
|
|
2b02a82b11 | ||
|
|
499b09de92 | ||
|
|
6029bcfdc5 | ||
|
|
b4d7816864 | ||
|
|
7a7b70d192 | ||
|
|
5d3cf54649 | ||
|
|
3f01551a08 | ||
|
|
54a7625438 | ||
|
|
75f35ea664 | ||
|
|
671433402e | ||
|
|
c05a9b9d9f | ||
|
|
d5b080ec40 | ||
|
|
e1e3d04465 | ||
|
|
f4e494094d | ||
|
|
aeb23861a0 | ||
|
|
a246d1e7be | ||
|
|
92e1ff56d2 | ||
|
|
37f93609e9 | ||
|
|
c51a4e7d32 | ||
|
|
e3a6f4c656 | ||
|
|
757e8b6e44 | ||
|
|
8c19095ab6 | ||
|
|
7ddac51f20 | ||
|
|
9ba79d5aa6 | ||
|
|
4c5e9487f9 | ||
|
|
5adc329b02 | ||
|
|
ffbe9e6a81 | ||
|
|
5a2060c645 | ||
|
|
24c5afcc9f | ||
|
|
75a6ded81e | ||
|
|
252c969c68 | ||
|
|
96a3ab8d83 | ||
|
|
89a047e4c7 | ||
|
|
d0dbf3d348 | ||
|
|
11c729a762 | ||
|
|
7a9651985c | ||
|
|
5ee40c741c | ||
|
|
8587af28d4 | ||
|
|
c4f4fc7069 | ||
|
|
52cd4fb3f3 | ||
|
|
9469bd3993 | ||
|
|
391a8afa0f | ||
|
|
c8eca7b382 | ||
|
|
a8f5a25ef5 | ||
|
|
b6afc709a8 | ||
|
|
f0e5985e42 | ||
|
|
c5dfa950d5 | ||
|
|
b0d5e28f2a | ||
|
|
8b861c8630 | ||
|
|
abd3c97637 | ||
|
|
8558404892 | ||
|
|
9693d45091 | ||
|
|
086f349417 | ||
|
|
3277ad6f34 | ||
|
|
655a831d9f | ||
|
|
bf4652ea0d | ||
|
|
b9935d881e | ||
|
|
88ecbcc059 | ||
|
|
dc956846aa | ||
|
|
826430cc15 | ||
|
|
202826f3e6 | ||
|
|
b0b95a070a | ||
|
|
0b9bd57f6c | ||
|
|
b633cffc8e | ||
|
|
090f3732be | ||
|
|
94c3910cfc | ||
|
|
25924597f7 | ||
|
|
132ea372d1 | ||
|
|
d3502712aa | ||
|
|
eccc49e563 | ||
|
|
257d15cfc2 | ||
|
|
c4206d1113 | ||
|
|
91d39ec26c | ||
|
|
f267d0a788 | ||
|
|
7369543e1d | ||
|
|
1603d2380c | ||
|
|
2c9b748336 | ||
|
|
b082c4abb0 | ||
|
|
c23f607301 | ||
|
|
a40f880daa | ||
|
|
b6810fac7d | ||
|
|
0a7b3fb49b | ||
|
|
21828b5f92 | ||
|
|
3a955d46d4 | ||
|
|
31bacca783 | ||
|
|
4e0f93214f | ||
|
|
e315b2cf6e | ||
|
|
b8dbea06dd | ||
|
|
1ce0b71bf2 | ||
|
|
13a8f82c13 | ||
|
|
a57d1b9f38 | ||
|
|
246c30ae3b | ||
|
|
a6f9b5f91a | ||
|
|
60e12f4b9b | ||
|
|
0377ab52af | ||
|
|
57e4d6abc0 | ||
|
|
7c75f7684a | ||
|
|
32689f8546 | ||
|
|
7272f1041f | ||
|
|
751d94a91c | ||
|
|
c723d11cc5 | ||
|
|
7f3787498f | ||
|
|
afabe239ed | ||
|
|
8570a15411 | ||
|
|
69218ab525 | ||
|
|
cfc47cb9d5 | ||
|
|
80c89020f6 | ||
|
|
b51e505f95 | ||
|
|
d15aa11148 | ||
|
|
310c3364b7 | ||
|
|
12d091b335 | ||
|
|
f06acfa488 | ||
|
|
85bad4e4d2 | ||
|
|
1b1cdc170d | ||
|
|
1b0ba36990 | ||
|
|
5931a59c5c | ||
|
|
914f8e63e4 | ||
|
|
45623f736d | ||
|
|
b212ba43b2 | ||
|
|
af6db9c365 | ||
|
|
8d0f0d3aea | ||
|
|
1526420559 | ||
|
|
ddfb6e28f6 | ||
|
|
b18c8f119f | ||
|
|
96db58e1a3 | ||
|
|
9a33ceb8b7 | ||
|
|
aa8a6aa2d1 | ||
|
|
08e1d295d3 | ||
|
|
60f6e1f35e | ||
|
|
6adcc3aa08 | ||
|
|
fc0d25ee39 | ||
|
|
2c39f61d4d | ||
|
|
3eaaf8e907 | ||
|
|
339ffe8ecf | ||
|
|
9bbb4e665a | ||
|
|
57494cd476 | ||
|
|
bb564c7c32 | ||
|
|
774588cb77 | ||
|
|
90e4c52e71 | ||
|
|
db8679f98d | ||
|
|
d32ad8858c | ||
|
|
d7933540cc | ||
|
|
487a92b43e | ||
|
|
2b0aef4069 | ||
|
|
41843cd921 | ||
|
|
c8e2f4583a | ||
|
|
52172fab62 | ||
|
|
ce05f6eefc | ||
|
|
5d33286f42 | ||
|
|
0affdceaa9 | ||
|
|
b6c4365d2d | ||
|
|
12a0b19492 | ||
|
|
7a710481e0 | ||
|
|
1278d1879d | ||
|
|
040539c60a | ||
|
|
ddc4dbe3c4 | ||
|
|
4015cb8b89 | ||
|
|
38f4d170f5 | ||
|
|
bdc64b9b64 | ||
|
|
dfd03b2d80 |
@@ -1,4 +1,4 @@
|
||||
SUBDIRS = srvloc kinetd libvncserver krfb kcm_krfb
|
||||
SUBDIRS = srvloc kinetd libvncserver krfb kcm_krfb krfb_httpd
|
||||
|
||||
EXTRA_DIST = AUTHORS README TODO NOTES DCOP-INTERFACE
|
||||
|
||||
|
||||
23
TODO
@@ -1,23 +1,18 @@
|
||||
For 3.1:
|
||||
- write SLP service template for remote desktop protocols
|
||||
(documentation)
|
||||
|
||||
For 3.2:
|
||||
- set desktop name (username@hostname)
|
||||
- apply multi-desktop patch
|
||||
- trayicon mouse-over text
|
||||
- configurable slp lifetime in kinetd
|
||||
- slp registration refresh in kinetd when lifetime expired
|
||||
- write SLP service template for remote desktop protocols
|
||||
(documentation)
|
||||
- enhance RFB with SASL authentication (Kerberos)
|
||||
- encrypted connections (using SASL and/or SSL/TLS)
|
||||
- with kerberos/ssl: display name of remote user in connection dialog,
|
||||
kpassivepopup and systray (if name is available)
|
||||
- mention that invitations are one-time on personal invitation dialog
|
||||
|
||||
Todo (unscheduled features):
|
||||
- when krfb is started with URL arguments and without connection
|
||||
quality, add some kind of smart algorithm to determine whether the
|
||||
other host is local (maybe using SLP to announce the connectivity
|
||||
of a LAN)
|
||||
- enhance RFB with SASL authentication (Kerberos)
|
||||
- encrypted connections (using SASL and/or SSL/TLS)
|
||||
- try to solve the non-atomic KConfig changes problem
|
||||
- mention that invitations are one-time on personal invitation dialog
|
||||
|
||||
Todo (unscheduled features):
|
||||
- NAT traversal support if I can find an acceptable implementation
|
||||
(probably using TURN, as soon as there is a server and newer spec for that)
|
||||
- when OpenSLP supports this, allow scope configuration
|
||||
|
||||
@@ -2,3 +2,20 @@ KDE_CHECK_HEADER(X11/extensions/XTest.h,
|
||||
[],
|
||||
AC_MSG_ERROR([XTest extension header not found / no xlib headers]))
|
||||
|
||||
#check for getifaddrs(3) (as in glibc >= 2.3 and newer bsds)
|
||||
AC_MSG_CHECKING(for getifaddrs support)
|
||||
AC_TRY_LINK( [
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
#include <ifaddrs.h>
|
||||
],[
|
||||
getifaddrs(0);
|
||||
],[
|
||||
AC_DEFINE(HAVE_GETIFADDRS,1,[Define if getifaddrs is available])
|
||||
AC_MSG_RESULT(yes)
|
||||
COMPILE_GETIFADDRS=""
|
||||
],[
|
||||
AC_MSG_RESULT(no)
|
||||
COMPILE_GETIFADDRS="getifaddrs.cpp"
|
||||
])
|
||||
AC_SUBST(COMPILE_GETIFADDRS)
|
||||
|
||||
0
doc/Makefile.am
Executable file → Normal file
341
doc/configuration_access.eps
Normal file
@@ -0,0 +1,341 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 342 453
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sun Sep 21 21:21:52 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 367]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 6493 string uc
|
||||
î½*¾î1:-*¾*Ñ-õ0*ÞQK/,ÞÝÑT*ÞñÎ,öïì3ðZÀÉ8*1<·ÈáµÇâS̼*úÉâS̼¾ú+FQ?¾9ÇT¿º*BQ?¾-
|
||||
×TKÌS:*0ºýTöü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ½¼¾%%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
î½¼**ûÙ>*<òÌû@KÍÌè6JÑÎÈìQ¼Cîׯù<*VXßÖåYúÓÐïG,9öé@/*GE¹ýüú÷íö¿ñ×,ÈG´éX/*ú5¼½û
|
||||
ùÕæTåX?D:ÃïEÙòùżO<JòO*²IUß×ñùñüøØ¸´L,@ÕZêñ-Ð*ýUÒÈáö7öüâÕÜ,*/¸33DS¾Ü**,ÇKÞ±E
|
||||
æ±5¾·õõYÙ³0í×15Æ××ÁÐÞòEÒÈáö;ëüùåL»/*Úñã;ÔØNè×*Þî3+Õñ×7²Ø/Þìû¯M㸽1ĽßõíýôÃTÇ
|
||||
æVY**AHÜûúô×1Iï*ãÈ?ñüÞÉH-*åDZڷ¿2¿áC**WØÁÂ=å¹Fæ±6¾°ùµ9DóËïÚO9¯ËüC**é÷Ð*ÈGݽý
|
||||
ÂÃTLÚè-*î»YµÅYH¹òåç·è¹YÂ*TûÛýîÏå*Þ³èÒS3>DHRÄ-2G°,+ìïÞO0ÎÞößQá-ëZ-0¼½ÑOY.å³øö
|
||||
ñòéé½YHºõêGùòåËE½H¯4ÞÚùù¹ÜATóâöûëêäßíÅ9ܸºÜF¶ê³YV×ÇíÍ?æ±**B-*ú?XËúÞÂ÷Ð3:C@îJ
|
||||
/²ìðöûñ½ý84À*ÒúýîJûýý²/X½Jæ8ïí¼öç3Ê,2ÐWY¹+äóܽ½ûQÀîÔ6ðE*êÛIWÍQñJ9½GÛ¸÷ûñݽíé
|
||||
Éåüº·ðÕÃPÊ,Ô¹ýüùÀT+ö5Aô»¹M19ýüøì;·ïâµé»¯,´½½ÎHÍ+*Ö6*î;òLÒæÚ<êä,4/ÚXýé÷SD³9Ð
|
||||
¹SîH»øýIÆL;*ÎÉ?¶ë+úý½JÛ¶ýíøò.T+JâáXÎòý½Á.WÏSÁÉBÆìD8>*Èì9BPÐ/FÁH*Þ*Þ?øöàãÍY½
|
||||
ÝÝüú8½ûõâÉ9Yʰà>î°ùõµFXýüÁ¿æ,*½TB¶ñííéÅÍåUõGú¶ßM9Î*óí½ñG**È-*Èë7-:GGT4R>*ç-O
|
||||
GàÊ<+0ÛWݼÝ7òäËýýµÔ9XÅ,öý¾²üý½±éöν>J¶Þ2J6*IÕÇ>·üïãÜLÃö;Ú3ó½ì÷8Ú¾G¼íýüD+3º¼2
|
||||
,ú½Â4ôBüöWÅ5Òüý4CàÂBJÞ¿è½»ñPõúñÁâ1VÏÀ¯ðïÂF<3*NÙý´ÇHÍÎQÏÈ**î2»ÒêïÞÅÉÅIÔÂë½1üù
|
||||
¶×6ÍϾ**î>/.**=/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×RJøõIñ½²*Jð*¾ÀMLW̯8É,4
|
||||
/êüýÄ.Ì-¶ëý¯LúÝöNÊøýý¼ýï950*¾ä*æ¶ÙËL+P,8¾¾Ñ±óÙöZų=ºÂ4á-Pñ½ûÎ8Ú*ìýÝÉÒK¯,Ô4üÌ
|
||||
ÉL6ÞìEÒ¾9³üQ7¯¶¿PôýýùàCÍ>-X7ôIüµã4?6³,Aâ;3*Þâûó°Ò÷.»B**öíÕ1*Þ;øöÌá±ñôÜÜûùì¼»
|
||||
õÚ±9íCï?46½ÛN¿2+¶IR/*ÚK+ìÛ½½Uóéñº**âÏõîAè@ìÄXU²×RÞôõ½×ðC**Æ+*ܯHMëîû÷ÏïVJϾç
|
||||
ýIçâ51¾ûüÕýÓ°÷06D0B-Jø»Ó5/¶¾,/,àíü:RÈYTãÖ*öÝüZXÞ²üYYæ¿5JôýSíòBPÞ:ù´âY²ß?TÖ¸ý
|
||||
ñÕDYÎ3õìý½Cã,/EòñðçAÔ¯ÖîLHXÆM<*ZËùÅÃÖ¾=æá¼±IÝü²3æ¼ÁHÜ;¶è×ÕÉIÍÜÍA½»´èÞEHºÂ,1¸
|
||||
>=4*ÌÏT>¼úÊ1*Þü/ý»ù/TKëÞÁýáÖRJøõY<»Á*ί*¾Ù;ÑÏLUÈB÷C5R>JàýíU·/÷MÕêýøÂNHî˯¾C*
|
||||
Ø9Sâ57¶À,DÝXJ¾*74Z20BµB=ZZýµPòÞ/îäâýÇI6=JZï½EC¶Ã4ôðý÷À4FÎÞºýïù¸*4Nû½ÐÕÔï,CXÆ
|
||||
M<*¾ÄùÝW¶ð3ø:òîãÅ÷*òÅæáýû@ëDøõîá¹öíÏÙ@ûùIÀµRî.GíϾJý¼NîT4¶PúöW·õìð+*Þ·Ú¿åHÜæ
|
||||
JÏñ0XøÙÀÃ,ô¼ýÈ9Í+¾YÚ¶;O=3AXÂçP/øàRZJϾEÃíGSÉ;¹äóÕý=VùÝXL99êäBÞ6*O½Aö²*ëýÍí34
|
||||
Þèô/Ìòø4?úýýÚàÄõIXÓ-A¾OWüYÝSÊ*YøÌ·ßúýIÛL/Ùù½íLß/VÔäÆZýýHòJCÒüýàüýÕòâDXâá/·N,
|
||||
*B¸ýÑ.MÜK9ÞHX.ÜÝL9A1ú²éåÙ¹ýìÛµ½ìø²îð.ÜK¿=Ó¸Å,ðºù;¿USÞ@å͵?»øÇ1*JéÛ7H¹µò+.êG¸
|
||||
íàí,5ÖRÞÊõYÈïC*æÂ3Ï3¯@¯*¾KÑÓ2Ͼ¾-?î;óTå½½»ïö¶¯ùõA±àÃï¿ë6-Ê+¶×óõüÅ92MçàÜå=>Î<
|
||||
/ÑÝíûÛMÒîýýýÕíÙÜJ÷8Ú*ÈåIÜKL-16ô½Ç¿éýíö0?ZýûÑIç4XÞøùù½ý¸ÖP1È¿3ÝÕêD½Ý3YæàúÚ:Å
|
||||
N**»õYSîá÷Ë-òKëÝÁ½ÄHÜV¶éÖÍYåÜÛ±ÝüF´éßÉûÉ3/8Né;4îÇíÝÙ°ìFâ-*îý2,íG¹öò*ºúõæÃ1YR
|
||||
éÝL+ØÚIïCÒE-¾07ØEâZ+¾L+AÄ0Á0YÖ¾ùÙ?Ç:KÅL?òØ2;ØÓZà¾*Î;¾5-îKë/úíøÎÂ3SALãÌÎ*DÚÃ
|
||||
ÆÎOÕT¯îYN×5ÛRAZÇ.OðÔÌJá+øô6;JAR;Øâ,3¸³î¶¿8<>RÏTûX>ÁDEÒ4@K×̺á++F;Å>,JEäíYXÞÄ
|
||||
åæ=Ôø2»V@îÚ³I¯Sá7º@¼·Ï*ZIX»Á,6иóÔÂ5íö,*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2ï?*ÖÀRà>º+
|
||||
*Öè/>»4HÙ¿6@JáíÝÍÙÕQ×KKLG2ÓÈñ4Ð<1?ÙIò´+CÜL9+*ÞCøÖPÞÁù¼,RPºöPøÐL¿2VöüT4¶áñåW÷
|
||||
ôWï/*¶ºÏÂü8¼º¸öʼ¸ÑÏ8WMö*/2öü°ÍBè6*7ò´î3*Þ¯¿,7Dôê0ÐÖ*ÂNÆÎRøÐÁÀ¸J*+Èò4<<1¼¶»
|
||||
½Ìï,PVÝ·ÌH¼2¶îàÉMÍXÛYý¼üøðâ1ÛÉC/ÒLïàWãÌûNîÚKµÇÜ+ÃVú±äØ89LØìCº¾,Æ´½ø9-ôV*ZßûI
|
||||
1UQîßFæáó*1Hú¶ñä͹òéÝÉíÜÛ̸CѾLòëÙ?éÔí6Ì1F149D°æÚ¿¼Bó41î34JèûÍQ.ÖY+¾ÝôíýYغ,
|
||||
Yúä³ø2T°Ì+¾öCA±4æÀ×±Ù<WøË繿ýêGáÃ4>TÆéC¹ý.HK+Ó2º½ò>û³T*¶¾ÁùõACÊÚ¼Q¾ñF»RGWË8+
|
||||
¾æTA³4ÞèÓW·ôúÈïúÝ»ôâ¿=åìHöõè.BMìûù±8ÇYÁ,¾5ÂT»ýü<¹¯-öX/å¯øÎ¼ñÜG,*CÕYè>¾ÎKÙÐV·
|
||||
TÛñû4áíÝI¹âÄßéÔ.*Ø5÷óÆ6ô6ÍÕ³óôóÙO1áãÉWC´FAîß»55=íÝM+ÞEéÊO6E¸÷ôW=ÂïïáÔ.5ÌÊ3ÚH
|
||||
ºò68OèAYßUµI,¾µÓS¯CZãÔÃ=ôòë=ÓBIßÀW÷óÙW°*îêÖS¹ÔÊÖZݾռ.*ýó5ÖZáÊOÙ0Öã@Hé:,ïéõÒ
|
||||
4ZýÖ*îûÕèùÝèõ½ÓíýTÝýÓ¼ýUûÀÕ4-í=óÅÍÚ+ÞüÆØAöAS?O35XôûÕå7*2ûòÔÔRü;ÓÀ¾½ï@ý½ô*ÎéÍ
|
||||
EÅûÉíAÐT0îêñêÑY?ÜíÚ¶ñ³û×è.*:ÕBôÐTßVÙÉ5õI»Uç÷ÚÉíÌ?ùH**¸W-9JñP¯ÓáÓ°ÔÈõìGýTçûØ·
|
||||
Aµ³úH**¸W-92ñäÕDSÓÎÔðÕ¯ñͼÓÒüéÕÉéÀ¼9**ÔÔ¿1·±UWÀÓÅUO¿ûHÛD¼ý×-¾àY»øµZåõ+*ÞèDö
|
||||
ÞDYXFU9ÓÈDá7زøû5*2ø,<9JJ¼/ÎòOÁäëV÷»**ÖØ0HBäÈCÙèMÓÐê²µüVüü,*ض,Ë-2ÆY+Òúå˳±E
|
||||
ü.*:ä9-6Ò¶Ñ+Õ:**FQ¿50*ÔìN¾*öõÊ4*ðò:KDQìOÓàï°±ôÚG¼ù-*Ì/U,ÌëÙµûÄ:ÖîL+Ú´I0ÀÞ³íÜ
|
||||
E¿*KòÞ¿,Ú;*ÄÝÛ±ä×á+½,*ö¿PìÕ1Ýç¾6;*VÛÇ*,ÎßïJ¾E7¶V/ÎùÏ8ÚZ*é6×°U»ÒTúXôãÊ×ÕQI*Þ3
|
||||
=KYSFøò3ǹë--T+úÏÀìÝHKÍü+¶»ºîJ+ì6*ÕåÌ÷ðêõºI+*·ïõ>¾AÄѾ1ÑÜ»==28.0FR*1îC=/4F¿ô
|
||||
ë*òáJèË@ÚZ*ZóP,2¾XÂ,+¾õ-½î***¶ðÓµOÅÆµÙ·ÌÙ:¸J:̸Ä1Ô÷ïâÔøRÓ²IêÈCII½<ÞÉçáü=0
|
||||
óê;¾îÁ+Ó**KúÄ0ÆÌûÎV×--8>Þ7+î÷åCUÄûÌô=*îE¿6ÁUÙôIõ¶³ÌM²é¼:öÆÞ¿,¶*ȸ·Ü65=ë0*Ùß/
|
||||
ì²ß/-¾Wµ<¾+¶´¿Ð´*ØYú¿-ÎGUÜéLPÞ@öæGß-Ü䨴*Àò¼Ä1²×¯âËÒTÌî³ãÉ͵ÕXGSYHL64,ÎT»,ì
|
||||
¿+J»?¾ZJ¹>ÞÒEA2äË,Ú;*ìüú°ãÕíÛ¼-*øCL=ñXIB0ÁÒYõ+Ó¶ÂÞ¿,¶*3@ݼ7×Àé0¾óé*8³ß¿,¾Xµ<
|
||||
¾+Ú8ç,±*ÕYú¿-¶»;ÏÎÖäZ?ºØHßÁ;,×-ðGH¾â7ÓTH×°ðèËEµ¼=Æ3.îÔLCQÒW¶êä¿÷T*QOåðïÓËE9W
|
||||
@Q2D¶Î*µ.¾Ó=ÕF÷ó¹ÑY+*4ÜZØ,Ï?+òCÛ?µ4Þ+R¶ºø²á4P-*K+åØZ0*¸ÛǾÎ+,>5¾=½î*Pé?ïéO³é
|
||||
Æ0ç4ìî¿Ë0ÞÈÒ¹ºæRÓðÖ?U@8ûöïáã:Æ¿*Ì@ÀéÆÝ6R¯F6Y/îÔMSR¾áöïA.,¶K-14îÄ*B¸ïÊAå¼Aø3*
|
||||
¶È¼EŲ;D=DüôñÞÏMõ»5KÆÞ¿,¶*Ų?X6éÏæ*JRÞË@ÚZ*æóP,À0Vì/*LÝö-QZ¶ò5A@1ûJ<üÂ1BD*ã
|
||||
M2Há-ÁÚö¯UÛ²ÓR÷ðñëÃå7*꺶äȯõùú.*ºÈ0,¸Öúº¶<ÍÎJÄåÍUFZ@NîJ+F*ÞÂ:N¶>ö±*:>îP5XB*
|
||||
ò¸=+M-Â8¾åAüÞGOö6ÇÎåÊA2¿Í9ïK2+WóZó?HòÑT¯ÃÕ=UPX»öù***4*<Ö+XHú°ãÕ3¸Ü1*¾XSÞ*²Ì7
|
||||
9øSÓòMêÈ?5ÅH¿FOÑ,êÚ¶ãÇYU.û,*8ú5*¶à+CH*ò¸ç1÷ü+NìPÓÐA±YÜFÚ÷âUÃÏAÕVCôÅÐõ+*ÎéDö¾
|
||||
@EÄÚÇTÿðôÊ·öðâñ0*Ü8ûðã×YÌÜ1*¾XéÞ-ßú¶AÓ4Q/Xø±ïäÍå7*ÊܺäÌ·-W»9**ÛÔ¿1ÐCðXT??5ú
|
||||
³çßÏQÜTFIüæÐ¿Q³»9**ÛÔ¿1ô×°âÞøRÓBZëÜWù0ܹì*ÞðóÝÄ7ÚVêù**æ³7ºZÐE±ìØÅT/KÝôËÙôò+J
|
||||
¹Iõ»Eîý½***ÓºT/üõÆõ³GÁºýÓøüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûúÕ4*Fó**ûÂ,,,XðÞÑ×èÙ¶¸-,ý¿Ò@
|
||||
¯Ó8Jß0ÖÖ1ØÇG°Õ.@¹*+*Æû5/4êË.¶ô*¶ÅØZßÒìÀG¾3,áX7À-9OÓ*Ó5*¶ÎTÜìò,êQPàXÙ.×HF:JÞH
|
||||
IÅFß¿6¶RãºíüO4¹*=.Âû+æõôÎË9îìÈ<W?öý**8êçZ4øìÞEà¶á+4*¹óVóOE@2,î4¼±å¼ù,ô*P26¹K
|
||||
×ZÕM²´*êKÓÌNÞ/ISôê=Ë6-÷¿T×Pñ.ݼß,ZKÒ4ò8ÓT7Jå1À·O2ëV+ÉT?Ø×ÂÊð*Y¾ù¿Þã÷,îG:Þ×-*
|
||||
ãêµíâJÛ2,°û·ÀÝÑTNºÀÂã+XéÀ¿9Jú,²QJ*±1Z¹Ñ.5LÃXÓ:Î52è»CÓ¸ú*ZûW.òû-êXÓ¼Á6ºýÓøüÕø
|
||||
ûYóùÝèõ½ÓíýTÙPÓ.DI¿*,ÒÎÑÖ**ÔÑ=13¿*Z1ûÂ,,,ô-6»ÒT6F0Îê¹93G;2ë2-ìÎLEÇè¼Tã×ýâ¿FÕ
|
||||
Äê·áR5@Êè»ìñJºF¾À7Z¯åüÃ,ÕÞ8ùJE×±ÕNßÄäÑ*ÆÖŲîà5*ùE¶Z.G.+úà28êßNß¿?F*.ß8J*Þ¿R6
|
||||
.**Qîî.5D´ÓF¹KÄúVå8TCñ»ùASÕTãéËX¾Gùåå;ù.êQPàX¹ÆóÆRJñTÉFп5Y*êíÞ¿ãØ7ÏË5M¶Z1=/
|
||||
1Ôî*:P-XÂLCá3FFßÀÌW?Ý6*±ôê?úäÌÖíÜîTÓP¿Ú¸ÔøÐ+Þì¹-ò7¯Fô2,BO¾òµ²îà58ß¿WåXº¿5MRJ
|
||||
RS¶Z/1*¯D*ÖI2ðÄM¶¶¾/GÙTOJZK61òHÓ,é;RV¾³DQöó¾*̲°6âêCÖ»ã/*ÞÇAÚÀ-àÜÙÁ5M¶N±A>
|
||||
Î*ÏDîL>Ä*ìÂá/@²íT·Rä¼ùP04ù,ÀDÛUÓð1,Aå5¾µôE»3Cê×ÙØñ·¸ÎûÆ0*Ò-Y¶-12*ùðëNÛBÀÙÓT¾
|
||||
25:/¶Ý2/U¾E¹*A,ÏÍUãµµÈZK>ìêYÇ01YÓÈ9ú*àAJ¹Ö5õ3<°åìEÓ//JÅMD¶ï/µî*+ÎÆ¾Çô5M¶ÙT/2
|
||||
¯+LéÀ5Ï*ØàRÍÞßÓAòéTWå,<²;Öü@,øå+¸XÓ¸63øNÓøó=ÜýT»ýUûüÕøûYóáÜTùÜH¼ûÛ0*.½ûõÛÓTì
|
||||
GºøóûÝýüÚ:9Ü×*Þ»ñüËùõîêÛõÓT÷òßÁý¼ìܽûÒÜûøË/*8H·êÓ±åÌëEJíTÓðÚYé¼<E-ü+êü+÷5òÓ*
|
||||
ö-ñµÊôà¸ôéò¸÷ó7ÓTÜC´éYL½ÕÍÝòåÝÛ*ÞõÅÝË·ÊéÖ?ÉçäETÓúíéÍ9¹ÔìܼϽ½µ+¾éÕͼ¶ãÅIÝP½-
|
||||
ýìRÓð²UUäM×·÷ó/üúÛ/*8½»÷ß;ñÏÚDÏ˹¹MÓÈI?Û¶YáÜÛ½AòåI,*G5Æ-+4´Ú,¿50*Ôͯ*ãÙZë+.2
|
||||
*Á,+âG*ÅÛî@.X8¿*Bý0>,,Ð-.QýÛùìÄù@@ËÌÜÓÛÏTãYÀ@ÚæZëéÙ-öÅ*¾×Ð*¸ºùíÆÅ,*ùU@Jîß-¶Ä
|
||||
+Nß°.1:J+ÆÖ7HºBõ´:Á/ÚGÀE:ÆX9ä*ºùóØ1A<6øãÔT?Õæ·ZÚÀ±EÅ8ÒI,*Sáñ/.¶*ó@ºÜÑ*ÆÕXÛøA
|
||||
4>ÎÑ8¾**îÀ-P*æÀʰX>¿é°RÛWY*ÒUYN¾è+:âîè/BRó¾Á²*JûÏCÂ;**Ñ-DRPóè=·GÍ**ìâÀU1JEÒ/
|
||||
5Në¼ï1>7À-ÕLð0,F¸ñ×/á7ê×àÔT?9æ·îM¿W1I8ÈI,*¿Zù/.¶*î¾5è1Fç<ܺ÷âÞ/QRÜÚ*RüÀ-¶÷ðà
|
||||
AXR<÷Ã<æÒ°Èýø4Þ7<ζË5F+-Ï=ð×CÂIÆð*P1òMMãS-KHFî27À*Ò=¯ÕUõ,óà9â+ãÕJðR,æöîÔÁUÂñ
|
||||
¾WÓTü̱޴+ÑôëEú¼.*,Kó52Z*¼ýÄ:6S-îìWòF°¿+*Þ/1.7îSåÜÐæFöÄT,ìëÀYAÜ+ú¼À.Þ¹FßÃ/2.
|
||||
ÖÍËߺ,*BG¾ÐCÆ0Rë¶Þ;D.+æ.ѽýüVß¿:Öí¼R³¼?<µ:Þ»ùP7ÖWÞÌí³ÓT·´Ì+Mø¹DµìÎù;*2B<YJ*,
|
||||
æÛù,Ó-+0çDÙÈ--.¾ì1F:.¾7ÎìëW;ÎÉ8>+/MÁWêÞ7<FØ*¹ÞD³*A.ïà=82¾;Èöãì×¾¹²Î4Lõìû×À5K
|
||||
J×ó··?<µ:Þ·ñHûA<ÞÌ׳ÓT+¯¯ÓèÕ²ê×µå¼-*Hñ-ÂÈU5ÜCÙå0:¹ôQ´úØôDZE2¹¸U*ÊS´,È9¶J**½3
|
||||
OÖóE@è8/J*××,¾E4î,3,7*¾=ZZV°°-îÀ:8Nß¿8Öê8ŶS8:.>ÝÇ/Í7JÐXËCíÈòL22¯Ý28¿â7.Þëׯ
|
||||
ÉôEÔ4³ÓT÷VÎ/EøEø³êå*Þ·ÔϾJ/IÖ¯¹*Ö¯YìNK¿78ùG19Xë¯-ÙÆÐî¾-,*öíJ1@ÚׯíRJ>K.¾*¾û
|
||||
,3À-*¾=ZZ>Aº¹îÀ:XNß++Îå2ø?12S4ìâÀá0*×;.4>O¼;.Òà+³åÞîP*öóæ½730GUUÓȼDëöXÞÎíÏT
|
||||
<6¶ÆYׯ*ÓÔÖOHI¶-4·äÀÄ8ºÕïçÍØTÓÚ;èÊù20û¸´È7ùó/***¶,*ÕµÞ<2*àò0VïH/FôêÖQAìÁ·³ZÒ
|
||||
ÕÔÈ;ÉÄÊÖñè×E6*úôëÔ?U@GCÐÔT?ý@?ó@ÈãÆ¼à²=ÇÛNY/¾5÷ëÁ´AÏUUOÖðèìRÓð¶ASP»ø±æÑç³ëÚ¹
|
||||
5*úµôâ·éôÊÇK×ɹMÓȱݶRçâÓWÕ@ÓWõ@*öêÜ»ù8˳ϱҳ¯ïGÓTÆ»W¯´ÒòD*ZDÏ4¸ëéø÷ÔT?ÜÜúóà
|
||||
¹ïÜë±*ζõ@¼ÛúøÔT?ã¼G¸ïÚ³õD*:ìàÏí=Ó@ÒT½á,ÜýT»ýUûüÕøûYóùÝèõÐTI/*@ÎTîýU+¾UU¸ØT%
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+íÄ,*ÓU5Zëúø³óûÕèùÝèõ½ÓíýTÝýÓ¼7U/*ì:ÞË0ÚØ+*û²4B¹Õ¼F2ÎJMT33µ¶R3G½Ó
|
||||
1Uó¼1ÌO+UOßñõòÙ5Q?;»TTE×T-ÎZ-V-+*ÞF¾1ØÇG¹OZ×-2*îÏ÷>*<@¹ëÊÂ,4?/Ð0æ-´ÎÚMWÖZTõ=
|
||||
³B/¶*/Æ»±D.@6F2ô*ì3+SÁîJ±Õ4θ+*ÕTÃèËXÎT³8JQPàX¹ÆóÑ+ÌGϾäÓ@ßXȶUüJ4.,ï1*KK?ñ»
|
||||
ùASQèZ4î*46ùJòÈÝ*ùL:1JݹÅÔ¸¾¹UȲÓÞý-*¶ÓTÁRñRñ*æ¹-í2áÓ02ô2àGW¾ò7ºÝÆ,¿Jú+JJ/Ý
|
||||
×±ÝGRøJ7P+8J+¯Å:ú3RÚ=,<>5ôDÆ0-¾GÒèÇ.¾-Kɾº?óÃTÓ-ÖN=áJ¼Î+À¿ëS,UJFùóÓT°På-´*5À
|
||||
ÊJõ:ÑM¶¶*/»ÀìQT/@F=,¸¼:ÊUüæT4ÖÉTSIð¸=åAäçTÏËOâÂ7¶*ê5î´³åñòTEùD2·éTÓðQKÎâûFó
|
||||
Òê?>±Ý»=-óP7L+8J¿¯Y.Ì÷¶?U¾E¹*õ¾V½ÌÎëU/CýÇÞ*͸ç±ÓLà=N6Eî*ÖéØÞEÓ//²1ô»½¶¾ÖTã×
|
||||
YÓ±K¿5ÂÖáëË<V2?òò288J¿±ý60+5ê×é4M»Q.ò,À¸ëÜTCG*VÍï3̼Þ4ìÎßUó+BßùYÓõ½ÓíýTÝýÓ´¾
|
||||
T3öïÍ+*¾ýÏTÃZõõý2*.½êITÓVïûü5I+*ñí½ïð9TÓZWüü±ó¸+*äÝýØÒIÒTïÏúû55:*ö**7:¾½ýMC½
|
||||
RÓÀ:÷ùý@Þ¾è:¾ò1÷NÓ2ô,3M+*¾2¾º*îÎ12*ôÎñÖ¿²B:è:S@òÕT¿¾ÏT=T?UÀ½Þ=ÓL.O¾ÇXÓÐSÔNóÎ
|
||||
YN³IÓ°óôùýÔÎDRÃúíYõNÓÊÈÐ.6ÕT·ìÏ@VBÓ¹4ÛÈÛ=Pê/õCD2-D,J/EÞTJB1î¿´°åX3Vô*,*º²H/¾
|
||||
ÂãXE=Ͼà¿?ßä²2VÞü*;ÌÊß>Þ+=*ôÓ-Ï0QÌïÀ2ÆD.1D°ÓNØù¯ÓQTOòQ¹ÏTæÕ2ôÅÚ?D·RãºíüOTÖ¿4
|
||||
GÇ4è/øEE**82*ÓEÛJ+ßF¾ÌÊÂÛô:éQ-F¹L+ËUWÀÛ>ïÔú:K.*0LÕF¹ô12ïâ6P+8B+ZYGR̶Q.ð*ò´J
|
||||
ÓëÒÈò°IÔ¸R³VOâõ¸ÏTØÊHôJ¯RIPð4¼±å¼ùÀÊɲêZ¶ø0ø¹´îLÓ0Ï02ä+Îõ0Ü;ÄU7:ê;ºØ*çEöXN2
|
||||
+:2À1,FJÂ=±B/¶Þ.ÀGÀç¿L¿¹LJÀ°ßìÆÓ°ÐèùýÔL³2JÎɸÎTàºÂߺãÈG*ô*@Âôöì5JÑÎPóGºÐáøß+
|
||||
-¾û¸*Ñ*++-.ó*@çâBÆ9²¾ZZ¹Ä¾42弯:,J<ò8.*54;ìÊK>Þ+=*ôÓ-?,1Ìïà1æ÷¿ZD°Óê;öü+Ôü1U
|
||||
;ýÚ9GR?+¸P:¾âD³ÊâKCùëECRê³J7ãíÄBÓ¶Þ4ÎP1ÞçTÏËOâÒ8÷,ÚWë÷FÛ´ôÔ0LìØÀ/L*²;¶ä¹±1ó*
|
||||
;X×ß+=*ôÓ-Ï0µÌïÞ1Æóå3D°ÓÖÍðçÓÍÝ8»>>TQÜEµI1TO4×6.J¹;ú8²ðÙEOÖ:4µôÐî<ôæEÎVFJÕDF
|
||||
ºÙTNºÀÂ;-8*¹W5ºÑØÎ¾ôÞÜõ1129Ò4¼0Á¾/ôA2ïÈ78B+ZYG:ê³ÃÏÜ=,¸+KÛÄV?µ=EµìÝÇIYÌÉMåÌG
|
||||
¸ò´8Òè<2:¸@ù*VJ7¸SÓNÝAå**XOÔT*J+JáBRíÒȯQËòàM*:NSõ±AW¸ÓR·èÊ9+¾ÎXüMÓèõƾõÝTíý
|
||||
TÝýÓ¼ýUë*Ó<îáI-**ýMÓ4ßìíý;*2üÖ½ÒT×àùûA¼,*äÝýàãIÒTߨúûåèó,*ʽý³S½RÓàM÷ùA@J*î+
|
||||
*DJ*ýüŰüÎT/KðõýW¾+ÓK*ç9ðÇT;ê/<XRR*¾Ê¼¾J±åH5;Â8NX4ÛÏT:ZÒèÂTãÈî9öNÓ2K3Z@<=*»Ð
|
||||
óÈOÇXé*JÍä5ØNÓVÛûüÝ?Ò0T;ýùéGS?ÑÐ>+á¿DÒZ-VA4¾·ÅØZßÒìê9:æ¿5öä²2VÞHDÍ,,Nê<-Ò0ß+
|
||||
ôêY¶¾-ZÅKÎËê×U,ZM58DßÇMÒJ.>2**8²àÏMÚð¾æ+ÍLA¹QÊÖ5ìñâ7ÂG0K4L°ÔÌT?Çô¼VóÇT3ûçXÒ4
|
||||
ø?Àû;µ+FÒìò,A4¾K?ñ»ùASêYÒTÛ¾1LÕF¹ôÂ,DATÉÒC¾-áóAFÞ+ι¼°<ôØÁ¾óÏ/1Ëîâ;T:äÎX²àÏM
|
||||
Fñ*1¾»Ö¿æÇÒÎX.ø¹ð0Êì·ô*L=çÛÑTO¸×9UGÒDÔ<ð¹ÛR?YP9¹ÎBÒ±1ZTòJ+ÒÀíê×íÜÎF:.ÎXJ:.9S
|
||||
*2à=O¾ò±0NR@ê¯,1F:¸*»µî7¯Úç,¾îÌ3ÌFL/àÃTË/F¸ÂпEÅîCAÃ70QíJ½9ûÁ¯1*æå»Ðè´TãNÓõý
|
||||
WÃè:¾JAóJÓÂ÷2¿D2*Uô*ÖI¯>ß¼KÒ0òHÓ+éíÎ*NB¯>6êHÇ.º¼:6ôêY¶Jò*°Í²°6âñ.1Ë*@F·ÂDÀMÝ
|
||||
¶ò2åFÞ+Z1ËÀDÓõîÇ8éíúMξ.áÓÓTã8¿õ9Zó½Ö4÷åûæ¿T3α,+NÔSåTãKCùëECRê52èòìξA,庵ô
|
||||
Ôôº@ç³ADJéÍ=ZåüÀ-L16ùËOâÒ5G²,*óÞ;8.L.¾>ÞûÞ,8GàC1Â8R7DÈÝ7¯èÓEJô*ÆIS×ÑTãû>ÍXûú
|
||||
óæÕ±ôêÓ=íËÙÍ-Ó<ÃV0,ÎÛ2¼ÝT?ÝÛSÀ/϶±½ODFºÁ,üC6,@ÖùP³¿>æÏæ¾XJRAìý¾-0½Æö.3éÆ8DßÃ
|
||||
MÚS?ÎóàW9GàC1Â8RSÉÖMí¾ðÓEÂ8:ß:0µÒT·E×·ñüËú÷ðÚF¸ôêÏMµñJÓÔË*ï·×.JLGæMÓ<ûÜF-*¶³
|
||||
ÕÓ,*4*ÔØ6WÏTÄG³Ð59+¾:OÛÏÜÑåTÃÈÑäú2*.óðITÓ¼Å.ºýÓøüÕøûYóùÝè0R?+IüC**öITÓ2ôüü9+
|
||||
¾îÅûMÓÈ?Üí½ï=*ZüûAXüKÓ4Ôãí½ÔXA*ÞúùYÉøÁT?HÈݽ¯+,*9*Î+,öõ½>ñNÔKÖÛæ?ö×QÄVPÓ:Nüü
|
||||
Ý/BÎD.:ûKÜR?óèÅ-+4²FÚ0ñ¾C¹*÷Zâß8:*êKå¯-çZJÒK0V¶ä,¿;·-J<×ÖÙT¿¾ÏT=T?UÀ½Þ-VßTSö
|
||||
úGûôàõS-Îå×Bå.=çTO</CºLÌ:ÇñJ@ÑTÔì¼ýí4T-ÓÆýûó8ÒÈÒ+ø*1FõR5@ÊèËG*YÖ+@ô***ÞH,Þë¯
|
||||
Þ8JH.áî3.ÛÌNã2Þ*ßòÞF¾0ØÇG¹OZå5F¾æº4*3ÉÛ´àN+Ã-Ï¿Ëç:Ö¾ûCTF2Á-P*êU1ÈCì3+SÁîÞÃ4C
|
||||
À8À*¼Z/Ï.QÄJ꯶ß1;*ôÃ,/ôX>á¿PÚÎ+*Zðî,Zè>Æî:8°CÔãÒÈN¹IÔøNÓÂü²1TO:2½¾-8TCíÙ½Çà
|
||||
8*ÓEÛÞ/J·*ò̱1*¯²*Ò:²-åTó,244òâNê³1×¼DÞ×=4æÚè<êO3µã13L*R:¸ãÍÐà>Þ+=*ôÓ-ã3õÂ*8
|
||||
ÂÚIÖ0ɳELEAÔ**Ú¯.Kõú/3Â*Öåå;Q¶ð2Ó*QØZðî,Zè>.ÍÈAL°ÁÓ<ÛêÅÓ8T7U3÷Û8Ô4TöËGùëïűN
|
||||
¾û+ÈÚÇÒ¹Ó¸+.//æ¹-í2áGÖ,¾:¼æ,NíÞ¹;ßÚ,.½É4Ñ*1ÊJÖMBGR>¶Q.NR@êATãÔ±AÜÞÃ?**µ6;Tï¾
|
||||
.>¹ôè×èÉ´HÎ8Ï4îN5P8X3ÃZÍîâ÷´ÖTPT»ýíTÒ0+.¸S1TOäòº¾-ZKâ/òX·ÇNÓÞøÁG2,ZÇPÄ¿úJ-.-
|
||||
Ù±.Ò¾¶ôÁ.;*<KõùÒ¶Þ.¾»óJÃÞÛ¹Îñ-ßÚRÓ¶-îîà4*¾UĶK,ÈGùPñ.ÝH°TÅR/¶Ñ/»µ1åÂÀ:>I¼ÍÓ
|
||||
°ÅÞù1ÖøIVÃúñ¼òJÓúS2>·IQG?¹/ãêµíâJOÑTÒ*³¸µUô@;ÑÈÞ5î´³åñòØ×ÙD2·é¸ZBÔ2FñÛYÑà+=
|
||||
*ôÓ-Ï0ÀG¾¹õJÔIQ¶ÐTÒºESAÔ**Ú°Â5<îê×I2ÚFY*Ü9>á¿PÚç,TÜËÒÈÃ5ÑJZÌØÙåT·IãÑUI½Gøóïå
|
||||
ĺµì¼8ÒȱÝTåÀ,A2¯ÅÙEOÖ:èVN8ÓLÕDFºÙTNºÀÂÓ.Xé,íÒ@>æ¿Ûóûß+à-Á¯Íß:ZïD?8B+ZYG¾ê³W
|
||||
Þ8ÞG;Î52èÛR?M;+=ëAÔ**Ú°Â5<îê×9ú*àAJ¹8>á¿PFçÀÇÁöÆEL¯LEæÁZËÓð´°ñäûE÷ñã··òê×MÅì
|
||||
äÃTWR+Àè°9¾Fè*Èí+LXÚòÓVÎòAßV±ÓNÝAå**XëUÓ@´3*J+Þ,òî>.ÊÀ+MìX±Ó6¹èNAH,*Kȸ=ÓèÐÑ
|
||||
¯EÓLãS±¼.*¾ø<Èû¯ÒèõƾõÝTíýTÝýÓ¼ýUë*Ó<îáI-**ýMÓ4ßìíý;*2üÖ½ÒT×àùûA¼,*äÝýàãIÒTß
|
||||
Øúûåèó,*ʽý³S½RÓàM÷ùA@J*î+*DJ*ýüŰüÎT/KðõýW¾+ÓK*ç9ðÇT;ê/<Ä,**;*÷*ÞK9:*êKå¯-ç
|
||||
ZJÒK0V¶ô3õíîÐEìQàã2Fî¾²°¯CÓ,+MÓPÒTÔ.ý¾QTÃ2È*=ÛTO-BÇèK<SÆæ:T1*ø±62.ƯÓÐÇÃãÒÈÓ
|
||||
ÙíýÙÀèJ?ð½½Û=Ó°TÈ<ZÚTã·ÅØZßÒìSòTôÌB¯AÚåÏÚB*/EÞTJB1î¿´°åX3Vô*,*º²H/¾ÂãXE=Ͼà¿
|
||||
ÙÞä²2VÞü*;ÌÊß>Þ+=*ôÓ-Ï0QÌïÀ2ÆD.18æ1*¶ð,å=ÏìJ꯶L,1ÜîJ:Xö,Z½+;AFî¾?6*ô<±ÛÈ/.¾
|
||||
ÎÁ:¾ÕÔT<ëûÖè=Ó<øÑÛR?òU.ùMì4ËFҰܵý<?êJÃÌN/ó,ûÛT?Tµ¸¿,À·*GC3¹ëKÔÍ0¶ôÂ,DÕØ.¹Sà
|
||||
W÷KÀ2*6ÂX·ôê9:àÇCÊ,FZ,ÞܸÎFïÌ2Þ¿=I1*ÌæK,Ç2,:òÌI;¿=ECD¶ß5¾û/ÂÚî¾-ÔJ*L=3O¹=52J
|
||||
Ôë2ëVWÓNAù¯ÓÁTáTL¼Õ5ÓÐãò¯14Áø¯<ÕîE¹ôÙAâÚNá0ÁѵÎÝÕT³2³¾Z8*»µî7¯Úè*ß8K>Î/ÆÜ¿õL
|
||||
À2*¿:º:Þ+LFCÁS¾-P:ê;Ê8>4Ú=,<>5ô=Ó¸ï,3NL3Þ33FÇÂUÜ:ê×I¾Æ58¶Þ4.*ÎÍå°;>+ÂÅÎWVÓÊÒ
|
||||
øüÝÓR7,2òÐ8ÒÈB9¯B9Ö8=¿/¯9Üù,æ>ÒS»1ÍòÖüJXÞøEÏ3JR1ZÇPÄ¿úJ-.-Ù±.Ò¾¶ôÁ.;*:ßòGVRÂ
|
||||
¶±0Ï*1Ê*ÖÕ8Ò2F¶Ä5IJå1À·ÐTAò:ÇNÚ<¿M>¶ß5ÀGù-2·ß+1V¿*.áóV@à5Nµ1AØZQÓ°ÅÞù1ÖøIVÃú
|
||||
ñ¼òJÓ.æC¿*<éÒ¯<1ãêµíâJ¯Õ+³>½EàÒà+T¾DÛÙÓLEÉÆSSï/¶ÙØñ·¸ëêW7ÂÚ³GR?W.Ì÷ìêKGJÂU´¶
|
||||
Þ.¾»óJÒß˱Fö+°û·À5>,ÚYæßûNÊE*ôÕNîJ<Ä0XöÀZåü*LX¶Þ+UB*âÍÒº?52*ùðëNWWÓÖÍðçÓÍÝ8»
|
||||
>>TQÜEµI1TO4×6.J¹;ú8²ðÙEOÖ:4µôÐî<ôæEÎVFJÕDFºÙTNºÀÂÓTXé,íÒ@>æ¿Ûóûß+à-ÓÀÍß:Z¿û
|
||||
/LÚ°Á-P*êU12¹W5ìFá¿9Î52èGæ3ϳßÃ5ÚÍ·ÁRúE<¶:3ÕºKÖ±½*;AFî¾?:*ôÀK6¼>50*Ã.Ê4ÞÔÓT
|
||||
ìP´ìÚ½=½ÜFAÅÌG¹òæëFRÓO:JòVô+ÆN7<øÂáGÆòIÌNß+üëVÓNÝAå**XÛU?*î¸Fø´.ôÕTÄG³Ð59+¾:
|
||||
OÛÙ9?A:êPÓR·èÊ9+¾ÎXüMÓèõƾõÝTíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýT9ØßùÝè¼V?/**¾+D¾Pç8*JÈ
|
||||
Rö4T/×±9ìÐÄêà+ÎýFÓðêÅEÞüÃ,/ô:¹ôè:F28R/îSò°õÂ3¹ß»FõR5@ÊèËG*³Å¿´P4RÂ@²±VWUÓú³°
|
||||
¾Ö½¼8·,áÌû+æM,Ó*HêJòNTRAæÍÁTäùôYÐÖ-¾òÌÉðÔú²ßÁ×T1*Þ-QÓÓ±ÓÅÑ+ÞÌÛÎVÖÁ.T+ºäO¯Áßç
|
||||
EæYÔîE¹ôÙAZ9F:7ºÅ@ºCÓT/ZËä3¼G<¾Ì9.=BÎ4ÞKÑÎPóGºGÔÁ/ÏTιÓÈ?:ÌûøÅÑTüJîðº+öäìØºÌ
|
||||
:BîJ+Ú07ãíÄBÃG>²ôÙµ°ÎÄ3V7ÂÚ³»FÓð-I¾ö/æ8ôA.À¸¿+14ÞOWà8»-ÈêµáP3@Âà»Tãøüî*¯BJEá
|
||||
èÌTóYºÞXU/*Ú*¾>ÝîßÒè-ÙèõÝTíýTÝýÓôßT+Tý**ì´æÈT/üý-*öüUÓ/5ïCX?
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 151 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+¾èC0F*¿½**µEò6-XW¾³ñéÕÓõÝTë<8íýTÙZ;ÜýÓ´ßLºýUëÀÃöüÕØ/5ïíXóMJÓ?Ôèá
|
||||
î¾õÝTíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýT9ØßÑTÓÍ,*5R?öýÓ*ÞÓ?OØTíÄ,ÜýT»ýUûüÕøûYóùÝèõ½Óíý
|
||||
TÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕ
|
||||
øûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèÔÛTJó/+JHÓøÌ>îûÕèùÝèõ½ÓíýTAÒT¾è5,¾ºT/ü½K*ÆQÓÜ=/
|
||||
ºýÓøüÕøûYó-U?ÜV>HQ¹ôæÇ4*öÌG¹Fß=¸·IROÑÓ4æ6X4,ÆXÓÄ*¾ä´ÖÈWÒÈ»Y9ÝüÛ**ßYý»À++ðX²S
|
||||
ÈÓ<¹âGØ-ÉÜú¶ïç-*7YHûÔÞñÖ¸XÕȹ1ͼ»ýõÝIAâÁY+*ÚµìÝ·ý8ÌÛùòR/RÄ=;²¯YQöAò¸V²ß/¾ðÇG
|
||||
¶ñÝ¿1YXÚõëLEô²+¾YÙ¼ëDôìäA.H3RåïT÷òßÁý¼ìܽûÒÜûøU**1ÍFôè×±åô7ÎQÄT*·>3ÖVÄÉ5Z8ú/
|
||||
Ö6Z*Ã9ê¿MÅ7¹ôëßÉ5Íö¿úµëÓOÕXÛD´Rü0ºá.ô*H*ü»óFX?åûØôé×ãñíÍôíͽ/*îõå9I7ØóêÕçóðé
|
||||
ÑT?ÑçÅͳ1T=AÞÚö5ñäÅ9Ë1ô޵Ѵ˸óíâÇÁï÷,¾51XE²åÑUÑ0ÔÍîâHÞ=+óFX?í6ÙóåÏÝéåYøñÝ.*ö
|
||||
ûïµ±ìúD´ãZøÓ±Q:+¼WÏL¯YåXûDÃåí¼T*îóËÕüʸôé¯SÏLé8ê¿UP»¸ñåÝÅA1âñ/*Y¼úµéÇAÍP7:Iß
|
||||
Çþå»óFX?ýùøñáÌÓÙÕYòíÝ-*¶ûøç1ÕúöñéòµîíSÓÈÁèÒ3ïéÒCÁ@ëñQä4XÜõãÉSÝPÚDz,óÞ8¶YèË5
|
||||
±äWºàT7,ÞÞ¯IXÚCóÜQ¶°9î;øóIÕ8æôôTGëèÈ/U´X¼»¾IÅø4·B°°¯ÅÝÜúîÆ/UXËæäÛGÓTßTÓTëÃG¶
|
||||
NÐÑÍ5ZFü÷ß=Aì6ùì:Á-¹î°OIüùÖ´îß¿öÂ+ÞÁýÄÛöíáÐãHßÇâÞ=µóFX?½T¸ïÜÄ»¹ýXæÍ½.*4*¾+Hú
|
||||
ýÐ+ð¿òUD2F:ñWÝù*I½Hûõì¹Eì55ɼøÔôÒTã¼ûø³óî2/1Yý;*JÌO4>çC8J+æÕ9ØÇìQTÞàÁýë¶²2V
|
||||
7°¶Z1Üòñß¹3åôûE.½0*âEïèõH¾À1Qúð-úµíÖ3íGú·ç=F·8H¸@:1,>ê¶çDõä=9óFX?½3ØîÚÁ³Yí8Þ
|
||||
Ý,*/*H¸ÛK.Hè¾¹***ÌÀ¾Á1Ýû¸ëÁñ4@ÎYPÔTHWزEK9ÔÉBëäÌü7*öÏJ*¹ýù-SøÈH*øÞÏ.¼á,ÜGùëÂ
|
||||
ó80»±Æß¿GöÈÌ+Ý7ê¸õìîùC*BèÄM±½1,òEïý1IÞ¹õ´GöWÞÌUH·ÎéîßVS*GÜûµâQWñêºðÏÌáÓð4G1Ä
|
||||
U¶´ñæ¿øU***à*úT<èIíS*âUÕ8***èÝRÎ*æ?56+62β28Úø,Å캴߶-¹ÔB×T׸óè³Vî*å9ÇÃÎçD2J
|
||||
ÖÔ3¹Kçíúºâ,<û÷L/æBâîÞ8FLä¼ëü³»¹õ¹*îÇ¿A0ݹµàÐǯâ×Í>¾ÔPÛ¹õäÕ93+í´ûÕWÝÊ;HßÇéî;³
|
||||
ºÜ¾¾5åï.CÚÐXG±D.ÞÀ5,T:Èø8Õ4/òF¶.:/IÜú?***¯*ÜE¿ðÀø+QØÂ>YHDÞ<-AFK×J3J:¾FÎúê5â
|
||||
öîß¿>Öñ¾ÇÓ4.6*¶*8ÅPM829.:ß;ÂÛ2TíXSå3T.*FÖ-ýÅ×íØ¼QåÔ7´Ý,*µ7C¼åÞÁíP6³IYHØö5/Þç
|
||||
SIÍ7C»ðQÂÞ³åHëµWÝÊýGßÇéî;2´Ý¾¾5åïïDARÜú9¶ÝO÷ðÅ.>7óFX?½åCZÙ¾Sùôû6Ë+¾B*±Wßµ.ÏÐ
|
||||
<*õæ*éWòF°¯,Q.:2¾úÎèúè5ÚµíÒ+Ù/ê÷ÛâTãB°âæì+¶¾ïµ*J:ê8.îØ=6I8ÞÙ@Ö9×Þ/T*¹K0AÌéCõ
|
||||
OÙµ²êÖ±Ý,*íº¸¼çÈÙåP6ýÁÝÛÖû5/Îù7Á1GDüELJÖ¯Å8µ:ÊéGßÇéî;2TI¶¾=å+ÜŶ.,è=-Q.>9óFX
|
||||
?Þ@ÆßüÌäËùCU-*¯*¶>Ëì5ÒÜæ*Á²ËWã¯,.JµìÓ*¿*>ÙHAÕÜÞ¶ñHûµR-ZÉVÓVäÊCÓ?¶¾ëÅPMà*7.:L
|
||||
áÊÕÇSº8Û¾îÜÛR+Ò/CFÖ-ÝÄ·í׺KÝÄû6*¯à+*¼G´àý¯Ù´êýÇ,Jäå=EÝüæ2ö³æºåôãºë3ÌÚ09+Mð¿
|
||||
-Ú·Ì;8¿î·ÂÞ7+ãMGÅU/Â/°JÝЯåÜûT*G¾êÔÓ,CCù=±áÕóâÑ+ìJêçW+ZÌÛ*3Ô0Þ¶¾<ÎFE¯Ý28·+ìÌ
|
||||
7Ù²ÝK7JV°Ó°SÑPûó*F8?ÜÙêÏó³ÔHPìÔÙ+ê¼WÅÑEÞ½¿4îUÆß¿G¾Z¯Ó¸õñèÔYÙ¼-*8¸ðûýýéÌGÚ<üÝ
|
||||
D±äúÍ>*ÀÔê÷»ëQÂ*YÙXû÷ìÖT2ô.QXÁ1åú*ÏðèÀµH·ÌL8ÊûÅCèÉ93RHè·ÚTD5²ß¶ýļB¾8**+J6àÄ
|
||||
»×³ÐÎÞÄæ*ÅûÌÁ1ÕôÖ¿ëHWÖ1Þ¶¾ÈÐ*¹Ã-èÌ¿+Ý8ûAXßαOÔT8AXÚÔJ9ÄùA¾¼Ô1BÏ1,J:8¹JêÖCE3ô
|
||||
æ/²²Þ¶1ÁX?âîÞ8ú?å½ëðûʸóU*îÈYÙYÛØ²áì?¯ãÃ?M1ýL+îýèÄÑͽÃ.Êø±Ü´ý¸¼ó.QÌÁ1ñVM+¿4¼
|
||||
ZݶÌL8ÃëµÉ+>ZÝ;κÒñ¶ÓîÑçÄõ,¼ÅFÇWÞKÇ>*ßÞ¹7Íü>×T÷áÅ9UTG÷íÞ׿MÒ:8üE·³OK01ôJG¿HF
|
||||
µYååRãTÕHͺ:¾ùìÍöýûûáá¼Î*Øø½èÅ÷5½Ä.ø×íÚÁK¹¸À=çÁå×/ÚÔÌáÓðÄR±8VBòé×S´êÕÍ***¶+*
|
||||
µJ:=..*ççÃ-±XëR°ÓðÒQÍÔÒCòàÁã±éÕZúL*XôÃéÔÛ¸ðáÎGULÑQѼ;?HذݽGÑ´ëØÒPû.**ï-*JÒ3
|
||||
ýY7R/¾ÒS±ìFý;;öèÔUÁHúÕ°çÞæ3Ìê-º<ÎÌéUãÆOMPê·óêé**ݻٳãÈOQÄ>×T·ðáÅM5Éø±âÐ÷òÚPæ
|
||||
»ýÌû÷±è¯ÏÏïáÇÝÖT¯ú·¾ÄÆ´û6*Þý-*:ÔýIæ¾5?:é×I4,½7ùóçÅ9½¼68Û×軾å»óFX?ý@?óæÈCɼW
|
||||
²éÜ-T·ìÝ¿é0G¸³Ó,UìÚTãáÙµÝõ<ãÒQÑåηQ/*üE¹ðÚ³¹äÒA×µIü¿GîµQM½¼F÷ñÞè²-Þ¯åÔëØñåÐÏ
|
||||
ÀUQ¶,ÜW-º<ÎÌáÓ,¶9:1˼W¹XåÇ4¾ÆßÛÚÑT?1íݽý<1?Ë6TQäKêÙøöÏ×@<CÞ*ÞIÖ-ÅUçïæÎE¹0WRÙ
|
||||
ÌVèÍËÛôÔû¸³äÉìîâLÞñܸ8ÕÈZÝÖÆ-TåôFSÚ¾åôëÙõæV5GMW55ÍTÓ.¹ùÏNTöÙHTÒNÇ4*Ò4?Tøº=FÚ
|
||||
*êI×-ݶæRáÐQÉ@7PQ5*ØD´êÖIU»Ä=é*Í.Òñ¸Ó6ùØàêÂÞêÂ*BËR/Ûô³ûºXÓ<êïÅ=ãU**ýÏGÎØßêâÃ
|
||||
¯åQî<QJëþå¯óFY?ÜÜúóà¹ïÜÛ3*RÚ¹5ÝX¼»°ÓTWËÓ*ìNóDÐð:QÔ,HµÓñºÓ>ùóæÃñÔ»A*JÚÃMÍ8Ó>
|
||||
¹ôîéáåIßRCüöéÁÝÎÒFâÇÓ¾åSóÚYÓÝÒ+í½ÓÜýÓ¼ýUûüÕøûYóùÝèQ¹Ó*ñ+*¾ËÝ3*8NTWÓ4?ÈÒRÎIý=
|
||||
*ÖÌFµäºÏT4=äËJÁ,ûÎ**»ìºçÐãØT5S<OÊíÇý5+6PÈ<MÔÓèÄ7IÀ6·ðÁ,*NǰâÅ9éTWàÂ3?¼S*:5C0
|
||||
*ÒÓüX+*ÔHB**
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 302 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/configuration_access.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
272
doc/configuration_network.eps
Normal file
@@ -0,0 +1,272 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 342 453
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sun Sep 21 21:22:29 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 367]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 6493 string uc
|
||||
î½*¾î1:-*¾*Ñ-õ0*ÞQK/,ÞÝÑT*ÞñÎ,öïì3ðZÀÉ8*1<·ÈáµÇâS̼*úÉâS̼¾ú+FQ?¾9ÇT¿º*BQ?¾-
|
||||
×TKÌS:*0ºýTöü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ½¼¾%%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
î½¼**ûÙ>*<òÌû@KÍÌè6JÑÎÈìQ¼Cîׯù<*VXßÖåYúÓÐïG,9öé@/*GE¹ýüú÷íö¿ñ×,ÈG´éX/*ú5¼½û
|
||||
ùÕæTåX?D:ÃïEÙòùżO<JòO*²IUß×ñùñüøØ¸´L,@ÕZêñ-Ð*ýUÒÈáö7öüâÕÜ,*/¸33DS¾Ü**,ÇKÞ±E
|
||||
æ±5¾·õõYÙ³0í×15Æ××ÁÐÞòEÒÈáö;ëüùåL»/*Úñã;ÔØNè×*Þî3+Õñ×7²Ø/Þìû¯M㸽1ĽßõíýôÃTÇ
|
||||
æVY**AHÜûúô×1Iï*ãÈ?ñüÞÉH-*åDZڷ¿2¿áC**WØÁÂ=å¹Fæ±6¾°ùµ9DóËïÚO9¯ËüC**é÷Ð*ÈGݽý
|
||||
ÂÃTLÚè-*î»YµÅYH¹òåç·è¹YÂ*TûÛýîÏå*Þ³èÒS3>DHRÄ-2G°,+ìïÞO0ÎÞößQá-ëZ-0¼½ÑOY.å³øö
|
||||
ñòéé½YHºõêGùòåËE½H¯4ÞÚùù¹ÜATóâöûëêäßíÅ9ܸºÜF¶ê³YV×ÇíÍ?æ±**B-*ú?XËúÞÂ÷Ð3:C@îJ
|
||||
/²ìðöûñ½ý84À*ÒúýîJûýý²/X½Jæ8ïí¼öç3Ê,2ÐWY¹+äóܽ½ûQÀîÔ6ðE*êÛIWÍQñJ9½GÛ¸÷ûñݽíé
|
||||
Éåüº·ðÕÃPÊ,Ô¹ýüùÀT+ö5Aô»¹M19ýüøì;·ïâµé»¯,´½½ÎHÍ+*Ö6*î;òLÒæÚ<êä,4/ÚXýé÷SD³9Ð
|
||||
¹SîH»øýIÆL;*ÎÉ?¶ë+úý½JÛ¶ýíøò.T+JâáXÎòý½Á.WÏSÁÉBÆìD8>*Èì9BPÐ/FÁH*Þ*Þ?øöàãÍY½
|
||||
ÝÝüú8½ûõâÉ9Yʰà>î°ùõµFXýüÁ¿æ,*½TB¶ñííéÅÍåUõGú¶ßM9Î*óí½ñG**È-*Èë7-:GGT4R>*ç-O
|
||||
GàÊ<+0ÛWݼÝ7òäËýýµÔ9XÅ,öý¾²üý½±éöν>J¶Þ2J6*IÕÇ>·üïãÜLÃö;Ú3ó½ì÷8Ú¾G¼íýüD+3º¼2
|
||||
,ú½Â4ôBüöWÅ5Òüý4CàÂBJÞ¿è½»ñPõúñÁâ1VÏÀ¯ðïÂF<3*NÙý´ÇHÍÎQÏÈ**î2»ÒêïÞÅÉÅIÔÂë½1üù
|
||||
¶×6ÍϾ**î>/.**=/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×RJøõIñ½²*Jð*¾ÀMLW̯8É,4
|
||||
/êüýÄ.Ì-¶ëý¯LúÝöNÊøýý¼ýï950*¾ä*æ¶ÙËL+P,8¾¾Ñ±óÙöZų=ºÂ4á-Pñ½ûÎ8Ú*ìýÝÉÒK¯,Ô4üÌ
|
||||
ÉL6ÞìEÒ¾9³üQ7¯¶¿PôýýùàCÍ>-X7ôIüµã4?6³,Aâ;3*Þâûó°Ò÷.»B**öíÕ1*Þ;øöÌá±ñôÜÜûùì¼»
|
||||
õÚ±9íCï?46½ÛN¿2+¶IR/*ÚK+ìÛ½½Uóéñº**âÏõîAè@ìÄXU²×RÞôõ½×ðC**Æ+*ܯHMëîû÷ÏïVJϾç
|
||||
ýIçâ51¾ûüÕýÓ°÷06D0B-Jø»Ó5/¶¾,/,àíü:RÈYTãÖ*öÝüZXÞ²üYYæ¿5JôýSíòBPÞ:ù´âY²ß?TÖ¸ý
|
||||
ñÕDYÎ3õìý½Cã,/EòñðçAÔ¯ÖîLHXÆM<*ZËùÅÃÖ¾=æá¼±IÝü²3æ¼ÁHÜ;¶è×ÕÉIÍÜÍA½»´èÞEHºÂ,1¸
|
||||
>=4*ÌÏT>¼úÊ1*Þü/ý»ù/TKëÞÁýáÖRJøõY<»Á*ί*¾Ù;ÑÏLUÈB÷C5R>JàýíU·/÷MÕêýøÂNHî˯¾C*
|
||||
Ø9Sâ57¶À,DÝXJ¾*74Z20BµB=ZZýµPòÞ/îäâýÇI6=JZï½EC¶Ã4ôðý÷À4FÎÞºýïù¸*4Nû½ÐÕÔï,CXÆ
|
||||
M<*¾ÄùÝW¶ð3ø:òîãÅ÷*òÅæáýû@ëDøõîá¹öíÏÙ@ûùIÀµRî.GíϾJý¼NîT4¶PúöW·õìð+*Þ·Ú¿åHÜæ
|
||||
JÏñ0XøÙÀÃ,ô¼ýÈ9Í+¾YÚ¶;O=3AXÂçP/øàRZJϾEÃíGSÉ;¹äóÕý=VùÝXL99êäBÞ6*O½Aö²*ëýÍí34
|
||||
Þèô/Ìòø4?úýýÚàÄõIXÓ-A¾OWüYÝSÊ*YøÌ·ßúýIÛL/Ùù½íLß/VÔäÆZýýHòJCÒüýàüýÕòâDXâá/·N,
|
||||
*B¸ýÑ.MÜK9ÞHX.ÜÝL9A1ú²éåÙ¹ýìÛµ½ìø²îð.ÜK¿=Ó¸Å,ðºù;¿USÞ@å͵?»øÇ1*JéÛ7H¹µò+.êG¸
|
||||
íàí,5ÖRÞÊõYÈïC*æÂ3Ï3¯@¯*¾KÑÓ2Ͼ¾-?î;óTå½½»ïö¶¯ùõA±àÃï¿ë6-Ê+¶×óõüÅ92MçàÜå=>Î<
|
||||
/ÑÝíûÛMÒîýýýÕíÙÜJ÷8Ú*ÈåIÜKL-16ô½Ç¿éýíö0?ZýûÑIç4XÞøùù½ý¸ÖP1È¿3ÝÕêD½Ý3YæàúÚ:Å
|
||||
N**»õYSîá÷Ë-òKëÝÁ½ÄHÜV¶éÖÍYåÜÛ±ÝüF´éßÉûÉ3/8Né;4îÇíÝÙ°ìFâ-*îý2,íG¹öò*ºúõæÃ1YR
|
||||
éÝL+ØÚIïCÒE-¾07ØEâZ+¾L+AÄ0Á0YÖ¾ùÙ?Ç:KÅL?òØ2;ØÓZà¾*Î;¾5-îKë/úíøÎÂ3SALãÌÎ*DÚÃ
|
||||
ÆÎOÕT¯îYN×5ÛRAZÇ.OðÔÌJá+øô6;JAR;Øâ,3¸³î¶¿8<>RÏTûX>ÁDEÒ4@K×̺á++F;Å>,JEäíYXÞÄ
|
||||
åæ=Ôø2»V@îÚ³I¯Sá7º@¼·Ï*ZIX»Á,6иóÔÂ5íö,*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2ï?*ÖÀRà>º+
|
||||
*Öè/>»4HÙ¿6@JáíÝÍÙÕQ×KKLG2ÓÈñ4Ð<1?ÙIò´+CÜL9+*ÞCøÖPÞÁù¼,RPºöPøÐL¿2VöüT4¶áñåW÷
|
||||
ôWï/*¶ºÏÂü8¼º¸öʼ¸ÑÏ8WMö*/2öü°ÍBè6*7ò´î3*Þ¯¿,7Dôê0ÐÖ*ÂNÆÎRøÐÁÀ¸J*+Èò4<<1¼¶»
|
||||
½Ìï,PVÝ·ÌH¼2¶îàÉMÍXÛYý¼üøðâ1ÛÉC/ÒLïàWãÌûNîÚKµÇÜ+ÃVú±äØ89LØìCº¾,Æ´½ø9-ôV*ZßûI
|
||||
1UQîßFæáó*1Hú¶ñä͹òéÝÉíÜÛ̸CѾLòëÙ?éÔí6Ì1F149D°æÚ¿¼Bó41î34JèûÍQ.ÖY+¾ÝôíýYغ,
|
||||
Yúä³ø2T°Ì+¾öCA±4æÀ×±Ù<WøË繿ýêGáÃ4>TÆéC¹ý.HK+Ó2º½ò>û³T*¶¾ÁùõACÊÚ¼Q¾ñF»RGWË8+
|
||||
¾æTA³4ÞèÓW·ôúÈïúÝ»ôâ¿=åìHöõè.BMìûù±8ÇYÁ,¾5ÂT»ýü<¹¯-öX/å¯øÎ¼ñÜG,*CÕYè>¾ÎKÙÐV·
|
||||
TÛñû4áíÝI¹âÄßéÔ.*Ø5÷óÆ6ô6ÍÕ³óôóÙO1áãÉWC´FAîß»55=íÝM+ÞEéÊO6E¸÷ôW=ÂïïáÔ.5ÌÊ3ÚH
|
||||
ºò68OèAYßUµI,¾µÓS¯CZãÔÃ=ôòë=ÓBIßÀW÷óÙW°*îêÖS¹ÔÊÖZݾռ.*ýó5ÖZáÊOÙ0Öã@Hé:,ïéõÒ
|
||||
4ZýÖ*îûÕèùÝèõ½ÓíýTÝýÓ¼ýUûüÕ¸?½¾¿õÇøáQø*Z½Në5úÃÒÈÐÂ/AùüéÑ1*¼¸UU>IÆTKÞݶÉý½+*
|
||||
ÎéÍEÅûÉíPT?áöè?UG**0îêñêµÎT¸Ý·ïäéøéMÓÀ6Y÷HHù4**¸ëK84+ZÔëãÃùÝ+Uß÷ÚÉíÌÓÅT/YÃ@»
|
||||
ùö?**òØÁF>,BUã¹õÜÀTßûØ·AµÓÅT/W³üÚDø?**ÖØÁF>,JWãYáä½-ÓÀøYÝXXUAÓ4³Hûú4**VëK84+
|
||||
>ÖíÑUáõ½+*¾öUÍü7V=ÓÈWäV¸÷?**ÖØÁF>,R±ÚKÉPÝý*¾*æ¶2Î>:.*¼I¿¾±1¶Ñ-14*çÉ0ËÙ×PT?ÑF
|
||||
÷ñï1*¾J=BöL,в*ZóP,:ä9-6Ò¶X.*J@¼Îê²µüVüü+*,Þ¿õJ¾Ð¾ç¾=2¶ò*îüÏ8FR*>ý·±ëêDSÓV°â
|
||||
Ë¿I**èAÀÉ53ÆÐ+¾ÓE3¾9²ð¼»¶ä»îÞáãäê·¹úô-*2¾±É,+Ú»ë¼6.¿éH*1*ÞÈÞôO»°í=ýSÜèÀ/ÕÊEù
|
||||
*ô¯2G:A·7?FB*ÃÝÛ±ä×áóÐTÏáÊ»I**Űñ*ÛÜ»18M0R¶Ï*ÜBÌ,HÊøôËÊJ¶:¸îJ+84*Ö¸=+ðàíS¾éZ
|
||||
î*H±ÐJ¿=æÜ7¾¼6NGó-¼Aù°äêéÑ9*î*ÊáRÈH*øÅVKõYÍÂ0¶øâ8ÀµÐÀºÁXî>²ãÅ5UÃÜ-¶õG»*ÖË>IT
|
||||
¶Z*ØH¹äɱÝéNÓ°Æ7YÔÛ*ÞÝ,ÏWÆCëØùƳÒ--T+ú͹ӷ8ÏWù+2ººîJ+88*ê¸=+¸=Ư¶³é¼708¾ÐXÌA
|
||||
áàNÙ+Þ´¶¿Ñ¼ÎûZUäúúúS21¾ûQ6Þ+ZÅ:ÊT,N97îCAÃ70QYK½ÓÀíê×ñÜ:º:ÂJ,÷ºã@¶ü·äȯµÑTÏàÇ
|
||||
YA*öWíXÅ²Ïøó-Î÷ZJ?*FBâ¿ÒYõ+Ó¶ZÞ¿,F>*æóÆ,î±ÂPäÛ¼708JÀãÕYMÔîØ+ZûD¾Ñ¼Þ.YUÜúº¹ó+
|
||||
*8¾¸óÅÄ+ÎÌ+ÎG627îÍSNÁèìÛ8çóÀìèÓñÜZºÞÒ-*´UïÞ+,ÞôåAU¼ÛÍTO:ÍH*:ÌI.3K*CQMZºDÎ4J>
|
||||
2WCJÍçW·Ñ*1/*¸Gá*<ºßòéZî*>FH»Ø¯/Ñ+¾Î¾Ñ¼Þ.YQÔÊÚ¸ñ+*8¾·ñÊC*ZÌÈé׺º³ñä3Úô䳿*X´
|
||||
ÂRäÓѯر1ñ²º*Ë-îëNâÏÀ--ZèÇUÌÚËTã8AÄFø*¾²ò<2ÞGO4ÛåBäÂMÁæÓ*Ì3ËÙÍ-Å8ÛÕÚÃ:²îJ+84
|
||||
*ò¸=+ÈÐíä;W¼708Þ;WÃ5á¸>D*24¶è1Ê:´ãÈÃMIH***Â+¶¾*ÄÙ8OK+8¼ú¶U4ĽÀ²Ú-åîïöçÉ<R:Ì
|
||||
RA9J*áõÀÞ¹ÔÎ0*Ï5康ôÄT?öº*Jø66.îN9:´¹ã¾3ÍßñT*IFSÀ,CH½XK8B5D¶Î*1/*¸ÛÇ*Ëп¾8@I
|
||||
Ý0-1*B;.38/ü6*./Fó-PöØðãåÙ5½6*:úó3Fê*³HF±ãÖùóÑT+åU**æ³1·R.î4YQÔÊÚøîßO¶*A*:>:
|
||||
M+æðßAU¼ËZEÓÈN0G-*FÎÌ>¸:.*¸GÊÀ²Òîú.òMêÈ?5ÅHSOÛÐ*³XÚðâÕ?´ÐTCâÄAÉÜ,*¾X¹ÆÁL*»Cù
|
||||
ðãßËåÝT4»·ãȯ½êOÓLÅCÍÜ,*¾X¹ÆÁL*0ÈÙ±äßÉ=ÍH*ò¸òÉAå¼×ÉTÃ:±X»/**Ûô:1Ã*F?¶çÍÃE½H»
|
||||
*RøðC¹ä7²9Ó4*5Ó,ÔÕ**Îé8ðÎ2Jã,½W¸¶ò÷ÕÈäÅIزîSùRÓZUâÆ?áÜ,*¾X¹ÆÁL*0VÙµéÜ¿õÌH*Òº
|
||||
ûÕ¯-AÙÅT/üõ,*JæÕ»ñÔ»-*¾ÛÍùÜ7¶Aê/ÎÈRÓ¸âùØÌKÜýT»ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼üU?*28,F
|
||||
ç**ûÜ2ìJ*,*Z¾0ÎÕ°îÜ5ÜÁÓ<*8L1,Úç¾áJ*æíó*/µSá÷6ú7U?á:/,RôÏ÷>*<ôZÒQÏÉÛ=Pê/õïÚMW
|
||||
ÖZTµô*ÂG0Ï-L°Ô-U2-:á7FÈ¿îÀ½ÏT¾è/*Â>÷íA¾°1¾GϾâÚè<Ï+ֿ̻æÇÒÎXÎù-ÓÊõëÝN¯õ*æGå8
|
||||
J²<ÛU7>*ôêY=-òV0XSLÝHÞÛ?OØTîý+*Ê>SÎB¾-Þ8KÚÑ.ÆHDÞ±X4E6ÌÜ¿üT/ÝױݻKÛ3+*òñÃéL**
|
||||
H¶TûV0Ä?¸A*ôÎTQ<:ZN9;-¾G-ÙADÞKÑÎPóGºGÔÁ/¯QÎùÃGÇZÚìVK.*V¶?-ÕNÏW?ZGÓðÏE*ÞìèÌåç
|
||||
Û´ôê5îäXÁ0Yü´ÂSêKCù˺=-³º*×-JüNã=U2+*Î8ãJ¶ß9S?åÌ:*ôÜSWRÞ¹ZåXé,ôÐ@·ôæEÎâ¼¹Ñ.²
|
||||
K>ì1TãÖ50¯öÇ?ÂüIÈ¿îÀ1ÐTA9*ÔQê9C¹ß5RÓ1ß,í½ÓÜýÓ¼ýUûüÕØ+TOÞŽ0**¼Â*Ææ3+æÌÓLÖùù½
|
||||
.*ÀIôTÓå²ÓÔö¼ýÃÍ*¾÷õݶ÷Ô2Ë0ÛTVÉÝýVÛX*¾÷õÝ@ó0·ËÔV?HÈݽ¯+,*9*Î+,öõ½>ñ1³Ó2<½ýí,
|
||||
6R7,Æü:MÓè³2ô,3YT-*ÆèL*òêLîP48´,*¶÷+»×T:ZÒèÂTãÈî9öâT3K3Z<Ì2¾ü<È8ZS,*¶ù,ÕTÓKÕ
|
||||
èèëõýWK³Î4÷ÝÝìÇÓ¸?O3BäÌÛD.îJVÞ¿,J*ê/1ï:öá*>ê*Uã¿-JæK2ÞÚMWî5Póä8¾G0**¾È;ùL¿,¹
|
||||
Á/=O,*¾=HÎ÷:6Á1KÕ5GBSÎ*ÖµPÁÞÀMXÞ*,ëâÌ»Ð×ÛKTùS?Çô¼VóÇT3ûçXVÓù?Àû;µê×IRÁ½Î*0*¹
|
||||
H?UÉRÛç/è2F¾VÙ;Ø+ÓʵÜûÉ>ô*æGIE2+ZÍÍMÌZÖÎÒ*ÖIï+ÃBD¾ÀÎ7Úé+4ÂX÷UXÎ*PPàü¸ÇHÛTçã¼
|
||||
VóÎèÖÈÆíóàT»C»ê¿àÎÌÛ:Ç/¹ZÞ¿,B*ê=>Y9,éQ+0.ú¸ôà5RöËG¹×»KÃJÓ¾SåTYØ=Ð4/¶â-K*à*ù±
|
||||
G:2ÀIñ,/Þ¹Áì-÷óÄRWRÓÊÒøüÝÓR7,2òÐ8VÓB9;ÈX+ZãüúJBÏ+14:8ÂÈ91Z8:>ÎT/×±íëßÀZ=æûTÓ
|
||||
VÑ·ÀYÕ:¾óÓ*Zß79ÒTÛç¿CDæûÊ5>*ôÇN´KÛQÕè8¿õ9Zó½Ö4÷åûæ¿Ó4αL0ZÔSêW½8H1ê9>¾,Þ8äS¹
|
||||
*ä+À,8ÒÈAíP4>±Ý»=-ÎT.N+ì¿*üJîðº+öäܾÎPAN¾4î0óÄ1TÓÌò*î88ZÃÞCíû..PÓæä8ø-Ò´ÒTì
|
||||
Q÷òèåYż»²Ú;íËÙÍ-U?ÃV0,æÛ2¼Ý¾ÎXJÞ¿,R*êôÎ1ßFJRJÓÈÑÆ¾ÇôëË<V*Ï0Ç6¹ôØ@.,ö¿9Jú,²
|
||||
1ùUÐßß:+ϳß;9ÒTÛæ¿Æ,/¾û±B.VFïÀS?<H+æSÃ0ÛTµ=EµìÝÇIYÌÉMåÌG¸ò´8V³0+JçYÀ·Ó+1´ó4+
|
||||
LäX0Þï2N;/ÆGùéEÌõ0RëRÓNÝAå**XGÖèù.**4*X»Þà>MàOU0ÆâòØWÓ6¹èNAH,*KȸDUëðBÖËTÏðÒ
|
||||
CI,*KÛº·¯E.JÁÔèõƾõÝTíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýT9ØßùÝèõ½ÓíýTQYô9*õ;òX/¸°Ó*ïë-*
|
||||
FíêÓØ¯²¶ëÙ¿1åG¹ôêÔ¸²æÎIÓT÷æÐY9IXÚ¶îPE²æÍIÓTßåÈEùHHXã¸YÌê÷ÑT?ßV¶:*.2-JÄ/±ÜìTS
|
||||
àÂ3AÄúù?2¾ñõËÎßT?B=LßÉYX6ظôÔ9ÙáÕ×±½Î*ÂûïÛ¿TFJ*ôê-í»ºÝÓÐýýñͼ×ú=8Zé×=ôüü3DVÓ
|
||||
8ÞÒùÜ8Ù³ëÌÏMA̵IR*áÌ»ïÚÁTDJ*ô¼ñ@ÜîT/,¶áöOE´V¸¸ôÂB´áÑ»U¼÷7ÔÈAÜÌÛøâÉDZQêDZ¼Î*Ï
|
||||
Tî´Ï402¾õëàEX?ÍÜD²êÓéååWYµQFF»ý¿ÕõìÎëTã5QHGG¹ôƹùóÙ5AÔÌG¹óÞö¿,Âð2Ùç9**ç³Éö¼U
|
||||
ã3=¼VØúáóíñôè9áQúÝû¯ÔG-ÞèTã×MµûC¹ôÜ9ÙâÌ7E8Í<é5IR*áÌûîØQTOè8ÜîÓøýýùáµV½¹ô<Ûï¶
|
||||
è+¿ùQæZÓ4ÆT0JÏG±8ùQáC±X/2Â/µYÒ4ë»ÙöÀU³4JMùÜX»³çÓTÐöüùQæZÓLé³YH/îÞ5ýÜë·¸òÌßô-
|
||||
/¾ê×QìEÞ+*ÎÝ»=Y¸Ó¶¸éÅ7ÉH9ýZ*ϼÚûì,·ãÓLÄ5µ8FóÄ5QäËG¹éÅãïéQ4ÞÖUPF»ÏÈOQÊöðóÔèÃ;
|
||||
æôöûùÅÝ»¿¿Þõýì7ØWÓÞø>Z¾>Y̼V/ÑQ1ëCñûÔè¿Ö@*â,.7ÔT·Þ*V8Ó,ç-ÓV¸ëÒQY¸Ó.ùý/*ç.ßüT
|
||||
/ÌYI*@ÛT7Z-1@µõ/æçÓè?4÷üUÓ½U/%%%
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+¾èC0º84¶åM¾èÓ/Ö´¼ûØøüUóûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýT¹ZÓ¼4*V
|
||||
JÓÞýÕ,*ÕÔ>çT»E4öüUóûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝ
|
||||
ýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøû
|
||||
YóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½Óíý
|
||||
TÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½Ó7°Ó%
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 151 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+íÄ,*ÓU5Zëúø³óûÕèùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ
|
||||
½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ý
|
||||
UûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝñÓ,TY2*ðSÓõN+í
|
||||
½ÓÜýÓ¼ýUûüÕ¸KÓ,ÒÜ:*âÑTîý5,¾ºTóGSÞùYÓõ½ÓíýTIÖTïãLï·Ø±ÅÌÒ*¾õê×á3HÏÉù¿TDWÓ¾äîÐ:
|
||||
¾òT³.*²´ÁÓêLÓêùøöóí/*2üøí=62:õLÉÐV?×MìÏGÖòãÅ5ÍH*æöðçµ/HÅÓñ¸ÓÚ¹öòéù½ýû·KHú4*Þ
|
||||
»ñüËùõîêÛQÅT¾°F3K5ù¸À½KÕáL5X*>Íê¿Eý7ºöðà»í@دQ5*úØóéÔ¯õ´¼KîǾ¸8ÕÈQ9HúõñôûéQó
|
||||
ëÕÝ,*¶öâ¯ÕÌG¹´í*»°Ò,ÆMǾã°ÚÚ*ñÞY¾ã*-RúÞ8F¸êÖ±í8ÜÚöÂ9â½éXW¸óèÓ¯ÁðµÞEPZ1î+îíUå
|
||||
ïT·ìÕ³ÝÌWHýü²ýüúU**½½üöçÎWå¼ËXAÝHÓTC˼úV¹ÎD·+äÃÝBµ¼úæºZ1¼E³éÒUýPÌF6ÍA*Ú¶îØK¹
|
||||
HÛD³Zû.Qô+H3RåïT÷äÖW½8ûÛ¼üÐIýO*¾í9½EñäÕ¯U0ÑYG¹,3îé4?4ù¸ôèÕSºüôÑ,*YíºóåÒ±Ý8É4
|
||||
?ØôÞ8Ú°èÑE½ü»º·JHY*öðá½Ù̺÷²è*÷3ÌV.ºìUåïT÷ÝÕIIôVÛ»ûLýüG*¾éÕͼ¶ãÅIÝP½-ýÌTÓFÒP
|
||||
Ë2ÝPËC²çH½°Ôîð»YÜÊø³àËN=R1ô¾ùÐìÚB±ìà=Ôè:*08ùïàËSõ»À=ù*9ÏYý·ó¾´µÕèçÔÔVÖ°ñðé-ú
|
||||
·ÒÕÆÁ;=5¹úóã1ÅVÖðè´ìëSÓ4ÔTÓèXê¿M<GûÚ*áïÍ9H·ïäÖõ0CFÖ-AUøïÝų-98ÂQ6*HúµêÃýH@W
|
||||
ô3ÌN0H·UåïT÷ÑÐ5õ³êÙùõÀüúM*Î**6îßYú=7:9NÝпÞ+CíøÛ1ö÷ñç½õÜÙïÜÖÖòѵ³QÓTôéÕYU1ÅR
|
||||
¶öø9+*ðVÐJÇÌï*4¾¼ûÎËò¼Ð,@HúíÄMÁÞè:Á-¹îOI9Üɶ´íÝKö±*JÜ3Õ¼õ+>º¶àAIÞ½ùÄËöìßÍÉHß
|
||||
Çñîϱ+·:JßÄÉÔ·µH÷RåïT÷ÉÎ/åGVùøô*ü?*R*îÏé7LîÏ0Ú-**î>.FºöëÕéHFÕZ+û°°ÓðçÐOÙ3øZÛ
|
||||
Âç´ôòí*¾9/,ÖùÝIÆÐÕò+Î18OîE@îë×íPVõZæEÁ68ê¿Õò6öëÞÔ¹õ0ÝÍ+¾Ï´FDù¹:JÝ3ý½ö+ܹµé¿í
|
||||
,ôÚðÇ-Û09äÈ,æïë½M¼èDåä=9óFX?Õæ·ZÚÀ±EÅ8ÒÝ,**:0ÞÕ<Ïü÷Ì,Jܸó***ÎüÃ,/¾X×Þ2Þ¾*OÁî
|
||||
ÞÓA¶òä±5ÄEÖ±ÃÇÓÈÓUÕXá,1¶üÆV.ËÔ¿*À³ËÖ5ÈüäåM@:çÍAT¾ÄK01ôÞ;°ôéôYéÙ¹Ý-*Í6º¯öÛ¹=@
|
||||
Ë6MÌûN+²³èÛ¹µ¼ûÆ2ö´é½ëøã6ï3ÌÚ09Sáñ/.Ú¶8QÆß?óèCÑK*@Ú:Î,ÏVÒñ¶ÓRJå¿M*SöïãY+**2-
|
||||
îÛ3>AÒ9¶ÐON÷ðÏ+@C¶ß3È/È*,+â+ãåÜJÄ198N¿G1ÊVÓJÞ*¾-î¶²Dð¾öJ*38KêÃÎøôȸÌÎL*Þ¿Gö½
|
||||
ÊûÔ󹸴ëZù?*¶éÆï¹0Hú´àRù÷ðÏÃÝR*ÌÌø÷êÆç=½L.X¹ôç¼éøãúí3ÌÚ09¿Zù/.Ú¶89Õ·¿ðãý¾ùWÈ
|
||||
A½NJçRåïT÷¹Ì+Ù/ÊØµíåæ6*Â+Bé4¼M2??+¶Å0ÖìLå;5=¶L*¿*â1ÓäÕÜÞ»ùP7ÖWÞÌíOÔTÄ;MÄô8¾-
|
||||
6½-*,ßôJ*ÕGßöï*ܳ¿ûÆ/XÎ,Ö5°¶ïÚÌ·YØ»MáÄGù?*öäÑñÉÔÚ»´àöIúëÃëÝR*ÛíBºæÏïÝ;,À7¹ò¶
|
||||
-ßÚì3ÌÚ09¿Îø¿-F·8î»ÂM:ÎHC¶LJ÷RåïT+´¿6ôõ²ìÚÍ×D*2-¾MçòÜJóÃ0BNéêT8=J*¸ñX/2.J×ó·
|
||||
·ó/ÄEõç½ÁD*ÙâTã°äÊSW¿-ê¼²D<0æJ*;DäºËÊàñæ/.õëÃ4JWÆß¿Gö³ÊùÌã5ø³êå*J6=8*îé¯=ü9Ù
|
||||
³áüÍ>*°¼H×÷óÅľYÁä¹´YäéÌîâ³ö2B<9FÞËñ6ï2.ÍM.ì2RHè·ÚTJV:-ø?7¹ôëÕ,æ+â´W?ÆÇ×ICE¼
|
||||
WQH7î0àÌì4*ñê/ÆZ³*Ä->+ã×3ùÃîÆ5îôêÖOù7è*à<U?ÉD³èY1ÞïRïÛã8WY±ó¯ð´Û7Þôé¸FÛ+ü5Ò*
|
||||
ÝÀ68ê+.5UÓ¹IÕ´ûØóE*îÎ=íýýÝôêß?ïýÓC±äýN+:²ãÌíé¼L.öØóèÍõÄÓÀZQ¶ðDº¶ä12?Õ@ºñÇñ>ð
|
||||
Þê½ÊÏÜúƾðÏÌáÓÐ×J5ÄùµòÁ+ò**2*à:´êÉW=//´Â0¶êõFº¶³Å7êôçÀ»*Ä-Ò>/ÖUFÎô66öóæ½ï40G
|
||||
U°Óð¶ïà³/øZÚ½+ò±»¾3»:*,ïÖ-àÄË×ÇZÅXJM-ĹBòTK01ôÞY·üé@íåÒUÝ,*ÕúØûèÓOEôX3UXVC¸ö
|
||||
A4*ýÕ´FûúUNÞÒIñ³ùÕñUQ¶ðFºBåD42Òî-ùÃñ>ðRê¼Ù6J+ù7+ãMGÅU/IË´ºAî¹âÇê,8ÈN+20ÜéöòQ
|
||||
ÇÓÈI¼úÖÐèÇý0Ì7FL/ïîÝÇUU4°¶Z1è3òß·ù¸¼ÄTÔ¸ó÷â-+ÚõüÂýííIHô-/ÎÓýѼÊÝö±NÎÍûäG6ØÑ=
|
||||
FÇHºÌWÞ³óFX?µÂDñÞÀKÝÌ˰á¼û.**¾5*¶-,CKJ*ÆÌXFBñèÄ<U?Q»ø²OËKAHVHÙ¼/áA,î°YÚ´ëÓ=I
|
||||
0ë×<D»Dó5SïÏ?ùûéC³éÔO³èQ**2I**LËöýè¾T*NËDñä÷93¿Õ´ÛDòß½?É0ÄÌîâHÞ=+óÚÜTÄVD°àÌU
|
||||
åÜ0*öëÙWUÔV¸°NÇÓÈ=I¼FØÖÒIM@ËQå³ÀìùõêÍIÑ8577IÌúÃÓ4áÍ-²Â²éå**üI**¯ûý¿0ÚR+×ÌûÏ:
|
||||
öéÖYͼúöñáîæËÓì-ºìUåïT÷µSSÅÔÊ×òéLÙôGÎÈñü7Ú´æÏUU?ÖðäÓTHÜ»ù»ASP»D»0˹T*îÝ×=åWÙ
|
||||
±P»Ç»ùï9ê+½¹DøñáÇI1ÔPE*8¹´ëÔG½@7?Ú¸À=îëDÞ=+óFX?¾ù*·æòéØñ¸ÌÒ*Â6ìãGÓT·öüûùA·Rç
|
||||
âθ°8àÜÓÅ9˳;Ç+0*ü¿G¶ÚÈ8Å0Û×±æÀØóâÐüêê³µëÕU±Üò0Q@,HõÓñ¶Ó.ùÃÃFθ´åÇà/º´íÜ»ÅäØ
|
||||
æCèØÖöÒTOÖÙ9OÐÀÝóÏLOÈÒ*JÓRÏÐåEßß/ÞüÇGöÃÁÄD@»Ø²çZ¸Ø*ÎÓ¯áÄû×è±F×0öNJGÕUãÖÕ?äP.
|
||||
äP.¾çÂTæ³YéåñT?ß8½FSÜ,*ö9ë+Ó7äPX6¹¼,A·,èX.º8Uå÷TïóãYAÜ5õëË*¾àÛÙöóðé=UÓèèV/îP
|
||||
TÕ;?1·°?î·UGåUO×YÅXFµë¹+*àWFøòRO×±1ÝH¼ü3ÄÈïÅÝHú/OãKÌV/ºÌTåûTûO7öüUóûYóùÝèõ½Ó
|
||||
íýTÝýÓ¼ØU/B9**êúË*îJÐèTÓRÏNÃ,û÷I+¾óâ·±ä5ÓÐB¯ì.D>æ1/*æñäÉ@WÔÓØÆ<SàúÌúÝ2ÞZÐ>C°
|
||||
WÓ´êö;âÆ=I>*JÈ>M¼úÖÔè<PÊRïÉ,*ׯ¯*JWóõ4*Zó¿+*
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 302 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/configuration_network.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
269
doc/configuration_session.eps
Normal file
@@ -0,0 +1,269 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 342 453
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sun Sep 21 21:22:12 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 367]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 6493 string uc
|
||||
î½*¾î1:-*¾*Ñ-õ0*ÞQK/,ÞÝÑT*ÞñÎ,öïì3ðZÀÉ8*1<·ÈáµÇâS̼*úÉâS̼¾ú+FQ?¾9ÇT¿º*BQ?¾-
|
||||
×TKÌS:*0ºýTöü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ½¼¾%%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
î½¼**ûÙ>*<òÌû@KÍÌè6JÑÎÈìQ¼Cîׯù<*VXßÖåYúÓÐïG,9öé@/*GE¹ýüú÷íö¿ñ×,ÈG´éX/*ú5¼½û
|
||||
ùÕæTåX?D:ÃïEÙòùżO<JòO*²IUß×ñùñüøØ¸´L,@ÕZêñ-Ð*ýUÒÈáö7öüâÕÜ,*/¸33DS¾Ü**,ÇKÞ±E
|
||||
æ±5¾·õõYÙ³0í×15Æ××ÁÐÞòEÒÈáö;ëüùåL»/*Úñã;ÔØNè×*Þî3+Õñ×7²Ø/Þìû¯M㸽1ĽßõíýôÃTÇ
|
||||
æVY**AHÜûúô×1Iï*ãÈ?ñüÞÉH-*åDZڷ¿2¿áC**WØÁÂ=å¹Fæ±6¾°ùµ9DóËïÚO9¯ËüC**é÷Ð*ÈGݽý
|
||||
ÂÃTLÚè-*î»YµÅYH¹òåç·è¹YÂ*TûÛýîÏå*Þ³èÒS3>DHRÄ-2G°,+ìïÞO0ÎÞößQá-ëZ-0¼½ÑOY.å³øö
|
||||
ñòéé½YHºõêGùòåËE½H¯4ÞÚùù¹ÜATóâöûëêäßíÅ9ܸºÜF¶ê³YV×ÇíÍ?æ±**B-*ú?XËúÞÂ÷Ð3:C@îJ
|
||||
/²ìðöûñ½ý84À*ÒúýîJûýý²/X½Jæ8ïí¼öç3Ê,2ÐWY¹+äóܽ½ûQÀîÔ6ðE*êÛIWÍQñJ9½GÛ¸÷ûñݽíé
|
||||
Éåüº·ðÕÃPÊ,Ô¹ýüùÀT+ö5Aô»¹M19ýüøì;·ïâµé»¯,´½½ÎHÍ+*Ö6*î;òLÒæÚ<êä,4/ÚXýé÷SD³9Ð
|
||||
¹SîH»øýIÆL;*ÎÉ?¶ë+úý½JÛ¶ýíøò.T+JâáXÎòý½Á.WÏSÁÉBÆìD8>*Èì9BPÐ/FÁH*Þ*Þ?øöàãÍY½
|
||||
ÝÝüú8½ûõâÉ9Yʰà>î°ùõµFXýüÁ¿æ,*½TB¶ñííéÅÍåUõGú¶ßM9Î*óí½ñG**È-*Èë7-:GGT4R>*ç-O
|
||||
GàÊ<+0ÛWݼÝ7òäËýýµÔ9XÅ,öý¾²üý½±éöν>J¶Þ2J6*IÕÇ>·üïãÜLÃö;Ú3ó½ì÷8Ú¾G¼íýüD+3º¼2
|
||||
,ú½Â4ôBüöWÅ5Òüý4CàÂBJÞ¿è½»ñPõúñÁâ1VÏÀ¯ðïÂF<3*NÙý´ÇHÍÎQÏÈ**î2»ÒêïÞÅÉÅIÔÂë½1üù
|
||||
¶×6ÍϾ**î>/.**=/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×RJøõIñ½²*Jð*¾ÀMLW̯8É,4
|
||||
/êüýÄ.Ì-¶ëý¯LúÝöNÊøýý¼ýï950*¾ä*æ¶ÙËL+P,8¾¾Ñ±óÙöZų=ºÂ4á-Pñ½ûÎ8Ú*ìýÝÉÒK¯,Ô4üÌ
|
||||
ÉL6ÞìEÒ¾9³üQ7¯¶¿PôýýùàCÍ>-X7ôIüµã4?6³,Aâ;3*Þâûó°Ò÷.»B**öíÕ1*Þ;øöÌá±ñôÜÜûùì¼»
|
||||
õÚ±9íCï?46½ÛN¿2+¶IR/*ÚK+ìÛ½½Uóéñº**âÏõîAè@ìÄXU²×RÞôõ½×ðC**Æ+*ܯHMëîû÷ÏïVJϾç
|
||||
ýIçâ51¾ûüÕýÓ°÷06D0B-Jø»Ó5/¶¾,/,àíü:RÈYTãÖ*öÝüZXÞ²üYYæ¿5JôýSíòBPÞ:ù´âY²ß?TÖ¸ý
|
||||
ñÕDYÎ3õìý½Cã,/EòñðçAÔ¯ÖîLHXÆM<*ZËùÅÃÖ¾=æá¼±IÝü²3æ¼ÁHÜ;¶è×ÕÉIÍÜÍA½»´èÞEHºÂ,1¸
|
||||
>=4*ÌÏT>¼úÊ1*Þü/ý»ù/TKëÞÁýáÖRJøõY<»Á*ί*¾Ù;ÑÏLUÈB÷C5R>JàýíU·/÷MÕêýøÂNHî˯¾C*
|
||||
Ø9Sâ57¶À,DÝXJ¾*74Z20BµB=ZZýµPòÞ/îäâýÇI6=JZï½EC¶Ã4ôðý÷À4FÎÞºýïù¸*4Nû½ÐÕÔï,CXÆ
|
||||
M<*¾ÄùÝW¶ð3ø:òîãÅ÷*òÅæáýû@ëDøõîá¹öíÏÙ@ûùIÀµRî.GíϾJý¼NîT4¶PúöW·õìð+*Þ·Ú¿åHÜæ
|
||||
JÏñ0XøÙÀÃ,ô¼ýÈ9Í+¾YÚ¶;O=3AXÂçP/øàRZJϾEÃíGSÉ;¹äóÕý=VùÝXL99êäBÞ6*O½Aö²*ëýÍí34
|
||||
Þèô/Ìòø4?úýýÚàÄõIXÓ-A¾OWüYÝSÊ*YøÌ·ßúýIÛL/Ùù½íLß/VÔäÆZýýHòJCÒüýàüýÕòâDXâá/·N,
|
||||
*B¸ýÑ.MÜK9ÞHX.ÜÝL9A1ú²éåÙ¹ýìÛµ½ìø²îð.ÜK¿=Ó¸Å,ðºù;¿USÞ@å͵?»øÇ1*JéÛ7H¹µò+.êG¸
|
||||
íàí,5ÖRÞÊõYÈïC*æÂ3Ï3¯@¯*¾KÑÓ2Ͼ¾-?î;óTå½½»ïö¶¯ùõA±àÃï¿ë6-Ê+¶×óõüÅ92MçàÜå=>Î<
|
||||
/ÑÝíûÛMÒîýýýÕíÙÜJ÷8Ú*ÈåIÜKL-16ô½Ç¿éýíö0?ZýûÑIç4XÞøùù½ý¸ÖP1È¿3ÝÕêD½Ý3YæàúÚ:Å
|
||||
N**»õYSîá÷Ë-òKëÝÁ½ÄHÜV¶éÖÍYåÜÛ±ÝüF´éßÉûÉ3/8Né;4îÇíÝÙ°ìFâ-*îý2,íG¹öò*ºúõæÃ1YR
|
||||
éÝL+ØÚIïCÒE-¾07ØEâZ+¾L+AÄ0Á0YÖ¾ùÙ?Ç:KÅL?òØ2;ØÓZà¾*Î;¾5-îKë/úíøÎÂ3SALãÌÎ*DÚÃ
|
||||
ÆÎOÕT¯îYN×5ÛRAZÇ.OðÔÌJá+øô6;JAR;Øâ,3¸³î¶¿8<>RÏTûX>ÁDEÒ4@K×̺á++F;Å>,JEäíYXÞÄ
|
||||
åæ=Ôø2»V@îÚ³I¯Sá7º@¼·Ï*ZIX»Á,6иóÔÂ5íö,*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2ï?*ÖÀRà>º+
|
||||
*Öè/>»4HÙ¿6@JáíÝÍÙÕQ×KKLG2ÓÈñ4Ð<1?ÙIò´+CÜL9+*ÞCøÖPÞÁù¼,RPºöPøÐL¿2VöüT4¶áñåW÷
|
||||
ôWï/*¶ºÏÂü8¼º¸öʼ¸ÑÏ8WMö*/2öü°ÍBè6*7ò´î3*Þ¯¿,7Dôê0ÐÖ*ÂNÆÎRøÐÁÀ¸J*+Èò4<<1¼¶»
|
||||
½Ìï,PVÝ·ÌH¼2¶îàÉMÍXÛYý¼üøðâ1ÛÉC/ÒLïàWãÌûNîÚKµÇÜ+ÃVú±äØ89LØìCº¾,Æ´½ø9-ôV*ZßûI
|
||||
1UQîßFæáó*1Hú¶ñä͹òéÝÉíÜÛ̸CѾLòëÙ?éÔí6Ì1F149D°æÚ¿¼Bó41î34JèûÍQ.ÖY+¾ÝôíýYغ,
|
||||
Yúä³ø2T°Ì+¾öCA±4æÀ×±Ù<WøË繿ýêGáÃ4>TÆéC¹ý.HK+Ó2º½ò>û³T*¶¾ÁùõACÊÚ¼Q¾ñF»RGWË8+
|
||||
¾æTA³4ÞèÓW·ôúÈïúÝ»ôâ¿=åìHöõè.BMìûù±8ÇYÁ,¾5ÂT»ýü<¹¯-öX/å¯øÎ¼ñÜG,*CÕYè>¾ÎKÙÐV·
|
||||
TÛñû4áíÝI¹âÄßéÔ.*Ø5÷óÆ6ô6ÍÕ³óôóÙO1áãÉWC´FAîß»55=íÝM+ÞEéÊO6E¸÷ôW=ÂïïáÔ.5ÌÊ3ÚH
|
||||
ºò68OèAYßUµI,¾µÓS¯CZãÔÃ=ôòë=ÓBIßÀW÷óÙW°*îêÖS¹ÔÊÖZݾռ.*ýó5ÖZáÊOÙ0Öã@Hé:,ïéõÒ
|
||||
4ZýÖ*îûÕèùÝèõ½ÓíýTÝýÓ¼ýUûüÕT×1ÜQè9I×-¾û;³YîO?NåÔÈÐÂ/Aùüé±1*¼¸UU>õâ:7ÙT2öAìð
|
||||
ýå9*¶û·ñÖ½WÇK¸QÓ6áUÕVW+*6Þ×å×YJÓî¼ñàËÕÛÁ¹Ê+ÆU6¹SÓ:áUÜÅåÜ,*ÞVÙÉ5õ½+ÔÀñ·AÝÛé8î
|
||||
;.*Dµ4UGX?º?ØòëáÕ**äT÷ìÛµÎT¶Ý´ìã¹ë+HÀ*2ñäÕDSÓÎÓäÍUMÝ,*JWãYáä½+ÓÀøYÝXìè8î;.¾B
|
||||
µ´ÓOÖøºÓRñçåÕ**4êõçÓïùÍI*:üèÑ½ÙØ-º.+ÖäÉ5åèNÓ°ÉCÉX¼/*Îä¶Á@˼ý+*ʸâ¾-AT,X<**¶Ì
|
||||
,K*ÆÜ²æÚWë+HÀ*6±ãÊW³ÐTCãÇI9½**.D¿¿A<:O-R´ØE½@½ý**ÄÞè¼úê?+C<*ÈýÚ×´Uµ:K*úE.¶Ð+
|
||||
*÷÷³Úç¿50:Ë=µÑT×âÆE-½**ÒY.AA<:O-î¶×C¹ì8Ýû**Ç¿ø>¾éôáJ2Úôë¹=2:.0FR*1κÓ/5XCµí*
|
||||
VêZé2ßÃ+RúëG±Ìëè7N:*781,Úç¾áç*Û9óÞ/-ÖäÆ?ÙèOÓLÅCù¼**8ãä+¸»ù8FÄ6ÎîL+º¯F/ºBóëEC
|
||||
¿îJòÞ¿,F>*¼Aù°äêéÑ9*îXǶéÊHûM/×ùÕQæÑ½îøÆÞ¿,¶*ÑÎ?IXV?ø0*Hë0ä-X6¾ÔåÌ÷ðêÔìJ,+æÃ
|
||||
R:*ö¼*88***QÜøÔòÆù´Eå±P4>¶Àλ-ö´Kò¾JFóêHRñáǹSÓ6°áɳA*öÕJ²5°PÙôH°7óÞ¾T*ýñX³Ì
|
||||
M²é¼*,99FR¾Á-ÎûZUäúúú¸.OìÐȽê;.2ç*ç×9È?¹ÂÞ¿,¶*4¼±åÌù,ô0Þ¸ô*X×Á̽Ì×°êÙìJ,-îê,
|
||||
Oë*²Ý*11J¹ÔºÕÃʾëïÏÑÒÉñãÖB·ë*Ô×Ô7¾Z;Î÷×»ÎãÄ;µÑTÏàÇYA*öWíXÅ²Ïøó-Î÷ZJ?*FBNÀÒYõ
|
||||
+Ó¶ZÞ¿,F>*PöØðãåÙU½**ö¸-ó6æÔ.:ñ,ßÚS*1ZKµóè·YÎ8*./Ú¾ÀC*ëüú°ãÕ¹Û¿./î¸N5Ê+F+11î
|
||||
øLLK¯Ëßè÷²ËZ÷óéÆ?.9.;ÆG:íë-NìSÓ<ÆQ9*2å9À²:¾ÊÑ;BH7R/:4ÂÔ6ÎåòÔÚS¾Á,Þ.YQÔÊÚ¸ñ+*
|
||||
¼Ò²ïI±BQOÅYHÜØ·ñÏAQ2<¶Î*8¾Ñ¯Ø±1ñâF*24BR¶¯*TG·ãÇYõ¸-36Þòç¾°+Bû,FF¾ç¸Oú¸SëDÕKØ
|
||||
ÀáÑQEÔZºÞP-ZOèÛ»²ÒT×áÃ;ÅH*:7Û.,¶QÇLõCÄCïæ:¸?¾±LñôñÞÏMõ?µ;.7FR¾Á,Þ.¯UÔVFøï+*Ü
|
||||
ãÁ+JÈ8µGÈUR¾áöïA:¾5<¶Î*8ÞòO3>¶L»F*24BR¶¯*4Û¶äɱõ¸-34Jòæ·A*¶,8ÌÞîæAXV8ø¿Q4ûÆÔ
|
||||
àïGDH¾Ï+RHÀî×»BâÃ9ÙèQÓ,Í1*NÍ¿¿*Ìò+à´Õ6BïCºX/îÁ=OR:áñå?â+±K-14îÎ*BßéÈAIíXºô*
|
||||
ÎäÁ±Ô6¹ÕEÆ**à*2G*ÍY¾Á¹ÈîC<KÍCYî,I-P.KÀM¿É1:¾åUGV»³9»ÓTÞ÷4*Þ?ÜÌVC·óßÁÉî*8*JNJ
|
||||
Ä,ÎãÁYÔú¸Õ>X+Då´9WÓT<Cò6*î¾ÈÐæ¿:*û2Ù°ãàÏQ¸SÅ<JË5ÕF÷óX1Ï;9³Ú/+ÆÚÍTã:EÜVø4*JYä
|
||||
ܺ·¶ñçÕÈLYX×°êÛô*9K*²×¯âëÒTòBñçU**0ÈÙ±äßÉ=ÍG*ò¸òÉAåì³1ö2,:Ê9õÑT;âÊUY+*¶TîÐI5
|
||||
µüºô*Îòã±ôʹÕGÞM2¾²ÄÚÉT/¾ÃT+éU**?5ú³çßÏQÝTDIüæÐ¿õØ-º.+ÖåÈ;-éMÓÀW;MÔ6ù4*¾+éôë
|
||||
صîÛ±1*?Yý³êÞ¹ë+HÀ*ÊòäÊÙôÏT¿ýé**.ûصìØA**Ôù·íÙõ¯9G¿1¾TLÓè;íé¸0÷üUóûYóùÝèõ½Óí
|
||||
ýTÝýÓ¼ýUûüÕØÁÕTÖÛÖØRòçÓàÍK0BZïF0*¾Ù:¾**6Î+ò?221ÊýÆTC2LÍ9ÍZÅÀ×R¶ÉD,,*øM:¶<*QN
|
||||
îOVÓÞÖº4ÞMñS*NVôêÓ3.1,-8>¾-ÞGèÀ/Ѹ±µ*4´¾ÓÐZ2OÅEÞ8¾G01Ø:ôøÀ7*¾=<:ê+>@Öä²2V¶R4
|
||||
7ÜT¾è/*¶ôêÑ4×ôB¹ôÌRJñTÉZåü*¾HF¶Î*8*Ұܵý<ÃÛ+Rµ¸¿DÁR?¼Ë6:ô*æG½Ï/*Þ3E**ÅNÎÖ¾,Ï
|
||||
UüÐ>ì¾MÅGÞÛ?OØTîý+*./Rð@Óúá8KÞÑ0ÆÌÛÎVÖM.8>¾-ÎîE¹ôÙAZA*ÔÍQ72J**H¶T»BîL5*¾=´¶O
|
||||
,Ã/,KöîÀ¹Ð*êYºMÅCÞ8Tó4-:ô0êCÖW3Jå1À·Ñ*,ÞÀR?æGT?>îâTYÆóÃ@**QêîÊ.0-NÀìK+õNÏñ.Z
|
||||
AÓðRYIQD-¹U¹úñòØ×±µû·À:¿-/î*JCùëECRêYÕèÃ@**QêîÊ.0-V;¶ä¹I>ÃÔY?ýðß¾:V×ùPãA>æ¿G
|
||||
ù52è/3FR*1Z¹Ñ.5Lïäü¸ÓX²+*¶à0åNZBÞHÁKÞàKS²ûTû91öüUóûYóùÝèõ½ÓíøT/úöå**ÞÅ2*3Û@*
|
||||
WÒT.¹½ýÅ*Jöá8;ÖàÓ²ùÓØàùûA¼,*äÝýàãÙW½DçT¯Wüü±ó¸+*äÝýØÒA·?ë¼Ó¶>½ýà¾Ý**ñíýRä9èT
|
||||
;NüüÝ÷½,*ÐIâRÓØ4ÀÛJàR**:A¾Â:FNÀ-7¶³,Å1;×TF½Â¼ÙT2öVÓ.ý¾QÔÈ2È*=ãTãÒKSÓ4JÍ;@øëT
|
||||
OÛûÕÔTôÕ¹°ÓPOS,Äὺ4ÛêG¯àX¶9åüÃ,/ôÖ1ØçױͲ@¹³28>GBëÊ>ÎRU»*,O.ÌG*À8À*ä8*ÄäÑ*Æ
|
||||
Ö1ºÒJî*1V±D.@6BZÇ×Ö±AFÂÁß-µÅ+õR5@ÊèGT:Z*×-RÖ+Ô=ÖBºîê+âÁZ6H.ÛÌöLÓß;X²ÏTDzõYWÓ
|
||||
æÍôàTÏY;ê9·5Òïß0LQÐÀ¸¿üFùåå;QÞ¼°<äü¸3ôê9¾¼¾.NÈÙð1@ò*.È2F¹*×´M²ÁG*M>ηÓK/-M/,
|
||||
1¶¾,ÏU¼L¾M=çËG¹H?59FÛñÎÈ÷ÜûÉÒ-Ǿê+ÒEÛÞ3V6?¶ô*:Ä0Î:²-QºÏèî.ADçTOAùÕÔTâõ¸¯ÓÜÊH
|
||||
ôJ¯Rå8¾åÚ>´BF»-ûóè×èÉ0*¹í7ºõ¿úÖ±A>5ôÐ-çÞù+.+ô/,1ÂÞ×-ÖÌÛö,ê+R.***2:û>+*B:¶¿-,
|
||||
Kö4++ò±>*N¶K°ÊÛÀíê×íÜîNÓÞøR¾5ÖBT¶ß,ÞÞ3YÒDFàÃ@T?;ÓüÓÓ4òÐ8VÓB9;ìà+Zã8*²4èÒø¹ö¸
|
||||
Ví²Ìîé*JöÝÉêÀD¹ôå1ÀSOZ/±ÝÜæÑJîÀ2À*²µ1ê+ZZù.B4.Xî*N2MG+0ÚL+2Àðá9¶+V2Ó,ÛQÓ8ZL
|
||||
JÞ/VÚUÓ5¿R³¶À5˲Óô2ºý*íÒÈî¼òÞT/æC;-<éÒö6ÕKM÷Ù;P¯½Þ-Aå5¾µôE¹¾L+-âøñ.O1Ö0LìØ*6
|
||||
ø>2Ú:,1¾»÷´ÐÖ-ZãôºÌXù/6/2ÚÞ+T.Ì÷¶?1¾úÇÈê×Á·4ê?H¶ôÎÊûôË6>ôÒ*³¸QTó,@ìÓèÃJÒDFàÃ
|
||||
@T?õѺ¸óñÕMÝH.íÆõäëå¿ÓÈL@-+úX.Ý+ZA³3¹ÅÜ+Oô-I¾öO+ëßXº,Î+-ò,À¸Ó.Ôõ1125»4.X2¿-J
|
||||
;+=ëê+ö´Ò@>æï*Ä0.Xî¾»0Á¾Ã+-A6àZôLEæÁZ@Þ×íì>ßÀRÚ×ÑU78HSÓ5ÖBº¶*,ÏTA,Ïèî.ADçTÛË
|
||||
êÚ·ýPüº·X8G¹ôæÏÙ·ZÓS.*ÛÜïºT;+ãñ,¿=1JçYÀÇ4=XÉÞ,èZóÓ<ûÜF-*¶óÞTÑJ*3AWìK+*4*Xá¾S
|
||||
BZâëÚE+ÖÝUÁVüÕ=TãÖÑP¸ï;*2ÐÒñ×è8Í¿ëÒ4?QË÷;**èñóJLÍ/J=ÓèõƾõÝTíýTÝýÓ¼ýUûüÕøûY³
|
||||
ÁÒèQ+¾/Ò4úýT*îèÈ<WÓµM+í½ÓÜýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUû
|
||||
LÕ4%
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+íÄ,*ÓU5Zëúø³óûÕèùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ
|
||||
½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ý
|
||||
UûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝ
|
||||
èõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ
|
||||
¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝËÓ,%%%
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 151 di
|
||||
/mask 6493 string uc
|
||||
*JÌ**-ܽ?ºý-úü1öû9îùIÞõ½¾íý*Ýý+¼ý-úü1öû9îùIÞ庾%
|
||||
d
|
||||
/sl 51642 string uc
|
||||
äÕí´ê9+*ú½³+íÄ,*ÓU5Zëúø³óûÕèùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ
|
||||
½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ý
|
||||
UûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝýÓ¼ýUûüÕøûYóùÝèõ½ÓíýTÝñÓ,TY2*ðSÓõN+í
|
||||
½ÓÜýÓ¼ýUûüÕ¸KÓ,ÒÜ:*âÑTîý5,¾ºTóGSÞùYÓõ½ÓíýTIÖTïãLï·Ø±ÅÌÒ*¾õê×á3HÏÉù¿TDWÓ¾äîÐ:
|
||||
¾òT³.*²´ÁÓêLÓêùøöóí/*2üøí=62:õLÉÐV?×MìÏGÖòãÅ5ÍH*æöðçµ/HÅÓñ¸ÓÚ¹öòéù½ýû·KHú4*Þ
|
||||
»ñüËùõîêÛQÅT¾°F3K5ù¸À½KÕáL5X*>Íê¿Eý7ºöðà»í@دQ5*úØóéÔ¯õ´¼KîǾ¸8ÕÈQ9HúõñôûéQó
|
||||
ëÕÝ,*¶öâ¯ÕÌG¹´í*»°Ò,ÆMǾã°ÚÚ*ñÞY¾ã*-RúÞ8F¸êÖ±í8ÜÚöÂ9â½éXW¸óèÓ¯ÁðµÞEPZ1î+îíUå
|
||||
ïT·ìÕ³ÝÌWHýü²ýüúU**½½üöçÎWå¼ËXAÝHÓTC˼úV¹ÎD·+äÃÝBµ¼úæºZ1¼E³éÒUýPÌF6ÍA*Ú¶îØK¹
|
||||
HÛD³Zû.Qô+H3RåïT÷äÖW½8ûÛ¼üÐIýO*¾í9½EñäÕ¯U0ÑYG¹,3îé4?4ù¸ôèÕSºüôÑ,*YíºóåÒ±Ý8É4
|
||||
?ØôÞ8Ú°èÑE½ü»º·JHY*öðá½Ù̺÷²è*÷3ÌV.ºìUåïT÷ÝÕIIôVÛ»ûLýüG*¾éÕͼ¶ãÅIÝP½-ýÌTÓFÒP
|
||||
Ë2ÝPËC²çH½°Ôîð»YÜÊø³àËN=R1ô¾ùÐìÚB±ìà=Ôè:*08ùïàËSõ»À=ù*9ÏYý·ó¾´µÕèçÔÔVÖ°ñðé-ú
|
||||
·ÒÕÆÁ;=5¹úóã1ÅVÖðè´ìëSÓ4ÔTÓèXê¿M<GûÚ*áïÍ9H·ïäÖõ0CFÖ-AUøïÝų-98ÂQ6*HúµêÃýH@W
|
||||
ô3ÌN0H·UåïT÷ÑÐ5õ³êÙùõÀüúM*Î**6îßYú=7:9NÝпÞ+CíøÛ1ö÷ñç½õÜÙïÜÖÖòѵ³QÓTôéÕYU1ÅR
|
||||
¶öø9+*ðVÐJÇÌï*4¾¼ûÎËò¼Ð,@HúíÄMÁÞè:Á-¹îOI9Üɶ´íÝKö±*JÜ3Õ¼õ+>º¶àAIÞ½ùÄËöìßÍÉHß
|
||||
Çñîϱ+·:JßÄÉÔ·µH÷RåïT÷ÉÎ/åGVùøô*ü?*R*îÏé7LîÏ0Ú-**î>.FºöëÕéHFÕZ+û°°ÓðçÐOÙ3øZÛ
|
||||
Âç´ôòí*¾9/,ÖùÝIÆÐÕò+Î18OîE@îë×íPVõZæEÁ68ê¿Õò6öëÞÔ¹õ0ÝÍ+¾Ï´FDù¹:JÝ3ý½ö+ܹµé¿í
|
||||
,ôÚðÇ-Û09äÈ,æïë½M¼èDåä=9óFX?Õæ·ZÚÀ±EÅ8ÒÝ,**:0ÞÕ<Ïü÷Ì,Jܸó***ÎüÃ,/¾X×Þ2Þ¾*OÁî
|
||||
ÞÓA¶òä±5ÄEÖ±ÃÇÓÈÓUÕXá,1¶üÆV.ËÔ¿*À³ËÖ5ÈüäåM@:çÍAT¾ÄK01ôÞ;°ôéôYéÙ¹Ý-*Í6º¯öÛ¹=@
|
||||
Ë6MÌûN+²³èÛ¹µ¼ûÆ2ö´é½ëøã6ï3ÌÚ09Sáñ/.Ú¶8QÆß?óèCÑK*@Ú:Î,ÏVÒñ¶ÓRJå¿M*SöïãY+**2-
|
||||
îÛ3>AÒ9¶ÐON÷ðÏ+@C¶ß3È/È*,+â+ãåÜJÄ198N¿G1ÊVÓJÞ*¾-î¶²Dð¾öJ*38KêÃÎøôȸÌÎL*Þ¿Gö½
|
||||
ÊûÔ󹸴ëZù?*¶éÆï¹0Hú´àRù÷ðÏÃÝR*ÌÌø÷êÆç=½L.X¹ôç¼éøãúí3ÌÚ09¿Zù/.Ú¶89Õ·¿ðãý¾ùWÈ
|
||||
A½NJçRåïT÷¹Ì+Ù/ÊØµíåæ6*Â+Bé4¼M2??+¶Å0ÖìLå;5=¶L*¿*â1ÓäÕÜÞ»ùP7ÖWÞÌíOÔTÄ;MÄô8¾-
|
||||
6½-*,ßôJ*ÕGßöï*ܳ¿ûÆ/XÎ,Ö5°¶ïÚÌ·YØ»MáÄGù?*öäÑñÉÔÚ»´àöIúëÃëÝR*ÛíBºæÏïÝ;,À7¹ò¶
|
||||
-ßÚì3ÌÚ09¿Îø¿-F·8î»ÂM:ÎHC¶LJ÷RåïT+´¿6ôõ²ìÚÍ×D*2-¾MçòÜJóÃ0BNéêT8=J*¸ñX/2.J×ó·
|
||||
·ó/ÄEõç½ÁD*ÙâTã°äÊSW¿-ê¼²D<0æJ*;DäºËÊàñæ/.õëÃ4JWÆß¿Gö³ÊùÌã5ø³êå*J6=8*îé¯=ü9Ù
|
||||
³áüÍ>*°¼H×÷óÅľYÁä¹´YäéÌîâ³ö2B<9FÞËñ6ï2.ÍM.ì2RHè·ÚTJV:-ø?7¹ôëÕ,æ+â´W?ÆÇ×ICE¼
|
||||
WQH7î0àÌì4*ñê/ÆZ³*Ä->+ã×3ùÃîÆ5îôêÖOù7è*à<U?ÉD³èY1ÞïRïÛã8WY±ó¯ð´Û7Þôé¸FÛ+ü5Ò*
|
||||
ÝÀ68ê+.5UÓ¹IÕ´ûØóE*îÎ=íýýÝôêß?ïýÓC±äýN+:²ãÌíé¼L.öØóèÍõÄÓÀZQ¶ðDº¶ä12?Õ@ºñÇñ>ð
|
||||
Þê½ÊÏÜúƾðÏÌáÓÐ×J5ÄùµòÁ+ò**2*à:´êÉW=//´Â0¶êõFº¶³Å7êôçÀ»*Ä-Ò>/ÖUFÎô66öóæ½ï40G
|
||||
U°Óð¶ïà³/øZÚ½+ò±»¾3»:*,ïÖ-àÄË×ÇZÅXJM-ĹBòTK01ôÞY·üé@íåÒUÝ,*ÕúØûèÓOEôX3UXVC¸ö
|
||||
A4*ýÕ´FûúUNÞÒIñ³ùÕñUQ¶ðFºBåD42Òî-ùÃñ>ðRê¼Ù6J+ù7+ãMGÅU/IË´ºAî¹âÇê,8ÈN+20ÜéöòQ
|
||||
ÇÓÈI¼úÖÐèÇý0Ì7FL/ïîÝÇUU4°¶Z1è3òß·ù¸¼ÄTÔ¸ó÷â-+ÚõüÂýííIHô-/ÎÓýѼÊÝö±NÎÍûäG6ØÑ=
|
||||
FÇHºÌWÞ³óFX?µÂDñÞÀKÝÌ˰á¼û.**¾5*¶-,CKJ*ÆÌXFBñèÄ<U?Q»ø²OËKAHVHÙ¼/áA,î°YÚ´ëÓ=I
|
||||
0ë×<D»Dó5SïÏ?ùûéC³éÔO³èQ**2I**LËöýè¾T*NËDñä÷93¿Õ´ÛDòß½?É0ÄÌîâHÞ=+óÚÜTÄVD°àÌU
|
||||
åÜ0*öëÙWUÔV¸°NÇÓÈ=I¼FØÖÒIM@ËQå³ÀìùõêÍIÑ8577IÌúÃÓ4áÍ-²Â²éå**üI**¯ûý¿0ÚR+×ÌûÏ:
|
||||
öéÖYͼúöñáîæËÓì-ºìUåïT÷µSSÅÔÊ×òéLÙôGÎÈñü7Ú´æÏUU?ÖðäÓTHÜ»ù»ASP»D»0˹T*îÝ×=åWÙ
|
||||
±P»Ç»ùï9ê+½¹DøñáÇI1ÔPE*8¹´ëÔG½@7?Ú¸À=îëDÞ=+óFX?¾ù*·æòéØñ¸ÌÒ*Â6ìãGÓT·öüûùA·Rç
|
||||
âθ°8àÜÓÅ9˳;Ç+0*ü¿G¶ÚÈ8Å0Û×±æÀØóâÐüêê³µëÕU±Üò0Q@,HõÓñ¶Ó.ùÃÃFθ´åÇà/º´íÜ»ÅäØ
|
||||
æCèØÖöÒTOÖÙ9OÐÀÝóÏLOÈÒ*JÓRÏÐåEßß/ÞüÇGöÃÁÄD@»Ø²çZ¸Ø*ÎÓ¯áÄû×è±F×0öNJGÕUãÖÕ?äP.
|
||||
äP.¾çÂTæ³YéåñT?ß8½FSÜ,*ö9ë+Ó7äPX6¹¼,A·,èX.º8Uå÷TïóãYAÜ5õëË*¾àÛÙöóðé=UÓèèV/îP
|
||||
TÕ;?1·°?î·UGåUO×YÅXFµë¹+*àWFøòRO×±1ÝH¼ü3ÄÈïÅÝHú/OãKÌV/ºÌTåûTûO7öüUóûYóùÝèõ½Ó
|
||||
íýTÝýÓ¼ØU/B9**êúË*îJÐèTÓRÏNÃ,û÷I+¾óâ·±ä5ÓÐB¯ì.D>æ1/*æñäÉ@WÔÓØÆ<SàúÌúÝ2ÞZÐ>C°
|
||||
WÓ´êö;âÆ=I>*JÈ>M¼úÖÔè<PÊRïÉ,*ׯ¯*JWóõ4*Zó¿+*
|
||||
d
|
||||
342 151[1 0 0 1 0 0]sl 8 mask 0 302 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/configuration_session.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
593
doc/connection.eps
Normal file
@@ -0,0 +1,593 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 432 417
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.92 (alpha2, CVS >= 20030921)
|
||||
%%CreationDate: Tue Sep 23 20:29:37 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 403]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 7506 string uc
|
||||
î½*¾î1:C*Ê=FF**IÙD¾Iµé*¾åÔ0îßKCâ@0QI*,âµDµK*üOµDµK*¼NµDµKJH*̼7Þ¿úéJ0*ʼ7J¾/
|
||||
ÒKø²öüåîûÍíùIÝõ½¼íýúÜý÷»ýñùüåõûÍíùIÝõ½¼íýúÜý÷»·å,%%%
|
||||
d
|
||||
/sl 60048 string uc
|
||||
î½¼**ûý2*NöQ5YÀQг±*Û᳸I÷ã¾åÄûF*Þð4Ä»¼1ÂWD¿Nî+½ûM*JåäìÝI½üUQúºÔ¾°ÅëøË**ü/ÝÝ
|
||||
üû¹/Ù±¯57¾ùÇY0ºôóöEÙòùÅüQØ@.*åÌíÍùé鹨<3ÖÚÀ¯Í9L-úY·Ë¾1F-õEîûÇYË.*.=²õ**BãL/ë
|
||||
V-Bõüü³Ùä*R5°+CE¹:7ʼá³<¹ê6ò2çôݽ@èN*JÎ;ºä³À:ØVÒÎͳ*¹õÅ7?éÃ<Hü/ݽýÙAÜPL±»+*Ú
|
||||
ööôñÙåHúÂ->UÔÊù-YD5*2²æP+Ä=8³Jù9*ÈëÝ»æÒÅè>Í.ÚG@¯ËüC**éSÎ*ÈGݽýÂã³LÚè-*î»YµÅY
|
||||
H¹òåç·è¹YÂ*TûÛýîÏ×*¾MÁ´òTÓ:3ð±0÷CÒØDî/*¾¿íí²ç=±Èå+X9ÉIQÝÜüùðß¹åì×Q½ìÚ÷ñ·Î*äÛ
|
||||
ÝÝñ»ï³°ýê-Òõµ±E1½I¼öèï÷ðÞ¯Õ»+ûP¼½ÔJ±+*Å07RÊúÒ3=0ïMÅXèç¾,*÷9ø:Þ÷AæÚãïùåý¼D϶
|
||||
ß*À²éZÂùÀ¶:6öý½üë1IG¿=¶¶E*BÕùüûóÝ0ÃVÀ;±6ÞìûçøºøàÊЯ¾ñáðÕÑUAݽüùõ»»÷êÍAQüØæFR
|
||||
Þ¸õí½YöD*½¿øÜµµòîïíYíG<AÌú´ÛAPÞôõ1è±@*îæÎKÓäçË=QúÇEÂZ3Á47Ø-?Jý÷Õ5.**8¹¿éó9ÛÓ
|
||||
1CH¯ÆÄ>X2,üÅæÑQ*Õ/ïÂ1:¾=Îýõº¸,Qîî²*>ûýÂ>Ò¿Zèî<0<3ÄÊY*Oõ16=ç5±ÈÄ+äÖ*¾+¾UáðÃÉI
|
||||
Ýü¼½û÷GüøíÇAIÜBãFRÞãôíí¶Úüû1-Ï/*üÒZîäÝÝÕ9IÍÕì¹öïÀÅHJ+èÝýä²*ÞÏKÉÕë°;E°ö7J<Yì´
|
||||
:D²1TÞý±åûíäý*´¸Ðâ÷ÅAUøúËÈõýÙGóA7Bîçý-ȯ9PÄê²æëøóí0DÎÞüµÔýø7->AæËN»åõI½úCú9@
|
||||
¶÷.Å,:ð/µ,ûI¸Ö40Ú÷ö»ýùé.Nî÷-1ÅèÞ8á9Ýó¶¿èý½ÊJÉù,.*Þ·0ñ̽üâÑ-ðÚäLÄÐ/èD¼ýÞ¾O**Ð
|
||||
ë½ÙNÍ1â>Ë,ʯ?Õ3**87ÉÈG8ú¶÷öÁäÖûõÞ½9AÉï742**0/.**µRÞßõIýUüúU½@*öÌÐÇ5ýÜHüùÜÜùî
|
||||
ÚÅM¼×±Ï*óí9±D*îæÎ7ù½ÐÅ7Zú09=ýýI07Ø-?îýQûY4ð½*Bûõî±æ¼0ø½5Aû½IÅí9JÂ3¯ìý9¿Ú+,Õû
|
||||
½ÝZýëÀÂSýý9óý»HQ6ÎÚ¾é+ýÝÐÂ<2,Ý:¾ýýÇü½õ.Å*:º*¯èúIýÄ-°¾ùýM¯ÏJʾ뾽¯Â¾ÁM³¾è4üµÊ
|
||||
Y¶¿PôýI¹àCÍB,X/ñý»R¿+ÐRÇZÂ5=JáÝÔBÑÖ-*Þâûó°Ò÷ÞÏÐS¾C@+*J6É**îæÖºåï×·¹Yíü»µÝܹì
|
||||
×ÅõÊö0/LóÞûîD*î0/¶õüûWÓYÍñ+*:ÅÜÁÝÎÝÞI¸WÏãL+ÙÝýãÈ×**KÁPêËÕ×ãàÎK¹Î,üI*áýíû1Î<ê
|
||||
9êóößöÝ?G°ØMï5+-Pýý/;12à+î×ýðéÒVY,.ÌBJ·+ùÎý½ÁP:+Ä6.5Æ÷ýíGKâÀúýýJBÀ1Êäýð1F:-
|
||||
âüݯÈ2á.ÊWì3Ô/?Úè/ÙóIü;ñ/B8Sûý+1S8MÎÍÉIÝJ1æÔJβ¿òÁß³P¯1*ZËùÅÃöJÊðK¾B@ùËûúøß³
|
||||
,¾ôEáð7¿ÑÌ»Ûú÷òûº÷é±Ñ0ÜïßM>¶¾¯ÅR*¶ÄÕÏöï±H**ùAúõëAÚ0³-9ü9áL+èÝÝâ²*ÞÏK=·YO:E°Þ
|
||||
7°°Y8´DÎ*:ÎÈ˱ý9¾âúMá<F¿óTÙµñ8÷KÖ=ZÞÂýýÂï*¿åý½+âýð9ƺîOQ6*ðAAÖúýOV6ÀR@2Y¹ô.+
|
||||
*;.?6Ï+0ôýÜ18.-ìÊùIµ½¯,ÒðûM=-Õ¸ßXü1½JÇ.عóÝ»D16¿Òýýö,GXÚà²*ëåÞïÃZVÞ*Îïüµ5̺+
|
||||
S×BÞ65K1Y¼Î/J½²VüíµçÔϽ1IÜÁý8Û³çÝý;ºÃ,Á¯ÕR¾±àÅíȹõ@9**Ìá7ºôïã³4GµîÐÝ?V>ZõùÕú
|
||||
B5*¶²æH¼ºõéÇ=ôâÚYõ8²Þ.*ü1î;çü¿*Üøú¯=Û¼>ÛÝØGñý¼EÝ,0ÚSùçYØ6×±X¼ûÝÔ×ýÅHBµ4,¶à*1
|
||||
ÚÞ±ýåBÏåÅ÷ý-4ß,°òý¹Q¶.*üýý<¯áõ9Òâ+CÞÐ<ýɵ;PÞFVÝÉYÞßÓXÖÛýÍL2XÞ°³Ä.ù½ó,16Kóýåð
|
||||
ý½0Ñ-AX¯²¿ÐU4úZB°Ô*6ÛýSÀ;YJT@0Rá,êÁßÞùUáðð¾Í´ûº¹õíÛùôåWÍ0XÌÞU>B7¹Ã,êðú÷ÔÐQI÷
|
||||
**²ÛÙß±õÄH¾¾ÛMõWúWZ+5/Ê÷üOCä,*,7Øñ7¾ý+ZâRµ:¾ÉFEü¼õãèüÕæâÒ9G¾ÞÇ+µ¶ò¶üùé-9Äíе
|
||||
½öÁC69Zç3-Fî,QçÔºüôó/@Yü56*¹ö.Å*ÞýýýIÝ´R+ÐG:->ÍIºY103Réýñ,8*àE³¾ûõYP+P¶+éííý
|
||||
»çUXFZ.PÚHXçúÏDº.9M5Rôº×ýíI5ÄÊ?*»õYSîá5ÆÈÃ+865³ý8üׯ÷°ßWá¼¼GùôÌûøñÖW1Yôí;4ÒH
|
||||
-*ÅR¾Q¼ýìÈ·ñ:9*¾ýM2ºõêßÑ-îïÝMAHºKWý4/êðüÂ=ä,*07KZæ8+¾:ÂôÀ/*¾B*ö=2Þ/Ì·ZÞÂÂÖ*B
|
||||
S3=Þ¶:-¼ÌÊ1+0VöK:À¯îJʾ+/*Þ2Þ3-*¿ã/8:Ê-+>NÊòÞÊÞã=F4¾Z6T*.×=°Z9,ºZÓÆ¾¶+¾?îîLA
|
||||
àßV¾+Sú7Aæ,+*N¶Lì/MæM/ÊV3îã?º.+æÎàXûÅÊJDèÇå0²áúûã/êö,а¯¾=á4ݼ²V@5¶ìØ9âÊ,*¾E
|
||||
öVúÌÏ*ZIà¼Á,6иóÔÂ5íö,*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2¯<*îæ:@ê2;RÆBGPÊJKÀÂ3>ØVÒZ÷
|
||||
D2YÉñ4²úûùYMç¯1èΰùÁì@:á=ÆÈã+86É**îêÖV=îß»I÷D=Hº=»ÕR:èËÜ-*î0/¶áñåW÷ôWï/*¶ºÏÂ
|
||||
ü8¼º¸öʼ¸ÑÏ8WMö*/6öü°5P,*JéO*âL/ÙÕ++*JÐU¾806*,ì4ο9Xíͱھ3ÍJT@1¶¼V¼2¶îàÉMÍXÛ
|
||||
Yý¼üøðâ1ÛÉ./ÒLïàWãÌû.3ÛKµÇÜ+ÃVú±äØ89LØìCº¾,Æ´½ø9-¼?*ÞÀù½8ÔÌÞÁ×KFBº»VX1¶îßÅEµ
|
||||
üÚMÝüÛúôëóÒÉ./>LíÜW×´ûÄ3»Þ·ÎöÎ;Áä7òÁSÕ¶*ÍÎ*ÐìýºL¾9/*öéüûýOÉQZ¼4½»VÀÈʱ*:¼äOÀ
|
||||
,ÚZôêÔNÉHö.*ÚÞ½ôÌïL/4?âóÊÛ½,ÍξT.ÜI¸Èü¼3*¶¾ÁùõACÊÚ¼µà>Í-FI@TQUÑM*:ØèãÀ,Ö¸³UÌ
|
||||
GÝÈLýµÍG·îâ×Ù1üÛD+䯹ýüÊMðùK*Þ/LÓܽ½ÇÛÖ+ºåâ>9/FH@èµìÙM*:ñøãÀ,2D²UÈ?Q/ÆÜY¯úûù
|
||||
±ÅêBºûE*¾ôL¼G²ÂGáñ³WÛ»ûÔ¹÷¶÷°UÄ7峯¶íààâù½;*î˳ä<Ä7ÛºùôÙ÷öö¯UÀ/Qä.X9H¸0Å<óÉÕ
|
||||
îÓù¯*¾µÓS¯CZãÔÃ=ôòWÖéBIßÀW÷óÙW°*îêÖS¹ÔÊÖZݾÕÅ+*üéAZßÄCÉ´7ZÉËÎôM.àÕí÷DÞüã,Þùý
|
||||
ØõýéíýÕÝýY½ýÝüü½ûûýøùýóåó³¾èÐ+*üýQY-*Ô6*ÞýÅøDî>1*¾Q16ÞKÓ¸/U@UÍ:CLÀ.74+2/*ÁL+
|
||||
à*FÏLÄ8OðNè?Æó6*ÚÔVÖZÛ°ãÈ?YÓ4ÓSÐNÇ,ãF³èâS6¾²ðòO»ËõèÃUÕXÛ¶ï4,2+B4B728¶*+ÜÉAZã
|
||||
ÌKÉä6ïL/èO*¾RÃ*ÌÈÔXÞÂ;±ô6OÑ@ë+**³++27رåÊ/*Þ±äÈ3ñ³D¿´óàóQûø/MINóU?îÏVßÈ?ÉÓPÃ
|
||||
ÀÓç:KÂ0+È*È-L*B;LÃ8WøÂT6ß+YA°9-*V¯ê;*Ì4?TÑH³øÒç-ùØÞ*öò*+è/Ä+¾ÒöDÐã4ÑÇDC²æÃ,6
|
||||
ÑGÖ¾ÈEY.ç<QÎL˸óJéTëÚÔVÖZ߸/É?»ãèÓUÕN/OúSYU@-ÍLç4èìFëÃáÇQÍ8úØVL²Rû*çTéÄëÌ?J>
|
||||
ùN+æ4*¶îé1ìPX×D*JÓXÓøÐÜ0J7*ÆQÍà*L*Ì*J·Þ/-.EéWÙX¯TÂRT*ÞÄ>¯ð.4?VÏ/Õ,î.í*ÔAó³Îé
|
||||
3**Xµ<J¸óT5*Ú8B¾-±0WD³ãZøîµ14õÈôìÖJ;¾ÉÀóéB±åÎK-çÌ+*L¹ôÊC±YèéÞÑÊ*¾J˸?ÂVTSÈÉ
|
||||
Õ9>*EÀNçÐPÎRËCÚ4¾*ô½ó³Kâ·ºËÎÀ?ÞÃRST>MÖ/+ZMÆB¿LãèÓ·-ϳé3×»YݼĴA@JKÃD/ÉÔW·ºW0
|
||||
?ÎÄ:OØÒSÒ5â8°5,öÐÜäLÃ4OT2J*ÞNÞ+*Ê2Ò*Â/öSÕ²ïàÃUÓOðÆÏÊ+Þ9W4ÓÈÓU×¶ÏXÛ¸Ã+*XYèéÀÐ
|
||||
ÄÒ8>J:Jî6+ã*üÉB±æÎG-ÔTºE¾4*2õ8-B22/¶J*QVZLüL0è+ºÒSÒRÛè³êC¾@*JÐOùÐÜÔÀÃL߸ó
|
||||
***Ó-îTö¸ZZHT?Vزß4?Ç?TÂRÏ+*ºÒSÑPÂXVJ?ÞZ*:T;B/R0¶±+ÌR;OÌJÇLã4ÛгéÙøD1óTãÈ>UÐ
|
||||
NSSÈ>2WAS1Èúà*úÑRÔ°ëØó4>¾Ò¾@.JWWòæïÎK=³á°12î¾*8>ë;âGB+²â2<OË,;üÓÕ3°ýY**ìYÜóÙ
|
||||
RÅÞäI·øÂ4ÔVØ´ÏUÍ8G3B@õüýý¹ø.¸:°2S@²äXÓQI8¾U>ZÅ>³øòO»7ÊD*îäüýåÝG¸òæG¹úýõ¹8Õç=
|
||||
:ÓT:.ÞOÏÐÓÉÕYܰ;RÈ:Û**JAÜäâÖ÷ÑR¯¾á4ùÝúÑ¿0C,ÅÌò¾JÀòÚ,,,JÐAó³Ü5AXÚ¸»ùýݹQçìÛº2
|
||||
-ÅåýõA@0èÓWÏ,M*¼ÉA°æÎOÁ@6ß</èι6*æ5YÑUà.Øò3ÒZ¶ýÃô½÷Oû:Ø.F7ÇÅ2>;Â/6,Â*Â0>-6.º
|
||||
SYñÏLÃ,?4×ýýûöQHÄFÇÐRUÕýݷ¹6³,ãUûÈÔËØ¯ÔN·VÙ´ïØóÉB°ÆêAWÈ4/*ö¶ôýýíÏÂ7K6UÔVÕHG
|
||||
Á¹¼ë+ó;ÒRÏO×À·°ÝVSTâRÏLÌS?VÑ<¿à³Ê3Á/3Ï;Á:+SâæÕøD3/TºË5õ.â4C´ê6ñÝýííD1ÎOÜFKÓÈ
|
||||
µÅÌ5ÏAµOé@Zñ¾,Pë¯Q´5ÎÔLÂ4+·ï³¼á2EàæÌû4ÐÙÑ5úýúÔ»Ðñ¶,KàãZWåÖëðÒúT/Ì·²JåÀÂPÐYè@
|
||||
¸V¸É4êÜÓÕ+R-´ñé8T3D¾6CØÃÔýýÍB>FÔ¸H1ý1*Ú¹ÏÝTçØQC¼ýÍHúúüëÍ/O,7TYñO°Sü½I³·096¿Ü
|
||||
>ñQ×Ú÷é,ú¸ÐØ.7ÈAù½ÈÚµùï*»Ü9ÏJÂ6/*ºTYÑÓVÓTãTØöDAOO9OÐP/ÙèýýõÚé˽àýùöÕ=ÍôÜݹÅÜ
|
||||
4AÙóýåÌØÑáëÜýý¸½.Ëñõýýõ+æïýûGõ´³Ø»Ìüý¼AÜÔÛ@ÍÒäÝíÓ½XVøùýíW4OÀàéúû÷Ø=±PXý½W7éÍ
|
||||
KÆ</**OYèé*Õ+*ö@ÜäU·C²è@XæÖøýýO=±ÂóýùÜôÓBÊÈ´ýYÖMÁ´øýý+õNïZ¸´8ËZÍJóàéÚ8ÑýùùäA
|
||||
ã4IMÇèýíUè2àáÖÁüÝ÷ǽÈöMOÛýý6ë9»XùýýÀ·»ÇÑÍ9õý½ÞJÂ@»4*JÎúýýÎÜ0N7*¾°ï³HT4HÇLÃøó
|
||||
Òýý9¸AVÉýQõ>QËT?:ôýá»ÙUÊùý9V¯Cµ/é@Q¹ÖÖçäëýý9òýýïù·:JÌ¿>óýõ̰0:º´üݽÔéï+.3Qº
|
||||
ýÍõ*ẹûýº±IFÆ<XèÜýYÓ8XñQ;MÄ6GøÑÜ0LGùDAOêéýý;Á¸ä¿ýYIÚóéÖ»ù÷ýïѹᱹýüý½ùÜïÀÚ/
|
||||
0³·áWºËýýíI¸MGƺï·H¯û9Üã8Pº=Øýß½ò;Â49Ñ1çýýYÜ×äWý9ËçÄ<XæöÃêý±Ôñ/ÍKíèéÄéÂ>±Q¼ë
|
||||
O»ÑúýýÚ¶Î÷íýë5ÍWù´ì¼ÙôêåàÖD¸Ø:YIâ0ýÙìôPÌøDÕýIüÍQÒÞ3âS»û9üO:UT÷ÛýÏ1òïâ6H8Ræýý
|
||||
Áì·äØýIú22@¶ü6âçý±¼MO8KíèéÞÓ+*Î@ÜäQ¯÷ñÇ?W1Ñùýôµ4Kôø½ììÏ׳îâÃñÄË9TÁÆ=³-ÇðóÍÕñ
|
||||
ýÝC;Hïúûýý½ÕûýIºAôÃÍMØàü1í¯4÷ÐTëýíKL<XöB<?¸ìWÈ¯ÔøýæÎÊöDÀ:ßòüÝYEºãÌLÈ>SàòO»7î
|
||||
D**ìàéº?AÁPóÈõõ½ýIùD=ÓúüíëãKÏ<äÏYä²·KÛ4¼>åÅÈDÜ4QöýýAÈMXºËÉ=ÁùýûÅ3÷ïǸÇû9¼ä<°
|
||||
º=Ìúýé?NÄ:õÂíòýïé7¿äWýAýÌÊFÅÀ÷ãøýÑúÀÃ9OôçÑQÎÜÒÕ·SÑNËDãêýýXÛÝZíòWÚÉÜýAÝò7=ÃÆä
|
||||
õøñ<-ãéOåÚÛTW3ËýÝW9<ý=ÆHóýÅÙßàÏ×ýýýÃ7÷ðñýñ;ÔçÁèéî,QñP͹àý9Qç³ç<åôúýÃM·:ãTýýÍ
|
||||
¶FVÌ6çõýëU±<ÃàCâÆÏMÆHÓÕ/*ÂÕ·ûÞ³õ8ìûýýÌHìRKÔæ¯åØñÕY¹Yåïýµõ=G;¹Fý½êTGæÑ×óé93ã3
|
||||
¶@Üä±ö¾=øýüÖU·EÎÔüÕíøá±8Å>Ííý½ÝºÕдýIøÀXäÕûûùÚ+M@ýý½ýÙä1@¹0G¸N8OøÐÜ´Ú´ÜÔ,Þ÷¹
|
||||
µW?Ô:QæJKÑ<´üHHÞïùôCÈ8L+5ÉóúQ1î¶ØÅÀNCÝôEÀÆÇÕü½ùU3ÍL6M3ڹʳöæ°DFü2,Q9¹NHJÐZ±ë
|
||||
ý=åéùüýýã±ãØÄ:;ñQÏöØIóé:é*¾=éùôUÓSÓ°óRMTñá.5EÂúÑS×àãÒUöX½Dí:Cº>¿èäU°ã5BíÕýü¶
|
||||
<Päî<¹ôT:8O8NQÝXË3ÆéÇó±íÞ±é¿ïº,ËDöÒXÞ¶ûä³µÂJKÁ8´ý9ECºUûàÃÇSCCà/ÍMÊ,*¾ÑAó³¾U+
|
||||
*ѸÒÄÈ=TÖ.*ö@°òB4/ÉÔUì3:MÎ2Çï°Äå¯ÒTÔQ¼ê>ðÆ.³·ðÂ4C¼ÚÏL¹ÖJ+ñå;IòäÈ=Wð2TâC³L.16
|
||||
HÃ6÷H·0OØMOÇ=¼/ËIø²ýÅWÈý*Ñ2Í>Nʶ¯¸4¯ø>**L»SY=ÒPË*öQÅöÒC±ä6DÌP7F»2W,³ÈÍ<ÃèA¯Û
|
||||
TKðºö:ðâè?UÒºÏCWÔV×àÃ6Í-2ÏKºäÂSáû:<²åÊA¯îöI¾ôÆßÀOÊF;ð°æÊ:,åðO7HÀîãüíYÉ,,OÉ@U
|
||||
Ö¶B´ú:¸.3<NðÆÐµó³ß±æÇ<MÂ4/*¶MÇ@·4³4ÓW¼ìäÛÅ5ýûØÐÅÁó4AWòÄ<òÇðÞ¿=1ÍIÁºÏMÄ0ûï-2;
|
||||
µòæÎI»ø*Dâ37èMQ8H¾H·¾PßóÏ-Q8GÎQæ*æEYñMÜÚÏ=åÌH¿JÏïDÀ.3ÑIó³/*¶ÈÒRÏJ7*öRÏNËDÃ4@
|
||||
¾üö·ìÄ+MìÛÛ¹XÆéÔV4ÇÑãÒú*<ÂR;M¿YðæÏRGºò2ÐMÄÀõÞÏæ*QÂ2ÏLÖÒX9çúú3²R3ߺ7ÍT°ÄÍKÁ2Û
|
||||
æDÀ>ÇÑAó³ZU+*æ¸Þ*Q4Þá÷ë¼õݯ×Ä·½¸áYH1É@ÄÊFëS¼4WðòF*ÞÑT*Íã¯ë¹»,GàÒBÞÑ㺸;:?¸8¿
|
||||
P¯+á-öç=QÏX»SYáÛ¸ïèÃ5AXÓ*ÎUZJG¾µVH×CI¸òêï»ÂGP9<?T3G·×Ëò6Øò3>,óçÑ;¾°¾-5¶+,VÈÔ
|
||||
XÈô*¸>²@DÞGOè-ä4C¼<?>Ê>BRÍNçøÐÜÄTÓL?,Z4î4*úOúT÷ʯÁ1:AÂ2äì:CC<æÃ½³.TÛÀýÚ;PÆ<7
|
||||
*Z±ö<LÚQêÏÞ*õÂÊØRÐæûùãCïÈ@48HÕÚ·WÌÎ3ÊRíÔJü0ËE½6ç¸åÎ=òÔç>µà@O<ÊT»TY¹B*ó´HñüÚÊ
|
||||
æò·Âǹ<ãËK°Á,+òàå,.5E÷ëÈ»OPÄ:OøN¯ZYëº÷é¸5P¸â;ÛÐ×@FÇÎCùºÏHüëÅ1:ÀìAMÅÁ»Eµ7ÕéÁÒ
|
||||
1:LíØÌôáÁU´·ìîÅÈÆÏPÕüÒÕ3UÔPæ¾Ó2¾J¾S¾2*Õöú·ÏíÀÓ<ãUçÐOè;LÂ*¸ïÚ±Aô÷ÐéôÜûFKÂ:ßMX
|
||||
Û¹ËCñWóÙÑ+ððËÃ8@µì°ÛDQQÓ½ÚñåPý¼ØòÝI¿4üìC9ñ±Æ×Ýï?¹ÎAåøü鼿L>æÐVYèéJÕ**Þ?,î**
|
||||
ä+à*ÚÚÙóÝÕ@ê?QÝRÍDZØXðæÅýÅé68DÉÐøøV37ØÂ´ýÉÜÇËDÓÐÐíÇÅAèÓ@üëWéïðÅBGÛüïÌJGû¼óP
|
||||
±ëç=ê¯Q½îÎNPá-ôäùÊï>±¹ýHûÎI;»SY-Úì-¾ÉMÈCøûùáýôËç@NÔé?ÂâG÷¯VÔÆ¯ÑW¹½ú1ÍMHçPLá
|
||||
áÊ×Mî»Ö±øöV³íñËÒãÉC¼ÇSó6çê×÷Ý-´Ã/6D·¾Èõ?1ÓøFÛÚFZºÊDÄRñÅ×ä7ÞòQ»7Ö¸**îèÃ-FR*Y/
|
||||
È?³úT¼»êÍíYíCÝUÎ2øï¹3?×Àä̱̻ñF¯úæ¸/Ź,?ëFÜõÝTï±LÇÓüÎ3>YÚ7QQÑMêÀäOýÍñ5=XìîKç
|
||||
×Ýò=7õßÍÖö@²ôîCèÜOA.ÄÏWíèé8Z7Ú¸°´ï*ÌT=L¸ø²ð/Í=û7½TXÈ04õX-K;Ñ1;µêÛñFYôR,ö>Yõ5
|
||||
ø²òõÛL3áIÃOÜìÇ?´üÖTTÑIFYñ<ÍRS-R;ËêGäHñ¾Á³Âã6íÁRÏÄñ¯¼÷L8ïøÐÜ0X/Ñ7+>ØÓ-öUÕÊûMA
|
||||
UÑMH2ÍF¶BÃFH×9-òͶÕÁØÞïÁ<Ãéü×ÌA¸Úäìí=ÉËØ°TµÝÓÇAÌà<µQÓÂçáÆÔÓ1ÜäQP÷°ÅÏNEÙñʼä+
|
||||
õØÆÉB-Í>ðúʯÞJèóO»7ú¸7*XZ¯ÙðZÛT³ÈÁøâÇEæ×Ï÷ïýÂÁÃÒP:PÏFHõÎûÊ;Pû¶µÖÊÒO¾ôÛõèÓÎKÃ
|
||||
@÷º¯ò¶MÍ»ÓXÏ6GXñýÈYê:ðNÈ-óÌÑ:±Ø-¹4±îÎL×Níñ7E;×Aó³ÔUÕXÚL*,+8+¾ýEGºLRÒZãðײç
|
||||
ØÅرZ¶*Ý÷D1²çѹìIõ;á=èý4ÅÊB±øZÇõÛPCMèêøDõ.Êéò3ßÞÇçýÕòàä:PͼøôE-3ØÚFÖDüÅÐQÍòà
|
||||
íç0×çÂêÉøD¶ó2*.@VÓ*üè?²³ëõÓÄÇÁT/5Õ´XÙÁóÍäÞ5ìÓÏBºÚ;OðؽÜñOLÕýÔ5@¯òZEGÜäߺ<ÉúÛ
|
||||
A´.÷NÚÖP½ÖO7ÊüýN@°üJØÂѵÕçQ6Ïì¹4ð·2S<2Ûý˱RÊNÝÜÒÕ+Vß²*é/ÓG;EÕÓZôöÉÅTNæA0OVG´
|
||||
»»æÞºßÛ@4=ÜPä³9YñÚÞUÝBËÚÎÌ»²û̽÷ï>@·»åã7KÇ´GûDý=ÄAáßÙè¹å¹èPíIPB¯>»TYUW¹;*1Þä
|
||||
¯Ûè³îXñïÁ¹ìÝÕ=õùY<EüäHïX7Çßá2VTYñ¼T°ÍìD´ìPCGîòýÈà.´úDÚ·ûéüÅ6IëîXí7ÙEI6Õ»ÉWàV
|
||||
,ÞÜÒÕ¿ZQ+Þ¿+5@ÊAXåî·ÄGÇ8³3Î×PXRÎLÝ,Lñ=Å=ø²TÖÁóðÚï¿RóÁ×ñà·ÏF:¶<ù+DÂ7I9ãÄ9OϰË
|
||||
5æ¯ÓßÑVLX±ôöMÎP·U2ê8GÌæÐ¯+³ü626ÍFí°ÊEÑлSY-ÛX**î¸,+K*Ì5ÕUÌ47¸NDZÀ²æ:LÃ8SðÈ8+
|
||||
ȱ1ÏPÎúÑN¾îâ;.ç:µÂR8C³êÚ+âíÂÇ=RÎG·*·NÌH¯LÂ18IÜ2;HµöFèòǵ¸Òå7Kî,Èð½4;T±0êùòÊÉ
|
||||
EÏÈ»SYÑ×ZßÈ?5ÔS*¾ó**è+úÓSË8/ð=2;µ.S=QËBW¸â1û+âÆ<PÊ:·K¼ü>Àâæ9GìPËE¸øîÇ=Åñ;²2Î
|
||||
IÁ:WàÊ>?,âÅ:M¿*>æÏOï/HÆÍKQ³Mº.ÅÙ¯M7öôÇÔÚ;Ì»SY5F5X5¯U*B0B¾ñ×X×<ã3=QÑF?UÙ²ÏøÂ
|
||||
ç<¿âR²Ù±àN3<MÄ<WðÈ8;4.Æ:LÅÚ;LÁ4GÀòÆÏîØÎ+½ò2<OÇ8CÀòÞ3úÏM:Ñ-í×ÍHýרúDzÚî;/ÄûSÝ
|
||||
¼,*AàôP+F@UÔ²û,PêBðÓèÑ2ô;Cæ>0:::6Þ?OÈNçÐOÉ>7,>3Â36/Ò=6=¶PÉBç44Føî8Fúé>7·3MÆÖ
|
||||
TôO»76¹1*JêÓ-¶¯âηù08F³Üé?UÓTÓ°ã4ÒD0B3¶ã*A@:BîÂ1ì>¾ÍøÓëKÈAó;áÄèÒ+NT×¶YèéJÕ5*
|
||||
*ÜL*X,¾ùD0ËD³èÄÛ<ÏJO9*üç<KÀ,+T±0ÉK=QÏTáÒ»SYá×°çÈOÉ@W±*-+18:P:XÞ·ûLäÊC±ÜN3QËð
|
||||
1*Ýâ2ÎG¶êÚ¿M÷2Ø.ÉB±Yèéäåì6J³ëË+BXÞÈG5Y-Ï@Þ³Ü3ÑOÇ67<N2=¸>3>WáÌûYY¹Æ+ñ³òÊ×XUöD
|
||||
íÒ3=PÉ>SØNC³DÃU×±YèéJ×É**ä8S¾Iá@8Û·ðÌë,Õð,*Z?,:5*BYçàËùÐÜä»÷èãÉAYÛ¸¿X¯*á*Ñ+M
|
||||
*++8êÖ²éÔKù³4¿4?è2Þ+*./ÚǾM*25¶ß+16îR6Ä+ÞÓ¾Â.ÜÄò*ÆB;×2**¼ÄÕ¿WÇ*¾õ4ä6رâ´Ã,Ì,
|
||||
*ò=QÍH·è>0JF³D82,B1*Ëà/Ð+¾BÀ3-¹³6D²õÝäD1**PG*Ö»Z*A¹î´.¼ÃÕ+XÕÝPÃGÁôêBWó³1ä´ê´
|
||||
:Îø´ö´HîÀêÞÑ÷¾=S¶¾+12ÞF»ÀÃV0YÁôZÊ+ÎöÃLIÌò½Zé·ºËîà?Ô´2:à´æ´8îJ*ÂA¯ïé>6ÔRÑY10Î
|
||||
:ôî*ìÖêòë72ÚÎÀ55:ÖÊOû1²/+ZEB¹:*DúÔ10îFH9Z5µRZµL:>¾ËÁÉ¿¾Ä¶äM,0/üÀÕC²æÎG5ÄH
|
||||
*R/*æXZ¾I¹äÊØµñèϱíÄëÈóD*¾Ôñ>Æà.6×·óèGýDH5*ìè,XNIJU-ÎÓ*òñÛÂÌÏ*EÕC*/AT¾Á+2ÕÚE
|
||||
*ßL,4/ÜÀÕ×Yݺ÷4,:ܼÓ*6*FR¾:*9äVسèÌ÷°ãPÇ<?TL**Î<¸+áOëØ³åÝijëÖÌÛ8*Síº7VBÐ02ì¶
|
||||
Þ+-î0*¶±å7¾Á=>ö4Üä·óèÃUAXÚ¶Ë+.+¾Xá+¯+Ü5ÕWÛÂ?±0ËQ¹ÄêÕWÕRÃ<ÎHÛ2¾**÷òSBJ:J¯ÞNÞ+
|
||||
,Ò2ÚR¿58¶+/´UزçX½Ë6åZ¼P*¾¸-²â+*Ï/-õÜ0FÂÕ¿íýàé8úVßë+-ÒØ·XÞÈCUäêײH7D±Þ¸ã°ÃÈÊ
|
||||
4ó¾åXÊëC0F²¿E<¶À+B4A²çÐÛüDµçÞ³ôêÍݶ*¹±Ý*JôC*»0*ÊåáËÜ÷ØS+1*¾B*ïÄÅ-*ÀGK¿Õî³á³å
|
||||
1Þ·ï4äÊC°âÈ÷²èÒOÁôVC°@VAVÐìêVà2¾Ï¶OÉPëóÕ3IØP+BI*6×ýá*Þ6¾LÅõ-+/NìºëÒ¾-*îúÙ5-²
|
||||
¾-äÍÎÞUöDδ*:R0Ò7Ê/*Ò-Ò.¶µñäÇ5µXÛ¹ð8Ü,*YåëׯàÀ÷à/´?*ÚZ¾L¾±5¶É-K*àÉØ:ÂéYùUJîú
|
||||
éÞÕ+*î?,î,,È-à-ÚAYáÌG±ô6ØÏFÛ´7E´êÔ˱±¯ÙVÇ<?TÒ-,21¶Ð*Ã,Ó+¯+³,16θJT+5¼öÐÜ0ºÛ+
|
||||
*èÓUÕK¾-5Jܺû4Y-ã,ê,*LÛ5ëúسçÄûØO5@S³TOʾ,?0:,Z>îÀ-X¾Þ¿.FJ+-OÈÓZ¿1½èÕ¿Õ×ò;¾·
|
||||
¾U7BY±äÊGÉ´*:à@â@Ê7Ô/ÚK²áºãTó,ÍUб,*;óèåøDùãéAYÑ*Aè´LZJ¾ÆK¹´º7ÒÓÖËZI2EåÄëØ±â
|
||||
ÀûàO°×¸O°¿´1ìôPí8C8ÏгVÖßÉøDÖ@1*Z¶óæËUåìÛ=*:öîË+ÞºøôçÙµ**ïËÉPVÕ**Þ?A*RZæäãÙµ
|
||||
íÍøóF*¾Ã;=´ÊC³éèÕUÕUÖ7E´êØ7*¶´éÌ7506AU°ÈÒÒ*¾T÷°@Üîúéîå:-6ÖÆßT*¾NFîÐ0<è**ûÔ<°
|
||||
ì¾ñ¾2=æ0Y-Þè*P+X2J¿*.5/:âÎ7ÓÛðD×´W.ìÒ7²5+îêØG-´éÓTÒÞÒºæÄX+Á@Öîúé:.ÏåűÌúéìS*
|
||||
JÍ,0<¶ÂâEîF:ÐLÃÒR°7Y-Þ,*LåP+XRÞÃ0ÊÕSZàÈKÙÄë+Ð/ÔGöØ+¾ÖDõÔWEµêÎGMÄÂ÷Ø?ͰéUàÒ³á
|
||||
äë÷Õ36ÉQ+FõR5@ÊèËG*Í1ßBº2¸¯9ëö>*<´ÆÆ;ò:.î-DîØCSJ+*ùJE7¹ôÇäHæ<Ð0ß¿5¶<ôBFöÀ-M2
|
||||
D2G¶;2Ã..***;,8Jß0ÖÖ±AF.¶¶*WôÃ,/ô4,V±D.@Ú÷ÅDÀT¾5¾RGR¾¶Q.Ã4ALJÖ±½Þ<Q¾îJJÂG0Éú
|
||||
ØÏ×é-¶±µ6êÖ±æÎOÉôJç8;¾ZÙ@Øô,*ºD°Þ´ß¸ã4Ó6æP°?ES¶ü³HÓÆ³Å×±1ÓÊùÜûÉ>ô*:Äô*4À´¾GÏ
|
||||
¾äÃè<¿H@é´Â´8æ¾ÉðÔF¹*êQP<êYÅ5ÒÕÇ-ÎÍJÕιüÞ586KæJ>ÞÃJFJÀ4+1Îìò,ê×ñS·D:,ÞHIÅFKK
|
||||
*/LÕúϽÒ;Ò,Ú*Âè¿,¹LR=¶;,¾û/ÉF+À-X:òÌYðéNE´;*¿*Ñ*;*ïä;*¿*Ñ*ï*ÐëØ¿C7Å8H»÷ð7+Â
|
||||
+ƺöà*Ä,L*úÜ»úöïÙA9H´ÕÌÚ´ä¾÷4*:Û¸/+¾X-+ñ*M*ÐVÛKÀñYñêÇÙÒð9¹/Ý3¹ôÙ-°é¸Æ+ô2LY»¾
|
||||
òê+VåXº¿-D:7º97Jí7¸9âõLÉÆÎVÖYº7Z½ï/1Äî*;X.à+<FöDÖ¼8*<>çSôêÓ±ÓAë+Ú3.ß-+ÌúM7KO
|
||||
ß/J*.Ñ-Ã,õÂÎPîL.*ù5@·µB1ÄZÃÝ0ßPÐ9:Þ*JGÞ/3¾ZÁ*?ëLV×S´Öô*ïàØÅ+*Ù¯¾S´ö´.ÞÙOMäé@
|
||||
WÖT3SÑ,*8:J?¾Ë<³ÉØKöùYÑê×áì¾ûÀÖ8æûæé.-ÙQ<ĸ¹ÖβÞ42å¼»¶¾O<×/ó5DJå1À·ñ³1Üîà2*¾
|
||||
ÇÀ5¿¶¾.1ÜôJôN÷ïOSÔçFßÕ9ÊÈNæG2îìIT+X*LóJÃÞGÏÒ3ÚJÁ*¾°ÇEJ¶¾:ÙúØ5NE.JßÂ3U7B:2+¶*
|
||||
*¼V×±áÄ/ù?60=´6ײñíZW*J·W;Þʺ²6º5+îêÔSÁ´ê@UÒ.?Tó²µ2¾´Sù@LõúéFèéåÇäÞ8ÈCùëECRµ
|
||||
Ü0Wë÷FÛôK9UÜË>RO-Ô0LìØÀ0æä8ÃÌ:7×üFß3/*ô1Üîà2V+èò*F3Â-N:/¶Ý÷D,ñÒÛÐ>»:¶·Ü*ºÍ.Ö
|
||||
LîÊõ¼ö9Ó*A*ϸÎ*ïÌR4?XÎK*J×â/:¾,á9AÄZËY-ß,è¾ÖJÙBCTÄêÖ5´E0îå<XO¹ÔçËõRD·ãÈì2D²æ
|
||||
,×U×íº7¶EZ=ìÜ?*ö³ãÀûèOU@UåâP´WEC¶ü³üãÁ+KÖ°ÝÛ3OÖ:èÒè¿ÕKíÒ@>æ;æáRNÞNù+7ÖÜIFJ6D
|
||||
Jà=*»À²ò,À¸Q>îà5X6¿Ûèî:¾=¿¶¾.JéÒõ¿WBÏ7òKB²Î-I¾ö/æÌÇ*ù60+51ýÏ4î,:T1*ù+¹LRÒ¶;
|
||||
,+*ã<AFÎúïà2´ö³°êÖö×J*J´ºäÇCÉPWD²ãÆ+°+,M*X6RéÙMM86BùËU>Ú°àÄ7åǰæ,æèÒÍG7¾E-Jï
|
||||
àÃ51îìÖGEÔ5@UÔNÓT;ë¾T>¾îè´ZîúéÐ3+Rü´.æó7å=<Á.Ì.ÔIÐ*Èü<Êêéò4:ÌÑLX@×ÖÕû/+öµðà
|
||||
·ÙPWD´ü7Gºöê×MQ̾ù´RäÙW54ùöñ俹èÊ9=üEÕJº:X.WV¿Ã5ÕÌÜ+*ÇAYC*êU/îøôëáµ9I¼úºÝ¼úò
|
||||
ÛM1XEÝ0ëÖYܼ÷ðã½÷¸09ݼúøOû³ÅMJàOÉ32иWÑZÞÆÙÉMÓÚV°¯Y-àäÓÛB±çÐ?-ÔÉA4P6ØJDåÄËØ±
|
||||
ãÄ35äÃ3EµÔµñéÙùõïÝMÕWØðâ̶ëºòÐ3ù/Ê+5´ÊØçFßÄë+²1,¾µ=ëQÖ»0*Û¯±ôUÔJ´NÓ4?XêLÛñüó
|
||||
õÎ/åÝ0ÄËÕ÷°èÖWÉäVC°ÞVF6SÉ´WZ¾QÑ07×ZàðÓóßÉ-ÕHýûøóÛüøê¿ÑԺׯµùXD²áÆßð/ÌËÓ?+ÒÕG
|
||||
*Ù-**î8*¾µÑä6C¯ÜZÓLÔ¸¯E8öÐÜ0Æ7YÁ±K²Ì7Ù³èØ¿-Å7K¹PW¶Ë±ñäËD±ã20ôî3í+ÃÔµõøûýýüûí
|
||||
1Iº´9GD°ÚöøßUPÂS¹¿éÕ.ZÔ0ÜÃÜG3E11ÌE²Þ²ç<0Ú»UYñäÆ7MäVD³è*Ù;°5QXFµ+µÔËD³ëPËGEÕÝ
|
||||
ãÑ/-**ILíííí÷ùõYüý9°ñÖO¹Üú¶é¶ò6D¶ìÖÃÊ¿¶K*<XÚZ¾R*8AÌF·íÖ¯5´±ïâËEA.*äð=³ëâ//:
|
||||
·üý½RY5:0í0ØÚGºõêßÑQYH¾A*ÞëÏMåXÛ·ôòï¶UÉÙå¸/¾+*PáÍïìîùý9*îûç1íËøòåÀóß¿üÞÛ¹Aâ:
|
||||
,*õçÙµíÜS*åÅYH¸óîÛ¹1ðÃ3B¼úöó¹**++¾YüY-Î9É*=P?M+,6´FÄ¿Ö,*:Å3ÚË¿¿¿3¾¹8Æí><ÓÈùÍ
|
||||
ÖÊY¹°âÈCÉ´WE´LWØÎ³×´WFÙ²é@DÞÏSá07èïó·,;ó³8**,VBP8̼6¹ÆËÍAÜE´èÊý<>÷êËÄŰ9°5¶í
|
||||
L*FFµéÔ³ÙPWEê´WE¶î0,OF·1ðGýÕÛà<¾ü¾+ºì59WUÅHÚóU<¶-Xõý:ɵOô³åýîZGÌSKH+R´Æ<ýÐ÷D
|
||||
µÔVC±æÖ·é0ÓOÑ´ëØ¶EïäWÂÙ½éÄëD´éäóæñµÒïàéä*Î;ÌÊ¿ÅI¯ñýûͽ8F´èÏ»YÀøà;ÙÄëE+AX.J;
|
||||
*º5½¾êÒ¯áPëÞÍ»5QÌÚJF3QX,YñËç:Ö¾GõR5úÀSÛ×-Æ1ßBÀ1KÕB7NæK2ÞêUÈLFZ²H/¾Â75:ôBF:-ç
|
||||
áñ7:/3ÖA4>Ö53J/EÞDUB¯B4Zê/1ïΰÒPÎL*+ZÕ0ß¿°-ÍLA¹QÊÖ5ì±ÖZÈ+ÖIK.ß8Þ¿ÂÚ+ÀU½¶Ï:1è
|
||||
ïÂNX¾ã¿DFÐÈKÀ<¾4ʽ3N¶ÏGÉöØÞ³TôêØöîÎØRó·´Þ´Â7ÚÃ×S¹²Ñé½ÕßÓÕ·**8²<×·õú?´ÌI»ñܱ
|
||||
á8û@óUAWÂKÒê*ÞNE¾5»*ë,èáûÊÚ·ïÜÓ°ÝýD9ÂX·ôêK?ñëµý<ÃG*ÂÏ+ÎÀÎ7.èÞVÙ;Øßü¾ºB*ôÂ,DÕ
|
||||
ØNJ¾Î¹ü¾6N,ïµÜ@NÞHIÅFKN*ÓEÛÞ/A**O+ÀQãç¾CÀMF:1JIZ-9´:¸<?Ò5òµÖîJ3X:ÀZ1îJLì*ßÓI
|
||||
ÚRÆ3+Kõú3Ç*Â1ÞðâYÌ;K3JÃáßÝ**QØZ3YñçÐOÙä7Ú¶íRÙ´íàÄÁÛ¾Ùç¾D¯0QÍWöüÏ?¶õ³K*2LÏÖÈÇ
|
||||
A×÷ýûåE1X¹´Ý0ïI¾ö,èîÚ·òæÓE*ZòäË=µìäßÇUåìÚ¶ïæ¿¸;*åÝP:.9.Î4¼±å¼ùÀ5áCY±é×5Yîäé*
|
||||
À*13:ûVÞ/CÂ@Òù83BóVóOE3*éí¶KîKF¾NRüèéXî*3È/¹Ç¾åÚ>´BF»-ûGVRO¶À2ÀG¾-3·-.ÕüîLK8
|
||||
ÂÞ;Ç>ÖÚ÷ɹN2,Rï¶öA*ÞÇ@VàéÚÚ¶ðèßÉ1YGTõ8ÜJ*Á1ÍÛ¸/+üXHºôì3ÒEÜâíóÒéä*>À±ZK9ÅÝâä÷
|
||||
ŵü¹ôéÌã¸Å+ã×ÁQíܼ1*Þ÷ïáµíܺ÷ô×¼üöç¹¾,åÝP<ò8.*5LZJõ±Y±ê×õô:@*ÔÕ220´ÍÞé¿*ÆD3í
|
||||
JʰåÜçFßÕÍNëÃÕG2?S¼úÏÕÛR*¸¼:Ê<+0ËÀDÓõîóB/¹î³µ2K*VR3·-.ÕüîLK8ÂÞ;Ç>ÖÚ÷ɱNBºSï¶
|
||||
öA*ÞÇ@Vàéú×±çØ¿ùÔëDíôWE´éØ·áäÕ¯ñäWE´êÚ/1æ´+ýÌÝÌè÷Õ·**.:¯´óðïÎý7×SëÖó¸NöXÖ¿Ã5
|
||||
µ8Û2¾2ô÷³DµXÚÎøç¾ñYñÃÞCíËG>±Ýǵ°ÎìöQJ*AíP4ù,Òç/1î,ÚWë÷FÛôп-+¾X;ʹêú3@ç-¿Éñ/
|
||||
Þù/0Æ,Úíº7¿·èì+BÒ3FJ+°û·À-¿ÎD²>½EàÒ-ÚEO¶Á2,*Ò-3·,.;*QüîLK8Þé;ÇÒÕÛöÉETC´RºSï¶
|
||||
öAÐ*õ5áÆòé*%
|
||||
d
|
||||
432 139[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 7506 string uc
|
||||
*Þù1¾õ½¼íýúÜý÷»ýñùüåõûÍíùIÝõ½¼íýúÜý÷»ýñùüåõûÍíùIÝL*%
|
||||
d
|
||||
/sl 60048 string uc
|
||||
äÕí´ê9+¾Ñ,Îê×³ëØ¯ñ騷ùÔ7Ù´ì²E´ëØ·á@:ÞÝ·éäËE¾¼çÑëÈ*N+*XÞ1²ºCYÝý½*¾ùÍÍG·ñèÁ-óæ
|
||||
ÐWáä7Ú¶ðêÚ·òä?*¶·ñâ»ùPÌF·´ÌFýýY×á/-öåZ2ÖÞ¼¹Ñ.ºK>ìê+ZåH.Þ7Zå8*Ã.ʲEôÕDF68ÞØ@ö
|
||||
P³K¿8O-á-;*6õÐ4->>ÇÐNJ1¼*ï5ÎGAòJ²W22¶J+P²-»245è.8Î*Û¾Îì+¸RSÉÖMí¾ðÒJ·ß;L**A<ð
|
||||
.2XûßÃÀFJÆM<SZ·Ï0µÒ<,î*YTFXûO»àÃ@N2*ÔËYÝÔ̼7EÁPëD³çÔÃÒÃÐ+µÏ³øËE´ëÜ¿5.ÞìØ3Fʼ
|
||||
ñJ·ºW2¾<ÆL:WæäÅ꺽øéÛIYèÊC¶´â@ü¾âËMµ**åÇ518ÚÀÙñY¹I,A²ñJ+Þø6çZ0îè4RøÉZ<ýÁÊP;U
|
||||
½êå=°öDÏÄW*¾³-µ8Ú¶¯2Õ²6â7,ö¶ïâÇáÔ;òùÐõ˲Ü@.ÞAæ¯Õôõýýõ¹öèÕ-9¸WD²87زèÔ³ù@ÌÍUå
|
||||
ÌGºöîÛñóæÏ¹õ8ܹô@î³5Ö*ÑZÞÆÙÉSÂä2ÂñYñëÜÇ=ÕÌÛºùFH¹ôêÏUõ8HÇ1Y6¾Ý±õXH»õ࿳éíMÓ<Ñ
|
||||
Õ/+ö4+ýýÕÝGøóèùæ¸ïÚ¯5Ü8NQîâÏ5Òîûú÷áQíܼûRI½ûðúØYß.åÝ0ÉCÉPWÙØ³.õWÙ´íà*¾ÙK*+AX
|
||||
¾EÄëXÝO9ǻ˱îôý½úêѱõÙ³Àé´7D±âúB¯áÄ;Uô6DδÊëåÃ=ÕXG¸óæ»SYñèÐSáÄ7Ù´íFF¶ðâÃ-AìÙ
|
||||
îDî@0ÞáÃùôËÚ×î÷É¿<<ùD×+ðº7X弸ã·ß±ÜWذâÆ?±ÔÊB±@à0Ô/úÇ·ó0*ÜÒÕϵíÜ/V-´áè¿êÏêñê
|
||||
K,üëÙ¶óæÐõÍ8NÆêéú3ÓýýÝÕ¼û¸õV°Û¸ôêË-1×SÁôÊ×,*¸0WØÎJ4µ8ÛQó³üìGºöêÓEQXFËÅEµXG¹õ
|
||||
îÛñóäÏMQÌF¸ô²IÛó÷I=:×Õ·DÅýýµY»ùóü¶à¸øòçÉA9áUAÌE´êÔÃ+0Ú-µï¾PXG¹ö<ùD*û.,*¾ò@ñ<
|
||||
38¶Þ7K²ðÕ÷ºøòëÙµÍH»0íG¹óÀÅãGº+,;,HYH»÷üçOÍHöÈÊé2*JàáéF¸ôéçÌUÅYIõõíݽûòã±1ä/Ô
|
||||
-·/*°ÌÚ¯ÞâÜôPÞìJÞ÷-*òQÙîê6ðÇÁ0ûDØÄËÙ¾³QÕXG¸ðÞ»ñ0Ø/2ű¹¸óæË5ÕëGÛÒ¼¸U×»ËRÀIÜäÑ
|
||||
±Í̳سìà/÷÷¹ôê×Mõ7E³DËD³éÔW5çH*¶û³HÃXôÌB¯AÚŰýL¿,¹ê-<:ùä²2V2óL/EÞDIî¿´°åHçVì
|
||||
ÏòÀ/Ѹ±1:X:.Jê¯2BîØCSJ+*ù溺+:¯×±Õ0ß¿ÈD;Cé2àÇ@BÀ8À*ìÝY=åÐ/Ïǵïàæ:Û·ñâÃ5±ñìÚ»
|
||||
-Q8G·ì²D¼¾éáÜ>ÙÕ÷PýýùQI»ùñ4ÓC±æÖÃ5Y5+JôæÇ5¯5Z-ê,*êØ³çÐÛüD9´:¸<?Ò5ò1×½¼8·ÀðB4
|
||||
ÂX÷×ATµ¸¿÷+IC3ùéOÖÁTäºíüOèÇÕ3¸å-0Æ>µã--FϾäÓ@ßÌû+*Û°ËL=ç»ÀîN5VÔë2ëòíÕ3²æ8>B»
|
||||
5QX?ÙÊ5µàäßÃù´ëÖÄÒí5â¾<ñD9îçýýúáQåìÆ9»ôêËÕËÖ+¶Oêß5Á*ÕÝä±X4E6ÌÜ¿üDóVóO¹Þ¯,KöØ
|
||||
AÖ¼@Þ×±õÛKõ¿úÖU/ÝױݻßÇÕ?FÆ0Ü1-*À×1ÊÌÛÎVÖå6.ÎÍÑ*µØ¾Ô±AÜäÕµÝÄÚ¯éÔ**ÜÃÔ·¹öðãÑQ
|
||||
YHºüÌG¹ôâ·±@Ó³Åý@ËâÜä5æøýýüõæ×ùíJÛ¿MõÌH¼-*Ü9ݼûöç¹µÌÁñÔWE´ëÖ¯=ìÜÛüD1ËÀDÓõîóÖ
|
||||
ìDË=úø¿Ã¿.¯âÕXP=ÇêÀDù/;ZÎùº7V½ñ,Ò¾¶ô¿+À¿ëà*¸¼:ÊC-3ÄUã+V¶Ð/»µ1ûù³B8ÚµíÞ/Qɵð
|
||||
LÕëÛºøô˲·¼ùòÛ=åëUöNýç>ǻ˶ö@ÜäßYíìEæ·ööC½ýüûE-R,¾üô×MQXºÛ¯ÙäWÚéYñê³æRü´ÂSêû
|
||||
¿Þã÷,îË»+âË»;¶äMêìÚÊíêÏ2¹ôÎÊûäÜÇ¿àÜ*³¸µXÞéJâW5*ôÔôöåç³±åìøñ.=³ÂúÇÈ+·ÀEÒ-W¾*Ö
|
||||
AíPTý¼ËUÑ@ËD³èÐKáåÎSéäËEµKµL8ÛÆ´½ÕÌÚµYãñY3¸Nô³H-áýýóµÕÌÛõüçËÚ¸õîß-÷LçOHºï*-ó
|
||||
ï³ØWD±âÈK¹ü³Xè<ôæEÎâ¼Î½*ï5ÎGê³W¾êIÁKÞàÓÕ·ï3¾°å¼¹Ñ.ºK>ìêY³¶öä/ºí98:,ÞìE?ÝÎJ1ô
|
||||
êYJRµÜÄ×50¯B¹W5X²+,J;+=ëAØÎ³ÝPÒWEZ-çàëúسèÔ¯é0ÌFBµÞÄëÏ=Éü½Â><ùDµLóýýöÓUåìµíâ
|
||||
ä7Ú¶ñæK¹õîãÑÕæ´.*í×E1XÙöÞñY¹ç+ZûS2ÎéEÌåFFQ.Ï?Ñ@ÉÕ¿³/*±³>7ز+*´ËE¶í0××Û»µçùåÅ
|
||||
K°YñY.ýýýÜøóéW°¿äÖ/õKµïä×¹õ,éÆH»øP×WÛ·íÔãô³µKJàOÙÀò²ðÕK¶ïÞÃ5A.J࿹**îWZËÁ5QX
|
||||
Û¹÷*ä³òñµU:×ÕÇEÔåéÚøó·çÇMQÌF9AÌÚ·óìçáåù÷ùåÍݽ*ý/*J½üöãMAûÕ»/¯¶ü³?VJX3J:JZJÊW
|
||||
¾ËÍUå8ÞÜôÝùÈÊé2¾Iæá麸óçíìéÅYHÀåìÚÖÝîHÁµíI¾Ï³ÞY**ðÙA9ܸYèéæD´êÀ*L*8J*V¹.*öÍZ
|
||||
ùâWãô³¼2ûýüëQÝüÚ³AØPéË-Õ7E³Ï1Ì7Ú¹øòãÁõÌÙUåXÛ¶íØ¯ùÐÜÄ֝鴨@2îâ+T,úD³è8P´íøÐê
|
||||
Üä7ëýÝIûòé¯5ÍõPåFG·îܯÑ07DÊôËG»øäíàêßÙöÙYó³/*16î2-BE³E·ÙYúQ°Xñ-NûýÍÝúòé7ðÁóè
|
||||
/Ì/Õï´éÒOÙäëÚïEMÅÌÚµ¯3+õYèéêÚ·òäG**JÕ:*æÓ1Â+æ´SÕÙµÙP°Yñ6Îûý½Ý¹òè/¯ÀßçÏ1ß2XìF
|
||||
¸öô÷ñÅÍðÑQíHºòàîL>ÜÒÕËO/ZÃ*6,Ò-ÊY··ñÖKã8Ýè?Ç»ËÑöõý½ûêÍUõÀû×UQ8F¶îºF·òêçáåÍIí
|
||||
µÍܺøòç±QàÃEÏ*ðÜÒÕSµëÚ³éäë+*Fξ;¾3+âèÛ¼ÊH<ùDÕ;ðýýöÕMÝì-åùÔëØ²èÖ×µïä×5R5éôóèÓ
|
||||
EµÌE³ë,*ÂÙ´½èéÐ**?õ³ºü0MNô³<NæöDÕHû¸ÝôÜ·áä׳5Õ8H»øð÷¹ôèÏMÅìF·@ìE´éT-KÙ½ó³îëÓ
|
||||
ÑÃ/>+æ·ZãùµÕJ°YñRæüýý¼øòè¿ëR²,Q8Û×óïØÖ³3õWâDZUX=íÚ»SY±ôê×Uµ0:*::îà*à,ÒÛ»±ááÍ
|
||||
@CÕ;*W2ÅÕ·òèÕÝ?Õ8ܼ8ZJ¾*û÷éÅ9ðÙQÍHºMêO3Á5Yèé>Û·òäËEA4Î*:<î.,îHØïÓùÈëéº7ëýûÙÍ
|
||||
Ìû¸´ÙXH¼üü÷ESMùð×EÎRÊBØBÞöÐÜ0Ü?**¶±*Á*?+O*¶9WöÓGãô³ÜåùýüéMÝHEõºQíH»÷ì?PE·íÚ·
|
||||
¹ð2A6îQ»7¾5*RVE2*îäé4,²ÙºµáÕì>CÕ÷*ÃöýåY¼¸ôâ·áº+*8íG¹ôèË-å7²5XEÇBɶ¾¿YèéXFëG,
|
||||
ÊÜ·³9?5ͼAGHîKPYñ.Jûý½Iºòë3±ÃöÀè.Û·+*<ÌÙðó5Ƕ;4Yèé2ܹöÌ*ÞN¾Ú¹A4Z:Þå3?Û·÷úã;E
|
||||
ÔýæFÆäéú¿VýýéõH»¹Ó6Ïݼúð/IÊIÊ,6+ÊNFö/¶õO»7ÕUÅXG¸òæÃ+¾¸-*/+?*ÜÒ²ãÚÕµ½½ÝXYúóÙ>
|
||||
0ðöDçZWºË±ÍÜÛï¾õì×UÜ8ËRжÎ41,JèÏùÐÜ0àG***õà+ìB¾ÝÉ4¸±íãÇQõìáéõYºîÎæJÉ6âäQöùý½
|
||||
üóç×¹ßøÞ»ùôWF¶-*ÅHÏ6Î2îO»7ƹղÏ+1JÞãÓÉØ÷°íâ¿ùîâÏYýHü¼ú4ÚïÒéV.¶û³¼MãýýïQÍXÛúÃ
|
||||
õLè°:¾Ió³µ*:Æ0â/+Ú¾*Yõ;äÖÜÅ-AìÅAÅ8û¸öîçùüøÁùÓTè/+QÝPƾ7YáèÓYíùWDµ/2³¼Q:ïÀ,¼Ó
|
||||
YÉ»ø8*JGÞ:*ê5.B,î*ó;ò3·¶ïß1êÚ¸òéÝ͵ÝݼÂGÖNT78¼Ë¹ïúݽùåÓUµÌQÜÁõ*;<B¾Aó³ÎìC**¹
|
||||
O*A,ÞåË=õÍMÎÌÇùñåÏIYÌÚøôü»úøõûÅÝ7Ö6ëòêéÂ7ò1ÜPNåºA3µCîO»7ʹ+*Jì¿+J·òð÷Éõâ-ºF¶
|
||||
ðà+>×Ò³ÂìF¶ïäáÖÛùöðëõýí¼´ñé<Ê-QÜäùêýÍÝúòéÏUçIçÇEQìÒß3QFÖ¾¿¾C¾Õó³QÌÃã×±æ²UÇøÌ
|
||||
º¾Å-ÅXÜÂBËÈôßÅQÍ8ûøôïûºùòñõýY¼²,VîÎ-Yñ½üýÝ9ÜøôçS´Ü@íÎß7*H¿Ý:¾Qó³¾X.Þ>J*¾ÕÙ¶Ó
|
||||
ÝVòÚèäÆ÷àÊåëF¸1XÞçϱAìIÄÈËùñæÍMåìÛ¹÷ü»ûöõùùåHE÷ËÆã¿Õ÷úêϵåÜØN¯²ìEµQÖ@òÎ,:,Ï4
|
||||
ïS»ËïéÕ9Ý5+îüè3Ê5ØYÓºG¶á¸910Û³KÙ1YI¼ß-+.XÍܼ+/õ8üFGÕüºÂ˹9YHüóøýõõíUíãÄLÒýüÛ
|
||||
¼õèÙ¹µ7Î>EµìE¹+0¾í*Jãß+0F*¿Aó³Þì/*ƹ÷àÁûMͯOµô7»°µºÕWàÅKÅGÇHè5õâ1FØæë»éX8»¸Ý
|
||||
Ì»¹ôêãÍÝéµý8½ý½üåMùìü÷áåX»ùõ4øHOâü+ºá/µ9îO»ËÕMÅ8Û¸òè×ñìèãéR:MÒËÛ¯ÚÄ1ÕüÛØ²ÍEõ
|
||||
íØ¸íPÂÅò·5µ¼ÞéÛÒ̽ºíÓ¯¹íçßÍåÜÛ¹ùÜõ³ÚØ;½ÍüÝõÍ9½½úê×½õëAÑÁâUJ¿ìÞÚöÂ-ж-*?,ÎìÍø
|
||||
Ø+*½µXÛ¼2-Dòæ¹4HÊ@°Þ¼9¹ßÒQÑÌ»öYàüÏÙ¸0·8Â1ÌÍUåë²üýù¹õÔ3ýWF¹÷öó»ú÷èÕÁ´ËÕ³íÚ½»î
|
||||
óïÕÅìÕµÕ8BCLä@<Ë+ãÃPÂìÛ2¾Æ¾-,*óHÓÕ·¹óæ»ÁQÎÙXX:OÊF1½ÜÉÖ=äECíâÅ+ÅôÇQù8H@H²ñúG¼
|
||||
6óßÁAî¶ýýý½ü÷×ÍÜéÛÐûUÙ¸û÷ñ¹øñËù¼ËݺíÜH¼÷è×¹ÕXÖõéÕÑSÏ0áÓ-ôì²ëG.ºSYñýüGÚE9Ñ·ïº
|
||||
ÝÄò.°Ûúµ¯ÕVÕ°Þ½9ñãê79´ÚÕòéÒíøÇûÞ¯EQ:Wæ<¼ý*EýÝIüõÒé0ûçÛ,8̼ýüùå¹÷òÛñHÝHºòÌG¹ð
|
||||
ÆÑHÃØÒ-»Bíݽüüû-ýä*83Þ²ÞÉøDÅÅÏRãÆ½,úä×çUõîäÌPõ¸ÕÃ39ìVÖ°ãìÕðÝÉ==´ÛØ9Å»AO¾BÙ´ô
|
||||
ÛQÁAÝIºèâGýôÛíÐêAÎLý·µõøûùéÍì¿ÕÅIܸõí½¹àQÇ<GTïE·îìC**º;*A<îO»ËÙñô8äÚϹQôP/HÑ
|
||||
ä;êåÒGíØ¯99´Ú¶YAëöZã½IMäêMUHìÙóðÀ;ùÚÁQÁì8E¹û8½ùôî¹9GµÊ=ÙÔ8ãÚàõÍõâñÕýüÚùõÛ»íÎ
|
||||
HÁ°6AXGZõ:*ÞÛ=2öÑÜäÉ·MÅ;äÒñ¹ïÿøêèóîçXùòà¶ùØÓº×=¼ëײäÃMEôÑMU0ÌDµæ¼G³áÃ;IüVF
|
||||
´9ÌݽüóÕÑ»åÕ×¹µ9LÑÃÁùúûñÍYYÜõÜR²RÄñâÃÍÃ*FKظ¾56öÐÜäíÓ±QìØ¶ôPøÎ¯?éXHEZÐH>éàÔ½
|
||||
ÍHÊÕíO7D²æ¿OMôÃSEÜ»øñÜûúÞÛËU¹äUØQõ1±TééýùÅíÓ½/RíÞÂ1E¸Ë²Y±íÌÜúëä²G·ñ,åð*¾Aó³H
|
||||
ÎÞ¾+ý+ʵÌéù1ÑRÖÇ»AõÓ÷PO4´±ñæÛôÚZGɼ7¸°AX¹ôà°YͼêÝT²¶òòáóÁø·ëô363´÷ýìýûîK?X·
|
||||
Ñõ²3ñPÏUí´O8í/Ê1*ÜÒÕ+º1*ÞíÓÁÔëGÄAɸÚÌ·9µËµçÑܵëÂ4IðòÙ×µä4óèÀ2ÇPóýå?æZÛ¼;GVÖ
|
||||
H;ÜáÄ6RõYýýüï+µNæOØNÇïÞ¼úÚǰîXJL40ö×Ü@àäíÏÉÔWF½KÙ¸ÝÒÉIµÛ¶ä´XÌHÄ=G@²1ÏíN3¯K¿ö
|
||||
6Aô-UÀêö9ÞÃOûìéKýÜõͼ¼ýýýûéBáC-äÉCNBîJ¾÷Ü÷µíÚ·éÔëEÆúBùæ4ýGâõÇ»7âEÍ4.î÷ìÛE1ËÛ
|
||||
ÅFÛRÕ¾YYYÜÕOÕAXÛ¿>+ÌùåOØò@9WöàAø·îB°ò·:Þ¿ìñUäéûáÝIݹåÍýºéSÝÇðå¾÷¸´VÖZÞÚD¸ïÜ·
|
||||
Ù@¯Rý÷Cûú÷ï5ÓõLèÈAüÒÕ¿ºïS:Y*J;¾åÉ1ÍG¶éÚ;òMÏÔëúúùì¸Gã»ø.ÌêBWHåç·´×ÈãEåè;øÁ÷±X
|
||||
ñWM¸µ+WLÔÌý»úHý½ýúßý?Õ1¯TõX*û+Ë÷ºøFüÒ×;Pï´ÝûÒüTéP,/ܺYèé:KÀ-18F-B,R1î,ýË-Õìß
|
||||
ÍV»YèéßíÄÙ;HÍæZKÉG=T-åãÌíÍýZÙÚIùêÓ×µ8éîEÀ¼ó²ùôã½AüCôã3ÌÚ¹AúZ,îJ,²ßÄÌíµÅ÷R?ÜÒ
|
||||
Õ+»¿èJí:ÞFÞ7/¶»ðÒ·Éæ²êÞX¹¹ôѵ½ã1ÌõÁBÏLØëÅYôèM¹´ºúññÚÛôÓ?á÷T廼ËWÖXÒòâ7FÚöÁ-Ä
|
||||
Rþ;³HíIð¿2.+úSYEÛTR¹:+³+-+HXD´ì@<7ÉÖÉì7Ûô×1çÛñ2Ѱô6·³äÚGñèÂùÌ.·ÐIíôϲëÆó°WQ
|
||||
â×UI¹¿1?+ó+M+@Ú½ÆùXÞÞÉøDÖõÀ×ÌE¾ÉÙÄWÚÄSëHôÛÙÅI7óíçYÛYîî9µPºBO½æ6D¹G±Íµ7ýèÃEòÙ
|
||||
VüJñ+úɼñ¿1>îQ»W<*îøôëáå9G¶4ÛRÓ²95õü¼ºÍÛôUߺ1µâå9ì=ÅÏôôÓóTÚ°ÏPòÔX>KS+æU2¶³1?
|
||||
*Ö<¹ý4óÃ0úSÝ0.±+*YæÎKÂ2=äUåïçÙ3³VÜÎÏù÷çÇ-´çVڴ̱ôòÍûܳ¹>³ÚAî;@¾¿36ÀóòìÝã·¾íô
|
||||
éßéÔíݽ*-*ºFµñæë²4ÔYA»úúïPMXXìKÕ75ôSµîú3½û8¿øßYI°´U¸ü½¼ß*Ýèé*Ý;*ßÅYCÞÃÑ?1B¼ú
|
||||
øóEX-üÀëºJ·ïæ».T>UÕé¹¹ìÁÝXóè·¼.A8Þ½*ý¿¼QâZ²ôÞ8ìÂÞ¿,æ¾Çí19ÆíÍøØ-Q¹Þ±A,îÞ-,.ºÝ
|
||||
¼ü*46ö9I½õÌH½*+06åã×áÆÑåÔVÃDÐóäËEô0*QÝãݽ¿´Ï11Òô,<8Öë++T¿Ëõ9ÚÅíÉøDæõ<*¾Ý±/î*
|
||||
-4FR:J¼÷êGºøôËÛ÷¿ïäÛMõ=Ü·ÀÍÞ=**+1*äêîݽüøï5+¶Ô2A2*IíµÖYÝAó³ÎîO**ÁÅ>Þ2@ÂR¯*¾J
|
||||
NBJ@8ë-<º2¯àÂ3翸Á,µ0:L¾<LÂB.¾:LºBâJ2<º44ÚZKà÷½@VöUûø34I³*àÕ9Þ;²-¶9ܹ-*49ܺø
|
||||
ôï5ãX*:-1Ä+ÚB´*¶Ä7*Äè/¯1P*¼+*ÅVK÷ïÁ5üì½½èÕ±ÖØEYÁ-/üáAY»W;¾ãÙÕÍÝî×÷Ø4¾·¾;Ù*ÙB
|
||||
*3BZÆë2ëËJ6*JÙøõøéõS»Ë÷éåÍÝRÔB¾S¾¿¾-829*+Qáàé*Ü3ôJ*¾AÄWñçѵYI¾1ÐôÆ*èØÉ×ãݽ³´
|
||||
M*A8¾ÒäÝøSûD*6**ýè*ÞÝ-0¶+*ßXüYÞ¿.5@NB:óÙQí;*.Õ/ÖÓ¯18F5*KÆZ2¾6FB0J.06ºBÍ2Ë23¾
|
||||
·áE.öíÉøDZö,*Jß=2¶ó*üZàÃ5ATº¶ZÒ÷ß*.ÔC¿-5LFHJ5A°º**ºïLÃ3;DVBÌ»°Þ<PÂöîÆÀ@VæZMø
|
||||
Ãá/ÜÒÕϽýú7O5½üä+L+8:*öE*Jý*46W´,ûëÉA**î7+FL¾**ÏÅYJK3ß.¾5.æíܹñÖCñÞZÏÈãVG½,-
|
||||
×åÔÓݼ2ïPµB¶ïS»W,+B³E6=/1HöدØ5RU.B-ÎøðëéõYÞ3EIæíÛ·ðâÛÑåé·¹äU?SÏT;°ö,0²Å*æ½.
|
||||
ý8I4ZZàÙøØ¾î×î=2¶à+2ZÞ¿.5ÄÕ+»Å¼´Äôà,¾Ü;*ÍQíH¼üú+.æñÃ5ÅìÚµëä÷ºóØ7ÉÃÈ>RÖ3Õ¸,3Ì
|
||||
á×¾UÍÅVʶü³*J*¾Â:C1ÕÆîÉñçÊʺZ1F:**N¿+ëï³:Z:ö6J2Þ//Ò0>,ö¿/7HºÖ:Þ¼¾í³*¾»Õ@Þùç=
|
||||
AYJÀ-ù¯·ëÜÃùôVÕ*´õ>SÓ·.7DV2+Ü²Ì´àÆ´3RZ,Y±êï,:;KFãë-×ð*Ví³Y-1=+*ÅBïLÄ7EXºÖ2Õ*
|
||||
:6Zôó,-XF¾1úµíG»1GÀò:?ø5Õ6D·êFBVÒN»Ð.æ=QA;MÂ5ÍUäÆ>TÊB*:ÁÕ·ñ*>ZåìØÍ,<Âëæ*õ@¿>
|
||||
µ4¼¯õ7S¯Þ¾èõèµÞü¾0,*úÞ2+:ZÕÂ+·á¼¯7ô³+ÕºîP8P>ð0*1*J8ôO6²æÅ×±½ÛÇ-+7à-ÆÛ/Û8ÏNåº
|
||||
Ë+6B:Þ*¾K¾=-222+2.î,3@²æ:K½ùÊÜ»ùò?*.-./ÚÞ¾ç¾3*YAë×·/MÜâç³ÌÂR9Û»úÞ÷¯ØTÇ,³Ç:HH
|
||||
3F¾4IåÜçÎ>NB**0äî³H>*Lê×Mè-ÚB,=D*Ì8+¾-¿<@ÑO*ÓÈ1*ù-D2*î2*¾¼ËÛQ*H7¹>F×Õ/Úð¿E·R
|
||||
=ÆúéVUô½QŹRôÅ*æM¼·º*.GȶL5Gñ³=±C.¾3FÆÎß=YE¯¹:³±+=+?,+*ü8DXäêONÇÑMWèðLÁ7C,òð
|
||||
ÈëTóS=N¾F9GÏò÷GÛ=à:.RB*:¿ÕC**>ÊH5-*ÀÉ.**A.JA*:XF*0á-á²*ÞîDZåH/*DÉ×AÕ6>ÇÃ+GùØ
|
||||
¾UH¶=1÷-JÚ+ÓPÅèò+O**ú¿1FÈÅä÷Ø=**,Y½Ë?²öîßöز*Þó˱07ظ2Q¸ËNÃÔʶ¯ãÅñ³X4<MÂüîϱ
|
||||
Åëáǰà2Â*E¯æZ0ÝäH+ÚáÌ»-UADîäé*÷=Y¹J-K*8E<*NÖ±½ã¾+ÐÅGù-5¶â-µðZ/YMU*¾F»J5*ê¼Ñ3
|
||||
ÅRЯÜä2<N¶Z.ÞK*Â163¶Á2=TÊæZÞ½ÞY@*îúæã-ÆÌÚ¿9GãÉ@M@6æ¯MýQXCWË67,ÂûîÇ-Qм45*Jà*
|
||||
¾6Üä×1=î?¹V5êÈðU9ÓÉÔ,:ñO*ÓÄÍN´ô1²:*JüÄHðÔU+B¾ËGù-5¶â-ÅÜ´0:ùÕ·/*0-*:FùQ0¾ØðËÍ
|
||||
Rà7W²ÊÕ+ÂÇ*¾QÒÆÏáÄ7?@>-/8*Ò,Fξ5.R6îýêë¹ö:H»1ÛáÅ9?ðÑAÏLë1ìÖVÍ:ÃÕïG·ìîÇÕÏá=*Æ
|
||||
à麷@?T-ÅÓK+2ðRÛúõS4BÒðËG¹ñÅ+*ô1²:*Þ±:ÆÏ<¹ôçS¾Vµ@îÆ1ìâK7JôYñø<.ز*>ôÚË>0-LFÏ
|
||||
ÂEØæBY¹0ZAAÞ1<º2ïKÁ-ýS¼ùôïÙÅí*ÞFJN*êE:2>B*îöØ×=ÆÏK¹öFÞÁ7=à¹õZKÅÅWBVÍ87,âùê¿á
|
||||
P7².9ÀÁAöõúé<9+ðºßíXöÑ0÷د°BB2îäÌßÞ3¾++RBÖÃ8<úÕXô8+Èè8ºËÙ±0XHÀ4ù·ñí0èÂ3îG¿ùº
|
||||
Ú±ÛPKDN2:åM1ÌD²¶÷U¶0¯QYMéùÚçóX¹ý³+±Zî·*Ê×·Á1=Lº¶îݼÅßôR,ºÛZçâçM2ÏGÅ@ÎäÈ1ùëEå
|
||||
Ó/Á³ÈÐLÃ,·G·ìÒ¯=ÉܾÁò0¯àÂ3õñ³GY2åÝ06H+*¶öÆ+Þß*¾Z*ͶïLÄ5?D>Æ,,.B.Î,îÞ+̳¾Ýá³Ê
|
||||
D·÷0ôñæâCºR:Ý·êFCXÓP»Øâæ9ÍñÄ7D¼Âï=R.<6ßP5E¼úÐÜP<T6úG,¶ð*Å6ÞE¸òöÏMÄ25<À.18+.¸
|
||||
A-*À-*Ñ*ñ+Ì:HVÛÄS-õÌåñPê×´îÜSñâºßDO4>N¾ÞÌî³¹ñæC¾±/Ö:LÄ:Q¼SY¹0Z=Z/¯?,Âîß¿·èÎ
|
||||
Þ½üøó¹J*ï*Q4*ú/*6,æ¼ñRÛà?VRËYé?È>VÚ¼óðÖRÇ4³ÇÎH¹BÌE´,»¸PY:¿ôéAÎKÃ6ÝÒÕGÎ×ñ/î/9
|
||||
PÒR¯àÁ,ëݽüú/+F2DöAüÓ>:LÎ:ÞåÇLãÈ@YàÀ;VÎD/*öSÔRÇ,ãçÏI¾QöDäÇÂ4Ù»³/@îKÃ4ýÓÕ¿Àµ4
|
||||
îJ,XºËRÒÖ¼»Ö0ü7*6-.ÒË+ÚK*DAÈÒ2EÅÓÈ=PÉ@WÐÂGÇ</È=OÁÄé:7HÍ´ÇUÐÁý0LÒRïÉøDÁB;àÂ1*
|
||||
Î8*:Ô1.,Â,¶Ä8E¸êB;KÀ²ÎÞ¿Q*îR,ÌF¾áM/T>SÑRÇðË<OÈ.Ç<QÏFÒPÇ4ó¯áP7O±äÍSâòÃAZ¿-5Lâ
|
||||
ÖÏáA󳝿S2¾µ.÷;âÅ57@F**.9:Þ¿*Ò0>/¶À/ù÷àòçÒ³ì<ÞQt8G¸>ǵøÂS<L»èÆï²êÎC=2A´ý4èïß
|
||||
Ã8I¼úÐÜ04HöÖÁ.R=î0;XÚ¶ÏLÁ+ëݽ*+Ì+Â,Ò+Â/6,FR*1ÖíØOÖDøÃì×Ðà>SÏLÆ@COÅ.ë3XñµøâKá
|
||||
R×·û44îJÁ3?TúÐÜä6D²Öî/+F2¾È¾;E·BïºË>6¶ÐôNéÈê84¾éUÅ?òÙQíË4ÖäÂ6CDòQ8Dß³Êå;L¸LW
|
||||
ÑõJ2îJÂ4AXúÓÜôÈ*àç8FJ6*KÒÆ¯ûøëÎGÙ*ý1ÎãâÛ¯¸èâ=;T²ÆÎJ¼ööF´æÎ¯=ÅÍL4ÈÓSáæ÷UL:+58
|
||||
ú»SY5È<5?ÄýH3¾Ï*ζ,Þ?°ò2<NÆ8?8àÛ3¾-6¶Á*Ì:JÄ»Gåì3ÉÕSñä7F¶òîK´äÊ3Wñ»0O,³é×´÷ÞÞ
|
||||
5X¾4I¼.3ðÙøDÛ¶;áÃ6CÄPIB¾J¾3*íö¯âÆ;IXºöZÞí¯¾µòD·øáI-<=¿â6*öD¶èί-åÌJüRÑSÙÊ·±Q
|
||||
îÇ<ÆÃ:-<ÜÒÕ¿Á-**¯?J;*JV+B;î3A°êÖïLÁ,ÇJ¿+M*ÂÞ¾-*Ó*Q@Þ?°ËúFóÔ8-à¾úÄ3°=*ÞíÞÇM1Í
|
||||
IÃ@¯RÔºGñÔÌÝ-W2¸:1E0NºSY=2;Hö×,¾50B=BYÑ7E´ÒæîÞ*ÙE±¹¾*Ñ*X:JÅ´ÇÕPù<:F5îúȯøÁ1Í
|
||||
H½FÎKÅ@»T³éBÑôëÛ½1ê:.J0H6Å*7½ÓÕG?¾TE¸2ÏàR¯Þöäéì@¾8úÊú°É*YZ¾ù-1V>OÆ>¯ðÍNÓØOVD
|
||||
µñJÜMXM,1LúÔÜ´@³0*FH±¾T*üBÐNÇ;IXºÕ¶µ0J7HÊêHXÉÅVì94Â1ÌD²æÐ¿³¯³ÔíÝ¿0Y6»ïÛ²>C*î
|
||||
Q»ë>DZ6.R0B3¶¯*¾¯ºËÃ.çÏàRA?2:Þ¾+70.F<*7Ç÷»×/3Ü=+UR:J½+/²:KÁO/Å2JDÈ6ÇöÐÜ0<ä**
|
||||
8ïLÅ7G¸êBÏEN¶îIÃ?±äÒ>Q0â1îÞ=*Z+OÝÝø0-°À*LBÏá*¾Aó³J¯êV6ÞBJ3ÞVJ¯*XòæïáÅï³¼îJͺ
|
||||
99äÙÔÈGØ=ã½üÀÍM*ÎßÇ÷åüE4-.9:Þ/-Ê,Ò/Fƾ5*Î/?¼òöÏáIó³Q*ZÔ0>0+Fß*ßö¯**Z6Ýô+ãäüë
|
||||
EôæÇG¯Ý´ÅüúõÍÝ:CMC¹ûÀ+²Q,îÈ,ä*äìT+ä+êJÀ0AÌNºSYEÉL9IÀºÞ*å4JLÐ6*î<GXÒ2¯ììã»øòå
|
||||
ÇýÄë÷¯1ºÓçÎ,1LÒSòÉ»M¹µÄõÐ+ìÖ*²VÇöÐÜäF¸êÖ¯6JCJOJ**¶6*î7KÌF·ÐNÆ6»LÂ8ý,żü»Í½Üú
|
||||
õêÇñHë=-ü¸?Sô-LÂ0í;ÂBG*ÆÂ6Q<ÞâAó³RïLÃ4AÌ*FK¾-*2@ô:KÀúÆ;LÁ/ÛNàëIÝ-Dۼݽ½½ûôá
|
||||
QõëSµPº´VÎ*-¸¹ù4@NÖ:KÀÑ*-*1:ZHîÂ-T*æßÂ7Mí+âAó³A¼ôÖ+äéFâÄ25@>éD»AùNÇPôøÄííýùõ
|
||||
ÝI¼÷êÁùéË1Á/¹³P¾ÎYÆ7?VæîÃÊOÞ*òîàÅ=3Yèé*á××L¾U-B9*8Q×àéºÝÜáíA?,**ý¾Ä=À½ñùýYüý
|
||||
9°ñìÇÙ8»C¯×MËܽûøÃÇ3Á0Á*8ÖW>Þ++Fæ*±Ö:LÄï³@°NýýIÒÕ¿Æ1+*NÜ¿*IçÐOÉ?O¸âÆùãOü¼O8*
|
||||
0*òÃCÑò·äIàäýùÕ½HºðÖQùâ³ß87ÆîK¾¯@*J8OÔ6Ç*@ÝÒÕ¿Å/*Þ¯.Þ+,Ê,Ò/öÆ=QÐF3ÐàÂD:Yò÷5
|
||||
ØRYñ**2:;åÑÆÚQêÀêF»öäµÑÔVAX³TZÞ½+=8**ÂÓ*±**ïÃ/¶Â3CÀ>Ç<ãÇZðÉøØFX6H8´¹Ä27DúUÛ¼
|
||||
µÞßÃÕË+J8ºRÛNûÀêºûöå³ÑÔʵWõÇíI¿07H²Æ8HºB4:*:8Z4:,J>¸VYýÐÜäD´êÆï6J:J6J.Þ:Þ>¾½
|
||||
6SÐâÆ7=HÒ2+ÁíIÉ¿UYñ**6î+1AÇêUêJý;EåÛøðÜN+ô=¶Ú´äÔ8Î::0¾>¼>C:ïW»ë3+ÊÙ7+ÊÛÏÄ7K8
|
||||
±÷Ä39T6º¼½O:ÞÛÕ/+æ-FüÖðØûǰ¹öã·¹ì¹ÕWÌNîÝ¿O³å2*@ÄùÃ*ºSY±=SÐFC**R@-FC¾ï*µ3=PÊA
|
||||
Q¸ò2QLXIÜÎÑXE-Î/È.àÔóø5°-ôÁêF³ã½¿HÒÆÏMæÖ,:*Î2JNÜ6Æ:B±¼SY-99**¾6+¶<+ã+:°3̽ÚR
|
||||
ÏNãô»í·ü³8**+8ÆòSP@êY°ñûóÙõHFõéÐ7ðÎ3?0*¾ÂÓ*-+úïâÈ?SÐV÷O»7¶V407-+8ÇöR¾¾6CÊëM°
|
||||
Ê2¯OäôG-D3ºW2*1Þ¾NζÇéA°¹üõÝUõܺUÂ-*:ïÃ+BÂ2EÈVZýÒÜ@¿*öÅ<QÐ>3<á¸îâåöû´ÇáéP×ó
|
||||
Á>Äø+´IàÄõÁÝÌG¶Ó39F7JF12-¶î³ZðåøDööòéºâÇ>SÌ6×ÏLãåÔ÷úPÇNñ³K*̾.<ÍâüýIݴͼ»µÒ3
|
||||
9,*·FÇðRàÉøDR÷0*¾ã5-¶J*HñPËE±ÜFCÐ8.ÚÛüÆE°øØ:*ýîíýýô×Må8µIû2ðá,**×:ÞMÔÊSÑäËD±
|
||||
¼SY-;-**â*¾·¾Ï¾Þ¾K*9×ÐOÉ@UÈòÆC<66ü¼»<<ùDå¯ðýýõÙYåìPù¶¯**SÒRïB¾WÚÆ¯â-5úÐÜôÞÀ
|
||||
í@¾ÅFÇ<OÈ=K´â410PÝÝC/Ç»ËUÇøýýøèÕYAʵ0Ó3Ã3É*P*FMÆ>UÐN×<ãµó³,<â:**C8Î6Z.JIÄN×°
|
||||
OÈñ³øZ¯úýW7ÆêéFÍßýýÙåÜû¸Ø6ñß-R¹Î*°¯áø³KÇðÍøØ:ØÙ,Z9IÈFCÞäQ¼â¶;áàôï-OÇ·Ë-ÞNùýý
|
||||
ñϵµéï@Nö*è8>¾ZúÖÜPTÔúÐÜ0XP**HñPÌF·è²·ÐÈò2C¼õðùDåOüýýóÓ±ÍììÀ6Sð/*¾Æ;+²°ãÊ+3
|
||||
K*YèéJâ*¾ÇÓ51¶<*¼ÐãÉAWÐ.×ϰ6C÷ûë»°ùDQäýýýðϱ½Xä°º-*ºïLÄ6EÀN·úQVØúÔÜPLÀºñ²1<Þ
|
||||
KÀF×ÐOÉ@Q¸Å67Ì.7½ðD×»ËAùýI½÷èÛAAYAÄÑÃ*ÊÔ/-ÂÕ/N:É@UüUYU.¶ÎéA4*RÔÕ÷Å6ùãË8IW@Ç·
|
||||
Ë9Æôý½ûëͱAÜÓHøóC*ïBð¿ÕûSÝ0<-æÄ*8Fë3×+ÇïéîðúØøñ5ü¼ÐN<ùD×îXºËÀÝìûôÏ39¼7Æ6ö-A½
|
||||
ÓÕ¿Ê3*¾íêçñQÍEWÐÒ//ÅÝÍÏÄâÜ䳺úý½üôèÙEëRMк0*æÐäÌI½0O*ͽèÕïâÇ<QtV/23R4B72ÜôBY
|
||||
ÐúÖ¯JÝôçý¼=<ùDÕ,óýýôÕUíì´EãÖïC*ÞÅ=YÜÂC**XüSYEI¹:*-µÃµ;*ÌðãÉAWÌúÖÏD>úüý´6<ùDÕ
|
||||
MöýýóÓYÝÌRõ²öLè¾á-YEÆ*BM*ÜÒÕ?Ï7WÕ+>/Ê+¾ÈÏà˴Vêܽ¯1<ùDS²¸ºËXÝÌ»ë¼.ÁèàèÈ*Æá
|
||||
Ä:5<¼ÓYI+ع1:>S8±·É<I¸Òæöû÷¾S°XM*H79YÑæÏUQEÏá5*R³±7MØÂ×*îQûDêV**DÍC*æ60îH½üú
|
||||
×ÑäÉ?¯PåöÉAÈëéF@÷ýýÑÝÌG¸6éÏOÉ?Y*ÞJ*ãò3ò*¾úú÷O»7Î6*2ÍP>SÌV0¶Î*Æ<OÉB±ÔYáÊÎïáü=
|
||||
ÙÕ·XöýõIIÛøï>ÔáÅQ¾Û:*OàÊC=äÖ.¾÷W»ëë+ÆÇ?áéºPÊ?M¼ºøø»¯êP´Yñßüýí½ü¸ôÆKäZDö¶Ð0H0
|
||||
*.-¾Çï2=**ñ5øD%%
|
||||
d
|
||||
432 139[1 0 0 1 0 0]sl 8 mask 0 139 di
|
||||
/mask 7506 string uc
|
||||
*Þù1¾õ½¼íýúÜý÷»ýñùüåõûÍíùIÝõ½¼íýúÜý÷»ýñùüåõûÍíùIÝL*%
|
||||
d
|
||||
/sl 60048 string uc
|
||||
äÕí´ê9+*Ð,¾°OÈA**TÔ*F**µ3ñOÊC±à²ÇI4Ô8½V@*ð,*Í:ìýý÷ÛMÍÌúÀúB**F8,.+Â-ÞÇB³äÊC.¾
|
||||
°øýýÈG¼6/Ö´¼ûظø³Îð³*.Õ×ÊB¯è6*Î/÷°ÍͲÇâÜPXJ6YñêÍYõ5<NÆ9å*ÞáS¾:*KCñBL,Y=îáI-*
|
||||
*ýߺ7î6**E1+Ì7¾õú3òQÍI¿,ãJEôó¼ýâ8Ç»Ë-¿÷ýýùèÍUQ¼Qܺ1*àðäSÂ;¾éYMÖùù½.*ÀIô9òéÞð
|
||||
6ÞúØåÊSñäÄÀáíAùNNô³<Ãç÷DÐÌ»íZóÐó¸¾J¾-Ý8ß¼û³Ôö¼ýÃÍ*¾÷õݶ÷1ñ³ä°OÉ@9:ë¿+>-ÎÊD±8
|
||||
*ZË:-ÑõI7ÀâÜäáÒûý½»óçÓÉÚ6áèX3¾ÃVCñäæDÖ÷üéZWüü±ó¸+*äÝýØÒýÉÕ+Éå*:ÐÔ6*XHæDÔC±Nß
|
||||
óùÝÈÊéF¾GÅýýµIÛ¸×ü´ºëöø3Õ3Ç?1éÄêX½79ãíÝÖ*+¾1*æ*+úùIÈ÷Í÷D¸÷ðã5ZE2ZAWÜÂC¾O²ì6*
|
||||
¾?/Ñ1íS´Yñ¿Nýý½ü·óèçXÆ;Í+¾ÈN÷ðPÌF1<ÞäéYÁ:÷ùý@ÞRë:¾ò1÷âé2ô,3M+*¾2¾N+*JY03ìóJë
|
||||
᯾âK<õ¯:WÞâ÷³Ò=å̵*î¾,FåÌF»ü.ø=R9D>æÎE5Ñí72ãô³üSøýüçQåìFÙ³3=PÊA¯0*Ô-æÊE»07T
|
||||
ò2**»û³:ZºëVWËËî9öâé2K3Z<÷D¾HéAÛо°ÁÂÆÎ¸îÂA°ûØN²¯½Y5ËXÞH,RÝHèÄB±èÊC±*Ùè·öºá
|
||||
¶°ùDÅ/ýýüïÍUÕ6¶Üñ³5S°OÊáé=êÕÝPèë9YUZÁüûùÝÝìÇÕC?O3BXYñÚMWÖZTõ>¸?¹QÊÖ5ìÑ,Âë¯2Ë
|
||||
Q+:¯M,¶H.áîKæÃû¿;¾ڶ¿KÀ<*Ò0ß+ôêÍZ¿ÖáZX**Ú2ÃK,éÊ0¿/Aö*×-RÖ+Ôç¿ïÃ=<¶*3N°@ô1.ß
|
||||
-ëâÌ»Ð×ê+BÀ8À*¼K.ôÃ,/ôÈ@Ê´P4RFÎ×5<B̶Â,1Ñð¸Q°üØ;ØàØ-2B02Y-BáÄûPÌ=³L09ù@ÐÏß¾Ê
|
||||
Úä12ùýý¼öèÛ5âB9¼7̲CñPÌ+*3ºËN¹I¼ûâéÂü²AÜ0û4ßüÆÙøD1ÓÊõëÝN/ERÏ=SKÛJ½³IÊì·L+ËUW
|
||||
<<¾;Ä0Î:²-ê96K²ßÃ56<>+Æ-ÎÁ,ÌZ¿Î¹ü*0X²K*¾/LÕFùEºJóPA¶Þ0Àì÷EÍBYJÏÇò¼ï4´°<ôÕ1<V
|
||||
Ôë2ëÚ:,ùúFð.O5NÈÙð1Ü*ÖÝ:¿ïÂM>¶E?ñ,å¸<õÕÛ@*¾C.:¼ë;Ä?ûØúø¶å×FI@.ÆäéF,³ýýéí8»¹W
|
||||
êÐâÆ<O8VÍ,JÇ;QÜÊ·Ú´ÂûøéNAùïéá³-´L¼Õ5YÑãò¯14Áø÷DÕîE¹ôÙAâÚNá0ÁѵÎÝA>0:.µÆ*çYÖÅ
|
||||
BÞüÞ2À-XÚÞËÕ;K×ZIáÀ-B¶Ï/+*,KöJ¾=º*éYÊK2ÞËQÊA2JIÍ2,øìÎùJ¼;,´G¹ï/82¿SåTYØ-°:7º
|
||||
ÕF2ôêÍÆÞ¶à74FÌÈï¾±GÇöéJä,*¾÷¾+8?J¾¾éÒ·=MØÎ99õõóñÅí¶CDEJÀNâäEÒùýIüôèÛ¹à>QÐF·ð
|
||||
NÈÁ*M*äÐPÌH1*RåÌGY½ËÇTíýÙØØK*¿Xè¿Õ3ñ;0>*é÷DÖ:Àá¹Y*ËÀDÓõîÇ8éYêÅZZùX¿ÞÀDÀî¾5AR
|
||||
D*éÁ0æ÷¿Z̯ß+6F2Ã×*Çι:Þ7HFøØEÍBY:ß¶Û÷0ÉN°5è/.ÐÙÁ-³ZËä3¼û¾6R+ïê1F.¹ôÅNJ*Z½Á,
|
||||
ÅѰXîVQ<üDï×±¶èÆT?Þ3..,.*¶Í;íÀìêE÷ðH¼üûûýµã/0îÆL×ãÃÁï³¶»¸ô¿W8ò3ÊBM+è*ÊäÍKÃ@*
|
||||
ÆÎKY½ËG,íIÞïØ+EðÍùÏ-Y=Jå.,ÆVÑäéF>±Ý»=-ÃÛ0ÒÏúë2ÑÌê1ØØñ·¸ëÅ4.JGB,S¾ùÃ5Â*Î,Òç/7
|
||||
:éÍ=FáÀÀ+ÞûL>,*V;¶ä¹IßÁ5ô,Ú1,X.ß¿Õ;ðQTH;.Ø×MÏø1TÜËÒ-³Î1,Aå5¾õ¿,U-;µWó/ÅNJ*Z½
|
||||
Á,µÑð´Q<üD¾÷0*ÞãM4¶Î*üðOƶEµ8ÌÚ9IüÚøøøóõÕçÍ8UÑ-¿ñYñJZüýíܸóé·íÅ<OÌFSð3*ÎÇ?³8
|
||||
ùßÌG·ðâ÷øéÖÍðçÓÍÝ8»âCTQÜEµI1ÜP4×6.J¹;ú8YñÙEOÖ:4µôÐî<ôæEκ°IæEÓ//¸FTÎ5M:Ø@Ú¶¿
|
||||
2*¸ÓßßÎ+¸+KÛ±VB+:Ø@ÚæÀ**ù60+5QöîÞ<¾ÔTóM<B>JÀK6¼K2Nº,Î=,ÄL,PØ92¿8ú*àAJ¹04Ví98
|
||||
:ÔAF<++¾û74FËÈáG×¾ÕÃ4Ý3¾;ð,Eõ2´YâÝÅý8ìÇEµHGùùø÷±ýîÏHLáL¿ÙY=VÚÄÕïòçÓñëö¯â-¯E,
|
||||
Z=QÔÚ×Ê̸ðê÷úéÚËêÚ·ýPüº·X8G¹ôæÏÙ·î³EJ¾JÝâ,:;<âÑ-òøÄñÏ*ÎúDÂ<÷BÚýDÆ÷JåJä4Ù-R¹-
|
||||
,H°OÆVGñ8XÚ9Q8»¸óêÓ¹õöõñýIÜàQW.Ä+1Ý0ñFüí½ûö³-ºÏKÅá³K³O*à<å-Ý8ß¼û³Ðíɱ**Õôï³C
|
||||
¹ß+Ùâ40<XØÃUW8YñE³ìÚSÑPËCóäËF·ðÚC*:B:.îà+úPÅ5QäÛ6DµIìF¸òæËMÝìÙÉÍÍIýýÏIÐM±XFù
|
||||
Dµ>ú½ýòÍUÕ8OUÃç°ãU*îB¹üú3òåÍIÇQÍIY½Ë¯QËòàM*:NSí¼ÂDÈF̽WRT¶ÈùêçñQÎKÁ,?I»Ì*JÍF
|
||||
³ìâCRÎ.ÞUXâö°íäÓÅùòäÃ5ÍÌû¸ôHüúûúûõýëÎ/,ñ¿¾=YñÎæýí½Høóç7²ÓF¹0ò/×A+BÊFÁ8W*JLÃ4
|
||||
»ü³ÒF³äÅ*JRAýYÜ0°8O-Ê+*@ñäÌGUÖÛäÊAKTêÖ=SÑ÷°äÊ1òãEDòƱ¯æÑ·ùîâÓEÝÌûùõÌüüûûûíõ6
|
||||
8KàÐà¿Õ÷Uýýé1YG¹ñÄØUÊDá9FPÉ?SÐFÇ<OK÷ðËø+ÍåÝôÓÂÞ÷Õ+Ëá²+´<ÑäÖ?å×ÑåÌCUðêç=è¹¶µð
|
||||
ÕN»ÐÈ@±Ä@1Ø·ËCEк÷õ¯íH»¸ñèÕÁ9YÜÅYY½üûüëù³*3»ïîà麹óëÓÙüøÐPáÇÑQÌ=´K´ÂðãÌßóáõÍ
|
||||
èéîäÌH»ôFÔX1îG·Ü.×ïUàAûÚÅÃQµÔV@SÊçðNÉDY*¾Iºæ¯XìáËAõäÓUåH¼ùöíG»ûöùùQ9öEQÂ.ÀXý
|
||||
ûáÝìѵí8ØG²?OÈÇF5>Äê*俨2¾µó³=T8>RÎI¿074Òýâ÷ÐãÃ,±ÜóÈIEÜ7ûYݼۯë¿Õܲ·=OÇÇñ/*ö
|
||||
¾ÌÅùHüº¸ñÌG¹õëßÉ99ÙµIY½ýýëÉ0ñCûõÅíû¸õíûñ·ÛúOêB±æ+*ûÇÑPËF½@/.W*ÎYèéàèºRÏMÃ4?È
|
||||
>S1T=PÅ6Mì-ç½èã6C´éÎOùÞ¾íHH˵éÒÖ;ãÊ@¹@>¹Æëé=Íû¹¶ñPÛùõêáÖGXèÌËQÅýü½õÍý¼üôÕYõì
|
||||
ÛEü´SBÁ>³ÈÏN-*æRÏK1?FSÐMÇ8GTòæAó³ÏäÒÑQÍM*ü<ãÃ3KüéBÏÙʹCíܼûÈôÓ±Õ@Ú¶XÛÁûSÂ0?¸
|
||||
FǰNÅSÑâà÷ýáIìOµ0ËE¸õìßùõïQí0V¸îîìÙýúíëíYYÛ±õÌ»í°ÇÆON@Uôº:ô=**²ò»SíÍøØÎDõ×=å
|
||||
ÌFQ´Êæ7ÐÁR¯áɱ=¹Üº;ùOêAïä¼·ôèÉEÅìæË½=öÐLÄ-OÐò0ÛýýýI»ðÏûZÜÄKùÜü»»µIü¶îÍSÍäíÝ-
|
||||
YýÜúòêÙ¹óµÍ+5RñåÉJñ*ë+ÕÓÙ70úSY=H½ÌÕ·ÌR5ðéÕËØÀXÏâÒÈ9-ÄêÕ9HêÕðÝÄ?=ôÏO-1ú±ß½ðöG
|
||||
¿,=ô긼ºËýý9I÷å¶Ý¸ó¾M91Iý¼ûñë·ñ÷ÙÅÕ+öïéìÚíÆBÑH7È<ÚVYUÙX¯E1öÐÜä¿07DòåÍEÅøáHÙ×
|
||||
=Å9K·ìZTÙ³/õ/úÖ-¼VB¯ä¿;ýó¿CÉü7·ìÏ7Gܺ9÷ää¼Û¼ÍýIüóòñ-QêÉÔNCòìæàß¹ûøñÕÅ8F»ùü»¸
|
||||
õê¿9ÜD?DGȱâʯ4HòæÏLÁ0?TÒ3GTÒæ¯¾Aó³ßTX²RÎ<µÜ»ºÕMO·ÎH¶üT4ó·-ÑóÉõïâÂÛ°ßÇ91ìF¶°
|
||||
õVD·êÑçDóéã´Ô6·÷îöÃùêëõ¹YìCVÂììF¾?ݰ@¼ÜéÝÜúûùíѽQì·ñ7DñIYÔò·òæÏN3çÐN9>Þ+*ºSY
|
||||
ñI½üòçñP¿ýÚâйEµü¹ÓM92ñVáË;58ê3õGʵ¯æÁIùâÆI=07·±î8ù¶ïÌCÙóV×QôÛC·÷æÑÕõ÷ÙMXTZD
|
||||
±íÚÞ˸WùXHI¼?ÝÛúõÙïÄÔMÌF½,/D.¾¾0/øJ+8*ÞÕøDý÷±åÄAOD6絸OVD±Ý¾ýø×³ýLüº÷ðßܵïßÌ
|
||||
U¹HËÖµäÚöóâϳ¹ôÎË@ûúBñá½G²ÞV/éôìܽÍÝØèÂùîïMæSTGº¹ù÷ðéEöØãð6U1K-*äçP+ÌB¾*7øUû
|
||||
¸¶ÖùòC=NÉ:AÜòJç@8ËØ±Þ³»VÚ¿EÅXë×°µF¶²åÉOE´ëWµH7ÖóÞ?U¸ÐX-ÉôùúN·XÎNÖÁ¹ÑõýÜÅÔÈ;à
|
||||
Ã7MàòNñDܺسàO/äÍѳA0:Xïà+¼ÓÕKÎKÃ47D0ÞÃ4/¸=OÉ5QøËNåDPËø°ß8õVÜÉYMäCÒÁÓù·ñãÉ/A
|
||||
ôL¹<ô¹÷ïÊýºãÒNAAóRîIÍÅYáâü÷õýì51ãB<äÊ=I¸Ä8O̺çñåÎRòæÏNÉÄ*.*¾ÏK+1*:8îO»74GÈòR
|
||||
Ï¿V=*ÌÒQÇAY¸.CÑIÓECóéÍ/íó¾¿àùAÎOÓYÛèÄDÁDºÖ<O9¸Eí¼8÷7Væ·4GD²RÀ;Cùüö÷ýÅ9¹UÄHîI
|
||||
»ù0üéQÍJêCD»ÞPÇ@WØÒSÑ¿´ï*A.îO»Ëû.4òå**ï÷±J¾-û3²RË:SÈò6¯8óصñéÖû³Ú;/à5¶:LÕöìI
|
||||
Å=GÜñåU41ûíß¾81øÅ0U<óÙ³ñøÜÝ»ûúïéÅHÖù>¶ÊA¹ðî¯>A·0*ÖÌG»ø6Å2Z1KM+,î82ÞÉøD,4²æ¾Ø
|
||||
U,îI¿è6×ðNÇBûR׿QñHGBTISîIÃý0@êå?8²¸÷òé¸ÑøÂ55ø.×ÑVÐ8>RÚËÃÍͽÜéÝIݸæU5HÁÌÐÓâ×
|
||||
ñ¾ëÇÖ7*ÂØ7ÚÃ-úSÝ85¼ZU;³/*ïµì=äÇ=KÌÒ÷ÒéãFÙ´ç¾Ïàò09XNAZQÛZ»àÎØáÉ0Ú=T16CöÞ¸µØòæ
|
||||
»èW7ûûù÷ëùõÝ÷HFÄÍQÎð±åÞØ2*î×à@VßÂ8G¸ò¿×»SY5Í4Ñ,N5*RSÐNÍR¾=/4ÑãÊAWøòWýÀÔ»ù²ÛM
|
||||
»WÉý2¸ºöXIÅùHºðÔ/ÝÜê¹ÕÌÌØZÉ*ó÷ÀVåÕY8¹ñÛ8?RËHÅ@O¸²Vø¿ü7XÅOÖÐOÉDG,*PÝÒÕ¿Ð-´J²Ë
|
||||
7>7*BT¹L´ÌòäÈ:MàúçÓ-0GùòíÇÑÀò*ù+ÊB´ö鯻öäÔ?íÜ6øWIÙÑKµ÷Ô<íË;Ý?ØñãÍP1*Jç4Ù=YUÔ
|
||||
BÓ2¯ùÐÜ0ÀHö?*¸*ZÀÓ.:FZÜãÁ4Ë×ÐãÆ:UøÍ°-YÄÛE²Ü¼ÒMѾ÷H¼ÛÚIX7×ðÒH÷ïñ.GLWÊø°Þ·ëçÄB
|
||||
»Üæ×ß-÷ç±.J+**G+RÉ*KIÓÕ7Y9ØG¶ÓDÙ¶Ôà¾×*åç°ãÉ@µPÃé5Íì˹ñíâ-ùÙűýÃê>QÄìíØ¼W=ÝPÛ
|
||||
Bä7U²âÇK²Ï»ï³M´;3óѳQê0¾¼SY5AECXÓHãH7*Ká×8»¹Ò¾Ý²C<ãÉIëDôϳ5AüØñ踻ç·óî³ÚD¶³
|
||||
IÛÖXÖM»Ü6S´ø6**Jáé*ç;¾<Á-¿R±UêüÐÜ´ÆãÉ@³èÒçÑPËÐÐOÉÌ/ÆÐMáí,Èá,P*0,FSÊ@¯TFS±R9É
|
||||
µ±êÝËñÜé/0NøB³ä½íðÖJ¹0ûS>çCD=ÈÒçÑQ*JÊ@7<¶.*ѼYèéäÎ+ç**RØæ@4*Æ0Õ¿Î1æÛÜ6Â0/>··
|
||||
É?¯TN÷<T×ÌAðéàEñÃúÖõG¹ÓæÉ6³8G¹BÕ8½2ñUX5Å:NÅ0L>+ÂPÂHºSYÑI¿üú3>æEJU8@J¿Ì4.5.6F
|
||||
À¾Æ*Q×ðãÅA±@óèû´0VôTËEYDÌA¯ü6¹2¸:KÃÄÙG5¾RÂÆ-æC*:6:.îO»ëBÊûúC²æM°Eé,KÅåÈçL,X¾
|
||||
7.G1îLYìâ×ÏâÈGóTÉ>QÜ·ÊδZÜô>êàâGæÍH¹øò÷Ñå*¾Aó³AàóJ+82E:7+2°UÙ¼ï¯ó³Q¼ÞYäÒ×îâ
|
||||
ÊA¹05.åËñGR¾ç¿5V=OÉÄ+2ÐNáÛU×áêÜÒÕ7XÛC¯Sè²+*JG*JQËD»,-вçÇ*WØÒçÑQÏ09æÑRÍìâç²Ê
|
||||
JÂJÂ+F»L/ß.î²ç+NW.2*BÄ:OÇ0¼5ÏMÝÒÕ¿ÏßàLòæ2¾**2D:ZÄ6ÈÔØÏÑPÉÌÀ?3><*ÐáäK+IJçÑQÅæ
|
||||
P1JçZ¾Ï¾Ö¾JÂ×Á3Ú÷¿K¾¸,JDôW¾0ûÐÜ@BóÄ**æ+¾¶*:D.ÎòÓ4´DZ2î*0>RÎIÁ0GD²:¶Z¼ô,*4-äã
|
||||
äÐYöÞ*JÒ*2WÔöÜÜôÄëàÛXVÊ>WDâ³¾Û@ô¾1Jæ2ô5Ü0N13,,Jçè¾TÀæÁö¿-9:NÇܾH2øYûø.ø¿TGçÓ
|
||||
KÕ¾ðBATè²ç<×-ö¸¾*1H´*üàÔéê0ô¾æÆ-ù3²RÐÃ01Jî,@ÜÒÕ¿Ð-*Þ².ÞK*ÊÆ÷ÐPÍHÃ4³TÒ:ó**KÃø
|
||||
òË;2ÑQ9ÂJ7*J»+*î²*JÒ¹æ7FW¯RZB°R-*PÝÒÕ¿Ïõ*:NÚ,*ÂÜ++LȲçZÕÆÙßBR¸¼:L*ÈÄ2Â*.3*ÑÁ
|
||||
°=°Qð:èÛ´:VîÄ.ä*ÜÒÕCÏLÃ07-¶S*O,>>æÎ+*Kµ¿´À²çCØæ±;T²ÂÊ:OD2îÞ-Ä0äõ¾æ×ÀÞÀ¿ÀT¿Z¿
|
||||
MÖ:KÁüTYE,*MÉ*ÌÕëîJÆ7>»Þ䱯Ï*Îò+ֿп*+,=1:²îì²WêJËÞ¿4F<¾½ó³OUA¼ó¾+8¯UNÞJV+*>
|
||||
W±±QÍDWØN@4:î´*ÎÜîJé8NKÖJÎøõøD¶ø.*Àß8.*B»N+å¶JËHÃ4³TÓ1**ÔÄ*:ÓSÑ0+:ÒRÍÜBÚ5G*S
|
||||
1*8ÒÞ¿DÚÞÂAó³AFF--ÒU1,.KA.ÆÐOÅÖÁÝ*è:C¶¸TôÞÕMÔÉó0*à2ÌâßÓ+ºSY5ê,LÉÚ8:Þ×/>,>2FJ
|
||||
*<T²æB*D¸²çSÙ5µ=PÉÄ563>ÒËåË1Â2F¾ÂMÌöÓÜ@O+.Ô7Â+ÏMåÎòDz5ÑOÅÛ5,0**çSÀñºöÞÜ0ÆÜK¾
|
||||
É-¶²,ñ¯NòæÐ/*+´,óçÈó-+*NÅéÌÀßáø³¾D?*¾ÑA6îà+XJ¾N˸0ÞÓTÛÈ?UÔUÕDÓTÓPW*¶Ñ/ÅîîL+Ü
|
||||
ÒÕ3ÐOÁÃÍ6J:J6ÞBJ¿Þ¿-Ò,FÖ¿;¾ø*JØ*Z¼»*:6*Ê83¾ÏÏ-Ã/14ïä,0,üÒÕ3ÐM9îé6*6W5*Má+T,,
|
||||
+ä,XçÞ//F2ÀLÀB*Røâ.T+XºLûß>Þ/>ºWY¹;³QNôæîXQÞÇã7*BÏMÇ@»Þ³A¿î:6ÞæQó³ç1ÞÓ·ÝÒØ>@
|
||||
îO»7TËT³èÒ1.îL*P,X²Þ34Úà+Îøð.ÊèÒRÏHOÀUŶ¾,Ï*YèéJçã**:ËQ/XFÞÉøDKز¾4:7/B2¶¯*¯
|
||||
+Q2î8,è,8.ÞÃ06+¾ÐQTôP18ÖÞ+=Úö*RøS»ë/´ÛJÖ¹J¼¯Wó*ARîÄåXÊê¿ÌÛ¶×-J¶K·ã4µÞîW»ë/×Û
|
||||
=¾TØEB¶;¯ÅPîè0Xëì?1F:ÁM¯ùÐÜ0ÒH,*Öøð+ôã*YèéJç7-ÞÝùDZD.:0îê-4/<ÎÀÉV¶Þ,YèéÀÔP*J
|
||||
ç;Ô<¾-1¶äYµLÎBîÆ,ÌÖëÇ/FÇ¿E@¶ï2ÞòÊßÙøDZ¸.JÈ@»:+1FîN,ìJì+0ÚÎôD¿=*RG¶Á2ñ,AÀÎÔîN
|
||||
0ÜÒÕKÔU×°ÛD*:2îÌ*8ÎJOJ.J+K/Þ:JãJKÞ/GÒ0F3Á°¿DÁ-µ¶:0ÍèÕÇSÑOÍJ÷7*6/ÚÇðE>¶5.Qîî0
|
||||
:Ì.ßÃGÚ,¿9ó³ÞýÌ+îI»7úݳ*ºQYùR?îû½ëùýóõýéíýÕÝýY½ýÝüü½ûûý¸ñK-Y@4ÍÑG¹òêE*öÌG¹Fß
|
||||
=¸÷ù÷DÎCô>.ZõYE,*DEëéêùøöóíI*2üøíÍG.ƹKQùýD×MXɻ˹1ͼ»ýõÝIAâÁYE*ÚµìÝ·ý8ÌÛùM1
|
||||
+>-Ë2ØÖÕµýÄò¸V²¯9¾°Á»ËQ9HúõñôûéQóëÕÝ´*¶öâ¯ÕÌG¹´í*ûÇÁ*âKPà<úÏá»Ý;.½îÄÞ°ò->ìYY
|
||||
ñÚYé¼GÙºüûçüû÷Õ7*üüúïÑKÙÌûDÛX¼û¿Á¶Ë¼úV5HúÅñ0¿ý.óÕG*X-ô>×Éâôë7÷ïM±½»ËµÄëøñæíó
|
||||
ñAû÷YF*úüöÙCµ¼7Ù°Cëú¿Áö³Ã4ûG¹Èé>H½ùù0*YíºóåÒ±Ý8É4?ØÔÝÜäýÜüúÖ±óôó5ûùõ7*Xݼøß
|
||||
?IüúDû7úù¿Á¶RËD;¼ËD±æÐ»üÃMÂíAíùðCÒY=PËD¿¸CMÎWýúØÑWW×ZãäãÕAöñíE*FüøðÁM@V·³LEõ
|
||||
ô-1ïÓTÓØ5¹ñFÊO¸øSÞÈÊÁ¯»Xñöå1ÍÚ¶±ê¹áIøééúSçÃùDôëû¹K½ü?*Îí/DHñ¾É5*ÔU+òVJ8.RÖ;5
|
||||
=>,Â?**åYÞç½õÜÙïÜÃOÑѵ³I¶2ýóéÕÓÐ9ý»ÊÀÁÕý0*>***2Z¯ùN-âÁêŰîV,.ìJ+;¾M,E¶>+¾¹¶à
|
||||
÷5ööî½EüñÖòÓï9ûó³ü<²ß·1éÜÜG¾½0*ÒÎ.CõHî:-*¾K*äÈ,æïë½MÌÃ34+è4Ì9¾µÝXùîÚÀKݺð³HW
|
||||
زEK9PÂBëäÌü7*R*òçEåBáÓ0F9*üÈÀæñïűÌ*1ìWàû*öôêµ=Ô¹BòËï9ûó³XÏñÞ¶/å´8GR½0*XãR,
|
||||
ÃÓUåÊÄ:ÖîL+úñG/¾ºÓXG*EÖK2ÝÏÜK.ÐÄå-TîØKWÖJè´ó*2K0Õà1P+XVKÛßV+*¶Q.Q,ÞÏEÍWBìÞÌ?
|
||||
H÷DUÕXÛÄO;îúKô÷ñ5ÞÕìÑ*2Ø*¼Rà¾J2¾¯Áî*ú5>2*:´ÂHÞ,1XèÀ/ÒÀÁ1¾8´Æ?ÈZ4îÀ2V²E.@FæÁ¹
|
||||
L¶;*Hû÷êÀ7/ôÚ¯úM½»Ë1òFöëÞÔÁ91ãY+¾á?кϳãÉý;î¼10Ò,¶Kû¾=Wк·*èT³À³È-BM:2´IÖ,õN
|
||||
êóèÛJ?1¾à³X:¼Z4îà48òKV+*¶Q.Q,¾Ä1µGîKF1ºð³:Z**·8úRRâÏç·*èϵäOËøKô9·ÒOP-,.P+â+
|
||||
å¯-ARÞÒUÅ*ú+@öQâ¶åô?ȸ*²Xò,Ï.Ñ*A¾,ÇMÜ@KÒ-¶Q.A,îâK,*øééúGå¾ë,PëÙµöû4*úÕ·ÝWÜæ
|
||||
ûE,J»BÎ4*:ÂÍø*Ú½-îû¹ó,ðE¾°+RûÞ4²Àçݽ½ÔZ°:V:¼**F×À-»B>¶Q.Q,Þ»ùP7ÖWÞÌíG÷DáÆ;M¹
|
||||
1>,ÄÝ+¾¾.-Zîöï/4.ú¶*+,O*2R?æáÅÝJ¿æ+Æû*5º,éáÅÍÔZF*:ÜÈZ4îÀ2.,ê³3K*õÂîL*äK6<ÞÌë
|
||||
ýòÕÕ+´¿Nöõ²ìÚ¹I,*¿7àJÇ+ë7ßñç¾T*×J³ã¾,æÛùñ0ÛM+VõìZNHÞ,Ó:¸õìÍ?Ê6F;¾5U¶Î1=,JßC
|
||||
;F3*áËùòÝï³¾ëÇÕ÷ÊC±Tñ6BÐݰøôMÑ5ÜÑÛôòü»ßè=7J*¼ù8/¾Ùõ·÷ûù/4ÖíÝáʺî*JKÒ:Â8?º+/Ï
|
||||
*AÂJ:¼Ð1JßC;Ú2*ß»¹G.R5ýæYY-ààéÒYçÖ±íÌû0*ÂâA¿*H4Ñê½ÊÏÜFEâX/îÍêö³G·ôê*¶´çâ@ãP
|
||||
J·ú¾åú*ÏðèÀµäÔǸ³äºUÐÆ¿Þ¿-/¶¯/1ø:ÔJ*N¸P.A,*µåÄWØí¶<:ôâéVèÒS½GÎ2Öû0*F¾ëÙUY¿´ù
|
||||
=±-B´ãÓ+Ò*ï³Ï*äBZ.ÙÍξíÜWñÁÂÊY=ôFµUðó×±XÈP3Ì2Þ/;¶JåVµÜ»E+ä²E*OåÂîL*äKàÕßÕöÅü
|
||||
øDÍ/ØZÚ½MÝÄû4*âÍ¿*¼ó+ä¼Ù6J+EÞX/îÉESRZ-´ê*Ö..Ã:á@Oß>¿ñVM+¿4¼ZMäÄ:RÎ>C´*¿-A.î
|
||||
à48òKV+*¶Q.µ,¾YÅü5ÕZæ×̺ËáÃ5Õ?æÁ7û/ÎY3ß¶+çëÞð3¼JêÖIWÖA4ÞTFÎ0ùǰÂ*V/L²²Þ¶1ÁX?
|
||||
üÏÝÜ0IË´ºAî±NÈÄ,XBåÛìã²+ÇV¿Ä8ºÕïçÍ̺ËI¼úÖÐèÇý0ÌÐLð´À6:<¼71ýÇÚØÐöÅüøDµÂDñÞÀKÝ
|
||||
Ì˰á¼û.**¾-*¶ñ+Å:îú.@J,ïN¸¸ïÞÊUE¸ð³ÌøòçÈDÁֺ̱´ûR1Y*Þ4-Õ2Þ³éXG÷¯æÌ?ÏçÑSµÖY±â
|
||||
Ð;=ôÚ¸ôÓ-¾íÜëØ°ãÐ=M¸ð³ÌúöïæàÐü6ײH»ÍH¹5,ìùõêÍÝÎ8577I̺½»Ë½Éȸ²ãÊOÝ@سíÙéFõíÞ
|
||||
³Á8ÛØTÀ?Õô-1ïïëÙí¹Ç°?Ñë5æL¶Y¹*ú1ôD¶éôÊSY°í¼úüøDŹǰèÑIÁHËXéä»í*JÝ×=IQL0õð¼î:
|
||||
8ܽýüO8TD×Ò´»ï*ÞÜÓÅ9˳;ÇÏ9*¼½»ËZÝÖÆ.TíúÇV´íÜ»Å=×±W55½ï:Þ¼ÆÇ4üÔÅ4?Sô7*TÃ4?»Ü3
|
||||
8ù*ôÍàR1»Ë¯YUÊËJÉë5*Ñ3ÓÎéÜÔÍI·2¾IæÒ3.*îÝ»Ï@øDÜÜúóà¹ïÜÛ»*RÚ¹5ÝX¼û7Â*ùÛÞ³µ¹ÛÇÜ
|
||||
P×YÅXFµëù1*àWFøMXÑê×ÁY9IýëYËïÅÝHúé@èMYùKLðû½ëùýóõýéíýÕÝýY½ýÝüü½ûûýøùýóõýéíýÕ
|
||||
ÝýYYÞé*ä-**EýS*FBØø³?T>SÏJ½üÒ*ZG·ìÊ÷àé>PÊE¿0/øÓ,*øÚ÷ÐOÉóé@ÐNÈBùäýI1ÆBÊ>OÄVÝÔ
|
||||
7E¼.CðâÕ4*Æ<ãÆ9IÔYÙÂ3=TúV+J@°6*RÝüµ-*V»Û**%%
|
||||
d
|
||||
432 139[1 0 0 1 0 0]sl 8 mask 0 278 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/connection.png
Normal file
|
After Width: | Height: | Size: 73 KiB |
473
doc/email_invitation.eps
Normal file
@@ -0,0 +1,473 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 532 447
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sat Sep 20 14:07:13 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 373]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 7504 string uc
|
||||
î½*¾î1:I*¾1±/C6*¾ÍÎ:Þ¾V.+¾QR2*J4½ÆÏ9ð¾+ö;ã-O<-îJÈ1ÈN0J¾F9>É:+Þ¹;.öµCÀ:½*ìÃ:Þ
|
||||
Åë2àX,K*ºöü/ïûÝîù½ßõýÀíý/Ýý5¼ýAúüYöûÝîù½ßõýÀíý/Ýý5´ç/+%%
|
||||
d
|
||||
/sl 59584 string uc
|
||||
î½¼**ûý9*N¶U7Ö.9R.å*¸×.ó¼ðÉ+Í7ùï*¾ã?6ùúÌVß²ØÉÞ-üøý*¾ÌËÛ½½üúÑÇӼ׿VMæøå8Ùó5,*
|
||||
ú5¼½ûùù6/ÍÓZ²¾ìQ¼Cîׯ9-¾×OݽòÂêáõèÒ4BðàÃO¼:>±åõåûóóU³73ÖÚÀ¯Í90.úYÇ:¿1ú³,*ZÞ
|
||||
ù=ÝD9*¶ÔÓá9ÔÉG¹îNöIÒ3Kß1æ+ʹ½ýØW±ÞÓį+CE¹J:ʼMÀ<¹ê6Ê5çôݽ@èº*Þõ<ÅýIúòãYÙä¯ï;
|
||||
ËR4¼¾8Þìû¯MãD-Yó65ÞÝîùõ½ùà.O²ÔA*¾59í¼¼ùêÁͶ¾°ãÈ·½îOñ+*åøFúøýýååVëðOUòÛÍ3Wß-æ
|
||||
+>Ù½ùÎS9ÃèX=JVѽ0*Þ¸Ü>¾°åõíI¯ÇÎ2Õø**ºíéëïÉå8û·¸Ìøì5;¾T½õIº²H*îÆåÁYYý¹óRÓæâÂ÷
|
||||
äêAÏ?VQ1¾ë>Z*ðXôH´Þ00¼½ÑOͺè´9ÞÍÑYYý»÷îÛ±õêÑIµìú÷ÂS*ñìíí÷ÜBKؽ@è,*½EÙ·öùïÁÕ8
|
||||
ÍA18¹ë-<¾Rãõå4²D*îWÁÅ1½G¹÷Ò×ÕÊÆá<Ë2ë+4.²<üë1IÂ,÷ýý>¾:ëøø:ZXõûùé½<.µãîî*Fîõ6Á
|
||||
õÅ4>R6ÉÝçýÎå2FRηÉáõÍý»,øGë.è:HîRGP,ÌÙàÓ¶¶Ööó,ûýHRÎî÷Ï=Â.âÀ0·ß*ôìÍÔåÑAH³Ù0îÕ
|
||||
ÑUAݽüùõ»»÷êÍAQüØæÂSÞ¹õí½íýüû¿ÁÐ1*ÞùôÄ8HüûóÛMðàÇíÔùà.êüüJ»P-*Ì×øûîÓ½õH<á,õÒä
|
||||
ÇýÈGJ+üýIÎXÚýµ»1/¯,Ó*:ðïKRøýÝKÀÔæÒßO6*JQKÞ»´GY;ÒÝýO¸ÉHKõ@òI½Å+48ÆXýé÷SD³ÍK°ø
|
||||
úá.èJ*+¸Ò8?+ÅWï4Súç÷º9;úíÝDçCûÓÅ6Kâ¿0·Û*Èì9BPÐAH³Ù0îÃÉIÝü¼½û÷GüøíÇAIÜBãÂSÞãô
|
||||
íí¶Úüû1-Ï/*üÒZîäÝÝÕ9IÍÕì¹öïÀÅHJ+èÝýä²*Þã@AÝÛôìë5ù°2Y¸>D²E´1T:*ãµLû͹HÐâ÷ñö°µ
|
||||
H¼íýüD+4ºüý**7¸Ù¼ûÙ¿82ÖáöáµGXÎøýUâ2=à*+1TýóËEÛñÍ9<Í8ÖñDýý90*Ëå.Réöû--,*ºôÛÉN
|
||||
üÊÍDGÝ3ÜæWýß=íæµü1>û½¶Î:ðÊ<+ìòUÕá-ú2,B³ÎÝóùÚCöøÞ¾3*Ö×VÏ<Jüý½N:Ó5Å,Þýý½>GòOô´
|
||||
àýÙYÈÚ¼4ñ.MȲÔ**Æ´ýë<»HîÒó@¾ÈG8ú¶÷öMøÖûõÞ½9AÉïC42**Ìо**ZÐJ**¶Á,8¼ý÷ÝðåÝø±+¾
|
||||
õ>ËÚöõóïÝõóÛ1å»FðÉG5/RýüBÑ+*ÝSÕìÙ¼·MÍæÅC>ºD¯ÛAÙGR¿*>ÅSñ½ûμ59ä9éP¶ýýXÐ0Ã3ÖTö
|
||||
¹X4Øà¹ýáÂö½ïÇ+,öÏäýÒ;0Aæâüý½YF±¾¾õù9ýBÊUÁûAöÝ/02¸ÔÀ;âýý³,²ÚëP±48=ä÷ðèßÂSÙýÍ´
|
||||
?ýVöüýñýóÌú9æüýľÞT1DøûÖ5ú¶:3Võ½À?ÇÍ?Ó4K*+¸à4MüÅ.иï2*òýý¾ßÕ¸@8Þδô×÷ÂáËDFîÅ
|
||||
/2*PìYAMË1ijÛ/îGÅåäë»»ùõÛûøì·åHܱàU>**,*XÐJÂ*Ú9<.*ìÎ*õìÝÝÓøó·H**ðæ¹öCÁD*5üØL
|
||||
ÉÃ,´½ýÉ?±+*ÍA?¶ãÑÍùóãá7Á¸·TÍ3ÃGR¿*>WSñýøÀô1ÉñúÐÖýQ»ÑáB+ÁêÙ;½KUVýýNûüÕý³ÆÞèûÍ
|
||||
Ý躿PÚ¹ýýã>UÜêÎÍÉQÅ,Ê86@FB+USÝÕ¸±4ܰãüÊBÔVçÔýÕ3÷´K:ý-<ÌýÅ3ÄQ¾ÇÓ8ò<½OAöïJ<¶Pú
|
||||
Â9ð½ôë¿1F°ÃB*RýÆJPAä6Þý5¶3X.>á+ÊGú¾¹Ä?FTÁ-üÖ*+ÖäûáLºÎSùO*í2FóêéãÍQíåÉÝHE³î79
|
||||
HL¿-ÙÉ3/*åBK4I¼ä-*ZýÀýÜûÀ.Ï´îßý¯V>JûùÉÊ0*ºN¶ÜAÉ8Ìì>íA:IÆ:A<5ôJ/,ÎÚNÖýE=ÈYA:1
|
||||
.æÎËÇý=½BP¾Þàý´°*ðÅßÏýó37/ÖÉýå5TZ¾,ñûÅí鿺;óýÇ8IÚB¾-,Z<õM4·6ÞOÈVITNÇ<WèùÛÓ-Ã
|
||||
O°âÛY1ýI:ïýõ·VÂ:EéAPFT-³WýUîÀ>Ü´ÃBß=,·Þ4J°Fã¿GBMÙõÙ61ZÇöÍQô8MXFKü-¾ÄùÝW¶ð/°ë
|
||||
Ô+úÝíÐWMý8¼º1ýG¸éнýMö0/̾ýG42òíÅ.XO+åÂ9Ý?õìWH**FÅEöêá57>¸ìÞO½UÖRÞìõY÷¯D*îöÄ
|
||||
PäÊÔ9Nò¶Q×GË@³ôë+4öýý·Ã7í½ÚTÜØ»¿=Û¼Vè<ûYÝSʾYøÌ·ßúýIÛÔý3ÔûYAÏ*+.²õýÜÃÀ5ÖVË;ß
|
||||
üý»æ¿ºSûýÃûýYçòÞ6Þ++ÖÅçí/H0¾9IàÄB¯>¾Ôü½ý?·9á/úçüý+CÃíGSµC°åÚ9ëØ¼ò*IÌÒ+¸ûÍIæT
|
||||
ñ+Ï8AV;<:JJòü½M:1VïÂ*L-êãóñG0WÎïÇ5ÛáÆÁQÆÖ,ZòüQ3ĺ¿VÙ³*A1ú²éåÙ¹ýìÛµ½ìø²îð.ÜK¿
|
||||
==ºÅ,ðºù;¿USÞ@å͵?»øÇ1*JéÛ7H¹µò+.êG¸íàí,5ÖRÞÊõYȯH*îåì<¼PÅ>S9Ó³ì¿ëà²ôÞ.úýýýó
|
||||
ùÔARHASBûûìíÇåÍàEN>PÞ+¿ûY°îøýEèàôíYäÂU¾*ôݽø=Wß/V½½ýõY1éòJÜBïùÈWñõE¯NÞÆß++ZÄ
|
||||
°éíû9IÎÎ,DغÜR*ëøI°K2CÄ52Ä¿-+ºNÛè÷íYYÚGßìïZàÓDJÅñï±,µH:è+,IZÃö1¶B¸øÄJè38+Þ²¾
|
||||
ïºÍÚàZ*CãTZÞ;ÄFºÀÂ?*»õYSîá5âØW-ö°ßWá¼¼GùôÌûøñÖW1YôYP>¶îÂÅR¾Q¼ýìÈ·ñ:9*¾ýM2ºõê
|
||||
ßÑ-îïÝMAHºKWý4/êðüÂ=ä-*H9J˶>C±QÊÔ?ÊÒäÁØXξ-,.æ:Sô<Pò0µ;<²SàNÀN<µ±,H¯FJíÌ;,Ò
|
||||
:èLÂæÔÀ-W@ÆÎU-Å5ò:K¿4ÓèµÀ:.JË7T/ÉÎV=+AJ:.JÁØ5öÝóKM/òô³ÁÏ*Â8ÎTÑ6¯*JV:¾ùÙ?Ç:KÅ
|
||||
°é?ÊòÛÞÅ5,¾3;HDÒZ»JÒá/UÂ..2Ú:Æ=Q¶>*Ñ+Ä9;P.5/ì¯âß=N¹+دüüð,´º¿VÙ³*É/Fµë1ÎQ+*Þ
|
||||
7º@¼·Ï¾Zíü6/BNóèW3AÜï/*¶¯P¿ùìËFùö6ܸðÓE/=ÖP*ÑôÍH;àº*ÞÇßLòVÝÁ-½KOÄ2WÐ?;?Úá¾Bß
|
||||
FÕJáíÝÍÙÕQO+,=Ò6ľÖÀÀ@é¼êØ4ÒêüÎÙ/âö.×@ù*Ô3öîÜÍöÍ39ÜÇÜÒRÞÔ±íüûÓ>îÄåÍÙðëÙà5*îö
|
||||
L3ûGúöòîCûòPMGØÄî+4Bîûã@Ê1*ºIZãì7VÖîJFAëC±í<ÐÀÁ72XÍ=*:<KÀLç¹J+·6-¾É@I@»/úîøü
|
||||
Fá/Êö.×@ù*¼2¶îàÉMÍXÛYý¼üøðâ1ÛÉC/ÒLïàWãÌû.²ÛKµÇÜ+ÃVú±äØ89LØìCº¾,Æ´½ø9-¼M*ÞÀù½
|
||||
8ÔÌÞÁQƳ×1-9¼Ú·ñåGøóíãµíXQÛÊSJ;øôëȳéµNé-Ì-Ã17C²ìJIʸÃ-ö./:óüå=,úÂ*¾ÝôíýY
|
||||
غ,í6é°;JRÇ·0*àåÚÊS¾5äÌëȲç-Í*¾5úåìCXÒJÏÀÚÌ×ùQî34RÃÞùMQçí1,*1¶¶ýü<ÁÇéõPÑÔù*Ò
|
||||
ÌÔPÅ*J²ÓÉD/ZóèÔF¹¼ÓØüíH¹ðÞDZµ9ú¹³,Ê;õüûCÅâõù*¾5ÂT»ýü<¹¯-öÌ·è°?¾øËùô2*âÚ¼SÑ*À
|
||||
0ëȰãS¯ÕõU6½ýüê;E0Yý7*ÎÛÆY1E¯åöºWUµYÝÒÂÓW¼*AY´ãÖïÚÜ5õWVʺýõ-*Ü×äVàÖÏɵYXßè@J
|
||||
¾Å9Ù<V¶°Pîøîϱ¶>Sݺ/YÛÍ0*ºUË4É+U´WF¯QYáÇ:ñ=VÖ?ݼÙO0*Ì7E³åÈ35ô5öø²*Þ½û,@êB±çÔ
|
||||
+´×÷TÝ2¿öó¹P2²½ý*Æ¿/*ï5=.ÙݽüãÞ,QPR¸ñüü+:¿4FCKñÛ¹µíÝ2*Jõ´/¾==²Þ½ý0ü5+*úìÔ*¶°
|
||||
À@F¶îß½;*òUîHCK:üû-J0@¶°ÀÄúöïâ½;*¾ïë4*QP2ÈI+*+ÞQ:¾¾-îä-°Â**Î*Î<Z.*>ÝÐ+¯ãV:*;
|
||||
1з<Ѿ:Ã::<ðË0ÂGâá9ND¿ÀÏ*Ï.åÆï*HìÀâã3ÚÊ.Ò3â*-?X×MT÷¶ðE3²L͸ÞÇ3ØñäËIY*Þ*LʼüÚ
|
||||
5*1B:ç,F,ÁȾ±½ÞZQ2½üúUIÇê+íòß´öØG´HÔÂ.:¾*Ä*ñJBXLßëEâ/,2ÀQïÜ;ÝèÀÒðïδ̳+BíÔ*¶
|
||||
°À*û3*¶*×4LQÙ5*òì÷Ì,JÚLÅHËJ¶:RîJ+Ú5/4äKÅìA2æîP18/**R/ZÕ?SB;<Z¾üè0ÚÆÌæÏéT3G¾-
|
||||
²îSìLíN3¸Ýº8û¾Æ·D2JÊÌ3µZ,E*ß¹ôÞ+Þ0O¿,S×ÏE*-CÖ¸Ð9µ.ÞÒ2GZ¶3MJß+ÇBã²0R2»RV¶·<1:
|
||||
ïÂ=XJä3+26ÆQ+8Öâ/RÂ*>MÒðFËÅLËEú3TBY·Q8ûÇ+QP2ÐI+*1¾óÊòßâ,Æì1ûEü²Çòç9*åÁ,14ÞE=
|
||||
µFKøò¹PÀòµ¸îR*TÒVøRëÂ18Â9.,F4*åµRøîB¾Q1î¾>FÖ¾ãÇζ8:ÝMI:1À1,2î2à76@ê0ë>JöQâ´á
|
||||
ô?T¸*²8ò,Qøïâ*êX;ç7/Õ>±Ú:3,Nìö;ÆàÀ±=3-¶*3QFïÐ<ÎS;è4Q½°C1J;òÐ6ÏÈñ°H8:å7ü.?ÒÕò
|
||||
W*FCKÖü.*F¾òA:ÅÏ8Þ¸¾:øM-JÝX2Ôé¿,Ó*HÛèºç*VÝH¿;Ý8Þø5G¶.*+-;*ÀKõ*Â;¾-8¶¿*ÆØ¿çC±
|
||||
Ã4FJ-ÅS3VZ¶ö0ðùæ1.Àï¿*LºÀ2,Ѽ»ö,/2X¿õóé³YÖ8*RI7¶Z:Q.JÇãÙì=Äò1Ê+ÐI:3¿*º3N¯ßãÇ
|
||||
F¾Â=̶ßCµ.ÞÄÕÒàíÇã>R6Û>M¾.ÑFAñï¾AìîQSKºOí,ÞÇ3DôëÙ±Y*î*ÖM¹±8¹*ê/ÁØã+òÚÞBQ4ÞEÇ
|
||||
=6E*ôê;Öðá+Z½Ï-Å2:Z:,Þ42å¼»N**¶ß+Q2Þ8ë5>´ÒÞ+D¶æ>ÒO»1YÅóźJæN7.:Uç>LÆì8ä8B¾/Ý
|
||||
×±í»KSÞÇ¿Ú:*¯HàVGV»J-ANL<ò¼K:1ë¯D*@>NÚï¹ÈB-:ÖCF×Ê-¼R¸·ÐF1ñïÀAìîQSKºã**²íÔ*¶
|
||||
°ÀÞû3*J*ì÷,ÎF4ÞWë3»Gµõì¯Éæ3,/T+ú+ßåù,*ìG6¿øìË8F4**Î4ÞêNòWUN¾+î̾õ±FZM±*çHÂî,
|
||||
7òÄ7åïÄBóÊ1ò1Üçõ,+¸ìÞʹ=ã»ê+-2ãV¶îâLËT.+FBÆ5,:Jç.,ÆVÑPB.+íANà4¿Áü¹Oß¿ÀFE32Ó:
|
||||
ïÄ=ìSÀ¸Í4¹øÐDÌVP¿LÊß+MÒðÚòÀ-ܶÁIM/ñ?»5*QPæÜÁ1ý»+**¶Ï*HºÓ//¸ºý8ÁJZAFÎ4Þ3¼*+V:
|
||||
HíÇØ0ù:º½Ï-Å,ZöX+*öùÁÁÂ+20Þ¹W5Ìï*WY¿ì2ß/DæSÉÜYíÞð×9ÞÉK46··2+SNÞÒùùÖ-0ÞÙÑ.5Nû
|
||||
H63,¶Z:A.*67>ÎÜ2ÂÅ<2W5XÆÂÇ@Á¾ÃÈÉ-º·±<¯*1:ïÄ=ìSÀ¼1ñß¾:WÍVP¿LÊß+MÒðFÊÅ5ܶMMK/ó
|
||||
?-**¼Ù,ÞÇ3ÀöÇ,*·ÕSP°N*î±/ÃE2**8BJÀ¹2OÆIC°.ÃòÈñàUØ´+ÌÊÎÇI½Üú+¾-í9,R7¶Ì*Pß¾<¹í
|
||||
ÐJD²Æ4>8ÇM<MƲ=°»À²ÂìèæÏ.¾÷ë4*QPÆäÑQÝYY±ñì*òÙ?*ÌÊÎÓµí¼ûY.*Þ¼Ù,ÞÇ34ùõݽ*NÎ
|
||||
,QPRîåýü+:¿4FCKÇYýù1¾.Tîâ.ÝýûOï,QPRðíýü+:¿4FCK¾ý9,*ÎÈ/*@Ý;QP2êýÁ*JÒ<ÙÌ-*@Ý;Q
|
||||
P2èå+*äGYÁE=ç¿ù>:ÏQ1*JåÆ5Ý»EÏ=JôÀODÂCñWâ3/.¼òáQO*NÝ***DÃC2ÛP-*Jì?Ä.ß/ï0CÞÒX
|
||||
QÍH»ÙÖ¿*µ/*úݰ,AH@RÔU»Äë»ÃJ·ß*QP2äå**ÚÛYÄIë0âG+8ÆéæQ+JùÙAîÑýýýÝÝû÷íç²ïµÑ¶Ã:*
|
||||
9»³æÞäÏE6H5;VÁ0ưýÃÍÈ*Æ8AÏ÷ëUåXDæ.âJØì6JJý³°Ëá>úS*QåÍ1***êÁúúàHP+Ì-¾òXD+HJÚÓ
|
||||
J³ÈB+7Ê3LËçTêî÷ø.9?¿Y8TÚýýýùý@GûìÎÊXBÞÇ3D÷ðý=H+*ðí+¾AI¹Ïêõù¯Y/M9ØÞ¿,¶çQÍä?½Û
|
||||
°ÆZðë6Ò3°úòáÍÄHûëñ·2,î×õèGËÜ»÷ë3¸âS±2ÀÓÖ*OüYõB*ê¼OD±ÀÊIüôêOÕ0øÔ5>¹Þ¯±¸ú½Ê6Ù¹
|
||||
ÂC@î.PßÓ+ÎPܺ*³éø@1ŽÆåÒźղ*ÞH¿*áXÔðëåõ¾ñàð?CEO1íÝÀѰ7G¸²×ü2ÀTTê±8ûK**ýµÆÞ9
|
||||
íºÍÝúòåÓEûõµ0ÜßCGR¾==>îßIBK*ý4*º·Ù:éÀýí½¼ÉúEFòåXÎ2ÞQY/ÚGöͺMØÖÉM̼¹-áë¼I¼øÑã
|
||||
íýûôëF>,¾Õ;ÜZýÊ:;Qöº,KÖÈ4ÎãýÝ8ÃÆåÞ9ÇJËÎã1ÍGæ*¾ÑXÎM1éÄÖöö,*VúδßMíÍÀù¾å-ºö*ÞÁ
|
||||
õçîÓê,HºÐöXç¾W6U÷ôÀ*-Ê»¼Ûß**÷OGöÚÚÀË0íFØLZî÷U¶TÐÅUØ@Q;RÚUÕMFV¯HüàK4+¾ý=MîàCØ
|
||||
ÅÝESÇ6³äàëåU>¼¿±¸Î*QPRÚ¹½ZÀÞû7*Þê±µH8½´1é1äH<ëMAR.îÒÙ8ôXýøÚDM+ƲÞNYð*¶½±À2ýý
|
||||
ùçíHë¿L*ï¹ûÇ34×Qí-¿·íùWå.ZZ0ÞUõúõWåÂí8,ÜÇ2¿ýËYÒ¹õÉ/ý1Î9ÇÞÊÎõÍYHùñ×A-»è/¶ñøó-
|
||||
5Ý**=¶»øÊåOß-¹îìKZõ*öJH*Lݹõð0ZëÓD½<I´ðÈýýIúÙX·Þ¾ï¹H?=ëÛ¹¾¹SCK+YáÀÑ4GúÞ5Å
|
||||
DÃð×ÈùAÉÆDIâðîµ**úIC,ÍEö¼ïúò¸õXM966ýìÚÇÚå°°îâ.Oùô1P2ØÝ**ÒG@æâøÅôBýúØUQIúìÇ5
|
||||
Ê+öòÊë@üXÝùÜÜѯùüùÙIÊÛÞUüV1À*8Ê:ãµYó+*Úê¿L*CÜôÇ3<ðøÆI1,VUUé²³ÍáJ2¾<ÍBËçéï-*V
|
||||
Y¿ô´åZ.Üûêõ@Ù5üùÝÂõùÆ.ä.Û½üñÝñ0ëCæÑX¾CËEÕ¹î/*BÛäÃÕºX4ðXÅ2*è8ÞÛ¶*·õìã7öíBÏè.Ù
|
||||
»¹òJ´6ÁLYÉ»åÐ1Íó¾çG0ËòJ?»ÃèZ¯»úGÄ/Q?D¶îE»Êàã»?éäXÞÃ@Ý3=Þí**ö½°.æÏ¸öZÛ8.Þà7³9
|
||||
õBÃøVå/ÌÊÎVÝüÞ.ßø,*57ôTè?Àüý½ûò+ý´HÚÂ5ú*0À*Føä³OÕÕýÛZÅ4ø»ýüûåIíüLY¸ó78FR¾DKí
|
||||
YI¼öîÙÉìVBÁº×-14JìH½°ÀTôKº.¿è¼ç-êB@ÕÖ/5MùÜ8:òZEKÙ¼+*²±BïõÅÞÕY½ØºàÛ¼á=ðQËI<¿C
|
||||
KúÍýºôÐY***»ã/*ð3ÊIå¿50îVÖêßÀã¸*éû¸Ï¹PPؼ۱Öñ61ºSÜJ1ùÛìAùZQì½´¼ÚZY/½Ã-âêÖâá*
|
||||
ÊÖ<R¿»çÏõ@@ä.G¶ÙAX¯á@ìG³ÇYàÌÏNGDß=M¾1ñAQ¶¸O¾ëÉÊûß6æ±I@¶°ÀLÛø-=.è5*æRÞú9ÂÎýå9
|
||||
½ºÐåÇý@L/H¾¿:*åVµ·ûîõ´ËGJæûùåíüõáãKÁ¹µ¶îJ+8ÊÎ펼¹ïÏK½0;YôÞ¿,2î³YÊÎÕôɲڲðÖë
|
||||
ºÕ-ì×Aͽýüóè5Æ»G1ì×Õ¾-ÑÏLó5WâØµ*¾BÒõÜAÚ¸óEµíñÈF³¿·ú?3Â3Lý÷ëM9¼´RñÙÕÌÛ²ÎÅ´J8ô
|
||||
¼+*å·îJ+º±*ÙÓí0ÎC*ÕXû×NË+ÆÚW¯çÏXÛ¸JÃøòø¹íß±Pú¼³ëسÀú÷È86ä¯÷ÀÍ-æÔÃBûÛÓäçA+
|
||||
ó³À8ºôDÙìÏUöËXùÒÒåBðìÊîÇ;Ö¾R·¸¹:+ÔÌïñ+±JÍûÖÞÇ34òæ9Ê:JY*ίUéPGúüî7õIIûõQÉ1ÝËH
|
||||
5¹ûJ0F¸òßéÀåû·S÷ëúÆÎõ½Yüîåà¹A.³ÍîÞ¿,Ò3¸üøëQAì¹ôéà¸âÁF¶ð*<ôúBKÕXEïÙL/°ùãLßÑçï
|
||||
Ó7BäÚD@G*JCY¿»ù0ìEASãÌØÄ8ÛÙìÇÉHÐNÇ,?Ü0Qî5VÐæÎÔ5Q6üÊ.¾ò:º¹ýû·ñá¼ÊIüôêOÕ0øä0âI
|
||||
êA*îF18>¾ÅÒÒ?¸òÆL,2*îJÏ5.*¾-Ü¿3ÚN/íö¾LVU=¹Üêåʶ»øµçE/¹é×GÖÈÝìûH1ÞU/KèùT6¸A±¿
|
||||
RÃ8Ü*Þù*ñõÎÉS³*CËI½Ö»:,<Úý=MZÌ7E´úJ,VÚßÜùOZH5T¿==>åÍIBK¶Ü*ÞAAûý½öØÀ¹¹ûùéÅÍË?
|
||||
÷í@E³¿@9âJ2¾õWXýºÕâÕ±ôÈÃùÕÝü¹ÓâËõê²ýÛß¿L¾CKí9Ýû÷åÅùä˶é@÷:1ÌF¾Ù¼¹ÝºðÒ1¹ó?1ÔÁ
|
||||
P¯ïýý/GÚµ²Þ>íTÕï+*:¿ÑÚH»-øATç53JÛÙS5L:ñ<H7,½ú´XáåÍÉEæ<ÝÓåùG6.õßúïÝYÍÜêåðÁå8²
|
||||
*ÞÇ72¹ÑY*Þ·8ÚZ3Qú5âñÈ?µëTØTH7ÎWéÄÉ>SæMHî°Ó,GºüîýýÛüùïÛ9´ì¶R;1ôCHBÇÚäóH1ÞSù>Ø
|
||||
¹T5¶1±¿RÇ@ü**Ú:¯1ó×éñá3<¶ZÅ5;*ü9åÇÃ5ê¸Ýá?ÖÒ2FCKSÜú¿3Àð1*J¼<9CðçóøVÉøùà°·µëÔO
|
||||
õÛÃù/7öðÓýèÕíDYýìýºáRùÌäÜÑôÜÛD²±ÒÍîJ;JË:¶º4*õÂÞɵüDAºðÑ÷øÒECPòøÚýüÔIýáüìê¾á4
|
||||
/5@W-18ÒëZßDóSðÁµ:ã¯G++ýùÕWVï08ÂQÔû7*¶ò-üØNÕÇOõWøÖßÚÚYÛE±·Î*XøýüòãÁå¼ûÖÍõÍYH
|
||||
ùñ×A-»°-,ìñ5*¶Ì-Q8Jü+¹ÒBèµÚPÔ@S»Ã-ìEÞÑJýÑÓÝÝáQýû¸îÃÅé>P×GØ+Wº7±ÆÖÜ?ÅRѸ*ßû.O
|
||||
¾éÓ*2TÓÍN¾É¿Õ:ãËëV2KÈVø*,Þý+-2âV9+¾¸>øÒNÔÆÍìâÐHîâ./·ð1P2ÆI**×5µâÆýýíGìÂ<Qüã
|
||||
Ä;Éüº÷DÔA²ÞÇ=ÍèÛ¼ûCë-ýÏÀXÖMÇI?Iüê׿Êö01ä*à.S½ù8U:Ì:*ïí9êG;¶ÓCSÑÕ8ÙíÖÌ>TåôõíÕ
|
||||
YÝãQ͹ÒEFBâñçæóéÅËÓØ½ßí5=:ÅWÛù-QÌFðPÏRÏÈÄùóé15?TÍ8ï¾ñXRµèͰIõÃÀÉ4N´ùOCBçýóͽ
|
||||
°ÀìIý÷í·Áô6òÇ7¶µÈ?UXúAíÛZõ·8F·*¹è8CÃ1<:Læ¶ëTÓõÛ8öÈY¿Üü7¹¼ù8H¹òìãXQéÓ²ðúÄ0Bï¯
|
||||
æ>±VÓW¿.=WÁÅWPNÐGÉ-KãøÇϹ۹ÆÊ3óÌJN@À3=è4.¾ý-KZ6¯±Ýü6*.³ÄQµ°S9¶°ÀLÚö-=.à9*¾=ã
|
||||
.7D¼Õ÷áõâõØÓBÙ´æ¿7íà>»ÛÎ+AXºðàøï5Hêûùåíüµâ¿÷TëÐ3é³Eé78Ê+¾çKÀÌÜá÷ìµñýýÜÁýÌ»øñ
|
||||
ãûð/Ã9ûß6¾AFë¸ôóÍùTôáñáÅýü»ùëWñÚ°=Û-,QBVܺ÷VGÉûÀ-2æOøì÷J2*SëâW2ß2*;MãöË4öÈQE
|
||||
ð?8DXçú¸òÒLý<ôûX6ÖòýôåÉ9ý»ËÎýå½HùéÒO-»°-ÖW¯à·ë8*Få¿=1¾Ï¿ãê0¯F¾õ7å3A±ÙN?¼Ö-XC
|
||||
NÍXýÑýܹÕ캸ÖèMé>7=HØ+Hù5Câ3KOUÌßKáÞKéÆÅ°Õð¾RÛÄü2*º±ÌáìÊϱà+Ï*ò²*ö½:.Òíöêõ*
|
||||
J,õ¹¸=Éø¾==>ßÁIBK2Ü*Þå3ÀÓ>ÝT´Ø¸øÒ±A9¼E´èö·°×ýBGο:*íËòúùäSøõíñÉýúÙöìÕMEäQ½3º
|
||||
Á-±*¼øýùôë¹ú½ÚñÓÚG»öìÓµÕÐÛÜâøÖÕ¹Lî,=ÍäûÙùöô»ûøòçÍý7öZÉëöXMõ¾Þõ´4Å8G¸ÑN÷ÈÌÁ1õ
|
||||
ê=ÕNL4ô¹HB-JRAS5LZòæ/=óÀWä*FHÑFÁ1Ýë?±½úñòßÅ1-/û66ÖòýñåÅ1ÝûÊÎùÍíHøîܹé0JÍ꾯-
|
||||
Ê´ê,¾ñF¶ñ*ìêáÇä4ð?14,ÁäÊ?±ÕèïJ+ºÝÕD×µP8ü¸½XÛXìæËAã4>ÛØ+0É5Bá1ECUÃÏHÙÎ;¹RÄUFJ
|
||||
ÒZU½2*êEèUH86¶C<*úI2,ð0ùò±*J¼Ý¸¹¹=¹,¿==>ݽIBKö»*ÞO<ðOöýøúº·EÊ7AQü¹ôè4øðÉ×ÚSX
|
||||
DR.îµQÕåHò²üóOùãÏ-¶ØíµêöHØ¿C*DûIüCKÝY¼ïàÐõ±õÌÕÉO×õðèÝì3¿üáËC²îèMë»úôÔ÷XäûôIÀ
|
||||
ÄEÏÁÂJìL¿5*îáLO¸òæ<RÎ.Òß1¹Î2¾ËPTäËEµÚìë¾1V×òõíLëìóCÙÀ0ëö°äEÍ»+Éä½üº÷î×Å3¸ýûí
|
||||
½½ìº¶îàEæ=EJéæ°»**å·îä+Fâ¹8;0=ÃÊEÂäVÓ°Ôíô¾µ?4²Wû¿ÙUõä¹9ÔüÚ·ßJÃÙÑå¶J¯óTÊÎ<¯Ó0
|
||||
¶=ÈÛý°ÚØ+L?ùøÙ*ZæK1V?6*úI2,øODñU*J¹Û°»æSùà¾==>Ü»IBKî»**6/3Àý¿ÀÜTFçã¿í´ËسÛôé
|
||||
éÀ¿5.îÒ½Ì18¸äùðÛµëßµ¹ÜæÉè±EB-2=.õá.ûûú÷Gµ/8½²@T@±åеý¸Q.ÌY¶ïÑA=õìÛIÕÚµ³éµ3À²
|
||||
ÀYUNó:;V³RÐÒÛ**±P4ÒÞQÅÏ2¾ÉP4P7ÔM¶ÍǾáET8OÃJãÄòÖËP¼¸¶UÛZ+îUE*JY*¾Éüý½üöíÕQµäÃ
|
||||
11øâ0NDÒA*îF1ìF¾ÅGôÎÞ»óÚK±ãLÛMûÖMºó´XµÌHúú·õÜô¸òèGÍ/TÐà¸Ô-º³ÓVÁ-@ø³ì*1LÏéYÄU
|
||||
DJÒ¶Á½**ÊGöéÉ9Å0Ü@¾¾4UF4*úI2,4Ó×ïE*οå´ÛD³Òù:Ø94FCKßËù¿3,ì-*8æéýÙýÕýÝÜÉé?F÷ì
|
||||
×1ù=ØT@5FL*Å4E³Îú¹IWÅù0TÊPèA·J¶ñ¼¯ÀÌü¼ìÀ»áø=I?3ÖóéÛ½Û=,ÕAø·òÝ5åPê5ñPûóã×ãã
|
||||
MôæÇíûöZ<Ú°°ÉT7UÔVCê?T<¹Ñí8á¿,JÐÇNGLøX.ÚÜÇMͰO×ѳåë±ìÙÚ·õÚ5ÒÜX-Aû½½øðß±ÝìÌA9
|
||||
8òÇ32°MY*Þ·8F¸*¯óYÆÎGUô3Þù8ï·ïK7È·²óÁÛµòÉÍèÒ÷ÑVÆñX1ºTRÔ,õ=²É²äËÙJ>¶ùã¶?-ÀTõK
|
||||
JõVîBZÕNãØãN»D/ðº*çó:ºÊî¿:ÎQÄýH**íÉÕWÕVÓL³4Hã:LÙ¯¿==>ÙµIBKÖ»*Þ1?»ÚêýéEMù´ÓÈ-
|
||||
A»<ÕÀJ¸ÓÞ?,¶âBO0ì豸éäAÛÀÉÍìJ2¾ÍüíÜ»ø8ýéõØÝ°9íØXÝÏ?ñÆ¿¯éüóÌ2Úî¾¼×µÍXD¶XÛÔèéô
|
||||
óÙI=NâCɹ÷2ÌòÖMÇDGÐó9*¼»6A6¾üGLø:.Ò²Áõî/úD:ÞQ°?ºù´Æ¸ÍÜP-=ûÝü÷á¼0Û·ïJÍʾ6ñ÷,*
|
||||
ÌñÞÏ-¶»êæ·¹@ê=ÇC¶ÂíâöÒUÚá;5äM³èÒØðB¯AµàÍ´D/öÜHÖâS¿,ÏÚãAá?6Ò3ླྀN°¼¼@B.JFW6.J
|
||||
Ø·J8=º:.üSZÚ¹õä»ÙÔÍ7ù³éÓSÍ@?MIO°LUÇ¿==>ݽIBKö»*Þû:MÄê½êâÆïXâÀM»@YïD¿Á.î½³ýÄ»
|
||||
íïÁ÷ÞíéEîݽÍü½½üú8ûýìVÛÁÕìÚ¶1ìùõè51õüóî2Úð¿OáÍÝXFXUúý½ý³ÀÄØN¾µíµà0RÞC°O÷ùóÁQ
|
||||
ÉÜÔ+@ûÝû÷ðá½Yô¹°,ÂTãÊ1*îF18G¾JÓ?NR@GËMGºIÌTßÜ?ù>SNØYÏÀÇ9õ¿UøN¶HG³à²¯RòøÉïè/F
|
||||
?ïñåÁµLúºÉ»@ö÷-*8ÖÜäñåMG;VR*ö½:.üÇYܸïØOUÔÁóÈÓTÒPÇ4?JIWéÈ8´ÞÇ3Èïá9Ê:6I*îûXËE
|
||||
õIõ·ñÎ;ÇøÖÛW;¶Ì*ò°Ù×Câ¾Ùü×±åÌ8ýYóðÝUÅÜF·ïÝóôëÖG4ôó<3FµÅ<ÛYõGµN+ºýÊÎÏXCÎîFÐ;½
|
||||
6¶ÈO?4Vå±àãÕ³ÞOýI½¼ºöëÕÁñß¼µRJR/¹**õ·î0,>òPåºÓÈDǸöêãÊäÃé´æ¯<ÉåùH¾S5WLêµ+¾*Ê
|
||||
ïÈ/ä.ûú»½Ò¼ôèµZíE´åÆNé<óø2S·º2úI2,ýN¶ìÙ³åÄûèÙXËø²çÏK½ÈÌÍ@ÔOå@îâ.ã÷ñ1P2Ì9*öë
|
||||
ÓÆKºé<àS.èCÏó+÷=¾ÅÊ9EöëØ±ÑôÐM½Ü6·ðÞÒßÕÙKîO÷×˵9VâT?ºûÓEز»3çÆJ/Ö³¸LÇ<Ë3ï·7¶ç
|
||||
úåÍA9Hùó*»ÖYàFÎåÍI±³Tð²ê¿MÕÐóÍ?¾ÎÑî+ÕT2<Æ8CTÂÆ4ÀÈïT/2Óïò-*FXYº:CLâ2<¼.R7FÍô?
|
||||
H<Jòçù½:.ü3WÙ²ãÀóÈÓUÃè>SÏJ»ð>6IOÁ:5׿==.éí+¾ý8ÖæÔTÄ@Ï.à9ØJÜ7J8¿û¸,*ÞU*¾úàóÖ2
|
||||
RëÁÄM+Z´ÎNÑìÜ/²Nï,ö×Ú»ïHÜ96*ø4*<ä+Ú¼ÛäXÊõÏ<¼³9G³à²¿ÀÂöÆï4/8ÊZ2¾=YëCñäҿɽß+K
|
||||
*Þý¿:2ÃÍX,*RÚÅÀâÁ-QP2ÜýÁ*¶±ÀÅ7*úY¼MÌÊ:Êý1+¾R?µI/**ýÉíÆ==.õýK*:Tàûå+*ÉíÆ==.ùÝ
|
||||
½*âÞ,QP2Ö½ý*Æà/Üý3¼ý=úüQÖÍP2R»Ò**ýõ½ÀîýM/¾-O±óíåÕIG*Îúõé½÷=ÒíãÕåý¼öâ**½ý8ÌGú
|
||||
9½ÀDÚöòùûÕÍ6*>µìرù̼E=.*üè3°é×µý@ÝÝü**×ͽH/ÎêµÕÄûDóý¼Àú¶ôèÕßåÝIC*RøâMͼëö½I
|
||||
K¼ù¸±æéçéI**÷ñS*O9ûñäÕíÜFK*î**¼ô3°ÒÐ=µX8Hû+*RIÍ,RöâEM@7óã385ä4ÀK*íó.·OæÃ?ùäü
|
||||
»°*Îê»UX6¸ã.PR·ÅØZßÒì÷÷î¹GKÄæ÷ZâØÍQÍ6*ò·ëÆ1¹ÄB¿3TRãºíüOT´;>ê×½Õ=ÒùF9¼6¹öò**¯
|
||||
IHê÷Ü.PR?úäÌûô/½ø.×EåÀ9Ýüë¹°*ÎÝYI@ê×Ù.P2@Â3ÀìÍø.×ÖåÀ5ÕÜWù*JP/¾Ó55üVV,=ÒÎÊûôË
|
||||
6ÒI»Àú4²àÄUåÄGC*æêÓ9A0ûT,=ÒÙEOÖ:4õðßÒ.îÛÌίLG·ðÑ=.*Ì2ÞÛ3LéÈ=Ñäòö.±´¾õ¸Àææ±æÉ
|
||||
QÝFßù7ÎÛ±½87DÏý¼ÀÊÉVèÎMÝÌ»**²åÑ*ÈúµéÔç´ØË3¼Ò*BMá-ASXû¸³ìÇ+¾¼åüù±PÞüù3Tôî0;Ëê
|
||||
¸´*¾èW¹W²TÃß±IKã¼:<BTÐN0*P/ÊHÞ8¾ßHPöÑÈîÃ3äÛ*ùBß9Ü0íý.Ýý3¼ý=êQ=.ÒHT*¾ýÙBK
|
||||
d
|
||||
532 112[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 7504 string uc
|
||||
*ÞX**HºýÀöüYöûÝîù½ßõýÀíý/Ýý5¼ýAúüYöûÝîù½ßõýÀíý/Ýý5üÝA.%%
|
||||
d
|
||||
/sl 59584 string uc
|
||||
äÕí´êñ1*KóýM/¾-O±óíåÕIG*ÎúõéI*-éäÕYU9û.ó¹÷ó÷Ý9HC*ÞíÝÁ±1ýáÍÎ0AHû¼ýó=-*ãËÙôêÜÑ
|
||||
ýõ=âÔ±íüW¼½û+*°Iýº4J×íX7ù³èýû.÷ïêÓYÁͽ½°*ÎòÇÅHûØïý¼ÀúôóäÎÕÑÕ½**ðåÑ*ÈHøåËYÝ»¸
|
||||
ÀèÓ91,>æ¶ò*·/Þ¹GKÄT¸ðäãßÑI**óñS*/ͺ±âÐÏÜFKÔÈÀåíçµA¼ñ*Ç+Þ¹GKX3¸¯ãÜ×½Í6*>¹íÈ5Á
|
||||
X÷ð.O7Î1Ðõâ+.¹*í÷.CLåÁ;é¼H»°*Îå³MHêCàÉ=>2ÂIÆÜ=1ÆV+Üé3è»Ì1IÄGº¸*¾Ö99ôºí½IKôä×
|
||||
îáÕ½ùÌ6*òõéÅ/¹ôôð.ãÊÌ1Ðõâ+<U¾õ¸ÀVê±ßÃUíÔ»*:Ñ,ÞèÃ/½@ôð.÷S2>·IQGóË-N0*íó.÷?æÂ7
|
||||
ÕÌ7¹°*Î×UIX6øÓÉ=âêÕè×ÎÞ/LÅ8**ºå=²ÊRQÌúò.+¾=,¶µÀæØðâÒCGGßÚ3îÛÌ:Dø6øðçAQö¼-²õê
|
||||
ÍMÁPòð.+¾5*öÖQÆ·ÇO7¸òé×1*¾ôº4JÇý´ëDëPAQB÷+ºÕ=â-ASXû¸³ìÇ+¾¼åüù±PÞüù3Tôî0;Ë긴
|
||||
*¾èW¹W²TÃß±IKã¼:<BTÐN0*P/ÊHÞ8¾ßHPöÑÈîÃ3äÛ*ùBß9Ü0íý.Ýý3¼ý=êQ=.ÒHT*¾ýùIKöýÏ,Þù
|
||||
IßÒ¼îûÍZTIöüQBÓ9ºý=Êè1Øó.ûóCÞ*òüùP2½0CÞ¾Ã=B**X?Þ3,*æA÷:PR+*B*.ßü1?,*Ò,¾îµÃ,
|
||||
Õ<Cî*Ä:ÁÉ@¶ø+øý½Yæ¿Ç50¾üÇ:1îï+:¶ÜÁH2ÖÎáýÓÎî·C2*ýíVMJÞ¯Qú+:ÖË3L2LÍ9åúî.9<Þç3Ê
|
||||
3àýõ7=ÏöÎL8ÒêïËC3YóÕ9ç½2-Zý¯ãöÖûü9´KýýýD¶Ïý*H2IZîµWR7ͽùèýçýXÉíñå7Sú4:ÚÎ346É
|
||||
Íâí2¾=ò:.Zô*Lñï/¾ÂãÌ»±D.î,ô***BC¶·ÀüýýÛQü59â*9÷ùýý·3:>ÊÏÌÞü1@¶õÖBZÎóû½*ôï-<Í
|
||||
ÅRâ0ì??8*N1ÝüýI±¿VöAÒJ*´2X**T.R²<98ÆÌµðúý½=WýýÕáÆü1ZËÑ÷.ÏÁóÃð2ÞØ82à+LæMQýý1ã
|
||||
õRÁ*öÝH¯:îÄG4?ü¿*êä.WT;é8IDKͳELEê+:4æËUWÀGùJòÈIÆ¿¹+¶¯À켿ýÈ@ä½EÃûý9KöÏ2-JFÈ
|
||||
õ=-üTEöëÍãø9¾+é¼ðÌ·+±é.Ûéá-ì9·-ýý-Õ9ER2N:ûò9îÓ2ÆJKU=úýý?äýý9Ï<ýíüÄøý+ÂÕ+ØÄ4Æ
|
||||
.òY>źÕïâ.Å6òåQý×=ï½DJüý½ï3K*QêÏRï9.Þ´P2×=µSãÝE=âé×5Y¾G*.KíBJ¸ô2ÀÍ9âZÀÔHÁý3Ä
|
||||
3:ýýƾS99J*6WG/îýAÂýý½¹0ý7*ýýçIæC±YÒÉÂ+-ѶԽXÀð0î8*íÂ*ûÕî¼·¾ýý½¾ýýýËIJãË0EEJ
|
||||
VµÆ½³ÀÐI¿==F°¾îG¾ISY³ÞÓQ**Åêï¾=H+,Vå.7¹ôÖEÊú¿ó1VR¹¹Þ8*-Ùó,<KõVP2÷ð÷Ý+ïL2ÐݯË
|
||||
3EÇÄê>¾úå:¶0Ü1ÌÃ,*2AÈLÒ¹R°Î*üÑàQ¸øM=V2J3ìÕ½¾¶LÀûJ*éÒîÏÝã,Ø3E*ýïN»ï1LÜÃ==VEZÍ
|
||||
¼Ø¿ûJ-8»À*ÞîÄG¼Ñ3¸ÒÕÍ=Ë¿Gù,ÀDÛDKYÜË>ô*Vë÷ÊÑéäÌ»;¶äM/O+ìÕQæ÷M´ÐóýX¾¾±üêýý½8ÚÀ
|
||||
Î21ÞüÈÎýýAîXY·59HÙUK.òÜÛVM>Ö@¸û¯·6C.3R.ÎïY0*üVÞ7î;D²+HJF·â¸:¾»Û¯Âý°+Aì+¾ý²O*
|
||||
óÌóAµùý½âÏT2ÌÆ+GËðP³¾>îüà=V+õý+Ú¯ÅèõJ*ÙCKýðß¾:V×±½ODFF=ò><ZÐËG*íÒúÀ,GÖ±ý60+
|
||||
³¿G¹W5ÖÅ6FFK1Z¾ÇÍýýÁÝãCB*ðý½73ú/ö*ýOÉBû½B0ÖG?/6Z/Ð;54NÃAðýýåÂB¾Nìï¿2,ëBÀ±Ä
|
||||
*Ë/.0FîEùè+ß.OCðòàJ*Øý,ÝØ+øýýáJ*Åù1Á,C>ûýYÐóWK¶L0ÂÜ,ÈÓ+<6Á5ÍZßBú1îÂG8òßE:¾ëÊ
|
||||
îG,¾ðÁ*,¸ÁÁ>*é9¸JÊZ@+2ä½+¶C,*ïIØPG*÷Yã»0K:¹ßã²7µæïIBÞÌP2*>*>/Î464äÁ13ËîÇ-N·À
|
||||
´ß¾=Ã9N¾¶QH-;¾äýÀúð,ÀGËî?/¾ðCïKÀ=ú.ÇZ»=ÊT/Üý3PÓ,íý.ÑT¿ÍTÀùIß9Ü0íý.Ýý3¼ý=Úó3,
|
||||
TíI*X¸*ú½¸Àîýù1¾É8öüQöûÍîùIßõ½À½ë.OÛ6»UDéIK3ÅR:¾²ÃòÒ4*¾N4;Q7:*ýÁÝÛ¿±;¶ð*àÐæJ
|
||||
*òýWùU³á+úÓýýQ960ÉAÎ@ÍâFIÆB++Ϲܯ¶ß*¯<A¹:2àÃÅÙüýÓU×Ö3ÕûÁ-4*T;:**.ØæËâ;8·Á+B*
|
||||
.ßÎÁá,·HJG±ÀVüÄÔýÝI;¼K=ÊP;8VÞ·HöéäôýýíDßýòTÖóá¯ú××áóùÍIHç°F,ÄGNôë3Ðöñ¶9-Öú×Ý
|
||||
ÇG1¶O/.üâ7÷³ÅÛµÊÂàñIÆÓÍØÞ.ûýÓIê=Á÷ݹÂÃ+-Wí9÷Æ-*çßÕýýåVî5üû½òòýýÎÒYï¿66÷ù¾0êá
|
||||
1NHIî¾5>**45Ä08Úß¿B6T-*1ÀÞÖÉØÞLÛLÂÞò.*ÒX6*¶¶ÇýýÅ·öýUα:ÈÛøÝ9ðM¯Kñ<J2°½Î6³+1
|
||||
L*üISÂE÷¶¾9*Þ:áòÁº4FSæÊDÒMF<8¹OÝIáá*¯*L¸ÚCÇMáZýýÕåîä»òÞ.é.PRô,Íì²å3>ÆÛQ8èÃ+ö
|
||||
Ý=ÖU+,*äÏDæ.û½NÊ0÷ýýTE-Ýû×VÕ.ãû;µîý½îø¯¹/ý½¼øÍG3ýRçàúµÑFÎ+-ÔûâG1Fî,/*¾àÀÏ¿-µ
|
||||
¶:0Ñ+îý¿:ÎVõìI·/öýLD,*TA0*FVÂýñQÁýý?Y9WðýÕüõ¸ýRV.Àî¿*AÈÏ@îJ.â½*QÜðNHÈ@86MòÁN
|
||||
Í<YæÚ2ÊM;:ÕR0EHÖJÇYU¶Þ*Þ/?ÖüÞÉϹñH¸Ð¶*:ÁI¶ÂQõP¿üÙYîÎX2*ïRàÀí.RGT1ËÎñ0Îùýý5àý
|
||||
QýÙ±¶ORM¸Ü½XÀð*ú1í+ÀISíý.+Ú<*ý5D:ò7Fî¾5>RVRD¶î0*¼Ãß²Þ/E21îíÚ,ú½;7îýÃX6*JõÚØ=
|
||||
¼·.0;Q±ýèý±=²Æ¾SýýÂHè,8¾ú1îâUÌâMçà¿/Jö8ܵ²BYæÚîÌM;JÕÐäE.C1>ö½7ÊÚCÄ**B÷PN8î,
|
||||
F¶ÂQõP¿üÕåîÎX2*MUÍ/RÂ.ν-ØG±ÀóA¾KF/ºIÔ+üÍêWV¾ÏàQ¸ø¾*üòÑ7êýE:¼Ð2;,ðGÂ-8¶¿,Åîó
|
||||
À,T6T-8.+CJýýËU*01Ð+üIçÃ3*ÑæÓßèOYTÏåUý÷C¼>@N½áDµÈÏ@îJ.â½*µÜðLHÌ?»èCP÷ÊKÑ.îR
|
||||
.îÓý@3ìY:KýQýUB·N/²7Ïü1í-8FØÄ¹ÑJý÷ð·RA.JD°å,Ò8óƸDå.û?µïß±¹óÝ+SÜí?K·.ÎïY0*üý
|
||||
ÑHãËýý¹+,ÌIZ½K-òÜÛV1Fî,/ìÌZÃKV¾>îüJ2ÊÌÇìÁG2,SÞûòÆýýYòà*¾SÌäËýB2ýýý¸ZÕüµH0+Í
|
||||
ÝÝûñÀ+¸8ÚÀEøR5¶:,ðI¾5ö½Àò>ÆO÷ÀÄ>îüJ18Ã¾Üø½IßÇü-NV½ëî<AÊFD0ÀYÄÜÁõ+1ÌVáÇôF¾,á
|
||||
9×ÇÔ1óà*ÖÝ<òÓ*ÓMÛÇÃìCKíÌÈ,0ÖÚýõOFƺORܯ.3å6+øÍÜUJ÷ý½öÙBB*J8æ¾×ÎJ4ù-8¶¿,µQÖà:
|
||||
@JÀ¯¶:.Ä×22=9.¿.áîLDÞý=ÛB*JúËOW3MýýÕ7.ÎÎ-üÐ/7àÀ+Ð;¿ÝEøR5¶:,ðI¾5öLúµâ°*¾æUæD
|
||||
Yæ¾Z³ô*Þ?ï.ÀöøóÄü½óT@¶*ö¶J+Þ3?;ì:âܹ9¶î.Í̲QK¿+BÞâåɸ¿*üÉ@¯øÏ*+*ñRÃ/Û±ÀCE*ÚÍ
|
||||
ó4LýY0Þï2ê7.2¸9ø=0Á?ËNÀŶÐ.1ÔØKQÖÕèJòÇéYP÷õPöíÖäùIßõ½Àíý.õ½ÀÈõÎ1,@òÆÈ8Vöýý+F
|
||||
G¿Á:2K¶:**ÞC6ÚϾ6Öîì5ì0M8ú¶»0åÀ:/NúB=âµWR7ͽùèSçK°ã¸Ã±åQB3QFؾ>Æ;Xîô.YÙMØW÷Q
|
||||
PRòZ»Z-ìG@06²»ý9*¿òîUÊè>¾59âÞÆÝýýùô·2Zö9***ý+¾¹L2+2<R4Jñ<J262KZ±@VöÕVî¾8:¹S5
|
||||
V*¶°9?ÃK*µÖ:*βϰîN,NQZµAðJ5ÌÃâÃPÚÎ4öýÞ6ò½*9I:÷úL2XRõÇú½?SýM5ø¸PR<νZ-üTEöë
|
||||
Íãø9*÷MìJÊè>¾UØBýë>ýýI<ûîAÀÇý*ì3KËÞ¿@2.ß9²*ü1XI´/ã,1ò¾°Û¹½TîJ*L/è2ìZK.Þ3W**Q
|
||||
<¾ÂM÷üôLXîáÓÆÚBÁ5T·¯0øI*ZëQì·;.AÒàѳÚ9ãÃü6;¼K=ò5àýýÝGÁý*Âýý=ZÑ*:KúF0Þý½À÷á-Á
|
||||
,õÂî*äÈ,2<ZèU-VýÚ.ã?ú+*1òJF¾Yµ¶:*Ï,Ó+QÖÎôïÀ@àD8N¾BØøöLXîáÓÆFCß-T·¯0=.ÀÜ¿5K¶K
|
||||
?ܲÒÝçøZ¼â÷éCK¿=ó¿7*0ÏRî»F꿾Ë,Æ0Â50¾À°ö3+ÞîÊ2XC9çíÖP³¾ÏàQ¸ø-=ºJ1ä*ûýüíËî²Þ3
|
||||
@6*FÏ/*î.CND°ÅAð,IXÃâÇ3HR¿5±B5:íKÚ2À5TïßWʹEÎJ:üÍÒßÉCKQU,RõøÉÙûYY·59HÙUµú?4Þ
|
||||
¹+,ÌIùýýAǺ÷-êV+õý+Ú=ÀU=Nå¿U27î/ÚM*7ý°*îÅ/8æ¿çCç»ÖU=N0Èõ57¶À/±,1²¯6ïL,Æû?Kå/
|
||||
ÌLáîáÓÆÚÎÅ5Q·¯0¯+òÜÛVAÀîÂT²Å8ö5ÍÎóËÆîû3øý¶ýZR:ÁÐýÖG?/6ZÛÖÕ-/îZ*âýýÞ³7,Büý
|
||||
9@êüÌ2XË:çÆÞY²¾1áί.3å6+D@¶J1Ä×22=Y¯+÷ðJð?@Ê3FÎïÂ=3JÐOÊ8A¶47Á9ÕLðÀHÌFã¿Cæý*
|
||||
VR:ÃûÃ:FÏ4Ë?èýû8¾H¯ÂQ±ÀC<*öÝÁ:*NÁ*<ÚÁÒG;¯¼ÎýýíåE4ýç.A¯/ZY6*Ûæ*ðÀ×ïáÌîMWÄõ½Àí
|
||||
ý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý+òÖ34ùÁÑN¿òîî¿ËÎBMF.**Ú=+,î½
|
||||
ö=422¶¶-ã-/*ö±3-Qt09F**ø9¾ÏB+æõà08úKZÞ3HRãÐRBÖ,±J¾Ú+±NÞO¹¯¾SúýX:26WU18ξÙ.°J
|
||||
ÁýýóXK/Ä277Îûå¿*ïÌýç¿-P¶´.ðýýMGöÜPRÜîI,ƾûXÁî78îÓL<彺ÂêENÎ*RNýýýÊ5Y¶Þ*ÅPæQ8
|
||||
SèûûÜT6ÐýýéÕ7öDQçñùôÝôúL´Äð¿L+ÕØÞêûùýýQßòàI¹Kʾ°êáÚ·I=Q18Bß×;Æýý9óÞIDK½òòýýÎ
|
||||
úü1ÞK¸öóý½í·2*0?´ÀøÓ;¾Zü¯¿=L2*¾ýåVÖîíN¾ý1ÞG@06²»½+1ñº/+ðäëB/·ÉåâLÊJÒ*4=÷ݯ±A
|
||||
BR+*ÞXè,5±/üï-<ÍýáË<ÛDÂÏÀAê@̲+<¶ýýº9Á¿¿:1àÞüýå±TO¾K×øIéî/üÍOðýý?½·Î-1Êîæ2.¾
|
||||
ýå¸î5ËÎýúòI¹<üý-JüÆE2J>ûîIÆ,×2ò2JâíÖÞ3;Â*ÞýÞóáÔî¾*óÓ´îÙIÉó,8L*8J¾JZ½Ö´L½Æ:T*
|
||||
÷à÷Yëî-=6;J×ìÛYºîÞØÍÚñIÍÛ+³ÛõMÕ¼íîN5:1ÍôQ<21:NÑÛ*ÉJ+áJRÆ1¯ÐR÷*AõúÅ2*-+>,ý¿-G
|
||||
¶Þ.ÅÄJüý½Ô-Ýæ.;º1îQè5ûDñMý=ʽ;/°2ø;¾RÞ¯+*ýÀ2L*VýÚ.ãËç/+æ/ïýýíÌß/FÂ*F2ÂDKZÝÈö
|
||||
Þ.¯½7×éö9¸**È7Â-ö1öÞûýQíÞý.öOæðAM2YôêÇ@BÑ9¾*4JNÏWÛ½ß:¿,¼*OùH¹úýíÊËVö,æ2+¶:èQ
|
||||
ìMRF¶ß.ÅÄJüý½Ó-íæ.ïýQIëÞ¼*³ôý½/í9J¿ÆÍ±.Î4¶VîÂ2>¾ýÒöÇÌüà.+ÁBKöHPÖDîÞäÀ*âËÙK+ð
|
||||
ôÉ5:B<Jîöò¹;.¿+â*ûý+Âñ+üGÂýBFÝ÷J8/÷Jë3ëË*ÞS»ü5I?°õ.6ú½9ñýÝYîý½êîü½ë9L.ò5âýýY
|
||||
0±´îÂ387¿úýýR1HÐ3ÐÑSìÚ3GØ>YüTK÷Èí2ÞË3H;,YÞG,æöA-*I:Þý-¶ãWºöêXÛ2ÀE¿ÞTÃRÔ9·2ÊA
|
||||
JZN¾>-ÆûL2à9ÊÌÇìÁ?>öùô°ûÕ¶.ìùµ´°ÂÞùñQÙ¾èýÂHIM+ýÄ9ûдüýå߰ܵTN¾Ìòñº¸L?å0*Ï5P
|
||||
¶².ðýýMGöÆPÆæUJ÷Pò6öD.ZÊ/2±ÃÅ*ìÊî3;öZ6DÄ:ïÊ;J++úI¾ôÒ>Z¾?´öâ8Xî:ÔÚ+**º/5APöÄ,
|
||||
Þýö-áV.ÂÇ-/ìÀ,SêýýÕS/;Æßð+:.*ÞýýE2*<D÷Þ,Ä*0,ºúO0ÚÆüý½YÁÀ¾Éá¿,èIÛ1;ð÷½Ñ-14îà2
|
||||
ìòÞYDßñ.:Yö9+F0¾EìÈäÛîºÂM¾Û˾0ÌÖ+ÚýµêÔIPRRÝD,Ö.*ÎøHIíL9Hæ3¼ùAöüQöûÍîùIß?Í:%%
|
||||
d
|
||||
532 112[1 0 0 1 0 0]sl 8 mask 0 112 di
|
||||
/mask 7504 string uc
|
||||
*ÞX**HºýÀöüYöûÝîù½ßõýÀíý/Ýý5¼ýAúüYöûÝîù½ßõýÀíý/Ýý5üÝA.%%
|
||||
d
|
||||
/sl 59584 string uc
|
||||
äÕí´ê-*.ÓýíI*X¸ÞJγñéÕÓõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍZUVÁÒÉÏëÙ±?=Â
|
||||
JË>Z<²F¾/ýýI¾6î:Ã5VÉ/ÂOÏ¿*æýÙôÕèÄ-öUýýÍHB6@YJë?:**;*å*:ÜðX1Ìûãïã22Û±ZÂÙSƯ-8
|
||||
øMáÌ:Y?<·¼âKÖ@LGê;Ö½íF;ÕËõRé.ýÝ4´ûÊ:½´ô¶ûüñÅåLµÕIîÄ.ìXäC7⺾CBæÓLVFÈ´¹Àð0ìJ
|
||||
*½5å½***ú1ÞK¸öóÝöJ0ÄöÝýý-*ÖKÉâü½?SýM5ø9*üIA+ÀýQ°Þýý½òòýýÍ,UõÖBZÎó»îJúÞ*¾ùÌÁ*
|
||||
ÁýýåV:5üÃHÊNFè×Á¼*ýY7ß+O64¶¶ÇýýÅ·öýUÐÑàCKç1÷ÏÙF¾ÃîÇ=DC¶BY;ýýI<ÈE½Cò¶·C?,µÚ,*
|
||||
FƾUÛ·î0>DÇ11:-+ºú¾âñ=N;*EFï4GBßD¿3ÈÛBÃ*ÃMR¸ÞMA6ÒEQR:Ö9.:ó=FæEõÅÚ¿ýÈ@ä½5ÐÂ/ö
|
||||
¼øÑ³Ú9ãÃüÀ;àÎ+¿:º>ßÃ6öýý½¼øI»ÈýøTEöëÍãTµRÇJÅøß9/ZÞóáÔ:LZ<ïæ.9ø+ú½³.1>¯*ÞßLúI
|
||||
½DúýY÷øæ<ý½ó½ÕùÅìð*@ÀìÌæNïLÏá?ÏF÷É=ó¶³C?,µÚ,*Fƾ±¸Rµ:¿Àܾ6.*VùǹÌJÄòÑýÂUòNï*
|
||||
J0½îäÅXKç¿íòI+ÚIKÆÎP¶ä=.*úÅ,¾.KÞ<*ýï*YDèí²»BIðF@¾:+ÑHÒîJ0úýýîGºíæî½Û:üýýëCÒE
|
||||
FÆ.BI2ÞøåORìÂÞNàÏ3HòÁ±M¶J3-*èGÕôÂYü98ÂÆÑ×½óý×3À.-5ß2*Þ3Ë>XÒYÚ<ÈÑó¶³C?,µÚ,*FÆ
|
||||
¾±¸Rµ:4ìIç-ñýI»-QÆðÆUÈ*Þ¿MI¸.O1¼ÑSQRîÚ7.:·ïFC9-î½-àó,¯+FÚ÷µ-4.°Þ.óµVñýý5C2,
|
||||
Î͸ÄSüIÁÎ?ö¼Æ/úIÎ>Ïî»:¾ÏàQ¸øE¾TÄBG¶æ1õÄÎ>Ï*Þ>¸³ÖøÊ:ýÕæñÓýú6I¸ÉÀÃÏÙMD·ð5ÕÂðZG
|
||||
ìWPÃ*Z¶à?*Þ+ÚÚÓ-Èî¼ûE»:íKFLȹX+18ûæÏÄFîÏPGKýT°ûÇÅZûÍüAîü¾»ZAJÞ÷±I2îýýõæ+½ï3
|
||||
Ø0/î·î4üý½;-;*ò>ÆOϵìWºöêXûµÎFò¹JS¼SÜúíýM*7IW0*ü¿N6*Fæ¿Á¼¶µ.O3?*P·DµüM?úýýé¿
|
||||
ÛøÝ÷B.ºüüôÍ9ßL¶+*¶N=K*ï?õÂðâY0*XXPãë/Õ.MÚ¾ÉM¸¶î0Â0W¾QPÆìÙÉó2Sì·/F¶àBоùURTÝç
|
||||
Ò=ÒýÃ<SÞNæ¶*2´0GÀ-ßíàÞ*Æ¿*ýý½ÔRýõ¹*¸R*³Nîõýý5C2+îò?²ûý½¹T4B-VìýùðJð+O·î³2ÞöÝ
|
||||
¯.3òÊ;J1<¯*îJ18øßÛ;>OÒ*:üäÐÄ,Â3Èý³-+>ò¾Ý²KÁÖZÎZ;Ú**FÐÇ:¾öȹL·ðA-*AAÑÌõÀUÀ;XN
|
||||
Þ;GF¶-ùè+ß.1ÔÞVR:Ãû;ÐÚñ4¶î¯NB0ÕÎÒ¼ñàHØñ.í>J:»È+Jæ»æÝ<ÈVÀ<̼ã×1â¸CÅ<¾ö9Wñà9Ñ
|
||||
õÅ0ò¾ÊPBU12»ðôÂ<ÙÐÂËö¿WBîNïÀ¾ôùüäBßQG1íý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍî
|
||||
ùIßõ½Àíý.Ýý3¼ý-ÖÇ34ùÁÑN¿òîîãÌ:*¶Á*Å0*ÀI¿*·-äâ¾Éôà*ÑöýÛJ:BØÜL+µ3â¾0ýýéÛÀ46;DD
|
||||
JùÍ-+àGýÑ-1Êîê2âýýŸî3Íî71¾ø?-ÜäSøúÜûÕGÝÆËï2/Úè,±õíýýI/Ñ5ýê/¯,ȯ9ñäûÊFG¶Þ.åÄ
|
||||
Jüý½Ò-ýô.Û¹V6BæøüýFÇ*K²¾**î¾/Xö*<¶ýýº9Á¿¾ß;42HÑT,:ÈÓý×ü41ÎV<ýýY÷É5ÆVP¶².,Þý±
|
||||
GöYQÖ*ÞýÝè0¼ù±×ü5.ßé.8ËßR*ðîçüN,ï*À²ØM>¾6./÷î²FÎ7îðÌý2+³*ýýýö9Fæ¿-P¶².ðýý±Gö
|
||||
YQö*+úÀöýýµåîI<+PûÇ3FDKµø+2J7üý9WVÛ½Â,¼*OùH¹úýíÊËVö,æ2+¶:èQìMRF¶ß.ÅÄJüý½Ó-íô
|
||||
.+ÁBKûÌß½û7éFC¿M=6,¾ÑøúA¼TâìË3¸9ñýÝYîýý0ôü½ë9L.ò5âýýY0±´îÂ387¿úýýR1üë3øUìàÁå
|
||||
ôèýñ,ÚÀî*SÞûËC69öüúç@ÎøIÏååRÞÝïMÝÒËýý·ÖÊõË43;Î=ûFÍÌRã×+JòÀ387¿úýýR1üë3øôÒ>Z¾
|
||||
ãû½7<¿Ýî*3Äß+5Æý*,*òýý7.*¿÷â,Ä*0,ºúO0ÚÆüý½YÁÀ¾Éá¿,èIÛ1;ð÷½Ñ-14îà2ìòÞÍGßù.öJý
|
||||
Ô;PöçåÞùIßõ½Àíý.Ýý3ôÍ3T***6æÏ³ÈÀ**ÌJ*Ú¸Þ*8öÙWï0ýýýè+*ÎýÕ4Ä3¾ÒA´*ÔI¿À59ö³Q2ýý
|
||||
IY²Åêø*ôÝHK¼ÚëôûØÛ¯¼ÁÂø4Cöýý幯¾16î-ÍÎýYýÞýC5@úÁýýÍÉ*K¶J?¾µÇú½?SýM5ð쯯ÞJéùý
|
||||
*>Þ0êOWZ;Øî¾/û?ÙÞVüý½íñÎ*öFîîâ.ïãÙý±éº¿¿øè?÷7»CE=²³Á»ùûñÌÎMåäæ½îø¯UZýýM2¼NÎ4
|
||||
ÞѳÚ9ãÃü6;øUëÞµ½@é½*ÖÍüVõìÍ@F2*½O³ùWýýñÈI>JîùT:R.¾Ñ÷ûí÷ø¿3Ä2:ÇOñÍ5ÞU@åáóõíÌÎ
|
||||
-*:L?ñûñ<âð*úý93BóK,Ó*ܲÒÝçøZ¼âCY2ýýýô6ü1821îM5ìÊÎöýIØÕP2ð1802>,æüæÊéñýèÎà¾
|
||||
*UÝX:Ô*ìÕ;ú×=V/ZÒöÇÌH<¾òµV=BÎ4ÞÁÙBõ´J¿Jú-0¯Àî»ËÎCJýÝýM=V,:ùH1/ÆåôX¾ÞÆ*/ûAó+/
|
||||
60ÎWõý1:Ì12øàHí3¸.ÎïY0*üýñ,ÚÀÞ¾-/îG¸ÞYºÀÔýÕÊÙöî×ÃúéýýóÊòHêã3ðáë¶íÕÛëì5:B<JÚY
|
||||
C½J+üý½WñùßGý°K+ãYTðñGKíBÀ±Ä*ûÕK<ö56¶Î*HUÒýùG*ûÝGÐо+@õ±ÀÄ×22=Á+8¾ß¿3èý·ÑÛ¸
|
||||
ãò32F:¿54îýýÝúÓ¹E¯¶14ÊCY7ã½Ù=Ú4,ÞùZÛ×úF+7*ýA8*ðýÎ9Úá3àýýïýûûÉÐY-ÊîI´Âõ½Àíý.Ý
|
||||
ý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý+ºý=ÚÊ3<ó/RÄ,:*ýÁQß0+-*ÞG2F꾺C
|
||||
**ÚßÁ>2ï´EÌÍß×:ÚÄÂáÈ·A,1Bî@DÂOÏ¿*æýÙôÕèÄ-öUýýÍHB6@YJWPÌçÞ=N8SÒ·1YK*ZýGEÚÀ¿ëÊ
|
||||
ZTÂ2A¶¹Àµå:Ñ3H@¿U;*ùYöÞW²Æéäà»Ò³ÀýY/Ù¼PÆIE¹Ú¼ý÷áA¯GÛ¶ÀäÃV,ÔMÆ,*ÎöJ0Äú74î*Eú1
|
||||
*ÐÁYýïýC5@úECîý+F¸øý½R¼Í*ß²¾º4Fôî*,Ú¹V6BæøüI¾Æ¿4/ñG1+0AöJü-RÆ2+¶¾,MÍQ<J¸,EA¶
|
||||
À1AÌÎØ¯@îàDÄ.P*È1.¾ý1äJý-öö+ÇåQDðJ:ºÉâýUÇøIØÎ-Á¶Ï4+*²X,.1TïàM.Þ0Á+õÏßßOüýIäß
|
||||
ýYÇÌ4å.OIâÅðÒ2ï,4è,8ÂÞÇ»FTÌ0GKêêâýPõ8Þ5TØBýë>K+ÜÍüý*ú;µîIü1XI´/M-üI¾ÍÍü±Qàý3
|
||||
:Â0¾òï*ðýý-2ÎÕØ¿íüVÔ¸À</¸Ò9üR¾5ºRƶÁ,á6A<JÂMS±¹À1QÌZ4¯@îàDXÊß+9**AäJý-*ÔûâGQ
|
||||
DðJ:ºØÄùÏÚæÍ;à-¯¶Ï4+*,Kö5Ó¶ï;ÁECJÁÁÃö½ü²öýÝðóÏOüýèýXõ5/4+4;XJß+RÚZÃÑ»çÎ=Òë2ü
|
||||
å¸MýÀAÆ:ôV,î922ê+üÁ+VýÚ.ãG¾H0*Ü-ö=óû½,.2ÜÁõ778HF¾*Û:üýýëCÒ=>SÆ.ñ-+ÌîßJà*JÏÞ+
|
||||
±FÆ*¯²³ÛÞ3HF·À=±¶¯7Aäî¾1*¾5±BK:ò7FçÆ-¿îOMûËÔ1ñMÌ9ÂßÃT.*:NÞÒÕKFàÊFÎ+ÛñèÌöãRTû
|
||||
9·DùÕüIEßLÂ5R¶*4AVï²Yøñ.Oü3;G0Jìý*L*N-àã.*Þ/BßýÒöÇÌüà.ïýQIëÞ¼..ôSåBãÉ,4,*Á¾;
|
||||
ö¼P2ú9GÎýý?6äIáÁ+¾L¿°Ä53:çÆÓ5*0Qöîà3ÌÊßóÚBÁ5?¶¯0±+ðGÂ=7·Þ9HÚ÷µ-4.àý+9ÚRÃ**
|
||||
ÐݯË,ÁM9Ç-Dî½ÃX7ÔH=âý?øºóIIáµX*üALÚ¾À-ζß4QùÐIQRÖà3.:Þ²Ãèî,ì¹+,ÌIùU=ò2JáÝ6*ú
|
||||
ý/¾ùÖ*ºDãËýýí*+G/°ç+S>.öUìàÁåôè½-кÝ-BÀÉðãýüý/HÚçÐL¿èÛ53JôÕ.GA*Õ8îßË=Ò´Â/ÚÖÄ
|
||||
Á=º¯0¯+òÜÛVQDðL:²Å8ö5ÍÎÓºJ4¶½Ï4+*òF¶/Ó4ÅH°ÂïHDê½ãçÚÃS0EöóÞXûíº6î÷²½ùå/-Ã2AÎî
|
||||
*>8>ÞÇ»²ê3ÈOL-+Úð.ï+ú9Ä+ºÙÿ+:ÕPæEÄ:ïÊ;JýÁË-Mø4Rüýý022»/W9ÆLK¾µQO+-Vìýù<8NH¾
|
||||
;-Ü0+6QöîPÉ4/TõÌN*Ç@¯¸ÚÞ/HÚ·ÀèÄÖ¾5é¶¶Àîý¿Cæý*VR:ÃûÇÄÚ2.Ë?èýû8¾ÔBÆZ6XÊJ**çÆÞY
|
||||
ÃÞÏÅ6¯ÚÅ0ùÍÝ×ÒÑÒ¯*δ:¾À8öÉ@²2504;XJß+RFR¾=ùæÖ=º³*Kâ3.Þ¯6:òHòݾO?J80·O+î¼PI¶
|
||||
º2õLî*-ÐÁÄÜ@ÀÊPBU12»ðÌLÞ5´¾OËîÑÌÁõ½Àíý.Ýý3ôÁ3<*ýÁ9,FξÒ+îP6<ÕÁµ¸À/¹÷Ç8êÍë.Y9
|
||||
KL¿ö@QæÙNüÝÈÒýÏ/Çý*,*ö½*:GúøýýÇ-öýý9GûýýÑÞèG@06²»9@2CZý+*ê:ZîÂ7ÎöJ0Äú7AZ9I:÷
|
||||
ÚPÖ:¾**êîÞ6ìò,ÌÉ*ßýýQÖÎ,ïÉÌÎQé¶IÈ5ûCLF2Òýý-îÅÚ¿R*÷9JG¾ýýýñÑýçÑúÕÕØ¿íüVÔø¿:*ç
|
||||
Q½ÞÞ3EJO5ñÝË<XÞ¾³I·QËZK*+æQý¿CÚç/¿:ºîÞ3@ÒJúÐ=òOMûËÔ1ñMÌYÊ:öY/:ý+Ò-öýýß¹öÜÏßý
|
||||
¸KúýýÙ±¶:-1X*üI¯-Ë****+öÍE*øÃÆ1::ÄîÞ6ìò,L,PûýýQÖîSÄZ,=âßWʹEÎJ:±¾µäõÂ,L*òÑ̯
|
||||
Èýå:¼1ÜÍ3,ýµXîÂ7N-àã+¿,ðGÂM22/*6è6ìò,èíÖäýýÅÖîÏÌ:ýíÏ-üà=²ËäÇ,ì9ÍÎI/°çýýÕÚÃåî
|
||||
×ÛøíJ÷¼µXîÂ7ZAJÞ÷±IVJõëã¸î»-+¯.AäîNAî·î4üý½Á/Yó.³ÔRýõ¹*¸DQÀ¯¶ºÀÌÜÀÔýýµQO+±¾ã
|
||||
û½Y8NHDß5´¾îµ¯Z*NZ+×ÎJT²YòJKJ6ßÃCFç/Ò;¿ÝýýÍZßFßIGßU.*ü9É+KõK½¸×*õíLÞÉ»¾ÒPöø-
|
||||
ÂH·YA÷@¹À½Û2Üý3¼ý=úüQ¶ã=.%%%
|
||||
d
|
||||
532 112[1 0 0 1 0 0]sl 8 mask 0 224 di
|
||||
/mask 7437 string uc
|
||||
*ÞX**HºýÀöüYöûÝîù½ßõýÀíý/Ýý5¼ýAúüYöûÝîù½ßõýÀíý/Ýý5¼¼;-%%
|
||||
d
|
||||
/sl 59052 string uc
|
||||
äÕí´ê-*.ÓýíI*X¸ÞJγñéÕÓõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöAÍÎÖIFO4N11Íô.+
|
||||
¾T*2Ü.îR*ÂCàK*ð0Êß+AëÃ+Pïý¹¿JZ²WC¶¾,ì<Æ+7üýÕ¹/?BL²²¾ôI1,¹üQ18Bß×;6¯.*ÚÞÀ-S¶
|
||||
ð/Ï6Ýò.M+8JÞ/,ÆAúÁ*Jûà+Yñ>»¼íüéÌYâäRCR>îT5ÊÛ½ýýý>ÊXú±AÂ3RÄ»ÊEõ±ðòÞ+=FEÀEàRV¶
|
||||
:/QÜ:Èï¿Ì:¿òîUOÜ-*îI¾Å9ƺÔý+úýÍøÓ;¾Þ¿B*Nîüý÷H0-+Á=¯ZýýñCÓ<*ÏVûÍóÕ¶*ã<÷ýýÈÝFæ
|
||||
¿-P¶².µØ×ÖîJ4XºK3áýFKðÅÚ¿R¾-,ZÞØÍÚ±RJ@,G,R=Îý·ö²½<¿¶*KDëÇBîýýC24ðßçæGEÞãGý;,
|
||||
è*üýýïI¶Î-1Êîæ2L*ê¾9ÛÎ1,À+¿/1Ðîà5ÈBüå34ýýY¾Z2*÷ýͼ*Ïûý½2ø;¾D+ýíò-:¾DúýÍLÙ¸ýN
|
||||
6L÷FOùH¹úýíêNSöàÚ8F2á=õ;>8ÚZÀMM2+ÎüÑÙEòýýàÀ-S¶ï/Ï6Iò.94¾º1;PJâåC,¶¾-=*¶TÍýàQ
|
||||
ÃáÛ3-õ¯üýù/üýíÞìýÕûK¾¼¿úýýãZä0ÌBßÏ;Ò*¾ø;ËÃ/1ÐîJ+82á=GKSÞû2*,öýÜÛV¯,ð?Ý;¾-Fî
|
||||
ýùñQÙ¾èýÂÞñ±¯îíöÏYèäýýFVäùPÃÂ2æÇ¼ÌQQÒðê*:¸ß.ÅÄZ,*ñÅÚðýýàÀ-S¶Î*1ÂïÇÌÎ.áZ.*+ÖÎ
|
||||
J4ùî*¯Ôö2¾ú1:*:¼Í.*¿÷â,Ä*0,ºúO0ÚÆüý½YÁÀ¾Éá¿,èIÛ1;ð÷½Ñ-14îà2À-2Á,µÀ4558Nß¿A6¯
|
||||
ºÎ=ºß*Þý2JúW/¾ºß½.ZQ*Æ¿<ÔO6ýé.5+XÊÎμ³.ZÓ*ÖW¯ºQ=úãÏîûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍ
|
||||
îùIßõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½*Ýç.ÃûßW½À*Þ*JÔÂJ*ü1ݾ¼.EF¶ÄUë¶29Õ²ï05ì1â.J0DÆ*H
|
||||
L*Ú5.BØüí½8.0ïÌýýýË3¼*+RØ5-Êà112àX8óÞÃ;Ö3-VÒV¶:µÞÊTFSÐ5GÆCËØì.98+êÍÆ:Ä18ÄKPZ
|
||||
¶õ³·Cè7:N>/·ÊîûÞFÖ,ÕGÝê6ýCô¯ÌËùC÷ýýA39J*Ô·ÈHݵß+¾ýÓ8ÚB,ÁÝýY0/1μ¯á3¶Úæ¿0/ßÂP
|
||||
æÛá྿Ôõý+2¾7P-úÚ.2üýAHÆ+HðõýýÜñ:2E¸*¸á-=âøæçýýI/X»:*EÚ¶,G±ßÀ½ýýÕFFß.,çßÕ5ɶ
|
||||
*ëðI¾4+*îJ38îM;ߺÀ¾ðÙ²+üÕM>@Ú±.ýý½ÉâýUÇøYL5D²R³·*9XÏ9ýàÙÞý9¾»ú¾âñ¿¿E:3+¶±3/*
|
||||
ÜHÁýV<ýýY×»÷ÍøÓ52î.ìýIíá½èÕÌóÞ/7ÂL,CAìòæ.+¾=¿¶±ÀüTëZí¼ý½Ó?ôèdzÕÊQRÎKQæY³-Ýû×
|
||||
Vý+ƼøQ-.Àî¿*XçàúµÑúýýÆòÁý0÷Å1äáêåQýÑ17Ê5ƼøYF¿+Õ9ÙÀ5·¶À3â9·-A@ï,D*¾4+*îJ38Ê
|
||||
J;Kº,¯Qà½ç,ú½î2Á/õ6ßýýÍÔï¼>Aø5Ä2íÊî+ºJü±TÜ4EØÞ¾³I·åÞÞ7ÆÂ*Ú×Â4*MDë½-¯C2ý¿ý5¿Ü
|
||||
¾*åßÑûÇ.üY.øV1Xæ¾GP³Q÷M·¿ý1úæ/ûVÞÃ8Fï*ýýÈã÷¶ûû½OïX½ãô¸XAÜÎCQÖ¸ìAÂýý½¹0ý+F¾,Ã
|
||||
.Êøýý=Â5Þ*úýQBÝÈîÂ*èá:º1íEDºÎ1QÌÞøåORXZJãß3PÊðGÖÂ=ÀR;**8>ß¿3><Jö8ÞÍÒõ¾@XFà2Þ
|
||||
GMöýýÉÄøEW9äðÆñE=º+>ò×,N=3äý½ø08ÞÞÃ5Æýý9Wà.*Ä´óüý-;¸öHÀýÁÎݾ*´ø+2J7ü94ܹÒ-A²
|
||||
ÞæÅ´´ê+F>´Býçë7D5¶Ï-QFÞýÝðýýûWýY/.ÆýýEó.U+*ÁöAöüä.×üijüýí¾¶W¾RöüJ3¾ýU=²ýIó6ñ
|
||||
*Ïá,8F¿ÏàQ¸øÞ¾È-Þî0=À*T.ì×<*¶Î.APÖNÞHû²-ù¿0Ú¶Â;¾M=S@ßßWʹEÎJ:=Â1Pö,R2S7È8òÀº
|
||||
1ï*0XÚÞËÇFJ7;¼T²Ì½¿úýýãZâå+ý9JÞÚ¾Êè=F*üÝè¿ED:ó;ÚDKùý½»-Ñ*ŸÎFZ>Ræ5éÞ=ÒÕÚÃ1Íë
|
||||
Ó5ûïýÍ-ÕîýýX¾F¶üêýýÝ>YüRK°ÎºÝE=Ò/Úý½4âÐ-S2;¶î.6+²úÉ+¾ýÝðî2=À*T.P*À7ÌÊîË3FCK¸
|
||||
DãË5ضï2Á/ÅPð¾O²Å8ö5ÍÎó*7P.8Þ-ÈåÐú3ÐÁ,òÜÛV1Zî,XÞý==3É2*:ÂH1,öǼÌQQÒðU¼A:Jýõå
|
||||
Í´+Óß+å¸îÀ0VüûKÉÚ¶Ñð1ÈIðȯ¾5G*ýY¶*ý½ó½üÐ<ýõí3àôÒ>Z¾Óæ´,Þ³Nîõý½öÙB¶-Jüý1Ü0+6ö
|
||||
ý½Y8NÜCK7Äß½ø4ØHÆÀ2¿-QÎ7Mƶä2Î-·¶Â3K*?,=*ß0QPöä.ÌÊ:ÏÕ¾ð/WÚ¶ÂßÀ¹Ä2+Î×LûÝí+æ-²
|
||||
B;¶*9¼XãýÃWRý9¾×ÎJ4ù-B¶+AîýÇÇÂO6X.*öýüç»2;ͽ±Îö/.æý7.*¿÷½¶Þ×8ÚÎ+ÉJÞ3à1ݲÞü±
|
||||
RîPÖïÇ;¾ý1FZP2Ë÷èRüýE=º+RG·À×=*øý9Û1ûçÙK¸ØÆ?5ÌWJD6¹¸3ð/ý²F:+0ÚFÀE824êÅ+ÖÐ3Øý
|
||||
ýóÇéDÙÇ?æ+óÁŹç+C±ÞÑBßQG1íý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöûÍîùIßõ½Àíý.Ýý3¼
|
||||
ý-öüQöûÍîùIßõ½Àíý.Ýý3¼ý=úüQöÉÊîùAÞÒPöû9Þ»4ºý=úüQöûÍîùIßõ½Àíý.ùò.+ÓÝ4*îý<Æ@SG
|
||||
Â>ÚDßÝèõ-¹¹ÓÁõ½À×;áùIßÒÆïÓÍÎ:YEã3HÈÀõ¹ÀèÓ91,>æ¶Ð,*JD°:°ÖFî¿=¸¶Î+åãîT4¼í3°Ó>º
|
||||
ü̼¹ïúP2ÄÝöÝÁ=ºÌ*ÕÐîùÌÎÒ+ø¾->õR5@ÊèGÊABµ.JñKB09ÀX++ÒZ-V?,Õâöî.Á6ä2Z²H/¾Â»G/Ý
|
||||
õ./,ï1FJK?ñ»ùASÅPR;Ä0Î:²-++Òìò,Åæ:Á3Ì;JL+ËUWð¸4¼ï3T/ÝױݻßÏ3Ô,Ê3Àó-+CËî6¿L**
|
||||
*¾*ç9QßõGKCÑñ+1¾/¯ÀÎù¿3Ðó*ÖÅ,..*ô±ÀO*CËî:¾ZZùÌAÜï3øÑ:Rð¼Ì¸Tô4È×íÜÇ¿4ÙM/RÑÉý.
|
||||
ÏÓGÍÑé¼G/Ýõ.GùÓ¸@>¶¿2¹ÛÛSÀ/϶ÅëÏU78HHß5û5*¶P1ñ+=À/.æEÓ//¸ÚÌÀõ¹ÀÙîâúÆïûÍZTâöü
|
||||
QB?°FDKöý×,Þ@Æ@SGFEßõI*CÖÞ¿3,Ê1**´¼ý*¶Å+18Rúø7=ÒLÃ<?4òåõ9*AGÞ¸ðÚCñÃ3TÊBµ,74ò
|
||||
ù1¾Ñ9ÞHµÜ²çÐYݯÀBÐNÈBµ¼ý*¶F,4=OÇ;ûø7=Ò7E¼.Cðâõ9*QI¾SÐ6÷ïMݼá.WàÂ3?¼ý*¶F,°;á*
|
||||
*ïéµÊîù9¾º¶*V»ý*Æè1*
|
||||
d
|
||||
532 111[1 0 0 1 0 0]sl 8 mask 0 336 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/email_invitation.png
Normal file
|
After Width: | Height: | Size: 48 KiB |
628
doc/index.docbook
Executable file → Normal file
@@ -1,78 +1,652 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY kappname "<application>krfb</application>">
|
||||
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
||||
<!ENTITY kappname "&krfb;">
|
||||
<!ENTITY package "kdenetwork">
|
||||
<!ENTITY % addindex "IGNORE">
|
||||
<!ENTITY % English "INCLUDE">
|
||||
<!ENTITY % English "INCLUDE"> <!-- ONLY If you are writing non-English
|
||||
original documentation, change
|
||||
the language here -->
|
||||
|
||||
<!-- Do not define any other entities; instead, use the entities
|
||||
from entities/general.entities and $LANG/user.entities. -->
|
||||
]>
|
||||
<!-- Based on kdoctemplate v0.9 January 10 2003 -->
|
||||
|
||||
<book lang="&language;">
|
||||
|
||||
<!-- This header contains all of the meta-information for the document such
|
||||
as Authors, publish date, the abstract, and Keywords -->
|
||||
|
||||
<bookinfo>
|
||||
<title>The &kappname; Handbook</title>
|
||||
<title>The &krfb; Handbook</title>
|
||||
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname></firstname>
|
||||
<othername></othername>
|
||||
<surname></surname>
|
||||
<affiliation>
|
||||
<address><email></email></address>
|
||||
</affiliation>
|
||||
&Brad.Hards;
|
||||
&Brad.Hards.mail;
|
||||
</author>
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
</authorgroup>
|
||||
|
||||
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
||||
|
||||
<copyright>
|
||||
<year>2003</year>
|
||||
<holder>&Brad.Hards;</holder>
|
||||
</copyright>
|
||||
<!-- Translators: put here the copyright notice of the translation -->
|
||||
|
||||
<legalnotice>&FDLNotice;</legalnotice>
|
||||
|
||||
<!-- Date and version information of the documentation
|
||||
Don't forget to include this last date and this last revision number, we
|
||||
need them for translation coordination !
|
||||
Please respect the format of the date (YYYY-MM-DD) and of the version
|
||||
(Major.minor.lesser), it could be used by automation scripts -->
|
||||
(V.MM.LL), it could be used by automation scripts.
|
||||
Do NOT change these in the translation. -->
|
||||
|
||||
<date>2000-09-02</date>
|
||||
<releaseinfo>0.00.00</releaseinfo>
|
||||
<date>2003-09-17</date>
|
||||
<releaseinfo>1.0.1</releaseinfo>
|
||||
|
||||
<!-- Abstract about this handbook -->
|
||||
|
||||
<abstract>
|
||||
<para>
|
||||
&kappname; is a desktop sharing application for &kde;
|
||||
&krfb; is a server application that allows you to share your current
|
||||
session with a user on another machine, who can use a VNC client to
|
||||
view or even control the desktop.
|
||||
</para>
|
||||
</abstract>
|
||||
|
||||
<!-- This is a set of Keywords for indexing by search engines.
|
||||
Please at least include KDE, the KDE package it is in, the name
|
||||
of your application, and a few relevant keywords. -->
|
||||
|
||||
<keywordset>
|
||||
<keyword>KDE</keyword>
|
||||
<keyword>Kapp</keyword>
|
||||
<keyword>kdenetwork</keyword>
|
||||
<keyword>krfb</keyword>
|
||||
<keyword>VNC</keyword>
|
||||
<keyword>RFB</keyword>
|
||||
<keyword>krdc</keyword>
|
||||
<keyword>Desktop Sharing</keyword>
|
||||
<keyword>Remote Control</keyword>
|
||||
<keyword>Remote Assistance</keyword>
|
||||
<keyword>Remote Desktop</keyword>
|
||||
</keywordset>
|
||||
|
||||
</bookinfo>
|
||||
|
||||
<chapter id="introduction"> <title>Introduction</title> <para>Sorry, but
|
||||
the documentation for &kappname; was not finished when &kde; was installed on
|
||||
this computer.</para> <para>If you need help, please check <ulink
|
||||
url="http://www.kde.org">The &kde; Website</ulink> for updates, or by
|
||||
submitting your question to <ulink url="mailto:kde-user@kde.org">The
|
||||
&kde; User Mailing list</ulink>.</para> <para><emphasis>The &kde;
|
||||
Team</emphasis></para>
|
||||
<!-- The contents of the documentation begin here. Label
|
||||
each chapter so with the id attribute. This is necessary for two reasons: it
|
||||
allows you to easily reference the chapter from other chapters of your
|
||||
document, and if there is no ID, the name of the generated HTML files will vary
|
||||
from time to time making it hard to manage for maintainers and for the CVS
|
||||
system. Any chapter labelled (OPTIONAL) may be left out at the author's
|
||||
discretion. Other chapters should not be left out in order to maintain a
|
||||
consistent documentation style across all KDE apps. -->
|
||||
|
||||
&underFDL;
|
||||
<chapter id="introduction">
|
||||
<title>Introduction</title>
|
||||
|
||||
<!-- The introduction chapter contains a brief introduction for the
|
||||
application that explains what it does and where to report
|
||||
problems. Basically a long version of the abstract. Don't include a
|
||||
revision history. (see installation appendix comment) -->
|
||||
|
||||
<para>
|
||||
&krfb; is a server application that allows you to share your current
|
||||
session with a user on another machine, who can use a VNC client to
|
||||
view or even control the desktop.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You would typically use &krfb; with the &kde; VNC client, which is
|
||||
&krdc;, since it closely matches the special features of &krfb;.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
&krfb; doesn't require you to start a new X session - it can share
|
||||
the current session. This makes it very useful when you want someone
|
||||
to help you perform a task.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Please report any problems or feature requests to the &kde; mailing
|
||||
lists or file a bug at <ulink
|
||||
url="http://bugs.kde.org">http://bugs.kde.org</ulink>.
|
||||
</para>
|
||||
</chapter>
|
||||
|
||||
<chapter id="what-is-RFB">
|
||||
<title>The Remote Frame Buffer protocol</title>
|
||||
|
||||
<para>
|
||||
This chapter provides a brief description of the Remote Frame Buffer
|
||||
protocol used by &krfb; and by other compatible systems. If you are
|
||||
already familiar with Remote Frame Buffer, you can safely skip this
|
||||
chapter.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The high level implementation of a system using the Remote Frame
|
||||
Buffer protocol is known as Virtual Network Computer, or more often
|
||||
just as <acronym>VNC</acronym>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Remote Frame Buffer (or <acronym>RFB</acronym> for short) is a simple
|
||||
protocol for remote access to graphical user interfaces. It works at
|
||||
the frame-buffer level, which roughly corresponds to the rendered
|
||||
screen image, which means that it can be applied to all windowing
|
||||
systems (including X11, &MacOS; and &Microsoft; &Windows;). Remote
|
||||
Frame Buffer applications exist for many platforms, and can often be
|
||||
free re-distributed.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
In the Remote Frame Buffer protocol, the application that runs on the
|
||||
machine where the user sits (containing the display, keyboard and
|
||||
pointer) is called the client. The application that runs on the
|
||||
machine where the framebuffer is located (which is running the
|
||||
windowing system and applications that the user is remotely
|
||||
controlling) is called the server. &krfb; is the &kde; server for the
|
||||
Remote Frame Buffer protocol. &krdc; is the &kde; client for the
|
||||
Remote Frame Buffer protocol.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
It takes a reasonable amount of network traffic to send an image of
|
||||
the framebuffer, so Remote Frame Buffer works best over high
|
||||
bandwidth links, such as a local area network. It is still possible to
|
||||
use &krfb; over other links, but performance is unlikely to be as good.
|
||||
</para>
|
||||
|
||||
</chapter>
|
||||
|
||||
&documentation.index;
|
||||
<chapter id="using-krfb">
|
||||
<title>Using &krfb;</title>
|
||||
|
||||
<!-- This chapter should tell the user how to use your app. You should use as
|
||||
many sections (Chapter, Sect1, Sect3, etc...) as is necessary to fully document
|
||||
your application. -->
|
||||
|
||||
<para>
|
||||
It is very easy to use &krfb; - it has a simple interface, as shown in
|
||||
the screenshot below.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Here's a screenshot of &krfb;</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshot.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="screenshot.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; main window</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
When you want to allow someone to access your desktop, you can create
|
||||
an personal invitation using the <guibutton>Create Personal
|
||||
Invitation...</guibutton> button, which will bring up a window
|
||||
containing the information needed to access your desktop. An example
|
||||
is shown below.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Example &krfb; personal invitation</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="personal_invitation.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="personal_invitation.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Example &krfb; personal invitation</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
To increase security, the invitation is only valid for an
|
||||
hour after it is created, and of course the person connecting has to
|
||||
have the correct password.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Since you may want to invite someone to access your desktop by email,
|
||||
&krfb; can create invitations as email messages. You can create such
|
||||
an invitation using the <guibutton>Invite via Email...</guibutton>
|
||||
button on the &krfb; main window. This will usually bring up an email
|
||||
message that looks like the following, ready for you to type in the
|
||||
email address of the person you are sending the invitation to.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>Example &krfb; email invitation</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="email_invitation.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="email_invitation.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>Example &krfb; email invitation</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<warning>
|
||||
<para>
|
||||
&krfb; will warn you about the security implications of sending this
|
||||
information across an insecure link. You must heed those warnings.
|
||||
</para>
|
||||
<para>
|
||||
If you cannot encrypt the email (or otherwise secure the link),
|
||||
sending invitations by email is a very serious security risk, since
|
||||
anyone can read the password and address from the email as it passes
|
||||
over the network. This means that they can potentially take control of
|
||||
your machine.
|
||||
</para>
|
||||
<para>
|
||||
If you cannot encrypt the email message, it may be better to use a
|
||||
personal invitation, telephone the person you are giving access to,
|
||||
verify the identity of that person, and provide the required
|
||||
invitation information that way.
|
||||
</para>
|
||||
</warning>
|
||||
|
||||
<sect1 id="krfb-managing-invitations">
|
||||
<title>Managing &krfb; invitations</title>
|
||||
|
||||
<para>
|
||||
Having created an invitation (either a personal invitation or one that
|
||||
was sent by email), &krfb; allows you to manage those invitations. The
|
||||
dialog to control these is available using <guibutton>Manage
|
||||
Invitations...</guibutton> on the &krfb; main window. If you select
|
||||
that button, &krfb; will bring up a window as shown below.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>&krfb; invitation management</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="invitation_management.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="invitation_management.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; invitation management</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The invitation management window allows you to create more invitations
|
||||
(using the <guibutton>New Personal Invitation...</guibutton> and
|
||||
<guibutton>New Email Invitation...</guibutton> buttons, which have the
|
||||
same effect as the <guibutton>Create Personal Invitation...</guibutton>
|
||||
and <guibutton>Invite via Email...</guibutton> buttons on the &krfb; main
|
||||
window.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The invitation managment window also allows you to delete existing
|
||||
invitations. To just delete one of the invitations, select it with the
|
||||
mouse or keyboard tabs (it should become highlighted), and then select
|
||||
the <guibutton>Delete</guibutton>. To delete all invitations, just
|
||||
select the <guibutton>Delete All</guibutton> button.
|
||||
</para>
|
||||
|
||||
<!-- OK, so this is obvious, I only did it for completeness -->
|
||||
<para>
|
||||
Selecting <guibutton>Close</guibutton> closes this dialog.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="krfb-configuration">
|
||||
<title>Configuring &krfb;</title>
|
||||
<para>
|
||||
In addition to the main &krfb; interface shown and described above, you can also
|
||||
control &krfb; using its control module, which you can access using
|
||||
the normal &kde; control center, and you can also access using the
|
||||
<guibutton>Configure...</guibutton> on the &krfb; main window. The &krfb;
|
||||
configuration is controlled using a tabbed window, as shown in the
|
||||
screenshot below:
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>&krfb; Configuration (Access Tab)</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_access.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_access.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; Configuration (Access Tab)</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guilabel>Access</guilabel> tab allows you configure settings
|
||||
related to access to the &krfb; server.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guibutton>Create and Manage Invitations...</guibutton> takes you to
|
||||
the <link linkend="krfb-managing-invitations">&krfb; invitation management window</link>,
|
||||
which was described previously.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guilabel>Announce service on the network</guilabel> checkbox
|
||||
controls whether &krfb; announces invitations over the network using
|
||||
Service Location Protocol. This is normally a good idea, but only
|
||||
works really well with a Service Location Protocol aware client, such
|
||||
as &krdc;.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guilabel>Allow uninvited connections</guilabel> checkbox controls
|
||||
whether &krfb; allows connection without an invitation. If uninvited
|
||||
connections are allowed, then you should probably specify a
|
||||
password. You can also use the checkboxes here to choose whether you
|
||||
have to confirm the connection before it proceeds, and whether the
|
||||
person connecting can control the desktop, or only view.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If the machine is a workstation, and you choose to allow uninvited
|
||||
connections, you probably want to select the <guilabel>Confirm
|
||||
uninvited connections before accepting</guilabel>. Conversely, if the
|
||||
machine is a server and you are using &krfb; for remote
|
||||
administration, you probably want to deselect <guilabel>Confirm
|
||||
uninvited connections before accepting</guilabel>.
|
||||
</para>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
&krfb; uses the normal RFB password system, which does not transfer
|
||||
your password in the clear across the network. Instead, it uses a
|
||||
challenge-response system. This is reasonably secure, as long as the
|
||||
password is securely guarded.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
<para>
|
||||
&krfb; allows you to control whether the background image is passed to
|
||||
the client, or not. This is controlled using a checkbox in the
|
||||
<guilabel>Session</guilabel> tab, as shown below.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>&krfb; Configuration (Session Tab)</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_session.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_session.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; Configuration (Session Tab)</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you check the box, &krfb; will not transfer the background
|
||||
image. If you leave it blank, it is up to the client whether the
|
||||
background image is transferred or not transferred.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guilabel>Network</guilabel> tab allows control over the port that
|
||||
&krfb; uses, as shown below.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>&krfb; Configuration (Network Tab)</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_network.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="configuration_network.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; Configuration (Network Tab)</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you select the <guilabel>Assign port automatically</guilabel>
|
||||
checkbox, then &krfb; will locate a suitable port, and invitations
|
||||
will match this port. If you deselect the <guilabel>Assign port
|
||||
automatically</guilabel> checkbox, you can specify a particular
|
||||
port. Specifying a particular port may be useful if you are using
|
||||
port-forwarding on the firewall. Note that if Service Location
|
||||
Protocol is turned on, this will automatically deal with identifying
|
||||
the correct port.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="krfb-connection">
|
||||
<title>What happens when someone connects to &krfb;</title>
|
||||
|
||||
<para>
|
||||
When someone connects to &krfb; on your machine, you will get a pop-up
|
||||
notification that looks like the following screenshot, unless you are
|
||||
accepting uninvited connections without warning.
|
||||
</para>
|
||||
<para>
|
||||
<screenshot>
|
||||
<screeninfo>&krfb; Connection Window</screeninfo>
|
||||
<mediaobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="connection.png" format="PNG"/>
|
||||
</imageobject>
|
||||
<imageobject>
|
||||
<imagedata fileref="connection.eps" format="EPS"/>
|
||||
</imageobject>
|
||||
<textobject>
|
||||
<phrase>&krfb; Connection Window</phrase>
|
||||
</textobject>
|
||||
</mediaobject>
|
||||
</screenshot>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If you <guibutton>Accept Connection</guibutton>, the client can
|
||||
proceed to authenticate (which requires the correct password for a
|
||||
personal invitation or email invitation). If you <guibutton>Refuse
|
||||
Connection</guibutton>, then the attempt to connect will be terminated.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
The <guilabel>Allow remote user to control keyboard and
|
||||
mouse</guilabel> checkbox determines whether this client can only
|
||||
observe, or can take control of your machine.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If the client connection is successful, and used the password from a
|
||||
personal invitation or email invitation, then that invitation is
|
||||
deleted and cannot be used again. You will also get a small pop-up
|
||||
window in the dock, that shows that the connection has been made.
|
||||
</para>
|
||||
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<chapter id="dcop">
|
||||
<title>Developer's Guide to &krfb;</title>
|
||||
|
||||
<para>
|
||||
&krfb; supports a small number of &DCOP; commands, which are described
|
||||
in this chapter. If you aren't familiar with &DCOP;, then you don't
|
||||
need to worry about this. However if you'd like to automate some of
|
||||
your &krfb; (or other &kde; application) actions, &DCOP; is a useful
|
||||
tool. You can find out more about &DCOP; in its on-line documentation,
|
||||
and in tutorials on <ulink
|
||||
url="http://developer.kde.org">http://developer.kde.org</ulink>.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
You can shut down the &krfb; application using the quit command, as
|
||||
shown in this example:
|
||||
</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>
|
||||
<prompt>%</prompt>dcop krfb-1507 MainApplication-Interface quit
|
||||
</screen>
|
||||
</informalexample>
|
||||
|
||||
<note>
|
||||
<para>
|
||||
You will need to change the <userinput>krfb-1507</userinput> in the
|
||||
example to match the instance of &krfb; that you actually want to
|
||||
shutdown. If you run <command>dcop</command> with no options, you will
|
||||
get a list of all applications that are running and &DCOP; can
|
||||
control.
|
||||
</para>
|
||||
</note>
|
||||
|
||||
</chapter>
|
||||
|
||||
<chapter id="faq">
|
||||
<title>Questions and Answers</title>
|
||||
|
||||
<!-- (OPTIONAL but recommended) This chapter should include all of the silly
|
||||
(and not-so-silly) newbie questions that fill up your mailbox. This chapter
|
||||
should be reserved for BRIEF questions and answers! If one question uses more
|
||||
than a page or so then it should probably be part of the
|
||||
"Using this Application" chapter instead. You should use links to
|
||||
cross-reference questions to the parts of your documentation that answer them.
|
||||
This is also a great place to provide pointers to other FAQ's if your users
|
||||
must do some complicated configuration on other programs in order for your
|
||||
application work. -->
|
||||
|
||||
|
||||
&reporting.bugs;
|
||||
&updating.documentation;
|
||||
|
||||
<!-- Needs some content.
|
||||
<qandaset id="faqlist">
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>A question </para>
|
||||
</question>
|
||||
<answer>
|
||||
<para>and an answer.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandaset>
|
||||
-->
|
||||
</chapter>
|
||||
|
||||
<chapter id="credits">
|
||||
|
||||
<!-- Include credits for the programmers, documentation writers, and
|
||||
contributors here. The license for your software should then be included below
|
||||
the credits with a reference to the appropriate license file included in the KDE
|
||||
distribution. -->
|
||||
|
||||
<title>Credits and License</title>
|
||||
|
||||
<para>
|
||||
&krfb;
|
||||
</para>
|
||||
<para>
|
||||
Program copyright 2002 Tim Jansen <email>tim@tjansen.de</email>
|
||||
</para>
|
||||
<para>
|
||||
Contributors:
|
||||
<itemizedlist>
|
||||
<listitem><para>Ian Reinhart Geiser <email>geiseri@kde.org</email></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Documentation Copyright © 2003 &Brad.Hards; &Brad.Hards.mail;
|
||||
</para>
|
||||
|
||||
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
|
||||
|
||||
&underFDL; <!-- FDL: do not remove -->
|
||||
|
||||
&underGPL; <!-- GPL License -->
|
||||
|
||||
</chapter>
|
||||
|
||||
<appendix id="installation">
|
||||
<title>Installation</title>
|
||||
|
||||
<sect1 id="getting-krfb">
|
||||
<title>How to obtain &krfb;</title>
|
||||
|
||||
<!-- This first entity contains boiler plate for applications that are
|
||||
part of KDE CVS. You should remove it if you are releasing your
|
||||
application -->
|
||||
|
||||
&install.intro.documentation;
|
||||
|
||||
</sect1>
|
||||
|
||||
<sect1 id="compilation">
|
||||
<title>Compilation and Installation</title>
|
||||
|
||||
<!-- This entity contains the boilerplate text for standard -->
|
||||
<!-- compilation instructions. If your application requires any -->
|
||||
<!-- special handling, remove it, and replace with your own text. -->
|
||||
|
||||
&install.compile.documentation;
|
||||
|
||||
</sect1>
|
||||
|
||||
</appendix>
|
||||
|
||||
&documentation.index;
|
||||
</book>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
mode: xml
|
||||
sgml-minimize-attributes:nil
|
||||
sgml-general-insert-case:lower
|
||||
sgml-indent-step:0
|
||||
sgml-indent-data:nil
|
||||
End:
|
||||
|
||||
// vim:ts=2:sw=2:tw=78:noet
|
||||
vim:tabstop=2:shiftwidth=2:expandtab
|
||||
-->
|
||||
|
||||
292
doc/invitation_management.eps
Normal file
@@ -0,0 +1,292 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 596 253
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sun Sep 21 20:40:17 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 567]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 6375 string uc
|
||||
î½*¾î1:E*¾1=/·7*¾ÍÌ<Þ¾ú>+¾QQ3*J°ÅÆÍ;°=,ö;ß=Oµ.îJÀQtì2J¾6Í>ÝO+Þ¹Ð.öµSÈ:½*ìÇ<Þ
|
||||
ÅWSàÌ<K*ºöü?ïû1ìù½ãõÍ¿íý?ÝýU¼ý6úüY÷ûÝðùåÞYüÈ
|
||||
d
|
||||
/sl 50660 string uc
|
||||
î½¼**ûý5*N¶S9L3HÊRÌ+úDÐÒùÇY0º´êÅ,*@ÕZêñ½ÄTPÑí.HîÕý/*òêêûùñåIËNóñ7âDÈÔ½ôÖWÝ6*
|
||||
ÞÝîùéÝý1Îð×TÄ0æûâA-HEô¯*BÙòùÅü±LC.*åÌíÍùééÅèè<Z·/áHI63öÝ<O,9öé.*Þ¾õQ¼³<*:ºRÛ
|
||||
-*Z=5?²·7ÞÚùùÕëD-P³²5Æ××-<ßòEÐ>×áäÞìÆ´ýû±ÏP,*Â4ãºÕ*J:ìÈÃ4øÚ0ZõüÖϰ˿ѸØ/îYöû
|
||||
ùÝ»¯È<Dé5*ÞÃŵIÝ»ôßQFJ×°ãÚIöÐ×*¾ÑÐÕêݽ*OÈN<Mü5*:Ô´O±/W¼-R´ýôKÑH4ÒÔȾÙð=ÔçI-*
|
||||
ZGY4J×ñùõÍÖNSÂU»**Üõóôöã±ÅüFGQ»õÃ2JÓÝù9HD5*¶TøøÃ»EðLÃܯÜį·0³³UDUæñEZîùEWøâÍ
|
||||
Øè+XÉÍIQÝÜüùðß¹åì×Q½ìÚ÷ñ3Ñ*äÛÝÝñ»¯È²ýVÒ/*ü´´ñîõá1YGHY8FôØ1N*ÏÈíÍ?æV*ÞSçÙõ²à·
|
||||
äÈ÷°éè÷¹TÒÓW1T¾ýÝ14òñýýÑ¿ÁE2¶è.ï+À²é=6B3Æé;ÀÃ3ýôÁÍÕà;NÚ¸*Êé»ýüøYÙLÄYÇË2Zõü²»
|
||||
H»ïQGã*åãåYQÕX¼ýúõíùøð×IYÌú³Ï3ѾõìÝýÜýûù-1O9*¾õë7Gºúùé¹ÅâÃ=ÝWõÃ3Öûû¿øÊ/*F?»3
|
||||
+Ô4.061±1=UäÌØØóJ/ú½ýè¸PýýIβðîâ+ìD+,,òýýƵ¶:<**ãò2;2Ô5õýWYÕà;NÚ°*OýýENæ4G¼Å
|
||||
ÚÌ;å8Jçû+áNøà͸È+Äú*¾+¾UðñÃÉIÝü¼½û÷GüøíÇAIÜBãÂSÞãôíí¶Úüû1-Ï/*üÒZîäÝÝÕ9IÍÕì¹ö
|
||||
ïÀÅHJ+èÝýä²*ÞSç±/6åKG²ö7K²ìëPËÓW1T*ýí¼SðøJEÚçGýúÇÁ-òýäøYíÚ÷*-ºéöûýýÝ·=SM̽º×
|
||||
³/î½6ðú¾üÔíñäÞéá-P*8âKO¾ýýIò´ûøµ-»ñ2ôö»ýùÍ7âJÁKû͹Ü-жÎ-¯,<öúïÁM¹ZÅïÅí¸ÚJóýÕ
|
||||
Æ;PÂ+,*ò;ÈÖýýÍéVèRÞ¶K>¹2*NÙý´ÇH9öSQ?ÞÆYÇÐ**îÆúÒêïÞÅÉÅIÐÆë½1üù¶×6ÍϾ**î>/.**=
|
||||
/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×R¾øõÅC7*¶TøÞZ8ê.0>¼Mŵýãݰ³é¿4ÞýREùêFÒ
|
||||
å¯X7ôIüµBýéýûüáI0ñ+0Îï´E/ö¯ÊÝÃ1¹VEß×ÀCã÷+ÔùIßÈâåÈTá>¾*GÇ-*>D¾õüÅ3ïýà=ÍF,ìýÝÉ
|
||||
ÒKÕ0°Fß²üÕ9è+SFæ+ûý½?úGA/IFØ-úRñ½è2Á5²°ýýÝAÌ÷:OêýýòVÛ¿Æ=L×-*Þâûó°Ò÷ÞÒ¸T+Jå:I
|
||||
0**üùó+*¶N¼ÜñöêÚÛÕµýÜÙYíGõêá¹PºÃ,ÁÍAS:L*ì1S,*µR¾¹õííTûøF9**·òGúÃ×ÄØÐé4W@4Öûû
|
||||
YÔÊ/*à>GõØJ´¶+ÐáEòͺ;UÙ8Ò*üµ1IîÌß°úñðçýý9Tר00ÛÞ*ÐíUÛÆ+X·ýýýýñÉDURÁ6IÞCï=¼Æý
|
||||
×µ1HîR8à*¶ûýÇøûYýéÃMæÈêýÑÜç¯ã+ú½Î7¿.PñýøÀ8Æà¿8æýý;ù´âY¾¿æýýä8VÛý÷UËAæÂ¹õýÝÊð
|
||||
GÈÂ86@Ú*Ä5L×-*ÖäûáLºÎQWÃ*K¼ôEù÷óå4¿ôEðñ7¿ÑÌ»Ûú÷òûº÷é±Ñ0ÜïßM>¶ZÁCÏ*î6ÑNïáåº**
|
||||
ôYöíÙYÆ<è0HúIÄÃ,Ò½½Çç*¾ÑÐÕéÚÍW²êîCÐFO8UAUÙ8Ò*üÍÂýº°ß°Nû½ÐÏ*Jð¿ÔÛÞ*Ø9Sâ¯*ËYA:
|
||||
J¾0Ë?ÚÎF1NгûY¿5Ðö*-8ãK6JÊÐËúÝHÏ5TÎ<µPüÍú߯Ä2ÂèÄB+-ù½±L1NïJ1îýýZï½EC:÷ýÝ×-¹÷
|
||||
ýºKã=RZÜýö»ÛMÇMOC7¶K>¹**²ÚýëÀ=YÎTMCÞÆ9K1Y¼Â9J½N¼üíµçÔϽ1IÜÁý8Û³çÝý;ºÁ,A¶2*ÚM
|
||||
+¿üûÆÞÓ>îÊöïÙðìÛã-*¾ñ¶-Í»ºÏ¿Lå7Úòµ/5/êûü?Iä,*ÌÈH¶ùPÓSÐÂA¿0É<Á9Wë¸Î,öIÎïÇ5/ɯ
|
||||
ûýÃûýYçá-T¹¿+>ûÛÞï+ø¯³ù,Q¸WU¶L·øÏéýú¿ÔD9J÷ý½¸¿/;++,Võ½À³ýéOòÀ4òáÐ@ýÕíòèJúýýÚ
|
||||
àÄõIXÓ-жÎ-øýýOíCA6¼:ÕýÝ×-Ùù½íLß/VÔäÆZýýHò8OÄ?8Kâ/Ïê+*ZòüQ3ĺ¿T7ã*O¼¾»Ò:º½O¼
|
||||
X8öçÔ͵õüÛ¹íüÚóçÞã3ºÁ,QP÷8/â÷ôM,ÕоWÌIíTøò=9*¾Ô¹Eºôìæ-2Ö¹òÜÃÝ/@ZϾCíÝ>áV*¾Rç
|
||||
ñ@4*Ü/*R¿6CX²³é¿4Þý¾B̰?VÄ3ÝÕêD½Ý39Rë/0¶×óõüÅ92MÇRBûûìíË?FÏFãæïºúÊÞË1ÖÞóý1¼¾
|
||||
/@¶ûý1Á1³¯ùõA±àóÀ4>M÷úáENòèJúýýýóùÔARÜ-жÎ-K/.ô½Çß1ÎïËGÞüùQ½Ð?Ú¾óõõýüóZË8ZàÏ
|
||||
ÎÚÀÆ5L×-*JíûU4úö,ÓDÈ+8Æ9³ý8üC÷÷°ßWá¼¼GùôÌûøñÖW1YôYP>¶îÊÅR¾Q¼ýìÈ·ñ:9*¾ýM2ºõêß
|
||||
Ñ-îïÝMAHºKWý4/êðüÂ=ä,*ÊèßRÒT×T?*Z2JÜë¸ß,*R;¾-ÈæêÎTÖ.ãD32,¶¾+HÒÛ¾ýW9ÈB;DÚÃÆÎO
|
||||
AÊî¾*ZLÂÅ0?V9Jå2+¸;1;++,ÖÎ@L´Gο·,ÉNR<µå2à++,²Æ>¹3=H:Ã-G2QJï*»5¼*/9êKVÏ/<òè
|
||||
Þï,GNRÎLÓøÛMǰÃE2·L>E2*ëB½½·+EÜJÓݾ=ð-*ÌÇÍã,ÌÙô-RÒ**î0H5ÝÚRJÖµ½Ä,6иóÔÂ5íö,
|
||||
*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2¯<*îÒHøùBZæÆ>ÛPÈKM¼NCòÔVÒîÀ+²úûù·ùø>×=êV2à>ñÚÀË2Ã
|
||||
Èë9¸Ù¾6ÍÎTMGÞ+÷3**ÌÇͳ,HÚõ=¼²àÁµÐA?4ÖóêÙ½½?/Úï÷ñÔºùÔö,*FÜRL½1IHGºPIÛçRÅÔ;º¾,
|
||||
0º½×/=+*SMæG*¾@×RßÇ-JNÀ.ÃÐAÙ=êÊ2.:JÇXßHÂÀ9Xíͱھ3ÍÎTMGÞ·÷÷KÞ¿5Y8»¸ó¼ûù÷éÉ=Iò
|
||||
Xä>Î4Ã5µ?¹ô=Þô0ÛOø0>°ïÍC鸺2ç¸åî+4JØûç½6öë**5ìý·Ö¸,9HKÓĸ*ZöØúÚ8îÞÁ9µìú·Å¼û¹
|
||||
÷ëÙéSA±4RÂٰܻëø7¯ù¾ñJïKM0ËEæ1ÑXï*HK+NÛý÷Â*I7*îÕûùýÉ@ÍÞEÑèS2¶W¼ÀÈʱ*:¼äãÊ,ÚZ
|
||||
ôêÔNÉHö.*ÚÞ½ôÌïL/4?âóÊÛ½,ÍξT.ÜI¸Èü¼6*¶¾ÁùõACÊÚ¼µøÒÓ8îÚúRGWË8+¾æTA³4ÞèÓW·ôúT
|
||||
×ûÝ»ôâ¿=åìHöõè.BMìûù±8Çíµ+*A2ÓøüûOôà0îGñÑÔоáðMû仹.*°XÝÒS*KÁ´O×ðÒöëù?Äݽ½ôÆ
|
||||
7ÁÕý.*æXâÕÁÇÖ±ºÜÔÓÙÕYTÐèäI¾ÉAÙ°ê¶XýÄù@@PÜý¹+*íV±@¯êæãÙAÕR³±:ÞáÅW3@FC=¶»öæCFÈ
|
||||
ÒYÜÀÕìQ,*ÜÓPÃã¾?Ù@ÌÖÑõ;Æ<ñ=VÖ?ݼÙO0*Ì7E³åÈ35ô5öøN*Þ½û,@êB±çÔ+´×·TI5¿öó¹P3Ö½ý
|
||||
*ÖàUºýÑúüQ÷ûÍðùIãõ½Èíý>ݽ0ºýÑúüQ÷ûÍðùIãżȾèá.*öÝIQS.Ý×½**;Gî87Ó8JNÁÌÐòõ¼ý**
|
||||
6¹ÞGDTG*á0GOïÍýü+*Nô¾¹²Ò¸*ÇG¸È7**J°1ÚMM×-ÆêÏÑ.ûõ9**°1ÚMMÓ-¾úÅP3Lü9Ñ.;¹ò>¿ü**
|
||||
ÃEÆ-+4¶Ê.FF*Þûè,*¾áHÖÃ2¾Æó8*J+ÞG6Fé¾îÅÃÓMU¯LÉÌÐÕYÝHV4MÍÉAâCÅ.Æøï1+ì6**Æß,@M+
|
||||
JðÚáÛYÚо=.×B·ò@P*Ç7¸ÈØIºöîë27.B,î*î¯RÛQ+:²GºöZ>R¾1H*+*Þ+1JíË>Î*îà2@â*JðÚ-¾½
|
||||
Z4XÎÌõÓÓN19¾Cò:âî:¿J2*ýÂIFº*ÞOWÖ¾T¶.9Þß0×ô/:ûÁ3W¸È¶ûøó2À1,6+¶*ñÊ=,Öºè<¼û¸åä9
|
||||
QÖ¼Û*Öü¾-Z>µâÕ-¶¯.5°*:·ì+ÔÅD¸**ÔMý<;ÒÏ¿+8ÉôÁ´Ô-Ö8¾Ê±üÄIú¸*ÎÆóÔûU>Ú8*Gç/ô/:ûÁ
|
||||
3J°ÅÌ<H½üFÀì¿*M**JVJ>Í0JÜúç¹å,-.¾ñ1FJBâXEÖÓ*¾Çñ8ñ7=*²µÀJÁ9äú÷ì/À.,/ìöÁI1J¿ôñ
|
||||
åYUJå+B½À/ëÚ*Z°ÅÌ<<QÌÚÊÉ¿*M*2*·ð5Ü8.BOíöÀ86:*ÆIî*UJE÷ïß+Ù4*R·ì¯Ü¯,¾NÜ:ò*I³1
|
||||
K,ï*µúßÇ-ÎîD·ðÔ?>/ê5Jø1=Jã8GOI¼ú¶Î9FÐüëC5G¼F¾ïáO÷FÅ¿ÉHüJììØ@*éá3μÞ+ÄÄJèÔà0´
|
||||
?**ñÚáºM.*ܼÀ×2ÇÁ9¹ØQK,¿,µúßÅ-æNʳéÞD74V6Jø1=*ä8Gã÷¯Q4Å,,@.;Qì+:Qü¸>//¶¶ðüH
|
||||
¾ÞóQ8ðàÈÀ-8Zµ»¶BB´ZU+*EéG*¾,*½Ô:·Ö=L=1JQNƲD·*;*¾ú7½¶ð*RYÈJ¿ÑèÁ,5-Æüß.Ö×MQ3Ì
|
||||
Q-*ÞºHGÖ/8¾ÍÅí+*êØI¸æ?Þå8GOÖ¼ý**M9Ý-*æ*3ç@ó*M¹ò>EJLÞç8¶ÅÄT1¶ØMQ×+L8Ðô¾¹²Ò¸¾Ò
|
||||
7¸ÈÀýöû-*Jë+õæRó*REò>/öÒù1*JØ-ìÏÏè+Æ´æS4*ýÝã*¾ýG¸ÈÝ<*.¾ýû·ÈíÐ>Á*øñ>+¾6¶Mê9ì*
|
||||
Òè,õæ9ó:*üõåSøýûå¿*ïÌýýXØ5-ÊàýýíÊ=ô,+ÄÔýýÝ+Z4EY¶Þ¿;ÚÆ,E¯¾Ãȱ-AF*óXSZÂæ÷¾-A¶×
|
||||
-*Þ*J·Ç-*ZJÅÔý+B45*ûP.X*ß8ìï,8ð¼ÅÄ<¾üFO1¾¯9ñäûÊúíéFOÍíÙýýݶüØñÉËïýýø¯ä+*AFîÞ
|
||||
2XN¿ßíýAÁ׿58¾>òàI¹ßº*ÞYA¶×-+*àÔÒ-,õýå5ëïI*4ççýý±ä@Ôð8Aî:õ¹²=+2*ýùñ>û½@ÇýýÕú
|
||||
ã½Qîüý÷HüѼ?°-èAÌ˽Gï¾-M¶;/ôý½ë°02X¶*L×øIéYÏK+*1XZ4**F¯/úýýûAãͶÀÕ½îI*¯<ýE0ä
|
||||
0-Ôð81î:÷¹²>+òåS<*0î1ðù-ý·ö²½<¿ý°;æ¶7KDë3ÄGï¾-M¶;/òBÓGÓ³AF*?9îðÌý÷¾-A¶×-ôýý¼
|
||||
35ÉÀ=F¸´Äü-Þ5å½Ï´öêà/:êßG8ÞKðõæP,:*üõåSÈý1,ßú».ý˼*,R-ý½2øýýMÙ¸ýÞµÞýE8¶Z.AÐÞ
|
||||
æÅ´´ê*ß/1B±=5ÜB,ºï,A¹¾üí@ÐDßý-**JÂTäýU*û³âXáýêà/:êßG8ÞKðõæR,æÍÑâ*ÜJüýý°BñC¼T
|
||||
9÷·üýA¼TÒê¿ëÛï¾-M¶=/μÊë34æý7ìýÕûß+2G¶¿-/¶À/,Tá=,½Ï4.8ͼÃ+U·ÅÀÁêíÏË.J*úíÍÑòý
|
||||
Qø·HGÏÈý»½ü²5RûÈí½øÍæñ=Ý+ýí¶Þ¿;ÚÆ,ɽ½æ<-.AF*·âºíÒÆ÷¾-A¶×->ù+õµFïJ?ư*×5-X*ß8
|
||||
ìÏî:ù¹²>+òåS¸*üç»2;ÍýýÚ¿*:BýEUFø?*îL+ì¶*öYM¶;/@¿¾=ÂŽXÞ¿ôÃÀ¾ÉáýÁ68ÚÞ¿,F;-øÍ;
|
||||
Î5V4JB+¶Þ*Ñ*AúZ1õR¶ÆûGØÇ*.¾ýû·ÈõPMÜîÍÄ-@Ç+Wî8Ëá6û·ÈåòXRݸõEAGZÇ6æ,õæEä:*üõåS
|
||||
¼+¼éK@çÍÑ.*,ÅIã+¾ýû·È¾üÝ.¾õ½ÈUûÃõ½ÈUûÃÄHOß¼õT¼²+¿æ,õæ:±¶³Èº×RºÌôêÏÑU*¾õê×á3H
|
||||
ÏɱEOAíëÁ1ðäÑÍêÕB¾òF»øßöø?1V>OÍHË@*Þ6å/1FBÀ5SZ<0Òö¶´îÀ-ÎV>/ÀêF9¶î,Q¸*æI2Â5Ôî
|
||||
òç-**Þ¾7O3»*Áà,*ÜÇ¿ÓÚáËVâú8ûN*ÅP3²ÄÞ/+òÊS8+*ËÇËÐEÒÁEõG7çÉïJÓÝÑÄH»@ïG²õTYÎQ½G
|
||||
ûøÕ58¶Z.AÐÞØÉ½¹ßêÞ/1Þ3°ÙYÓZHîÞ/Ìò*ν:2AV;´åçÑͼñ0ø*PÖíòçÁCCÖȹÚÇÃÊíÏÍ.îä>¿Ú5
|
||||
¾éGÑ>¹âã³ÈHOZøò/±KÍ*µQIG1øÉQË0@Ì˽Gï¾-M¶;/ÄH»æY02X¶*DKȼçW1<öÞ/P+È-0+8Öà/Qöó
|
||||
1æ-îÃ;»Ý:êZÞTìï*8<½Å¼<¾=Ñ.>Áì6ØÖÕóµ7*Îé¯ÏÃÊ*ÈSËÐBæHÆí9ÎÕï<ùÄ.æÉÀC-´NQ°QBôÂ-8
|
||||
6ßÃ>ÖÝÎîêHJ¶ß+Rö¾?ðäÍ1F¶¿=G¶ß·1Vï¾=Úõ±Áæ-JÙ0»S´õâÞTìïP@°¼Å¼<¾5Ñ.Æ-ìÖOöòéù½Iº
|
||||
Õ**ñüËùõîêWÄ˾àAQ3%%
|
||||
d
|
||||
596 85[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 6375 string uc
|
||||
*ÞÌ**HºýÈöü-õûÝðùåÞõýÈíý?ݽ0¼ýÕúüY÷û±îù½ãõýÈíäÈ*
|
||||
d
|
||||
/sl 50660 string uc
|
||||
äÕí´ê9+¾ÑLýJ¹øòÙIîò½¸îÏ1-ø¾Îµøò;É4;Jòç-2-¶à+1ÄîL4ʸâß¼7:Úî*6ÔïÝ4Cå-8ÚÞÇ8Ú2Â-
|
||||
ÔBÌî**¾2ÃE»*ð70æ°äÍ6VãGìâLäõæQ,*ý9ÒÊéòáåØîß½IQôûÕí?*îâ¯ÕÌG¹´íìÆ9IDY/гñéÕÓÑÑ
|
||||
ÒV*ÑQY¶É+7ýN1¸EòçáüÒ²µ°ôÄ-86ßË>Æó102X¶*°æÌH²11LòÞ/8>ÞÃë?UÚîÂ-=JéðÞU6ÖȹÚÇÃÊí
|
||||
ÏÍ.îà>ûØLÃàÜÌÛø³4ÍÝûX+*YíºóåÒ±Ý8É4?Ø@ÑSøÄ¹¸ý8ò;»÷HHé,MÍÜMÍÜ.°úPäì¶Þ¿;ÚÆ,ñ8Üä
|
||||
;-.AF*³Êêü=Æ÷¾-A¶Ð-AFÕVï.-è.ÆZ*Î5-Ôð8µ°;ñ¹ò=+ÚBO1ÓS=àÕS±0ËØåÝÝW*ÞãùܺCóéÂEÇP
|
||||
ÎX/<³ñéõëSø÷íF¾JµH»0T¾1ÇòÁó7û4*¶Ï*µFîÞ2XN¿K:Î.í÷Í5¶Î³Ë:ÖðAû:Á-A¶Î*Q,+æAU6*Â/
|
||||
Ê*FZ¾S¾ÓÚá¿VNü8ûN*APçUÓT³AôäÃCÉòòÙÃ>Gü÷ß=Aì6ùìæÇU¿Nëúø»¹Èå*JÖÂÍÄ-@Ç+Wî8»á6AP
|
||||
ç½ûø³Óòá½9ÑîîóÝ+*+¾ï:ÞÏ1FÀ+.*Þ*8SYáÞW>ÚK¾±=*ÚÍRJJÞ·YFÈ*99üµá½9ÉÜD¸<çSÈãÑì+åO
|
||||
1V<-ØÞGDÅCXÊÐQÉ@ëPæÁó<@Ù×IÐ+,Þ+ôJ¾é±2=Jæµì¶á+*¼8ÚRº¶E2µJîú@쯾µå¼E¯ÛÁKí6GÇò>
|
||||
Iá/ÚBOYÕXÛÄÌ-á?ʰI1ý0*2*°Ç,+Fúè»4*K5Ü4ì5üÑPî5ùSB2-:å7F¶+19*H0î×K¶ÞßÁ1XèÀ/ÒÀ¹
|
||||
ö*8´Æ/HºBN¿,º1ÎZØ**Ê3öKGßÁݲ@º*+**¼÷ÞJ**¶Õ0Q-ÞÑIÍWBìÞÌEÄÌúÜÑ.+-*ÖñÞµ-Ù8Xû7*¶
|
||||
*ÛYöÒ8¾øKü9·ÒOÒ-5æF<K+GJ¼/-RÛøèá*G¶+Ô8¾Úðè9¶8?îÍÆïÌëU>ó*úÚæ/ÒUíÚÚ¯ÆÎÎÎØ**Ê3R
|
||||
ÇÆÒá8<»¶J¾Þ79**õèî²*ööîÔ-Ý7ê÷îNLÑ.ýIP*FRCåÆ;M¹Ì+Ù/ÊRùHü0*F¾ïC¯Ú0ZF,1**¾*ÞQLÐ
|
||||
4»×¯ùåëÀ+.*ÞÁOË9ÚJ>¿9I8R?æáÅQîÔÅ9IWß¶*àÁ.V¶ÐóÈ/6Ê76:**±,æD-é-×71Fñ+*îV7ì,*÷ô
|
||||
˸ʶ´A¸ðùÌÐãÊCÑØBOù¹øôíµ*Þ+úü»ÆA*ÝA¾ÓÁ+Üö.°JßÃÙßù/6Â*F¶¿S,ý»ùHAݽUBë¼ý8Wßî¾
|
||||
,öG3ÙÙÊ5,8*ß++BL5ÝòG5:*¼Ið++JßÓDÚ/*á»ùòݯÈJWòâõGOÉD³èY¯ÈäÕ²êÙí*¾-Ö»Ùî/*´½ð´*
|
||||
áÔºù´6BVóÒ:DG¿¿2¾5AB6îÄ+MÖ»Ù<YÍDZXÈ01F¾ë1âÔô4¾ñ-RR:B/J9źS8:.BÝî+N¾÷´*ÈXÓßW*
|
||||
ÖêÖOù7Ñ.ÝLQ¼íS¸Ú¶ïØ,»BìÝ,DôM***à*ºH*ÖAµÐÎÞ0Å7ù<LÖUY¶ö00.´êAXZBÞUFÎ0E´âÄ::/È<
|
||||
98¶*Öí·öîè8E1ÎÎJZ4¾HMæÕFJNS¶ß-PÈ,ê*ÌÓßÏ,Ú3*77BìßÎUÃÌúÜÑòÅ9IÔÒ¸ðÝ¿ÍËð8?*XÝþ6
|
||||
8Þ±á@»öíâÓ?ÃÌúÜÑòÒQÍÔÒCòàÁã±éÇÇ:*¶**ÙãQÕW¹óâÅK¹ÔÂPÍPûùÌÐ=I¼FØÖÒIM@ËQíÔ4ñÂ,õû
|
||||
¹ôåÍSÅÃÄÄ9QüùÌÐŵí¼íOÈSÍPÍKñì?*îÝ×=åWÙ±P»Ç»ùï½íS¸öüûùA·RçâÐØó´+*ôW»úæV5Ç6E+î
|
||||
½íS4ôô-ìÒîµ»ÒRÇÐU*ÞÓRÏÐåEßüû5ýôY+ðÑGOß8½æW53*Þ½PÈÝô>/¹ù»NÈÞüGS¼ÙÑÂêßÕÅͽíºÐï
|
||||
ÅÝHúÁÐúµQ×ã<îûÍðùIãÁ7öüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·Óݶð°ô»»úøÙ1*2üøíÝîS¸
|
||||
õîçÕõýüùñÀºöX+*õËùµìÝÁ±õü+ÍÐQ9HúõñôûéQóëÕí?*îîÇáXG¹ôêÜ+øý¹ÈÌù³ëÕ±ÉåÝIëÝI½Õ*¾
|
||||
ÝI½ú²æÔ±ÝPÕÉYý»QçEá´û·òõø÷Éüúù/*úüöÙCµ¼7Ù°CëúõGOýùøñáÌÓÙÕYòíí@*îøóÑ9X÷ïåÕçíÞ
|
||||
ÝY/<³ñéõ½GOQÙØ°ßÈËÉYYîåí@*îöéÉ98×ZãÓ3ëÚÙ½íSøÑÐ5õ³êÙùõÀüúá*:*:8,FÅ¿,¾Ù?¶Z/AY¾
|
||||
*ʵûÂ,,,̵à³3¶øíÛõ´Úµ¯çòòWëÝõ>ûOæÀñ8Ô»»¹*ýD*2*1Ó-+ÌáÞ÷@6BÚå¿E:ÆÀ7XɾµÝXùîÚÀK
|
||||
Ýú½Qç?¸86ÕîêäÏ-óÕ+¾*2¹>2ÞÓ½ÜÑ*ÆÕèÑZÚèGWÐ8BÍÀ¿5Iîö:2¹1KAóèë5/4æË4Ò5.,¶*.CÚÐHR
|
||||
PóR»<Õè+.**ó/.-+8¾´R5@ÆØWG*BKÆ/*F¸ñ×/á7ê×àý¹ÈHÎñÞµ-Ù8¼F>½7*8*ô5EÉ-RXÆõ-̲ÇðÜ
|
||||
ú/ÅNR6íQYßÞ*JB¾=Ú6JJã0ÈAµÇ¿5Ì:F:,Z¶:.Þá³XÎúMMãS5:â9ÒÞ3:öð*F3¹Û¸ARÐF¾3ÀV*ÞÅ1µ
|
||||
GöëÞÌ-üÝÑòõF-´5B³íÜßõé*î*¼Ùº¿D¾í2,:»*ì:7GãÓÄVïÁô+6Úö¿Ç*³î¹µÏñÆÓ/Ò5Ê.*íÏ*RD-ç
|
||||
*ÓGR¿EJîÝ+NBûùõå48.K@*îÜ»Ñ0ê@ZåõüíS,´¯Èöõ²ìÚ¹Ý0*1ιµKÛ*òÜ*Ò80îß<Ä÷ú0ìÄÀÀ¾¿5I
|
||||
2,Î0¸MØäÔðØ¾¸¿-?2,ZÂ<¼×ùJ/ì*¿õ0JKòìÛIU¶;.Ç.¾ï仸íBOÞôýÌ<25ÑÒ¼OáÌ»¹ôá*î*°å0º+
|
||||
¾êÍÚ7ÝÔ=åÌ7-0Eûò-PQZîà1À*Ú¿ê0àÌì4*ñÖ¾¸¿-?2,J8ŶS8:.>Ý*,QJ·´*Ǹ³äV´O¸;.·.*ìÌ7
|
||||
ٲݯÈJêýGOÍ/ØZÚ½MÝÄûF**¾B*Í1*ôãË>>Ö߯áÜÂ2ôè58H¾¿,¾÷¿:*µ*ùG19Xë¯=FZÞîL/À*æ±.û
|
||||
È-Â>/A¾ÞOS¾7*°M2>2OÇ9;ß¿,F8*¼GøYÚÀKåø½QSIË´ºAZæõO·Q>¶=Ô3æ³,>ÎÏ-í³ºøÑý¹Èì2³ä¿
|
||||
/Á¼GEãÄûøS***A*î@0@5,8¹´êÑ51äÚDBø½QçIK@7C¯åÓ±õ6*öëÙWUÔV¸°Nýõ>ûÙÒÒMUäVø³ÏW¹ÙÆ
|
||||
Ðñü7Ú´æÏUU?Öð¼ÝÑò¶ASP»ø±æÑç³ëÚÙ/*úµôâ·éôÊÇK×ÉùõGOå¼ïÎÐÇUÙXWTÙì@*î×»ùôGDéLåRé
|
||||
ààÝíSLô³Ã×Ïл*¾çÂTæ³YéåýíSðóãYAÜ5õëä+*ùµïéãÕýÝÑÒêÕMAÌÙôô+*àWFø±Ðú´Q×å:îûÍðù
|
||||
IãÁ7öüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·ÓÝöüQ·Óݶð°ô»»úøÙ1*2üøíÝîS¸õîçÕõýüùñÀºöX+*õË
|
||||
ùµìÝÁ±õü+ÍÐQ9HúõñôûéQóëÕí?*îîÇáXG¹ôêÜ+øý¹ÈÌù³ëÕ±ÉåÝIëÝI½Õ*¾ÝI½ú²æÔ±ÝPÕÉYý»Qç
|
||||
Eá´û·òõø÷Éüúù/*úüöÙCµ¼7Ù°CëúõGOýùøñáÌÓÙÕYòíí@*îøóÑ9X÷ïåÕçíÞÝY/<³ñéõ½GOQÙØ°ßÈ
|
||||
ËÉYYîåí@*îöéÉ98×ZãÓ3ëÚÙ½íSøÑÐ5õ³êÙùõÀüúÚ+J+*BÞÁÝöµDîà+¾ó±LJÝ5²FR¶Á-SD¾Ñý컵á
|
||||
»5ÉPQíèü»QçYÀ@FõZëéÙ-öÇ-¾,*9Ûì:,9³ÞÇ4Ú,*TRÀÊп¹>Æì,ºùóØ1å?6øãý¹ÈXÏñÞ¶/å´8GRÍ
|
||||
F**¾B*ÝÈÂøå¹4*÷ÈÒU1îÞ+2***X¾Þ.¾SCÈJï¿ÀÏÀº/ÞÏEÍWBìÞÌ?üÝÑò+G1¼EÖóîáK÷â+**Â+öì.
|
||||
È5è1Fç<Òº·*Q8î..L*:X;ã5WERBTÆÕ*úöîÔ-Ý7ê·J¶ùûÌÐÝñ6ÖWÞÒ»ù0Ý=1**:0ÞWUö7+***,:ìÝ
|
||||
+F·¾=:2*ÎÝäû´÷Lõ:¿ÏÀº/Þ»ùP7ÖWÞÌíûÝÑ.êà>ïíçÚ·õÌF**¾B*FÈPõ/T9²ÞÇ-F++éÛE´2ÏÉ,*æ
|
||||
:¿ÏÀº/Þ¶ñHûµÊ<Zù½Q3ÂÃSTÝЯåÜG¹ì*î*°ÙÔ4ââêÍÊ7ÝÔ=Å0Ú¶*KJ÷/.Öê×O¼3.:ÏB/>**Cé,ìÌ
|
||||
7ٲݯÈJêýGOÍ/ØZÚ½MÝÄG¹*¶**.*¯2EôãÔÇÀ,EL-XF¾ÆÐî,,6´ê½<0,æÓ1B-¾7JìÚÞÕMýÃUBòVýõ
|
||||
>óÑçÄõ,0G»SPï,÷ýòï2ææ¿õDHûçýGOµÂDñÞÀKÝÌ˰á¼ÛU*Þ¯åÄ»¸ïÞÊU-Mýõ>û=âÐ;=ôÚ¸ôÌ+*Ý»
|
||||
Ù³ãÈOQÄòýÌнÉȸ²ãÊOÝ@سµ5S¸ìÝ¿é0G¸³Ó,Uìõ¹È8õ<ãÒQ½0»DÛÔ˹Ù*¾ýäÌFµëÌCC>¹·ýÜÑòê
|
||||
A8TD·³éÓO³éë,*HÙµíÜM±Wò6³WVúùGOâÜÔBETØ1*BËR/Ûô³ûúýGOÜÜúóà¹ïÜëF*ζõ@¼Ûúøý¹ÈÈû
|
||||
¸òà·éìH*JÚÃM½PȳÈ%%%
|
||||
d
|
||||
596 85[1 0 0 1 0 0]sl 8 mask 0 85 di
|
||||
/mask 6225 string uc
|
||||
*ÞÌ**HºýÈöü-õûÝðùåÞõýÈíý?ݽ0¼ýÕúüY÷û±îù½ãõýÈ7Ò<%
|
||||
d
|
||||
/sl 49468 string uc
|
||||
äÕí´ê9+¾Îøý¯,Þ?ËóB/Ö´¼ûØøüQ÷ûÍðÏ.ºýÑÚèYºýÑÚèYºýÑÚèYºýÑÚèYºýÑÚèYºýÑÚèYF·CÉÜú¶
|
||||
ïë-*²º÷òYö>Û÷íÞÁAAìù´Ï7¹Ù**Ý´ûسêÛ˽ÞÑÂæ¯áÌ»¹Î<.íA*îݳÕ@Û¸óèÖK÷ý¹È¼E³éÒUýPÌF
|
||||
6íA*îà¿é0ë÷òèÒÇóðé½íS¸ãÒQµüúùöð¾ºÝ*¾AIüÙóâÉQÑPÆQEý»QçùÐìÚB±ìàŵ7*¶îÖ9AìʸíÞî
|
||||
ùõGOAUøïÝų-98µ6*öîݯAüùÖ²×<õôí¹ÈÜòñß¹3åôûE.Ý-*JàÂ5MPûR-XF*òÜ.RÊ+öíܯ=ܹöñÐ
|
||||
ðÔôí¹ÈÜб޵-ÙìÛEúÜ-*RàýùÅåºùÏ0Ú¶*B¼3Ï2,îÛ¹Ù8ú@Zå?ßëõ¹È8;±Ý´ýØÜÛù<*Þ3ýíëEõäëµ
|
||||
ÙãÃ;Ý87*öé+2¯àÂY¾Þ0,¾µÙüéÔYä2ýíSø½ÊûÔ󹸴ëZù8*Þ3ýÝ»Ùôà÷AùçòÙµP¼E¯éA8*üݾ¾/**
|
||||
çÌ»¸ÚÂZüõýÌÐÕáÚAëÜϯá0×õ**ÌöýêׯAôÝB:8*Zõ±=´úà+Þý5:Ö**¶êÖMõOÙAñ¸ýõ>ûDä»åð/ûD
|
||||
ôO*¾=ü9EôçÇùA0î1?2´àÅYF*ú½+,E**¼7Dí×»CYù½QçÁ¯ìÉôìåÓWÉéÔÕ**ÌöýèÑ9áX½×ÇäÛ¸óæ*Î
|
||||
ûà+Þü5:ƽ*ú³éÓIíOÙA±2ôýÌÐÝðúÕWÜÍSÕÜ.*¶àÂ5IX7ݶèÌøïàįÕPºý¿-ÎãÅYI¾¾7**ÑüÊÕëÝÌ
|
||||
YûÝÑÒÌJ9ÌÙÕñWÆÐÕXûý½ýöÇÕÔÓYÁíí½üæ¾51:íùݾ¾7.¾¼ôEõZæÌüíS¸MÏ?ùûéC³é⸳è5**Jú,*
|
||||
´Þ13Ò¾Õ´ÛDòß½?É0ÄüíS¸QÄIA8ÊײéÉ*¾=ÍÖ/KÚ/+½7ùóçÅ9½¼68ûÝÑòíÌÄüú¶ðåÒÕ?ÀÉ3.ÅGÙ´é
|
||||
ÌIÉÄTXãû¼QçïT¸FDòäÌK=èÔYõ4*¶ê×¹é¼ÛDñOâîXìÝõ>GùÃÁÄD@»Ø²;»¸Ù*¾ÕÄ7EôåT5GMW55ý¼Q
|
||||
3×Õ7äPÈô+*P=TKÕ»WIý½QÇÕA½ÛöXÚµE1*>ìÛÃYAÝHÍSüÊк±ÈÈû¸òà·éìH*JÚÃM½PÈÕQ÷ûUÞàDïû
|
||||
ÍðùIãõ½Èíý>ÝýS¼ýÑúüCîûÍðùIãã0Á»Y9Ýüô+*ÀÝüùAºÈìGºøóûÝýüÚ:9ÜU*Þ»ñüËùõîêÛ½ÞÑòçÁ
|
||||
1ýûÚ»ýøS»ùó¹/*FºðÖUåÌGÙµ¾üýÌÐñ¼Wùóêð÷õQùõåí?*îõå9I7ØóêÕçóðé½íSøäÖW½8ûÛ¼üÐIý¼
|
||||
+*ÝIü´äËYáÔVPEý»QçýÜüúÖ±óôó5ûùÙ/*Ú¼ûòÁU¼ú÷³øEöõUUKëúøûYQççÔÔVÖ°ñðé5ú÷Ù/*Füøð
|
||||
ÁM@V·³LEõôí¹ÈüÒòà»7ùôüÛÎI½1*î±+·:JßÄ÷ñ+¾O2àç1¶øíÛõ´Úµ¯çòòWëÝõ>ûOæÀñ8Ô»»¹*½1*
|
||||
îVS*GÜûµâî/º*ÉBÂÙ:îëÕéHFÕZæAýíS¸ÃÌ-á?FÙ·òJû8*Jèöº++8¾´R5@ÆØWÛQÁóÍõ>:JÜX,?
|
||||
F¸ñ×/á7ê×àý¹ÈHÎñÞµ-Ù8¼F>Ý-*2.ÙYJ¾-îNêóèÛJ?A1>10JKû¾=W°3ÒîáÁÙ8ú´Zå+ßëõ¹Èü̱޴
|
||||
+ÑôëEúÜ-*2.ÓYJ¾-ÆZøõíÍ?úô¼R³üûE,**2¾*Úõ¾4ìÙµè¾ë,ôúìýGOÞ@P3ýÌä˹õG*¾¾;÷,,F*/Ï
|
||||
¹õüVKµÌWÍÉìÛARÛÂR.+BìÚQý7Ñ.êüíS,¯¯ÈèÕ²ê×µåÜ,*öÊ9:TXWöäêHE¾NÛD±Ü?ÇåPêAÀê×I×K¼
|
||||
WQÜÁSÞëׯÉôEP3ÂûÝÑò×J5ÄùµòéÖµ+*̱7/.Tö¿7Ù-¾ê2,/È<áô?8RÁ7ùðP4N¿7ÙJ/¼GøYÚÀKåø½
|
||||
QSIË´ºAZæé:ã7ì¿Ä8ºÕïçÍüíS¸MÒC1@6øóê>EôéE***î,*Ôî1åQÞ¯åÄ»¸ïÞÊU-Mýõ>û=âÐ;=ôÚ¸ô
|
||||
Ì+*ݻٳãÈOQÄòýÌнÉȸ²ãÊOÝ@سµ5S¸ìÝ¿é0G¸³Ó.UXëÝõ>GìOÈSÍü6ø²¸WEõ´+*ýËG·ìØG±°Rô
|
||||
ðü»Qç×YFÒ²ðèÔUÉèÔÙ/*º´íÜ»Å䨿CèØÖöõ¹ÈÆ»W¯´Ò²9*ZDÏ4¸ëéø÷ý¹Èº»÷éÃõà»Ù·*JïìWú¸÷
|
||||
óýõ>?ùóæÃñÔÛ»*¾¶5ÅüÊ>ÝëSôCÒºýÑúüQ÷ûÍðùIãõ½Èíý>ݽ0ºýÑúüQ÷ûÍðùIãå»È*ñ+*¾ËíI*ôÃ
|
||||
318Súø7ÑÒLÃ<?4òåõ9*Eñ.éÇñäÊAPS¯àÚ3²RÎíI*Ôô3êñäÉ@WøóEP3MÈN3ñäõ9*É5/ÃÇÐâÆ¼ûÄSè
|
||||
Ä7IÀ6·ðù1¾Ó»,ÑNCðáżûÄSØÂ3=Túü+Z·Ï:5C0*2ݼá>Ýý*ê=A¾Óõ9*Uû/%%
|
||||
d
|
||||
596 83[1 0 0 1 0 0]sl 8 mask 0 170 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/invitation_management.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
708
doc/personal_invitation.eps
Normal file
@@ -0,0 +1,708 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 643 413
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sat Sep 20 11:30:58 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 407]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 6723 string uc
|
||||
î½*¾î1:E*¾9=/C8*¾Í8>Þ¿VK+¾Q14:JÈËÆ8=<G,ö=ßIO¸.îKÀ½Èò2Þ¾.ý>ç;Î*ý+Y6>*¾Û¿Àú-¶±
|
||||
Î*½ô04Eù.+îáù1ÃõݺíýKÝýÁ¼ý1ûü9øûIòù½æõýÎíýKÝýÁü,Á,%%
|
||||
d
|
||||
/sl 53369 string uc
|
||||
î½¼**ûÝ5*NRS9R3ü5¾Ì+ú°+ÓùÇY0º´ê½,*@ÕZêñ½<ÀPÁù.HîÕí/*òêêûùñåI7Nû5EÆ?JWýê¯ÙüB*
|
||||
¾½ßõÕ½ýÍCæ±.77ÎùÇY0º´êá*Z´çõ9ûã*²2*ÌGÝIõÕÕ7󳯾ã?6ùúRQÞýTJ3ºÞY=**-ÜI÷ÓÇ*¾îKó
|
||||
8*¾ËVÒÎá³*ñìíÝ´é6@ó¯Ö¾ÊËGì3PÝ3RÇG´0ÓŲùíI5³<*JÒRä¹/*,ïÔVÒÎã³*¹õÅ7?é6Dó±Ö*ü/Ý
|
||||
½ýÙA.TL±»+*ÚööôñÙåHúÂ->UÔÊù-YD5*¶TøÈûù1ÎNÇN°â½+*àèÔ²ÔÎáµ*ãôíH²èM¾èØ3¶EÂàDû±*
|
||||
*ÔñO+>¹¼ýü3UJöÓ1*ÞùÜì8ݺôæÍÑñÒõÜ2+Òø¹ýßM±+*QOYÝÖµMXÒæEäéB@åÎÔ´O±/W¼-0¼½ÑOÍö
|
||||
SéHÞó:øñòéé½YHºõêGùòåËE½H¯4ÞÚùù¹ÜA.ÈôÍÃØ*Þíä´8ü¼úîÓáñã¿áXù¾.:T÷û×,Ë/*F?»ùÌPF
|
||||
åVCY´WG½QÃØØóJ/à³ë½üíóP-1Q8Jüý½Ò*õTJÆ´»À+=+Q¿îì4ê½üë1IYÃMÀ¶ó*BÕùüûóÝ0ÃVÀ;±6Þ
|
||||
ìûçøºøÀ͸Ô+Ì1ÏÝÌXÛúü÷íÝõóã±½ÜF÷éL=P+íÛ½ý»ýùõ18ÈH**íÙE¸ööõÕõ8Ç5Q¼Ùì5=Zùù-óC5*
|
||||
¶Tø<,V?26B8ä8PÔÊG³³é¿4öýý+?LöI¹Àçâß/-.?ÚS¾U,¾¾*ûýIð7;Â.*JA¿îX:VAìýÙÜYÃ=À¶ã*È
|
||||
üýµÆÎ?¸F8×.MäA¾Ðù-ÄÇò/IóV-Ê:,*-*ÕÀæ5A½¼ûûüøñ¹úóÝ=Y¼º¯È3ѾÉëÝÝï¶ûù90L5*úSßÞ˽
|
||||
½YI¼HYÛõîá/9»¾,Ò½ýËç*¾ÑÐå4BÌÁ¸æîEÀæÚÙËDUÙ8ÒJúÌíâ÷IüWâ÷Å1°--ú·ËÅíùݽ±RÚWÝüëJQ
|
||||
1º±ûÕµìò̽¼ÆºB**G*Á-?ÎÝóùÚCöøö¾3*Ö×ÂÎ<Jüý½×1Å,Z,+ÏüåG9çèÄÈÄC+3ºüÞßÏDÖáöáµGXÎ
|
||||
øýUâ2=à*+*ø6Kâ·ËÃ6O5Ò³úü¿+É**NÙý´ÇH9òSå@Þ.¯/Ò**îR2ÓêïÞÅÉÅIZÇë½1üù¶×6ÍϾ**î>/
|
||||
.**=/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×R¾øõÅC7*¶TøÞZ8ê.0>¼Mŵýãݰ³é¿4Â4øÍ
|
||||
Îý1XVºÖáXEßýýçרýÝõ<³ÆôýB;üAÃQÄ8ö¼ýï9Á·³Öý,ýÙÞ**ò*6âýýÑ,Võ½À?ÇÍ?ÓNT*+¸M.Ï+Zõ
|
||||
ßHF,¾3.Ò÷ݼRÝUETDà.V?úGA/FFT-úRñ½è2Á5²°ýýÝAÌ÷>K.GUµ.àZ8µÙç¿Èê¾*Zðü¸CèºJTGÙ*Î
|
||||
±.;-**ýûø**F4Lí·º´ììéÙ½íëÕõ̹ôïG=ÜL¿×èÉ>2;*õMJ+¾E>ÞÛùõµÓ¼»Ì1*¾Fø8üÀ¶-·ç³Ã@5/
|
||||
êüüAUä,*KÎ̹W:EÚ*çï7øQÜÆÓW1TÞýýýݽúÝÉðÅ-¾úáÇì9ùýÒµ¸ÒýIPèõ½ûYÏ-¿»´æåãÑM+0-46Ä
|
||||
FM/¶PúÂ9ð½ôë¿1Ú<,ùý½ûýåøî*CXZ--TSñýøÀô12ÆúÐTDà.6°íÄú/?ÚD1Uõ½üTñ/DïìûýAѺÈ:Á/
|
||||
A²¿òùTõJO´J*Ô·ýÖ29îSé<J.Ïûä¼¼ûÏOÎûP2»MîÒ±YA½H»IYüøêÒ¿µºö2/8R°P>*FÁJSúöC9*¾û5
|
||||
üùô5+ÃØ¿1ýůÏ*óíY°D*îÒòóDõ±57EºÄ>QÇáèãèÔ-?2¿ñ¾.SD0ÝXJ¾.ÎK¿+XðäâýÇIÊýIPD÷½»LÑ
|
||||
-K*Nû½Ð=-±*/01.¾OØÔý?¶K49ZÞ?;>¿ÜèÁSÄÞÃ5êÎ<ßüíÊRüèÄÈÄB+,5ýÙÇ¿UñZAýÍAÒ¸,/äù9ÝÕ
|
||||
Ù.·N:²IÐÆAÀ¯+-¾ÄùÝW¶ðÃS³V-Ê:<òîã1:,òÅÀæýû@ëDøõîá¹öíÏÙ@ûùIÀµRîà<+¾¹>:æÝ93ÚÈ,Ì
|
||||
3I¼UìÛÙº**¶8µî×ÅADRòÚ¿ÉüÔZϾÛíÝðáV*ÞSç-µíÒDOÈö<æZS°öÏÓW1T:,µ6*UÙA¶Ðéà*YèðýøË
|
||||
XýQæèüÕÉæ¾J2¾èýYêýýÈXRßËýçÅXýñ1Øèº*ãýýç/;Â..22ÛýÍóß?¿öýý·Ã7í½ÚT1ØÏÐ;PÞ@»åÚZÞ
|
||||
ßÓ·ÖÛýù@4Xΰ³Ä.ùýõ¿ïÁ.·N:>ûÛÞ1Á;±/ÞæûÍ<6÷àÒDÔ+T2+ùJNöüT2ÛFîÑWIíìû¹õÜû·éÑ¿É=ö
|
||||
0/Ì2òG4ÆñëÅ.XO+ÙF½ÜÓòçQH**Wõ´öêÛÏ1:Zõæ»5½5VÞL+±Ü½SÄ×**ÏÐåW>*º5*Î,C°ÚæèÔ-?2¿E
|
||||
0Î</ÑÝíûÛß*AͽºÁÂP@´íìYäÂéòJ2*=¼Y׳ü¼=HÎÀEýÑ6GÌÅÍ3Ú÷*5ÚüýÞ1ÂÞ,ÕýýZÊðÛHÚ<2ýýý
|
||||
½ûÜó/ÈõJETD032êý<-8JáE³¾ûõÍüNU¶+éííýûéßDGZÂU.·N:R´ûÛýïI5ÄÊ?*»õYSîá5ÑèÖ0¶:ÂÒû
|
||||
¹öåÀæÉ/µ7ù÷óêÙ¹ôéÍá´Gº×½CÏÞ+ÉHL+H÷û¹UäËÁº**ü9KîÛ±1Í8¾Åý8Ûöî/³ûU>ZÉù=ÌB5*ZT1M
|
||||
ÏTãTÓ*¾K*÷´é/52J¾È+ÎßWÂ.WT6îÇ.Oð@¯KWÂ2ÏW/U1À*Ò×KÓZ3ÈóÀ48ÆÞV*Kº²æ+;αÂ*Û:Àƾ*
|
||||
+RöX9X+¾-,.æ:Sô<PºÎ7?7=.>8ε+1Aä;²ç,3¸³î¶¿8<>RÏTû8=â7¿æÎô,üµ»RDóÇå0²áúûã/êöà
|
||||
ÒDÔ+Ì.;*¶@Â@5¶ìØ9ÚÐ,*¾EöVúðL+ßÜûC4ZÆèÓÙ<Xºá5*îàÊ,õÛE·ôïCºóâUµ4PZË*PëI»LÂÇ*¾Ñ
|
||||
øæíá¾KMÐòDS07÷;ãÎÙ°ÏÀ¼Î¿:æFÕJáíÝÍÙÕQ¹Î0?ÙIò´+CHCÓÄ»¾-K>**F5Lé.º¶íQØçÂ1íNYT>Z
|
||||
é×µýüT4¶áñåW÷ôWï/*¶ºÏÂü8¼º¸öʼ¸ÑÏ8WMö*/6öü°5P,*ÐÄι**W°ÏÀÄÎ++.RÐU¾Æ.34Oí4ο9
|
||||
Xíͱھ3ÍÊTáHÞ÷:øKÞ¿5Y8»¸ó¼ûù÷éÉ=IòXä>Î4Ã5µ?¹ô=½õ0ÛOø0>°ïÍC鸺2ç¸åî+4JØûç½6öé
|
||||
**5ìý·Ö¸,9HCÓÄ»*Zö¸2Û8îÞÁ9µìú·Å¼û¹÷ëÙéSA±4RÂٰܻëøËÞù¾ñJïKM0ËEæ1ÑXï*HK+NÛý÷Â
|
||||
*ý6*îÕûùýÉ@ÍÞEÐè×2¶GÂÀÈʱ*:¼äãÊ,ÚZôêÔNÉHö.*ÚÞ½ôÌïL/4?âóÊÛ½,ÍξT.ÜI¸ÈüH6*¶¾Áù
|
||||
õACÊÚ¼µöÒ³9îº2SGWË8+¾æTA³4ÞèÓW·ôú4ïûÝ»ôâ¿=åìHöõè.BMìûù±8Çí±+*A2ÓøüûOôà0îGéÑÔ
|
||||
Ó¾áKNû仹.*°XÝÒS*KÁ´O×ðÒ´íù?Äݽ½ôÆ7ÁÕí.*æXâÕMÇÖ±ºÜÔÓÙÕYTÏø@¼*AY´ãÖïÚº9õWVʺý
|
||||
í,*Ü×äVàÖÏɵYXÎø@¾*9I´OÖîâÊÞóßMåîRм÷4ܸý2*öÔD?@-ÔêØ¶àÌÜÅ=ÎÊÍZßÔúøë@C*¶´êÒGU
|
||||
PVÖYÞé9+*ýó5ÖZáÊOÙ0ÖãÔSýÀ2ÂYÝMξûù1¾8¯ÆõYÎíÝJݽ¿¼ý,ûüýîû5òùAæõYÎíÝKܽ¿¼ý,ûü/
|
||||
øû5òùõÁõYÎËXξèÐ+*ü½ýïÊÌJ+¾?-*öýü/DK¿¸TÌR·DãçÒQQ,JN¿T+*Ï4*À,ÚÒTÔ´ë,@é>Íòæ:MÃ
|
||||
63¸.2Ó*¾JÑ*8ç;OÈPÛè³5,éã5ÕY¯*âUAXÏ*¼5AWÚ°çÀ³ÉÙÐãÈ?TÖHÃ4Û*ÐL*ܽ¿äRÎÈUBXÞ¶+5Ä.
|
||||
ÝÀ;ãAXï*ÔéAYÜä*ÂAYïÈìéAZäÐOÑ0Ëî°?Zø2TͶÓÍLÃ5A¯ßÊG=èÔÛ,*Ï@W*¾MÉô6D±çÈ;ñÝ¾ëø³é
|
||||
AXßܽ¿äRÎÊÈÑUÌP»°óÂ?W>SÏR7´LSÏNÇ4?0ÞQø³UAWݰ×RÅ6?4+:Â8Ë*¾JÏ*RæÏLÄ.Ë3¶NÅ@·L/
|
||||
5AXæUÕXÛº?,ÆWÜà*ºÕWÛXëȳÉ?Ýó4ATÕFÏðòû5²Ä,óÌN·,ã3ÒQÏP*L,ÞѶ*+óS**¾4*R1îѰçèOÉ
|
||||
@OÃÎ:LÀ434÷.¿L**Î2R9âÆ:L¿23°â1?<âÆ;PÍL·SÒ²ëØ³UÔV¾U6¾íÐÃÉÔWÖZßðÙXã°OÉÓVÐR>QÏÜ
|
||||
½¿äRÎè4ÒSÍTÃT-îÎR»</èÒRÏR>TÐä*2>SÑÀ-F?UÖ¶ëøóè=½âæ:MÃ6;°N2G¸;*ÞæºÞÏ*öMÇH×ÐÃ5Õ
|
||||
Xì5ÕXÛºïðÃÉúØ?4*³÷ØÓ5Ô2*TãéÓõYÎC4Ò¼L/4?RÑ8.*¸:*NT>Sµ*ÞMÇDOé@YÚZÏPÅ0ùÀK=*2ç
|
||||
:MÁ:Ë.*KÑ+ÑЯ*ÏÎüæÐQÎNÛÐÓÉïèÃÉÕ÷QàãéÔ2RÕÓéÔXÕ´çèóû5²Ä,óà¼3-PêÕZßJÖC**Ô,JÀ+¹´
|
||||
*ÌVDµêÜGá³ÈÓDãÈÒB*5ãÈ>U10¾PÓ<³0*TË+¶TÒPÏLÃè>TüTÕ¯äÔSéÄWÆ¿²ù@0JÞ¯5+¾çÚSÙäêùAæ
|
||||
6/THǸ:*2TÒQÏJÛ5¾52îÒ°çè³UÓNÅâ:M=*LæÏ5+:Ä.Ó1Â+¾L=*ÂR;L/*ìÆÐOÊFð?ÉðÐÃéÔXØX.¾
|
||||
ãà?5ÕõYÎC4ÒÙ,³4>UÑTÇðÓPËDÓè>SÎä+2ÓSÑà-ºÒSÒPÃLÃ4@ÕãÉÕYÕBC°.4Ã*2LÅÌ.Jº¾J°ò**ä,
|
||||
È*P*JÏæ*ÝâSÓUذ÷àã½ïøó5BWÝ´CZ×¾çøü/DM¿<QÐHÓ*RRÏJÃø>è>ÞÃ+.*.-¶SÐRãÐÃéÔTNÇÏK?*
|
||||
Òæ;K±*ðÆÎè¾C*NâRÏLÂP*ÀI+ÏÀ*YÒæ;NÉ@»</¯ãàOÉÕ2*ê?UÕVÜܽ¿äRÎÜÈ>VÒTËÀÓÈÝLóT?TÒX×
|
||||
,Ôè*ÎÓTÑRÓ4*îÔXÓÐÃUBYÞ2@QÆ0*JÐC*ZÒ>î0+à.Þϸ¿:¾5-¶:*ìÇÒVÖ¶ç4@Ê8é³6Õ¯Ûܽ¿äRÎÔé
|
||||
ÕYÝì6*ö¸5*ÌéA°åÐSÉ@Ê×</TÒ2*BÓ4¾L¿LÓ4Î0*LÃ3¾Rï*NÈ>R++M*¯+;,HTÒTÓX×ðã6YÑ@WD³èÒ
|
||||
»ý,ËÏJÛ?SÔNÓDÓU@í³5AWÚ²ãDãUËLO4?TÒP?+.-öTØ´÷ðÓÉ>OòÆ;MK*èæÏNÌF¿D1¶Z*îæFÞRJ÷Þ3
|
||||
,Ú¸+ÕNÈ>VÓ´ß,0º»ý,ËÏJû=SÏN»ÐÓ<Pµ÷°OÉ@S4Úä»Ï4/4ÒRÐL3RÏ,*À+FÓUÙ¶óÈ?T<½²ÆÏLÅ0GT
|
||||
N±O>çÏ;J1@*6Ã3:MÂ6Ó+ÖLÂ6CD-:Â4/1Ê+FÏ+Ä.çÐPÑVóøü/DM¿ðTÏVÇTÓêý5*îüÙÑGÅ4ÒSÑ2?TÒ
|
||||
à*úÒSÐRÛØÓéAí³U>OÅ8G°.6/+ö¸õýýÝ-ÆÎLàæÏZRÒ²ÉØ±ØÀ,Ä0°C*ɲç>R¹>R+*Þ<À:×Gºµ,óÑT×
|
||||
TÓTØýýG½õçÑUíXý½õÝDGRÏR×°ãTÏLÓT6¾Ùèó5BZÞ²Ë<Ê<G**¯.Y2ÒÃK=2ÏÖ*½>S@ÙýåYGÂ0KÀ²²J
|
||||
:G4<23¶±*AâJ9OÀ>3ÐOS2>*B*Z/Xúø»/Ò·âÆ+3C/KÐCöô.èÃû4ÔÉÖ¶ýý¹õCùç-¶ïï÷üÝýãåTëð/Ê
|
||||
1-ô5ÖZÞº7ñçÔSé´W×VÔÊÒTÏTË+¾¼KÎRO7KÏLÃ/¶SãìüQÝ?ÎMìÇ>SÒNËDÃ4ÊD*24R+:ÏRG;->Ã4>U
|
||||
Ïð;æ:*J³/ÒÇÊJ5+Â@Fç¶ÞI>ææLA³T×ýýÅÁèßÇJÇ,çVüýÓùŹ:·4/ÉÖ³HÌÙ±ÖPçàÓÉõèOV×±äÀïÐÉ
|
||||
6C¸ÒRÛ:RõÏâËKÙ²çÀãMOáùýºÓ¿.÷IÁ6CèN5×±¼VÔOÄ8G°ÒÇÝØÃT<RÜÆ;±Ø<?°>,*97¸ÒæÏN.È×±9
|
||||
8<**7XÜ*>Í<³0:°=æÉEÆÄ4ÜH¿àUÏXËTÓ.èÃZSñ0̰âýùü°õ.ð.6LÖHØöé½G8ÑãÉýLä8TáÙ¹Åä¸5ì
|
||||
¸Òæ;¸KμM3Eâêè?éÐé5ÚúýûÛÁèñ·0Sø³;YèÜ»òÕýXK°âæDµø´O´C1í´ëïàéÒæ;MÅ6Ã3*Mç2>°A8*
|
||||
*.ß*T·=21Ø*G=î¼Ý6ÞÌG³WD6¿+2P.6ZéÜZ>¾ßÉóÇ+í7ë/,Wø°åÌC3çZJÃTÓY*à;¿4**X.+ç,ÎßB@
|
||||
ËSJ¹/KîJBÞÓDFÞÀ·ÁéÛöõ.TOÇDÃÈ>±KÎXÈ3E¾8GèÓÔýýݶÒFÖ¼L1ý1*úúÑáVëð1ؼýýüºüýëÝGÃ.
|
||||
7TA.è·:ßO÷ýûÒã¿Â³.ú»äB¾Î÷óÝ@ÞÕIãÃRÏ»ØýÑãÁÝ91æôý83TòR*¾?¸âýýF.èѱÔ/*¾Fê×Éã:00
|
||||
Ã*ׯ,¾LÖ¾ZQ=D¾2ƶ<Ä2²66:*DVÅ6*:=+Îã¿K<**ô>JF>æ5KZ¯+*æCTU*R¸:.Á,õèî¾-PJYõàÝ=R
|
||||
Ýóè@UÙÒûýíÅÑØÀQ=TÕÄ·ÖýýÅ8ôÄÞïü½úéÇS½í½ÜÉÊóUYúý³ÅãN+ÁõýÝÜJOÎÜÁ:âýùñì0ŹñVûýûà
|
||||
ïìñWN»ó½ÝøåÃÛòõýãíâÂRIÝû½½úØ=±´ìõýåË5ÎLÈ@¿OK*Ç2²/¾M¾ÉGùS*4¾³Ûå*Þ>PJ²Ó8DZ/*Z³
|
||||
ÜÄÞ»+*:ê¶Z***Y;-8ÄTð²+6ÞÌGõXHGøÛ*26JÚÐÂK¾5Kîéµ*ZÂG¹¸*Jæ=,GL¶×0Ó*å¹ïí3ÒùðãéAY
|
||||
îüýõ⯻KÂTAYèºéýýQEÁÒó½Åý´ÔBÌиýí7UÙÔøýý-÷ö>ZÄÄ@ëZÍJ*Y2ÒíKø½½íûÐVï³>³ûIüO7KÚ
|
||||
ʺêýEµCR3½ÒÒùýÎÕ+èå·ýýýöÕA¶0¸ñüý9.ÒæÐRøÇÒQÑúýÍÂJË¿:Ú81/ö3*,¯åü9*7¯,O-¶4*NUÉ9
|
||||
.ö5**¶äÜC***Mâ*NY±Þê×YíE°I¹1ä÷È<0+Ì.¿Å-¾*ôóHLB½PÎAéÎ4îºAüG¿øUÏX˰Óêýý¼ú>@¼BË
|
||||
°O6V7,óß´·üÍÛäUÔú?ÁÙýE1QU±íýIZÄæZç4äK+àðäEùýýùÎýýÅõQ.2>HäÐÔýãíÒKÂù÷÷½½Ú¼¼2ïP
|
||||
Hóû9IKDñºôýñËû2àÂ5ÝEýýÔ¼ì.°â:CÀòR<,»M+ÎÞ¶>+*ÎÞÇ3öóN7;ÎÎçSôÌG+**ʱÅ8**¶<-Ï*ØB
|
||||
4*,NÞ¶YÎQT¿9-*î:W*àXÆJ;ÞçDÒ,ÚìÃÅQÎTÈÒSÓNG5,óÐÐöײ4?±¯ûýýÇOO5üI¼QXÙ´ìàåýííëß;
|
||||
4Üýýý÷¹î¼Kô4ÁÃ˶KÎüý½ýæ9óJ,Äí÷>ôýöB»FïÌæüQÝÐ1;Tº6IPýýÅ÷PEÅûI³QDƶKáG°ýݸ9C¹4
|
||||
çMÅ8Oðý½X,OF*Æ·¸,üDD**²¯½+*-æÊÛ²**ZFLLù,*âï1Î:1¿°ôZ*¾ß/*ì±,»Ø0Ó*Õ¹ïï3>ØLãè>U
|
||||
MμÈ4IÌPÓ<õ×ýý͵ͳâýÝõâ³íìËEõëÙרCÙÐдì¼>>ýÍ7ÌËGñì1.¶ûýï-ðO8KüTêýð¹,çðÈýûÍû
|
||||
K9Rèöï¿ÀüýY²Í³ÕûýâÈÀ²Ï=ÆLÝü½³GTð6ÀÂ8O¸>E¿0µ<µÓÕID+9üúøñV+*¶Þ×ù,*JBðâ*2*Ü8;ÏA
|
||||
*¾=·ðÃ+**é±;Rº2**.LÌZ*8**G¹ôÅèÎFîJ0Xõàá=R¿OU.*Z5,óÒÖ*,?UÕÃèûýùFÃ>ÉûýµA3WÙ·óä
|
||||
¿-å5ׯòçDÂQ÷¸çëùýõÊ29¸KÎüEìýýáAùÐÅMàÃôýöFÅÂïÖîüAYð2A»FÐTZýý½·ÄD½ûý²SQê:Ðâµ¼ý
|
||||
½Ö7?·8CPÉD·ÈËJ/µ=¿ÆñÆAPîJ-:¾PêUéR2:DVILLîñ,1ÂXóÇ2>àP**¾ºQB*Ý**èúëM³R8¶:-Õ¹ïï
|
||||
3Òüè?ÊÕYîÀJ»?BÁT/ñµö½ý½ÙE=Õ.ýýëéKϰ0<¯æ´÷KÝ<À²1RÉD¼ÉæöýýAбX2ÒÍUñù½üÌ5ûïɾ×û
|
||||
Yüå<²ú=Ïüýí?NÄ:1/Îóýïé?×äYý½YY7GÈÂ÷æùýÕ>ÁÃÍNT4ÒSÏúýÍÉJG¹îðÆBRÞàË==î´°N:Z+ʾä
|
||||
M3ó@5.Zö°û4BG´T84Z¯×X,CJº<,Ãê7+2î÷30Þá¼<*:îR7È-XBßïXºº,óÒVϰÓÈØýýÛ¸¿áà÷ùƵ¼ý
|
||||
ͼTFP6CÛíùù³@ÈÖÊн¹ÔÙFHý͹ÝOH2ϼéýEÅÁñ±ýý½6Eú÷åýåµ²ñQ?Øß/ÜÄÌIøÌýIÌÐíàãììùý7
|
||||
ÍðKÐÛüý½¯¸Øú×ÑíýéåäN4ñæ;NÅ>OKÎI½/Ì5>ØTãTÓUKμÝ÷îßÍÉýýÝÙõÙTÆ@ºðçôúùõ0ºØúýë»ã
|
||||
Qä:åýIùUAØ?µûû¯TÏ,Ô/¿¸7IîÖüݽõU81ÒÔý÷í@×ËíK/òùýíGýó×ñýÍ8;Ê<êúóýöó9AÚC»ýý½¯FK
|
||||
ØòSâ<GÈ>çùAæ6/4Rþ<TçüI**íIHôÕÜÂFS-3Óà2øùö*ÝIFRS¹4;ºVÜõIG¾åóL<°ã2Òí2<ÄHúýëYO
|
||||
»4»6²óíµÔß±éSïøM2Ú»ì@ùúÆðW´ùýÚZðK0ÜüðWNÊÎ+âÆKÀ.ÇÐõYÎC4ÒñÈÓ5AXãøàóXÓPÛ¸ÓèÉíú:
|
||||
>Wì>4óè@QµÑXߺÓðUâãòß²TFËYù¸Þ»Ý<úÑ.4EìÉVØU¿N¿=DZû¸³PJ¹´7ó¼-ÙÓAÄ9KÒºKÔ¹+áóCÌ8
|
||||
ILO7¹×ýñ´äù·ó5AQURÄöB½:³èÒÇÑQíÝJ±>RõóUÕYܺÛÈâéR¿°ã4@VÖ¶A±ôF<?UAVìS:NÏ4ÏïLÄé·
|
||||
âÈ@S¾îFðÇ2·¿ðâÈC¼ú;MºØF+-Æ;Yòä4>Wð:°âE·¸>1ÊHÄ6·I¸2SàMÃÇ=¼OËJú´ýÝËÈý2á2Í>Nʶï
|
||||
¹8³4óÇ>RÐܽ¿äRÎüèÓUÔXÛ<?Çù¯ÑäÊD²êÖï¸ü>èNT?UÒú?¯â¼ßØÒÅ9µ>4ÔVÖXCTáÙ²×àã5D·,ïLÂ
|
||||
öÒ3áäÍZ*QMä6G¿,ëC-ÚÂØøLÐT;LñãÈ?Ö/ÊD»0/¿DìÒÀJ3¯îVàÚ+ÂÆ<NÆR<OÊܽ¿äRÎìÈ?UÕR×D/4
|
||||
X¸âRÏM+*¼SÑRÒTÛèóÌùê5ׯßZYÔñÙ°÷à/YSÁÇú8F·ðò÷±æ;Å.3ÏI½*?Èâ;7,ÒåÍJÃ6·L½ôêç-RÒ¿
|
||||
2?GI¸ò.;öJÃ8óÙûýôTÜN6Fºòêç=ÆEÀ>SÐNÈ<·øü/DO¿ÐTÕX/ÁDTÒNËT+îÒR׸óèÔÀËG¹íÅ+Uü7H³
|
||||
Í2VÕW8Éݳã+/DÒÆÏMÆ>çNÈ>G°.SF¾N¸>FÞ;OÀòRÏLÃ8÷WWÙÙú-æÎLM.83Ýëý·Õ°Ð0*47B*/ÉÀ6âÐ
|
||||
QíÝJ±>RêÓÉAXÛ,*¾ÕD¾S¾:*YµÖúÞ.Éë¸ä+ð79øGWÚHøðµS+ÈÂç=R,TÒ2*:Ó4îæ*0*ºÕƶõ÷;NçÑ*
|
||||
+1/4ÙÌRE0ØLôN¸Þ/<TÒR*;OéùAæ6/è¿÷,ÔéAYݺ3ZÜ86Þ*¾ý4Sû°³½òêï»ú6ÁúüâUÕÚáð±GëSÂS>
|
||||
I³T>SÐNÃ<OPǸñ*-+K*ÊTÕYÊø.È>Ô·ZÞCû3ÑãÊIÊNGð,SÃéùAæ6/4±×Àó4ÔB*·óè¿+*Uñ*8±¼Ó»æ
|
||||
ÖçMÆ=°²=öÇÎ:?òáãH</Íà¿ïÊ=NÉ>Ã*ö²ýF°êÅ6ÐNXÇÐQæÖÓL?Í=FÔçA³Ððòï×âëøNËßÄûÚÕKµêÞ+
|
||||
.SAåůà¶ÍPÇMäBO,óèùAæ6/4¯×È/5ÔB*¸óTÔ:RÈ/ÉÓ·*Ý×½XP²úJèâMÓ4Q;ØLÁ.øïµ1Àã7G¶ãH±=
|
||||
NÇ@ÇèRÖñÔH»ôÝ3AGðȲûºÙìOèÎûÝS;-1ò=æKQF<NáàÓåÜé÷Sø=æÏ·X¯ùñäCéVõÖâPò2ÒVíÝJ±:R%
|
||||
d
|
||||
643 83[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 6723 string uc
|
||||
*Þä**¼ºýÎöüÉõûIòù½æõýÎíýKÝýÁ¼ý1ûü9øûIòù½æõýÎíýKEPR*%
|
||||
d
|
||||
/sl 53369 string uc
|
||||
äÕí´ê9+¾Ð,*éÓVÕè*.@V¯*18ÞY·Úìúæ·ãZ÷T׸ïLO3ÏLXî¶íÜ91»SÔÅýÜ8;MÉôCõëãèÒCõ¹îìÚ:M
|
||||
ÛðPµUF¶YéË>ÓëSô3â·ÐÅËØîÎM7¹öÎË+T>WZøü×æÊ²Ç=¼ÝÒH<ÒÇ@ýýY×áùÕ¾-/Zëúø³óÒJëÕYݾÃ*
|
||||
FZ¾Ç¾¯*µÕA¼öÖ3ÅGèKðé´6ÕUÑBøðýõLɱPÑÕì¼êMÄDãë½Ñ½¸á0@ÔóÅøïüëÓIFVºÞNÐQKÎÌÅ:Íü×
|
||||
MãÃÅ-T0×ûÀÂ>Sóð1ÅùÁ0>ÌïÓýϽ*ÇDôû5²È,/Ü8*>ú¸î*1@Þ¿×ÑøC¹ýûéùîÍïPº0ÊÔÄÜÚ÷°VÖÊ·=
|
||||
̹ýFÆ9NNñTð´àÊïÑ:üÙ³úÍW¶ñ1Üâ/6QáÇèô:éòßçý9Ìã/ÊD¹Æ¸øB5ãDû»ÛFHä6EÅXõíç0ß÷NêùAæ
|
||||
6/T±ÛÈ?U@VA0Z>:8Þ¯ÛD/UÙ½B߸ãè÷áQûY@SüîöÞÅÄZ¯±ÅUáÜø8C¾¸ëð¶JÃÐäXZú±û4DÑèXÕæN4ý
|
||||
ðP>ÓêC´KáYüíCäÇA¶ø¶Ëì³,àÔù¯SÜÃÉDºøR»9Ñ»;ñ2ÕõYÎS4òî=æ4*7ø.Ø8>²2¾ÙøÒæ8IÍÂëñPÅù
|
||||
íèéÐÀâÛêKRäö¯>X¹Q»QÊHÉ4Hãé+ÁXëGü×Qâ¶S³Éá¹Ð/ÌJðTé-,ó=ÏR¯=ÆÏÌíûäIöÂÑÃÒ/7ýÁæ;Æñ
|
||||
µÀ+M>÷øü/DM¿<VØZ/¿Ä+Ê¿8Å0*ö²-ëë,?ç:IX1ÌP?ÉYX@Æ9FHôÎA·0SðóÚÙÔM09Îà»»â±ÑÜêø¼Vµ
|
||||
<PÒØâïW;áûFàãóøÃWè¶ÊýQTï°Å;Oüñ¹Ì¾ê/AùƽÇÁÆÐO=åý²¯àN,ôû5²Ä,óà¼35PêÕ¯àÊÖZàÂÃ.¶
|
||||
¯ß¾3=ä:°ÚîXÒÒÙD?è=·Ð¹Uñ½.8IUÇËLÌFÓ»ì¯-T-ë¹Í¼Ï×SË.+ÂíåTSáÈXñüâöGÆN?EÉÛáCXåäý@
|
||||
ßÞ¯.ÈÍT4üåLç´AôÎì6ø²TÓÊò¯RFµLOùü/DM¿¸YÛºûðÓ5ÖYòÉÕY+**VV¾ýð³î³ð8M×ðØ´çàÃÉÝéÐÛ
|
||||
BFûÂÑÓÒÄ:í>4HõÖùÊïæóÑÓ±P6C¼Tøù¯ÓÊKó´÷»XÄÌMÍ¿ãÜÏÅ·=ñ½ÈYì:ðÌL7ûÜñÎKÊG¸¯´,¯4OT
|
||||
ZË9òËEÌÈ»ý,ËÏJ7AWذË+*Wï*ZU:J6¾åØ0A¼ßìHËðÖ´û,µ@úØÐF7»àãLDá1<íÒXùè¹à¶Òíû¸çLäÌ
|
||||
µÖïù×Sâ¸ÙÚHAüÄ:OÜÞ°åæÃÕ·÷IO@²*SðÊÀ¼õ3RÊÏìûåK¸6S¸¶Û½ê×PÊPàܽ¿äRÎM̱*ÏÍßÍ?ÏX5
|
||||
AÁ×åÁÄØÏI6÷²ïôÜûûï´ú79ù2ËHÅú<¹ìWñ;áé»ýHÐØ¸MKÑÜÍQ5ñ-TWð÷ÄJ»AÕé?¸S-ñ½IÇã6JÇD/û
|
||||
ì·,4ñ5°ïYù·»L»éýí=6B°çÖõYÎC4ÒùÈÓÉÔX×¶ëÀÛ²ïØÃU6¾íÐÃÉÔVÞ6üóéå5íWº¹ñÁûJP¶ðúEX@<
|
||||
I-æ;QôØÙìáßöǷܹéÙǹÑôÆÕA6ÉÑØÜúHA¶0Sð/ÔZå¶.èS´C-æÐPL߹;äú+QA¹íX¹¹ã¼íå.MIJ,ô
|
||||
û5²Ä,ÃáÄ;M@V6*252¾ßÄ7EPV.¾1-äÉD»7½<óN¯4ÊäÇ:KÃFB¾èüê¯>4?Aä:HGµ,Óøå±ðòöÌÒJðL¸½
|
||||
À2³ùµèËIÌç>Xô2è°ÑÅAÉÖ5ËGÇPÓðï:4á±Å;OâºJÌI/4ÉǼP==1Ó³íÝJ±>R=0VBY±*66B¯ÝÀ+5@0Þ
|
||||
½û,ôéÔRÃ0·OÉDSTÂR;N83ÑPÇ*ëçñƵD?èÐJ·ò:ðÆ4G°>QËD¶ú7K¶âæC>æ8Õ=Æ<SÏH?èáñú·Ò29F¼
|
||||
:÷RÐJKð=å:·ì:?JÄ4ÓKÁÔàYõ/ÌTçܽ¿äRδÉ@WØà*N@W¿*A@:,Þ±Ïðò2ÎIÀ6÷MÈFÃøÒSÑN¼2ÎKÄB
|
||||
¯ðNÇ=ø-R;OÄ.çï´êÞ×áQ9G·N9K;,ÌR<PË@C4òÅ9¸ÒRÎIÀ:¯ðÌBK<ò1;ÔÝÛàM·êÚßPú¹ÒÂ/ÌRäܽ¿
|
||||
äRÎìU@Yغçè³5ò¸Z*Ì5ÕWÚ¶ïØÃÉéÀÃT>QÎV×ð׺÷¸³è=QÇF<NËH»øâ3<ÅâRÑPÌ8G4â13°â2<LÄ4S
|
||||
NÇ:GÐÂSâ¾YÈ.S<PÉ:GðÈD·ðâS=PÆFÐÇçÁ9/öÍR´ëÜäDYôÖøü/DO¿¸Wز÷ÐOé@XZé6*î4/72292-î
|
||||
ÖZë4PêB±ÞF@RÍD³àÒS=ýâç=PË>³à²4*B/µØPÉB¯4/2-BòF7ZËBWà²,Ø2èµ3WÌÛ¶ïï±ñÊÆÜÆKòè×õ
|
||||
YÎC4ÒEUôVC±äÌ?-åè*L,ÖC±ãÊ?UäêV¾±=QXÛ¸ë¼çð×Z×È?UÔU×êÓUÕ²Ë*¶VØVçÀ?ÉÓVò4@V1X:8¾
|
||||
ZÛÀÓ0ZBÞ¯ÛÈ/5ÔTáÞ÷Ã@·è±ôæËDPæÒ´ñܽ¿äRÎìÉBYݺ/ñó5ú¸´*8ÊÕYÞ¾û,äÊYéÔWÙ¯ÖPËÐÏNÃ<
|
||||
OÈÒS¾D¾ö*<³TÒJ*öÒTZ°îì+43ºÒOÁ274òÄ6@ÑÄ8LÔȳùü/DM¿ÈYÙP*¾Õ2*ýÓÉAXܶóàã»óèÃUÕXÛ
|
||||
¶÷XÜÂGÉP7D¯ØTÒQÎH¿D*:ÍLÛ6¾-?¶=*1GÞIGDÒQÌE¶îRJÁFãTôêùAæ6/ȳëÐãÉÔXÙP*ÊAWÚ¶Ã-2X
|
||||
Úä*L*ÚÕZåÎKÁô5?ö>L3F/Z<QÍFÃ+¾PA,ÎP:XîN*,*,+è+àKÅ.ºÑNÆ2;4âæ;êNTÕ¯çܽ¿äRÎð5Õ2*
|
||||
çãéÇ+ÖXܺ÷¸¯*ÜéA°èгÙ@6Ñ4óS>RÎJÃ+¾Q;+µ0*NÃ4F¶+2?>D,î0*008îJNÒ¹è.èÑUÛÌOùü/DM¿
|
||||
¸±æÊK¹0Ë×±îê6*F¹´*ü6DµðæÛ±QËñÀ?U@VÖ²ß<ÖZGC*Öóè,à*Ä1Ì9Þ7;BYçÞ×ùü/DM¿ø¯ÝÄ+EôÉB
|
||||
ZA,JÀ/¹Z*XVBZßÄGùô˽áÄÊÓTÑTÏðÓPÏ<ÓÈ>TÏF?SÒPÓ<ÓTÒÖ¾E+B5JÑPÏ4,B-B2¶Þ,O0Á-ÔU×´é
|
||||
ܽ¿äRθÉÕXܶ÷D-*ÚL,NÕXï+ß*àÉÕZ*ý³6D³çÌóD/I¿,?4ÒJ**³0ÞK¿4óçÑQÎF?/FB¿Ö*ö²0:>*H
|
||||
G·¾5XBPÎÌHÛT0WØõYÎC4Òýø/6ÕYݼó,ßà*êAYݸÃ/JYÞ¼÷ð?0Þ¿?Ñ´WE²ÝP·SÎN¿D?è>R?*@4ÓQÒ
|
||||
à*â>SÓ+ï+Ñ-JT6?È4OÈÒR/*-,ß/³*K.TT>XãàSùü/DM¿<XݶûÐXܸË+Ú2¾*¾Z*å/6×±çÐ;ѳ¼3J
|
||||
ïH*¾*Pù²è=R¿É*T*ñÚ*º4=2:24RMB4*ÏX.ÞVJö¿ã¸@ëØõYÎC4ÒµÉ0ÌØ´çÜS±êÒ·ÙÔ0*ÔË+Æ´é,,
|
||||
ºÙ·öðß-õVAó³UÕXܲÛ2*É/ÊÔY±*AHÞ¸çè³U.¾îà³0¾·÷ð³5AXÛà*À6*Õß¿:,ÜãUÔ´õôßùü/DM¿ÈY
|
||||
ßP*>ÖZݾ+-´0îÄ*êÕYáÎ/ø²ÞZÓL³4?SÄÈ>SÐP+8PJ6*ʸ9*¯.ÅÎÞ¸»áÔëØ.TÖÛö16QÆáÜÒO*äÉÐ
|
||||
ÂG2Ò9ùOÊA¯ÞÀû¸°*:Vò=.5.2,îåÔSÉä7Ù±ßúÕVÖPÓDÃ4>VO4?RÔà+îÓRÒJ×45îÒRÏ4ÓÈÒSÏLK¿ÒB
|
||||
QCÃè:¾Ê<?V*OÓD³4ÒÆ*,³4Ó:->óUD¸èÐ:RQÊTÄ,.BêÞXÖ-¶D-.D¹ôAQîÂ-¾ÁVîò¶78DàW8>²âá1×
|
||||
»ÞOEF5Ã.ùî<788.*¶24ôè³ôH<¾.JG±ÙBèê½ì¹²8¾î:J´>È·µð<Rå?6AZݼó,0¸GB*ïãU7J.¾ù4ô6
|
||||
D±åЯñéÒCEÔéÔUÕ,=¿Ò2*Cóç¿+*S±*?*:T>*Ã4?è6Þ++*SÁ*ã,A,Þ¶WÙÄW0,ó·Yº²WGøîÔYéJÒQ0
|
||||
7ºã,*»@E¶ü/å½îÐ1ð;æÙí¶í0CAô+ANÁ0å´ÞÆÐáÌ»0,Ë¿/ðR¿ö,¯ÃõËÀ21Ï-+ì²Þ̸=A¿¸¯ÜÄ+=ôÉ
|
||||
BZ:êÇ+BZßÀ+5-¾Ý¼?ÙPW*¾Y-ÕËÙ²ìÒSñâÂã°³ÈÓSÒÂÒUA0¾WÇL³È?TÒà.ÞÒ¶+DÃTÓC*P³T?TÒNÏ4
|
||||
@21:ÑT7;.?ÖZèÞOÉ¿JO9͵Zá-ëâÌÛ<ÖÏ÷Î,JàÔ1¶**Ö-RÖ+@ôµL*ÖÝ*¿Æ+åGèÀ/Ѹ±1Þë¯Þ8JH.á
|
||||
î·.ÛÖ±ýL¿,¹1èîN1058úH·2,ö/MÚÎ-ÍLA¹QÊÖ5ìñ*DX¾K,ò¶Ä1ï7R7À-ê×Ý6ÄE´¶Â:ÀGù÷6DzôÇ>
|
||||
ÊÜ.*Ú·ÅÀÀEÍ·ç:Qб.K>¿GD**8¿ÂFøEôæOP×ÄÛõ°Q̶±Ý//äX6BôðöÒ3Oïßá¿36=ÖæÉÀF·K.1Úî*
|
||||
7²óSMòÞãüJ1à5.¹×-11ÎMÄKDö¶¾:åàï¼µ´OÎP7E³ëL*îE³êÔ¯5î6-¾êØWá´WöѽUÕ8G¸ñèã-ø4*º
|
||||
ܸðÎC=ÄVAðOéÕ4*î³,Þ´÷ØÓé¿**X1,Î2:0îÀ/,2À3.Ö²ï1C2ÒN:üP¾úâNê³1×ÌRJ°X³Ç-:2,ZóPA
|
||||
ÞüV.*¾+¿¶*1ÓÊõëÝN¯1ÞçGå8*àæ*4¸æ0Ö±ýúFð.1èîN145ä7VÔë2ëÚZÂ5Fîß0LQÐÀ¸¿ü8Öà/BN¾8
|
||||
åö:ÜK8¾8>¶E6Aêî2K.¹ôïCð¸ÇES¶¿,µìï,4Xºä¯Á>QF:Ïç¾U:;=ÀÅP¸ÀÕÅZQä8¶íHÌ×·:Ñù+±Ûºâ
|
||||
¶²JºZ½Z,±+ôèJñêY2ß+AFJ-Ìãï·×½Ö±YG2YJê¹ÝRÒBñJÝY*»OUõìó¶µ´OÎÜÊÖ°ÞÆ/M06=EÄÊB°àÄ
|
||||
Û2*:@4ÞË·éPËDµëÚ·´îÚÃé´ÌÚ¶ÌWF³ìÆ/¹ã4ËÀÃT7¾Ï¸ÓTÓ=-¾ÓVÓLÓT6*Ö41B-¶O-Ê4@UãÒÓ-A-
|
||||
¿,.=ôóè8¾õ0Ü;Äá8KZ¾.Æü.¼ÄÝÌÃ**B:21*4À7âô/±+1H¾×EÞXGU»ç8V**¶Ð-Ã/M.´G¹ï/XBà/8ö
|
||||
ÊÉà0ÁѵÎÝ1Vï,6<J1×Ìû;HÂ1BK×Z±½ñ9µÀïÀ78;.±åì¹Áì-÷ÛÈÈL¿=õ¶,/AHñÖKÈ=8Ææ²Þ?ÆÆ+éá
|
||||
8ï¸ôHÖE35óÜÍ6/0õÚQÁã?à1.øÞ.ä,.Çï¿*AF*º6AFR*KàM**SåÌâòÞξRQÎöÏ俾à*üÈÔ8Qê×ìêÈ
|
||||
JÛÕZÚÀû4ÔUBý/VAZݾ÷,Ô0*¼Ã+öZâÐSÁô6سT7D²êÔ³5+îíÔ»ÑÄ7ׯÙÒAUØNË4óJ*Ú>SÐJËDOTÒC
|
||||
¾Ö*=³èÒRï*:èFJ>J6¾Íø²È>WßÞS-ï°:RS=ï7ß·ôÇPÄ¿ÊG-ÙÅNò¾/ÌÃÞÇ3¾/ïNÎùK¿ØPñ.ݼß-ZßË
|
||||
8Ú+Lçëß/MÚÞ+0ËÀDÓõîó2˹ã3CÎÁZíû09à*ê÷¿ZÖÝøÅM,G/¶Â:;*@Çâ@Ò9O+VY>¶ð8ÕØðæ:ÌCâ+5
|
||||
¾NMLÓ+ÅJLJ:Y¹NHÖI3ÝòÝÍÎ0MÍVÁ1+ÌÈÊ==B5*O,=̶J·ß¿,2>º5;T1P..¶4ÕÎM8;¹OUÅ=ôXµ@OÎ
|
||||
Ì6B°ßÆ+EP675´êÇ+ίàÂÃ+ö¯äÔSÙÄWE´8ÌEµéÞ·ù´ËÅá@ìD¸íàSññÎSùãUÓUÐú?TÒP×LÃ4?¸ÃÈÓ2
|
||||
*J?4JPÓT*R1BDB-2PÎ×V¯áPÌØ6.4ÛLBõÖ÷5ßïEÉÆßÌÛÓGÍO¸ëO-Ð*õ-@¶>,Å.TKCùëECR±+µ.T9.
|
||||
XÌA*íÓ0*èË8FßGTÜËÒ5ĶÀ-TÁÄðµMʸ+7AÞ:-¸¾ðÅö:HÞV½Ì¾ûÓ½F2Ä=´¶Â:+*²±ÅLµÐ¾4ÎPõJ4X
|
||||
Úá/>F*Â-X¶ä:QÐ-´83Ã/Æ,Ú9¿Â.°úL=G׹߿ÕMÄ»7Váºí@äÈ0Æ2íâ8ÊJ*¾ç,öúõ=L¶OÎFËÒçè¹±å
|
||||
ܸ:ܾÖåÛÒðî*ÐNò0µ²óVFìõäÐ.è¿/-PÊÕZÝÀ¯ZÞ¼+ù?VÖ-3îß¾ûø?ÊײæöײçÔWá@W/¾Rñ@,*ÞÃ*
|
||||
ö¶çÎ?EôÉAWNÉÒSµ,JNÃ4-¶:*-+°TÒ·¾5+ÎÒ¶7-AWÚ6.è×áÛÒà*/OÐÊî¶ï3<°åìEÓ/ÐJÅÈ+γ>HVî
|
||||
R.83>ìì>ßÀR/Mµ.È1¼*ï5ÎGêQ78óÞ/¿D43Bç¼ß2Q¶JOWà8»-ÈAÎïà.<Jűº29ZA:ÒáüèI8.á3EFL
|
||||
Æ**<H+æESJÕDFº:/Aìï,48*à+AF±Æ=ç;à=.3Ã/2W58¿Âê6öL=ÛõZOÌ>ñËÛC.Ä»ø>IÉ02Ù=Ü9ÊJ*¾
|
||||
ËÄ>NÊ=L¶OÎ6ú×=MîZåܸ:ܾÖ1ùøPÇà**ßEظ@8õ¹±S,ãôÚËÙÔìE·¯*HXÙ·ëà³=åËÁñ´8ÚµíÞ»ñòô
|
||||
çÁ1YI¼úúH½úøëùµYIÕõíܽø0ðEæ÷CÚµ:IÀ÷ìC³ë¾3¹:*>ÊBZ¿ÕÅ.î¾.X.*ý°@7H¼/÷OKÎ×Ò*VÍI·
|
||||
XÕ+>ÍÓ6ìøß¿ÍãÚ8ã+òøÄñ÷ëßÇHNñGÕ´JÔ¹TOËÈ3<Â1ï4Wô>Ø*ÊãKÎ,VÖîM:´ìöè*È,*×**ÍÄËE´ê
|
||||
Ò³ÑÄÖWé@,¾ÛSé´7F³ïP*úD¶çÎ7E0VAµãÈÒSÐNÃDOPÏ4123B.¶µ*Bè>TßÌ/DâXÎ7,034ò÷3ƶç@B<
|
||||
Âù²9¹,*î¹5ÌÚ<¿¸°ÞÊ3U06C¯ÜÊÖ²àÄ/EP6<=ÄêB°¯*XÊC²ãÄGÑÔ7±518Ú³ïÜÓ+¶³ðÚÇÑ´XÙ·HËÛ¶
|
||||
ñÞÓ5QÌÅU1Ë×XÛXãàÔZ׸Óè?UA**X//öUÓZÓÀÃ4ÔT8éÒVÒº/=AÌÊùÔ1/ø¯×ã·¿4ZàX.*.5/:ßÀË+¾
|
||||
Z³*.ÊB¯¯*¶6زëÔÃ*B³êÒ·5+*îL*êÙ²ïÐÃ-¶µîÖ¿ùä7D³ÜVCZÚX×<³T.¾ÇLÃÈÒÀ*N³è>SÓÌ6¾ØT@
|
||||
7Ú²ïܽ¿äRÎÌËB±ßÔ3UPÊU=ÔêÖ²áÈ;ñçÄ;U07C°äúC°áÌCEPÊCY0WD¶éÚWEåßÇñÄìE·éæ÷µñØ×ñ´X
|
||||
Ù¸üËÚµóâÇ5åÌÉEA8Ú±â¼÷ÐÚ²Û¸óÈÓ:*R?4ÞUß°/5?VÓZ·T×RãDÓÉC·,8ÜõYÎS4Ò½5Õ7F¶ïÔ¿ñëÞ·
|
||||
ùä7F´ìRÙµëà*¾Ù¶*î@:ÞÛ·ñÄëEµïâK¹ööãéA,*úË**ºÓ*±*¼YI¼*÷ûáÅÍåÉåÌÚ´çÀûðܾûðã5BZÜ
|
||||
ÚÕYÞºûøóUAýóUÖXÝÊßÙÅ*ì5ö13ÒZ¹ÏÓ/èË+ÙPV×Zè·²àÒ;¹´ÊذÌ6C²âÈ?¹ÄÊ9±ä6ׯåÈ?ñáÊ;M
|
||||
P6D±éºØ¶èܯMAìFõÔXÙ¶êè»=åÝÏùPÌE¸ïâ÷¶ôâË=ÕÌÚ·X8F±ßº÷èó4ܰóTÓU¯*8U?VÒ°ÓÀ³ÈéL/ê
|
||||
عïè»ÉÜJ+¾ºFîÚ2ÌW*¾¼¶+×NKè2Ǹ-ÌONĺ·>+à+ñ/;N=3Ò.MôJ*Î֝߯75**àì.J;¾1UäVدãÂ3
|
||||
58îäÆWñôËD¶èÒE³íØ¿ÙÔ,*ÚÃ*æµîÞÇ-AXV>¸éÄËØ°±ÎêT?TÒVϸ?4ÞYϰ³è?WëÞÏ·íäOUÎ*û¼.øÊ
|
||||
0à,´:¶³;EçÝ>ú:9UÚOÎH@RÝP6D¯èÂKEäÓ?U´VD±çη´æÎGÉäV×°8Ë×°åÊCÙôϽã5õéÎúÔëñæÌ7Ùô
|
||||
6Ù±ïFÙ¶êèÃ=Å7G1AXE¸ïà¿MÅâË5A0ÞäÏ=Qì6¾ÉáÔÊÖZݸ߰ÖTÛL?0ÞQãT/éÒYíæ;¶õàãJÎHDÍ,Jà
|
||||
°9²Ñ¯åX3ê-5Zê+ÖáZHÞ=Ëã8*K1K*¹ìÏ@VBÓÙ´PN+/*ó.ï,ÌGù>¸×¹àÂÛ5ìÁG¾À7Z¯½J.á3P¶21*X
|
||||
Ê,-***¹³28FæÙÖ**ZÐîÀBÄ.ä@>ùA4>ÖáüÀ3T+ÌÞà/SÂÃFÆÅ+*êÊ0¿/êYÆKÛá*JÏÞÇ@>4Ò,Ú¾Äè¿ç
|
||||
Å-*Rà¶Ò?³:ÅNðìAÂG0Å6ñ*ÎùÖJËÖ°áÈÃ+¶±âÄ7MPVC²ÌëD´æÌCUÄÊ:U@0ÞÇ7UTÙ¶éÎ5¹âÀ-IOÕêB
|
||||
¯+/ÜÊØ²ïØÃÙP̽=åËÚµïØÇMîâù:*:XF²B>Æ5DóçÆ+É/é?VÔºÔTÕTßT/UA*AÆ4æãJÎÌRJñTÉZICÇ
|
||||
¯ÕGâø-5Zê+ιHH*XÍ.öVÙ;Ø+ÓÊõëúÉ>Sìȱ1ZÌZXÞ×±9´:¸<?Ò¹¿üÖ-Rµ¸+ô1ÂZXJöÒ6O¶ð2ÄGù-
|
||||
ÎYBá.ìNß/7Ê2ÊWZôÍÍM̾Gù-PR/¶,5ANß*ιXTãá**/LÕº>Þ+CÒ¹ÚK¿=WR>R/¶+71âî09ÉB8³O7â
|
||||
;ÇÚù/Kõú;áò²¿¸¸ìì¿EõËÛ¸Ü8Ú·ìÜ¿U1ÍùÙÕYܺõìÏ5Ñ6ÌòTñA9ܸêÓG²åÀ/EúÅXG2AÒÞãßMåYÝ
|
||||
¾ü.ø¼ýú/ò1îI¿îí6¾ýùAîI¾*/06,î+ùóÑÕ8F·éºØZåÀ7ù/WBèPíÞ*À6.4:Âðñ*绵î7¯Ú55îê+Zå
|
||||
ì¹Áì-+ÝJAÝÌÛö,4¼±åì´YæÞù6êÃ5¶ôê±X4E6ÌÜ<æí;,+¾û+;Ê5¾.áÃÅ8¿.ãÀûÆJQ4XæÞÂÞêÀSåTY
|
||||
ØÎ¿-PR/¶,5AN;¶îJHèTJöJ¾5°RËR¾C>¶Ð/Ã,åÎÏâîL4À*ÈB8³O7â;Ç>OF÷Ã=DT϶L*7VÎH6ׯâÀ?
|
||||
¹äËQÁ@êÕZ߯SñìÜ·-õ7Ù²åÚׯáÂ7MAõ¶ýü»û÷öãÁíëµ¹HûBî»ôÒϰÜÂ/Cîµíà»-µ7ÚÎ,*Õ**âÛB*
|
||||
3QìÃ*¶¶ëÐ/éãTÔTüT?VÜÜ¿E18ÊÉ¿J/-Ùã*BçâBÆ×ÝÖ¾Ï@ÉN°5èÃXÒÙÁ/;´ØùÀ,à×Y98¶î,ÌG¹æ>Ò
|
||||
S»19ò¶J¼ÀûÀ<ÀTFT¼F¾=Ñ2DJå1À·NÎÑ*A²îJ.²µ1Ëä3¼G:î¾3T+ÌÞ࿸Ê<ÚÆÅ÷WæG2îÀ6ìÆZÏÞ/¾
|
||||
Úèà5æRG¶;/K*O6ÅØÐ0ðÆN458ûà;á**³I»VÎÜWC²ßÒKùôËÍé´ËC´çÚ»ñðسùPìÙ´ìFF´äÊKñQA¸õ¼
|
||||
ÚøúøùñõíñÙµÜù²éÇý¸»íÐW±äéA¶üËÚµòàÃ5µÌÆEµ0Þå×5A8Û¸ñâÃ+ö·óèÏEåXG¸ü7Ú²çÆ3áOÉàT0
|
||||
8G·÷Ð:Rµ³åñòØ×±ÝçÈÆßÌûÃ/6³ÏËG4Ó¼÷ðëN¿°ôÙµ°2T7ÂÚ³/6F¶¿:*ÓKM÷Ù;PÛ*D*ÓÂZVÞÞF³1Þ
|
||||
ÇSæ,Ú×ÙüFß+AÂ/Ò>Úο=ÙÞ1,Aå5¾µô1ÊîJ+XÞ࿸6DÚÆÅ2*V.Ì÷ìêYÆß73@4Ú*ÆU,»+7Ó-Ñ91*ÎÂ
|
||||
ïRUèJ8ÇâãYFð:T¾DÛ´@RPôVB°àÒW5òòìÚ¯-AÌÚµéFD´ëÔWù08Fí07ØÁÇéQôáKÏó7Hýýýû¹ýùó9AÌ
|
||||
DõãD¶Ü½ùÌ;5N?ëÞG+*3Aì¿,ƶð,,ÞÙZ*:ATD2¾áO5P5A¯ïà,Ð:RõËèÀ,GÖ±AX<Nº±+MWNº,ÎM²ÌL
|
||||
,PصµÈZ¿ÄàÛõ112-08ÚJ2¾ÈØÂGø0>Yºí+;65BÏ7òK¶ð2Té,ôA:Ò¹Þ/¯+?/A²îâ@òÞ1:¼+ØñÀ38>Þ
|
||||
/VÚ:ÃJÁ5÷2+¾Íß:Z¿û/CÚ;ßL¿MW¶L*AÎϸîLIÌ2áÏÔÒíF<ÇàÀMݶâKòTÁÁÃ4ÛÇÎå/TÖC5+îçà³=Q
|
||||
ìG·ñ:Ûºòâ¿5Ã.ìÄ=ûF·íæPYÍ@61*ÞÆ¾Ä¿Áí9ü1*öü÷Ë9ÕG¹ñæ¼ÔG¹ìâÇùôÌÑUÅXH¸òæßñòæ×ÁåXG
|
||||
¹õÆG¹ó,JM,RÛºõà*ÚÛ¸íä·=ÅìHTA9Û6.D-4ÎéEÌÅ,¾ðCÚJ@,JçYÀ·±+ZûÓ5FÙ¾-,Û´ºÏóê/Gµ¿áÝ
|
||||
çé:¶XÎHÌÚµïàÏ5ÕÌáá1Yܺúöëñ÷òçÙAíÛ¹÷ÚÛ¸öôÃéÈÛ¼à¸/¾+*OáZðìðûÕÀøüàÍÙôW¸ñÂöZÞ·öô
|
||||
/C¶¼ùöóéÅÍݼ¼9I¼üüûÑå8ÙÙQYH»ûøÃ/Ú2**¶2:¯¿È¶ç<¼¿=1Z406·EßZêÙJ3¹ôð@ì7ûPÎÌWC³ãÖ
|
||||
SéôËÕ-õ7Ù¶îÞ·ñðâÏ=Å8F¶ïúE´ëÞ¯ùØ»¼ßSN3Ò-*¾*5ÈÈÁÙY/óý÷I½8ºõåÇGL½øâ»ù0ÌGAÕ8G¹òè
|
||||
ÓUåçÓ±ÕÌFµîâS¶ëäÇ-åWƾÍÑÅ8Ü·÷æßÁðòËñýýÅJÖåKÎü6D±çÊWé@̽ñÄ7E´ìÖ³ÑìÞ¿ùôËÚï*íÔW
|
||||
GØîùµÒïÀJå*ÎÏÐË¿ÍY.óýóMͼÙõèÅÛß»ñ̳ù@ìÚ**<µ8ÛS*9AXÚ´êÚ»Ù@T¾áÇMÕ8G·ï00*ÛõYÎC4
|
||||
ÒU±äËØ´ëêÃÑíÖÇ-1ÌÙ2*ý08Ú¶ñæÃ5åçÏ-QíX÷ûí¿0Õ.è+*¶Î3åäÛõIRRå½G¸ïÞWý?Rô·5øâòêÓUÕ
|
||||
ÌG¹M*¼8G·ñÞ¿-Q̽EµìÛ¸÷âÓÁðîÏÁQìùAæ6/èÕ¯Ñô7F¸ò⿵+ÍHXÚ¶ðàÃ-µÌÊ=A2èçË=Å9X÷ýÏ¿,
|
||||
õ.D.*K>ÐUC÷5/óøÏIýGÚZÅ-ãJ»+1ÌXÛ¹õê×Á1íZ>Ò5>óñäÓ¹AÍG¸òà.âG¹íÝJ±>RÕµìÛºýöóÉå÷ë
|
||||
éµ9ݺúö÷»÷òóéAYܼì9Ý»ú80XYIò¸Dα*4ß×ÚÎÇéY.óüí±ÍXÚµè¶ÛâÀôöïñAÎJ9BîJ¿+ý76æ+ø5Ö
|
||||
ÍI½.-ø½ú,ø5æÍK½íÝJ±>RÍ´WÙ¶ïâ»ñäÝÇ-åWÙµîÜÃ+¶¶ìÚ»5AìÙµ48ßßòÙÕ¸XÎ8**+NÌËÛºº;Òýõ
|
||||
í¼¸ñÞ½õó<;äñ0ÌÚ·óºÛ¸ôì×±Õ8GOQÌÚ¸òêGR*CåìùAæ>/èÑË-µÌE¸îâǶòàGûÚµíàÓ-õWFQµÌF¶ñ
|
||||
ä7VÊì1õ>+¿0+Z+IÐûãÊÛýTRí½üøõñÏEëäÙ³5µXG¸õî·ºôðãÁÅXܸüXÛºñèËÑÅÌßEåýýõIÌ÷3ÒIÙ´
|
||||
WE´éØÃ=íÚþ¸¶ìÜ¿518F¶>ÌÚ¶¯Ï4ÌKáôI5ÈÁJÁ*>¿>.õÀ¼¼4èûÝAíÜùÔçÎײéÖ³5¸ÎñèÓ¹õìÛ2R»
|
||||
µ8Û¶õæÃ.2ýýÝý¶äQÎBìE¶íä/C¸ºïæÏ¹ÅÌÛ¸BÍG¹óîÃ+¶¹õê¿E÷ؼßJQD,7,î5òâáùùýýûûû÷òÑMó
|
||||
ÔWEåPËÙµíÜÏUåïßáµYI¼ýô÷ºõôïáµÍI»íÝJ±>RíÄìF¹ôðïéÅóãÁAíÛ¹ùX*¾éÑÅYÝ»ñìÈQ÷ÓXÇÇJÁ
|
||||
*NþKÎÌüù÷âÑÜE1̽ùä7F¶ïàË=òì/Kö¾*/üñÕÍÞ½NîݽíÝJ±>RÍ@7Ú´ñÞÛUåçǹQ8Úµòâ··ïæË=Q
|
||||
ìF¸ÌìÚ·òðÔí½=.ÇÊJG-µýýíY½H»1ü=Û¶ìØWÁäËGÁ0ëC³éØ·´ñæ×UA9Û¹öÌHºøè»ý,ËÏJ»E´ìÜ¿ùô
|
||||
ËF;Åì*¾ÍE18Ú¶ðÞ¿ÁðæË-AX2>ïIRL°,?EJ0¿ø÷ðçáÌÇÌG¹¼ìE³çÊC¹@WBÒQÑÄWÙµðæÓÁöêß¹1íùA
|
||||
æ6/4êôø¸ïà»EAìF·ðXÛÖ¾¶RMQìÚ·Ï*DYYúýçOÆÊJ/4ÔKÎÌHû÷ÔYàÑQÍåUÅXFµéÔWñçÐWÑPWØ´êº
|
||||
F¶óèÛ±µYÜõYÎC4ÒåÙQíHºøèÏEó²óìßÉA2çñß¹õXÛ¸öòS¾ÀóùÅPJ°,?´@1¿ð÷òãµì2YÝ**ÝQ9H¸ïÜ
|
||||
·ñPÜ¿5×óïâÇ=ÕÌGºö*ÝõYÎC4Òõá1Îݽü,ìñøòïÁ1YH¼ùFI¼ýø÷-2:IÝåYÝ¿¿ïå9@×¾¸*¿ÈýýI½úø
|
||||
̼ì¹÷ü+FÆÎ9>RîI¼÷ìÓñòæßUÕXÛ¹ôÒÛ¸øîëÉõû5²Ä,ÓìÜ»EÕìÛ+*UµXF¶+*HÌF¸ôîß¹å8Ñ5µYZûë
|
||||
±ãPÎÌSýýýóÉIIÜÁãÔËÚ¸õðçñøðãÁõÌFµë:E´êÚ»5ݾíÚ³ñäëùAæ6/èÙ¯-õWÛ¸óæßºõì×ÉA8ÞéÃ5A
|
||||
8Û¸óì·ºñØ/ÊFýôP×3ÒµøýݽúïéÁõXÑOáPXÛºùúH»øôçÁÅ8G1õëØµìÞ·51ÛÃá08ÙõYÎC4ÒYÙäWÙ´ì
|
||||
Ú¿ñïä×¹19HºõæG¸ð,KÛÚ¸ñÜG5Çù¼ßVR°+ó+HûýÝIüöñûøÑéÒW-ÕXHÈQíÜRRÝQíÛ·îÚWáÄÙ³áÔËÙ´
|
||||
êܽ¿PSÎ8ìÙ·íÞ¿E18ÏUµYêÏùéåÍݽúòãñøðÓ=µëéøúOìDÇ3Ò>Î?.èíÉQýºç·ôì÷»ý,üùAZJ¾üÍÞ¾
|
||||
ýøë¹ÅÌÄ=A8ÚµðL¶Ý½¿äRÎÌìÚ¶ðæËUQÌÇUõ8ÜBRëåíI¾*ýø¼õàË»íÝè?Ç3Ò½2õý½üôåÑõãÇÔÙõÍ
|
||||
JÀ,ËÞ¿,+0,¾¾ß*ÌÍܹòæË-õ7¯5ÅìùAæ6/è߯éÄëE´ëÒ·´êÜ»EQXÚ·Ü8Û¸õðãÑQÍí¹Q8ëùüUôÆÊJû
|
||||
ÄÅýýíQ½H»µÜÒÚ¸÷ôïÙåùóáQYI¼ùô·½ûöãÑõÌÛ·TXÙ²ãÖSùü/DM¿<µêÞ/¿¸µêÖ¯ñÔWEµ+*üëÚ¸óîã
|
||||
ÑA9éÁåôûý2SNPÎüNéýýóÉA½H91øËÚ·òêÃGJ¼ûöïáA<4øÃĸ¼øêË-õ7Ù³íÝJÑ>RÝ@XÙµêÞ·ñ@:Ø6è
|
||||
ÙË=Q8G¹ôìïºýöÜõÍ9Áâ.TàJH,óòåÁ´RëEµìFF·òèçÙÅíHêåYÝ»üàJÛݼùðç¹QÌÙõYÎC4>ÔEÅXG¹¯
|
||||
*ï*Ì8Û·ñèÓ=µÌÕMÕÌÛºùø3»íõ1ÕJ°,?·²9¿¸÷ð+á±õÌG¹Ì8G¹öðçñ1Î-6¶ÎÞ¾+186,¾,+,âõìùA
|
||||
æ6/DææéÛ±ÕÌG¹óèǸõ0:+ÛØRµQYH¿¿ïÉ1@×¾¸*¾ÖýýI½ú÷HüY¾+û÷é19ÖEÏZ÷ôëñAôç-<>B:Þ¿*ù
|
||||
;¼úî»ý,ËÏJûÙµîÜ»ñ0ìEðä7Ú¾*ùÔëEµ;*üËÙ´ìÜ7²FÝFÅ?E¿¸LõýùÍIH»õ8õH½úòã¹Å8Â5ÉîìØ¿M
|
||||
µÍI½úFݺùîã¹ÕXF+åëùAæN/Dü×6D2Z4Ø6ÞÛ³éÄï±ú×GãPÎ,Çý<RýËòH¼ùòãÁQêÇE»îèØËÑÕÍI¼ù>
|
||||
H»óæÓEA²ùû5²Ä,Wö.ïàKá*JÚ¶¾C¾B+11ÌÙÎáïQ@>×¾ø+Ðüýõý¼ú÷ìCM»÷ì×±ÕÌÍ51ÌE´ëÚÇñóôëá
|
||||
AÍܹô¶Ú¶îܳ-1ìùAæ6/Èï×¹Õ8ܹô86*Þ5-2Äòöê×±19ÚÕñS¼Ûµ<=Rå*ëýýûé½IY;EòÅ9ܹß1+3üX
|
||||
H¼*+4.öÍóùåÍÜö/¹µ8H¹íÝJ±>æöL°å8ÛB¾·¾ïá=1ÎîÜÐÝíÓÉâ.èSúùýI½øìã¹á*ïßUÅÌÚ·ÌXG¹ùü
|
||||
+6¶Î-.ÖÍI¼ûöë-òTA*ÛõYÎC4>Á5AXF¶îâÛB*4AìÙB¾-=¾±ëñå3N°,?ER0¿ø÷íåAìA8ÚµÜ7Ùµðä×Ñ
|
||||
ÅÍõéÅYܺôðßñõèÇùôëÙ¶ð.F¶íÝJ±:R%%
|
||||
d
|
||||
643 83[1 0 0 1 0 0]sl 8 mask 0 83 di
|
||||
/mask 6723 string uc
|
||||
*Þä**¼ºýÎöüÉõûIòù½æõýÎíýKÝýÁ¼ý1ûü9øûIòù½æõýÎíýKEPR*%
|
||||
d
|
||||
/sl 53369 string uc
|
||||
äÕí´ê9+¾Ñ,JÌF·ïäÇ-ïà*ÂÚ¶±+M*¼XÚ¶ïâ×¹éÜïµB,¾Ú*ÞÃ:ûýIý÷ðç¹àùäÃùôWÚ¸89I½üôïÑAÍÝ
|
||||
Éõ8ܸõä¿-ëà<LAÂýýÕêïûUÞ¿,Ö´¼ûظTÎïÁKÂ*Xæ±6JF*Ã51X2²F¾Ü¹ùܽ¹/<=RÍðôýýùãÁI9ôÌK
|
||||
¶¸öòïéå9Iº:Y2ÒÖMµ6¿Ú»5A°ïû5²Ì,Óøìï¹Q9Ü3*ÖÕ4*ðÃHÌ*æºýôØÕÍW°+ó*ÚBüýݼöðûúÜôòó-
|
||||
¶:KµÆÎÞ¾--üù1*0ÂD»õðß5Ó:õôÃ*ºý,ËÏJÛÛ¹öè×U1íÛ¶*¶A0*êÃ-Â+ö¹óêûÙù¼ú¯×3ÒÝïûݽûïã
|
||||
Íõ¸íïùAZJ¾*ïݼúúó5ÉRÄ2,BÓ:óê»ý,ËÐJ»Û·òàÏ=ÅÌFTµìÚC*CÅX7¾ÉEÅìÝÛò¯ÁÈËJûÍøýûå9½¼
|
||||
¶ADíݽüúïÑåñçÉõ8G·ðàÃTÆ·ðL=à*LBÞÚõYÎC4ò¶=ËEAX6ÞFJ6*ƹZ+BXIÝô±åPÎH¾ÏüýùÝA½ÜÕ0
|
||||
·9I¼ùôëñøîß±QXF¶ï*ÚÎ.2µF;D+ÞÃ+ºý,ËÐJ³F¹òæËUµ0:Ø2èÃCÄ+Â0ö´>OUýXöGHîKP,ó.JûýíI
|
||||
üöó·óÆûðßÉõX*¾ÖMõà¯Q=æF¹ñTAJÚõYÎC4ÒáÙµ9Iºúòïá÷öçÙAíH»+*²íH»ï*ÌÌSëÒÕù½8×»7Æä¿
|
||||
².è9âøýý¼øðå¹ç7/,òÅÍܺ-2;3Ï*Ï3ZYÓLòÀÞÙõû5²Ä,Ãúîß¹QíË+Ö¹öðß¹Z*8íTêÏÉÑQYIùåÜöé
|
||||
µS6âKÎÜߨýý÷ÑAÝܶ´BÖçêßÁåXö+Û¹QY3ÀÞ¹A6*ìË+2¼öܽ¿äRÎÚ8G·ñæÏEA*:8:4îâ*ÚÜÔÔQAåÌ
|
||||
»ùRRûYºîÑèØâÎμÀÝýýóÁAYÜTäQìÚ¶ïT<X6Þ×/Ƹòܽ¿äRÎ8íFºòèËÉÅÌÒMA8*èÃ-Ö¸õæÏ5-îöÚØ
|
||||
PûºùòèÛ¹÷ðíáíY½¶²6´E5+X5ÒõÞ÷ýýûñãÑAÇû/E¶¹óæ×±Å8Û¹±*ÔXÛ·öä*TAÂÛ·íÝJ±>ROµXG¸ñä
|
||||
ÛB¾îLBõÞ*FÛ¹=¹Ô³HG¸ÅÌû¸öìçͽíëõíYÚíÖÒX*+Q/èÉÆûý½¼öñãÙàòÔ·5ÅOñæÏ5Ä*ò8F*ÒU-¶Î5
|
||||
íÝJ±>RAÖ9J½+ûûñõà*âI¾³*ì9J¾.ùKV4ØUÕXû¸õïáÍõïçÙÕ½Ýýü×WîÊÓDF>R1ÁøýýøßÍIíVåâåYæ
|
||||
+ú¹¾**Z6¾/òåYÝ-ÓZ*ù+êõû5²Ä,ÓöîÛÁ19ÜB*ºõìGº÷0+À*è*FÛ¸ô.ÈNèØ¸1Ý»úôìÑÑ9íïÉÝýÜý÷
|
||||
Ù+5ÔËÌ3ÒÝ×üý½úëåÁAÙ·ÌF.E*¹Ï*Ó2=*1NZ2îû5²Ä,ó÷äëM19G»óè*¶ÛºóðóMÖYÂïJ<Ö5.óó2àÒØ
|
||||
¹úõçûøõñßѵ9I¼õýýýú×ûü.-8F;Rí±ý½ýöåÕ1Y´AG±:ôêõÀ¸;+±*ÀXÜ-ÓÞòôÏɵÌýýí½Fñ=RKåX
|
||||
â=×UõX²±6ÞÚ;XêTôO½ï+ìXÛ¸óìË=åÌñáÆ±èëã×¹õñ×Õ9YÝ»ýóÛýüýéÅ8ºïÎ-,?½ü1¿ðõóÝ11VñÜ3
|
||||
Á¶.RA@;4JæÓ5Ñ»:,.9Û¸íÝJ±>RÚÅXH¸ùà4¿ÜöLÕ1YâÖ/¹ç=éÅÉ@ʱI·óî;ºöêË+öºøê;FÇøùöHüù
|
||||
öòíÝÍýÜî½Iê3Ûå0V<É-,óúçŵÍܵÊåFÜ·ïîß¹å8H·õXç¿å¹AÍG»ôîÓÑùèãMµ9ÛõYÎC4Òý-æíݽýú
|
||||
+6.î+ïGòEÙîÖ»»öã¾CI´WôKçµYÎJö¾-úÅYݽ15MõãáYQYÛ»ööGºûòû±ýý½½9ݸY¸>LûõíùÙ1Ýüúì
|
||||
,QC¹ôÞßEÅB°B´¶î**Z/-*úü/DM¿ø¼õúßá1ÍI»ÌYݺ÷ôDzèÔé@ëÚ¹æÈ/ñóÈEåÌù°O½óºH¼ùöãáQ9I
|
||||
Õ主òÛÛÅIíçÙµíH»ûø3ùìçïýýÍÝøæÜÙýüùéѵýÜå8æSØÀ/çç-ùÀ5æH»ùÀ6âHºß0,YÝB*ñAYݹíÝJ
|
||||
±>RYA9Ûºôð×ÁåÛãÙµðÞÄVSùâ»CYÔÛú´ê̵íà¸+ñãRÍñ-ÕXÛ¹óî×ñF×ùIýF´ïà»û÷ûÛå1YIZ/¼A·ã
|
||||
õÑÅÀøúü÷Õ9íÜúçìXÐY,5À±19à±õÌÛ¹M0á0ÐÌÛæ/ÂÅXÜ·÷ܽ¿äRÎÌíG»óöãÑõÌAÒR¯àÈI=Mô»MIHê
|
||||
÷ïë×ÛµïÇ5¹ÄSìHÝRòß¼óìÛUåWñýÝI»îÄ;ùâáÛååI½ü÷X¼´íùÕì9ÝQåÍݼ÷óëÑõÈÓOà0<RÁö¶Ü¹÷
|
||||
ðã¹QY7¾ç±µ9ÜæÃ30ÎÕ±.TÆÕË</ÐÁÁ>ç+ZQî,¾÷<NÏG/èëã±1íÙ».Û·Z1Yø.¸CóßHCñÞÎ-½äúÖÝ0W
|
||||
ùöñ´ñO±öòóéBÂè/8ýýýýüøé¹éÃáü/êúøüX½ýùõÑIÕÛÝÕ½üHýøñáÕõí=ùñµ>UÑ4?Û¹õîß¹A2Z,¾êß
|
||||
¹A¸;À¿ð×ÑAE¿4**86ÞÛ*ÆîÉÕAKL0É·0AVO+MÝ×U·JV*»Ã,¼¯Å+6Ö±íø.?*à°²¾TÕä¿-µéQ18Bß×;
|
||||
2ôê9óJ¼-ZÕX±õ¯8Î2Z0î,,âå»éEÌH=RYRZâÞ*GóEå7ÀêåZWåÇI¹ç½SU¼Ú×ïèÜ·°äÁµ1å7ÖáNÆ8Û¹
|
||||
4÷ä@ôûÅ¿øýýñÑõGõèÎ8µîóøûýÝýÜÝÕÍüµûùñÅõôéYí6ôèÕUÛçÃü4@>RZKQ¶ÎÞÀ-54²æ1<>æÎJÀ,9
|
||||
L¿./øý½+,»5,ùï*CÌûÖÀÁ×SúÚ±ê?EAOYFL+õ×¾Sòæ×±Aߨ@µTKʾ4ÂѸóF2Q18Bß×;2ôê9óJ¸-:N
|
||||
çÛæåÑ,OêWïÛHð²C¿ø¹:ÉÔÔFÓÞ·ìëHº7»4ÓÈÖÉëF÷ðçÇKÅôÃKA8GذíØG÷êÀ±0ÒçÔ²YÜØû÷ûßùXì÷
|
||||
½½Hõä½2C¸Ï»ÍÕõíݼô8G¼üóåÉYÍÚYÔ4?èÑ8ãÏÑ÷ðßÉAYÜB*Ï1íÃ*î¹øìë¹µÍýF/è»Ñà¾+Óíê×Ù¿;
|
||||
,J292;ÖHÁ8SJ,ã×1ݯô3@FL+·ÁSO*<÷ÇGRVï*4ÃXôêõX·ïÔã.ÅÄJ*Z½Ô-Ç?¾FøùÄJ¯óSMòÞG2îHL
|
||||
T×ÑB¹×ÑÐFÂô?RýõWÞ˱EíêÝ<.ÕËOØ×¹¹à¹ñ°ì6øðßÌE²ãÏ;åôºØéHWÛ·íë7ÁôºCÙÔËÜö÷ø»½úôë
|
||||
EíØÌEYÔìÛ̹Õñ½íÕõÝIIºúõÏùáRÅH/çìÛ»¼íܼúôãéµ9î5-Îùò÷ÑÅ9ÜB*ÐõÍÜú.ØÞçS+Æç<¾Tê×E
|
||||
.*JÝH>¶Z*é=RÊK<·Â.à+.äZÅR*Aòïßßä¾OEJÃÙó;,ØJ·ôêÉE¶Î-1Êîæ2.¹ôå¸:×,Æ3ß-G5*>ùV8Í
|
||||
Éû=DÞ×ùÞä¹ãPê¹Á5É-ÌP=RYõêE¹7½XóêµUÍFÓæØ°C¹êàY±ìÉBíæHøðìѯÉÜêØ¹ÄGÙñòÕÇÕôů½ÄV
|
||||
¸ðêáûöïûýõ½ÍÛWõÕëG»+A°»êÓåõÝݼúõÅùàPɸNÅ8H»,YÜ4*ÅõXHºøìã±Åò×ÙA4Jð×ÉÎJé*ú,*àÃ
|
||||
-Þ¾G¹É,*Ëã1RZ»+BÔZDGòÖ=ÎK.½4Ǻ::ÌGù+3ÇÉÒ¿Û°õ/ïÜ4>M.¾¿KP¶Î¶îÀ387¿ZåüT1°M*B:P5
|
||||
º6.:9êÇ6Â,óMθG¹ðMÖUI2ü-.è÷ßñå8F¹ûV¸Ó²U9õ¼F°Ò8³êåÞÓõìêÖ1ÔW¹´éƵÉôÉ·ÁPìD´Þ/ûK
|
||||
àÕ¿ÅXº¹TýQÒTïðýýÅíÛå7RÎKÇ4W¸Í¼½ÙµÍ½¼ïXóܸõôïÙµ9î5-¾ûöïÑÕYZ¾ôÑÅÍH½ø86JÜ,/âÅJ7
|
||||
´N*ÆFJ¿?4²2*°ÀÁ»²PQ,4Ö14ö7ß×AY¾G¹0ÔF¹ã8L.òÈÚê×ñã°´îÂ387ß×8Nµ*,,÷E,?RöÔ2.¿°ôê
|
||||
½Uß8FÃ/<QÁ3Ò1²BÎK¾,óÓñø0ìÊÈÔòîêÛ´àVÑØW»û¹9üõWèÖ¹áôêÏù0H×ìëÚ?¹Ú8E@ãG׻ϼÌE¿-O
|
||||
ÄûüÝýÍYÛRÃ7¹øòM±ôò3?êÝY¯N»-/8º+*XîJ¿,/<>¶Î2NB8*6Ì+ƾ,=?RY/JäÉ*T¯åXüÄH2O5*âXB
|
||||
ÖH¿¸óçÍ@îÇÛ9ÞåRÞÍË=H±6ôê±BÅã³ü2;Î2ñÖ¼ëÅà×+îñÀ387¿ZåüR1ÐE*3âö7¿à²ÐPUíû¾JÓ÷¼äÖ
|
||||
åÛ²·Þç²,ó*ù÷é1ZݼúúܲñôËÚ×?YÍÛF¹îÂÕ¸Gêõ¼.çðæàÐSùÖZß´âÖ?éäüFïÀ9ïGFSÕÅËDÏJ´íÀü
|
||||
õúýùAI×ãÁEGPÌ:A0F¶XEQÅíI½ûø÷ùA.:8:6*ùûáÕ9ݶ*ÖÕÀ+öOTÎüù>/6T÷äÌÛåJ:MOôêû¯**40´
|
||||
0Î+*ÈG¹0,¸²º°+³9Ñ9ÜR+?À×±ýÈ.;Î,µÎ¾XÝäß-¶éíòÞ¿,ÚBÀEGÆ;*âä¾µ.4¿I¹°.Ì<R0Ñ.ÖìêÁ»
|
||||
ÛDî²E¿D»úîëE+î÷òã±AëE·+GSØÁµQå¼E±å3ÌÚ»;Y¸VæóS.ø°MÂ,ñ·æÆ3Ôºçïݾ¼ÐSáÖÏüËíÝíÍýý
|
||||
½úÖ»ÈñæÀ?ÁBïÞÀ,?I¶ïÞ¿ù@*ÞSXìX¸á¾5õC»÷ôÛ5-ÞóòßÙå8Iºç3²U-+WõÂùë3>Ç4Õæøú¾Ì5Ò÷á1
|
||||
:ÝC*íÕíI¼úößÑäóÏN4Óëàßã¹ó÷,ºÅ9àËÜîÜ¿D³ÜáÅÕÍÕܯݶ@EPó.C<Òø?´÷ýû½ýûéýåݼµíøX?
|
||||
µâÊSÁäÇC=äëHºóà÷¶:Ó<»G½üú8ýæ½úüïéÅ9úUÛ*üÜ-¿DôÚQù¶9*àõø½JÎX9I»ùòëÙµ9Þ5-2,îøìÇ
|
||||
á0ìßÑWGíçëç19V=JõQîâÇêðïºë·áëVü÷×47øÊPóÈõèðEÂüðòóüïõÍýÝùåÍH°·¼FÛ=öò/*ö»ùðçÙÅ
|
||||
9IÇXÒåÆFÅíÅí?/ÚAYêL.¾î±õI2òµ2Îñ,ó85XVÖ¯KÃ07MÁ39Ì+¶Ã0;8ÚåÌHÄÌòêߨååý7ÖÉúÕÏáÂI
|
||||
ÁÈòëòÏGÝIýß¾»÷ëÚÃÑÍWÔN9õ¯UíùûíÍíÓá0Ê>Û¹ù>øÁ2=TÂ2¯àÂ8ïKÃ3=HÚ2ÏY.÷¸¼ùFCDÂ47´²R
|
||||
¯.áùAæ6/èòïѵí¿*Ú-*IåëÙÄTïD0ìáͽËúV¾ðø·Â9AôûÌ»±ø¼ØôáìKÍåÛÚYãCÌÕ¹õõ9ÅÄ1Q»QìKG
|
||||
F·*FÇ=øü<U@àB*ÝõYÎC4Ò-âÅ:I¾û0ð±ýú;êÕ0Þý/êå9J¿üú·¹îâÇ=C³XâXù÷öÛ÷XêQÍÅÚøD²çܯA
|
||||
õ×»Áôù±âÍ*ûGÆÜÅÉ8Ú@H˵íݽ-û?Eö¾+û÷52ÎݼHîI½û2üùÕÍ5FìÝNÁûüïM0÷/úü/DO¿¸»üòëѵí
|
||||
ܼ;*14:8*öÛ**YåëE·<×øÓêËÅÍÝøéÞÜå¸âáïMÌÛÖ±ÈüÎC²õÆèÄ9ELäEÖæ¶Qâ:úîÔ*FKßóEEÚÕÍHà
|
||||
Q9ÝõYÎC4ÒEâAZÝÀû*ôñ/û3úÅÎݽýúJ½ý*4òõYJA2:Þ¾+-,NæïÓá¶³UÜÈÕ¹úùï=½UAïá¼·P¼<÷óñÖ
|
||||
ÚÑ1ÌÕîØ°Cà-÷ìÆK׿1úåÍJ¾ýú7²ýüóM¶0Þ±°õ½°I¾ú6¼ý,ËÐJ/KÂ;*îî.*>F+*0M+¾ß-*î/7Hº2¯
|
||||
àÃ4ÛH¸ùð7ÛTAZÍW»üóí/ùºäá·MTE»æÇñàÞOOðEöÆ6ÌÖKÚßZÞ¿NöÀ1¹¼õIñÞÁÀ:àõYÎC4Ò8òÕÎI¿ü
|
||||
ä*FK½++8òAîII2ZÞ¾,-,6B0Þ.0N¶Z¾Ð9ÂAÌG¹NÏè󾷱ͽGVÇÕÛùë´÷Ä7EÌG.æîݾü8Æ¿-ú1îݾ+
|
||||
-,>*/0,ÂJƽ-Å0ºÝ½ü4XGýIKàµÎÝõYÎC4ÒíñµYÞ»ûôóáúøóñÅYI¼¯*ÎYV¾öùAF:.Þ-0FRîJ¾ûø÷¾
|
||||
*éñ1ðSÐì@YòíÍAÔÉ?äã·<Ú¸KËLÎݾÁ5+*úÄ8NI¼;1ã+AD¿õCÒ6½÷Áùܽ¿PSÎìÎÝ¿ü4ü=öÍ:úA0Þ
|
||||
+4.Æ:Þ¾+/°¾+/462ÎÞR*VöÎK¿.á<»ßÀ05èUQYMµø=ìÔXÇøEåó;²BZLÀ0/¸Â.38ºBÎÞ¾°:Þ÷À¾¾¯-
|
||||
2¶¶¸DÏTK?ÔäÍZK½íÝJ±>RñQZݽïÂøíݾýúû¹¯*6ZÞ½ý*,úA8Þ38N¶îJ½ùî÷»úú÷=BÎß¿XìF»óÎä¹
|
||||
å9B6û.0á*RK¿.M*æÞ¾--I/Þ½M0.ÎI½;1àYÞ¶*6æíI½,á,:´ü1û3úü/DM¿øÃ1GPÒ2¯MÃX;àÄ2?PâB
|
||||
ÏUʶ¯àÂ4CTò3?XÒRÏáÅ:ûMÇ7=<ÂÆÎKI2ÏßÂ3K°6çCøÉÅ<áÈ6SàÄ>EÌò¶,¾L¸.C,JI´.ÇÏLÃM1N¯à
|
||||
Â;1*¯Nà6*N6Ó¾Çó=ãöîùAæ6/Tú/V+**Q*ÞÝM+îýü÷ùõ9Þ¿/-*úJ½ùðãÑAYHÝQíÜ»*ù3>25<²ÆZß3
|
||||
¾Æ¾î¿B*N¶:ß¾,-*ZÞ¾+ýóE¸¶Z2Þí¿TR½¿çA0BZá2ÒZ¹ïU4>IòÅîIÁ*1Ì+¶¾/+86Æ:J¿Jî¾Ð9>BÎÞ
|
||||
¾-7Lò174FæYÝ»ýÞÜC*åQÍJ½./PV27DÚö:àC*¸RïßB*µæîKÂ/5DÂ27DÂÖîÞZ-32Z.L²,/úµZ.¾DêU
|
||||
½íÁü°=R*:*¾4>×DQå2**ô:Kâ+±ôÃ1¿*èÓ91,>æ¶Î9ÕJïÂ1VÂ+>>ì¿CH6¿ð¼+û/òQîÝC*,æ9ÞRM/2
|
||||
:Þ½++0-ö½*-8NÖZK¿XÎÝ»øðãÉQ9ëÉQYF¾ñáÅíܾü4@â15@VöZßÁ+.Îî6J2¾;F¶ÎÞ:*;2Z6>ú5»B-
|
||||
*üà<ÒÝÖ÷á,6BI¿Lôä±,¾;Ûâ¾óAÜZ/*2·¶¯ÊV?/ÍÝÑíXúà-Ì6*J½à-Æ»·ó¯Aê¿CH6¿TÁ*;8VBZRÐ5
|
||||
ºRZK¿0/<Â-7<N¶Zº<:6Øò3?PÊB;K¿üFJ½üø3êåYI9ÖíI¼,÷ûáå7üUÖZàÁ2;¸Ä2?PÚB¯Lï*¼;MÂ2
|
||||
=PÂöZ7*B6ÇJ.306ÏB-¾¹ãM²2ZÀ,óêÇ-¾Î¿0û>¹ô-M.¾îL+ºD7ê¿,Öøú,HëE?06RûHR¾·°M¸¾Þºß
|
||||
,64*.EÚBPS-òÇ3Úð+¯Åß39.*2ãX¼D¿0C0±HC¾;¾M9î4A¸òæ¯áÂ.+ß¾SJöÞ*ÊJÀ+30V¸Á,7@ÂB¯MÄ
|
||||
ô;áÅ7Q*à3L4FMÃ29DVÆ:K·R¯Î²ÖòÎÒEÊ2<»â6=PÊÎJGµ´*BûG7Þ+ãÌG,*ÎYÝR*A4*ò°*îÛ?<Þê°Ø
|
||||
.ÎèJ¿³7/¾â÷ÀD¾ò1Ø.Z8J:2½N,µ¸JæG½à-ÆGìP´Rý²,ó038FæîÞ¿,å*ºK¿-1@NRÎÞB*IÆîJ¿-5@²
|
||||
æ?P²RZÞ¼ûö×¾úøë5-Îú.ìéQÍÞ·*àÕYÝSS»æîßÂ5;Ô+ö¿+÷×ù´7×W85A³÷0D²æÎMVÆZJÁ+1°Ò¿Õ¹.
|
||||
æÎÞú.è+:Ö¿6°¸Ò*Z*ê×Q+¾äð5/î×-ÞÒLRϺÞBù/*Â51¾ßJ¿¯í*Þö¯¾?*Þ·¿8*Ê,Fο5H¾êÃ5ô³éQ
|
||||
=RñÅîÝ¿1,*+8úQ:Þ2*2B4*,8*ö¿.7HºöÎK¿Ú9Ý»ùòïÙõP*XV*ê5?óúü/6ÖZßÁ0»ß¾÷äËMQYI½18D
|
||||
ZÖR˸OÆãE½?,50í°áã×4Fæ9ßú.¸4¾Ô**·:ÞZM,¾âÇ,¶=̰Ú>ÏÅQôKξú/¿Ð,*ÊÝöÀ?2ÒIRÌG¹ð/Ö
|
||||
Í+G9ÇÞÓ8*ôAº:*JÄIÖ-±ºB,³-3HNBÔÇ2<NB0*4Ì+¾À¯*18Þ5PʶÏLÂ,+ø¼*ûóáAZݽÌÍJ¼ýö/âõ9
|
||||
îE12-*ûà.âI¿KÓÜZݸòîÓ=1ÌÝá19Ú±ÝX×ðÒJûàåîàÁ5ûKÂ.åTÍ·Îß2ÄF/è?*B6*¾îêýÀæÁË14Þ½3
|
||||
:?C*,××éT*°Ü.ÎTK¿Ó+ZÓà÷À7B²Ò¿ù;ÕE·¼¯ÖIÓ:Rð¼Ì¸èÆÂ¹G*êYö*°µ8»O;IËJÓÞÀ154VBÜS6<
|
||||
6-Bý.-á,,.À*ÚKÂ4?XÂÆ:JùõíI½µ0*øÃ-Ê+FÖ¾-?îúêïMöÎK¾òºE¶ñÞOù/U?I/È<Uò6LÊæ;8ÚCûì
|
||||
Ä23<Á,7äSÎXYÀJÉ0¾àHÁ;ÆÏ<ù5/îB+²Úü¿4ôêóõS4BÒðÛÎÞúô2ßîL.èCýÇÞ*9âê×éÓ¸@>¶¿RNàÛ8
|
||||
*ôQºÞ:2BàôQ=R1CïáÂ9?¸ÒÆI°ò¶ïáÃ7Q*L,2MÄ7Á*úMÆ:Qt>·;LÅöÎKÂ07@Âæ6HVBï¿+ο33Ì/BÁ
|
||||
.;@6Xóýô÷á¶ÐãÈ;»Þ·çÔÓù´6AÅÃÈ>PÀHçéæO°FÇÛ²Æ<GDÆ6MXÊËJݹ:FARQÆZJÀ.14Föâ*L*Fß¿-
|
||||
/<NRÎJQÖÎßÁ2=L>æû÷ñÕYI¼ûø¿¼á*¯*ÐíÝB*ÞA,¾úóáA6ÞíWÑÄ8LÈC»¸Í@?ð±ÕÍI·ÜVAUÑN³D²ÅQ
|
||||
<µÎMèß»PÒ17HºöÎßõYÎC4ÒENB;ßÀ.;<>/5Ì+¾ÁA0*60½¸Á/7TÒ¶ÏLÃTîݼ+ý/V-Þ,û+âµZݾ±*ÔÍ
|
||||
J½ýè*ºI³ÝÐëáöðQõDóäÅ5MÀVæëKñ/U>RÈ.÷HºL+²ºùQÅF¯MÂ79°ºöû5²Ä,ó-3<FRîJÀ-ãÞÀ±*´îJ
|
||||
¿.M.à.âÞÀ+*üZàÂ474úåÍðùåYݼüX6ÞVÞ¿+*¼ï+Ì9Û±èÒ×ÑÆÐõÊè>äÄ8±Èò-éGñÃTÐMÃFÎH¸ôö=4
|
||||
Ñà2.¾B.*>¼ý,ËÏJÛàÁ39XÂ2;Lζ0*9LÊB;àM-Þ4E´.çÏLÀ+ÑHZK¿-+@6¶Î-²B:K¾0+<N+7,6=*+á
|
||||
*úIºù8ÜMå:O½·ñPÉ47ÌFç1ÌÁô5>NÃ,·J»öâßòYâÅH°MÇ6M°>ÇïùAæ6/4=°âÆïà=-:5AH×*ÝÆ¯MÄ6
|
||||
EÀ>çOÄòBÏKÁ/5DÁ/3@6*B425B9¶ï*XZܽ4=èéQÏÉFSÐá½ûD¸òýâ?á?T<L¿Ú9H¸îòß1ÐN5S°âÇ;*J
|
||||
ðùAæ6/è7<ÂÆÎKÀ17<Á090°Ì+*Â?ËìîKÁ/;°êÖÏYÂÆZJ½,ý+.ýè*:J¾û0øU-:ý0Hö*ÝQÌHÁ9Aèáå1
|
||||
°6×ïÜ»7?ؼïÈçD,ó½ôæ·ñäDÃ4ÛMÄ9A¼âö¯àõYÎC4>G²ÆZ¾ñ×+6¾Ì+¶À0=Tê¶ÏLÁNîݽ;ÌQ,¾úû5ö
|
||||
æ-à+ÚܲðöCêRZF9åÎåË,ñ?úåçOùÓT<LÁ,÷H¹îÖKñUJÂ@ïàÃ7Q*ܽ¿äRÎPÏKÁ0å*JàRåB*¶B0Þ;P²
|
||||
æîKÂ/5øÂ5C´ò¶ïK¿X:Þ¾*/,.öÍ9.2:J¿ý*,V1*üä.à*ºH°ëîûÑÖïHÕ´ÎåÊ4+ø¹åÙ7áÓTÑMÆ.·H¸ð
|
||||
Ò¿MÉIÀ8ïßÄ6G´úÖïùAæ>/4<Ü5*϶¯6¾RÒB4Þ=PâæÏáÅ8GTÃ018NÆZ2¾:FB,*.Ô*Ê-ÚB+ÕÕÉ×´óøC
|
||||
úåÑËÉB¯K½óÚ÷°ÜXÏ<ã3ÐJX1ÌE³ü6ùåÎAºBïàÄ9MÈúü/DM¿¸Æ6M°.×;âÄð¯áB*ß2°Î±Ö=²6/î7IÈF
|
||||
ÇðâÇ:ÛMÃ19PºöÎßZ*¶B0Þ7P²öÎßÃ09ÀÁó+ìîß»ÙÀCáÄÌåÙ1XײíèÏñìÌ/Ñó4ÓSÈÚÎH¹îÚÇM3EIöî
|
||||
LÂ5;À.SZÜúü/DM¿À¯È*ïÇ*¾Á=*-*Ï*Ü:àÃ7C´â2ÏA>BÎJ¾,/0V*22Þ*-0>B:Þ¾¯*¯+8ÎÞ¹Ô²÷D0
|
||||
˹5åWÕRÒ°ûðà¼ë°Ã4?QÁÚÍG·ìÚCNÈDîÕâÞ2Tò2ðùAæ6/èCHÒæÎLÂ47,Ãó*@;LÃ21*Jà2*¸¶Ïá**Õ
|
||||
ÖÎÞ¿-/4Fæ.86¶ZF>:6øÂ-186ÆZ6JÖ¾1F2YÓTظ+ñâÄç4ãçÑPÌÚÓVÕRÇ4?S:íM18E¹@ßø0*@ABÀ3K
|
||||
´úü/DM¿ØÂ1=D6îò0=HÂöZLÂ2ßßöåÆ*¿öZʾRêB*J>@6÷6ý62?+-Ä+Ê-*Àñ+ïͱ*89?TÓTÛÐóȽàÂ
|
||||
3ÑOÉJÏðÒP¿àÂRÍG¶Ö7D¼LóT1ZêÓ0NöîàÅ7ݽ¿äRÎøïLÆ5GX6-î6I°òÖÏMÄ7KáR¾B¾**1SðâÇ<EPÂ
|
||||
æ9@Â2ÏKÁ27ØÁ0=D6-:19ÄÎÈÁ.å-à*úHVÑRϸ/U?õ²Ç<OÈ@ÃDãOÃèâÆ9FµêîD²,×ÈÔÍß;-Êæ;âÇ<Ù
|
||||
ÒJ/÷Ø7øBÛLÎÒ¯áÅÏËå0îÂJÛáÆ>SÐFçÏLÅB¯LÂ4;Lº2:0,...¾<Â1?0ÊÄ0Â3¶¾ÞHÇTóËä¾H4ÑNÆ:S
|
||||
ð>ȽØÒÆ9E±èÖÏ´æ6ð/ÌÞ<,ÚöÏâÇ?±=R*Î*îò.X¯¾.Ýú<.XBJ4AÆM.Ú¸³8F¶ÙÌÛZÕоÏíê×ù°5ÓFZ
|
||||
+>ù5>¶æ+ARÞL6JK¯ã¿Æß°ÌϾZ*î*,êà8-BÚ3Ê·*öBWÄú/,ó5=X¶¯LÃ3á*è+¾àæOÏRïF¾UâöïáÅ8
|
||||
=8ò-5<FÆZKÀ,÷ÞÀ-1<NÆZF¾:>BH:P:HÞ50òÔSÕÇÀÕùÔÕFS¸òRÐPÜÇ<L»èÊS=1ùÏÑP<²õ*@EÞÀ5E¼
|
||||
òBI¿ä*-ïÀ÷*K8¶ÆÀ/ÚJFÓUå¿ÆG6ÝSúÚ±ê×YÇ8?EYø,ù5>*êí·Þ/4ÖðèáXR·:á×ͳ>:6*>.JÍ/ÊLÅ
|
||||
ü*L8öÀæë<³Æú-,»ßË1æS>P6./39º¾UÚæïáÅ:GP..-E+ß*å3¾*渾ؾ,SIÆZݸXWíËèõÓø²Ç;MÆ:÷
|
||||
L¿òÎKÑ0ÌH4çÏGÒÜó5L2+¾0A¸.ç¯Ì,ÓD+ú¹ÜNàÞ*E2àÅÞ±,8*¾FêÉBæÎYJJ³¾øPÃ+-TÝÅ5ÆÛ/Û8ÚK
|
||||
ÛJ2¾¹ÉJÈE/ÝÖ±ÅÔû>2àôÃQFI*ÅLA¹ô¹ÕZQ¾É±9¼-¹àÎÄ@ã,ôARîÎ-XÎJZ=¶·Ð>1>DLØ<::JìZ¸,-
|
||||
1´¾ZE·Fźº9,Ã5?°Ò¶ï7¿@»Ü¶*áæïMÆKÎæZß¿.5ij,Á10J2D6ÓV-2+/0áBûPãÛµÌøÒç;½Òæ:K¾øâ
|
||||
·áéη±åÍMвSUåî7NÖZR¿<ÂæïMÆ9ñ=æ×NãüÅÀ±VÐ10BÃS+Þ302,ÎW×ýG7Þ¿+ÀC*O/JPÉ*TË.ÆÎ*,
|
||||
/48è*2**QÅ*à.:ÐHÞ7¿S@ÆJ*º¿ðê×Aµ¾»0@ÇFL,ê-Ð6;JBÁ¯½¿,1Gî,/6ìP´RISÈT¾*À-*22¾5øö
|
||||
îZ±¯¾9Þßè³ôçùö.êñÆÅõKÎ,ðáÁ*BX.8M*úáÅ:QÔV×<OïÆ¯òÒVÂB0Þ=T¶¯LÄ3C<Â59Ä+Â-¶Ã2=4.
|
||||
çõ±ìXÒ@E´ðâ¿=Åìç-17D³,JG;PѸW-åíß¿Á¾,úÆÐâÈ=ñ=æ°*Ùê**ÙÃ+âF*-1°çÖÕPÅè/±Ä+æ/*Â5
|
||||
1¾ß/¸H>æ==*2à°9ò²,.*00@û+ôDGòÖÁ+¹õñD¹ôÀI?åü,/8¸Þ/4BïÀ»ë¸Ð>Á*ñ//*-+¶JLð<³Ò0îó
|
||||
ÕÙ÷ßX7ØæÆµMÎ:°Æñ¿+ÎÆ:MÌ.2Æ:M-À+âáÆMÎÚðMÄ4ATÚö*I96*KâöîÃ-öÂ<å¸ì8CSÁìVÎC²äÊCáÄ
|
||||
å·á0ÌF».OàÎTóÈP8HÂQÞ*IÔ>ç<ãN/è4A*J²¯*31ÞßÃSÐ?*JÜ=RJH=¿È0Ô<È0Û<A¹ôº×Ê.¶P¶¾ÑßÌ
|
||||
»²P;È1RîÐ-ìN+6½LØM8/.=*/+¶M¶ôã5Úæ+CÜJ*â.ÞÕ;RãR;MÄ6A0+Â-³0,¾Ä¯+Z¯6¾µú2°NÆ9?H
|
||||
N/5<F-î03@Vö:KÁ.í6¾A.çÓ°ôØãÈÒ.5ü±´æË**Å=ÅÌG».GèâQç4ÄWÚº+5øÀ25@V2;K¶¯NÆ<KäSÎ
|
||||
¸»7³L²2I6J;+¸¯ÈX+¾ß**.弿*ÆGDJU+Æ÷<¾Tå.øÞ/83¾°Å³¿ëðUÍòÞ³,¶Â·VÝôM;¹óHûç,HÃÌá
|
||||
ÌÛö+ú0/X¸ÞÃ>BñæU4·Ð>¯*ó/M*/+öêFïCáFö*°ìîÇ-È÷K,D-¿0µÀÃMÌÏÍï*1F¸HZ.4M¸ÂöÎß:R±æ
|
||||
:KÁïÇK͵6È7ÈÚÙÚóÙEÁ0ºKÀ*Í·,ÒQ9õ-ÆÎLÆBÇÀO»Ké´XH¿1ðD6D.TLÄÊÎJQ*Òà:ãÛ,Î@B¾.B¶òN
|
||||
@ÛÜ.¿@7*ÃÛIÞZDJ½ÍоK?íá/M*-*1XîÆ*>¹îÖD>2ðN1X=¾YÝäß-¶é×±Î,¸²âìéë-÷¶¿,AGîL46,+
|
||||
MêÜCÈE/¶++ö¹Ï,T.A1Î//âFÞç½MÎÐ;á3¾-*B1¶°+Ï+;ÎBÐáÂ07ÄN4Á21JWKÁ.;Ä+¾Â+Ï8ïÞÂÏɽä
|
||||
·ÎINÖîßÁ.54òôÄÓàÂSÑQϺÓUÜʳEõÌI:ö¾6À5²KÂ6OÄ>CG¿Üúæ7ÑÆVÇH71NÊ+éÖÁQJÎLðâ3*3Sð¿
|
||||
-*Ç-*<ðâ¸*Q÷ðOÉ@S¸Úæ?°ÚRïLÄ6?ÀÃ+*X¯áÃ4?´ÒR¯Z¾°´IÕPÄ5é0À-FMÁúä³ÑPëDü0ÌÛ¼*1H6S
|
||||
R°*6á1²áÇBWàº×Ã.T2ÁÈÄ-ü@0ÚAR.S°NÇ;1*à+ÀIå,À+,+Jã2RT·ÐáJQOÖîJÁ.C0½8¼,ų*ìðñù²
|
||||
;HêB;R6J»;*HÏß¿-1<²ö:Oʶï¶JÞ*²V°2,O?±ÔÊØJ½ö@FARØÆ¯á¶LçÖ¯B*²6-*6í6*¾6:ó<M´Êöî
|
||||
ß¾8ÛPÎI±àN2:K¹æZßÀ¯*êîß¿ÔíY³B8*4Ä/F**ZÖ,:2îÂ,8NJ*¾Pê¶ÐNÈ:ݽ¿äRÎìÏáÅ7G´úæ;´òæ
|
||||
¯áį+ÎïºJV¾¹6SðâÇ>O¸ò3=HNØÖ±âÁCíÚPÃèVBZÂÐEÒöZáÈ÷ë@N0=Hº;**¯>¾KÂö:à,¾Z¾5<¶:*è
|
||||
îLÅ>MÔúü/DS¿ÀÃKÎÏÎÜïàÄ7C°êæÏZâ¶BÈD¸.C.èQÀâB;LÀ¶Åùðâ»åôº÷ZÝ8Óç¿+/DºBÏäÊëÜàÁ1M
|
||||
EáDá+äG-,Jà¶æ<R¶¶P:2ZÂ:ä4GÌ>·ÐâõYÎC4ÒÙ>ÇðNÉ<WÌò?OÐF×<OÈ>OãDZ*;+ì°PËCµàN3ÐÁê2
|
||||
Ö÷ôðáÁõéÏ-Aë·ð×R»èÀ3?4Ûý´M*÷J*ÂáÅ?*ï*+*ÞïVJ>*³ú毾¾²úB¾ÞI¸>ç<QÊDY¼ý,ËÏJËNÆ<M
|
||||
H2¾+*<C<â¸*93ðáÇ@WغçS¼âÆ;OàçÝùùù÷ÝÕÍܹòìF´æÃëÀÓøÏéOR¯L»0A°>6AP³*ÌÏáÅ>Yܲçðù
|
||||
Aæ6.4%%%
|
||||
d
|
||||
643 83[1 0 0 1 0 0]sl 8 mask 0 166 di
|
||||
/mask 6723 string uc
|
||||
*Þä**¼ºýÎöüÉõûIòù½æõýÎíýKÝýÁ¼ý1ûü9øûIòù½æõýÎíýKEPR*%
|
||||
d
|
||||
/sl 53369 string uc
|
||||
äÕí´ê9+¾Ñ,*ÐMÆ8O¸.9Í.¾º.÷L,ÚMÇ?WØVC°MͶ;äãñWé±èÛíõÍݽûùãùõä¹ÕäºAëÑXÎKº+;Xʶ;
|
||||
KÒB¯.*RV/21:3=H¾*ÉR;àÃã-¼;MÅ:Wĺ·ÐöýýÈGܽ/FR*éäÕYUQ/DÖ÷¾FY.Þ3ĸÅ:SÐN·<âÃH¯àÚ
|
||||
ÚëÕÃ,ý°ÅÖúüýýùõüùÑ9ÍûôèÆGì×±¹86öYLÇ2¯ÒÑJºB0*:@/Fö¾¿¾5-Þ6GÈF·ðNÈíÝJ±>R;ç¯/¾½
|
||||
6÷ïâÅ:IȲ9KÀ6·0ÞF¼>ç°*¾ÉêRÏJáêñYóN**ö*å=ÀÅ»¼ýýýýíÝݺI½ÛµëÓCÑÓèû?.RZàÃ4?Ô+*Ã1
|
||||
**@H2*ÆöJ*FMÄ=MÜV÷ðâõYÎC4Òϲ×ÐãU-2**>1+ºãÈCµèÚS=PA÷;ÞÞèñáê+*6*æ5µRçUÛ½:²BÒÕQ
|
||||
í»õëÌ÷ÔÓT3LÒÆ;âæU*·2îâ+T,è+FâÈ@±èêCÑäõYÎC4ÒÚ>·,¾R̲÷J**ã2æD*°÷°ä**µCÐMÂÂßñÍ2
|
||||
Z>¿¸**.ÆÞñSNðÃÎìI½øóÙAí»Ø-ÜÉÓKÂ-9¸â8E¸úÖ¯áÅß*âïMÄ?*18¾Mà·±PËBݽ¿äRÎ8ÐMÆ9K¼ú
|
||||
2оòB0*H@**Æ-+HÐNÈ?UÐ.·;UÒööùûîFÚ:æC*â+2?ÊÙUKûýüöëÁý»ù±IºAS¾,5TÒæ>PÊRïÇ*BÂ4=
|
||||
X6-Z4;´>CLUTÔúü/DM¿¸È8U¼N÷;OÆZð6J.¾É.·°âÇ;OÄò=Sغ3ÑOÇ8·MÆÇåõÍãÞ?¿¸**0öÞÁéâø±
|
||||
Îìݽüõë¹QìÙÑH6óß¿1?´>7CH**ë¶;áÄ7AÔ*BÅ@Uä6+öü/DM¿ØÅ9K¼6*¾:IÀ.3°6*ºî*ü;âÆ<SØV
|
||||
·Ð½ÒRÏMãõûY,+ì3²2¾HÞKÆÓÕòQKûýýûïÙåXF³IVBYÏ01DÒRATÒRïà±*;*8ïàÂ:UÔ²ç<Êúü/DO¿ø
|
||||
ËBµÜÒ÷ÐPÊ;*òÐäÊï*HÑäÊC¯äÊSÑñêçÑQÍBUÌÂDKáYÍæç¾Ì+æ,P2¯ñT¼;ÒùÝý¼»ôá¹ÍôÂÉ´úR<ãÇ>
|
||||
ûâÈ=QtV·<ã×*¼÷±QÏE½ôúü/DM¿àÆ>MÈ6CÔROÔ6SÐâDZ*J°F¾É>×ÐOÊC¯Øò;G¸NSؼñ¼Ì5Ò-*J¾-<
|
||||
¾ÈËW.óýýñÅݼ¸ïÚ;ôäNC´6**8U+À*úàÆAµà²÷<åõYÎC4ÒØ6×<âÈ;M*àJKãÆæ4*I·ðâÉA¯äÂçYÈúÖ
|
||||
;åè÷KÁD32²2*1Þ¾ÂζÊõÍ¿¸ýüóÑQíÜù×ïÍ;*î¯>J7*ÁÒçðäÈE¯¼ý,ËÏJ¯NÇ;QÄF-*:M,,,0+*âÖ*
|
||||
I×<äÉ@S¼âR7ØÂ»ÝîA·2²2*5öJ/мÁ÷1ÀðûôáͽÜóà-*Z6?Xê¶0¾MÔÊç°PÉDݽ¿äRÎò°NÉ=*R°ãÆ?
|
||||
OÌ*2È=M*ÚNÈ>YÜÊ·±P½S<N¾ºÝñ½4ÈNMÎK*̾Â<ÒîüýÍIÙAÝÜ·Õ9GÔ*ÞÄ:EÄêB0¾Mð·=äÌ@ݽ¿äR
|
||||
Î<ÑäÁ+B*B1:G»0*¶ÌCUH>ʼýÆZMP,7,î9*üýýÜúõñ»öÓ<WÐN·°ãÆê2WI×<ãÊF¿ð6T¶üúü/DM¿øË<
|
||||
µÔÒ·<äÇX=OË@±ÔÊçÐáV3ÑOÉ?WÜòE·ðâS=PÈ<?Lâöùé=;C¿¸9AýýÝÝH»ùØESÆ;OÀF+î=KÈú¶<NÈ??
|
||||
QËI³üº÷û5²Ä,ó;QÄNCÐâÆ=ÓNÇ<QtFC8Z<ÞLÈN3±*¾ÙF3°áÁÁëùAä>NPμOèýýéÅ9YHÍüǯáÄ7A0,
|
||||
*Ä?*ì;ãÉD¯èÂCñùAæ6/è±ÌÊC°PÈBODÊ>YÌF-ZAUØNC0JTì6*îDWÈ6çÏñûýÃÓ+Ç3Ò-ÈúýýûôëÍõÒ¹
|
||||
´ú2ðMÆ8»âÅ;GÄêRðMY×°åÊH¯øÊ÷û5²Ä,ó:UÀVC°ãÆ=WâÈ;SÄ*JÇ<SÈFC,ÞUÜÂCÑäÉ<GèÄ:=ÝÅYS°
|
||||
+ó*BëüýýúõñÏúÝ17´6**8å*FáÄ6GÀV÷ÐP¾C,îû5²Ä,óI³0Óç=QÎEM*FQÎF½ìêÇñQæC,Þ½4?TòæÍF
|
||||
¯TÊ<IíY9S´,óÞîýýYI»ùñ;ZÉBYäº:*Þ°.¾áâçñæÎN¿</Jݽ¿äRÎ>ÐOÇÅ,JTÌF+*>-*ÚOËEµìº·<N
|
||||
óÆ<ñùÚùâPÎÜÊýýýå½IíGãûæï¿**ÆÓ*H°NËB¹àò3=êúü/DM¿¸Ë@³ÔÊ×°PÉ:±6¾á²3±ãÊA¯ÜòBWÜÊÇ
|
||||
=QÌG»äÈ;GäÂ˽²¾=G¿øýýùáQý¼¹Ù8ðNÇ;KÄ.·ð.¾½>C<äÊI³,OC½äúü/DM¿øÇ@KØF×°NḚ́OÇ?SÐ
|
||||
>×<ÓNS°.¾ÑVCÑPËDYÄâ8ù+ôH½W@Ç/Ò9ÆôýýýðÛÉõâá¸úöÏMÅ8ßá5+î<OäÂ×=äÌAKåõYÎC4Òæ²·,*
|
||||
±ÜÊçÐäB*È3±äB*Å3±PËF¹øúç±Ø>·Îïúü×,>Ç3ÒY¶õýýü÷éÝõßÓ¸>C<OÇ=3âÈ;á*FNÈ;³ä.T=RØC²
|
||||
äõYÎC4Òíò·=RËH·üNF¹ðº°*ì±åÌH»ü>¸Ò9û3±äÁÆëíA7³NPÎXááýýûÍ1½Ü+õØðãöV·3±Ò@Þ6ÙóE·
|
||||
07ȲæÐJ¿æõYÎS4>ÚF+ZDYèÂ÷P*Jä**Ý×±åÍIµØ>S7DÌýÝÞ4Ç3ÒU¿øý½ûôéÙõáÝÀN·°OÇ?ûNÉ;WȲ
|
||||
3ðOI·±äÎGÁä>4°¼ý,ËÏJ/OÉA,:ìæRÔF×°7¾ÏVCñä**µ3ðáÁÈ÷ýí0BNPÎÜåïýýõÁ1IÜíHTïáÅ9K¸º
|
||||
<*Ü<OÍB»Üú÷<òúü/DM¿àÌ@¹ÜâC,Þ³ÜÚ÷ÐäÉD¯øËB³äÒCñPÌìÑåÍI³ÜF·<´ÌýÝÖ-Ç3ÒADûýýúôéÑQ
|
||||
¸3XFÁó@QØ>ÇÐâÉ=»ãÈI·0óC²Q;DñùAæ6/TQØVç<Oɱ*¾°â;Ò6»ò?UØÂ÷<äËEûäÊ?KÄâÆC½×9T°+ó
|
||||
*PSýýýüõí7ºÙ5I0*BÇ9K¸º:*ÜðOÍA»ìúç<úúü/DM¿¸ÑIÇôV4òRÍZ²6*3û·².¾0/T²æÏP-*FçÍGµ4
|
||||
û½¸¶>E¿øWõýýÅÝü»÷2AãÌGµÌ*¶ÍD»ðòSÑåÌ8ÓRÓNÓ4ÓDòùAæ6/èUìVS±OË>³øÈ@UزCÑãÊÜÐãÉC
|
||||
YܲCÑíâÇÑPÈ:Iè²Õù-I>E¿øYûýõÅýGºóÌ@NÆ:OÄ.3ÐÊúB0ÞGÀúÖ°PÍE½DÊIYüúü/DM¿ØÌC½Ü6-îC
|
||||
·àò3=QÊGGäËC·äÒS±Qç3²*¾íÊçÐUîø7ÙÇËJ»ÖýýýáYíܲ/ذãÈ>WÄ*ÖÉ>YÌ6+î@¿ø>èÑæÌLKåõYÎ
|
||||
C4ÒÕÚçÐäÈDWè>@±Ì*¾É?*ìÐãËFµðâÇÑõÚS<¯÷ûí¼ÇVJ»À¶ýýåQýGºYºÐNÇ;KÀ>çMÄ6·<âÆ:Q¸ÆC·
|
||||
üÒ÷=åÍ<ñåõYÎC4Ò-Ë÷ñãÍD½àòH³ðÚ×±PÍESåËFM,ºRÎH¹,7DÒRÓÆÖ»üNÉNPÎHMáýýùÕ9ÝÜQÄ÷ÐOÉ
|
||||
>¯ÔÂASÜNC±.¾ÝÊSòQÏHÅø>N»¼ý,ËÏJ?QÏFÃô6øL*.RÍ1,¾Â4GD.ÞÅ<G4ðíøýQÀ8Ç3Ò-¿÷ýýùîÙ½å
|
||||
ÂYèÚ·ñPËÅ,ÞÁ0ODÒçÎQ¿ÀÐíÝJ±>R,Dñå2*õCÑQËH³ôÒǺìêC,Þµð.øñQÍIÁ¸ÎKMPÌÝýH3Ç3Òµïøý
|
||||
½üóçÙåÄUغ3±ãÉ;*,=ã4*ÍCòQÏHÃøF4¸¼ý,ËÏJGäËB¹àÒ3ÑPµS=äÊA³äÚç¯äÂC±PËE¹¸ÌF·øòç=ã
|
||||
ßÔüý²2<=R9áôýýôßÁ1íý¼FÇðâÇ<Q4Ç>M*ºOÇ=Mìê3ÒQú×±æÌIݽ¿äRÎð±ä3*ïSñ¿*öÌD¹ìê·=QÌü
|
||||
ñQÎI½0/4>ÔÊF½ýUÇ/Ò-öÑ÷ýýøåÑõó-Ų×ðOÉB»ãÉ?¯ÐÂ×°PY·ÑäÎIÃüFȸ8ë÷û5²Ä,óC»äÚC±åÊE
|
||||
MIûPËF³ìÚÇÑPÕ·±åÌI½øòC0*±@P9üÑê.è/ËüýI»õïáÙÞ=SÔF+*=M+úNÉ=WÜòç±æ2*,è=æõYÎC4Ò;
|
||||
/Ȳæ3*CTòÓ*BÐPÉD7*ÞOË,ã6I·N×3ÒÍ,ýý½ûòé¹A½µÄÚøÌI¹ôâ÷=åÌÌ=æÌLÃL³T?<ËØ²èÏíÝJ±>R
|
||||
ÂS=PÌCÍ.*çÒ·±/*ðò×±QÍÁÇÖñ¯øÅñâPÎ85üýýç¹AíCûN·ðÇ*öÈ=UÈV3ÑåÌ6ÒQÎGÁô6øû5²Ä,óJ±,
|
||||
Ó3ÒäÍE9.¾öâ÷J*úQÍI½,?T²Põ3Ø»îß´²B:Ѿø+àüýíýHûùâ·QÊ/*îð.*â6+îI»4/Ø>æÐHOSÍíÝJ±
|
||||
>RÍç±äÍC·äâS²ôF-*EM*ÂäË/*̱QÍICàÃûÙÙåÍõÚFJ@.ÆÄJG,³ýýùQýG»À6=ã-**?-*úâÈ=Wàòç=
|
||||
æ2*4رæõYÎC4Ò4ÛS²åÎFQ*6RÌJ¹Ì*¾Í;*Þ±*¾-7DÒNÝØCMõùóõí9·CDEJÀN4èEÒùýI½ùòíÙâC±èº
|
||||
@*¼=æÎOÃD7è>/OøñùAæ6/T¾47躰*A-ÞÃÌê鸳ðêÓùøúùùýÝ?ÕCÀáÀ64èYFúýý¼÷îå¹áF·ðê×=QÌ
|
||||
æ=åÌF»Ä/¶ÎKË<»¸òSÐ2óRÑüý½ýïÊÎJGåÍE¿ôú·ñåD*ïDZ6¾óòç±åD*íç°YèÕÕ¹íì×ÅY9IýûüáMÒá
|
||||
ìòJîÚJG2ÊýýéQ½¼»QÚ<PÊB±àÂÇX亷0*³ä>D²ç3*,Ø>æõYÎC4ÒæúC,¾¸ìò·0J´ô6+îF·ôâÇ=åÌFK
|
||||
åZ*I3ÕZåâÕ=ÍìÑÁÝXHºûûùñý÷ÑH¸áL¿Ù,óVÚüý½½ºöðûYÆ<SÔ²ç°OTçðãZ*µ×°PÍL¿074Å,74²æõ
|
||||
YÎC4>-ó÷ÑåÍF½Ä+Â.ÖÌI»øºZ*î±>¾ýêçÐäÈYUAõèÕ±íHܺøóûºùøûñýYýLù.0Ä+1/èñJüí½ü÷òçù
|
||||
á<CÐÊC=PÊôÐPÊDQ+úäÏKÇ0³D>S4Ø>æõYÎC4>÷.ȱ.*ô.è=æÍ³Î=Î;*14Þ»ø>÷ÏOÞͯùîêÓÉíXܸ÷
|
||||
ìG¼ùúûùýIÙ»ºâäñ,óÈÎýõ9ÝùöïGôÖF³èÊ÷<P·3±*¾Ýº3ÑåÎNÃ@/Lå*ÆRýýÝý¶äQÎì²æÑLË0WTÒA
|
||||
Gè>SÒNË8óOÅ<GȲRÎJOæÏ-+¯*X±MÇF5ÕôËÛÉýÌûø÷óéÙõöóíýíݽñ0WÎC9.F;RI/ýýüõáÕA9YÁ7T
|
||||
òå×V-ØñQÌ;ØHòçÑRÍP³D??ËèòùAæ6/èµüúC>QÍD¹,Ë+ÄH>æÍI½øê×ÑéFǯâÎR»ì.G5*ÚQÌ:;ÈúÇC
|
||||
³å7ú¸òòÕÕ1íñÉíÝIýýý÷Méî:»Sï¾JûÓýýõÙA½Ü¹ÑË@åÌï1ÌÑPÊAWܲCÑÝê3>çÎNÁ8³KÁ0Gøû5²Ä,
|
||||
óI»</TòåÍEëQÍNÃÄ@¸ÏL½ð>¸ÒM½VÏîæ´Ó4ËCVJ¼ü6BóH½¼Ò×ñ¯åäÛú÷îãѽ9½¼ÅIݽûýûÝYê*<4á
|
||||
ß+¿¸üóãÙIýEìËð=æJÂJRÝCÑPÊDµ<?èÉ<³D²çÎP¿¼ý,ËÏJ»åÎKÅ074òQõCÒRÐJ¿ü.èµÐ>Çô°ÍóH¸ã
|
||||
ÙSż5ÓQËüðäÍG»ôòÇÑùò·ÏàÆºÉMõîÓÅõÜHúúîW¼÷ûùÅÀ¸ùÄÝ?¸,KÕýü½üöîçÍYËÍYÁçðãÎLÁ,óK½
|
||||
ôÒS±äÌJá³Q´OæÎíÝJ±>RµTòSÏRÅHGèË@»È²çÍE³øÆ.»ð?7EñìÌG°àÁG5µFÔðâCòPÍMM?ßæ2*ÅBøø
|
||||
ñéßÉ1íçÙYíüûúõ¿¹÷ôóýý9ÜèZHѽýùëѵýÜͼA6KÅ<¹HóOÍHøÒRÍK·æÑOÏ@ø².*2ûü/DM¿<ÐOÇ
|
||||
0BÌ*¶ÒO½ì.÷;ã¼ÜðRÞÑK-åûØåÌê¶íåØ/ÉóWKäêC=RÐMûRÏOWȵݻµÕÜFºõöãÝ1íóÁ16Ù³óê÷ùúýý
|
||||
ùíݽ¼÷¼H»øÉáWD´;ßò3³+¾E³ØòSÒRÑL/SÁ@âçÑíÝJ±>R94ÒæÎO¿<?èÉ,ã÷<âÃ@3øÇ6·ü?GÖïáÜB´
|
||||
íàµQôVÖ-̺?áÂ9OàòCWô.Øð°ûýû¼ôÙWáP8¼»½9IüøÕÅAÌë5Uµìݼøù÷¹ûñéÙQ½Ö×NDËáËDÃ@7ÕOO
|
||||
É87-¾OË@WT²>A2ûü/DM¿¸ÎKÃ8?D²RÏüñãÆ6=Ôá2ÐÁÂ3A²ßÀGAôÈ3UH»DöëÏÛóé8ã¿UÆñM1ÇZOÉ3Ý
|
||||
ýýíýÑÝܸ±ÞËUùðîïáåÍÜøïüØ´ëûãAÝYÝÙ1½Hûö¹Õ/Ñ-»<Û×ñæ**M¸²çÏ;Ù²²SÏÏ*LÒçõYÎC4><?È
|
||||
²RÐ;ÎüÓà¾üä»ÑÖÏåêTØñâÏ3UôÇ3Å´úײãÖû´òÃËX²ÆXIOöÎLϱå1¿0+¶óÔùØG5C´ñìüüüûíµÅ¼ÝÍ
|
||||
ÅXýüùðéÕõí3áò÷³éÑC+åöQM¸²çÐïÍ+*à>ç¶RRøû5²Ä,óMÍ8OȲSÎQ»ñÏîìÛ5öîFÕæóìÛÆ1Iüê7µÔ
|
||||
º×òáÎ7ùâѵEýÊÕSÇH9ÝŽ¿ÅõÜÝñý½IúùøÓMôT±äºT¶³ðóû¼ûùïÁµXݼµ9¼û÷å=ÅûTÙP/È<åÐ+Íâò
|
||||
çÑ¿*ì²SÑQË<»È>Fûü/DM¿øÑQÍ@»Ø>PÍÜÕ±ßX·P.RÌ9ºCóíá¸79ôÌKµ@7C²æÈÛ³ãÐYáXìù´ÕÙóZÛÐ
|
||||
MÅÔìÕáÝHÚúûô×¹çµEðMÕÎãØü÷öùúáYݽÝÝAý¼ûð¿Ï@ÃRÇìÊS²ÎÀUÃT?TÒQÑHÃUÏX»D³.ÞùAæ6/èÃ
|
||||
<?TÒæÎ13øÉV-ÍHG×UÆÌZPÚÊSÁ¼êÖUPF×îäÕ?ÕôÏIÙÔFÙ±éäÛöòçOÕäùø±IWFóòóÙ͵íù¹õêÒK´åä
|
||||
÷¿J-é@XGýû8ýºúóÅõWØÒE/øñæÏNÅ<³NÉ@W¸4ÞË@OØ>SÐLɼý,ËÏJ+çBRYT>ãÌB=ØúçëXÄ»¸ïàÃñ¸
|
||||
ÜÄIÙ8GØðßì÷ðçÙYíÌÊØÕì6FòëàSÝôU×àüêøñàÕG°ØÇ³ÍµýݼÕGôM¿ú,DÒçÝT08¼¼úùíéï´ÁH³Ø²2
|
||||
¾>³D0JÌDG*75¾OÉ8WØòùAæ6/D,èÇ8G¸>SÍ=³¸È:·DÓU׳ìܸ¯ÜµùHHGÙñXW¸ñáÕUÑô×Cíü˸´áÞû
|
||||
¯ÉDÕÌ»úD°½8ñÛÁ@íLôëïùÅýØéÆ6E¸Ç@¹PûÉCòêÊÙðÒFÅ<Wø¾Gå+âRÐ18*ÆÄ2*ýíÝJ=>R±È>èЯ*ì
|
||||
>TÑQ½èÊ3ÐÙ.øÒìäÙ¹ÅôÅûèGºøõåKÛç×½¯Õ8û÷°åºòRåÄM½üç5ÔúÈó°Ó>5øÀø.¸úêIýý¼üïÑ;Wðú3
|
||||
ÑÍúBÐOÊFÇ<óPËHË4³èÒS+èJ*Á4óSÒó*P³TÓSݽ¿PSÎ0?TÑP-JM*úSÒLWìÒC°Oý·?Z娽ÝÄê-M¼Ø9
|
||||
ß¿DßøØZQ0Ã4ïàËX=èîÁ/¼>ö:SFø²Ê¿Q>×·ýûýýáõØçÀNRîݽ0×Þ½üD4Oز6ÒF»D0TÐTG27-21B-û
|
||||
ü/DM¿°ÐOÉ<W¸>ç3*JD4ÞÉüNCÑãÅFÍø×ÃSý0ìEZÉ8¯IÁ/E¸êAÎÍÂÇ<Ü¿EÑÙô0=H>SÏNÄ?ûèà±OÙõY
|
||||
ݽåYýüôÅÃ@²äÅç¹QíMÌKÃ4ÏLá*ÞæÎRTØòçD*±ØòSÑñ*ÞýùAæ6/DêÇÈ@G¸8¸6èÉ<OØÒåÈC¯øÉFÏà»
|
||||
6E¶ë8CUÊ.1¸VÖÎQ6öïJÔб1õºÝ¼ê¶ïæÈKGXÒPÍôó6G¼åY½ýüùÙÅô4?P-³WäöQ*¸*::D<+ÊÄS.½,Ñ
|
||||
íÝJ±Aæ<¾·æZáÎMIÈ=äÉ?YøêèýÐ0ü¹´áX»¸Ä5MرB>Z×ü;èëó¯-HèÓE8ëúïÞKµ¼òN-áü¼ý¼ûø³úðÀ
|
||||
?D-Bü¾Ã,/D²æÎMáLßæ</¯ø²*¾>»D6øû5²Ä,/Rá1+è2*Éø²TÒ;*Ó*8?èÒSÉðÊ×ÑõâÇòêàÔ¿1õÙ-IÛ
|
||||
5=KÂ>Gà¼*ûäYÍFµåÚÙòïÝÝù¼êYDúÅÏêùø×¹îÑ/µWøñRÒR³TÒQÉÜ*¾àåæ.ÕDÓTÒTÓXÓøû5²Ä,/U-4
|
||||
+èD*ÆDÖÖ6ÈÐTËØ**ÏüÊ·ÐãRRµFùõêãI½Oç70VRïëòÛGùñÕ·Á8ܸóÝ8ÕæÃíüÃËÌF½üé²RÌNÕ0**ÓÁ
|
||||
ÎôÒSÑO-JSSÑP5µ+è:RÆøû5²Ì,?QÉ0BðÐOÉ<OزçJá<*·è²²JO¾ñÊSÑOÉEËäóÅMùHüØZÑ=ÛTáÀE-Õ
|
||||
ÜCµA7øUÐ*-LNçÕTìWøïÝWM4ÌLQG+è×V½ØòæÏLÅ8OèÀ8G¸²ÒÀ;Oè>ç20Zøû5²Ä,OPÉH7ð.Q-5-Lå4
|
||||
ãçÑ++OÎ1BÞÁèÚ·ÑPÍYû¸ãÙÃ1AëÚ¸âܵ²íÃG¹?ØÏ9òÄ:WæÞ¯¹ô¼ñHO÷ÐæÏL3SÑPÉJ/èÑßÌÁβ>çÏï
|
||||
2Á+´²SÐOݽ¿äRÎÎòJÑB»¸4JÈD7ùF7B·642D2,óQËDWȱPÉE»QлAÝä7G¹Ý7EõßVíïÉåS¼ËêÙ´ã¿í
|
||||
àÒN·Ð.D.TÄ<7WB./RQ6ÀJÉIå*¾æ¯æõYÎC4ÒEÃ4?èÒTÑPOTÕT7/:RÍÌ/6º8PÀÒ/*+.8óSÍE¹´ÂçÑE
|
||||
ÃUö³ìè×5õ¾7HÚÈCµçÇ·íÙO¿<Gøò+Ò¸ÑSÓTÛ¸ÓèÓÐ?éÆ.À4ÓçÎæ2*¸è>è¯*Røû5²È,OOÏ@Gä>TÑÄ¿
|
||||
ÌÀÌÁÈÐPÅ7MHM<ãçÐÏÆ=ÈX±PË9±ô.UÕ1üV¹øèÁG¹äÁõÈÓèÑâÌOÖ+/>?èÒ+ÎVóTÔVÕXÛD:ÉÊLWD8+Ç
|
||||
DO4?ç:.Røû5²Ä,?MÇÄ*¾Ð-*ßÌò>èÑKÍâ>çÏ-*Ð>ç¿¿×¾¸¾î*A4±PÌ=¹ìÊèã<ÄÛBìÕF½¸ËKµì>ȲS
|
||||
Ðä>TÑO19,*8>ÞF*B7°ÞLÁ0/4òRÏ+2JòùAæ6/èÈ8WTòú°:<:W.óRÑLÃèÒçÐN-*êRÐNÉ@¼Ä+.9öÐKÉ
|
||||
@»T±RÍH°ãËNáðÒçÐîâ÷L1¾ç**¹øòçÒ-*.?TÓ¯*:ó>ÀI»¸ÒSÏL¿@ÃKÇ4WDòùAæ6/¸Î×,ÞÈ8?¸²Z°R
|
||||
°êï/À86ÒÂ4ÐNÁ-æRÐPá0FèÑFµøÊ2±QÖCÚ:T*ÈÄC2ÑOéL1L+è<V¶¸.¸>UÎD7À¾L¿4GÈòùAæ6/ÈÒLÛ
|
||||
DÚ¶0ÞÑHÃDóèÒTÓøÓU×°ëØ³UÔÄóTÓTÁ;3TÒTÁ/P>ãèÒ+-X?UÒXÕ¸ó·>NW´2CJU×´GSBù.Sé8¾é¹+î
|
||||
WÑPWè²SÒRݽ¿äRÎäòçÑQ96¾C³ØÒç+*¸D³è¿æK*ÇD³ÛJú*>7+2BJTÍL762ç6UGòF+BT2L/R-;L5à-
|
||||
RèÓTM*ÞèR¾ÎSÑDÓSÐ+*ÎòùAæ6/èÌ@³¸²êñ6*;WȲ6J*ÞʲÂ<R7ËNSÏH7::PÉ@=RÑRËDGزF*QÃÈó
|
||||
SÔQÕ0<ÂÇ,Ò³*¿Ï;/¯ËβB>KÓ4ó6?WÃT³Æ+G?ز.ÞùAæ6/4ÈÜÆå-+BÁ.Ná;+çJæÆNÇ4ó6ÒB³D.ÎÊÎ
|
||||
Ö:8:Ä3ÓPÃT³èCÀ2¾CQÆD8ZòZø¾ÈHËD*ØZ*Ì0ÛÔVºý,ËÏJCèÏQÉLWø²îð*=GWØò6J±Ú=G³D³**WÃ
|
||||
T³RÒJ³¸B3Ì0>*Ò;*HóSÔSÕHÛ4?VGú>RÕÄ9*Ó¯ÓÁÓ³ÖâòSÓKοÎÞò+E*ÑK0íÝJ±>æÏMƸ*CØ÷ä*4*
|
||||
à+ÊTÔU×8*æÔVÕ°Û¸ó+6.@2ÓTá.L.Ì?¾VÛD2+Ò0¹0È4ÔWÅ.ÂTÔ³Õ;4Á0íÝJ±:R%%%
|
||||
d
|
||||
643 83[1 0 0 1 0 0]sl 8 mask 0 249 di
|
||||
/mask 6561 string uc
|
||||
*Þä**¼ºýÎöüÉõûIòù½æõýÎíýKÝýÁ¼ý1ûü9øûIòù½æõýÎY»÷*
|
||||
d
|
||||
/sl 52083 string uc
|
||||
äÕí´ê9+¾Ð,JóSÓNá*öçÒQÑDË4ó¿*BÒRÍHG-*PM,ºTÓS×TÛD³UÒØÓTÔS-4¾çÞ,ĸ³TÔSÕT7=:S×Ä8
|
||||
¾Ô¯.¿0îòÞß¾¿Uã¸?UÓTÑXORÑ@7ÓZQÏHÓDæJúý½ã8íÝ,8>¾³ñéÕÓÑ,ãNÍ<WÈÒçÐÑ*A,JÈD»ï*À>çÀ
|
||||
*ZD@DL4Î8TÄÉ,ÐßÑ=*,³èJä-*JQËH7WR+JPÍP7*B¼7MR>*P9.ÞùAæ6/TÎ@W+*PU+ZSÒPÍDW½6+R.
|
||||
B-2FîQÕLÛ4?éÒVççÔQá*6èÔQÑÌ2Â1ÎÓRÓ0¿4ÒPÁWKçÖ,ÎD*JÔTG<2-:OÍHBÃT¾õYÎC4Ò:»¸,¾ÉDO
|
||||
èÒçÐNM*,<Kç×¾**Kزã°6¾:»ø**àKéL3èÓQMCá*P+T2NSÑ¿/ð²è¾åD+ZDÖ¾È8G¸.ϼKÆHûü/DM¿<
|
||||
ÕTÙH2*ÆD4JÔ°G+JTÕTG1¶¾+AN:²JÓ¸Óø³éÖ=*ì³êÔ°×ÀãøÓ±û¸ÓéÓWѰóSÓTãȳUÔXËéÕYÛ@*BÔW
|
||||
ÓX7@RÓBÕJTÛLûü/DM¿øÑSÉP»4ÓSÒ,?è5-*Qå*Þç=-¶:*âÒçÐK-æòSÑSÏÄ*·ÀÓ¿ÉÌÓTÔSÑPÃèò*¾
|
||||
KÃDóè**ÈDÓè2¾J¿:Á¶Â-+*OUBܽ¿äRÎ<³çCL¿ø²>ïNò.Þ3º8.ÚJ+RØ4*ÆHîNåøÒéÑWÏ´ËèÙTëT?é
|
||||
ÑRÉÈÑQÅHãTÓ;Î1ú÷PIá<49À7ܽ¿äRδòSÑQå**ç¶¾B*³ØòSÑOÉ0-ÎÐPÍÜC*ZDºÎ0*ÇHGøòæJã,¾R
|
||||
å2*ÎDÞ3ÍPÓTÓè->ÎRÍDOزçM°¶;5°òçõYÎC4ÒN»¸,:V·0¾ÊL»øJ*ì*J·Þ38BÑRÉPW+îT͸»Ø?èÔS
|
||||
»éÒX×°Ó¸³èB¾3¾3æ**ZØê:æ*ÐÌ+Â/ÂZ¾ÐíÝJ±>RÏØ³î¯6*XëTÓèÒKǶ?UÓTÓÄ+ÆÓUå*æTÓVM*ä+R
|
||||
éÒTÅ32èÔRͶK6*YóèóéÕYÛ0**Ô-*ñ.Ñ1Z³Î²F,²G´¶Î5L³éõYÎC4ÒV»D,*ÏX»T?è2*ÆD4*ÐÜ0¾à¿
|
||||
:ÀZÀ2¾*-µ¸ÓSÓPÕPóD,*Ø0¯0¶àÒSÏL»øÂ5,-À+07À6PAâèÑíÝJ±>RW4³SÒQÍÄ+Ê,ÆÑPÍ.*@WèÒçÑ
|
||||
++á*=*ÎòÇ*.AÊ+¾Ï¯+¾ò/@ÂFÂ*>CÒ+Ú:ÁK-JØÊ:Ú*μý,ËÏJÃèÑÅ,JÐLG+¶5*ã,µÆîÈ5úçÒOÑDË4
|
||||
Óèá²¶J0=*á.Á/íÝJ±>R·4³.¾FW¸4:8¾ÌH³Ø0Z4î,,XZJ++>71*OU*8¶+67-*N9·KÇ+B»:2M0Ðòç3
|
||||
¾;-·4óùAæ6/TãT?U³êÓ;*ÌóUÔZ×Àëø³/*·ëè³+JJÞ¶¾¿óD@é2*ÚD´éÖT16à*À62êÓZ-7æUÔXQ*Né
|
||||
ÕAàZø:JZDï,7Þè+ÁõYÎC4>JË+*Þç¹0¶Õ*ÞòO;*Ñ;+µÌZ:îÈ-ìFÞùAæ6/4ÙDÓøòèB*ÕøòTÒTÍPÃ4Ô
|
||||
Ä+Ú**ÎD<ÞÔTËøò.*V7BZVÍT³øN*Ä7à-ä08Æ+NW´:TÑ8*Â0>CÎÒQ×ÄS.?Â*ºý,ËÏJÏSÒPÏH»B*õ*î
|
||||
<1Ä5Ì6J,´¶è,AÚîû5²Ä,óTË´»¸óSÕQûTÒXÏTøóSÍDóTÒRÑPÃÈÎTÓD0ÞÑP˸?èÒQ×07Â+.=¶ÓP×D
|
||||
ÓèòUÑJ³Î+UÃèóçÒR×0C*ÔK0á/Z³ºK2JÖKºà;C*Õ¿0íÝJÑ>RõTóéÓYÕ¸ÛèÙXû¸³UÔY×ÐÕWÛÄ*ÎÔWÛ
|
||||
@,Â*¾ÕÁ,¾ó:K7J¾+·Ó4´OJÆß¿7*Ôñ.¯*À?é-°JX׸7@:W×ÌSÊ*:ÖTß¼ý,ËÏJGêÑW͸»ÈóSå4?éÒW
|
||||
ÏXË4ÙPÓT?é2*ÝD³èÓTÓPãD0JÙPÛ4³éÒ+.ß.γ.*¿»ø³.¾ZÃDê*ÎH:-ØT?é¯-ÉTóèÓQâ¾ÓLã4óTÒX
|
||||
-7ä*âéÑíÝJ±>R¯4ó.*F»@*A+î*/Jè-F¶Þ/O0J³<²¶õ31Úîû5²Ä,ÃWËÀ»ø³.*¯Ãè³.*´ÃTÓTÔ=*D³
|
||||
èÓUÑPW4ÎTÓLë4óèî+ÞDÎÞÖH/鲯¿BãøÀ6ä/êèÒVÑ8E¾ÓM0²ÓTÓß0P³èÔSÉ0âSÕK0î³ÆßùAæ6/TÊT
|
||||
7+îRÍT»4óçÒQ+è3*¿D³.¾J»D:Z4:8îL*È1¾ç3¾Ù°2-¶-*1øîN*,3ÆSÓQÁ5ܽ¿äRÎÌôUØYå¸GÉÓÍó
|
||||
¸@V×Xá´ó°ßÄûD@Vׯ»VÖYÝÀ7EÔV4U@ê2*î¸,:¾ÔÌûDÞ¾ØÐãDæ*ÔH:-=ÙÓêÕQâ*à0B*Öß*M0.ôVÕ
|
||||
±*¼@VØXåTOùóùAæ6/4ËT³Tóç3*Éø>èѯ*,³è3*¶Ø*JÎLG/B8B+*RM*,406à*è,È6XÎß3CÒI>C6B6
|
||||
=*Òá/íÝJ=>Rî½å*öü/DG¿ÀýÙ0¾õIÌ×3òùÕ¾õYÎíÝJݽ¿¼ýÏöü/øû5òùAæõYÎí½,ܽ¿´åßîãLï·Ø±
|
||||
Å̲+¾õê×á3HÏÉݽ¿Xí>¾äöâ:¾Ò/¸.*²¼ý,ÛÚR*·AFC»¿ÈGðܽ¿Xë=*ã¾NÁ@ô³û·-*Û85Wæ+Îúü/¸
|
||||
¯Ë*ÆÁ;×Oöòéù½IºØ*ÞÚ½ñüGF¹É¿1ÎöùA滯ÀéòáåØîß½IQôûÕÍ@*F·êÓ±åÌëÙEðáÅäõYÎùà.ÝÔRÏ
|
||||
ÖÕ±Õ¼ËàñµIW*öøäU½PGùóÖÒRϳíÝJõÃ38TÑPÂYÑä6D³Í½½Ü*îð»YÜÊø³àËN=RíÝJõÃ3ÜTÓT¹¯µXÊ
|
||||
×NQIí¾¸úñÁQXÚCôÛß1íÝJõÃ3üéÕYUOIüùB/1Yý7*¶Ú¿F2ξÁ¼û*Þ;3FË*99üµá½9ÉÜDúîû5òÜBßÑ
|
||||
OÉ´=ò߸3ÑëêçI+*ýÈÀæñïűPYæ-¶M,µ;ÞÙ±ÝËÖìßε0Iºý,ÛAPö¸óè³òFBXß>ù·öQ*Jê2»++8*¶S
|
||||
5@Î48ܱÁî*ºöÓù>:JæÜC,Íüº´ß¶-¹ìBúîû5òÜB+,0*Zå¿í0´GÚø=*:2¾Ý¾*1î3Cì×»ÃÐX8¶86¾Áü
|
||||
;ÅØâË;îïßW1¼EÖñçÁõYÎùà.åÆ;M¹Ì+Ù/ÊRùHü.*.ÀêA:Þ+NZ»úöç4ĹJÓJ9I8+**.J*îQľºùPGæ
|
||||
JFÙ5¼öü/¸YÊZC±äÒ@.èüÌÜûù3*ÆB=YJ¾-ÎZøõíÏ?úäÙõ·÷ûùÀÓµ¾:.Þ¶íHûµ2>R5¼öü/¸YÊZSÑPû
|
||||
?.èúÈÄ»ù3*¶Ë9<°¼ËBåë¼E*OÜH¹äOÇí´6BÀëÙI×K¾¯U¼±.@E´ç¼ÁJßÕîÁõYÎùà.Å5AXUÎ1áûUJá¼
|
||||
.*̱7/.Tö¿7Ù-¾ê2,/È<áô?8RÁ7ùðP4N¿7ÕÆJM-ĹBòTß1íÝJõÃ3üöïáÈTQüEöC¿äP+HE´çÁýPXW
|
||||
SößùA滯ÀÑH»ØÐäÎ59@ÍWÝïO*î,*Ð;RÕW¹óâÅK¹ÔÂPÍPûû5òÜBßÇ9I8WVèÍ;ÉäÑÑ3åÙ:îܽåüúCó
|
||||
Öææöïâݽ¿ì5=ººùôùXÐÊø²ø6Dõ²+Þ½±QÌÙ´åÊø<ùôá½ý,ÛAP¶öüûùA·RçâÐØóº+¾»U9IDéL<-9*ú
|
||||
õYÎ5é.ZI6S/½éMÃÈ>ç,¾TÏLO͵ÀÁ8¾û±Éöü/¸GÁ*ö-<õJ**ýGOºý,Û9L*ùÉ2RZýZ<ܽ¿XR;6úøö÷
|
||||
QìÍÄIüøîYLàùAæÌïÆõYÎíÝJݽ¿¼ý,ûüýîû5òùAæõYÎíÝKܽ¿¼ý,ûü/øû4>Þº**Zñù1¾´ÖÅ-ô>¼û0
|
||||
¿TÏLÇ4/øñù1¾Äæ1éÇñäÊA.T¯àÚ3²RÎíI*¸ÀIÖåËAWØòéµ2>Ä>Ç<äËíI*ø,J>PÈ<MøóE.TE´ú2°âÇ
|
||||
íI*¸ÀIBOÈ;I¼òéµ2ÒOÊBÏàõ9*»+:°;á**ïéµ2òù9¾´×2Zóû-Jå¶.
|
||||
d
|
||||
643 81[1 0 0 1 0 0]sl 8 mask 0 332 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/personal_invitation.png
Normal file
|
After Width: | Height: | Size: 90 KiB |
683
doc/screenshot.eps
Normal file
@@ -0,0 +1,683 @@
|
||||
%!PS-Adobe-1.0
|
||||
%%BoundingBox: 0 0 569 415
|
||||
%%BoundingBox: 0 0 595 842
|
||||
%%Creator: KDE 3.1.91 (CVS >= 20030907)
|
||||
%%CreationDate: Sat Sep 20 11:23:48 2003
|
||||
%%Orientation: Portrait
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
|
||||
% that is directly related to this document. For other use of this prolog,
|
||||
% see your licensing agreement for Qt.
|
||||
/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
|
||||
/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
|
||||
/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
|
||||
/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
|
||||
pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
|
||||
d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
|
||||
false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
|
||||
0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
|
||||
LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
|
||||
gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
|
||||
SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
|
||||
bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
|
||||
0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
|
||||
exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
|
||||
ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
|
||||
eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
|
||||
64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
|
||||
i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
|
||||
putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
|
||||
1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
|
||||
/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
|
||||
colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
|
||||
QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
|
||||
QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
|
||||
add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
|
||||
{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
|
||||
imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
|
||||
where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
|
||||
/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
|
||||
DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
|
||||
/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
|
||||
h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
|
||||
DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
|
||||
pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
|
||||
WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
|
||||
1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
|
||||
if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
|
||||
2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
|
||||
RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
|
||||
exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
|
||||
BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
|
||||
add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
|
||||
6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
|
||||
}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
|
||||
D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
|
||||
add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
|
||||
ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
|
||||
0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
|
||||
MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
|
||||
{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
|
||||
ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
|
||||
D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
|
||||
w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
|
||||
200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
|
||||
x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
|
||||
-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
|
||||
ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
|
||||
NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
|
||||
D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
|
||||
x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
|
||||
ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
|
||||
div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
|
||||
B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
|
||||
/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
|
||||
exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
|
||||
-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
|
||||
/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
|
||||
maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
|
||||
fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
|
||||
dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
|
||||
definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
|
||||
D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
|
||||
MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
|
||||
stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
|
||||
1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
|
||||
exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
|
||||
showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
|
||||
pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
|
||||
/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
|
||||
ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
|
||||
D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
|
||||
|
||||
/LArr[ [] [] [ 9.305 2.791 ] [ 2.791 9.305 ] [ 2.791 2.791 ] [ 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 ] [ 4.652 2.791 2.791 2.791 2.791 ] [ 2.791 4.652 2.791 2.791 2.791 2.791 ] ] d
|
||||
/pageinit {
|
||||
35.4627 23.6418 translate
|
||||
% 185*281mm (portrait)
|
||||
0 795.224 translate 1.07463 -1.07463 scale/defM matrix CM d } d
|
||||
%%EndProlog
|
||||
%%BeginSetup
|
||||
%%EndSetup
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
QI
|
||||
%%EndPageSetup
|
||||
[1 0 0 1 -36 405]ST
|
||||
B P1
|
||||
NB
|
||||
W BC
|
||||
/mask 7488 string uc
|
||||
î½*¾î1:9*¾I±.ç7*¾Íæ;ÞÁ>9+¾Qò2ZJ¼ÂÆæ:°ê¿Ú´>á8¾ISëRÄG*9ÐØÏ6¹¾8ú1ºIÅ*-´ò2>Þ½¾ù·
|
||||
.*ZQÅÖ:M2*ýÜýMºýYùüýöûýïùýáõýÅíý9ÝýI¼ý½úüýöûýïùýáõýÅëî;%
|
||||
d
|
||||
/sl 59176 string uc
|
||||
î½¼**û¹I*<ÊϽÐ.ëíı*Íç7ó¼ðÉ+Í7Ùë+Þð4Ä»üÁÏá²ðËÞ-üØù+JåäìÝI½üçÚRùíJÔ´²û±Åëø+**
|
||||
ü/ÝÝüûYM8Í篲¾ìQ¼Cîׯ9-¾×Oݽò9ÞÄK*¶ôúüÚÝÜXÏ9J,@ÕZêñá4+ýUµNî+½Ë**6öüâÕP,*À1Ó¹
|
||||
**´°ÏÀ0Ò+ʹ½ýØW±ÎÏüµ+CE¹²;ʼñÄ<¹ê6â7çôݽ@èN*¾RÏÊõ4*.àW×RK1è*ôì9ETÔCîæ-Z+ú5¼ý
|
||||
üµYÞÏÂäø,*¶ïïëåµÍ»ö31RÔVCõ1ܲ@*îÒò?ùõ9JÇ<ÇâÆý,*ÂÓWçVK-ì*ÈëÝ»æÒÅHÒ-=îôó³øå**
|
||||
VåÉ,Rôúüû=ÔE4ïT9*¾õ»ÛG¼÷êÏIQåSí»;,RóõüÁÅä,*ÌÈܼ¯íÄÚRϵÊÕ¯VÌKWëÈä4¸î06úüPÉHçÎ
|
||||
8º¾éÕñåçÕÕýܺöì×¹ôçÍEµüºà>¾·õõõºYÞ;ëI5³+¾ÝËëFúûößUÅåÉ-ÅÛô+3JÒðù±/D5*¶TøôG˶Ì
|
||||
×°ÜêØ¸üÌ4³³é¿4Æýý9@Kº¾:ëø.-P,Ì,ßÛ?ÖýúÙ9¼ù1+*Å.ïè+ZXõûùé½74×.MäB¾ÛùÑó÷òÃ0³J-F
|
||||
½G½GÛ¸÷ûñݽíéÉåüº·ðÕÃPÊ,ܹýüùüõí9F>»**ܵµòîïíYíG<AÌú´ÛAPÞôõ1è±@*îÒòO.ÖT:BZFÊ
|
||||
GÊVC¹èèÔ-?Jýý-¸æ.22ÎýýMÜÖ¾È**ò<28OJê¿óàû½éÑ=R/¶L2Õ6Jçýý03ØLÅá;ÉZâú,R¸½ÞBÇÜæÎ
|
||||
0²¾·G*Z*îèóºïðåÕÝíY½¼ÅÝü¹ðãÅAPC¯4¶×ûùE8Õ½ýßJ²+¾I?6Ú÷õõóáåñÓù8¼ÚîÏ1R¾øõÝC7*¶T
|
||||
øV+á·R17¼M2˹ÙS±³é¿4.á÷ýýEé½»ñµûäñäÞéá-P*îPõúñQX52.ÎKµéÕ½EæÏÀ·ÀU*2,òEÏüåG9Sð
|
||||
ú·º×E9Ýõ½½Ë¾.H½îîR7ê¯úïÙ8ARûý?°Â3¯¾**7ì*EUB,-â·ËÃ6O5Ò³úü¿+É**NÙý´ÇH9ZR-@ÞÚXÛ
|
||||
Ï**îæóÒêïÞÅÉÅIFÆë½1üù¶×6ÍϾ**î>/.**=/,*¾E>îîùÍý?½üÓI5*ºQçâýY9ý»Yí»¶ìá;Ýê×R¾
|
||||
øõÅC7*¶TøÞZ8ê.0>¼Mŵýãݰ³é¿4>Fø¼ýï9ÑùIßÈÂúVS/Ç62ÎÓßüáý´¶:D¾õüÅ3ïýà=M-ä3XÃLö¾
|
||||
áÒ÷ݼRÝÃ1ñų=Úý½ASÁà.V?úGA/FFT-úRñ½è2Á5²°ýýÝAÌCJÎ6ïNB.GUµ.àZ8µÙçÊà8**=õÕÉÏä-
|
||||
Kè¾/*GáóB**öíÕ1*ÞÏé÷Ìá±ñôÜÜûùì¼»õÚ±9íCï?4ÊZÜN¿2+¶Iì2*ÚK+ìÛ½½Uóéñº**âÏõîAZD²È
|
||||
XU²×RÞôõ½×°@*2¶òÚé,×ß/Æ8íνðÃVë¸Î,1ÎæýýI>=¼à1÷ɱí8º¾üÚºøýýÁ01à*¶ûýÇøûYýé+?¾K
|
||||
³0îýÇGæÈDýÕA²½¾*åAÃû½èEGÄ3BâÜ7÷5T:øýÝS-Uõ½üTñ/DïìûýAѺÞ2ÅÀ¯ÖîÀ@ƼYóä>ô**Ô·ýÖ
|
||||
29VR1<JÚÌûä¼¼û+KÎûäóºMîÒ±YA½H»IYüøêÒ¿µºö2/8*ZP>*F-8SúöC9*¾û5üùô5µÂØ¿1ýůÏ*óí
|
||||
Y°D*îÒòóDõ±57EºÄ>QÇáèãèÔ-?¶Ð´8ÆNéøÝ,ANï+0:óýÇÄ,68Â+.FØÇýé=¸K/Á0,2ΰ¾ç*/ù½±L÷
|
||||
ó02æKE=ýQüZÊ*¿Ãýëâ¾âýýP7êãýñ/?´J¿÷üáõó¾;ì/á3¿ÎûÆLÜ2Ä/6*Dìý´ßÇAÂÒý6ZXÅÎÁAIV1Î
|
||||
I¸GýõÙ²éæÝÁ9íß½ÅìØòíý2ÜK¿5+.*ìϾJý¼NîT4¶PúöW·õìð+*Þ·Ú¿åHÜæJÏñ0XøÙÀÃ,ô¼ýÈ9±+*
|
||||
QO9Ú»Ñè>SàÉJÁOÇßÅÔ´GR¿E³Ñ9Ûüå9²Ó÷*Íýý=ûýÃûýY>»632:Þ¸ý=VùÝXLAÒîT>úýýÚàÄõIX?Yë
|
||||
ÜÞÇXI@³ÇüÕí>PÞ@»åÚZÞ¿ÚüýP7êìý»5/AZ×DMÀûýùÎ-Ķ;6-4Å.ÀÐÝ5úZB°Ô*6ÛýSÀ;Y2SýCJÛ8Z
|
||||
9ø-íYÛÌÉ-¼ØóñëÛ½õìÙIµ»D¶·,íÎÞ3FÜM+·ÜûÆÞÓ>ZÉñåÙÈHûâ-*Îóì0ÍÛEø*,ô8۵ﵿ/V>ZäùA
|
||||
ãB5*:TøÚÃ,¾µ+*T:MÄ5Wë¸Î,µèPC¸F9I=¶ñ+H¶ûý¿íU´ËÝøËB¶ûý1M,³¯ùõA±àóÀ4XÃÀýýýݼíø,
|
||||
ãñ</ÑÝíûG÷úSºÁÂ032êý<-8JáE³¾ûõÍüNU¶+éííýûéßDGZ.Kú¼/á¾à;¿J×óõüÅýVB°Ô*òÛ½O¿9Y2
|
||||
SýCÞ¿éÏôíßI¹GY@Ú³êåÕ±íì×Y½8ÙóîãüãÂ,1B÷2/öâõíWCµ8ð+*ö½.¿õÌGº¸*Hü¹òàÁAÒóYϾWìÍ
|
||||
¶àV*¾SG6ÃT?UÓ,*0+âÙWAVJ*+¸K*B;àMÁ4Ô1ö±Â*CEÒ4@K:éNJ¾*@ÒÃ2ÏW1²ZÌîR*F:J¾0ǰA¯Lµ
|
||||
¶5;KÉ<P<N<·UNJï*»5¶*/9ÒK¾Î/<òèÞï,GNRÎLÓøÛZÂ5ßBζM:DÒÛ¾ýW9È0¯ð×+ëB½½·+EÜ:Ðü±¾
|
||||
=Õ-*ÌÛÌã,ÌÙô-7Ò**î0H5ÝÚRJÖµ½Ä,6иóÔÂ5íö,*ÚBÑÞ»õPÌ»º0YG÷èËÀ3V=¾SùQÍ2¯<*îÒHøùB
|
||||
ZæÆ>ÛPÈKM¼NCòÔVÒZWD2¶Êñ4²úûù·ùø²1èΰùÁì@:á=Lè½1¶î¸,*¾±Õ±Ë¾1õûâ2ËöîËòOÃ,´Gùôí
|
||||
YO+µºüÚ?íÜ?Ü**ÅAÈæíßÅQ1ÍçQµDèϳ.9ξ+íY´ßN*Jè2¸1*ÎO@TÖA72J¾<Û,ÂNÆÎRøÔ*7úîøüFá
|
||||
/ÊöÂÆøí+ÌÝÌ9,8ÚöðæÑUõéÝÍÝÜF÷Kõ°P+ÓRÚ¶U×±Iß³µæWеJ;5ýÊ×ÔáÁÆÔ¹09Î*ÐëÍüá¾Í**Öîü
|
||||
ÍÁÓ=öî3;óÝ-*ÁÕYåó*1Hú¶ñä͹òéÝÉíÜÛ̸CѾLòëÙ?éÔíöØ1F149D°æÚ¿¼Bó41î34JèûÍQ.ö/**
|
||||
½ëÝýݲ÷.Ü3Ð0¾éÕ=ÒâF-*ï±Xä>Þ/±å´OØò¿Q*Þ/ü±õ6ATÎRKXåêû=ö./ÒLîûÏÑòÕý+Þ+8ìÝÝâZð
|
||||
øÛ×Î8º¾ñÕM󲳸.*LUÛÒS*UÕ´ã×ñUßôýô×=1ÌF¹ùÞÝU=Þ6·õíÍ·N¼»9*X:TóûùÉêÃ7Þ¹ÄKGR+ÅYÅ
|
||||
øËùô2*âÚ¼SÑ*À0ëȰãSßÙõU6½ýüê;E0Y¹G*æXâÕ-»Ö±ºÜÔÓÙÕYTJèûI¾ÉAÙ°ê¶XùÄù@@Pܽñ-¾µÔ
|
||||
CÉB´òðëÉéŸI2îïáÔ.5ÌÊ3ÚHºò68OèAYßUµÉ-¾µÓS¯CZãÔÃ=ôòû9µâú.5´ãÕí´Ç+¾±áPë×°àÀû,Ü
|
||||
ØF*úÕYÞÀ7±@ëDÞ@E8³½;2ݼ18+ùõ9*ùÞÁõ9ÅíI8ݽF¼ý¶úüïöûáïùÅáõ9Åí½,ܽF¼ý¶úüïöûáïùÅ
|
||||
áÍ4žèÐ+*ü½ê¶.*Ô6*ÞýéÄM3ãç.*¾¸<*îç.ÞC*¶RÐTãÈÓ5ÔR8Ç;KÃ2?4â2:T+R1îÅ8OÐ.T?WغAW
|
||||
Ú²ïØÃéÔ,*Õ?É@V×X߸ã¯ÓÀÓèÒSÓH¿QÏ5îS.ÞíÄMå/6ÕYÚ¼ëøã·÷àãUAYÚ¼Ã+Ê-2YÛ,*È,FB±æÐO¹
|
||||
ÄU?.?4ÒRÍP*¾Ò4¾Ø*1O4ÓWÚÀ+UÄÌOÑô4*ND²;*ü6رåÊKU´6÷ð³U.¾î,ôµáÏÅðÂÈÑRÌP·,ÎT*º>R
|
||||
ÎJÇøòç=./èÑRÏè+F>UײãèóÈ=°Ò2Ï3*Z²,*,Ã,Â+ÆLÀL.²ÏMÅ>³4?ÆJ¶ë¸,*L5Õ2*Õ?ÉÔUÖXß°/±
|
||||
×ÈÃèÒ2ÄÝ7ÅÏÄîS.Þ¿EÄ.ÞQÎH¿ð>*:è2HË-¶RÑZãà?U@OÈÆÎK¿2/4YF-î¾6/T.RÏJÁL*º;KÂ,?°Âç
|
||||
=-O4ÓV¿Ä85ÔWØZßÐ?5î4µ>ÕXÃGÄF4VÐà@ü´FàSÍL·D?Ø2O¿,óÇÒSá**2?öB0*LÃ-ÖRÐRÛ40òÔDCT
|
||||
NR;LÃ.;Mµ,*4Ó1FC*±ò2ÐP?Ÿé@XÙ¶ç¸;*óÅTÉÓWÓ´×øÙïRHË4Y>ÐJG5*2ó8*úÒVظë¸ÓÇ;B>Ø20
|
||||
Ë*ÞMÁ47¸²<*.Ó1FRâ2*¼NÇÑQÏVã4µNÚ¸ë¸<*¯ÅT5ÕUزïøÙï2¼O/*XêC´éØCѳÈÊ4ó¼*¾Ò-+¶+*Ü
|
||||
èÔZâÐOÙPWÆßÃ*¶µéÚOÑ07D±½E8ÃÑR=*ð3Ò±+2*2023*Íà,ú>V×¶çL?Ç;;ÒR.¾C<âRÎ4¾Æ¾÷*S²æ¿
|
||||
**LQ*Þ5OвÇ=RÓZÏWضG3*ËÃUÔW×´ûë¶ÒÑHÃ,³TÒ3*7OèÒRÎHË-6+:SÏJÃ,¶RÐN×ÈÃ5ÕXæèÐLÃ2Ë
|
||||
**MQ,¾6CT>0îÀ*à/ÂÏL+*Ñ*ß+HSÑSÓZßà³ÉõØÓUAYظã,ÜL*ü´FDQÏHÃD-:ÍJG3¾-*:ÍHÓ.öRÐRã
|
||||
ÐÃÉ@TVS;KÃ0C<>à2.Ã<,K1,J47T+ZÃ27L>*:8î,*º;MÆ>Wð>4@ųU@Xظçàã°ïÈÓé³F¸IQÖ±½2ÞX
|
||||
ô²ù*ç1JJ**ÆÉZNöãåDZÞ¾2ÁÖD8Þ*>ÖÀðºÞ.Þ¿6**?,QÙJÖ±½B2A6*ÛTKZ*Áé*ÇWNÜ*FøSÐVËDOT?
|
||||
T;*¸èÒSÓRÏT-JÒPÇ47*Ò0*FÔWܸ÷°ÃçÏ+*¿.S6*BD2R8¶J,±,18Î>Z²ÎºÞAøãÈ@WݼSZÛ¼ë,Äé³
|
||||
Fø»*X±Õ.*KôбÇNËôÎ2L-æ³84é+6ð?*RÜè¿Æ¾4¿á¹¶Í62-¾ßã÷ÜÛ+ÖüIÒ¯0¶²Úº÷ðóä*JÕÙ*îÚº7
|
||||
±@WD²ÞVÓRÍJ/*BSÎJ»4+:ÎPÓ,Ò*ÆRÐ8N¾Â4óÞ*XBK.¾ÑLóÈÓXãÒO=æÐ/*ÚÄMÅ5*Qó9F²àì³KáìØÍ
|
||||
,KêÌÙ÷éËF2æÞE?0Â+Óíñ¶ìW,Sì>úàÌû¿9Ê22**ÌòJ·*;9áVG*°åÜ@*?ó*ÅÆ¶Lî*8êÞ2+:Ò32ÇDÌ/
|
||||
À,*Z:Â9¿Å56-*;ÑÕD¶¹5¸¯åÜ¿0ÎíZ*âC°:**Ò3:ßJ2FèÃõ*żTÒSÏNÇØ?U/*߸OT*JºÞÏ*öSÕ°ï
|
||||
à³UÒNöR;MÄ6Ã+JNËF»°òà,XFÞ.ÞÃ-FÞ¾U@îÈJðÃ4@VÛJÕé¶òæAöðÉÀÕ5ê»ÄÒê;ó+ì2ʯD½.¾HðÉ
|
||||
S+ÆÇV,R³ò0Ì8+Î-ê×Iö¿-:ºÐ-Ó+ÀSÆ-îÁê×A1ÎJÛð¿ì7-Ê2F¾-Á**òé±,²ØÁÓ=-żß>P/*å¶¿ì5*
|
||||
¾0Àæ-.NR*Ï7ðõòS*,*Jé-¶V=:¼NÔSº4¶òÍL¿4óSÔÈAÛOÉ>UØNSZDí³4ÒQÎLÃ,óÞ*F>RÑVëØÃ5@-?
|
||||
ÇÏKÏÀXÆ;LÖ<ÄòÖ2+TÂæV*>4=*ÃX6¾:Lòî*Ìæ¾=¸òÆÐPÐVï¸7ÅÌÛ:;,KÛ.ÎÒBBH°1*ÂÌ·**ÖQ**F¹
|
||||
ô¸+*ïà+ZRû¹J*;½*ÞòWÇÞÇ8Ò0ÎS*:HR+Þ¼PîÆôP,P.8Þ¿O+¾äðC+CNRãÞÓY:ñ*6ÒA:ÝÒ4.OHæ0TË
|
||||
8ÓïÁ5-¶;:LßöUÛö8îÆOÃD?È>°ýY*¾õÕH´FSÍLÃ,Ð8*JJ¾ÙȳUAX×JOðÅ6CTâÆ;MúÛùýýí+N2Ï×*
|
||||
³>çÔ²å²/RÜÖ¿E0¶÷*0ÇÐRÎÌáÏý-¾ãMå*Øö¯ê×µZóP/ßôÀMJü:89úÞ7FÔ8Ò0Öð±2²W?ZêÕ,æÑ8îä3
|
||||
*ù3¿-¶ZÖ;+J°P¾ÂKÖúV:À,ƶ*8XÂ+70*ßôÎ?*JHÄM¸ÞºøÍ+ÅÌT?TÒÎûýÍݵÍ8»¸ô÷ýõõÏã»,OTÓ
|
||||
TÒæÒSÒà*º?Xܼ+ùOÉ>×.ç+*ÆLô,8W6D¿0Ã/¶MÆZËû½ÜTK±+K*ðæÏÁ-*ÄXÆ¿DÀò2ÐMÈÌáÏí/*Þ°ôC
|
||||
**âê×áØÞ´÷Ó-²ü3*³ãEÕ,:=Ú6ý½ã´1¼:*¾@*ÆûN18öÎÛÔß+ð¶*ÒÚ²1+ZÉ4ÌÞï¿2F¾-÷Eø¿=ÐíAüF
|
||||
5Âî,43JÒï,Gèø·Ò*ÊÚæ0Ó*ÞZ**ÀÝÂMè°?ÞMÛö8îæ½÷ðÓéA¶ýý¹õAñãáQïZ÷ø½ýâãPç4X>ܸ/+öXß
|
||||
ÌOÉ´Wد@5?RÐL*ê>RÑö/FD?².·49îÑJ3±ùýúÒ¾Î;PÎLǸ:*NTÒRQ>ÎÞî*7JÒÎÀñ¶òçEêÞÌÛ>*¿C¹
|
||||
ôÞ¯³R:â*Ëñ@Ãß¾2ÝQSJ6T÷¼ä´1¼:*¾ú¯*îN18Þϱ9V¿Æë***J3ì¶G9B+¶:-*JÃÞ+FÖ6.°ÒVWJI+Þ
|
||||
º?24**+08ãHXÎ30.ö¾2ï5ëÎø<.ز*ÒɶÂJCÖ-îÞÙ¾M3³TRÍ=ùýýöQGÆFïS6¿ÛýIøÃ¹F<QÏX/ÑôWE
|
||||
Y0ÉÒVÙ¶ïèãÁ;UÔ6ÖWÈ4CMÄ4Ï5¶òHÈÚ;>5ÔVÕ2>²¹-8»ÎJ¼.?TÂS@EäVÖUO.ÌÇÓVÑ<»àOÊ5É?3ÏLÂ
|
||||
6;ÀÄ0CLâæ·F´Ã2FBä.1*ù@14¾Êµ+ÅÄTÒTÐ8ÞÏ5ßÀÄ7FâÀýõùÝè3ÂçAÁW»±íÒ÷X605AíO6ÛЯíìÊ
|
||||
ï4ÒãR;Mñ,8û0<´Æ×»EÔNÅÅÕöýø±-»åï2ÐÒ5àÚÏ·ùåVûÛ¸âR;³¼²WÇçT0¼ËDÓWÅSJÐB°>PÎAï2±>Z
|
||||
:åïµ+ÅBT>SÑL7F¸SOèú¯âæ@Øüý½àÎðÚð3GúI*îîÇ4U³UIäöûýøðóýµíÔ>4²2Û¾Må¿â@ãýõÑ@1:Ô;
|
||||
ZõBá*¸ÄõüØ*ÝìòÔKÂôçüÍ>-ô¼F*Ñõ±N2ÏÏá0ÀáI=<åïRZÓ4+*ç,8GÓ?ºBËLOVUýýݱYµ,8ýíáÝ̺
|
||||
ØùüîIøUÜòØýY¹UÎÊÕ¹ýýï+<²îæ¹.Àú½½ìëì¶µÌÑýÝYÚWºÜ/>ÔùõUýÚBÉüüIúÊÉ2/F¸ûô±QäÚÚüýD
|
||||
ÙÔIÂ<S4*JÉúýý×ïRºó4+îíüýQüÈ5LѺÕXçÔüýY¸C½²ó½úµ±ÃçâÍ´ýͶD³Òýùý-÷N+ñññæÔZÍJõ,8
|
||||
û8ÐýùùìAã4Q=3éýîWè2àáÚÉüݷȾÈöMOÛý1WëÍ»¼ùýý¹»¿ñÍ=õýýÞIÂ@¿ÐÌL»<ãýýÍ7ÅÌTÒTÐR?
|
||||
ùýÝ9I³O9OÏR+ñRýý9ûU@äýû¸ÊÔR×DBù½Yü7Ôäûý-ÜæËÛÈÓéÑHUêöµôýý9øýýöìÍ2:QàRàøÝÅÅSM2
|
||||
HGýñõ´õú:Ðâ=Üý»»¿±âãü½ÜCý+N3A¶ïýåèùÖ+âæ;MÅ8ûë¶ÒÏLÇT?È×¾MA?OÍOÐP;-éýýÍF4Øîýíù
|
||||
ïÕ¯é0¼ü½ûÜ88ÎìûýýIÝýä5<ÕBVê¾5¶òýýùÅü21<Yú8QYýÁ½çá3í²ô½÷<».ÏàáöSøý½ÊµÖ÷éýOµÐ¿
|
||||
Â5DÌ;ùýÏ÷Â×ÁÆC°ò2ÐÝ7ÅÀèÒ2¾5¶òÊNË,Å÷ýý¸ç̲à-8»´ëÚ·ñÜW¹D?-ÉççâéÅGèýÖÝ×ÏMìÞÏéý9
|
||||
Iæ=Uî.ðÔàü9I=Æ@ÓFíýç3ø¶ÐÄ91>òýýL÷N±ëýEÌ.N5G¿6¸óýMåÏ,åÎMæ2ÐMüýýê¶>Õ°Ã**´+żè4
|
||||
JÍZëÐRÛýµÍÑ2°Õýùô:ͯ=ÅìÚµëú:EÄHWMæ>Y1Ë»ýýÌ3ëKåíýýýùëýýáù¯YöJسôýöXñÆBÕêü99Ð9
|
||||
ïÐåÏSYýýõAåJ±û½òRPÚËKDz¸ý9¶7Ô<Å;PÈB³øÙïR¹óøÓUÕµ+ÅÜèÉKÒ¾ï5úÝýÝÛËÇT¾ýõôòÎR;-SÖ
|
||||
±ØúÎX1KÔ-ÂO7Åó±úýý5ãCAîæåÇçûýüãÃú¶OÜæü9ݱ3Dìçåüýõ0<MƽðÅøýöóÆRñÕýÑÍÅÄ8NßÚ±ûý
|
||||
UÈßàQ<-ãS>R½E8ãÒT;*Hëýýè+0-µÍµÚùüý÷Qí>ïÃÈèݽACRÞFäåÛ×ìÐæú½åÛY<JÀöWýíÇÝ×ÀËûýý
|
||||
¯¶7ùöýI½¯7IÀÈêî,Y=åͺãý9Qç³ëLAµûýÃO÷:æVýýÍÖÚVÜÊçõýï±±<ÃÜ;òæÏMÇü´F,T+*ÎTÞÏéIÜ
|
||||
E¶ðîýýõóõÌ4Ðã̹×GýûÙûÀ8ý½¹YçS×á÷ýåäèÃTÓWý¼ÈSÐ*³+ÅXÁ1FÒýõÝëÈÝ+ÃóýûÖMTñ¸P+ûüýù
|
||||
ä»û³úýÑEúÀÂD½ûI¼úÝ-UHíýýAú0Æ@»2CNÄ:KøÙïÆQÓLãè>²ý9*¾ñýüDéWLÌÒ¿ÁPWúú»º¾å18²ÒGÃ
|
||||
0H@ë÷Í8Þðµ93Ï°îæµ.3=ÍûýôÕ<HÂF0³¸õCçîÏã²öú;.ÜÜôǺ¼Nï0ÙûYìµö:-IY÷@<Oæ*Tâ8G¸>çí
|
||||
ÄMÕ?éÔWØÆóÃéÛT˸óTÒ>Ù÷JRÖÖK.T?WXìPÛÀ÷PÛÅÆÉß±Ç>¶BÛôó¾ù¼?ö1Ç=³ÚA×±Õ,Ç,1<Íøóèʾ
|
||||
òæ,èù0XùXÊHÀP·ÀTõ,ÄÙ±EF¼NÈDó°ýÍÛÊééèAìÊÒÌ6ïZúFàÒ3ÑPÍü´FøXÛ¶÷èÓU?NÌÄ4>UÔZßÀõ
|
||||
CMÅ;RÖ´ßðË*G,Ó27A°Ú8MÒ²Ãøñä;ͲÆ5>QÒÆïá9CàÑã3B¾6·L´ÔJç<åÎLÌÇÑM¶ÞòSâÆõÇÁÆ<HTÊB
|
||||
ïUè*àµùýêÑÚ1BÄöJKàÂ5ÕáR=RÍL¿4?/F¸*ê×=H<D¹*2Þ¾8øÒ11>*>6**1Lî<5L**òÙ¾IÁ6ZÞLWà
|
||||
³AÚ@Å6Z:Á4FùÄÁ·**XYN4ã·ö0ç6á,@ðä;ìØJ<Ù¶=-C¿æ·F<UÔTÃ*öRÆøÒK±P7DÜP7G¼2¯4³ÈÕDãT
|
||||
B°ÜXSðºøBøò4ÔUÕÚ;DWÖVçðã6Å-R;Lºè¾Sáý:D²åÊB±ð¶J¿ôÆïàÃÊGÜRÒTÂä¶×Lõ÷Ð0ÍKø²ýõ×Q
|
||||
/¿ÐOÉ?VF6E½2O¸.3<DzS<¶NÖËêG0Zãï0+öVZ.*ô1Lî:58âÞS*J2LÍ9åúÒ½*øN4A¯FPÑ/CPLX¶ºE,
|
||||
Còã×=FÝÅ>Qî°5°ÅMQÓT?UÑTÇ,/?GTÒÆÏ**ÍÂ3>SÒTïTå·ðÃêBîÕ@å·WÖ¸ë°Õ²ßNX1ÌF·öúCâÆMÀ²
|
||||
Æ9I¾2KðÅ.ûçáQ:LÃú:I¹òò+.ÈJºTX9G¸À26:LÄö/F¸TNÞÞ×=å8HBÆÏMÆ<Ã*¾P·Þ;?µÑñÃÚ2ÕM8àÏ
|
||||
ZåHLÞMñS*NVôêÓ3.1T3ÚâVê+**¾¹>ÝZßÒìê+:òJÀ*HU:B@I:-YÖ+@ôêÝRÎ*ê/?2¹6P2U.Æî:88Úà
|
||||
/72ô*8*ÀQÏÉÛ=Pê/õ+ê9òÀ±åHæPôê=Ë»Ð5ADðæE8ÎñÆàJ¿R,¹²**Ú*È2¾TÂ=ºÎ÷:6Á1KÕ=¼SS·J-
|
||||
RE=/>*ÚÆÄE=3Ŷò=á6à8Á=·¶+31öîìEÌÖ³PÁÞÀUŶÑM³I1ýðPºì²ß+HF¶ÐÂïæSÓ°ÃÈÓTÒN¿R/*X
|
||||
èÒSÓTÓгÎQÌÜù¯ÞÈ»½õÏ;üà?5áð³?ÓI¿.;T>2B**670ØNÆ8?41*ÆÀ+à/ÚÔÓêSø÷±2Ï:,·.Sß;CSñ
|
||||
Q²*@¸>S<OK0LçÑFîRT¿U02-:â5ÒðFBÒ=;îÂ,DÕØ.¹ô1*òD+3ËNöÅ-Þ8TCíÙ½ÇÐê+âØ7ÏË·+ÉTâØá
|
||||
á-Ðìò:.ùúFð.¿.Àì÷SÜ4+ßѰ³ÀZåüÀ0.¹*1*ßÁ7ÂÌN/ó,ûÛæ/äÌûâNêYA·Ñ510ðèE8ÞïÆLJ+ç8°û
|
||||
²*Z½+>;*Ó2QöJ;Ä0Î:²-QúÐÐð¾0Æ>µãM78Ná×ÇFøÇ¯0KõúÇF*Â1:ï0O8»áÃàBô¿æ?½ô2QVîÞ¼8üã
|
||||
ËöÚçÀ-º¶îN÷àÏñØÓé@XÙ¶ï°Û¶ïà³0Î.Þå+üìÕJ°ØÊ·¾¹á¹XAÉÔÄܺëS½8Wðò3¹,ó3ÒQÏHË,FD¾+*
|
||||
Ý/ð뺼.OðÒBÞÕëÂȯÎ?¸:¿Q1Â*JÃ,ÆRÖð¾MLõOöà7àÌûöÏíMB2-2;*2,<³¾òê/ãÀ»PJ*ûVCî4¼±å
|
||||
¼ù,ô*æ¸ôà9ºÅ;µSãݾ¿ÏFÑÌÓܲAäAXµLJÖQBT5*¶M-*Þ+JöÊÉà0ÁѵÎݾû¿XZô껵æ»:ÝEÛ¶.ÅAL
|
||||
îÆ>Îõ0Ü;ÄU7¶,>+*Ó2õö*6FïÉÈÈ-D:7º97FÆÄ*¾UX·ð=1öñN8XJàËUFøÄ5Ã;ê;6JG¸Â=@¶ZI1ýðN
|
||||
º8³KïßÃ=ã5ÅôUAYÛ0*P+¾Õ=5î9ÏUÄäÅÌG»ºÍ¯ÆëŲã4MQ¼´=GÂ@¿4OL¿T+*ÐT+*Ò÷¾J¾3*@³UAOº
|
||||
*K4OF8ÞÈúÂçLÄÍOÕÚJPëÈ-87¹V½ÌI¾=ïøäSFÄ220´U-æ÷¿Z05NBX?-ZKJ2òXG=ÛGÚî,¿Ûß¿DKôËä
|
||||
3¼û289îÆ>IÜXïÄ0.¾//28D/³Tíßé¯GZ½Î5K*@Çâ@Ò9ó,V½,YAÜïÈ>VÐǯ:Iæ¾5J·°>ŲÐÜõL1TT8
|
||||
>,?:ÌûÚ,NDç¶´<żðÞ58ãKKàËUFøÄ5ÃKê=ò¼õ2QVî4¼íúãÇöFèÀàÁMUÆ>8ã?U1+*T7,öÉ÷ÓðCá0Í
|
||||
J¼R;ËÜM¸¸ÂÎ99éR>¹1+À±Ì:SÈ>,ÞÏïÙB;I¯Æ:÷NÈF?Ù´è>¹XZBPÜÐÃÈÑÅáø´é=²-AðñÚ.Û¯-åÍMÛ
|
||||
ºÜÂ0ß»<ó7Cá>çÑUÇÞ;GõÁèºÕOÍU.æÁ¶V;îÔôºÌXE¹ôÔãñ.±,ÌúÇÈê×AÞ74DùëECRK.ÒºES±/2óóñ
|
||||
N±Úî9»:¶·Ü*ºÝÁM,ñÒÛ¸ÃED:*JG*.ÕKM÷Ù;P¯åüJAÀ*îä8ÃÖ±½Ï5Ò*³¸1DðäEXÇ,ëVLP³¾>Þû,RL
|
||||
*T;ìæâ¿õÛæ¿ÈÈ-ÃZ³:ðÔ?²ÎÐïæNN+ìÅ@ÎZï.¼ÌJà3ÈÚøÄ=ïÃÞCíûè;ÌÖÞ70HùÉ5ï·Ò/Ã1ÅÔ:SF<
|
||||
UÔXÃG8IHB*R³8Þ³ôÍÉ3ËHÅB·RÒÜKVÄÆÎ¾¼ºW¿Z³EíW×åâòR<OÏD4ô×ÏIÅËÕKOĺ<VGëÈMSرåQ4N
|
||||
Þýø*°æ-½úÆB¶òÖñø»Çú*°NÌUéÜú¶äDç?8Ç3Cð.U<¶òê½QÏÄG**-ÂÆÇá+/*/-*JþùP³K¿8ê×Ý:2è
|
||||
?@¶ß:0±Õ³ßôP>ßÀRKNÂL,P³RöãÁ+KÖÜî9Gö+ÂY¾ôÊ/ÚSH=Ø¿H.á.µ²**Ú*.?³3¹ò7RHçÃ:*;HKîó
|
||||
/8ÎU78HÞÒEí¶O4NºÀÂÓ+LéÀ5J3+RöL=AÜõL1TT8æ¾óûß+à,ÂÆÄ2¾5=;Ø@Fؾ-?¸<1A:ïà?Ì»áÇà
|
||||
ÖåZ2Ö¶ó2QVî0-ÍûãÃöFèÀàÁMUÖ-FHÖ*íBÛ÷ÏïÄÛLãYëØ³4ÐKÂ,¸ïÛµE0øðéõìGGLÃ>ç±¼ÛÁÓS±Xô
|
||||
ÛÕ/ðöÛüôµí²GERR×Éê-æPAíøòÞJÃ<0íIAùÁ2ØÞñC¹ÏBç4AúHSM>2ÑVSÞ¯ø?*é9ϱÀ+JçYÀÇ:4æ
|
||||
ó7åYÕÞǵN±;3C*>½E,QÑ;ßMNô7å½:ÇCâÖ8åïæº÷ðóU.Þ*ÞFÞ¿/¶¸¸ë½µ»BVÎì;I´à´Û<?Ï=ýYADF
|
||||
±BWóôÛ@TÂçëüCÛÑE³XSO9²9YâUìúÜÝØñO8·4¶òº.÷êÍGèWºÚͯÅé=NNST9YÖÙI±HëúXû1óñ1>¯éÀ
|
||||
á=1Æ<8ËÀ+MìPB/<XØã?O,?Öò²êÄ:Ìá;õèÓÉÕXܺ?,Ú3*ýÃÌçäèùõIí¿¹XùÎ×YÖ@øðãǯ߰Ä˵Üû°
|
||||
J»:/³EÇÕ3±0Í¿öçÐï¼²×ÃýÕ<AYúÊPR×¹VÑ1QýYöÓ@Zèê3èåÙNâT²ôñðöB°èFTÛýPE.ÅÑZéÁáIA4å
|
||||
ï2XG1*µOè?´üX¼ÃêÏñµI¸ÝUÏ6øï¼57ßàä8³Ì»²G°üêÀ/Ž4?WÛÝõßXï±NËÓ8ÏÇ>YÚËQRÕUêÀäOýÍ
|
||||
=Ê=Yîî¿çÙáú±7õàÐØ¶A³ôî¯èüãA>äÏWÍE8+Ô¾àC*¸óTÔ-0*Ö,*ºÓPÂôöï.ÊHµDú¼ÓÚ>;Fìß4ÀLPÍ
|
||||
LîØùæ¸àîÏNîSÜüAòèêíÁ»<ÄÁDɺÛ=Wî.<ÔÔH¾MI÷ÂÈD¾6ïòì±ôSAÚêMWä¶IÂ6·FYñ5B,SÕå7Å:éÆ
|
||||
¯æ¯.Þ3Fø±+éçø.ÇÎHXåËP=ÇUP@Æ1>8ô:A·0OLòØÍ8¶òG½ÉÅV´TÉUëûÕPÞ.Fø¹Uâò¯²5Uó<¯É¿MÍà
|
||||
ãÌLȺ¸ÕçûÎ-8Ô;A·2·OÈNÌíCP6NîéíÄM5äUÖY;*>VBZ?*H6ÖYß¾7²úÔÕÉóÈ?TÐJ·ðîLíÔôQÞï°»Ð
|
||||
DÁDÇØåG³ýÁ0Côã;@EãC/èõHV?³T÷ÙãõÇÏá2Ò¯8ô¸Ä°ðæúÝÐÁ·Ñæ=SMÝõòÂÌç@úÇ7KÌÚÒSAç-Ãñä=
|
||||
Æ@MF,*CóÞ¿9âÑ.*¸ÐͶV31FîÌ:ÌF¾öZ?2J0øÆã<8í*μ:1AÉîJ/8öJDÍæQ¶òÛ¸óðÓUÕYÜVAYܺÓ+
|
||||
Â1ö¾ÓÅY.Ó4@WXéÔWúTÅ@0Åñ=X@ÐD¿B»ðõÚÑì±0Mû°Û8C¯âöC÷üUÕLäÒØâñÃÏá7·4ôó¸Ä¯ìöÊýS¼·
|
||||
ÁR=RXòùËÀ.¯´HÊÙ+²ç=R¼ñ-³µì²L´I¶º,¹÷>Kï*JÍè=°*ÀV¼K»¶ÏËGùMÕÎ1ÐÝ7Àá±¶½9µTÎÝèB-F
|
||||
àVÖZßÈ?,Z6:4Z0Þ¯O¹ùüY´ÌN÷U׸·-ùûVRÌPÜî¯9ËçñƱDÕÛ²G¯@èõ¸Û²;MåÙèõGê>¯JÏOüÌ5µMR
|
||||
<XWÕUòàçÚú½<ÉC¾<÷OHÛíú-äRõìÑ:GÃ>;ÊìIôN=äÐZSÞÏ»ÏJ¿ÛÆDYÖ+@ôØCSJï,ìFK1K*ñ8³ß,GÓ
|
||||
E¹³28Â2FR*,¾G¾Ç+å8JÎËê×QD¹Ò*EÑKZ+ù5T**P;.**Ï.à8Á=<2L¶¾/ÅJZ.Jê¯2B¶*8BDÍ,JàH40
|
||||
;Cé2àÇ@>µÚîHåÄ<¹ÝîºZõëÉG·àêµôH4T>ÓQ7Ï-µë¾G°àNß2,5SãÌàQº:F¾ÖùîϲB:ÞOP×ÄûÓÐê×É
|
||||
Yµ1/Â1ô/0-+ÞáÇAÊ:BôøÆ:ç±¶6³6WV+R¶6.îÙ4ä@í×SÄ0ÛMÐÂ×íÜåQ7ÝQºVM±øBØâé³I»Q6Xñ×ùÄ
|
||||
èæ7ûºøüæ.ÊÍQ-ÅîäÞ;TÍæO7Ê-ÅüQ<PIÛéú=ÄýÀVúU¼÷ºìäôûí.-Ä<¯SÞÏ»¼8·ÀöDXµ¸+ôÐÚ?Yæ58
|
||||
î×´M²-TCíÙïASê9¾H;¶Î*KÀ=-ÊG¾ÇÇÖÝXÐÒ*-ÏUÌGù5T**P;è//ÛñQN:Âî*58¿Þ2¾Î¹HZ*N?¶BL+
|
||||
ËU7ɶ;6>DÇì=.QØÎÚï,8ÛëOêçïó¿GCµ1Úõ¶äÖùBRÏåðöÚêI³-²DøäK2æ-Eí?EGï¿î¾<¾Ç-åì-ßéM
|
||||
ÖùòãÖõܱû²¾Zåü,6À*̺ß.+¯QÀ¸ùÚï»F¸XÖ²ßÐ?ÉÔV°UÔS*ÐOUÔR*½ãUKÜæã5íëÁµY8BJO¶îZ½àá
|
||||
HDñåϾMAËåÉHAß±µë³-µØXöø¿U÷P¯Çáñðä:OÊÉéó4ÛÒ·÷08GåI±úºÑÉÛµÕGÛ¯ÛõY¼;MB+É+8Ë¸Ôø
|
||||
Ð7âçóê+ZíÞ¹JÞ+FøóêÃAÎîE¹ô¸ù,ôÀ°ß8;¶Î*+Å=-ÊG*í7¸9âÕÒJ:.9.¶K/Ó2A²öÂ.L18Zß;2F:¾
|
||||
2¾-îÎ2***:Jø5åJ**ûVå¶Ð/ã7AîæÕÉï6ç¸9ê˶:íQÖ1ø3<H,*¾øÎ+ÙÌ@L»Á¾´G¹ðM8÷ÞCFÌALîS
|
||||
¾Õ6ÖDî06À*̺ß.¿¯ÅÃëô@ÁM>´êÖ¯Þà*VB¯àÂGB*9@6ÖYÛÐãéæ»8Oø°Þ±Ë.÷J¼+ÊäÅÌL84?¯0ëã·
|
||||
=ÆÑð1=åÄóN+ðîLô5²æD½ÐÚ7IÉPçLµ:@YÁQ×ÂÛæê¿âOÏ,å:ÖG¸4·Oá,ìúSZÖɸHäB·PSÉ+8WÑ·ÀYI
|
||||
×FUJFùóAî2×±íëßÀÖEë»+ùñ-ßÂ2FR¾¾áÇ¿¶*ÈN°É-FA3¸1,¾/1Òî0/Á*XòK»L¯ßË;ʯFZÄ-î:6ê@
|
||||
0Ú203ÄUGá;IÆì8ÌÞϯÍåçÞæG¶<Ð1¼Õ64>ºYæ¾/=2×ô-1NÝÓF·à-¯Ê=,1îÖ>Þº÷ÊÒ÷¿0F,-îïÆ=À*
|
||||
2¸ÆÆXÆLYßÏ-ñóÉÕYݼ÷<ܼÓ.Â+6*öVÍ47Ȳ3=OÜæÎLÄ8SØ.Ç-ÐÁÅ;PÏJSð¿îæC.3ÏMú8D³ìÚ3.Q
|
||||
6ÍM2:G¸*S,ãK·TÂQÌIÄ4·H¶úJ,?è=NìQÌKð0Ì,âÆAT±ÄVúòÚÞ;ÐÌã*ÅøJîðº+ö¼¾»Ô0LìØÌÞÏAíP
|
||||
4>±Ý»=ÁÎÖÙüFKÂÞ¿,6FÄ6Â-ÎËG4G*.W.Ì÷ìêKGÎÀ-;>/¶9.ÚæÁøÂàÀ5MJ/Rѹ-Å1ÞKWë÷FÛ´ôAÌß
|
||||
*:½Ðð2à7I6µF¿M<êÁñR*OôX¶îóÆ/1JôçNËÔ¼ìÈ×=¯êÚZ9ÞÁ.Ê÷¼äÆGî+D,ùÞ2,;àùCFÐн>Ó02;Ü
|
||||
Y¾Kö*ö¶â3K*>ùò<W0ÅPUÔV×ä*Ä*8W¾áDÓÇ;J¼,?ðÅ<·,Ó3=PÆú:JÀ4WØÒS<IâåÍLÇ6/ÈáëÒ¿±Q9H
|
||||
·îRHÀ0û÷Áæ2±¶+3°ÒRÊ¿IØÒçÐMÀú6ðT·Qº>Å7Eê¶¶õÈÔÞ+ÃV0¶Ò-I¾ö/æÌ-ð±»½¶¾ö,8GÃ.ʲíì>
|
||||
ß,7ÃEù52èÃ2FR¾¾áÇ¿¶*<H+æ-¾¾Íß:Z¿û/?F2KϳßJÞ;32ôê55X¾*Ûèîî7FH*1òËèÀ,G8/Á40¯B¹
|
||||
W5Ìöß/µFîÝ-.ÂÜÁ?·ÐVÂ9±å8ú×=Mî64¶ÆUÖ±O4¹92P3ZÛ»Iî+Ð@/ã2,ßôâ¿CFZKKÜNβV¾Z¹ð,6
|
||||
À1¾ÅMÌ2,J°Æ:º:71.ÎËîæ·ßà?5ÕVÙ°ÇWØ8/¾éгU@UÑJ³ðÍRÓÀÃ5AUÏÚ=PÆ8KØÒS=òÂçÏMÄä/ÛÏJ
|
||||
À.C°òæ:YÂæ;NÆ6OØâG·àN3<NÇ>·OÅ6OàÂS=P¼ÇÐMÆLP9üÑýÙAÒóøBéºK¹R?É+8=J¿-S¹Ì*ÎúÃ-Îé
|
||||
EÌå¯.ZûS2NÁ/3ÒÞ3KN,;åQ*Êå´;1Á<+9ò74FÅMË?UÔX×°Ã>ÀV¯*;ÄLÉÔ2¿¾*Í?éÓUؾ3EäÉ+¹óÇ=
|
||||
PÊ@·PËF³ð²3=OÀçÐS*Ø>çÐØ¾ö¾Ö+èÒSÑ3À2¾R¿Þ¾;*åNÉRïçÁ-9í±ÝºòÃÊKÔÌë28ÍF¾ÂÉ@UQâÉ/S
|
||||
.@öÖº*VKWô5ÅÄ6×°ãä*J×D¾K¾R¾5:îèÞ¿=QÌDY×ú?UÓXÛ¸ãè?¯ãè>Þ*J>¾ÞTÓHîä/ä*JÓ-JR5îÒÂ
|
||||
·Éæ<äºäö;E³,ÇÈPXܶúDÓîF8¯AZÛºó4-*Üä*ÞÕM-îݼ÷øÓêØ³êFE¯ÕLÃ,/4>2ó´*à.ÞÑE32MBPR1
|
||||
¶¾/8ÈÐKÀ0+T=0ÉS=1ÏTâÖ»ì¶>ضG2*Ö³,*´Ë,6-6+¶XßÊGÁô6BTøÇÑQÌF»¸-*Ï+¯*µ>îR-Ì?Jξµ
|
||||
°NR9FµìÞϽ.³À³ê×Ý7ÅBéÔVÛ°ÓF¸WÚ°çØ³ÉÔW¯ÆAîÆ¿C¹ôêCYÑP7KÑD*æ²0îL*L0Q1íÊÞ?*ÂE85¶
|
||||
PÆ87D>R;MÆS>XàÐûã¶.%
|
||||
d
|
||||
569 104[1 0 0 1 0 0]sl 8 mask 0 0 di
|
||||
/mask 7488 string uc
|
||||
*ÞÀ**ü»ýÅöüÝôûýïùýáõýÅíý9ÝýI¼ý½úüýöûýïùýáõýÅíý9ÝýI¼ÓY-%%
|
||||
d
|
||||
/sl 59176 string uc
|
||||
äÕí´ê9+*Ð,¾é@XS*¾ùD07D³ç¼ËLÍF»D,¶<*ÞS/Þ70Ò2Ú/¾-AîÌB³àÒÇ=QÒZA±æúý½ã8YÕ,VEݼWG
|
||||
ÃM±äVC±36¾E¹ÔËF¸óæOñÙXãÀóèÓVÕâÓUC6*ÞD-2L¶´*õâÞ¸KùÔìíÄM.ä5BYÝì,¾*-@2ÞÁCáÄ7Ù³à
|
||||
TÇSÐP*NÒR±*HT>SÐNÃ<?4ÎD5¶¯*ZèÃ4.,>.6-Â5F:ÁÞ+>O5C³éü´FØWÛ¶óT-*ÚP+2AXØà*2AXÛP+
|
||||
ÚA¯åÐO±ÄÉ>òâçÑQÎà*ÞÑC¾Î*ö>8*D?/FB¿;*æ>À*FÓ+¾QQ0îÀ0öÑPÌV;¹@ëíÄMçãUº¯6¾öð?Ú¶,:
|
||||
ä¶êB0*½;ÁPËØ¾M*?ÔRJ¿D/¾ÏHÃ,?è>JºJ?Þ¿5Ò7Ò-Ú+¿E@BNJØÆ¯ùÚïÆ´÷ØÓÜöð*,*úÔYáÌOÁ´V@
|
||||
2³,ö0*T9á+X6ÞâÞöÞ;F@2ÚÎMîÒÎ*Kß°0ËØÝ7ÅT7D´æÒO¹D*-*8ëØ¶ôì×ñÔÊíØOéÔWÚ²ï,×8.¾øÈÓ
|
||||
U@YÖè,à.à0ä*X.¾îàóÄ,T+XÆ¿KUõìÛÝ7Åà5Ö2*öóR*ì*¾ùðOêC³éÔGñÝXÏDOè>SÐÊÒRÏPÛ2¾=32>
|
||||
ÆÀ*à2À1à*046AµêÔû붺ÒÄÞéZïÇ*Ê/¶°æÎKÙ@WCZÔé?UÐL5ßÑD*A?4>TÎL¿DÃJÃø>T2MË,/4Òæß*
|
||||
¾50:ÏJË?./¾Q+-ò3>Sá0ÄUDµçü´FTXݶûðÓU>J6*ôðÓUÕX10:4Þ¿C±ÔÊC²éÒ÷²äÂïÐóÈ?T³Ã.ÈÒQ
|
||||
Ï*îSBïÇ-ÊFÄ+6JHZ¾=8¶N.´UD³èü´FàYÜÀ÷,@,*¼Ã,ÆYÝè*ÞÕJ¾JNI@WD²åÎSéäÕWÁPëױᾯVÒN
|
||||
Ï<OÈÒE-*Î8F*ʸZ*ZèÏ+¾Ró+á,<TÒÐ,ù?WÙ²½E8Oس=*LWÙB*Ø@WØC*ÝÄËØ³èÒOÉäÛÏUÅìF·óîǺ
|
||||
øL*ºHºóàKUPÊBäÓÉÔX׸ç¸;*Zé.*î¸?*õBJ¶ë¸*/ð5Ø:ÂÝ7ÅPVB¯ÝT*JÖ**+0V6Þ.JJ¾,U´ËD²æÀ
|
||||
>ûØ´êܯùôËEÝÔ7سáºÓ<ÃPÓDóî**Ó¶¾B*J?8JRϸá+ó*O.ÖÈB³ïÜûë¶òܾï,äéAXÝ86*ò41ZÛ¼ûð
|
||||
?0Þ¿;Á@ëC±æÒDzåL9+Ù2*õ´ËE³éÄ3Ñã¹×ÈOÈÒRÐLÇRÏä*NÒQ¿+:è6Þ.¾Ç</4Ò-1:ÏLG¾*ü>È>VßÚ
|
||||
SùÚïRÀ+ÉJ*6ÖZâÎ/*Ö³éÖW5³F-îèÚSñÔëÙ²ìúױݴÏLO4?<OÈÒB*GÓÈÒSÑPÃ-Ò+Ê*FÖ¾5H21ÎÔVC
|
||||
ÙôWØÝ7Å86BZߺ+ñ/Ê+ùãéÕR¾-320îܾ?ÁôÊC²æÊD³éÐÃ*¶²éÒ¯ÑÔËØµXëÙ²íÐGUPÊûè?UÔZß=,:Ï
|
||||
LGH¾=+JÒ´35²öÙïæß³-Q7Ú´íÔ÷µìÜWù´ËÙ³à7Ù2*ïÔW*¾ÉÁõXG¹÷ðç¹?*ÈYܼù*èE+ÎüîÏÉôêÕú*
|
||||
¾ÄGUAâîµá;*E**ßX8JË*65*îæÒ³Ù´WD´çúD³êÒWÑÔËDàPëÙ=+îçÌ7=ô5AUÓÚ>SÐLÃ<³4Ó¶¾ñ,¾ÏN
|
||||
Ï,ôV¾ßíÄM40êÖ2*60ÊÖZãL+RÖZà8.¾--´6ׯßÄG±éÔ³é@Ü2ÖGB*èÄëÙC*Çôë+*¶¶íÌ;áOUÓUÚÈÓS
|
||||
ÓRÓLó,*À,ÞÒM+¾ÔPë4ÄWVßíÄáçàD**@4*¾Û·¾Ï¾¶*APêC²êÔ¯Ñä×SÙP7E³ëÒçµèÜOé@WâÏUùäëE´
|
||||
íÚ³ñæÐ?Môé@UÓ¾Ò,*C³è¿-*Tï*¾èFÞ6¾ÖD´ÞîµáÏE-´VB±ßÄ/±ãÀ3=´0*ÆGB*IÄVÖZâÄ/5äÃ/U0ë
|
||||
زêÒ;µëÜË**³Ó*10ÞÝ»-18Ú¶îà÷µêÈ3ñ³É@VæT?TÒTË+BTÓP×4-B+*ÔL*æ@°íÀ3ü´FеîÖÃ*À³+Á
|
||||
¾ë6¾µáä7Ù´ëÚ³MëØ·54B/2DÞîàÓÁµYH¼;*ÔYܼöT*L,L-úH¼úüëñµ9IÍ1ÍÛ¶ëÎ/ñûûðãUÕYÝä*J
|
||||
ÕÖ¾B¾¶*WôÌܽø*üë¶òá¾C-´6Ö°ßL*¾ÖR*IPÊB°àÄ7EPÀ/¹Z*ï+HÊÖZâÆKÁ´ËJá@ÂSÜ·EÚ>íÚÓ*¾´
|
||||
ï+,XÚ4*1õëD°Ý¶ëÐÃVÓLÓ,¾P×DóÞ*úÓSÚÔÃù@ìÙÝ7ÅÏÄ;*:êöZCïÃ*.1¾Zó*ÂVC²KDZ+Ü6C³ëÚSñ
|
||||
P˵ÑÔ7ÙµèÜS=ìÔÃFÌG05,¶;ÅÜ7Ù³çÈï°ãÈÓTÃ4ÓSMK³Tã;ÕȳëÙ¶ìàûë¶òäÀC=Ô6Ö°àº×¯àÀ?MôÊ
|
||||
C½äÊC°ãÆ7E0Æ/*ö¯âЯâ4ÕëÓüÑܲõÊ;Eä6AÉô6E³ìÖ/?<´íÚÓC¸µíÞÃùô7Ú¶+ÅO*ì7د޼óÐóÈÖL
|
||||
?ð¶øBðÆ¶·5A²÷µáÏ0M@6C¯âä7ÛÖ¯àÆCÙ´ëD¾@ò¶î2Ä/2öÎÖ½ÑܺB¯Þصç·âÀ/5JîãÎK-Õ7Ú³ïÂE¶
|
||||
=*ÀWÚBáC¾**9QÌÚ¶ïâÃùäß³ÁÄêAVÖV÷UÓXÓ°Ãè?TúTAµîäÃEõµáÏÂñ´,ÞãÏ=õËE´êÜ÷¶ôôãÉõÌÛ¸
|
||||
ÌXF¶ìÚ¿ùäËAëûºùóãWÅôÉ=-ìÉÎH·îÞÙ2M9ÕìÚºúüïéå÷ïáÕ9ݼûúÓ*μúú/*¾½/*¼YܹñÜ·ÁäÊ-=
|
||||
ô5ÖYá¼SÁöü÷ùåííÄM9´ÊÖ¯ÞÆGéäÏG-äéAZáÒ÷´ìØ»ñ´7D±ÀÊÖ**Iå@¶óëáŵíá±åëø°åÄõøºóÒ;ñ
|
||||
?6Ö¯XÊEµíÚ·Ùô˲ùô,**Ú:¾D¾-+îïÜ»á07ÖWÔF@TÔTÛðãëE4õWÚÝ7ÅúêÖ°ßÈGé@6æÑCÁôêDµìÖËG
|
||||
ø³êØSUÄV×»ü´÷òßÓåÕYÝéí9½úïÖIÁôÆóèá0Ë×°ÙâA³ßÉ1âÖÜRáÇùôWF·ï*:XR¾É5AìF·ïÚ³ñåÌ7-
|
||||
PéÓUßêÙ¶ïæ»ì¶òâÊ/=PVD³ìFÙ´ëØ¯ñ@XFõP7سêÒOéäÝ»áôêCÁÃãùáºJÏó7Hýýüݽýùé5í»ØÙÔºA
|
||||
H½øÈ;MêØ»5M¶;*ÓÅÏ*.XF¶ïÇï*LXÚæáRNÂ06ÔWßT-ü´Fø²ãÌ;É07Ù³ü7F·îàËUµ8ÁñÔËEµêÖÓ0¸µ
|
||||
¯ÇÑQ50**ºNIàÞßõýI*ÞùÕQìÙóçÊC¹×ñæO5õËÙ·TìÚ·òâǹZ*¾XV¾ÑMQÌÙµïâÇMòæÓ55*óL-ÚE´íä
|
||||
ÓMåìÚÝ7ÅßÁ88Ú·ïæÛÙõÌáÁµ9I»öðãñøì×¹1YG¸õÚH¶VÏáå¸/¾+*N=:ðìï9êÏåAXÚóêÏ9Mò/+ȹQ9
|
||||
H¼úúH»úöïÙÕ9Iݵ9ݼüúãUåèãÉ1YÆJVÞ×*úë¶>åÆÃ*ö²éØÃñÄëØ´èËE´ìàÇ5ÉòíܳɴËE³Uë÷ùFÃ
|
||||
>F¸**2Z÷B·öøÞýêÏýÍÍÚ¶ìÖG=ô0÷ßéäWÙµðVF·ðäÃ*Â,ö·ðÞ³éôWE´*XBJº*ÈUµXG·1,Júýý×ïæË
|
||||
GU0ËC³ëÜÃEø³êÖWáäëEµàËÙÎMæ@DJçËã¼½M7Aî¶0*7+ã6ÚúÐMõ9I¸ðرÍ@Ê5è=Õ6EµîÀ8Á9å8+Ú*
|
||||
¾;RÕÄëE¶íàËMQäÃ5FJñäËùÙïæÍCÉ@ËD´ïÜ+´¿»äWE´êà*ÚÙµîà»ù@XFô@9Xõùí³¶/Å8*¾-ËX´ìWý
|
||||
¿GøúæÅõ仸ì½@9E¶îÀ7á7á3-3M9¯ÚµëØ»5ÁZòæÓ-µZJèÃùÙïæÓWÉÔëE·ñà·µìàÇ-18Ú¶*X¶ÍÆ5AØ
|
||||
åçÇ5µíëöýÏ¿,õîB.*K>°UC÷5¹òõÍ=íë¹ZÄ+ÃÞº¯1X8G¹ôè×¹õ8ÓMÅX*°ÊL¾¾á±µÌF¸óê×-òü´Fø¸
|
||||
ðæÛÙµÍHº4ÍÜ»÷îß5-îõîçÉõìG»ùÚܺ÷2øGY½ÕѵF-Î2ÌÏ/»ºüØMíݼ¸ðܵÅXéI4NAíH¼üü?*¶½*û
|
||||
÷áå9Ý»Ü9Þ½ûôóéå9ó5ÖííÄMÅP7Ùµïà·éäÝÃùÔ7EµíÚË+ö´ëÚ¿-åËÙµRZZøéSGÅM1*¾*<åÚXH8úIÖ
|
||||
MQ9ûöìÚ÷À²2îÃL¶·ñæÏUåXÛ¸ÌìÚ·ïàËEÕìÃ,θüýýê¶òåлù@XE¶ìFÚµîÚ»-1XEè0ÌÚSN2ALJá/>
|
||||
êÜõO3ÞïêÏüÆäA±ôúé8ûüõåÓ½Y¼ÒDÝÄËE¶ñäϱ1éϱåÌÛ÷LKÕXÚïNÞíÄMYPËØ´èÒ¯ùÄÛ¯ñôëÙµì09
|
||||
¿ÙBM÷ÔWR<<VÚÜñJ·Þ¯2*=ưîWæåùÅF¸ýôÛÉÝH?ر8ËØ³êØ·5Q8Î5ºòôæ×MÕìÚ·îJÛÆMZõµá;Z5Uò
|
||||
íÜÇUÅ8F·ñ.Û·ï»Ä8Û·óàùFÛ¸óØ¿N7IZÆ=7F0+ö/¸ìßûûýýüÌܹöâÉ´ÙPËRÉÔðæå×¹AYH»ùô÷ºöê×
|
||||
ÑQíH»*ííÄMí´ÌÚ¸óîçáAÀÅí×±AÍH»øàùºHºöôïÉAìVùH½è?C߯2¾Õ2öý½üï×½õßËÔ=õËÙ´ëæÙµîL
|
||||
K1?FÞ½+ùïÙ1ZI4æÍÝÝ7ÅüVسéÞ»EÅÌÍ5µ8Ú´ìà¿ñîÞÃ5AìE¶ðÚF·îàÏ7½IP*<CF¸0ìüýÕ9ܹöìEå
|
||||
¶íØSÁäÊ<MäVC±ää?ÚF¸óêËUõÌG¸19ÛÝ7ÅÆëØ´ìÚÃBضñâË5WòïÚ»-1ìÙµïÞÚÞMGåÔºü-ON0Ű-â-
|
||||
¶òÓWÌUÕÌFµçÞ×ZM½äê×±æÒWáäÙÃEÅìÛ¸õè+¹½E8ÃF¶ÏÃ0ÌEµí,67G¸ðà7H¸¶îâÃ5AÌÚ¹2Õûýò<N0
|
||||
Åüâèýýñ½19ÜÉXç8HºõæÃáíÖOÉ0ëC²+*HËØ³ìÜÃMÅ8×¹õìíÄMÄQ9H»ôîÓ5¯òïâÏUõìÛº÷FܹõêÓEÅ
|
||||
ìGÌõYíùûÍ3Æ68OËâ+Åì»úõÇAÜáÅÍñÙQYH¹ðÞ·±êØ·ù´,JÞÃ5¶NõìëùÙïæõçáÅYݼûò÷ºöðÛ±õXH»
|
||||
LíÜ-9îøöë-ÖÕûùÞ<¹M1:æöýýïµ1íÛÝOõXI½*-ø¾*ýóÑ1YÛ·PìF¸òÀ*RG¸òà?*ÜÝ7żWEµðâ×Uå8Ò
|
||||
5çñîÜ·ñäëÙ¶ðFÛ¹õêÏEõWHéùüøU×ßÏVÐÝîæÙ¹ÛÄ7Ú·ôî/*æ¹ôèÃñ´W**±éÄëE´ëÖ/*úë¶òçÔ·é@ì
|
||||
Ú·òL8WÛ¸òäËHȵðÄ-ÖÚ³ü2ÝÕËS´¶òËüýõí¼ùöêûT²åÔ¿Eõ8HÅAYܺöêË5娳ÙÔW+Jê;VùÙïæÓSá´
|
||||
7Ù´êÚ·¶ðäÓ±õÌG¹ìÌF¶îÞ»5µÌÉéÔêMê÷?1Èê7»¾QýýõYÝGºÅì²Ø²èÜËÁ1ñßÉQÍÜÎMXQÌE´èÔW5ÜJ
|
||||
êÔWùÚïæÜ·-åë6¾ÉMõ8Hºøôï5*îøîÛ¹19G¶ç:U÷øïÔÇ68»+WýýñIÝGºIX>Ú·óðóùQû÷ñõíI½ß*ÊYÜ
|
||||
¸ðÞ·ù@*¾Ø»-õµáÏÅ=1XÚ¶ðäÃñíä×¹õXH»úJÝRIèÕ9ÝJI/A@»üRÓN0Åà+Ú¿Mý8ÜöÎòòó-2/0.B:Þ*
|
||||
*2B**ýïÉåìÚÎ/ñ´ëE·½E8WÙ³éÔÃ+ö²çÒ³ñ0XF¶¯ÆÌÌG¹õîßÁÕÌÄ=Ù¼ýÈG<ÁMÕßïýýùá¹1íÃ5/µ8Ü
|
||||
ºøð;»øòÃ+öº÷ôëÑAíÛ¸ÜÌFµéÌ;Á@ëíÄMÞ@êÆØWá@úæÕWáÄ7Ù´ëÚ϶ñæÓFè¹²ëýÅÆL°¶òPÖüýIݹõ
|
||||
î7öÍëÞGÖ-ϵYί6¾êáµöRéÃéÔëD³íE8+ÙÎMçÄWîÏRÑ´ôæÝÃ5QìF¸óî缸ëùåÅK°¶òZ4ýý9ÝùõíW±
|
||||
ÀæØÃºT¶ðæßÑQYÚÏîÑAîB,Jñã¹Õ8Ú´½E8ÏF·ðäË5-B1¾ðàÃEµXÒÏÍEÅìG»ú,ì³ôõ¹U:CF4FÖ18Ûùõ
|
||||
ºëÓ±Å8ÛBQµõXH¼üü+.2*Ä+ö¾ý,06öíݺÞìíÄMGÕìF¸òèË,Â-*¸14C,ÞçÛÁAîíùî½OôÄ.Þ9ó+ÅÜÛù
|
||||
ô¹ûûéÅÍç¹Õ8ÛÆ.³AÍܼ*/ÄEø¾ýú+òµíܺîìíÄMçäW.*²5/îêØ»éä7E´ëJÙD*ÝÔWÙ¾ÃíA½?EF¸Lôý
|
||||
ù½ÝûùóÜÔH¼øðßUQ8¾5É2ÁîððóÙµÍHºöÖÛ¹ôâ¿ùÔëùÄMöÔî2Ø7FHZNî@0¾ÕWÉÆ÷»ê˰ÁM·Ò½ß;ï@D
|
||||
YÚÏá±ÅXÚµìÖWñçÔÃÉÅíH»÷îÛ¹òâÏEÈúÚï2ÜÃ*B¶ëÜ·E-ZíÚ·ñ´0:.¾Ù¯ñ3úûá¿<¹MIJèýýûéµýìA
|
||||
UÂõÌG¸òæ;·íÚøø´îèãÉQ9ܹÜ8Û¶ìܳáÔ7¶ùÙïæéÓUÅXG¹óæ3¹ôà*à÷à+4*ÖÛµVÝáÅéP°¶ò6ÎûýÍ
|
||||
ýúóìϯÀùòÛ¹Z1+4XÍݽ*ûóáÅÍñÉÕ8G¸óâÓ-óü´F,¸+¹Q-:òåçÏñijºûVÙN0ÅÌàÝýýõÁÝìÛ=üõÌÛ·
|
||||
ðàÃñðäÓÁÅíI¾+ÛI½úôçÙµ9HCµXËàíÄMô0ìE¶ìÜ»U-*í8FJ/*¹ñôÓúûD¿N0żÁâýýó½åüÛ9Ü1ìÙ´ê
|
||||
Ô³ñîâÓÁµ9I¼øFܹôî×±Å8FçÔWÓàíÄM÷0ì*ÞÏ,.IHR*OQôºü0MN0Å<âæ¾MòÜûùÞö,8¯Ùµòìã5³.÷À
|
||||
7ÛÛ¸ôèÏ5å7Ù-ÙöÙï2Ú??,µAî2Ü7*ƶïP+²Û×òûÙU:CF¸>³ýýÍí»¹õ8ÕEµïà˱AÍèÙÅíܹõ,8OG·á
|
||||
2ÐËÙ÷/2õ·áÏÞ±õT*ÞÛ-*R1¾úêÐÍYW°µò*Ú>üýI¼ôìû¹Ûòîçé1îJIB:Þ½*ûóéQøï5¼²óì×¹Õ°Kð×ù
|
||||
ÙïÆéÓ±ÅXG¸ôÀ*¾ÛD*RÕ0ÞéÏUÕíWøëÁã0Åì0õýüïµýüÛá³µYݽ*ýûMüöë5±VÁ*ôÀ@0*Ä+ü´Fè¶ïà¿
|
||||
-1X>ÞS+Þ¼¶ãÝü>EFÈIñ-8GùõÛ¿ÜáÕ9IÚA9Hºõà5;F¶íÞÃ5ÓB.B0:îà»ì¶.ðL*NÚµÑ*ï*ãÆã*ô7IÛ
|
||||
òÑÁM9ÞRýýûéµ1YO½ÒQíܺ+*üÌÛ¸ïÞ·ùô7Ã5Qì6Þ.ÞòàíÄM>AìF·ð,ô,*0+ä÷è,FEÇÌ˱ýé89ö:=F
|
||||
<,Îü9FàöÎEìÁAä2éÓMÕìÚÞåçQ<Q8Ú=Ø:ðàûë¶òõòãÙõìHºù.H»?*D9ܺ÷òã51îòÈØ0GG½ñÆëé¾²8
|
||||
N-ÅüJÔýýõÉíHܽÜ2îݼøðß5½2Á2+¶î3±*Ï5ðÌÜå7ÅôXÛ¹ôP*ì+¾Õ±åXèèÌÁÁõïñùÝÜöéµS¾¿FîRD
|
||||
V5¶òïÙÅÕºZHºõRG¹ó,*L9ÞÛøÂR.Zµ¸ßèÛ¹õìíÄMNQXF·ñL*JÚ2¾±*îöÖÌ0WF¸òé»ú÷øý59ʲDæ<Á
|
||||
Gø3üüýÍíÛ¹öêöܶïÞ¿EAðîÞ;8?Þ6¾Î=õµáÏÕ=ÕÌÚ·ñèÇMðäÏ5,B521ÎñæË¹ÅÓò¾MYìºøôíåÕåÍï-
|
||||
µÊ?E5+XáÏîÆ·îæØ½QVYú:Ê5»*òÀ3á9;Û·ñâÓ51R-2BûÙï2äËôÃ+ÊøG¯¾;+µAðPØàË=YìÏMå¼ûùöò
|
||||
éùüùÁùë¸è/+QïRÆÂ7¶âëݹ9VÌØ´Õ<ïÞ+ä<Y.ÞíÄMêÅYݼû86Þ>Þ++¶¼úø÷=ÆYKÏÌ··ñãÍUíÜÛ¹åü
|
||||
Ûºù÷ûñÅÖ-ÙVÓßKFøAÏýýÅÍÛ¹õP¸ãºù08P*ì>àÊL7¾îáõµáÏÖ¹A,*êÃ,6*ιôèÃ,Ö¸õìÓ5-îòæÏ52
|
||||
ÐRçåûøòêÑQ½üû¹IIHüùüãí0VÌ´¸0ÅüPøýýíUýÜÛÚÔ÷¾8ÂÛ¸ï*O+å0JèÛùÙï2íǹµÌÛ=+îòèϹµYÞ
|
||||
»óà+JÛJ*Iµ8Û·,UHÓëÙUYìÚ¸õêß¹÷ôééõýIüêäõPB1ÌÞÏõ×ý½½ùìݱQÕÃØE²B´¶<*µXßìǹQìíÄá
|
||||
×àRÜCMµÅ8Û¸ôæßÁRѼOÇYG¸/*ÜÌÚ¶óôWÒ3ÓÝH8G¹õèß½õôçéQ½½ýýñW²Þ11G¾MýñýýüóÙÅåì¸õ»S
|
||||
í¿CÚR¾RåT/BµDTæÏùÙïÆí˹ÅÌÛ·ô86¾Ùéæ³ÞWõàüÄÊýèÚAX><Ò5*îôè×¹ÅÌÞÅÍû¸ôêÕ±1Yüº·½¼ê
|
||||
;ýõÝ»ôÝ8×F¾MÝ9Hùöî³ÑNÄèÃ-µÞ*èÃ>@EθôêGÆ/¹ÅìÛ·½E8ÓI½ûú÷ñµ0Þû+²Õîìè¾ÛøÜß;õ˺ö²
|
||||
Öò:ݺÑ,M-¼9I½/19I¼GQý8»úõòÝÅGøóúýõ1ݸY¶ÌLÒýüõÍíXÜÅÝWÎÒ¸óÞÛ¹Ð3îíÇTF·¾Ý7ÅNíÛº=
|
||||
*8ÍH¼ôìÛ5·Òѳ7ØöóÊ;ùó·9UPÛ´OÇúòFºöðãÁA2ÞÑÓ@½FµóêÛùõïáÅ1ýü»ÝÌE·øüýñÅHØõôÝÝüöí
|
||||
ãÑåÔû³¸PÎJ·AÚZ.ZT¯°¯¼KòÛùÙïæéßE1YÛ¹óê·µöò¿FÆïTæ8÷ìâů5½ÛØéÛUöëÜ·AäÁùÜËUåX.¾á
|
||||
ÚÜݺïÔ¹-õìáåí¼ü¹û¼GµÛÝ=ÍÍüݽÝIݽûîÝÍ1íIÕÉòUJÀíè+¹Á/10ÞíϹÅXÛ·õèǹñàBü´F¸ºôìÓ
|
||||
ÁAÍÛ¹8ZLÁ2OøVêÖáëʶîãÃYÙôعE@F÷N¶÷VLÍ/ñ/G¸¶Ò÷ýíYHõà¼ö¯íçíå½ýÜÁýÌØôÞ×MõõõÉéÝ9
|
||||
½¹öðûùàå6OéÖ=KVõÌG¹ôì6J²JÚï6ÞñÄMY1YÛ¹íò7òä½;²·ÑåáÏý¸áÆû´ôÉ·ðßÌDñéÞÇÍÃAËÙÁÕYá
|
||||
»öð/òáýýýͽüöÓGZÖ¸+-ÝÜݼåíÜ»òà±õIíÃÙåÍÜùõñÙùàüú+ËÈòß·³ÄA,*èG3*ÀÕ8ÜÝ7ÅXZÞüõ³
|
||||
ÀQÌ5ò29KÖÊ3YôË÷¸XºöðÞÎÛ°áÈ+ÙäûDYµCÎF¶ó6àOWæù9·òýûåQYùëÐJûêÞãïùõ½½»Q9ݺíöóÕíì
|
||||
ᎼCéÒUÏøÏ4÷3>2:J¿HZÞ¾,-86RîÇ*J¾++øýý±áÏÙùÆòñâN-Äñëò×ÑÖ=RÒ½GêâÅ9Á´Ú×±9Ú÷ZåË
|
||||
9é¼ëÅåôù<ÞʯIùîÒçÍí9HôðÌݹﵯøU¶Ï1ãUº»ýüóYõâíñIíGú÷àû¯ÒPË@ëBìFÀ1íÛ5+JöðÛ¹;*Þ
|
||||
X.ÞíÄMÕõ7I˽U5åêÓ<â´WN×Ò¯¹Þ¶éPĺC°ÞüD±áÌ3Ñä6ØÙü6Û¶ëç3±ô¸;ÑXG¼õõøûü÷ïå1ÅÈ8DY0
|
||||
ÌGʸÍñµíÏñÕÝHù÷òÅùÞNÁ<ë¶8Gº:í**Ú¹¯*1@Jîç5+öÙïæç?ùÔXáËT?ùêã9=/D@VâÜØµèÇõ0Ìé×¹
|
||||
¼FEòèÍ;ÑôÈUÙäʺóîÐûZéÉ7µÄÊø¶õWF½ýûë±Qéó¯±1ÍÝÂS7¹ñ÷ûñÅý¼»îHBçÏ7çϹ1í¿*¶¹õêß¹A
|
||||
ÍGºÚXH¹÷êßUA,*ú½ë¶òøêãMÕ7Gº>ÛS×ͽQõ»ÖSQèÓ°ëã¯M8êûÜ´Ûø²àÔE¹âÖA-YËØY¾ÜîYçÙI-¼Ë
|
||||
ÒýéS?õõýýáõëç0òÕÎMÂ;»QÛÙáÉÍíüµÂ4íÚ¸÷ì-¾æÁµ,îµáÏ1VB:K¾+ñÏñø.èVT´ñíçG´ÞUÍÌ7Gû¸
|
||||
íËõVæÓµÑäêËõäûÖWêÕ;¹Ø6=<Ã7׻ϺXÙ½,MÀÓHòæË1ÓÆïäÌJY¸ËFɸÛé?⺲ZJ¿A*::¾,0FB2*10
|
||||
6B:ßB*TBZÞÝ7ÅZY+¾éÑõXض÷HäòSñÐ88û´ÞRÛTÞ¶C´>3ÒZ17øUÔX=PÂèÓPHìõJÃô0¸Ç³á8ÃÆ9Ù²8
|
||||
ò½üýùÉQVÐEºç<PÅ1ý+²ïÐËÑõJ<X?*ãÑQYÎÞÃ5úë¶NøòßU+î÷ðßUAËÙ¶*ûæÖ¿YIÍHE°ÕçËF»9U¸Væ
|
||||
ïOê×ÐàÁ,ñ÷ãÄ1ÔNçïݾü¯SÞÖÉüËíÝáÍýýýùÕµÄñåÀ?¹öÎJÀ+ûܵîÞ¿ñäëEý@<ðôÐC,Ò2õãÉQíÛB*
|
||||
VA9H»ôàA¼µFÌ*¾»Ó*HYH¸çîÇ.ØÒÉ?Êù¹ó¿±ôñòî?ÂSîÛ¾?GP·øîȵÌ;H1A°áÏ.78NèÝÄüìI½ýûãù
|
||||
ýúçåܸ8?³XÊÖ²äÂ3-ÄËáMQìEµ6É0ãÑíåÍ9ÝR¼1²ïL+¼¶F<»øîGZ*ÍåÌÚ³í4@ÛèïÀÔHüõÜAù·¼,QÀ
|
||||
Ú@9åç¼¹WäðͽËRÎåFTA¹Õ=Û;òAEYõ9½ýúýÛ½üð3ÉéÑÇG¿AYÖñæÑéÙÅ9âÎGKìÂáõáí4îÇT2»ôHµFL
|
||||
Â.;<º¶,*4H2*µÆZK¾õæßÑæÃ¼/úø¹øÛ÷øÅù@Pº¶=RżËÛ×ñùñIºÕ1YWEµöÑã°òî<°Ë»ýüùòÛ÷ç½½Ä
|
||||
UAÍKRB,Î*Z::0J;¸F7ýºË?5¯*,;ßÝ7ÅJY,*îñØ»Ù2³WàÛû¹öÔ½ÉóAXIÅÆïLÚìͱüìOѼ6GòôÚ¿ùÓ
|
||||
Bá÷TµÜ¼íÆöYÒôâOJ2RðPòûOÜç¾Ý7ÅÌÍH½øøçéµ9ïáõY7*ò5+îùø÷áÅíF´îºÚÅPéD¼Wº¹åû´Lº÷DT
|
||||
?ëIµÄW¸¶çØ?ùÜCKäúµìMêì¹ñÜZëÓÉÕÍîñAò*ö/E6GÂ+*¼;*îY¾¾õ=ìÝâ¾ùöç-*áBü´F<»úò/*ÊóG
|
||||
R¾¸¾5*îóØ·5õïèÛÆ»öõóSY/6¹VIVF»âÑ5QPç9DÁäXRëöYáß¹ù47õÂ6Ä;Ì8*86Ú¼±À1ÀïµáÏ-ÚåíH
|
||||
¾ùøë=ýöË*æ¼úúïéÕY7Þ2¾ùñ1ZG·5ËXó¶=EIYÝûí´Gëß¿9ÍâÕ;IÅÕ;ööØóôG5ÙTFõ8ݾÁ5°:úöÃDÚ
|
||||
C*ýÅ9Ý»ýX°õ9FÄX2¾ùü´Fø¿11DNæîÞÀ¾Z>J6ÞF*>º**Ì:KÁ07PÒBÏéEQYHÍSëøóÓÑÝÝHÛZËäºFµJ
|
||||
±¹ýÊBXÚÉòM¼,9ÇK7Þ7.ÚZ+Qæ:Qõü¯8²R0HúÙï2+ð-ÖíÝ3*Üõ9ݽûúï5+R*:ûø?-ö¾+/8FR:Ûµ¼XG
|
||||
ÎQéüÃ7Ûå½¼³âæçWÕãµá°û´Ìݾ1ÞJ÷ûñÕ9I¼+0Ã0ðÍÝ:+çõíÞ¾íéÅíÝÒñýýMø*ðùÙïRõïÙ1îH¼=*Ò
|
||||
YݻϽ¯*Ä9Ý»ûL,Ûݼùø+.RZJAö9I¼*ýÏ5åé»F¸²VÜáÙùîÂéXOÉÑN¶¶ìI¿ý,0BÌA.+¾»±2Q6;@:°*
|
||||
ô//î»/=áYìîÜå7Å2ZI¾ûüG3*îA4¾ú÷ñµ0Î.Þý+>Æ:K¾ýò÷ºú*8F¶ÎÛ·ü8áÎHç´ÃÈÒåEÕÌÞ¿*38ò-
|
||||
+8>B:J¿ý,8ÆI½ûÌÒKúKOàÃ*æÀÏõ9.ÖíYÄM%%
|
||||
d
|
||||
569 104[1 0 0 1 0 0]sl 8 mask 0 104 di
|
||||
/mask 7488 string uc
|
||||
*ÞÀ**ü»ýÅöüÝôûýïùýáõýÅíý9ÝýI¼ý½úüýöûýïùýáõýÅíý9ÝýI¼ÓY-%%
|
||||
d
|
||||
/sl 59176 string uc
|
||||
äÕí´ê9+¾Ñ,ÞYJ¼ûú+>üúÃ+ƼýÌ6*üñõíݽ¯+HîJ¿-/4òQÍÝɵYI½++<ò,áÇÉÅìRºôÎÝÀ-30F-î.-
|
||||
86RZJ¿*ÇJ¾+17ÎI¼ýüó502Ï21:*ù/DÂ/Zèú7ø5æýýUôö¸?ÞØ÷óéèSF¸Â0;HÂæ:LÂðÎß2¾E*B92Aî
|
||||
5C°âÖÏàÁ,ßÞöKI¶îKÂ6A°Ú2ïßñ¶ïá4*ïÆï.¾²âBTJCXÒÆïLÂ+1Õ0ïÞ=à@î¯ûM=DúÙïRù+ê1ÎݽQ-
|
||||
Þý÷ñÕÍI½ý0,À+*RZݺ÷îÃ*¶»÷òçùÕYÞ¾ÀîÞ2¾+*:Ö4:.Þ18>BZÞ¾,-T¾*+ôáåYæß¿LμûüÓ.ÞÜòý
|
||||
ü-öµáÏ.êA,*úÃ,2½*Q*ÞÝ-/Zýü+.Bä1,Ì4D¾ýôçE³>÷ô/Jؼú,,F¶N05DF-*/5*8Ð7NRZÞJQö
|
||||
õÞ<¾Ý¶áç/ÚUIY¿ûü´Fà¼*ù+òµè2,ÄõÃAÄ+ÂD8,¶½ý*4FÖ:ß¾BZI»÷îÃ*2»÷,8·Ü»øôçùÕYâ¯F¯êï
|
||||
Êï¿+ÞÀ-146B.J,,Vñº?*Ö³¼Õý*üë¶Â-ý7>¶Z6*4.RZJ¿10J.0V-î+/8²öîßÁ0»Þ½úöëáµÍÝT*æÕ,
|
||||
J*ø5Ð>/5Ä8Ú;*À2Ïß=**/á:M:ÂÞ½¯3;*¸îX÷01üùÙïR8LV+2÷5ù¹:*-+M,8¯LÃ7E´âBÏ7>BîÞ¹+Z
|
||||
.-@6Bêæ;°ÚÖ;MÅ6GøÄ8C´êæ¯MÄÊïàÂ17@NBÜÇ<PÒB,:4;ìÇ;¼NýÖàÁ2ý´Fо,-8*J¾+/,.öà+ÞÝ-
|
||||
5î*+4NÖîKÁ.GJ½øòëáQíHÆA0ÞõïɵYܼùô¿»±*îYºK2¿EÂæZKÁ15<ò+ûçUåWD¯ØÚ?WæîûEÆ:KM¶Z
|
||||
Þ½¿2@;Yó3M4ü´F4½,9.*ú5ã¹²**î*¾1>ÖÎKÁ030Núôç5¸V-B+¶ñ*ZY>¾ù-2îJÀ/3<ò*ïË=µ8Ü»õú
|
||||
E²ÝXÏ<ãèB¿QZâÏ1N¶ÎJÀÀÅI/+áAü´Fؾ,/4ºZ*=*-*14Z0Þ1H²öîßÀ*û÷»úôëÙÕíH¼Zí¿+F3*ÞµD
|
||||
¾ø÷ùAÀç÷ËEÕXÛ¶ëæ·»ôÚ?áã4?SìSÕº.9@ºÖ:@>ö?øÈ?5ÍE8GßÀ.-<NÆîÞ4*O¶îÞ¿,1H¶*I¶ZßÁ2=
|
||||
PºR0ø5**ûX6*î¹=*±+ßÄÑ,üíH¸ø0@VöÍÍá0ÌÚµæºÛðÒN»ÐÒ4GÀ1ûßÁ,±Lµ¹ïK=ÖZÞÀ½E83MÂ5M*Ú
|
||||
LÂ5?TÊR;LÏBïÏ*öÂ4C´òöïMÅ0¯ßÀ/M@í3*26+¶î*¯ÊHZIºú<ÄF·Ðµ.R8D³ñÚ3ñØTË4³SÎQôúLÅ4I
|
||||
Tõê¯MâÆÏLÄ4ý´FØ¿,+4º±*FZJ¿+-0>¶8:0Þ1<VæîKÂ0-¸¼ûöïáµíÜ»ÀYÝR¾×¾ø¾2¾÷*ݵYG³çäG>
|
||||
ç¯ôâǰà»óö÷¼ïÈï°³T>PXæÌNï.°>ÛEîFõN05<úÛï220DÄ+F*¾¹1î.9LÂ2ïK¾ûîܼûúï5-îùúïéµí
|
||||
I¼ý86¾õéÅÍݼûôãñçºGÁµ¯ãÌUGèÊ7;¸òRîFµÔé?RÌ</àáóÂèAöóÌ59TÂ1=@ÂÖîíÄM2Bê2*0GȾ.á
|
||||
*æÞ¿+å-L*À+,8Kß¾MYBZI¼úøïÙ1öGB*àÅÍÝD¾=9îùæCÁ@WGÂ<ûPÑNYXâæ<NAÖÌ×XÑ<GTâýòϱÅIÍ
|
||||
@=ÄJ*ÁÏÍ*ïíÄM°æîß4¾ñ*î2?Xê¶;L¿++Þ4*öA,¾ú3úõT*ä.ºI¹ø0ØEÕÎNYC±PÈ23Ä.ç-ȹÔé=NÂ,
|
||||
/FøFÉú³âÖÏà͝MÃ8?üë¶ò2APÚRÏLÃ5M*,*JàK¾È¾÷*Ýö;NÆ9ALV238FÆ:ß:*J¶0*.ÜD¾ö*9öÌIÂ
|
||||
2ñïÉæKÄ6ÇÏI¼6EL½îÈë,?îæûîÏ-19»8KÜ**ööµá¯îí.Þ*JFJ*ÞJÞBJ¶;B6Ñò250úÕÍI½üJÝR*êõí
|
||||
I½úà+.I½±+ï+ï,HíEº.ELÂQÍ5Ê2ðàº÷>HòøÚ7É/4ÐK¿ÚÍG·ìÖÏä:à--?5;¼ì¶V³º¼*PZKÂ258Oݼ
|
||||
±ÄàíÝBMûÅYݼýöÃHÔ/Â1ö¼÷ÎÃÑÕîL¾ü7FÀF±,µÎõE1ëÕTÇ27ð¿øæ¿á07YýúßÁ4;XÂÆ;LÖöµá;F6
|
||||
L²03<Vöò*ºKÀ-7LʶïLÂÖ:J½ý0*à8-9ãݼÑ+¯*Ï+?*üÌÖ³òøGÒ2ÍQ=ÆñOÂýöÏñêÂçL³ÇÏM¿Ú8G¶è
|
||||
ÚdzÍJSæZ:,WÚÆïñÄMÀ2;àE-B.R,*3á,úKÃ7C¸âÆ;LWRÎÞ¾--Ä+Ò-ο*1Ì,Fæ¾B*͵UC´òô?òåÑÇÁ
|
||||
öîÞ¼òØ÷°ÛVË4Ó3<JF1ÌE³ú2ñAúS9PÒÖÏáÆ½E87áÃ7AÜC*ÏÆ¯+¾VÚ¶2ÞC¼6C°NÆ8AÈÁ/5*Ä+XRÞË/
|
||||
Â+öº×¼;ÑP8H»ü7C²ìâÇáäÊýÀÃèÒRÇ,ïï¸ìÖ¿-ÇØ¾0ßß2*áö;ãȽE8çKÀ0U*XÆÎ>²öN+FKÁ2?TÚRï
|
||||
KEBîI¾=*2îI½*ý7-FJ¾=-îôTãèOê×´îºÙXÎPãð/ÊAÍÓè>SÊ.óÏÁñÚ¯MR>³ùT3ÊÞÂ6Iüë¶â27HNöÎ
|
||||
KÁKÃàZß¶*ZÖ@:H:8Þ;°Ú¶;MÂ-+°¾++,.BZÞ-¼F¶V92320î*ëÏL/é@YàÚÖVÎF·èâ3?ÅÓèÒRÍ:+à=ì
|
||||
RóRTÓWݾ+ÅBÎJÂ6Cüë¶ò17HNöîßÁ/U*ÞßJáçá+N½öZLÄ5C°Â2.HZà3¾5À>*/ÜØ*½µè>TÒVã°ÃF¯Ø
|
||||
>*ÞIËDOÈ=OÁø¶G¶èÎç-èÔ·³ÊRZßÂ6Cüë¶²5?°Òöê*ÂàÃ/*J¯J¾µúö;âÅ57@Ò/3@²Æ:ßR*Kæî>JK*
|
||||
?FÆZ+¾AÒåÈÒSÑT×ðÒDSÐ>S<OÎÚÒRÍ@?èñä7´Á0ËIÒÊëU´:2AÄNºì¶>5EÄ=Ä+*ĵ0*B0*Â3¶Ä8MÄ>
|
||||
3<MÂîZ*¾L²öÎßÁ1Á*êßÁ07Ä/Ò1Ò3ö½ÞF¿LÓ7ä¾8è<NÆ:Oð.ȵÐÒRÍD±èÖϳæ2èÓWÞ<,ÊÖ;NÆ<ý´F
|
||||
4Â1Í.Jöî¿+*Á18Þ;TâÖ¯MÄ1-о,/0+B¿*/464J+/,6625R=2-î*ÙWÐ/<ZóVÛÓPÇ6CÀÂç<Ų2ÍD°æ
|
||||
ÞïMóοò6Û½O/¶ZLÄ6Eüë¶>1=Ä;ÀÂ;*Õø2:Ä.¶Â2=°êæÏMÄîZúZ3ÞJïÆï+BHæ¾C*ÝÅXéç·ÏäMãEOT
|
||||
ÒÆÏMÂ*·G²äηÑå;MPÅÒ´ùèF³JÀ3E´êöµá¯*¯:¯2ÞV¯ÃïÃ12Â49Þ;66Fºº*:îË-¶Êȹå6ãç<MÜæ:K
|
||||
¿üî¿ñÄÑKáÄÌIÄLã°ÓÈ×-B¾:Ê*9°òÖÏáÝ7ÅØÏMÄ8C´V+B1J6C´F.2/î7GÄF·ðâÆ6¯àÁ19LºZ*ä:àÁ
|
||||
3M*.LÁ¯*òZLÁ¿,XZáÜ͵ýÊÓ0Õ¿-å7F¹öÂD¸D´òöCNÇ>X@ëE¼/-7Ä6ZMÇ;OÈúÙï2F0F0*¾ÄÁ*K*ïÃ
|
||||
¯*¾¯ÊÞ+FèÇ7?LÂ2ï¶ïÃ+Ê/.FÐÂ2=Ä,öÅZA±ÅVòÞ°HæÊC±âʯ-ÅÙSñP8H¿:·ÐÒ¶GùôXß=´2¶>=Qüë
|
||||
¶6+N5=T6+*2M+>àÂ5=PÒöà,úàÄ8I¼êö:KH¶îÞÀ-346+B/¶:+±+¼ÎáÔÇÑÝ05Ð8FÖ9CK´,*FÌF·òò3
|
||||
â2=9/5B³îêûE200E.GÆÀ4á;Þáå7Å;Â*¯Þ;J6¯F-R¶6.2ÁF¶²59<NBÆ22HÎà5-R¼ò-KàWÜØëÊ/Á1ú
|
||||
Þ¼äD+èÑÅ9ý=2ÏMÉJ×è/˯-õ8Þ:À=¶N9K¸ê@¶âÉÃàñ²å8G7.*ºåÌGÌî3ÛÚ×îR>XV+¶**Z¯Òï6Þ+0Â
|
||||
EÈÅ6-8Kß¶àCÞ3*ZB4*60F¸Á+7ÄXì·ä¾¿Æ=Å8îF¯Ñ@SàÒÇÁDã4A°éàÓ±ù,8NÖêB¶Î³î2²ÄË/+²<F8
|
||||
+*Ë»/Åð;â3¾Bà·*2CÒBÆQJÀ61î9MÐVÇ<ãÆ7¿à¾NÆÖ0*<ܶ¾Ï*ÃB¯°ù·¯Ô1F:+YRÍF´çÎSéPÝÏÑåY
|
||||
ÞÀµÒZ0JJÔ6Çæ=¶.ðXæVMßÏê;ÕÕîBäB,îJ+46ãMÅß*ìÏMÆ<SÐFSÐÁâR¯LÂ-/4²-/LÂBÄ2:Ì,*ÂßÀ¸
|
||||
Ðñù°7@ºî+=*±ÇÌZJ¾+/<Væ:GÂ2¯6+J6°º¾-:°ÙÞ;Î6>±æàÜÔÝÉ*¾XÅÃ@Æ,Rô>FØÂ5A°6-:5?Ì+2Ä
|
||||
69FJ2*Sê2°*¾¹ÚöZßÀ+AÜòFµØV·ÎI¿/;KÀ.5@6,Þ,QÝÝÈîJÀ1Hî¶*,0P3P4ºßÀ0CÄ.Cðá8¿M¾FNÄ
|
||||
WÀQÝÜýùßE2*BõíÚ½1åì°B/>ìR¶Ò4EXâR;áB¾E¶.6M,À*ÚMÆ:MÄú¶ïKµÖZRÞÈ5-Äéé@û3±J¾.5¸Á/
|
||||
7DÊÆ°üØ:î/<Ì1Â,FH¾R¾4*¶ÖWîæ³øï±WöîIÌE.ü=ÒíI+îâËÒX<¹´íìÆ9IDE483áÄ3Á5ëàÄ6AHÏMÖ
|
||||
öÞ*ÚáÆ;OÄòR;Lµ¶ZWíàÁíXëAI8ºµSÏ++,¾K¿ô°´ù3É6SKÁ113å+L+ä*Ä*Ä=9Öï>*IêB<âÆ:ûµ2Fø
|
||||
³Ã4ûG¹Èé>H½ù7.*ÜÜ÷èÍÓâ¼G@?T²WMß;Æ6Ó±<MÌ>C8*N0?4Ç<Á-¾â·*I÷ÐãÉBUÄòæEXêUº¸õë×¹
|
||||
òâ·ÁÔÊöéÑÚòÞÀ3»èQE¸çD°âÆï6Þ2Þ×/.º@2¾Ãñ*̯MÆ?¯Ø²×°ÅÞÏÁèÒ3ïéÒCÁPëñííK*îð»YÜÊø³
|
||||
àËN=R7/Å6ðáÅ:M¼.C,:**JÔ,Ê+¶Å7MÔN×°OÇÜïLÃ;/=ÝÜÜéÕíÜ»÷ìÍ-õÔE9@ÙÓçĵ»ÞÂ1ñ;ÊRïLÉ
|
||||
BÏLÃÇ6*V6-Î7CÈN×ðâ@¿MYÓTÓÛÖEåßVÐÑíKµòöå1ÍFQ±ê¹-TD48?áÄ6E¸ê¶4JB°F/*7YV¾Yú¶ðâÇ
|
||||
<ITò1;ÔÂ6ÜòºMG¹ûú÷ùÕIݺåXFôæÅíÈOè+8ºÕÍKÂ1;<Á19Ä,Ò+ÆÁ0Á+¾ßK¿-+RH:2AÄNBÆ=Oøí:¶
|
||||
òݼûØTøïÝÅS¶öøí*¾à7â¿*/F8»ÞÇ-*ìÕ@J+**Z*ÅÒÅÅî@.*¾E.¶´,µ>;:î<1X´¾Å1ýÙïÝÅOY7RçR
|
||||
¶FR.8Á5Y4¾±âæÏNÇ<M¸ò39H²E¹û×QúÇQô,Åíýý½õÝÝü÷ìËå8ë7Ñ7ùóP¿ýøË@ÄB0,Ò+Fî¾±,î0?´.
|
||||
CÐâÆ=¹.8»Ø²ç´ÀHÊ2¯ØËGû=*ÞYS2»Hü¶äM+*ü74Ê+**1A¾ÎíÚïÄ-8LßWDFÉÁÁȶE-QIÞÙ±ÝËBÏßÎ
|
||||
µ0Ò²>F,ÅßÄ10*HÄAÀÅ1DJG¼êÆïáÇ+*üÏàÁý,IÅ9Ó9+*Þ-EÍ24ô÷ûýýý½ýûð»ºòØWÁĺôSãQÎݽ1;
|
||||
H4¾E2¶ñ*@ïàÅ:-<¾â8¿MYÕXÛÄÌ-á?ʰI1ý.*Â7ÏA:Þ+ÞáθÍ,Jæ¸öîßRÎ*9º*,*¾58BE2-:å7Úö¾
|
||||
¾,1Í7À-îß-AãAVJ?Fº*1EÎVîßAD>>Ê@**±,¸RQöîAËGÇ**ìÊÀ¾1îX7Ì0¾Q½HÙZÚ¿Gµ6RçR¶²<SÌN
|
||||
C0*PÔ+¾Ç¿*Q,JVà6*î?K´òÕÕ·úAKÅ×90îÀ7TøLõ9¸òýýñQYܸëÕGñÚ±Í4²2ÏàEûºâε>¾Oк3ÑäÉ
|
||||
B¹.8KÞ**ôFöÏÞÔÁU½,*,+ö52î*â?Iò9·ÒOÚ¸óËÉEÌJÛ¸+Jû/1Ê7JóèU9-òà->*·ãÓIîFTÞI;áGÙÕ
|
||||
Rè+Þ·Ï5RÕü.78²+*B=Î<;SÅGNøî¾*¿EH**ìÓßç*ÎïßW1Í*åñ>7/Ű<â3*53ÐâÆ1-¾PвC*ÞQ¸âÖ:
|
||||
îóø9À5/Å8**+<ôº43ºçÏùåÍüúóÞ¯¹ô»ñPWÆZJÀ6çàÃ6Y7J/¾ZÒB,¾KÔ²çðOÉ@¹.8GMÄ6ë·0ê@ZLë
|
||||
ùö=*:2°Ý¾*-Zú¶.¯FD*öîNé?56:*ÄIî¾Ø+.*ÞÁOËYºJê¾91Ò4òïá=ÖäáÅÍÔZF*ïK,µæîJ<*¾C+²Ë
|
||||
¿ó¿êÄ-Ì÷**¶Ô0µ+Þ»ùP7ÖWÞÌë/Ò²>F<Å7G0*.,F¶*æöâ+úMÆ<SÐ>ç¯LÌ2ïZôøÝ·¶+ű*ÆÁ9TAYÝÖ
|
||||
M½½üøìÖCýÃéÁø-¶:àÂ29DÂ3;L612*î1;LÒöZàÁ3ÛKÄ:QtFÇðâ8¿MÍC±P³Ì+MøÉPíüû.*NÊÇA:*+ú
|
||||
ü»ßè¿*ÉÂëWä¿+,Þõ-8¶¯-;*AHZBÞµíñðùµ/ѽÑíÏ?682*ÝíÎß+:F:*M²ïÉܱ+*ÞÏSÎí*>ÚTÁÙ*îÚ
|
||||
µÍü53Zåè,TD48GâÄ;EÀòB°MöB0JK¼.çïMÅÏ*üïMÅ:MÐV×ÐÍúRÏLÄÃãõA×6ÚÀM1*Þ*9¸¶Ç.Ýòæûñµ
|
||||
Íü¸îØI±ÞP3,NöZà5**496*JF5Z6Oв×SîæÑPËøÉ±Þ´û<çÖµI+*Õ÷KLäÕ3ñÚëµ-Ö»ù=E¾¯¹ãÙ9ÆWë
|
||||
?*å²E+ä1FZ*:´:,îà-0-Ú¯Þ2´íÔâé±ðÊÉÐß++Zù/D>>>2Ê,ÎÅMÜ>12,ÊíÊ,ë0JçÓDÚ/*Í7ٲݴ+¹
|
||||
ü?ÎÐÏî2FÜ-¾2á=3î;QÔNSÐáÂ3³MáóûY4î88Á*ò+8¾V»7½ôæýùåýüúòÝM¹Þ½ñøNRZKÂßÃ8¯àÁ2;Pº
|
||||
BÏMÒæZàÁ9QÌN>SÈê<¶ò¶ïà³/øZM½/²êÅ*Þ·ÔϾJ/IÖ¯¹*Ö¯YìNK¿78ùG19Xë¯-ÙÆÐî¾-0*à0L*Xº
|
||||
ÞZ¾Õ¶J7´êÆ7KJ4>OHF:*ZÝJÁÀÀ,¿S*ø6KÝð*;OßËS2ê*ÌÓßÏ,Ú3*77ÖÏßÎU/Ò²>FDÉAWÔ6+*Aé+æ
|
||||
OÉ@U,P+ºPËEµì²C°N²Ç×û÷ÁÌÜï6¾@RL2EÕì9êÏ齽ܸîÖG5ôM?°ò2°âÆ:ÇâÆ9á*FâÆ:K¼V·ñPæC>
|
||||
ÏMîæ9I¼VSóâ½-IÁáF>*XQÅ.38ß7ON³4HE´çÁýPXWSJOMßÏÁF3°NÆ<KÌ.;9F¾À6S<âÆ;á*âNÈ+ÆÌ<
|
||||
âÄ6Q´ÄYFî·8Å8**+8ÆöS´@ò½Zżý»÷ã½åXWC5Ó¶;áÃ6CÄ,.-æÃ6=ÀVC±Æ>âê;¶òÒQÍÔÒCòFÁã±é÷
|
||||
Üí/öâ¹05Þ,ÕW¹óâµJ¹ÔÂPÍPÛÏîRL¼V+2³61*:í*¾ÅF×°OÉ?Q¼â6Aà.7ý±D3Þ¯2*1Þ¾ÂζÉïAGøü÷
|
||||
ã½IYGVÃLïà,¾¯*Õ¶ÏLÅ?SØFSVØê;¶òâÅ9Å@@óåÆOñçÙOÞòåÞ»ýÌû÷±è¯ÏÏïáǵ>FÄB<Ç:MÄ*¾ÅáÃ
|
||||
;*8ðMÆ8IÀ6SÐѲ×<OÇ8?<Â?Qå1êO8¶6,Þ,HN·ÒÍîúKżýºõîDZËRï.*R6/:5AÄ+:Æ>WÄ*¾ÉG,ÅHÜ
|
||||
»ù»ASÔ°Ø»+W.õü3*ýW,·;ØG±èÉêÙ9ÝÏîRN¼6µ.9M6å*8.JîÏÁ6·°ãÉAWÌò9CøÁ¹ÛüÑNпá:*NJL3
|
||||
S³-8×úôîÁUã¶ï×*ÆÄ9á;ÆOÊ>¹.8GºýüûÉFÒ²°Së¸1+*ùÔH¼²ÔÃN0Ñ*ö7/Å,ñã±+¶.*¼=QÌFµè²SÐ
|
||||
D>FHýÆE°Àá:*ý*îýýõÝY1ͽU7·ÐNÇ;í.¾É²SÑQËHµìê;¶>êë1ÇSßíøRÏ<O-+¾UÏLO͵ÀûùAüëµÈE
|
||||
ÜÅMµ3ÐãÇ?MÌ6SUÄV·<OÇ10ÞOÈ>ÇðãÊC±øÉ>M¸²æBûüLÍÂâîæ¹Òúý½üöíáUêKC¸êÖ¯2¾µòÖÏMÄ8G¼
|
||||
â<YàÒ÷ÐäÈW,ÅÀGüJ×ì<*¾ÝUìöH8/NÇ;*:°>J7Þ+*JÆ:M̲C*ÞSÈòÆÏKßóû5±4<ÁMÝ<óýýóÙµõìIõ
|
||||
ÚÆ;MÄ4A,Äß*Á*ÔïNÉAM*ÆOýýÙN¿¾ûô¸MZÝWìöH8GOÇ>IÌ>·<NB×0JNĺ¯*¼ÐOÊBYÜF÷;µÚR·üýÔ0
|
||||
N0ÅüÅïýýïÅA9H»ÔC¯Þ¯2*³ê¶¯.¾µ6·<äÉCWäNAûýí=0°îéáåÝËææöáY9¼ÝÚï»F4Æ>M*êNÆ<KÄETÆ
|
||||
<MÄ6Sð.¾ÉNçÐãÉBUÄâ7C¸ºêH¼OÇÛÏ-Þ²ùýýñ×ÁµìõDVö*8Á8ûLÄ5E¼FçðO»÷ÐãÉüýµÊ/ûE7·8ÅX±
|
||||
äÌCµìâC=ëÒÇñ.¾âÒC4:@J¸ü6*îG±ØV3ððúïßÏêîæ»ÓýýýûõîÛ¹Ü=SÐV×°OÈ=*è<ãÈ@¯ðFÇ:J½üë¶
|
||||
N:Uĺ:*ÀÐâ=+î=OÐF×<äÊC»PÉ;I¸F·÷»ßÛQ´¶òâúýý½HùõèÓëÄ8E¸ò¶2Î0*KÀº÷Ðä2*¾÷µáÏÐVÇ<
|
||||
OÈ=Í6*Ë>ǰºJR*ÖF¶òAM¸Òæ<³ûËßËêîæÉûýݽûõñÑM×7K¼êB**FÄHÀÅÏ*¼ðãËBµÜÊ÷ðíÄMA×ðMÈ<
|
||||
SÀN3NÌ*ÆÇ;M7¯NÇ<QÌ6·òB±Ø.ׯIÜéS¼ØV<¹MC:WÞ;ÄÝü»¶ÕÑÄ10*FÄ*ÎÆ;WÄD<Ë@³üë¶>>UÜ2*J
|
||||
C4*Rܶ*YÇðOÊDµì²çO¼úAÖûüRËN0żßÛýý÷Õ1½Üý¼¸ÏMÅ:I¼Â8M¸úÖ¯6¾½²÷ðPÊE³ì.Aý´FàËEµô
|
||||
ÊC0¾µèÚÇñPËD96¾íâDZåÍKÁôòAW@NÊüüÄD<ÁMÏï¯ÞÏÅíüÛõÓ=WØÂ@YÔV×ð¿+öÉD½,7øñæÍîñíÄáî
|
||||
Ûñ,îB±èÚ·±PÇ9óÞÞõýýM;CF¸?RýýÅ9ü¹÷8ºèÄ;KÄúBп>÷ÏâC*9ç<PÌD·àâ3Züë¶²=UÌN÷**¾â--
|
||||
*=å*úâÉD±äÒç<NôöίûýÙ¯Æ68ãÌà+ÅÜÛ¹õÖ½Lòæ;¸úæïáÄ1,ÞSÐÚ÷<QÉFY,Ë»,Åô»»úø¹4*2üøíE
|
||||
58ããÈ1,*TÄ,.**É1*ÞYäÒ·=åËAS°Æ9;ÝýYê¿âîæ5Ëüýý»öîßùÚ*9È.C°NÇü¯âÅ9KÈ63ÐÇÚS=å+*¶
|
||||
×OîæÛÁQÝÜýùíÍ5ðßE2*ÚµìÝ·ý8ÌÛùÜÀMF×°OÈ>å*P*XVJöÏÛÊSÑä¶M/ǯ°ûôGOôÄ8JÒñýýáݼ۳Y
|
||||
UÏá*¾RMæöJ*6ãÉEWÄG4ÉF¹.8»øîß½IµíݼTí¼û0,*1ÍFôè×±åô7ε?FØÎH½ðF-îI»øâç±QÎGûåÌH
|
||||
¹üú3òæ**9ØÑäÊGOé½86ã0ÅXUûýýëÁ9ÝÛÕ7SÑäÊC¯èF+*CM+úäÐKË4³4ÒS*ØMîæ·ÝÔû¸´÷úùÑûùñµ
|
||||
:*öùñÅÍ0ë¸ôéò¸÷óû+P·ÞÏÒºC,ÞVк×ð**×Nç°:J*¾ÕºSñäËBS¼Ò8±ÌÔÍEÎêîæ»ïýÝÝ»ôëËù×9I¼
|
||||
63ðMÆLÐáD*üưPÌD·Ü6+æ;¶ò˯ÙüFø¹ûúO½üW.*¼½úëÊEÝÄW×Ê´ÜIÞ>1FØÉA³Ô6-¾AYØÊ×°6¾×²÷
|
||||
<äB*ÍS=åÌG·àVSOTÛGݯE×ßÏ1ùýý½ùîáµ´FMÄ>÷V*2ãËF9*JÅÞÏý»û÷¯åèëéAøõõ:*¶ûøç1Õúöñé
|
||||
òµîí7/ÅØðãÈASÜF/R-*@1*VOÉC³0*öËE±ÄFêÛ¼ØÎO°µò3àûýI½ºôêKîÖL1÷ïáÆ:IÀ>çKÀúR<NÉE·
|
||||
ÀÊßÄ<=å8¿MQÙØ°ßÈËÉYYîåíK*îöéÉ98×ZãÓ3ëÚÙE48ÛPÊDUèÂCÑOÕ3ñOÊCWäÂç±äÂ÷<PÊF¹øËD·ø
|
||||
ò×=LÞPܼÐO<ÁMÅKïýýúá±1Y3ÑFSÐâÆ±*P°âÇ<á+úãÌF¹ôòÇÑQÞ×MîæÍÈXÚÕ¯íìÝ5øñÑ-**îÒ-¾ó²
|
||||
Âî¾À8-ßW3Nñ+Ìü¹õÛ7õWVDG»U¹MßÏê.¸,J¶üº<*ÜñåÌH¹,7D>*7-îMüò¹¼ýÇG<ÁM1,ñýýõÙUíÌ0
|
||||
ÙÊ·*:ú×,Þ¯äú3ÒRÎOÁÐÐJÅô2FøÉÎ/åGVùøô*¼¼***ð,¿ºØ:GDÚ/+í¼Ûôß·/Á¼×Óî2³ÜÚ÷°ä3*ÀS=
|
||||
ä¾ÜC*½÷ÐPÌFµðêç¹ôò÷;ïøûõ+3ÇßÏUÏøýýúíÝÅõ¾OÈN·ÐâÇ;í.*Ûò×ñ¿Æô2F¸ÃÌ-á?FÙ·òJ»¼***
|
||||
À*FK0ÕÒ1ÈSÛ¸ÈâÓøÇ8úºQ+:Yå0ÌÊ*TýL¿,¸QØÎæÞïK:ô8ÀXèÓI¾+*îâ/°V*Å캴߶-¹ÔÖÓîRZÜ6¯
|
||||
²AYܲ×0Þ¯à²çÐãÉBYDËEµè6»âFQ4Xý½D.ÇßÏÅSùýýøëÙµQ¹GÈ6*:;OܶM>3<PÌGÁ;ÂQÌW,ÅHÎñÞµ
|
||||
-Ù8¼F>Í9**¾:*9Õ·¿ð97?QW¾:98Þ*È5è1Fç<±-µPÞ<-AFß¿@6*.-¶ÀÉ+.ÒêJ÷ð1ZZæ:W*öïßW1¼E
|
||||
Öñ¾W/ŲñãË;Å:±òïË+¾Ê¯Äα*¾ùò×ñâàõùÝÈê7G¾HÈýýÅíÛ¹÷̵ÞÏÊN÷J7ûâÇ>QÜÂç±Q÷Çñ.JÅÞÏ
|
||||
Ýñ6ÖWÞÒ»ù0Ýñ-**:.*ºÅ,Jç6N-Ò´FJ*úHÃ@+¶Å7*çAPÞ¸5GÅVFß¿@FK-ùûÙ¿íAZZæ:W*¶íÜS-´5Ö
|
||||
ñ¹W/Å;Ã*±²;ÞF1*CÍ6*ê6¶F-ÎG¯<P9ÜÑêîæ/ËüýI»óìÙ-ÝáÄÅ,ÞTØâ×±âï>²ÅÞ;Z5¶Â½QñäÛ¹¼**
|
||||
*Ì2¾;Èöãì×*-Îù,ÓQ¶îà.6г´?Å:FæÀM²:0¸Ý¾¿KÁ²+Þ¶ñHûµÞ;ZéT¶ÂJ½,/4òÃ+¾ÍQ0¾À<GD*ÞÇ
|
||||
<Oè±ðùÞ7ã0ÅHTùýýï½A½Ûé÷=QÌD·è>D³Ì+öÌE½,OØòçÏIJçÐM¹.8¿Ö¾MóUDôêÙ±Q1**Þ3+:ÅMÚ>
|
||||
1Z,ÈI×ïé¸ðà¿5=Î0àÌì4*ñ5W¶Â0âJ´-1Z**F·¿.5*µåÄWØí¾M:ÔÓîR¯ÜÂS=äÊA,JXäº**V±QÌE·ô
|
||||
êC4Þ4ͽ6Q´¶òÖîýýÍܸõÊSåÇ<Í/¾Ñ·±åÍG»ôNI¹ôê;¶ò×J5ÄùµòéÖ=.**îÂ*æ±.ûÈ-Ö>/ÉESRZM
|
||||
ïÞÃ3æ¹8HÚØáP³K+ÞÃB2-ÖYÞÞ¾ÞËMNA*ú¸òݶ/ÁÌÓÓîR¶àº;*HñäÊF³ìÊ·ñ6*ãâDZÚÏý.ØðPäñ·ùL
|
||||
DD6Æç7û*¯ýýõYíûºäV±OÈ?UÔºZ*=*¼=QÍHÁü6È=.ë<¶ÒÍPEÜ5Bò6íöØ.Ð>å³B¿Ä8ºÕïçÍØ48á6ãä
|
||||
Ê-*Ñ*²±PËïÄ/*++ÜÑQòUíPIÝèGA1Æ/+пM¿JWÞ;ÅåHüïÉ=OÔ*ÖÇ>QÐ61î>¯ðêç±åÍGÇåÌH¹.8Û;
|
||||
èÊ-50û¸´È7ùóÓ+ÞÃ/ëN;FôêÖQA8Ê·³ZÒÓîæ¹äê·±åÊG±4ÌDí.*êº:*ÜÑQÍ9ñÔÔêÚåÕÝI½âãæê*3<
|
||||
×MíÎìýýøã¹Ií7Õ²çðOÉ@WÌ+..öÉB·ü64²RÎN>æÍW,Åü3°çÆ3¹XG¹=+¾íÜëØ°ãÐ=MèT¶.I1**æM-*
|
||||
JÍ7¾Éʹ¸òîæÍÑõù÷ùýÝ?ACFÞÀ6ôRXF6¶òí×ÁQFÑPËEãP˯ͱ*¼ñPÍJÉ8³T>B7-JNûýí9,ðíÐÐ8WC
|
||||
±çÕôëGòÄÌùµîØKÅXW?ßÈU¹½¾S8¶²F³ðÂCÄ1°HC¾îÜ:¾-ýñDOè7W¸÷òæG¸ôíííÕí½¹Â¸ÊË8.ÌáÏ-
|
||||
¿÷ý½úìÝÁõ¿OÔV×ÐOÉ>+ãZ¾Ç*½÷ñQÏIÁü6Ⱥ0ó×MîæïXÐÊøòåÎQÑ騷õ:*öíêÇñÔëC=Á°AõÄÀMÉ×±
|
||||
PÌ=*NñP˱*Õ,:2ÞMÐ/º×öñàɹñéϵõHý¼üê½ûÒÅèÖRî@8G5ÕýýåíÌÛ¹ñù¯âǿı*¿Åì<OÉF¿üú3Ò
|
||||
.ûC*ÎMîæ×YFÒ²ðèÔUÉèÔ¹2*º´íÜ»Å䨿CèØÖöÄÀMÞ·**²Ä+ÆËGá*À*X6Þ.¾íF3±âÔÐÁAõåÍMåÜû¹
|
||||
öìûúúú÷ýYYï=ø,á¾Á¶ò·8ýõýÜùõíûZÅ3Mغç°OU÷°ãÉÑ*H=æÍK¿4ûC>û6è±ÉÞ;°YUÊ7?G/*ÊPÒÀX
|
||||
ùؼÜÑîÆ¸ìò·,Þ¹üúç±QÍF¹<ÌH¹ÄJ4ÌG-*Ä+ºNÅ@÷´XûE¸ÅÜÛøôæ×µAíçííÝýýè99ÇDAÌßÏMLüݽù
|
||||
èÙµõÓÛèÊCñOÉAãOÊK*ìÐãÉG¿87ÈÒ0GDòRÎKù.8÷øðÕ5íÃù´I+¾àÛÙöóðéE48ãRÎ;¹8ÒæÎLÃ8GØ>6
|
||||
7á-Ká,îåÌH½0G22-îAA¼ÒC¶òê廹óå͵19¼ºµ9ý¼ýüû5µæ,Ã÷JÞ3FøRôýõYÝGúô̸éÍJ»øò×±úÑî
|
||||
ÚC0¾¾@³D**ÉDOè²çH¿Mã¼G¸ïÚ³õ>*:ìàÏõÈEÜÅMÕ×±åÍE·äÚ3³ðò÷=æ*áîHåCÑâÃ9¿DãDzðÚ×,Þ·
|
||||
¼ºBÐQâЯ¹íä˹ÅüÛùøHÜüüúûýÝYØ¿ÁÒOÃ-¶òÕüýݽÜùõèdzÖDé6GPÉ?WÔV÷ÐOÝ÷ÑRÎM¿0ûǼü6ØS
|
||||
îöùFâ·F4ÌGáóºQÌC·ð6D²Rý3>RÎF±0/èAðÁöµñ×Q¿ÀÉß,α*JZйº·ñîãàÛµõéÛ½YÝü»ùõ»½ûüûÙ
|
||||
A6:;+áß/F¸÷ìã½Õ»@äÌÞ±JÏñÊ3=äÉAWÜâEÁ0?¸ÒRÎ;*îññÄMý3²RÎI»ôêç¿,?øÑQÍI±¸Ç:ãLÔÇìM
|
||||
âü¸²å³ÍðÂ×<æF´òFµðêS;àŸG¶ñèϱåüÛ¹µýÛûöø÷åõíûÕIú7;=2¸÷ýýñ½í8HºçDYØÉ>Wü6ÎîI¹ì
|
||||
Ê÷ðãËIÇRÎMM*,.ü´F¸ÏKÇ,OT>SϼòæÐLÅøÊ3ѵ>¶ÑXåÑ=ñôè310V×µàW;PÊH¯ô6×òI¿ü.4òJæåûö
|
||||
ñêÛU1Iüº9Íü»øÚßÕÕíûýýü²ÖÊüûùûðßÉIY¸ÛYHîàÅEÇ<OØÒA7ø±åÌIÇ8óOÅ@?زæÐLIµFÄD4ÑO-*
|
||||
ÚSÑM·äòæÏNåµ°æÜÍCñÌëQÕXºÖìãÔý¸ÖTGÜâ÷ÐQÏH²æÎLQĵIÛíX¼ú¸ôñáÉõíë½å騲òéÛ¼úýûõåÝ
|
||||
I¼ýüÛº÷ÇßW<ä;Øâ×òçÑPËèÑOÉ<³øò*JæÀBWøµáÏùú÷=RÏIÁ,óL¿è²×ïàÇ,GâÃC÷¼ôEöZAÚ¸´íÖ5U
|
||||
ìé÷DÌD;LÄ9UøÉ>·øN3·üýXý÷éÏSýì¼ÜÍYͼûèÝ1ÙôÁÉ5õYݺûúG¼õïãÁ1ÚV<µÄ;PÊIÇ8GÈÃ<GTÒR
|
||||
ÐMM*ÒæÎLÅ47ø¹áÏ-74òQÍK»Ôò9?LVQ;MÅA»Wä½ýX@ú¶Z½ú÷±ìÖGÅHëGÀ-ÅZPÄ81¸È?;¼ýýý½øüÚ²
|
||||
â¼=É@ìÛѽYýúñàQÝôÕùÅIH½üøêGúöëñP-P:QAD=QÏKÁ0?4Á87¸>æ*N*D4J¾<ûÙïBÀå¿4/4ÒQÔ2ý·
|
||||
½ïÖKÚÖðTå¼·ïä¿9E8Ú×5Üê÷¯èÔÇ5ôL94NQíJÀ4çQÖñ-8ûýýùÍÉܹ@VQÚØ÷÷ùùñYíÓMÕ9¼·úøç¹õï
|
||||
ãU9ÊðäÓTóæÉDÃ47´òMÇ8?¸>SÏNãæÏß+¾òñÄM¯D²úÌùV¸Cæµõæûñ0ãGâ4Aìà¾ûZäÁ?EÄúC¯åº¶¯æÕ
|
||||
ÅYÔéÉÀʵíáÜÚÛ¹ôúóýÍÝÛûúÜÚ¯ÒAW<ó¹Ø9I½Ý¼ûõÙ9õöñÑåHHúïÄÛUÔSËô>S=SIÈ>çÐPË8W4ÆÄ*æ
|
||||
ÐOÃD?è²ÍÞÏ»Y9ÝüÌ,*ÀÝüù8ßÐVîæÇHOØ>SÐ>¹øÛÉûXÃçZݶ8Îãк3Ý?úÕUäF×ñàÊAAôÐ7¹HëD÷ëÕ
|
||||
GXÓ¿ë¼ôÚ·¸µ8ý÷ìîõÍÍìKÑÓB9Û¿?å¸åàéíý8û¼û̼ù÷ðÁùW¸ÒA?DñãÍPÉDóQÍH³èÒçÑPSèÑRÅ,Þç
|
||||
@¿Mõ8Hûøüí½½XÆ1íJ*îÜ·ýäû¹¶ôìENɰ¿M9T²æÎK½@>æSPó5DòàWIø¿BéP8Ë·ïßü¶Zá½=ѼVصÜV
|
||||
ø¯èÉM9õÛËAý6¸XçËÛ±îÏËÑÝì»»Ýíû°Ñ.ÓG5å/ôò5¹öòùó¹ùîëÉý»ÕRϲòQÍ¿*XòæÏNÅ<7ÈÒ5OÈ>S
|
||||
ÏNÃ8?KÇô2FøòßÁý¼ìܽûÒÜûø7.*8H·êÓ±åÌëEJíU¶6*îLÁÄÚÇðKÈGÛVâÓK5HVÖW͹BñçÌGE0ê=E0
|
||||
ûøòéÅKùæÆ·±´û¹òçH³èçÊMY@ÊØ=0éÖ´öôýéõÕÙ°òQÍÝÀA»éáÜÝݵII»õËôåÐMÅ@W4Ä0AÐÏNÉ@EÌ/
|
||||
ÂN´3F¸ìÕ³ÝÌWHýü²ýüú7.*üüúïÑKÙÌûDÛX¼»½¾S<¶NLÁ87·òL·Èº·°áÊMGXâÒ¯ÉHFAWÕÉBòè×O¹Ô
|
||||
ê3Ñ@û×óâ׳ùæÔ1íXê<äÑ8@ïèÁÍÕNÅÎÑFÙ¶µùüíÑôVGPâ2ðNËQGíâÌYá¼úòäBLSزίî;?ODòίï¯
|
||||
ÍÞϵÄëøñæíóñAû÷µ;*öûïµ±ìúD´ã°Ø÷ü*ÑE¶.%%%
|
||||
d
|
||||
569 104[1 0 0 1 0 0]sl 8 mask 0 208 di
|
||||
/mask 7416 string uc
|
||||
*ÞÀ**ü»ýÅöüÝôûýïùýáõýÅíý9ÝýI¼ý½úüýöûýïùýáõýÅíý9ÝýI¼¯Y-%%
|
||||
d
|
||||
/sl 58607 string uc
|
||||
äÕí´ê9+¾Ð,¾òRÑNá*ºçÐNÇôº÷ÐMQçÑçÙȯáôê5í»ùõñëɽ¸Ð°÷Ð8ë×ñáH×RÎÇ/¹ÜÊÑ5V×?èãQM<ò
|
||||
+ñ+òÆ×½üüÛºáNGÌÚDZO9ç;NÈ@³4?èÆ<³ø²+ÞB¾D³èòSÑRM,:èÑRûý½ã8ËJ+üõóåÅGUµYÝæÝÝÁ*Þó
|
||||
éQIÚðáÍYÑÝ¿½õ1B?,Ö´¼ûظ5ÅâÒçÐϻβ/¾-WS±äÅ<·LóºCÝÜ»¸¯ÝÂGç»,/àêT´U1×=çÁ3¯ÜVè»-
|
||||
0æïÝÀ1½¸ÐOÅ8»R°ñüH½ýýö±Áó¶Î-êÕ9ß¾üöWÂJÅ<OȲJàR;N7X.P9F¾CËø²è8¿MQÙØ°ßÈËÉYYîåÝ
|
||||
¹*2öâ9F*ÞÌQ3FüøðÁM@V·³LEõôü*ÑFîæÃ<?¸òRÏKÃDÏLÁ87.îM·È²Ç°MËOGêÞεñäËAOY¶íJÀ4Eè
|
||||
-æKØ.÷8JÊãQ¹¿23À²B°àÈ8³ZÖÍëõÅÝÝñͽݸàJ1<ñßîÓÉÕÏäÍJ/æÍ¯*8>RÏNÅ<WÈò6*<OزSÏï*G
|
||||
,ÅüÒòà»7ùôüÛÎIýB*.¾K¿*ð8¾éC¶E/QG*VIϾ¾¾>*ß±ó8ÝëÁ1ïâÉÏýÐÏ/QýÛùìÄù@@ËÌÜÓÛIÞ>3F
|
||||
,ÏÁº@>SÏN19ÃæÏ߯ÌñâÉ?SèVØÔ=´ëù³àTU8ò+C4NöîÝÄ-»èåÕ·íãÈ;MÅBÒâͳË8Gèó¸Xüüüùûù¹û
|
||||
éK±»2ë=³îðÖÏöú×òRÀ47°òLÇ@W¸²çÐO1:¹.8ûOæÀñ8Ô»»¹*ýD*B*3ÙßÁ1-Þ·7FËÀFJ:ÇH¶ÑôÞ9Ê-
|
||||
E´GP;úU½Ñ×/í¼Ûôß·/Á¼×ßîÖ,:ä2Ä0F¸ÐMÅ0Óç°ãÇÜ<QÓºKñìÛØ9ܸ±àÂ8é;òIùÄãÆòô÷ÓGZÎU1±
|
||||
HÌÖYõ3ÑáλY±ÝíõéÅ9ÜöÝ2É¿½ÏÌ;Å1îÆ¼0G¸P+ÇDWè²çîMSزÅÞÏUòFBXß×ËM1èY-¾-ÎãθÙÜ*RÅ
|
||||
èÝRξX¶*<âîȸó1@Þ+1ç*¾øå¹42:Y9NK2Þò¾1ÈSÛøNXÓ-2*¶¾0-+6¾´R5@ÆØûà9RD.18òÀEèUG4Ú
|
||||
èÓå³UÒÁ?óºIÌF¾MµHÙZÚ¿GUêT¶²PË<³¸*¾ÌD»¸*îJ+À*úRËAµèÂC>VAº¸µíÔù@ÃéY4²BðK»ýô¸úñ
|
||||
Çå¼VÙ±îXEùêÃY8â1ϽW9I¸ìÎýTóL¹4³4óçÑO+ç,¾RMRDâBDßÏLÃø>èÒRÑô2Fø¾Ì-Ý7ê¸öïÎú³*¶*
|
||||
Sã>ýó?¾ðÖº°îÀ=.1Þ¶Ë5>YüÞ,ÚÌÆã+>AÒ9¶KØâ¿>.+Ê8æÅÄÈÑ0Àº¶Þ;D.+RQàXÕì/èÃIÆ-ÈYòÀÉÎ
|
||||
Ûº¿íãÉý´0ÈݼïºIÌF¾99ì¸îÙ¿G1êT¶NRË@7´F-2⹿Äó*¿*ìñãÆ=³4/¹ÖÕäëØöäVO8òý.TNéÚôãâ
|
||||
ÛòêË»Á@»ÕW1DïE¼YÍ1åVó<ûCÑæÒ+*ÏÂà²çØáS*RØND:;VÎOîæí·0ê@ZèÜ»ÁíÕ+Þ+ò´ßÕ5í*¼áìLå
|
||||
;-:FÞºý0îùÃ/2.Öá,>,***.ÞÛÐ:.Z¸*O±:7ÎØï¾M²2,Î3Pýüû×À-KZÝûÎèúJAú*íÝ7âüûE´¹î¹õ+
|
||||
åùïâ+ÚµíÒ+Ù/ê÷ÛÔÀMR¸ÊQÇ8OTòæÏ?+̲SÐOÉ<G¸>67/îNÇìºC=ãÇBûæØÂGí0ÌøYQ4<èß½?í¼ì?á
|
||||
ìÚCéÎüü·Á<ÓPÌëC¯ÜPÓMËJá5Ä3»çÐOÅ074²R;T²6*.7Ó:LÅ0XÂTò2F,´+Åöõ²ìÚ¹Ý0*1ιBDê¸-æ
|
||||
7;W±UC¾ï¾M5Þ1VÑ0Îù,ÓÅÐîJ1ZµL3ÝêG5¶Å0TKòìÛIU¶;.>ÙHA1äÞIÒì7OéìÛߨ>ÛOɶÜ9Q8Þ¶ñH
|
||||
ûµÞ;ZéT¶6ÑE*2TF¼67*P-6ßæ5ÄFCîI±àÒ3±QÔ¹GðéݽÁPüº¯ÕÉ÷´ßÉÓüâæ-´-B@±ìÕ?¹Ü³ÉÌVC²æ
|
||||
ΰ>çÇáB*W¸ÒRÏLÁ0GÈÏL58ÓæÎLÇ4OØMî2Â/FTÝЯåÜGù¯*J*××,¾E4J7ÂGÛ?*ä++Å@Þ×ââ0JôQ´ú
|
||||
4éÇYNß¿8Öê8ŶS8:.>ݾ,QJ·´*Ǹ³äV´O¸;.ÂÖY.1¸ß÷ÖËÛ97àÄñB½×Ó<¸Ë9Q8*µåÄWØí¾M:ÔÓîB
|
||||
¾2È0*Ê,Â>ÄA8LÄú¿Ï-*=-ñ,H=PÈA³4ËE×ÑÜÛú·ëѱýóRëãÁ1°éàØûóá»çD7DñNé3>RÎßÁ=ÅM*ï21
|
||||
îöJ**æR*:ØMîæ±¿@6õíæÕ¯I1**îL+òG19X믱FJ*Þ¼¯+ÌðÀµ1ZYìN¿>ÖïN482*»ÄÎY·¾ÆÐî,4Ú>/
|
||||
Ö+J´.¿,Ï>÷Ã:Î41ÒGæ/íÖ8ôéàB¶ZäXáÌ/òÓJF8*¼GøYÚÀKåèT¶.N-øúçÒQÏLË4³T·4³W¾FWD**ÊÄ
|
||||
+ÎÑQÏÄ*¾Ñ±¿Ì±PË6UðFÈÔý?»¹÷òßû<ò.ÍTÌûC¯Û²ëæÍLÁ09ÊBÖÐQÏP7*ZTÕTËD0+ÊÔJÒNÊÊ,ÐG,Å
|
||||
øç²á¹+Á¼ýÄ÷Î*ÓÔÖOHI¶MÏ3Êò.¿FÈú*,ÂQYCWÁÄ8ºÕïçÍø48?SÑNËL³¸ÂÆÎHËD0:ä1Æ0*ÎÐNÉÄú7
|
||||
3Ä/Â-¶ÐO±ÜÒÇÏOËìÓWÝɳE9ûÕYÔ6öëÕP³¼.F1H-F¿ç¾-ÆDü:ðBøBFßÉ@GØòæÏLÅÀÏï*Ï3G,Åì2³ä
|
||||
¿/Á¼GEãÄûøS***Q*î´0òóé3.*¯øØ/ð?+¿6ö¿-ÆÔÔÑS,ÅGEôçÃ-±X76³?FÈÎMM*.çÏMÃñÁÞ²>¾:?D
|
||||
*JÀ07ó5ôE5B12,òK¿ØºSñNËEÛSÖÀQ5XÙóPêCñåÊCå0JçÎä×-¯øò+,>-*ÐK1F>æÍI½0/DÀ+Àô2FøQ
|
||||
ÆOMPê·óêË.*¼ù´éÈ?ÉÌ6SUßï6¯î927¸NMÇ@G¹>QËÄGÈÏLM/P6åýÌF¾1?È>SËH»¸ò=Y0óTñOÈC3QÏ
|
||||
NM8à0,6L8Þç,*¯4³ÚïF¾BWD¸ÞÁüúS>RÎKÃ,ÎG,ÅüWTèÏ?±@ûØæÔÛÁìæ·ý0XEòæÓÓ<V·³õ1BO,ż²
|
||||
RÏKÅ0GT>:7S²NÇ@³ø**VSÐMÅ@CÔ,.,Â1ÂE@9öÊDµP²Ç±Pί,?*¯/ÏÌ´>çÐOÉGå6M+à*ÊSÐPÇ0µ4Î
|
||||
IM8¹.8GìOÈSÍü6ø²¸WEõ8,*ýËG·ìØG±°Rôðì9ZÈ-8ççÑRáöà*,*RçÑR-*ºèÒTÕXÓ¸ÓTÐD?è-@RL2
|
||||
*2D2>îTÏTÓT³åÍRKè°-ÆDPJÔT7³BP*Qå8,9Ì/¾SÃè>çöR¶ØMîæ×YFÒ²ðèÔUÉèÔ¹2*º´íÜ»Å䨿Cè
|
||||
ØÖö0+Ñ>îæÆDWè²6J+*67-:NÉÄ1018*.FH¾+°Ø>ç2*RDÌÖÖ:ºBÀ:î¶*:Ò*Î0¶0WÌ=Ê»ÔGÆÒTå*L<B
|
||||
èÐMÃ8?ȲÉÞ;°YUÊ7?G/*ÊPÒÀXùؼÜMÞ>-FÈÐNáóÌ6Þ**<GÈ>çÐßÅàÒçöJ¸øÒç*,J¸*:¾ÈDW¸2B8
|
||||
JÍP³DÓSÒ¯.ïÃÞ²6ÞÇ>.KÂH>G.O0U0CÎÐKÅÄ*ò3FðóãYAÜ5õë¼,*ùµïéãÕõ2Bã*Ű>çÎÞB¾¸¾ÈMC
|
||||
Tòö9>7;6<6ù=PÉ8**Ðï,KÆÁ.L>çÆKÇ4³òî6ß+H8FÀѯ.¿1¯ÎÔòçÑRÉ/ÂSÑAâJÄøí<¶ÒêÕMAÌÙôÌ,
|
||||
*áWFøóWðOCÞ;>Gå5;6Ù5õ-N96*:71:NÉÌýÏÑQÏÄ*Ê+0<*Ï-/ß,+Å:³Ò;KÃ4óÖïúÞ.JVÞòðJLæJF°
|
||||
Ê¿BWøJ@NSÐË,ÅÝåKÌáïÒYBYCJJJNJ²Þ+1Â/BÓTÓXW*ZSÕPÓøÂ/:TÒSÕTW+BAB/25ÞTÑTÃD³èÒOËL
|
||||
?é;¿*¿+Á°O¿4óíÄM»èòçÏQËÌ*2ÑN9FJN*CWØò6*:7/2ó-SÁ4á/Q8ççÑO-2,,KèSã×àæà¸¿öÀ¿Á*Á
|
||||
¶OÆDºZà2Æ01:ÑOË8Dúë¶òLË4G¸>çÏOçRÐMY**:W3¶á+²²çб½/À-ÁJ²÷ZưºÞ¿°ÀÑï-ÎòÞK2*>7@
|
||||
2ÃF°:PËÔ32ÐLU*ü´FØÐOÉ<7+R.*N5+XÂÞ/061.GLÒPÏHËDð2ÐÄ.:ÓRÓÄ4,Ò?Ç*³ç¯Âß.=;W4³+Jâ
|
||||
;B7-*M1<X:,:ûÙïRÃD?èòæÐ;*¿¹¿½ß*ï*áÄÀòæÏMBDF¶PB¸B.JÌT»<*¯+à²çJM·è²R+>G´20:PÏÌ
|
||||
M86Ê*:ÐKÃÌNÂXʯúë¶>TÑH2*Ç4óÃ../ÆÒRM+à+è,4/,1P,2UÔWQ*ÚéÔVÝXë¸?UáȳèÓ¿/H?TÒRÑT
|
||||
ÛT³ºÞ/+.F.3ÊR*ÒM1ñ*½E8ÛçÑNÍD»ØòS²è²çÑQá*à+À*ä-¾çZ¿Þ¾D*UØÒSÐÑ*öòSÒQÏ00ÀÒ;Ä;*.
|
||||
óSÒÑ,¾²Æ+FGå6¿NRÏH7*¶J01,*ÆÔZºì¶.OQöLü8¾ïÓ*61F3+KÈò>*2W6²PÏHÓ¸,:ø2ÓTËè²çο-Í
|
||||
ºZÄA3ïÂ+ü´F,ÏK¿°ÒçD*S¸ò¿:ÜB*Zøà*è-À0ÂçÏÏ*°Òç+-¶¸,ÞÎLË4³òïö°N*JG=2*JOÇ8»à2O0á
|
||||
0ÔÒSÏPý´FÀÐÁ»K*³*Á*ó+K+O*³,18îä.,-ÖSÑTËT»Dóâ;VG±6-B+B¸2*2íº=41¸;:îµáÏUãTÓTÓV
|
||||
ÓP71JSÑX75*Uá,à*Ä+à+¾èƾ¾¾Î*¾ØV*ÎH¶¾:-¾¸ê*×´óè³é**߸ó*J>+N»Þ0,óèξ;Â-Û2<öÙï2
|
||||
Ìä9*β/*KÓ4³F¯/¾P»èÒçÐO9+¿B³ø°6ü´FèÐPÉD³èò6*B73¶=*Ð>ç-::NÉÜL¿U3*LÁ2à*T*Þç-=*
|
||||
Ná4Ä5È6XÖ+671BP:LËüë¶V¯ºË*ÎòG-Úõ¿B*RD,JÌL»²,Å2øÌ3à+¼¶FÀÐAÓõà-0,ìZÞ?8Fï+:D0*Ä
|
||||
Ü5À56¶*,QÒZ0îµá϶Ӹ,*ØÄ*:ÔUÙÄ**ÔA,JÔ°G**Uá+L*NUÔK-Á.¾ó+?¾ÔÃ0¾³.*V7/:UÓ8=Ú*¾+
|
||||
Á**ÎØ@ïÀ4ä*ü´FÀÑÇ-*>»æ+Þòã1NÎ+½E87TÑPËÌ+BÑQÏH71B-¶<*¯Àà>è592F¶P-O0AHZÊîR+È<Y
|
||||
ÆßC=ú붺ÿùÒ¾í7Å*³.¾S»4óçC*ÂèÒçÑSá*ÞçZ¿×¾,*°è²è-D:PÓÄ+Ú¸*¶D8îÎ68¾KWÞ3CÂ/*Ó¿/
|
||||
½E8ËèÔTÛÄ*RÔT×X븳6*Z»:*A*îÀ-À0ä*04¾é*Á-°2²¶ï,µæJÔX»P0¾óºLKK6ÞíÄMÜè>èÑTÍL7/:
|
||||
RÏÄ-2ÒSå*P*îçÑSÏL»±*J³6ÞÃ*BÑUËXG°B´R°¶á0î²:Þ3C*ÑÃ/AʾÌX»øµá;BË;*.èѵM:OG>,úë
|
||||
¶òRËX³TÓSÓQ3èÑTU*2TÒSQ*Þç¾*·ø²SJJÞ+9Â+Â@ÀÓ;ı*µPZâ:Ú:ÌZâî¾7XÇ¿FÃD¼KÎDûÙïB.ÆÎ
|
||||
D³D¸1ÊÌ+Ê*¾Ñ/*18îJ.8>*J»Ñ+O0Qêî²*8ØßÎK·ßíÄMö¸*ÞÙ¸Ûè³éÕYÛÄ-Â,.*Ê,2ÔVå+8.*²7DB
|
||||
-*TU.RéÕV-2ìÆKãJÇßÏ,FJÁ5-ZYÓ¼ûøµáÏBø,*ÌÄ*2ÑP96*F7**P5*8FJïJ6JWÞË*Ò5>AÚJÁ=°B
|
||||
+¶.0M0á0ÞòéÄMî½å*öÖï2üíD*ü³F¼ý4öüïöûáïùÅáõ9ÅíI8ݽF¼ý¶úüµîûáïùÅáõ9ÅíI8EJGêùøö
|
||||
óY@*2üøíõÁ8A9ï5àϹ1ͼ»ýõÝIAâÁí;*ÚµìÝ·ý8ÌÛùÓÎáïMúÀ¶òçÁ1ýûÚ»ýøS»ùóõ2*8H·êÓ±åÌë
|
||||
EJÝ3¸Ú»Âµ2ÅÌù³ëÕ±ÉåÝIëÝIý8+ÞíÍI¼D²é×YÑéãÕí-GìHàEÂMí6ÙóåÏÝéåYøñÝO*öûïµ±ìúD´ã°
|
||||
Ø÷ÃÎáçMºÁ¶ò½Y½¼ê׸ùøÃüûÉ.*ÕYIûîÈ9½¼Ëü0ü»9ò:øóݺÂL*èäÕíõ1ÅÌ´³ãÀ?EAÝÜÞÍI;*2·B°
|
||||
,ÀV²ÞïÕAIF°ßÈU=Ø·µQÊ8SGàEÂM½T¸ïÜÄ»¹ýXæÍ½.*¸@:1,>ê¶/,K*ô¿ò÷*8ÄÞ7.:éñåQK-14Þç½
|
||||
õÜÙïÜÃOÑѵ³QÄ8×RàëMºÁ¶òAK5̹Öôóë+úM*ÞVS*GÜûµâÕL:.**Fò¾C*Þüà+XéÞO1öôé³9ÌUBòÉQ
|
||||
ÞA7¸NÑ3Q9ï7àÏUòFBXß×ËM1è9+¾Òï÷Þ+Ú´R5@ÆØWG*QÆß?ó***ÎÌ+R1FN-*èá+À,Ú¸*ó@RýL¿,Jõ
|
||||
¾0ÌW߯*¶òä±5ÄEÖ±ÃQÞA5¸ÚÏ.Í0ß+óèIíSJ¾ºËâ;ÜKFø¾Ì-Ý7ê¸öïÎú;*2.Ù9F¾¹<ô¸óXÎÈ-ÎïDA
|
||||
RÜF¾;*Ï=ð¿-Ò,Z¶ÞÉQ0X¶À-6¶µ/µ-¾Ä1µGÈKF1º,¼×Îá7OÆ-È--ÎμÞÇ@Çâ;ÜKFø¹Ì+Ù/ÊØµíîù;
|
||||
*2.Ó9F¾QBûùõå4¼-¾Ü½-öû¹3¾J¾ûÄ,P+VµÏñÆÛÞ¾¹U¶E*ìÙµè¾ë,ôúì3öãÀ8µ>¿úÎèF>,+**:*õF
|
||||
8ï7à;Z5ÁÁ½QñäÛù;*2B<9F¾U2Û¹õå4¸-:Û¹I;*¸ÞDó¸*Þû*.6г´?ÝÎ+Îîê4ì0¾ï仸í*IÞô.ú°K
|
||||
ÅEÈÞ×ó·çÛù,Ó÷FàEÂM:@0QûÈÄGùôêµ*Þ±¼¾R·³ßE±ùNÛD±Ü?S´*<¹ô=,JV°°51J/.U¹*,ìJêçW+Z
|
||||
Ì˾SÌ7JбU¶D*¶¹´êÐû0ö+¯QÞA5¸ÚÏ.QêAÀê×I×ïUVQÌâ;ÜKFøVÎ/áûEø³êå*Þ·ÔϾJ/IÖ;¹M2>R
|
||||
È6E*ê*ù3+¶È5ÜG¾7ùÑ/Zí+2ö¹8HÚØá0´SN+´*ÅÕZ4îP*öóæ½ï40Gé3öãÀ8,E¾5Èî?8RÁ7ùðP4N¿7
|
||||
ÇFàEÂMû²ØïÛ¾KÝ=ÚVB¾TUêð¸/80î»0ææ¿õDHûç3öOÊ8å@îî;ÜKF¸MÒC1@6øóê>EôéQ+**>*F5+ÉJ
|
||||
*2ѵË:C2¶êׯÍXFBñèÞæ3öÛPÅ-ê¶æ7·GàEÂMý.ײâÂGÕÌ»Í*îÙµÙÔV×òâÆÌ¾í4æïò;ÜKFøµSSÅÔÊ
|
||||
×òéLÙôOÜÏñü7Ú´æÏUUOÖðèÜ1¸Ú»Âµ2Å8õ<ãÒQ½0»DÛÔËù<+Þ½±QÌÙ´åÊ6ÈÛÚAÀ8Q9ï7àϱݶRçâÓ
|
||||
WÕ@ÓWY<*º´íÜ»Å䨿CèØÖö»ÎáïMºÁ¶Âêé4±Mã°+¾çÂTæ³YéåõÀ8A9ï7à;YYü¸ïÛ¶íX?*>ìÛÃYAݼ
|
||||
Cò¶ö2í:8?ùóæÃñÔ»×*JÚÃM½ó»ÉJÅÁÅö0ïÖ=ûðûáïùÅáõ9ÅíI8ݽF¼ý¶úüïöûáïù;õ9ÅíI8Ù=8+ä
|
||||
-**Eݽ*NH01ÖRúø7¶ÒLÃ<?4òåõ9*çÍ¿óâ·±ä5¶ÒB¯ì.D>æõ9*÷Ñ+ùÚ÷ÐOɼû0FàÆ<SàÚ÷û-Þ0êJ¯
|
||||
Ð>CÐYÝ+ÅØ¯áÅ:MÌúü+:½DZÈ>M¼úæÕí¾MÉB¯LÃíI*´Þ0°;á**ïéµÞïù9¾ã.,Öøü+ZIÂ*%
|
||||
d
|
||||
569 103[1 0 0 1 0 0]sl 8 mask 0 312 di
|
||||
|
||||
QP
|
||||
%%Trailer
|
||||
%%Pages: 1
|
||||
%%DocumentFonts:
|
||||
%%EOF
|
||||
BIN
doc/screenshot.png
Normal file
|
After Width: | Height: | Size: 85 KiB |
@@ -5,14 +5,13 @@ kde_module_LTLIBRARIES = kcm_krfb.la
|
||||
|
||||
kcm_krfb_la_SOURCES = configurationwidget.ui kcm_krfb.cpp
|
||||
kcm_krfb_la_LDFLAGS = $(all_libraries) $(KDE_PLUGIN) -module
|
||||
kcm_krfb_la_LIBADD = ../krfb/libkrfbconfig.la $(LIB_KDEUI)
|
||||
kcm_krfb_la_LIBADD = ../krfb/libkrfbconfig.la $(LIB_KDEUI) -lkio
|
||||
|
||||
# Services
|
||||
kcmdir = $(kde_appsdir)/Settings/Network
|
||||
kcm_DATA = kcmkrfb.desktop
|
||||
xdg_apps_DATA = kcmkrfb.desktop
|
||||
|
||||
EXTRA_DIST = $(kcm_krfb_la_SOURCES)\
|
||||
$(kcm_DATA)
|
||||
$(xdg_apps_DATA)
|
||||
|
||||
# set the include path for X, qt and KDE
|
||||
INCLUDES= -I../krfb $(all_includes)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE UI><UI version="3.0" stdsetdef="1">
|
||||
<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
|
||||
<class>ConfigurationWidget</class>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
@@ -12,9 +12,6 @@
|
||||
<height>445</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="caption">
|
||||
<string>ConfWidget</string>
|
||||
</property>
|
||||
<property name="icon">
|
||||
<pixmap>image0</pixmap>
|
||||
</property>
|
||||
@@ -23,7 +20,7 @@
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>11</number>
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
@@ -53,12 +50,6 @@
|
||||
<property name="name">
|
||||
<cstring>GroupBox1</cstring>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>Box</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>Sunken</enum>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Invitations</string>
|
||||
</property>
|
||||
@@ -80,7 +71,7 @@
|
||||
<cstring>invitationNumLabel</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>You have no open invitation.</string>
|
||||
<string>You have no open invitations.</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton">
|
||||
@@ -148,7 +139,7 @@
|
||||
<cstring>enableSLPCB</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Announce &service on the network</string>
|
||||
<string>Announce service &on the network</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
@@ -162,7 +153,7 @@
|
||||
<cstring>confirmConnectionsCB</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Confirm uninvited connections before accepting</string>
|
||||
<string>Confirm uninvited connections &before accepting</string>
|
||||
</property>
|
||||
<property name="whatsThis" stdset="0">
|
||||
<string>If enabled, a dialog will appear when somebody attempts to connect, asking you whether you want to accept the connection.</string>
|
||||
@@ -222,7 +213,7 @@
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Password:</string>
|
||||
<string>Pass&word:</string>
|
||||
</property>
|
||||
<property name="buddy" stdset="0">
|
||||
<cstring>passwordInput</cstring>
|
||||
@@ -265,6 +256,75 @@
|
||||
</spacer>
|
||||
</vbox>
|
||||
</widget>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>tab</cstring>
|
||||
</property>
|
||||
<attribute name="title">
|
||||
<string>&Session</string>
|
||||
</attribute>
|
||||
<vbox>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<widget class="QGroupBox">
|
||||
<property name="name">
|
||||
<cstring>GroupBox4</cstring>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Session Preferences</string>
|
||||
</property>
|
||||
<vbox>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<widget class="QCheckBox">
|
||||
<property name="name">
|
||||
<cstring>disableBackgroundCB</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Always disable &background image</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="whatsThis" stdset="0">
|
||||
<string>Check this option to always disable the background image during a remote session. Otherwise the client decides whether the background will be enabled or disabled.</string>
|
||||
</property>
|
||||
</widget>
|
||||
</vbox>
|
||||
</widget>
|
||||
<spacer>
|
||||
<property name="name">
|
||||
<cstring>Spacer4</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</vbox>
|
||||
</widget>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>tab</cstring>
|
||||
@@ -304,7 +364,7 @@
|
||||
<cstring>autoPortCB</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>A&ssign port automatically</string>
|
||||
<string>Assi&gn port automatically</string>
|
||||
</property>
|
||||
<property name="checked">
|
||||
<bool>true</bool>
|
||||
@@ -341,7 +401,7 @@
|
||||
<cstring>TextLabel1_2</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Port:</string>
|
||||
<string>P&ort:</string>
|
||||
</property>
|
||||
<property name="buddy" stdset="0">
|
||||
<cstring>portInput</cstring>
|
||||
@@ -358,7 +418,7 @@
|
||||
<number>1024</number>
|
||||
</property>
|
||||
<property name="maxValue">
|
||||
<number>32767</number>
|
||||
<number>65535</number>
|
||||
</property>
|
||||
<property name="toolTip" stdset="0">
|
||||
<string>Enter the TCP port number here</string>
|
||||
@@ -436,4 +496,8 @@ Most VNC clients use a display number instead of the actual port. This display n
|
||||
<tabstop>portInput</tabstop>
|
||||
</tabstops>
|
||||
<layoutdefaults spacing="6" margin="11"/>
|
||||
<includehints>
|
||||
<includehint>knuminput.h</includehint>
|
||||
<includehint>knuminput.h</includehint>
|
||||
</includehints>
|
||||
</UI>
|
||||
|
||||
@@ -45,11 +45,11 @@ typedef KGenericFactory<KcmKRfb, QWidget> KcmKRfbFactory;
|
||||
|
||||
// Can't use K_EXPORT_COMPONENT_FACTORY, since insertCatalogue necessary
|
||||
extern "C" {
|
||||
void *init_kcm_krfb() {
|
||||
KDE_EXPORT void *init_kcm_krfb() {
|
||||
KGlobal::locale()->insertCatalogue("krfb"); // For invitation translations
|
||||
return new KcmKRfbFactory("kcm_krfb");
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
|
||||
@@ -63,12 +63,13 @@ KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
|
||||
|
||||
setButtons(Default|Apply|Reset);
|
||||
|
||||
m_about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"),
|
||||
KAboutData* about = new KAboutData( "kcm_krfb", I18N_NOOP("Desktop Sharing Control Module"),
|
||||
VERSION,
|
||||
I18N_NOOP("Configure desktop sharing"), KAboutData::License_GPL,
|
||||
"(c) 2002, Tim Jansen\n",
|
||||
0, "http://www.tjansen.de/krfb", "tim@tjansen.de");
|
||||
m_about->addAuthor("Tim Jansen", 0, "tim@tjansen.de");
|
||||
about->addAuthor("Tim Jansen", 0, "tim@tjansen.de");
|
||||
setAboutData( about );
|
||||
|
||||
load();
|
||||
|
||||
@@ -84,9 +85,7 @@ KcmKRfb::KcmKRfb(QWidget *p, const char *name, const QStringList &) :
|
||||
connect(&m_configuration, SIGNAL(invitationNumChanged(int)),
|
||||
this, SLOT(setInvitationNum(int)));
|
||||
setInvitationNum(m_configuration.invitations().size());
|
||||
}
|
||||
KcmKRfb::~KcmKRfb() {
|
||||
delete m_about;
|
||||
connect(m_confWidget->disableBackgroundCB, SIGNAL(clicked()), SLOT(configChanged()) );
|
||||
}
|
||||
|
||||
void KcmKRfb::configChanged() {
|
||||
@@ -133,6 +132,8 @@ void KcmKRfb::load() {
|
||||
m_confWidget->autoPortCB->setChecked(m_configuration.preferredPort()<0);
|
||||
m_confWidget->portInput->setValue(m_configuration.preferredPort()> 0 ?
|
||||
m_configuration.preferredPort() : 5900);
|
||||
m_confWidget->disableBackgroundCB->setChecked(m_configuration.disableBackground());
|
||||
emit changed(false);
|
||||
}
|
||||
|
||||
void KcmKRfb::save() {
|
||||
@@ -148,7 +149,10 @@ void KcmKRfb::save() {
|
||||
m_configuration.setPreferredPort(-1);
|
||||
else
|
||||
m_configuration.setPreferredPort(m_confWidget->portInput->value());
|
||||
m_configuration.setDisableBackground(m_confWidget->disableBackgroundCB->isChecked());
|
||||
m_configuration.save();
|
||||
kapp->dcopClient()->emitDCOPSignal("KRFB::ConfigChanged", "KRFB_ConfigChanged()", QByteArray());
|
||||
emit changed(false);
|
||||
}
|
||||
|
||||
void KcmKRfb::defaults() {
|
||||
@@ -162,16 +166,13 @@ void KcmKRfb::defaults() {
|
||||
m_confWidget->passwordInput->setText("");
|
||||
m_confWidget->autoPortCB->setChecked(true);
|
||||
m_confWidget->portInput->setValue(5900);
|
||||
}
|
||||
|
||||
const KAboutData *KcmKRfb::aboutData() const
|
||||
{
|
||||
return m_about;
|
||||
m_confWidget->disableBackgroundCB->setChecked(false);
|
||||
emit changed(true);
|
||||
}
|
||||
|
||||
QString KcmKRfb::quickHelp() const
|
||||
{
|
||||
return i18n("<h1>Desktop Sharing Configuration</h1> This module allows you to configure"
|
||||
return i18n("<h1>Desktop Sharing</h1> This module allows you to configure"
|
||||
" the KDE desktop sharing.");
|
||||
}
|
||||
|
||||
|
||||
@@ -30,17 +30,14 @@ class KcmKRfb : public KCModule {
|
||||
private:
|
||||
Configuration m_configuration;
|
||||
ConfigurationWidget *m_confWidget;
|
||||
KAboutData *m_about;
|
||||
void checkKInetd(bool&, bool&);
|
||||
public:
|
||||
KcmKRfb(QWidget *p, const char *name, const QStringList &);
|
||||
~KcmKRfb();
|
||||
|
||||
void load();
|
||||
void save();
|
||||
void defaults();
|
||||
QString quickHelp() const;
|
||||
const KAboutData *aboutData() const;
|
||||
private slots:
|
||||
void setInvitationNum(int num);
|
||||
void configChanged();
|
||||
|
||||
@@ -3,117 +3,187 @@ Encoding=UTF-8
|
||||
Icon=krfb
|
||||
Type=Application
|
||||
Exec=kcmshell kcmkrfb
|
||||
DocPath=krfb/krfb-configuration.html
|
||||
|
||||
X-KDE-ModuleType=Library
|
||||
X-KDE-Library=krfb
|
||||
X-KDE-ParentApp=kcontrol
|
||||
|
||||
Name=Desktop Sharing
|
||||
Name[af]=Werkskerm Deeling
|
||||
Name[bg]=Споделяне на Работно място
|
||||
Name[ar]=مشاركة سطح المكتب
|
||||
Name[be]=Агульнае выкарыстанне стальніцы
|
||||
Name[bg]=Споделяне на работното място
|
||||
Name[bn]=ডেস্কটপ ভাগাভাগি
|
||||
Name[br]=Rannañ ar vurev
|
||||
Name[bs]=Dijeljenje desktopa
|
||||
Name[ca]=Compartició de l'escriptori
|
||||
Name[cs]=Sdílení pracovní plochy
|
||||
Name[da]=Skrivebordsdeling
|
||||
Name[cy]=Rhannu Penbwrdd
|
||||
Name[da]=Desktopdeling
|
||||
Name[de]=Arbeitsfläche freigeben
|
||||
Name[el]=Μοίρασμα της επιφάνειας εργασίας
|
||||
Name[el]=Κοινή χρήση επιφάνειας εργασίας
|
||||
Name[eo]=Tabuloj komunaj
|
||||
Name[es]=Compartición de escritorio
|
||||
Name[es]=Escritorio compartido
|
||||
Name[et]=Töölaua jagamine
|
||||
Name[fi]=Työpöytien jako
|
||||
Name[eu]=Mahaigain partekatzea
|
||||
Name[fa]=اشتراک رومیزی
|
||||
Name[fi]=Työpöydän jakaminen
|
||||
Name[fr]=Partage de bureau
|
||||
Name[ga]=Roinnt Deisce
|
||||
Name[gl]=Compartición do escritorio
|
||||
Name[he]=שיתוף שולחנות עבודה
|
||||
Name[hi]=डेस्कटॉप साझेदारी
|
||||
Name[hr]=Dijeljenje radne površine
|
||||
Name[hu]=Munkaasztal-megosztás
|
||||
Name[is]=Skjáborðamiðlun
|
||||
Name[it]=Condivisione Desktop
|
||||
Name[ja]=デスクトップ共有
|
||||
Name[kk]=Үстелді ортақтастыру
|
||||
Name[km]=ការចែករំលែកផ្ទៃតុ
|
||||
Name[lt]=Dalinimasis darbastaliu
|
||||
Name[mk]=Делење на работната површина
|
||||
Name[mn]=Ажлын байрыг хамтран эзэмших
|
||||
Name[ms]=Perkongsian Ruang Kerja
|
||||
Name[mt]=Qsim tad-desktop
|
||||
Name[nb]=Delte skrivebord
|
||||
Name[nl]=Bureaubladvrijgave
|
||||
Name[nds]=Schriefdisch-Freegaav
|
||||
Name[ne]=डेस्कटप साझेदारी
|
||||
Name[nl]=Bureaublad delen
|
||||
Name[nn]=Skrivebordsdeling
|
||||
Name[nso]=Kabagano ya Desktop
|
||||
Name[pl]=Współdzielenie biurka
|
||||
Name[pa]=ਡੈਸਕਟਾਪ ਸਾਂਝ
|
||||
Name[pl]=Współdzielenie pulpitu
|
||||
Name[pt]=Partilha do Ambiente de Trabalho
|
||||
Name[pt_BR]=Compartilhamento do Desktop
|
||||
Name[ro]=Partajare ecran
|
||||
Name[ru]=Общий рабочий стол
|
||||
Name[se]=Čállinbeavdejuohkkin
|
||||
Name[sk]=Zdieľanie pracovnej plochy
|
||||
Name[sl]=Deljenje namizja
|
||||
Name[sr]=Дељење радне површине
|
||||
Name[sr@Latn]=Deljenje radne površine
|
||||
Name[sv]=Dela ut skrivbordet
|
||||
Name[ta]=பணிமேடை பகிர்வு
|
||||
Name[tg]=Истифодабарии муштараки Мизи корӣ
|
||||
Name[th]=ใช้งานพื้นที่ทำงานร่วมกัน
|
||||
Name[tr]=Masaüstü Paylaşımı
|
||||
Name[uk]=Спільні стільниці
|
||||
Name[ven]=U kovhekana ha Desikithopo
|
||||
Name[xh]=Ukwehlulelana kwe Desktop
|
||||
Name[zh_CN]=桌面共享
|
||||
Name[zh_HK]=桌面分享
|
||||
Name[zh_TW]=桌面分享
|
||||
Name[zu]=Ukwahlulelana kwe-Desktop
|
||||
|
||||
Comment=Configure Desktop Sharing
|
||||
Comment[af]=Konfigureer Werkskerm Deeling
|
||||
Comment[bg]=Конфигуриране на 'Споделяне на Работно място'
|
||||
Comment[ar]=تعديل مشاركة سطح المكتب
|
||||
Comment[be]=Настаўленне агульнага выкарыстання стальніцы
|
||||
Comment[bg]=Настройване споделянето на работното място
|
||||
Comment[bn]=ডেস্কটপ ভাগাভাগি কনফিগার করুন
|
||||
Comment[br]=Kefluniañ rannañ ar vurev
|
||||
Comment[bs]=Podesite dijeljenje desktopa
|
||||
Comment[ca]=Lupa de l'escriptori
|
||||
Comment[cs]=Nastavit sdílení pracovní plochy
|
||||
Comment[da]=Indstil skrivebordsdeling
|
||||
Comment[cy]=Ffurfweddu Rhannu Penbwrdd
|
||||
Comment[da]=Indstil desktopdeling
|
||||
Comment[de]=Freigabe der Arbeitsfläche einrichten
|
||||
Comment[el]=Ρύθμιση του μοιράσματος της επιφάνειας εργασίας
|
||||
Comment[el]=Ρύθμιση της κοινής χρήσης της επιφάνειας εργασίας
|
||||
Comment[eo]=Agordu fordonadon de viaj tabuloj
|
||||
Comment[es]=Compartición de escritorio
|
||||
Comment[es]=Configure su escritorio compartido
|
||||
Comment[et]=Töölaua jagamise seadistamine
|
||||
Comment[fi]=Aseta työpöytien jakoa
|
||||
Comment[eu]=Konfiguratu mahaigain partekatzea
|
||||
Comment[fa]=پیکربندی اشتراک رومیزی
|
||||
Comment[fi]=Aseta työpöydän jakaminen
|
||||
Comment[fr]=Configuration du partage du bureau
|
||||
Comment[ga]=Cumraigh Roinnt Deisce
|
||||
Comment[gl]=Configura-la compartición do escritorio
|
||||
Comment[he]=שינוי הגדרות שיתוף שולחנות העבודה
|
||||
Comment[hi]=कॉन्फ़िगर डेस्कटॉप साझेदारी
|
||||
Comment[hr]=Podešavanje dijeljenja radne površine
|
||||
Comment[hu]=A munkaasztal-megosztás beállításai
|
||||
Comment[is]=Stilla skjáborðsmiðlun
|
||||
Comment[it]=Configura condivisione desktop
|
||||
Comment[ja]=デスクトップ共有の設定
|
||||
Comment[lt]=Konfigūruoti dalinimąsi darbastaliu
|
||||
Comment[nb]=Sett opp delte skrivebord
|
||||
Comment[nl]=Bureaubladvrijgave configureren
|
||||
Comment[kk]=Үстелді ортақтастыруды баптау
|
||||
Comment[km]=កំណត់រចនាសម្ព័ន្ធការចែករំលែកផ្ទៃតុ
|
||||
Comment[lt]=Derinti dalinimąsi darbastaliu
|
||||
Comment[mk]=Конфигурирајте делење на површината
|
||||
Comment[mn]=Ажлын байрны хамтран эзэмших тохируулга
|
||||
Comment[ms]= Selaraskan Perkongsian Desktop
|
||||
Comment[nb]=Tilpass delte skrivebord
|
||||
Comment[nds]=Schriefdisch-Freegaav instellen
|
||||
Comment[ne]=डेस्कटप साझेदारी कन्फिगर गर्नुहोस्
|
||||
Comment[nl]=Bureaublad delen instellen
|
||||
Comment[nn]=Set opp skrivebordsdeling
|
||||
Comment[nso]=Beakanya Kabagano ya Desktop
|
||||
Comment[pl]=Konfiguracja współdzielenia biurka
|
||||
Comment[pt]=Configurar a Partilha de Ecrã
|
||||
Comment[pa]=ਡੈਸਕਟਾਪ ਸਾਂਝ ਸੰਰਚਨਾ
|
||||
Comment[pl]=Konfiguracja współdzielenia pulpitu
|
||||
Comment[pt]=Configura a Partilha do Ecrã
|
||||
Comment[pt_BR]=Configurar Compartilhamento do Desktop
|
||||
Comment[ru]=Параметры общего рабочего стола
|
||||
Comment[se]=Heivet čállinbeavdejuohkkima
|
||||
Comment[sk]=Nastavenie zdieľania pracovnej plochy
|
||||
Comment[sl]=Nastavi deljenje namizja
|
||||
Comment[sr]=Подешавање дељења радне површине
|
||||
Comment[sr@Latn]=Podešavanje deljenja radne površine
|
||||
Comment[sv]=Anpassa utdelning av skrivbord
|
||||
Comment[ta]=பணிமேடை பகிர்வை உள்ளமை
|
||||
Comment[tg]=Батанзимдарории Истифодабарии муштараки Мизи корӣ
|
||||
Comment[tr]=Masaüstü Paylaşımını Yapılandır
|
||||
Comment[uk]=Налаштувати спільні стільниці
|
||||
Comment[ven]=Dzudzanyani u kovhekana ha desikithopo
|
||||
Comment[xh]=Qwalasela Ukusebenzisa ngokuhlangeneyo kwe Desktop
|
||||
Comment[zh_CN]=配置桌面共享
|
||||
Comment[zh_HK]=設定桌面分享
|
||||
Comment[zh_TW]=設定桌面分享
|
||||
Comment[zu]=Hlela kahle Ukwahlulelana kwe-Desktop
|
||||
Keywords=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp
|
||||
Keywords[bs]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp,dijeljenje desktopa,dijeljenje
|
||||
Keywords[ca]=compartició de l'escriptori,krfb,vnc,compartir,rdp,krdc,connexió a l'escriptori remot,rdp
|
||||
Keywords[cs]=sdílení plochy,krfb,vnc,sdílení,rdp,krdc,připojení vzdálené plochy
|
||||
Keywords[da]=skrivebordsdeling,krfb,vnc,deling,rdp,krdc,ekstern skrivebordsforbindelse ,rdp
|
||||
Keywords[de]=Arbeitsfläche freigen,krfb,vnc,freigeben,rdp,krdc,Verbindung zur Arbeitsfläche über das Netzwerk,rdp
|
||||
Keywords[el]=μοίρασμα επιφάνειας εργασίας,krfb,vnc,μοίρασμα,rdp,krdc,σύνδεση σε απομακρυσμένη επιφάνεια εργασίας,rdp
|
||||
Keywords[eo]=tabulo,tabulofordonado,fordonado,rdp,krdc,foraj tabuloj
|
||||
Keywords[es]=compartición de escritorio,krfb,vnc,compartir,rdp,krdc, conexión escritorio remoto,rdp
|
||||
Keywords[et]=töölaua jagamine,krfb,vnc,jagamine,rdp,krdc,kaugtöölaua ühendus,rdp
|
||||
Keywords[fi]=työpöydän jako,krfb,vnc,jako,rdp,krdc,etätyöpöytä
|
||||
Keywords[fr]=partage du bureau,krfb,vnc,rdp,krdc,connexion à un bureau distant,rdp
|
||||
Keywords[he]=שיתוף שולחן עבודה,krfb,vnc,שיתוף,rdp,krdc,חיבור לשולחן עבודה מרוחק,rdp
|
||||
Keywords[hu]=munkaasztal-megosztás,krfb,vnc,megosztás,rdp,krdc,csatlakozás távoli munkaasztalhoz,rdp
|
||||
Keywords[it]=condivisione desktop,krfb,vnc,condivisione,rdp,krdc, connessione desktop remoto,rdp
|
||||
Keywords[ja]=デスクトップ共有,krfb,vnc,共有,rdp,krdc,リモートデスクトップ接続,rdp
|
||||
Keywords[lt]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp, dalinimasis darbastaliu,prisijungimas prie nutolusio darbastalio
|
||||
Keywords[nb]=skrivebordsdeling,krfb,vnc,deling,rdp,krdc,fjernt skrivebord,rdp
|
||||
Keywords[nl]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp,verbinding,bureaubladvrijgave,bureaublad op afstand
|
||||
Keywords[nn]=skrivebordsdeling,krfb,vnc,deling,rdp,krdc,nettverksskrivebord
|
||||
Keywords[nso]=kabagano ya Desktop,krfb,vnc,kabagano,rdp,krdc,kopantsho desktop ya remote, rdp
|
||||
Keywords[pl]=współdzielenie biurko,krfb,vnc,współdzielenie,rdp,krdc,zdalne połączenie
|
||||
Keywords[pt]=partilha do ecrã,krfb,vnc,partilha,rdp,krdc,ligação a um ecrã remoto,rdp
|
||||
Keywords[pt_BR]=compartilhamento de desktop,krfb,vnc,sharing,rdp,krdc,conexão a desktop remoto,rdp
|
||||
Keywords=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
|
||||
Keywords[ar]=مشاركة سطح المكتب,krfb,vnc,مشاركة,krdc,اتصال سطح مكتب بعيد,دعوة,منفذ,slp,غير مدعو
|
||||
Keywords[be]=агульнае выкарыстанне стальніцы,злучэнне,аддалены кампутар,запрашэнне,порт,desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
|
||||
Keywords[bg]=споделяне, работно, място, десктоп, покана, връзка, desktop sharing, krfb, vnc, sharing, krdc, remote desktop connection, invitation, port, slp, uninvited
|
||||
Keywords[bs]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,dijeljenje desktopa,dijeljenje,udaljeni dekstop,poziv,nepozvan
|
||||
Keywords[ca]=compartició de l'escriptori,krfb,vnc,compartir,krdc,connexió a l'escriptori remot,invitació,port,slp,no invitat
|
||||
Keywords[cs]=sdílení plochy,krfb,vnc,sdílení,rdp,krdc,připojení vzdálené plochy,pozvánka,port,slp
|
||||
Keywords[cy]=rhannu penbwrdd,krfb,vnc,rhannu,rdp,krdc,cysylltiad penbwrdd pell,gwahoddiad,porth,slp,heb wahoddiad
|
||||
Keywords[da]=desktopdeling,krfb,vnc,deling,krdc,ekstern desktopforbindelse,invitation,port,slp,ikke inviteret
|
||||
Keywords[de]=Arbeitsfläche freigeben,krfb,VNC,freigeben,krdc,Entfernte Arbeitsfläche,Einladung,Port,slp,uneingeladen
|
||||
Keywords[el]=κοινή χρήση επιφάνειας εργασίας,krfb,vnc,κοινή χρήση,krdc,σύνδεση σε απομακρυσμένη επιφάνεια εργασίας,πρόσκληση,θύρα,slp,απρόσκλητο
|
||||
Keywords[es]=escritorio compartido,krfb,vnc,compartir,rdp,krdc, conexión escritorio remoto,invitación,puerto,slp,no invitado
|
||||
Keywords[et]=töölaua jagamine,krfb,vnc,jagamine,rdp,krdc,kaugtöölaua ühendus,rdp,kutse,port,slp,kutsumata
|
||||
Keywords[eu]=mahaigain partekatzea,krfb,vnc,partekatzea,krdc,urruneko mahaigain konexioa,gonbidapena,ataka,slp,gonbidapen gabea
|
||||
Keywords[fa]=اشتراک رومیزی، krfb، vnc، اتصال رومیزی راه دور، دعوت، درگاه، slp، دعوتنشده
|
||||
Keywords[fi]=työpöydän jakaminen,krfb,vnc,jakaminen,krdc,etätyöpöytäyhteys, kutsu,portti,slp,kutsumaton, työpöytä
|
||||
Keywords[fr]=partage de bureau,krfb,vnc,partage,rdp,krdc,connexion à un bureau distant,invitation,port,slp,non invité
|
||||
Keywords[gl]=compartición de escritorio, vnc, compartir, krdc, conexión escritorio remoto, invitación, porto, slt
|
||||
Keywords[he]=שיתוף שולחן עבודה,שיתוף,חיבור לשולחן עבודה מרוחק,desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection, invitation, port, slp, uninvited
|
||||
Keywords[hi]=डेस्कटॉप साझेदारी, केआरएफबी,वीएनसी,साझेदारी,केआरडीसी,रिमोट डेस्कटॉप कनेक्शन,निमंत्रण,पोर्ट,एसएलपी,बिन बुलाए
|
||||
Keywords[hu]=munkaasztal-megosztás,krfb,vnc,megosztás,krdc,csatlakozás távoli munkaasztalhoz,meghívás,port,slp,meghívás nélkül
|
||||
Keywords[is]=skjáborðsmiðlun,miðlun,krfb,vnc,rdp,krdc,fjarvinnsla,remote desktop connection,rdp
|
||||
Keywords[it]=condivisione desktop,krfb,vnc,condivisione,krdc,connessione desktop remoto,invito,porta,slp,non invitato
|
||||
Keywords[ja]=デスクトップ共有,krfb,vnc,共有,rdp,krdc,リモートデスクトップ接続,招待,ポート,slp,uninvited
|
||||
Keywords[km]=ការចែករំលែកផ្ទៃតុ,krfb,vnc,ការចែករំលែក,krdc,ការតភ្ជាប់ផ្ទៃតុពីចម្ងាយ,អញ្ជើញ,ច្រក,slp,មិនបានអញ្ជើញ
|
||||
Keywords[lt]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,dalinimasis darbastaliu,nutolusio darbastalio prijungimas,kvietimas,ryšys,nekviestas,jungtis,prievadas,dalintis,pasidalinti,jungimasis,prisijungti,kviesti
|
||||
Keywords[mk]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,делење на површината,krfb,vnc,делење,krdc,поврзување со оддалечена површина,покана,порта,slp,непоканет
|
||||
Keywords[ms]= perkongsian ruang kerja, sambungan, liang, desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited
|
||||
Keywords[nb]=skrivebordsdeling,krfb,vnc,deling,krdc,tilkobling til fjernt skrivebord,invitasjon,port,slp,ikke invitert
|
||||
Keywords[nds]=schriefdisch,freegeven,freegaav,krfb,vnc,delen,krdc,feern Schriefdisch,verbinnen,inladen,port,slp,nich inlaadt
|
||||
Keywords[ne]=डेस्कटप साझेदारी,krfb,vnc,साझेदारी,krdc, टाढाको डेस्कटप जडान,निमन्त्रणा,पोर्ट,slp,निमन्त्रणा नगरिएको
|
||||
Keywords[nl]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,uitnodiging,slp,rdp,verbinding, bureaublad delen,bureaublad op afstand
|
||||
Keywords[nn]=skrivebordsdeling,krfb,vnc,deling,krdc,nettverksskrivebord,invitasjon,port,slp,ikkje invitert
|
||||
Keywords[pl]=współdzielenie pulpitu,krfb,vnc,współdzielenie,rdp,krdc,zdalne połączenie, zdalne biurko, zdalny pulpit, zaproszenie,port,slp
|
||||
Keywords[pt]=partilha do ecrã,krfb,vnc,partilha,krdc,ligação a um ecrã remoto,convite,porto,slp,sem convite
|
||||
Keywords[pt_BR]=compartilhamento de desktop,krfb,vnc,compartilhamento,krdc,conexão a desktop remoto,convite,porta,slp,não convidado
|
||||
Keywords[sk]=zdieľanie plochy,krfb,vnc,zdieľanie,rdp,krdc,pripojenie vzdialenej pracovnej plochy,rdp
|
||||
Keywords[sl]=namizje,deljenje,krfb,vnc,rdp,krdc,povezava oddaljenega namizja,rdp
|
||||
Keywords[sv]=dela skrivbord,krfb,vnc,dela,rdp,krdc,fjärrskrivbordsanslutning,rdp
|
||||
Keywords[uk]=спільні стільниці,krfb,vnc,спільний,rdp,krdc,з'єднання віддаленої стільниці,rdp
|
||||
Keywords[ven]=U kovhekana ha desktop,krfb,vnc,kovhekana,rdp,krdc,vhukwamani ha desktop ya kule, rdp
|
||||
Keywords[xh]=usebenziso oluhlangeneyo lwe desktop,krfb,vnc, ukusebenzisa ngokuhlangeneyo,rdp,krdc,uxhumaniso lwe desktop elikude,rdp
|
||||
Keywords[zh_CN]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp,桌面共享,共享,远程桌面连接
|
||||
Keywords[zh_TW]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp,桌面分享,分享,遠端桌面連線
|
||||
Keywords[zu]=ukuhlukaniselana kwe-desktop,krfb,vnc,ukuhlukaniselana,rdp,krdc,ukuxhumanisela kude kwe-desktop,rdp
|
||||
Keywords[sl]=namizje,souporaba,krfb,vnc,krdc,povezava oddaljenega namizja, povabilo,port,slp,nepovabljen
|
||||
Keywords[sr]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,радна површина,дељење,позив,порт,непозван,удаљено
|
||||
Keywords[sr@Latn]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,radna površina,deljenje,poziv,port,nepozvan,udaljeno
|
||||
Keywords[sv]=dela skrivbord,krfb,vnc,dela,krdc,fjärrskrivbordsanslutning,inbjudan,port,slp
|
||||
Keywords[ta]=பணிமேடை பகிர்வு,krfb,vnc,பகிர்வு,krdc,தொலை பணிமேடை இணைப்பு,அழைப்பிதழ், துறை, slp, uninvited
|
||||
Keywords[tr]=masaüstü paylaşımı,krfb,vnc,paylaşım,krdc,uzak masaüstü bağlantısı,davet,port,slp
|
||||
Keywords[uk]=спільні стільниці,krfb,vnc,спільний,rdp,krdc,з'єднання віддаленої стільниці,запрошення,rdp,slp,без запрошення
|
||||
Keywords[zh_CN]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,桌面共享,共享,远程桌面连接,邀请,端口,未邀请
|
||||
Keywords[zh_TW]=desktop sharing,krfb,vnc,sharing,rdp,krdc,remote desktop connection,rdp,桌面分享,分享,遠端桌面連線,invitation,port,slp,uninvited
|
||||
|
||||
Categories=Qt;KDE;X-KDE-settings-network;Settings;
|
||||
|
||||
@@ -5,7 +5,7 @@ kde_module_LTLIBRARIES = kded_kinetd.la
|
||||
|
||||
kded_kinetd_la_SOURCES = kinetd.cpp kinetd.skel
|
||||
kded_kinetd_la_LDFLAGS = $(all_libraries) -module -avoid-version
|
||||
kded_kinetd_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KIO)
|
||||
kded_kinetd_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KIO) $(LIB_KDNSSD)
|
||||
|
||||
# Services
|
||||
kde_servicetypes_DATA = kinetdmodule.desktop
|
||||
@@ -17,8 +17,6 @@ EXTRA_DIST = $(kded_kinetd_la_SOURCES)\
|
||||
$(kde_servicetypes_DATA) \
|
||||
eventsrc README.debugging
|
||||
|
||||
KDE_ICON = kinetd
|
||||
|
||||
install-data-local:
|
||||
$(mkinstalldirs) $(DESTDIR)$(kde_datadir)/kinetd
|
||||
$(INSTALL_DATA) $(srcdir)/eventsrc $(DESTDIR)$(kde_datadir)/kinetd/eventsrc
|
||||
|
||||
125
kinetd/eventsrc
@@ -1,67 +1,110 @@
|
||||
[!Global!]
|
||||
IconName=kinetd
|
||||
Comment=KInetD
|
||||
Comment[bn]=কে-আইনেট-ডি
|
||||
Comment[hi]=के-इनिट-डी
|
||||
Comment[sv]=Kinetd
|
||||
|
||||
[IncomingConnection]
|
||||
Name=IncomingConnection
|
||||
Name[ar]=اتصال وارد
|
||||
Name[bg]=Получена е входяща връзка
|
||||
Name[bn]=অন্তর্মুখী সংযোগ
|
||||
Name[br]=Kevreadenn resev
|
||||
Name[ca]=Connexió entrant
|
||||
Name[cs]=Příchozí spojení
|
||||
Name[cy]=CysylltiadCyrraedd
|
||||
Name[da]=IndkommendeForbindelse
|
||||
Name[de]=Eingehende Verbindung
|
||||
Name[el]=Εισερχόμενη σύνδεση
|
||||
Name[eo]=EnvenantaKonekto
|
||||
Name[es]=Conexión entrante
|
||||
Name[et]=SissetulevÜhendus
|
||||
Name[et]=Sissetulev ühendus
|
||||
Name[eu]=Sarrerako konexioa
|
||||
Name[fa]=اتصال واردشده
|
||||
Name[fi]=Saapuva yhteys
|
||||
Name[fr]=Connexion entrante
|
||||
Name[ga]=CeangalIsteach
|
||||
Name[gl]=Conexión Entrante
|
||||
Name[he]=חיבור נכנס
|
||||
Name[hi]=आवक-कनेक्शन
|
||||
Name[hr]=DolaznaVeza
|
||||
Name[hu]=Bejövő kapcsolat
|
||||
Name[it]=Connessioni in entrata
|
||||
Name[ja]=外部からの接続
|
||||
Name[lt]=Ateinantis prisijungimas
|
||||
Name[kk]=Кіріс қосылым
|
||||
Name[km]=ការតភ្ជាប់ចូល
|
||||
Name[lt]=Gautas kvietimas ryšiui
|
||||
Name[mk]=Дојдовно поврзување
|
||||
Name[mn]=Орж ирсэн Холболт
|
||||
Name[ms]=Sambungan Masuk
|
||||
Name[mt]=KonnessjonijiDieħla
|
||||
Name[nb]=Innkommende tilknytning
|
||||
Name[nb]=Innkommende forbindelse
|
||||
Name[nds]=RinkamenVerbinnen
|
||||
Name[ne]=आगमन जडान
|
||||
Name[nl]=Inkomende verbinding
|
||||
Name[nn]=Innkomande samband
|
||||
Name[nso]=Kopantsho yeo e Tsenago
|
||||
Name[pl]=Połączenia przychodzące
|
||||
Name[pt]=Ligação Recebida
|
||||
Name[pt_BR]=Conexões de Entrada
|
||||
Name[ro]=Conexiune de intrare
|
||||
Name[ru]=Входящее соединение
|
||||
Name[se]=Boahtti oktavuohta
|
||||
Name[sk]=Prichádzajúce spojenia
|
||||
Name[sl]=Prihajajoča povezava
|
||||
Name[sr]=Долазећа веза
|
||||
Name[sr@Latn]=Dolazeća veza
|
||||
Name[sv]=Inkommande anslutning
|
||||
Name[ta]=உள்வரும் இணைப்புகள்
|
||||
Name[tg]=Пайвастшавии Воридшаванда
|
||||
Name[th]=มีการเชื่อมต่อเข้ามา
|
||||
Name[tr]=Gelen Bağlantı
|
||||
Name[uk]=ВхіднеЗ'єднання
|
||||
Name[ven]=Vhukwamanihanga ngomu
|
||||
Name[xh]=Uxhumaniso Olungenayo
|
||||
Name[zh_CN]=进入的连接
|
||||
Name[zh_HK]=進入連線
|
||||
Name[zh_TW]=進來的連接
|
||||
Name[zu]=UkuxhumanaOkuzayo
|
||||
Comment=Received incoming connection
|
||||
Comment[af]=Ontvang inkomende verbinding
|
||||
Comment[bg]=Получена Входяща Връзка
|
||||
Comment[ar]=تم استلام اتصال وارد
|
||||
Comment[be]=Атрыманы запыт злучэння
|
||||
Comment[bg]=Получена е входяща връзка
|
||||
Comment[bn]=অন্তর্মুখী সংযোগ গ্রহণ করল
|
||||
Comment[bs]=Primio dolaznu konekciju
|
||||
Comment[ca]=Rebuda connexió entrant
|
||||
Comment[cs]=Obdrženo příchozí spojení
|
||||
Comment[cy]=Derbynwyd cysylltiad a gyrhaeddodd
|
||||
Comment[da]=Modtog indkommende forbindelse
|
||||
Comment[de]=Verbindungsanfrage eingegangen
|
||||
Comment[el]=Λήψη εισερχόμενης σύνδεσης
|
||||
Comment[eo]=Ricevantaj envenantaj konektoj
|
||||
Comment[es]=Recibida conexión entrante
|
||||
Comment[et]=Saadi sissetulev ühendus
|
||||
Comment[eu]=Konexio bat jaso da
|
||||
Comment[fa]=اتصال واردشده دریافت شد
|
||||
Comment[fi]=Vastaanotettiin saapuva yhteys
|
||||
Comment[fr]=Reçu une connexion entrante
|
||||
Comment[gl]=Recibíuse unha conexión entrante
|
||||
Comment[he]=נתקבל חיבור נכנס
|
||||
Comment[hi]=आवक कनेक्शन प्राप्त
|
||||
Comment[hr]=Primio dolaznu vezu
|
||||
Comment[hu]=Csatlakozási kérés érkezett
|
||||
Comment[is]=Tók á móti uppkalli
|
||||
Comment[it]=Connessione in entrata stabilita
|
||||
Comment[ja]=着信した外部からの接続
|
||||
Comment[lt]=Gautas įeinantis prisijungimas
|
||||
Comment[kk]=Кіріс қосылым қабылданды
|
||||
Comment[km]=បានទទួលការតភ្ជាប់ចូល
|
||||
Comment[lt]=Gautas kvietimas ryšiui
|
||||
Comment[mk]=Примено е дојдовно поврзување
|
||||
Comment[mn]=Орж ирсэн Холболтыг хүлээн авав
|
||||
Comment[ms]=Menerima sambungan masuk
|
||||
Comment[mt]=Irċevejt konnessjoni dieħla
|
||||
Comment[nb]=Motta innkommende tilknytning
|
||||
Comment[nb]=Motta innkommende forbindelse
|
||||
Comment[nds]=Tokoppelanfraag kregen
|
||||
Comment[ne]=आगमन जडान प्राप्त गर्यो
|
||||
Comment[nl]=Ontving een inkomende verbinding
|
||||
Comment[nn]=Motta innkomande samband
|
||||
Comment[nso]=Kopantsho yeo e amogetswego ya tseo di tsenago
|
||||
@@ -70,91 +113,145 @@ Comment[pt]=Foi recebida uma ligação
|
||||
Comment[pt_BR]=Recebendo conexão de entrada
|
||||
Comment[ro]=Conexiune de intrare recepţionată
|
||||
Comment[ru]=Входящее соединение завершилось успешно
|
||||
Comment[se]=Oaččui boahtti oktavuođa
|
||||
Comment[sk]=Prijaté príchodzie spojenia
|
||||
Comment[sl]=Prejeta je prihajajoča povezava
|
||||
Comment[sr]=Примљена је долазећа веза
|
||||
Comment[sr@Latn]=Primljena je dolazeća veza
|
||||
Comment[sv]=Tar emot inkommande anslutning
|
||||
Comment[tg]=Пайвастшавии воридшаванда қабул гардид
|
||||
Comment[th]=ได้รับการเชื่อมต่อเข้ามา
|
||||
Comment[tr]=Gelen bağlantı alınıyor
|
||||
Comment[uk]=Отримано вхідне з'єднання
|
||||
Comment[ven]=Vhukwamani hau dzhena ho tanganedzhwaho
|
||||
Comment[xh]=Uxhulumano olungenayo olufunyenweyo
|
||||
Comment[zh_CN]=收到进入的连接
|
||||
Comment[zh_HK]=已接收的進入連線
|
||||
Comment[zh_TW]=已接收的進來的連線
|
||||
Comment[zu]=Ukuxhumanisa okungenayo okutholakele
|
||||
default_presentation=4
|
||||
|
||||
[ProcessFailed]
|
||||
Name=ProcessFailed
|
||||
Name[bg]=Пропаднал Процес
|
||||
Name[ar]=فشلت العملية
|
||||
Name[bg]=Процесът за обработка връзки не може да бъде стартиран
|
||||
Name[bn]=প্রসেস ব্যর্থ
|
||||
Name[ca]=Procés fallit
|
||||
Name[cs]=Proces selhal
|
||||
Name[cy]=MethoddProses
|
||||
Name[da]=ProcesMislykkedes
|
||||
Name[de]=Prozess fehlgeschlagen
|
||||
Name[el]=Η επεξεργασία απέτυχε
|
||||
Name[eo]=ProcezoFiaskis
|
||||
Name[es]=Proceso fallido
|
||||
Name[et]=ProtsessEbaõnnestus
|
||||
Name[et]=Protsess ebaõnnestus
|
||||
Name[eu]=Prozesuak huts egin du
|
||||
Name[fa]=خرابی پردازه
|
||||
Name[fi]=Prosessi epäonnistui
|
||||
Name[fr]=Échec du processus
|
||||
Name[ga]=PróiseasTeipthe
|
||||
Name[gl]=Proceso fallido
|
||||
Name[he]=תהליך נכשל
|
||||
Name[hi]=प्रक्रिया-असफल
|
||||
Name[hr]=ProcesNeuspješan
|
||||
Name[hu]=Hibás folyamat
|
||||
Name[it]=Processo fallito
|
||||
Name[ja]=プロセス失敗
|
||||
Name[kk]=Процесс жаңылды
|
||||
Name[km]=ដំណើរការបានបរាជ័យ
|
||||
Name[lt]=Procesas nepavyko
|
||||
Name[mk]=Процесот не успеа
|
||||
Name[mn]=Ажиллагаа сүйрэв
|
||||
Name[ms]=Proses Gagal
|
||||
Name[mt]=ProċessFalla
|
||||
Name[nb]=Prosess mislyktes
|
||||
Name[nl]=Proces faalde
|
||||
Name[nds]=PerzessFehlslaan
|
||||
Name[ne]=प्रक्रिया असफल भयो
|
||||
Name[nl]=Proces mislukt
|
||||
Name[nn]=Prosess mislukkast
|
||||
Name[nso]=Tiragalo e Paletswe
|
||||
Name[pa]=ਕਾਰਜ ਫੇਲ੍ਹ ਹੋਈ
|
||||
Name[pl]=Błąd procesu
|
||||
Name[pt]=Processo Mal-Sucedido
|
||||
Name[pt_BR]=Falha de Processo
|
||||
Name[ro]=Proces eşuat
|
||||
Name[ru]=Ошибка процесса
|
||||
Name[se]=Proseassa filtii
|
||||
Name[sk]=Proces neúspešny
|
||||
Name[sl]=Proces ni uspel
|
||||
Name[sr]=Процес није успео
|
||||
Name[sr@Latn]=Proces nije uspeo
|
||||
Name[sv]=Process misslyckades
|
||||
Name[ta]=செயல் தோல்வியுற்றது
|
||||
Name[tg]=Ҷараён бо Нокомӣ анҷомид
|
||||
Name[th]=โปรเซสล้มเหลว
|
||||
Name[tr]=Başarısız İşlemler
|
||||
Name[uk]=ПомилкаПроцесу
|
||||
Name[ven]=Tshitenwa tsho bala
|
||||
Name[xh]=Inkqubo Yahlulekile
|
||||
Name[zh_CN]=处理失败
|
||||
Name[zh_HK]=程序失敗
|
||||
Name[zh_TW]=程序失敗
|
||||
Name[zu]=UkwenzekaKuhlulekile
|
||||
Comment=Could not call process to handle connection
|
||||
Comment[af]=Kon nie roep proses na handvatsel verbinding
|
||||
Comment[bg]=Не мога да извикам процес за подръжка на страницата
|
||||
Comment[ar]=لم أستطع استحضار العملية لحمل المكالمة
|
||||
Comment[be]=Немагчыма выклікаць працэс для апрацоўвання злучэння
|
||||
Comment[bg]=Процесът за обработка връзки не може да бъде стартиран
|
||||
Comment[bn]=সংযোগ পরিচালনা করতে প্রসেস শুরু করতে পারল না
|
||||
Comment[bs]=Ne mogu pokrenuti proces koji upravlja konekcijom
|
||||
Comment[ca]=No es pot cridar al procés per a manejar la connexió
|
||||
Comment[cs]=Nelze spustit proces k obsluze spojení
|
||||
Comment[cy]=Methu galw proses i drin y cysylltiad
|
||||
Comment[da]=Kunne ikke kalde proces til at håndtere forbindelse
|
||||
Comment[de]=Der Prozess zur Bearbeitung der Verbindungsanfrage wurde nicht gefunden
|
||||
Comment[el]=Δεν ήταν δυνατή η κλήση της διεργασίας για τον έλεγχο της σύνδεσης
|
||||
Comment[eo]=Ne eblis lanĉi instancon por prizorgi la konekton
|
||||
Comment[es]=Imposible lanzar proceso para manejar conexión
|
||||
Comment[et]=Ei suuda käivitada protsessi ühenduse käsitsemiseks
|
||||
Comment[eu]=Ezin izan da konexioa kudeatzeko prozesua deitu
|
||||
Comment[fa]=نتوانست پردازه را برای گرداندن اتصال فراخوانی کند
|
||||
Comment[fi]=Ei voitu kutsua prosessia yhteyden hoitamiseksi
|
||||
Comment[fr]=Impossible d'appeler le processus pour gérer la connexion
|
||||
Comment[gl]=Non se puidcho chamar ó proceso para que atendese á conexión
|
||||
Comment[he]=אין אפשרות לקרוא לתהליך על מנת לטפל בחיבור
|
||||
Comment[hi]=कनेक्शन हैंडल करने के लिए प्रक्रिया काल नहीं कर सका
|
||||
Comment[hr]=Nisam mogao pozvati proces za kontrolu veze
|
||||
Comment[hu]=A kapcsolat kezelése nem sikerült
|
||||
Comment[is]=Gat ekki kallað á forrit til að höndla tengingu
|
||||
Comment[it]=Impossibile richiamare il processo per gestire la connessione
|
||||
Comment[ja]=接続を扱うプロセスを呼び出せません
|
||||
Comment[lt]=Negaliu iškviesti proceso prisijungimui apdoroti
|
||||
Comment[kk]=Қосылымды қолдайтын процесс жегілмеді
|
||||
Comment[km]=មិនអាចហៅដំណើរការ ដើម្បីដោះស្រាយការតភ្ជាប់បានឡើយ
|
||||
Comment[lt]=Nepavyko iškviesti proceso prisijungimui apdoroti
|
||||
Comment[mk]=Не може да се повика процесот за ракување со поврзувањето
|
||||
Comment[mn]=Холболтыг заах ажиллагаагдуудаж чадаагүй
|
||||
Comment[ms]=Tidak dapat memanggil proses untuk mengendalikan sambungan
|
||||
Comment[mt]=Ma stajtx insejjaħ proċess biex jieħu ħsieb il-konnessjoni
|
||||
Comment[nb]=Kunne ikke kalle en prosess for å håndtere tilknytningen
|
||||
Comment[nb]=Kunne ikke kalle en prosess for å håndtere forbindelsen
|
||||
Comment[nds]=Perzess för't Verarbeiden vun Tokoppelanfragen lett sik nich opropen
|
||||
Comment[ne]=जडान ह्यान्डल गर्न प्रक्रिया आह्वान गर्न सकेन
|
||||
Comment[nl]=Het proces om de verbinding af te handelen kon niet worden aangeroepen
|
||||
Comment[nn]=Klarte ikkje kalla prosess for sambandshandtering
|
||||
Comment[nso]=Ebe ekase bitse tiragalo go swara kopantsho
|
||||
Comment[pl]=Nie można było uruchomić procesu obsługi połączenia
|
||||
Comment[pt]=Não foi possível chamar o processo de tratamento da ligação
|
||||
Comment[pt]=Não foi possível invocar o processo para tratar da ligação
|
||||
Comment[pt_BR]=Não foi possível chamar o processo de controle da conexão
|
||||
Comment[ru]=Не удается запустить процесс обработки соединения
|
||||
Comment[ru]=Не удаётся запустить процесс обработки соединения
|
||||
Comment[sk]=Nemohol som zavolať proces pre spracovanie spojenia
|
||||
Comment[sl]=Ni možno poklicati procesa za upravljanje s povezavo
|
||||
Comment[sr]=Нисам могао да позовем процес да опслужи везу
|
||||
Comment[sr@Latn]=Nisam mogao da pozovem proces da opsluži vezu
|
||||
Comment[sv]=Kunde inte anropa process för att hantera anslutning
|
||||
Comment[ta]=இணைப்பை கையாள செயற்பாட்டை அழைக்க முடியவில்லை
|
||||
Comment[tg]=Барои даскории пайвастшавӣ ҷараён бозхонда нашуд
|
||||
Comment[th]=ไม่สามารถเรียกโปรเซสเพื่อรับการเชื่อมต่อได้
|
||||
Comment[tr]=Elle bağlantıda başarısız çağrı işlemleri
|
||||
Comment[uk]=Неможливо викликати процес для обробки з'єднання
|
||||
Comment[ven]=Ingasi vhidze tshitenwa uitela u fara vhukwamani
|
||||
Comment[xh]=Ayikwazanga ukubiza inkqubo ezakuphatha uxhulumano
|
||||
Comment[zh_CN]=无法调用进程处理连接
|
||||
Comment[zh_HK]=無法呼叫處理連線的程序
|
||||
Comment[zh_TW]=無法呼叫處理連線的程序
|
||||
Comment[zu]=Ayikwazanga ukubiza umsebenzi ukuzophatha ukuxhumanisa
|
||||
default_presentation=4
|
||||
|
||||
@@ -18,8 +18,9 @@
|
||||
|
||||
#include "kinetd.h"
|
||||
#include "kinetd.moc"
|
||||
#include "kinetaddr.h"
|
||||
#include "kinetinterface.h"
|
||||
#include "kuser.h"
|
||||
#include "uuid.h"
|
||||
#include <qregexp.h>
|
||||
#include <kservicetype.h>
|
||||
#include <kdebug.h>
|
||||
@@ -31,6 +32,9 @@
|
||||
#include <klocale.h>
|
||||
#include <kglobal.h>
|
||||
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
|
||||
PortListener::PortListener(KService::Ptr s,
|
||||
KConfig *config,
|
||||
KServiceRegistry *srvreg) :
|
||||
@@ -38,8 +42,12 @@ PortListener::PortListener(KService::Ptr s,
|
||||
m_serviceRegistered(false),
|
||||
m_socket(0),
|
||||
m_config(config),
|
||||
m_srvreg(srvreg)
|
||||
m_srvreg(srvreg),
|
||||
m_dnssdreg(0)
|
||||
{
|
||||
m_dnssdRegistered = false;
|
||||
|
||||
m_uuid = createUUID();
|
||||
loadConfig(s);
|
||||
|
||||
if (m_valid && m_enabled)
|
||||
@@ -73,8 +81,11 @@ bool PortListener::acquirePort() {
|
||||
SLOT(accepted(KSocket*)));
|
||||
|
||||
bool s = m_registerService;
|
||||
bool sd =m_dnssdRegister;
|
||||
setServiceRegistrationEnabledInternal(false);
|
||||
dnssdRegister(false);
|
||||
setServiceRegistrationEnabledInternal(s);
|
||||
dnssdRegister(sd);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -84,6 +95,7 @@ void PortListener::freePort() {
|
||||
delete m_socket;
|
||||
m_socket = 0;
|
||||
setServiceRegistrationEnabledInternal(m_registerService);
|
||||
dnssdRegister(false);
|
||||
}
|
||||
|
||||
void PortListener::loadConfig(KService::Ptr s) {
|
||||
@@ -93,7 +105,8 @@ void PortListener::loadConfig(KService::Ptr s) {
|
||||
m_argument = QString::null;
|
||||
m_multiInstance = false;
|
||||
|
||||
QVariant vid, vport, vautoport, venabled, vargument, vmultiInstance, vurl, vsattributes;
|
||||
QVariant vid, vport, vautoport, venabled, vargument, vmultiInstance, vurl,
|
||||
vsattributes, vslifetime, vdname, vdtype, vddata;
|
||||
|
||||
m_execPath = s->exec().utf8();
|
||||
vid = s->property("X-KDE-KINETD-id");
|
||||
@@ -104,6 +117,10 @@ void PortListener::loadConfig(KService::Ptr s) {
|
||||
vmultiInstance = s->property("X-KDE-KINETD-multiInstance");
|
||||
vurl = s->property("X-KDE-KINETD-serviceURL");
|
||||
vsattributes = s->property("X-KDE-KINETD-serviceAttributes");
|
||||
vslifetime = s->property("X-KDE-KINETD-serviceLifetime");
|
||||
vdname = s->property("X-KDE-KINETD-DNSSD-Name");
|
||||
vdtype = s->property("X-KDE-KINETD-DNSSD-Type");
|
||||
vddata = s->property("X-KDE-KINETD-DNSSD-Properties");
|
||||
|
||||
if (!vid.isValid()) {
|
||||
kdDebug() << "Kinetd cannot load service "<<m_serviceName
|
||||
@@ -120,6 +137,9 @@ void PortListener::loadConfig(KService::Ptr s) {
|
||||
}
|
||||
|
||||
m_serviceName = vid.toString();
|
||||
m_serviceLifetime = vslifetime.toInt();
|
||||
if (m_serviceLifetime < 120) // never less than 120 s
|
||||
m_serviceLifetime = 120;
|
||||
m_portBase = vport.toInt();
|
||||
if (vautoport.isValid())
|
||||
m_autoPortRange = vautoport.toInt();
|
||||
@@ -142,7 +162,26 @@ void PortListener::loadConfig(KService::Ptr s) {
|
||||
}
|
||||
else
|
||||
m_serviceAttributes = "";
|
||||
if (vddata.isValid()) {
|
||||
QStringList attrs = vddata.toStringList();
|
||||
for (QStringList::iterator it=attrs.begin();
|
||||
it!=attrs.end();it++) {
|
||||
QString key = (*it).section('=',0,0);
|
||||
QString value = processServiceTemplate((*it).section('=',1))[0];
|
||||
if (!key.isEmpty()) m_dnssdData[key]=value;
|
||||
}
|
||||
}
|
||||
if (vdname.isValid() && vdtype.isValid()) {
|
||||
m_dnssdName = processServiceTemplate(vdname.toString())[0];
|
||||
m_dnssdType = vdtype.toString();
|
||||
m_dnssdRegister = true;
|
||||
kdDebug() << "DNS-SD register is enabled\n";
|
||||
}
|
||||
else
|
||||
m_dnssdRegister = false;
|
||||
|
||||
|
||||
m_slpLifetimeEnd = QDateTime::currentDateTime().addSecs(m_serviceLifetime);
|
||||
m_defaultPortBase = m_portBase;
|
||||
m_defaultAutoPortRange = m_autoPortRange;
|
||||
|
||||
@@ -165,6 +204,10 @@ void PortListener::loadConfig(KService::Ptr s) {
|
||||
void PortListener::accepted(KSocket *sock) {
|
||||
QString host, port;
|
||||
KSocketAddress *ksa = KExtendedSocket::peerAddress(sock->socket());
|
||||
if ((!ksa) || !ksa->address()) {
|
||||
delete sock;
|
||||
return;
|
||||
}
|
||||
KExtendedSocket::resolve(ksa, host, port);
|
||||
KNotifyClient::event("IncomingConnection",
|
||||
i18n("Connection from %1").arg(host));
|
||||
@@ -176,6 +219,9 @@ void PortListener::accepted(KSocket *sock) {
|
||||
return;
|
||||
}
|
||||
|
||||
// disable CLOEXEC flag, fixes #77412
|
||||
fcntl(sock->socket(), F_SETFD, fcntl(sock->socket(), F_GETFD) & ~FD_CLOEXEC);
|
||||
|
||||
m_process.clearArguments();
|
||||
m_process << m_execPath << m_argument << QString::number(sock->socket());
|
||||
if (!m_process.start(KProcess::DontCare)) {
|
||||
@@ -193,23 +239,31 @@ bool PortListener::isValid() {
|
||||
}
|
||||
|
||||
bool PortListener::isEnabled() {
|
||||
return m_enabled;
|
||||
return m_enabled && m_valid;
|
||||
}
|
||||
|
||||
int PortListener::port() {
|
||||
return m_port;
|
||||
}
|
||||
|
||||
QString PortListener::processServiceTemplate(const QString &a) {
|
||||
KInetAddress *kia = KInetAddress::getLocalAddress();
|
||||
QString hostName = kia->nodeName();
|
||||
delete kia;
|
||||
KUser u;
|
||||
QString x = a; // replace does not work in const QString. Why??
|
||||
return x.replace(QRegExp("%h"), KServiceRegistry::encodeAttributeValue(hostName))
|
||||
.replace(QRegExp("%p"), QString::number(m_port))
|
||||
.replace(QRegExp("%u"), KServiceRegistry::encodeAttributeValue(u.loginName()))
|
||||
.replace(QRegExp("%f"), KServiceRegistry::encodeAttributeValue(u.fullName()));
|
||||
QStringList PortListener::processServiceTemplate(const QString &a) {
|
||||
QStringList l;
|
||||
QValueVector<KInetInterface> v = KInetInterface::getAllInterfaces(false);
|
||||
QValueVector<KInetInterface>::Iterator it = v.begin();
|
||||
while (it != v.end()) {
|
||||
KInetSocketAddress *address = (*(it++)).address();
|
||||
if (!address)
|
||||
continue;
|
||||
QString hostName = address->nodeName();
|
||||
KUser u;
|
||||
QString x = a; // replace does not work in const QString. Why??
|
||||
l.append(x.replace(QRegExp("%h"), KServiceRegistry::encodeAttributeValue(hostName))
|
||||
.replace(QRegExp("%p"), QString::number(m_port))
|
||||
.replace(QRegExp("%u"), KServiceRegistry::encodeAttributeValue(u.loginName()))
|
||||
.replace(QRegExp("%i"), KServiceRegistry::encodeAttributeValue(m_uuid))
|
||||
.replace(QRegExp("%f"), KServiceRegistry::encodeAttributeValue(u.fullName())));
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
bool PortListener::setPort(int port, int autoPortRange) {
|
||||
@@ -255,6 +309,7 @@ void PortListener::setEnabledInternal(bool e, const QDateTime &ex) {
|
||||
if (m_port < 0)
|
||||
acquirePort();
|
||||
m_enabled = m_port >= 0;
|
||||
|
||||
}
|
||||
else {
|
||||
freePort();
|
||||
@@ -272,6 +327,7 @@ bool PortListener::isServiceRegistrationEnabled() {
|
||||
|
||||
void PortListener::setServiceRegistrationEnabled(bool e) {
|
||||
setServiceRegistrationEnabledInternal(e);
|
||||
dnssdRegister(e && m_enabled);
|
||||
m_config->setGroup("ListenerConfig");
|
||||
m_config->writeEntry("enable_srvreg_" + m_serviceName, e);
|
||||
m_config->sync();
|
||||
@@ -286,22 +342,64 @@ void PortListener::setServiceRegistrationEnabledInternal(bool e) {
|
||||
return;
|
||||
|
||||
if (m_enabled && e) {
|
||||
m_registeredServiceURL = processServiceTemplate(m_serviceURL);
|
||||
m_serviceRegistered = m_srvreg->registerService(
|
||||
m_registeredServiceURL,
|
||||
processServiceTemplate(m_serviceAttributes));
|
||||
if (!m_serviceRegistered)
|
||||
kdDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
|
||||
m_registeredServiceURLs = processServiceTemplate(m_serviceURL);
|
||||
QStringList attributes = processServiceTemplate(m_serviceAttributes);
|
||||
QStringList::Iterator it = m_registeredServiceURLs.begin();
|
||||
QStringList::Iterator it2 = attributes.begin();
|
||||
while ((it != m_registeredServiceURLs.end()) &&
|
||||
(it2 != attributes.end())) {
|
||||
if (!m_srvreg->registerService(
|
||||
*(it++),
|
||||
*(it2++),
|
||||
m_serviceLifetime))
|
||||
kdDebug(7021) << "Failure registering SLP service (no slpd running?)"<< endl;
|
||||
}
|
||||
m_serviceRegistered = true;
|
||||
// make lifetime 30s shorter, because the timeout is not precise
|
||||
m_slpLifetimeEnd = QDateTime::currentDateTime().addSecs(m_serviceLifetime-30);
|
||||
} else {
|
||||
m_srvreg->unregisterService(m_registeredServiceURL);
|
||||
QStringList::Iterator it = m_registeredServiceURLs.begin();
|
||||
while (it != m_registeredServiceURLs.end())
|
||||
m_srvreg->unregisterService(*(it++));
|
||||
m_serviceRegistered = false;
|
||||
}
|
||||
}
|
||||
|
||||
void PortListener::dnssdRegister(bool e) {
|
||||
if (m_dnssdName.isNull() || m_dnssdType.isNull())
|
||||
return;
|
||||
if (m_dnssdRegistered == e)
|
||||
return;
|
||||
if (e) {
|
||||
m_dnssdRegistered=true;
|
||||
m_dnssdreg = new DNSSD::PublicService(m_dnssdName,m_dnssdType,m_port);
|
||||
m_dnssdreg->setTextData(m_dnssdData);
|
||||
m_dnssdreg->publishAsync();
|
||||
} else {
|
||||
m_dnssdRegistered=false;
|
||||
delete m_dnssdreg;
|
||||
m_dnssdreg=0;
|
||||
}
|
||||
}
|
||||
|
||||
void PortListener::refreshRegistration() {
|
||||
if (m_serviceRegistered && (m_slpLifetimeEnd.addSecs(-90) < QDateTime::currentDateTime())) {
|
||||
setServiceRegistrationEnabledInternal(false);
|
||||
setServiceRegistrationEnabledInternal(true);
|
||||
}
|
||||
}
|
||||
|
||||
QDateTime PortListener::expiration() {
|
||||
return m_expirationTime;
|
||||
}
|
||||
|
||||
QDateTime PortListener::serviceLifetimeEnd() {
|
||||
if (m_serviceRegistered)
|
||||
return m_slpLifetimeEnd;
|
||||
else
|
||||
return QDateTime();
|
||||
}
|
||||
|
||||
QString PortListener::name() {
|
||||
return m_serviceName;
|
||||
}
|
||||
@@ -325,6 +423,7 @@ KInetD::KInetD(QCString &n) :
|
||||
m_portListeners.setAutoDelete(true);
|
||||
connect(&m_expirationTimer, SIGNAL(timeout()), SLOT(setExpirationTimer()));
|
||||
connect(&m_portRetryTimer, SIGNAL(timeout()), SLOT(portRetryTimer()));
|
||||
connect(&m_reregistrationTimer, SIGNAL(timeout()), SLOT(reregistrationTimer()));
|
||||
loadServiceList();
|
||||
}
|
||||
|
||||
@@ -342,10 +441,18 @@ void KInetD::loadServiceList()
|
||||
PortListener *pl = new PortListener(s, m_config, m_srvreg);
|
||||
if (pl->isValid())
|
||||
m_portListeners.append(pl);
|
||||
else
|
||||
delete pl;
|
||||
}
|
||||
|
||||
setExpirationTimer();
|
||||
setPortRetryTimer(true);
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::expirationTimer() {
|
||||
setExpirationTimer();
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::setExpirationTimer() {
|
||||
@@ -359,6 +466,42 @@ void KInetD::setExpirationTimer() {
|
||||
|
||||
void KInetD::portRetryTimer() {
|
||||
setPortRetryTimer(true);
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::setReregistrationTimer() {
|
||||
QDateTime d;
|
||||
PortListener *pl = m_portListeners.first();
|
||||
while (pl) {
|
||||
QDateTime d2 = pl->serviceLifetimeEnd();
|
||||
if (!d2.isNull()) {
|
||||
if (d2 < QDateTime::currentDateTime()) {
|
||||
m_reregistrationTimer.start(0, true);
|
||||
return;
|
||||
}
|
||||
else if (d.isNull() || (d2 < d))
|
||||
d = d2;
|
||||
}
|
||||
pl = m_portListeners.next();
|
||||
}
|
||||
|
||||
if (!d.isNull()) {
|
||||
int s = QDateTime::currentDateTime().secsTo(d);
|
||||
if (s < 30)
|
||||
s = 30; // max frequency 30s
|
||||
m_reregistrationTimer.start(s*1000, true);
|
||||
}
|
||||
else
|
||||
m_reregistrationTimer.stop();
|
||||
}
|
||||
|
||||
void KInetD::reregistrationTimer() {
|
||||
PortListener *pl = m_portListeners.first();
|
||||
while (pl) {
|
||||
pl->refreshRegistration();
|
||||
pl = m_portListeners.next();
|
||||
}
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::setPortRetryTimer(bool retry) {
|
||||
@@ -366,12 +509,12 @@ void KInetD::setPortRetryTimer(bool retry) {
|
||||
|
||||
PortListener *pl = m_portListeners.first();
|
||||
while (pl) {
|
||||
if (pl->isEnabled() && (pl->port() == -1))
|
||||
if (pl->isEnabled() && (pl->port() < 0))
|
||||
if (retry) {
|
||||
if (!pl->acquirePort())
|
||||
unmappedPorts++;
|
||||
}
|
||||
else if (pl->port() == -1)
|
||||
else if (pl->port() < 0)
|
||||
unmappedPorts++;
|
||||
pl = m_portListeners.next();
|
||||
}
|
||||
@@ -448,6 +591,7 @@ bool KInetD::setPort(QString service, int port, int autoPortRange)
|
||||
|
||||
bool s = pl->setPort(port, autoPortRange);
|
||||
setPortRetryTimer(false);
|
||||
setReregistrationTimer();
|
||||
return s;
|
||||
}
|
||||
|
||||
@@ -465,6 +609,7 @@ void KInetD::setEnabled(QString service, bool enable)
|
||||
|
||||
pl->setEnabled(enable);
|
||||
setExpirationTimer();
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::setEnabled(QString service, QDateTime expiration)
|
||||
@@ -475,6 +620,7 @@ void KInetD::setEnabled(QString service, QDateTime expiration)
|
||||
|
||||
pl->setEnabled(expiration);
|
||||
setExpirationTimer();
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
void KInetD::setServiceRegistrationEnabled(QString service, bool enable)
|
||||
@@ -484,6 +630,7 @@ void KInetD::setServiceRegistrationEnabled(QString service, bool enable)
|
||||
return;
|
||||
|
||||
pl->setServiceRegistrationEnabled(enable);
|
||||
setReregistrationTimer();
|
||||
}
|
||||
|
||||
bool KInetD::isServiceRegistrationEnabled(QString service)
|
||||
@@ -503,7 +650,7 @@ KInetD::~KInetD() {
|
||||
}
|
||||
|
||||
extern "C" {
|
||||
KDEDModule *create_kinetd(QCString &name)
|
||||
KDE_EXPORT KDEDModule *create_kinetd(QCString &name)
|
||||
{
|
||||
KGlobal::locale()->insertCatalogue("kinetd");
|
||||
return new KInetD(name);
|
||||
|
||||
@@ -10,74 +10,127 @@ X-KDE-Kded-autoload=true
|
||||
|
||||
Name=KDE Internet Daemon
|
||||
Name[af]=Kde Internet Bediener
|
||||
Name[bg]=KDE Демон на Интернет
|
||||
Name[ca]=Dimoni d'Internet pel KDE
|
||||
Name[ar]=مراقب انترنت كيدي
|
||||
Name[be]=Сервіс Інтэрнэт KDE
|
||||
Name[bg]=Интернет демон
|
||||
Name[bn]=কে-ডি-ই ইন্টারনেট ডিমন
|
||||
Name[br]=Diaoul kenrouedad KDE
|
||||
Name[ca]=Dimoni d'Internet per al KDE
|
||||
Name[cs]=KDE Internet démon
|
||||
Name[cy]=Daemon Rhyngrwyd KDE
|
||||
Name[da]=KDE Internet-dæmon
|
||||
Name[de]=KDE Internet-Dämon
|
||||
Name[el]=Δαίμονας ίντερνετ για το KDE
|
||||
Name[de]=Internet-Dienst
|
||||
Name[el]=Δαίμονας διαδικτύου για το KDE
|
||||
Name[eo]=Retodemono
|
||||
Name[es]=Demonio de Internet de KDE
|
||||
Name[et]=KDE internetideemon
|
||||
Name[fi]=KDE Internet palvelin
|
||||
Name[eu]=KDE internet deabrua
|
||||
Name[fa]=شبح اینترنتی KDE
|
||||
Name[fi]=KDE Internet-palvelin
|
||||
Name[fr]=Démon Internet de KDE
|
||||
Name[he]=תהליך שירות האינטרנט של KDE
|
||||
Name[ga]=Deamhan Idirlín KDE
|
||||
Name[gl]=O demo de Internet de KDE
|
||||
Name[he]=תהליך הרקע האינטרנטי של KDE
|
||||
Name[hi]=केडीई इंटरनेट डेमन
|
||||
Name[hu]=KDE internetes szolgáltatás
|
||||
Name[is]=KDE Internetþjónn
|
||||
Name[it]=Demone internet di KDE
|
||||
Name[ja]=KDE インターネットデーモン
|
||||
Name[lt]=KDE Interneto tarnyba
|
||||
Name[kk]=KDE Интернет қызметі
|
||||
Name[km]=ដេមិនអ៊ីនធឺណិតរបស់ KDE
|
||||
Name[lt]=KDE interneto tarnyba
|
||||
Name[mk]=Даемон за Интернет на KDE
|
||||
Name[mn]=KDE Интернет-демон
|
||||
Name[ms]=Daemon Internet KDE
|
||||
Name[mt]=Daemon tal-internet KDE
|
||||
Name[nb]=KDEs Internett-nisse
|
||||
Name[nds]=KDE-Internetdämoon
|
||||
Name[ne]=केडीई इन्टरनेट डेइमन
|
||||
Name[nn]=KDE-Internett-nisse
|
||||
Name[nso]=Daemon ya Internet ya KDE
|
||||
Name[pl]=Demon internetowy KDE
|
||||
Name[pa]=KDE ਇੰਟਰਨੈੱਟ ਡੈਮਨ
|
||||
Name[pl]=Internet/sieć
|
||||
Name[pt]=Servidor de Internet do KDE
|
||||
Name[pt_BR]=Servidor Internet do do KDE
|
||||
Name[pt_BR]=Servidor Internet do KDE
|
||||
Name[ro]=Demon internet KDE
|
||||
Name[ru]=Интернет-демон KDE
|
||||
Name[ru]=Доступ к Интернету
|
||||
Name[se]=KDE-Interneahtta-duogášprográmma
|
||||
Name[sk]=KDE Internet démon
|
||||
Name[sl]=Internetni strežnik za KDE
|
||||
Name[sr]=KDE-ов интернет демон
|
||||
Name[sr@Latn]=KDE-ov internet demon
|
||||
Name[sv]=KDE:s Internetdemon
|
||||
Name[ta]=கேடிஇ இணைய டேமொன்
|
||||
Name[tg]=KDE Азозили Интернет
|
||||
Name[th]=เดมอนอินเตอร์เน็ต KDE
|
||||
Name[tr]=KDE İnternet Programı
|
||||
Name[uk]=Демон Інтернет KDE
|
||||
Name[uz]=KDE Интернет демони
|
||||
Name[zh_CN]=KDE Internet 守护进程
|
||||
Name[zh_HK]=KDE 互聯網系統程式
|
||||
Name[zh_TW]=KDE Internet 伺服程式
|
||||
Name[zu]=KDE Internet ye-Daemon
|
||||
Comment=An Internet daemon that starts network services on demand
|
||||
Comment[bg]=Демон на Интернет който стартира мрежови обслужвания при поискване
|
||||
Comment[ar]=مراقب انترنت يقوم ببدء خدمات الشبكة عند الطلب
|
||||
Comment[be]=Севіс Інтэрнэт, які стартуе сеткавыя сервісы па запыце
|
||||
Comment[bg]=Интернет демон, който служи за стартиране на мрежови услуги при поискване
|
||||
Comment[bn]=একটি ইন্টারনেট ডিমন যে চাহিদা ভিত্তিক নেটওয়ার্ক সার্ভিস আরম্ভ করে
|
||||
Comment[bs]=Internet daemon koji pokreće mrežne servise po potrebi
|
||||
Comment[ca]=Un dimoni d'Internet que arrenca els serveis de xarxa sota demanda
|
||||
Comment[cs]=Internetový démon spouštějící síťové služby na požádání
|
||||
Comment[cy]=Daemon Rhyngrwyd sy'n cychwyn gwasanaethau rhwydwaith ar alw
|
||||
Comment[da]=En internet-dæmon der starter netværkstjenester efter forespørgsel
|
||||
Comment[de]=Ein Internet-Dämon, der Netzwerkdienste bei Bedarf startet
|
||||
Comment[el]=Ένας δαίμονας για το ίντερνετ ο οποίος ξεκινάει τις υπηρεσίες δικτύου βάση αίτησης
|
||||
Comment[de]=Startet Netzwerkdienste bei Bedarf
|
||||
Comment[el]=Ένας δαίμονας για το διαδίκτυο ο οποίος ξεκινάει τις υπηρεσίες δικτύου όταν απαιτείται
|
||||
Comment[eo]=retdemono kiu lanĉas retajn servojn laŭ bezono
|
||||
Comment[es]=Un demonio de Internet que inicia los servicios de red a demanda
|
||||
Comment[et]=Internetideemon, mis käivitab nõudmisel võrguteenused
|
||||
Comment[fi]=Internet palvelin, joka käynnistää verkkopalveluita
|
||||
Comment[eu]=Sare zerbitzuak eskatzean abiarazten dituen deabrua
|
||||
Comment[fa]=یک شبح اینترنتی که خدمات شبکه را بر اساس تقاضا آغاز میکند
|
||||
Comment[fi]=Internet-palvelin, joka käynnistää verkkopalveluita
|
||||
Comment[fr]=Un démon Internet qui démarre le service réseau à la demande
|
||||
Comment[he]=תהליך שירות אינטרנט שמתחיל שירותי רשת לפי דרישה
|
||||
Comment[ga]=Deamhan Idirlín a thosaíonn seirbhísí gréasáin ar éileamh
|
||||
Comment[gl]=Un demo de Internet que comenza servicios de rede según demanda
|
||||
Comment[he]=תהליך רקע של אינטרנט שמתחיל שירותי רשת לפי דרישה
|
||||
Comment[hi]=एक इंटरनेट डेमन जो मांग पर नेटवर्क सेवा प्रारंभ करता है
|
||||
Comment[hr]=Internet daemon koji pokreće mrežne usluge kada su zatražene
|
||||
Comment[hu]=A hálózati szolgáltatások vezérlését biztosító program
|
||||
Comment[is]=Internetþjónn sem ræsir tengingar við Internetið eftir þörfum
|
||||
Comment[it]=Un demone internet che avvia i servizi di rete a richiesta
|
||||
Comment[ja]=要求時にネットワークサービスを起動するインターネットデーモン
|
||||
Comment[kk]=Талап етілгенде керек желі қызметтерді жегетін қызмет
|
||||
Comment[km]=ដេមិនអ៊ីនធឺណិតដែលចាប់ផ្ដើមសេវាបណ្ដាញនៅពេលត្រូវការ
|
||||
Comment[lt]=Interneto tarnyba, paleidžianti tinklo tarnybas esant poreikiui
|
||||
Comment[mk]=Даемон за Интернет кој ги вклучува мрежните сервиси на барање
|
||||
Comment[mn]=Сүлжээ-үйлчилгээний эрэлтээр ассан Сүлжээний демон
|
||||
Comment[ms]=Daemon Internet yang memulakan servis jaringan di atas permintaan
|
||||
Comment[mt]=Proċess tal-internet li jħaddem servizzi skond il-bżonn
|
||||
Comment[nb]=Internett-nisse som starter nettverkstjenester ved behov
|
||||
Comment[nl]=Een Internetdaemon die netwerkdiensten op afroep start
|
||||
Comment[nds]=En Internet-Dämoon, wat Nettwarkdeensten op Anfraag start
|
||||
Comment[ne]=एउटा इन्टरनेट डेइमन जसले मागमा सञ्जाल सेवा सुरु गर्दछ
|
||||
Comment[nl]=Een internetdaemon die netwerkdiensten op afroep start
|
||||
Comment[nn]=Internett-nisse som startar nettverkstenester når dei trengst
|
||||
Comment[nso]=Daemon ya Internet yeo e thomisago ditirelo tsa kgokagano ge e nyakilwe
|
||||
Comment[pl]=Demon internetowy, który uruchamia na żądanie usługi sieciowe
|
||||
Comment[pl]=Uruchamianie usług na żądanie
|
||||
Comment[pt]=Um servidor da Internet que inicia os serviços de rede a pedido
|
||||
Comment[pt_BR]=Um servidor Internet que inicia os serviços de rede por demanda
|
||||
Comment[ro]=Un demone internet care porneşte serviciile de reţea la cerere
|
||||
Comment[ru]=Сетевой демон, запускающий серверы по запросу из сети
|
||||
Comment[ro]=Un demon de internet care porneşte serviciile de reţea la cerere
|
||||
Comment[ru]=Служба установления подключения при запросе сетевых ресурсов
|
||||
Comment[se]=Interneahtta-duogášprográmma mii álggaha fierpmádatbálvalusaid go dárbbašuvvo
|
||||
Comment[sk]=Internetový démon ktorý spúšťa sieťové služby na požiadanie
|
||||
Comment[sl]=Internetni strežnik, ki zažene omrežne storitve na zahtevo
|
||||
Comment[sr]=Интернет демон који покреће мрежне сервисе по захтеву
|
||||
Comment[sr@Latn]=Internet demon koji pokreće mrežne servise po zahtevu
|
||||
Comment[sv]=Internetdemon som startar nätverkstjänster vid behov
|
||||
Comment[ta]=ஒரு இணைய டேமொன், டேமொன் பிணைய சேவையை ஆரம்பிக்கிறது
|
||||
Comment[tg]=Азозили шабакавие, ки хидматрасони шабакавиро бо дархост сар медиҳад
|
||||
Comment[th]=เดมอนอินเตอร์เน็ตซึ่งจะเริ่มทำงานบริการเครือข่ายเมื่อมีความต้องการ
|
||||
Comment[tr]=Başlangıçta ağ servisleri tarafından istenen internet hayalet programı
|
||||
Comment[uk]=Демон Інтернет, що запускає служби мережі при запиті
|
||||
Comment[uz]=Талаб қилинганда тармоқ хизматларини ишга тушурувчи Интернет демони
|
||||
Comment[ven]=Internet daemon ine ya thoma tshumelo ya vhukwamani kha muthetho
|
||||
Comment[xh]=Internet daemon eqala iinkonzo zomsebenzi wonatha xa zifunwa
|
||||
Comment[zh_CN]=按需启动网络服务的守护进程
|
||||
Comment[zh_HK]=自動依需求起動網絡服務的互聯網系統程式
|
||||
Comment[zh_TW]=依要求起動網路服務的 Internet 伺服程式
|
||||
Comment[zu]=I-Internet ye-daemon eqala ama-sevisi we-network adingekayo
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <qstring.h>
|
||||
#include <qdatetime.h>
|
||||
#include <qtimer.h>
|
||||
#include <dnssd/publicservice.h>
|
||||
|
||||
#include "kserviceregistry.h"
|
||||
|
||||
@@ -35,7 +36,11 @@ class PortListener : public QObject {
|
||||
private:
|
||||
bool m_valid;
|
||||
QString m_serviceName;
|
||||
QString m_serviceURL, m_serviceAttributes, m_registeredServiceURL;
|
||||
QString m_serviceURL, m_serviceAttributes;
|
||||
QStringList m_registeredServiceURLs;
|
||||
QString m_dnssdName, m_dnssdType;
|
||||
QMap<QString,QString> m_dnssdData;
|
||||
int m_serviceLifetime;
|
||||
int m_port;
|
||||
int m_portBase, m_autoPortRange;
|
||||
int m_defaultPortBase, m_defaultAutoPortRange;
|
||||
@@ -44,17 +49,22 @@ private:
|
||||
QString m_argument;
|
||||
bool m_enabled;
|
||||
bool m_serviceRegistered, m_registerService;
|
||||
bool m_dnssdRegister, m_dnssdRegistered;
|
||||
QDateTime m_expirationTime;
|
||||
QDateTime m_slpLifetimeEnd;
|
||||
QString m_uuid;
|
||||
|
||||
KServerSocket *m_socket;
|
||||
KProcess m_process;
|
||||
|
||||
KConfig *m_config;
|
||||
KServiceRegistry *m_srvreg;
|
||||
DNSSD::PublicService *m_dnssdreg;
|
||||
|
||||
void freePort();
|
||||
void loadConfig(KService::Ptr s);
|
||||
void setEnabledInternal(bool e, const QDateTime &ex);
|
||||
void dnssdRegister(bool enabled);
|
||||
void setServiceRegistrationEnabledInternal(bool enabled);
|
||||
|
||||
public:
|
||||
@@ -69,10 +79,12 @@ public:
|
||||
void setServiceRegistrationEnabled(bool enabled);
|
||||
bool isServiceRegistrationEnabled();
|
||||
QDateTime expiration();
|
||||
QDateTime serviceLifetimeEnd();
|
||||
bool isEnabled();
|
||||
int port();
|
||||
QString processServiceTemplate(const QString &a);
|
||||
QStringList processServiceTemplate(const QString &a);
|
||||
bool setPort(int port = -1, int autoProbeRange = 1);
|
||||
void refreshRegistration();
|
||||
|
||||
private slots:
|
||||
void accepted(KSocket*);
|
||||
@@ -162,16 +174,20 @@ k_dcop:
|
||||
private:
|
||||
QDateTime getNextExpirationTime();
|
||||
void setPortRetryTimer(bool retry);
|
||||
void setReregistrationTimer();
|
||||
|
||||
KConfig *m_config;
|
||||
KServiceRegistry *m_srvreg;
|
||||
QPtrList<PortListener> m_portListeners;
|
||||
QTimer m_expirationTimer;
|
||||
QTimer m_portRetryTimer;
|
||||
QTimer m_reregistrationTimer;
|
||||
|
||||
private slots:
|
||||
void setExpirationTimer();
|
||||
void expirationTimer();
|
||||
void portRetryTimer();
|
||||
void reregistrationTimer();
|
||||
|
||||
public:
|
||||
KInetD(QCString &n);
|
||||
|
||||
@@ -4,42 +4,67 @@
|
||||
Type=ServiceType
|
||||
X-KDE-ServiceType=KInetDModule
|
||||
Name=KInetD Module Type
|
||||
Name[bg]=KInetD Тип на Модул
|
||||
Name[ar]=KInetD نوع وحدة
|
||||
Name[be]=Тып модуля KInetD
|
||||
Name[bg]=Модул на KInetD
|
||||
Name[bn]=কে-আইনেট-ডি মডিউল ধরন
|
||||
Name[br]=Seurt ar mollad KInetD
|
||||
Name[bs]=KInetD tip modula
|
||||
Name[ca]=Tipus de mòdul del KInetD
|
||||
Name[cs]=Typ modulu KInetD
|
||||
Name[cy]=Math Modiwl KInetD
|
||||
Name[da]=KInetD-modultype
|
||||
Name[de]=KInetD Modultyp
|
||||
Name[el]=Τύπος αρθρώματος KInetD
|
||||
Name[eo]=KInetD-modulotipo
|
||||
Name[es]=Tipo de módulo KInetD
|
||||
Name[et]=KInetD mooduli tüüp
|
||||
Name[fi]=KInetD modulityyppi
|
||||
Name[eu]=KInetD modulu mota
|
||||
Name[fa]=نوع پیمانۀ KInetD
|
||||
Name[fi]=KInetD-moduulityyppi
|
||||
Name[fr]=Type de module de KInetD
|
||||
Name[ga]=Cineál Modúil KInetD
|
||||
Name[gl]=Tipo de módulo KInetD
|
||||
Name[he]=סוג מודול של KInetD
|
||||
Name[hi]=के-इनिट-डी मॉड्यूल प्रकार
|
||||
Name[hr]=Tip KInetD Modula
|
||||
Name[hu]=KInetD modultípus
|
||||
Name[is]=KInetD Module tegund
|
||||
Name[it]=Tipo modulo KInetD
|
||||
Name[ja]=KInetD モジュールタイプ
|
||||
Name[kk]=KInetD модулі
|
||||
Name[km]=ប្រភេទម៉ូលឌុល KInetD
|
||||
Name[lt]=KInetD modulio tipas
|
||||
Name[mk]=Тип на модул за KInetD
|
||||
Name[mn]=Модуль KInetD
|
||||
Name[ms]=Jenis Modul KInetD
|
||||
Name[mt]=Tip ta' modulu KInetD
|
||||
Name[nb]=KInetd-programtillegstype
|
||||
Name[nds]=KInetD-Moduultyp
|
||||
Name[ne]=KInetD मोड्युल प्रकार
|
||||
Name[nl]=KInetD-moduletype
|
||||
Name[nn]=KInetD-programtilleggstype
|
||||
Name[nso]=Mohuta wa Seripa sa KInetD
|
||||
Name[pa]=KInetD ਮੋਡੀਊਲ ਕਿਸਮ
|
||||
Name[pl]=Typ modułu KInetD
|
||||
Name[pt]=Tipo de Módulo do KInetD
|
||||
Name[pt_BR]=Módulo KInetD
|
||||
Name[ro]=Tip modul KInetD
|
||||
Name[ru]=Модуль KInetD
|
||||
Name[se]=KInetD-moduvlašládja
|
||||
Name[sk]=Typ modulu KInetD
|
||||
Name[sl]=Vrsta modula KInetD
|
||||
Name[sr]=KInetD врста модула
|
||||
Name[sr@Latn]=KInetD vrsta modula
|
||||
Name[sv]=Kinetd-modultyp
|
||||
Name[ta]=KInetD கூறு வகை
|
||||
Name[tg]=Навъи Модули KInetD
|
||||
Name[tr]=KDED Modül Türü
|
||||
Name[uk]=Тип модулю KinetD
|
||||
Name[ven]=Lushaka lwa Modulu ya KInetD
|
||||
Name[xh]=Udidi Lomqongo womlinganiselo we KInetD
|
||||
Name[zh_CN]=KInetD 模块类型
|
||||
Name[zh_HK]=KInetD 模組類型
|
||||
Name[zh_TW]=KInetD 模組類型
|
||||
Name[zu]=KInetD Uhlobo Lokwenza
|
||||
|
||||
@@ -70,12 +95,15 @@ Type=QString
|
||||
[PropertyDef::X-KDE-KINETD-multiInstance]
|
||||
Type=bool
|
||||
|
||||
# if set, kinetd will register the given URL at the local SLP SA while
|
||||
# the port is open. The following strings will be substituted:
|
||||
# if set, kinetd will register the given URL at the local SLP SA while
|
||||
# the port is open. It will register one URL for each IP address of the
|
||||
# host.
|
||||
# The following strings will be substituted:
|
||||
# %h with the local IP address
|
||||
# %p with the port number
|
||||
# %u with the user's login name
|
||||
# %f with the user's full name
|
||||
# %i with a UUID thats identical in all URLs of this service
|
||||
[PropertyDef::X-KDE-KINETD-serviceURL]
|
||||
Type=QString
|
||||
|
||||
@@ -85,6 +113,35 @@ Type=QString
|
||||
# %p with the port number
|
||||
# %u with the user's login name
|
||||
# %f with the user's full name
|
||||
# %i with a UUID thats identical in all URLs of this service
|
||||
[PropertyDef::X-KDE-KINETD-serviceAttributes]
|
||||
Type=QString
|
||||
|
||||
# the lifetime of a service in seconds. kinets will renew the service
|
||||
# automatically. Max 65535, never use anything under 2 min. Something like
|
||||
# 5-20 minutes is a sane value for most desktop applications.
|
||||
[PropertyDef::X-KDE-KINETD-serviceLifetime]
|
||||
Type=int
|
||||
|
||||
# if set, kinetd will announce service with given name on local network while
|
||||
# the port is open.
|
||||
# The following strings will be substituted:
|
||||
# %h with the local IP address
|
||||
# %f with the user's full name
|
||||
# %p with the port number
|
||||
|
||||
[PropertyDef::X-KDE-KINETD-DNSSD-Name]
|
||||
Type=QString
|
||||
|
||||
# if kinetd announces service on network using DNS-SD, this string will be used as service
|
||||
# type. It must be in form _yourservice._udp or _yourservice._tcp
|
||||
# it uses the same substitution rules as X-KDE-KINETD-DNSSD-Name
|
||||
|
||||
[PropertyDef::X-KDE-KINETD-DNSSD-Type]
|
||||
Type=QString
|
||||
|
||||
# defines list of text properties for service announced via DNS-SD
|
||||
# it uses the same substitution rules as X-KDE-KINETD-DNSSD-Name
|
||||
[PropertyDef::X-KDE-KINETD-DNSSD-Properties]
|
||||
Type=QStringList
|
||||
|
||||
|
||||
@@ -3,28 +3,24 @@ KDE_CXXFLAGS = $(USE_THREADS)
|
||||
METASOURCES = AUTO
|
||||
|
||||
noinst_LTLIBRARIES = libkrfbconfig.la
|
||||
libkrfbconfig_la_SOURCES = configuration.cc manageinvitations.ui \
|
||||
personalinvitation.ui invite.ui invitation.cc
|
||||
libkrfbconfig_la_SOURCES = configuration.cc configuration.skel invitedialog.cc invitation.cc \
|
||||
manageinvitations.ui personalinvitewidget.ui \
|
||||
invitewidget.ui personalinvitedialog.cc
|
||||
libkrfbconfig_la_LIBADD = ../srvloc/libsrvloc.la $(LIB_KDEUI)
|
||||
|
||||
bin_PROGRAMS = krfb
|
||||
krfb_SOURCES = rfbcontroller.cc xupdatescanner.cc main.cpp \
|
||||
newconnectiondialog.ui krfbifaceimpl.cc krfbiface.skel \
|
||||
trayicon.cpp
|
||||
krfb_LDADD = libkrfbconfig.la ../libvncserver/libvncserver.la ../srvloc/libsrvloc.la -lXtst $(LIB_KDEUI) $(LIBJPEG)
|
||||
connectionwidget.ui krfbifaceimpl.cc krfbiface.skel \
|
||||
trayicon.cpp connectiondialog.cc
|
||||
krfb_LDADD = libkrfbconfig.la ../libvncserver/libvncserver.la ../srvloc/libsrvloc.la -lXtst $(LIB_KDEUI) $(LIBJPEG) -lkio
|
||||
krfb_LDFLAGS = $(all_libraries) $(KDE_RPATH)
|
||||
|
||||
noinst_HEADER = configuration.h invitation.h invite.h krfbiface.h \
|
||||
krfbifaceimpl.h rfbcontroller.h trayicon.h xupdatescanner.h
|
||||
|
||||
|
||||
datadir = $(kde_datadir)/krfb/pics
|
||||
data_DATA = eyes-open24.png eyes-closed24.png connection-side-image.png
|
||||
appdatadir = $(kde_datadir)/krfb/pics
|
||||
appdata_DATA = eyes-open24.png eyes-closed24.png connection-side-image.png
|
||||
|
||||
kde_services_DATA = kinetd_krfb.desktop
|
||||
|
||||
lnkdir = $(kde_appsdir)/System
|
||||
lnk_DATA = krfb.desktop
|
||||
xdg_apps_DATA = krfb.desktop
|
||||
|
||||
appdir = $(kde_datadir)/krfb
|
||||
app_DATA = eventsrc
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
configuration.cpp
|
||||
-------------------
|
||||
begin : Tue Dec 11 2001
|
||||
copyright : (C) 2001-2002 by Tim Jansen
|
||||
copyright : (C) 2001-2003 by Tim Jansen
|
||||
email : tim@tjansen.de
|
||||
***************************************************************************/
|
||||
|
||||
@@ -16,52 +16,49 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "configuration.h"
|
||||
#include "kinetaddr.h"
|
||||
#include "kinetinterface.h"
|
||||
|
||||
#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
#include <kapplication.h>
|
||||
#include <kmessagebox.h>
|
||||
#include <kprocess.h>
|
||||
#include <ksockaddr.h>
|
||||
#include <kactivelabel.h>
|
||||
|
||||
#include <qdatastream.h>
|
||||
#include <dcopclient.h>
|
||||
#include <dcopref.h>
|
||||
|
||||
#include <qlabel.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qlineedit.h>
|
||||
#include <qcheckbox.h>
|
||||
|
||||
ManageInvitationsDialog2::ManageInvitationsDialog2() :
|
||||
ManageInvitationsDialog(0, 0, false, WShowModal)
|
||||
{ }
|
||||
void ManageInvitationsDialog2::closeEvent(QCloseEvent *)
|
||||
{ emit closed(); }
|
||||
|
||||
InvitationDialog2::InvitationDialog2() :
|
||||
InvitationDialog(0, 0, false, WShowModal)
|
||||
{ }
|
||||
void InvitationDialog2::closeEvent(QCloseEvent *)
|
||||
{ emit closed(); }
|
||||
|
||||
PersonalInvitationDialog2::PersonalInvitationDialog2() :
|
||||
PersonalInvitationDialog(0, 0, false, WShowModal)
|
||||
{ }
|
||||
void PersonalInvitationDialog2::closeEvent(QCloseEvent *)
|
||||
{ emit closed(); }
|
||||
|
||||
#include <krun.h>
|
||||
|
||||
/**
|
||||
* Note that this class is used and provides GUI in every mode:
|
||||
* - for the invitation dialogs
|
||||
* - for the kcontrol module
|
||||
* - for the running krfb instance
|
||||
*/
|
||||
Configuration::Configuration(krfb_mode mode) :
|
||||
m_mode(mode),
|
||||
portNum(-1)
|
||||
invMngDlg(0, 0, true),
|
||||
invDlg(0, "InviteDialog"),
|
||||
persInvDlg(0, "PersonalInviteDialog"),
|
||||
portNum(-1),
|
||||
kinetdRef("kded", "kinetd")
|
||||
{
|
||||
kinetdRef.setDCOPClient(KApplication::dcopClient());
|
||||
loadFromKConfig();
|
||||
saveToDialogs();
|
||||
doKinetdConf();
|
||||
|
||||
connect(invMngDlg.closeButton, SIGNAL(clicked()), SLOT(invMngDlgClosed()));
|
||||
connect(&invMngDlg, SIGNAL(closed()), SLOT(invMngDlgClosed()));
|
||||
connect(invMngDlg.newPersonalInvitationButton, SIGNAL(clicked()),
|
||||
connectDCOPSignal( 0, "KRFB::ConfigChanged", "KRFB_ConfigChanged()",
|
||||
"updateKConfig()", false );
|
||||
connect(invMngDlg.newPersonalInvitationButton, SIGNAL(clicked()),
|
||||
SLOT(showPersonalInvitationDialog()));
|
||||
connect(invMngDlg.newEmailInvitationButton, SIGNAL(clicked()), SLOT(inviteEmail()));
|
||||
connect(invMngDlg.deleteOneButton, SIGNAL(clicked()), SLOT(invMngDlgDeleteOnePressed()));
|
||||
@@ -69,22 +66,20 @@ Configuration::Configuration(krfb_mode mode) :
|
||||
invMngDlg.listView->setSelectionMode(QListView::Extended);
|
||||
invMngDlg.listView->setMinimumSize(QSize(400, 100)); // QTs size is much to small
|
||||
|
||||
connect(invDlg.closeButton, SIGNAL(clicked()), SLOT(invDlgClosed()));
|
||||
connect(&invDlg, SIGNAL(closed()), SLOT(invDlgClosed()));
|
||||
connect(invDlg.createInvitationButton, SIGNAL(clicked()),
|
||||
connect(&invDlg, SIGNAL(createInviteClicked()),
|
||||
SLOT(showPersonalInvitationDialog()));
|
||||
connect(invDlg.createInvitationEMailButton, SIGNAL(clicked()),
|
||||
connect(&invDlg, SIGNAL(emailInviteClicked()),
|
||||
SLOT(inviteEmail()));
|
||||
connect(invDlg.manageInvitationButton, SIGNAL(clicked()),
|
||||
connect(&invDlg, SIGNAL(manageInviteClicked()),
|
||||
SLOT(showManageInvitationsDialog()));
|
||||
connect(this, SIGNAL(invitationNumChanged(int)), this, SLOT(changeInvDlgNum(int)));
|
||||
connect(this, SIGNAL(invitationNumChanged(int)),
|
||||
connect(&invDlg, SIGNAL(configureClicked()),
|
||||
SLOT(showConfigurationModule()));
|
||||
connect(this, SIGNAL(invitationNumChanged(int)),
|
||||
&invDlg, SLOT(setInviteCount(int)));
|
||||
connect(this, SIGNAL(invitationNumChanged(int)),
|
||||
&invMngDlg, SLOT(listSizeChanged(int)));
|
||||
emit invitationNumChanged(invitationList.size());
|
||||
|
||||
connect(persInvDlg.closeButton, SIGNAL(clicked()), SLOT(persInvDlgClosed()));
|
||||
connect(&persInvDlg, SIGNAL(closed()), SLOT(persInvDlgClosed()));
|
||||
|
||||
connect(&refreshTimer, SIGNAL(timeout()), SLOT(refreshTimeout()));
|
||||
refreshTimer.start(1000*60);
|
||||
}
|
||||
@@ -93,64 +88,42 @@ Configuration::~Configuration() {
|
||||
save();
|
||||
}
|
||||
|
||||
void Configuration::setKInetdEnabled(bool enabled) {
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
void Configuration::updateKConfig()
|
||||
{
|
||||
loadFromKConfig();
|
||||
}
|
||||
|
||||
QByteArray sdata;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb");
|
||||
arg << enabled;
|
||||
d->send ("kded", "kinetd", "setEnabled(QString,bool)", sdata);
|
||||
void Configuration::setKInetdEnabled(bool enabled) {
|
||||
kinetdRef.send("setEnabled", QString("krfb"), enabled);
|
||||
kinetdRef.send("setEnabled", QString("krfb_httpd"), enabled);
|
||||
}
|
||||
|
||||
void Configuration::setKInetdEnabled(const QDateTime &date) {
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
|
||||
QByteArray sdata;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb");
|
||||
arg << date;
|
||||
d->send ("kded", "kinetd", "setEnabled(QString,QDateTime)", sdata);
|
||||
kinetdRef.send("setEnabled", QString("krfb"), date);
|
||||
kinetdRef.send("setEnabled", QString("krfb_httpd"), date);
|
||||
}
|
||||
|
||||
void Configuration::setKInetdServiceRegistrationEnabled(bool enabled) {
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
|
||||
QByteArray sdata;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb");
|
||||
arg << enabled;
|
||||
d->send ("kded", "kinetd", "setServiceRegistrationEnabled(QString,bool)", sdata);
|
||||
kinetdRef.send("setServiceRegistrationEnabled",
|
||||
QString("krfb"), enabled);
|
||||
kinetdRef.send("setServiceRegistrationEnabled",
|
||||
QString("krfb_httpd"), enabled);
|
||||
}
|
||||
|
||||
void Configuration::getPortFromKInetd() {
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
|
||||
QByteArray sdata, rdata;
|
||||
QCString replyType;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb");
|
||||
if (!d->call ("kded", "kinetd", "port(QString)", sdata, replyType, rdata))
|
||||
return; // nicer error here
|
||||
|
||||
if (replyType != "int")
|
||||
return; // nicer error here
|
||||
|
||||
QDataStream answer(rdata, IO_ReadOnly);
|
||||
answer >> portNum;
|
||||
DCOPReply r = kinetdRef.call("port", QString("krfb"));
|
||||
if (!r.isValid())
|
||||
return; // nice error msg here?
|
||||
r.get(portNum);
|
||||
}
|
||||
|
||||
void Configuration::setKInetdPort(int p) {
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
|
||||
QByteArray sdata, rdata;
|
||||
QCString replyType;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb") << p << 1;
|
||||
if (!d->call ("kded", "kinetd", "setPort(QString,int,int)", sdata, replyType, rdata))
|
||||
return; // nicer error here
|
||||
DCOPReply r = kinetdRef.call("setPort",
|
||||
QString("krfb"), p, 1);
|
||||
// nice error msg here?
|
||||
}
|
||||
|
||||
|
||||
void Configuration::removeInvitation(QValueList<Invitation>::iterator it) {
|
||||
invitationList.remove(it);
|
||||
save();
|
||||
@@ -194,6 +167,8 @@ void Configuration::loadFromKConfig() {
|
||||
askOnConnectFlag = c.readBoolEntry("confirmUninvitedConnection", true);
|
||||
allowDesktopControlFlag = c.readBoolEntry("allowDesktopControl", false);
|
||||
preferredPortNum = c.readNumEntry("preferredPort", -1);
|
||||
disableBackgroundFlag = c.readBoolEntry("disableBackground", false);
|
||||
disableXShmFlag = c.readBoolEntry("disableXShm", false);
|
||||
if (c.hasKey("uninvitedPasswordCrypted"))
|
||||
passwordString = cryptStr(c.readEntry("uninvitedPasswordCrypted", ""));
|
||||
else
|
||||
@@ -209,6 +184,7 @@ void Configuration::loadFromKConfig() {
|
||||
invalidateOldInvitations();
|
||||
if (invNum != invitationList.size())
|
||||
emit invitationNumChanged(invitationList.size());
|
||||
|
||||
}
|
||||
|
||||
void Configuration::saveToKConfig() {
|
||||
@@ -219,6 +195,8 @@ void Configuration::saveToKConfig() {
|
||||
c.writeEntry("allowUninvited", allowUninvitedFlag);
|
||||
c.writeEntry("enableSLP", enableSLPFlag);
|
||||
c.writeEntry("preferredPort", preferredPortNum);
|
||||
c.writeEntry("disableBackground", disableBackgroundFlag);
|
||||
c.writeEntry("disableXShm", disableXShmFlag);
|
||||
c.writeEntry("uninvitedPasswordCrypted", cryptStr(passwordString));
|
||||
c.deleteEntry("uninvitedPassword");
|
||||
|
||||
@@ -283,9 +261,14 @@ void Configuration::refreshTimeout() {
|
||||
|
||||
QString Configuration::hostname() const
|
||||
{
|
||||
KInetAddress *a = KInetAddress::getPrivateInetAddress();
|
||||
QString hostName = a->nodeName();
|
||||
delete a;
|
||||
KInetSocketAddress *a = KInetInterface::getPublicInetAddress();
|
||||
QString hostName;
|
||||
if (a) {
|
||||
hostName = a->nodeName();
|
||||
delete a;
|
||||
}
|
||||
else
|
||||
hostName = "localhost";
|
||||
return hostName;
|
||||
}
|
||||
|
||||
@@ -319,6 +302,14 @@ QValueList<Invitation> &Configuration::invitations() {
|
||||
return invitationList;
|
||||
}
|
||||
|
||||
bool Configuration::disableBackground() const {
|
||||
return disableBackgroundFlag;
|
||||
}
|
||||
|
||||
bool Configuration::disableXShm() const {
|
||||
return disableXShmFlag;
|
||||
}
|
||||
|
||||
void Configuration::setAllowUninvited(bool allowUninvited) {
|
||||
allowUninvitedFlag = allowUninvited;
|
||||
}
|
||||
@@ -353,7 +344,7 @@ int Configuration::port() const
|
||||
// use p=-1 for defaults
|
||||
void Configuration::setPreferredPort(int p)
|
||||
{
|
||||
preferredPortNum = p;
|
||||
preferredPortNum = p;
|
||||
}
|
||||
|
||||
int Configuration::preferredPort() const
|
||||
@@ -361,17 +352,20 @@ int Configuration::preferredPort() const
|
||||
return preferredPortNum;
|
||||
}
|
||||
|
||||
void Configuration::setDisableBackground(bool disable) {
|
||||
disableBackgroundFlag = disable;
|
||||
}
|
||||
|
||||
void Configuration::setDisableXShm(bool disable) {
|
||||
disableXShmFlag = disable;
|
||||
}
|
||||
|
||||
////////////// invitation manage dialog //////////////////////////
|
||||
|
||||
void Configuration::showManageInvitationsDialog() {
|
||||
loadFromKConfig();
|
||||
saveToDialogs();
|
||||
invMngDlg.show();
|
||||
}
|
||||
|
||||
void Configuration::invMngDlgClosed() {
|
||||
invMngDlg.hide();
|
||||
invMngDlg.exec();
|
||||
}
|
||||
|
||||
void Configuration::invMngDlgDeleteOnePressed() {
|
||||
@@ -399,21 +393,9 @@ void Configuration::invMngDlgDeleteAllPressed() {
|
||||
////////////// invitation dialog //////////////////////////
|
||||
|
||||
void Configuration::showInvitationDialog() {
|
||||
invDlg.show();
|
||||
}
|
||||
|
||||
void Configuration::invDlgClosed() {
|
||||
closeInvDlg();
|
||||
invDlg.exec();
|
||||
emit invitationFinished();
|
||||
}
|
||||
|
||||
void Configuration::closeInvDlg() {
|
||||
saveToKConfig();
|
||||
invDlg.hide();
|
||||
}
|
||||
|
||||
void Configuration::changeInvDlgNum(int newNum) {
|
||||
invDlg.manageInvitationButton->setText( i18n("Manage Invitations (%1)...").arg(newNum) );
|
||||
}
|
||||
|
||||
////////////// personal invitation dialog //////////////////////////
|
||||
@@ -423,34 +405,30 @@ void Configuration::showPersonalInvitationDialog() {
|
||||
Invitation inv = createInvitation();
|
||||
save();
|
||||
emit invitationNumChanged(invitationList.size());
|
||||
|
||||
invDlg.createInvitationButton->setEnabled(false);
|
||||
|
||||
invDlg.enableInviteButton(false);
|
||||
invMngDlg.newPersonalInvitationButton->setEnabled(false);
|
||||
|
||||
persInvDlg.hostLabel->setText(QString("%1:%2").arg(hostname()).arg(port()));
|
||||
persInvDlg.passwordLabel->setText(inv.password());
|
||||
persInvDlg.expirationLabel->setText(
|
||||
inv.expirationTime().toString(Qt::LocalDate));
|
||||
persInvDlg.show();
|
||||
}
|
||||
persInvDlg.setHost(hostname(), port());
|
||||
persInvDlg.setPassword(inv.password());
|
||||
persInvDlg.setExpiration(inv.expirationTime());
|
||||
|
||||
void Configuration::persInvDlgClosed() {
|
||||
persInvDlg.hide();
|
||||
invDlg.createInvitationButton->setEnabled(true);
|
||||
persInvDlg.exec();
|
||||
invDlg.enableInviteButton(true);
|
||||
invMngDlg.newPersonalInvitationButton->setEnabled(true);
|
||||
}
|
||||
|
||||
////////////// invite email //////////////////////////
|
||||
|
||||
void Configuration::inviteEmail() {
|
||||
int r = KMessageBox::warningContinueCancel(0,
|
||||
int r = KMessageBox::warningContinueCancel(0,
|
||||
i18n("When sending an invitation by email, note that everybody who reads this email "
|
||||
"will be able to connect to your computer for one hour, or until the first "
|
||||
"successful connection took place, whatever comes first. \n"
|
||||
"successful connection took place, whichever comes first. \n"
|
||||
"You should either encrypt the email or at least send it only in a "
|
||||
"secure network, but not over the Internet."),
|
||||
i18n("Send Invitation via Email"),
|
||||
KStdGuiItem::cont(),
|
||||
KStdGuiItem::cont(),
|
||||
"showEmailInvitationWarning");
|
||||
if (r == KMessageBox::Cancel)
|
||||
return;
|
||||
@@ -469,15 +447,28 @@ void Configuration::inviteEmail() {
|
||||
"Otherwise you can use any VNC client with the following parameters:\n\n"
|
||||
"Host: %4:%5\n"
|
||||
"Password: %6\n\n"
|
||||
"For security reasons this invitation will expire at %7.")
|
||||
"Alternatively you can click on the link below to start the VNC session\n"
|
||||
"within your web browser.\n"
|
||||
"\n"
|
||||
" http://%7:%8/\n"
|
||||
"\n"
|
||||
"For security reasons this invitation will expire at %9.")
|
||||
.arg(inv.password())
|
||||
.arg(hostname())
|
||||
.arg(port())
|
||||
.arg(hostname())
|
||||
.arg(port())
|
||||
.arg(inv.password())
|
||||
.arg(hostname())
|
||||
.arg(5800) // determine with dcop ... later ...
|
||||
.arg(KGlobal::locale()->formatDateTime(inv.expirationTime())));
|
||||
|
||||
}
|
||||
|
||||
////////////// invoke kcontrol module //////////////////////////
|
||||
|
||||
void Configuration::showConfigurationModule() {
|
||||
KRun::run( "kcmshell kcmkrfb", KURL::List() );
|
||||
}
|
||||
|
||||
|
||||
#include "configuration.moc"
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
configuration.h
|
||||
-------------------
|
||||
begin : Tue Dec 11 2001
|
||||
copyright : (C) 2001-2002 by Tim Jansen
|
||||
copyright : (C) 2001-2003 by Tim Jansen
|
||||
email : tim@tjansen.de
|
||||
***************************************************************************/
|
||||
|
||||
@@ -21,15 +21,18 @@
|
||||
#include "invitation.h"
|
||||
|
||||
#include "manageinvitations.h"
|
||||
#include "personalinvitation.h"
|
||||
#include "invite.h"
|
||||
#include "personalinvitedialog.h"
|
||||
#include "invitedialog.h"
|
||||
|
||||
#include <dcopref.h>
|
||||
#include <kconfig.h>
|
||||
#include <qtimer.h>
|
||||
#include <qobject.h>
|
||||
#include <qvalidator.h>
|
||||
#include <qstring.h>
|
||||
|
||||
#include <dcopobject.h>
|
||||
|
||||
enum krfb_mode {
|
||||
KRFB_UNKNOWN_MODE = 0,
|
||||
KRFB_KINETD_MODE,
|
||||
@@ -37,41 +40,18 @@ enum krfb_mode {
|
||||
KRFB_CONFIGURATION_MODE
|
||||
};
|
||||
|
||||
class ManageInvitationsDialog2 : public ManageInvitationsDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
ManageInvitationsDialog2();
|
||||
virtual void closeEvent(QCloseEvent *);
|
||||
signals:
|
||||
void closed();
|
||||
};
|
||||
class InvitationDialog2 : public InvitationDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
InvitationDialog2();
|
||||
virtual void closeEvent(QCloseEvent *);
|
||||
signals:
|
||||
void closed();
|
||||
};
|
||||
class PersonalInvitationDialog2 : public PersonalInvitationDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
PersonalInvitationDialog2();
|
||||
virtual void closeEvent(QCloseEvent *);
|
||||
signals:
|
||||
void closed();
|
||||
};
|
||||
|
||||
/**
|
||||
* This class stores the app's configuration, manages the
|
||||
* standalone-config-dialog and all the invitation dialogs
|
||||
* @author Tim Jansen
|
||||
*/
|
||||
class Configuration : public QObject {
|
||||
class Configuration : public QObject, public DCOPObject {
|
||||
K_DCOP
|
||||
Q_OBJECT
|
||||
public:
|
||||
Configuration(krfb_mode mode);
|
||||
~Configuration();
|
||||
virtual ~Configuration();
|
||||
|
||||
krfb_mode mode() const;
|
||||
bool askOnConnect() const;
|
||||
@@ -82,12 +62,16 @@ public:
|
||||
QString hostname() const;
|
||||
int port() const;
|
||||
int preferredPort() const;
|
||||
bool disableBackground() const;
|
||||
bool disableXShm() const;
|
||||
|
||||
void setAllowUninvited(bool allowUninvited);
|
||||
void setEnableSLP(bool e);
|
||||
void setAskOnConnect(bool askOnConnect);
|
||||
void setPassword(QString password);
|
||||
void setPreferredPort(int p);
|
||||
void setDisableBackground(bool disable);
|
||||
void setDisableXShm(bool disable);
|
||||
void save();
|
||||
void update();
|
||||
|
||||
@@ -102,8 +86,9 @@ public slots:
|
||||
void showManageInvitationsDialog();
|
||||
void showInvitationDialog();
|
||||
void showPersonalInvitationDialog();
|
||||
void showConfigurationModule();
|
||||
void inviteEmail();
|
||||
|
||||
|
||||
private:
|
||||
void loadFromKConfig();
|
||||
void loadFromDialogs();
|
||||
@@ -121,9 +106,9 @@ private:
|
||||
|
||||
krfb_mode m_mode;
|
||||
|
||||
ManageInvitationsDialog2 invMngDlg;
|
||||
InvitationDialog2 invDlg;
|
||||
PersonalInvitationDialog2 persInvDlg;
|
||||
ManageInvitationsDialog invMngDlg;
|
||||
InviteDialog invDlg;
|
||||
PersonalInviteDialog persInvDlg;
|
||||
QTimer refreshTimer;
|
||||
|
||||
bool askOnConnectFlag;
|
||||
@@ -131,21 +116,24 @@ private:
|
||||
bool allowUninvitedFlag;
|
||||
bool enableSLPFlag;
|
||||
|
||||
int portNum, preferredPortNum;
|
||||
int portNum, preferredPortNum;
|
||||
|
||||
DCOPRef kinetdRef;
|
||||
|
||||
QString passwordString;
|
||||
QValueList<Invitation> invitationList;
|
||||
|
||||
bool disableBackgroundFlag;
|
||||
bool disableXShmFlag;
|
||||
|
||||
k_dcop:
|
||||
// Connected to the DCOP signal
|
||||
void updateKConfig();
|
||||
private slots:
|
||||
void refreshTimeout();
|
||||
|
||||
void invMngDlgClosed();
|
||||
void invMngDlgDeleteOnePressed();
|
||||
void invMngDlgDeleteAllPressed();
|
||||
|
||||
void invDlgClosed();
|
||||
void changeInvDlgNum(int newNum);
|
||||
|
||||
void persInvDlgClosed();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
63
krfb/connectiondialog.cc
Normal file
@@ -0,0 +1,63 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "connectiondialog.h"
|
||||
#include "connectionwidget.h"
|
||||
|
||||
#include <qcheckbox.h>
|
||||
#include <qlabel.h>
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <klocale.h>
|
||||
|
||||
ConnectionDialog::ConnectionDialog( QWidget *parent, const char *name )
|
||||
: KDialogBase( parent, name, true, i18n( "New Connection" ),
|
||||
Ok|Cancel, Cancel, true )
|
||||
{
|
||||
m_connectWidget = new ConnectionWidget( this, "ConnectWidget" );
|
||||
m_connectWidget->pixmapLabel->setPixmap(
|
||||
UserIcon( "connection-side-image.png" ) );
|
||||
|
||||
KGuiItem accept = KStdGuiItem::ok();
|
||||
accept.setText( i18n( "Accept Connection" ) );
|
||||
setButtonOK( accept );
|
||||
|
||||
KGuiItem refuse = KStdGuiItem::cancel();
|
||||
refuse.setText( i18n( "Refuse Connection" ) );
|
||||
setButtonCancel( refuse );
|
||||
|
||||
setMainWidget( m_connectWidget );
|
||||
}
|
||||
|
||||
void ConnectionDialog::setRemoteHost( const QString &host )
|
||||
{
|
||||
m_connectWidget->remoteHost->setText( host );
|
||||
}
|
||||
|
||||
void ConnectionDialog::setAllowRemoteControl( bool b )
|
||||
{
|
||||
m_connectWidget->cbAllowRemoteControl->setChecked( b );
|
||||
}
|
||||
|
||||
bool ConnectionDialog::allowRemoteControl()
|
||||
{
|
||||
return m_connectWidget->cbAllowRemoteControl->isChecked();
|
||||
}
|
||||
|
||||
#include "connectiondialog.moc"
|
||||
44
krfb/connectiondialog.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef CONNECTIONDIALOG_H
|
||||
#define CONNECTIONDIALOG_H
|
||||
|
||||
#include <kdialogbase.h>
|
||||
|
||||
class ConnectionWidget;
|
||||
|
||||
class ConnectionDialog : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ConnectionDialog( QWidget *parent, const char *name );
|
||||
~ConnectionDialog() {};
|
||||
|
||||
void setRemoteHost( const QString &host );
|
||||
void setAllowRemoteControl( bool b );
|
||||
bool allowRemoteControl();
|
||||
|
||||
protected:
|
||||
ConnectionWidget *m_connectWidget;
|
||||
};
|
||||
|
||||
#endif // CONNECTIONDIALOG_H
|
||||
|
||||
208
krfb/connectionwidget.ui
Normal file
@@ -0,0 +1,208 @@
|
||||
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>ConnectionWidget</class>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>NewConnectWidget</cstring>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>521</width>
|
||||
<height>328</height>
|
||||
</rect>
|
||||
</property>
|
||||
<grid>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QLabel" row="0" column="1" rowspan="1" colspan="2">
|
||||
<property name="name">
|
||||
<cstring>TextLabel5</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>13</pointsize>
|
||||
<bold>1</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Attention</string>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="1" column="1" rowspan="1" colspan="2">
|
||||
<property name="name">
|
||||
<cstring>mainTextLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>-1</number>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="midLineWidth">
|
||||
<number>5</number>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Somebody is requesting a connection to your computer. Granting this will allow the remote user to watch your desktop. </string>
|
||||
</property>
|
||||
<property name="textFormat">
|
||||
<enum>AutoText</enum>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>WordBreak|AlignVCenter|AlignLeft</set>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="wordwrap" stdset="0">
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="0" column="0" rowspan="6" colspan="1">
|
||||
<property name="name">
|
||||
<cstring>pixmapLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>WinPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>Sunken</enum>
|
||||
</property>
|
||||
<property name="lineWidth">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="indent">
|
||||
<number>0</number>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="3" column="2">
|
||||
<property name="name">
|
||||
<cstring>remoteHost</cstring>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>1</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>123.234.123.234</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QCheckBox" row="5" column="1" rowspan="1" colspan="2">
|
||||
<property name="name">
|
||||
<cstring>cbAllowRemoteControl</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>1</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Allow remote user to &control keyboard and mouse</string>
|
||||
</property>
|
||||
<property name="whatsThis" stdset="0">
|
||||
<string>If you turn this option on, the remote user can enter keystrokes and use your mouse pointer. This gives them full control over your computer, so be careful. When the option is disabled the remote user can only watch your screen.</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="3" column="1">
|
||||
<property name="name">
|
||||
<cstring>TextLabel1</cstring>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>1</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remote system:</string>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="4" column="1">
|
||||
<property name="name">
|
||||
<cstring>spacer23</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>84</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<spacer row="2" column="1">
|
||||
<property name="name">
|
||||
<cstring>spacer22</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Minimum</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>80</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</grid>
|
||||
</widget>
|
||||
<layoutdefaults spacing="6" margin="11"/>
|
||||
</UI>
|
||||
BIN
krfb/cr16-app-krfb.png
Normal file
|
After Width: | Height: | Size: 931 B |
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 5.4 KiB |
659
krfb/eventsrc
|
Before Width: | Height: | Size: 877 B After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 963 B After Width: | Height: | Size: 1.7 KiB |
@@ -18,7 +18,6 @@
|
||||
|
||||
#include "invitation.h"
|
||||
|
||||
|
||||
/*
|
||||
* Function for (en/de)crypting strings for config file, taken from KMail
|
||||
* Author: Stefan Taferner <taferner@alpin.or.at>
|
||||
@@ -31,11 +30,35 @@ QString cryptStr(const QString &aStr) {
|
||||
return result;
|
||||
}
|
||||
|
||||
// a random string that doesn't contain i, I, o, O, 1, 0
|
||||
// based on KApplication::randomString()
|
||||
static QString readableRandomString(int length) {
|
||||
QString str;
|
||||
while (length)
|
||||
{
|
||||
int r = KApplication::random() % 62;
|
||||
r += 48;
|
||||
if (r > 57)
|
||||
r += 7;
|
||||
if (r > 90)
|
||||
r += 6;
|
||||
char c = char(r);
|
||||
if ((c == 'i') ||
|
||||
(c == 'I') ||
|
||||
(c == '1') ||
|
||||
(c == 'o') ||
|
||||
(c == 'O') ||
|
||||
(c == '0'))
|
||||
continue;
|
||||
str += c;
|
||||
length--;
|
||||
}
|
||||
return str;
|
||||
}
|
||||
|
||||
Invitation::Invitation() :
|
||||
m_viewItem(0) {
|
||||
m_password = KApplication::randomString(4)+
|
||||
"-"+
|
||||
KApplication::randomString(4);
|
||||
m_password = readableRandomString(4)+"-"+readableRandomString(3);
|
||||
m_creationTime = QDateTime::currentDateTime();
|
||||
m_expirationTime = QDateTime::currentDateTime().addSecs(INVITATION_DURATION);
|
||||
}
|
||||
|
||||
260
krfb/invite.ui
65
krfb/invitedialog.cc
Normal file
@@ -0,0 +1,65 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "invitedialog.h"
|
||||
#include "invitewidget.h"
|
||||
|
||||
#include <kiconloader.h>
|
||||
#include <klocale.h>
|
||||
#include <kstdguiitem.h>
|
||||
|
||||
#include <qlabel.h>
|
||||
#include <qpushbutton.h>
|
||||
|
||||
InviteDialog::InviteDialog( QWidget *parent, const char *name )
|
||||
: KDialogBase( parent, name, true, i18n( "Invitation" ),
|
||||
User1|Close|Help, NoDefault, true )
|
||||
{
|
||||
m_inviteWidget = new InviteWidget( this, "InviteWidget" );
|
||||
m_inviteWidget->pixmapLabel->setPixmap(
|
||||
UserIcon( "connection-side-image.png" ) );
|
||||
setMainWidget( m_inviteWidget );
|
||||
|
||||
setButtonGuiItem( User1, KStdGuiItem::configure() );
|
||||
|
||||
connect( m_inviteWidget->btnCreateInvite, SIGNAL( clicked() ),
|
||||
SIGNAL( createInviteClicked() ) );
|
||||
connect( m_inviteWidget->btnEmailInvite, SIGNAL( clicked() ),
|
||||
SIGNAL( emailInviteClicked() ) );
|
||||
connect( m_inviteWidget->btnManageInvite, SIGNAL( clicked() ),
|
||||
SIGNAL( manageInviteClicked() ) );
|
||||
}
|
||||
|
||||
void InviteDialog::slotUser1()
|
||||
{
|
||||
emit configureClicked();
|
||||
}
|
||||
|
||||
void InviteDialog::enableInviteButton( bool enable )
|
||||
{
|
||||
m_inviteWidget->btnCreateInvite->setEnabled( enable );
|
||||
}
|
||||
|
||||
void InviteDialog::setInviteCount( int count )
|
||||
{
|
||||
m_inviteWidget->btnManageInvite->setText(
|
||||
i18n( "&Manage Invitations (%1)..." ).arg( count ) );
|
||||
}
|
||||
|
||||
#include "invitedialog.moc"
|
||||
54
krfb/invitedialog.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef INVITEDIALOG_H
|
||||
#define INVITEDIALOG_H
|
||||
|
||||
class InviteWidget;
|
||||
|
||||
#include <kdialogbase.h>
|
||||
|
||||
class InviteDialog : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
InviteDialog( QWidget *parent, const char *name );
|
||||
~InviteDialog() {}
|
||||
|
||||
void enableInviteButton( bool enable );
|
||||
|
||||
public slots:
|
||||
void setInviteCount( int count );
|
||||
|
||||
signals:
|
||||
void createInviteClicked();
|
||||
void emailInviteClicked();
|
||||
void manageInviteClicked();
|
||||
void configureClicked();
|
||||
|
||||
protected slots:
|
||||
void slotUser1();
|
||||
|
||||
protected:
|
||||
InviteWidget *m_inviteWidget;
|
||||
};
|
||||
|
||||
#endif // INVITEDIALOG_H
|
||||
|
||||
197
krfb/invitewidget.ui
Normal file
@@ -0,0 +1,197 @@
|
||||
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>InviteWidget</class>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>InviteWidget</cstring>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>521</width>
|
||||
<height>328</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="caption">
|
||||
<string></string>
|
||||
</property>
|
||||
<grid>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QLabel" row="0" column="1" rowspan="1" colspan="3">
|
||||
<property name="name">
|
||||
<cstring>TextLabel2</cstring>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>1</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Welcome to KDE Desktop Sharing</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="KActiveLabel" row="1" column="1" rowspan="1" colspan="3">
|
||||
<property name="name">
|
||||
<cstring>kActiveLabel1</cstring>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>KDE Desktop Sharing allows you to invite somebody at a remote location to watch and possibly control your desktop.
|
||||
<a href="whatsthis:<p>An invitation creates a one-time password that allows the receiver to connect to your desktop. It is valid for only one successful connection and will expire after an hour if it has not been used. When somebody connects to your computer a dialog will appear and ask you for permission. The connection will not be established before you accept it. In this dialog you can also restrict the other person to view your desktop only, without the ability to move your mouse pointer or press keys.</p><p>If you want to create a permanent password for Desktop Sharing, allow 'Uninvited Connections' in the configuration.</p>">More about invitations...</a></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="0" column="0" rowspan="7" colspan="1">
|
||||
<property name="name">
|
||||
<cstring>pixmapLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>WinPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>Sunken</enum>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="4" column="3">
|
||||
<property name="name">
|
||||
<cstring>spacer4</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<widget class="QPushButton" row="3" column="2">
|
||||
<property name="name">
|
||||
<cstring>btnCreateInvite</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Create &Personal Invitation...</string>
|
||||
</property>
|
||||
<property name="toolTip" stdset="0">
|
||||
<string></string>
|
||||
</property>
|
||||
<property name="whatsThis" stdset="0">
|
||||
<string>Create a new invitation and display the connection data. Use this option if you want to invite somebody personally, for example, to give the connection data over the phone.</string>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="6" column="2">
|
||||
<property name="name">
|
||||
<cstring>spacer5</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Fixed</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>24</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<spacer row="4" column="1">
|
||||
<property name="name">
|
||||
<cstring>spacer3</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<widget class="QPushButton" row="5" column="2">
|
||||
<property name="name">
|
||||
<cstring>btnManageInvite</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>&Manage Invitations (%1)...</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" row="4" column="2">
|
||||
<property name="name">
|
||||
<cstring>btnEmailInvite</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Invite via &Email...</string>
|
||||
</property>
|
||||
<property name="whatsThis" stdset="0">
|
||||
<string>This button will start your email application with a pre-configured text that explains to the recipient how to connect to your computer. </string>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="2" column="2">
|
||||
<property name="name">
|
||||
<cstring>spacer2</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>89</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</grid>
|
||||
</widget>
|
||||
<signals>
|
||||
<signal>createInviteClicked()</signal>
|
||||
<signal>emailInviteClicked()</signal>
|
||||
<signal>manageInviteClicked()</signal>
|
||||
</signals>
|
||||
<layoutdefaults spacing="6" margin="11"/>
|
||||
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
|
||||
</UI>
|
||||
@@ -11,83 +11,139 @@ X-KDE-KINETD-autoPortRange=100
|
||||
X-KDE-KINETD-enabled=false
|
||||
X-KDE-KINETD-argument=--kinetd
|
||||
X-KDE-KINETD-multiInstance=false
|
||||
X-KDE-KINETD-serviceURL=service:remotedesktop.kde:vnc://%h:%p;(type=shared),(username=%u),(fullname=%f)
|
||||
X-KDE-KINETD-serviceAttributes=(type=shared),(username=%u),(fullname=%f)
|
||||
X-KDE-KINETD-serviceURL=service:remotedesktop.kde:vnc://%h:%p;(type=shared),(username=%u),(fullname=%f),(serviceid=%i)
|
||||
X-KDE-KINETD-serviceAttributes=(type=shared),(username=%u),(fullname=%f),(serviceid=%i)
|
||||
X-KDE-KINETD-serviceLifetime=1200
|
||||
X-KDE-KINETD-DNSSD-Name=Remote Desktop of %u
|
||||
X-KDE-KINETD-DNSSD-Type=_rfb._tcp
|
||||
X-KDE-KINETD-DNSSD-Properties=type=shared,u=%u,fullname=%f
|
||||
|
||||
Name=KRfb Desktop Sharing
|
||||
Name[bg]=Споделяне на Работно място KRfb
|
||||
Name[ar]=KRfb مشاركة سطح المكتب
|
||||
Name[be]=Агульнае выкарыстанне кампутара KRfb
|
||||
Name[bg]=Споделяне на работното място (KRfb)
|
||||
Name[bn]=কে-আর-এফ-বি ডেস্কটপ ভাগাভাগি
|
||||
Name[br]=Rannañ burev KRfb
|
||||
Name[bs]=KRfb dijeljenje desktopa
|
||||
Name[ca]=Compartició de l'escriptori KRfb
|
||||
Name[cs]=Sdílení pracovní plochy KRfb
|
||||
Name[da]=KRfb Skrivebordsdeling
|
||||
Name[cy]=Rhannu Penbwrdd KRfb
|
||||
Name[da]=KRfb desktopdeling
|
||||
Name[de]=KRfb Arbeitsfläche freigeben
|
||||
Name[el]=KRfb μοίρασμα επιφάνειας εργασίας
|
||||
Name[el]=Κοινή χρήση επιφάνειας εργασίας KRfb
|
||||
Name[eo]=KRfb Tabula fordonado
|
||||
Name[es]=Compartición de escritorio KRfb
|
||||
Name[es]=Escritorio compartido KRfb
|
||||
Name[et]=KRfb Töölaua jagamine
|
||||
Name[fi]=KRfb työpöytien jako
|
||||
Name[eu]=KRfb mahaigain partekatzea
|
||||
Name[fa]=اشتراک رومیزی KRfb
|
||||
Name[fi]=KRfb työpöydän jakaminen
|
||||
Name[fr]=Partage de bureau KRfb
|
||||
Name[ga]=Roinnt Deisce KRfb
|
||||
Name[gl]=KRfb Compartición de Escritorios
|
||||
Name[he]=שיתוף שולחנות עבודה של KRfb
|
||||
Name[hi]=KRfb डेस्कटॉप साझेदारी
|
||||
Name[hr]=KRfb dijeljenje radne površine
|
||||
Name[hu]=KRfb munkaasztal-megosztás
|
||||
Name[is]=KRfb Skjáborðsmiðlun
|
||||
Name[it]=Condivisione desktop KRfb
|
||||
Name[ja]=KRfb デスクトップ共有
|
||||
Name[lt]=KRfb dalinimasis darbastaliu
|
||||
Name[kk]=KRfb ортақ үстелі
|
||||
Name[km]=ការចែករំលែកផ្ទៃតុ KRfb
|
||||
Name[lt]=KRfb Dalinimasis darbastaliu
|
||||
Name[mk]=Делење на површина со KRfb
|
||||
Name[mn]=KRfb ажлын байр
|
||||
Name[ms]=Perkongsian Ruang Kerja KRfb
|
||||
Name[mt]=Qsim tad-desktop KRfb
|
||||
Name[nb]=KRfb skrivebordsdeling
|
||||
Name[nds]=KRfb-Schriefdischfreegaav
|
||||
Name[ne]=KRfb डेस्कटप साझेदारी
|
||||
Name[nl]=KRfb Bureaublad delen
|
||||
Name[nn]=KRfb-skrivebordsdeling
|
||||
Name[nso]=Kabagano ya Desktop ya KRfp
|
||||
Name[pl]=KRfb Współdzielenie biurka
|
||||
Name[pa]=KRfb ਡੈਸਕਟਾਪ ਸਾਂਝ
|
||||
Name[pl]=KRfb Współdzielenie pulpitu
|
||||
Name[pt]=Partilha do Ecrã KRfb
|
||||
Name[pt_BR]=Compartilhamento do Ambiente de Trabalho KRfb
|
||||
Name[ro]=Partajare ecran KRfb
|
||||
Name[ru]=Общий рабочий стол KRfb
|
||||
Name[se]=KRfb-čállinbeavdejuohkin
|
||||
Name[sk]=KRfb zdieľanie pracovnej plochy
|
||||
Name[sl]=Deljenje namizja z KRfb
|
||||
Name[sr]=KRfb дељење радне површине
|
||||
Name[sr@Latn]=KRfb deljenje radne površine
|
||||
Name[sv]=Krfb dela ut skrivbord
|
||||
Name[ta]=KRfb பணிமேடை பகிர்வு
|
||||
Name[tg]=Истифодабарии муштакари Мизи кории KRfb
|
||||
Name[th]=แบ่งการใช้งานพื้นที่ทำงานร่วมกัน
|
||||
Name[tr]=KRfb Masaüstü Paylaşımı
|
||||
Name[uk]=Спільні стільниця KRfb
|
||||
Name[ven]=U kovhekana ha Desikithopo ya KRfb
|
||||
Name[xh]=Desktop ye KRfb Isebenza ngokuhlangeneyo
|
||||
Name[zh_CN]=KRfb 桌面共享
|
||||
Name[zh_HK]=KRfb 桌面分享
|
||||
Name[zh_TW]=KRfb 桌面分享
|
||||
Name[zu]=KRfb ukwahlukanisela kwe-Desktop Sharing
|
||||
Comment=A daemon that allows you to share your desktop
|
||||
Comment[af]='n bediener wat laat toe jy na deel jou werkskerm
|
||||
Comment[bg]=Демон който ви позволява да споделяте работното място
|
||||
Comment[ar]=مراقب يسمح لك بمشاركة سطح مكتبك
|
||||
Comment[be]=Сервіс, які дае магчымасць кіравання стальніцай з іншага кампутара
|
||||
Comment[bg]=Демон за споделяне на работното място
|
||||
Comment[bn]=একটি ডিমন যে আপনার ডেস্কটপ ভাগাভাগি করতে আপনাকে অনুমতি দেয়
|
||||
Comment[bs]=Daemon koji vam omogućuje da dijelite vaš desktop
|
||||
Comment[ca]=Un dimoni que us permetrà compartir el vostre escriptori
|
||||
Comment[cs]=Démon umožňující sdílení vaší plochy
|
||||
Comment[da]=En dæmon der tillader dig at dele dit skrivebord
|
||||
Comment[de]=Ein Dämon, der die Freigabe der Arbeitsfläche erlaubt
|
||||
Comment[cy]=Daemon sy'n gadael i chi rannu eich penbwrdd
|
||||
Comment[da]=En dæmon der tillader dig at dele din desktop
|
||||
Comment[de]=Ein Dienst, der die Freigabe der Arbeitsfläche erlaubt
|
||||
Comment[el]=Ένας δαίμονας που σας επιτρέπει να μοιραστείτε την επιφάνεια εργασίας σας
|
||||
Comment[eo]=demono por permesi retan fordonadon de via tabulo
|
||||
Comment[es]=Un demonio que le permite compartir su escritorio
|
||||
Comment[et]=Deemon, mis lubab sul töölauda jagada
|
||||
Comment[fi]=Palvelin joka mahdollistaa työpöytien jaon
|
||||
Comment[eu]=Zure mahaigaina partekatzeko aukera ematen duen deabrua da
|
||||
Comment[fa]=یک شبح که اجازۀ مشترک ساختن رومیزی را به شما میدهد
|
||||
Comment[fi]=Palvelin, joka mahdollistaa työpöydän jakamisen
|
||||
Comment[fr]=Un démon qui vous permet de partager votre bureau
|
||||
Comment[he]=תהליך שירות שמאפשר לך לשתף את שולחן העבודה שלך
|
||||
Comment[ga]=Deamhan a chuireann ar do chumas do dheasca a roinnt
|
||||
Comment[gl]=Un demo que permite a compartición do teu escritorio
|
||||
Comment[he]=תהליך רקע שמאפשר לך לשתף את שולחן העבודה שלך
|
||||
Comment[hi]=आपके डेस्कटॉप को साझेदारी करने देने वाला डेमन
|
||||
Comment[hr]=Daemon koji vam omogućuje da dijelite svoju radnu površinu s drugima
|
||||
Comment[hu]=Munkaasztal-megosztási szolgáltatás
|
||||
Comment[is]=Þjónn sem leyfir þér að miðla skjáborðinu þínu
|
||||
Comment[it]=Un demone che permette di condividere il tuo desktop
|
||||
Comment[ja]=デスクトップ共有を可能にするデーモン
|
||||
Comment[lt]=Tarnyba, leidžianti jums dalintis savo darbastaliu
|
||||
Comment[kk]=Үстеліңізді ортақтастыруға мүмкіндік беретін қызмет
|
||||
Comment[km]=ដេមិនដែលអនុញ្ញាតឲ្យអ្នកចែករំលែកផ្ទៃតុរបស់អ្នក
|
||||
Comment[lt]=Tarnyba, leidžianti dalintis savo darbastaliu
|
||||
Comment[mk]=Даемон кој ви дозволува да ја делите вашата работна површина
|
||||
Comment[mn]=Таны ажлын байрыг хамтран эзэмшихийгзөвшөөрсөн демон
|
||||
Comment[ms]=Daemon yang membenarkan anda berkongsi ruang kerja
|
||||
Comment[mt]=Daemon li jħallik taqsam id-desktop ma' ħaddieħor
|
||||
Comment[nb]=En programnisse som tillater deling av ditt skrivebord med andre
|
||||
Comment[nds]=En Dämoon, wo Du Dien Schriefdisch mit delen kannst
|
||||
Comment[ne]=एउटा डेइमन जसले तपाईँको डेस्कटप साझेदार गर्न अनुमति दिन्छ
|
||||
Comment[nl]=Een daemon waarmee u uw bureaublad kunt vrijgeven om te delen
|
||||
Comment[nn]=Ein nisse som let deg dela skrivebordet
|
||||
Comment[nso]=Daemon yeo ego dumelelago go abelana ka desktop ya gago
|
||||
Comment[pl]=Demon, który pozwala na współdzielenie biurka
|
||||
Comment[pl]=Usługa, która pozwala na współdzielenie pulpitu
|
||||
Comment[pt]=Um servidor que lhe permite partilhar o seu ecrã
|
||||
Comment[pt_BR]=Um servidor que permite a você compartilhar o seu ambiente de trabalho
|
||||
Comment[ro]=Un demon care vă permite saă partajaţi sistemul dumneavoastră
|
||||
Comment[ru]=Демон общего доступа к рабочему столу
|
||||
Comment[ru]=Служба совместного доступа к рабочему столу
|
||||
Comment[se]=Duogášprográmma mii diktá du juohkit čállinbeavddi earáiguin
|
||||
Comment[sk]=Démon ktorý umožní zdieľať vašu pracovnú plochu
|
||||
Comment[sl]=Demon, s katerim lahko delite vaše namizje
|
||||
Comment[sl]=Strežnik, s katerim lahko delite vaše namizje
|
||||
Comment[sr]=Демон који вам дозвољава да делите вашу радну површину
|
||||
Comment[sr@Latn]=Demon koji vam dozvoljava da delite vašu radnu površinu
|
||||
Comment[sv]=Demon som låter dig dela ut skrivbordet
|
||||
Comment[ta]=ஒரு டேமொன் உங்கள் பணிமேடை பகிர்வை அளிக்கும்
|
||||
Comment[tg]=Азозиле, ки ба шумо истифодабарии муштараки мизи кориро медиҳад
|
||||
Comment[th]=เดมอนอนุญาตให้คุณแบ่งการใช้งานพื้นที่ทำงานร่วมกัน
|
||||
Comment[tr]=Masaüstünüzde paylaşılmasına izin verilmiş hayalet program
|
||||
Comment[uk]=Демон, що дозволяє спільне використання стільниць
|
||||
Comment[ven]=Daemon ine yani tendela nitshi kovhekana desktop yanu
|
||||
Comment[xh]=Daemon ekuvumela ukuba wabe i desktop yakho
|
||||
Comment[zh_CN]=允许您共享桌面的守护进程
|
||||
Comment[zh_HK]=讓您分享您的桌面的系統程式
|
||||
Comment[zh_TW]=讓您分享您的桌面的伺服程式
|
||||
Comment[zu]=I-daemoni ekuvumela uhlukaniselana nge-desktop
|
||||
|
||||
@@ -1,47 +1,62 @@
|
||||
# KDE Config File
|
||||
# KDE Config File
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Exec=krfb -caption "%c" %i %m
|
||||
Icon=krfb
|
||||
DocPath=krfb/index.html
|
||||
Terminal=0
|
||||
Name=Desktop Sharing
|
||||
Name[af]=Werkskerm Deeling
|
||||
Name[bg]=Споделяне на Работно място
|
||||
Name[bs]=Dijeljenje desktopa
|
||||
Name[ca]=Compartició de l'escriptori
|
||||
Name[cs]=Sdílení pracovní plochy
|
||||
Name[da]=Skrivebordsdeling
|
||||
Name[de]=Arbeitsfläche freigeben
|
||||
Name[el]=Μοίρασμα της επιφάνειας εργασίας
|
||||
Name[eo]=Tabuloj komunaj
|
||||
Name[es]=Compartición de escritorio
|
||||
Name[et]=Töölaua jagamine
|
||||
Name[fi]=Työpöytien jako
|
||||
Name[fr]=Partage de bureau
|
||||
Name[he]=שיתוף שולחנות עבודה
|
||||
Name[hr]=Dijeljenje radne površine
|
||||
Name[hu]=Munkaasztal-megosztás
|
||||
Name[it]=Condivisione Desktop
|
||||
Name[ja]=デスクトップ共有
|
||||
Name[lt]=Dalinimasis darbastaliu
|
||||
Name[mt]=Qsim tad-desktop
|
||||
Name[nb]=Delte skrivebord
|
||||
Name[nl]=Bureaubladvrijgave
|
||||
Name[nn]=Skrivebordsdeling
|
||||
Name[nso]=Kabagano ya Desktop
|
||||
Name[pl]=Współdzielenie biurka
|
||||
Name[pt]=Partilha do Ambiente de Trabalho
|
||||
Name[pt_BR]=Compartilhamento do Desktop
|
||||
Name[ro]=Partajare ecran
|
||||
Name[ru]=Общий рабочий стол
|
||||
Name[sk]=Zdieľanie pracovnej plochy
|
||||
Name[sl]=Deljenje namizja
|
||||
Name[sv]=Dela ut skrivbordet
|
||||
Name[tr]=Masaüstü Paylaşımı
|
||||
Name[uk]=Спільні стільниці
|
||||
Name[ven]=U kovhekana ha Desikithopo
|
||||
Name[xh]=Ukwehlulelana kwe Desktop
|
||||
Name[zh_CN]=桌面共享
|
||||
Name[zh_TW]=桌面分享
|
||||
Name[zu]=Ukwahlulelana kwe-Desktop
|
||||
Terminal=false
|
||||
Name=Krfb
|
||||
Name[bn]=কে-আর-এফ-বি
|
||||
Name[zh_TW]=Krfb 桌面分享
|
||||
GenericName=Desktop Sharing
|
||||
GenericName[be]=Агульнае выкарыстанне стальніцы
|
||||
GenericName[bg]=Споделяне на раб. място
|
||||
GenericName[bn]=ডেস্কটপ ভাগাভাগি
|
||||
GenericName[br]=Rannañ ar vurev
|
||||
GenericName[bs]=Dijeljenje desktopa
|
||||
GenericName[ca]=Compartició de l'escriptori
|
||||
GenericName[cs]=Sdílení pracovní plochy
|
||||
GenericName[cy]=Rhannu Penbwrdd
|
||||
GenericName[da]=Desktopdeling
|
||||
GenericName[de]=Arbeitsfläche freigeben
|
||||
GenericName[el]=Κοινή χρήση επιφάνειας εργασίας
|
||||
GenericName[es]=Escritorio compartido
|
||||
GenericName[et]=Töölaua jagamine
|
||||
GenericName[eu]=Mahaigain partekatzea
|
||||
GenericName[fa]=اشتراک رومیزی
|
||||
GenericName[fi]=Työpöydän jakaminen
|
||||
GenericName[fr]=Partage de bureau
|
||||
GenericName[ga]=Roinnt Deisce
|
||||
GenericName[gl]=Compartidor de Escritorio
|
||||
GenericName[he]=שיתוף שולחנות עבודה
|
||||
GenericName[hu]=Munkaasztal-megosztás
|
||||
GenericName[is]=Skjáborðsmiðlun
|
||||
GenericName[it]=Condivisione desktop
|
||||
GenericName[ja]=デスクトップ共有
|
||||
GenericName[kk]=Үстелді ортақтастыру
|
||||
GenericName[km]=ការចែករំលែកផ្ទៃតុ
|
||||
GenericName[lt]=Dalinimasis darbastaliu
|
||||
GenericName[mt]=Qsim tad-desktop
|
||||
GenericName[nb]=Delte skrivebord
|
||||
GenericName[nds]=Schriefdisch-Freegaav
|
||||
GenericName[ne]=डेस्कटप साझेदारी
|
||||
GenericName[nl]=Bureaublad delen
|
||||
GenericName[nn]=Skrivebordsdeling
|
||||
GenericName[pa]=ਡੈਸਕਟਾਪ ਸਾਂਝ
|
||||
GenericName[pl]=Współdzielenie pulpitu
|
||||
GenericName[pt]=Partilha do Ambiente de Trabalho
|
||||
GenericName[pt_BR]=Compartilhamento de Ambiente de Trabalho
|
||||
GenericName[ru]=Общий рабочий стол
|
||||
GenericName[sk]=Zdieľanie pracovnej plochy
|
||||
GenericName[sl]=Deljenje namizja
|
||||
GenericName[sr]=Дељење радне површине
|
||||
GenericName[sr@Latn]=Deljenje radne površine
|
||||
GenericName[sv]=Dela ut skrivbordet
|
||||
GenericName[tr]=Masaüstü Paylaşımı
|
||||
GenericName[uk]=Спільні стільниці
|
||||
GenericName[uz]=Иш столи билан бўлишиш
|
||||
GenericName[zh_CN]=桌面共享
|
||||
GenericName[zh_HK]=桌面分享
|
||||
GenericName[zh_TW]=桌面分享
|
||||
Categories=Qt;KDE;System;RemoteAccess;Network;
|
||||
|
||||
@@ -9,9 +9,9 @@
|
||||
|
||||
#include "krfbifaceimpl.h"
|
||||
|
||||
KRfbIfaceImpl::KRfbIfaceImpl(Configuration *c) :
|
||||
KRfbIfaceImpl::KRfbIfaceImpl(RFBController *c) :
|
||||
DCOPObject("krfbIface"),
|
||||
configuration(c)
|
||||
controller(c)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -21,8 +21,7 @@ void KRfbIfaceImpl::exit()
|
||||
}
|
||||
void KRfbIfaceImpl::setAllowDesktopControl(bool b)
|
||||
{
|
||||
configuration->setAllowDesktopControl(b);
|
||||
configuration->save();
|
||||
controller->enableDesktopControl(b);
|
||||
}
|
||||
|
||||
#include "krfbifaceimpl.moc"
|
||||
|
||||
@@ -2,16 +2,16 @@
|
||||
#define __KRFB_IFACE_IMPL_H
|
||||
|
||||
#include <qobject.h>
|
||||
#include "configuration.h"
|
||||
#include "rfbcontroller.h"
|
||||
#include "krfbiface.h"
|
||||
|
||||
class KRfbIfaceImpl : public QObject, public virtual krfbIface
|
||||
{
|
||||
Q_OBJECT
|
||||
private:
|
||||
Configuration *configuration;
|
||||
RFBController *controller;
|
||||
public:
|
||||
KRfbIfaceImpl(Configuration *c);
|
||||
KRfbIfaceImpl(RFBController *c);
|
||||
signals:
|
||||
void exitApp();
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 429 B After Width: | Height: | Size: 305 B |
|
Before Width: | Height: | Size: 606 B After Width: | Height: | Size: 505 B |
@@ -2,7 +2,7 @@
|
||||
main.cpp
|
||||
-------------------
|
||||
begin : Sat Dec 8 03:23:02 CET 2001
|
||||
copyright : (C) 2001-2002 by Tim Jansen
|
||||
copyright : (C) 2001-2003 by Tim Jansen
|
||||
email : tim@tjansen.de
|
||||
***************************************************************************/
|
||||
|
||||
@@ -35,46 +35,35 @@
|
||||
#include <qwindowdefs.h>
|
||||
#include <qcstring.h>
|
||||
#include <qdatastream.h>
|
||||
#include <dcopclient.h>
|
||||
#include <dcopref.h>
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#define VERSION "1.0"
|
||||
|
||||
static const char *description = I18N_NOOP("VNC-compatible server to share "
|
||||
static const char description[] = I18N_NOOP("VNC-compatible server to share "
|
||||
"KDE desktops");
|
||||
#define ARG_KINETD "kinetd"
|
||||
|
||||
|
||||
static KCmdLineOptions options[] =
|
||||
{
|
||||
{ ARG_KINETD " ", I18N_NOOP("Used for calling from kinetd."), 0},
|
||||
{ 0, 0, 0 }
|
||||
{ ARG_KINETD " ", I18N_NOOP("Used for calling from kinetd"), 0},
|
||||
KCmdLineLastOption
|
||||
};
|
||||
|
||||
/*
|
||||
* TODO:
|
||||
* - fix bug on 'close connection' in kinetd mode
|
||||
*/
|
||||
|
||||
void checkKInetd(bool &kinetdAvailable, bool &krfbAvailable) {
|
||||
kinetdAvailable = false;
|
||||
krfbAvailable = false;
|
||||
DCOPRef ref("kded", "kinetd");
|
||||
ref.setDCOPClient(KApplication::dcopClient());
|
||||
|
||||
DCOPClient *d = KApplication::dcopClient();
|
||||
|
||||
QByteArray sdata, rdata;
|
||||
QCString replyType;
|
||||
QDataStream arg(sdata, IO_WriteOnly);
|
||||
arg << QString("krfb");
|
||||
if (!d->call ("kded", "kinetd", "isInstalled(QString)", sdata, replyType, rdata))
|
||||
DCOPReply r = ref.call("isInstalled", QString("krfb"));
|
||||
if (!r.isValid()) {
|
||||
kinetdAvailable = false;
|
||||
krfbAvailable = false;
|
||||
return;
|
||||
}
|
||||
|
||||
if (replyType != "bool")
|
||||
return;
|
||||
|
||||
QDataStream answer(rdata, IO_ReadOnly);
|
||||
answer >> krfbAvailable;
|
||||
r.get(krfbAvailable);
|
||||
kinetdAvailable = true;
|
||||
}
|
||||
|
||||
@@ -82,13 +71,13 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
KAboutData aboutData( "krfb", I18N_NOOP("Desktop Sharing"),
|
||||
VERSION, description, KAboutData::License_GPL,
|
||||
"(c) 2001-2002, Tim Jansen\n"
|
||||
"(c) 2001-2003, Tim Jansen\n"
|
||||
"(c) 2001, Johannes E. Schindelin\n"
|
||||
"(c) 2000, heXoNet Support GmbH, D-66424 Homburg\n"
|
||||
"(c) 2000-2001, Const Kaplinsky\n"
|
||||
"(c) 2000, Tridia Corporation\n"
|
||||
"(c) 1999, AT&T Laboratories Cambridge\n",
|
||||
0, "", "ml@tjansen.de");
|
||||
0, "", "tim@tjansen.de");
|
||||
aboutData.addAuthor("Tim Jansen", "", "tim@tjansen.de");
|
||||
aboutData.addAuthor("Ian Reinhart Geiser", "DCOP interface", "geiseri@kde.org");
|
||||
aboutData.addCredit("Johannes E. Schindelin",
|
||||
@@ -106,6 +95,8 @@ int main(int argc, char *argv[])
|
||||
aboutData.addCredit("Jason Spisak",
|
||||
I18N_NOOP("Connection side image"),
|
||||
"kovalid@yahoo.com");
|
||||
aboutData.addCredit("Karl Vogel",
|
||||
I18N_NOOP("KDesktop background deactivation"));
|
||||
KCmdLineArgs::init(argc, argv, &aboutData);
|
||||
KCmdLineArgs::addCmdLineOptions(options);
|
||||
|
||||
@@ -120,26 +111,24 @@ int main(int argc, char *argv[])
|
||||
if (!kinetdA) {
|
||||
KMessageBox::error(0,
|
||||
i18n("Cannot find KInetD. "
|
||||
"Have you restarted KDE after installation?"),
|
||||
"The KDE daemon (kded) may have crashed or has not been started at all, or the installation failed."),
|
||||
i18n("Desktop Sharing Error"));
|
||||
return 1;
|
||||
}
|
||||
if (!krfbA) {
|
||||
KMessageBox::error(0,
|
||||
i18n("Cannot find KInetD service for Desktop Sharing (KRfb). "
|
||||
"Have you restarted KDE after installation?"),
|
||||
i18n("Cannot find KInetD service for Desktop Sharing (krfb). "
|
||||
"The installation is incomplete or failed."),
|
||||
i18n("Desktop Sharing Error"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
config = new Configuration(KRFB_INVITATION_MODE);
|
||||
config->showInvitationDialog();
|
||||
QObject::connect(config, SIGNAL(invitationFinished()),
|
||||
&app, SLOT(quit()));
|
||||
return app.exec();
|
||||
return 0;
|
||||
}
|
||||
fdString = args->getOption(ARG_KINETD);
|
||||
config = new Configuration(KRFB_KINETD_MODE);
|
||||
config = new Configuration(KRFB_KINETD_MODE);
|
||||
args->clear();
|
||||
|
||||
if ((!config->allowUninvitedConnections()) && (config->invitations().size() == 0)) {
|
||||
@@ -152,8 +141,8 @@ int main(int argc, char *argv[])
|
||||
|
||||
TrayIcon trayicon(new KAboutApplication(&aboutData),
|
||||
config);
|
||||
KRfbIfaceImpl dcopiface(config);
|
||||
RFBController controller(config);
|
||||
KRfbIfaceImpl dcopiface(&controller);
|
||||
|
||||
QObject::connect(&app, SIGNAL(lastWindowClosed()), // dont show passivepopup
|
||||
&trayicon, SLOT(prepareQuit()));
|
||||
@@ -169,11 +158,13 @@ int main(int argc, char *argv[])
|
||||
|
||||
QObject::connect(&dcopiface, SIGNAL(exitApp()),
|
||||
&controller, SLOT(closeConnection()));
|
||||
QObject::connect(&dcopiface, SIGNAL(exitApp()),
|
||||
&app, SLOT(quit()));
|
||||
|
||||
QObject::connect(&controller, SIGNAL(sessionRefused()),
|
||||
&app, SLOT(quit()));
|
||||
QObject::connect(&controller, SIGNAL(sessionEstablished()),
|
||||
&trayicon, SLOT(showConnectedMessage()));
|
||||
QObject::connect(&controller, SIGNAL(sessionEstablished(QString)),
|
||||
&trayicon, SLOT(showConnectedMessage(QString)));
|
||||
QObject::connect(&controller, SIGNAL(sessionFinished()),
|
||||
&trayicon, SLOT(showDisconnectedMessage()));
|
||||
QObject::connect(&controller, SIGNAL(desktopControlSettingChanged(bool)),
|
||||
|
||||
@@ -194,6 +194,12 @@
|
||||
<receiver>ManageInvitationsDialog</receiver>
|
||||
<slot>listSelectionChanged()</slot>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>closeButton</sender>
|
||||
<signal>clicked()</signal>
|
||||
<receiver>ManageInvitationsDialog</receiver>
|
||||
<slot>accept()</slot>
|
||||
</connection>
|
||||
</connections>
|
||||
<includes>
|
||||
<include location="global" impldecl="in declaration">klistview.h</include>
|
||||
|
||||
54
krfb/personalinvitedialog.cc
Normal file
@@ -0,0 +1,54 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "personalinvitedialog.h"
|
||||
#include "personalinvitewidget.h"
|
||||
|
||||
#include <qlabel.h>
|
||||
|
||||
#include <kactivelabel.h>
|
||||
#include <kiconloader.h>
|
||||
#include <klocale.h>
|
||||
|
||||
PersonalInviteDialog::PersonalInviteDialog( QWidget *parent, const char *name )
|
||||
: KDialogBase( parent, name, true, i18n( "Personal Invitation" ),
|
||||
Close, Close, true )
|
||||
{
|
||||
m_inviteWidget = new PersonalInviteWidget( this, "PersonalInviteWidget" );
|
||||
m_inviteWidget->pixmapLabel->setPixmap(
|
||||
UserIcon( "connection-side-image.png" ) );
|
||||
|
||||
setMainWidget( m_inviteWidget );
|
||||
}
|
||||
|
||||
void PersonalInviteDialog::setHost( const QString &host, uint port )
|
||||
{
|
||||
m_inviteWidget->hostLabel->setText( QString( "%1:%2" )
|
||||
.arg( host ).arg( port ) );
|
||||
}
|
||||
|
||||
void PersonalInviteDialog::setPassword( const QString &passwd )
|
||||
{
|
||||
m_inviteWidget->passwordLabel->setText( passwd );
|
||||
}
|
||||
|
||||
void PersonalInviteDialog::setExpiration( const QDateTime &expire )
|
||||
{
|
||||
m_inviteWidget->expirationLabel->setText( expire.toString( Qt::LocalDate ) );
|
||||
}
|
||||
44
krfb/personalinvitedialog.h
Normal file
@@ -0,0 +1,44 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 2004 Nadeem Hasan <nhasan@kde.org>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef PERSONALINVITEDIALOG_H
|
||||
#define PERSONALINVITEDIALOG_H
|
||||
|
||||
class PersonalInviteWidget;
|
||||
|
||||
#include <qdatetime.h>
|
||||
|
||||
#include <kdialogbase.h>
|
||||
|
||||
class PersonalInviteDialog : public KDialogBase
|
||||
{
|
||||
public:
|
||||
PersonalInviteDialog( QWidget *parent, const char *name );
|
||||
virtual ~PersonalInviteDialog() {}
|
||||
|
||||
void setHost( const QString &host, uint port );
|
||||
void setPassword( const QString &passwd );
|
||||
void setExpiration( const QDateTime &expire );
|
||||
|
||||
protected:
|
||||
PersonalInviteWidget *m_inviteWidget;
|
||||
};
|
||||
|
||||
#endif // PERSONALINVITEDIALOG_H
|
||||
|
||||
241
krfb/personalinvitewidget.ui
Normal file
@@ -0,0 +1,241 @@
|
||||
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>PersonalInviteWidget</class>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>Form1</cstring>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>519</width>
|
||||
<height>328</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="caption">
|
||||
<string></string>
|
||||
</property>
|
||||
<grid>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="resizeMode">
|
||||
<enum>Fixed</enum>
|
||||
</property>
|
||||
<widget class="KActiveLabel" row="0" column="1" rowspan="1" colspan="3">
|
||||
<property name="name">
|
||||
<cstring>mainTextLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>7</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><h2>Personal Invitation</h2>
|
||||
Give the information below to the person that you want to invite (<a href="whatsthis:Desktop Sharing uses the VNC protocol. You can use any VNC client to connect. In KDE the client is called 'Remote Desktop Connection'. Enter the host information into the client and it will connect..">how to connect</a>). Note that everybody who gets the password can connect, so be careful.</string>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="1" column="2">
|
||||
<property name="name">
|
||||
<cstring>spacer9</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>34</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<widget class="QLabel" row="0" column="0" rowspan="6" colspan="1">
|
||||
<property name="name">
|
||||
<cstring>pixmapLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>108</width>
|
||||
<height>318</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>WinPanel</enum>
|
||||
</property>
|
||||
<property name="frameShadow">
|
||||
<enum>Sunken</enum>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="5" column="2">
|
||||
<property name="name">
|
||||
<cstring>spacer10</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
<widget class="KActiveLabel" row="2" column="2">
|
||||
<property name="name">
|
||||
<cstring>hostLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>cookie.tjansen.de:0</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="3" column="1">
|
||||
<property name="name">
|
||||
<cstring>kActiveLabel6</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><b>Password:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="4" column="1">
|
||||
<property name="name">
|
||||
<cstring>kActiveLabel7</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><b>Expiration time:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="KActiveLabel" row="3" column="2">
|
||||
<property name="name">
|
||||
<cstring>passwordLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>12345</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="KActiveLabel" row="4" column="2">
|
||||
<property name="name">
|
||||
<cstring>expirationLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="focusPolicy">
|
||||
<enum>NoFocus</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>17:12</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="2" column="1">
|
||||
<property name="name">
|
||||
<cstring>kActiveLabel5</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><b>Host:</b></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="KActiveLabel" row="2" column="3">
|
||||
<property name="name">
|
||||
<cstring>hostHelpLabel</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>3</hsizetype>
|
||||
<vsizetype>1</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>(<a href="whatsthis:This field contains the address of your computer and the display number, separated by a colon. The address is just a hint - you can use any address that can reach your computer. Desktop Sharing tries to guess your address from your network configuration, but does not always succeed in doing so. If your computer is behind a firewall it may have a different address or be unreachable for other computers.">Help</a>)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</grid>
|
||||
</widget>
|
||||
<layoutdefaults spacing="6" margin="11"/>
|
||||
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
|
||||
</UI>
|
||||
@@ -2,7 +2,7 @@
|
||||
rfbcontroller.cpp
|
||||
-------------------
|
||||
begin : Sun Dec 9 2001
|
||||
copyright : (C) 2001-2002 by Tim Jansen
|
||||
copyright : (C) 2001-2003 by Tim Jansen
|
||||
email : tim@tjansen.de
|
||||
***************************************************************************/
|
||||
|
||||
@@ -24,6 +24,7 @@
|
||||
*/
|
||||
|
||||
#include "rfbcontroller.h"
|
||||
#include "kuser.h"
|
||||
|
||||
#include <netinet/tcp.h>
|
||||
#include <netinet/in.h>
|
||||
@@ -50,6 +51,9 @@
|
||||
#include <qglobal.h>
|
||||
#include <qlabel.h>
|
||||
#include <qmutex.h>
|
||||
#include <qdeepcopy.h>
|
||||
#include <qclipboard.h>
|
||||
#include <qdesktopwidget.h>
|
||||
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/extensions/XTest.h>
|
||||
@@ -59,6 +63,7 @@
|
||||
#endif
|
||||
|
||||
#define IDLE_PAUSE (1000/50)
|
||||
#define MAX_SELECTION_LENGTH (4096)
|
||||
|
||||
static XTestDisabler disabler;
|
||||
|
||||
@@ -150,15 +155,26 @@ static void clientGoneHook(rfbClientPtr)
|
||||
self->handleClientGone();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ConnectionDialog::closeEvent(QCloseEvent *)
|
||||
static void negotiationFinishedHook(rfbClientPtr cl)
|
||||
{
|
||||
emit closed();
|
||||
self->handleNegotiationFinished(cl);
|
||||
}
|
||||
|
||||
static void inetdDisconnectHook()
|
||||
{
|
||||
self->handleClientGone();
|
||||
}
|
||||
|
||||
static void clipboardHook(char* str,int len, rfbClientPtr)
|
||||
{
|
||||
self->clipboardToServer(QString::fromUtf8(str, len));
|
||||
}
|
||||
|
||||
VNCEvent::~VNCEvent() {
|
||||
}
|
||||
|
||||
Display *KeyboardEvent::dpy;
|
||||
char KeyboardEvent::modifiers[0x100];
|
||||
signed char KeyboardEvent::modifiers[0x100];
|
||||
KeyCode KeyboardEvent::keycodes[0x100];
|
||||
KeyCode KeyboardEvent::leftShiftCode;
|
||||
KeyCode KeyboardEvent::rightShiftCode;
|
||||
@@ -178,9 +194,9 @@ void KeyboardEvent::initKeycodes() {
|
||||
int i,j,minkey,maxkey,syms_per_keycode;
|
||||
|
||||
dpy = qt_xdisplay();
|
||||
|
||||
|
||||
memset(modifiers,-1,sizeof(modifiers));
|
||||
|
||||
|
||||
XDisplayKeycodes(dpy,&minkey,&maxkey);
|
||||
ASSERT(minkey >= 8);
|
||||
ASSERT(maxkey < 256);
|
||||
@@ -197,21 +213,21 @@ void KeyboardEvent::initKeycodes() {
|
||||
modifiers[key]=j;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
leftShiftCode = XKeysymToKeycode(dpy, XK_Shift_L);
|
||||
rightShiftCode = XKeysymToKeycode(dpy, XK_Shift_R);
|
||||
altGrCode = XKeysymToKeycode(dpy, XK_Mode_switch);
|
||||
|
||||
|
||||
XFree ((char *)keymap);
|
||||
}
|
||||
|
||||
/* this function adjusts the modifiers according to mod (as from modifiers) and ModifierState */
|
||||
void KeyboardEvent::tweakModifiers(char mod, bool down) {
|
||||
|
||||
void KeyboardEvent::tweakModifiers(signed char mod, bool down) {
|
||||
|
||||
bool isShift = ModifierState & (LEFTSHIFT|RIGHTSHIFT);
|
||||
if(mod < 0)
|
||||
if(mod < 0)
|
||||
return;
|
||||
|
||||
|
||||
if(isShift && mod != 1) {
|
||||
if(ModifierState & LEFTSHIFT)
|
||||
XTestFakeKeyEvent(dpy, leftShiftCode,
|
||||
@@ -220,11 +236,11 @@ void KeyboardEvent::tweakModifiers(char mod, bool down) {
|
||||
XTestFakeKeyEvent(dpy, rightShiftCode,
|
||||
!down, CurrentTime);
|
||||
}
|
||||
|
||||
|
||||
if(!isShift && mod==1)
|
||||
XTestFakeKeyEvent(dpy, leftShiftCode,
|
||||
down, CurrentTime);
|
||||
|
||||
|
||||
if((ModifierState&ALTGR) && mod != 2)
|
||||
XTestFakeKeyEvent(dpy, altGrCode,
|
||||
!down, CurrentTime);
|
||||
@@ -236,19 +252,19 @@ void KeyboardEvent::tweakModifiers(char mod, bool down) {
|
||||
void KeyboardEvent::exec() {
|
||||
#define ADJUSTMOD(sym,state) \
|
||||
if(keySym==sym) { if(down) ModifierState|=state; else ModifierState&=~state; }
|
||||
|
||||
|
||||
ADJUSTMOD(XK_Shift_L,LEFTSHIFT);
|
||||
ADJUSTMOD(XK_Shift_R,RIGHTSHIFT);
|
||||
ADJUSTMOD(XK_Mode_switch,ALTGR);
|
||||
|
||||
|
||||
if(keySym>=' ' && keySym<0x100) {
|
||||
KeyCode k;
|
||||
if (down)
|
||||
tweakModifiers(modifiers[keySym],True);
|
||||
k = keycodes[keySym];
|
||||
if (k != NoSymbol)
|
||||
if (k != NoSymbol)
|
||||
XTestFakeKeyEvent(dpy, k, down, CurrentTime);
|
||||
|
||||
|
||||
if (down)
|
||||
tweakModifiers(modifiers[keySym],False);
|
||||
} else {
|
||||
@@ -274,7 +290,12 @@ PointerEvent::PointerEvent(int b, int _x, int _y) :
|
||||
}
|
||||
|
||||
void PointerEvent::exec() {
|
||||
XTestFakeMotionEvent(dpy, 0, x, y, CurrentTime);
|
||||
QDesktopWidget *desktopWidget = QApplication::desktop();
|
||||
|
||||
int screen = desktopWidget->screenNumber();
|
||||
if (screen < 0)
|
||||
screen = 0;
|
||||
XTestFakeMotionEvent(dpy, screen, x, y, CurrentTime);
|
||||
for(int i = 0; i < 5; i++)
|
||||
if ((buttonMask&(1<<i))!=(button_mask&(1<<i)))
|
||||
XTestFakeButtonEvent(dpy,
|
||||
@@ -285,6 +306,25 @@ void PointerEvent::exec() {
|
||||
buttonMask = button_mask;
|
||||
}
|
||||
|
||||
|
||||
ClipboardEvent::ClipboardEvent(RFBController *c, const QString &ctext) :
|
||||
controller(c),
|
||||
text(QDeepCopy<QString>(ctext)) {
|
||||
}
|
||||
|
||||
void ClipboardEvent::exec() {
|
||||
if ((controller->lastClipboardDirection == RFBController::LAST_SYNC_TO_CLIENT) &&
|
||||
(controller->lastClipboardText == text)) {
|
||||
return;
|
||||
}
|
||||
controller->lastClipboardDirection = RFBController::LAST_SYNC_TO_SERVER;
|
||||
controller->lastClipboardText = text;
|
||||
|
||||
controller->clipboard->setText(text, QClipboard::Clipboard);
|
||||
controller->clipboard->setText(text, QClipboard::Selection);
|
||||
}
|
||||
|
||||
|
||||
KNotifyEvent::KNotifyEvent(const QString &n, const QString &d) :
|
||||
name(n),
|
||||
desc(d) {
|
||||
@@ -305,25 +345,35 @@ void SessionEstablishedEvent::exec() {
|
||||
controller->sendSessionEstablished();
|
||||
}
|
||||
|
||||
|
||||
|
||||
RFBController::RFBController(Configuration *c) :
|
||||
allowDesktopControl(false),
|
||||
lastClipboardDirection(LAST_SYNC_TO_SERVER),
|
||||
configuration(c),
|
||||
dialog( 0, "ConnectionDialog" ),
|
||||
disableBackgroundPending(false),
|
||||
disableBackgroundState(false),
|
||||
closePending(false),
|
||||
forcedClose(false)
|
||||
{
|
||||
self = this;
|
||||
connect(dialog.acceptConnectionButton, SIGNAL(clicked()),
|
||||
SLOT(dialogAccepted()));
|
||||
connect(dialog.refuseConnectionButton, SIGNAL(clicked()),
|
||||
SLOT(dialogRefused()));
|
||||
connect(&dialog, SIGNAL(closed()), SLOT(dialogRefused()));
|
||||
connect(&dialog, SIGNAL(okClicked()), SLOT(dialogAccepted()));
|
||||
connect(&dialog, SIGNAL(cancelClicked()), SLOT(dialogRefused()));
|
||||
connect(&initIdleTimer, SIGNAL(timeout()), SLOT(checkAsyncEvents()));
|
||||
connect(&idleTimer, SIGNAL(timeout()), SLOT(idleSlot()));
|
||||
|
||||
clipboard = QApplication::clipboard();
|
||||
connect(clipboard, SIGNAL(selectionChanged()), this, SLOT(selectionChanged()));
|
||||
connect(clipboard, SIGNAL(dataChanged()), this, SLOT(clipboardChanged()));
|
||||
|
||||
asyncQueue.setAutoDelete(true);
|
||||
|
||||
KeyboardEvent::initKeycodes();
|
||||
|
||||
char hostname[256];
|
||||
if (gethostname(hostname, 255))
|
||||
hostname[0] = 0;
|
||||
hostname[255] = 0;
|
||||
desktopName = i18n("%1@%2 (shared desktop)").arg(KUser().loginName()).arg(hostname);
|
||||
}
|
||||
|
||||
RFBController::~RFBController()
|
||||
@@ -358,14 +408,14 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
|
||||
|
||||
server->rfbServerFormat.bitsPerPixel = framebufferImage->bits_per_pixel;
|
||||
server->rfbServerFormat.depth = framebufferImage->depth;
|
||||
//rfbEndianTest = framebufferImage->bitmap_bit_order != MSBFirst;
|
||||
server->rfbServerFormat.trueColour = (CARD8) TRUE;
|
||||
server->rfbServerFormat.bigEndian = (CARD8) ((framebufferImage->bitmap_bit_order == MSBFirst) ? TRUE : FALSE);
|
||||
|
||||
if ( server->rfbServerFormat.bitsPerPixel == 8 ) {
|
||||
server->rfbServerFormat.redShift = 0;
|
||||
server->rfbServerFormat.greenShift = 2;
|
||||
server->rfbServerFormat.blueShift = 5;
|
||||
server->rfbServerFormat.redMax = 3;
|
||||
server->rfbServerFormat.greenShift = 3;
|
||||
server->rfbServerFormat.blueShift = 6;
|
||||
server->rfbServerFormat.redMax = 7;
|
||||
server->rfbServerFormat.greenMax = 7;
|
||||
server->rfbServerFormat.blueMax = 3;
|
||||
} else {
|
||||
@@ -393,7 +443,11 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
|
||||
server->kbdAddEvent = keyboardHook;
|
||||
server->ptrAddEvent = pointerHook;
|
||||
server->newClientHook = newClientHook;
|
||||
server->inetdDisconnectHook = inetdDisconnectHook;
|
||||
server->passwordCheck = passwordCheck;
|
||||
server->setXCutText = clipboardHook;
|
||||
|
||||
server->desktopName = desktopName.latin1();
|
||||
|
||||
if (!myCursor)
|
||||
myCursor = rfbMakeXCursor(19, 19, (char*) cur, (char*) mask);
|
||||
@@ -405,7 +459,8 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
|
||||
QApplication::desktop()->winId(),
|
||||
(unsigned char*)fb, w, h,
|
||||
server->rfbServerFormat.bitsPerPixel,
|
||||
server->paddedWidthInBytes);
|
||||
server->paddedWidthInBytes,
|
||||
!configuration->disableXShm());
|
||||
|
||||
rfbInitServer(server);
|
||||
state = RFB_WAITING;
|
||||
@@ -416,6 +471,7 @@ void RFBController::startServer(int inetdFd, bool xtestGrab)
|
||||
}
|
||||
|
||||
rfbRunEventLoop(server, -1, TRUE);
|
||||
initIdleTimer.start(IDLE_PAUSE);
|
||||
}
|
||||
|
||||
void RFBController::stopServer(bool xtestUngrab)
|
||||
@@ -439,15 +495,16 @@ void RFBController::connectionAccepted(bool aRC)
|
||||
|
||||
allowDesktopControl = aRC;
|
||||
emit desktopControlSettingChanged(aRC);
|
||||
initIdleTimer.stop();
|
||||
idleTimer.start(IDLE_PAUSE);
|
||||
|
||||
server->rfbClientHead->clientGoneHook = clientGoneHook;
|
||||
state = RFB_CONNECTED;
|
||||
if (!server->rfbAuthPasswdData)
|
||||
emit sessionEstablished();
|
||||
emit sessionEstablished(remoteIp);
|
||||
}
|
||||
|
||||
void RFBController::acceptConnection(bool aRC)
|
||||
void RFBController::acceptConnection(bool aRemoteControl)
|
||||
{
|
||||
KNotifyClient::event("UserAcceptsConnection",
|
||||
i18n("User accepts connection from %1")
|
||||
@@ -456,7 +513,7 @@ void RFBController::acceptConnection(bool aRC)
|
||||
if (state != RFB_CONNECTING)
|
||||
return;
|
||||
|
||||
connectionAccepted(aRC);
|
||||
connectionAccepted(aRemoteControl);
|
||||
rfbStartOnHoldClient(server->rfbClientHead);
|
||||
}
|
||||
|
||||
@@ -476,6 +533,7 @@ void RFBController::refuseConnection()
|
||||
bool RFBController::checkAsyncEvents()
|
||||
{
|
||||
bool closed = false;
|
||||
bool backgroundActionRequired = false;
|
||||
asyncMutex.lock();
|
||||
VNCEvent *e;
|
||||
for (e = asyncQueue.first(); e; e = asyncQueue.next())
|
||||
@@ -486,10 +544,27 @@ bool RFBController::checkAsyncEvents()
|
||||
closed = true;
|
||||
closePending = false;
|
||||
}
|
||||
if (disableBackgroundPending != disableBackgroundState)
|
||||
backgroundActionRequired = true;
|
||||
asyncMutex.unlock();
|
||||
|
||||
if (backgroundActionRequired && (!closed) && !configuration->disableBackground())
|
||||
disableBackground(disableBackgroundPending);
|
||||
|
||||
return closed;
|
||||
}
|
||||
|
||||
void RFBController::disableBackground(bool state) {
|
||||
if (disableBackgroundState == state)
|
||||
return;
|
||||
|
||||
disableBackgroundState = state;
|
||||
DCOPRef ref("kdesktop", "KBackgroundIface");
|
||||
ref.setDCOPClient(KApplication::dcopClient());
|
||||
|
||||
ref.send("setBackgroundEnabled(bool)", bool(!state));
|
||||
}
|
||||
|
||||
void RFBController::connectionClosed()
|
||||
{
|
||||
KNotifyClient::event("ConnectionClosed",
|
||||
@@ -497,6 +572,8 @@ void RFBController::connectionClosed()
|
||||
.arg(remoteIp));
|
||||
|
||||
idleTimer.stop();
|
||||
initIdleTimer.stop();
|
||||
disableBackground(false);
|
||||
state = RFB_WAITING;
|
||||
if (forcedClose)
|
||||
emit quitApp();
|
||||
@@ -508,6 +585,8 @@ void RFBController::closeConnection()
|
||||
{
|
||||
forcedClose = true;
|
||||
if (state == RFB_CONNECTED) {
|
||||
disableBackground(false);
|
||||
|
||||
if (!checkAsyncEvents()) {
|
||||
asyncMutex.lock();
|
||||
if (!closePending)
|
||||
@@ -520,6 +599,8 @@ void RFBController::closeConnection()
|
||||
}
|
||||
|
||||
void RFBController::enableDesktopControl(bool b) {
|
||||
if (b != allowDesktopControl)
|
||||
emit desktopControlSettingChanged(b);
|
||||
allowDesktopControl = b;
|
||||
}
|
||||
|
||||
@@ -534,7 +615,8 @@ void RFBController::idleSlot()
|
||||
|
||||
QPtrList<Hint> v;
|
||||
v.setAutoDelete(true);
|
||||
scanner->searchUpdates(v);
|
||||
QPoint p = QCursor::pos();
|
||||
scanner->searchUpdates(v, p.y());
|
||||
|
||||
Hint *h;
|
||||
|
||||
@@ -544,19 +626,18 @@ void RFBController::idleSlot()
|
||||
h->right(),
|
||||
h->bottom());
|
||||
|
||||
QPoint p = QCursor::pos();
|
||||
asyncMutex.lock();
|
||||
if (!closePending)
|
||||
defaultPtrAddEvent(0, p.x(),p.y(), server->rfbClientHead);
|
||||
asyncMutex.unlock();
|
||||
|
||||
checkAsyncEvents();
|
||||
checkAsyncEvents(); // check 2nd time (see 3rd line)
|
||||
}
|
||||
|
||||
void RFBController::dialogAccepted()
|
||||
{
|
||||
dialog.hide();
|
||||
acceptConnection(dialog.allowRemoteControlCB->isChecked());
|
||||
acceptConnection(dialog.allowRemoteControl());
|
||||
}
|
||||
|
||||
void RFBController::dialogRefused()
|
||||
@@ -629,13 +710,14 @@ bool RFBController::handleCheckPassword(rfbClientPtr cl,
|
||||
asyncMutex.lock();
|
||||
asyncQueue.append(new SessionEstablishedEvent(this));
|
||||
asyncMutex.unlock();
|
||||
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
|
||||
{
|
||||
int socket = cl->sock;
|
||||
cl->negotiationFinishedHook = negotiationFinishedHook;
|
||||
|
||||
QString host, port;
|
||||
KSocketAddress *ksa = KExtendedSocket::peerAddress(socket);
|
||||
@@ -646,7 +728,7 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
|
||||
he = gethostbyaddr((const char*)&ia4,
|
||||
sizeof(ia4),
|
||||
AF_INET);
|
||||
|
||||
|
||||
if (he && he->h_name)
|
||||
host = QString(he->h_name);
|
||||
else
|
||||
@@ -677,8 +759,8 @@ enum rfbNewClientAction RFBController::handleNewClient(rfbClientPtr cl)
|
||||
i18n("Received connection from %1, on hold (waiting for confirmation)")
|
||||
.arg(remoteIp));
|
||||
|
||||
dialog.ipLabel->setText(remoteIp);
|
||||
dialog.allowRemoteControlCB->setChecked(false);
|
||||
dialog.setRemoteHost(remoteIp);
|
||||
dialog.setAllowRemoteControl( true );
|
||||
dialog.setFixedSize(dialog.sizeHint());
|
||||
dialog.show();
|
||||
return RFB_CLIENT_ON_HOLD;
|
||||
@@ -691,6 +773,13 @@ void RFBController::handleClientGone()
|
||||
asyncMutex.unlock();
|
||||
}
|
||||
|
||||
void RFBController::handleNegotiationFinished(rfbClientPtr cl)
|
||||
{
|
||||
asyncMutex.lock();
|
||||
disableBackgroundPending = cl->disableBackground;
|
||||
asyncMutex.unlock();
|
||||
}
|
||||
|
||||
void RFBController::handleKeyEvent(bool down, KeySym keySym) {
|
||||
if (!allowDesktopControl)
|
||||
return;
|
||||
@@ -709,6 +798,57 @@ void RFBController::handlePointerEvent(int button_mask, int x, int y) {
|
||||
asyncMutex.unlock();
|
||||
}
|
||||
|
||||
|
||||
void RFBController::clipboardToServer(const QString &ctext) {
|
||||
if (!allowDesktopControl)
|
||||
return;
|
||||
|
||||
asyncMutex.lock();
|
||||
asyncQueue.append(new ClipboardEvent(this, ctext));
|
||||
asyncMutex.unlock();
|
||||
}
|
||||
|
||||
void RFBController::clipboardChanged() {
|
||||
if (state != RFB_CONNECTED)
|
||||
return;
|
||||
if (clipboard->ownsClipboard())
|
||||
return;
|
||||
|
||||
QString text = clipboard->text(QClipboard::Clipboard);
|
||||
|
||||
// avoid ping-pong between client&server
|
||||
if ((lastClipboardDirection == LAST_SYNC_TO_SERVER) &&
|
||||
(lastClipboardText == text))
|
||||
return;
|
||||
if ((text.length() > MAX_SELECTION_LENGTH) || text.isNull())
|
||||
return;
|
||||
|
||||
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
|
||||
lastClipboardText = text;
|
||||
QCString ctext = text.utf8();
|
||||
rfbSendServerCutText(server, ctext.data(), ctext.length());
|
||||
}
|
||||
|
||||
void RFBController::selectionChanged() {
|
||||
if (state != RFB_CONNECTED)
|
||||
return;
|
||||
if (clipboard->ownsSelection())
|
||||
return;
|
||||
|
||||
QString text = clipboard->text(QClipboard::Selection);
|
||||
// avoid ping-pong between client&server
|
||||
if ((lastClipboardDirection == LAST_SYNC_TO_SERVER) &&
|
||||
(lastClipboardText == text))
|
||||
return;
|
||||
if ((text.length() > MAX_SELECTION_LENGTH) || text.isNull())
|
||||
return;
|
||||
|
||||
lastClipboardDirection = LAST_SYNC_TO_CLIENT;
|
||||
lastClipboardText = text;
|
||||
QCString ctext = text.utf8();
|
||||
rfbSendServerCutText(server, ctext.data(), ctext.length());
|
||||
}
|
||||
|
||||
void RFBController::passwordChanged() {
|
||||
bool authRequired = (!configuration->allowUninvitedConnections()) ||
|
||||
(configuration->password().length() != 0) ||
|
||||
@@ -726,7 +866,9 @@ void RFBController::sendKNotifyEvent(const QString &n, const QString &d)
|
||||
|
||||
void RFBController::sendSessionEstablished()
|
||||
{
|
||||
emit sessionEstablished();
|
||||
if (configuration->disableBackground())
|
||||
disableBackground(true);
|
||||
emit sessionEstablished(remoteIp);
|
||||
}
|
||||
|
||||
#ifdef __osf__
|
||||
@@ -744,13 +886,6 @@ bool RFBController::checkX11Capabilities() {
|
||||
return false;
|
||||
}
|
||||
|
||||
r = XShmQueryExtension(qt_xdisplay());
|
||||
if (!r) {
|
||||
KMessageBox::error(0,
|
||||
i18n("Your X11 Server does not support the required XShm extension. You can only share a local desktop."),
|
||||
i18n("Desktop Sharing Error"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#define RFBCONTROLLER_H
|
||||
|
||||
#include "configuration.h"
|
||||
#include "newconnectiondialog.h"
|
||||
#include "connectiondialog.h"
|
||||
#include "xupdatescanner.h"
|
||||
#include <ksock.h>
|
||||
#include <qobject.h>
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
|
||||
class QCloseEvent;
|
||||
class QClipboard;
|
||||
class RFBController;
|
||||
|
||||
typedef enum {
|
||||
@@ -48,18 +49,10 @@ typedef enum {
|
||||
RFB_CONNECTED
|
||||
} RFBState;
|
||||
|
||||
class ConnectionDialog : public KRFBConnectionDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
virtual void closeEvent(QCloseEvent *);
|
||||
|
||||
signals:
|
||||
void closed();
|
||||
};
|
||||
|
||||
class VNCEvent {
|
||||
public:
|
||||
virtual void exec() = 0;
|
||||
virtual ~VNCEvent();
|
||||
};
|
||||
|
||||
|
||||
@@ -68,14 +61,14 @@ class KeyboardEvent : public VNCEvent {
|
||||
KeySym keySym;
|
||||
|
||||
static Display *dpy;
|
||||
static char modifiers[0x100];
|
||||
static signed char modifiers[0x100];
|
||||
static KeyCode keycodes[0x100], leftShiftCode, rightShiftCode, altGrCode;
|
||||
static const int LEFTSHIFT;
|
||||
static const int RIGHTSHIFT;
|
||||
static const int ALTGR;
|
||||
static char ModifierState;
|
||||
|
||||
static void tweakModifiers(char mod, bool down);
|
||||
static void tweakModifiers(signed char mod, bool down);
|
||||
public:
|
||||
static void initKeycodes();
|
||||
|
||||
@@ -94,6 +87,14 @@ public:
|
||||
virtual void exec();
|
||||
};
|
||||
|
||||
class ClipboardEvent : public VNCEvent {
|
||||
RFBController *controller;
|
||||
QString text;
|
||||
public:
|
||||
ClipboardEvent(RFBController *c, const QString &text);
|
||||
virtual void exec();
|
||||
};
|
||||
|
||||
class KNotifyEvent : public VNCEvent {
|
||||
QString name;
|
||||
QString desc;
|
||||
@@ -103,7 +104,7 @@ public:
|
||||
virtual void exec();
|
||||
};
|
||||
|
||||
class SessionEstablishedEvent : public VNCEvent{
|
||||
class SessionEstablishedEvent : public VNCEvent {
|
||||
RFBController *controller;
|
||||
public:
|
||||
SessionEstablishedEvent(RFBController *c);
|
||||
@@ -121,8 +122,9 @@ public:
|
||||
*/
|
||||
class RFBController : public QObject {
|
||||
Q_OBJECT
|
||||
|
||||
|
||||
friend class SessionEstablishedEvent;
|
||||
friend class ClipboardEvent;
|
||||
public:
|
||||
RFBController(Configuration *c);
|
||||
virtual ~RFBController();
|
||||
@@ -137,7 +139,9 @@ public:
|
||||
void handleKeyEvent(bool down, KeySym keySym);
|
||||
void handlePointerEvent(int button_mask, int x, int y);
|
||||
enum rfbNewClientAction handleNewClient(rfbClientPtr cl);
|
||||
void clipboardToServer(const QString &text);
|
||||
void handleClientGone();
|
||||
void handleNegotiationFinished(rfbClientPtr cl);
|
||||
int getPort();
|
||||
void startServer(int inetdFd = -1, bool xtestGrab = true);
|
||||
|
||||
@@ -149,7 +153,7 @@ public slots:
|
||||
void enableDesktopControl(bool c);
|
||||
|
||||
signals:
|
||||
void sessionEstablished();
|
||||
void sessionEstablished(QString host);
|
||||
void sessionFinished();
|
||||
void sessionRefused();
|
||||
void quitApp();
|
||||
@@ -158,17 +162,28 @@ signals:
|
||||
private:
|
||||
void stopServer(bool xtestUngrab = true);
|
||||
void sendKNotifyEvent(const QString &name, const QString &desc);
|
||||
bool checkAsyncEvents();
|
||||
void sendSessionEstablished();
|
||||
|
||||
QString remoteIp;
|
||||
bool allowDesktopControl;
|
||||
void disableBackground(bool state);
|
||||
|
||||
QString remoteIp;
|
||||
volatile bool allowDesktopControl;
|
||||
|
||||
QTimer initIdleTimer;
|
||||
QTimer idleTimer;
|
||||
|
||||
enum {
|
||||
LAST_SYNC_TO_SERVER,
|
||||
LAST_SYNC_TO_CLIENT
|
||||
} lastClipboardDirection;
|
||||
QString lastClipboardText;
|
||||
QClipboard *clipboard;
|
||||
|
||||
Configuration *configuration;
|
||||
XUpdateScanner *scanner;
|
||||
ConnectionDialog dialog;
|
||||
|
||||
QString desktopName;
|
||||
|
||||
rfbScreenInfoPtr server;
|
||||
|
||||
XImage *framebufferImage;
|
||||
@@ -176,12 +191,17 @@ private:
|
||||
QMutex asyncMutex;
|
||||
QPtrList<VNCEvent> asyncQueue;
|
||||
|
||||
bool disableBackgroundPending; // background, as desired by libvncserver
|
||||
bool disableBackgroundState; // real background state
|
||||
bool closePending; // set when libvncserver detected close
|
||||
bool forcedClose; // set when user closed connection
|
||||
private slots:
|
||||
bool checkAsyncEvents();
|
||||
void idleSlot();
|
||||
void dialogAccepted();
|
||||
void dialogRefused();
|
||||
void selectionChanged();
|
||||
void clipboardChanged();
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
***************************************************************************/
|
||||
|
||||
#include "trayicon.h"
|
||||
#include <qtooltip.h>
|
||||
#include <kstdaction.h>
|
||||
#include <kapplication.h>
|
||||
#include <klocale.h>
|
||||
@@ -46,7 +47,7 @@ KPassivePopup2 *KPassivePopup2::message( const QString &caption, const QString &
|
||||
}
|
||||
|
||||
|
||||
TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
|
||||
TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
|
||||
KSystemTray(0, "krfb trayicon"),
|
||||
configuration(c),
|
||||
aboutDialog(d),
|
||||
@@ -57,15 +58,17 @@ TrayIcon::TrayIcon(KDialog *d, Configuration *c) :
|
||||
trayIconOpen = loader->loadIcon("eyes-open24", KIcon::User);
|
||||
trayIconClosed = loader->loadIcon("eyes-closed24", KIcon::User);
|
||||
setPixmap(trayIconClosed);
|
||||
QToolTip::add(this, i18n("Desktop Sharing - connecting"));
|
||||
|
||||
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), QString::null,
|
||||
0, this, SIGNAL(showManageInvitations()),
|
||||
manageInvitationsAction = new KAction(i18n("Manage &Invitations"), QString::null,
|
||||
0, this, SIGNAL(showManageInvitations()),
|
||||
&actionCollection);
|
||||
manageInvitationsAction->plug(contextMenu());
|
||||
|
||||
contextMenu()->insertSeparator();
|
||||
|
||||
enableControlAction = new KToggleAction(i18n("Enable Remote Control"));
|
||||
enableControlAction->setCheckedState(i18n("Disable Remote Control"));
|
||||
enableControlAction->plug(contextMenu());
|
||||
enableControlAction->setEnabled(false);
|
||||
connect(enableControlAction, SIGNAL(toggled(bool)), SIGNAL(enableDesktopControl(bool)));
|
||||
@@ -91,22 +94,24 @@ void TrayIcon::prepareQuit() {
|
||||
|
||||
|
||||
|
||||
void TrayIcon::showConnectedMessage() {
|
||||
void TrayIcon::showConnectedMessage(QString host) {
|
||||
|
||||
setPixmap(trayIconOpen);
|
||||
KPassivePopup2::message(i18n("Desktop Sharing"),
|
||||
i18n("The remote user has been authenticated and is now connected."),
|
||||
KPassivePopup2::message(i18n("Desktop Sharing"),
|
||||
i18n("The remote user has been authenticated and is now connected."),
|
||||
trayIconOpen,
|
||||
this);
|
||||
QToolTip::add(this, i18n("Desktop Sharing - connected with %1").arg(host));
|
||||
}
|
||||
|
||||
void TrayIcon::showDisconnectedMessage() {
|
||||
if (quitting)
|
||||
return;
|
||||
|
||||
QToolTip::add(this, i18n("Desktop Sharing - disconnected"));
|
||||
setPixmap(trayIconClosed);
|
||||
KPassivePopup2 *p = KPassivePopup2::message(i18n("Desktop Sharing"),
|
||||
i18n("The remote user has closed the connection."),
|
||||
KPassivePopup2 *p = KPassivePopup2::message(i18n("Desktop Sharing"),
|
||||
i18n("The remote user has closed the connection."),
|
||||
trayIconClosed,
|
||||
this);
|
||||
connect(p, SIGNAL(hidden()), this, SIGNAL(diconnectedMessageDisplayed()));
|
||||
|
||||
@@ -64,7 +64,7 @@ signals:
|
||||
|
||||
public slots:
|
||||
void prepareQuit();
|
||||
void showConnectedMessage();
|
||||
void showConnectedMessage(QString host);
|
||||
void showDisconnectedMessage();
|
||||
void setDesktopControlSetting(bool);
|
||||
|
||||
|
||||
@@ -22,6 +22,9 @@
|
||||
* other stuff
|
||||
* January 10th 2002: improved hint creation (join adjacent hints)
|
||||
* February 20th: use only partial tiles
|
||||
* January 21st 2003: remember last modified scanlines, and scan them and
|
||||
* in every cycle, reduce scanlines to every 35th
|
||||
* January 21st 2003: scan lines around the cursor in every cycle
|
||||
*
|
||||
* Tim Jansen <tim@tjansen.de>
|
||||
*/
|
||||
@@ -31,6 +34,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#include <stdlib.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/extensions/XShm.h>
|
||||
@@ -40,16 +44,35 @@
|
||||
|
||||
#include "xupdatescanner.h"
|
||||
|
||||
unsigned int scanlines[32] = { 0, 16, 8, 24,
|
||||
4, 20, 12, 28,
|
||||
10, 26, 18, 2,
|
||||
/* ../../krfb/libvncserver/rfb.h */
|
||||
#ifdef Bool
|
||||
#undef Bool
|
||||
#endif
|
||||
#define Bool int
|
||||
|
||||
|
||||
#define SCANLINES 35
|
||||
unsigned int scanlines[SCANLINES] = { 0, 16, 8, 24,
|
||||
33, 4, 20, 12, 28,
|
||||
10, 26, 18, 34, 2,
|
||||
22, 6, 30, 14,
|
||||
1, 17, 9, 25,
|
||||
1, 17, 32, 9, 25,
|
||||
7, 23, 15, 31,
|
||||
19, 3, 27, 11,
|
||||
29, 13, 5, 21 };
|
||||
#define MAX_ADJ_TOLERANCE 8
|
||||
|
||||
#define MAX_RECENT_HITS 12
|
||||
unsigned int recentHitScanlines[MAX_RECENT_HITS];
|
||||
|
||||
#define CURSOR_SCANLINES 5
|
||||
int cursorScanlines[CURSOR_SCANLINES] = {
|
||||
-10, -4, 0, 4, 10
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
XUpdateScanner::XUpdateScanner(Display *_dpy,
|
||||
Window _window,
|
||||
unsigned char *_fb,
|
||||
@@ -57,8 +80,7 @@ XUpdateScanner::XUpdateScanner(Display *_dpy,
|
||||
int _height,
|
||||
int _bitsPerPixel,
|
||||
int _bytesPerLine,
|
||||
unsigned int _tileWidth,
|
||||
unsigned int _tileHeight) :
|
||||
bool useXShm) :
|
||||
dpy(_dpy),
|
||||
window(_window),
|
||||
fb(_fb),
|
||||
@@ -66,71 +88,123 @@ XUpdateScanner::XUpdateScanner(Display *_dpy,
|
||||
height(_height),
|
||||
bitsPerPixel(_bitsPerPixel),
|
||||
bytesPerLine(_bytesPerLine),
|
||||
tileWidth(_tileWidth),
|
||||
tileHeight(_tileHeight),
|
||||
tileWidth(32),
|
||||
tileHeight(32),
|
||||
count (0),
|
||||
scanline(NULL),
|
||||
tile(NULL)
|
||||
{
|
||||
tile = XShmCreateImage(dpy,
|
||||
DefaultVisual( dpy, 0 ),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
NULL,
|
||||
&shminfo_tile,
|
||||
tileWidth,
|
||||
tileHeight);
|
||||
useShm = useXShm && XShmQueryExtension(dpy);
|
||||
if (useShm) {
|
||||
int major, minor;
|
||||
Bool pixmaps;
|
||||
if ((!XShmQueryVersion(dpy, &major, &minor, &pixmaps)) || !pixmaps)
|
||||
useShm = false;
|
||||
}
|
||||
|
||||
shminfo_tile.shmid = shmget(IPC_PRIVATE,
|
||||
tile->bytes_per_line * tile->height,
|
||||
IPC_CREAT | 0777);
|
||||
shminfo_tile.shmaddr = tile->data = (char *)
|
||||
shmat(shminfo_tile.shmid, 0, 0);
|
||||
shminfo_tile.readOnly = False;
|
||||
if (useShm) {
|
||||
tile = XShmCreateImage(dpy,
|
||||
DefaultVisual( dpy, 0 ),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
NULL,
|
||||
&shminfo_tile,
|
||||
tileWidth,
|
||||
tileHeight);
|
||||
|
||||
XShmAttach(dpy, &shminfo_tile);
|
||||
shminfo_tile.shmid = shmget(IPC_PRIVATE,
|
||||
tile->bytes_per_line * tile->height,
|
||||
IPC_CREAT | 0777);
|
||||
shminfo_tile.shmaddr = tile->data = (char *)
|
||||
shmat(shminfo_tile.shmid, 0, 0);
|
||||
shminfo_tile.readOnly = False;
|
||||
|
||||
XShmAttach(dpy, &shminfo_tile);
|
||||
}
|
||||
else {
|
||||
int tlen = tileWidth*(bitsPerPixel/8);
|
||||
void *data = malloc(tlen*tileHeight);
|
||||
|
||||
tile = XCreateImage(dpy,
|
||||
DefaultVisual(dpy, 0),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
0,
|
||||
(char*)data,
|
||||
tileWidth,
|
||||
tileHeight,
|
||||
8,
|
||||
tlen);
|
||||
}
|
||||
|
||||
tilesX = (width + tileWidth - 1) / tileWidth;
|
||||
tilesY = (height + tileHeight - 1) / tileHeight;
|
||||
tileMap = new bool[tilesX * tilesY];
|
||||
tileRegionMap = new struct TileChangeRegion[tilesX * tilesY];
|
||||
tileRegionMap = new struct TileChangeRegion[tilesX * tilesY];
|
||||
|
||||
unsigned int i;
|
||||
for (i = 0; i < tilesX * tilesY; i++)
|
||||
for (i = 0; i < tilesX * tilesY; i++)
|
||||
tileMap[i] = false;
|
||||
|
||||
scanline = XShmCreateImage(dpy,
|
||||
DefaultVisual(dpy, 0),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
NULL,
|
||||
&shminfo_scanline,
|
||||
width,
|
||||
1);
|
||||
if (useShm) {
|
||||
scanline = XShmCreateImage(dpy,
|
||||
DefaultVisual(dpy, 0),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
NULL,
|
||||
&shminfo_scanline,
|
||||
width,
|
||||
1);
|
||||
|
||||
shminfo_scanline.shmid = shmget(IPC_PRIVATE,
|
||||
scanline->bytes_per_line,
|
||||
IPC_CREAT | 0777);
|
||||
shminfo_scanline.shmaddr = scanline->data = (char *)
|
||||
shmat( shminfo_scanline.shmid, 0, 0 );
|
||||
shminfo_scanline.readOnly = False;
|
||||
shminfo_scanline.shmid = shmget(IPC_PRIVATE,
|
||||
scanline->bytes_per_line,
|
||||
IPC_CREAT | 0777);
|
||||
shminfo_scanline.shmaddr = scanline->data = (char *)
|
||||
shmat( shminfo_scanline.shmid, 0, 0 );
|
||||
shminfo_scanline.readOnly = False;
|
||||
|
||||
XShmAttach(dpy, &shminfo_scanline);
|
||||
};
|
||||
XShmAttach(dpy, &shminfo_scanline);
|
||||
}
|
||||
else {
|
||||
int slen = width*(bitsPerPixel/8);
|
||||
void *data = malloc(slen);
|
||||
scanline = XCreateImage(dpy,
|
||||
DefaultVisual(dpy, 0),
|
||||
bitsPerPixel,
|
||||
ZPixmap,
|
||||
0,
|
||||
(char*)data,
|
||||
width,
|
||||
1,
|
||||
8,
|
||||
slen);
|
||||
}
|
||||
|
||||
for (int i = 0; i < MAX_RECENT_HITS; i++)
|
||||
recentHitScanlines[i] = i;
|
||||
}
|
||||
|
||||
|
||||
XUpdateScanner::~XUpdateScanner()
|
||||
{
|
||||
XShmDetach(dpy, &shminfo_scanline);
|
||||
XDestroyImage(scanline);
|
||||
shmdt(shminfo_scanline.shmaddr);
|
||||
shmctl(shminfo_scanline.shmid, IPC_RMID, 0);
|
||||
delete tileMap;
|
||||
delete tileRegionMap;
|
||||
XShmDetach(dpy, &shminfo_tile);
|
||||
XDestroyImage(tile);
|
||||
shmdt(shminfo_tile.shmaddr);
|
||||
shmctl(shminfo_tile.shmid, IPC_RMID, 0);
|
||||
if (useShm) {
|
||||
XShmDetach(dpy, &shminfo_scanline);
|
||||
XDestroyImage(scanline);
|
||||
shmdt(shminfo_scanline.shmaddr);
|
||||
shmctl(shminfo_scanline.shmid, IPC_RMID, 0);
|
||||
XShmDetach(dpy, &shminfo_tile);
|
||||
XDestroyImage(tile);
|
||||
shmdt(shminfo_tile.shmaddr);
|
||||
shmctl(shminfo_tile.shmid, IPC_RMID, 0);
|
||||
}
|
||||
else {
|
||||
free(tile->data);
|
||||
free(scanline->data);
|
||||
XDestroyImage(scanline);
|
||||
XDestroyImage(tile);
|
||||
}
|
||||
delete [] tileMap;
|
||||
delete [] tileRegionMap;
|
||||
}
|
||||
|
||||
|
||||
@@ -140,17 +214,23 @@ bool XUpdateScanner::copyTile(int x, int y, int tx, int ty)
|
||||
{
|
||||
unsigned int maxWidth = width - x;
|
||||
unsigned int maxHeight = height - y;
|
||||
if (maxWidth > tileWidth)
|
||||
if (maxWidth > tileWidth)
|
||||
maxWidth = tileWidth;
|
||||
if (maxHeight > tileHeight)
|
||||
if (maxHeight > tileHeight)
|
||||
maxHeight = tileHeight;
|
||||
|
||||
if ((maxWidth == tileWidth) && (maxHeight == tileHeight)) {
|
||||
XShmGetImage(dpy, window, tile, x, y, AllPlanes);
|
||||
} else {
|
||||
XGetSubImage(dpy, window, x, y, maxWidth, maxHeight,
|
||||
AllPlanes, ZPixmap, tile, 0, 0);
|
||||
if (useShm) {
|
||||
if ((maxWidth == tileWidth) && (maxHeight == tileHeight)) {
|
||||
XShmGetImage(dpy, window, tile, x, y, AllPlanes);
|
||||
} else {
|
||||
XGetSubImage(dpy, window, x, y, maxWidth, maxHeight,
|
||||
AllPlanes, ZPixmap, tile, 0, 0);
|
||||
}
|
||||
}
|
||||
else
|
||||
XGetSubImage(dpy, window, x, y, maxWidth, maxHeight,
|
||||
AllPlanes, ZPixmap, tile, 0, 0);
|
||||
|
||||
unsigned int line;
|
||||
int pixelsize = bitsPerPixel >> 3;
|
||||
unsigned char *src = (unsigned char*) tile->data;
|
||||
@@ -159,7 +239,7 @@ bool XUpdateScanner::copyTile(int x, int y, int tx, int ty)
|
||||
unsigned char *ssrc = src;
|
||||
unsigned char *sdest = dest;
|
||||
int firstLine = maxHeight;
|
||||
|
||||
|
||||
for (line = 0; line < maxHeight; line++) {
|
||||
if (memcmp(sdest, ssrc, maxWidth * pixelsize)) {
|
||||
firstLine = line;
|
||||
@@ -168,16 +248,16 @@ bool XUpdateScanner::copyTile(int x, int y, int tx, int ty)
|
||||
ssrc += tile->bytes_per_line;
|
||||
sdest += bytesPerLine;
|
||||
}
|
||||
|
||||
|
||||
if (firstLine == maxHeight) {
|
||||
tileMap[tx + ty * tilesX] = false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
unsigned char *msrc = src + (tile->bytes_per_line * maxHeight);
|
||||
unsigned char *mdest = dest + (bytesPerLine * maxHeight);
|
||||
int lastLine = firstLine;
|
||||
|
||||
|
||||
for (line = maxHeight-1; line > firstLine; line--) {
|
||||
msrc -= tile->bytes_per_line;
|
||||
mdest -= bytesPerLine;
|
||||
@@ -196,7 +276,7 @@ bool XUpdateScanner::copyTile(int x, int y, int tx, int ty)
|
||||
struct TileChangeRegion *r = &tileRegionMap[tx + (ty * tilesX)];
|
||||
r->firstLine = firstLine;
|
||||
r->lastLine = lastLine;
|
||||
|
||||
|
||||
return lastLine == (maxHeight-1);
|
||||
}
|
||||
|
||||
@@ -210,7 +290,7 @@ void XUpdateScanner::copyAllTiles()
|
||||
tileMap[x + (y+1) * tilesX] = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
void XUpdateScanner::createHintFromTile(int x, int y, int th, Hint &hint)
|
||||
@@ -219,9 +299,9 @@ void XUpdateScanner::createHintFromTile(int x, int y, int th, Hint &hint)
|
||||
unsigned int h = height - y;
|
||||
if (w > tileWidth)
|
||||
w = tileWidth;
|
||||
if (h > th)
|
||||
if (h > th)
|
||||
h = th;
|
||||
|
||||
|
||||
hint.x = x;
|
||||
hint.y = y;
|
||||
hint.w = w;
|
||||
@@ -232,9 +312,9 @@ void XUpdateScanner::addTileToHint(int x, int y, int th, Hint &hint)
|
||||
{
|
||||
unsigned int w = width - x;
|
||||
unsigned int h = height - y;
|
||||
if (w > tileWidth)
|
||||
if (w > tileWidth)
|
||||
w = tileWidth;
|
||||
if (h > th)
|
||||
if (h > th)
|
||||
h = th;
|
||||
|
||||
if (hint.x > x) {
|
||||
@@ -275,7 +355,7 @@ static void printStatistics(Hint &hint) {
|
||||
kdDebug() << "avg size: "<< avg <<"%"<<endl;
|
||||
}
|
||||
|
||||
void XUpdateScanner::flushHint(int x, int y, int &x0,
|
||||
void XUpdateScanner::flushHint(int x, int y, int &x0,
|
||||
Hint &hint, QPtrList<Hint> &hintList)
|
||||
{
|
||||
if (x0 < 0)
|
||||
@@ -304,15 +384,15 @@ void XUpdateScanner::createHints(QPtrList<Hint> &hintList)
|
||||
int ty = tileRegionMap[idx].firstLine;
|
||||
int th = tileRegionMap[idx].lastLine - ty +1;
|
||||
if (x0 < 0) {
|
||||
createHintFromTile(x * tileWidth,
|
||||
(y * tileHeight) + ty,
|
||||
createHintFromTile(x * tileWidth,
|
||||
(y * tileHeight) + ty,
|
||||
th,
|
||||
hint);
|
||||
x0 = x;
|
||||
|
||||
} else {
|
||||
addTileToHint(x * tileWidth,
|
||||
(y * tileHeight) + ty,
|
||||
addTileToHint(x * tileWidth,
|
||||
(y * tileHeight) + ty,
|
||||
th,
|
||||
hint);
|
||||
}
|
||||
@@ -324,35 +404,72 @@ void XUpdateScanner::createHints(QPtrList<Hint> &hintList)
|
||||
}
|
||||
}
|
||||
|
||||
void XUpdateScanner::searchUpdates(QPtrList<Hint> &hintList)
|
||||
void XUpdateScanner::testScanline(int y, bool rememberHits) {
|
||||
if (y < 0)
|
||||
return;
|
||||
if (y >= (int)height)
|
||||
return;
|
||||
|
||||
int x = 0;
|
||||
bool hit = false;
|
||||
if (useShm)
|
||||
XShmGetImage(dpy, window, scanline, 0, y, AllPlanes);
|
||||
else
|
||||
XGetSubImage(dpy, window, 0, y, width, 1,
|
||||
AllPlanes, ZPixmap, scanline, 0, 0);
|
||||
|
||||
while (x < width) {
|
||||
int pixelsize = bitsPerPixel >> 3;
|
||||
unsigned char *src = (unsigned char*) scanline->data +
|
||||
x * pixelsize;
|
||||
unsigned char *dest = fb +
|
||||
y * bytesPerLine + x * pixelsize;
|
||||
int w = (x + 32) > width ? (width-x) : 32;
|
||||
if (memcmp(dest, src, w * pixelsize)) {
|
||||
hit = true;
|
||||
tileMap[(x / tileWidth) +
|
||||
(y / tileHeight) * tilesX] = true;
|
||||
}
|
||||
x += 32;
|
||||
}
|
||||
|
||||
if (!rememberHits)
|
||||
return;
|
||||
|
||||
for (int i = 1; i < MAX_RECENT_HITS; i++)
|
||||
recentHitScanlines[i-1] = recentHitScanlines[i];
|
||||
recentHitScanlines[MAX_RECENT_HITS-1] = y;
|
||||
}
|
||||
|
||||
void XUpdateScanner::searchUpdates(QPtrList<Hint> &hintList, int ptrY)
|
||||
{
|
||||
count++;
|
||||
count %= 32;
|
||||
count %= SCANLINES;
|
||||
|
||||
unsigned int i;
|
||||
unsigned int x, y;
|
||||
unsigned int y;
|
||||
|
||||
for (i = 0; i < (tilesX * tilesY); i++) {
|
||||
tileMap[i] = false;
|
||||
}
|
||||
|
||||
// test last scanlines with hits
|
||||
for (i = 0; i < MAX_RECENT_HITS; i++)
|
||||
testScanline(recentHitScanlines[i], true);
|
||||
|
||||
// test scanlines around the cursor
|
||||
for (i = 0; i < CURSOR_SCANLINES; i++)
|
||||
testScanline(ptrY+cursorScanlines[i], false);
|
||||
// test last/first line of the tiles around the cursor
|
||||
// (assumes tileHeight = 32)
|
||||
testScanline((ptrY&0xffe0)-1, false);
|
||||
testScanline((ptrY|0x1f)+1, false);
|
||||
|
||||
// test every SCANLINESth scanline
|
||||
y = scanlines[count];
|
||||
while (y < height) {
|
||||
XShmGetImage(dpy, window, scanline, 0, y, AllPlanes);
|
||||
x = 0;
|
||||
while (x < width) {
|
||||
int pixelsize = bitsPerPixel >> 3;
|
||||
unsigned char *src = (unsigned char*) scanline->data +
|
||||
x * pixelsize;
|
||||
unsigned char *dest = fb +
|
||||
y * bytesPerLine + x * pixelsize;
|
||||
int w = (x + 32) > width ? (width-x) : 32;
|
||||
if (memcmp(dest, src, w * pixelsize))
|
||||
tileMap[(x / tileWidth) +
|
||||
(y / tileHeight) * tilesX] = true;
|
||||
x += 32;
|
||||
}
|
||||
y += 32;
|
||||
while (y < (int)height) {
|
||||
testScanline(y, true);
|
||||
y += SCANLINES;
|
||||
}
|
||||
|
||||
copyAllTiles();
|
||||
|
||||
@@ -30,7 +30,7 @@ class Hint {
|
||||
public:
|
||||
int x, y, w, h;
|
||||
|
||||
Hint() :
|
||||
Hint() :
|
||||
x(0),
|
||||
y(0),
|
||||
w(0),
|
||||
@@ -70,22 +70,24 @@ class XUpdateScanner
|
||||
unsigned char *_fb,
|
||||
int _width, int _height,
|
||||
int _bitsPerPixel, int _bytesPerLine,
|
||||
unsigned int _tileWidth = 32,
|
||||
unsigned int _tileHeight = 32);
|
||||
|
||||
bool useXShm);
|
||||
|
||||
~XUpdateScanner();
|
||||
|
||||
void searchUpdates( QPtrList<Hint> &hintList);
|
||||
|
||||
|
||||
// hitList: returns list of changes
|
||||
// ptrY: ptrY: position of the cursor
|
||||
void searchUpdates( QPtrList<Hint> &hintList, int ptrY);
|
||||
|
||||
private:
|
||||
void testScanline(int y, bool rememberHits);
|
||||
bool copyTile(int x, int y, int tx, int ty);
|
||||
void copyAllTiles();
|
||||
void flushHint(int x, int y, int &x0, Hint &hint,
|
||||
void flushHint(int x, int y, int &x0, Hint &hint,
|
||||
QPtrList<Hint> &hintList);
|
||||
void createHints(QPtrList<Hint> &hintList);
|
||||
void addTileToHint(int x, int y, int th, Hint &hint);
|
||||
void createHintFromTile(int x, int y, int th, Hint &hint);
|
||||
|
||||
|
||||
Display *dpy;
|
||||
Window window;
|
||||
unsigned char *fb;
|
||||
@@ -93,13 +95,14 @@ class XUpdateScanner
|
||||
int bitsPerPixel, bytesPerLine;
|
||||
unsigned int tileWidth, tileHeight;
|
||||
unsigned int count;
|
||||
|
||||
bool useShm;
|
||||
|
||||
XImage *scanline;
|
||||
XShmSegmentInfo shminfo_scanline;
|
||||
|
||||
|
||||
XImage *tile;
|
||||
XShmSegmentInfo shminfo_tile;
|
||||
|
||||
|
||||
unsigned int tilesX, tilesY;
|
||||
bool *tileMap;
|
||||
struct TileChangeRegion *tileRegionMap;
|
||||
|
||||
3
krfb_httpd/Makefile.am
Normal file
@@ -0,0 +1,3 @@
|
||||
bin_SCRIPTS = krfb_httpd
|
||||
kde_services_DATA = kinetd_krfb_httpd.desktop
|
||||
|
||||
96
krfb_httpd/kinetd_krfb_httpd.desktop
Normal file
@@ -0,0 +1,96 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Service
|
||||
|
||||
ServiceTypes=KInetDModule
|
||||
Exec=krfb_httpd
|
||||
X-KDE-FactoryName=kinetd
|
||||
X-KDE-KINETD-id=krfb_httpd
|
||||
X-KDE-KINETD-port=5800
|
||||
X-KDE-KINETD-autoPortRange=10
|
||||
X-KDE-KINETD-enabled=false
|
||||
X-KDE-KINETD-argument=--kinetd
|
||||
X-KDE-KINETD-multiInstance=false
|
||||
X-KDE-KINETD-serviceLifetime=1200
|
||||
|
||||
Name=KRfb Micro Httpd
|
||||
Name[ar]=KRfb ميكرو httpd
|
||||
Name[bg]=Микро уеб сървър (KRfb - httpd)
|
||||
Name[bn]=কে-আর-এফ-বি মাইক্রো এইচটিটিপিডি
|
||||
Name[cs]=KRfb mikro Httpd
|
||||
Name[cy]=Meicro-Httpd KRfb
|
||||
Name[da]=KRfb Micro-Httpd
|
||||
Name[de]=KRfb Mikro-Httpd
|
||||
Name[et]=KRfb mikro-httpd
|
||||
Name[fa]=ریزشبح قام KRfb
|
||||
Name[fr]=Micro serveur httpd de KRfb
|
||||
Name[gl]=KRfg Micro-Httpd
|
||||
Name[hi]=KRfb माइक्रो Httpd
|
||||
Name[hu]=KRfb mini-httpd
|
||||
Name[is]=KRfb Micro vefþjónn
|
||||
Name[ja]=KRfb マイクロ Httpd
|
||||
Name[kk]=KRfb шағын Httpd
|
||||
Name[ms]=Httpd Mikro KRfb
|
||||
Name[nb]=KRfb mikro- http-nisse
|
||||
Name[nds]=KRfb-Micro-Httpd
|
||||
Name[ne]=KRfb माइक्रो Httpd
|
||||
Name[nl]=KRfb micro webserver
|
||||
Name[nn]=KRfb-mikro-http-nisse
|
||||
Name[pl]=Mikroskopijny serwer HTTP dla KRfb
|
||||
Name[pt]=Micro Httpd do KRfb
|
||||
Name[ru]=KRfb микро Httpd
|
||||
Name[sv]=Krfb mikro-HTTP demon
|
||||
Name[tr]=KRfb Mini Httpd
|
||||
Name[uk]=KRfb мікро Httpd
|
||||
Name[zh_CN]=KRfb 微 Httpd
|
||||
Name[zh_HK]=KRfb 微型網頁伺服器
|
||||
Comment=A micro http daemon for krfb that serves the VNC viewer applet.
|
||||
Comment[ar]=مراقب httpd صغير لـkrfb الذي يخدم بريمج عرض VNC.
|
||||
Comment[bg]=Малък уеб сървър, който обслужва аплета за преглед на VNC
|
||||
Comment[bn]=কে-আর-এফ-বির জন্য একটি মাইক্রো এইচটিটিপি ডিমন যে ভি-এন-সি প্রদর্শক অ্যাপলেট সরবরাহ করে।
|
||||
Comment[bs]=Mikro HTTP demon za krfb koji služi za applet VNC preglednika.
|
||||
Comment[ca]=Un micro-dimoni http per a krfb que serveix l'aplet visor VNC.
|
||||
Comment[cs]=Mikro HTTP server pro krfb sloužící VNC prohlížeči.
|
||||
Comment[cy]=Meicro-daemon http sy'n gwasanaethu'r rhaglennig gwelydd VNC
|
||||
Comment[da]=En mikro http-dæmon for krfb der betjener VNC visningsappletten.
|
||||
Comment[de]=Ein Mikro-HTTP-Server für krfb, der als Miniprogramm zu VNC-Anzeige dient.
|
||||
Comment[el]=Ένας μικρός δαίμονας http για το krfb που εξυπηρετεί το εφαρμογίδιο προβολής VNC.
|
||||
Comment[es]=Un micro demonio http para krfb que sirve de applet de visor VNC.
|
||||
Comment[et]=Mikro-HTTP deemon KRfb jaoks, mis teenindab VNC apletti.
|
||||
Comment[eu]=VNC ikustaile applet-a zerbitzatzen duen krfb-rako micro http deabrua.
|
||||
Comment[fa]=یک ریزشبح قام برای krfb، برای خدمت دادن به برنامک مشاهدهگر VNC
|
||||
Comment[fi]=Pieni http-palvelin krfb-ohjelmalle, joka jakaa VNC-näyttäjäsovelmaa
|
||||
Comment[fr]=Un mini serveur http pour KRfb dédié à l'applet d'affichage de bureaux VNC.
|
||||
Comment[gl]=Un micro demo de HTTP para krfb que serve unha applet de visualización de VNC
|
||||
Comment[he]=שרת http זעיר עבור krfb שמשרת את יישומון תצוגת VNC.
|
||||
Comment[hi]=krfb के लिए एक माइक्रो एचटीटीपी डीमॉन जो वीएनसी व्यूअर ऐप्लेट को सर्व करता है.
|
||||
Comment[hu]=Mini HTTP-szolgáltatás a KRfb-hez, a VNC nézegető használatához.
|
||||
Comment[is]=Verulega lítill vefþjónn sem veitir aðgang í VNC.
|
||||
Comment[it]=Un micro demone http per krfb che server l'applet di VNC viewer.
|
||||
Comment[ja]=krfb 用のマイクロ http デーモン (VNC ビューアアプレットを提供)
|
||||
Comment[kk]=VNC қарау апплетті қамтамасыз ететін krfb үшін шағын http қызметі.
|
||||
Comment[km]=ដេមិន http តូចមួយសម្រាប់ krfb ដែលបម្រើអាប់ភ្លេតមើល VNC ។
|
||||
Comment[lt]=Micro http tarnyba skirta krfb ir aptarnaujanti VNC žiūriklį.
|
||||
Comment[mk]=http-микродаемон за krfb кој служи на аплетот на VNC-прегледувачот.
|
||||
Comment[ms]=Daemon http miKro untuk krfb yang melayan aplet pelihat VNC.
|
||||
Comment[nb]=En bitteliten http-nisse for krfb som hjelper visningsprogrammet for VNC.
|
||||
Comment[nds]=En lierlütt HTTP-Dämoon för krfb, de as VNC-Kiekerlüttprogramm bruukt warrt.
|
||||
Comment[ne]=krfb का लागि माइक्रो http डेइमन जसले VNC दर्शक एप्लेट सेवा गर्दछ
|
||||
Comment[nl]=Een micro webserver voor krfb dat de VNC weergave-applet beschikbaar stelt.
|
||||
Comment[nn]=Ein ørliten http-nisse for krfb som hjelper visingsprogrammet for VNC.
|
||||
Comment[pl]=Mikroskopijny serwer HTTP dla KRfb obsługującego aplet przeglądarki VNC.
|
||||
Comment[pt]=Um micro-servidor de HTTP para o krfb que serve a 'applet' de visualização de VNC.
|
||||
Comment[pt_BR]=Um micro daemon de http, para o krfb, que serve o miniaplicativo de visualização do VNC.
|
||||
Comment[ru]=Микро-сервер http для krfb, который обслуживает аплет просмотрщика VNC.
|
||||
Comment[sk]=Mikro http démon pre krfb ktorý ovláda prehliadací applet VNC.
|
||||
Comment[sl]=Mikro http strežnik za krfb, ki streže ogledovalnikom VNC.
|
||||
Comment[sr]=Микро http демон за krfb који опслужује аплет VNC приказивача.
|
||||
Comment[sr@Latn]=Mikro http demon za krfb koji opslužuje aplet VNC prikazivača.
|
||||
Comment[sv]=En mikro-HTTP demon för Krfb som hanterar VNC-visningsminiprogrammet
|
||||
Comment[ta]=krfb க்கான நுண்ணிய http அது VNC சேவையை குறுப்பயன் பார்வையாளர்.
|
||||
Comment[tg]=Азозили micro http барои krfb, ки хидматрасони VNC апплети хидматрасон мебошад.
|
||||
Comment[tr]=VNC izleyici programcığını çalıştıran mini bir web sunucu.
|
||||
Comment[uk]=Мікродаемон http для krfb, який обслуговує аплет переглядача VNC.
|
||||
Comment[zh_CN]=支持 VNC 查看器小程序的 krfb 小 http 守护程序
|
||||
Comment[zh_HK]=用於 krfb,服務 VNC 檢視小程式的微型網頁伺服器
|
||||
Comment[zh_TW]=服務 VNC 的小型網頁伺服器
|
||||
75
krfb_httpd/krfb_httpd
Normal file
@@ -0,0 +1,75 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
if [ "$1" = "--kinetd" ]; then
|
||||
# redirect stdin and stdout to the inetd socket.
|
||||
exec <&$2 >&$2
|
||||
fi
|
||||
|
||||
read request url httptype || exit 0
|
||||
url="${url/
|
||||
/}"
|
||||
httptype="${httptype/
|
||||
/}"
|
||||
|
||||
if [ "x$httptype" != "x" ]; then
|
||||
line="x"
|
||||
while [ -n "$line" ]; do
|
||||
read line || exit 0
|
||||
line="${line/
|
||||
/}"
|
||||
done
|
||||
fi
|
||||
# echo "url = $url, request = $request" >> /tmp/httpd.log
|
||||
case "$url" in
|
||||
/)
|
||||
# We need the size of the display for the current applet.
|
||||
size=`xdpyinfo -display :0| grep dimensions:|head -n 1|sed -e "s/.*dimensions: *//" -e "s/ pixels.*//"`
|
||||
width=`echo $size|sed -e "s/x.*//"`
|
||||
height=`echo $size|sed -e "s/.*x//"`
|
||||
# The VNC menubar is 20 pixels high ...
|
||||
height=$((height+20))
|
||||
|
||||
port=`dcop kded kinetd port krfb`
|
||||
if [ "$port" == "-1" ]; then
|
||||
port=5900
|
||||
fi
|
||||
|
||||
ctype="text/html"
|
||||
content="
|
||||
<HTML><HEAD><TITLE>$LOGNAME's desktop</TITLE></HEAD>
|
||||
<BODY>
|
||||
<APPLET CODE=VncViewer.class ARCHIVE=VncViewer.jar WIDTH=$width HEIGHT=$height>
|
||||
<param name=PORT value=$port>
|
||||
</APPLET>
|
||||
</BODY></HTML>"
|
||||
;;
|
||||
*.jar|*.class)
|
||||
# Use basename to make sure we have just a filename, not ../../...
|
||||
url="`basename "$url"`"
|
||||
ctype="application/octet-stream"
|
||||
cfile="/usr/share/vnc/classes/$url"
|
||||
content="FILE"
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "x$httptype" != "x" ]; then
|
||||
echo "HTTP/1.0 200 OK"
|
||||
echo "Content-Type: $ctype"
|
||||
if [ "$content" == "FILE" ]; then
|
||||
clen=`wc -c "$cfile"`
|
||||
else
|
||||
clen=`echo "$content"|wc -c`
|
||||
fi
|
||||
echo "Content-Length: $clen"
|
||||
echo "Connection: close"
|
||||
echo
|
||||
fi
|
||||
|
||||
if [ "$request" == "GET" ]; then
|
||||
if [ "$content" == "FILE" ]; then
|
||||
cat "$cfile"
|
||||
else
|
||||
echo "$content"
|
||||
fi
|
||||
fi
|
||||
exit 0
|
||||
@@ -248,8 +248,8 @@ rfbSendSoftCursor(rfbClientPtr cl, Bool cursorWasChanged)
|
||||
/* Send buffer contents if needed. */
|
||||
|
||||
if ( cl->ublen + sizeof(rfbSoftCursorMove) +
|
||||
((scNindex >= 0) ?
|
||||
(sizeof(rfbSoftCursorSetImage) + imgLen) : 0)) {
|
||||
((scNindex >= 0 && cursorWasChanged) ?
|
||||
(sizeof(rfbSoftCursorSetImage) + imgLen) : 0) > UPDATE_BUF_SIZE) {
|
||||
|
||||
if (!rfbSendUpdateBuf(cl))
|
||||
return FALSE;
|
||||
@@ -257,7 +257,7 @@ rfbSendSoftCursor(rfbClientPtr cl, Bool cursorWasChanged)
|
||||
|
||||
saved_ublen = cl->ublen;
|
||||
|
||||
if (scNindex >= 0) {
|
||||
if (scNindex >= 0 && cursorWasChanged) {
|
||||
rect.encoding = Swap32IfLE(rfbEncodingSoftCursor);
|
||||
if (pCursor) {
|
||||
rect.r.x = Swap16IfLE(pCursor->xhot);
|
||||
|
||||
@@ -116,7 +116,7 @@ httpCheckFds(rfbScreenInfoPtr rfbScreen)
|
||||
fd_set fds;
|
||||
struct timeval tv;
|
||||
struct sockaddr_in addr;
|
||||
socklen_t addrlen = sizeof(addr);
|
||||
size_t addrlen = sizeof(addr);
|
||||
|
||||
if (!rfbScreen->httpDir)
|
||||
return;
|
||||
@@ -199,7 +199,7 @@ static void
|
||||
httpProcessInput(rfbScreenInfoPtr rfbScreen)
|
||||
{
|
||||
struct sockaddr_in addr;
|
||||
socklen_t addrlen = sizeof(addr);
|
||||
size_t addrlen = sizeof(addr);
|
||||
char fullFname[256];
|
||||
char *fname;
|
||||
unsigned int maxFnameLen;
|
||||
|
||||
0
libvncserver/keysym.h
Executable file → Normal file
@@ -552,7 +552,7 @@ int main(int argc,char *argv[])
|
||||
for(i=argc-1;i>0;i--)
|
||||
#ifdef LOCAL_CONTROL
|
||||
if(i<argc-1 && !strcmp(argv[i],"-toggleviewonly")) {
|
||||
sprintf(message,"t%s",argv[i+1]);
|
||||
snprintf(message, sizeof(message), "t%s",argv[i+1]);
|
||||
send_message(&single_instance,message);
|
||||
exit(0);
|
||||
} else if(!strcmp(argv[i],"-listclients")) {
|
||||
@@ -562,7 +562,7 @@ int main(int argc,char *argv[])
|
||||
} else
|
||||
#ifdef BACKCHANNEL
|
||||
if(i<argc-1 && !strcmp(argv[i],"-backchannel")) {
|
||||
sprintf(message,"b%s",argv[i+1]);
|
||||
snprintf(message, sizeof(message), "b%s",argv[i+1]);
|
||||
send_message(&single_instance,message);
|
||||
exit(0);
|
||||
} else
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
*
|
||||
* LibVNCServer (C) 2001 Johannes E. Schindelin <Johannes.Schindelin@gmx.de>
|
||||
* Original OSXvnc (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>.
|
||||
* Original Xvnc (C) 1999 AT&T Laboratories Cambridge.
|
||||
* Original Xvnc (C) 1999 AT&T Laboratories Cambridge.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* see GPL (latest version) for full details
|
||||
@@ -35,6 +35,9 @@ typedef int socklen_t;
|
||||
#include "rfb.h"
|
||||
#include "sraRegion.h"
|
||||
|
||||
/* minimum interval between attempts to send something */
|
||||
#define PING_MS 10000
|
||||
|
||||
MUTEX(logMutex);
|
||||
|
||||
int rfbEnableLogging=1;
|
||||
@@ -71,7 +74,7 @@ rfbLog(const char *format, ...)
|
||||
|
||||
time(&log_clock);
|
||||
strftime(buf, 255, "%d/%m/%Y %T ", localtime(&log_clock));
|
||||
fprintf(stderr,buf);
|
||||
fprintf(stderr, "%s", buf);
|
||||
|
||||
vfprintf(stderr, format, args);
|
||||
fflush(stderr);
|
||||
@@ -86,12 +89,12 @@ void rfbLogPerror(const char *str)
|
||||
}
|
||||
|
||||
void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,int dy)
|
||||
{
|
||||
{
|
||||
rfbClientIteratorPtr iterator;
|
||||
rfbClientPtr cl;
|
||||
|
||||
rfbUndrawCursor(rfbScreen);
|
||||
|
||||
|
||||
iterator=rfbGetClientIterator(rfbScreen);
|
||||
while((cl=rfbClientIteratorNext(iterator))) {
|
||||
LOCK(cl->updateMutex);
|
||||
@@ -114,7 +117,7 @@ void rfbScheduleCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,in
|
||||
sraRgnDestroy(modifiedRegionBackup);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sraRgnOr(cl->copyRegion,copyRegion);
|
||||
cl->copyDX = dx;
|
||||
cl->copyDY = dy;
|
||||
@@ -163,7 +166,7 @@ void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,i
|
||||
char *in,*out;
|
||||
|
||||
rfbUndrawCursor(rfbScreen);
|
||||
|
||||
|
||||
/* copy it, really */
|
||||
i = sraRgnGetReverseIterator(copyRegion,dx<0,dy<0);
|
||||
while(sraRgnIteratorNext(i,&rect)) {
|
||||
@@ -180,7 +183,7 @@ void rfbDoCopyRegion(rfbScreenInfoPtr rfbScreen,sraRegionPtr copyRegion,int dx,i
|
||||
memmove(out,in,widthInBytes);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
rfbScheduleCopyRegion(rfbScreen,copyRegion,dx,dy);
|
||||
}
|
||||
|
||||
@@ -221,12 +224,12 @@ void rfbMarkRectAsModified(rfbScreenInfoPtr rfbScreen,int x1,int y1,int x2,int y
|
||||
if(x1<0) x1=0;
|
||||
if(x2>=rfbScreen->width) x2=rfbScreen->width-1;
|
||||
if(x1==x2) return;
|
||||
|
||||
|
||||
if(y1>y2) { i=y1; y1=y2; y2=i; }
|
||||
if(y1<0) y1=0;
|
||||
if(y2>=rfbScreen->height) y2=rfbScreen->height-1;
|
||||
if(y1==y2) return;
|
||||
|
||||
|
||||
region = sraRgnCreateRect(x1,y1,x2,y2);
|
||||
rfbMarkRegionAsModified(rfbScreen,region);
|
||||
sraRgnDestroy(region);
|
||||
@@ -257,11 +260,13 @@ clientOutput(void *data)
|
||||
UNLOCK(cl->updateMutex);
|
||||
|
||||
if (!haveUpdate) {
|
||||
WAIT(cl->updateCond, cl->updateMutex);
|
||||
TIMEDWAIT(cl->updateCond, cl->updateMutex, PING_MS);
|
||||
UNLOCK(cl->updateMutex); /* we really needn't lock now. */
|
||||
if (!haveUpdate)
|
||||
rfbSendPing(cl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* OK, now, to save bandwidth, wait a little while for more
|
||||
updates to come along. */
|
||||
usleep(cl->screen->rfbDeferUpdateTime * 1000);
|
||||
@@ -318,19 +323,21 @@ listenerRun(void *data)
|
||||
int client_fd;
|
||||
struct sockaddr_in peer;
|
||||
rfbClientPtr cl;
|
||||
socklen_t len;
|
||||
size_t len;
|
||||
|
||||
if (rfbScreen->inetdSock != -1) {
|
||||
cl = rfbNewClient(rfbScreen, rfbScreen->inetdSock);
|
||||
if (cl && !cl->onHold )
|
||||
rfbStartOnHoldClient(cl);
|
||||
if (cl && !cl->onHold)
|
||||
rfbStartOnHoldClient(cl);
|
||||
else if (rfbScreen->inetdDisconnectHook && !cl)
|
||||
rfbScreen->inetdDisconnectHook();
|
||||
return 0;
|
||||
}
|
||||
|
||||
len = sizeof(peer);
|
||||
|
||||
/* TODO: this thread wont die by restarting the server */
|
||||
while ((client_fd = accept(rfbScreen->rfbListenSock,
|
||||
while ((client_fd = accept(rfbScreen->rfbListenSock,
|
||||
(struct sockaddr*)&peer, &len)) >= 0) {
|
||||
cl = rfbNewClient(rfbScreen,client_fd);
|
||||
len = sizeof(peer);
|
||||
@@ -341,7 +348,7 @@ listenerRun(void *data)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void
|
||||
void
|
||||
rfbStartOnHoldClient(rfbClientPtr cl)
|
||||
{
|
||||
pthread_create(&cl->client_thread, NULL, clientInput, (void *)cl);
|
||||
@@ -349,7 +356,7 @@ rfbStartOnHoldClient(rfbClientPtr cl)
|
||||
|
||||
#else
|
||||
|
||||
void
|
||||
void
|
||||
rfbStartOnHoldClient(rfbClientPtr cl)
|
||||
{
|
||||
cl->onHold = FALSE;
|
||||
@@ -357,7 +364,7 @@ rfbStartOnHoldClient(rfbClientPtr cl)
|
||||
|
||||
#endif
|
||||
|
||||
void
|
||||
void
|
||||
rfbRefuseOnHoldClient(rfbClientPtr cl)
|
||||
{
|
||||
rfbCloseClient(cl);
|
||||
@@ -392,7 +399,7 @@ void defaultSetXCutText(char* text, int len, rfbClientPtr cl)
|
||||
/* TODO: add a nice VNC or RFB cursor */
|
||||
|
||||
#if defined(WIN32) || defined(sparc) || defined(_AIX) || defined(__osf__)
|
||||
static rfbCursor myCursor =
|
||||
static rfbCursor myCursor =
|
||||
{
|
||||
"\000\102\044\030\044\102\000",
|
||||
"\347\347\176\074\176\347\347",
|
||||
@@ -402,7 +409,7 @@ static rfbCursor myCursor =
|
||||
0
|
||||
};
|
||||
#else
|
||||
static rfbCursor myCursor =
|
||||
static rfbCursor myCursor =
|
||||
{
|
||||
source: "\000\102\044\030\044\102\000",
|
||||
mask: "\347\347\176\074\176\347\347",
|
||||
@@ -519,7 +526,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv,
|
||||
rfbScreen->rfbNeverShared = FALSE;
|
||||
rfbScreen->rfbDontDisconnect = FALSE;
|
||||
rfbScreen->rfbAuthPasswdData = 0;
|
||||
|
||||
|
||||
rfbScreen->width = width;
|
||||
rfbScreen->height = height;
|
||||
rfbScreen->bitsPerPixel = rfbScreen->depth = 8*bytesPerPixel;
|
||||
@@ -601,6 +608,7 @@ rfbScreenInfoPtr rfbGetScreen(int* argc,char** argv,
|
||||
rfbScreen->setTranslateFunction = rfbSetTranslateFunction;
|
||||
rfbScreen->newClientHook = defaultNewClientHook;
|
||||
rfbScreen->displayHook = 0;
|
||||
rfbScreen->inetdDisconnectHook = 0;
|
||||
|
||||
/* initialize client list and iterator mutex */
|
||||
rfbClientListInit(rfbScreen);
|
||||
@@ -618,7 +626,7 @@ void rfbScreenCleanup(rfbScreenInfoPtr rfbScreen)
|
||||
cl1=cl;
|
||||
}
|
||||
rfbReleaseClientIterator(i);
|
||||
|
||||
|
||||
/* TODO: hang up on all clients and free all reserved memory */
|
||||
#define FREE_IF(x) if(rfbScreen->x) free(rfbScreen->x)
|
||||
FREE_IF(colourMap.data.bytes);
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
/*
|
||||
* OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>.
|
||||
* Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge.
|
||||
* Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify
|
||||
@@ -151,6 +151,10 @@ typedef unsigned long KeySym;
|
||||
#define TINI_MUTEX(mutex) pthread_mutex_destroy(&(mutex))
|
||||
#define TSIGNAL(cond) pthread_cond_signal(&(cond))
|
||||
#define WAIT(cond,mutex) pthread_cond_wait(&(cond),&(mutex))
|
||||
#define TIMEDWAIT(cond,mutex,t) {struct timeval tv;\
|
||||
tv.tv_sec = (t) / 1000;\
|
||||
tv.tv_usec = ((t) % 1000) * 1000;\
|
||||
pthread_cond_timedwait(&(cond),&(mutex),&tv);}
|
||||
#define COND(cond) pthread_cond_t (cond)
|
||||
#define INIT_COND(cond) pthread_cond_init(&(cond),NULL)
|
||||
#define TINI_COND(cond) pthread_cond_destroy(&(cond))
|
||||
@@ -203,6 +207,7 @@ typedef Bool (*SetTranslateFunctionProcPtr)(struct _rfbClientRec* cl);
|
||||
typedef Bool (*PasswordCheckProcPtr)(struct _rfbClientRec* cl,const char* encryptedPassWord,int len);
|
||||
typedef enum rfbNewClientAction (*NewClientHookPtr)(struct _rfbClientRec* cl);
|
||||
typedef void (*DisplayHookPtr)(struct _rfbClientRec* cl);
|
||||
typedef void (*InetdDisconnectPtr)();
|
||||
|
||||
typedef struct {
|
||||
CARD32 count;
|
||||
@@ -236,7 +241,7 @@ typedef struct _rfbScreenInfo
|
||||
* same time while using the same functions.
|
||||
*/
|
||||
void* screenData;
|
||||
|
||||
|
||||
/* The following two members are used to minimise the amount of unnecessary
|
||||
drawing caused by cursor movement. Whenever any drawing affects the
|
||||
part of the screen where the cursor is, the cursor is removed first and
|
||||
@@ -277,7 +282,7 @@ typedef struct _rfbScreenInfo
|
||||
Bool cursorIsDrawn; /* TRUE if the cursor is currently drawn */
|
||||
Bool dontSendFramebufferUpdate; /* TRUE while removing or drawing the
|
||||
cursor */
|
||||
|
||||
|
||||
/* additions by libvncserver */
|
||||
|
||||
rfbPixelFormat rfbServerFormat;
|
||||
@@ -331,7 +336,7 @@ typedef struct _rfbScreenInfo
|
||||
struct rfbCursor* cursor;
|
||||
|
||||
/* the frameBufferhas to be supplied by the serving process.
|
||||
* The buffer will not be freed by
|
||||
* The buffer will not be freed by
|
||||
*/
|
||||
char* frameBuffer;
|
||||
KbdAddEventProcPtr kbdAddEvent;
|
||||
@@ -340,12 +345,14 @@ typedef struct _rfbScreenInfo
|
||||
SetXCutTextProcPtr setXCutText;
|
||||
GetCursorProcPtr getCursorPtr;
|
||||
SetTranslateFunctionProcPtr setTranslateFunction;
|
||||
|
||||
|
||||
/* newClientHook is called just after a new client is created */
|
||||
NewClientHookPtr newClientHook;
|
||||
/* displayHook is called just before a frame buffer update */
|
||||
DisplayHookPtr displayHook;
|
||||
|
||||
/* inetdDisconnectHook is called when the connection has been
|
||||
interrupted before a client could connect. */
|
||||
InetdDisconnectPtr inetdDisconnectHook;
|
||||
#ifdef HAVE_PTHREADS
|
||||
MUTEX(cursorMutex);
|
||||
Bool backgroundLoop;
|
||||
@@ -365,7 +372,7 @@ typedef void (*rfbTranslateFnType)(char *table, rfbPixelFormat *in,
|
||||
int width, int height);
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
* vncauth.h - describes the functions provided by the vncauth library.
|
||||
*/
|
||||
|
||||
@@ -387,12 +394,13 @@ typedef struct sraRegion* sraRegionPtr;
|
||||
*/
|
||||
|
||||
typedef void (*ClientGoneHookPtr)(struct _rfbClientRec* cl);
|
||||
typedef void (*NegotiationFinishedHookPtr)(struct _rfbClientRec* cl);
|
||||
|
||||
typedef struct _rfbClientRec {
|
||||
|
||||
|
||||
/* back pointer to the screen */
|
||||
rfbScreenInfoPtr screen;
|
||||
|
||||
|
||||
/* private data. You should put any application client specific data
|
||||
* into a struct and let clientData point to it. Don't forget to
|
||||
* free the struct via clientGoneHook!
|
||||
@@ -400,8 +408,12 @@ typedef struct _rfbClientRec {
|
||||
* This is useful if the IO functions have to behave client specific.
|
||||
*/
|
||||
void* clientData;
|
||||
|
||||
ClientGoneHookPtr clientGoneHook;
|
||||
|
||||
/* negotiationFinishedHook is called when the negotiation phase has ended */
|
||||
NegotiationFinishedHookPtr negotiationFinishedHook;
|
||||
|
||||
SOCKET sock;
|
||||
char *host;
|
||||
|
||||
@@ -519,9 +531,10 @@ typedef struct _rfbClientRec {
|
||||
int softSourceLen;
|
||||
rfbSoftCursorSetImage *softCursorImages[rfbSoftCursorMaxImages];
|
||||
int nextUnusedSoftCursorImage;
|
||||
|
||||
|
||||
Bool enableLastRectEncoding; /* client supports LastRect encoding */
|
||||
Bool enableSoftCursorUpdates; /* client supports softcursor updates */
|
||||
Bool disableBackground; /* client wants to disable background */
|
||||
Bool enableCursorShapeUpdates; /* client supports cursor shape updates */
|
||||
Bool useRichCursorEncoding; /* rfbEncodingRichCursor is preferred */
|
||||
Bool cursorWasChanged; /* cursor shape update should be sent */
|
||||
@@ -620,6 +633,7 @@ extern void rfbProcessClientMessage(rfbClientPtr cl);
|
||||
extern void rfbClientConnFailed(rfbClientPtr cl, char *reason);
|
||||
extern void rfbNewUDPConnection(rfbScreenInfoPtr rfbScreen,int sock);
|
||||
extern void rfbProcessUDPInput(rfbScreenInfoPtr rfbScreen);
|
||||
extern Bool rfbSendPing(rfbClientPtr cl);
|
||||
extern Bool rfbSendFramebufferUpdate(rfbClientPtr cl, sraRegionPtr updateRegion);
|
||||
extern Bool rfbSendRectEncodingRaw(rfbClientPtr cl, int x,int y,int w,int h);
|
||||
extern Bool rfbSendUpdateBuf(rfbClientPtr cl);
|
||||
|
||||
@@ -329,6 +329,7 @@ typedef struct {
|
||||
#define rfbEncodingSoftCursor 0xFFFFFF12
|
||||
|
||||
#define rfbEncodingLastRect 0xFFFFFF20
|
||||
#define rfbEncodingBackground 0xFFFFFF25
|
||||
|
||||
#define rfbEncodingQualityLevel0 0xFFFFFFE0
|
||||
#define rfbEncodingQualityLevel1 0xFFFFFFE1
|
||||
|
||||
@@ -200,7 +200,7 @@ rfbNewTCPOrUDPClient(rfbScreen,sock,isUDP)
|
||||
rfbClientIteratorPtr iterator;
|
||||
rfbClientPtr cl,cl_;
|
||||
struct sockaddr_in addr;
|
||||
socklen_t addrlen = sizeof(struct sockaddr_in);
|
||||
size_t addrlen = sizeof(struct sockaddr_in);
|
||||
int i;
|
||||
|
||||
cl = (rfbClientPtr)calloc(sizeof(rfbClientRec),1);
|
||||
@@ -273,6 +273,7 @@ rfbNewTCPOrUDPClient(rfbScreen,sock,isUDP)
|
||||
cl->enableCursorShapeUpdates = FALSE;
|
||||
cl->useRichCursorEncoding = FALSE;
|
||||
cl->enableLastRectEncoding = FALSE;
|
||||
cl->disableBackground = FALSE;
|
||||
|
||||
cl->compStreamInited = FALSE;
|
||||
cl->compStream.total_in = 0;
|
||||
@@ -299,6 +300,7 @@ rfbNewTCPOrUDPClient(rfbScreen,sock,isUDP)
|
||||
|
||||
cl->clientData = NULL;
|
||||
cl->clientGoneHook = doNothingWithClient;
|
||||
cl->negotiationFinishedHook = doNothingWithClient;
|
||||
switch (cl->screen->newClientHook(cl)) {
|
||||
case RFB_CLIENT_ON_HOLD:
|
||||
cl->onHold = TRUE;
|
||||
@@ -663,6 +665,7 @@ rfbProcessClientNormalMessage(cl)
|
||||
cl->useCopyRect = FALSE;
|
||||
cl->enableCursorShapeUpdates = FALSE;
|
||||
cl->enableLastRectEncoding = FALSE;
|
||||
cl->disableBackground = FALSE;
|
||||
|
||||
for (i = 0; i < msg.se.nEncodings; i++) {
|
||||
if ((n = ReadExact(cl, (char *)&enc, 4)) <= 0) {
|
||||
@@ -721,6 +724,8 @@ rfbProcessClientNormalMessage(cl)
|
||||
}
|
||||
break;
|
||||
case rfbEncodingXCursor:
|
||||
if (cl->enableSoftCursorUpdates)
|
||||
break;
|
||||
if(!cl->screen->dontConvertRichCursorToXCursor) {
|
||||
rfbLog("Enabling X-style cursor updates for client %s\n",
|
||||
cl->host);
|
||||
@@ -731,9 +736,11 @@ rfbProcessClientNormalMessage(cl)
|
||||
case rfbEncodingRichCursor:
|
||||
rfbLog("Enabling full-color cursor updates for client "
|
||||
"%s\n", cl->host);
|
||||
cl->enableCursorShapeUpdates = TRUE;
|
||||
cl->useRichCursorEncoding = TRUE;
|
||||
cl->cursorWasChanged = TRUE;
|
||||
if (cl->enableSoftCursorUpdates)
|
||||
break;
|
||||
cl->enableCursorShapeUpdates = TRUE;
|
||||
cl->useRichCursorEncoding = TRUE;
|
||||
cl->cursorWasChanged = TRUE;
|
||||
break;
|
||||
case rfbEncodingSoftCursor:
|
||||
rfbLog("Enabling soft cursor updates for client "
|
||||
@@ -741,6 +748,8 @@ rfbProcessClientNormalMessage(cl)
|
||||
cl->enableSoftCursorUpdates = TRUE;
|
||||
cl->cursorWasChanged = TRUE;
|
||||
cl->cursorWasMoved = TRUE;
|
||||
cl->enableCursorShapeUpdates = FALSE;
|
||||
cl->useRichCursorEncoding = FALSE;
|
||||
break;
|
||||
case rfbEncodingLastRect:
|
||||
if (!cl->enableLastRectEncoding) {
|
||||
@@ -749,6 +758,11 @@ rfbProcessClientNormalMessage(cl)
|
||||
cl->enableLastRectEncoding = TRUE;
|
||||
}
|
||||
break;
|
||||
case rfbEncodingBackground:
|
||||
rfbLog("Disabling background for client "
|
||||
"%s\n", cl->host);
|
||||
cl->disableBackground = TRUE;
|
||||
break;
|
||||
#ifdef BACKCHANNEL
|
||||
case rfbEncodingBackChannel:
|
||||
if (!cl->enableBackChannel) {
|
||||
@@ -780,6 +794,8 @@ rfbProcessClientNormalMessage(cl)
|
||||
cl->preferredEncoding = rfbEncodingRaw;
|
||||
}
|
||||
|
||||
cl->negotiationFinishedHook(cl);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -909,6 +925,22 @@ rfbProcessClientNormalMessage(cl)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* rfbSendPing - send an empty framebuffer request
|
||||
*/
|
||||
|
||||
Bool
|
||||
rfbSendPing(cl)
|
||||
rfbClientPtr cl;
|
||||
{
|
||||
rfbFramebufferUpdateMsg *fu = (rfbFramebufferUpdateMsg *)cl->updateBuf;
|
||||
cl->rfbFramebufferUpdateMessagesSent++;
|
||||
fu->type = rfbFramebufferUpdate;
|
||||
fu->nRects = Swap16IfLE((CARD16)0);
|
||||
cl->ublen = sz_rfbFramebufferUpdateMsg;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* rfbSendFramebufferUpdate - send the currently pending framebuffer update to
|
||||
|
||||
@@ -19,8 +19,8 @@ typedef struct {
|
||||
enum { SELECTING, OK, CANCEL } state;
|
||||
} rfbSelectData;
|
||||
|
||||
static const char* okStr="OK";
|
||||
static const char* cancelStr="Cancel";
|
||||
static const char okStr[] = "OK";
|
||||
static const char cancelStr[] = "Cancel";
|
||||
|
||||
static void selPaintButtons(rfbSelectData* m,Bool invertOk,Bool invertCancel)
|
||||
{
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
/*
|
||||
* OSXvnc Copyright (C) 2001 Dan McGuirk <mcguirk@incompleteness.net>.
|
||||
* Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge.
|
||||
* Original Xvnc code Copyright (C) 1999 AT&T Laboratories Cambridge.
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* This is free software; you can redistribute it and/or modify
|
||||
@@ -61,7 +61,7 @@
|
||||
typedef int socklen_t;
|
||||
#endif
|
||||
#if defined(__linux__) && defined(NEED_TIMEVAL)
|
||||
struct timeval
|
||||
struct timeval
|
||||
{
|
||||
long int tv_sec,tv_usec;
|
||||
}
|
||||
@@ -183,7 +183,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec)
|
||||
fd_set fds;
|
||||
struct timeval tv;
|
||||
struct sockaddr_in addr;
|
||||
socklen_t addrlen = sizeof(addr);
|
||||
size_t addrlen = sizeof(addr);
|
||||
char buf[6];
|
||||
const int one = 1;
|
||||
int sock;
|
||||
@@ -191,7 +191,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec)
|
||||
rfbClientPtr cl;
|
||||
|
||||
if (!rfbScreen->inetdInitDone && rfbScreen->inetdSock != -1) {
|
||||
rfbNewClientConnection(rfbScreen,rfbScreen->inetdSock);
|
||||
rfbNewClientConnection(rfbScreen,rfbScreen->inetdSock);
|
||||
rfbScreen->inetdInitDone = TRUE;
|
||||
}
|
||||
|
||||
@@ -246,7 +246,7 @@ rfbCheckFds(rfbScreenInfoPtr rfbScreen,long usec)
|
||||
rfbLog("Got connection from client %s\n", inet_ntoa(addr.sin_addr));
|
||||
|
||||
rfbNewClient(rfbScreen,sock);
|
||||
|
||||
|
||||
FD_CLR(rfbScreen->rfbListenSock, &fds);
|
||||
if (--nfds == 0)
|
||||
return;
|
||||
@@ -370,6 +370,7 @@ rfbConnect(rfbScreen, host, port)
|
||||
* ReadExact reads an exact number of bytes from a client. Returns 1 if
|
||||
* those bytes have been read, 0 if the other end has closed, or -1 if an error
|
||||
* occurred (errno is set to ETIMEDOUT if it timed out).
|
||||
* timeout is the timeout in ms, 0 for no timeout.
|
||||
*/
|
||||
|
||||
int
|
||||
@@ -379,6 +380,9 @@ ReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout)
|
||||
int n;
|
||||
fd_set fds;
|
||||
struct timeval tv;
|
||||
int to = 20000;
|
||||
if (timeout)
|
||||
to = timeout;
|
||||
|
||||
while (len > 0) {
|
||||
n = read(sock, buf, len);
|
||||
@@ -402,14 +406,14 @@ ReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout)
|
||||
|
||||
FD_ZERO(&fds);
|
||||
FD_SET(sock, &fds);
|
||||
tv.tv_sec = timeout / 1000;
|
||||
tv.tv_usec = (timeout % 1000) * 1000;
|
||||
tv.tv_sec = to / 1000;
|
||||
tv.tv_usec = (to % 1000) * 1000;
|
||||
n = select(sock+1, &fds, NULL, &fds, &tv);
|
||||
if (n < 0) {
|
||||
rfbLogPerror("ReadExact: select");
|
||||
return n;
|
||||
}
|
||||
if (n == 0) {
|
||||
if ((n == 0) && timeout) {
|
||||
errno = ETIMEDOUT;
|
||||
return -1;
|
||||
}
|
||||
@@ -420,7 +424,7 @@ ReadExactTimeout(rfbClientPtr cl, char* buf, int len, int timeout)
|
||||
|
||||
int ReadExact(rfbClientPtr cl,char* buf,int len)
|
||||
{
|
||||
return(ReadExactTimeout(cl,buf,len,rfbMaxClientWait));
|
||||
return ReadExactTimeout(cl, buf, len, 0);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
138
libvncserver/sraRegion.c
Executable file → Normal file
@@ -33,7 +33,7 @@ typedef struct sraRegion {
|
||||
sraSpanList *sraSpanListDup(const sraSpanList *src);
|
||||
void sraSpanListDestroy(sraSpanList *list);
|
||||
|
||||
sraSpan *
|
||||
static sraSpan *
|
||||
sraSpanCreate(int start, int end, const sraSpanList *subspan) {
|
||||
sraSpan *item = (sraSpan*)malloc(sizeof(sraSpan));
|
||||
item->_next = item->_prev = NULL;
|
||||
@@ -43,7 +43,7 @@ sraSpanCreate(int start, int end, const sraSpanList *subspan) {
|
||||
return item;
|
||||
}
|
||||
|
||||
sraSpan *
|
||||
static sraSpan *
|
||||
sraSpanDup(const sraSpan *src) {
|
||||
sraSpan *span;
|
||||
if (!src) return NULL;
|
||||
@@ -51,7 +51,7 @@ sraSpanDup(const sraSpan *src) {
|
||||
return span;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanInsertAfter(sraSpan *newspan, sraSpan *after) {
|
||||
newspan->_next = after->_next;
|
||||
newspan->_prev = after;
|
||||
@@ -59,7 +59,7 @@ sraSpanInsertAfter(sraSpan *newspan, sraSpan *after) {
|
||||
after->_next = newspan;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanInsertBefore(sraSpan *newspan, sraSpan *before) {
|
||||
newspan->_next = before;
|
||||
newspan->_prev = before->_prev;
|
||||
@@ -67,33 +67,34 @@ sraSpanInsertBefore(sraSpan *newspan, sraSpan *before) {
|
||||
before->_prev = newspan;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanRemove(sraSpan *span) {
|
||||
span->_prev->_next = span->_next;
|
||||
span->_next->_prev = span->_prev;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanDestroy(sraSpan *span) {
|
||||
if (span->subspan) sraSpanListDestroy(span->subspan);
|
||||
free(span);
|
||||
}
|
||||
|
||||
void
|
||||
#ifdef DEBUG
|
||||
static void
|
||||
sraSpanCheck(const sraSpan *span, const char *text) {
|
||||
/* Check the span is valid! */
|
||||
if (span->start == span->end) {
|
||||
printf(text);
|
||||
printf(":%d-%d\n", span->start, span->end);
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/* -=- SpanList routines */
|
||||
|
||||
void sraSpanPrint(const sraSpan *s);
|
||||
static void sraSpanPrint(const sraSpan *s);
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanListPrint(const sraSpanList *l) {
|
||||
sraSpan *curr;
|
||||
if (!l) {
|
||||
@@ -116,8 +117,8 @@ sraSpanPrint(const sraSpan *s) {
|
||||
sraSpanListPrint(s->subspan);
|
||||
}
|
||||
|
||||
sraSpanList *
|
||||
sraSpanListCreate() {
|
||||
static sraSpanList *
|
||||
sraSpanListCreate(void) {
|
||||
sraSpanList *item = (sraSpanList*)malloc(sizeof(sraSpanList));
|
||||
item->front._next = &(item->back);
|
||||
item->front._prev = NULL;
|
||||
@@ -156,7 +157,7 @@ sraSpanListDestroy(sraSpanList *list) {
|
||||
free(list);
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanListMakeEmpty(sraSpanList *list) {
|
||||
sraSpan *curr, *next;
|
||||
while (list->front._next != &(list->back)) {
|
||||
@@ -172,7 +173,7 @@ sraSpanListMakeEmpty(sraSpanList *list) {
|
||||
list->back._next = NULL;
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
sraSpanListEqual(const sraSpanList *s1, const sraSpanList *s2) {
|
||||
sraSpan *sp1, *sp2;
|
||||
|
||||
@@ -181,7 +182,7 @@ sraSpanListEqual(const sraSpanList *s1, const sraSpanList *s2) {
|
||||
return 1;
|
||||
} else {
|
||||
printf("sraSpanListEqual:incompatible spans (only one NULL!)\n");
|
||||
exit(1);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -205,12 +206,12 @@ sraSpanListEqual(const sraSpanList *s1, const sraSpanList *s2) {
|
||||
}
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
sraSpanListEmpty(const sraSpanList *list) {
|
||||
return (list->front._next == &(list->back));
|
||||
}
|
||||
|
||||
unsigned long
|
||||
static unsigned long
|
||||
sraSpanListCount(const sraSpanList *list) {
|
||||
sraSpan *curr = list->front._next;
|
||||
unsigned long count = 0;
|
||||
@@ -225,11 +226,12 @@ sraSpanListCount(const sraSpanList *list) {
|
||||
return count;
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanMergePrevious(sraSpan *dest) {
|
||||
sraSpan *prev = dest->_prev;
|
||||
while ((prev->end == dest->start) &&
|
||||
(prev->_prev) &&
|
||||
|
||||
while ((prev->_prev) &&
|
||||
(prev->end == dest->start) &&
|
||||
(sraSpanListEqual(prev->subspan, dest->subspan))) {
|
||||
/*
|
||||
printf("merge_prev:");
|
||||
@@ -245,11 +247,11 @@ sraSpanMergePrevious(sraSpan *dest) {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanMergeNext(sraSpan *dest) {
|
||||
sraSpan *next = dest->_next;
|
||||
while ((next->start == dest->end) &&
|
||||
(next->_next) &&
|
||||
while ((next->_next) &&
|
||||
(next->start == dest->end) &&
|
||||
(sraSpanListEqual(next->subspan, dest->subspan))) {
|
||||
/*
|
||||
printf("merge_next:");
|
||||
@@ -265,7 +267,7 @@ sraSpanMergeNext(sraSpan *dest) {
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
static void
|
||||
sraSpanListOr(sraSpanList *dest, const sraSpanList *src) {
|
||||
sraSpan *d_curr, *s_curr;
|
||||
int s_start, s_end;
|
||||
@@ -275,7 +277,7 @@ sraSpanListOr(sraSpanList *dest, const sraSpanList *src) {
|
||||
return;
|
||||
} else {
|
||||
printf("sraSpanListOr:incompatible spans (only one NULL!)\n");
|
||||
exit(1);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -355,7 +357,7 @@ sraSpanListOr(sraSpanList *dest, const sraSpanList *src) {
|
||||
}
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
sraSpanListAnd(sraSpanList *dest, const sraSpanList *src) {
|
||||
sraSpan *d_curr, *s_curr, *d_next;
|
||||
|
||||
@@ -364,7 +366,7 @@ sraSpanListAnd(sraSpanList *dest, const sraSpanList *src) {
|
||||
return 1;
|
||||
} else {
|
||||
printf("sraSpanListAnd:incompatible spans (only one NULL!)\n");
|
||||
exit(1);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -435,7 +437,7 @@ sraSpanListAnd(sraSpanList *dest, const sraSpanList *src) {
|
||||
return !sraSpanListEmpty(dest);
|
||||
}
|
||||
|
||||
Bool
|
||||
static Bool
|
||||
sraSpanListSubtract(sraSpanList *dest, const sraSpanList *src) {
|
||||
sraSpan *d_curr, *s_curr;
|
||||
|
||||
@@ -444,7 +446,7 @@ sraSpanListSubtract(sraSpanList *dest, const sraSpanList *src) {
|
||||
return 1;
|
||||
} else {
|
||||
printf("sraSpanListSubtract:incompatible spans (only one NULL!)\n");
|
||||
exit(1);
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -585,6 +587,38 @@ sraRgnOffset(sraRegion *dst, int dx, int dy) {
|
||||
}
|
||||
}
|
||||
|
||||
sraRegion *sraRgnBBox(const sraRegion *src) {
|
||||
int xmin=((unsigned int)(int)-1)>>1,ymin=xmin,xmax=1-xmin,ymax=xmax;
|
||||
sraSpan *vcurr, *hcurr;
|
||||
|
||||
if(!src)
|
||||
return sraRgnCreate();
|
||||
|
||||
vcurr = ((sraSpanList*)src)->front._next;
|
||||
while (vcurr != &(((sraSpanList*)src)->back)) {
|
||||
if(vcurr->start<ymin)
|
||||
ymin=vcurr->start;
|
||||
if(vcurr->end>ymax)
|
||||
ymax=vcurr->end;
|
||||
|
||||
hcurr = vcurr->subspan->front._next;
|
||||
while (hcurr != &(vcurr->subspan->back)) {
|
||||
if(hcurr->start<xmin)
|
||||
xmin=hcurr->start;
|
||||
if(hcurr->end>xmax)
|
||||
xmax=hcurr->end;
|
||||
hcurr = hcurr->_next;
|
||||
}
|
||||
|
||||
vcurr = vcurr->_next;
|
||||
}
|
||||
|
||||
if(xmax<xmin || ymax<ymin)
|
||||
return sraRgnCreate();
|
||||
|
||||
return sraRgnCreateRect(xmin,ymin,xmax,ymax);
|
||||
}
|
||||
|
||||
Bool
|
||||
sraRgnPopRect(sraRegion *rgn, sraRect *rect, unsigned long flags) {
|
||||
sraSpan *vcurr, *hcurr;
|
||||
@@ -657,7 +691,7 @@ sraRectangleIterator *sraRgnGetIterator(sraRegion *s)
|
||||
sraRectangleIterator *i =
|
||||
(sraRectangleIterator*)malloc(sizeof(sraRectangleIterator));
|
||||
if(!i)
|
||||
return(0);
|
||||
return NULL;
|
||||
|
||||
/* we have to recurse eventually. So, the first sPtr is the pointer to
|
||||
the sraSpan in the first level. the second sPtr is the pointer to
|
||||
@@ -666,7 +700,7 @@ sraRectangleIterator *sraRgnGetIterator(sraRegion *s)
|
||||
i->sPtrs = (sraSpan**)malloc(sizeof(sraSpan*)*DEFSIZE);
|
||||
if(!i->sPtrs) {
|
||||
free(i);
|
||||
return(0);
|
||||
return NULL;
|
||||
}
|
||||
i->ptrSize = DEFSIZE;
|
||||
i->sPtrs[0] = &(s->front);
|
||||
@@ -674,7 +708,7 @@ sraRectangleIterator *sraRgnGetIterator(sraRegion *s)
|
||||
i->ptrPos = 0;
|
||||
i->reverseX = 0;
|
||||
i->reverseY = 0;
|
||||
return(i);
|
||||
return i;
|
||||
}
|
||||
|
||||
sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,Bool reverseX,Bool reverseY)
|
||||
@@ -689,13 +723,13 @@ sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,Bool reverseX,Bool r
|
||||
return(i);
|
||||
}
|
||||
|
||||
Bool sraReverse(sraRectangleIterator *i)
|
||||
static Bool sraReverse(sraRectangleIterator *i)
|
||||
{
|
||||
return( ((i->ptrPos&2) && i->reverseX) ||
|
||||
(!(i->ptrPos&2) && i->reverseY));
|
||||
}
|
||||
|
||||
sraSpan* sraNextSpan(sraRectangleIterator *i)
|
||||
static sraSpan* sraNextSpan(sraRectangleIterator *i)
|
||||
{
|
||||
if(sraReverse(i))
|
||||
return(i->sPtrs[i->ptrPos]->_prev);
|
||||
@@ -731,8 +765,8 @@ Bool sraRgnIteratorNext(sraRectangleIterator* i,sraRect* r)
|
||||
}
|
||||
|
||||
if((i->ptrPos%4)!=2) {
|
||||
fprintf(stderr,"sraRgnIteratorNext: offset is wrong (%d%%4!=2)\n",i->ptrPos);
|
||||
exit(-1);
|
||||
printf("sraRgnIteratorNext: offset is wrong (%d%%4!=2)\n",i->ptrPos);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
r->y1 = i->sPtrs[i->ptrPos-2]->start;
|
||||
@@ -774,6 +808,28 @@ sraClipRect(int *x, int *y, int *w, int *h,
|
||||
return (*w>0) && (*h>0);
|
||||
}
|
||||
|
||||
Bool
|
||||
sraClipRect2(int *x, int *y, int *x2, int *y2,
|
||||
int cx, int cy, int cx2, int cy2) {
|
||||
if (*x < cx)
|
||||
*x = cx;
|
||||
if (*y < cy)
|
||||
*y = cy;
|
||||
if (*x >= cx2)
|
||||
*x = cx2-1;
|
||||
if (*y >= cy2)
|
||||
*y = cy2-1;
|
||||
if (*x2 <= cx)
|
||||
*x2 = cx+1;
|
||||
if (*y2 <= cy)
|
||||
*y2 = cy+1;
|
||||
if (*x2 > cx2)
|
||||
*x2 = cx2;
|
||||
if (*y2 > cy2)
|
||||
*y2 = cy2;
|
||||
return (*x2>*x) && (*y2>*y);
|
||||
}
|
||||
|
||||
/* test */
|
||||
|
||||
#ifdef SRA_TEST
|
||||
@@ -806,7 +862,7 @@ int main(int argc, char** argv)
|
||||
rect.x2-rect.x1,rect.y2-rect.y1,
|
||||
rect.x1,rect.y1);
|
||||
sraRgnReleaseIterator(i);
|
||||
printf("\n20x10+0+0 600x30+0+10 590x10+10+40 30x150+10+50 250x150+350+50 590x100+10+200\n\n");
|
||||
printf("\n20x10+0+0 600x30+0+10 590x10+10+40 30x150+10+50 250x150+350+50 590x100+10+200 \n\n");
|
||||
|
||||
i = sraRgnGetReverseIterator(region,1,0);
|
||||
while(sraRgnIteratorNext(i, &rect))
|
||||
@@ -814,7 +870,7 @@ int main(int argc, char** argv)
|
||||
rect.x2-rect.x1,rect.y2-rect.y1,
|
||||
rect.x1,rect.y1);
|
||||
sraRgnReleaseIterator(i);
|
||||
printf("\n20x10+0+0 600x30+0+10 590x10+10+40 250x150+350+50 30x150+10+50 590x100+10+200\n\n");
|
||||
printf("\n20x10+0+0 600x30+0+10 590x10+10+40 250x150+350+50 30x150+10+50 590x100+10+200 \n\n");
|
||||
|
||||
i = sraRgnGetReverseIterator(region,1,1);
|
||||
while(sraRgnIteratorNext(i, &rect))
|
||||
@@ -822,7 +878,11 @@ int main(int argc, char** argv)
|
||||
rect.x2-rect.x1,rect.y2-rect.y1,
|
||||
rect.x1,rect.y1);
|
||||
sraRgnReleaseIterator(i);
|
||||
printf("\n590x100+10+200 250x150+350+50 30x150+10+50 590x10+10+40 600x30+0+10 20x10+0+0\n\n");
|
||||
printf("\n590x100+10+200 250x150+350+50 30x150+10+50 590x10+10+40 600x30+0+10 20x10+0+0 \n\n");
|
||||
|
||||
sraRgnDestroy(region);
|
||||
sraRgnDestroy(region1);
|
||||
sraRgnDestroy(region2);
|
||||
|
||||
return(0);
|
||||
}
|
||||
|
||||
6
libvncserver/sraRegion.h
Executable file → Normal file
@@ -1,4 +1,3 @@
|
||||
|
||||
#ifndef SRAREGION_H
|
||||
#define SRAREGION_H
|
||||
|
||||
@@ -38,6 +37,8 @@ extern Bool sraRgnPopRect(sraRegion *region, sraRect *rect,
|
||||
extern unsigned long sraRgnCountRects(const sraRegion *rgn);
|
||||
extern Bool sraRgnEmpty(const sraRegion *rgn);
|
||||
|
||||
extern sraRegion *sraRgnBBox(const sraRegion *src);
|
||||
|
||||
/* -=- rectangle iterator */
|
||||
|
||||
typedef struct sraRectangleIterator {
|
||||
@@ -58,4 +59,7 @@ void sraRgnPrint(const sraRegion *s);
|
||||
extern Bool sraClipRect(int *x, int *y, int *w, int *h,
|
||||
int cx, int cy, int cw, int ch);
|
||||
|
||||
extern Bool sraClipRect2(int *x, int *y, int *x2, int *y2,
|
||||
int cx, int cy, int cx2, int cy2);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -338,7 +338,7 @@ int main(int argc,char** argv)
|
||||
for(i=argc-1;i>0;i--)
|
||||
#ifdef LOCAL_CONTROL
|
||||
if(i<argc-1 && !strcmp(argv[i],"-toggleviewonly")) {
|
||||
sprintf(message,"t%s",argv[i+1]);
|
||||
snprintf(message, sizeof(message), "t%s",argv[i+1]);
|
||||
send_message(&single_instance,message);
|
||||
exit(0);
|
||||
} else if(!strcmp(argv[i],"-listclients")) {
|
||||
@@ -348,7 +348,7 @@ int main(int argc,char** argv)
|
||||
} else
|
||||
#ifdef BACKCHANNEL
|
||||
if(i<argc-1 && !strcmp(argv[i],"-backchannel")) {
|
||||
sprintf(message,"b%s",argv[i+1]);
|
||||
snprintf(message, sizeof(message), "b%s",argv[i+1]);
|
||||
send_message(&single_instance,message);
|
||||
exit(0);
|
||||
} else
|
||||
|
||||
@@ -3,11 +3,14 @@ METASOURCES = AUTO
|
||||
# Code
|
||||
noinst_LTLIBRARIES = libsrvloc.la
|
||||
|
||||
libsrvloc_la_SOURCES = kinetaddr.cpp kinetaddr_ipfinder.cpp \
|
||||
kserviceregistry.cpp kuser.cpp
|
||||
libsrvloc_la_SOURCES = kserviceregistry.cpp uuid.cpp \
|
||||
kinetinterface.cpp kinetinterfacewatcher.cpp \
|
||||
getifaddrs.cpp
|
||||
|
||||
libsrvloc_la_LIBADD = $(LIB_QT) $(LIB_KDECORE) $(LIB_SLP)
|
||||
libsrvloc_la_LDFLAGS = $(all_libraries) -no-undefined
|
||||
noinst_HEADERS = kinetaddr.h kserviceregistry.h kuser.h
|
||||
noinst_HEADERS = kserviceregistry.h uuid.h \
|
||||
getifaddrs.h kinetinterface.h kinetinterfacewatcher.h
|
||||
|
||||
# set the include path for X, qt and KDE
|
||||
INCLUDES= $(all_includes)
|
||||
|
||||
261
srvloc/getifaddrs.cpp
Normal file
@@ -0,0 +1,261 @@
|
||||
/* getifaddrs -- get names and addresses of all network interfaces
|
||||
Copyright (C) 1999,2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/**
|
||||
* 02-12-26, tim@tjansen.de: put in kde_ namespace, C++ fixes,
|
||||
* included ifreq.h
|
||||
* removed glibc dependencies
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifndef HAVE_GETIFADDRS
|
||||
|
||||
#include "getifaddrs.h"
|
||||
#include <net/if.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <netinet/in.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#ifndef IF_NAMESIZE
|
||||
#define IF_NAMESIZE IFNAMSIZ
|
||||
#endif
|
||||
|
||||
#ifdef SIOCGIFCONF
|
||||
|
||||
#define old_siocgifconf 0
|
||||
|
||||
static inline void
|
||||
__ifreq (struct ifreq **ifreqs, int *num_ifs, int sockfd)
|
||||
{
|
||||
int fd = sockfd;
|
||||
struct ifconf ifc;
|
||||
int rq_len;
|
||||
int nifs;
|
||||
# define RQ_IFS 4
|
||||
|
||||
if (fd < 0)
|
||||
fd = socket (AF_INET, SOCK_DGRAM, 0);
|
||||
if (fd < 0)
|
||||
{
|
||||
*num_ifs = 0;
|
||||
*ifreqs = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
ifc.ifc_buf = NULL;
|
||||
|
||||
/* We may be able to get the needed buffer size directly, rather than
|
||||
guessing. */
|
||||
if (! old_siocgifconf)
|
||||
{
|
||||
ifc.ifc_buf = NULL;
|
||||
ifc.ifc_len = 0;
|
||||
if (ioctl (fd, SIOCGIFCONF, &ifc) < 0 || ifc.ifc_len == 0)
|
||||
{
|
||||
rq_len = RQ_IFS * sizeof (struct ifreq);
|
||||
}
|
||||
else
|
||||
rq_len = ifc.ifc_len;
|
||||
}
|
||||
else
|
||||
rq_len = RQ_IFS * sizeof (struct ifreq);
|
||||
|
||||
/* Read all the interfaces out of the kernel. */
|
||||
while (1)
|
||||
{
|
||||
ifc.ifc_len = rq_len;
|
||||
ifc.ifc_buf = (char*) realloc (ifc.ifc_buf, ifc.ifc_len);
|
||||
if (ifc.ifc_buf == NULL || ioctl (fd, SIOCGIFCONF, &ifc) < 0)
|
||||
{
|
||||
if (ifc.ifc_buf)
|
||||
free (ifc.ifc_buf);
|
||||
|
||||
if (fd != sockfd)
|
||||
close (fd);
|
||||
|
||||
*num_ifs = 0;
|
||||
*ifreqs = NULL;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!old_siocgifconf || ifc.ifc_len < rq_len)
|
||||
break;
|
||||
|
||||
rq_len *= 2;
|
||||
}
|
||||
|
||||
nifs = ifc.ifc_len / sizeof (struct ifreq);
|
||||
|
||||
if (fd != sockfd)
|
||||
close (fd);
|
||||
|
||||
*num_ifs = nifs;
|
||||
*ifreqs = (ifreq*)realloc (ifc.ifc_buf, nifs * sizeof (struct ifreq));
|
||||
}
|
||||
|
||||
static inline struct ifreq *
|
||||
__if_nextreq (struct ifreq *ifr)
|
||||
{
|
||||
return ifr + 1;
|
||||
}
|
||||
|
||||
static inline void
|
||||
__if_freereq (struct ifreq *ifreqs, int num_ifs)
|
||||
{
|
||||
free (ifreqs);
|
||||
}
|
||||
|
||||
/* Create a linked list of `struct kde_ifaddrs' structures, one for each
|
||||
network interface on the host machine. If successful, store the
|
||||
list in *IFAP and return 0. On errors, return -1 and set `errno'. */
|
||||
int
|
||||
kde_getifaddrs (struct kde_ifaddrs **ifap)
|
||||
{
|
||||
/* This implementation handles only IPv4 interfaces.
|
||||
The various ioctls below will only work on an AF_INET socket.
|
||||
Some different mechanism entirely must be used for IPv6. */
|
||||
int fd = socket (AF_INET, SOCK_DGRAM, 0);
|
||||
struct ifreq *ifreqs;
|
||||
int nifs;
|
||||
|
||||
if (fd < 0)
|
||||
return -1;
|
||||
|
||||
__ifreq (&ifreqs, &nifs, fd);
|
||||
if (ifreqs == NULL) /* XXX doesn't distinguish error vs none */
|
||||
{
|
||||
close (fd);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Now we have the list of interfaces and each one's address.
|
||||
Put it into the expected format and fill in the remaining details. */
|
||||
if (nifs == 0)
|
||||
*ifap = NULL;
|
||||
else
|
||||
{
|
||||
struct Storage
|
||||
{
|
||||
struct kde_ifaddrs ia;
|
||||
struct sockaddr addr, netmask, broadaddr;
|
||||
char name[IF_NAMESIZE];
|
||||
} *storage;
|
||||
struct ifreq *ifr;
|
||||
int i;
|
||||
|
||||
storage = (Storage*) malloc (nifs * sizeof storage[0]);
|
||||
if (storage == NULL)
|
||||
{
|
||||
close (fd);
|
||||
__if_freereq (ifreqs, nifs);
|
||||
return -1;
|
||||
}
|
||||
|
||||
i = 0;
|
||||
ifr = ifreqs;
|
||||
do
|
||||
{
|
||||
/* Fill in all pointers to the storage we've already allocated. */
|
||||
storage[i].ia.ifa_next = &storage[i + 1].ia;
|
||||
storage[i].ia.ifa_addr = &storage[i].addr;
|
||||
storage[i].ia.ifa_netmask = &storage[i].netmask;
|
||||
storage[i].ia.ifa_broadaddr = &storage[i].broadaddr; /* & dstaddr */
|
||||
|
||||
/* Now copy the information we already have from SIOCGIFCONF. */
|
||||
storage[i].ia.ifa_name = strncpy (storage[i].name, ifr->ifr_name,
|
||||
sizeof storage[i].name);
|
||||
storage[i].addr = ifr->ifr_addr;
|
||||
|
||||
/* The SIOCGIFCONF call filled in only the name and address.
|
||||
Now we must also ask for the other information we need. */
|
||||
|
||||
if (ioctl (fd, SIOCGIFFLAGS, ifr) < 0)
|
||||
break;
|
||||
storage[i].ia.ifa_flags = ifr->ifr_flags;
|
||||
|
||||
ifr->ifr_addr = storage[i].addr;
|
||||
|
||||
if (ioctl (fd, SIOCGIFNETMASK, ifr) < 0)
|
||||
break;
|
||||
storage[i].netmask = ifr->ifr_netmask;
|
||||
|
||||
if (ifr->ifr_flags & IFF_BROADCAST)
|
||||
{
|
||||
ifr->ifr_addr = storage[i].addr;
|
||||
if (ioctl (fd, SIOCGIFBRDADDR, ifr) < 0)
|
||||
break;
|
||||
storage[i].broadaddr = ifr->ifr_broadaddr;
|
||||
}
|
||||
else if (ifr->ifr_flags & IFF_POINTOPOINT)
|
||||
{
|
||||
ifr->ifr_addr = storage[i].addr;
|
||||
if (ioctl (fd, SIOCGIFDSTADDR, ifr) < 0)
|
||||
break;
|
||||
storage[i].broadaddr = ifr->ifr_dstaddr;
|
||||
}
|
||||
else
|
||||
/* Just 'cause. */
|
||||
memset (&storage[i].broadaddr, 0, sizeof storage[i].broadaddr);
|
||||
|
||||
storage[i].ia.ifa_data = NULL; /* Nothing here for now. */
|
||||
|
||||
ifr = __if_nextreq (ifr);
|
||||
} while (++i < nifs);
|
||||
if (i < nifs) /* Broke out early on error. */
|
||||
{
|
||||
close (fd);
|
||||
free (storage);
|
||||
__if_freereq (ifreqs, nifs);
|
||||
return -1;
|
||||
}
|
||||
|
||||
storage[i - 1].ia.ifa_next = NULL;
|
||||
|
||||
*ifap = &storage[0].ia;
|
||||
|
||||
close (fd);
|
||||
__if_freereq (ifreqs, nifs);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
kde_freeifaddrs (struct kde_ifaddrs *ifa)
|
||||
{
|
||||
free (ifa);
|
||||
}
|
||||
|
||||
#else
|
||||
int kde_getifaddrs(struct kde_ifaddrs **) {
|
||||
return 1;
|
||||
}
|
||||
void kde_freeifaddrs(struct kde_ifaddrs *) {
|
||||
}
|
||||
struct { } kde_ifaddrs;
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
96
srvloc/getifaddrs.h
Normal file
@@ -0,0 +1,96 @@
|
||||
/* ifaddrs.h -- declarations for getting network interface addresses
|
||||
Copyright (C) 2002 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
The GNU C Library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
The GNU C Library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with the GNU C Library; if not, write to the Free
|
||||
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||
02111-1307 USA. */
|
||||
|
||||
/**
|
||||
* 02-12-26, tim@tjansen.de: added kde_ prefix, fallback-code,
|
||||
* removed glibs dependencies
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
||||
#ifdef HAVE_SYS_TYPES_H
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
|
||||
#include <sys/socket.h>
|
||||
#include <net/if.h>
|
||||
|
||||
#ifdef HAVE_GETIFADDRS
|
||||
#include <ifaddrs.h>
|
||||
|
||||
#define kde_getifaddrs(a) getifaddrs(a)
|
||||
#define kde_freeifaddrs(a) freeifaddrs(a)
|
||||
#define kde_ifaddrs ifaddrs
|
||||
|
||||
#else
|
||||
|
||||
#ifndef _GETIFADDRS_H
|
||||
#define _GETIFADDRS_H
|
||||
|
||||
|
||||
#include <sys/socket.h>
|
||||
|
||||
/* The `getifaddrs' function generates a linked list of these structures.
|
||||
Each element of the list describes one network interface. */
|
||||
struct kde_ifaddrs
|
||||
{
|
||||
struct kde_ifaddrs *ifa_next; /* Pointer to the next structure. */
|
||||
|
||||
char *ifa_name; /* Name of this network interface. */
|
||||
unsigned int ifa_flags; /* Flags as from SIOCGIFFLAGS ioctl. */
|
||||
|
||||
struct sockaddr *ifa_addr; /* Network address of this interface. */
|
||||
struct sockaddr *ifa_netmask; /* Netmask of this interface. */
|
||||
union
|
||||
{
|
||||
/* At most one of the following two is valid. If the IFF_BROADCAST
|
||||
bit is set in `ifa_flags', then `ifa_broadaddr' is valid. If the
|
||||
IFF_POINTOPOINT bit is set, then `ifa_dstaddr' is valid.
|
||||
It is never the case that both these bits are set at once. */
|
||||
struct sockaddr *ifu_broadaddr; /* Broadcast address of this interface. */
|
||||
struct sockaddr *ifu_dstaddr; /* Point-to-point destination address. */
|
||||
} ifa_ifu;
|
||||
/* These very same macros are defined by <net/if.h> for `struct ifaddr'.
|
||||
So if they are defined already, the existing definitions will be fine. */
|
||||
# ifndef ifa_broadaddr
|
||||
# define ifa_broadaddr ifa_ifu.ifu_broadaddr
|
||||
# endif
|
||||
# ifndef ifa_dstaddr
|
||||
# define ifa_dstaddr ifa_ifu.ifu_dstaddr
|
||||
# endif
|
||||
|
||||
void *ifa_data; /* Address-specific data (may be unused). */
|
||||
};
|
||||
|
||||
|
||||
/* Create a linked list of `struct kde_ifaddrs' structures, one for each
|
||||
network interface on the host machine. If successful, store the
|
||||
list in *IFAP and return 0. On errors, return -1 and set `errno'.
|
||||
|
||||
The storage returned in *IFAP is allocated dynamically and can
|
||||
only be properly freed by passing it to `freeifaddrs'. */
|
||||
extern int kde_getifaddrs (struct kde_ifaddrs **__ifap);
|
||||
|
||||
/* Reclaim the storage allocated by a previous `getifaddrs' call. */
|
||||
extern void kde_freeifaddrs (struct kde_ifaddrs *__ifa);
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -1,179 +0,0 @@
|
||||
/*
|
||||
* Represents an IP address.
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
* based on code from KInetSocketAddress:
|
||||
* Copyright (C) 2000,2001 Thiago Macieira <thiagom@mail.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
**/
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
||||
|
||||
#include <limits.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <kdebug.h>
|
||||
#include <klocale.h>
|
||||
#include "kinetaddr.h"
|
||||
#include <netdb.h>
|
||||
|
||||
#if defined(__osf__) && defined(AF_INET6)
|
||||
#undef AF_INET6
|
||||
#endif
|
||||
|
||||
#define V6_CAN_CONVERT_TO_V4(addr) (KDE_IN6_IS_ADDR_V4MAPPED(addr) || KDE_IN6_IS_ADDR_V4COMPAT(addr))
|
||||
|
||||
// This is how it is
|
||||
// 46 == strlen("1234:5678:9abc:def0:1234:5678:255.255.255.255")
|
||||
#ifndef INET6_ADDRSTRLEN
|
||||
#define INET6_ADDRSTRLEN 46
|
||||
#endif
|
||||
|
||||
class KInetAddressPrivate
|
||||
{
|
||||
public:
|
||||
int sockfamily;
|
||||
struct in_addr in;
|
||||
#ifdef AF_INET6
|
||||
struct in6_addr in6;
|
||||
#endif
|
||||
|
||||
KInetAddressPrivate() : sockfamily(AF_UNSPEC)
|
||||
{
|
||||
memset((void*)&in, 0, sizeof(in));
|
||||
#ifdef AF_INET6
|
||||
memset((void*)&in6, 0, sizeof(in6));
|
||||
#endif
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
KInetAddress::KInetAddress(const KInetAddress &other) :
|
||||
d(new KInetAddressPrivate)
|
||||
{
|
||||
d->sockfamily = other.d->sockfamily;
|
||||
memcpy(&d->in, &other.d->in, sizeof(d->in));
|
||||
#ifdef AF_INET6
|
||||
memcpy(&d->in6, &other.d->in6, sizeof(d->in6));
|
||||
#endif
|
||||
}
|
||||
|
||||
KInetAddress::KInetAddress(const struct in_addr& in) :
|
||||
d(new KInetAddressPrivate)
|
||||
{
|
||||
d->sockfamily = AF_INET;
|
||||
memcpy(&d->in, &in, sizeof(in));
|
||||
}
|
||||
|
||||
KInetAddress::KInetAddress(const struct in6_addr& in6) :
|
||||
d(new KInetAddressPrivate)
|
||||
{
|
||||
#ifdef AF_INET6
|
||||
d->sockfamily = AF_INET6;
|
||||
memcpy(&d->in6, &in6, sizeof(in6));
|
||||
#else
|
||||
d->sockfamily = AF_UNSPEC;
|
||||
#endif
|
||||
}
|
||||
|
||||
KInetAddress::KInetAddress(const QString &host) :
|
||||
d(new KInetAddressPrivate)
|
||||
{
|
||||
struct hostent *h = gethostbyname(host.latin1());
|
||||
if ((!h) || (!h->h_addr_list) || (!h->h_addr_list[0])) {
|
||||
d->sockfamily = AF_UNSPEC;
|
||||
return;
|
||||
}
|
||||
d->sockfamily = h->h_addrtype;
|
||||
#ifdef AF_INET6
|
||||
if (h->h_addrtype == AF_INET6)
|
||||
memcpy(&d->in6, h->h_addr_list[0], h->h_length);
|
||||
else
|
||||
memcpy(&d->in, h->h_addr_list[0], h->h_length);
|
||||
#else
|
||||
memcpy(&d->in, h->h_addr_list[0], h->h_length);
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
|
||||
KInetAddress::~KInetAddress()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
const struct in_addr *KInetAddress::addressV4() const {
|
||||
if (d->sockfamily != AF_INET)
|
||||
return 0;
|
||||
return &d->in;
|
||||
}
|
||||
|
||||
#ifdef AF_INET6
|
||||
const struct in6_addr *KInetAddress::addressV6() const {
|
||||
if (d->sockfamily != AF_INET6)
|
||||
return 0;
|
||||
return &d->in6;
|
||||
}
|
||||
#endif
|
||||
|
||||
QString KInetAddress::nodeName() const
|
||||
{
|
||||
char buf[INET6_ADDRSTRLEN+1]; // INET6_ADDRSTRLEN > INET_ADDRSTRLEN
|
||||
|
||||
#ifdef __osf__
|
||||
if (d->sockfamily == AF_INET) {
|
||||
char *p = inet_ntoa(d->in);
|
||||
strncpy(buf, p, sizeof(buf));
|
||||
}
|
||||
#else
|
||||
if (d->sockfamily == AF_INET)
|
||||
inet_ntop(d->sockfamily, (void*)&d->in, buf, sizeof(buf));
|
||||
#endif
|
||||
#ifdef AF_INET6
|
||||
else if (d->sockfamily == AF_INET6)
|
||||
inet_ntop(d->sockfamily, (void*)&d->in6, buf, sizeof(buf));
|
||||
#endif
|
||||
else {
|
||||
kdWarning() << "KInetAddress::nodeName() called on uninitialized class\n";
|
||||
return i18n("<empty>");
|
||||
}
|
||||
|
||||
return QString::fromLatin1(buf); // FIXME! What's the encoding?
|
||||
}
|
||||
|
||||
bool KInetAddress::areEqual(const KInetAddress &a1, const KInetAddress &a2)
|
||||
{
|
||||
if (a1.d->sockfamily != a2.d->sockfamily)
|
||||
return false;
|
||||
|
||||
if (a1.d->sockfamily == AF_INET) {
|
||||
return (memcmp(&a1.d->in.s_addr, &a2.d->in.s_addr,
|
||||
sizeof(a1.d->in.s_addr)) == 0);
|
||||
}
|
||||
#ifdef AF_INET6
|
||||
if (a1.d->sockfamily == AF_INET6) {
|
||||
return (memcmp(&a1.d->in6.s6_addr, &a2.d->in6.s6_addr,
|
||||
sizeof(a1.d->in6.s6_addr)) == 0);
|
||||
}
|
||||
#endif
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,155 +0,0 @@
|
||||
/*
|
||||
* Represents an IP address.
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
* based on code from KInetSocketAddress:
|
||||
* Copyright (C) 2000,2001 Thiago Macieira <thiagom@mail.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef KINETADDR_H
|
||||
#define KINETADDR_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <netinet/in.h>
|
||||
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#if defined(__FreeBSD__)
|
||||
#include <sys/socket.h>
|
||||
#endif
|
||||
|
||||
#include <qobject.h>
|
||||
#include <qcstring.h>
|
||||
#include <qstring.h>
|
||||
|
||||
|
||||
class KInetAddressPrivate;
|
||||
|
||||
|
||||
/**
|
||||
* An Inet (IPv4 or IPv6) address.
|
||||
*
|
||||
* This class represents an internet (IPv4 or IPv6) address. The difference
|
||||
* between KInetAddress and KInetSocketAddress is that the socket address
|
||||
* consists of the address and the port, KInetAddress peresents only the
|
||||
* address itself.
|
||||
*
|
||||
* @author Tim Jansen <tim@tjansen.de>
|
||||
* @short an Internet Address
|
||||
*/
|
||||
class KInetAddress {
|
||||
public:
|
||||
/**
|
||||
* Copy constructor
|
||||
*/
|
||||
KInetAddress(const KInetAddress&);
|
||||
|
||||
/**
|
||||
* Creates an IPv4 socket from in_addr
|
||||
* @param in a in_addr structure to copy from
|
||||
* @param len the socket address length
|
||||
*/
|
||||
KInetAddress(const struct in_addr& in);
|
||||
|
||||
/**
|
||||
* Creates an IPv6 socket from in6_addr
|
||||
* @param in6 a in_addr6 structure to copy from
|
||||
* @param len the socket address length
|
||||
*/
|
||||
KInetAddress(const struct in6_addr& in6);
|
||||
|
||||
/**
|
||||
* Creates a socket from text representation. Be careful with names
|
||||
* as they may require a name server lookup which can block for a
|
||||
* long time.
|
||||
*
|
||||
* @param addr a text representation of the address
|
||||
*/
|
||||
KInetAddress(const QString& addr);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~KInetAddress();
|
||||
|
||||
/**
|
||||
* Returns a text representation of the host address
|
||||
*/
|
||||
virtual QString nodeName() const;
|
||||
|
||||
bool isEqual(const KInetAddress* other) const
|
||||
{ return areEqual(*this, *other); }
|
||||
|
||||
bool operator==(const KInetAddress& other) const
|
||||
{ return areEqual(*this, other); }
|
||||
|
||||
static bool areEqual(const KInetAddress &a1, const KInetAddress &a2);
|
||||
|
||||
/**
|
||||
* Returns the in_addr structure. The pointer is valid as long as
|
||||
* the KInetAddress object lives.
|
||||
* This will be NULL if this is not a v4 address.
|
||||
* @see addressV6
|
||||
*/
|
||||
const struct in_addr* addressV4() const;
|
||||
|
||||
/**
|
||||
* Returns the in6_addr structure. The pointer is valid as long as
|
||||
* the KInetAddress object lives.
|
||||
* This will be NULL if this is not a v6 address.
|
||||
* @see addressV4
|
||||
*/
|
||||
const struct in6_addr* addressV6() const;
|
||||
|
||||
operator const struct in_addr*() const
|
||||
{ return addressV4(); }
|
||||
|
||||
operator const struct in6_addr*() const
|
||||
{ return addressV6(); }
|
||||
|
||||
/**
|
||||
* Returns an address that can be used for communication with
|
||||
* other computers on the internet.
|
||||
* Note that the returned address is not always a real
|
||||
* internet address, because the computer couble be unable to connect
|
||||
* to the internet or is behind a NAT gateway.
|
||||
* In the worst case you will get the address of the local loopback
|
||||
* interface.
|
||||
* The user is responsible for freeing the object.
|
||||
* @return a new KInetAddress object that contains the address
|
||||
*/
|
||||
static KInetAddress* getPrivateInetAddress();
|
||||
|
||||
/**
|
||||
* Returns the address of the interface that should be used
|
||||
* to announce local services.
|
||||
* Note that the returned address is not always a real internet address,
|
||||
* because the computer may be behind a NAT gateway, or
|
||||
* it is no connected to the internet. In the worst case you
|
||||
* will get the address of the local loopback interface.
|
||||
* The user is responsible for freeing the object.
|
||||
* @return a new KInetAddress object that contains the address
|
||||
*/
|
||||
static KInetAddress* getLocalAddress();
|
||||
|
||||
|
||||
private:
|
||||
KInetAddressPrivate* d;
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -1,195 +0,0 @@
|
||||
/*
|
||||
* Find network adapter's IP address
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
* based on code from KInetSocketAddress:
|
||||
* Copyright (C) 2000,2001 Thiago Macieira <thiagom@mail.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
**/
|
||||
|
||||
#include <config.h>
|
||||
#include <kdebug.h>
|
||||
#include "kinetaddr.h"
|
||||
|
||||
/*
|
||||
* This code is based on KPhone/libdissipate's SIPUtil class.
|
||||
* Copyright (c) 2000 Billy Biggs <bbiggs@div8.net>
|
||||
*
|
||||
* The code is far from being perfect, and gateway detection only works on
|
||||
* Linux. Later there should be a way to configure the addresses using
|
||||
* a KCM.
|
||||
*
|
||||
*/
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/utsname.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/time.h>
|
||||
/* WirLab 29.1.2002 */
|
||||
#include <sys/errno.h>
|
||||
/* WirLab 31.1.2002 */
|
||||
#include <net/if.h>
|
||||
#include <net/if_arp.h>
|
||||
#include <net/route.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
/*--*/
|
||||
#include <netdb.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#ifdef USE_SOLARIS
|
||||
#include <sys/sockio.h>
|
||||
#endif
|
||||
|
||||
|
||||
static char *local_address = NULL;
|
||||
static char *inet_address = NULL;
|
||||
|
||||
/* max number of network interfaces*/
|
||||
#define MAX_IF 8
|
||||
|
||||
/* Path to the route entry in proc filesystem */
|
||||
#define PROCROUTE "/proc/net/route"
|
||||
|
||||
#ifndef SIOCGIFCOUNT
|
||||
#define SIOCGIFCOUNT 0x8935
|
||||
#endif
|
||||
|
||||
char iface[16];
|
||||
|
||||
|
||||
/* This searches the proc routing entry for the interface the default gateway
|
||||
* is on, and returns the name of that interface.
|
||||
*/
|
||||
char *getdefaultdev()
|
||||
{
|
||||
FILE *fp = fopen( PROCROUTE, "r");
|
||||
char buff[4096], gate_addr[128], net_addr[128];
|
||||
char mask_addr[128];
|
||||
int irtt, window, mss, num, metric, iflags, refcnt, use;
|
||||
char i;
|
||||
if( !fp ) {
|
||||
return NULL;
|
||||
}
|
||||
i=0;
|
||||
// cruise through the list, and find the gateway interface
|
||||
while( fgets(buff, 1023, fp) ) {
|
||||
num = sscanf(buff, "%s %s %s %X %d %d %d %s %d %d %d\n",
|
||||
iface, net_addr, gate_addr, &iflags, &refcnt, &use, &metric,
|
||||
&mask_addr, &mss, &window, &irtt);
|
||||
i++;
|
||||
if( i == 1) continue;
|
||||
|
||||
if( iflags & RTF_GATEWAY )
|
||||
return iface;
|
||||
}
|
||||
fclose(fp);
|
||||
/* didn't find a default gateway */
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
static void findAddresses( void )
|
||||
{
|
||||
int sock, err, if_count, i, j = 0;
|
||||
struct ifconf netconf;
|
||||
char buffer[32*MAX_IF];
|
||||
|
||||
char if_name[10][21];
|
||||
char if_addr[10][21];
|
||||
char *default_ifName;
|
||||
|
||||
netconf.ifc_len = 32 * MAX_IF;
|
||||
netconf.ifc_buf = buffer;
|
||||
sock=socket( PF_INET, SOCK_DGRAM, 0 );
|
||||
err=ioctl( sock, SIOCGIFCONF, &netconf );
|
||||
if ( err < 0 )
|
||||
kdDebug() << "KInetAddress: Error in ioctl: "<<errno<<"." << endl;
|
||||
close( sock );
|
||||
|
||||
if_count = netconf.ifc_len / 32;
|
||||
for( i = 0; i < if_count; i++ ) {
|
||||
if( strcmp( netconf.ifc_req[i].ifr_name, "lo" ) != 0 ) {
|
||||
strncpy( if_name[j], netconf.ifc_req[i].ifr_name, 20 );
|
||||
strncpy( if_addr[j], inet_ntoa(((struct sockaddr_in*)(&netconf.ifc_req[i].ifr_addr))->sin_addr), 20 );
|
||||
j++;
|
||||
}
|
||||
}
|
||||
|
||||
if(j == 0) {
|
||||
local_address = "localhost";
|
||||
inet_address = "localhost";
|
||||
return;
|
||||
}
|
||||
if(j == 1) {
|
||||
local_address = strdup( if_addr[0] );
|
||||
inet_address = local_address;
|
||||
return;
|
||||
}
|
||||
|
||||
/* take default gateway interface for inet address if available */
|
||||
default_ifName = getdefaultdev();
|
||||
if( default_ifName) {
|
||||
for( i = 0; i < j; i++ ) {
|
||||
if( strcmp(if_name[i], default_ifName) == 0 ) {
|
||||
inet_address = strdup(if_addr[i]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* use first ppp connection for inet, first non-ppp for local */
|
||||
for( i = 0; i < j; i++ ) {
|
||||
if((strncmp(if_name[i], "ppp", 3) == 0) ||
|
||||
(strncmp(if_name[i], "ippp", 4) == 0)) {
|
||||
if (!inet_address) {
|
||||
inet_address = strdup(if_addr[i]);
|
||||
}
|
||||
}
|
||||
else if (!local_address) {
|
||||
local_address = strdup(if_addr[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/* if nothing did work, just take anything */
|
||||
if (!inet_address)
|
||||
inet_address = strdup(if_addr[0]);
|
||||
if (!local_address)
|
||||
local_address = strdup(if_addr[0]);
|
||||
}
|
||||
|
||||
|
||||
KInetAddress* KInetAddress::getPrivateInetAddress() {
|
||||
if ( inet_address == NULL ) {
|
||||
findAddresses();
|
||||
}
|
||||
return new KInetAddress(QString(inet_address));
|
||||
}
|
||||
|
||||
|
||||
KInetAddress* KInetAddress::getLocalAddress() {
|
||||
if ( local_address == NULL ) {
|
||||
findAddresses();
|
||||
}
|
||||
return new KInetAddress(QString(local_address));
|
||||
}
|
||||
|
||||
277
srvloc/kinetinterface.cpp
Normal file
@@ -0,0 +1,277 @@
|
||||
/*
|
||||
* Represents an Inet interface
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "kinetinterface.h"
|
||||
|
||||
#include "getifaddrs.h"
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <ksockaddr.h>
|
||||
|
||||
|
||||
class KInetInterfacePrivate {
|
||||
public:
|
||||
QString name;
|
||||
int flags;
|
||||
KInetSocketAddress *address;
|
||||
KInetSocketAddress *netmask;
|
||||
KInetSocketAddress *broadcast;
|
||||
KInetSocketAddress *destination;
|
||||
|
||||
KInetInterfacePrivate() :
|
||||
flags(0),
|
||||
address(0),
|
||||
netmask(0),
|
||||
broadcast(0),
|
||||
destination(0) {
|
||||
}
|
||||
|
||||
KInetInterfacePrivate(const QString _name,
|
||||
int _flags,
|
||||
KInetSocketAddress *_address,
|
||||
KInetSocketAddress *_netmask,
|
||||
KInetSocketAddress *_broadcast,
|
||||
KInetSocketAddress *_destination) :
|
||||
name(_name),
|
||||
flags(_flags),
|
||||
address(_address),
|
||||
netmask(_netmask),
|
||||
broadcast(_broadcast),
|
||||
destination(_destination) {
|
||||
}
|
||||
|
||||
~KInetInterfacePrivate() {
|
||||
if (address)
|
||||
delete address;
|
||||
if (netmask)
|
||||
delete netmask;
|
||||
if (broadcast)
|
||||
delete broadcast;
|
||||
if (destination)
|
||||
delete destination;
|
||||
}
|
||||
|
||||
KInetInterfacePrivate& operator =(const KInetInterfacePrivate& i) {
|
||||
name = i.name;
|
||||
flags = i.flags;
|
||||
if (i.address)
|
||||
address = new KInetSocketAddress(*i.address);
|
||||
else
|
||||
address = 0;
|
||||
if (i.netmask)
|
||||
netmask = new KInetSocketAddress(*i.netmask);
|
||||
else
|
||||
netmask = 0;
|
||||
if (i.broadcast)
|
||||
broadcast = new KInetSocketAddress(*i.broadcast);
|
||||
else
|
||||
broadcast = 0;
|
||||
if (i.destination)
|
||||
destination = new KInetSocketAddress(*i.destination);
|
||||
else
|
||||
destination = 0;
|
||||
return *this;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
KInetInterface::KInetInterface() :
|
||||
d(0) {
|
||||
}
|
||||
|
||||
KInetInterface::KInetInterface(const QString &_name,
|
||||
int _flags,
|
||||
KInetSocketAddress *_address,
|
||||
KInetSocketAddress *_netmask,
|
||||
KInetSocketAddress *_broadcast,
|
||||
KInetSocketAddress *_destination) {
|
||||
d = new KInetInterfacePrivate(_name, _flags,
|
||||
_address, _netmask,
|
||||
_broadcast, _destination);
|
||||
}
|
||||
|
||||
KInetInterface::KInetInterface(const KInetInterface &i) :
|
||||
d(0) {
|
||||
if (!i.d)
|
||||
return;
|
||||
|
||||
d = new KInetInterfacePrivate();
|
||||
*d = *i.d;
|
||||
}
|
||||
|
||||
KInetInterface::~KInetInterface() {
|
||||
if (d)
|
||||
delete d;
|
||||
}
|
||||
|
||||
KInetInterface& KInetInterface::operator =(const KInetInterface& i) {
|
||||
if (this == &i)
|
||||
return *this;
|
||||
|
||||
if (d)
|
||||
delete d;
|
||||
d = 0;
|
||||
if (!i.d)
|
||||
return *this;
|
||||
|
||||
d = new KInetInterfacePrivate();
|
||||
*d = *i.d;
|
||||
return *this;
|
||||
}
|
||||
|
||||
bool KInetInterface::isValid() const {
|
||||
return d == 0;
|
||||
}
|
||||
|
||||
QString KInetInterface::displayName() const {
|
||||
return d->name;
|
||||
}
|
||||
|
||||
QString KInetInterface::name() const {
|
||||
return d->name;
|
||||
}
|
||||
|
||||
int KInetInterface::flags() const {
|
||||
return d->flags;
|
||||
}
|
||||
|
||||
KInetSocketAddress *KInetInterface::address() const {
|
||||
return d->address;
|
||||
}
|
||||
|
||||
KInetSocketAddress *KInetInterface::netmask() const {
|
||||
return d->netmask;
|
||||
}
|
||||
|
||||
KInetSocketAddress *KInetInterface::broadcastAddress() const {
|
||||
return d->broadcast;
|
||||
}
|
||||
|
||||
KInetSocketAddress *KInetInterface::destinationAddress() const {
|
||||
return d->destination;
|
||||
}
|
||||
|
||||
KInetSocketAddress *KInetInterface::getPublicInetAddress() {
|
||||
QValueVector<KInetInterface> v = getAllInterfaces(true);
|
||||
|
||||
// TODO: first step: take the default route interface
|
||||
|
||||
// try to find point-2-point interface, because it may be
|
||||
// a dial-up connection. Take it.
|
||||
QValueVector<KInetInterface>::const_iterator it = v.begin();
|
||||
while (it != v.end()) {
|
||||
if (((*it).flags() & (PointToPoint | Up | Running)) &&
|
||||
(!((*it).flags() & Loopback)) &&
|
||||
(*it).address() &&
|
||||
((*it).address()->family() == AF_INET))
|
||||
return new KInetSocketAddress(*(*it).address());
|
||||
it++;
|
||||
}
|
||||
|
||||
// otherwise, just take the first non-loopback interface
|
||||
it = v.begin();
|
||||
while (it != v.end()) {
|
||||
if (((*it).flags() & (Up | Running)) &&
|
||||
(!((*it).flags() & Loopback)) &&
|
||||
(*it).address() &&
|
||||
((*it).address()->family() == AF_INET))
|
||||
return new KInetSocketAddress(*(*it).address());
|
||||
it++;
|
||||
}
|
||||
|
||||
// ok, giving up, try to take loopback
|
||||
it = v.begin();
|
||||
while (it != v.end()) {
|
||||
if (((*it).flags() & (Up | Running)) &&
|
||||
(*it).address())
|
||||
return new KInetSocketAddress(*(*it).address());
|
||||
it++;
|
||||
}
|
||||
|
||||
// not even loopback..
|
||||
return 0;
|
||||
}
|
||||
|
||||
namespace {
|
||||
KInetSocketAddress *createAddress(struct sockaddr *a) {
|
||||
if (!a)
|
||||
return 0;
|
||||
else if (a->sa_family == AF_INET)
|
||||
return new KInetSocketAddress((struct sockaddr_in*) a,
|
||||
sizeof(struct sockaddr_in));
|
||||
#ifdef AF_INET6
|
||||
else if (a->sa_family == AF_INET6)
|
||||
return new KInetSocketAddress((struct sockaddr_in6*) a,
|
||||
sizeof(struct sockaddr_in6));
|
||||
#endif
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
int convertFlags(int flags) {
|
||||
int r = 0;
|
||||
if (flags & IFF_UP)
|
||||
r |= KInetInterface::Up;
|
||||
if (flags & IFF_BROADCAST)
|
||||
r |= KInetInterface::Broadcast;
|
||||
if (flags & IFF_LOOPBACK)
|
||||
r |= KInetInterface::Loopback;
|
||||
if (flags & IFF_POINTOPOINT)
|
||||
r |= KInetInterface::PointToPoint;
|
||||
if (flags & IFF_RUNNING)
|
||||
r |= KInetInterface::Running;
|
||||
if (flags & IFF_MULTICAST)
|
||||
r |= KInetInterface::Multicast;
|
||||
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
QValueVector<KInetInterface> KInetInterface::getAllInterfaces(bool includeLoopback) {
|
||||
struct kde_ifaddrs *ads;
|
||||
struct kde_ifaddrs *a;
|
||||
QValueVector<KInetInterface> r;
|
||||
if (kde_getifaddrs(&ads))
|
||||
return r;
|
||||
|
||||
a = ads;
|
||||
while (a) {
|
||||
if ((a->ifa_flags & IFF_LOOPBACK) && !includeLoopback) {
|
||||
a = a->ifa_next;
|
||||
continue;
|
||||
}
|
||||
r.push_back(KInetInterface(QString::fromUtf8(a->ifa_name),
|
||||
convertFlags(a->ifa_flags),
|
||||
createAddress(a->ifa_addr),
|
||||
createAddress(a->ifa_netmask),
|
||||
(a->ifa_flags & IFF_BROADCAST) ?
|
||||
createAddress(a->ifa_broadaddr) : 0,
|
||||
(a->ifa_flags & IFF_POINTOPOINT) ?
|
||||
createAddress(a->ifa_dstaddr) : 0));
|
||||
a = a->ifa_next;
|
||||
}
|
||||
|
||||
kde_freeifaddrs(ads);
|
||||
return r;
|
||||
}
|
||||
|
||||
186
srvloc/kinetinterface.h
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
* Represents an Inet interface
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef KINETINTERFACE_H
|
||||
#define KINETINTERFACE_H
|
||||
|
||||
#include <qvaluevector.h>
|
||||
#include <qcstring.h>
|
||||
#include <qstring.h>
|
||||
|
||||
|
||||
class KInetInterfacePrivate;
|
||||
class KInetSocketAddress;
|
||||
|
||||
/**
|
||||
* An Internet (IPv4 or IPv6) network interface.
|
||||
*
|
||||
* Represents a snapshot of the network interface's state. It is
|
||||
* not possible to modify the interface using this class, only
|
||||
* to read it. Note that the interfaces can change it any time
|
||||
* (for example when the internet connection goes up or down),
|
||||
* so when you use it in a server you may want to use it together
|
||||
* with a @ref KInetInterfaceWatcher.
|
||||
* Use @ref getAllInterfaces() to get all interfaces of a system.
|
||||
*
|
||||
* @author Tim Jansen <tim@tjansen.de>
|
||||
* @short Represents an IPv4 or IPv6 Network Interface
|
||||
* @see KInetInterfaceWatcher
|
||||
* @since 3.2
|
||||
*/
|
||||
class KInetInterface {
|
||||
private:
|
||||
KInetInterface(const QString &name,
|
||||
int flags,
|
||||
KInetSocketAddress *address,
|
||||
KInetSocketAddress *netmask,
|
||||
KInetSocketAddress *broadcast,
|
||||
KInetSocketAddress *destination);
|
||||
|
||||
public:
|
||||
/**
|
||||
* Default constructor. Creates an uninitialized KInetInterface.
|
||||
* @see isValid()
|
||||
*/
|
||||
KInetInterface();
|
||||
|
||||
/**
|
||||
* Copy constructor. Makes a deep copy.
|
||||
* @param i the KInetInterface to copy
|
||||
*/
|
||||
KInetInterface(const KInetInterface &i);
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~KInetInterface();
|
||||
|
||||
/**
|
||||
* Assignment, makes a deep copy of @p i.
|
||||
* @param i the KInetInterface to copy
|
||||
* @return this KInetInterface
|
||||
*/
|
||||
KInetInterface& operator =(const KInetInterface& i);
|
||||
|
||||
/**
|
||||
* Checks whether the object is valid. Only interfaces that
|
||||
* have been created using the default constructor are invalid.
|
||||
* @return true if valid, false if invalid
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
* Returns a user-readable name of the interface, if available.
|
||||
* Otherwise it returns the same value as @ref name().
|
||||
* @return the display name of the interface
|
||||
* @see name()
|
||||
*/
|
||||
QString displayName() const;
|
||||
|
||||
/**
|
||||
* Returns the name of the interface, e.g. 'eth0'.
|
||||
* @return the name of the interface
|
||||
* @see displayName()
|
||||
*/
|
||||
QString name() const;
|
||||
|
||||
/**
|
||||
* Flags describing the interface. These flags
|
||||
* can be ORed.
|
||||
*/
|
||||
enum Flags {
|
||||
Up = 1, ///< Interface is up.
|
||||
Broadcast = 2, ///< Broadcast address (@ref broadcastAddress()) is valid..
|
||||
Loopback = 8, ///< Interface is a loopback interface.
|
||||
PointToPoint = 16, ///< Interface is a point-to-point interface.
|
||||
Running = 128, ///< Interface is running.
|
||||
Multicast = 65536 ///< Interface is multicast-capable.
|
||||
};
|
||||
|
||||
/**
|
||||
* A set of ORed flags describing the interface. See
|
||||
* @ref Flags for description of the flags.
|
||||
* @return the ORed @ref Flags of the interface
|
||||
*/
|
||||
int flags() const;
|
||||
|
||||
/**
|
||||
* Returns the address of the interface.
|
||||
* The returned object is valid as long as this object
|
||||
* exists.
|
||||
* @return the address of this interface, can be 0 if the interface
|
||||
* does not have an address
|
||||
*/
|
||||
KInetSocketAddress *address() const;
|
||||
|
||||
/**
|
||||
* Returns the netmask of the interface.
|
||||
* The returned object is valid as long as this object
|
||||
* exists.
|
||||
* @return the netmask of this interface, can be 0 if the interface
|
||||
* does not have an address
|
||||
*/
|
||||
KInetSocketAddress *netmask() const;
|
||||
|
||||
/**
|
||||
* Returns the broadcast address of the interface.
|
||||
* The returned object is valid as long as this object
|
||||
* exists.
|
||||
* @return the broadcast address of this interface. Can be 0 if
|
||||
* the interface is a peer-to-peer interface (like PPP)
|
||||
*/
|
||||
KInetSocketAddress *broadcastAddress() const;
|
||||
|
||||
/**
|
||||
* Returns the destination / peer address of the interface.
|
||||
* It is used for peer-to-peer interfaces like PPP.
|
||||
* The returned object is valid as long as this object
|
||||
* exists.
|
||||
* @return the destination address of this interface. Can be 0
|
||||
* if the interface is not a peer-to-peer interface
|
||||
*/
|
||||
KInetSocketAddress *destinationAddress() const;
|
||||
|
||||
/**
|
||||
* Tries to guess the public internet address of this computer.
|
||||
* This is not always successful, especially when the computer
|
||||
* is behind a firewall or NAT gateway. In the worst case, it
|
||||
* returns localhost.
|
||||
* @return a KInetAddress object that contains the best match.
|
||||
* The caller takes ownership of the object and is
|
||||
* responsible for freeing it
|
||||
*/
|
||||
static KInetSocketAddress *getPublicInetAddress();
|
||||
|
||||
/**
|
||||
* Returns all active interfaces of the system.
|
||||
*
|
||||
* @param includeLoopback if true, include the loopback interface's
|
||||
* name
|
||||
* @return the list of IP addresses
|
||||
*/
|
||||
static QValueVector<KInetInterface> getAllInterfaces(bool includeLoopback = false);
|
||||
|
||||
private:
|
||||
KInetInterfacePrivate* d;
|
||||
};
|
||||
|
||||
#endif
|
||||
59
srvloc/kinetinterfacewatcher.cpp
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Watches Inet interfaces
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include "kinetinterfacewatcher.h"
|
||||
#include "kinetinterfacewatcher.moc"
|
||||
|
||||
class KInetInterfaceWatcherPrivate {
|
||||
public:
|
||||
QString interface;
|
||||
int minInterval; // not used yet, but my be when a daemon watches
|
||||
|
||||
|
||||
KInetInterfaceWatcherPrivate(const QString &iface,
|
||||
int minIntv) :
|
||||
interface(iface),
|
||||
minInterval(minIntv) {
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
* or all network interfaces.
|
||||
* @param interface the name of the interface to watch (e.g.'eth0')
|
||||
* or QString::null to watch all interfaces
|
||||
* @param minInterval the minimum interval between two checks in
|
||||
* seconds. Be careful not to check too often, to
|
||||
* avoid unneccessary wasting of CPU time
|
||||
*/
|
||||
KInetInterfaceWatcher::KInetInterfaceWatcher(const QString &interface,
|
||||
int minInterval) {
|
||||
d = new KInetInterfaceWatcherPrivate(interface, minInterval);
|
||||
}
|
||||
|
||||
QString KInetInterfaceWatcher::interface() const {
|
||||
return d->interface;
|
||||
}
|
||||
|
||||
KInetInterfaceWatcher::~KInetInterfaceWatcher() {
|
||||
delete d;
|
||||
}
|
||||
|
||||
122
srvloc/kinetinterfacewatcher.h
Normal file
@@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Watches Inet interfaces
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef KINETINTERFACEWATCHER_H
|
||||
#define KINETINTERFACEWATCHER_H
|
||||
|
||||
#include <kinetinterface.h>
|
||||
#include <qobject.h>
|
||||
#include <qvaluevector.h>
|
||||
#include <qcstring.h>
|
||||
#include <qstring.h>
|
||||
|
||||
|
||||
class KInetInterfaceWatcherPrivate;
|
||||
|
||||
|
||||
/**
|
||||
* KInetInterfaceWatcher can watch the state of one or all
|
||||
* of the system's network interfaces.
|
||||
* The watcher will emit the signal @ref changed() when an
|
||||
* interface changed or a interface has been added or removed.
|
||||
*
|
||||
* @author Tim Jansen <tim@tjansen.de>
|
||||
* @short Watches the state of the network interfaces
|
||||
* @see KInetInterface
|
||||
* @since 3.2
|
||||
*/
|
||||
class KInetInterfaceWatcher : public QObject {
|
||||
Q_OBJECT
|
||||
public:
|
||||
/**
|
||||
* Creates a new KInetInterfaceWatcher. Before you can use it,
|
||||
* you must @ref start() it.
|
||||
*
|
||||
* @param interface the name of the interface to watch (e.g.'eth0')
|
||||
* or QString::null to watch all interfaces
|
||||
* @param minInterval the minimum interval between two checks in
|
||||
* seconds. Be careful not to check too often, to
|
||||
* avoid unneccessary wasting of CPU time
|
||||
*/
|
||||
KInetInterfaceWatcher(const QString &interface = QString::null,
|
||||
int minInterval = 60);
|
||||
|
||||
/**
|
||||
* Returns the name of the interface that is being watched.
|
||||
* @return the name of the interface, or QString::null if all
|
||||
* interfaces are watched
|
||||
*/
|
||||
QString interface() const;
|
||||
|
||||
/**
|
||||
* Starts the KInetInterfaceWatcher. It watches either one
|
||||
* or all network interfaces. When one of them changed.
|
||||
* it emits a @ref changed() signal.
|
||||
* @param interface the name of the interface to watch (e.g.'eth0')
|
||||
* or QString::null to watch all interfaces
|
||||
* @param minInterval the minimum interval between two checks in
|
||||
* seconds. Be careful not to check too often, to
|
||||
* avoid unneccessary wasting of CPU time
|
||||
* @see changed()
|
||||
* @see stop()
|
||||
*/
|
||||
void start(const QString &interface = QString::null,
|
||||
int minInterval = 60);
|
||||
|
||||
/**
|
||||
* Stops watching the interfaces.
|
||||
* @see start()
|
||||
*/
|
||||
void stop();
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~KInetInterfaceWatcher();
|
||||
|
||||
signals:
|
||||
/**
|
||||
* Emitted when one or more watched interfaces have changed. The
|
||||
* @p interfaceName is the name of the interface being watched, not
|
||||
* the interface that has changed (because more than one interface
|
||||
* may have changed).
|
||||
* A change occurred, when
|
||||
* @li a new interface has been added (when watching a single interface,
|
||||
* only when an interface of that name has been added)
|
||||
* @li an interface has been removed (when watching a single interface,
|
||||
* only when this interface has been removed)
|
||||
* @li the address or netmask of the interface changed
|
||||
*
|
||||
* No change will be emitted when the broadcast address or destination
|
||||
* address has changed.
|
||||
*
|
||||
* @param interfaceName the name of the interface that is watched,
|
||||
* by the emitter, or QString::null if all
|
||||
* interfaces are being watched
|
||||
* @see start()
|
||||
*/
|
||||
void changed(QString interfaceName);
|
||||
|
||||
private:
|
||||
KInetInterfaceWatcherPrivate* d;
|
||||
};
|
||||
|
||||
#endif
|
||||
106
srvloc/kuser.cpp
@@ -1,106 +0,0 @@
|
||||
/*
|
||||
* KUser - represent a user/account
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#include <kuser.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
class KUserPrivate
|
||||
{
|
||||
public:
|
||||
bool valid;
|
||||
long uid;
|
||||
QString loginName, fullName;
|
||||
|
||||
KUserPrivate() {
|
||||
valid = false;
|
||||
}
|
||||
|
||||
KUserPrivate(long _uid,
|
||||
const QString &_loginname,
|
||||
const QString &_fullname) {
|
||||
valid = true;
|
||||
uid = _uid;
|
||||
loginName = _loginname;
|
||||
fullName = _fullname;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
KUser::KUser() {
|
||||
fillPasswd(getpwuid(getuid()));
|
||||
}
|
||||
|
||||
KUser::KUser(long uid) {
|
||||
fillPasswd(getpwuid(uid));
|
||||
}
|
||||
|
||||
KUser::KUser(const QString& name) {
|
||||
fillPasswd(getpwnam(name.latin1()));
|
||||
}
|
||||
|
||||
void KUser::fillPasswd(struct passwd *p) {
|
||||
if (p) {
|
||||
QString fn(p->pw_gecos);
|
||||
int pos = fn.find(',');
|
||||
if (pos >= 0)
|
||||
fn = fn.left(pos);
|
||||
|
||||
d = new KUserPrivate(p->pw_uid,
|
||||
QString(p->pw_name),
|
||||
fn.stripWhiteSpace());
|
||||
}
|
||||
else
|
||||
d = new KUserPrivate();
|
||||
}
|
||||
|
||||
bool KUser::isValid() const {
|
||||
return d->valid;
|
||||
}
|
||||
|
||||
long KUser::uid() const {
|
||||
if (d->valid)
|
||||
return d->uid;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
|
||||
QString KUser::loginName() const {
|
||||
if (d->valid)
|
||||
return d->loginName;
|
||||
else
|
||||
return QString::null;
|
||||
}
|
||||
|
||||
QString KUser::fullName() const {
|
||||
if (d->valid)
|
||||
return d->fullName;
|
||||
else
|
||||
return QString::null;
|
||||
}
|
||||
|
||||
KUser::~KUser() {
|
||||
delete d;
|
||||
}
|
||||
100
srvloc/kuser.h
@@ -1,100 +0,0 @@
|
||||
/*
|
||||
* KUser - represent a user/account
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
#ifndef KUSER_H
|
||||
#define KUSER_H
|
||||
|
||||
#include <qstring.h>
|
||||
|
||||
class KUserPrivate;
|
||||
struct passwd;
|
||||
|
||||
/**
|
||||
* An user or account name.
|
||||
*
|
||||
* This class represents a user on your system. You can
|
||||
* between KInetAddress and KInetSocketAddress is that the socket address
|
||||
* consists of the address and the port, KInetAddress peresents only the
|
||||
* address itself.
|
||||
*
|
||||
* @author Tim Jansen <tim@tjansen.de>
|
||||
* @short an Internet Address
|
||||
*/
|
||||
class KUser {
|
||||
|
||||
public:
|
||||
/**
|
||||
* Creates an object that contains information about the current user.
|
||||
* (As returned by getuid(2)).
|
||||
*/
|
||||
KUser();
|
||||
|
||||
/**
|
||||
* Creates an object for the user with the given user id.
|
||||
* If the user does not exist isValid() will return false.
|
||||
* @param uid the user id
|
||||
*/
|
||||
KUser(long uid);
|
||||
|
||||
/**
|
||||
* Creates an object that contains information about the user with the given
|
||||
* name. If the user does not exist isValid() will return false.
|
||||
*
|
||||
* @param name the name of the user
|
||||
*/
|
||||
KUser(const QString& name);
|
||||
|
||||
/**
|
||||
* Returns true if the user is valid. A KUser object can be invalid if
|
||||
* you created it with an non-existing uid or name.
|
||||
* @return true if the user is valid
|
||||
*/
|
||||
bool isValid() const;
|
||||
|
||||
/**
|
||||
* Returns the user id of the user.
|
||||
* @return the id of the user or -1 if user is invalid
|
||||
*/
|
||||
long uid() const;
|
||||
|
||||
/**
|
||||
* The login name of the user.
|
||||
* @the login name of the user or QString::null if user is invalid
|
||||
*/
|
||||
QString loginName() const;
|
||||
|
||||
/**
|
||||
* The full name of the user.
|
||||
* @the full name of the user or QString::null if user is invalid
|
||||
*/
|
||||
QString fullName() const;
|
||||
|
||||
/**
|
||||
* Destructor
|
||||
*/
|
||||
virtual ~KUser();
|
||||
|
||||
private:
|
||||
KUserPrivate* d;
|
||||
void fillPasswd(struct passwd* p);
|
||||
};
|
||||
|
||||
#endif
|
||||
245
srvloc/uuid.cpp
Normal file
@@ -0,0 +1,245 @@
|
||||
/*
|
||||
* libuuid - library for generating UUIDs
|
||||
*
|
||||
* Copyright (C) 1996, 1997, 1998, 1999 Theodore Ts'o.
|
||||
* Copyright (C) 2002 Tim Jansen
|
||||
*
|
||||
* %Begin-Header%
|
||||
* This file may be redistributed under the terms of the GNU
|
||||
* Library General Public License.
|
||||
* %End-Header%
|
||||
*
|
||||
* 2002-12-15, tim@tjansen.de:
|
||||
* merged all *.c files,
|
||||
* replaced all function that are not needed to generate a time uuid,
|
||||
* added createUUID()
|
||||
*/
|
||||
|
||||
#include "uuid.h"
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#include <unistd.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <time.h>
|
||||
|
||||
#ifndef _SVID_SOURCE
|
||||
#define _SVID_SOURCE
|
||||
#endif
|
||||
|
||||
#include <fcntl.h>
|
||||
#include <errno.h>
|
||||
#ifdef HAVE_SRANDOM
|
||||
#define srand(x) srandom(x)
|
||||
#define rand() random()
|
||||
#endif
|
||||
|
||||
typedef unsigned char uuid_t[16];
|
||||
typedef unsigned char __u8;
|
||||
typedef unsigned short __u16;
|
||||
typedef unsigned int __u32;
|
||||
|
||||
|
||||
struct uuid {
|
||||
__u32 time_low;
|
||||
__u16 time_mid;
|
||||
__u16 time_hi_and_version;
|
||||
__u16 clock_seq;
|
||||
__u8 node[6];
|
||||
};
|
||||
|
||||
void uuid_unpack(const uuid_t in, struct uuid *uu)
|
||||
{
|
||||
const __u8 *ptr = in;
|
||||
__u32 tmp;
|
||||
|
||||
tmp = *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
uu->time_low = tmp;
|
||||
|
||||
tmp = *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
uu->time_mid = tmp;
|
||||
|
||||
tmp = *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
uu->time_hi_and_version = tmp;
|
||||
|
||||
tmp = *ptr++;
|
||||
tmp = (tmp << 8) | *ptr++;
|
||||
uu->clock_seq = tmp;
|
||||
|
||||
memcpy(uu->node, ptr, 6);
|
||||
}
|
||||
|
||||
static int get_random_fd(void)
|
||||
{
|
||||
struct timeval tv;
|
||||
static int fd = -2;
|
||||
int i;
|
||||
|
||||
if (fd == -2) {
|
||||
gettimeofday(&tv, 0);
|
||||
fd = open("/dev/urandom", O_RDONLY);
|
||||
if (fd == -1)
|
||||
fd = open("/dev/random", O_RDONLY | O_NONBLOCK);
|
||||
srand((getpid() << 16) ^ getuid() ^ tv.tv_sec ^ tv.tv_usec);
|
||||
}
|
||||
/* Crank the random number generator a few times */
|
||||
gettimeofday(&tv, 0);
|
||||
for (i = (tv.tv_sec ^ tv.tv_usec) & 0x1F; i > 0; i--)
|
||||
rand();
|
||||
return fd;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Generate a series of random bytes. Use /dev/urandom if possible,
|
||||
* and if not, use srandom/random.
|
||||
*/
|
||||
static void get_random_bytes(void *buf, int nbytes)
|
||||
{
|
||||
int i, fd = get_random_fd();
|
||||
int lose_counter = 0;
|
||||
char *cp = (char *) buf;
|
||||
|
||||
if (fd >= 0) {
|
||||
while (nbytes > 0) {
|
||||
i = read(fd, cp, nbytes);
|
||||
if (i <= 0) {
|
||||
if (lose_counter++ > 16)
|
||||
break;
|
||||
continue;
|
||||
}
|
||||
nbytes -= i;
|
||||
cp += i;
|
||||
lose_counter = 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* XXX put something better here if no /dev/random! */
|
||||
for (i = 0; i < nbytes; i++)
|
||||
*cp++ = rand() & 0xFF;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* Assume that the gettimeofday() has microsecond granularity */
|
||||
#define MAX_ADJUSTMENT 10
|
||||
|
||||
static int get_clock(__u32 *clock_high, __u32 *clock_low, __u16 *ret_clock_seq)
|
||||
{
|
||||
static int adjustment = 0;
|
||||
static struct timeval last = {0, 0};
|
||||
static __u16 clock_seq;
|
||||
struct timeval tv;
|
||||
unsigned long long clock_reg;
|
||||
|
||||
try_again:
|
||||
gettimeofday(&tv, 0);
|
||||
if ((last.tv_sec == 0) && (last.tv_usec == 0)) {
|
||||
get_random_bytes(&clock_seq, sizeof(clock_seq));
|
||||
clock_seq &= 0x1FFF;
|
||||
last = tv;
|
||||
last.tv_sec--;
|
||||
}
|
||||
if ((tv.tv_sec < last.tv_sec) ||
|
||||
((tv.tv_sec == last.tv_sec) &&
|
||||
(tv.tv_usec < last.tv_usec))) {
|
||||
clock_seq = (clock_seq+1) & 0x1FFF;
|
||||
adjustment = 0;
|
||||
last = tv;
|
||||
} else if ((tv.tv_sec == last.tv_sec) &&
|
||||
(tv.tv_usec == last.tv_usec)) {
|
||||
if (adjustment >= MAX_ADJUSTMENT)
|
||||
goto try_again;
|
||||
adjustment++;
|
||||
} else {
|
||||
adjustment = 0;
|
||||
last = tv;
|
||||
}
|
||||
|
||||
clock_reg = tv.tv_usec*10 + adjustment;
|
||||
clock_reg += ((unsigned long long) tv.tv_sec)*10000000;
|
||||
clock_reg += (((unsigned long long) 0x01B21DD2) << 32) + 0x13814000;
|
||||
|
||||
*clock_high = clock_reg >> 32;
|
||||
*clock_low = clock_reg;
|
||||
*ret_clock_seq = clock_seq;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void uuid_pack(const struct uuid *uu, uuid_t ptr)
|
||||
{
|
||||
__u32 tmp;
|
||||
unsigned char *out = ptr;
|
||||
|
||||
tmp = uu->time_low;
|
||||
out[3] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[2] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[1] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[0] = (unsigned char) tmp;
|
||||
|
||||
tmp = uu->time_mid;
|
||||
out[5] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[4] = (unsigned char) tmp;
|
||||
|
||||
tmp = uu->time_hi_and_version;
|
||||
out[7] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[6] = (unsigned char) tmp;
|
||||
|
||||
tmp = uu->clock_seq;
|
||||
out[9] = (unsigned char) tmp;
|
||||
tmp >>= 8;
|
||||
out[8] = (unsigned char) tmp;
|
||||
|
||||
memcpy(out+10, uu->node, 6);
|
||||
}
|
||||
|
||||
static void uuid_generate_time(uuid_t out)
|
||||
{
|
||||
static unsigned char node_id[6];
|
||||
struct uuid uu;
|
||||
__u32 clock_mid;
|
||||
|
||||
get_random_bytes(node_id, 6);
|
||||
get_clock(&clock_mid, &uu.time_low, &uu.clock_seq);
|
||||
uu.clock_seq |= 0x8000;
|
||||
uu.time_mid = (__u16) clock_mid;
|
||||
uu.time_hi_and_version = (clock_mid >> 16) | 0x1000;
|
||||
memcpy(uu.node, node_id, 6);
|
||||
uuid_pack(&uu, out);
|
||||
}
|
||||
|
||||
static void uuid_unparse(const uuid_t uu, char *out)
|
||||
{
|
||||
struct uuid uuid;
|
||||
|
||||
uuid_unpack(uu, &uuid);
|
||||
sprintf(out,
|
||||
"%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
|
||||
uuid.time_low, uuid.time_mid, uuid.time_hi_and_version,
|
||||
uuid.clock_seq >> 8, uuid.clock_seq & 0xFF,
|
||||
uuid.node[0], uuid.node[1], uuid.node[2],
|
||||
uuid.node[3], uuid.node[4], uuid.node[5]);
|
||||
}
|
||||
|
||||
QString createUUID() {
|
||||
char s[37];
|
||||
uuid_t uu;
|
||||
uuid_generate_time(uu);
|
||||
uuid_unparse(uu, s);
|
||||
return QString(s);
|
||||
}
|
||||
|
||||
29
srvloc/uuid.h
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Micro UUID library, based on libuuid
|
||||
* Copyright (C) 1996, 1997, 1998, 1999 Theodore Ts'o.
|
||||
* Copyright (C) 2002 Tim Jansen <tim@tjansen.de>
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Library General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2 of the License, or (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Library General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Library General Public License
|
||||
* along with this library; see the file COPYING.LIB. If not, write to
|
||||
* the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
||||
* Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef UUID_H
|
||||
#define UUID_H
|
||||
|
||||
#include <qstring.h>
|
||||
|
||||
QString createUUID();
|
||||
|
||||
#endif /* UUID_H */
|
||||