[Gambas-user] gb.desktop.x11 LargeDesktop support

Bruce Steers bsteers4 at gmail.com
Tue Oct 25 23:38:17 CEST 2022


So my recent discovery was this...

using gb.desktop.x11 there are Desktop/Workspace switching features.
I found this info... @
https://specifications.freedesktop.org/wm-spec/1.3/ar01s02.html
Large Desktops

The window manager may offer to arrange the managed windows on a desktop
that is larger than the root window. The screen functions as a viewport on
this large desktop. Different policies regarding the positioning of the
viewport on the desktop can be implemented: The window manager may only
allow the viewport position to change in increments of the screen size
(paging) or it may allow arbitrary positions (scrolling).

To fulfill the ICCCM principle that clients should behave the same
regardless whether a window manager is running or not, window managers
which implement large desktops must interpret all client-provided
geometries with respect to the current viewport.
Implementation note

There are two options for implementing a large desktop: The first is to
keep the managed windows (or, if reparenting, their frames) as children of
the root window. Moving the viewport is achieved by moving all managed
windows in the opposite direction.

The second alternative is to reparent all managed windows to a dedicated
large window (somewhat inappropriately called a 'virtual root'). Moving the
viewport is then achieved by moving the virtual root in the opposite
direction.

Both alternatives are completely ICCCM compliant, although the second one
may be somewhat problematic for clients trying to figure out the window
manager decorations around their toplevel windows and for clients trying to
draw background images on the root window.

So from that we see there are 2 ways of implementing the desktops, one
involves multiple viewports and one is one large screen.

It seems gb.desktop.x11 is coded to handle the multiple desktops method but
not the single big screen type :(

I'm almost there with implementing this (see attached project)

the project contains a folder called X11LargeDesktop containing files that
add the following to gb.desktop.x11

X11.DesktopCount and X11.CurrentDesktop now works for large desktops.

DesktopWindow.Desktop now also works for large desktops.

X11.IsLargeDesktop True if large desktop false if multiple viewports.

X11.ViewPorts returns a list of the viewport positions if using large
desktop taking Orientation into account. Still todo: handle start corners,
currently assumes TopLeft.

X11.Supported As String[], returns a list of the supported wm commands
(from hint _NET_SUPPORTED)

X11.GetDesktopNames(DefaultName as String="Workspace") , get's the desktop
names or makes them up if not found.


>From what i have read the hint _NET_DESKTOP_LAYOUT is the key, a single
large desktop will have this set but multiple desktops will not so i have
used that as the check criteria. I also seems my MATE is the only desktop
that uses the large screen method.

Also i'm handling using multiple rows/columns as defined at
https://specifications.freedesktop.org/wm-spec/1.3/ar01s03.html but I
cannot test it as my desktop does not do it.

(have not handled start corners yet)


tested on LinuxMint, desktops  MATE/Plasma/Cinnamon/Gnome

other than my Mint/MATE the class uses the original X11 routines that we
know works for multiple viewport desktops.

Dunno if you want to rip this code Ben (or laugh at my awful implementation
and do it properly yourself ;) lol )  gb.desktop.x11 is lacking this "other
method" so here's a little work on the matter :)

Wishing well

BruceS
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20221025/65e8f179/attachment-0001.htm>
-------------- next part --------------
<salt FCKGM-0001-EABB-DCE6-541E>
H4sIAAAAAAAAA+w6CzhU+dvHrTStUtpt0sVJMaYGM+PeYoxLjMXUmBRyGYwxYYa5uIWh1CaVYita
RauyKkmyqS1sN0Rmu6CnTSpEt5VLMbnMd87MCKXt/+2/bZ/v+Xp7cn7e33u/nd85hxONw6Db0rnB
PHbYajYnmBtG86frA58UsBCYGBnBV5yJEXbsdQQAnKEB3hhrZICH1ljoFyM8ABp9WjMmBj6XR+OA
IODHZvG5f0H3sf3/o+A0Yf71Apgcuj+PzYn+FDrgBBsbG344/4Y4Wf6xUN5xUP6NDaByAbGfQvnH
4P95/j1luQftWDxOtBeC5M9mWejp6zGhq14Yi4H4tw38Av8oTNz/8MoVXnH1/ENo3P+y7j/S/yY4
47f9jzfCwv1vYmhs8qX/PwegQHtaqB+NC0ryDAYyQ+gIhA2HTuPRQVcejcf0RyCkV3AFhx1G5/Ci
QQqdFgDasPksHkjkgiQWj86gc0apmBEw82LmuxSgBaiLQ7xH50/ksUNhMhd6JCQ1JAS68TDZrPfV
EiF8BP0vVb5HItU5oQOu/hw6ncWFid1oHCaNxfP0AldxITFBsq2J+cgcJp0Fb7BZYxVJOJljNj8U
thB+qFTreE7ZxsRcFHbkBCww9gO+QTXNs2FzWBDte2xjNhEIFOjjYkf1sbVz/Y5KXuHjRHQnr6Ji
QPaoHxjQX2oaBuRACjEg3DA8Jovh4y9VYEOk2JJciE6ehl76BngECpIJgosC6IFMFl0qfbWzD5lC
snOhEqkksouPA5niAWI/SuZmR6GCuA/Ig4x1sltOBWGYWBREQSHZO0hIcBNSWJOpVLKzlAj/FxRS
RQajFcn3C4Eurnw/0J7Oc6JFs/k8HTQCBFEgFoPF4DBYBPSLLTMUZI6JPlRdFuAaHE4P4lnNZAWw
I0dypgNjKWy2DI0BNSfIiSYaEirNOSQH6iOQFAjJpwbRWZCycZUH7TM9sV4S9Ei9wSicFCUTwfTE
S38fWyww2gBG24VAtQJd4SUrgBkIe/S2MSAyT68RH2lUNo8W8q6jkJOyu4orM4YuiY4kIO9WsoWM
H7IX1Jf1pN5qZgAvaIQD8mBiDtwYDgc6kxHEg01azuaA/u/zYEEqWyZLF4oeXBQSyvftkVJK8COU
Y1zXIwYE6HhK2ZaMsxcjU7tkvE1eaIkIF3oUDyG7IKCITlRMPkwWEy6kEZ0j40xaNjZ8DgfKsCyq
b2mkU1ZKItuToGApb6tTplKmy47FDwWd2RF0Hyd6IA8jXVJgY2XrVWGyhS07kvXexIZNlWki8nRW
sLnjco8eO6Al9QNn0X88Fg69Hc0/6N0GIbHGTF/YP7jG4dKwAMPYXHhBZAVIkbgRJLSAmwAafDw+
hwX6S/lY/pKVLOyyPehWIInDBLGH3aWydaAOhC0aaUQXfqjfuBGKAclhcItBBb8culWxI+E9azY7
hE5joUc6IkqCHTlUSURBtsK3t3E4nUgmVCQ0VkAIXcIKuSXb16NGh8Fp13QmUu00pT0ucQuWLquD
8UU7mg8o525MeuQKNgcqJfRbLnbUeAbIBD04+yNRhvYtx5WzNKgQ2gL+ofVua4KQl3pw0HR0dGRR
0h0xDf1OZ6DBpZAMjEQnlR0mcRaeLyNiRh5BLGTxHjtzINNkgZZNuo/ESaJE0jdwqUqm2PvNM4Gm
D7SkaxAzkPd+XejYSp6PoUJA/1PFsXp8cbjS4XMR+FavJBI2NMi90e6VzYS/js9I2sbleqkkbGtG
UySN3JjcLLWQzcJRnW/L5z9ViYVK5H+p1gJ0pkXpjEFAIxkDYtHSxMmi8nfqRGb42GqRoN7WJThx
3ZACR3MPWzdmdE5AvxS2dgI85IW0NaXV97EqhE/IOtyRc7IrjwOdviaes8wRonE7UCRc2DxQKmHs
sMRCm1ROtIzNQnYY95QQekkZ7TgcaFi/DdkIJewUrIPDGjUOA8ni06WOjZMEHyvgBWLUYZkBI+iJ
PF/OZ0nD/O5ZYtw9AzEq7O8cruztyM52VIo7fLz6iA2jY/U9A/4rE9xIdqtXkCnU90yQ3W/f2iC5
r/vAB/xxJoyJgOw48BE50mPFRwRJiSaWJKlJqZDVHCaPruNGC+GPfeySjKwx5xfJvlTWv/3A+wXG
wQfe/9IklfKJvgP85+//R97/GJlgDb68//8c8IH8h9BYjE/2Fehv5N/A0ORL/j8HfCD/QcyAAPq/
2P/Gxrgv+f8c8IH8S97x8cM+jY6Pfv8zwb/9/ouVfv/DGn15//9ZYDmbE4pDILDwPz2sngkCwfDT
Y4bSGHR4weAz4UsgRARfA2SPU1E4iOXftvwLfAr4QP+HSR5//s3zn+GX+f854AP5H/n8/0l0/PX8
xxvjTIzf/fsPHPbL3398Fkhe4WKvglCHp7kKycGWAgByAPxfeRJ0Wcv5ORC6KHKtSVRlCGKVA7YA
AAiQbInUqKwX+0khAaSYZvEM9vXdmfe2ejXVN61qsrjVdOvAHoy+wSKFzeBveEVPPFjxuqmsP6D/
wUZgbtkd1KXJAwEVZQO+ymV3J4u03RcFLS9+5e3lVV8SRsKn1754McPycspe/XQS/myrdVnn5MUO
gWWx+njRoz9apr6ePnylXJ6oeiVJfz2gSMRMnwkorvR1AFRtExfKWakqbVYEiLOQ/ywSV7h+g2DW
8OqzAs1T5SrGw8vI4sB0ArfSyZLx8saxbQqUn7PfZNxq98vt67kRbapwyDxusNXIbHLSCgLKR5ia
UlTNPfmksv0ESqtiztyBCjWfGabCcp36dho+0rzGUmh3PPTCK7b4VnF5X6e+ZRrIqpC/E4IsPRPR
xTyU1Z9pSTATzfFXxfdZ4ryCtmUvHdqU3RXzJ2M4Ms5y4fJ0jNgbHb61xrxwU2pS0g9PD179dlj0
KpjiaHWqt783lmOoN3RhC7qxEVsl6LFvHurSyIpTJG4rnTHbampi8WkCtkk+w1iUV5a6Pfiha7vi
3GLVboIwRnjHqKKi/4n7lbqzLO+BVAJh6NzTzqwrYQ3P1PYRBF8x1nVnM6bMO1PGf3r9urhLY8FQ
1MDzXGXr8FA58FDM8cI5d46nukTeb2108lBI73RlUyZXJfc5aSoBu75ldfPN9MK6PdZYWys7aQma
BktKfrHkDybtxhl75zebDL/piJqCvilMm0+IsWDLZfW9jNmfFtIg5r1BaW6ZYaKuuNbH4GTJVf2s
wXSPVUybiHXdBtOM3I8EPUoZFA92UXYMrt+zHicws+xyzvr6GNJCWFnyas4+AsFlSrTjMfKC6T8L
r7d22JBxxnVtQWL0uu0vIsVN9gRR5971qJWGJ3SBbg8nx5yVBie9W/wL2wWBagZ9Z4y3l0yqub9+
s5ubvsubucCRedmih2bBNgPiTI34Jeew4YM/tG+alUkuzNY4o6qdKpy/vi5abs9VOU67al55e8+C
S/GTh0/+eDy0rEuos8Aqq3LtzYTr5xK3355fFfy8qFpYiRIY58wZFMzXEp4WLBOhWoD0RqHPIiNM
3StxcTOqLnfTtdY7JZuwmdFVO4SCjHvR9pXFtxo2LujQMot6VUJDaqs/+0MwaD9rOlj34KouMLTm
2I4kq4jjw9XdnRrOZfm/FTAtCT9G4esH7/ohezpRp/GXknbveiOmYB12aSDn1sxyEupUFXUpVPlN
WbJBWN+cxmhUtxu41dKzTyO3U39gPkNQ2W5xd3KzJsmvtO3cStYK84SMurVTExuOTtq3ylLrriC+
1UeD+6fwfGdhc7qwpb3wcAvg0VOc3Effk1Q7vGenq/+cvMrKU+WVCtvnzZT/at621AHtZdN2ui90
xSQ/07Tb0NLABawukLoAv2XcYqB7j1XxNXtL8Z1Dfv7qvecHI4Zjlq2elmWseggp6nvjkRsb+2fp
vfVtl915J1k305CpHT1F5nGv97U+LVlr5Ye/W2h5jNLpeIl8e8paYgt5/bzzMfu8Uh/JXTb8hoJY
W4gMun1VV85CxO8lZDdbfvfsWJ9Lv/iN6LTfTq5Rft3N+67FM9TCE2K17t+Osj7aZPZjlWJHYXry
jWanbRcI2SoZylOcCnRLp923UlKQS4CFQj2608BiHX1HCUI4yN/lEv9qoD9p/2O2wXxT35muPZ3R
11PRZafnWRB0T+xMletwPL/SMH5tzVQ0fmGOpY/62b34OD0Lxptfd0zuEBbUHV5c32/KGNDT7zGF
0nqQsOiKwhYSpOGBAWEdXS3Y6MC6jhuLy6rE7b47nY6sDDcOJAV0kr7HO/s/Cw6Q4xufGCpuQR0H
rq6JsZiUsNFgGjr6qMg+20JD6PvAsafmxsbEpSn2YVhkguHNosOdjGLB93vjOnxzNj+Ssz1wthLQ
1qhPy8ckTgnsEi+8atRVqpFaFGK1Z2D2OkfH1uPKyTgxIUVOeRoamdHqfjmesy2zosprrf2zTeYD
NsoHjcSl2dniuAWppjPdsStsugDr4h/aKurTkj2iZw0RhGLhafGc3eGYPoMUBeSiM4nc1vv6xRtR
xUBuFWFjgN8sf+SxZoavaFar7YED5K6H5Ealk0WN3xAtkcpQpSHDX7RVtOtc4OaXaoMze2NxRuJC
1PYExb15mxJ+WFTs/V0R7nq2JoUvBNryDPIvKifMVHxipqRoWrrV2WFa9W7V39V/PLzBIRC/eK/b
TqCdUyuPVFpWSSBHWF6lNl2UT7IqX/+V4I7zPU6c+YKTj8XohL7HBHm/VWd/AUqn7T4lF5acmIe6
0lFSjEmozoq/n3Rj90arZUWu2d7rn6RV34j9DlXuON0x7OVK3oFUDMDvKK3Gui+rFUVpdv10z7Jm
thxmSxPDZ850Qv/2ovanz/7oHG5vtjz3kzLKLVEgQs1tPJdyolO+6pnFkh3JR2vyyMOGnBNxkdqu
ahoMp2GeeWahPjLD131Tzi/yvWa7N1f2t06uWLy68nBlK+FZfnVhyfnbjY9zeTll39zpF3UnpihZ
3C3o8gWJgMlDeaeafK+0tJqFmZd/zzZtTCrff7j7TtWQi4965uNYQ+09R7q6w4Hq1irNhFpMwnP2
ttqIIY+ywIXiaP6gtbsW5sXgIvDmQcYmhxjzJ+F5jpmzrdKAyoL2O3eiS18Gqx2reeWVgDYTHVvx
izM20xeJqEq6hHTtNCNYDrl+l5CfwsDevJ3bd4hob7bk/pxbV88++un5WjTlWpd/oqGWDtfNNgZD
mbohmUohBeTXOPXo//5aWDTQO2UK4LftsJJc3sO7kw4pmisv9lDuuKihXbk1trd174pybsHhcI9L
106v3LL1ZTDt4vIes+0qDsk4Yk5K4g+PNQ4alm9VU9a+CWopgNQlu5INd28J6dZf8iBywUbibMJw
urjkHlHVpJZQ3vDrXnXFrOXVK+3w8QlF1dOd0N2kkiUMUffdW/SLMd2pzOHntrnyi4bux2rT7nLa
alf5LrFJvN1rf1TkrrcsfL/WBUUc2+2a/O+me+TQal/FGXOUOG7A9w2vPdLbJx10jTNTEXIK8zXw
Jg9fMZB09aTaswppRP3nDzHOahuO9QZEbL9dOxkoEO3y0NFkH1W9rMJ1vnKK803C1RIVrHL/Lofr
HfdayRsjW1IiTg022yLY1intKLHtutS207/G7Eh1Hr6x5Ld7FJpxjGDBEa2an47GKT9CHD+klFOk
a/Rkg4Nu6UprXx4xeYrA2/5NcXO0x/lF9ht8j8+t7r9mXiDafaUOBHMaFauoNYyGTbbrXqf6CFp7
0h+jvqnwKgEMd9ABCritcm99YDn51uCTVmHlNO2ChGrt/S37CGL1uWfUTwVvufcKlTt0SJT8x2+O
noD6H5TEBDDtGqKq/UmPKGL+FaFuc/3XG3fmtlXGZBYOe+7XLxTZuyUmAUlbFX7esHCb9nrL9Bwj
QYzezcHLoQ8anqsEec47YbErr1E90tqmfYg3PyH78IuG/IamJ9H1Z3nFqejMJIM6e9VjdQUnAcMj
B++GbSpC2vUeHIrP/FrUQcoS9ToFKlx/Ktdtt/lJ6ypnx537Z/stph7y8M54M6i2p2Jrq2jKo1PH
Y7/ynVlD3We6tS1DX4jzfmjiPTun6qkcx+m1Si1+al5sfNyfWVo7C1/mVpPvWbN2K+XgVEpmWM1a
1NNGpitiPewyNPwsUyqQG1VbggdfRfO8Em4XOrtNd1kX3y1K9qwqKAYMr83f6cD58c3+oy+/bctL
Jcfv96AKUrMFpw6ZprxmdE5mxj9q4C7VBbYzscC88DTjJ7V7Wx4/k8tpUULWvw6+otczbYOm58IM
zzWLUdqC12dJPWpnMjyD5YKcbJw7TKsbH5ELVZBG/fMY9/AZUaH7HqO2fHux4BfAMCscufbIngRv
LoGlZNVhPvQ/7X0JPJTb//8z9i1EthJDSDUxYy/JmiRClpJ1MHZDBtmNJZGiRRJFqytrkqXs+1VX
okSkLKUiIWXJ9nueGcvY6nbv99fv9///Oq/76o7nnPM52+d8lvOc5/PO3wC8SQc6ogXhXkd8Sqvt
mWm6RFz6wGbLLsieEZDBUL4xCnewvktxEyUFzkvGUXL20t6WyssoNRE+isSw5/vVdhSrHEtjBB5a
PEk8HhhVRaN3L1GnNCof9zJOvdQQJRNcNnzeJJ2Pe0rOvzBh8kZJTQnLyRHWY5dk15LHhqDwOCq+
RqcCN0ypFaW5gWCsGYWEPw8x3wZmK2N545ufhiE9UrI+0eeKxG4d4BPIsrXqPoLB0d3WxZ/WJE8n
3E2YiUvcrxbu0+Y++fi1acGrcJou7ukt0/UtV75pTQ8MmKq7txvSK1S88KTCv33OkFxSX89uzE4b
jgxf+5CmZCp4olmWS/GvS7JOsDcNZ/0ueQzVJpBX91FkZKWIsqCCBALXlcpPFpWQCzFhbb9QoHg/
aWws3XMqZjwp4HVHym4+yklhxcsPuHgDvoiYvr4Ln6h1P6HJjLuFZFdQPcKELDrPJLKxn+kcp845
K+c2x+dD8fLfJAWuiG7BqaXtOp4FSFj2V7h8tQ1AWI7piAmJOlaUDsxMO8OyqIWomtdvVkQEdRkC
rMYekwfJFFkwPcWhsLGJkgnl/EjKF68L7sNYKrm3XKY88+5unY8yCvvp3fj03oGu09Iez7wqGJvW
rM0juwtYcwYI1CeMlf45QA1wcSvS0U2vzQtWMgI4+ASZTz7t8U/4a0Arm87Ck+KIjMJLdjrQWN5z
ajhn95nRiStfNMnhXCJg1tFNZyiRZQhWsxuT0zo5iV+Y3kkjg2LJm9mBCoH88KMvd0qtd5/siZr2
/sQF4/KIkeIJyqezghnD2pCD1AGDRpZ7lBudlYVsauhoLNjuD0cEYuP+Gsi7kvWO8tJM5fYQilJB
Yr+bNxuMgxI4qYP36ET+PfpB+ZlBF/7dI1HO9og8dqjfbHeBDHpW5umGu3sVmQ8FBeGbVbyd8BYB
lduPI/AOSmXyXVI4O3q43ZQbTzecxoLW+AjwsuGhWZCwwBuyOZes57MhXraHfPLoWOZFOQqL8Mlr
U7wX5UJuKbEvdtXuKwnCcwr4P7FUFSfS81II0B0oG7BxhdFcL31icRV3B0HfZM+W6yTqI1zJRlPB
POXPq7Nuu4/wNnpaPC7ZINVztP1YVnFx8cdrzIeutmO7h7pr3rslH+o2PAPIULflglmRV65cwTAd
z+e3KrrCRAkLt9AdnLhkQM5yPOn9qDgGaucMAA8jUybDw+kY5vIRQJAwUgBYnEkLPYymhJ/UBHt4
F8rU3o+83rFuwl+IHspPpxKg02wYsKEjY6lK6hgVd6d4QEmz5SxNuJra2FEyeXYai0DkWrXGZhZa
tdufrKs5Gag4L5eZM+SWdcZyZ9R2xlEhHpu7UD02aJvRDFGJpaHZkl3vuqHaLx4Oc6FXCwnhoOee
WDvyDTYyAWOkgu30ZxBVf7aJPYxVENAIvmblGo0gF3yk8DTHJdOi27SprCglOMmhTHJHflYr6xYN
ilbTEDWa6O3kgk/z2bqLNc8AhxXvVTOxBJoyd1dGHX1zXIYz5B09cJYO8M8FWm7vbEG02cYg0u6z
90aGn6s9pJ5Nt2UtfXgkR2fqDZgF35BBxXF96zPr8op11IA0ePiZQcvAKUV8ZiTV2AO5SukrfEcq
mE2jHwD7esloLj2A4TU2tqogK5XMOQWRMhUNyMphVibs1nXP97O/Si7wfJbWEZy+9VMzd/R2S4yE
A0IgVCeIw4Q3YFrJ/Uu6bHzLVtn9PC/ag4Pw21QQFJOHr3Zv0Z35kHVClHHCs5Grq42Vd7O/RHez
6FmB3j/4a03RQEpuYLBimKV8KO/m91SYl5n3bWOiHcw/v7U13CIYQuGteMpmM89uu6+D450A2yM8
x2ZzR0bDiaDX9VawNGZ/xJ1mpsG3nUDAeC+F1k5lcMLBCujol38WbYV5ZpWmJkSBEzYefuLY821j
8aPNg1fq6D7pb9Trf0sD8F14XQJWflcfNZRdJOLhs/uVfXTp1aC4bV23XnKB0wSg+ZE0rB9H/Hy9
JEo3U8tNWpREXDThzTojnXHTgq+BiZWhnOJEBXOwcGAtlxLfWiEWWX1qtja8E0KVWe327m74qaw2
pkHD1CgtRm9w4BbM1cwsHRoY2OGybaPY9SzAtlK4xuBN8UqbdB7/uz5BzjuV3Qo9Rc7LR4WwUKUr
hpV4ep2qQIeZcnZXpG/lkXp4Zz89CwCEnLFdozxZRX9rPPGYHIPS1422/VrspXXKZObhtokBeQPd
2QZM8q8HOiMqYEeCXdAZtymQYSwMNyh0+M1dJSvUk2CPzHGnaW9i6Af5A2+gwyAGaFJkMuNZ82Ro
k4pSUHbDm3cS487cdGQiQ0kPfadvwKCuiTJSy9B23fKtYindx9x9PpjHgk8nW7OFKt5HQ4Hs/dja
afvMiMT+2/l7a6KYhcguw9jf3VnDKK6pe5B50JqP3pz2/a6AmojBt9c+j5d8YMi8NT7M2p3yTpst
lA9hGVZ3d028uAzVCQeXwQ1prE/YIvwRYFd27V7fcXHCxNdfRsGBszyKEtCv74jljixD32m6rZu/
H9wMZDvrocW7mHlgMGJKZOerJkn5YLpzKCm65PBtCRpk7z3X+j/wCVJRczRwlOjR3pEsOVM/+mBs
3JQjMedbS//4izfUQPAW2JtYdYBZmimdyphMEXHnNdNg3RCz1s4KRKs8/WVYZJlOlmb0dv22eoAi
/ORmcBYVEcz0ML6zlHU3L08FSJ9iKfz4LblVKIHHB9x6H/U26mVeYnsS9zqCstU0rGav8qRvZoSW
kd/HEfIvFVYfPR+fyTDriD1kp9QAyaIYBdFTQ1Vo3sQ8vTsOz21LRsKb90u9MhTtVmyvKoojVzPP
4+jA1Nc8yojK5bDghIVHG2priXKyfO7a9uFjaRZv53DF7q0xgScxV+3NZjzWssisDx37gOUoeakl
GSBfilQ/sNHBlgOPwN9X3BjIHjYyFTXFGSWrPjFqTfPtaNJk5wPLLtOqsngHwcI8nTLrF6EYly/l
MjbTUSHhVVz2kbTnhx0x7fCTawVBCUarf3b0ppxKRdZgsmG1taGxXR3eY3+hcNlZjs5HIHtkJdpP
JwSoDzswVD/zpnoaewMQHpnSMMRTTs98TSneJFqZbclUr7XLU1fitYCQTfILIZCVx8qChV4ZZZoX
WXUKhA0dKtg8liJXmmqKj+Qoj1DJDcntiW3JkEmWFbpJ8UAxpD2hMly7SpJjatsJnaB3Jrx9gvRO
opV9WT63DuNP7lPjXrNp0mqUoqRloHPYgLdg6mhiAEuwOMavheqU11tgoHXKd9+flIfhOvYGeVR8
jCf4Hojbz8Q5delknxp4ndrd7eNeaIADmVbUZze4jGOfte+zeIsZXr5mH++Z3ts1Vbc1d5sUcFWS
4cKtJ19RYSwhteOHokIqw3mvSTIcRTIc/bi3RbjtzqkXuzPVHCao0WkSM52A/Ou+LnB1RpLGJs/H
gpQ2JLeq9jxklgb1H2VXDS2kD77BCrnsJy58qD+a2dtB7SwxNHRgo/MzExWljvjHzIm53zz9uzBe
OM1asUHv9qoTRpKT7xVZmZ4bA6XDGdQKmg9BIaTjmgU0OlB/yd+WG/j5FIuCGtvgy37qsUcXN4+9
uXqiph8U6B3GdZmoHcpNKJ0cTRYAF0RRSjb09P2Mf0AurfkGbnAanTMuQOKQR+qRsBF3pvfuYrmh
wZtypWc5EnZe9OACB86Tdt+zBWGT6afPc/VTrIzEDs8/4W+qhgD5A8/yqWGmmQUckbLsLIoIFxYV
mfcnxrqSoxL73Yfy5UobkCHSFTbUeqXZ1vHJO4TSKNP3C68XANjVmOm5GfTEo+D3PVn0nMij4jAQ
/xm8UH1x8LRs4eFLM+AyFNrm1kafuPU2JwmmUpssMDp59ARInMY6thBsSIYBIq9ldqUD5D2PCdgB
IcSFiCdBaarspS+vwjvIaFkDLUWrs3jrJdY+jAmUblb3LNApj5NtDHqgb9AWv/vadZXrGyplOCmg
Ca6Xlx96sj65JThF1jz2Le96QbIa0xBLeSWJt947CzpryIqQ1WXwyrwa06RxMzf9O6KX+Cgv1Ujo
sStjxIRpZJj+JDsM6lFOFRQV+pRVaDlvs4RLSU+Xf91xh8jJTypqY2fxvJqJeqZpdF73jpY08QAs
oMIeu9lUgRVViFWj4RN9No0X+0CtE6QYDU/4HCrQ35ENirOqBsBs4xpwFSpBxdUtIbNj/1SZAPs7
daBFKE1Qcsv9PlDywcP17BScVZ3ec3JvwNBvEKR/LOjbcVjNrYLzfcqte5J7p+ILFE8dsqMq7dq1
nbf4MI3AwfL9hxhCwz8PBKvAw/RFy02Zb/Qf93z1daiqE56K/Ug19Jfl44qrfwU0v0lOUqy5fwtG
zwiy6rmbOkNw9vw/yc21hQbv7cov4zKOqMiROaedcNvkRFZpREbifUad6yFMNr1TAPyxV4AUNjDt
r5YoFrdgzr0VzBPBQGZjbwXIqenosPNwVXkN6xRnGfrz4qBFI1mj8kKsI/ZyDFk9LQtAr5LUjtX/
MFDFDtgwxJShuXzTTPdhqB3TLjqq7MOraSQ6Zp15f5z2sxwMxmZkm88OwDXeXBpoprmdQtNWQZPI
y+hy2WPLq4FtsDttulvKTVuL3j2IpVJul8zqibWTJ4ubGgaN4W0nKfASezbjIryBprTu0w8ipvzx
WGZLl31OfXHcsvpN6Lz4kQ2FtojwM54vvg6V8PKWSp4+S88c7ph9Lj52Es/iUnfuuHVtXIDRXdDs
uLfeJRBZbe76Nayqau3YXxi1EPuTZ+kCTzp1pKvSbhQtn4YryJ96+vn1cGb9pTjjNYfSP+0XGERc
FJRhgl3dUP0+N7On2YwqHpdW8LD8Uh4g/G1KQ6SUDMV5t8npLLNd36fs8BD11K9BnA4ZtOdTNRSa
pAY/eVOiEXp36qJq1APry6Vk4j68CUjvLY84v5+Sg+O4CP6IWQiltosagGCu5kRk8DiGcvuC+yyp
j+pLsT8+Dh4P7nRp9bFXHmz4rcNy3KqDXRRokUfmSKq2N8KXqKQesfM8299ye4fLdn/L3ROa3bHc
8ZgN8YI+gpTPTCCZgdZWwme9eNDmDUlfpja2DRs+GJh+23VZ3FGfG5JLow4iux2+DrnbhF2U4+1H
x+rTxCAiv9493dwn8souZqjMmo3KZmxn3dOJoaYbX4fLUTK5W6VytwoAPWsoYRwKlzOqmj+gioxH
+UPPlubV7JZSl3rlGP1E2PBO/lZqa+0s/DlDpRdSoLl9+tzxKxnBudJ8gLo6UKhzbMg8PWRE25At
03s6p9Fd+jTW82DOabcBJdbnhXnbto1NabCXktGw6m8oec30ZISfodwqid08WLgsm5VJv6bUZwOb
Y7Rj2n2hUxLsV7cHhjp0FcTrF+qIbuGAt4sza0uS514zBqqj9YdS3nV/yAI9RZPYbBrEY51jGpLj
T9cDW4E4UXAAYZ8CpWksd8mN6D3qu+cfwF7FKmifWMqxefdu+Y8VKJlX2Jg7Z1VrcgQ74qiMn5Za
e33z+tJbGKyIt6nhKZZZn1zo5yLedrp9XW7ZHdPcO4a5OlkMR2D5QLJgy+WzQOQUZ0nrQNdFarnL
FNnYwR29N3Gg7OvmqHlPiQpxLG8xB3eCum+u+7i3+6tDe8knXwwzgqvQMGLNW3PdRYN8dCsjaOXK
9Jwy2ZuhmQXZGz1qAgKgpCoqjtp8hc/0sicHe7sGP+xLBUV9pJza7ZSxycMdOXHB1rWqtXobbA5X
Jx8y4xe4rtfnczQINBNB6z4x79tYWlNNREaUWlrkh8wGSnXQ2s3Y1xqw9gwQu+nBH6/OP2amJs8Z
eJXWXzJMczumtfjj+GCi4NgD8coKVS6m5+qeRT3mNxxv9HC6MDDS6ue9XmNxj4rP1EN/+MwfNcof
R8jcCmnO5t9PKYq/abXeM72nKycuojHNrybMQdEQv0PsFMsuTZ+Zba9n7M0SQo6cbV5j8UVJ/wvu
Y6r7qM87Wvw1FiDzQXEr42QQj+8jpb0z+s2WG+Ix9COFN2biCJ7CX2f9ObuP+oSBmvFbZ130E/Xb
Hqz+/l2dLsxdj248o/wzp+/Am3z6jr216nsmNmfJ7AXlh04u+J/OMdupmetwGJKahW8tfSCrfDW2
PvE+dUeaihI/Xde2zDwzSe7zlgXXfWceWEZKyvP10Ie/2MFMjwk6tguTUh83KroV86g0+EEEtcOn
vzaeCI8PNCB/HAjXiTe/F8r3DR0UJjRzCSkMG1Q9cvvwXfbU8yenE6/BO7j/HJ0xqzoyoR+oqL/1
uaMyRqJXRD1CaobeX16XwZyRIgs0iq9K0ljb3zDRQyjvmc7bxghq6ziR7TMmEl+c6gMjWj1Y6dpH
JkF5dNrts+6HGQvQCmesVHr7ce/UaLidniM5KBA8CwxV61B2nfUscEKmBXOS35d9gMZxRXcp7xZE
N2gh0e2ZuUhGCXuncC7mkylG+jK/+S2nkryHjKaZ91syWlxi9CfMBgOYDAGcgnpTvah6pYbswLo1
RT5DRqdZpB6yP2R3milCCFMhqW9ShGi3WdbzA5cl1jNSfQniVNxlVILfYwmKIPOULLvWKAVn2Cum
7ku9G+99mAGtTNm+t1X3poUeh1CUXn4yNWlz7VPsmEsBXTVn8a6PNyRpntYpG1BXP3Ntt94n+RHq
iCa5Dv8T0AB+IKdSE/VYntqNehP9gLP+0LQ1pWQ8tgyj9Hqa21wjB5BucewXemiXCBqA5Z0akiNf
+L8o5Zyx0bkQ4q2fgEmWssi9JlFk6Zqf1JqMu2FlKdd+bxM7S0ERsNdUQve8blvHYZzmy8wCT1x6
yJWU/X3TFxnAuQEs7X22PTU3pxWZfMwdbFnwUTg737AaK1/6RzpPgtuunFPSsQET2Bjs+oM4DQlu
1rpzvSqFhrlZhllZ+gZTNNtibnvTV5Np7UzJ7JCuUWawPvyU5Xk5ADBsge4C2Bvv05wZfb6tZWuq
tdB+rSm2Sf+kGHMcXjzG7oDogWDYu9Kr95zbUUPmdVUHmhRr9WTHHC86cXvxhX5gN1ZEPLMvVYGz
s4RH2ySYJjZ3MFBZIsdsbfjTP6TrPW2j2lslpn1MQ8KYVbO5WrU1UYs+8OSt9RG5RTT9I8wTU8AE
edN7vcvDXO61zk9zBl+pUg446T1xSWf7MH7o48QlY/wOc7ELPVuNqL4pBnUEdbu/NZcOyzK9O3ik
bk+T1BBYvKa492N22+jRJ4f6C2X9Q1jlVeVPdVaRnY1NcOr4cEAlw+5qdOQfFlzJrVTPuVkdMsTe
bsg4Hupw3SK1TubKZW1QRMj6HVBKEdm7mWf6Yxujv9eTPQ7MSsbMmUgZ5RcHi6ZLCnTKCvowek4P
JzLJQIXMCKr8OhTolN4bHw9EATSNCq2dyMpgyUNFzais7Y5jWaDLhM581wFvF0zu3vNB6uVtQE2v
SNGUxiUp94XHKVqYuRYN0Ky0qb/MTEx/Z6SWzJd9D24MZfF2t7EygXK486kBU31k0aWd3H1N/gNp
qVLW8RgfTKP/npLEWrJY8vGifg8fjg8BTeUOee8s83o6gvPj5Oq5gh1STss9tPu0S43iutVLyidG
kRF6YINdTEKW4gUAu41h/NC+Z1LdqAQepqE/6ndCjnhBkXnSmn1c+CSHrmaP3rGvzc/v1pasf5oI
CSDuYJviYQQb1h9yVLPadNv8qLPwlw6oPebUiMRtwNDs2APcHChhBDvecJYDEzcD6g7fp1xJ+pHv
Sl53Mei3lfZ9ZSkuMKy6ca8noLEcHkONgfWUYtqM+oqnfKaAE8pNcvnW9cUyoYqXJg5GRpbQ0hvV
CBXvXN8xIzfQAfozHj4pRS8QRvG3q3ZjfI9lB0nrPg14e9Kfzl/+PCWS2jHY8oajZWpXcn86p27r
+Klu1ttBDqDp57xTWWI/O+jzvbC6r4YWi4l71nz5i7evDnSyco8KBvlcN5tqMhm9Pf2v+05HSMhr
6Z40wmwYcDYAdy9bG1t8q186HNS1eEzyulfetUrbT6eZ3UOqkcmM8E/6ltBvSo8xwqXfGns4pZ0j
PlPYVFM/8gA6ZLLlrHszTG7/WdqE3llSfczzj1Cm3JSUZ5cO73hfIkbNUA2q5OfG9KAGM2LbQB08
WG4SSKUT9MdGJv22yrbTYim5lzxqr2S+SPNgYRnkDzwPr36UECXKODEGNgBua0aqTg1Ws6aNSHA/
D2RcHOo0WMMUj3E85Ph54tA60NPiNxooNlVti0KGnaOnVIilcZukAZXspGsJfTDK947+cYdW3EaH
aA+Uf8PXoVpF3qg28l2yIy5IbcVaw1Rm9+eQ5iv56k3OO/Asy9DgfGLSjL2SYumOqxeuHPlqUA66
/nualWsizlzWldh08yENqEd2y3604cKrRWfFjDx6pzE+2axos2bSjc2sLQI6G9O0CdMy8gOtFNB5
6jSx4FXWr7Xt8K+rojbSLyzRr4p3EMwXMnPqN4POUPE7DmYx7HKMblhj4ev6pMJUFM8RQV9A8WHj
cdDhh588+mbPmG1B6JWUG7mUJT2+J7M19yv7tvN09EW2Fjtm8nZURkEu8kVb65Rg/9EURv+xq+FR
x3rzzXTp/cZOrptkfsoHQ+5FKG9PLDLDDY0c4epHSzzl8dPhbxjirwxXOGffK3wWFK7RIn+iOt54
UErFpnA8OWmgrqDEv/ZhYRRruDZNSHjvwWdMz6aDRH1gxVhwbDUVwxknMnjN1Pl6c6gkayoPNJWN
5jqMvTddM5B2ETTXYlm3lCAZGgZG14Z2vi3+c1sjNo/DI72Njha/43qwhWZz+Whu6uB5iilkgtf5
A6Lsng1fG9awgqsxdKSpLFiSY/Sp1JE+zAaHyPC7GKsgQFvIX0CgUO0qR/X7pPhwHm8+wsEu35Fg
oKa41dGNWWjw+pvG53dMHSBPcC9T3JjDqL1ni3Di/Tyzktc13TVRDdg8Ua9bqdcoGY9KQQbk4/pD
TqygF8xwnQJUM8rtiu+CQh5sLdOv22MUzOzjB/pO+HZTfH/K6a+NIYBanRPfQRgzPag/2+FsgLIg
8MU7KBXLmXJotGkja2YTt69zaujA69TOotN0vZG0707VyZUjVQraq6enpy9k7H+5ax2FMbBT7FMN
WbpimIr6Lmzq9gobRTWr+NOhtcyg4HlD9kY9tMYY2HL2T1oOuJNeynNWY78Ssk1OveOgrc1b3FC6
t02ysEl4S/ZMbn+vEeFMXgR41HGHQZBi98sUPvW20L23tXbv73Pha0opg6+VqXYFF7FRwmzTaQff
fMOqGln3XfYpccdvuY8UUUGSk/IwHFyyCSN9JNXlsbXXVczzeK/KW2qYv8gXqvGoqgaN9MnTzRvG
HqtSyrJR67cZX3pbVPn2aqQCvUomC0M85p4c25VchgS6wAhLskd4Rcpv9pHhPmzUUXGCvme+TTo/
MznsS9nqbRLRtmukT5m9NAgNPN/P7t89HUfXdZ99t9NXETbWw+u8L3R615Yfk9LneM2UZ++pfawB
YXhHpv/tsTbQDiNrUHxwMG5n9hrGLZhWeHDnePgJLHNFFGvOH6Xnqu2Ohh5s5b3z4YjnnZ6uqfSt
xdk6ZTesuerObdUsTsclhtPEMJSeXTftL0Rvvg+ZLHSV11FfR+sQo3+MSPGLvlSnqotv10Y7kTP1
irwyzOwIrtv6yj45Z9IhI7x34/tu51rAvSFo04lHPA8b70/N1BmFZbw9pkmecTv1W/Rzd41I0INo
NQ0577a2Ie2RS6YEe7KYabvoHYsNoDEE8lt3+1c6UNCXHWgKtPzcdrErXsFhOuX91UsfryF8HvE0
NvLB7pBFazRJZH+KhY5HHmVEZUZSeb7k6Yp/zLzXNDZ38sGLPnveEjA3W6e87TQLj+SjfDMc6KE0
uGx/xn3hldEHSjnx65IB4i8qVD+zYF6YjJyJYaTFsyk00+o5sbaxUYMCXNIor18q6zUTKkzvfgYv
PUVWSl9UiMp1H1jCUSxVke7ZXtbktpCL28kFz9+w4mpBtHniNGmBIn8zfY5X2NOZl55NamZFpXws
FeTAU5RuvSbpWpEzCOqDzGaTyW8HNjrJKzkwd5kzm2dyXJVkyPajoLrmsfYAPaz62RGKbU5Mpsc0
HGOcPj7j3pV88Y6u+52EXApRoyRXGIL809aPLbhgDftpkPQ5jmMOImTRlIf5vrQGnrv1bSzz4naa
2ylUUYXv7wFqFz9RfUhRbE/W1fR1Lx6mKC1KOZ3kcM2K6/Ytl2NCcsg9w5snkukaJ73+JDuM/mJf
fhdT2sEAignqryxBAu4wlrdklfdzO/AUNt37Q7gOcpRyOq07mKtaVlMg2b/3cuNkkMSMgABgwOm0
dtCNPKqX60pZiIYlDABoqaTcTyReV4gL8FADXsK+fH55Lzxf7N3FndffKoHPbCU7NsLbOK52gCNQ
vRt18r0VpbzbQEJoEL7yCt/TyazGSbbGSQ4lEeBoH9fTySG14fP1ASgBIMyIyW46VZkMn59zpqdk
N/SA3m66T1lRoes5Sn94883xTLIcik3YjTEM2lqM+gny/uEnZUIFlZ8UeXn9SQnHrvljeNInOcyy
cbIZTwEcdeBsnhQ9WKe1e8YdDnNh9N68ocs6v9fU7+b4O2pKWL3iAMamzSatnE+kSn+095FEgEbc
TBIffQf3dWGlP54ajiDp9ieNs27s31wX8PQMADdgb5wcPmFAzrLtxPPJCzeDVQtP5FgxYY5qpH7r
AQyByofXJAOCJWZe8sEU0hjOxyX6To8rGwIWGJlb46xgzVAE+LtDLHATlXA4j/r1vXEBsHWmwKTp
RAnCh4YiS+JT9XNRCkVjWsLbS2EaNWbK0KVvCreXQe8Fmc8Q3weCD1DzBYxbKceGL76hYK40CQzC
gxTA6Zh9t/jXLRP8DPukSQoFf5gsmeGvvzBLfGU7Qy5b1frW67JpI3TreN8e0LRWMg/6H7z4/DsR
0mrff7n+pz7+AH4q/qeYlLQ09P2HmATy9/cfvyJ9Z/2hT8PECN9+/cs2fvD9HwolOf/9j7i4pBQU
/w8p/fv7v1+SNs3F/4NWG65q54iBi4sg6eh8Zh9AX/7BCWFOdC3RjhgrYSjCmYQ4ArUDivOhh/GE
Yk8J84OsQ+AcuJsr2gPjaIe1gR8jBLvgh4r5wJXc3dycsRqz/ydEzCChKYlAIVDiCAli6JB5olAJ
uCPG2o1AxI+E0MFVCImhvkPJFQrTQkJK2RZj6aDk7Ima/7WU3A4ESgIhtpzcbKSZQwsjJFJUA2mI
Ef5dSgmJkEFIiM0RgkJrQlMkRwiYQnjkA9dAW2AcUcT/zUagISEADUxMDCG+ZTZL0d3N+SAGZ+eN
IaWydMjENYC7OcNnP92EH3DmJ5Lwm22WT9nZycKZOA2zv5a3LiYBxbWTnus/HL5pNj7KorahgCJa
WEcv0qd+hMnx+/216P/S9AP5j/oF8V/B31JL9L+0mJTUb/n/K9KK8V9JQk9BTGCm5YLBEuMSKrq4
gDmEKJMimmg77HwAM01ou0NxjlQd3XFQgDhtVzusG5x/lrVwO+H8sstiFMrC+Y2xs6Gx5gssDpVF
KLIPR2DTWRk2X3L28UJERBzGjSDDwJ+EiEOQVBMhxiZaKUAiaUxEaKwWblgxs/0YL21XDA4nPBeT
D3wgMitV+dELwfhII3YtpaEM/uVAJEA0oqBQaWB9MSRy/pGurfOx5dWJag1FSoEQ1guKD7cofh8U
Fg35vdhiK0Yvg+iQztMq7Yv9jfbtsMJLZ5QYnG3lMGj/vEvz+mmhUysSmi8nsg9rhfGcI0QSsmqu
DUI00kXh+JaH39PEzEffg5OQ1rDDzQXbXIhKdgDthMERiGpZ2GMs3UQ0nMF+zldaTIHQOZDEQky7
hXr62OU1V+IwYiAwkjVathJySzfAasG3fij///vtfzGUmORS+Y9Cif+W/78i/TP7XwwhJk0I6etK
2Hqz1t4ys1YTZC477MLfPqCawLqjCP8uMdCh57OWqYEdzs7CERLZqui5aIzEmmILNUnqqmAcMW4Y
ErPWb74p8VWaEv9hUxIrNkXIWdaSGsF6XtnsRyEkkN81+yGFQerNLKovDpndMgtW/3xHII08a92L
LevPrBBfzUcSA32Rv+sjzeqjVUhJfYfSEr9tddcIBTlZ4jv+hW8khiDS+Nu+0V7nf+8SoXZAa7Pj
H7tEUEPaaCw0rJVmRRIhhkSIS86R91mQ5/O/lveJEH1cam4i/BY4jKgUVuMykMPACQT39N+eQF2M
G5xU3yxiwd/O3v9D6Tv6HzQqSHP/+XnwT5z/EuN/gXaytNTv899fkX5i/RcZyD9zLvAj/19CYi7+
m4SUtIQUuP7i0pKo3/bfr0gr+v97PF2cXd0g52kWVGTOyyKNFbwsrPBsoZXjCs+GoF7uti+KR63r
DrY37xfRrRy6/t/FWIZABIyXRrOfbd55Ja9xbljfiXT8/cERzRrSkc1HRCaaCFDbdCQx74mwF8vC
/M8DiMwFosYZgV7qLEmTuXpEIIPvVyM0TghcvRluA6ry2WNiF2ecHWElXUGL2gMNNg5aSZaz/cAR
Zmx+SRBwZ6/FccYJUAFgh1RdQXdY5DD0xIv0iSHdPwIagKp4LVQhgmrM1oHog/8ILkcBAVslhJyf
nQ5o0bfPzyn0FxGRYC4btSgbRcj22vJ/IWD1T8h/iIf+0Wnw9+U/Ciktjlqi/1GSSLHf8v9XpO/K
/6XYUouOmFbC4Zott+RsjqTk5s2z8g4HdwP9CridNdzNFjMvZDzsXN3c0Y7zrpmdk4sjxmke18gO
B0fDcaB3CLrsOBdHOzf4ImFLFFEIuDXky0Okndwd3exACiBdzDFoSDiRlfGylkjtBdiOZRBjFj9R
lPBaEWNFWgYcvyIWjnZ1RXvBna3hGAgDZ75z88OfF8R2WML0LGoR7YpBI0ARTZxFNAm12UnGwY0O
IwxNwMpWGE+weQsvApG5OcUSkE9WmYh5HbEIFm3Z0NCrlFtYX3ChHKGzUrBbaEdHOM7dBRoi2JtZ
XeOExqIhda5mh3VbDcRsvs486MUcQht6Pm85nhx63xKtuRIy3VIQtuVllgBDLS+wMg7c8nIrY7ER
pkrJ3c7RirA4kGydA9cirqe1s+vidXdytsLA0ZaWzq5W0PkIqJrtsNDhLLEH1uCetIKj3eC2bm4u
uJ2iojgXjKWd9ey7GpyINUh7Lnyvs6uN6DGn7VAJUZSIuCjaFYnCIcVFbN2cHH+AcUb334NrtgjL
bFU0sxXxzJYjmn0X02xxDRSp2UXK1T8GOPuXYCM/AjdbFQ5tVQC1leHQNsP1tFS0dhIYB5LaEFuR
To4HtHeJLDInhR1BYQIdWYGssh06xYPEriVYwM4K4wptOIgofBUgvmV5JBB8i/MWg++tlDcPu0dg
j6U8gVxgl58Bcvv78HAERllgiVngt8UQb3PAb4vh4BYBv81jkM2Bv5Hw4c905mcGuVLHfxqxbmnH
F7/yBKWX678R9Av+1bwoJ3Ec56Q9iXNFIvNJBAXJw7+7JQm4RMR9qauvDTmFe1T4TbbQLcMmWqRl
vguoQ2oXfdf9XWw8zBVd1QOeB/IjKrV/MMJlksdkQYYvZzxCMz8jeogVVpY8cwhPs4xHaG51OKFF
U/hjV3v1iVzubS96I7po/60yDcSGjecQVudLLh//XEni4KCCBEWOwVopO0LCShODw4Hcr+e8sDzC
310dBNxokW88O2+IJe7vVmJnSLj2B8hRiwzy/wiLLoGj/GkmXRUDa55zFjANCZRXQcciXBFYPLzv
s88PWOcfLeB898EFJBG9swctxDsRCxS2kPLgSrNJcj60OjDcCvBoxIsI8yCEKhhrNOgBQU8XhCp0
jWXe0edfJm0JBg+BziKr+5+t6gFFzT26pMbOMkDolVBLZxlxthcEzpv9PWeVEXThEiOIUEKE2ARR
fc7eSCHM8mw2QRWSTAsCGqGwJeGCiomIurMdVpgfzk+AzZxT1nPuDIHAd1gQ8vX2YEEPzhkLOaxE
W/nfbIl585ho/hAoLSi+pX4oyXu6BdTXH+EK/k0UV7oVMFzpvg/iurAHCF36j8O4fl/crbzFSdxw
ErNi3kufn9sVlpI45XMl5+d63nWYsxiWrMoPujk/RyQ9JPGlSUyfBceEMEekKzxvrCzM+M8cW/7E
+R8k9/7RAeCP8H+gw75F+B9iYtAx4O/zv1+QVjz/Uyb8Pgyh/Cw9zrCcAxiFrsyBponjLBztSnDW
Nhi3/wOopf/TK/jv0g+///kF978lpebuf0ugJJGE73/EJH/f//sl6Uf3v2e/t1l6IfhvXZv92ZvD
pHDTxBvDi5Cgl9wUFob+nrWO5j/lmb3tTZAWq183XuXas8Y/GOXqwyRe0F4MXf0rx7TCvemfGdWi
bmqgcW6z16p/sm8kNZf1cH7UxDvRpK4aQQH8jdvUP7iPvfza9dwgfubG9ZJvIP42/8+Pb2Eu/9e9
U14N/83VGZqf/0wbP7L/xCQX3v+KIZEE/Mff9t+vSfP3v7WJK75wBVyXCAEqR0SINMC44kA7T44I
EgmytYszFtzocvNokYseQbiRix4QECQXPSHFktRDW0DI7nJidBporI07SE4OgzXT16XTRls6QKfH
cqj/RVvm/6u0yv63ITDFr8d/FBeTECfi//7Gf/ydfqff6Xf6nX6n3+l3+p1+p/94+i9glPXAAKAA
AA==
</salt>


More information about the User mailing list