From groupdav@opengroupware.org Tue Oct 3 09:02:27 2006
From: groupdav@opengroupware.org (Samuli Sepp=?iso-8859-15?q?=E4nen?=)
Date: Tue, 03 Oct 2006 10:02:27 +0200
Subject: [GroupDAV] Syncronizing Evolution and OG using Gnome Multisync and Funambol GroupDAV plugin
Message-ID: <20061003080228.45A5ACF907@portti.tietoteema.fi>
The connector log reports the following:
----
net.bionicmessage.funambol.source.vCalGroupDAVConnector
beginSync
Begin Sync: icalGroupDAVConnector/my_deviceid_sasepp/mode=201conflict=1
beginSync
No What does the connector log in /opt/Funambol/ds-server/db/calendar/
> say? I tried Multisync SyncML a few months back, and came to the
> conclusion it doesn't work since it doesn't fetch linked items from
> SyncML -i.e Funambol might provide it with a url like
> http://server/funambol/ds?some_data, but Multisync won't touch it. The
> connector-*.html will probably show no getSyncItemFromId(). Events will
> reach the connector regardless of
>
> I haven't had the opportunity to use SyncEvolution yet - but from
> looking around, its interesting as its another connector (like NextHaus
> for Outlook if configured) which sends in native ical2 - something I
> might implement in the near future.
From groupdav@opengroupware.org Tue Oct 3 12:44:19 2006
From: groupdav@opengroupware.org (Mathew McBride)
Date: Tue, 03 Oct 2006 21:44:19 +1000
Subject: [GroupDAV] Syncronizing Evolution and OG using Gnome Multisync and Funambol GroupDAV plugin
In-Reply-To: <20061003080228.45A5ACF907@portti.tietoteema.fi>
Message-ID: net.bionicmessage.funambol.source.vCalGroupDAVConnector
Begin Sync: icalGroupDAVConnector/PN70U486V18Y_bflong/mode=200conflict=1
getNewSyncItemKeys()
getDeletedSyncItemKeys()
addSyncItem (2510854)
endSync()--Boundary-00=_LXnLFN+9DYZ20jz Content-Type: text/html; charset="iso-8859-1"; name="connector-1160161609636.html" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="connector-1160161609636.html"
Begin Sync: icalGroupDAVConnector/PN70U486V18Y_bflong/mode=200conflict=1
getNewSyncItemKeys()
getDeletedSyncItemKeys()
setOperationStatus(Delete,200,2510854)
endSync()--Boundary-00=_LXnLFN+9DYZ20jz Content-Type: text/html; charset="iso-8859-1"; name="storelog-1160161563618.html" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="storelog-1160161563618.html"
G= roupDAV client init()
We sent: PROPFIND /groupdav/ HTTP/1.1 Cache-control: no-cache Pragma: no-cache Accept-Language: en Authorization: Basic YmZsb25nOmprc2U3MzRq Content-Length: 84 Host: localhost:2000 Depth: 1 Content-Type: text/xml;charset=3Dutf-8 Accept: text/* <?xml version=3D"1.0" encoding=3D"utf-8"?><propfind xmlns:d=3D= "DAV:"><allprop/></propfind>
We got: HTTP/1.0 207 Multi-Status Server: WebCit v6.82 / Citadel 6.82 Connection: close Date: Fri, 06 Oct 2006 15:06:03 +0500 Content-type: text/xml Content-encoding: identity Content-length: 1624 <?xml version=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DA= V:" xmlns:G=3D"http://groupdav.org/"><response><hre= f>http://localhost:2000/groupdav</href><propstat><= ;status>HTTP/1.1 200 OK</status><prop><displayname>Gro= upDAV</displayname><resourcetype><collection/></resour= cetype><getlastmodified>Fri, 06 Oct 2006 15:06:03 +0500<= ;/getlastmodified></prop></propstat></response><res= ponse><href>http://localhost:2000/groupdav/Calendar/</h= ref><propstat><status>HTTP/1.1 200 OK</status><prop= ><displayname>Calendar</displayname><resourcetype><= collection/><G:vevent-collection /></resourcetype><ge= tlastmodified>Fri, 06 Oct 2006 15:03:15 +0500</getlastmodifie= d></prop></propstat></response><response><hre= f>http://localhost:2000/groupdav/Contacts/</href><props= tat><status>HTTP/1.1 200 OK</status><prop><displayn= ame>Contacts</displayname><resourcetype><collection/>&= lt;G:vcard-collection /></resourcetype><getlastmodified>= =46ri, 06 Oct 2006 15:03:15 +0500</getlastmodified></prop&= gt;</propstat></response><response><href>http:/= /localhost:2000/groupdav/Tasks/</href><propstat><status&= gt;HTTP/1.1 200 OK</status><prop><displayname>Tasks</d= isplayname><resourcetype><collection/><G:vtodo-collec= tion /></resourcetype><getlastmodified>Fri, 06 Oct 2006 15= 58;03:15 +0500</getlastmodified></prop></propstat><= ;/response><response><href>http://localhost:2000/gro= updav/Global%20Address%20Book/</href><propstat><status>HT= TP/1.1 200 OK</status><prop><displayname>Global Address B= ook</displayname><resourcetype><collection/><G:vca= rd-collection /></resourcetype><getlastmodified>Mon, 10 Jul = 2006 16:40:04 +0500</getlastmodified></prop></propst= at></response></multistatus> =2E...in 5ms
Split=3D<?xml ve= rsion=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DAV:" xml= ns:G=3D"http://groupdav.org/"><response><href>http= 58;//localhost:2000/groupdav</href><propstat><status>= HTTP/1.1 200 OK</status><prop><displayname>GroupDAV</d= isplayname><resourcetype><collection/></resourcetype>&= lt;getlastmodified>Fri, 06 Oct 2006 15:06:03 +0500</getlastmo= dified></prop></propstat></response><response>&l= t;href>http://localhost:2000/groupdav/Calendar/</href><= propstat><status>HTTP/1.1 200 OK</status><prop><dis= playname>Calendar</displayname><resourcetype><collection/= ><G:vevent-collection /></resourcetype><getlastmodifi= ed>Fri, 06 Oct 2006 15:03:15 +0500</getlastmodified></p= rop></propstat></response><response><href>http= 58;//localhost:2000/groupdav/Contacts/</href><propstat><= status>HTTP/1.1 200 OK</status><prop><displayname>Cont= acts</displayname><resourcetype><collection/><G:vc= ard-collection /></resourcetype><getlastmodified>Fri, 06 Oct= 2006 15:03:15 +0500</getlastmodified></prop></props= tat></response><response><href>http://localhost= 8;2000/groupdav/Tasks/</href><propstat><status>HTTP/1.1 2= 00 OK</status><prop><displayname>Tasks</displayname>= ;<resourcetype><collection/><G:vtodo-collection /><= ;/resourcetype><getlastmodified>Fri, 06 Oct 2006 15:03:15 = +0500</getlastmodified></prop></propstat></response>= ;<response><href>http://localhost:2000/groupdav/Global%= 20Address%20Book/</href><propstat><status>HTTP/1.1 200 OK= </status><prop><displayname>Global Address Book</displ= ayname><resourcetype><collection/><G:vcard-collection= /></resourcetype><getlastmodified>Mon, 10 Jul 2006 16:4= 0:04 +0500</getlastmodified></prop></propstat></re= sponse></multistatus>
We got a h= ref:http://localhost:2000/groupdav
We got a hr= ef:http://localhost:2000/groupdav/Calendar/
We found a calendar: /groupdav/Calendar/<= /p>
We got a href:http://localhost:2000/groupdav/Contact= s/
We found a address book: = /groupdav/Contacts/
We got a href:http://localhost= :2000/groupdav/Tasks/
We fou= nd a todo: /groupdav/Tasks/
We got a href:http:= ;//localhost:2000/groupdav/Global%20Address%20Book/
We found a address book: /groupdav/Global%20Add= ress%20Book/
Sync started....
We sent: PROPFIND /groupdav//Calendar HTTP/1.1 Cache-control: no-cache Pragma: no-cache Accept-Language: en Authorization: Basic YmZsb25nOmprc2U3MzRq Content-Length: 121 Host: localhost:2000 Content-Type: text/xml;charset=3Dutf-8 Accept: text/* <?xml version=3D"1.0" encoding=3D"utf-8"?><propfind xmlns=3D"DAV= 58;"><prop xmlns=3D"DAV:"><getetag xmlns=3D"DAV:"/>&= lt;/prop></propfind>
We got: HTTP/1.0 207 Multi-Status Server: WebCit v6.82 / Citadel 6.82 Connection: close Date: Fri, 06 Oct 2006 15:06:03 +0500 Content-type: text/xml Content-encoding: identity Content-length: 534 <?xml version=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DA= V:" xmlns:G=3D"http://groupdav.org/"><response><hre= f>http://localhost:2000/groupdav/Calendar</href><propst= at><status>HTTP/1.1 200 OK</status><prop><displayna= me>Calendar</displayname><resourcetype><collection/>&l= t;G:vevent-collection /></resourcetype></prop></props= tat></response><response><href>http://localhost= 8;2000/groupdav/Calendar/oxygen-4526a776-a74-1</href><propstat>= <status>HTTP/1.1 200 OK</status><prop><getetag>"535= "</getetag></prop></propstat></response></multis= tatus> =2E...in 15ms
We got a href:http:= //localhost:2000/groupdav/Calendar
We found a calendar: /groupdav/Calendar/
We got= a href:http://localhost:2000/groupdav/Calendar/oxygen-4526a776= =2Da74-1
We got an etag: "535"
We have the URL: /groupdav/Calendar/oxygen-4526a776-a74-1
=
We sent:
PUT /Calendar2510854.ics HTTP/1.1
Content-Type: text/calendar; charset=3Dutf-8
If-None-Match: *
Authorization: Basic YmZsb25nOmprc2U3MzRq
Content-Length: 277
User-Agent: BionicMessage.net GroupDAV {0.9;Java}
Host: localhost:2000
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//BionicMessage.net GroupDAV//Funambol Connector//
BEGIN:VEVENT
SUMMARY:Cable Install
CLASS:PUBLIC
DESCRIPTION:
DTSTART:20061009T130000Z
DTEND:20061009T140000Z
UID:2510854
LAST-MODIFIED:20061006T190603Z
END:VEVENT
END:VCALENDAR
We got: HTTP/1.1 200 OK Pragma: public Cache-Control: max-age=3D3600, must-revalidate Last-modified: Fri, 06 Oct 2006 15:06:03 +0500 Set-cookie: webcit=3D313135323232323130307C62666C6F6E677C6A6B7365373334= 6A7C43616C656E6461727C; path=3D/ Content-type: text/html Server: WebCit v6.82 Connection: close Content-length: 288 <html> <head> <title>Error</title> </head> <body> <div align=3D"center"> <h2>Sorry!</h2> <br /> This site requires both Cookies and JavaScript to be enabled in your browse= r.<br /> Please enable these features and log in again. We are sorry for the inconv= enience. </div> </body> </html> =2E...in 79ms
We gotHTTP/1.1 200= OK Pragma: public Cache-Control: max-age=3D3600, must-revalidate Last-modified: Fri, 06 Oct 2006 15:06:03 +0500 Set-cookie: webcit=3D313135323232323130307C62666C6F6E677C6A6B7365373334= 6A7C43616C656E6461727C; path=3D/ Content-type: text/html Server: WebCit v6.82 Connection: close Content-length: 288 <html> <head> <title>Error</title> </head> <body> <div align=3D"center"> <h2>Sorry!</h2> <br /> This site requires both Cookies and JavaScript to be enabled in your browse= r.<br /> Please enable these features and log in again. We are sorry for the inconv= enience. </div> </body> </html>
----------
UID:oxygen-= 4526a776-a74-1
URL:/groupdav/Calendar/oxygen-4526a776-= a74-1
ETAG:"535"
NAME:Go HomeDATA FOLLOWS:BEGIN:VCALENDAR PRODID:-//Citadel//NONSGML Citadel Calendar//EN VERSION:2.0 BEGIN:VEVENT SUMMARY:Go Home DESCRIPTION:notes? we don't need no stinking notes!! DTSTART:20061006T210002Z DTEND:20061006T220002Z TRANSP:OPAQUE UID:oxygen-4526a776-a74-1 SEQUENCE:1 ORGANIZER:MAILTO:bflong@longbros.com END:VEVENT END:VCALENDAR--------------------= pre>--Boundary-00=_LXnLFN+9DYZ20jz-- From groupdav@opengroupware.org Sat Oct 14 09:04:29 2006 From: groupdav@opengroupware.org (Mathew McBride) Date: Sat, 14 Oct 2006 18:04:29 +1000 Subject: [GroupDAV] Citadel, Funambol/GroupDav, Synthesis In-Reply-To: <200610111207.42676.bflong@longbros.com> References: <200610111207.42676.bflong@longbros.com> Message-ID: <45309A0D.3040805@mcbridematt.dhs.org> Hmm, how is your source configured? From the logs you sent me, when it goes to add an item its going to the / on the server instead of /groupdav/Calendar/. http://comalies.citadel.org/~matt/funambol/samplefunambolconfig.JPG is a sample configuration for OGo, for Citadel /zidestore/so/.../ gets replaced with /groupdav/ etc. I've just got the WM5 emulator and the Funambol 3 stable bundle up and running, there does appear to be an issue when syncing clients for the first time which I'll get back to everyone on soon. I tried adding a fresh item from WM to OGo and it did work, however. I suppose there could some behavior changes from Funambol 3 b5 to stable too. Benjamin Long wrote: > Any idea whats going on here Matt? > > Benjamin Long > From groupdav@opengroupware.org Tue Oct 17 18:04:20 2006 From: groupdav@opengroupware.org (Benjamin Long) Date: Tue, 17 Oct 2006 13:04:20 -0400 Subject: [GroupDAV] Citadel, Funambol/GroupDav, Synthesis In-Reply-To: <45309A0D.3040805@mcbridematt.dhs.org> References: <200610111207.42676.bflong@longbros.com> <45309A0D.3040805@mcbridematt.dhs.org> Message-ID: <200610171304.20849.bflong@longbros.com> Matt, Sorry for waiting so long to check this out.. Indeed, I had my sync source misconfigured. Not sure how I missed that. After correcting it, I am able to sync from the palm to the server. I'm going to start using this every day now so if anything else breaks I'll know it. I still need to setup to-do syncing. I guess contacts are the only thing left to get working. Thanks for all the effort on this! It's really looking good! Benjamin Long On Saturday 14 October 2006 4:04 am, Mathew McBride wrote: > Hmm, how is your source configured? From the logs you sent me, when it > goes to add an item its going to the / on the server instead of > /groupdav/Calendar/. > http://comalies.citadel.org/~matt/funambol/samplefunambolconfig.JPG is a > sample configuration for OGo, for Citadel /zidestore/so/.../ gets > replaced with /groupdav/ etc. > I've just got the WM5 emulator and the Funambol 3 stable bundle up and > running, there does appear to be an issue when syncing clients for the > first time which I'll get back to everyone on soon. I tried adding a > fresh item from WM to OGo and it did work, however. I suppose there > could some behavior changes from Funambol 3 b5 to stable too. > > Benjamin Long wrote: > > Any idea whats going on here Matt? > > > > Benjamin Long From groupdav@opengroupware.org Tue Oct 17 18:32:49 2006 From: groupdav@opengroupware.org (Benjamin Long) Date: Tue, 17 Oct 2006 13:32:49 -0400 Subject: [GroupDAV] Citadel, Funambol/GroupDav, Synthesis In-Reply-To: <200610171304.20849.bflong@longbros.com> References: <200610111207.42676.bflong@longbros.com> <45309A0D.3040805@mcbridematt.dhs.org> <200610171304.20849.bflong@longbros.com> Message-ID: <200610171332.49549.bflong@longbros.com> --Boundary-00=_BPRNFmEOC7M83yQ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Well, that didn't take long... I synced a few times to make sure it didn't break before I sent my last email. After that I added the sync source for the Tasks. On the first sync I got a 51x error. Ok, so I disabled syncing for the Tasks. Got a 51x on the Calendar sync. Now it won't sync at all. I've attached logs of the latest calendar only sync. I completely deleted my store directory before this logged sync. I'm going to do a full reset on my palm and try again. Maybe there is some half baked cruft left over from the bad config or something. Benjamin Long On Tuesday 17 October 2006 1:04 pm, Benjamin Long wrote: > Matt, > Sorry for waiting so long to check this out.. > > Indeed, I had my sync source misconfigured. Not sure how I missed that. > After correcting it, I am able to sync from the palm to the server. I'm > going to start using this every day now so if anything else breaks I'll > know it. I still need to setup to-do syncing. > > I guess contacts are the only thing left to get working. Thanks for all > the effort on this! It's really looking good! > > Benjamin Long > > On Saturday 14 October 2006 4:04 am, Mathew McBride wrote: > > Hmm, how is your source configured? From the logs you sent me, when it > > goes to add an item its going to the / on the server instead of > > /groupdav/Calendar/. > > http://comalies.citadel.org/~matt/funambol/samplefunambolconfig.JPG is a > > sample configuration for OGo, for Citadel /zidestore/so/.../ gets > > replaced with /groupdav/ etc. > > I've just got the WM5 emulator and the Funambol 3 stable bundle up and > > running, there does appear to be an issue when syncing clients for the > > first time which I'll get back to everyone on soon. I tried adding a > > fresh item from WM to OGo and it did work, however. I suppose there > > could some behavior changes from Funambol 3 b5 to stable too. > > > > Benjamin Long wrote: > > > Any idea whats going on here Matt? > > > > > > Benjamin Long --Boundary-00=_BPRNFmEOC7M83yQ Content-Type: application/x-tgz; name="groupdav-connector-logs.tar.gz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="groupdav-connector-logs.tar.gz" H4sICPMSNUUAA2F4MlVHYS50YXIA7F17c9pItt9/L1XzHVS5Wxtmry0kgSRgMRsH44RaG7sMzuxs KpVqpMbWjJBYSdjxTu13v6cfEiDEG2Ict1MVpJZ0Tvfp0+fxU3fL8j0PW5EfHKuqoaqKXtGKZU2V 76OB+6cd/SnwZ5RK5Fc1dWXyl/wViyX9T8BZ1bWSripwn1rSoUhSdlWBRX+jMEKBJP2p13d9727+ fcuuv9C/2rBeu9fqHo7knuN7jjXAYYjusNwfeWjQ81059EeBheWHBnI/BP5oeHb6qRErTa0AjxMK xXoP3zle58mzagU4iy8MA1x/T65I5NJf/lcv/01yrAxKheu2qdyWysYntfzrVybswsC38YmmqJbv 9V3Hik5UoAsUJ9je4ejUdQnxVoQH/8BP4Qz/2VvyP2fRaePHZXRSt2TTOcMujrC9jFbGbRn0kJ3c MUNk4pqU12DolA11YwrbclaejXPp2Tjrz8bZeDbO5rNxLj8b58ruOMPAj6+dB/6gZWeZhuk7Foyw LahlWIoQR1dDHKAIHEEnQtFo1m7N3pI/te0jsNFHcyu5C7IZtcWeneluePmkLX1uJ3vAf7Gb/2qH suvvJ75ZGP8VDdM0S6n4r1g0TRH/fY+/z1dWJKnmkaRBH0lqVdOrWlG6vvzyOQkAowB54dAPIkgK ouEX6bzVbna6VekjnEn3GNk4qEq5LQjd+2FUldSKJqtGWVZkvVpWyso2FC1k3eNjCBujwHer0jBw HlCEt6E4CnFwDHGxBzUF8xLd49AJaVB7eSE1XAcuFDS5Av9K0mfsfZHy18gdXHX+JrV+3oYvsiw8 BJ5oOIQImBrIwoNnyyFwHrj/923gHs279tijV/9a+Ov2FTh2kXc3gvZXJeztgJx1jwIw+iDXqH9c 3qqroZNB+MfR0xDPFRMVxS64uNi7i+6rUtHUtiE3QN+O+37wiAI7BM3fStcTStgmR0CuZMiQQcua IVfUXVFmY/SOpG2PTojlEIfY8mXLH+yKAwywB2JJ1uMhtdrnV2CLkGe7jncnOR7cTg4C/O8RJnUm HKuFQtq8FOLKFexwKfkbRgzbEtQpBOVq2VXJG7m70Knu91Dci93oLbWrVemP/25DpINRYN2TPrr3 XXAe0qMT3U8KtnHeLDaMU91onOvNsqaUmkVNbZ5XtNL5WanUPNuG+UfG0vMjqe+PQNDSqeThx3FV XFfqYckKMDgMextODRcjj7RyGPgWtkcBlmV5G4Ke/wiDO0HpdF3fqnoXzdN2q/3h63XzpnV1BqpB w7FtSLoojOJWd50BDBg0GCZVNhTVMIvbxQmkjwjlrn/hPIAiqtrWlb7GAdggajKGo+AOfrfspgZi yr1Mi/NgqOQ51GRmDOUL30IUuWJq+07HvX6lslJAwSiMq3XJcD3pHoWxUZB24zPTnBq+B+eRAww4 mCj1IfWUKEEp8qVN6ULMcEyDBmJ5pTz5/whYgOA4bRv3HQ/bW8kH6kf7woXxD96EnN7jONDze79h K6rmauy8Tn8/2kG99gkHZ92zuiprtQI/JmXXgR/5dXZ3Ib7ICmsdbvHgKU2vFcantcvwjpTWCuyg 1kUB5PH1GqjD7U2rzj1alqOc9Gq1Ar+/VogJdCiWmxCaxFzHd8NvGw1wnWU8tJyeQxX5440A21BL HKF67RwGD4rqPaNUK/DjGnFpdaZGVTSK7o97KHQgU6fl0Cr64BmC/38d/Cvsabp3NRgGlnZbvPzP zb9rBXqpVphkc4m+gTA6zn9wnY55oDIuIVever/RY6MUX41LYoaFpLPIwXvffqrXPhCpNAY2Ezc7 4BxpZbPHxrGNHxyvz4ZIqlkEaZnpMbnAnlC1jE4psEcKtC6nLgyduEpaUiUqEY2oCZNNJhfLgcAa ucv7XS7gBxj/kxoS38EacepZ9z4I6gIsOpG3oULG3lVNRSmZ/4KnSHGtjb9NXdT0ogYXaXGtEJNY rWu4CHjrzx0PuXAa/477q8AH3iYjvAOJfsRixOEogljG8z3nP7Rv1yVHrLzrjmkNnSGG05UyTIjE 4E45fiSjfsMA05gB7IF3txXJKRdD4x3aXKrGLo5kMKneHWZ9fxs4HV4MFbhmFeBWMQ8+cSWrOrcm jJPEFBJUjplWJj3a66SuA4jiFwTjK7DxA+eOKI0UMUaBA0Jgw2IX1WeSusH9yeozwHI39V8kJtI7 ++dyiYa7YXKdaDGkTTwQqEq1vxNHDQOJ+LqTN6qsvJEw5Gw2qPrJm9vu+XH5zd/riYPNJR42l+Vi c0t8bG6+k82lvWwuNqe5Tf1sLjG4udji5ha62txcX5tLLHKOedscs8y5LH+bW+xwc9zK5pa63Bz3 uQmzhV43t9i2j9kWxn2YWPIcdb25tO9NOK/pfcfMqCeZ7csMDzzZXQX+WIHVivmhXNoN59J+eC67 tCtepBoz3niy83mrmDclkbMXnrzhPT3A4C76bwilBX46t9BR5xJPvXp3xrKKpTTtrnMT/jo3dtir 2JJ7guJMumxrFAQkUYFMMgLj0emedptf4f+b7grkxmRuwXeTwN66x9bvVYkNtvUpvGUPvmXIwfrP k5EJrSEavUqkMGlKHc9yhuDWeBWmZkssrQ8HsTIelVz/7g7Ms+OtlPLO9M/AfyABC4iW9hDvoOt/ fFC/3jQbzdanVvvDRoSvk/iHpl+O50QOcnm0toF/mvR9oAM0cutT0hARIbCWOBUrBWCFH/3gdzm+ Lp/xg3dq0ULY/Ax34hM+zo9IJn1SIxlp/Sik8UCDzV1RjlgkcjKHvOUHWGam4Z1qYBX+jtiMm4VP MPvwTtU008T2EaJDeOETbJS/U3Hf1M3+0TBWqZNJfSgwHfkiOSHInMqHhb1jMblOGC1QFq5rGUSr YxpvudhWH0kz3diFqln0tYv0iMB4Eh0McDgaYAmRAPrB8SEmI4YSeARZrHsQ7EADA9Cu0HsbzTyW ENxsaIwh45h3WJU+70PJdKX8IpXsyyb9jmwSKc4brDwY5VPWLvHAD56IA+ItQf1yCUvH0h9ErEli cMRxsJH3u+c/ekfSaCJrWAnpnun8SSMzjpjIqHJJL4Azgkfo8BqAaRuMBlJIroejIYEAQWd6T5OD L6/pirJS/rW6hS6uZ6HTyfRtYpvJ5DznbhTQlyO0uiA/6m0phk7vucHhECKbjVA/nmj7o2gPmbYf RjtKtW9wNAoo3j8YI4mc9stKe9ZPVeaGthtkUAkJrjOr0vjbb/wNkmOfLIPea4WY+LzkhOX0mflJ eAf5P5cfOaL3kAOF3pQU1TlhWpqImVxeWSrjR2LRkuPp/hmXx9kJSXHidC5pR6pB2ioNUlMNgtxo tjGTidVkfVldSBKxrC7FVeqipepCc4/Z2iR5V7boxqnWjNjAi6aTOn62JPdaNbtK5BCnT4kYQBlH bjQWSGndztlRzjybmGblzMldvD1n+KHl9VPiYQ++mWe+LpFXP+eaTrJMj5T5dv2sI3Wo/YdCn/Ts VfOyflwrkB/IMx8/kRPyA5WF/3UZ1KtDTz+yax/pCanSWb2fMGDntBxaXg85C36aq912G5C+kv+B LvPBF0R/IPcNCeacLkruao8GPRxc9RmgNnFv+gKTVieCIGlKIRN9ndJHJxy66Ila1+SGyUKaqn+4 bZ3RzLyo0UQ9OQeF+nZ8HTBl6dKujkAZC9+OH4AS9mxEbFKX6wD0SaML3aPQ7oFD6OLx890tKY2f J9awgYb8iD6iMuPLH08OteziYnZxKbtYzy42sovNqeLCuK6FyW4rMFXPGsvjITwNHelp6EhRl0FH WXDQXAebgTNtAh3xV/TFsq7ryjRuNDHhoKwfImi085cfEBPu+u3HDYaxa8WIe/L+gMe0u3yBEHNK vangnJia7oPTFJsdvtBZwGXt9yHp1OJqFN35ExG7CNNFmC7CdBGmizBdhOkiTBdhugjTdximz5su mw7CpHiJRdncal0IrbD7tNVccbHASSxweqULnDSttNXyArHC6QdY4bTPhTjPsfppW6WOlz8tk8vJ xks7XvzCqpUndIj1KS99fYq25fqU9aCgfa1l2evyEo4dzK4wSeMFs+DULDY1gZ9MN3ZcPpGyroxe jR9Jg0EJ9pFqh7a8HaXpdvC8i7djEugZQxfr16O4vB76dD0m4KgpbCxO5TIlmZH8z9SQrV9hx/HK l7l52XhxTNw+vvwlaSZ0ez2NMu1jtQ9H1+vpNHhyCdQslJCx3inFkm/aksGRNvh980OrXf3UOL1o ts9Ob37KfWredFpX7aoqKz/l+NXmp2a7+1Ouc3t5eXrza9Xv9x0LS8N73yN2L4wgu/sp17g47XSq 17fvL1qNn3JnzU7jpnXdJaTgrEtnClc56FfpqnSxKLkAbCeKVVZMCmOu9Hhcv3RHJXJLCdDYrQCV XQoQEhxpiILoaR2paUpXrcxKDYo1ZWdSM3crtdLrkFp5t1LTX91grexWgMbrUDtV2a3YzFend2rm SuPNJVh+JYqn7VZslR9f8QoskBTLqcVy6sNe9pws2w5jTgmquSyB3TnfcU66c9I7XIm+5xXie15H L1aeT+JnG6883whB29Mq9e+wYnyvs73mQWq57TC1dWZYrTTbq5Rq0BS0lluKre18xpe+2oyvLIxt +QybdFXXn/G1bF7E/OleNHbKmOu1t6X+cdiWMSllcubYnIh36TSxNCY3M0fspca9U/N7YhGmhWns Q5jKboX5bLnXShI09yHB0muSYHkfEtRf6YCu7EOYxmtSxzGSt0sRmq9UH9U5exhtJ83yq1JIbR8i rLwShSzwgPU778a0/lYSM3TZWgIJjZLdkWwpD4k5JkQ22/YitX/QnQNhN93W5T5IUMoYGthMFmzv GQbuLNjZZQ87kqy0b8rCLUnYtjcoYLsfkSlFyLbZfhV8BxxSvqHgMRiY77tFC5vnNq8H2FY2wOGd quN+SUeryG/coLYvDdBwSFpEEV+6ndDFbeusKvGMarfkVpkpuwa50m7JrTJ9cg1yxm7Jmbslt8q0 7TXIVZZOwk1eWaQt1Ypbkqc3S+okZOiAZMNFyrPtreiA0hR1jRcR05T5kly2r5Dfn9haywmlxlX7 vPXh9ma1SaWxUYgCoHX3NDVXk375j2zF5bsjKgyyd//EpkNEzAlrmW4MZuM+IuucH5A7orsujQgS nCd1Av/cBXfVubq4Je75a+OiBY726y+tdmeBIOJdzRLjFrr+40wvgQyYWZva4CzI2gxtcY9ydmR9 jwRU1oHcZ0UIz5NgISQfGAQ/Jf0h/Y6fPhHJJCZH+q90JGVcUOHCRrt0Jc6GOF+gGkL/ke2RoBfY nGSqM2/bbyXwH/S7ARLbXUx6S2bNvt2qwXyXR9I7pOGn6fd2aVfU4Te2BkP3nWoZet/8DHU+mSOQ I1ABcP0gzhM6w5cMemwnp326J2u8TRvdsi0dvx5F8ccRyAaBxrGqHKumpBZZK2XdLB5NLse4j05U 06Q7vuGT9tEw8Idk+jIOT/64vrm6bt50f/3auILotH22cHM2Hiq+M5CO+tYRGaJdovud1r+ahMN/ vyQye7/610320w1mzwRPPa8blOfqBsPYXTeoatHq62q6HwzjkPqBJH6GVZnXEaUfoSOQXcbl0mH3 g2GWy1ZpXjfoP4JZUkslVa30DtsuqVhRtWJvXkcYP8J4UC1btfv9wx4QqmGVS+X+vI4wf4gRYRaV csU+8BFRRMjS53ZE+YcYEQqy+ppx2CMCGYqBjXn9UPkRBgTGpqE/w3Cg6/kmWKwTyFYspOHdBrLx cdIXvCAl+ngVJSWT1QerIYnfR06qVe4V1eJuE68DEZQff9p6OU5MZJJ8CZs7uhIuYu3z6bwRIrLY lDE4er+OqJCt6bYyK6r2Vfdr85+tTrfV/vCdle+fKeU7ShTopN385cgJTxMVOekjN8RQ9H5cFAUj UnKGXRzhcz+wsM1u+3K0wohMaV/Z7ulldT3te93J+3rqVzZLPTvD7An1o9IpFsvgFNazfa8aslhP +2yjYvUzYnehfVSTbNtAhrme+r1upGY99VPNEsJYF/o3z/kahqKsG/q9boRqTQVUKroF4Y1QwGwF rJRLFRif6yng60bm1lRAtVdGRsZoFQrIxGOZyFzXAr5uRHLN9Bfhop4RLAv9Y6pUUoumtZ7+vWYg dk3rh3slVcR/87SvWNR6FbSm8TOLqFI68JRuLSU5bAR9kXpwXXg/qzA7UQ9T6dmWsaZ69Hq62rd/ IPU48BcHO9OPBa8gpmYnJl/IHRIS9vJZhlOTRNeaaJrxqqP5DVujaPn0b/GeQ7zn2J+r3W7KMXmt KTkgN/pR1q1onWHLRfTLqPzzr6T1MMbC350h+3gqYbYRi07zU/OmCSMuCPxAwsm4o5O7E0GyDyWH 5MsIEnIDjOwnusMu8vhesRLdUDtrUdPGDb8Bph9vrn7JrbQCZDyTvPmN7Jy+ZaX/B4GK4UjukV0x LL7CZ1wLzvShgdwPZBeHs9NPDd/zgKYfyMi24yGTz77jN/SAqppm/kz5TLWPb+s8MfRKv3W4XGTS PW38mOhuPnWd0S2WK5sQnrKlmZRV1VibMtGjTGKmpq9Iq8k7ekyJl1A6eqk8nw7f14RpBzv+yJYa yXxrl0vfdvp8W+gwn3Efa7leVrbhQtfL8U2b5vIoaQuku5xHy3MiygcNl7Eqm1u1Zhn5kr6ampza aBhNNmA4iiZpx9e3IfrL+39eXswlWlSyxuBKO61nMkjfwzqWLI5ZkQkfKXBCdvyy/Ws/jPLThWyQ V/joIWff6NPkGiVFvjcS30wugHXLT5ax4adUtiNQVjRGwA/uZDQkW9rLMIyQ63iIf8V9vOH6ueOC zBv3yPFkBxx44CH3zGel+Tn3sXbqG3KxV6EOWe4S6p0IkeDN/iUgAUwAwc4DhhY8+L+DNmVdY7VW SyvSpQ81SEzzLeJ0yd4y+czrXJtWpX3Nd7RK1zcpZ/ZTU1akx6sxKYMW78t85j2svpXy5vQX0V2q GS9Rxh9hvGcKYHyB1bBoPk/rH8jtoUzDRcgtwH5NVXemnAcOq+rAJrVdVQ923VcsCsnsrclLvJaV H0hbCXswojh4j8KE2HQhpVTRMlrtP/kRliN/ADR1IEVOY6cce5vpUtZKI6NWjBZxWqpK3Zaq8iX7 fuKg8+ly5v8qc6uWJhf5lu/+mZ3yGH42JhpfyE8/GLtbfYYdE4EM+ZYrk1yjaw1/gcQGB917kqzI wchrRflr33fhStOzhz64Tt5F5uzwnyQXUQqhzCgREn9usI983Yw8D/VcTKjnx5cZWaNcGgcFMvmU lTyuS/6WrZrn23j+nGsguh6291SduH+P2Rd7LJRbDQ6pXNEC+r0+knSx03zmZe7uuRnae2ZHTBLk 51KxLA2A/TofoN4pGCamXYpplwINeyY0LNkl6eAhsHFNBe4lcC+BewncS+BeAvcSuJfAvQTuJXAv gXsJ3EvgXjvGvZalXALsEos8xSJPgXUJrEtgXQLrEliXwLoE1iWwLoF1CazrxctYYF0C6zp8bRVY l8C6BNZ1oFiX2FJKbCkl0C6xzlGscxQYmMDABAYmMDCBgQkMTGBgL0bGAgMTGNjha6vAwAQGJtY5 vgA4TOxwLXa4FniYmP0lZn8J5EsgXwL5EsiXQL4E8iWQrwOUsUC+BPJ1+NoqkC+BfInZX4cKd4nv aYnvaQm4S0z/EtO/BAgmQDABggkQTIBgAgQTINiLkbEAwQQIdvjaKkAwAYKJ6V8vAA8Tn/cWn/cW cJiY/SVmfwngSwBfAvgSwJcAvgTwJYCvw5OxAL4E8HX42iqALwF8idlfh4p2FUvgHaz10C5kKAY2 5oFdlR9h8hfGpqHvYOoX7pVUsfOXwLrE1C+BgAkETCBgAgETCJhAwAQCJhAwgYAJBEwgYAIBEwiY mPp1IGBYsaj1KmjNmV9mEVVKB/4lw7UwK7NiIQ3PQ/eU79yW9hpoFYem3s/iV5uhVWOduh3aiKoU aSr5vbhtnR1/gP+kt1wux/z3rfToRPeSi8Lo1LPu/UB6S5rzdi1+xBbErAh+hR/ltZ4/te2913Yf I9BUerZlrDkCez1d7ds/0AhUrXKvqBbnDUFVDMFMpVa5UqsvYgjuorbzhyDpuVH4/+09a3PixrL7 mSr/B5XvvdlNjkFvECx2lrWx4xO/ysabSra2Tgk0YE4A+QjhZE8q//32vIQQEghJtvF6ZqvWQhr1 9ExP93T3dI8a0ue17sKAUjfkFWKRwKpmWnq3/nlO6Y03lqoG0tGmYdS9qtmvFTvvt2xjqWqbdr+X f2fJdjTTUZ5C6KUcpeJ3mlZIjr1psH+xn1E7hXVD00AfL0t/QW0Yud7QL8Mk2ZPwMDSkpXkjzbxh UOvvPYQZZT+z0v5lb70nP54165oOiOdhTcvpmpa6GWvWujXDtIvVCrctwUHVe31TzZ/gYNWMrhOz fAve3D7eDEJKsjOk2rN1vZuDIS1dt0Dd22yprAPpezFZNJQhjW+BIW3HQpaRnx+dar3XfxITXfDj FvCjptjdqpJngRQfRPxmPogoOHK7tFdH1xUjn/YqPs/wzXyeQXDn86+XVk2t52JIcYDkt3OApGDI rVouza7p9HOpsuI0i2/mNAvBm8+/WNYM06jV8jCkSLj5RhJuBDtuyVJ5+fMH1TQtp6rl4MtMsT9d 0zDr2xsqI8J+VnNIqkypczR2va/zfKkPdt8yUCJ7zGjUX5Qr6H78oesgkBtqxkmOnF61lsdUyxRe Y2ld1YoJr9mSYBQRWbO1szw+wMeIC2EJJYK6kwc8IpMBSdUMRmRNXqOIQBERKE+paZUAcTJBKQNx HnjeGS8CO0Rgx+ua8iJ0QoROvK4ZL4ITRHDCq5vzYs9f7Pm/ukkv9tXFvvqrm/Riv1rsV7+2OS+2 hMWW8Kua8WKz9XVstm7j3BN7oK9kDzTH5LujhxXNZ5+HpvfuZIoO3fEYni0l1kdWMLpl/0E1qz3D tvaSjsFYqGvVVcd0UtVFVaev1tOBNcDI0ZV0dauKVq/Zqeoaug5aZDqwSDEUXU9Xt15Fer2Wrq5u KdVudU1dmPkwCEoXmWam7egb+4EcZDIa4nnLTnNoJLXJAjkOSe1zWhlI2+91q9XPvfDd/aQJFAei PfG9r2D3ar2ujT4PZkNnn60Ue6PQj2hYSSqgdVt3atUwUDUMVP3yZW9MDn0lAmC6/5m3zOXFlz2H MB97nG7Xf4nDyPnP5KyNvnRu/3k+Hdyww5tHtjdAmJPtCWHn8XAyHM/oMdHSdHaPD88j52pRZic9 ld5ppqJ8nwmTsUso7rvkEA0k3XRanfa/rn4+0f913T5sn35qH6WBSxEJnV8y5WsXCMH+cDAjB1RT bGfeELfX8xBuENe5BoFze32apaFDezTCTbkz/37mS/fssLr0k7/CXwlxgW/TtffenfrsCDf4mQvm NfJn3oSckULjE/EQMNgNqfnjn+ORBB3Dx+Xu76oVZVdCk56LD1XZ373tHJet3R8PSk1yhO8Zu/jJ 8eDqE/KOOkcHakVryuya3CRHzB3QF2T+lN6E1+nBvKfwnmY25fnPUhPmIvyF6vSi1OzgGenDxZnb AyIdXF3UlFvDqn5SrV+bMrtJnl4AAx50+yN3MiAPyO9SUw4g0GibOSh8mF5Dlgc4KvOP4RTh44VR zwVhNpb5kMrO9P2/2bHDwKeHx239sNoyq4fHZtvSFKOta2r7uK4Zx0eG0T4KYSQHzbH59TjtceC4 wYAq+Oqj63zFl0SAw8Xh2MED3pTpBRnqa9RnY42vSB18oZBKwa0DBpjcDUiCHz9Kj+bgOcnw9SLd 5/dLzSPbtw+AJ5oyucIDwfsc6byWpvNGTOeXe84UnCRsKzJ6AOk/zYqpngZTM4Ips+U5sqQNM9Qa 1kpj2IAtLbFTl7yZOb543k/WdGJ/jTT9rRbZXyVnf4P0hvSdNNN0slZkJ42n72Q1TSetIjtpPuvM raXpb73I/lafnqhWmk6q0WUjVy9rz0rVeqoOq0V22Hp6sjKKreumVmQ3609LVzmkCslcf82lSi9a fe5s4hDvCPkGCP4CwSEYOQNEe3brDW/YbazMXy1+o6JSqaSymlZo9YQQUqCDwICAXs+METoGGF/i RimkpUCbWWgJdNDZyH+MlhaaaYHp+PitYIJt1EjUJryc+QM3ZGoJ+0rYV8K+EvaVsK+EfSXsK2Ff CftK2FfCvlr8xlyy9izh3Wz/riGpumrlAXw8nEBXvuYBgb+eI93ByCEYqDyA7sAYhB7VtYpatSpK xWxYiqXkgdjD39kp9+iHdBrSvTd8sP1U+1BJEGdg15SBABPAFAjr36HpcCpREkt0c1PWKnX4Z0if 0eSL9O7KHo0vb95Lp6ms2qR27R7+Sg/8nX8cT36YOMS+Ho/+AZbUXtKzP7rk6Q/yD/kRKONPBs2I +YYmBYDr3dneFEG/Zn6/nGsi8zAPmh2+aiiKaIWzn27mQnps/1kG+fKH7eGADjXXXA8gIadMZJZq VCuqYVa0aqWuFgWZ8mic6VVUC9RxsGkb0unF8SXIIryVTvbwJ1AdX3joPzOEcWZWY1S8hC3GteCv KTCybU69B05DWmdbFjDfOk8xqc+KmdNE5jakv9YNy2LAWKovuH4wUbdfr/+dB70bZHu9Ozwz7ghM +umTJyIn7YZE/KNZnGjMR0o0FB7IVozAWwrh4MGOfqBy9D13LBGAOEwiK1wQ+GUi8XEAnvSOhOFB EzBeDLaD+sMJclKtlknjA/gREoxwMAtxY+KIFrZKU72uETgWA79inFtxjVcx2anIfIo69ylyl+JT uAED7yPXhle6MRO9mIGm3DxHoOg250FR2J2EVe/QHfz0svtvcl01+FN+B34QEIG3cO4s5OZB1FW4 bBssOwqX/YQhZ9liZ+f3Qw6zlEQI+9Oi7rRA628SR/xB1OnH6msar0+MhYyzISuFA0JSU6UpM1zn dsrcTMnAdkFs1hB/EBxWgAnM1//S4OgNwc2DxyisgmPHPFRQ6FjW/S4PFb3dRVtiu11AbSrv6OgV uDfkesMBthUlnzaET11KOWuL6F5ki412r8i9vKB/U97Sk/Yvlnwbb7plauXcvi+mkauAu0BB3t5t Pj15m++R9+YS9wQ3314MIJB1tbR6bS6tXpxLbHV+ls28pFW6lG+ZXrntRVe/mP25yFodOBUzzpM8 tJ9TOHAvcrQzexeXAs17Mw9n2dAw80bWOPMlsDc0ptye3QFwbJWAPHgHHI8wkGwh8VfBsk1U+cHw AU0kvNjeeYGuwWVOtqGg6RVU+q/IrnmEQwuzpSvEJASJ9JJC0kteeDpJlMDHQ6ZQgxih3g48FMF3 mNnHX0HrBn2g72Zp4Rr53hA9AM7zNn5HX6W3CZmlbxOnV2yeuVVHRuLJUY96PKDWMGsNVaso0SxC TYvPMk/Hy9Hxw12V+kAmlMortGKqAaCp1B0Ogvk1DpZ56R1Z+b+Xuqhnz6Y0yYdLPTrp2NRkHpJM qJCuzKcWzPbpGKYWmcBa7fvQpLf/JJMeHrp/YIdqCMUKgCFfPHZ9EHNjF88s4n3CL46GU19y+6yv OEcKKBj/YeRNWJSMBlsOmTaMUfBdF4+nRDM54Qb3hs3IWkQOuQXMG5JOkyzJe1NyR7O0vQAkf40+ qlVTufqXEO6Q3K0AOTw+SQhW+Oefh77E/F9cyadDyEaueImiPrFEUTeWKBqqW3rBudSbSBQjTqLA BBISZY1EUSMSRbdel0Sp60kSRVUM7SWJlPQ5ryqzRU4vTkTS6+tLel3hrRFB2QUHZeuvOSg7pvPR EDTigMnc9QK6s1XuqPnQwpwIBjYUQx5Fcx6engKPINQ9BgVYhg7iYripExMHSxxE1TFoCd+euzqz hml/bJ+cXjQ+HbbO2hdHreud0qf29c3p5UUDROVOiT1tf2pfdHZKN7fn563rXxtBkORO6fCsdXPT uLr9eHZ6uFM6at8cXp9edfD78KsDi951p4GFuqpoSkfTsSv3N/wEGuP31Y6isPu3p3CXYrxTAsid 8vnl0enxaZtXVmsdtWrWVO23aNMYIMeTXM97tBzYSAc8POzmYwz7imyALMMeF7S5CQXUekc1YiiA 75tLFFBXUsAohAIyYzUStXnQlOlfkc8n8vlEPp9QHYXqKFRHoToK1VGojkJ1fHzVcfNUJbVWFalK IlVJpCo9S6qSqdRFqpJIVfqmUpVyzmmRqiRSlUSqEk9VMkSqUs5UJf2lpCot9kNb3w99uR9LnZjb 6LEdCKzyzRHU1yNoLCIINg/Db95aYJ8vI6CuQcBYj4CZFgE1HQLn9j1vPTjcJsqYUUdHIjMtuU9C /GLfx2akRb0ZibBJxZoSl2wWwF7diJq2EXVlIzIZskX7VmS4iQw3kWmW3O7Gn8NJCZdJj0eCm8pE fA0Zd3FJmUWQ9IVk8hkik6/gTL4823jPkcmXZWtOj+nQcm/itNnSanU231GbMZhGDwUNlMrSarW2 FFUrNzoDMwaR6JmfKxBRUyOC1bWY8xujnByzm5fIfXHbhHP+YorichMxO3eJTUTV3YX9zXkT6xpT N2gsfm8r1JhMh7KwrZ3UeaIbxmYXligadaGyrEUJVM21L10hD6dvpH4tQD8UU36PdeEQgLPb06Py CfzHEhVqSnkxu25kT/3WpHfnetJb5W3BjanlxcSbR23sZfVsq7Ndu5apGEnJrrVMya7dOjLNXlKu ay3hU2o1/im1msov5ndeeDbs5h9XyyrM4gG3L1K54aPzNKxMyVRrbCzlu6OJs5GVPwffJm8SgCTN BxjR7tpTJL1ly+0GzFWZ+h70d/A1xGU4iYndXcIaJvU9mVApZHWaUQjgZZuYYIcNiRQKxoANgfRu Df+dgTTq8Cy/D5aqKab6+d4bTnrDe3t06uyrexzmPj8IACOPt8j2QSci+X6zKc4P3PPtAV0M9+ex HzXN1LXf8CPK6fuqWlVVxaxrummZ+G3PT/zgM8yNmGdGRTPUL1I2zuH9vcH9pWfmOg0JfxG1WH4R Xzd8jYleK4x5Ea1bcLSu8ZqjdWM6H/3GA+hUj//xDZHEIZI4RBKHWBbEsiCWhcdYFjYO0DZquaI6 N4jPLtoWSELpGjHAdzyazVsfNPcGCjFuRu6gPDe5LE0F6OPRm6IK3typGgb+q9ZMJfwXig6Gmv4G mlZNzTBVBeqphqHU3khKYRisKDNsXUrSGypEk+ute/5CS/P+oHmnHUxAG+piYdXjR6AQ+ebYD/Ti qPWpKUNVXFs/GE6GflOGC37v3kMHJ6wedzniSu++hxoeOgi9i89NuXAnPyN03xoNHxAL310C9wt2 gU387/7HtN7vlK6uL69grh9JMsdLln7qdK5gmVVLh+GMAvKCNHHLJOa1dOXZg7Edudmige5nLG6e PkWTUmvm37kec7fQux/t6bAn/Tr+bdrVzMnl+N7rabf6+X+v/1M6ZHHnNEaXVreM0k+gVNIfIxwp e8d/4j3O0hG0y6qqAQDsJqH3aGrQePSexeDv0xB8im+oyg+l0ncj//1KFYa8uvvjdwP/Pa6Lj1rq DycODhKdTAksZ38X6EUud3k1EGy4psx/y/w9fCMPMQcupyWjmwJiriadg5I6LNM1YadEPUO0o7+g 7uHQlx6qFUuTZAmubQeNJPxzBw/dBPXmZOqN3CnaKcEaw0ayM0N7IEslLFKpONUpFUz6R5f+oZiK shMQwV8iwvwZH1T6fOjgPRySqLaQecDIWtWMndLOxvQZ44GgfjJKohBxQjQ72d/Fkp9cywEzVFxv IAc05Adm8t93Hurj69CLy1MzgEWozl/hMwcjxn9TJPEvzoF4hKXLn8mb86f8XX7tDKeg4H+FlYxg xuUFeSvyjPWC6BGEMOxezx2NKNnnEzSuHqgneAeF7wDg2yknBAEZ83rACws/wsMiR4c9HxnkQ5Ye KD8VQXiDOQlyQvryQJTB8vy5VBjFgEhktNStoxiIA7vnT5+OYqzBYijWsz2nYIJpBLJpkT+qtm0E 69jT35+OWqS1Ykjlu477ukh1MnK79uj/NKXlOABqClcfXff3JyMebV9irUu47S3hunN3AqRUpH/O RoyUVQLZoGJSMQonpRzSVfA90HYqUIYTqTqeLumIWHm8wVbmdEktvLkfDf19oSkJTUloSkJTEprS 9i6/QlN6MaQSmtL2akoR5SiV3/V/qbfpGNQo5P1E9xNC6hX2FIJkA9Upwesm2RKhOu5iuim0iGUe SPOleUkthNvtERpD5+LwJnv40B4/I4n61tbCzYcrX5Qy4mqzGd/FMz6KbzzsXPhSmZwRWSwXo0jG AcyFYZIoeoQBTtlUHMfRswemlVM+qS7JDWKzhH3dOHKNptBEzRgcnUAeIwcbQlm4/DF2SAIm2cqt ElVTV++VPOP2SMzGCK6Q+BBWC+Tbg6XncvK6Eb+n8so2S6p19UXvlcgLluC3bnk+k1XPUkYebYgZ 8+Kfu6ah73L9j9989q6rT9R1o4iuJzsHVXPJO7ilCnBAgJegtUbYJBn0RCJkJTiRif54WKipsTB2 n0VbOml34ujCv7QX6Ev51RyldIuPp2wNeOPSR9I3FnBcgd5KQejMX0ql/v6f9oP992rVCEo6vYHL gfzaQmTuhNWHY2+IY9ZC6kM97H4EBMqKsUJ94OwCbYX1us1qxysYWq2OFQx2+i25t3w+Lh1XfEYu KNFHp0fkd1mWkwkly8csIk9iw+V6srzQyuI5u+Re9IhjcjPmkF1GQnbQLqd63HHH4WeLRx4z/S3u 2OPQS+Gjjzm40HG70fGi/5g411JJ89zGFcxqsPuQQ5KZbq/PEmVqrPzbBnGiCnGyRpwYC+KkczcD a6QeEifK1oiTurI94mTF0d0bS5alY7wjz8xYyRI9zntZshiZJIu+laJFXdIGQVOmbR577pi1G2mD PufHROEzQrsITSQv+OwnOcFzynDOB17dDDxO4PWPUHc2uEY4pHwJeDkom78bWYIyAGD0SC3pU8Bs d1rU8o1Rf9O8f9E6by+u5JvDOGp1WtLx5dnZ5S+UTTcHsQ3C54XrMk/LDMUx0rIMys9IGWCGGWnJ gtuEkeLWsFfLU9/Ogv60LEIXwSlfzF263tHVfHNoLfoilMzrTBREBg7jfcIc6wfreEjpzg6SnXIT Ug3yQgwGfn5wTV6QY+QNGDEfodOxIJ87FUsUUUQRRRRRRBFFFFFEEUUUUUQRRRRRRBFFFFFEEUUU UUQRRRRRRBFFFFFEEWWj8v+S7u0cAFgCAA== --Boundary-00=_BPRNFmEOC7M83yQ-- From groupdav@opengroupware.org Wed Oct 18 14:00:04 2006 From: groupdav@opengroupware.org (Mathew McBride) Date: Wed, 18 Oct 2006 23:00:04 +1000 Subject: [GroupDAV] Citadel, Funambol/GroupDav, Synthesis In-Reply-To: <200610171332.49549.bflong@longbros.com> References: <200610111207.42676.bflong@longbros.com> <45309A0D.3040805@mcbridematt.dhs.org> <200610171304.20849.bflong@longbros.com> <200610171332.49549.bflong@longbros.com> Message-ID: <45362554.7090403@mcbridematt.dhs.org> The current version of the connector, as said previously, will throw an exception if you try to add objects with names already on the server. So if either the server or client isn't clean before doing a slow/first/after deletion of store directory sync the connector will halt. Next version I hope to have a softer solution to the problem - treating same name adds as data merges, along with proper merge support, should do it. Benjamin Long wrote: > Well, that didn't take long... > I synced a few times to make sure it didn't break before I sent my last email. > After that I added the sync source for the Tasks. On the first sync I got a > 51x error. Ok, so I disabled syncing for the Tasks. Got a 51x on the Calendar > sync. Now it won't sync at all. I've attached logs of the latest calendar > only sync. I completely deleted my store directory before this logged sync. > I'm going to do a full reset on my palm and try again. Maybe there is some > half baked cruft left over from the bad config or something. > > Benjamin Long > > On Tuesday 17 October 2006 1:04 pm, Benjamin Long wrote: > >> Matt, >> Sorry for waiting so long to check this out.. >> >> Indeed, I had my sync source misconfigured. Not sure how I missed that. >> After correcting it, I am able to sync from the palm to the server. I'm >> going to start using this every day now so if anything else breaks I'll >> know it. I still need to setup to-do syncing. >> >> I guess contacts are the only thing left to get working. Thanks for all >> the effort on this! It's really looking good! >> >> Benjamin Long >> >> On Saturday 14 October 2006 4:04 am, Mathew McBride wrote: >> >>> Hmm, how is your source configured? From the logs you sent me, when it >>> goes to add an item its going to the / on the server instead of >>> /groupdav/Calendar/. >>> http://comalies.citadel.org/~matt/funambol/samplefunambolconfig.JPG is a >>> sample configuration for OGo, for Citadel /zidestore/so/.../ gets >>> replaced with /groupdav/ etc. >>> I've just got the WM5 emulator and the Funambol 3 stable bundle up and >>> running, there does appear to be an issue when syncing clients for the >>> first time which I'll get back to everyone on soon. I tried adding a >>> fresh item from WM to OGo and it did work, however. I suppose there >>> could some behavior changes from Funambol 3 b5 to stable too. >>> >>> Benjamin Long wrote: >>> >>>> Any idea whats going on here Matt? >>>> >>>> Benjamin Long >>>> From groupdav@opengroupware.org Tue Oct 24 21:39:35 2006 From: groupdav@opengroupware.org (Chris Bryant) Date: Tue, 24 Oct 2006 16:39:35 -0400 Subject: [GroupDAV] Funambol GroupDAV connector java exception References: <200610111207.42676.bflong@longbros.com> <45309A0D.3040805@mcbridematt.dhs.org> <200610171304.20849.bflong@longbros.com> <200610171332.49549.bflong@longbros.com> <45362554.7090403@mcbridematt.dhs.org> Message-ID: <000c01c6f7ac$855b3320$6501a8c0@corp.usa.net> Matt, I've been trying to do some testing of your Funambol connector with our USA.NET GroupDAV server and I've been seeing an ArrayIndexOutOfBoundsException thrown in vCalGroupDAVConnector.java. In this file (I downloaded 1.1713.zip today, btw), there are a few calls to System.arraycopy that I think are incorrectly adding 1 to the offset in the destination array. I think if the "+1" in these statements is removed, this exception would be corrected. I'm trying to get ant setup to rebuild the jar file, but I have not been successful yet, so I can't verify if this fix is correct, but I think if you look at it, you'll see what I'm talking about. I'm curious nobody else has seen this before though... Thanks, Chris USA.NET, Inc. From groupdav@opengroupware.org Wed Oct 25 13:40:31 2006 From: groupdav@opengroupware.org (Mathew McBride) Date: Wed, 25 Oct 2006 22:40:31 +1000 Subject: [GroupDAV] Funambol GroupDAV connector java exception In-Reply-To: <000c01c6f7ac$855b3320$6501a8c0@corp.usa.net> References: <200610111207.42676.bflong@longbros.com> <45309A0D.3040805@mcbridematt.dhs.org> <200610171304.20849.bflong@longbros.com> <200610171332.49549.bflong@longbros.com> <45362554.7090403@mcbridematt.dhs.org> <000c01c6f7ac$855b3320$6501a8c0@corp.usa.net> Message-ID: <453F5B3F.3060200@mcbridematt.dhs.org> The issue has turned up elsewhere, and yes, the offset is correct, as a result of how System.arraycopy works in Java. The ArrayIndexOutOfBoundsException occurs if the store fails to PROPFIND the server correctly and leaves some arrays (usually deleted item keys) null. The store log will probably reveal where it failed. Chris Bryant wrote: > Matt, > > I've been trying to do some testing of your Funambol connector with > our USA.NET GroupDAV server and I've been seeing an > ArrayIndexOutOfBoundsException thrown in vCalGroupDAVConnector.java. > In this file (I downloaded 1.1713.zip today, btw), there are a few > calls to System.arraycopy that I think are incorrectly adding 1 to the > offset in the destination array. I think if the "+1" in these > statements is removed, this exception would be corrected. I'm trying > to get ant setup to rebuild the jar file, but I have not been > successful yet, so I can't verify if this fix is correct, but I think > if you look at it, you'll see what I'm talking about. I'm curious > nobody else has seen this before though... > > Thanks, > Chris > > USA.NET, Inc. >UID:2510854URL:/Calendar2510854= pre>ETAG:NAME:Cable Install=DATA FOLLOWS:BEGIN:VCALENDAR VERSION:2.0 PRODID:-//BionicMessage.net GroupDAV//Funambol Connector// BEGIN:VEVENT SUMMARY:Cable Install CLASS:PUBLIC DESCRIPTION: DTSTART:20061009T130000Z DTEND:20061009T140000Z UID:2510854 LAST-MODIFIED:20061006T190603Z END:VEVENT END:VCALENDAR----------Objects added to store: <= /pre>Objects updated from server:Objects= deleted from store:Objects added to the server:=SA: 2510854Objects merged to ser= ver:Objects deleted from server:--Boundary-00=_LXnLFN+9DYZ20jz Content-Type: text/html; charset="iso-8859-1"; name="storelog-1160161609638.html" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="storelog-1160161609638.html"net.bionicmessage.groupdav.groupDAV
init
G= roupDAV client init()sendNonKeepAliveRequest
We sent: PROPFIND /groupdav/ HTTP/1.1 Cache-control: no-cache Pragma: no-cache Accept-Language: en Authorization: Basic YmZsb25nOmprc2U3MzRq Content-Length: 84 Host: localhost:2000 Depth: 1 Content-Type: text/xml;charset=3Dutf-8 Accept: text/* <?xml version=3D"1.0" encoding=3D"utf-8"?><propfind xmlns:d=3D= "DAV:"><allprop/></propfind>
sendNonKeep= AliveRequest
We got: HTTP/1.0 207 Multi-Status Server: WebCit v6.82 / Citadel 6.82 Connection: close Date: Fri, 06 Oct 2006 15:06:49 +0500 Content-type: text/xml Content-encoding: identity Content-length: 1624 <?xml version=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DA= V:" xmlns:G=3D"http://groupdav.org/"><response><hre= f>http://localhost:2000/groupdav</href><propstat><= ;status>HTTP/1.1 200 OK</status><prop><displayname>Gro= upDAV</displayname><resourcetype><collection/></resour= cetype><getlastmodified>Fri, 06 Oct 2006 15:06:49 +0500<= ;/getlastmodified></prop></propstat></response><res= ponse><href>http://localhost:2000/groupdav/Calendar/</h= ref><propstat><status>HTTP/1.1 200 OK</status><prop= ><displayname>Calendar</displayname><resourcetype><= collection/><G:vevent-collection /></resourcetype><ge= tlastmodified>Fri, 06 Oct 2006 15:06:49 +0500</getlastmodifie= d></prop></propstat></response><response><hre= f>http://localhost:2000/groupdav/Contacts/</href><props= tat><status>HTTP/1.1 200 OK</status><prop><displayn= ame>Contacts</displayname><resourcetype><collection/>&= lt;G:vcard-collection /></resourcetype><getlastmodified>= =46ri, 06 Oct 2006 15:06:49 +0500</getlastmodified></prop&= gt;</propstat></response><response><href>http:/= /localhost:2000/groupdav/Tasks/</href><propstat><status&= gt;HTTP/1.1 200 OK</status><prop><displayname>Tasks</d= isplayname><resourcetype><collection/><G:vtodo-collec= tion /></resourcetype><getlastmodified>Fri, 06 Oct 2006 15= 58;06:49 +0500</getlastmodified></prop></propstat><= ;/response><response><href>http://localhost:2000/gro= updav/Global%20Address%20Book/</href><propstat><status>HT= TP/1.1 200 OK</status><prop><displayname>Global Address B= ook</displayname><resourcetype><collection/><G:vca= rd-collection /></resourcetype><getlastmodified>Mon, 10 Jul = 2006 16:40:04 +0500</getlastmodified></prop></propst= at></response></multistatus> =2E...in 90msfindStores
Split=3D<?xml v= ersion=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DAV:" xm= lns:G=3D"http://groupdav.org/"><response><href>http&= #58;//localhost:2000/groupdav</href><propstat><status>= ;HTTP/1.1 200 OK</status><prop><displayname>GroupDAV</= displayname><resourcetype><collection/></resourcetype>= <getlastmodified>Fri, 06 Oct 2006 15:06:49 +0500</getlastm= odified></prop></propstat></response><response>&= lt;href>http://localhost:2000/groupdav/Calendar/</href><= ;propstat><status>HTTP/1.1 200 OK</status><prop><di= splayname>Calendar</displayname><resourcetype><collection= /><G:vevent-collection /></resourcetype><getlastmodif= ied>Fri, 06 Oct 2006 15:06:49 +0500</getlastmodified></= prop></propstat></response><response><href>http&= #58;//localhost:2000/groupdav/Contacts/</href><propstat><= ;status>HTTP/1.1 200 OK</status><prop><displayname>Con= tacts</displayname><resourcetype><collection/><G:v= card-collection /></resourcetype><getlastmodified>Fri, 06 Oc= t 2006 15:06:49 +0500</getlastmodified></prop></prop= stat></response><response><href>http://localhost= 58;2000/groupdav/Tasks/</href><propstat><status>HTTP/1.1 = 200 OK</status><prop><displayname>Tasks</displayname&g= t;<resourcetype><collection/><G:vtodo-collection />&l= t;/resourcetype><getlastmodified>Fri, 06 Oct 2006 15:06:49= +0500</getlastmodified></prop></propstat></response&g= t;<response><href>http://localhost:2000/groupdav/Global= %20Address%20Book/</href><propstat><status>HTTP/1.1 200 O= K</status><prop><displayname>Global Address Book</disp= layname><resourcetype><collection/><G:vcard-collectio= n /></resourcetype><getlastmodified>Mon, 10 Jul 2006 16:= 40:04 +0500</getlastmodified></prop></propstat></r= esponse></multistatus>net.bionicmessage.groupdav.= groupDAV$entityFinderHandler
characters
We got a = href:http://localhost:2000/groupdavWe got a h= ref:http://localhost:2000/groupdav/Calendar/en= dElement
We found a calendar: /groupdav/Calendar/=We got a href:http://localhost:2000/groupdav/Contac= ts/endElement
We found a address book:= /groupdav/Contacts/We got a href:http://localhos= t:2000/groupdav/Tasks/endElement
We fo= und a todo: /groupdav/Tasks/We got a href:http= 8;//localhost:2000/groupdav/Global%20Address%20Book/en= dElement
We found a address book: /groupdav/Global%20Ad= dress%20Book/net.bionicmessage.objects.ICalendarObjectStor= e
startSync
Sync started....net.= bionicmessage.groupdav.groupDAV
sendNonKeepAliveRequest
<= p>We sent: PROPFIND /groupdav//Calendar HTTP/1.1 Cache-control: no-cache Pragma: no-cache Accept-Language: en Authorization: Basic YmZsb25nOmprc2U3MzRq Content-Length: 121 Host: localhost:2000 Content-Type: text/xml;charset=3Dutf-8 Accept: text/* <?xml version=3D"1.0" encoding=3D"utf-8"?><propfind xmlns=3D"DAV= 58;"><prop xmlns=3D"DAV:"><getetag xmlns=3D"DAV:"/>&= lt;/prop></propfind>We got: HTTP/1.0 207 Multi-Status Server: WebCit v6.82 / Citadel 6.82 Connection: close Date: Fri, 06 Oct 2006 15:06:49 +0500 Content-type: text/xml Content-encoding: identity Content-length: 534 <?xml version=3D"1.0" encoding=3D"utf-8"?><multistatus xmlns=3D"DA= V:" xmlns:G=3D"http://groupdav.org/"><response><hre= f>http://localhost:2000/groupdav/Calendar</href><propst= at><status>HTTP/1.1 200 OK</status><prop><displayna= me>Calendar</displayname><resourcetype><collection/>&l= t;G:vevent-collection /></resourcetype></prop></props= tat></response><response><href>http://localhost= 8;2000/groupdav/Calendar/oxygen-4526a776-a74-1</href><propstat>= <status>HTTP/1.1 200 OK</status><prop><getetag>"535= "</getetag></prop></propstat></response></multis= tatus> =2E...in 1msnet.bionicmessage.groupdav.groupDAV$entityFind= erHandler
characters
We got a href:http:/= /localhost:2000/groupdav/CalendarendElement
We found a calendar: /groupdav/Calendar/We got = a href:http://localhost:2000/groupdav/Calendar/oxygen-4526a776-= a74-1We got an etag: "535"net.bionic= message.objects.ICalendarObjectStore
startSync
We= have the URL: /groupdav/Calendar/oxygen-4526a776-a74-1
Deleted on server: /Calendar2510854 printDebugReport<= /h3>
----------printDebugReport
UID:oxygen-4526a776-a74-1printDebugReport
=
URL:/groupdav/Calendar/oxygen-4526a776-a74-1print= DebugReport
ETAG:"535"printDebugReport=
NAME:Go HomeprintDebugReport
=DATA FOLLOWS:printDebugReport
= BEGIN:VCALENDAR PRODID:-//Citadel//NONSGML Citadel Calendar//EN VERSION:2.0 BEGIN:VEVENT SUMMARY:Go Home DESCRIPTION:notes? we don't need no stinking notes!! DTSTART:20061006T210002Z DTEND:20061006T220002Z TRANSP:OPAQUE UID:oxygen-4526a776-a74-1 SEQUENCE:1 ORGANIZER:MAILTO:bflong@longbros.com END:VEVENT END:VCALENDARprintDebugReport
--------= =2D-printDebugReport
Objects added to stor= e:printDebugReport
Objects updated fr= om server:printDebugReport
Objects de= leted from store:printDebugReport
D= 58; 2510854printDebugReport
Objects add= ed to the server:printDebugReport
Obj= ects merged to server:printDebugReport
Objects deleted from server: